angular-three 2.0.0-beta.22 → 2.0.0-beta.224
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +4 -11
- package/esm2022/lib/canvas.mjs +75 -168
- package/esm2022/lib/directives/args.mjs +19 -19
- package/esm2022/lib/directives/common.mjs +15 -14
- package/esm2022/lib/directives/parent.mjs +19 -19
- package/esm2022/lib/dom/events.mjs +2 -2
- package/esm2022/lib/events.mjs +28 -25
- package/esm2022/lib/instance.mjs +39 -34
- package/esm2022/lib/loader.mjs +12 -14
- package/esm2022/lib/loop.mjs +27 -12
- package/esm2022/lib/portal.mjs +120 -157
- package/esm2022/lib/ref.mjs +18 -20
- package/esm2022/lib/renderer/catalogue.mjs +2 -2
- package/esm2022/lib/renderer/constants.mjs +2 -2
- package/esm2022/lib/renderer/index.mjs +58 -62
- package/esm2022/lib/renderer/store.mjs +135 -120
- package/esm2022/lib/renderer/utils.mjs +49 -45
- package/esm2022/lib/roots.mjs +51 -39
- package/esm2022/lib/routed-scene.mjs +6 -7
- package/esm2022/lib/store.mjs +163 -189
- package/esm2022/lib/three-types.mjs +2 -2
- package/esm2022/lib/utils/apply-props.mjs +15 -19
- package/esm2022/lib/utils/attach.mjs +6 -6
- package/esm2022/lib/utils/before-render.mjs +12 -0
- package/esm2022/lib/utils/create-api-token.mjs +13 -0
- package/esm2022/lib/utils/is.mjs +6 -5
- package/esm2022/lib/utils/make.mjs +15 -12
- package/esm2022/lib/utils/signal-store.mjs +67 -57
- package/esm2022/lib/utils/update.mjs +3 -2
- package/fesm2022/angular-three.mjs +1567 -1763
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +6 -10
- package/lib/canvas.d.ts +24 -39
- package/lib/directives/args.d.ts +4 -3
- package/lib/directives/common.d.ts +12 -1
- package/lib/directives/parent.d.ts +5 -3
- package/lib/events.d.ts +2 -2
- package/lib/instance.d.ts +22 -12
- package/lib/loader.d.ts +14 -4
- package/lib/loop.d.ts +6 -29
- package/lib/portal.d.ts +22 -32
- package/lib/ref.d.ts +0 -1
- package/lib/renderer/catalogue.d.ts +5 -1
- package/lib/renderer/constants.d.ts +1 -1
- package/lib/renderer/index.d.ts +55 -4
- package/lib/renderer/store.d.ts +18 -21
- package/lib/renderer/utils.d.ts +2 -3
- package/lib/roots.d.ts +4 -3
- package/lib/store.d.ts +9 -11
- package/lib/three-types.d.ts +5 -9
- package/lib/utils/apply-props.d.ts +0 -1
- package/lib/{before-render.d.ts → utils/before-render.d.ts} +1 -1
- package/lib/utils/create-api-token.d.ts +23 -0
- package/lib/utils/is.d.ts +6 -6
- package/lib/utils/make.d.ts +3 -2
- package/lib/utils/signal-store.d.ts +16 -3
- package/metadata.json +1 -1
- package/package.json +30 -11
- package/plugin/generators.json +0 -32
- package/plugin/src/generators/init/compat.d.ts +1 -3
- package/plugin/src/generators/init/files/experience/{experience.component.ts.__tmpl__ → experience.component.ts__tmpl__} +1 -0
- package/plugin/src/generators/init/generator.d.ts +2 -5
- package/plugin/src/generators/init/generator.js +87 -99
- package/plugin/src/generators/init/generator.js.map +1 -1
- package/plugin/src/generators/init/schema.json +1 -12
- package/plugin/src/generators/utils.js.map +1 -1
- package/plugin/src/generators/{versions.d.ts → version.d.ts} +5 -3
- package/plugin/src/generators/version.js +18 -0
- package/plugin/src/generators/version.js.map +1 -0
- package/plugin/src/index.d.ts +0 -3
- package/plugin/src/index.js +0 -9
- package/plugin/src/index.js.map +1 -1
- package/web-types.json +1 -1
- package/esm2022/lib/before-render.mjs +0 -13
- package/esm2022/lib/directives/key.mjs +0 -29
- package/esm2022/lib/directives/repeat.mjs +0 -17
- package/esm2022/lib/utils/assert-injection-context.mjs +0 -14
- package/esm2022/lib/utils/create-injection-token.mjs +0 -47
- package/esm2022/lib/utils/safe-detect-changes.mjs +0 -17
- package/lib/directives/key.d.ts +0 -10
- package/lib/directives/repeat.d.ts +0 -7
- package/lib/utils/assert-injection-context.d.ts +0 -2
- package/lib/utils/create-injection-token.d.ts +0 -27
- package/lib/utils/safe-detect-changes.d.ts +0 -2
- package/plugin/package.json +0 -6
- package/plugin/src/generators/init-cannon/compat.d.ts +0 -2
- package/plugin/src/generators/init-cannon/compat.js +0 -6
- package/plugin/src/generators/init-cannon/compat.js.map +0 -1
- package/plugin/src/generators/init-cannon/generator.d.ts +0 -2
- package/plugin/src/generators/init-cannon/generator.js +0 -22
- package/plugin/src/generators/init-cannon/generator.js.map +0 -1
- package/plugin/src/generators/init-cannon/schema.json +0 -6
- package/plugin/src/generators/init-postprocessing/compat.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/compat.js +0 -6
- package/plugin/src/generators/init-postprocessing/compat.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/generator.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/generator.js +0 -20
- package/plugin/src/generators/init-postprocessing/generator.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/schema.json +0 -6
- package/plugin/src/generators/init-soba/compat.d.ts +0 -2
- package/plugin/src/generators/init-soba/compat.js +0 -6
- package/plugin/src/generators/init-soba/compat.js.map +0 -1
- package/plugin/src/generators/init-soba/generator.d.ts +0 -2
- package/plugin/src/generators/init-soba/generator.js +0 -26
- package/plugin/src/generators/init-soba/generator.js.map +0 -1
- package/plugin/src/generators/init-soba/schema.json +0 -6
- package/plugin/src/generators/versions.js +0 -16
- package/plugin/src/generators/versions.js.map +0 -1
- /package/plugin/src/generators/init/files/experience/{experience.component.html.__tmpl__ → experience.component.html__tmpl__} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0RXZlbnRIYW5kbGVycyB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgTmd0QWZ0ZXJBdHRhY2gsIE5ndEF0dGFjaEZ1bmN0aW9uLCBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB0eXBlIHsgTmd0QmVmb3JlUmVuZGVyRXZlbnQgfSBmcm9tICcuL3N0b3JlJztcblxudHlwZSBOb0V2ZW50PFQ+ID0gT21pdDxULCAnYWRkRXZlbnRMaXN0ZW5lcicgfCAncmVtb3ZlRXZlbnRMaXN0ZW5lcic+O1xuXG5leHBvcnQgdHlwZSBOZ3ROb25GdW5jdGlvbktleXM8VD4gPSB7IFtLIGluIGtleW9mIFRdLT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogSyB9W2tleW9mIFRdO1xuZXhwb3J0IHR5cGUgTmd0T3ZlcndyaXRlPFQsIE8+ID0gT21pdDxULCBOZ3ROb25GdW5jdGlvbktleXM8Tz4+ICYgTztcblxuZXhwb3J0IHR5cGUgTmd0RXh0ZW5kZWRDb2xvcnM8VD4gPSB7XG5cdFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgVEhSRUUuQ29sb3IgfCB1bmRlZmluZWQgPyBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uIDogVFtLXTtcbn07XG5cbi8qKlxuICogSWYgKipUKiogY29udGFpbnMgYSBjb25zdHJ1Y3RvciwgQHNlZSBDb25zdHJ1Y3RvclBhcmFtZXRlcnMgbXVzdCBiZSB1c2VkLCBvdGhlcndpc2UgKipUKiouXG4gKi9cbnR5cGUgTmd0QXJnczxUPiA9IFQgZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IGFueSkgPT4gYW55ID8gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFQ+IDogVDtcblxuZXhwb3J0IHR5cGUgTmd0RXVsZXIgPSBUSFJFRS5FdWxlciB8IFBhcmFtZXRlcnM8VEhSRUUuRXVsZXJbJ3NldCddPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDQgPSBUSFJFRS5NYXRyaXg0IHwgUGFyYW1ldGVyczxUSFJFRS5NYXRyaXg0WydzZXQnXT4gfCBSZWFkb25seTxUSFJFRS5NYXRyaXg0WydzZXQnXT47XG5cbi8qKlxuICogVHVybiBhbiBpbXBsZW1lbnRhdGlvbiBvZiBUSFJFRS5WZWN0b3IgaW4gdG8gdGhlIHR5cGUgdGhhdCBhbiByM2YgY29tcG9uZW50IHdvdWxkIGFjY2VwdCBhcyBhIHByb3AuXG4gKi9cbnR5cGUgTmd0VmVjdG9yTGlrZTxWZWN0b3JDbGFzcyBleHRlbmRzIFRIUkVFLlZlY3Rvcj4gPVxuXHR8IFZlY3RvckNsYXNzXG5cdHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+XG5cdHwgUmVhZG9ubHk8UGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+PlxuXHR8IFBhcmFtZXRlcnM8VmVjdG9yQ2xhc3NbJ3NldFNjYWxhciddPlswXTtcblxuZXhwb3J0IHR5cGUgTmd0VmVjdG9yMiA9IE5ndFZlY3Rvckxpa2U8VEhSRUUuVmVjdG9yMj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IzID0gTmd0VmVjdG9yTGlrZTxUSFJFRS5WZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjQgPSBOZ3RWZWN0b3JMaWtlPFRIUkVFLlZlY3RvcjQ+O1xuZXhwb3J0IHR5cGUgTmd0TGF5ZXJzID0gVEhSRUUuTGF5ZXJzIHwgUGFyYW1ldGVyczxUSFJFRS5MYXllcnNbJ3NldCddPlswXTtcbmV4cG9ydCB0eXBlIE5ndFF1YXRlcm5pb24gPSBUSFJFRS5RdWF0ZXJuaW9uIHwgUGFyYW1ldGVyczxUSFJFRS5RdWF0ZXJuaW9uWydzZXQnXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4ge1xuXHRhZnRlckF0dGFjaDogTmd0QWZ0ZXJBdHRhY2g8VE9yaWdpbmFsLCBOZ3RJbnN0YW5jZU5vZGU+O1xuXHRhZnRlclVwZGF0ZTogVE9yaWdpbmFsO1xuXHRiZWZvcmVSZW5kZXI6IE5ndEJlZm9yZVJlbmRlckV2ZW50PFRPcmlnaW5hbD47XG59XG5cbmV4cG9ydCB0eXBlIE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiA9IHtcblx0YXR0YWNoOiBzdHJpbmcgfCBzdHJpbmdbXSB8IE5ndEF0dGFjaEZ1bmN0aW9uO1xuXHQvLyByZWY6IE5ndEluamVjdGVkUmVmPFRPcmlnaW5hbD47XG5cdGFkZEV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4+KFxuXHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+W1RFdmVudEtleV0pID0+IGFueSxcblx0KTogdm9pZDtcblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG5cdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdGxpc3RlbmVyOiAodGhpczogTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD5bVEV2ZW50S2V5XSkgPT4gYW55LFxuXHQpOiB2b2lkO1xuXHRfX25ndF9hcmdzX186IE5ndEFyZ3M8VENvbnN0cnVjdG9yPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50ID0gTm9FdmVudDxUT3JpZ2luYWw+PiA9IE5ndEV4dGVuZGVkQ29sb3JzPFxuXHROZ3RPdmVyd3JpdGU8UGFydGlhbDxUTm9FdmVudD4sIE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPj5cbj47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNERXZlbnRzTWFwID0ge1xuXHRbVEV2ZW50IGluIGtleW9mIE5ndEV2ZW50SGFuZGxlcnNdLT86IFBhcmFtZXRlcnM8Tm9uTnVsbGFibGU8Tmd0RXZlbnRIYW5kbGVyc1tURXZlbnRdPj5bMF07XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50ID0gTm9FdmVudDxUT3JpZ2luYWw+PiA9IE5ndE92ZXJ3cml0ZTxcblx0Tmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQ+LFxuXHR7XG5cdFx0cG9zaXRpb246IE5ndFZlY3RvcjM7XG5cdFx0dXA6IE5ndFZlY3RvcjM7XG5cdFx0c2NhbGU6IE5ndFZlY3RvcjM7XG5cdFx0cm90YXRpb246IE5ndEV1bGVyO1xuXHRcdG1hdHJpeDogTmd0TWF0cml4NDtcblx0XHRxdWF0ZXJuaW9uOiBOZ3RRdWF0ZXJuaW9uO1xuXHRcdGxheWVyczogTmd0TGF5ZXJzO1xuXHRcdGRpc3Bvc2U6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG5cdFx0YWRkRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3RPYmplY3QzREV2ZW50c01hcD4oXG5cdFx0XHR0eXBlOiBURXZlbnRLZXksXG5cdFx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE9iamVjdDNETm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3RPYmplY3QzREV2ZW50c01hcFtURXZlbnRLZXldKSA9PiBhbnksXG5cdFx0KTogdm9pZDtcblx0XHRyZW1vdmVFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE9iamVjdDNERXZlbnRzTWFwPihcblx0XHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRcdGxpc3RlbmVyOiAodGhpczogTmd0T2JqZWN0M0ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE9iamVjdDNERXZlbnRzTWFwW1RFdmVudEtleV0pID0+IGFueSxcblx0XHQpOiB2b2lkO1xuXHR9XG4+O1xuXG5leHBvcnQgdHlwZSBOZ3RHZW9tZXRyeTxUR2VvbWV0cnkgZXh0ZW5kcyBUSFJFRS5CdWZmZXJHZW9tZXRyeSwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VEdlb21ldHJ5LCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TWF0ZXJpYWw8VE1hdGVyaWFsIGV4dGVuZHMgVEhSRUUuTWF0ZXJpYWwsIFRDb25zdHJ1Y3Rvcj4gPSBOZ3ROb2RlPFRNYXRlcmlhbCwgVENvbnN0cnVjdG9yPjtcbmV4cG9ydCB0eXBlIE5ndExpZ2h0PFQgZXh0ZW5kcyBUSFJFRS5MaWdodCwgUD4gPSBOZ3RPYmplY3QzRE5vZGU8VCwgUD47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNEID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk9iamVjdDNELCB0eXBlb2YgVEhSRUUuT2JqZWN0M0Q+O1xuZXhwb3J0IHR5cGUgTmd0QXVkaW8gPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXVkaW8sIHR5cGVvZiBUSFJFRS5BdWRpbz47XG5leHBvcnQgdHlwZSBOZ3RBdWRpb0xpc3RlbmVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkF1ZGlvTGlzdGVuZXIsIHR5cGVvZiBUSFJFRS5BdWRpb0xpc3RlbmVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvc2l0aW9uYWxBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb3NpdGlvbmFsQXVkaW8sIHR5cGVvZiBUSFJFRS5Qb3NpdGlvbmFsQXVkaW8+O1xuXG5leHBvcnQgdHlwZSBOZ3RNZXNoID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk1lc2gsIHR5cGVvZiBUSFJFRS5NZXNoPjtcbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuSW5zdGFuY2VkTWVzaCwgdHlwZW9mIFRIUkVFLkluc3RhbmNlZE1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0U2NlbmUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2NlbmUsIHR5cGVvZiBUSFJFRS5TY2VuZT47XG5leHBvcnQgdHlwZSBOZ3RTcHJpdGUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU3ByaXRlLCB0eXBlb2YgVEhSRUUuU3ByaXRlPjtcbmV4cG9ydCB0eXBlIE5ndExPRCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MT0QsIHR5cGVvZiBUSFJFRS5MT0Q+O1xuZXhwb3J0IHR5cGUgTmd0U2tpbm5lZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2tpbm5lZE1lc2gsIHR5cGVvZiBUSFJFRS5Ta2lubmVkTWVzaD47XG5cbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNrZWxldG9uLCB0eXBlb2YgVEhSRUUuU2tlbGV0b24+O1xuZXhwb3J0IHR5cGUgTmd0Qm9uZSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Cb25lLCB0eXBlb2YgVEhSRUUuQm9uZT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkxpbmUsIHR5cGVvZiBUSFJFRS5MaW5lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVTZWdtZW50cyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MaW5lU2VnbWVudHMsIHR5cGVvZiBUSFJFRS5MaW5lU2VnbWVudHM+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUxvb3AgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuTGluZUxvb3AsIHR5cGVvZiBUSFJFRS5MaW5lTG9vcD47XG5leHBvcnQgdHlwZSBOZ3RQb2ludHMgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUG9pbnRzLCB0eXBlb2YgVEhSRUUuUG9pbnRzPjtcbmV4cG9ydCB0eXBlIE5ndEdyb3VwID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkdyb3VwLCB0eXBlb2YgVEhSRUUuR3JvdXA+O1xuXG5leHBvcnQgdHlwZSBOZ3RDYW1lcmFOb2RlID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkNhbWVyYSwgdHlwZW9mIFRIUkVFLkNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RQZXJzcGVjdGl2ZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSwgdHlwZW9mIFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndE9ydGhvZ3JhcGhpY0NhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEsIHR5cGVvZiBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5DdWJlQ2FtZXJhLCB0eXBlb2YgVEhSRUUuQ3ViZUNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RBcnJheUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BcnJheUNhbWVyYSwgdHlwZW9mIFRIUkVFLkFycmF5Q2FtZXJhPjtcblxuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxcblx0VEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnksXG5cdHR5cGVvZiBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeVxuPjtcbmV4cG9ydCB0eXBlIE5ndEJ1ZmZlckdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQnVmZmVyR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5CdWZmZXJHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RXaXJlZnJhbWVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLldpcmVmcmFtZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuV2lyZWZyYW1lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VGV0cmFoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlRldHJhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5UZXRyYWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndE9jdGFoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLk9jdGFoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLk9jdGFoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RJY29zYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuSWNvc2FoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkljb3NhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RG9kZWNhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Eb2RlY2FoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkRvZGVjYWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFBvbHloZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlBvbHloZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlBvbHloZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUdWJlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5UdWJlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5UdWJlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VG9ydXNLbm90R2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Ub3J1c0tub3RHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlRvcnVzS25vdEdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFRvcnVzR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Ub3J1c0dlb21ldHJ5LCB0eXBlb2YgVEhSRUUuVG9ydXNHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RTcGhlcmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlNwaGVyZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuU3BoZXJlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UmluZ0dlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuUmluZ0dlb21ldHJ5LCB0eXBlb2YgVEhSRUUuUmluZ0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5QbGFuZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuUGxhbmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RMYXRoZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuTGF0aGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkxhdGhlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0U2hhcGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlNoYXBlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5TaGFwZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEV4dHJ1ZGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkV4dHJ1ZGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkV4dHJ1ZGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RFZGdlc0dlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuRWRnZXNHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkVkZ2VzR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q29uZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQ29uZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQ29uZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEN5bGluZGVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5DeWxpbmRlckdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQ3lsaW5kZXJHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDaXJjbGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkNpcmNsZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQ2lyY2xlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Qm94R2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Cb3hHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkJveEdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENhcHN1bGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkNhcHN1bGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkNhcHN1bGVHZW9tZXRyeT47XG5cbmV4cG9ydCB0eXBlIE5ndFNoYWRvd01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuU2hhZG93TWF0ZXJpYWwsIFtUSFJFRS5TaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFNwcml0ZU1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuU3ByaXRlTWF0ZXJpYWwsIFtUSFJFRS5TcHJpdGVNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFJhd1NoYWRlck1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuUmF3U2hhZGVyTWF0ZXJpYWwsIFtUSFJFRS5TaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFNoYWRlck1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuU2hhZGVyTWF0ZXJpYWwsIFtUSFJFRS5TaGFkZXJNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50c01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuUG9pbnRzTWF0ZXJpYWwsIFtUSFJFRS5Qb2ludHNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hQaHlzaWNhbE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaFBoeXNpY2FsTWF0ZXJpYWwsIFtUSFJFRS5NZXNoUGh5c2ljYWxNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hTdGFuZGFyZE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaFN0YW5kYXJkTWF0ZXJpYWwsIFtUSFJFRS5NZXNoU3RhbmRhcmRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hQaG9uZ01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaFBob25nTWF0ZXJpYWwsIFtUSFJFRS5NZXNoUGhvbmdNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hUb29uTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoVG9vbk1hdGVyaWFsLCBbVEhSRUUuTWVzaFRvb25NYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hOb3JtYWxNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hOb3JtYWxNYXRlcmlhbCwgW1RIUkVFLk1lc2hOb3JtYWxNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsLCBbVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hEZXB0aE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaERlcHRoTWF0ZXJpYWwsIFtUSFJFRS5NZXNoRGVwdGhNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hEaXN0YW5jZU1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaERpc3RhbmNlTWF0ZXJpYWwsIFtUSFJFRS5NZXNoRGlzdGFuY2VNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hCYXNpY01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwsIFtUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hNYXRjYXBNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hNYXRjYXBNYXRlcmlhbCwgW1RIUkVFLk1lc2hNYXRjYXBNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVEYXNoZWRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLkxpbmVEYXNoZWRNYXRlcmlhbCwgW1RIUkVFLkxpbmVEYXNoZWRNYXRlcmlhbFBhcmFtZXRlcnNdPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVCYXNpY01hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwsIFtUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbFBhcmFtZXRlcnNdPjtcblxuZXhwb3J0IHR5cGUgTmd0UHJpbWl0aXZlID0gTmd0Tm9kZUVsZW1lbnQ8YW55LCBhbnk+O1xuZXhwb3J0IHR5cGUgTmd0VmFsdWUgPSBOZ3ROb2RlPHsgcmF3VmFsdWU6IGFueSB9LCB7fT47XG5cbmV4cG9ydCB0eXBlIE5ndExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxUSFJFRS5MaWdodFNoYWRvdywgdHlwZW9mIFRIUkVFLkxpZ2h0U2hhZG93PjtcbmV4cG9ydCB0eXBlIE5ndFNwb3RMaWdodFNoYWRvdyA9IE5ndE5vZGU8VEhSRUUuU3BvdExpZ2h0U2hhZG93LCB0eXBlb2YgVEhSRUUuU3BvdExpZ2h0U2hhZG93PjtcbmV4cG9ydCB0eXBlIE5ndERpcmVjdGlvbmFsTGlnaHRTaGFkb3cgPSBOZ3ROb2RlPFRIUkVFLkRpcmVjdGlvbmFsTGlnaHRTaGFkb3csIHR5cGVvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0U2hhZG93PjtcblxuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuU3BvdExpZ2h0LCB0eXBlb2YgVEhSRUUuU3BvdExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50TGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5Qb2ludExpZ2h0LCB0eXBlb2YgVEhSRUUuUG9pbnRMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RSZWN0QXJlYUxpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuUmVjdEFyZWFMaWdodCwgdHlwZW9mIFRIUkVFLlJlY3RBcmVhTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0SGVtaXNwaGVyZUxpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuSGVtaXNwaGVyZUxpZ2h0LCB0eXBlb2YgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndERpcmVjdGlvbmFsTGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5EaXJlY3Rpb25hbExpZ2h0LCB0eXBlb2YgVEhSRUUuRGlyZWN0aW9uYWxMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RBbWJpZW50TGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5BbWJpZW50TGlnaHQsIHR5cGVvZiBUSFJFRS5BbWJpZW50TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0QW1iaWVudExpZ2h0UHJvYmUgPSBOZ3RMaWdodDxUSFJFRS5BbWJpZW50TGlnaHRQcm9iZSwgdHlwZW9mIFRIUkVFLkFtYmllbnRMaWdodFByb2JlPjtcbmV4cG9ydCB0eXBlIE5ndEhlbWlzcGhlcmVMaWdodFByb2JlID0gTmd0TGlnaHQ8VEhSRUUuSGVtaXNwaGVyZUxpZ2h0UHJvYmUsIHR5cGVvZiBUSFJFRS5IZW1pc3BoZXJlTGlnaHRQcm9iZT47XG5leHBvcnQgdHlwZSBOZ3RMaWdodFByb2JlID0gTmd0TGlnaHQ8VEhSRUUuTGlnaHRQcm9iZSwgdHlwZW9mIFRIUkVFLkxpZ2h0UHJvYmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU3BvdExpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuU3BvdExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNrZWxldG9uSGVscGVyLCB0eXBlb2YgVEhSRUUuU2tlbGV0b25IZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb2ludExpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuUG9pbnRMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuSGVtaXNwaGVyZUxpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEdyaWRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuR3JpZEhlbHBlciwgdHlwZW9mIFRIUkVFLkdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9sYXJHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBvbGFyR3JpZEhlbHBlciwgdHlwZW9mIFRIUkVFLlBvbGFyR3JpZEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFxuXHRUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyLFxuXHR0eXBlb2YgVEhSRUUuRGlyZWN0aW9uYWxMaWdodEhlbHBlclxuPjtcbmV4cG9ydCB0eXBlIE5ndENhbWVyYUhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5DYW1lcmFIZWxwZXIsIHR5cGVvZiBUSFJFRS5DYW1lcmFIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0Qm94SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkJveEhlbHBlciwgdHlwZW9mIFRIUkVFLkJveEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3gzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkJveDNIZWxwZXIsIHR5cGVvZiBUSFJFRS5Cb3gzSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBsYW5lSGVscGVyLCB0eXBlb2YgVEhSRUUuUGxhbmVIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0QXJyb3dIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXJyb3dIZWxwZXIsIHR5cGVvZiBUSFJFRS5BcnJvd0hlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBeGVzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkF4ZXNIZWxwZXIsIHR5cGVvZiBUSFJFRS5BeGVzSGVscGVyPjtcblxuZXhwb3J0IHR5cGUgTmd0VGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuVGV4dHVyZSwgdHlwZW9mIFRIUkVFLlRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0VmlkZW9UZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5WaWRlb1RleHR1cmUsIHR5cGVvZiBUSFJFRS5WaWRlb1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YVRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkRhdGFUZXh0dXJlLCB0eXBlb2YgVEhSRUUuRGF0YVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YTNEVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuRGF0YTNEVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkRhdGEzRFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q29tcHJlc3NlZFRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkNvbXByZXNzZWRUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ29tcHJlc3NlZFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZVRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkN1YmVUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ3ViZVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q2FudmFzVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ2FudmFzVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkNhbnZhc1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGVwdGhUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5EZXB0aFRleHR1cmUsIHR5cGVvZiBUSFJFRS5EZXB0aFRleHR1cmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RSYXljYXN0ZXIgPSBOZ3ROb2RlPFRIUkVFLlJheWNhc3RlciwgdHlwZW9mIFRIUkVFLlJheWNhc3Rlcj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyTm9kZSA9IE5ndE5vZGU8VEhSRUUuVmVjdG9yMiwgdHlwZW9mIFRIUkVFLlZlY3RvcjI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yM05vZGUgPSBOZ3ROb2RlPFRIUkVFLlZlY3RvcjMsIHR5cGVvZiBUSFJFRS5WZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjROb2RlID0gTmd0Tm9kZTxUSFJFRS5WZWN0b3I0LCB0eXBlb2YgVEhSRUUuVmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RFdWxlck5vZGUgPSBOZ3ROb2RlPFRIUkVFLkV1bGVyLCB0eXBlb2YgVEhSRUUuRXVsZXI+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4M05vZGUgPSBOZ3ROb2RlPFRIUkVFLk1hdHJpeDMsIHR5cGVvZiBUSFJFRS5NYXRyaXgzPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDROb2RlID0gTmd0Tm9kZTxUSFJFRS5NYXRyaXg0LCB0eXBlb2YgVEhSRUUuTWF0cml4ND47XG5leHBvcnQgdHlwZSBOZ3RRdWF0ZXJuaW9uTm9kZSA9IE5ndE5vZGU8VEhSRUUuUXVhdGVybmlvbiwgdHlwZW9mIFRIUkVFLlF1YXRlcm5pb24+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5CdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5CdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuRmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkZsb2F0NjRCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuSW50OEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkludDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuSW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW50MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkludDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuSW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDhCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLlVpbnQ4QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuVWludDhCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5VaW50MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5VaW50MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0VWludDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5VaW50MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5VaW50MzJCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxcblx0VEhSRUUuSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlLFxuXHR0eXBlb2YgVEhSRUUuSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlXG4+O1xuZXhwb3J0IHR5cGUgTmd0Q29sb3IgPSBOZ3ROb2RlPFRIUkVFLkNvbG9yLCBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uPjtcbmV4cG9ydCB0eXBlIE5ndEZvZyA9IE5ndE5vZGU8VEhSRUUuRm9nLCB0eXBlb2YgVEhSRUUuRm9nPjtcbmV4cG9ydCB0eXBlIE5ndEZvZ0V4cDIgPSBOZ3ROb2RlPFRIUkVFLkZvZ0V4cDIsIHR5cGVvZiBUSFJFRS5Gb2dFeHAyPjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlID0gTmd0Tm9kZTxUSFJFRS5TaGFwZSwgdHlwZW9mIFRIUkVFLlNoYXBlPjtcblxuZXhwb3J0IGludGVyZmFjZSBUaHJlZUVsZW1lbnRzIHtcblx0J25ndC1vYmplY3QzRCc6IE5ndE9iamVjdDNEO1xuXG5cdC8vIGBhdWRpb2Agd29ya3MgYnV0IGNvbmZsaWN0cyB3aXRoIEB0eXBlcy9yZWFjdC4gVHJ5IHVzaW5nIFBvc2l0aW9uYWxBdWRpbyBmcm9tIEByZWFjdC10aHJlZS9kcmVpIGluc3RlYWRcblx0J25ndC1hdWRpbyc6IE5ndEF1ZGlvO1xuXHQnbmd0LWF1ZGlvLWxpc3RlbmVyJzogTmd0QXVkaW9MaXN0ZW5lcjtcblx0J25ndC1wb3NpdGlvbmFsLWF1ZGlvJzogTmd0UG9zaXRpb25hbEF1ZGlvO1xuXG5cdCduZ3QtbWVzaCc6IE5ndE1lc2g7XG5cdCduZ3QtaW5zdGFuY2VkLW1lc2gnOiBOZ3RJbnN0YW5jZWRNZXNoO1xuXHQnbmd0LXNjZW5lJzogTmd0U2NlbmU7XG5cdCduZ3Qtc3ByaXRlJzogTmd0U3ByaXRlO1xuXHQnbmd0LWxPRCc6IE5ndExPRDtcblx0J25ndC1za2lubmVkLW1lc2gnOiBOZ3RTa2lubmVkTWVzaDtcblx0J25ndC1za2VsZXRvbic6IE5ndFNrZWxldG9uO1xuXHQnbmd0LWJvbmUnOiBOZ3RCb25lO1xuXG5cdCduZ3QtbGluZSc6IE5ndExpbmU7XG5cdCduZ3QtbGluZS1zZWdtZW50cyc6IE5ndExpbmVTZWdtZW50cztcblx0J25ndC1saW5lLWxvb3AnOiBOZ3RMaW5lTG9vcDtcblx0J25ndC1wb2ludHMnOiBOZ3RQb2ludHM7XG5cdCduZ3QtZ3JvdXAnOiBOZ3RHcm91cDtcblxuXHQvLyBjYW1lcmFzXG5cdCduZ3QtY2FtZXJhJzogTmd0Q2FtZXJhTm9kZTtcblx0J25ndC1wZXJzcGVjdGl2ZS1jYW1lcmEnOiBOZ3RQZXJzcGVjdGl2ZUNhbWVyYTtcblx0J25ndC1vcnRob2dyYXBoaWMtY2FtZXJhJzogTmd0T3J0aG9ncmFwaGljQ2FtZXJhO1xuXHQnbmd0LWN1YmUtY2FtZXJhJzogTmd0Q3ViZUNhbWVyYTtcblx0J25ndC1hcnJheS1jYW1lcmEnOiBOZ3RBcnJheUNhbWVyYTtcblxuXHQvLyBnZW9tZXRyeVxuXHQnbmd0LWluc3RhbmNlZC1idWZmZXItZ2VvbWV0cnknOiBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeTtcblx0J25ndC1idWZmZXItZ2VvbWV0cnknOiBOZ3RCdWZmZXJHZW9tZXRyeTtcblx0J25ndC13aXJlZnJhbWUtZ2VvbWV0cnknOiBOZ3RXaXJlZnJhbWVHZW9tZXRyeTtcblx0J25ndC10ZXRyYWhlZHJvbi1nZW9tZXRyeSc6IE5ndFRldHJhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3Qtb2N0YWhlZHJvbi1nZW9tZXRyeSc6IE5ndE9jdGFoZWRyb25HZW9tZXRyeTtcblx0J25ndC1pY29zYWhlZHJvbi1nZW9tZXRyeSc6IE5ndEljb3NhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3QtcG9seWhlZHJvbi1nZW9tZXRyeSc6IE5ndFBvbHloZWRyb25HZW9tZXRyeTtcblx0J25ndC1kb2RlY2FoZWRyb24tZ2VvbWV0cnknOiBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeTtcblx0J25ndC10dWJlLWdlb21ldHJ5JzogTmd0VHViZUdlb21ldHJ5O1xuXHQnbmd0LXRvcnVzLWtub3QtZ2VvbWV0cnknOiBOZ3RUb3J1c0tub3RHZW9tZXRyeTtcblx0J25ndC10b3J1cy1nZW9tZXRyeSc6IE5ndFRvcnVzR2VvbWV0cnk7XG5cdCduZ3Qtc3BoZXJlLWdlb21ldHJ5JzogTmd0U3BoZXJlR2VvbWV0cnk7XG5cdCduZ3QtcmluZy1nZW9tZXRyeSc6IE5ndFJpbmdHZW9tZXRyeTtcblx0J25ndC1wbGFuZS1nZW9tZXRyeSc6IE5ndFBsYW5lR2VvbWV0cnk7XG5cdCduZ3QtbGF0aGUtZ2VvbWV0cnknOiBOZ3RMYXRoZUdlb21ldHJ5O1xuXHQnbmd0LXNoYXBlLWdlb21ldHJ5JzogTmd0U2hhcGVHZW9tZXRyeTtcblx0J25ndC1leHRydWRlLWdlb21ldHJ5JzogTmd0RXh0cnVkZUdlb21ldHJ5O1xuXHQnbmd0LWVkZ2VzLWdlb21ldHJ5JzogTmd0RWRnZXNHZW9tZXRyeTtcblx0J25ndC1jb25lLWdlb21ldHJ5JzogTmd0Q29uZUdlb21ldHJ5O1xuXHQnbmd0LWN5bGluZGVyLWdlb21ldHJ5JzogTmd0Q3lsaW5kZXJHZW9tZXRyeTtcblx0J25ndC1jaXJjbGUtZ2VvbWV0cnknOiBOZ3RDaXJjbGVHZW9tZXRyeTtcblx0J25ndC1ib3gtZ2VvbWV0cnknOiBOZ3RCb3hHZW9tZXRyeTtcblx0J25ndC1jYXBzdWxlLWdlb21ldHJ5JzogTmd0Q2Fwc3VsZUdlb21ldHJ5O1xuXG5cdC8vIG1hdGVyaWFsc1xuXHQnbmd0LXNoYWRvdy1tYXRlcmlhbCc6IE5ndFNoYWRvd01hdGVyaWFsO1xuXHQnbmd0LXNwcml0ZS1tYXRlcmlhbCc6IE5ndFNwcml0ZU1hdGVyaWFsO1xuXHQnbmd0LXJhdy1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RSYXdTaGFkZXJNYXRlcmlhbDtcblx0J25ndC1zaGFkZXItbWF0ZXJpYWwnOiBOZ3RTaGFkZXJNYXRlcmlhbDtcblx0J25ndC1wb2ludHMtbWF0ZXJpYWwnOiBOZ3RQb2ludHNNYXRlcmlhbDtcblx0J25ndC1tZXNoLXBoeXNpY2FsLW1hdGVyaWFsJzogTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1zdGFuZGFyZC1tYXRlcmlhbCc6IE5ndE1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtcGhvbmctbWF0ZXJpYWwnOiBOZ3RNZXNoUGhvbmdNYXRlcmlhbDtcblx0J25ndC1tZXNoLXRvb24tbWF0ZXJpYWwnOiBOZ3RNZXNoVG9vbk1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbm9ybWFsLW1hdGVyaWFsJzogTmd0TWVzaE5vcm1hbE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbGFtYmVydC1tYXRlcmlhbCc6IE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1kZXB0aC1tYXRlcmlhbCc6IE5ndE1lc2hEZXB0aE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtZGlzdGFuY2UtbWF0ZXJpYWwnOiBOZ3RNZXNoRGlzdGFuY2VNYXRlcmlhbDtcblx0J25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsJzogTmd0TWVzaEJhc2ljTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1tYXRjYXAtbWF0ZXJpYWwnOiBOZ3RNZXNoTWF0Y2FwTWF0ZXJpYWw7XG5cdCduZ3QtbGluZS1kYXNoZWQtbWF0ZXJpYWwnOiBOZ3RMaW5lRGFzaGVkTWF0ZXJpYWw7XG5cdCduZ3QtbGluZS1iYXNpYy1tYXRlcmlhbCc6IE5ndExpbmVCYXNpY01hdGVyaWFsO1xuXG5cdC8vIHByaW1pdGl2ZVxuXHQnbmd0LXByaW1pdGl2ZSc6IE5ndFByaW1pdGl2ZTtcblxuXHQvLyByYXdWYWx1ZVxuXHQnbmd0LXZhbHVlJzogTmd0VmFsdWU7XG5cblx0Ly8gbGlnaHRzIGFuZCBvdGhlclxuXHQnbmd0LXNwb3QtbGlnaHQtc2hhZG93JzogTmd0U3BvdExpZ2h0U2hhZG93O1xuXHQnbmd0LXNwb3QtbGlnaHQnOiBOZ3RTcG90TGlnaHQ7XG5cdCduZ3QtcG9pbnQtbGlnaHQnOiBOZ3RQb2ludExpZ2h0O1xuXHQnbmd0LXJlY3QtYXJlYS1saWdodCc6IE5ndFJlY3RBcmVhTGlnaHQ7XG5cdCduZ3QtaGVtaXNwaGVyZS1saWdodCc6IE5ndEhlbWlzcGhlcmVMaWdodDtcblx0J25ndC1kaXJlY3Rpb25hbC1saWdodC1zaGFkb3cnOiBOZ3REaXJlY3Rpb25hbExpZ2h0U2hhZG93O1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0JzogTmd0RGlyZWN0aW9uYWxMaWdodDtcblx0J25ndC1hbWJpZW50LWxpZ2h0JzogTmd0QW1iaWVudExpZ2h0O1xuXHQnbmd0LWxpZ2h0LXNoYWRvdyc6IE5ndExpZ2h0U2hhZG93O1xuXHQnbmd0LWFtYmllbnQtbGlnaHQtcHJvYmUnOiBOZ3RBbWJpZW50TGlnaHRQcm9iZTtcblx0J25ndC1oZW1pc3BoZXJlLWxpZ2h0LXByb2JlJzogTmd0SGVtaXNwaGVyZUxpZ2h0UHJvYmU7XG5cdCduZ3QtbGlnaHQtcHJvYmUnOiBOZ3RMaWdodFByb2JlO1xuXG5cdC8vIGhlbHBlcnNcblx0J25ndC1zcG90LWxpZ2h0LWhlbHBlcic6IE5ndFNwb3RMaWdodEhlbHBlcjtcblx0J25ndC1za2VsZXRvbi1oZWxwZXInOiBOZ3RTa2VsZXRvbkhlbHBlcjtcblx0J25ndC1wb2ludC1saWdodC1oZWxwZXInOiBOZ3RQb2ludExpZ2h0SGVscGVyO1xuXHQnbmd0LWhlbWlzcGhlcmUtbGlnaHQtaGVscGVyJzogTmd0SGVtaXNwaGVyZUxpZ2h0SGVscGVyO1xuXHQnbmd0LWdyaWQtaGVscGVyJzogTmd0R3JpZEhlbHBlcjtcblx0J25ndC1wb2xhci1ncmlkLWhlbHBlcic6IE5ndFBvbGFyR3JpZEhlbHBlcjtcblx0J25ndC1kaXJlY3Rpb25hbC1saWdodC1oZWxwZXInOiBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyO1xuXHQnbmd0LWNhbWVyYS1oZWxwZXInOiBOZ3RDYW1lcmFIZWxwZXI7XG5cdCduZ3QtYm94LWhlbHBlcic6IE5ndEJveEhlbHBlcjtcblx0J25ndC1ib3gzLWhlbHBlcic6IE5ndEJveDNIZWxwZXI7XG5cdCduZ3QtcGxhbmUtaGVscGVyJzogTmd0UGxhbmVIZWxwZXI7XG5cdCduZ3QtYXJyb3ctaGVscGVyJzogTmd0QXJyb3dIZWxwZXI7XG5cdCduZ3QtYXhlcy1oZWxwZXInOiBOZ3RBeGVzSGVscGVyO1xuXG5cdC8vIHRleHR1cmVzXG5cdCduZ3QtdGV4dHVyZSc6IE5ndFRleHR1cmU7XG5cdCduZ3QtdmlkZW8tdGV4dHVyZSc6IE5ndFZpZGVvVGV4dHVyZTtcblx0J25ndC1kYXRhLXRleHR1cmUnOiBOZ3REYXRhVGV4dHVyZTtcblx0J25ndC1kYXRhM0QtdGV4dHVyZSc6IE5ndERhdGEzRFRleHR1cmU7XG5cdCduZ3QtY29tcHJlc3NlZC10ZXh0dXJlJzogTmd0Q29tcHJlc3NlZFRleHR1cmU7XG5cdCduZ3QtY3ViZS10ZXh0dXJlJzogTmd0Q3ViZVRleHR1cmU7XG5cdCduZ3QtY2FudmFzLXRleHR1cmUnOiBOZ3RDYW52YXNUZXh0dXJlO1xuXHQnbmd0LWRlcHRoLXRleHR1cmUnOiBOZ3REZXB0aFRleHR1cmU7XG5cblx0Ly8gbWlzY1xuXHQnbmd0LXJheWNhc3Rlcic6IE5ndFJheWNhc3Rlcjtcblx0J25ndC12ZWN0b3IyJzogTmd0VmVjdG9yMk5vZGU7XG5cdCduZ3QtdmVjdG9yMyc6IE5ndFZlY3RvcjNOb2RlO1xuXHQnbmd0LXZlY3RvcjQnOiBOZ3RWZWN0b3I0Tm9kZTtcblx0J25ndC1ldWxlcic6IE5ndEV1bGVyTm9kZTtcblx0J25ndC1tYXRyaXgzJzogTmd0TWF0cml4M05vZGU7XG5cdCduZ3QtbWF0cml4NCc6IE5ndE1hdHJpeDROb2RlO1xuXHQnbmd0LXF1YXRlcm5pb24nOiBOZ3RRdWF0ZXJuaW9uTm9kZTtcblx0J25ndC1idWZmZXItYXR0cmlidXRlJzogTmd0QnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWZsb2F0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtZmxvYXQzMi1idWZmZXItYXR0cmlidXRlJzogTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1mbG9hdDY0LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDY0QnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWludDgtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDhCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDE2QnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWludDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0OC1idWZmZXItYXR0cmlidXRlJzogTmd0VWludDhCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtdW5pdDE2LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50MTZCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtdW5pdDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50MzJCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW5zdGFuY2VkLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtY29sb3InOiBOZ3RDb2xvcjtcblx0J25ndC1mb2cnOiBOZ3RGb2c7XG5cdCduZ3QtZm9nLWV4cDInOiBOZ3RGb2dFeHAyO1xuXHQnbmd0LXNoYXBlJzogTmd0U2hhcGU7XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCBleHRlbmRzIFRocmVlRWxlbWVudHMge31cbn1cbiJdfQ==
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEV2ZW50SGFuZGxlcnMgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgdHlwZSB7IE5ndEFmdGVyQXR0YWNoLCBOZ3RBdHRhY2hGdW5jdGlvbiwgTmd0SW5zdGFuY2VOb2RlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEJlZm9yZVJlbmRlckV2ZW50IH0gZnJvbSAnLi9zdG9yZSc7XG5cbnR5cGUgTm9FdmVudDxUPiA9IE9taXQ8VCwgJ2FkZEV2ZW50TGlzdGVuZXInIHwgJ3JlbW92ZUV2ZW50TGlzdGVuZXInPjtcblxuZXhwb3J0IHR5cGUgTmd0Tm9uRnVuY3Rpb25LZXlzPFQ+ID0geyBbSyBpbiBrZXlvZiBUXS0/OiBUW0tdIGV4dGVuZHMgRnVuY3Rpb24gPyBuZXZlciA6IEsgfVtrZXlvZiBUXTtcbmV4cG9ydCB0eXBlIE5ndE92ZXJ3cml0ZTxULCBPPiA9IE9taXQ8VCwgTmd0Tm9uRnVuY3Rpb25LZXlzPE8+PiAmIE87XG5cbmV4cG9ydCB0eXBlIE5ndEV4dGVuZGVkQ29sb3JzPFQ+ID0ge1xuXHRbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIFRIUkVFLkNvbG9yIHwgdW5kZWZpbmVkID8gVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbiA6IFRbS107XG59O1xuXG4vKipcbiAqIElmICoqVCoqIGNvbnRhaW5zIGEgY29uc3RydWN0b3IsIEBzZWUgQ29uc3RydWN0b3JQYXJhbWV0ZXJzIG11c3QgYmUgdXNlZCwgb3RoZXJ3aXNlICoqVCoqLlxuICovXG50eXBlIE5ndEFyZ3VtZW50czxUPiA9IFQgZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IGFueSkgPT4gYW55ID8gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFQ+IDogVDtcblxuZXhwb3J0IHR5cGUgTmd0RXVsZXIgPSBUSFJFRS5FdWxlciB8IFBhcmFtZXRlcnM8VEhSRUUuRXVsZXJbJ3NldCddPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDQgPSBUSFJFRS5NYXRyaXg0IHwgUGFyYW1ldGVyczxUSFJFRS5NYXRyaXg0WydzZXQnXT4gfCBSZWFkb25seTxUSFJFRS5NYXRyaXg0WydzZXQnXT47XG5cbi8qKlxuICogVHVybiBhbiBpbXBsZW1lbnRhdGlvbiBvZiBUSFJFRS5WZWN0b3IgaW4gdG8gdGhlIHR5cGUgdGhhdCBhbiByM2YgY29tcG9uZW50IHdvdWxkIGFjY2VwdCBhcyBhIHByb3AuXG4gKi9cbnR5cGUgTmd0VmVjdG9yTGlrZTxWZWN0b3JDbGFzcyBleHRlbmRzIFRIUkVFLlZlY3RvcjIgfCBUSFJFRS5WZWN0b3IzIHwgVEhSRUUuVmVjdG9yND4gPVxuXHR8IFZlY3RvckNsYXNzXG5cdHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+XG5cdHwgUmVhZG9ubHk8UGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+PlxuXHR8IFBhcmFtZXRlcnM8VmVjdG9yQ2xhc3NbJ3NldFNjYWxhciddPlswXTtcblxuZXhwb3J0IHR5cGUgTmd0VmVjdG9yMiA9IE5ndFZlY3Rvckxpa2U8VEhSRUUuVmVjdG9yMj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IzID0gTmd0VmVjdG9yTGlrZTxUSFJFRS5WZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjQgPSBOZ3RWZWN0b3JMaWtlPFRIUkVFLlZlY3RvcjQ+O1xuZXhwb3J0IHR5cGUgTmd0TGF5ZXJzID0gVEhSRUUuTGF5ZXJzIHwgUGFyYW1ldGVyczxUSFJFRS5MYXllcnNbJ3NldCddPlswXTtcbmV4cG9ydCB0eXBlIE5ndFF1YXRlcm5pb24gPSBUSFJFRS5RdWF0ZXJuaW9uIHwgUGFyYW1ldGVyczxUSFJFRS5RdWF0ZXJuaW9uWydzZXQnXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4ge1xuXHRhZnRlckF0dGFjaDogTmd0QWZ0ZXJBdHRhY2g8Tmd0SW5zdGFuY2VOb2RlLCBUT3JpZ2luYWw+O1xuXHRhZnRlclVwZGF0ZTogVE9yaWdpbmFsO1xuXHRiZWZvcmVSZW5kZXI6IE5ndEJlZm9yZVJlbmRlckV2ZW50PFRPcmlnaW5hbD47XG59XG5cbmV4cG9ydCB0eXBlIE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiA9IHtcblx0YXR0YWNoOiBzdHJpbmcgfCBzdHJpbmdbXSB8IE5ndEF0dGFjaEZ1bmN0aW9uO1xuXHQvLyByZWY6IE5ndEluamVjdGVkUmVmPFRPcmlnaW5hbD47XG5cdGFkZEV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD4+KFxuXHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRsaXN0ZW5lcjogKHRoaXM6IE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+W1RFdmVudEtleV0pID0+IGFueSxcblx0KTogdm9pZDtcblx0cmVtb3ZlRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG5cdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdGxpc3RlbmVyOiAodGhpczogTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0Tm9kZUV2ZW50TWFwPFRPcmlnaW5hbD5bVEV2ZW50S2V5XSkgPT4gYW55LFxuXHQpOiB2b2lkO1xuXHRfX25ndF9hcmdzX186IE5ndEFyZ3VtZW50czxUQ29uc3RydWN0b3I+O1xufTtcblxuZXhwb3J0IHR5cGUgTmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gTmd0RXh0ZW5kZWRDb2xvcnM8XG5cdE5ndE92ZXJ3cml0ZTxQYXJ0aWFsPFROb0V2ZW50PiwgTmd0Tm9kZUVsZW1lbnQ8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+PlxuPjtcblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0M0RFdmVudHNNYXAgPSB7XG5cdFtURXZlbnQgaW4ga2V5b2YgTmd0RXZlbnRIYW5kbGVyc10tPzogUGFyYW1ldGVyczxOb25OdWxsYWJsZTxOZ3RFdmVudEhhbmRsZXJzW1RFdmVudF0+PlswXTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNETm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gTmd0T3ZlcndyaXRlPFxuXHROZ3ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yLCBUTm9FdmVudD4sXG5cdHtcblx0XHRwb3NpdGlvbjogTmd0VmVjdG9yMztcblx0XHR1cDogTmd0VmVjdG9yMztcblx0XHRzY2FsZTogTmd0VmVjdG9yMztcblx0XHRyb3RhdGlvbjogTmd0RXVsZXI7XG5cdFx0bWF0cml4OiBOZ3RNYXRyaXg0O1xuXHRcdHF1YXRlcm5pb246IE5ndFF1YXRlcm5pb247XG5cdFx0bGF5ZXJzOiBOZ3RMYXllcnM7XG5cdFx0ZGlzcG9zZTogKCgpID0+IHZvaWQpIHwgbnVsbDtcblx0XHRhZGRFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE9iamVjdDNERXZlbnRzTWFwPihcblx0XHRcdHR5cGU6IFRFdmVudEtleSxcblx0XHRcdGxpc3RlbmVyOiAodGhpczogTmd0T2JqZWN0M0ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE9iamVjdDNERXZlbnRzTWFwW1RFdmVudEtleV0pID0+IGFueSxcblx0XHQpOiB2b2lkO1xuXHRcdHJlbW92ZUV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0T2JqZWN0M0RFdmVudHNNYXA+KFxuXHRcdFx0dHlwZTogVEV2ZW50S2V5LFxuXHRcdFx0bGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0T2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55LFxuXHRcdCk6IHZvaWQ7XG5cdH1cbj47XG5cbmV4cG9ydCB0eXBlIE5ndEdlb21ldHJ5PFRHZW9tZXRyeSBleHRlbmRzIFRIUkVFLkJ1ZmZlckdlb21ldHJ5LCBUQ29uc3RydWN0b3I+ID0gTmd0Tm9kZTxUR2VvbWV0cnksIFRDb25zdHJ1Y3Rvcj47XG5leHBvcnQgdHlwZSBOZ3RNYXRlcmlhbDxUTWF0ZXJpYWwgZXh0ZW5kcyBUSFJFRS5NYXRlcmlhbCwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VE1hdGVyaWFsLCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TGlnaHQ8VCBleHRlbmRzIFRIUkVFLkxpZ2h0LCBQPiA9IE5ndE9iamVjdDNETm9kZTxULCBQPjtcblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0M0QgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuT2JqZWN0M0QsIHR5cGVvZiBUSFJFRS5PYmplY3QzRD47XG5leHBvcnQgdHlwZSBOZ3RBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BdWRpbywgdHlwZW9mIFRIUkVFLkF1ZGlvPjtcbmV4cG9ydCB0eXBlIE5ndEF1ZGlvTGlzdGVuZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXVkaW9MaXN0ZW5lciwgdHlwZW9mIFRIUkVFLkF1ZGlvTGlzdGVuZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9zaXRpb25hbEF1ZGlvID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBvc2l0aW9uYWxBdWRpbywgdHlwZW9mIFRIUkVFLlBvc2l0aW9uYWxBdWRpbz47XG5cbmV4cG9ydCB0eXBlIE5ndE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuTWVzaCwgdHlwZW9mIFRIUkVFLk1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkTWVzaCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5JbnN0YW5jZWRNZXNoLCB0eXBlb2YgVEhSRUUuSW5zdGFuY2VkTWVzaD47XG5leHBvcnQgdHlwZSBOZ3RTY2VuZSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5TY2VuZSwgdHlwZW9mIFRIUkVFLlNjZW5lPjtcbmV4cG9ydCB0eXBlIE5ndFNwcml0ZSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5TcHJpdGUsIHR5cGVvZiBUSFJFRS5TcHJpdGU+O1xuZXhwb3J0IHR5cGUgTmd0TE9EID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkxPRCwgdHlwZW9mIFRIUkVFLkxPRD47XG5leHBvcnQgdHlwZSBOZ3RTa2lubmVkTWVzaCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Ta2lubmVkTWVzaCwgdHlwZW9mIFRIUkVFLlNraW5uZWRNZXNoPjtcblxuZXhwb3J0IHR5cGUgTmd0U2tlbGV0b24gPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2tlbGV0b24sIHR5cGVvZiBUSFJFRS5Ta2VsZXRvbj47XG5leHBvcnQgdHlwZSBOZ3RCb25lID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkJvbmUsIHR5cGVvZiBUSFJFRS5Cb25lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuTGluZSwgdHlwZW9mIFRIUkVFLkxpbmU+O1xuZXhwb3J0IHR5cGUgTmd0TGluZVNlZ21lbnRzID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkxpbmVTZWdtZW50cywgdHlwZW9mIFRIUkVFLkxpbmVTZWdtZW50cz47XG5leHBvcnQgdHlwZSBOZ3RMaW5lTG9vcCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MaW5lTG9vcCwgdHlwZW9mIFRIUkVFLkxpbmVMb29wPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50cyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb2ludHMsIHR5cGVvZiBUSFJFRS5Qb2ludHM+O1xuZXhwb3J0IHR5cGUgTmd0R3JvdXAgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuR3JvdXAsIHR5cGVvZiBUSFJFRS5Hcm91cD47XG5cbmV4cG9ydCB0eXBlIE5ndENhbWVyYU5vZGUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQ2FtZXJhLCB0eXBlb2YgVEhSRUUuQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndFBlcnNwZWN0aXZlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0T3J0aG9ncmFwaGljQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk9ydGhvZ3JhcGhpY0NhbWVyYSwgdHlwZW9mIFRIUkVFLk9ydGhvZ3JhcGhpY0NhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RDdWJlQ2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkN1YmVDYW1lcmEsIHR5cGVvZiBUSFJFRS5DdWJlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndEFycmF5Q2FtZXJhID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkFycmF5Q2FtZXJhLCB0eXBlb2YgVEhSRUUuQXJyYXlDYW1lcmE+O1xuXG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFxuXHRUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSxcblx0dHlwZW9mIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckdlb21ldHJ5XG4+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5CdWZmZXJHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkJ1ZmZlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFdpcmVmcmFtZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuV2lyZWZyYW1lR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5XaXJlZnJhbWVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuVGV0cmFoZWRyb25HZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlRldHJhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0T2N0YWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuT2N0YWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuT2N0YWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEljb3NhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5JY29zYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuSWNvc2FoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkRvZGVjYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuRG9kZWNhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UG9seWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuUG9seWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuUG9seWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFR1YmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlR1YmVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlR1YmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUb3J1c0tub3RHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlRvcnVzS25vdEdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuVG9ydXNLbm90R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VG9ydXNHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlRvcnVzR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Ub3J1c0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFNwaGVyZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuU3BoZXJlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5TcGhlcmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RSaW5nR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5SaW5nR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5SaW5nR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0UGxhbmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlBsYW5lR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5QbGFuZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndExhdGhlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5MYXRoZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuTGF0aGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RTaGFwZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuU2hhcGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlNoYXBlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RXh0cnVkZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuRXh0cnVkZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuRXh0cnVkZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEVkZ2VzR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5FZGdlc0dlb21ldHJ5LCB0eXBlb2YgVEhSRUUuRWRnZXNHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDb25lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Db25lR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Db25lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q3lsaW5kZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkN5bGluZGVyR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5DeWxpbmRlckdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENpcmNsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQ2lyY2xlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5DaXJjbGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RCb3hHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkJveEdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQm94R2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q2Fwc3VsZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQ2Fwc3VsZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQ2Fwc3VsZUdlb21ldHJ5PjtcblxuZXhwb3J0IHR5cGUgTmd0U2hhZG93TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5TaGFkb3dNYXRlcmlhbCwgW1RIUkVFLlNoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U3ByaXRlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5TcHJpdGVNYXRlcmlhbCwgW1RIUkVFLlNwcml0ZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UmF3U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5SYXdTaGFkZXJNYXRlcmlhbCwgW1RIUkVFLlNoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0U2hhZGVyTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5TaGFkZXJNYXRlcmlhbCwgW1RIUkVFLlNoYWRlck1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRzTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5Qb2ludHNNYXRlcmlhbCwgW1RIUkVFLlBvaW50c01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoUGh5c2ljYWxNYXRlcmlhbCwgW1RIUkVFLk1lc2hQaHlzaWNhbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFN0YW5kYXJkTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoU3RhbmRhcmRNYXRlcmlhbCwgW1RIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFBob25nTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoUGhvbmdNYXRlcmlhbCwgW1RIUkVFLk1lc2hQaG9uZ01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaFRvb25NYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hUb29uTWF0ZXJpYWwsIFtUSFJFRS5NZXNoVG9vbk1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE5vcm1hbE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaE5vcm1hbE1hdGVyaWFsLCBbVEhSRUUuTWVzaE5vcm1hbE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaExhbWJlcnRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWwsIFtUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERlcHRoTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoRGVwdGhNYXRlcmlhbCwgW1RIUkVFLk1lc2hEZXB0aE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoRGlzdGFuY2VNYXRlcmlhbCwgW1RIUkVFLk1lc2hEaXN0YW5jZU1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaEJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCwgW1RIUkVFLk1lc2hCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TWVzaE1hdGNhcE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaE1hdGNhcE1hdGVyaWFsLCBbVEhSRUUuTWVzaE1hdGNhcE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZURhc2hlZE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTGluZURhc2hlZE1hdGVyaWFsLCBbVEhSRUUuTGluZURhc2hlZE1hdGVyaWFsUGFyYW1ldGVyc10+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUJhc2ljTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCwgW1RIUkVFLkxpbmVCYXNpY01hdGVyaWFsUGFyYW1ldGVyc10+O1xuXG5leHBvcnQgdHlwZSBOZ3RQcmltaXRpdmUgPSBOZ3ROb2RlRWxlbWVudDxhbnksIGFueT47XG5leHBvcnQgdHlwZSBOZ3RWYWx1ZSA9IE5ndE5vZGU8eyByYXdWYWx1ZTogYW55IH0sIHt9PjtcblxuZXhwb3J0IHR5cGUgTmd0TGlnaHRTaGFkb3cgPSBOZ3ROb2RlPFRIUkVFLkxpZ2h0U2hhZG93LCB0eXBlb2YgVEhSRUUuTGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxUSFJFRS5TcG90TGlnaHRTaGFkb3csIHR5cGVvZiBUSFJFRS5TcG90TGlnaHRTaGFkb3c+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodFNoYWRvdyA9IE5ndE5vZGU8VEhSRUUuRGlyZWN0aW9uYWxMaWdodFNoYWRvdywgdHlwZW9mIFRIUkVFLkRpcmVjdGlvbmFsTGlnaHRTaGFkb3c+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5TcG90TGlnaHQsIHR5cGVvZiBUSFJFRS5TcG90TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodCA9IE5ndExpZ2h0PFRIUkVFLlBvaW50TGlnaHQsIHR5cGVvZiBUSFJFRS5Qb2ludExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndFJlY3RBcmVhTGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5SZWN0QXJlYUxpZ2h0LCB0eXBlb2YgVEhSRUUuUmVjdEFyZWFMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHQgPSBOZ3RMaWdodDxUSFJFRS5IZW1pc3BoZXJlTGlnaHQsIHR5cGVvZiBUSFJFRS5IZW1pc3BoZXJlTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodCA9IE5ndExpZ2h0PFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQsIHR5cGVvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEFtYmllbnRMaWdodCA9IE5ndExpZ2h0PFRIUkVFLkFtYmllbnRMaWdodCwgdHlwZW9mIFRIUkVFLkFtYmllbnRMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RMaWdodFByb2JlID0gTmd0TGlnaHQ8VEhSRUUuTGlnaHRQcm9iZSwgdHlwZW9mIFRIUkVFLkxpZ2h0UHJvYmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU3BvdExpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuU3BvdExpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNrZWxldG9uSGVscGVyLCB0eXBlb2YgVEhSRUUuU2tlbGV0b25IZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9pbnRMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb2ludExpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuUG9pbnRMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuSGVtaXNwaGVyZUxpZ2h0SGVscGVyLCB0eXBlb2YgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEdyaWRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuR3JpZEhlbHBlciwgdHlwZW9mIFRIUkVFLkdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UG9sYXJHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBvbGFyR3JpZEhlbHBlciwgdHlwZW9mIFRIUkVFLlBvbGFyR3JpZEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFxuXHRUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyLFxuXHR0eXBlb2YgVEhSRUUuRGlyZWN0aW9uYWxMaWdodEhlbHBlclxuPjtcbmV4cG9ydCB0eXBlIE5ndENhbWVyYUhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5DYW1lcmFIZWxwZXIsIHR5cGVvZiBUSFJFRS5DYW1lcmFIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0Qm94SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkJveEhlbHBlciwgdHlwZW9mIFRIUkVFLkJveEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3gzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkJveDNIZWxwZXIsIHR5cGVvZiBUSFJFRS5Cb3gzSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBsYW5lSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlBsYW5lSGVscGVyLCB0eXBlb2YgVEhSRUUuUGxhbmVIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0QXJyb3dIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXJyb3dIZWxwZXIsIHR5cGVvZiBUSFJFRS5BcnJvd0hlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBeGVzSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkF4ZXNIZWxwZXIsIHR5cGVvZiBUSFJFRS5BeGVzSGVscGVyPjtcblxuZXhwb3J0IHR5cGUgTmd0VGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuVGV4dHVyZSwgdHlwZW9mIFRIUkVFLlRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0VmlkZW9UZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5WaWRlb1RleHR1cmUsIHR5cGVvZiBUSFJFRS5WaWRlb1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YVRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkRhdGFUZXh0dXJlLCB0eXBlb2YgVEhSRUUuRGF0YVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGF0YTNEVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuRGF0YTNEVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkRhdGEzRFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q29tcHJlc3NlZFRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkNvbXByZXNzZWRUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ29tcHJlc3NlZFRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZVRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkN1YmVUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ3ViZVRleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0Q2FudmFzVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ2FudmFzVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkNhbnZhc1RleHR1cmU+O1xuZXhwb3J0IHR5cGUgTmd0RGVwdGhUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5EZXB0aFRleHR1cmUsIHR5cGVvZiBUSFJFRS5EZXB0aFRleHR1cmU+O1xuXG5leHBvcnQgdHlwZSBOZ3RSYXljYXN0ZXIgPSBOZ3ROb2RlPFRIUkVFLlJheWNhc3RlciwgdHlwZW9mIFRIUkVFLlJheWNhc3Rlcj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IyTm9kZSA9IE5ndE5vZGU8VEhSRUUuVmVjdG9yMiwgdHlwZW9mIFRIUkVFLlZlY3RvcjI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yM05vZGUgPSBOZ3ROb2RlPFRIUkVFLlZlY3RvcjMsIHR5cGVvZiBUSFJFRS5WZWN0b3IzPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjROb2RlID0gTmd0Tm9kZTxUSFJFRS5WZWN0b3I0LCB0eXBlb2YgVEhSRUUuVmVjdG9yND47XG5leHBvcnQgdHlwZSBOZ3RFdWxlck5vZGUgPSBOZ3ROb2RlPFRIUkVFLkV1bGVyLCB0eXBlb2YgVEhSRUUuRXVsZXI+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4M05vZGUgPSBOZ3ROb2RlPFRIUkVFLk1hdHJpeDMsIHR5cGVvZiBUSFJFRS5NYXRyaXgzPjtcbmV4cG9ydCB0eXBlIE5ndE1hdHJpeDROb2RlID0gTmd0Tm9kZTxUSFJFRS5NYXRyaXg0LCB0eXBlb2YgVEhSRUUuTWF0cml4ND47XG5leHBvcnQgdHlwZSBOZ3RRdWF0ZXJuaW9uTm9kZSA9IE5ndE5vZGU8VEhSRUUuUXVhdGVybmlvbiwgdHlwZW9mIFRIUkVFLlF1YXRlcm5pb24+O1xuZXhwb3J0IHR5cGUgTmd0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5CdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5CdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU+O1xuZXhwb3J0IHR5cGUgTmd0RmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkZsb2F0MzJCdWZmZXJBdHRyaWJ1dGU+O1xuLy8gQHRzLWV4cGVjdC1lcnJvciAtIG9sZCB2ZXJzaW9ucyBzdGlsbCBoYXZlIHRoaXNcbmV4cG9ydCB0eXBlIE5ndEZsb2F0NjRCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkZsb2F0NjRCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5GbG9hdDY0QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEludDhCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkludDhCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5JbnQ4QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEludDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5JbnQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkludDE2QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEludDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5JbnQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkludDMyQnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndFVpbnQ4QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5VaW50OEJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLlVpbnQ4QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuVWludDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuVWludDE2QnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuVWludDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuVWludDMyQnVmZmVyQXR0cmlidXRlPjtcbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8XG5cdFRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSxcblx0dHlwZW9mIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZVxuPjtcbmV4cG9ydCB0eXBlIE5ndENvbG9yID0gTmd0Tm9kZTxUSFJFRS5Db2xvciwgVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbj47XG5leHBvcnQgdHlwZSBOZ3RGb2cgPSBOZ3ROb2RlPFRIUkVFLkZvZywgdHlwZW9mIFRIUkVFLkZvZz47XG5leHBvcnQgdHlwZSBOZ3RGb2dFeHAyID0gTmd0Tm9kZTxUSFJFRS5Gb2dFeHAyLCB0eXBlb2YgVEhSRUUuRm9nRXhwMj47XG5leHBvcnQgdHlwZSBOZ3RTaGFwZSA9IE5ndE5vZGU8VEhSRUUuU2hhcGUsIHR5cGVvZiBUSFJFRS5TaGFwZT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhyZWVFbGVtZW50cyB7XG5cdCduZ3Qtb2JqZWN0M0QnOiBOZ3RPYmplY3QzRDtcblxuXHQvLyBgYXVkaW9gIHdvcmtzIGJ1dCBjb25mbGljdHMgd2l0aCBAdHlwZXMvcmVhY3QuIFRyeSB1c2luZyBQb3NpdGlvbmFsQXVkaW8gZnJvbSBAcmVhY3QtdGhyZWUvZHJlaSBpbnN0ZWFkXG5cdCduZ3QtYXVkaW8nOiBOZ3RBdWRpbztcblx0J25ndC1hdWRpby1saXN0ZW5lcic6IE5ndEF1ZGlvTGlzdGVuZXI7XG5cdCduZ3QtcG9zaXRpb25hbC1hdWRpbyc6IE5ndFBvc2l0aW9uYWxBdWRpbztcblxuXHQnbmd0LW1lc2gnOiBOZ3RNZXNoO1xuXHQnbmd0LWluc3RhbmNlZC1tZXNoJzogTmd0SW5zdGFuY2VkTWVzaDtcblx0J25ndC1zY2VuZSc6IE5ndFNjZW5lO1xuXHQnbmd0LXNwcml0ZSc6IE5ndFNwcml0ZTtcblx0J25ndC1sT0QnOiBOZ3RMT0Q7XG5cdCduZ3Qtc2tpbm5lZC1tZXNoJzogTmd0U2tpbm5lZE1lc2g7XG5cdCduZ3Qtc2tlbGV0b24nOiBOZ3RTa2VsZXRvbjtcblx0J25ndC1ib25lJzogTmd0Qm9uZTtcblxuXHQnbmd0LWxpbmUnOiBOZ3RMaW5lO1xuXHQnbmd0LWxpbmUtc2VnbWVudHMnOiBOZ3RMaW5lU2VnbWVudHM7XG5cdCduZ3QtbGluZS1sb29wJzogTmd0TGluZUxvb3A7XG5cdCduZ3QtcG9pbnRzJzogTmd0UG9pbnRzO1xuXHQnbmd0LWdyb3VwJzogTmd0R3JvdXA7XG5cblx0Ly8gY2FtZXJhc1xuXHQnbmd0LWNhbWVyYSc6IE5ndENhbWVyYU5vZGU7XG5cdCduZ3QtcGVyc3BlY3RpdmUtY2FtZXJhJzogTmd0UGVyc3BlY3RpdmVDYW1lcmE7XG5cdCduZ3Qtb3J0aG9ncmFwaGljLWNhbWVyYSc6IE5ndE9ydGhvZ3JhcGhpY0NhbWVyYTtcblx0J25ndC1jdWJlLWNhbWVyYSc6IE5ndEN1YmVDYW1lcmE7XG5cdCduZ3QtYXJyYXktY2FtZXJhJzogTmd0QXJyYXlDYW1lcmE7XG5cblx0Ly8gZ2VvbWV0cnlcblx0J25ndC1pbnN0YW5jZWQtYnVmZmVyLWdlb21ldHJ5JzogTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk7XG5cdCduZ3QtYnVmZmVyLWdlb21ldHJ5JzogTmd0QnVmZmVyR2VvbWV0cnk7XG5cdCduZ3Qtd2lyZWZyYW1lLWdlb21ldHJ5JzogTmd0V2lyZWZyYW1lR2VvbWV0cnk7XG5cdCduZ3QtdGV0cmFoZWRyb24tZ2VvbWV0cnknOiBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5O1xuXHQnbmd0LW9jdGFoZWRyb24tZ2VvbWV0cnknOiBOZ3RPY3RhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3QtaWNvc2FoZWRyb24tZ2VvbWV0cnknOiBOZ3RJY29zYWhlZHJvbkdlb21ldHJ5O1xuXHQnbmd0LXBvbHloZWRyb24tZ2VvbWV0cnknOiBOZ3RQb2x5aGVkcm9uR2VvbWV0cnk7XG5cdCduZ3QtZG9kZWNhaGVkcm9uLWdlb21ldHJ5JzogTmd0RG9kZWNhaGVkcm9uR2VvbWV0cnk7XG5cdCduZ3QtdHViZS1nZW9tZXRyeSc6IE5ndFR1YmVHZW9tZXRyeTtcblx0J25ndC10b3J1cy1rbm90LWdlb21ldHJ5JzogTmd0VG9ydXNLbm90R2VvbWV0cnk7XG5cdCduZ3QtdG9ydXMtZ2VvbWV0cnknOiBOZ3RUb3J1c0dlb21ldHJ5O1xuXHQnbmd0LXNwaGVyZS1nZW9tZXRyeSc6IE5ndFNwaGVyZUdlb21ldHJ5O1xuXHQnbmd0LXJpbmctZ2VvbWV0cnknOiBOZ3RSaW5nR2VvbWV0cnk7XG5cdCduZ3QtcGxhbmUtZ2VvbWV0cnknOiBOZ3RQbGFuZUdlb21ldHJ5O1xuXHQnbmd0LWxhdGhlLWdlb21ldHJ5JzogTmd0TGF0aGVHZW9tZXRyeTtcblx0J25ndC1zaGFwZS1nZW9tZXRyeSc6IE5ndFNoYXBlR2VvbWV0cnk7XG5cdCduZ3QtZXh0cnVkZS1nZW9tZXRyeSc6IE5ndEV4dHJ1ZGVHZW9tZXRyeTtcblx0J25ndC1lZGdlcy1nZW9tZXRyeSc6IE5ndEVkZ2VzR2VvbWV0cnk7XG5cdCduZ3QtY29uZS1nZW9tZXRyeSc6IE5ndENvbmVHZW9tZXRyeTtcblx0J25ndC1jeWxpbmRlci1nZW9tZXRyeSc6IE5ndEN5bGluZGVyR2VvbWV0cnk7XG5cdCduZ3QtY2lyY2xlLWdlb21ldHJ5JzogTmd0Q2lyY2xlR2VvbWV0cnk7XG5cdCduZ3QtYm94LWdlb21ldHJ5JzogTmd0Qm94R2VvbWV0cnk7XG5cdCduZ3QtY2Fwc3VsZS1nZW9tZXRyeSc6IE5ndENhcHN1bGVHZW9tZXRyeTtcblxuXHQvLyBtYXRlcmlhbHNcblx0J25ndC1zaGFkb3ctbWF0ZXJpYWwnOiBOZ3RTaGFkb3dNYXRlcmlhbDtcblx0J25ndC1zcHJpdGUtbWF0ZXJpYWwnOiBOZ3RTcHJpdGVNYXRlcmlhbDtcblx0J25ndC1yYXctc2hhZGVyLW1hdGVyaWFsJzogTmd0UmF3U2hhZGVyTWF0ZXJpYWw7XG5cdCduZ3Qtc2hhZGVyLW1hdGVyaWFsJzogTmd0U2hhZGVyTWF0ZXJpYWw7XG5cdCduZ3QtcG9pbnRzLW1hdGVyaWFsJzogTmd0UG9pbnRzTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1waHlzaWNhbC1tYXRlcmlhbCc6IE5ndE1lc2hQaHlzaWNhbE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtc3RhbmRhcmQtbWF0ZXJpYWwnOiBOZ3RNZXNoU3RhbmRhcmRNYXRlcmlhbDtcblx0J25ndC1tZXNoLXBob25nLW1hdGVyaWFsJzogTmd0TWVzaFBob25nTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC10b29uLW1hdGVyaWFsJzogTmd0TWVzaFRvb25NYXRlcmlhbDtcblx0J25ndC1tZXNoLW5vcm1hbC1tYXRlcmlhbCc6IE5ndE1lc2hOb3JtYWxNYXRlcmlhbDtcblx0J25ndC1tZXNoLWxhbWJlcnQtbWF0ZXJpYWwnOiBOZ3RNZXNoTGFtYmVydE1hdGVyaWFsO1xuXHQnbmd0LW1lc2gtZGVwdGgtbWF0ZXJpYWwnOiBOZ3RNZXNoRGVwdGhNYXRlcmlhbDtcblx0J25ndC1tZXNoLWRpc3RhbmNlLW1hdGVyaWFsJzogTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWw7XG5cdCduZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbCc6IE5ndE1lc2hCYXNpY01hdGVyaWFsO1xuXHQnbmd0LW1lc2gtbWF0Y2FwLW1hdGVyaWFsJzogTmd0TWVzaE1hdGNhcE1hdGVyaWFsO1xuXHQnbmd0LWxpbmUtZGFzaGVkLW1hdGVyaWFsJzogTmd0TGluZURhc2hlZE1hdGVyaWFsO1xuXHQnbmd0LWxpbmUtYmFzaWMtbWF0ZXJpYWwnOiBOZ3RMaW5lQmFzaWNNYXRlcmlhbDtcblxuXHQvLyBwcmltaXRpdmVcblx0J25ndC1wcmltaXRpdmUnOiBOZ3RQcmltaXRpdmU7XG5cblx0Ly8gcmF3VmFsdWVcblx0J25ndC12YWx1ZSc6IE5ndFZhbHVlO1xuXG5cdC8vIGxpZ2h0cyBhbmQgb3RoZXJcblx0J25ndC1zcG90LWxpZ2h0LXNoYWRvdyc6IE5ndFNwb3RMaWdodFNoYWRvdztcblx0J25ndC1zcG90LWxpZ2h0JzogTmd0U3BvdExpZ2h0O1xuXHQnbmd0LXBvaW50LWxpZ2h0JzogTmd0UG9pbnRMaWdodDtcblx0J25ndC1yZWN0LWFyZWEtbGlnaHQnOiBOZ3RSZWN0QXJlYUxpZ2h0O1xuXHQnbmd0LWhlbWlzcGhlcmUtbGlnaHQnOiBOZ3RIZW1pc3BoZXJlTGlnaHQ7XG5cdCduZ3QtZGlyZWN0aW9uYWwtbGlnaHQtc2hhZG93JzogTmd0RGlyZWN0aW9uYWxMaWdodFNoYWRvdztcblx0J25ndC1kaXJlY3Rpb25hbC1saWdodCc6IE5ndERpcmVjdGlvbmFsTGlnaHQ7XG5cdCduZ3QtYW1iaWVudC1saWdodCc6IE5ndEFtYmllbnRMaWdodDtcblx0J25ndC1saWdodC1zaGFkb3cnOiBOZ3RMaWdodFNoYWRvdztcblx0J25ndC1saWdodC1wcm9iZSc6IE5ndExpZ2h0UHJvYmU7XG5cblx0Ly8gaGVscGVyc1xuXHQnbmd0LXNwb3QtbGlnaHQtaGVscGVyJzogTmd0U3BvdExpZ2h0SGVscGVyO1xuXHQnbmd0LXNrZWxldG9uLWhlbHBlcic6IE5ndFNrZWxldG9uSGVscGVyO1xuXHQnbmd0LXBvaW50LWxpZ2h0LWhlbHBlcic6IE5ndFBvaW50TGlnaHRIZWxwZXI7XG5cdCduZ3QtaGVtaXNwaGVyZS1saWdodC1oZWxwZXInOiBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXI7XG5cdCduZ3QtZ3JpZC1oZWxwZXInOiBOZ3RHcmlkSGVscGVyO1xuXHQnbmd0LXBvbGFyLWdyaWQtaGVscGVyJzogTmd0UG9sYXJHcmlkSGVscGVyO1xuXHQnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0LWhlbHBlcic6IE5ndERpcmVjdGlvbmFsTGlnaHRIZWxwZXI7XG5cdCduZ3QtY2FtZXJhLWhlbHBlcic6IE5ndENhbWVyYUhlbHBlcjtcblx0J25ndC1ib3gtaGVscGVyJzogTmd0Qm94SGVscGVyO1xuXHQnbmd0LWJveDMtaGVscGVyJzogTmd0Qm94M0hlbHBlcjtcblx0J25ndC1wbGFuZS1oZWxwZXInOiBOZ3RQbGFuZUhlbHBlcjtcblx0J25ndC1hcnJvdy1oZWxwZXInOiBOZ3RBcnJvd0hlbHBlcjtcblx0J25ndC1heGVzLWhlbHBlcic6IE5ndEF4ZXNIZWxwZXI7XG5cblx0Ly8gdGV4dHVyZXNcblx0J25ndC10ZXh0dXJlJzogTmd0VGV4dHVyZTtcblx0J25ndC12aWRlby10ZXh0dXJlJzogTmd0VmlkZW9UZXh0dXJlO1xuXHQnbmd0LWRhdGEtdGV4dHVyZSc6IE5ndERhdGFUZXh0dXJlO1xuXHQnbmd0LWRhdGEzRC10ZXh0dXJlJzogTmd0RGF0YTNEVGV4dHVyZTtcblx0J25ndC1jb21wcmVzc2VkLXRleHR1cmUnOiBOZ3RDb21wcmVzc2VkVGV4dHVyZTtcblx0J25ndC1jdWJlLXRleHR1cmUnOiBOZ3RDdWJlVGV4dHVyZTtcblx0J25ndC1jYW52YXMtdGV4dHVyZSc6IE5ndENhbnZhc1RleHR1cmU7XG5cdCduZ3QtZGVwdGgtdGV4dHVyZSc6IE5ndERlcHRoVGV4dHVyZTtcblxuXHQvLyBtaXNjXG5cdCduZ3QtcmF5Y2FzdGVyJzogTmd0UmF5Y2FzdGVyO1xuXHQnbmd0LXZlY3RvcjInOiBOZ3RWZWN0b3IyTm9kZTtcblx0J25ndC12ZWN0b3IzJzogTmd0VmVjdG9yM05vZGU7XG5cdCduZ3QtdmVjdG9yNCc6IE5ndFZlY3RvcjROb2RlO1xuXHQnbmd0LWV1bGVyJzogTmd0RXVsZXJOb2RlO1xuXHQnbmd0LW1hdHJpeDMnOiBOZ3RNYXRyaXgzTm9kZTtcblx0J25ndC1tYXRyaXg0JzogTmd0TWF0cml4NE5vZGU7XG5cdCduZ3QtcXVhdGVybmlvbic6IE5ndFF1YXRlcm5pb25Ob2RlO1xuXHQnbmd0LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtZmxvYXQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0RmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1mbG9hdDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDMyQnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LWZsb2F0NjQtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0NjRCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50OC1idWZmZXItYXR0cmlidXRlJzogTmd0SW50OEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1pbnQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGU7XG5cdCduZ3QtaW50MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDMyQnVmZmVyQXR0cmlidXRlO1xuXHQnbmd0LXVuaXQ4LWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RVaW50OEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC11bml0MzItYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQzMkJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1pbnN0YW5jZWQtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZTtcblx0J25ndC1jb2xvcic6IE5ndENvbG9yO1xuXHQnbmd0LWZvZyc6IE5ndEZvZztcblx0J25ndC1mb2ctZXhwMic6IE5ndEZvZ0V4cDI7XG5cdCduZ3Qtc2hhcGUnOiBOZ3RTaGFwZTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIGV4dGVuZHMgVGhyZWVFbGVtZW50cyB7fVxufVxuIl19
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { untracked } from '@angular/core';
|
|
2
1
|
import * as THREE from 'three';
|
|
3
2
|
import { getLocalState, invalidateInstance } from '../instance';
|
|
4
3
|
import { is } from './is';
|
|
5
4
|
import { checkUpdate } from './update';
|
|
6
5
|
// This function prepares a set of changes to be applied to the instance
|
|
7
|
-
|
|
6
|
+
function diffProps(instance, props) {
|
|
8
7
|
const propsEntries = Object.entries(props);
|
|
9
8
|
const changes = [];
|
|
10
9
|
for (const [propKey, propValue] of propsEntries) {
|
|
@@ -28,10 +27,9 @@ export function applyProps(instance, props) {
|
|
|
28
27
|
// if props is empty
|
|
29
28
|
if (!Object.keys(props).length)
|
|
30
29
|
return instance;
|
|
31
|
-
//
|
|
32
|
-
// filter equals, events , and reserved props
|
|
30
|
+
// filter equals, and reserved props
|
|
33
31
|
const localState = getLocalState(instance);
|
|
34
|
-
const rootState = localState
|
|
32
|
+
const rootState = localState?.store?.snapshot ?? {};
|
|
35
33
|
const changes = diffProps(instance, props);
|
|
36
34
|
for (let i = 0; i < changes.length; i++) {
|
|
37
35
|
let [key, value] = changes[i];
|
|
@@ -61,8 +59,7 @@ export function applyProps(instance, props) {
|
|
|
61
59
|
targetProp['fromArray'](value);
|
|
62
60
|
else
|
|
63
61
|
targetProp['set'](...value);
|
|
64
|
-
}
|
|
65
|
-
// test again target.copy
|
|
62
|
+
} // test again target.copy
|
|
66
63
|
else if (targetProp['copy'] &&
|
|
67
64
|
value &&
|
|
68
65
|
value.constructor &&
|
|
@@ -70,8 +67,7 @@ export function applyProps(instance, props) {
|
|
|
70
67
|
targetProp['copy'](value);
|
|
71
68
|
if (!THREE.ColorManagement && !rootState.linear && isColor)
|
|
72
69
|
targetProp['convertSRGBToLinear']();
|
|
73
|
-
}
|
|
74
|
-
// if nothing else fits, just set the single value, ignore undefined
|
|
70
|
+
} // if nothing else fits, just set the single value, ignore undefined
|
|
75
71
|
else if (value !== undefined) {
|
|
76
72
|
const isColor = targetProp instanceof THREE.Color;
|
|
77
73
|
// allow setting array scalars
|
|
@@ -87,8 +83,7 @@ export function applyProps(instance, props) {
|
|
|
87
83
|
if (!THREE.ColorManagement && !rootState?.linear && isColor)
|
|
88
84
|
targetProp.convertSRGBToLinear();
|
|
89
85
|
}
|
|
90
|
-
}
|
|
91
|
-
// else just overwrite the value
|
|
86
|
+
} // else just overwrite the value
|
|
92
87
|
else {
|
|
93
88
|
currentInstance[key] = value;
|
|
94
89
|
// auto-convert srgb textures
|
|
@@ -99,8 +94,9 @@ export function applyProps(instance, props) {
|
|
|
99
94
|
if (rootState?.gl) {
|
|
100
95
|
if (is.colorSpaceExist(texture) && is.colorSpaceExist(rootState.gl))
|
|
101
96
|
texture.colorSpace = rootState.gl.outputColorSpace;
|
|
97
|
+
// @ts-expect-error - these are removed in new version of three but still available in older versions
|
|
102
98
|
else
|
|
103
|
-
texture
|
|
99
|
+
texture['encoding'] = rootState.gl['outputEncoding'];
|
|
104
100
|
}
|
|
105
101
|
}
|
|
106
102
|
}
|
|
@@ -108,20 +104,20 @@ export function applyProps(instance, props) {
|
|
|
108
104
|
checkUpdate(targetProp);
|
|
109
105
|
invalidateInstance(instance);
|
|
110
106
|
}
|
|
111
|
-
const
|
|
112
|
-
const parent = localState
|
|
113
|
-
if (parent && rootState.internal && instance['raycast'] &&
|
|
107
|
+
const instanceHandlersCount = localState?.eventCount;
|
|
108
|
+
const parent = localState?.instanceStore?.get('parent');
|
|
109
|
+
if (parent && rootState.internal && instance['raycast'] && instanceHandlersCount !== localState?.eventCount) {
|
|
114
110
|
// Pre-emptively remove the instance from the interaction manager
|
|
115
111
|
const index = rootState.internal.interaction.indexOf(instance);
|
|
116
112
|
if (index > -1)
|
|
117
113
|
rootState.internal.interaction.splice(index, 1);
|
|
118
114
|
// Add the instance to the interaction manager only when it has handlers
|
|
119
|
-
if (localState
|
|
115
|
+
if (localState?.eventCount)
|
|
120
116
|
rootState.internal.interaction.push(instance);
|
|
121
117
|
}
|
|
122
|
-
if (parent && localState
|
|
123
|
-
localState.afterUpdate.
|
|
118
|
+
if (parent && localState?.afterUpdate && localState.afterUpdate.observed && changes.length) {
|
|
119
|
+
localState.afterUpdate.next(instance);
|
|
124
120
|
}
|
|
125
121
|
return instance;
|
|
126
122
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQXdCLE1BQU0sYUFBYSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV2Qyx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLFNBQVMsQ0FBQyxRQUFzQixFQUFFLEtBQW1CO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsTUFBTSxPQUFPLEdBQW9DLEVBQUUsQ0FBQztJQUVwRCxLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksWUFBWSxFQUFFO1FBQ2hELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakMsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFO2dCQUMzQixHQUFHLEdBQUcsWUFBWSxDQUFDO2FBQ25CO2lCQUFNLElBQUksT0FBTyxLQUFLLGdCQUFnQixFQUFFO2dCQUN4QyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7YUFDekI7U0FDRDtRQUNELElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDbkM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNoQixDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sVUFBVSxVQUFVLENBQUMsUUFBeUIsRUFBRSxLQUFtQjtJQUN4RSxvQkFBb0I7SUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBRWhELDJDQUEyQztJQUMzQyw2Q0FBNkM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUUzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5Qiw0REFBNEQ7UUFDNUQsd0RBQXdEO1FBQ3hELElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNqQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDMUIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO1lBQzlCLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDO1lBRTNDLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRTtnQkFDdkIsR0FBRyxHQUFHLFlBQVksQ0FBQztnQkFDbkIsS0FBSyxHQUFHLEtBQUssS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7YUFDdkU7aUJBQU0sSUFBSSxHQUFHLEtBQUssZ0JBQWdCLEVBQUU7Z0JBQ3BDLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztnQkFDekIsS0FBSyxHQUFHLEtBQUssS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7YUFDdkU7U0FDRDtRQUVELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQztRQUNqQyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFpQixDQUFDO1FBRXhELHFFQUFxRTtRQUNyRSxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxZQUFZLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRyxNQUFNLE9BQU8sR0FBRyxVQUFVLFlBQVksS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNsRCx1QkFBdUI7WUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFLLFVBQTJCLENBQUMsV0FBVyxDQUFDO29CQUFHLFVBQTJCLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7O29CQUMzRixVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQzthQUNqQztZQUNELHlCQUF5QjtpQkFDcEIsSUFDSCxVQUEyQixDQUFDLE1BQU0sQ0FBQztnQkFDcEMsS0FBSztnQkFDTCxLQUFLLENBQUMsV0FBVztnQkFDakIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQ3JEO2dCQUNBLFVBQTJCLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxPQUFPO29CQUFFLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7YUFDaEc7WUFDRCxvRUFBb0U7aUJBQy9ELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDN0IsTUFBTSxPQUFPLEdBQUcsVUFBVSxZQUFZLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ2xELDhCQUE4QjtnQkFDOUIsSUFBSSxDQUFDLE9BQU8sSUFBSyxVQUEyQixDQUFDLFdBQVcsQ0FBQztvQkFDdkQsVUFBMkIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEQsOENBQThDO3FCQUN6QyxJQUFJLFVBQVUsWUFBWSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssWUFBWSxLQUFLLENBQUMsTUFBTTtvQkFDM0UsVUFBVSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUM5Qix5QkFBeUI7O29CQUNwQixVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRTlCLG9CQUFvQjtnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxJQUFJLE9BQU87b0JBQUUsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDOUY7U0FDRDtRQUNELGdDQUFnQzthQUMzQjtZQUNKLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDN0IsNkJBQTZCO1lBQzdCLElBQ0MsZUFBZSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUssQ0FBQyxPQUFPO2dCQUM3QyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxVQUFVO2dCQUNoRCxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbkQ7Z0JBQ0QsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBa0IsQ0FBQztnQkFFdEQsSUFBSSxTQUFTLEVBQUUsRUFBRSxFQUFFO29CQUNsQixJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO3dCQUNsRSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7O3dCQUMvQyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUNwRDthQUNEO1NBQ0Q7UUFFRCxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzdCO0lBRUQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQy9DLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUV2RSxJQUFJLE1BQU0sSUFBSSxTQUFTLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxnQkFBZ0IsS0FBSyxVQUFVLENBQUMsVUFBVSxFQUFFO1FBQ3RHLGlFQUFpRTtRQUNqRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSx3RUFBd0U7UUFDeEUsSUFBSSxVQUFVLENBQUMsVUFBVTtZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN6RTtJQUVELElBQUksTUFBTSxJQUFJLFVBQVUsQ0FBQyxXQUFXLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUMxRixVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN0QztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGdldExvY2FsU3RhdGUsIGludmFsaWRhdGVJbnN0YW5jZSwgdHlwZSBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuLi9pbnN0YW5jZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuLy8gVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhIHNldCBvZiBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGluc3RhbmNlXG5leHBvcnQgZnVuY3Rpb24gZGlmZlByb3BzKGluc3RhbmNlOiBOZ3RBbnlSZWNvcmQsIHByb3BzOiBOZ3RBbnlSZWNvcmQpIHtcblx0Y29uc3QgcHJvcHNFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMocHJvcHMpO1xuXHRjb25zdCBjaGFuZ2VzOiBba2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duXVtdID0gW107XG5cblx0Zm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBwcm9wc0VudHJpZXMpIHtcblx0XHRsZXQga2V5ID0gcHJvcEtleTtcblx0XHRpZiAoaXMuY29sb3JTcGFjZUV4aXN0KGluc3RhbmNlKSkge1xuXHRcdFx0aWYgKHByb3BLZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0fSBlbHNlIGlmIChwcm9wS2V5ID09PSAnb3V0cHV0RW5jb2RpbmcnKSB7XG5cdFx0XHRcdGtleSA9ICdvdXRwdXRDb2xvclNwYWNlJztcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGlzLmVxdShwcm9wVmFsdWUsIGluc3RhbmNlW2tleV0pKSBjb250aW51ZTtcblx0XHRjaGFuZ2VzLnB1c2goW3Byb3BLZXksIHByb3BWYWx1ZV0pO1xuXHR9XG5cblx0cmV0dXJuIGNoYW5nZXM7XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gYXBwbGllcyBhIHNldCBvZiBjaGFuZ2VzIHRvIHRoZSBpbnN0YW5jZVxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UHJvcHMoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgcHJvcHM6IE5ndEFueVJlY29yZCkge1xuXHQvLyBpZiBwcm9wcyBpcyBlbXB0eVxuXHRpZiAoIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGgpIHJldHVybiBpbnN0YW5jZTtcblxuXHQvLyBGaWx0ZXIgZXF1YWxzLCBldmVudHMgYW5kIHJlc2VydmVkIHByb3BzXG5cdC8vIGZpbHRlciBlcXVhbHMsIGV2ZW50cyAsIGFuZCByZXNlcnZlZCBwcm9wc1xuXHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG5cdGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGUuc3RvcmU/LmdldCgpO1xuXHRjb25zdCBjaGFuZ2VzID0gZGlmZlByb3BzKGluc3RhbmNlLCBwcm9wcyk7XG5cblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0bGV0IFtrZXksIHZhbHVlXSA9IGNoYW5nZXNbaV07XG5cblx0XHQvLyBBbGlhcyAob3V0cHV0KWVuY29kaW5nID0+IChvdXRwdXQpY29sb3JTcGFjZSAoc2luY2UgcjE1Milcblx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL3B1bGwvMjgyOVxuXHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QoaW5zdGFuY2UpKSB7XG5cdFx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdFx0Y29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG5cdFx0XHRjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cblx0XHRcdGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ2NvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcblx0XHRcdFx0a2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGN1cnJlbnRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXHRcdGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XSBhcyBOZ3RBbnlSZWNvcmQ7XG5cblx0XHQvLyBzcGVjaWFsIHRyZWF0bWVuIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3Igc2V0L2NvcHksIGFuZCBsYXllcnNcblx0XHRpZiAodGFyZ2V0UHJvcCAmJiB0YXJnZXRQcm9wWydzZXQnXSAmJiAodGFyZ2V0UHJvcFsnY29weSddIHx8IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpKSB7XG5cdFx0XHRjb25zdCBpc0NvbG9yID0gdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yO1xuXHRcdFx0Ly8gaWYgdmFsdWUgaXMgYW4gYXJyYXlcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0XHRpZiAoKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnZnJvbUFycmF5J10pICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2Zyb21BcnJheSddKHZhbHVlKTtcblx0XHRcdFx0ZWxzZSB0YXJnZXRQcm9wWydzZXQnXSguLi52YWx1ZSk7XG5cdFx0XHR9XG5cdFx0XHQvLyB0ZXN0IGFnYWluIHRhcmdldC5jb3B5XG5cdFx0XHRlbHNlIGlmIChcblx0XHRcdFx0KHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnY29weSddICYmXG5cdFx0XHRcdHZhbHVlICYmXG5cdFx0XHRcdHZhbHVlLmNvbnN0cnVjdG9yICYmXG5cdFx0XHRcdHRhcmdldFByb3AuY29uc3RydWN0b3IubmFtZSA9PT0gdmFsdWUuY29uc3RydWN0b3IubmFtZVxuXHRcdFx0KSB7XG5cdFx0XHRcdCh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2NvcHknXSh2YWx1ZSk7XG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGUubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3BbJ2NvbnZlcnRTUkdCVG9MaW5lYXInXSgpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gaWYgbm90aGluZyBlbHNlIGZpdHMsIGp1c3Qgc2V0IHRoZSBzaW5nbGUgdmFsdWUsIGlnbm9yZSB1bmRlZmluZWRcblx0XHRcdGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcblx0XHRcdFx0Ly8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG5cdFx0XHRcdGlmICghaXNDb2xvciAmJiAodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSlcblx0XHRcdFx0XHQodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSh2YWx1ZSk7XG5cdFx0XHRcdC8vIGxheWVycyBoYXZlIG5vIGNvcHkgZnVuY3Rpb24sIGNvcHkgdGhlIG1hc2tcblx0XHRcdFx0ZWxzZSBpZiAodGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkxheWVycyAmJiB2YWx1ZSBpbnN0YW5jZW9mIFRIUkVFLkxheWVycylcblx0XHRcdFx0XHR0YXJnZXRQcm9wLm1hc2sgPSB2YWx1ZS5tYXNrO1xuXHRcdFx0XHQvLyBvdGhlcndpc2UganVzdCBzZXQgLi4uXG5cdFx0XHRcdGVsc2UgdGFyZ2V0UHJvcFsnc2V0J10odmFsdWUpO1xuXG5cdFx0XHRcdC8vIGF1dG8tY29udmVydCBzcmdiXG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGU/LmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gZWxzZSBqdXN0IG92ZXJ3cml0ZSB0aGUgdmFsdWVcblx0XHRlbHNlIHtcblx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG5cdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XSBpbnN0YW5jZW9mIFRIUkVFLlRleHR1cmUgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0uZm9ybWF0ID09PSBUSFJFRS5SR0JBRm9ybWF0ICYmXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFRIUkVFLlVuc2lnbmVkQnl0ZVR5cGVcblx0XHRcdCkge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gY3VycmVudEluc3RhbmNlW2tleV0gYXMgVEhSRUUuVGV4dHVyZTtcblxuXHRcdFx0XHRpZiAocm9vdFN0YXRlPy5nbCkge1xuXHRcdFx0XHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QodGV4dHVyZSkgJiYgaXMuY29sb3JTcGFjZUV4aXN0KHJvb3RTdGF0ZS5nbCkpXG5cdFx0XHRcdFx0XHR0ZXh0dXJlLmNvbG9yU3BhY2UgPSByb290U3RhdGUuZ2wub3V0cHV0Q29sb3JTcGFjZTtcblx0XHRcdFx0XHRlbHNlIHRleHR1cmUuZW5jb2RpbmcgPSByb290U3RhdGUuZ2wub3V0cHV0RW5jb2Rpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjaGVja1VwZGF0ZShjdXJyZW50SW5zdGFuY2Vba2V5XSk7XG5cdFx0Y2hlY2tVcGRhdGUodGFyZ2V0UHJvcCk7XG5cdFx0aW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcblx0fVxuXG5cdGNvbnN0IGluc3RhbmNlSGFuZGxlcnMgPSBsb2NhbFN0YXRlLmV2ZW50Q291bnQ7XG5cdGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGUucGFyZW50ID8gdW50cmFja2VkKGxvY2FsU3RhdGUucGFyZW50KSA6IG51bGw7XG5cblx0aWYgKHBhcmVudCAmJiByb290U3RhdGUuaW50ZXJuYWwgJiYgaW5zdGFuY2VbJ3JheWNhc3QnXSAmJiBpbnN0YW5jZUhhbmRsZXJzICE9PSBsb2NhbFN0YXRlLmV2ZW50Q291bnQpIHtcblx0XHQvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuXHRcdGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuXHRcdGlmIChpbmRleCA+IC0xKSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uc3BsaWNlKGluZGV4LCAxKTtcblx0XHQvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcblx0XHRpZiAobG9jYWxTdGF0ZS5ldmVudENvdW50KSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24ucHVzaChpbnN0YW5jZSk7XG5cdH1cblxuXHRpZiAocGFyZW50ICYmIGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUgJiYgbG9jYWxTdGF0ZS5hZnRlclVwZGF0ZS5vYnNlcnZlZCAmJiBjaGFuZ2VzLmxlbmd0aCkge1xuXHRcdGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUuZW1pdChpbnN0YW5jZSk7XG5cdH1cblxuXHRyZXR1cm4gaW5zdGFuY2U7XG59XG4iXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUF3QixNQUFNLGFBQWEsQ0FBQztBQUd0RixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkMsd0VBQXdFO0FBQ3hFLFNBQVMsU0FBUyxDQUFDLFFBQXNCLEVBQUUsS0FBbUI7SUFDN0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxNQUFNLE9BQU8sR0FBb0MsRUFBRSxDQUFDO0lBRXBELEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDbEIsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQzVCLEdBQUcsR0FBRyxZQUFZLENBQUM7WUFDcEIsQ0FBQztpQkFBTSxJQUFJLE9BQU8sS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN6QyxHQUFHLEdBQUcsa0JBQWtCLENBQUM7WUFDMUIsQ0FBQztRQUNGLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUFFLFNBQVM7UUFDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0lB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LFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUYsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBnZXRMb2NhbFN0YXRlLCBpbnZhbGlkYXRlSW5zdGFuY2UsIHR5cGUgTmd0SW5zdGFuY2VOb2RlIH0gZnJvbSAnLi4vaW5zdGFuY2UnO1xuaW1wb3J0IHR5cGUgeyBOZ3RTdGF0ZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB0eXBlIHsgTmd0QW55UmVjb3JkIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL2lzJztcbmltcG9ydCB7IGNoZWNrVXBkYXRlIH0gZnJvbSAnLi91cGRhdGUnO1xuXG4vLyBUaGlzIGZ1bmN0aW9uIHByZXBhcmVzIGEgc2V0IG9mIGNoYW5nZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgaW5zdGFuY2VcbmZ1bmN0aW9uIGRpZmZQcm9wcyhpbnN0YW5jZTogTmd0QW55UmVjb3JkLCBwcm9wczogTmd0QW55UmVjb3JkKSB7XG5cdGNvbnN0IHByb3BzRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHByb3BzKTtcblx0Y29uc3QgY2hhbmdlczogW2tleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bl1bXSA9IFtdO1xuXG5cdGZvciAoY29uc3QgW3Byb3BLZXksIHByb3BWYWx1ZV0gb2YgcHJvcHNFbnRyaWVzKSB7XG5cdFx0bGV0IGtleSA9IHByb3BLZXk7XG5cdFx0aWYgKGlzLmNvbG9yU3BhY2VFeGlzdChpbnN0YW5jZSkpIHtcblx0XHRcdGlmIChwcm9wS2V5ID09PSAnZW5jb2RpbmcnKSB7XG5cdFx0XHRcdGtleSA9ICdjb2xvclNwYWNlJztcblx0XHRcdH0gZWxzZSBpZiAocHJvcEtleSA9PT0gJ291dHB1dEVuY29kaW5nJykge1xuXHRcdFx0XHRrZXkgPSAnb3V0cHV0Q29sb3JTcGFjZSc7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChpcy5lcXUocHJvcFZhbHVlLCBpbnN0YW5jZVtrZXldKSkgY29udGludWU7XG5cdFx0Y2hhbmdlcy5wdXNoKFtwcm9wS2V5LCBwcm9wVmFsdWVdKTtcblx0fVxuXG5cdHJldHVybiBjaGFuZ2VzO1xufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGFwcGxpZXMgYSBzZXQgb2YgY2hhbmdlcyB0byB0aGUgaW5zdGFuY2VcbmV4cG9ydCBmdW5jdGlvbiBhcHBseVByb3BzKGluc3RhbmNlOiBOZ3RJbnN0YW5jZU5vZGUsIHByb3BzOiBOZ3RBbnlSZWNvcmQpIHtcblx0Ly8gaWYgcHJvcHMgaXMgZW1wdHlcblx0aWYgKCFPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoKSByZXR1cm4gaW5zdGFuY2U7XG5cblx0Ly8gZmlsdGVyIGVxdWFscywgYW5kIHJlc2VydmVkIHByb3BzXG5cdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGluc3RhbmNlKTtcblx0Y29uc3Qgcm9vdFN0YXRlID0gbG9jYWxTdGF0ZT8uc3RvcmU/LnNuYXBzaG90ID8/ICh7fSBhcyBOZ3RTdGF0ZSk7XG5cdGNvbnN0IGNoYW5nZXMgPSBkaWZmUHJvcHMoaW5zdGFuY2UsIHByb3BzKTtcblxuXHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYW5nZXMubGVuZ3RoOyBpKyspIHtcblx0XHRsZXQgW2tleSwgdmFsdWVdID0gY2hhbmdlc1tpXTtcblxuXHRcdC8vIEFsaWFzIChvdXRwdXQpZW5jb2RpbmcgPT4gKG91dHB1dCljb2xvclNwYWNlIChzaW5jZSByMTUyKVxuXHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW5kcnMvcmVhY3QtdGhyZWUtZmliZXIvcHVsbC8yODI5XG5cdFx0aWYgKGlzLmNvbG9yU3BhY2VFeGlzdChpbnN0YW5jZSkpIHtcblx0XHRcdGNvbnN0IHNSR0JFbmNvZGluZyA9IDMwMDE7XG5cdFx0XHRjb25zdCBTUkdCQ29sb3JTcGFjZSA9ICdzcmdiJztcblx0XHRcdGNvbnN0IExpbmVhclNSR0JDb2xvclNwYWNlID0gJ3NyZ2ItbGluZWFyJztcblxuXHRcdFx0aWYgKGtleSA9PT0gJ2VuY29kaW5nJykge1xuXHRcdFx0XHRrZXkgPSAnY29sb3JTcGFjZSc7XG5cdFx0XHRcdHZhbHVlID0gdmFsdWUgPT09IHNSR0JFbmNvZGluZyA/IFNSR0JDb2xvclNwYWNlIDogTGluZWFyU1JHQkNvbG9yU3BhY2U7XG5cdFx0XHR9IGVsc2UgaWYgKGtleSA9PT0gJ291dHB1dEVuY29kaW5nJykge1xuXHRcdFx0XHRrZXkgPSAnb3V0cHV0Q29sb3JTcGFjZSc7XG5cdFx0XHRcdHZhbHVlID0gdmFsdWUgPT09IHNSR0JFbmNvZGluZyA/IFNSR0JDb2xvclNwYWNlIDogTGluZWFyU1JHQkNvbG9yU3BhY2U7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Y29uc3QgY3VycmVudEluc3RhbmNlID0gaW5zdGFuY2U7XG5cdFx0Y29uc3QgdGFyZ2V0UHJvcCA9IGN1cnJlbnRJbnN0YW5jZVtrZXldO1xuXG5cdFx0Ly8gc3BlY2lhbCB0cmVhdG1lbiBmb3Igb2JqZWN0cyB3aXRoIHN1cHBvcnQgZm9yIHNldC9jb3B5LCBhbmQgbGF5ZXJzXG5cdFx0aWYgKHRhcmdldFByb3AgJiYgdGFyZ2V0UHJvcFsnc2V0J10gJiYgKHRhcmdldFByb3BbJ2NvcHknXSB8fCB0YXJnZXRQcm9wIGluc3RhbmNlb2YgVEhSRUUuTGF5ZXJzKSkge1xuXHRcdFx0Y29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcblx0XHRcdC8vIGlmIHZhbHVlIGlzIGFuIGFycmF5XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0XHRcdFx0aWYgKHRhcmdldFByb3BbJ2Zyb21BcnJheSddKSB0YXJnZXRQcm9wWydmcm9tQXJyYXknXSh2YWx1ZSk7XG5cdFx0XHRcdGVsc2UgdGFyZ2V0UHJvcFsnc2V0J10oLi4udmFsdWUpO1xuXHRcdFx0fSAvLyB0ZXN0IGFnYWluIHRhcmdldC5jb3B5XG5cdFx0XHRlbHNlIGlmIChcblx0XHRcdFx0dGFyZ2V0UHJvcFsnY29weSddICYmXG5cdFx0XHRcdHZhbHVlICYmXG5cdFx0XHRcdHZhbHVlLmNvbnN0cnVjdG9yICYmXG5cdFx0XHRcdHRhcmdldFByb3AuY29uc3RydWN0b3IubmFtZSA9PT0gdmFsdWUuY29uc3RydWN0b3IubmFtZVxuXHRcdFx0KSB7XG5cdFx0XHRcdHRhcmdldFByb3BbJ2NvcHknXSh2YWx1ZSk7XG5cdFx0XHRcdGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGUubGluZWFyICYmIGlzQ29sb3IpIHRhcmdldFByb3BbJ2NvbnZlcnRTUkdCVG9MaW5lYXInXSgpO1xuXHRcdFx0fSAvLyBpZiBub3RoaW5nIGVsc2UgZml0cywganVzdCBzZXQgdGhlIHNpbmdsZSB2YWx1ZSwgaWdub3JlIHVuZGVmaW5lZFxuXHRcdFx0ZWxzZSBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRjb25zdCBpc0NvbG9yID0gdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yO1xuXHRcdFx0XHQvLyBhbGxvdyBzZXR0aW5nIGFycmF5IHNjYWxhcnNcblx0XHRcdFx0aWYgKCFpc0NvbG9yICYmIHRhcmdldFByb3BbJ3NldFNjYWxhciddKSB0YXJnZXRQcm9wWydzZXRTY2FsYXInXSh2YWx1ZSk7XG5cdFx0XHRcdC8vIGxheWVycyBoYXZlIG5vIGNvcHkgZnVuY3Rpb24sIGNvcHkgdGhlIG1hc2tcblx0XHRcdFx0ZWxzZSBpZiAodGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkxheWVycyAmJiB2YWx1ZSBpbnN0YW5jZW9mIFRIUkVFLkxheWVycykgdGFyZ2V0UHJvcC5tYXNrID0gdmFsdWUubWFzaztcblx0XHRcdFx0Ly8gb3RoZXJ3aXNlIGp1c3Qgc2V0IC4uLlxuXHRcdFx0XHRlbHNlIHRhcmdldFByb3BbJ3NldCddKHZhbHVlKTtcblxuXHRcdFx0XHQvLyBhdXRvLWNvbnZlcnQgc3JnYlxuXHRcdFx0XHRpZiAoIVRIUkVFLkNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlPy5saW5lYXIgJiYgaXNDb2xvcikgdGFyZ2V0UHJvcC5jb252ZXJ0U1JHQlRvTGluZWFyKCk7XG5cdFx0XHR9XG5cdFx0fSAvLyBlbHNlIGp1c3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZVxuXHRcdGVsc2Uge1xuXHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0gPSB2YWx1ZTtcblx0XHRcdC8vIGF1dG8tY29udmVydCBzcmdiIHRleHR1cmVzXG5cdFx0XHRpZiAoXG5cdFx0XHRcdGN1cnJlbnRJbnN0YW5jZVtrZXldIGluc3RhbmNlb2YgVEhSRUUuVGV4dHVyZSAmJlxuXHRcdFx0XHRjdXJyZW50SW5zdGFuY2Vba2V5XS5mb3JtYXQgPT09IFRIUkVFLlJHQkFGb3JtYXQgJiZcblx0XHRcdFx0Y3VycmVudEluc3RhbmNlW2tleV0udHlwZSA9PT0gVEhSRUUuVW5zaWduZWRCeXRlVHlwZVxuXHRcdFx0KSB7XG5cdFx0XHRcdGNvbnN0IHRleHR1cmUgPSBjdXJyZW50SW5zdGFuY2Vba2V5XSBhcyBUSFJFRS5UZXh0dXJlO1xuXHRcdFx0XHRpZiAocm9vdFN0YXRlPy5nbCkge1xuXHRcdFx0XHRcdGlmIChpcy5jb2xvclNwYWNlRXhpc3QodGV4dHVyZSkgJiYgaXMuY29sb3JTcGFjZUV4aXN0KHJvb3RTdGF0ZS5nbCkpXG5cdFx0XHRcdFx0XHR0ZXh0dXJlLmNvbG9yU3BhY2UgPSByb290U3RhdGUuZ2wub3V0cHV0Q29sb3JTcGFjZTtcblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhlc2UgYXJlIHJlbW92ZWQgaW4gbmV3IHZlcnNpb24gb2YgdGhyZWUgYnV0IHN0aWxsIGF2YWlsYWJsZSBpbiBvbGRlciB2ZXJzaW9uc1xuXHRcdFx0XHRcdGVsc2UgdGV4dHVyZVsnZW5jb2RpbmcnXSA9IHJvb3RTdGF0ZS5nbFsnb3V0cHV0RW5jb2RpbmcnXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNoZWNrVXBkYXRlKGN1cnJlbnRJbnN0YW5jZVtrZXldKTtcblx0XHRjaGVja1VwZGF0ZSh0YXJnZXRQcm9wKTtcblx0XHRpbnZhbGlkYXRlSW5zdGFuY2UoaW5zdGFuY2UpO1xuXHR9XG5cblx0Y29uc3QgaW5zdGFuY2VIYW5kbGVyc0NvdW50ID0gbG9jYWxTdGF0ZT8uZXZlbnRDb3VudDtcblx0Y29uc3QgcGFyZW50ID0gbG9jYWxTdGF0ZT8uaW5zdGFuY2VTdG9yZT8uZ2V0KCdwYXJlbnQnKTtcblxuXHRpZiAocGFyZW50ICYmIHJvb3RTdGF0ZS5pbnRlcm5hbCAmJiBpbnN0YW5jZVsncmF5Y2FzdCddICYmIGluc3RhbmNlSGFuZGxlcnNDb3VudCAhPT0gbG9jYWxTdGF0ZT8uZXZlbnRDb3VudCkge1xuXHRcdC8vIFByZS1lbXB0aXZlbHkgcmVtb3ZlIHRoZSBpbnN0YW5jZSBmcm9tIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyXG5cdFx0Y29uc3QgaW5kZXggPSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24uaW5kZXhPZihpbnN0YW5jZSk7XG5cdFx0aWYgKGluZGV4ID4gLTEpIHJvb3RTdGF0ZS5pbnRlcm5hbC5pbnRlcmFjdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xuXHRcdC8vIEFkZCB0aGUgaW5zdGFuY2UgdG8gdGhlIGludGVyYWN0aW9uIG1hbmFnZXIgb25seSB3aGVuIGl0IGhhcyBoYW5kbGVyc1xuXHRcdGlmIChsb2NhbFN0YXRlPy5ldmVudENvdW50KSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24ucHVzaChpbnN0YW5jZSk7XG5cdH1cblxuXHRpZiAocGFyZW50ICYmIGxvY2FsU3RhdGU/LmFmdGVyVXBkYXRlICYmIGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUub2JzZXJ2ZWQgJiYgY2hhbmdlcy5sZW5ndGgpIHtcblx0XHRsb2NhbFN0YXRlLmFmdGVyVXBkYXRlLm5leHQoaW5zdGFuY2UpO1xuXHR9XG5cblx0cmV0dXJuIGluc3RhbmNlO1xufVxuIl19
|
|
@@ -14,11 +14,11 @@ export function attach(object, value, paths = []) {
|
|
|
14
14
|
}
|
|
15
15
|
export function detach(parent, child, attachProp) {
|
|
16
16
|
const childLocalState = getLocalState(child);
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
if (childLocalState) {
|
|
18
|
+
if (Array.isArray(attachProp))
|
|
19
|
+
attach(parent, childLocalState.previousAttach, attachProp);
|
|
20
|
+
else
|
|
21
|
+
childLocalState.previousAttach();
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
function assignEmpty(obj, base) {
|
|
@@ -29,4 +29,4 @@ function assignEmpty(obj, base) {
|
|
|
29
29
|
export function createAttachFunction(cb) {
|
|
30
30
|
return (parent, child, store) => cb({ parent, child, store });
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvYXR0YWNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQTBCLE1BQU0sYUFBYSxDQUFDO0FBR3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxVQUFVLE1BQU0sQ0FBQyxNQUFvQixFQUFFLEtBQWMsRUFBRSxRQUFrQixFQUFFO0lBQ2hGLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbkMsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPO0lBRWxCLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7U0FBTSxDQUFDO1FBQ1AsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0FBQ0YsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsTUFBb0IsRUFBRSxLQUFtQixFQUFFLFVBQXdDO0lBQ3pHLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7O1lBQ3BGLGVBQWUsQ0FBQyxjQUE2QixFQUFFLENBQUM7SUFDdkQsQ0FBQztBQUNGLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFpQixFQUFFLElBQVk7SUFDbkQsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbkgsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNoQixDQUFDO0FBQ0YsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDbkMsRUFBd0c7SUFFeEcsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExvY2FsU3RhdGUsIHR5cGUgTmd0QXR0YWNoRnVuY3Rpb24gfSBmcm9tICcuLi9pbnN0YW5jZSc7XG5pbXBvcnQgdHlwZSB7IE5ndFN0YXRlIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBhcHBseVByb3BzIH0gZnJvbSAnLi9hcHBseS1wcm9wcyc7XG5pbXBvcnQgdHlwZSB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi9zaWduYWwtc3RvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoKG9iamVjdDogTmd0QW55UmVjb3JkLCB2YWx1ZTogdW5rbm93biwgcGF0aHM6IHN0cmluZ1tdID0gW10pOiB2b2lkIHtcblx0Y29uc3QgW2Jhc2UsIC4uLnJlbWFpbmluZ10gPSBwYXRocztcblx0aWYgKCFiYXNlKSByZXR1cm47XG5cblx0aWYgKHJlbWFpbmluZy5sZW5ndGggPT09IDApIHtcblx0XHRhcHBseVByb3BzKG9iamVjdCwgeyBbYmFzZV06IHZhbHVlIH0pO1xuXHR9IGVsc2Uge1xuXHRcdGFzc2lnbkVtcHR5KG9iamVjdCwgYmFzZSk7XG5cdFx0YXR0YWNoKG9iamVjdFtiYXNlXSwgdmFsdWUsIHJlbWFpbmluZyk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGFjaChwYXJlbnQ6IE5ndEFueVJlY29yZCwgY2hpbGQ6IE5ndEFueVJlY29yZCwgYXR0YWNoUHJvcDogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbikge1xuXHRjb25zdCBjaGlsZExvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGNoaWxkKTtcblx0aWYgKGNoaWxkTG9jYWxTdGF0ZSkge1xuXHRcdGlmIChBcnJheS5pc0FycmF5KGF0dGFjaFByb3ApKSBhdHRhY2gocGFyZW50LCBjaGlsZExvY2FsU3RhdGUucHJldmlvdXNBdHRhY2gsIGF0dGFjaFByb3ApO1xuXHRcdGVsc2UgKGNoaWxkTG9jYWxTdGF0ZS5wcmV2aW91c0F0dGFjaCBhcyAoKSA9PiB2b2lkKSgpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGFzc2lnbkVtcHR5KG9iajogTmd0QW55UmVjb3JkLCBiYXNlOiBzdHJpbmcpIHtcblx0aWYgKCghT2JqZWN0Lmhhc093bihvYmosIGJhc2UpICYmIFJlZmxlY3QgJiYgISFSZWZsZWN0LmhhcyAmJiAhUmVmbGVjdC5oYXMob2JqLCBiYXNlKSkgfHwgb2JqW2Jhc2VdID09PSB1bmRlZmluZWQpIHtcblx0XHRvYmpbYmFzZV0gPSB7fTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXR0YWNoRnVuY3Rpb248VENoaWxkID0gYW55LCBUUGFyZW50ID0gYW55Pihcblx0Y2I6IChwYXJhbXM6IHsgcGFyZW50OiBUUGFyZW50OyBjaGlsZDogVENoaWxkOyBzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+IH0pID0+ICgoKSA9PiB2b2lkKSB8IHZvaWQsXG4pOiBOZ3RBdHRhY2hGdW5jdGlvbjxUQ2hpbGQsIFRQYXJlbnQ+IHtcblx0cmV0dXJuIChwYXJlbnQsIGNoaWxkLCBzdG9yZSkgPT4gY2IoeyBwYXJlbnQsIGNoaWxkLCBzdG9yZSB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DestroyRef, Injector, inject } from '@angular/core';
|
|
2
|
+
import { assertInjector } from 'ngxtension/assert-injector';
|
|
3
|
+
import { injectNgtStore } from '../store';
|
|
4
|
+
export function injectBeforeRender(cb, { priority = 0, injector } = {}) {
|
|
5
|
+
return assertInjector(injectBeforeRender, injector, () => {
|
|
6
|
+
const store = injectNgtStore();
|
|
7
|
+
const sub = store.get('internal').subscribe(cb, priority, store);
|
|
8
|
+
inject(DestroyRef).onDestroy(() => void sub());
|
|
9
|
+
return sub;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLXJlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2JlZm9yZS1yZW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUE4QixNQUFNLFVBQVUsQ0FBQztBQUV0RSxNQUFNLFVBQVUsa0JBQWtCLENBQ2pDLEVBQXFDLEVBQ3JDLEVBQUUsUUFBUSxHQUFHLENBQUMsRUFBRSxRQUFRLEtBQWlELEVBQUU7SUFFM0UsT0FBTyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUN4RCxNQUFNLEtBQUssR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUMvQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sR0FBRyxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgSW5qZWN0b3IsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBpbmplY3ROZ3RTdG9yZSwgdHlwZSBOZ3RCZWZvcmVSZW5kZXJSZWNvcmQgfSBmcm9tICcuLi9zdG9yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCZWZvcmVSZW5kZXIoXG5cdGNiOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbJ2NhbGxiYWNrJ10sXG5cdHsgcHJpb3JpdHkgPSAwLCBpbmplY3RvciB9OiB7IHByaW9yaXR5PzogbnVtYmVyOyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSxcbikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0XHRjb25zdCBzdWIgPSBzdG9yZS5nZXQoJ2ludGVybmFsJykuc3Vic2NyaWJlKGNiLCBwcmlvcml0eSwgc3RvcmUpO1xuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gdm9pZCBzdWIoKSk7XG5cdFx0cmV0dXJuIHN1Yjtcblx0fSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { forwardRef } from '@angular/core';
|
|
2
|
+
import { createInjectionToken } from 'ngxtension/create-injection-token';
|
|
3
|
+
function apiFactory(obj) {
|
|
4
|
+
return obj.api;
|
|
5
|
+
}
|
|
6
|
+
export function createApiToken(forwardedObject) {
|
|
7
|
+
const [injectFn, provideFn] = createInjectionToken((apiFactory), {
|
|
8
|
+
isRoot: false,
|
|
9
|
+
deps: [forwardRef(forwardedObject)],
|
|
10
|
+
});
|
|
11
|
+
return [injectFn, () => provideFn()];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWFwaS10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2NyZWF0ZS1hcGktdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQW9DLE1BQU0sbUNBQW1DLENBQUM7QUFFM0csU0FBUyxVQUFVLENBQ2xCLEdBQVk7SUFFWixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzdCLGVBQW9DO0lBRXBDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsQ0FBQSxVQUF5QixDQUFBLEVBQUU7UUFDN0UsTUFBTSxFQUFFLEtBQUs7UUFDYixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDcUMsQ0FBQyxDQUFDO0lBRTNFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQVUsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgdHlwZSBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVJbmplY3Rpb25Ub2tlbiwgdHlwZSBDcmVhdGVJbmplY3Rpb25Ub2tlbk9wdGlvbnMgfSBmcm9tICduZ3h0ZW5zaW9uL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4nO1xuXG5mdW5jdGlvbiBhcGlGYWN0b3J5PFRPYmplY3QgZXh0ZW5kcyB7IGFwaTogYW55IH0sIFRBcGkgPSBUT2JqZWN0IGV4dGVuZHMgeyBhcGk6IGluZmVyIEFwaSB9ID8gQXBpIDogbmV2ZXI+KFxuXHRvYmo6IFRPYmplY3QsXG4pOiBUQXBpIHtcblx0cmV0dXJuIG9iai5hcGk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBcGlUb2tlbjxUT2JqZWN0IGV4dGVuZHMgeyBhcGk6IGFueSB9LCBUQXBpID0gVE9iamVjdCBleHRlbmRzIHsgYXBpOiBpbmZlciBBcGkgfSA/IEFwaSA6IG5ldmVyPihcblx0Zm9yd2FyZGVkT2JqZWN0OiAoKSA9PiBUeXBlPFRPYmplY3Q+LFxuKSB7XG5cdGNvbnN0IFtpbmplY3RGbiwgcHJvdmlkZUZuXSA9IGNyZWF0ZUluamVjdGlvblRva2VuKGFwaUZhY3Rvcnk8VE9iamVjdCwgVEFwaT4sIHtcblx0XHRpc1Jvb3Q6IGZhbHNlLFxuXHRcdGRlcHM6IFtmb3J3YXJkUmVmKGZvcndhcmRlZE9iamVjdCldLFxuXHR9IGFzIHVua25vd24gYXMgQ3JlYXRlSW5qZWN0aW9uVG9rZW5PcHRpb25zPHR5cGVvZiBhcGlGYWN0b3J5LCBbVE9iamVjdF0+KTtcblxuXHRyZXR1cm4gW2luamVjdEZuLCAoKSA9PiBwcm92aWRlRm4oKV0gYXMgY29uc3Q7XG59XG4iXX0=
|
package/esm2022/lib/utils/is.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
|
-
import * as THREE from 'three';
|
|
3
2
|
export const is = {
|
|
4
3
|
obj: (a) => a === Object(a) && !Array.isArray(a) && typeof a !== 'function',
|
|
5
4
|
material: (a) => !!a && a.isMaterial,
|
|
@@ -7,11 +6,13 @@ export const is = {
|
|
|
7
6
|
orthographicCamera: (a) => !!a && a.isOrthographicCamera,
|
|
8
7
|
perspectiveCamera: (a) => !!a && a.isPerspectiveCamera,
|
|
9
8
|
camera: (a) => !!a && a.isCamera,
|
|
10
|
-
renderer: (a) => !!a && a
|
|
9
|
+
renderer: (a) => !!a && typeof a === 'object' && 'render' in a && typeof a['render'] === 'function',
|
|
11
10
|
scene: (a) => !!a && a.isScene,
|
|
12
|
-
object3D: (a) => !!a && a.isObject3D,
|
|
13
|
-
instance: (a) => !!a && !!a['__ngt__'],
|
|
14
11
|
ref: (a) => a instanceof ElementRef,
|
|
12
|
+
instance: (a) => !!a && !!a['__ngt__'],
|
|
13
|
+
object3D: (a) => !!a && a.isObject3D,
|
|
14
|
+
// instance: (a: unknown): a is NgtInstanceNode => !!a && !!(a as NgtAnyRecord)['__ngt__'],
|
|
15
|
+
// ref: (a: unknown): a is ElementRef => a instanceof ElementRef,
|
|
15
16
|
colorSpaceExist: (object) => 'colorSpace' in object || 'outputColorSpace' in object,
|
|
16
17
|
equ(a, b, { arrays = 'shallow', objects = 'reference', strict = true } = {}) {
|
|
17
18
|
// Wrong type or one of the two undefined, doesn't match
|
|
@@ -48,4 +49,4 @@ export const is = {
|
|
|
48
49
|
return true;
|
|
49
50
|
},
|
|
50
51
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9pcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTNDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNqQixHQUFHLEVBQUUsQ0FBQyxDQUFVLEVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFVBQVU7SUFDakcsUUFBUSxFQUFFLENBQUMsQ0FBVSxFQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFvQixDQUFDLFVBQVU7SUFDdEYsUUFBUSxFQUFFLENBQUMsQ0FBVSxFQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUEwQixDQUFDLGdCQUFnQjtJQUN4RyxrQkFBa0IsRUFBRSxDQUFDLENBQVUsRUFBaUMsRUFBRSxDQUNqRSxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQThCLENBQUMsb0JBQW9CO0lBQzVELGlCQUFpQixFQUFFLENBQUMsQ0FBVSxFQUFnQyxFQUFFLENBQy9ELENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBNkIsQ0FBQyxtQkFBbUI7SUFDMUQsTUFBTSxFQUFFLENBQUMsQ0FBVSxFQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFrQixDQUFDLFFBQVE7SUFDOUUsUUFBUSxFQUFFLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFVBQVU7SUFDNUcsS0FBSyxFQUFFLENBQUMsQ0FBVSxFQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFpQixDQUFDLE9BQU87SUFDMUUsR0FBRyxFQUFFLENBQUMsQ0FBVSxFQUFtQixFQUFFLENBQUMsQ0FBQyxZQUFZLFVBQVU7SUFDN0QsUUFBUSxFQUFFLENBQUMsQ0FBVSxFQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUUsQ0FBa0IsQ0FBQyxTQUFTLENBQUM7SUFDdkYsUUFBUSxFQUFFLENBQUMsQ0FBVSxFQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFvQixDQUFDLFVBQVU7SUFDdEYsMkZBQTJGO0lBQzNGLGlFQUFpRTtJQUNqRSxlQUFlLEVBQUUsQ0FJaEIsTUFBUyxFQUNTLEVBQUUsQ0FBQyxZQUFZLElBQUksTUFBTSxJQUFJLGtCQUFrQixJQUFJLE1BQU07SUFDNUUsR0FBRyxDQUFDLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUFFLE9BQU8sR0FBRyxXQUFXLEVBQUUsTUFBTSxHQUFHLElBQUksS0FBbUIsRUFBRTtRQUNsRyx3REFBd0Q7UUFDeEQsSUFBSSxPQUFPLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdkQsbUNBQW1DO1FBQ25DLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVE7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssV0FBVztZQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksS0FBSyxJQUFJLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDN0MsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxDQUFDO1FBQ04sS0FBSyxDQUFDLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7UUFDekMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzFELElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEIsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzNELElBQUksS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3JGLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztDQUNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0SW5zdGFuY2VOb2RlIH0gZnJvbSAnLi4vaW5zdGFuY2UnO1xuaW1wb3J0IHR5cGUgeyBOZ3RSZW5kZXJlckxpa2UgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCwgTmd0RXF1Q29uZmlnIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgaXMgPSB7XG5cdG9iajogKGE6IHVua25vd24pOiBhIGlzIG9iamVjdCA9PiBhID09PSBPYmplY3QoYSkgJiYgIUFycmF5LmlzQXJyYXkoYSkgJiYgdHlwZW9mIGEgIT09ICdmdW5jdGlvbicsXG5cdG1hdGVyaWFsOiAoYTogdW5rbm93bik6IGEgaXMgVEhSRUUuTWF0ZXJpYWwgPT4gISFhICYmIChhIGFzIFRIUkVFLk1hdGVyaWFsKS5pc01hdGVyaWFsLFxuXHRnZW9tZXRyeTogKGE6IHVua25vd24pOiBhIGlzIFRIUkVFLkJ1ZmZlckdlb21ldHJ5ID0+ICEhYSAmJiAoYSBhcyBUSFJFRS5CdWZmZXJHZW9tZXRyeSkuaXNCdWZmZXJHZW9tZXRyeSxcblx0b3J0aG9ncmFwaGljQ2FtZXJhOiAoYTogdW5rbm93bik6IGEgaXMgVEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhID0+XG5cdFx0ISFhICYmIChhIGFzIFRIUkVFLk9ydGhvZ3JhcGhpY0NhbWVyYSkuaXNPcnRob2dyYXBoaWNDYW1lcmEsXG5cdHBlcnNwZWN0aXZlQ2FtZXJhOiAoYTogdW5rbm93bik6IGEgaXMgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEgPT5cblx0XHQhIWEgJiYgKGEgYXMgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEpLmlzUGVyc3BlY3RpdmVDYW1lcmEsXG5cdGNhbWVyYTogKGE6IHVua25vd24pOiBhIGlzIFRIUkVFLkNhbWVyYSA9PiAhIWEgJiYgKGEgYXMgVEhSRUUuQ2FtZXJhKS5pc0NhbWVyYSxcblx0cmVuZGVyZXI6IChhOiB1bmtub3duKSA9PiAhIWEgJiYgdHlwZW9mIGEgPT09ICdvYmplY3QnICYmICdyZW5kZXInIGluIGEgJiYgdHlwZW9mIGFbJ3JlbmRlciddID09PSAnZnVuY3Rpb24nLFxuXHRzY2VuZTogKGE6IHVua25vd24pOiBhIGlzIFRIUkVFLlNjZW5lID0+ICEhYSAmJiAoYSBhcyBUSFJFRS5TY2VuZSkuaXNTY2VuZSxcblx0cmVmOiAoYTogdW5rbm93bik6IGEgaXMgRWxlbWVudFJlZiA9PiBhIGluc3RhbmNlb2YgRWxlbWVudFJlZixcblx0aW5zdGFuY2U6IChhOiB1bmtub3duKTogYSBpcyBOZ3RJbnN0YW5jZU5vZGUgPT4gISFhICYmICEhKGEgYXMgTmd0QW55UmVjb3JkKVsnX19uZ3RfXyddLFxuXHRvYmplY3QzRDogKGE6IHVua25vd24pOiBhIGlzIFRIUkVFLk9iamVjdDNEID0+ICEhYSAmJiAoYSBhcyBUSFJFRS5PYmplY3QzRCkuaXNPYmplY3QzRCxcblx0Ly8gaW5zdGFuY2U6IChhOiB1bmtub3duKTogYSBpcyBOZ3RJbnN0YW5jZU5vZGUgPT4gISFhICYmICEhKGEgYXMgTmd0QW55UmVjb3JkKVsnX19uZ3RfXyddLFxuXHQvLyByZWY6IChhOiB1bmtub3duKTogYSBpcyBFbGVtZW50UmVmID0+IGEgaW5zdGFuY2VvZiBFbGVtZW50UmVmLFxuXHRjb2xvclNwYWNlRXhpc3Q6IDxcblx0XHRUIGV4dGVuZHMgTmd0UmVuZGVyZXJMaWtlIHwgVEhSRUUuVGV4dHVyZSB8IG9iamVjdCxcblx0XHRQID0gVCBleHRlbmRzIE5ndFJlbmRlcmVyTGlrZSA/IHsgb3V0cHV0Q29sb3JTcGFjZTogc3RyaW5nIH0gOiB7IGNvbG9yU3BhY2U6IHN0cmluZyB9LFxuXHQ+KFxuXHRcdG9iamVjdDogVCxcblx0KTogb2JqZWN0IGlzIFQgJiBQID0+ICdjb2xvclNwYWNlJyBpbiBvYmplY3QgfHwgJ291dHB1dENvbG9yU3BhY2UnIGluIG9iamVjdCxcblx0ZXF1KGE6IGFueSwgYjogYW55LCB7IGFycmF5cyA9ICdzaGFsbG93Jywgb2JqZWN0cyA9ICdyZWZlcmVuY2UnLCBzdHJpY3QgPSB0cnVlIH06IE5ndEVxdUNvbmZpZyA9IHt9KSB7XG5cdFx0Ly8gV3JvbmcgdHlwZSBvciBvbmUgb2YgdGhlIHR3byB1bmRlZmluZWQsIGRvZXNuJ3QgbWF0Y2hcblx0XHRpZiAodHlwZW9mIGEgIT09IHR5cGVvZiBiIHx8ICEhYSAhPT0gISFiKSByZXR1cm4gZmFsc2U7XG5cdFx0Ly8gQXRvbWljLCBqdXN0IGNvbXBhcmUgYSBhZ2FpbnN0IGJcblx0XHRpZiAodHlwZW9mIGEgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBhID09PSAnbnVtYmVyJykgcmV0dXJuIGEgPT09IGI7XG5cdFx0Y29uc3QgaXNPYmogPSBpcy5vYmooYSk7XG5cdFx0aWYgKGlzT2JqICYmIG9iamVjdHMgPT09ICdyZWZlcmVuY2UnKSByZXR1cm4gYSA9PT0gYjtcblx0XHRjb25zdCBpc0FyciA9IEFycmF5LmlzQXJyYXkoYSk7XG5cdFx0aWYgKGlzQXJyICYmIGFycmF5cyA9PT0gJ3JlZmVyZW5jZScpIHJldHVybiBhID09PSBiO1xuXHRcdC8vIEFycmF5IG9yIE9iamVjdCwgc2hhbGxvdyBjb21wYXJlIGZpcnN0IHRvIHNlZSBpZiBpdCdzIGEgbWF0Y2hcblx0XHRpZiAoKGlzQXJyIHx8IGlzT2JqKSAmJiBhID09PSBiKSByZXR1cm4gdHJ1ZTtcblx0XHQvLyBMYXN0IHJlc29ydCwgZ28gdGhyb3VnaCBrZXlzXG5cdFx0bGV0IGk7XG5cdFx0Zm9yIChpIGluIGEpIGlmICghKGkgaW4gYikpIHJldHVybiBmYWxzZTtcblx0XHRmb3IgKGkgaW4gc3RyaWN0ID8gYiA6IGEpIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG5cdFx0aWYgKGkgPT09IHZvaWQgMCkge1xuXHRcdFx0aWYgKGlzQXJyICYmIGEubGVuZ3RoID09PSAwICYmIGIubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTtcblx0XHRcdGlmIChpc09iaiAmJiBPYmplY3Qua2V5cyhhKS5sZW5ndGggPT09IDAgJiYgT2JqZWN0LmtleXMoYikubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTtcblx0XHRcdGlmIChhICE9PSBiKSByZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9LFxufTtcbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
+
import { is } from './is';
|
|
2
3
|
const idCache = {};
|
|
3
4
|
export function makeId(event) {
|
|
4
5
|
if (event) {
|
|
@@ -13,26 +14,28 @@ export function makeId(event) {
|
|
|
13
14
|
return makeId();
|
|
14
15
|
}
|
|
15
16
|
export function makeDpr(dpr, window) {
|
|
16
|
-
|
|
17
|
+
// Err on the side of progress by assuming 2x dpr if we can't detect it
|
|
18
|
+
// This will happen in workers where window is defined but dpr isn't.
|
|
19
|
+
const target = typeof window !== 'undefined' ? window.devicePixelRatio ?? 2 : 1;
|
|
17
20
|
return Array.isArray(dpr) ? Math.min(Math.max(dpr[0], target), dpr[1]) : dpr;
|
|
18
21
|
}
|
|
19
|
-
export function
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return new THREE.PerspectiveCamera(75, size.width / size.height, 0.1, 1000);
|
|
23
|
-
}
|
|
24
|
-
export function makeDefaultRenderer(glOptions, canvasElement) {
|
|
25
|
-
const customRenderer = (typeof glOptions === 'function' ? glOptions(canvasElement) : glOptions);
|
|
26
|
-
if (customRenderer?.render != null)
|
|
22
|
+
export function makeRendererInstance(glOptions, canvas) {
|
|
23
|
+
const customRenderer = (typeof glOptions === 'function' ? glOptions(canvas) : glOptions);
|
|
24
|
+
if (is.renderer(customRenderer))
|
|
27
25
|
return customRenderer;
|
|
28
26
|
return new THREE.WebGLRenderer({
|
|
29
27
|
powerPreference: 'high-performance',
|
|
30
|
-
canvas:
|
|
28
|
+
canvas: canvas,
|
|
31
29
|
antialias: true,
|
|
32
30
|
alpha: true,
|
|
33
|
-
...
|
|
31
|
+
...glOptions,
|
|
34
32
|
});
|
|
35
33
|
}
|
|
34
|
+
export function makeCameraInstance(isOrthographic, size) {
|
|
35
|
+
if (isOrthographic)
|
|
36
|
+
return new THREE.OrthographicCamera(0, 0, 0, 0, 0.1, 1000);
|
|
37
|
+
return new THREE.PerspectiveCamera(75, size.width / size.height, 0.1, 1000);
|
|
38
|
+
}
|
|
36
39
|
export function makeObjectGraph(object) {
|
|
37
40
|
const data = { nodes: {}, materials: {} };
|
|
38
41
|
if (object) {
|
|
@@ -47,4 +50,4 @@ export function makeObjectGraph(object) {
|
|
|
47
50
|
}
|
|
48
51
|
return data;
|
|
49
52
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL21ha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFLL0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixNQUFNLE9BQU8sR0FBMEMsRUFBRSxDQUFDO0FBQzFELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBdUI7SUFDN0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUN4RixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QywwQkFBMEI7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxNQUFNLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBZTtJQUNuRCx1RUFBdUU7SUFDdkUscUVBQXFFO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0FBQzlFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLFNBQXVCLEVBQ3ZCLE1BQWU7SUFFZixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQU8sU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQXdCLENBQUM7SUFDaEgsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztRQUFFLE9BQU8sY0FBYyxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQzlCLGVBQWUsRUFBRSxrQkFBa0I7UUFDbkMsTUFBTSxFQUFFLE1BQU07UUFDZCxTQUFTLEVBQUUsSUFBSTtRQUNmLEtBQUssRUFBRSxJQUFJO1FBQ1gsR0FBRyxTQUFTO0tBQ1osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxjQUF1QixFQUFFLElBQWE7SUFDeEUsSUFBSSxjQUFjO1FBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9FLE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQVFELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBc0I7SUFDckQsTUFBTSxJQUFJLEdBQWlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFFeEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFxQixFQUFFLEVBQUU7WUFDekMsSUFBSSxLQUFLLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDL0MsSUFBSSxVQUFVLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRyxLQUFvQixDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDckcsSUFBSSxDQUFDLFNBQVMsQ0FBRyxLQUFvQixDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUksS0FBb0I7cUJBQzdGLFFBQTBCLENBQUM7WUFDOUIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0R0xPcHRpb25zIH0gZnJvbSAnLi4vY2FudmFzJztcbmltcG9ydCB0eXBlIHsgTmd0SW50ZXJzZWN0aW9uIH0gZnJvbSAnLi4vZXZlbnRzJztcbmltcG9ydCB0eXBlIHsgTmd0Q2FudmFzRWxlbWVudCB9IGZyb20gJy4uL3Jvb3RzJztcbmltcG9ydCB0eXBlIHsgTmd0RHByLCBOZ3RTaXplIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuL2lzJztcblxuY29uc3QgaWRDYWNoZTogeyBbaWQ6IHN0cmluZ106IGJvb2xlYW4gfCB1bmRlZmluZWQgfSA9IHt9O1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VJZChldmVudD86IE5ndEludGVyc2VjdGlvbik6IHN0cmluZyB7XG5cdGlmIChldmVudCkge1xuXHRcdHJldHVybiAoZXZlbnQuZXZlbnRPYmplY3QgfHwgZXZlbnQub2JqZWN0KS51dWlkICsgJy8nICsgZXZlbnQuaW5kZXggKyBldmVudC5pbnN0YW5jZUlkO1xuXHR9XG5cblx0Y29uc3QgbmV3SWQgPSBUSFJFRS5NYXRoVXRpbHMuZ2VuZXJhdGVVVUlEKCk7XG5cdC8vIGVuc3VyZSBub3QgYWxyZWFkeSB1c2VkXG5cdGlmICghaWRDYWNoZVtuZXdJZF0pIHtcblx0XHRpZENhY2hlW25ld0lkXSA9IHRydWU7XG5cdFx0cmV0dXJuIG5ld0lkO1xuXHR9XG5cdHJldHVybiBtYWtlSWQoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VEcHIoZHByOiBOZ3REcHIsIHdpbmRvdz86IFdpbmRvdykge1xuXHQvLyBFcnIgb24gdGhlIHNpZGUgb2YgcHJvZ3Jlc3MgYnkgYXNzdW1pbmcgMnggZHByIGlmIHdlIGNhbid0IGRldGVjdCBpdFxuXHQvLyBUaGlzIHdpbGwgaGFwcGVuIGluIHdvcmtlcnMgd2hlcmUgd2luZG93IGlzIGRlZmluZWQgYnV0IGRwciBpc24ndC5cblx0Y29uc3QgdGFyZ2V0ID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA/PyAyIDogMTtcblx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZHByKSA/IE1hdGgubWluKE1hdGgubWF4KGRwclswXSwgdGFyZ2V0KSwgZHByWzFdKSA6IGRwcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VSZW5kZXJlckluc3RhbmNlPFRDYW52YXMgZXh0ZW5kcyBOZ3RDYW52YXNFbGVtZW50Pihcblx0Z2xPcHRpb25zOiBOZ3RHTE9wdGlvbnMsXG5cdGNhbnZhczogVENhbnZhcyxcbik6IFRIUkVFLldlYkdMUmVuZGVyZXIge1xuXHRjb25zdCBjdXN0b21SZW5kZXJlciA9ICh0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nID8gZ2xPcHRpb25zKGNhbnZhcykgOiBnbE9wdGlvbnMpIGFzIFRIUkVFLldlYkdMUmVuZGVyZXI7XG5cdGlmIChpcy5yZW5kZXJlcihjdXN0b21SZW5kZXJlcikpIHJldHVybiBjdXN0b21SZW5kZXJlcjtcblx0cmV0dXJuIG5ldyBUSFJFRS5XZWJHTFJlbmRlcmVyKHtcblx0XHRwb3dlclByZWZlcmVuY2U6ICdoaWdoLXBlcmZvcm1hbmNlJyxcblx0XHRjYW52YXM6IGNhbnZhcyxcblx0XHRhbnRpYWxpYXM6IHRydWUsXG5cdFx0YWxwaGE6IHRydWUsXG5cdFx0Li4uZ2xPcHRpb25zLFxuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDYW1lcmFJbnN0YW5jZShpc09ydGhvZ3JhcGhpYzogYm9vbGVhbiwgc2l6ZTogTmd0U2l6ZSkge1xuXHRpZiAoaXNPcnRob2dyYXBoaWMpIHJldHVybiBuZXcgVEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhKDAsIDAsIDAsIDAsIDAuMSwgMTAwMCk7XG5cdHJldHVybiBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoNzUsIHNpemUud2lkdGggLyBzaXplLmhlaWdodCwgMC4xLCAxMDAwKTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0T2JqZWN0TWFwID0ge1xuXHRub2RlczogeyBbbmFtZTogc3RyaW5nXTogVEhSRUUuT2JqZWN0M0QgfTtcblx0bWF0ZXJpYWxzOiB7IFtuYW1lOiBzdHJpbmddOiBUSFJFRS5NYXRlcmlhbCB9O1xuXHRba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZU9iamVjdEdyYXBoKG9iamVjdDogVEhSRUUuT2JqZWN0M0QpOiBOZ3RPYmplY3RNYXAge1xuXHRjb25zdCBkYXRhOiBOZ3RPYmplY3RNYXAgPSB7IG5vZGVzOiB7fSwgbWF0ZXJpYWxzOiB7fSB9O1xuXG5cdGlmIChvYmplY3QpIHtcblx0XHRvYmplY3QudHJhdmVyc2UoKGNoaWxkOiBUSFJFRS5PYmplY3QzRCkgPT4ge1xuXHRcdFx0aWYgKGNoaWxkLm5hbWUpIGRhdGEubm9kZXNbY2hpbGQubmFtZV0gPSBjaGlsZDtcblx0XHRcdGlmICgnbWF0ZXJpYWwnIGluIGNoaWxkICYmICFkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSkge1xuXHRcdFx0XHRkYXRhLm1hdGVyaWFsc1soKGNoaWxkIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSA9IChjaGlsZCBhcyBUSFJFRS5NZXNoKVxuXHRcdFx0XHRcdC5tYXRlcmlhbCBhcyBUSFJFRS5NYXRlcmlhbDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZGF0YTtcbn1cbiJdfQ==
|