From ef27b57930fe5a0aa1dd11af2ca11784289c697a Mon Sep 17 00:00:00 2001 From: Raphael Fakhri <153192858+RaphaelFakhri@users.noreply.github.com> Date: Tue, 20 Oct 2026 09:51:37 +0000 Subject: [PATCH 1/2] fix(repack): pass inlined asset scales to pickScale in ascending order --- .changeset/inline-assets-scale-order.md | 5 ++ .../__tests__/inlineAssets.test.ts | 47 +++++++++++++++++++ .../src/loaders/assetsLoader/inlineAssets.ts | 5 +- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 .changeset/inline-assets-scale-order.md create mode 100644 packages/repack/src/loaders/assetsLoader/__tests__/inlineAssets.test.ts diff --git a/.changeset/inline-assets-scale-order.md b/.changeset/inline-assets-scale-order.md new file mode 100644 index 000000000..10d11f4dd --- /dev/null +++ b/.changeset/inline-assets-scale-order.md @@ -0,0 +1,5 @@ +--- +"@callstack/repack": patch +--- + +Pass scales of inlined assets to `AssetSourceResolver.pickScale` in ascending order. Previously, assets with fractional scales such as `@1.5x` resolved to the wrong variant, for example the `@1.5x` image on a device with a pixel ratio of 3.5. diff --git a/packages/repack/src/loaders/assetsLoader/__tests__/inlineAssets.test.ts b/packages/repack/src/loaders/assetsLoader/__tests__/inlineAssets.test.ts new file mode 100644 index 000000000..63aca7461 --- /dev/null +++ b/packages/repack/src/loaders/assetsLoader/__tests__/inlineAssets.test.ts @@ -0,0 +1,47 @@ +import vm from 'node:vm'; +import { inlineAssets } from '../inlineAssets.js'; +import type { Asset } from '../types.js'; + +// Same logic as `pickScale` from `react-native/Libraries/Image/AssetUtils`, +// which expects `scales` to be sorted in ascending order. +function pickScale(scales: number[], deviceScale: number) { + for (const scale of scales) { + if (scale >= deviceScale) { + return scale; + } + } + return scales[scales.length - 1] || 1; +} + +function evaluateInlinedAsset(code: string, pixelRatio: number) { + const module = { exports: {} as { scale?: number } }; + const require = (request: string) => + request === 'react-native' + ? { PixelRatio: { get: () => pixelRatio } } + : { pickScale }; + + vm.runInNewContext(code, { module, require }); + return module.exports; +} + +// assets are sorted by scale in ascending order, as in the assets loader +const assets: Asset[] = [0.75, 1, 1.5, 2, 3].map((scale) => ({ + data: Buffer.from(`star@${scale}x`), + dimensions: { width: 10, height: 10 }, + filename: `star@${scale}x.png`, + scale, +})); + +describe('inlineAssets', () => { + it.each([ + [0.75, 0.75], + [1, 1], + [1.5, 1.5], + [2.625, 3], + [3.5, 3], + ])('picks the right scale for pixel ratio %s', (pixelRatio, expected) => { + const code = inlineAssets({ assets, resourcePath: 'star.png' }); + + expect(evaluateInlinedAsset(code, pixelRatio).scale).toBe(expected); + }); +}); diff --git a/packages/repack/src/loaders/assetsLoader/inlineAssets.ts b/packages/repack/src/loaders/assetsLoader/inlineAssets.ts index 9dd776c5e..c7cc954de 100644 --- a/packages/repack/src/loaders/assetsLoader/inlineAssets.ts +++ b/packages/repack/src/loaders/assetsLoader/inlineAssets.ts @@ -31,7 +31,10 @@ export function inlineAssets({ {} as Record ); - const scales = JSON.stringify(Object.keys(sourceSet).map(Number)); + // `pickScale` expects scales in ascending order. `assets` are already sorted, + // while `Object.keys` would list integer keys (1, 2, 3) before fractional + // ones (0.75, 1.5). + const scales = JSON.stringify(assets.map(({ scale }) => scale)); /** * To enable scale resolution in runtime we need to import PixelRatio & AssetSourceResolver From cec54ad99433661b93ce0ce36aac6b481cddf31b Mon Sep 17 00:00:00 2001 From: RaphaelFakhri <153192858+RaphaelFakhri@users.noreply.github.com> Date: Wed, 28 Oct 2026 18:05:59 +0000 Subject: [PATCH 2/2] test: cover fractional scales end to end and sort them in inlineAssets inlineAssets sorts the scales itself instead of relying on the loader passing assets in order. The integration mock of pickScale now matches React Native's, and a star@1.5x fixture with 1.5 and 2.625 pixel ratios covers fractional scales through a real bundle for both bundlers. Co-Authored-By: Claude Opus 5.5 --- .../__tests__/inlineAssets.test.ts | 4 +- .../src/loaders/assetsLoader/inlineAssets.ts | 10 ++-- tests/integration/src/helpers.ts | 5 +- .../loaders/__fixtures__/assets/star@1.5x.png | Bin 0 -> 11075 bytes .../rspack/assets-loader.test.ts.snap | 50 ++++++++++++++++-- .../webpack/assets-loader.test.ts.snap | 50 ++++++++++++++++-- .../src/loaders/assets-loader.test.ts | 2 + 7 files changed, 108 insertions(+), 13 deletions(-) create mode 100644 tests/integration/src/loaders/__fixtures__/assets/star@1.5x.png diff --git a/packages/repack/src/loaders/assetsLoader/__tests__/inlineAssets.test.ts b/packages/repack/src/loaders/assetsLoader/__tests__/inlineAssets.test.ts index 63aca7461..8d085bfb3 100644 --- a/packages/repack/src/loaders/assetsLoader/__tests__/inlineAssets.test.ts +++ b/packages/repack/src/loaders/assetsLoader/__tests__/inlineAssets.test.ts @@ -24,8 +24,8 @@ function evaluateInlinedAsset(code: string, pixelRatio: number) { return module.exports; } -// assets are sorted by scale in ascending order, as in the assets loader -const assets: Asset[] = [0.75, 1, 1.5, 2, 3].map((scale) => ({ +// out of order on purpose, `inlineAssets` must not rely on the caller sorting them +const assets: Asset[] = [2, 0.75, 3, 1.5, 1].map((scale) => ({ data: Buffer.from(`star@${scale}x`), dimensions: { width: 10, height: 10 }, filename: `star@${scale}x.png`, diff --git a/packages/repack/src/loaders/assetsLoader/inlineAssets.ts b/packages/repack/src/loaders/assetsLoader/inlineAssets.ts index c7cc954de..eaca12e1d 100644 --- a/packages/repack/src/loaders/assetsLoader/inlineAssets.ts +++ b/packages/repack/src/loaders/assetsLoader/inlineAssets.ts @@ -31,10 +31,12 @@ export function inlineAssets({ {} as Record ); - // `pickScale` expects scales in ascending order. `assets` are already sorted, - // while `Object.keys` would list integer keys (1, 2, 3) before fractional - // ones (0.75, 1.5). - const scales = JSON.stringify(assets.map(({ scale }) => scale)); + // `pickScale` expects scales in ascending order. They are sorted here rather + // than read with `Object.keys`, which lists integer keys (1, 2, 3) before + // fractional ones (0.75, 1.5). + const scales = JSON.stringify( + assets.map(({ scale }) => scale).sort((a, b) => a - b) + ); /** * To enable scale resolution in runtime we need to import PixelRatio & AssetSourceResolver diff --git a/tests/integration/src/helpers.ts b/tests/integration/src/helpers.ts index fb8d71548..579bb6f74 100644 --- a/tests/integration/src/helpers.ts +++ b/tests/integration/src/helpers.ts @@ -109,7 +109,10 @@ export function getReactNativeVirtualModules( }; } static pickScale(scales, pixelRatio) { - return scales[pixelRatio - 1]; + for (var i = 0; i < scales.length; i++) { + if (scales[i] >= pixelRatio) return scales[i]; + } + return scales[scales.length - 1] || 1; } };`, }; diff --git a/tests/integration/src/loaders/__fixtures__/assets/star@1.5x.png b/tests/integration/src/loaders/__fixtures__/assets/star@1.5x.png new file mode 100644 index 0000000000000000000000000000000000000000..57989bdabf31e85044b9052d107182722eaba468 GIT binary patch literal 11075 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 T1WbUBV?hXAW1U)Ur>Fl1#=> on android > should load and extract asset with scales 1`] = ` { "__packager_asset": true, - "hash": "86abef08a42e972a96c958d6fa9d43da,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", + "hash": "86abef08a42e972a96c958d6fa9d43da,9e7efe37227966bd2272d1f5915470cc,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", "height": 272, "httpServerLocation": "assets/__fixtures__/assets", "name": "star", "scales": [ 1, + 1.5, 2, 3, ], @@ -20,6 +21,8 @@ exports[`assetLoader > on android > should load and extract asset with scales 1` exports[`assetLoader > on android > should load and extract asset with scales 2`] = ` "/ └─ out/ + ├─ drawable-hdpi/ + │ └─ __fixtures___assets_star.png ├─ drawable-mdpi/ │ └─ __fixtures___assets_star.png ├─ drawable-xhdpi/ @@ -78,12 +81,13 @@ exports[`assetLoader > on android > should prefer platform specific asset 2`] = exports[`assetLoader > on ios > should load and extract asset with scales 1`] = ` { "__packager_asset": true, - "hash": "86abef08a42e972a96c958d6fa9d43da,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", + "hash": "86abef08a42e972a96c958d6fa9d43da,9e7efe37227966bd2272d1f5915470cc,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", "height": 272, "httpServerLocation": "assets/__fixtures__/assets", "name": "star", "scales": [ 1, + 1.5, 2, 3, ], @@ -99,6 +103,7 @@ exports[`assetLoader > on ios > should load and extract asset with scales 2`] = │ └─ __fixtures__/ │ └─ assets/ │ ├─ star.png + │ ├─ star@1.5x.png │ ├─ star@2x.png │ └─ star@3x.png └─ main.js" @@ -193,6 +198,7 @@ exports[`assetLoader > should convert to remote-asset > with scales 1 2`] = ` │ └─ __fixtures__/ │ └─ assets/ │ ├─ star.png + │ ├─ star@1.5x.png │ ├─ star@2x.png │ └─ star@3x.png └─ main.js" @@ -216,6 +222,7 @@ exports[`assetLoader > should convert to remote-asset > with scales 2 2`] = ` │ └─ __fixtures__/ │ └─ assets/ │ ├─ star.png + │ ├─ star@1.5x.png │ ├─ star@2x.png │ └─ star@3x.png └─ main.js" @@ -239,6 +246,7 @@ exports[`assetLoader > should convert to remote-asset > with scales 3 2`] = ` │ └─ __fixtures__/ │ └─ assets/ │ ├─ star.png + │ ├─ star@1.5x.png │ ├─ star@2x.png │ └─ star@3x.png └─ main.js" @@ -263,6 +271,7 @@ exports[`assetLoader > should convert to remote-asset > with specified assetPath │ └─ assets/ │ └─ nested-folder/ │ ├─ star-fake-hash.png + │ ├─ star-fake-hash@1.5x.png │ ├─ star-fake-hash@2x.png │ └─ star-fake-hash@3x.png └─ main.js" @@ -287,6 +296,7 @@ exports[`assetLoader > should convert to remote-asset > with specified assetPath │ └─ assets/ │ └─ nested-folder/ │ ├─ star-fake-hash.png + │ ├─ star-fake-hash@1.5x.png │ ├─ star-fake-hash@2x.png │ └─ star-fake-hash@3x.png └─ main.js" @@ -311,6 +321,7 @@ exports[`assetLoader > should convert to remote-asset > with specified assetPath │ └─ assets/ │ └─ nested-folder/ │ ├─ star-fake-hash.png + │ ├─ star-fake-hash@1.5x.png │ ├─ star-fake-hash@2x.png │ └─ star-fake-hash@3x.png └─ main.js" @@ -374,6 +385,21 @@ exports[`assetLoader > should inline asset > with scales (1) 2`] = ` └─ main.js" `; +exports[`assetLoader > should inline asset > with scales (1.5) 1`] = ` +{ + "height": 272, + "scale": 1.5, + "uri": "data:image/png;base64,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", + "width": 286, +} +`; + +exports[`assetLoader > should inline asset > with scales (1.5) 2`] = ` +"/ +└─ out/ + └─ main.js" +`; + exports[`assetLoader > should inline asset > with scales (2) 1`] = ` { "height": 407.5, @@ -389,6 +415,21 @@ exports[`assetLoader > should inline asset > with scales (2) 2`] = ` └─ main.js" `; +exports[`assetLoader > should inline asset > with scales (2.625) 1`] = ` +{ + "height": 362, + "scale": 3, + "uri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABHYAAAQ+CAYAAAC6OriBAAAACXBIWXMAACxLAAAsSwGlPZapAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAFJNSURBVHgB7N09mxzltQbqZ7NPQDj6BzWZQykjo8hMxBA6ogmJDsqsaKPMmVGGI0zoyFJGRp9fsE2mTKXMGZA583nfXcgIMTPq7qmqro/7vq512dvG3oDno/vp9axKAADWrfl5AABW550AAKzbVZldAABW6P8JAMC6fVLmxwAAAACwKE2Zf/88TQAAVkYVCwBYs6vX/vkuAAAAACzGd/llY+e7AAAAALAITX4JdV7NRQAAVkQVCwBYq/aaf20XAAAAAGbv9RqWOhYAAADAQjT5baijjgUArI4qFgCwRu0t/94uAAAAAMzWdTUsdSwAAACAmWtyc6ijjgUArIoqFgCwNu0Bf8wuAAAAAMzObTUsdSwAAACAmaoVq38fMD9EHQsAWAFVLABgTa4O/OMujvhjAQAAAJjA0xy2saOOBQAAADAjh9aw1LEAgNVQxQIA1qLNcdSxAIDFE+wAAGtxSkjzfgAAAAA4u1qt+nfUsQAAAAAWpW7r/PvEaQMAsFCqWADAGtzlVs4nAQAAAOBsTqlhvV7HAgAAAOAM2pwe6qhjAQCLpooFACzdLnfnsecAAAAAZ/Aid9/YUccCAAAAmFibu4c66lgAwGKpYgEAS7bLcNSxAAAAACY0RA1LHQsAAABgYm2GC3XUsQCARVLFAgCWapfhqWMBAAAATGDIGpY6FgAAAMBE2gwf6qhjAQCLo4oFACzRmJWpNgAAAACMZowa1qt5EQAAAABGcT/jhTrqWADAoqhiAQBLs8v42gAAAAAwuP/N+Bs7LwIAAADAoJqMH+q8miYAADOnigUALMmYT8N60y4AAAAADGaKGtar+S4AAAAADKLJdKGOOhYAsAiqWADAUkxZwzrn/08AAACA1anVqKk3dtSxAAAAAO6oyfShzqu5CADATKliAQBL0OZ8dgEAAADgZLUSda6NHXUsAAAAgBM1OV+oo44FAMyaKhYAMHdtzm8XAAAAAI5Wq1Dn3tj5LgAAAAAcpcn5Qx11LABgtlSxAIA5azMfuwAAAABwsFqBmsvGzncBAAAA4CC1+jSXUKfOD1HHAgBmRhULAJirq8xLDXXm9ucEAGycYAcAmKs5hiifBAAAAIBbza2GpY4FAMySjR0AYI7azFMNddoAAMyEYAcAmKM537L5KAAAAADcqFae5ljFUscCAGbFxg4AMDd1W2fOwUn9c7sfAIAZEOwAAHOzhEeKfxIAgBn4rwAAzMsSqk4/lrkXAIAzs7EDAMxJm2Xcr/F0LABgFgQ7AMCc7LIcS6iMAQAAAEzmReb7NKzrno4FAAAAQPpq01JCnVfTBgDgjFSxAIC52GV51LEAAAAAsqwaljoWAAAAwM/aLCvQUccCAGZBFQsAmINdlksdCwAAANi0F1nWlo46FgAAAEBxP8sKctSxAIDZUMUCAM5tl+VrAwAAALBBL7Ks7Zzr5kUAAAAANmYNNSx1LADgbFSxAIBz2mU92gAATEywAwCc0/tZj48CAAAAsBFNllW1OmSaAABMyMYOAHAuV1mfXQAAJiTYAQDO5ZOsz/sBAAAAWLkmy6pYqWMBALNkYwcAOIc11rBeWfNfGwAwM4IdAOAc1vwEKU/HAgAm818BAJhWU+ZF1u1emR8DADAyGzsAwNTarN8uAAATEOwAAFP7JOunjgUATEIVCwCYUpP117BeUccCAEZnYwcAmFKb7dgFAGBkgh0AYEpbqGG9oo4FAIxOFQsAmEqT7dSwXlHHAgBGZWMHAJhKm+3ZBQBgRIIdAGAqV9kedSwAYFSqWADAFC7K/JDtqTWsy6hjAQAjsbEDAExhi9s6VQ20tvrXDgBMQLADAExhy+HGlp4EBgBMTBULABjbVmtYr6hjAQCjsbEDAIytzbbVYKsNAMAIBDsAwNjcmPF0LABgJKpYAMDYag3rItumjgUAjMLGDgAwprqts/VQp6p/D+4HAGBggh0AYExqWL/wdCwAYHCqWADAmF6UaUJVa1j3AgAwIBs7AMBY2gh1XufpWADA4AQ7AMBYduFNqmkAwKBUsQCAsahh/ZY6FgAwKBs7AMAY2gh1rqOOBQAMSrADAIxhF26ijgUADEYVCwAYgxrWzdSxAIDB2NgBAIbWRqhzG3UsAGAwgh0AYGi78DbqWADAIFSxAIChqWG9nToWADAIGzsAwJDuR6hzCHUsAGAQgh0AYEi7cKg2AAB3pIoFAAxJDetwXZnLAADcgY0dAGAoaljHaWJrBwC4I8EOADCUXThWGwCAOxDsAABDeT8cy98zAOBO3NgBAIbQpL+vw/HqnZ0uAAAnsLEDAAzhKpxqFwCAEwl2AIAhfBJOpY4FAJxMFQsAuKsmalh3pY4FAJzExg4AcFdtuCtVNgDgJIIdAOCu1LDu7qMAAJxAFQsAuIsmalhDuVfmxwAAHMHGDgBwF20Yyi4AAEcS7AAAd6GGNRx1LADgaKpYAMCpmqhhDU0dCwA4io0dAOBUbRjaLgAARxDsAACnUsManjoWAHAUVSwA4BRN1LDGoo4FABzMxg4AcIo2jOUqAAAHEuwAAKcQPoxHxQ0AOJgqFgBwrIsyP4Sx1BrWZdSxAIAD2NgBAI5lW2dcNTjz9xgAOIhgBwA4ltBhfOpYAMBBVLEAgGP9O4xNHQsAOIiNHQDgGLZ1plHrWPcDAPAWgh0A4BiCnemoYwEAb6WKBQAcoz4N6yJMQR0LAHgrGzsAwKHqto5QZzrqWADAWwl2AIBDqWFNTx0LALiVKhYAcKgXZZowpVrDuhcAgBvY2AEADtFGqHMOtY7VBgDgBoIdAOAQu3AuKnAAwI1UsQCAQ6hhnY86FgBwIxs7AMDbtBHqnJM6FgBwI8EOAPA2u3Bu6lgAwLVUsQCAt1HDOj91LADgWjZ2AIDbtBHqzIE6FgBwLcEOAHCbXZgLdSwA4DdUsQCA26hhzUdX5jIAAK+xsQMA3OR+hDpz0kQdCwB4g2AHALjJLsxNGwCA16hiAQA3UcOany7qWADAa2zsAADXUcOapya2dgCA1wh2AIDreALTfLUBAPiZYAcAuM5HYa7eDwDAz9zYAQDe1KS/r8N81Ts7XQCAzbOxAwC8SQ1r/nYBAIhgBwD4rU/C3KljAQD/RxULAHhdEzWspVDHAgBs7AAAv9KGpVCZAwAEOwDAr6hhLYcnlwEAqlgAwH80UcNamntlfgwAsFk2dgCAV9qwNLsAAJsm2AEAXlHDWh51LADYOFUsAKBqooa1VOpYALBhNnYAgKoNS7ULALBZgh0AoFLDWi51LADYMFUsAKCJGtbSqWMBwEbZ2AEA2rB0VwEANkmwAwAIBZZPlQ4ANkoVCwC27aLMD2Hpag3rMupYALA5NnYAYNts66xDDej8bwkAGyTYAYBtEwashzoWAGyQKhYAbFutYV2ENVDHAoANsrEDANtVt3WEOutR/7e8HwBgUwQ7ALBdaljro44FABujigUA26WGtT7qWACwMTZ2AGCb1LDWSR0LADZGsAMA26SGtV7+twWADVHFAoBtelGmCWtUa1j3AgBsgo0dANieNkKdNat1rDYAwCYIdgBge3Zh7dSxAGAjVLEAYHvUsNZPHQsANsLGDgBsSxuhzhaoYwHARgh2AGBbdmEr1LEAYANUsQBgW9SwtkMdCwA2wMYOAGxHG6HOlqhjAcAGCHYAYDt2YWvUsQBg5VSxAGA71LC2pytzGQBgtWzsAMA23I9QZ4uaqGMBwKoJdgBgG3Zhq9oAAKuligUA26CGtV1d1LEAYLVs7ADA+qlhbVsTWzsAsFqCHQBYvzZsXRsAYJUEOwCwfp+ErXs/AMAqubEDAOvWpL+vA/XOThcAYFVs7ADAul0FersAAKsj2AGAdVPD4hV1LABYIVUsAFivJmpY/Nq9Mj8GAFgNGzsAsF5t4Nd2AQBWRbADAOulhsWbPgoAsCqqWACwTk3UsLieOhYArIiNHQBYpzZwvV0AgNUQ7ADAOqlhcRN1LABYEVUsAFifJmpY3E4dCwBWwsYOAKxPG7jdLgDAKgh2AGB91LB4G3UsAFgJVSwAWJcmalgcRh0LAFbAxg4ArEsbOMxVAIDFE+wAwLp4s86hVPYAYAVUsQBgPS7K/BA4TK1hXUYdCwAWzcYOAKyHbR2OUYNAXzMAsHCCHQBYD2/SOZavGQBYOFUsAFiPWsO6CBxOHQsAFs7GDgCsQ928EOpwrPo1cz8AwGIJdgBgHVRqOJWnYwHAgqliAcA6qGFxKnUsAFgwGzsAsHxqWNyFOhYALJhgBwCWTw2Lu/I1BAALpYoFAMv3okwTOF2tYd0LALA4NnYAYNnaCHW4u1rHagMALI5gBwCWbRcYhjoWACyQKhYALJsaFkNRxwKABbKxAwDL1Uaow3DUsQBggQQ7ALBcu8Cw1LEAYGFUsQBgudSwGJo6FgAsjI0dAFimNkIdhqeOBQALI9gBgGVSmWEsvrYAYEFUsQBgmdSwGEtX5jIAwCLY2AGA5bkfoQ7jaaKOBQCLIdgBgOXZBcbVBgBYBFUsAFgeNSzG1kUdCwAWwcYOACyLGhZTaNJ/rQEAMyfYAYBlaQPT8HQsAFgAwQ4ALMsngWm8HwBg9tzYAYDlaNLf14Gp1Ds7XQCA2bKxAwDLoRrD1HYBAGZNsAMAy6GGxdTUsQBg5lSxAGAZmqhhcR73yvwYAGCWbOwAwDK0gfPYBQCYLcEOACyDGhbn8lEAgNlSxQKA+WuihsV5qWMBwEzZ2AGA+WsD57ULADBLgh0AmD81LM5NHQsAZkoVCwDmrYkaFvOgjgUAM2RjBwDmrQ3Mwy4AwOwIdgBg3tSwmAt1LACYIVUsAJivizI/BOZDHQsAZsbGDgDM11VgXnxNAsDMCHYAYL68iWZuVAMBYGZUsQBgntSwmKNaw7qMOhYAzIaNHQCYJ9s6zFENHH1tAsCMCHYAYJ68eWaufG0CwIyoYgHAPNUa1kVgftSxAGBGbOwAwPzUjQihDnNVvzbvBwCYBcEOAMyPqgtz5+lYADATqlgAMD9qWMydOhYAzISNHQCYlzZCHeZPHQsAZkKwAwDzsgssg8ogAMyAKhYAzMuLMk1g/moN614AgLOysQMA89FGqMNy1DpWGwDgrAQ7ADAfu8CyqGMBwJmpYgHAfKhhsTTqWABwZjZ2AGAe2gh1WB51LAA4M8EOAMzDLrBM6lgAcEaqWAAwD2pYLJU6FgCckY0dADi/NkIdlksdCwDOSLADAOenysLS+RoGgDNRxQKA81PDYum6MpcBACZnYwcAzut+hDosXxN1LAA4C8EOAJzXLrAObQCAyaliAcB5qWGxFl3UsQBgcjZ2AOB81LBYkya+ngFgcoIdADifNrAuuwAAkxLsAMD5fBJYl/cDAEzKjR0AOI8m/X0dWJt6Z6cLADAJGzsAcB5XgXXaBQCYjGAHAM7jo8A6qWMBwIRUsQBgek3UsFi3e2V+DAAwOhs7ADC9NrBuuwAAkxDsAMD0PA2LtVM1BICJqGIBwLSaqGGxDepYADABGzsAMK02sA27AACjE+wAwLTUsNgKdSwAmIAqFgBMp4kaFtuijgUAI7OxAwDTaQPbsgsAMCrBDgBMRw2LrVHHAoCRqWIBwDQuyvwQ2B51LAAYkY0dAJjGVWCbfO0DwIgEOwAwDW9u2SoVRAAYkSoWAIxPDYstqzWsy6hjAcAobOwAwPhs67BlNdj0PQAAIxHsAMD4vKll694PADAKVSwAGF+tYV0EtksdCwBGYmMHAMZVt3WEOmxd/R64HwBgcIIdABiXGhb0PB0LAEagigUA41LDgp46FgCMwMYOAIynjVAHXlHHAoARCHYAYDy7AK9TTQSAgaliAcB4XpRpArxSa1j3AgAMxsYOAIyjjVAH3lTrWG0AgMEIdgBgHLsA11HHAoABqWIBwDjUsOB66lgAMCAbOwAwvDZCHbiJOhYADEiwAwDD2wW4jToWAAxEFQsAhqeGBbdTxwKAgdjYAYBhtRHqwNuoYwHAQAQ7ADAsFRM4TBsA4M5UsQBgWGpYcJiuzGUAgDuxsQMAw7kfoQ4cqomtHQC4M8EOAAxnF+AYbQCAO1HFAoDhqGHBcbqoYwHAndjYAYBhNBHqwLGa+L4BgDsR7ADAMDwNC06zCwBwMsEOAAzjkwCneD8AwMnc2AGAu2vS39cBTlPv7HQBAI5mYwcA7k4NC+5mFwDgJIIdALi7jwLchToWAJxIFQsA7qaJGhYM4V6ZHwMAHMXGDgDcTRtgCLsAAEcT7ADA3XgaFgxDpREATqCKBQCna6KGBUNSxwKAI9nYAYDTtQGGtAsAcBTBDgCcTg0LhqWOBQBHUsUCgNM0UcOCMahjAcARbOwAwGnaAGPYBQA4mGAHAE6jhgXjUMcCgCOoYgHA8S7K/BBgDLWGdRl1LAA4iI0dADjeVYCx1ODU9xgAHEiwAwDH86YTxqXqCAAHUsUCgOOoYcH41LEA4EA2dgDgOG2AsaljAcCBBDsAcBxvNmEa7wcAeCtVLAA4Tq1hXQQYmzoWABzAxg4AHK5u6wh1YBr1e+1+AIBbCXYA4HBqWDAtT8cCgLdQxQKAw6lhwbRqDeteAIAb2dgBgMO0EerA1Or3XBsA4EaCHQA4zC7AOahAAsAtVLEA4DAvyjQBpqaOBQC3sLEDAG/XRqgD56KOBQC3EOwAwNvtApyTOhYA3EAVCwDeTg0LzksdCwBuYGMHAG7XRqgD56aOBQA3EOwAwO12AeZAHQsArqGKBQC3U8OCeVDHAoBr2NgBgJu1EerAXKhjAcA1BDsAcDPVD5iXNgDAr6hiAcDN1LBgXroylwEA/sPGDgBc736EOjA3TWztAMCvCHYA4Hq7AHPUBgD4D8EOAFzv/QBz9EkAgP9wYwcAfqtJf18HmKd6Z6cLAGBjBwCu4WlYMG+7AAD/R7ADAL+l6gHzpioJAD9TxQKAX2uihgVLoI4FALGxAwBvUsOCZfC9CgAR7ADAmz4KsAS+VwEgqlgA8LomaliwJPfK/BgA2DAbOwDwizbAkuwCABsn2AGAX3gaFiyLOhYAm6eKBQC9JmpYsETqWABsmo0dAOi1AZZoFwDYMMEOAPTUsGCZ1LEA2DRVLABQw4KlU8cCYLNs7ACAGhYs3S4AsFGCHQBQw4KlU8cCYLNUsQDYuosyPwRYslrDuow6FgAbZGMHgK27CrB0NaD1vQzAJgl2ANg6bwZhHVQqAdgkVSwAtkwNC9ZDHQuATbKxA8CWtQHWoga1bQBgYwQ7AGyZGhasi6djAbA5qlgAbFmtYV0EWAt1LAA2x8YOAFtVt3WEOrAu9Xv6fgBgQwQ7AGyVGhask6djAbApqlgAbJUaFqxTrWHdCwBshI0dALaojVAH1srTsQDYFMEOAFu0C7BmqpYAbIYqFgBb9KJME2Ct1LEA2AwbOwBsTRuhDqydOhYAmyHYAWBrdgG2QB0LgE1QxQJga9SwYBvUsQDYBBs7AGxJG6EObIU6FgCbINgBYEt2AbZEHQuA1VPFAmBL1LBgW9SxAFg9GzsAbMX9CHVga9SxAFg9wQ4AW7ELsEVtAGDFVLEA2Ao1LNimrsxlAGClbOwAsAVqWLBdTWztALBigh0AtmAXYMvaAMBKCXYA2IL3A2zZRwGAlXJjB4C1a9Lf1wG2rd7Z6QIAK2NjB4C1uwqASiYAKyXYAWDtPgmASiYAK6WKBcCaNVHDAn6hjgXA6tjYAWDN1LCA1/mZAMDqCHYAWDNPwgFe52cCAKujigXAWjVRwwJ+616ZHwMAK2FjB4C1agPwW7sAwIoIdgBYK0/DAq6jjgXAqqhiAbBGTdSwgJupYwGwGjZ2AFijNgA32wUAVkKwA8AaqWEBt1HHAmA1VLEAWJsmaljA26ljAbAKNnYAWJs2AG+3CwCsgGAHgLW5CsDbqWMBsAqqWACsyUWZHwLwdrWGdRl1LAAWzsYOAGtiWwc4VA2C/cwAYPH+n5//0S82ANbA07CAY/y/AYCFe72K9XmZPwcAAACAuat14sdv3thpynz38z8CAAAAMD9dmQ/qP75zzb9Rj8g9CQAAAABzUzObB+kznPz3DX/Qt2Velrmf/v4OAAAAAOdTq1d/KPNlmX+9+hff9rjzpszf0wc8AAAAAExvX+bT/Lyl87r/fst/sKZBf0kfALUBAAAAYEqP04c6P173b75tY+d1dWunbu80AQAAAGBMXfpAZ3/bH/S2jZ3X/bPMszL3opoFAAAAMJanZT4s8/xtf+AxwU7148//5T+V+X0AAAAAGErNXR6VeZjXDiTf5pgq1puaMt9FNQsAAADgrroyH+SaA8m3eSen68pcpn9+OgAAAACnqdnKgxwZ6lTHVrGu822Zl+nv7lwEAAAAgEPU6tUfynyZA6tXb7pLFetNTZmv47HoAAAAAG+zT//Uqy53MMTGzis1ZfomfVjUBgAAAIDr1OPIn6XPUu5kyI2d19Va1t/jsDIAAADAK136LZ19BjLkxs7r/lnmWZl76UMeAAAAgC17WubDMs8zoLGCnaquE9U/6Z/KvFfm3QAAAABsS81HHqWvX510IPk2Y1Wx3tSU+S6qWQAAAMB2fF/mKnc8kHybdzKNrsxl+ueyAwAAAKxdzUDajBjqVGNWsa7zbZmX6e/uXAQAAABgXWr16g9lvswI1as3TVXFelNT5ut4LDoAAACwHvv0T73qMpGpN3ZeqenVN+mDpTYAAAAAy1aPI3+WPvOYzLk2dl7XxGFlAAAAYJm69Fs6+5zBuTZ2XleTrGdl7qW/vQMAAACwBLWN9HGZ5zmTOQQ7VQ13npb5qcx7Zd4NAAAAwDzVHONRmT9mggPJt5lDFetNTVSzAAAAgHn6vsxVJjyQfJt3Mj9dmcsyjwMAAAAwH0/SPwSqy0zMpYp1nX2Zl+nv7lwEAAAA4Dxq9erDMl/lzNWrN82xivWmpszX8Vh0AAAAYHr79E+96jJDc97YeaWmYvXKdA2h2gAAAABM42GZz9JnE7O0hI2d1zVxWBkAAAAYV5d+S2efmVvCxs7rakL2rMy99Ld3AAAAAIZUW0Mfl3meBVhasFPVcOdpmZ/KvFfm3QAAAADcTc0bHpX5Y2Z2IPk2S6tivamJahYAAABwN9+XucpMDyTf5p0sW1fmsszjAAAAABzvSfpzL10WaIlVrOvs06drtZp1EQAAAIDb1erVh2W+yoKtJdip6lGjeli5pmxNAAAAAK63Tx/q/CMLt6Zgp6ppW71eXW8HtQEAAAD4tYdlPkufISze0o8n36aJw8oAAABAr0v/GPPFb+m8bunHk2/TlXmQfoMHAAAA2K6aDdSMYFWhTrW2Ktab6nPnn5b5Kf1h5XcDAAAAbEWtWz0q88f0GcHqrLmK9aYmqlkAAACwFfXp2VdZ6GPMD7XmKtabujKXZR4HAAAAWLMn6Z+a3WXl1l7Fus4+fWpXq1kXAQAAANaiVq/qY8y/ykZsMdipnpd5lj69awIAAAAs3T59qLO6A8m32WqwU9UUr17FrneG2gAAAABL9bDMZ+nf62/Klo4n36aJw8oAAACwNF2Zj7OxLZ3Xbel48m269M+z/yYAAADAEtQDyfW9/GZDnWrLVaw31efZPy3zMn01690AAAAAc1PrVo/KfJH+vfymqWJdr4lqFgAAAMxNfcr1VTbwGPNDqWJdrytzWeZxAAAAgDmo1av6dOsu/Icq1u326dPA98pcBAAAAJhal/5A8lfhNwQ7b/e8zLP0tazfBQAAAJjKPht/6tXbCHYOUw8z/S39TaI2AAAAwNgelvks/XtybuB48vGaOKwMAAAAY+liS+dgjicfryvzoMw3AQAAAIZUDyTX99xCnQOpYp3mX2WelnmZvpr1bgAAAIBT1brVozJfpH/PzYFUse6uiWoWAAAAnKo+jfoqHmN+ElWsu+vKXJZ5HAAAAOAYtXp1P0Kdk9nYGVZb5uvY3gEAAIDbdGU+Tf84c+7AjZ1hdWWepQ92fhcAAADgTfsyH5R5Hu5MsDO8evDpb+m3odoAAAAArzws81kcSB6MKta4mjisDAAAAF2Zj+Mx5oNzPHlcXZkH6Y9BAQAAwBbV98T1vbFQZwSqWOOr62XflnmZvpr1bgAAAGD96qmSWrv6U1SvRqOKNa0mqlkAAACs3/dlruIx5qNTxZpWV+ayzOMAAADAOtXq1f0IdSZhY+d82jJfx/YOAAAA69CV+TT948yZiBs759OVeVbmXvokEwAAAJZqX+aDMs/DpAQ751UPST1NvznVBgAAAJalvq99lP5IsgPJZ6CKNR9NHFYGAABgOboyH8djzM/K8eT56Mo8SH9kCgAAAOasvnet72GFOmemijUvdW3t2zIv09/duQgAAADMR61e1drVn6J6NQuqWPPVRDULAACA+dinf+pVF2ZDFWu+ujKXZR4HAAAAzqtWr+pTr7owKzZ2lqEt83Vs7wAAADCtLv2Wzj7Mkhs7y9CVeVbmXvrbOwAAADC2ffotnedhtgQ7y1EPVD1Nv2XVBgAAAMZR338+Sn8k2YHkmVPFWqYmDisDAAAwvK7Mx/EY88VwPHmZujIP0h+vAgAAgCHU95j1vaZQZ0FUsZarrsN9W+Zl+rs7FwEAAIDj1erVH8p8GdWrxVHFWoemzN/jsDIAAADH2ad/6lUXFsnGzjrUdPUvcVgZAACAw9XqVd3U+TEslo2d9WnLfB2HlQEAALhel35LZx8Wz8bO+nRlnpW5F9UsAAAAfu1pmQ/LPA+rINhZp7pGV79Zfyrz+wAAALB19X3iozIP40DyqqhirV9T5ruoZgEAAGxVV+bjeIz5Kr0T1q4r8yD9USwAAAC2pb4XrO8JhTorpYq1DXXN7tsyL9Pf3bkIAAAAa1arV/WJV19G9WrVVLG2pynz9zisDAAAsFb79E+96sLq2djZnpra/iV9qNcGAACANXmcPtT5MWyCjZ1tq1s7dXunCQAAAEvWpQ909mFTbOxs2z/LPCtzL6pZAAAAS/W0zIdlnofNEexQ1/PqD4Gfyvw+AAAALEV9P/eozMM4kLxZqli8rinzXVSzAAAA5q4r80EcSN68dwK/6MpclnkSAAAA5qq+Z3sQoQ5RxeJ635Z5mf7uzkUAAACYg1q9+kOZL6N6xc9UsbhNk/6pWQ4rAwAAnNc+/VOvusBrbOxwm5oG/yV9ANgGAACAc3icPtT5MfAGGzscqm7t1O2dJgAAAEyhSx/o7AM3sLHDof5Z5lmZe1HNAgAAGNvTMh+WeR64hWCHY9S1v/rD5acy75V5NwAAAAypvu96VOZhHEjmAKpYnKop811UswAAAIbyfZmrOJDMEd4JnKYrc1nmSQAAALir+t6qjVCHI6licVfflnmZ/u7ORQAAADhGrV79ocyXUb3iBKpYDKUp83U8Fh0AAOBQ+/RPveoCJ7Kxw1BqyvxN+rCwDQAAALepx5E/S/9eCk5mY4cx1FrW3+OwMgAAwJu69Fs6+8AAbOwwhn+WeVbmXvqQBwAAgORpmQ/LPA8MRLDDWOo6Yf2h9VOZ98q8GwAAgG2q748epa9fOZDMoFSxmEJT5ruoZgEAANvzfZmrOJDMSN4JjK8rc1nmSQAAALajvgdqI9RhRKpYTOnbMi/T3925CAAAwDrV6lW9pfNVVK8YmSoW59CU+Toeiw4AAKzPPv1Tr7rABGzscA41vf4mfbDYBgAAYB3qceTP0r/ngUnY2OHcmjisDAAALFuXfktnH5iYjR3OrSbZz8rcS397BwAAYElqG+HjMs8DZyDYYQ5quPO0zE9l3ivzbgAAAOatvo95VOaPcSCZM1LFYm6aqGYBAADz9n2ZqziQzAy8E5iXrsxlmccBAACYnyfpHwLTBWZAFYu52pd5mf7uzkUAAADOq1avPizzVVSvmBFVLOauKfN1PBYdAAA4n336p151gZmxscPc1VS8XpmvIWQbAACAaT0s81n69yYwOzZ2WJImDisDAADT6NJv6ewDM+Z4MkvSlXmQfoMHAABgLPU9R33vsQ/MnCoWS1OPlD0t81OZ98q8GwAAgGHUutWjMn+MA8kshCoWS9ZENQsAABjG92Wu4kAyC6OKxZJ1ZS7LPA4AAMDpnpS5H6EOC6SKxRrs06frtZp1EQAAgMPU6tWHZb4KLJRgh7V4XuZZ+pS9CQAAwO326UOdfwQWTLDDmtS0vV6vr7ej2gAAAFzvYZnP0r+HgEVzPJm1auKwMgAA8GtdmY9jS4cVcTyZterKPEi/wQMAAFDfG9T3CEIdVkUVizX7V5mnZX5Kf1j53QAAAFtT61aPyvwx/XsEWBVVLLaiiWoWAABsTX167lU8xpwVU8ViK7oyl2UeBwAA2IIn6Z+a2wVWTBWLrdmnT+1rNesiAADA2nTpDyR/FdgAwQ5b9LzMs/S1rN8FAABYi3089YqNEeywVfWA2t/S35lqAwAALN3DMp+lf60Pm+F4MjisDAAAS9bFlg4b5ngy9L8IHpT5JgAAwJLUA8n1tbxQh81SxYLev8o8LfMyfTXr3QAAAHNV61aPynyR/rU8bJYqFvxWE9UsAACYq/qU26t4jDn8H1Us+K2uzGWZxwEAAOakVq/uR6gD/6GKBTfbp/804L0yFwEAAM6lS38g+asAvyLYgds9L/MsfS3rdwEAAKa2j6dewY0EO/B29TDb39LfpGoDAABM5WGZz9K/Jgeu4XgyHKeJw8oAADC2LrZ04CCOJ8NxujIP0h9tAwAAhldfa9fX3EIdOIAqFhzvX2W+LfMyfTXr3QAAAHdV61a1dvWn9K+5gQOoYsHdNFHNAgCAu6pPo72Kx5jD0VSx4G66MpdlHgcAADhFrV7dj1AHTmJjB4bTlvk6tncAAOAQXZlP0z/OHDiRGzswnK7Ms/TBzu8CAADcZF/mgzLPA9yJYAeGVQ++/S39NlwbAADgTQ/TH0l2IBkGoIoF42nisDIAALzSlfk4HmMOg3I8GcbTlXmQ/hgcAABsWX1NXF8bC3VgYKpYMK66XvptmZfpL/1fBAAAtqOeKqi1qz9F9QpGoYoF02mimgUAwHbs0z/1qgswGlUsmE5X5rLM4wAAwLrV6lV96lUXYFQ2duA82jJfx/YOAADr0qXf0tkHmIQbO3AeXZlnZe6lv70DAABLt0+/pfM8wGQEO3A+9ZDc0/Sbc20AAGCZ6uvaR+mPJDuQDBNTxYJ5aOKwMgAAy9OV+TgeYw5n43gyzENX5kH6I3MAALAE9bVrfQ0r1IEzUsWC+ahrq9+WeZn+7s5FAABgfmr1qtau/hTVKzg7VSyYpyaqWQAAzM8+/VOvugCzoIoF89SVuSzzOAAAMA+1elWfetUFmA0bOzB/bZmvY3sHAIDz6NJv6ewDzI4bOzB/XZlnZe6lv70DAABTeVrmwzLPA8ySYAeWoR6oq79Ufyrz+wAAwLjq689HZR7GgWSYNVUsWJ4mDisDADCerszH8RhzWATHk2F5ujIP0h+vAwCAIdXXmPW1plAHFkIVC5aprsN+W+Zl+rs7FwEAgNPV6tUfynwZ1StYFFUsWL6mzN/jsDIAAKfZp3/qVRdgcWzswPLVT1f+kj6obQMAAIer1au6qfNjgEWysQPr0pb5Og4rAwBwuy79ls4+wKLZ2IF16co8K3MvqlkAAFzvaZkPyzwPsHiCHVifukZbf1n/VOb3AQCAXn2d+KjMwziQDKuhigXr1pT5LqpZAABb15X5OB5jDqvzToA168pcpj+KBwDANtXXgg8i1IFVUsWCbfi2zMv0d3cuAgDAFtTqVX3i1ZdRvYLVUsWCbWnK/D0OKwMArN0+/VOvugCrZmMHtqV+avOX9KFuGwAA1uhx+lDnxwCrZ2MHtqtu7dTtnSYAAKxBlz7Q2QfYDBs7sF3/LPOszL2oZgEALN3TMh+WeR5gUwQ7sG11Pbe+CPipzO8DAMDS1Ndzj8o8jAPJsEmqWMArTZnvopoFALAUXZkP4kAybNo7Aeh1ZS7LPAkAAHNXX7M9iFAHNk8VC3jTt2Vepr+7cxEAAOakVq/+UObLqF4BUcUCbtakf2qWw8oAAPOwT//Uqy4AP1PFAm7SpV/vfRwAAM6tHkd2Twf4DRs7wCHq1k7d3mkCAMCUuvRbOvsAXMONHeAQ/yzzrMy9qGYBAEzlaZkPyzwPwA0EO8Ch6qG++uLipzLvlXk3AACMob7uepS+fuVAMnArVSzgFE2Z76KaBQAwtO/LXMUtHeBAjicDp+jKXJZ5EgAAhlJfW7UR6gBHUMUC7uLbMi/T3925CAAAp6jVqz+U+TKqV8CRVLGAITRlvk7/CRMAAIfbp3/qVReAE9jYAYZQP2X6Jn1Y3AYAgEPU48ifpX8tBXASGzvA0Got6+9xWBkA4CZd+i2dfQDuyMYOMLR/lnlW5l76kAcAgF88LfNhmecBGIBgBxhDXSeuL1p+KvNemXcDALBt9fXRo/T1KweSgcGoYgFja8p8F9UsAGC7vi9zFQeSgRG8E4BxdWUuyzwOAMD2PEn/cIkuACNQxQKmsi/zMv3dnYsAAKxbrV7VWzpfRfUKGJEqFjC1pszX8Vh0AGC99umfetUFYGQ2doCp1U+vvkkfLLcBAFiXehz5s/SveQBGZ2MHOKcmDisDAOvQpd/S2QdgQjZ2gHOqn2Q9K3Mv/e0dAIAlqtvIH5d5HoCJCXaAc6vhztMyP5V5r8y7AQBYhvo65lGZP8aBZOBMVLGAOWmimgUALMP3Za7iQDJwZu8EYD66MpdlHgcAYL6epH8IRBeAM1PFAuZoX+Zl+rs7FwEAmIdavfqwzFdRvQJmQhULmLOmzNfxWHQA4Pz26Z961QVgRmzsAHNWPxWrT5moIXQbAIDzeFjms/SvTQBmxcYOsBRNHFYGAKbVpX+M+T8CMFOOJwNL0ZV5kH6DBwBgbPU1R33tIdQBZk0VC1iSeqTwaZmfyrxX5t0AAAyr1q0elfljHEgGFkAVC1iqJqpZAMCwvi9zFQeSgQVRxQKWqitzWeZxAADu7kmZ+xHqAAujigUs3T79p2u1mnURAIDj1OrVh2W+CsACCXaANXhe5ln6T9maAAAcZp8+1HEgGVgswQ6wFvXTtvr0ino7rA0AwO0elvks/WsIgMVyPBlYoyYOKwMA1+vKfBxbOsBKOJ4MrFFX5kH6DR4AgFfqgeT6GkGoA6yGKhawVv8q87TMy/TVrHcDAGxVrVs9KvNF+tcIAKuhigVsQRPVLADYqvr0zKt4jDmwUqpYwBZ0ZS7LPA4AsCW1elWfmtkFYKVUsYAt2af/1O69MhcBANaqS38g+asArJxgB9ia52Wepa9l/S4AwNrs46lXwIYIdoAtqgcU/5b+zlgbAGAtHpb5LP3veoBNcDwZ2LomDisDwNJ1saUDbJTjycDWdWUelPkmAMAS1QPJ9Xe5UAfYJFUsgORfZZ6WeZm+mvVuAIC5q3WrR2W+SP+7HGCTVLEAfq2JahYAzF19yuVVPMYcQBUL4A1dmcsyjwMAzFGtXt2PUAfg/9jYAbhZW+br2N4BgDnoynya/nHmAPzMjR2Am3VlnqUPdn4XAOBc9mU+KPM8APyKYAfgdvUw49/Sbzi2AQCm9rDMZ3EgGeBaqlgAh2visDIATKUr83E8xhzgVo4nAxyuK/Mg/dFGAGA89Xdt/Z0r1AF4C1UsgOPUNfBvy7xMX816NwDAUGoFutau/hTVK4CDqGIBnK6JahYADOX7MlfxGHOAo6hiAZyuK3NZ5nEAgLuo1av7EeoAHM3GDsAw2jJfx/YOAByjK/Np+seZA3ACN3YAhtGVeZY+2PldAIC32Zf5oMzzAHAywQ7AcOrBx7+l34ZsAwDc5GH6I8kOJAPckSoWwDiaOKwMAG/qynwcjzEHGIzjyQDj6Mo8SH8MEgDofyfW341CHYABqWIBjKeul39b5mX6J31cBAC2p1aVa+3qT1G9AhicKhbANJqoZgGwPfv0T73qAsAoVLEAptGVuSzzOACwDbV6VZ961QWA0djYAZheW+br2N4BYJ269Fs6+wAwOjd2AKbXlXlW5l762zsAsBb79Fs6zwPAJAQ7AOdRD0k+Tb852QYAlu9h+iPJDiQDTMiNHYDzehoAWAePMQc4A8EOwHntAgDr0AaAyQl2AM7r/QDAOnwSACbnqVgA59OUeREAWI/LeLw5wKRs7ACcz1UAYF12AWBSgh2A87GyDsDaqBgDTEwVC+A8mqhhAbBO6lgAE7KxA3AealgArJXfcQATEuwAnMdHAYB18jsOYEKqWADTa6KGBcC63SvzYwAYnY0dgOm1AYB12wWASQh2AKbnaVgArJ06FsBEVLEAptVEDQuAbVDHApiAjR2AabUBgG3YBYDRCXYApqWGBcBWqGMBTEAVC2A6TdSwANgWdSyAkdnYAZhOGwDYll0AGJVgB2A6VwGAbVHHAhiZKhbANC7K/BAA2JZaw7qMOhbAaGzsAEzDtg4AW1Q/2PA7EGBEgh2AaXhRC8BWeSIkwIhUsQDGp4YFwJapYwGMyMYOwPjaAMB21Q842gAwCsEOwPjUsADYOk/HAhiJKhbA+GoN6yIAsF3qWAAjsbEDMK66rSPUAWDr6u/C+wFgcIIdgHGpYQFAz9OxAEagigUwLjUsAOjVGta9ADAoGzsA42kj1AGAVzwdC2AEgh2A8ewCALxORRlgYKpYAON5UaYJAPCKOhbAwGzsAIyjjVAHAN6kjgUwMMEOwDh2AQCuo44FMCBVLIBxqGEBwPXUsQAGZGMHYHhthDoAcBN1LIABCXYAhrcLAHAbdSyAgahiAQxPDQsAbqeOBTAQGzsAw7ofoQ4AvI06FsBABDsAw9oFADhEGwDuTBULYFhqWABwmK7MZQC4Exs7AMNRwwKAwzWxtQNwZ4IdgOHsAgAcow0AdyLYARjO+wEAjvFRALgTN3YAhtGkv68DAByn3tnpAsBJbOwADOMqAMApdgHgZIIdgGF8EgDgFKrMAHegigVwd03UsADgLtSxAE5kYwfg7tSwAOBu/C4FOJFgB+DuPNEDAO7G71KAE6liAdxNEzUsABjCvTI/BoCj2NgBuJs2AMAQdgHgaIIdgLvxNCwAGIY6FsAJVLEATtdEDQsAhqSOBXAkGzsAp2sDAAxpFwCOItgBOJ0aFgAMSx0L4EiqWACnaaKGBQBjUMcCOIKNHYDTtAEAxrALAAcT7ACc5ioAwBjUsQCOoIoFcLyLMj8EABhDrWFdRh0L4CA2dgCOZ1sHAMZTP0DxuxbgQIIdgON5sQkA4/LkSYADqWIBHEcNCwDGp44FcCAbOwDHaQMAjK1+kHI/ALyVYAfgOGpYADANdSyAA6hiARyn1rAuAgCMTR0L4AA2dgAOV7d1hDoAMA11LIADCHYADqeGBQDTUscCeAtVLIDDvSjTBACYSq1h3QsAN7KxA3CYNkIdAJharWO1AeBGgh2Aw+wCAJyDKjTALVSxAA6jhgUA56GOBXALGzsAb9dGqAMA56KOBXALwQ7A2+0CAJyTOhbADVSxAN5ODQsAzksdC+AGNnYAbtdGqAMA56aOBXADwQ7A7XYBAOZAHQvgGqpYALdTwwKAeVDHAriGjR2Am92PUAcA5kIdC+Aagh2Am+0CAMxJGwB+RRUL4GZqWAAwL12ZywDwHzZ2AK6nhgUA89PE1g7Arwh2AK63CwAwR20A+A/BDsD13g8AMEd+RwO8xo0dgN9q0t/XAQDmqd7Z6QKAjR2Aa1wFAJizXQD4P4IdgN/6JADAnKljAfxMFQvg15qoYQHAEqhjAcTGDsCb2gAAS6A6DRDBDsCb1LAAYBk+CgCqWACvaaKGBQBLcq/MjwHYMBs7AL9oAwAsyS4AGyfYAfiFGhYALIs6FrB5qlgAvSZqWACwROpYwKbZ2AHotQEAlmgXgA0T7AD01LAAYJnUsYBNU8UCUMMCgKVTxwI2y8YOgBoWACzdVQA2SrAD4MUgACydSjWwWapYwNZdlPkhAMCS1RrWZdSxgA2ysQNsnW0dAFi++kGN3+nAJgl2gK3zIhAA1kEdC9gkVSxg6/4dAGAN1LGATbKxA2yZbR0AWI9ax7ofgI0R7ABbJtgBgHVRxwI2RxUL2LL6NKyLAABroY4FbI6NHWCr6raOUAcA1kUdC9gcwQ6wVWpYALBO6ljApqhiAVv1okwTAGBtag3rXgA2wsYOsEVthDoAsFa1jtUGYCMEO8AW7QIArJnKNbAZqljAFqlhAcC6qWMBm2FjB9iaNkIdAFg7dSxgMwQ7wNbsAgBsgToWsAmqWMDWqGEBwDaoYwGbYGMH2JI2Qh0A2Ap1LGATBDvAluwCAGyJOhaweqpYwJaoYQHAtnRlLgOwYjZ2gK24H6EOAGxNE3UsYOUEO8BW7AIAbFEbgBVTxQK2Qg0LALapizoWsGI2doAtUMMCgO1qYmsHWDHBDrAFnogBANvWBmClBDvAFnwUAGDL3g/ASrmxA6xdk/6+DgCwbfXOTheAlbGxA6ydGhYAUO0CsEKCHWDtPgkAgDoWsFKqWMCaNVHDAgB+oY4FrI6NHWDN2gAA/EJFG1gdwQ6wZmpYAMDrPCkTWB1VLGCtmqhhAQC/da/MjwFYCRs7wFq1AQD4rV0AVkSwA6yVGhYAcB11LGBVVLGANWqihgUA3EwdC1gNGzvAGrUBALjZLgArIdgB1kgNCwC4jToWsBqqWMDaNFHDAgDeTh0LWAUbO8DatAEAeLurAKyAYAdYGy/SAIBDqG4Dq6CKBazJRZkfAgDwdrWGdRl1LGDhbOwAa2JbBwA4VP1AyGsHYPEEO8CaeHEGABxDHQtYPFUsYE1qDesiAACHUccCFs/GDrAWdVtHqAMAHKO+drgfgAUT7ABroYYFAJxCHQtYNFUsYC3UsACAU6hjAYtmYwdYAzUsAOBU6ljAogl2gDVQwwIA7sJrCWCxVLGANXhRpgkAwGlqDeteABbIxg6wdG2EOgDA3dQ6VhuABRLsAEu3CwDA3aljAYukigUsnRoWADAEdSxgkWzsAEvWRqgDAAxDHQtYJMEOsGS7AAAMRx0LWBxVLGDJ1LAAgCGpYwGLY2MHWKo2Qh0AYFjqWMDiCHaApdoFAGB46ljAoqhiAUulhgUAjKErcxmAhbCxAyzR/Qh1AIBxNFHHAhZEsAMs0S4Ah3tS5nEADtcGYCFUsYAlUsMCDtGV+bTM/uf/u97N+HP8/ADeros6FrAQNnaApVHDAg6xL/NBfgl1qqc//2tPA3C7JrZ2gIUQ7ABL0wbgdg/TBzjdNf9e/dc+jmoW8HZtABZAFQtYmv9Nv7UD8KYufWjzjwP/+KbMd7EFCFxvnz4kBpg1GzvAkjQR6gDXqweSH+TwUKfqfv7PPAnAb7UR/AILINgBluQqAL/2Y/oDyZ///M9P+c9//vN/xyn/eWDddgGYOVUsYEnUsIDXfZ8+8O0yjCaqWcCv7aOOBcycjR1gKZoIdYBf1PpU/ZnQZThd+scbO6wMvNKWuQjAjAl2gKVoA9CHL/XT888zni9y81O1gO3ZBWDGBDvAUnwSYOv26Y8d7zO+ffpw52mArfsoADPmxg6wBE2ZFwG27GGZL3MeX5T5nwBbdi8OrAMzZWMHWII2wFZ16bd0zhXqVF+kv73TBdiqXQBmSrADLIEaFmxTPZBcQ51/5Py69H8uTwJskToWMFuqWMDcNVHDgq2pdYdavfpr5mlX5s/xpBzYGnUsYJZs7ABz1wbYkn36zZi/Zr7+mv7PsQuwJbsAzJBgB5g7NSzYjlpzWspjxrv0d3ceB9gKdSxgllSxgDmrNYcfAqxdV+bTTPMY8zG0Zb5OXx0F1k0dC5gdGzvAnF0FWLt9+lrTPsu1T79p9E2AtfPaBJgdwQ4wZ148wXq9OpD8Qdbx6XeX/v6Gahasm4o4MDuqWMBcqWHBenVlPs48HmM+hqbMd1HNgjWqQfRl1LGAGbGxA8yVbR1Yp3oguVav1hrqVF36v8YnAdamfvDkNQowK4IdYK68aIJ1qZ9u1wPJn2cbn3TXv8b611r/mrsAa+I1CjArqljAXNUa1kWANdhn2wFHE9UsWBN1LGBWbOwAc1Q/CRPqwDrUOlI9kNxlu7r0bwIdVoZ1qK9R7gdgJgQ7wBxZcYbl69IHOp+HV76IkAvWwtOxgNlQxQLmSA0Llu1p+uqVmsL1mvQhjzeGsFzqWMBs2NgB5kYNC5arvsF5mP5R5t7s3Kwrs0v/9wpYJnUsYDYEO8DcqGHBMnXpa0ZfhkPVv1f1E/8uwBJ5zQLMgmAHmJv3AyxNPZD8oMw/wrG69H/vngRYGnVKYBYEO8CctPE4YFiSWreqtavPo3p1F/XvXf17uOVHwsMS1TpWG4AzE+wAc7ILsBT79JsmT8NQ/pq+zmbzCZZDHQs4O8EOMCdqWLAMtTbksd3j6NIHZo8DLIE6FnB2gh1gLtqoYcHcdekDnc/D2L6I8AyWQB0LODvBDjAXuwBzVitXdZNkH6ayTx/ufBNgztSxgLP6rwDMw4vY2IE5qod9ay3IY8zPq25J/TnAHNWfk/cCcCaCHWAO2jLfBZibLv1TrxzznYcm/c/KJsDc1O26fQDOQBULmAMrzDA/9UByrV4JdeajS/+/yZMAc+O1DHA2NnaAOVDDgvmolYJP4zHmc7cr8z/xsxPmoitzGYAzsLEDnNv9eGMCc7FPvxEi1Jm/v6avftiognlo4ulYwJkIdoBz2wWYg3og2eO1l6VLH8Q9DjAHbQDOQBULODc1LDivLn31ah+WrG4//j1+nsI5dVHHAs7Axg5wTmpYcF61clU3PvZh6Wolq25cfRPgXJr0r20AJiXYAc6pDXAO9UDyw/SPMv8xrEWXvt76MMC5eDoWMDlVLOCc/jc+2YKpdXFLZwuaMt/FViRMbZ/+ZyzAZGzsAOfSRKgDU3uSvnrVhbXr0t/6eBJgSm0EqsDE/jsA57Er8/sAU6h1qz+U+bLMv8KWfFvmZfog/SLAFH6K22XAhGzsAOfyUYAp7NNv6TwNW/XX9NWQfwSYwvsBmJAbO8A5NOkfcw6M63GZLwK/+KLM/wQY2704Tg9MxMYOcA5tgDF16Tc0vgj82hdxZwmmsAvARAQ7wDl8EmAstXJV37jvA9erlawa/H0TYCwq58BkVLGAqTVRw4Ix1JX/Wr36MnC4z9NXsxxWhuGpYwGTsLEDTK0NMLTv02/pCHU4Vv2aUc2CcewCMAHBDjA1NSwY1pP0gWkXOE1X5jL91xIwHHUsYBKqWMCUmqhhwVDqev+n8RhzhrVLX81qAgxBHQsYnY0dYEptgCHs09dnhDoM7a/pDyvvAwxhF4CRCXaAKalhwd09TP/GuwuMo0v/NfY4wF2pYwGjU8UCplKfuPJDgFN16atX+8B07pf5e1Sz4C7UsYBR2dgBpnIV4FS1clWrV/vAtP6RfnvnmwCn8hoIGJVgB5iKFzVwvPoJb61efRyf9nI+Xfo7IfVr0dchHE8VHRiVKhYwBTUsON736QPRLjAfTZnvopoFx6iB6GUEo8BIbOwAU7CtA8d5kv4pcl1gXrr0b1AdVobD1Q+4vBYCRiPYAabgxQwcpn6aW++ZfB6f7DJvX6Q/5t0FOMT7ARiJKhYwhVrDughwm328UWZ5mjJfp98wA26mjgWMxsYOMLa6rSPUgdvVo7R1U6cLLEuX/mtXNQtuV18L3Q/ACAQ7wNjUsOBmXfo3xV8Glu2L9NsIXYCbeDoWMArBDjC2jwJc55syD9JXsGANuvRB5TcBrmOLGRiFYAcYUxsvYOBN9b5CrV7t4tYC69Ol/9quX+O+vuHX1LGAUQh2gDHtArzu+/RbOqpXrF39Gq9f612A16moA4MT7ABj8mhP+MWT9FtsXWAbuvR3dxxWhl+4swMM7r8DMI62zOcBah3lwzJflflXYHv2ZV6mr6Co57J175b5/yLkBwZkYwcYyy7APg4kQ/XX9IeV9wHUsYBB/VcAxvGiTBPYrno81i0d+K0vyvxPYLvqJue9AAxEsAOMoS3zXWCbujIfl/lHgJs06X9PNIFtssEGDEYVCxjDLrBN36SvXgl14HZd+u+VbwLbpI4FDMbGDjAGNSy2pq7V1yf/qF7B8eqh/VrNcliZLVHHAgYj2AGG1kYNi235Pv0nr12AUzVRzWJ71LGAQahiAUOzWsyWPEn/COcuwF10ZS7Tb77BVnjNBAzCxg4wNDUstqCu0NcDyfsAQ6tvdv8cv0tYvy59oAlwJzZ2gCHVzYUmsG779Edf9wHG8DQqKmxDk77CDnAngh1gSLvAuj1M/4azCzCmLv33mmoWa9cG4I5UsYAhqWGxVl366pXHmMP0mjiszHp1UccC7sjGDjAUNSzWqh5IrtUroQ6cR5f+e/CbwPo08foJuCPBDjCUNrAu9UByrV59/vM/B86nfg/uynwa34+szy4Ad6CKBQzlf9Nv7cAafJ/+yTxdgLlpoprFuuzT35QCOImNHWAITYQ6rEetXtWv5y7AHHXpb5I4rMxatBFUAncg2AGGcBVYvi79J6afB1iCL9IfNe8Cy7cLwIkEO8AQPgos2z59qLMPsCRP03/vPg0s2/sBOJEbO8BdNekfcw5LVQ8kfxlg6b4o8z+B5boXx8GBE9jYAe6qDSxTl/4RykIdWIcv0t/e6QLLtAvACQQ7wF19ElieeiC5hjr/CLAmXfrv7W8Cy6PaDpxEFQu4iyZqWCxLXXGvT9KxpQPrtyvz5zIXgeVQxwKOZmMHuIs2sBzfR/UKtuSv6b/nu8By7AJwJMEOcBdqWCxFrV7djzd4sDVd+rs7jwPLoI4FHE0VCzhVEzUs5q8r82k8xhxIrtJXs5rAvKljAUexsQOcqg3M2z59DWMfgORpmQ9+/keYs10AjiDYAU6lhsWcPUz/Bs4nnsDrujIfRzWLeVPHAo6iigWcoj5h5IfA/HTp37R5jDnwNk2Z76KaxfzUDyUu48MJ4EA2doBTXAXmpx5IrtUroQ5wiC79z4wngXmpH6B5rQUcTLADnMKLDeakfqJZDyR/Hp9uAsepPzPqz45P4+cH86LyDhxMFQs4lhoWc/J9+qCxC8DdNFHNYj7UsYCD2dgBjmVbh7mo9Yn7EeoAw+jSv5F2WJk5UMcCDibYAY7VBs6rS//Eq88DMLwv0v+M6QLn9X4ADqCKBRyr1rAuAuexT//UK6vpwNiaMn+OrQnORx0LOIiNHeAY9cWtUIdzeZj+U3QvcIEpdOmDZNUszqW+5rofgLcQ7ADH8Kkl59ClfyTxlwGY3hfptya6wPQ8HQt4K8EOcIyPAtOqB5JrqPOPAJxPl/5n0ZPAtGxLA28l2AEO1cYLC6ZT61afpj+QrHoFzEH9WVR/JtWfTV1gGupYwFsJdoBD7QLT2Kf/ZPyvAZifv8ZTs5iWKjxwK8EOcCiP3GQKtebgDRMwd136uzsOKzMFd3aAWwl2gEO06R/7CmPp0gc6nwdgOb6IMJrx1TpWG4AbCHaAQ+wC49mnr17tA7A8+/ThzjeB8ahjAQB38qLMv40ZeH6IDR1gXb7Isn4Om+VM/Z0JcK3/CsDt2jLfBYbVlfk4HmMOrE+T/vdmExhW3QzbB+ANqljA2+wCw6oHkmv1SqgDrFGX/mfck8Cw1LGAa9nY+f/bu3crOZIrDcA/lw4MtRUDHoAWTK62GkFxpUl6gLFgCx6gLUDBAkBcrdoDtAdVtACz2mrLDCbAaQD9qK6uR0bm953zH0CaM1Ldi4x7I4DHbOPUkeP4bciv8Yw5sBz9kP+OOspx1Dr6pwB8x8QO8JAumlGO4zrjCfY6AMuxjlezOB6vYwF38mEHeIiRX46hriP4hw2wVLshL4a8CTxfF4DvWMUCHmINi+fYDflbXPQI8FU35F3UVg63y/ihEOBfTOwA93kZjSeH+5hx9eo6AHx1nXGC8X3gMCWmdoDv+LAD3KcPPN3XC5L/+uXvAHxrl7HG/ho4TBeAW6xiAfexhsVT7TJ+0PGMOcB+ypBN1FueZhfrWMAtJnaAu5RoMnmaekFyXb3yUQdgf7uMv51Xgf2V6NOAW/4YgB/1Q/4z8Li6bvVfQ94O+b8A8FT1t/N/hvw94/12PwUe979xjx3whYkd4C6/BB53nfGk+WMAeK51xouVTT6yj58DAHCPMuT/RR5JndAB4DRWaasmyGVSAhATO8CPXgXut8t4ovw6AJzKKuNv7S5wvz4A8WEH+NFfAnerK1d19eo6AJzadcaPO+8Dd/s5AADfKWlrBFnOk88xoQNwSfU3uKW6IeeLy7YBEzvAN7rAt3YZp3TcqQNwOfU3+EWsZvGjPsDi+bAD3PZL4HdXGT/q7ALApe0yfty5CvzOCj0A8C8lbY0ey+lSV69cog0wXf2QbdqqLXK6WMeChTOxA3zVBcbLOuuUzscAMFXrjBcr3wSsY8Hi+bADfPVLWLo38bwuQCt2GT/EvwlLZx0LFu4PARjXsLZhqXZD/hbPmAO06uWQDxnrOcv0pyG/BVgkEztA1YWlqitX9cT3OgC0qq5k1YnL92Gp+gAAi7ZJW5cEyvNTL0h+HQDmpv62t1SP5DjZBFgsq1hAfUnhc1iSXdylAzBnJeM/9EtYirqG9SLWsWCRrGIBnrVelquMq1e7ADBXu4z/yL8KS1EP6vR0ALBQ9Y6VFkaM5XmpU1kaPoDl6TM+kNBKvZLDswkAsDj1dKeVZkWe1+iVALBUJe7TW0LqIc5PARbHKhYsWxfm7te4Twdg6XYZa8GbMGfWsWChfNiBZVP852uXsYl/GwAYreKetbn7OQDAotSR3VbGi2X/fIhRbADuV4as01Ztk/1iHQsAFqRO67TUqMh+zdzrAMB+as1wyDO/dAEAFmGdtpoUeTg3cUEyAE9X4tWsueVdAIBFcEI3n9R7dIxdA/ActZa0VPvk/nwOADB7XdpqUOT+xs0F2AAcSx/TO3NJF2AxvIoFy9SH1l1nfNnkYwDgONYZX1S8Dq1z8AMAM7dNW6dO8m1ckAzAqa3SVm2Ub2MdCwBmrEtbjYn8nm2MVgNwPi/jMKjldAEWwSoWLE8fWvQ+4+rVdQDgPOqLi3U1631okXUsAJipbdo6bVp66ii11SsALq3WIi9qttdDAAAz06WthmTpqSelJQAwDSUOiFpLF2D2rGLBsvShFVcZm7FdAGAadkNeDHkTWmEdCwBmZpu2TpmWmDo23QUApq2PvqKVvgIAmIkubTUiS8wmVq8AaEfJWLtaqLFLThdg1qxiwXIYxZ22XzO+PLILALRhl7F2Wc2ati4AwCxs09bp0lKyjYYLgPaV6DWm3GsAAI17mbYakKVkPeSnAMA8lIy1raVavJR0AWbLKhYsQx+m5LeMq1f9l78DwBzsMta2WuPUt2npAgA07VPaOlWac27igmQA5q/EataUsg0A0KySthqPOedtAGBZVmmrVs85JcAsWcWC+fMa1uXVcfT6asjrAMCyrIb8NV59nII+AECTrGFdNps4IQOAkrEmtlC759yTAACNKWmr4ZhbTOgAwLdWaauWzy0lwOxYxYJ5s4Z1Gbshf447dQDge6shL2I161L0hjBDPuzAvP0lnNv7jB91bgIA3GWXsVa+D+emNwSAhpS0NRrcej7H6hUAPFWtnbWGtlTzW89PAQCa0KetJqPl1OmcEgDgEGXINm3V/pbjIAoAGrFJW01Gq3GPDgAcxypt9QCtZhMAYPJK2mowWkwdG+8CABxTvdx3m7Z6ghZjHQtmxOXJME9dOKXrjJc+XgcAOKaPQ/7jy5+cTh8AYNI2aevUqKXYSweA81ilrR6hpWwCAExWSVuNRSvZDnkZAOCcSqxmnSrWsWAmrGLB/HTh2K4yrl7dBAA4p13GGvw+HFsfAGCS6k56S6dFU069INnqFQBMQ5+xNrfUS0w5mwAAk1NHaltpJqaeOp1TAgBMSYnVrGOlfiSzjgUzYBUL5uVVOIa6elXv09kFAJiS3ZAXQ96E56ofdfSOADAx1rCel23cUQQAragfJWrtbqHHmGo2AQAmwxrW8xubEgCgJWXIh7TVc0wp1rEAYELqqVVLjcSU4oJkAGjbKm31HlOKdSwAmIh12moippBtxrt0AID2lVjNOiTvAgBMguc/n5a3MXoMAHNTa/s6bfUkl451LACYAGtYT2te+gAAc9bHoddT0gUAuKh12moeLpWbuCAZAJaixGrWvnkXAOCinEg9nrcBAJZolbZ6lkvkcwCAi+nSVuNw7mxjvBgAlq6L6Z3H0gUAuIh12moazplNXAYIAIzKkA9pq5c5Z0w3A8CFbNNW03CuvA4AwI9WaaunOVesYwHABXRpq2E4R7ZDXgYA4H4lDsfuShegOf8WoGV9uO1qyJ8zvn4FAHCfXcae4Src9ioAwFlt09Yp0KlSR4f7AAA8XR8vjN7uqQCAM+nSVqNwqtTpnBIAgMOVODD7mi5AU6xiQbv6UMen6306uwAAHG435MWQN8E6FgCcyTZtnf4cM9s4TQIATqPLsvss61gAcAZ1SqWlBuGY2Qz5KQAAp1OGrNNWj3TMdAEATupt2moOjpF6evQ6AADns0pb/dKxsgoAcFLbtNUcPDfbjFNKAADnVrLM3gsAOJGlrWHV6SSrVwDAJdVeZGkT010AgJNYSlNRV6/6AABMR5/lTO+sAgCcxKe01RQckk3GsWcAgKkpWcbHnU8BAI6upK2G4JC8DQDA9K3SVo91SEoAgKOqr0K11Aw8JdvY5QYA2tJl3tM7qwAARzXXNaxNXJAMALSpDFmnrd7rKT0aAHAkJW01AvukXpD8OgAA7VulrT5s35QAAEfRp60m4LFsMz7dDgAwFyXzW81yCAcAR7JJW03AQ6kXJFu9AgDmqPY4tddpqTd7KJsAAM9W0lYDcF/q6tWrAADMX5/5TO84kAOAZ+rTVvG/K5vY0QYAlqVkHo9fWMcCgGfapK3i/33eBgBguVZpq3f7PpsAAAcraavw3852SBcAALq0vZplHQsADtSnraL/NR+iAQAAuK0MWaetnu5rrGMBwIE2aavo1wuSFX4AgPvVXqml/q5mEwDgyUraKvjbIS8DAMBjStpbzTKNDQBP1KedQl8vSFbsAQD2V3un2kO10u+ZygaAJ/qY6Rf4unr1KgAAHKpPG9M7mwAAe6snOC0U9xIAAJ6rDPmUafd+9UDPhDYA7KnPtAv7KgAAHNsq0+4B+wAAe5nqGtZ2SBcAAE6lPkZRe64p9oKbAACPmuoa1ocYvwUAOIcyZJ3p9YPWsQBgD/Uy4qkVcK8gAACcX+3BptQX1nQBAB60znQK9zYuSAYAuKSSaa1mvQsA8KA6ITOFov02Rm0BAKai9mZT6BGtYwHAA6awhvX5y/8HAADT0mca0ztdAIA7rXPZIr2J1SsAgCkrQz7lsj3juwAAd9rmcgV6FQAAWrHK5frGzwEAftDlMoV5G+O0AAAtepnLHQx2AQC+sc75C/KHuPwOAKBlJZfpI98GAPjGNucrxHV89nUAAJiL2tud83VV61gAcEuX8xXhm7ggGQBgjkrOe1jYBQD4p3XOU3zryKzVKwCAeas937l6SwAgpz9ZqaOyrwIAwFL0OU+PCQCL1+W0BXcTq1cAAEtUMvaCp+w1uwDAwq1zukLrgmQAAFY5Xb9pHQuAxdvm+AW2/je7AADA6GVO03daxwJg0WqBPXZx/RAXJAMA8KOS00yLdwGAhTrmiwX1tMTqFQAAj6k9Y+0dj9WHrgIAC7XNcYrpTVyQDADA/kqO14tuAwALdKw1rDr1Y/UKAIBDHGuCvAsALMxzi2gdn30VAAB4nj7Pn95ZBQAW5lMOL5ybWL0CAOB4SsYe8zn9KQAsRsnhRdMFyQAAnMoqh/epJQCwEPXjzFML5TZ2lwEAOL2Sw1azVgGAhXjqGtY6LkgGAOB8SsYe1DoWAHynZP/iWC9ItnoFAMCl1F609qTWsQDgiz77FcWbKIwAAFxeyf6rWQ4lAZi9OqL6WEGsT6FbvQIAYEpWsY4FwMKVPL561QUAAKapz+PTOw4oAZitPg+fbpQAAMC0lTw8hW4dC4DZuq8AKn4AALRmFetYACxIyY9Fr46xdgEAgDaV3L2aZR0LgNnp822xW0fBAwCgfbWnXcdEOgAz93UNq16QrNABADA3tcetva51LABmp2QscDdxQTIAAPNV8vtqlul0OLE/BjiXV0P+/uXP3wIAAPNUe92rIX8Y8u8ZDzYBoHklAACwLCXASf0DYPbdE4hU454AAAAASUVORK5CYII=", + "width": 380.6666666666667, +} +`; + +exports[`assetLoader > should inline asset > with scales (2.625) 2`] = ` +"/ +└─ out/ + └─ main.js" +`; + exports[`assetLoader > should inline asset > with scales (3) 1`] = ` { "height": 362, @@ -460,12 +501,13 @@ exports[`assetLoader > should inline asset based on maxInlineSize > inlines asse exports[`assetLoader > should inline asset based on maxInlineSize > uses largest variant to determine threshold (multi-scale asset) 1`] = ` { "__packager_asset": true, - "hash": "86abef08a42e972a96c958d6fa9d43da,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", + "hash": "86abef08a42e972a96c958d6fa9d43da,9e7efe37227966bd2272d1f5915470cc,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", "height": 272, "httpServerLocation": "assets/__fixtures__/assets", "name": "star", "scales": [ 1, + 1.5, 2, 3, ], @@ -477,6 +519,8 @@ exports[`assetLoader > should inline asset based on maxInlineSize > uses largest exports[`assetLoader > should inline asset based on maxInlineSize > uses largest variant to determine threshold (multi-scale asset) 2`] = ` "/ └─ out/ + ├─ drawable-hdpi/ + │ └─ __fixtures___assets_star.png ├─ drawable-mdpi/ │ └─ __fixtures___assets_star.png ├─ drawable-xhdpi/ diff --git a/tests/integration/src/loaders/__snapshots__/webpack/assets-loader.test.ts.snap b/tests/integration/src/loaders/__snapshots__/webpack/assets-loader.test.ts.snap index d1d7631ce..405f17656 100644 --- a/tests/integration/src/loaders/__snapshots__/webpack/assets-loader.test.ts.snap +++ b/tests/integration/src/loaders/__snapshots__/webpack/assets-loader.test.ts.snap @@ -3,12 +3,13 @@ exports[`assetLoader > on android > should load and extract asset with scales 1`] = ` { "__packager_asset": true, - "hash": "86abef08a42e972a96c958d6fa9d43da,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", + "hash": "86abef08a42e972a96c958d6fa9d43da,9e7efe37227966bd2272d1f5915470cc,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", "height": 272, "httpServerLocation": "assets/__fixtures__/assets", "name": "star", "scales": [ 1, + 1.5, 2, 3, ], @@ -20,6 +21,8 @@ exports[`assetLoader > on android > should load and extract asset with scales 1` exports[`assetLoader > on android > should load and extract asset with scales 2`] = ` "/ └─ out/ + ├─ drawable-hdpi/ + │ └─ __fixtures___assets_star.png ├─ drawable-mdpi/ │ └─ __fixtures___assets_star.png ├─ drawable-xhdpi/ @@ -78,12 +81,13 @@ exports[`assetLoader > on android > should prefer platform specific asset 2`] = exports[`assetLoader > on ios > should load and extract asset with scales 1`] = ` { "__packager_asset": true, - "hash": "86abef08a42e972a96c958d6fa9d43da,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", + "hash": "86abef08a42e972a96c958d6fa9d43da,9e7efe37227966bd2272d1f5915470cc,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", "height": 272, "httpServerLocation": "assets/__fixtures__/assets", "name": "star", "scales": [ 1, + 1.5, 2, 3, ], @@ -99,6 +103,7 @@ exports[`assetLoader > on ios > should load and extract asset with scales 2`] = │ └─ __fixtures__/ │ └─ assets/ │ ├─ star.png + │ ├─ star@1.5x.png │ ├─ star@2x.png │ └─ star@3x.png └─ main.js" @@ -193,6 +198,7 @@ exports[`assetLoader > should convert to remote-asset > with scales 1 2`] = ` │ └─ __fixtures__/ │ └─ assets/ │ ├─ star.png + │ ├─ star@1.5x.png │ ├─ star@2x.png │ └─ star@3x.png └─ main.js" @@ -216,6 +222,7 @@ exports[`assetLoader > should convert to remote-asset > with scales 2 2`] = ` │ └─ __fixtures__/ │ └─ assets/ │ ├─ star.png + │ ├─ star@1.5x.png │ ├─ star@2x.png │ └─ star@3x.png └─ main.js" @@ -239,6 +246,7 @@ exports[`assetLoader > should convert to remote-asset > with scales 3 2`] = ` │ └─ __fixtures__/ │ └─ assets/ │ ├─ star.png + │ ├─ star@1.5x.png │ ├─ star@2x.png │ └─ star@3x.png └─ main.js" @@ -263,6 +271,7 @@ exports[`assetLoader > should convert to remote-asset > with specified assetPath │ └─ assets/ │ └─ nested-folder/ │ ├─ star-fake-hash.png + │ ├─ star-fake-hash@1.5x.png │ ├─ star-fake-hash@2x.png │ └─ star-fake-hash@3x.png └─ main.js" @@ -287,6 +296,7 @@ exports[`assetLoader > should convert to remote-asset > with specified assetPath │ └─ assets/ │ └─ nested-folder/ │ ├─ star-fake-hash.png + │ ├─ star-fake-hash@1.5x.png │ ├─ star-fake-hash@2x.png │ └─ star-fake-hash@3x.png └─ main.js" @@ -311,6 +321,7 @@ exports[`assetLoader > should convert to remote-asset > with specified assetPath │ └─ assets/ │ └─ nested-folder/ │ ├─ star-fake-hash.png + │ ├─ star-fake-hash@1.5x.png │ ├─ star-fake-hash@2x.png │ └─ star-fake-hash@3x.png └─ main.js" @@ -374,6 +385,21 @@ exports[`assetLoader > should inline asset > with scales (1) 2`] = ` └─ main.js" `; +exports[`assetLoader > should inline asset > with scales (1.5) 1`] = ` +{ + "height": 272, + "scale": 1.5, + "uri": "data:image/png;base64,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", + "width": 286, +} +`; + +exports[`assetLoader > should inline asset > with scales (1.5) 2`] = ` +"/ +└─ out/ + └─ main.js" +`; + exports[`assetLoader > should inline asset > with scales (2) 1`] = ` { "height": 407.5, @@ -389,6 +415,21 @@ exports[`assetLoader > should inline asset > with scales (2) 2`] = ` └─ main.js" `; +exports[`assetLoader > should inline asset > with scales (2.625) 1`] = ` +{ + "height": 362, + "scale": 3, + "uri": "data:image/png;base64,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", + "width": 380.6666666666667, +} +`; + +exports[`assetLoader > should inline asset > with scales (2.625) 2`] = ` +"/ +└─ out/ + └─ main.js" +`; + exports[`assetLoader > should inline asset > with scales (3) 1`] = ` { "height": 362, @@ -460,12 +501,13 @@ exports[`assetLoader > should inline asset based on maxInlineSize > inlines asse exports[`assetLoader > should inline asset based on maxInlineSize > uses largest variant to determine threshold (multi-scale asset) 1`] = ` { "__packager_asset": true, - "hash": "86abef08a42e972a96c958d6fa9d43da,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", + "hash": "86abef08a42e972a96c958d6fa9d43da,9e7efe37227966bd2272d1f5915470cc,02ad731a8881911e488b51c48a4cc6c1,d9f7c31eebb3a41cc180431867b04f38", "height": 272, "httpServerLocation": "assets/__fixtures__/assets", "name": "star", "scales": [ 1, + 1.5, 2, 3, ], @@ -477,6 +519,8 @@ exports[`assetLoader > should inline asset based on maxInlineSize > uses largest exports[`assetLoader > should inline asset based on maxInlineSize > uses largest variant to determine threshold (multi-scale asset) 2`] = ` "/ └─ out/ + ├─ drawable-hdpi/ + │ └─ __fixtures___assets_star.png ├─ drawable-mdpi/ │ └─ __fixtures___assets_star.png ├─ drawable-xhdpi/ diff --git a/tests/integration/src/loaders/assets-loader.test.ts b/tests/integration/src/loaders/assets-loader.test.ts index 40d1a6c29..e339713d0 100644 --- a/tests/integration/src/loaders/assets-loader.test.ts +++ b/tests/integration/src/loaders/assets-loader.test.ts @@ -345,7 +345,9 @@ describe('assetLoader', () => { it.each([ { preferredScale: 1 }, + { preferredScale: 1.5 }, { preferredScale: 2 }, + { preferredScale: 2.625 }, { preferredScale: 3 }, ])('with scales ($preferredScale)', async ({ preferredScale }) => { const { code, volume } = await compileBundle(