@txnlab/use-wallet 0.1.2 → 0.1.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../node_modules/immer/dist/immer.esm.mjs","../../src/store/middelware/immer.ts","../../node_modules/zustand/esm/index.js","../../node_modules/zustand/esm/middleware.js","../../src/store/state/walletStore.ts","../../src/constants/constants.ts","../../node_modules/big.js/big.mjs","../../src/providers/perawallet.ts","../../src/providers/myalgowallet.ts","../../src/providers/algosigner.ts","../../src/providers/defly.ts","../../src/providers/exodus.ts","../../src/providers/kmd.ts","../../src/providers/walletconnect.ts","../../src/providers/index.ts","../../src/media/audio.ts","../../node_modules/ua-parser-js/dist/ua-parser.min.js","../../node_modules/react-device-detect/dist/lib.js","../../src/clients/base.ts","../../src/clients/perawallet.ts","../../src/clients/myalgowallet.ts","../../src/clients/algosigner.ts","../../src/clients/defly.ts","../../src/clients/exodus.ts","../../src/clients/kmd.ts","../../node_modules/@json-rpc-tools/utils/dist/cjs/constants.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/error.js","../../node_modules/@pedrouid/environment/dist/cjs/crypto.js","../../node_modules/@pedrouid/environment/dist/cjs/env.js","../../node_modules/@pedrouid/environment/dist/cjs/index.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/env.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/format.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/routing.js","../../node_modules/@json-rpc-tools/types/dist/cjs/misc.js","../../node_modules/@json-rpc-tools/types/dist/cjs/provider.js","../../node_modules/@json-rpc-tools/types/dist/cjs/blockchain.js","../../node_modules/@json-rpc-tools/types/dist/cjs/jsonrpc.js","../../node_modules/@json-rpc-tools/types/dist/cjs/multi.js","../../node_modules/@json-rpc-tools/types/dist/cjs/router.js","../../node_modules/@json-rpc-tools/types/dist/cjs/schema.js","../../node_modules/@json-rpc-tools/types/dist/cjs/validator.js","../../node_modules/@json-rpc-tools/types/dist/cjs/index.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/types.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/validators.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/index.js","../../src/clients/walletconnect.ts","../../src/clients/index.ts","../../src/utils/index.ts","../../src/hooks/useWallet.ts","../../node_modules/zustand/esm/shallow.js","../../src/hooks/useConnectWallet.ts","../../node_modules/@walletconnect/window-getters/dist/cjs/index.js","../../node_modules/@walletconnect/window-metadata/dist/cjs/index.js","../../node_modules/detect-browser/es/index.js","../../node_modules/@walletconnect/browser-utils/dist/cjs/browser.js","../../node_modules/@walletconnect/safe-json/dist/esm/index.js","../../node_modules/@walletconnect/browser-utils/dist/cjs/json.js","../../node_modules/@walletconnect/browser-utils/dist/cjs/local.js","../../node_modules/@walletconnect/browser-utils/dist/cjs/mobile.js","../../node_modules/@walletconnect/browser-utils/dist/cjs/registry.js","../../node_modules/@walletconnect/browser-utils/dist/cjs/index.js","../../node_modules/qrcode/lib/can-promise.js","../../node_modules/buffer-fill/index.js","../../node_modules/buffer-alloc-unsafe/index.js","../../node_modules/buffer-alloc/index.js","../../node_modules/buffer-from/index.js","../../node_modules/qrcode/lib/utils/buffer.js","../../node_modules/qrcode/lib/core/utils.js","../../node_modules/qrcode/lib/core/error-correction-level.js","../../node_modules/qrcode/lib/core/bit-buffer.js","../../node_modules/qrcode/lib/core/bit-matrix.js","../../node_modules/qrcode/lib/core/alignment-pattern.js","../../node_modules/qrcode/lib/core/finder-pattern.js","../../node_modules/qrcode/lib/core/mask-pattern.js","../../node_modules/qrcode/lib/core/error-correction-code.js","../../node_modules/qrcode/lib/core/galois-field.js","../../node_modules/qrcode/lib/core/polynomial.js","../../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../../node_modules/qrcode/lib/core/version-check.js","../../node_modules/qrcode/lib/core/regex.js","../../node_modules/qrcode/lib/core/mode.js","../../node_modules/qrcode/node_modules/isarray/index.js","../../node_modules/qrcode/lib/core/version.js","../../node_modules/qrcode/lib/core/format-info.js","../../node_modules/qrcode/lib/core/numeric-data.js","../../node_modules/qrcode/lib/core/alphanumeric-data.js","../../node_modules/qrcode/lib/core/byte-data.js","../../node_modules/qrcode/lib/core/kanji-data.js","../../node_modules/dijkstrajs/dijkstra.js","../../node_modules/qrcode/lib/core/segments.js","../../node_modules/qrcode/lib/core/qrcode.js","../../node_modules/pngjs/lib/chunkstream.js","../../node_modules/pngjs/lib/interlace.js","../../node_modules/pngjs/lib/paeth-predictor.js","../../node_modules/pngjs/lib/filter-parse.js","../../node_modules/pngjs/lib/filter-parse-async.js","../../node_modules/pngjs/lib/constants.js","../../node_modules/pngjs/lib/crc.js","../../node_modules/pngjs/lib/parser.js","../../node_modules/pngjs/lib/bitmapper.js","../../node_modules/pngjs/lib/format-normaliser.js","../../node_modules/pngjs/lib/parser-async.js","../../node_modules/pngjs/lib/bitpacker.js","../../node_modules/pngjs/lib/filter-pack.js","../../node_modules/pngjs/lib/packer.js","../../node_modules/pngjs/lib/packer-async.js","../../node_modules/pngjs/lib/sync-inflate.js","../../node_modules/pngjs/lib/sync-reader.js","../../node_modules/pngjs/lib/filter-parse-sync.js","../../node_modules/pngjs/lib/parser-sync.js","../../node_modules/pngjs/lib/packer-sync.js","../../node_modules/pngjs/lib/png-sync.js","../../node_modules/pngjs/lib/png.js","../../node_modules/qrcode/lib/renderer/utils.js","../../node_modules/qrcode/lib/renderer/png.js","../../node_modules/qrcode/lib/renderer/utf8.js","../../node_modules/qrcode/lib/renderer/terminal.js","../../node_modules/qrcode/lib/renderer/svg-tag.js","../../node_modules/qrcode/lib/renderer/svg.js","../../node_modules/qrcode/lib/renderer/canvas.js","../../node_modules/qrcode/lib/browser.js","../../node_modules/qrcode/lib/server.js","../../node_modules/qrcode/lib/index.js","../../node_modules/toggle-selection/index.js","../../node_modules/copy-to-clipboard/index.js","../../node_modules/preact/dist/preact.js","../../node_modules/preact/hooks/dist/hooks.js","../../node_modules/preact/compat/dist/compat.js","../../node_modules/algorand-walletconnect-qrcode-modal/dist/cjs/index.js"],"sourcesContent":["function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(\"production\"!==process.env.NODE_ENV){var i=Y[n],o=i?\"function\"==typeof i?i.apply(null,t):i:\"unknown error nr: \"+n;throw Error(\"[Immer] \"+o)}throw Error(\"[Immer] minified error nr: \"+n+(t.length?\" \"+t.map((function(n){return\"'\"+n+\"'\"})).join(\",\"):\"\")+\". Find the full error at: https://bit.ly/3cXEKWf\")}function r(n){return!!n&&!!n[Q]}function t(n){return!!n&&(function(n){if(!n||\"object\"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,\"constructor\")&&r.constructor;return t===Object||\"function\"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!n.constructor[L]||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&\"symbol\"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)?n:(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.O=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.g||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(O(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A(n,e,o,r,i,t)})),x(n,o,!1),t&&n.u&&b(\"Patches\").R(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!r(v))return;e.m=!1}if(t(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,r,t){var e=s(r)?b(\"MapSet\").N(r,t):v(r)?b(\"MapSet\").T(r,t):n.g?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function D(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}function f(r){r.O&&n(3,JSON.stringify(p(r)))}var s={};m(\"ES5\",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,\"\"+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&\"object\"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.D,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return u(n,L)&&(r[L]=n[L]),r}function f(n){return r(n)?e(n):n}var c=\"add\";m(\"Patches\",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=\"\"+i[s];0!==v&&1!==v||\"__proto__\"!==p&&\"constructor\"!==p||n(24),\"function\"==typeof f&&\"prototype\"===p&&n(24),\"object\"!=typeof(f=a(f,p))&&n(15,i.join(\"/\"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case\"replace\":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return\"-\"===h?f.push(d):f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case\"remove\":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},R:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.D,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?\"replace\":c:\"remove\";if(v!==p||\"replace\"!==l){var d=r.concat(n);t.push(\"remove\"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:\"remove\",path:d}:\"remove\"===l?{op:c,path:d,value:f(v)}:{op:\"replace\",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.D,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:\"replace\",path:p,value:f(u[v])}),e.push({op:\"replace\",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:\"replace\",path:r.concat([\"length\"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:\"remove\",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:\"remove\",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:\"replace\",path:[],value:r===H?void 0:r}),e.push({op:\"replace\",path:[],value:n})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.D=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=R(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.O&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,D:void 0,t:n,k:this,C:!1,O:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,\"size\",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.D.set(n,!0),t.o.set(n,r),t.D.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.t.has(n)?r.D.set(n,!1):r.D.delete(n),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.D=new Map,i(n.t,(function(r){n.D.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=R(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,O:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,\"size\",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m(\"MapSet\",{N:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){N(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W=\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol(\"x\"),X=\"undefined\"!=typeof Map,q=\"undefined\"!=typeof Set,B=\"undefined\"!=typeof Proxy&&void 0!==Proxy.revocable&&\"undefined\"!=typeof Reflect,H=W?Symbol.for(\"immer-nothing\"):((G={})[\"immer-nothing\"]=!0,G),L=W?Symbol.for(\"immer-draftable\"):\"__$immer_draftable\",Q=W?Symbol.for(\"immer-state\"):\"__$immer_state\",V=\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\",Y={0:\"Illegal state\",1:\"Immer drafts cannot have computed properties\",2:\"This object has been frozen and should not be mutated\",3:function(n){return\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \"+n},4:\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",5:\"Immer forbids circular references\",6:\"The first or second argument to `produce` must be a function\",7:\"The third argument to `produce` must be a function or undefined\",8:\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",9:\"First argument to `finishDraft` must be a draft returned by `createDraft`\",10:\"The given draft is already finalized\",11:\"Object.defineProperty() cannot be used on an Immer draft\",12:\"Object.setPrototypeOf() cannot be used on an Immer draft\",13:\"Immer only supports deleting array indices\",14:\"Immer only supports setting array indices and the 'length' property\",15:function(n){return\"Cannot apply patch, path doesn't resolve: \"+n},16:'Sets cannot have \"replace\" patches.',17:function(n){return\"Unsupported patch operation: \"+n},18:function(n){return\"The plugin for '\"+n+\"' has not been loaded into Immer. To enable the plugin, import and call `enable\"+n+\"()` when initializing your application.\"},20:\"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",21:function(n){return\"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\"+n+\"'\"},22:function(n){return\"'current' expects a draft, got: \"+n},23:function(n){return\"'original' expects a draft, got: \"+n},24:\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"},Z=\"\"+Object.prototype.constructor,nn=\"undefined\"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?\"value\"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=R(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.D[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&\"number\"!=typeof t&&(void 0!==t||r in n.o)||(n.o[r]=t,n.D[r]=!0,!0)},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.D[r]=!1,E(n),k(n)):delete n.D[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||\"length\"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return\"production\"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return\"production\"!==process.env.NODE_ENV&&\"length\"!==t&&isNaN(parseInt(t))&&n(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.g=B,this.F=!0,this.produce=function(r,i,o){if(\"function\"==typeof r&&\"function\"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if(\"function\"!=typeof i&&n(6),void 0!==o&&\"function\"!=typeof o&&n(7),t(r)){var c=w(e),s=R(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?O(c):g(c)}return\"undefined\"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw O(c),n})):(j(c,o),P(f,c))}if(!r||\"object\"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.F&&d(f,!0),o){var p=[],l=[];b(\"Patches\").M(r,f,p,l),o(p,l)}return f}n(21,r)},this.produceWithPatches=function(n,r){if(\"function\"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r}));return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then((function(n){return[n,t,i]})):[o,t,i]},\"boolean\"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),\"boolean\"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=D(e));var i=w(this),o=R(this,e,void 0);return o[Q].C=!0,g(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];\"production\"!==process.env.NODE_ENV&&(e&&e.C||n(9),e.I&&n(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.F=n},i.setUseProxies=function(r){r&&!B&&n(20),this.g=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,D as current,J as enableAllPlugins,N as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","import { produce } from \"immer\";\nimport type { Draft } from \"immer\";\nimport { GetState, SetState, State, StateCreator, StoreApi } from \"zustand\";\n\n/**\n * The immer middleware turns the `set` method into a proxy for the immer `produce` method.\n * https://immerjs.github.io/immer/\n *\n * The TypeScript magic is taken from here:\n * https://github.com/pmndrs/zustand/blob/main/tests/middlewareTypes.test.tsx\n */\nexport const immer =\n <\n T extends State,\n CustomSetState extends SetState<T>,\n CustomGetState extends GetState<T>,\n CustomStoreApi extends StoreApi<T>\n >(\n config: StateCreator<\n T,\n (partial: ((draft: Draft<T>) => void) | T, replace?: boolean) => void,\n CustomGetState,\n CustomStoreApi\n >\n ): StateCreator<T, CustomSetState, CustomGetState, CustomStoreApi> =>\n (set, get, api) => {\n // see https://github.com/pmndrs/zustand/issues/449#issuecomment-873777576\n api.setState = (fn) => set(produce(fn as (state: Draft<T>) => T));\n\n return config(\n (partial, replace) => {\n const nextState =\n typeof partial === \"function\"\n ? produce(partial as (state: Draft<T>) => T)\n : (partial as T);\n return set(nextState, replace);\n },\n get,\n api\n );\n };\n","import { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect } from 'react';\n\nfunction createStore(createState) {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (nextState !== state) {\n const previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n let currentSlice = selector(state);\n function listenerToAdd() {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n listener(currentSlice = nextSlice, previousSlice);\n }\n }\n listeners.add(listenerToAdd);\n return () => listeners.delete(listenerToAdd);\n };\n const subscribe = (listener, selector, equalityFn) => {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => listeners.clear();\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n}\n\nconst isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useStore = (selector = api.getState, equalityFn = Object.is) => {\n const [, forceUpdate] = useReducer((c) => c + 1, 0);\n const state = api.getState();\n const stateRef = useRef(state);\n const selectorRef = useRef(selector);\n const equalityFnRef = useRef(equalityFn);\n const erroredRef = useRef(false);\n const currentSliceRef = useRef();\n if (currentSliceRef.current === void 0) {\n currentSliceRef.current = selector(state);\n }\n let newStateSlice;\n let hasNewStateSlice = false;\n if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n newStateSlice = selector(state);\n hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n }\n useIsomorphicLayoutEffect(() => {\n if (hasNewStateSlice) {\n currentSliceRef.current = newStateSlice;\n }\n stateRef.current = state;\n selectorRef.current = selector;\n equalityFnRef.current = equalityFn;\n erroredRef.current = false;\n });\n const stateBeforeSubscriptionRef = useRef(state);\n useIsomorphicLayoutEffect(() => {\n const listener = () => {\n try {\n const nextState = api.getState();\n const nextStateSlice = selectorRef.current(nextState);\n if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n stateRef.current = nextState;\n currentSliceRef.current = nextStateSlice;\n forceUpdate();\n }\n } catch (error) {\n erroredRef.current = true;\n forceUpdate();\n }\n };\n const unsubscribe = api.subscribe(listener);\n if (api.getState() !== stateBeforeSubscriptionRef.current) {\n listener();\n }\n return unsubscribe;\n }, []);\n const sliceToReturn = hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n useDebugValue(sliceToReturn);\n return sliceToReturn;\n };\n Object.assign(useStore, api);\n useStore[Symbol.iterator] = function() {\n console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n const items = [useStore, api];\n return {\n next() {\n const done = items.length <= 0;\n return { value: items.shift(), done };\n }\n };\n };\n return useStore;\n}\n\nexport { create as default };\n","var __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nconst redux = (reducer, initial) => (set, get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return __spreadValues$1({ dispatch: (...a) => api.dispatch(...a) }, initial);\n};\n\nfunction devtools(fn, options) {\n return (set, get, api) => {\n var _a;\n let didWarnAboutNameDeprecation = false;\n if (typeof options === \"string\" && !didWarnAboutNameDeprecation) {\n console.warn(\"[zustand devtools middleware]: passing `name` as directly will be not allowed in next majorpass the `name` in an object `{ name: ... }` instead\");\n didWarnAboutNameDeprecation = true;\n }\n const devtoolsOptions = options === void 0 ? { name: void 0, anonymousActionType: void 0 } : typeof options === \"string\" ? { name: options } : options;\n if (typeof ((_a = devtoolsOptions == null ? void 0 : devtoolsOptions.serialize) == null ? void 0 : _a.options) !== \"undefined\") {\n console.warn(\"[zustand devtools middleware]: `serialize.options` is deprecated, just use `serialize`\");\n }\n let extensionConnector;\n try {\n extensionConnector = window.__REDUX_DEVTOOLS_EXTENSION__ || window.top.__REDUX_DEVTOOLS_EXTENSION__;\n } catch {\n }\n if (!extensionConnector) {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && typeof window !== \"undefined\") {\n console.warn(\"[zustand devtools middleware] Please install/enable Redux devtools extension\");\n }\n return fn(set, get, api);\n }\n let extension = Object.create(extensionConnector.connect(devtoolsOptions));\n let didWarnAboutDevtools = false;\n Object.defineProperty(api, \"devtools\", {\n get: () => {\n if (!didWarnAboutDevtools) {\n console.warn(\"[zustand devtools middleware] `devtools` property on the store is deprecated it will be removed in the next major.\\nYou shouldn't interact with the extension directly. But in case you still want to you can patch `window.__REDUX_DEVTOOLS_EXTENSION__` directly\");\n didWarnAboutDevtools = true;\n }\n return extension;\n },\n set: (value) => {\n if (!didWarnAboutDevtools) {\n console.warn(\"[zustand devtools middleware] `api.devtools` is deprecated, it will be removed in the next major.\\nYou shouldn't interact with the extension directly. But in case you still want to you can patch `window.__REDUX_DEVTOOLS_EXTENSION__` directly\");\n didWarnAboutDevtools = true;\n }\n extension = value;\n }\n });\n let didWarnAboutPrefix = false;\n Object.defineProperty(extension, \"prefix\", {\n get: () => {\n if (!didWarnAboutPrefix) {\n console.warn(\"[zustand devtools middleware] along with `api.devtools`, `api.devtools.prefix` is deprecated.\\nWe no longer prefix the actions/names\" + devtoolsOptions.name === void 0 ? \", pass the `name` option to create a separate instance of devtools for each store.\" : \", because the `name` option already creates a separate instance of devtools for each store.\");\n didWarnAboutPrefix = true;\n }\n return \"\";\n },\n set: () => {\n if (!didWarnAboutPrefix) {\n console.warn(\"[zustand devtools middleware] along with `api.devtools`, `api.devtools.prefix` is deprecated.\\nWe no longer prefix the actions/names\" + devtoolsOptions.name === void 0 ? \", pass the `name` option to create a separate instance of devtools for each store.\" : \", because the `name` option already creates a separate instance of devtools for each store.\");\n didWarnAboutPrefix = true;\n }\n }\n });\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n set(state, replace);\n if (!isRecording)\n return;\n extension.send(nameOrAction === void 0 ? { type: devtoolsOptions.anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction, get());\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n extension.init(initialState);\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if (a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn('[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.');\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n extension.subscribe((message) => {\n var _a2;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\"[zustand devtools middleware] Unsupported action format\");\n return;\n }\n return parseJsonThen(message.payload, (action) => {\n if (action.type === \"__setState\") {\n setStateFromDevtools(action.state);\n return;\n }\n if (!api.dispatchFromDevtools)\n return;\n if (typeof api.dispatch !== \"function\")\n return;\n api.dispatch(action);\n });\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n return extension.init(api.getState());\n case \"COMMIT\":\n return extension.init(api.getState());\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n setStateFromDevtools(state);\n extension.init(api.getState());\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n setStateFromDevtools(state);\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a2 = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a2.state;\n if (!lastComputedState)\n return;\n setStateFromDevtools(lastComputedState);\n extension.send(null, nextLiftedState);\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n };\n}\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\"[zustand devtools middleware] Could not parse the received json\", e);\n }\n if (parsed !== void 0)\n f(parsed);\n};\n\nconst subscribeWithSelector = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\n\nconst combine = (initialState, create) => (set, get, api) => Object.assign({}, initialState, create(set, get, api));\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persist = (config, baseOptions) => (set, get, api) => {\n let options = __spreadValues({\n getStorage: () => localStorage,\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => __spreadValues(__spreadValues({}, currentState), persistedState)\n }, baseOptions);\n if (options.blacklist || options.whitelist) {\n console.warn(`The ${options.blacklist ? \"blacklist\" : \"whitelist\"} option is deprecated and will be removed in the next version. Please use the 'partialize' option instead.`);\n }\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage;\n try {\n storage = options.getStorage();\n } catch (e) {\n }\n if (!storage) {\n return config((...args) => {\n console.warn(`[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`);\n set(...args);\n }, get, api);\n } else if (!storage.removeItem) {\n console.warn(`[zustand persist middleware] The given storage for item '${options.name}' does not contain a 'removeItem' method, which will be required in v4.`);\n }\n const thenableSerialize = toThenable(options.serialize);\n const setItem = () => {\n const state = options.partialize(__spreadValues({}, get()));\n if (options.whitelist) {\n Object.keys(state).forEach((key) => {\n var _a;\n !((_a = options.whitelist) == null ? void 0 : _a.includes(key)) && delete state[key];\n });\n }\n if (options.blacklist) {\n options.blacklist.forEach((key) => delete state[key]);\n }\n let errorInSync;\n const thenable = thenableSerialize({ state, version: options.version }).then((serializedValue) => storage.setItem(options.name, serializedValue)).catch((e) => {\n errorInSync = e;\n });\n if (errorInSync) {\n throw errorInSync;\n }\n return thenable;\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config((...args) => {\n set(...args);\n void setItem();\n }, get, api);\n let stateFromStorage;\n const hydrate = () => {\n var _a;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => cb(get()));\n const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n if (storageValue) {\n return options.deserialize(storageValue);\n }\n }).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(deserializedStorageValue.state, deserializedStorageValue.version);\n }\n console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`);\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(migratedState, (_a2 = get()) != null ? _a2 : configResult);\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = __spreadValues(__spreadValues({}, options), newOptions);\n if (newOptions.getStorage) {\n storage = newOptions.getStorage();\n }\n },\n clearStorage: () => {\n var _a;\n (_a = storage == null ? void 0 : storage.removeItem) == null ? void 0 : _a.call(storage, options.name);\n },\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n hydrate();\n return stateFromStorage || configResult;\n};\n\nexport { combine, devtools, persist, redux, subscribeWithSelector };\n","import { immer } from \"../middelware/immer\";\nimport create from \"zustand\";\nimport { devtools, persist } from \"zustand/middleware\";\nimport type { Account } from \"../../types\";\nimport { PROVIDER_ID } from \"../../constants\";\n\nexport const walletStoreSelector = (state: WalletStore) => ({\n accounts: state.accounts,\n activeAccount: state.activeAccount,\n setActiveAccount: state.setActiveAccount,\n clearActiveAccount: state.clearActiveAccount,\n addAccounts: state.addAccounts,\n removeAccounts: state.removeAccounts,\n});\n\nexport type WalletStore = {\n accounts: Account[];\n activeAccount: Account | null;\n setActiveAccount: (account: Account) => void;\n clearActiveAccount: (id: PROVIDER_ID) => void;\n addAccounts: (accounts: Account[]) => void;\n removeAccounts: (providerId: PROVIDER_ID) => void;\n};\n\nexport const useWalletStore = create<WalletStore>(\n devtools(\n persist(\n immer((set, _get) => ({\n accounts: [],\n activeAccount: null,\n setActiveAccount: (account: Account) => {\n set((state) => {\n state.activeAccount = account;\n });\n },\n clearActiveAccount: (id: PROVIDER_ID) => {\n set((state) => {\n if (id === state.activeAccount?.providerId)\n state.activeAccount = null;\n });\n },\n addAccounts: (accounts: Account[]) => {\n set((state) => {\n const uniqueAccounts = [...state.accounts, ...accounts].reduce<\n Account[]\n >((uniqueAccounts, o) => {\n if (\n !uniqueAccounts.some(\n (obj) =>\n obj.providerId === o.providerId && obj.address === o.address\n )\n ) {\n uniqueAccounts.push(o);\n }\n return uniqueAccounts;\n }, []);\n\n // Remove duplicates that occur when a user reconnects Pera wallet\n state.accounts = uniqueAccounts;\n });\n },\n removeAccounts: (providerId: PROVIDER_ID) => {\n set((state) => {\n state.accounts = state.accounts.filter(\n (account) => account.providerId !== providerId\n );\n });\n },\n })),\n {\n name: \"txnlab-use-wallet\", // key in local storage\n version: 0, // increment to deprecate stored data\n }\n ),\n { name: \"local-storage\" } // prefix in Redux DevTools\n )\n);\n","export enum PROVIDER_ID {\n KMD_WALLET = \"KMD Wallet\",\n PERA_WALLET = \"Pera Wallet\",\n MYALGO_WALLET = \"MyAlgo Wallet\",\n ALGO_SIGNER = \"Algo Signer\",\n DEFLY = \"Defly\",\n EXODUS = \"Exodus\",\n WALLET_CONNECT = \"Wallet Connect\",\n}\n\nexport const NODE_SERVER =\n process.env.NODE_SERVER ||\n process.env.REACT_APP_NODE_SERVER ||\n process.env.NEXT_PUBLIC_NODE_SERVER ||\n /** @todo deprecate this env var */\n process.env.NEXT_PUBLIC_NODE_URL ||\n \"https://mainnet-api.algonode.cloud\";\n\nexport const NODE_TOKEN =\n process.env.NODE_TOKEN ||\n process.env.REACT_APP_NODE_TOKEN ||\n process.env.NEXT_PUBLIC_NODE_TOKEN ||\n \"\";\n\nexport const NODE_PORT =\n process.env.NODE_PORT ||\n process.env.REACT_APP_NODE_PORT ||\n process.env.NEXT_PUBLIC_NODE_PORT ||\n \"\";\n\nexport const NODE_NETWORK =\n process.env.NODE_NETWORK ||\n process.env.REACT_APP_NODE_NETWORK ||\n process.env.NEXT_PUBLIC_NODE_NETWORK ||\n /** @todo deprecate this env var */\n process.env.NEXT_PUBLIC_VERCEL_ENV ||\n \"mainnet\";\n\nexport const KMD_HOST =\n process.env.KMD_HOST ||\n process.env.REACT_APP_KMD_HOST ||\n process.env.NEXT_PUBLIC_KMD_HOST ||\n \"http://localhost\";\n\nexport const KMD_TOKEN =\n process.env.KMD_TOKEN ||\n process.env.REACT_APP_KMD_TOKEN ||\n process.env.NEXT_PUBLIC_KMD_TOKEN ||\n \"a\".repeat(64);\n\nexport const KMD_PORT =\n process.env.KMD_PORT ||\n process.env.REACT_APP_KMD_PORT ||\n process.env.NEXT_PUBLIC_KMD_PORT ||\n \"4002\";\n\nexport const KMD_WALLET =\n process.env.KMD_WALLET ||\n process.env.REACT_APP_KMD_WALLET ||\n process.env.NEXT_PUBLIC_KMD_WALLET ||\n \"unencrypted-default-wallet\";\n\nexport const KMD_PASSWORD =\n process.env.KMD_PASSWORD ||\n process.env.REACT_APP_KMD_PASSWORD ||\n process.env.NEXT_PUBLIC_KMD_PASSWORD ||\n \"\";\n","/*\r\n * big.js v6.2.1\r\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n * Copyright (c) 2022 Michael Mclaughlin\r\n * https://github.com/MikeMcl/big.js/LICENCE.md\r\n */\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n // The default values below must be integers within the stated ranges.\r\n\r\n /*\r\n * The maximum number of decimal places (DP) of the results of operations involving division:\r\n * div and sqrt, and pow with negative exponents.\r\n */\r\nvar DP = 20, // 0 to MAX_DP\r\n\r\n /*\r\n * The rounding mode (RM) used when rounding to the above decimal places.\r\n *\r\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\r\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\r\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\r\n * 3 Away from zero. (ROUND_UP)\r\n */\r\n RM = 1, // 0, 1, 2 or 3\r\n\r\n // The maximum value of DP and Big.DP.\r\n MAX_DP = 1E6, // 0 to 1000000\r\n\r\n // The maximum magnitude of the exponent argument to the pow method.\r\n MAX_POWER = 1E6, // 1 to 1000000\r\n\r\n /*\r\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n * (JavaScript numbers: -7)\r\n * -1000000 is the minimum recommended exponent value of a Big.\r\n */\r\n NE = -7, // 0 to -1000000\r\n\r\n /*\r\n * The positive exponent (PE) at and above which toString returns exponential notation.\r\n * (JavaScript numbers: 21)\r\n * 1000000 is the maximum recommended exponent value of a Big, but this limit is not enforced.\r\n */\r\n PE = 21, // 0 to 1000000\r\n\r\n /*\r\n * When true, an error will be thrown if a primitive number is passed to the Big constructor,\r\n * or if valueOf is called, or if toNumber is called on a Big which cannot be converted to a\r\n * primitive number without a loss of precision.\r\n */\r\n STRICT = false, // true or false\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n // Error messages.\r\n NAME = '[big.js] ',\r\n INVALID = NAME + 'Invalid ',\r\n INVALID_DP = INVALID + 'decimal places',\r\n INVALID_RM = INVALID + 'rounding mode',\r\n DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n // The shared prototype object.\r\n P = {},\r\n UNDEFINED = void 0,\r\n NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n/*\r\n * Create and return a Big constructor.\r\n */\r\nfunction _Big_() {\r\n\r\n /*\r\n * The Big constructor and exported function.\r\n * Create and return a new instance of a Big number object.\r\n *\r\n * n {number|string|Big} A numeric value.\r\n */\r\n function Big(n) {\r\n var x = this;\r\n\r\n // Enable constructor usage without new.\r\n if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);\r\n\r\n // Duplicate.\r\n if (n instanceof Big) {\r\n x.s = n.s;\r\n x.e = n.e;\r\n x.c = n.c.slice();\r\n } else {\r\n if (typeof n !== 'string') {\r\n if (Big.strict === true && typeof n !== 'bigint') {\r\n throw TypeError(INVALID + 'value');\r\n }\r\n\r\n // Minus zero?\r\n n = n === 0 && 1 / n < 0 ? '-0' : String(n);\r\n }\r\n\r\n parse(x, n);\r\n }\r\n\r\n // Retain a reference to this Big constructor.\r\n // Shadow Big.prototype.constructor which points to Object.\r\n x.constructor = Big;\r\n }\r\n\r\n Big.prototype = P;\r\n Big.DP = DP;\r\n Big.RM = RM;\r\n Big.NE = NE;\r\n Big.PE = PE;\r\n Big.strict = STRICT;\r\n Big.roundDown = 0;\r\n Big.roundHalfUp = 1;\r\n Big.roundHalfEven = 2;\r\n Big.roundUp = 3;\r\n\r\n return Big;\r\n}\r\n\r\n\r\n/*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\nfunction parse(x, n) {\r\n var e, i, nl;\r\n\r\n if (!NUMERIC.test(n)) {\r\n throw Error(INVALID + 'number');\r\n }\r\n\r\n // Determine sign.\r\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n // Decimal point?\r\n if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = n.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +n.slice(i + 1);\r\n n = n.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = n.length;\r\n }\r\n\r\n nl = n.length;\r\n\r\n // Determine leading zeros.\r\n for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n if (i == nl) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n\r\n // Determine trailing zeros.\r\n for (; nl > 0 && n.charAt(--nl) == '0';);\r\n x.e = e - i - 1;\r\n x.c = [];\r\n\r\n // Convert string to array of digits without leading/trailing zeros.\r\n for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Round Big x to a maximum of sd significant digits using rounding mode rm.\r\n *\r\n * x {Big} The Big to round.\r\n * sd {number} Significant digits: integer, 0 to MAX_DP inclusive.\r\n * rm {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\nfunction round(x, sd, rm, more) {\r\n var xc = x.c;\r\n\r\n if (rm === UNDEFINED) rm = x.constructor.RM;\r\n if (rm !== 0 && rm !== 1 && rm !== 2 && rm !== 3) {\r\n throw Error(INVALID_RM);\r\n }\r\n\r\n if (sd < 1) {\r\n more =\r\n rm === 3 && (more || !!xc[0]) || sd === 0 && (\r\n rm === 1 && xc[0] >= 5 ||\r\n rm === 2 && (xc[0] > 5 || xc[0] === 5 && (more || xc[1] !== UNDEFINED))\r\n );\r\n\r\n xc.length = 1;\r\n\r\n if (more) {\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n x.e = x.e - sd + 1;\r\n xc[0] = 1;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n } else if (sd < xc.length) {\r\n\r\n // xc[sd] is the digit after the digit that may be rounded up.\r\n more =\r\n rm === 1 && xc[sd] >= 5 ||\r\n rm === 2 && (xc[sd] > 5 || xc[sd] === 5 &&\r\n (more || xc[sd + 1] !== UNDEFINED || xc[sd - 1] & 1)) ||\r\n rm === 3 && (more || !!xc[0]);\r\n\r\n // Remove any digits after the required precision.\r\n xc.length = sd;\r\n\r\n // Round up?\r\n if (more) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up.\r\n for (; ++xc[--sd] > 9;) {\r\n xc[sd] = 0;\r\n if (sd === 0) {\r\n ++x.e;\r\n xc.unshift(1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (sd = xc.length; !xc[--sd];) xc.pop();\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n */\r\nfunction stringify(x, doExponential, isNonzero) {\r\n var e = x.e,\r\n s = x.c.join(''),\r\n n = s.length;\r\n\r\n // Exponential notation?\r\n if (doExponential) {\r\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n // Normal notation.\r\n } else if (e < 0) {\r\n for (; ++e;) s = '0' + s;\r\n s = '0.' + s;\r\n } else if (e > 0) {\r\n if (++e > n) {\r\n for (e -= n; e--;) s += '0';\r\n } else if (e < n) {\r\n s = s.slice(0, e) + '.' + s.slice(e);\r\n }\r\n } else if (n > 1) {\r\n s = s.charAt(0) + '.' + s.slice(1);\r\n }\r\n\r\n return x.s < 0 && isNonzero ? '-' + s : s;\r\n}\r\n\r\n\r\n// Prototype/instance methods\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\nP.abs = function () {\r\n var x = new this.constructor(this);\r\n x.s = 1;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n * -1 if the value of this Big is less than the value of Big y, or\r\n * 0 if they have the same value.\r\n */\r\nP.cmp = function (y) {\r\n var isneg,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new x.constructor(y)).c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n isneg = i < 0;\r\n\r\n // Compare exponents.\r\n if (k != l) return k > l ^ isneg ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = -1; ++i < j;) {\r\n if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.div = function (y) {\r\n var x = this,\r\n Big = x.constructor,\r\n a = x.c, // dividend\r\n b = (y = new Big(y)).c, // divisor\r\n k = x.s == y.s ? 1 : -1,\r\n dp = Big.DP;\r\n\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n\r\n // Divisor is zero?\r\n if (!b[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n // Dividend is 0? Return +-0.\r\n if (!a[0]) {\r\n y.s = k;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n var bl, bt, n, cmp, ri,\r\n bz = b.slice(),\r\n ai = bl = b.length,\r\n al = a.length,\r\n r = a.slice(0, bl), // remainder\r\n rl = r.length,\r\n q = y, // quotient\r\n qc = q.c = [],\r\n qi = 0,\r\n p = dp + (q.e = x.e - y.e) + 1; // precision of the result\r\n\r\n q.s = k;\r\n k = p < 0 ? 0 : p;\r\n\r\n // Create version of divisor with leading zero.\r\n bz.unshift(0);\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; rl++ < bl;) r.push(0);\r\n\r\n do {\r\n\r\n // n is how many times the divisor goes into current remainder.\r\n for (n = 0; n < 10; n++) {\r\n\r\n // Compare divisor and remainder.\r\n if (bl != (rl = r.length)) {\r\n cmp = bl > rl ? 1 : -1;\r\n } else {\r\n for (ri = -1, cmp = 0; ++ri < bl;) {\r\n if (b[ri] != r[ri]) {\r\n cmp = b[ri] > r[ri] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If divisor < remainder, subtract divisor from remainder.\r\n if (cmp < 0) {\r\n\r\n // Remainder can't be more than 1 digit longer than divisor.\r\n // Equalise lengths using divisor with extra leading zero?\r\n for (bt = rl == bl ? b : bz; rl;) {\r\n if (r[--rl] < bt[rl]) {\r\n ri = rl;\r\n for (; ri && !r[--ri];) r[ri] = 9;\r\n --r[ri];\r\n r[rl] += 10;\r\n }\r\n r[rl] -= bt[rl];\r\n }\r\n\r\n for (; !r[0];) r.shift();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Add the digit n to the result array.\r\n qc[qi++] = cmp ? n : ++n;\r\n\r\n // Update the remainder.\r\n if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n else r = [a[ai]];\r\n\r\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n if (!qc[0] && qi != 1) {\r\n\r\n // There can't be more than one zero.\r\n qc.shift();\r\n q.e--;\r\n p--;\r\n }\r\n\r\n // Round?\r\n if (qi > p) round(q, p, Big.RM, r[0] !== UNDEFINED);\r\n\r\n return q;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\nP.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\nP.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.gte = function (y) {\r\n return this.cmp(y) > -1;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\nP.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\nP.minus = P.sub = function (y) {\r\n var i, j, t, xlty,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xc = x.c.slice(),\r\n xe = x.e,\r\n yc = y.c,\r\n ye = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (yc[0]) {\r\n y.s = -b;\r\n } else if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = 1;\r\n }\r\n return y;\r\n }\r\n\r\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\r\n if (a = xe - ye) {\r\n\r\n if (xlty = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n for (b = a; b--;) t.push(0);\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n if (xc[b] != yc[b]) {\r\n xlty = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xlty) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n /*\r\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n * needs to start at yc.length.\r\n */\r\n if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n // Subtract yc from xc.\r\n for (b = i; j > a;) {\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i];) xc[i] = 9;\r\n --xc[i];\r\n xc[j] += 10;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--b] === 0;) xc.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] === 0;) {\r\n xc.shift();\r\n --ye;\r\n }\r\n\r\n if (!xc[0]) {\r\n\r\n // n - n = +0\r\n y.s = 1;\r\n\r\n // Result must be zero.\r\n xc = [ye = 0];\r\n }\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\nP.mod = function (y) {\r\n var ygtx,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n if (!y.c[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n x.s = y.s = 1;\r\n ygtx = y.cmp(x) == 1;\r\n x.s = a;\r\n y.s = b;\r\n\r\n if (ygtx) return new Big(x);\r\n\r\n a = Big.DP;\r\n b = Big.RM;\r\n Big.DP = Big.RM = 0;\r\n x = x.div(y);\r\n Big.DP = a;\r\n Big.RM = b;\r\n\r\n return this.minus(x.times(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big negated.\r\n */\r\nP.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\nP.plus = P.add = function (y) {\r\n var e, k, t,\r\n x = this,\r\n Big = x.constructor;\r\n\r\n y = new Big(y);\r\n\r\n // Signs differ?\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e,\r\n xc = x.c,\r\n ye = y.e,\r\n yc = y.c;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (!yc[0]) {\r\n if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = x.s;\r\n }\r\n }\r\n return y;\r\n }\r\n\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents.\r\n // Note: reverse faster than unshifts.\r\n if (e = xe - ye) {\r\n if (e > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n e = -e;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; e--;) t.push(0);\r\n t.reverse();\r\n }\r\n\r\n // Point xc to the longer array.\r\n if (xc.length - yc.length < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n }\r\n\r\n e = yc.length;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n for (k = 0; e; xc[e] %= 10) k = (xc[--e] = xc[e] + yc[e] + k) / 10 | 0;\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n if (k) {\r\n xc.unshift(k);\r\n ++ye;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (e = xc.length; xc[--e] === 0;) xc.pop();\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\nP.pow = function (n) {\r\n var x = this,\r\n one = new x.constructor('1'),\r\n y = one,\r\n isneg = n < 0;\r\n\r\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) {\r\n throw Error(INVALID + 'exponent');\r\n }\r\n\r\n if (isneg) n = -n;\r\n\r\n for (;;) {\r\n if (n & 1) y = y.times(x);\r\n n >>= 1;\r\n if (!n) break;\r\n x = x.times(x);\r\n }\r\n\r\n return isneg ? one.div(y) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum precision of sd\r\n * significant digits using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.prec = function (sd, rm) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n return round(new this.constructor(this), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum of dp decimal places\r\n * using rounding mode rm, or Big.RM if rm is not specified.\r\n * If dp is negative, round to an integer which is a multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.round = function (dp, rm) {\r\n if (dp === UNDEFINED) dp = 0;\r\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n return round(new this.constructor(this), dp + this.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.sqrt = function () {\r\n var r, c, t,\r\n x = this,\r\n Big = x.constructor,\r\n s = x.s,\r\n e = x.e,\r\n half = new Big('0.5');\r\n\r\n // Zero?\r\n if (!x.c[0]) return new Big(x);\r\n\r\n // Negative?\r\n if (s < 0) {\r\n throw Error(NAME + 'No square root');\r\n }\r\n\r\n // Estimate.\r\n s = Math.sqrt(x + '');\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n if (s === 0 || s === 1 / 0) {\r\n c = x.c.join('');\r\n if (!(c.length + e & 1)) c += '0';\r\n s = Math.sqrt(c);\r\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n r = new Big((s == 1 / 0 ? '5e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n } else {\r\n r = new Big(s + '');\r\n }\r\n\r\n e = r.e + (Big.DP += 4);\r\n\r\n // Newton-Raphson iteration.\r\n do {\r\n t = r;\r\n r = half.times(t.plus(x.div(t)));\r\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n return round(r, (Big.DP -= 4) + r.e + 1, Big.RM);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\nP.times = P.mul = function (y) {\r\n var c,\r\n x = this,\r\n Big = x.constructor,\r\n xc = x.c,\r\n yc = (y = new Big(y)).c,\r\n a = xc.length,\r\n b = yc.length,\r\n i = x.e,\r\n j = y.e;\r\n\r\n // Determine sign of result.\r\n y.s = x.s == y.s ? 1 : -1;\r\n\r\n // Return signed 0 if either 0.\r\n if (!xc[0] || !yc[0]) {\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // Initialise exponent of result as x.e + y.e.\r\n y.e = i + j;\r\n\r\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n if (a < b) {\r\n c = xc;\r\n xc = yc;\r\n yc = c;\r\n j = a;\r\n a = b;\r\n b = j;\r\n }\r\n\r\n // Initialise coefficient array of result with zeros.\r\n for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n // Multiply.\r\n\r\n // i is initially xc.length.\r\n for (i = b; i--;) {\r\n b = 0;\r\n\r\n // a is yc.length.\r\n for (j = a + i; j > i;) {\r\n\r\n // Current sum of products at this digit position, plus carry.\r\n b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n c[j--] = b % 10;\r\n\r\n // carry\r\n b = b / 10 | 0;\r\n }\r\n\r\n c[j] = b;\r\n }\r\n\r\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n if (b) ++y.e;\r\n else c.shift();\r\n\r\n // Remove trailing zeros.\r\n for (i = c.length; !c[--i];) c.pop();\r\n y.c = c;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in exponential notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), ++dp, rm);\r\n for (; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, true, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in normal notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), dp + x.e + 1, rm);\r\n\r\n // x.e may have changed if the value is rounded up.\r\n for (dp = dp + x.e + 1; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, false, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toJSON = P.toString = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, !!x.c[0]);\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Big as a primitve number.\r\n */\r\nP.toNumber = function () {\r\n var n = Number(stringify(this, true, true));\r\n if (this.constructor.strict === true && !this.eq(n.toString())) {\r\n throw Error(NAME + 'Imprecise conversion');\r\n }\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * rounding mode rm, or Big.RM if rm is not specified.\r\n * Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var x = this,\r\n Big = x.constructor,\r\n n = x.c[0];\r\n\r\n if (sd !== UNDEFINED) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n x = round(new Big(x), sd, rm);\r\n for (; x.c.length < sd;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, sd <= x.e || x.e <= Big.NE || x.e >= Big.PE, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\nP.valueOf = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n if (Big.strict === true) {\r\n throw Error(NAME + 'valueOf disallowed');\r\n }\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, true);\r\n};\r\n\r\n\r\n// Export\r\n\r\n\r\nexport var Big = _Big_();\r\n\r\n/// <reference types=\"https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/types/big.js/index.d.ts\" />\r\nexport default Big;\r\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzcgMTg3Ij48cmVjdCB4PSItMTEuMzgiIHk9Ii0yNS45NyIgd2lkdGg9IjIwMC4wMiIgaGVpZ2h0PSIyMzEuNTMiIHN0eWxlPSJmaWxsOiNmZTU7Ii8+PHBhdGggZD0iTTk0LjA1LDU5LjYxYzIuMDUsOC40OCwxLjM2LDE1Ljk0LTEuNTUsMTYuNjYtMi45LC43Mi02LjkxLTUuNTctOC45Ni0xNC4wNS0yLjA1LTguNDgtMS4zNi0xNS45NCwxLjU1LTE2LjY2LDIuOS0uNzIsNi45MSw1LjU3LDguOTYsMTQuMDVaIiBzdHlsZT0iZmlsbDojMWMxYzFjOyIvPjxwYXRoIGQ9Ik0xMjcuODUsNjYuOWMtNC41My00LjgxLTEzLjU1LTMuNS0yMC4xNSwyLjkxLTYuNTksNi40MS04LjI2LDE1LjUtMy43MywyMC4zMSw0LjUzLDQuOCwxMy41NSwzLjUsMjAuMTUtMi45MXM4LjI2LTE1LjUsMy43My0yMC4zMVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTkxLjc5LDE0MC40N2MyLjktLjcyLDMuNDktOC42LDEuMzItMTcuNjEtMi4xNy05LTYuMjktMTUuNzEtOS4xOS0xNC45OS0yLjksLjcyLTMuNDksOC42LTEuMzIsMTcuNjEsMi4xNyw5LDYuMjksMTUuNzEsOS4xOSwxNC45OVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTYyLjIyLDcxLjNjOC4zNywyLjQ3LDE0LjQ4LDYuOCwxMy42Niw5LjY3LS44MywyLjg3LTguMjgsMy4yLTE2LjY1LC43My04LjM3LTIuNDctMTQuNDgtNi44LTEzLjY2LTkuNjcsLjgzLTIuODcsOC4yOC0zLjIsMTYuNjUtLjczWiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48cGF0aCBkPSJNMTE2LjU0LDEwMy43NGM4Ljg4LDIuNjIsMTUuNDEsNy4wNywxNC41OSw5Ljk0LS44MywyLjg3LTguNywzLjA4LTE3LjU4LC40Ni04Ljg4LTIuNjItMTUuNDEtNy4wNy0xNC41OS05Ljk0LC44My0yLjg3LDguNy0zLjA4LDE3LjU4LS40NloiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTcxLjY0LDk3LjcxYy0yLjA4LTIuMTUtOC44OCwuOTgtMTUuMiw2Ljk5LTYuMzIsNi4wMS05Ljc2LDEyLjYzLTcuNjksMTQuNzgsMi4wOCwyLjE1LDguODgtLjk4LDE1LjItNi45OSw2LjMyLTYuMDEsOS43Ni0xMi42Myw3LjY5LTE0Ljc4WiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48L3N2Zz4=\";\n\nexport const PERA_WALLET: WalletProvider = {\n id: PROVIDER_ID.PERA_WALLET,\n name: \"Pera Wallet\",\n icon,\n isWalletConnect: true,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxyZWN0IHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgcng9IjE2IiBmaWxsPSJ1cmwoI3BhdHRlcm4wKSIvPgo8ZGVmcz4KPHBhdHRlcm4gaWQ9InBhdHRlcm4wIiBwYXR0ZXJuQ29udGVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+Cjx1c2UgeGxpbms6aHJlZj0iI2ltYWdlMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuMDU4NjA0MyAtMC4wNTEyMjcpIHNjYWxlKDAuMDAzNzczMjEpIi8+CjwvcGF0dGVybj4KPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVN3QUFBRXNDQVlBQUFCNWZZNTFBQUFnQUVsRVFWUjRBZTE5ZDVoVjFkWDMrOC8zNy9jbW1rQUVSU1ZmVEY1ck1ER3hSMDFNZVUwTUE4aFFSVUFwU2hVc0NJS0tZQlM3Mk1IZXNLQ0lnZ1VwMDN0bFlBWVlZSURwekF6VEdLWXc2M3QrKzNMR3krV1dVL1k1ZDU5ejFuNmVlZTZkZTg4OVorKzExLzd0dFZmOUwrTEdGR0FLTUFWY1FvSC9ja2svdVp0TUFhWUFVNEFZc0pnSm1BSk1BZGRRZ0FITE5WUEZIV1VLTUFVWXNKZ0htQUpNQWRkUWdBSExOVlBGSFdVS01BVVlzSmdIbUFKTUFkZFFnQUhMTlZQRkhXVUtNQVVZc0pnSG1BSk1BZGRRZ0FITE5WTVZuNDUyZEI2bnB0WnVPbEI3akhaVXRGRjJXUXR0SzJ5aXJ6TVAweWRKZGZUdXBtcDYvZXRLZXVHTFEvVE1wd2ZvaVRVVnRQeUQvZUlQNy9FWnZzTTF1QmEvd1c5eEQ5d0w5enhRZDB3OEE4L2l4aFNJUmdFR3JHalU4Y0YzQUltSzJnNEJIbXVUNjJqbHVrUDB3T3B5bXJSaUovMXJVUkZkT3plUExwMmVUUmRNenFUL2QyczZEUnFkU3IrNEpZWDZqMGloZmlPUzZlZkRrK2xudzVMcGRPMHZJWmxPUzBnU2Y2Y24vUGc1cnNHMStBMStpM3ZnWHJnbjd2Mjc2ZG5pV1hnbW5vMCt2TGp1RUtGUEFEYjBrUUhOQnd3Wlk0Z01XREVJNUpXdmU0NzMwc0c2WTdTbG9JbGVXVjlKOTcyK2h4S1hicWRyNXViUytaTXk2S3pScVFKTVRrc0lBQkNBNVl5UktYVG1xRlFhTkNhTnpobWJSdWVPUzZQQjQ5UHBsK1BUQmRBQWJNejgvZkxXd0Qxd0w5d1Q5OFl6OEN3OEU4OEd3S0V2ZUkrK25UOHBrNjZkbXl2NmpMNWpERnNMbThTWU1EWnUvcUFBQTVaSDV4bkh1S3pTRm5yam15cWE4Y0l1K3V0OUJXTFJBeEFnRFFFUUlPVUFKQUFZQW9oTUFwQVowTkw3RzRBYitvWStvcS9vc3liUllTd0FNb3h0NXNwZFlxelpwUzNpZU9uUmFmWDlzQml3UE1JQ2g1dTdoRjdvNlU4UDBOamxKWFRabmRsQ01nRTQ0U2cyTURFQVRGYWxJNzFBNDhSMUdBdUFiRUJpcWhnampxQ1F4aTY3SzRmR1BWWkNvTVcyb2lacWFPbnl5Q3p6TUJpd1hNb0RuZDI5bExlN2hWNzY4aEJOZUh3SFhUb3RXeHluc0dpaEk0SitDSktKRThDaDBqTXdab3dkTkFBdEJveE1FVG80ME9qbDlZY29mMDhyZFhYekVkS2xiTS9CejI2YXVQb2pYY0xDQmgzTzlmUHlhTkNZVkxFbyt3R2d4cVJaMWkycEJEeXkrZ0lwRExTQkxnd0FodmZYejgrbisxZnRvUTJaaHdrMDVlWWVDckNFcGZoY1ZUZDAwcHF0dFRUbG1WSWFNaTByc1BDR0pkUEFVZjZVb0t3Q0dTUXcwQTVIWllBWWFBcmFnc2JWaloyS2N3TjNqd0ZMUVI1b1BkcERHN01hYU1ZTFpYVHhIVmxDeVF3OWxKQ2lGRlNNV3dXUmVQMGVDbjNRVkhQTkFLMW52bEJHRzdNYnFLMmpSMEhPNEM0eFlDbkNBOUNxWkpZMjA1SzM5OUpWczNLRkRnYldzTFBIcFBsT0R4VXZBQU90UWZQK3Q2VFFWYk56NmFGMzlsSldhYk1pSE1MZEFBVVlzT0xNQjdXTm5iUjZZeFhkOUVDaE1OdER6d0x6UFhiL2VDMWN2ejhYZWkvTUFlWUNWc2QvTGl5a043K3BwdG9tUGpMR2Via3dZTVZyQW9yMnR0SENOOHJwdDFPenhNS0FUNUVmclhxcWd5UG1SUGl1SlNUVGtLbFpZczR3ZDl6aVF3R1dzQnltK3c5NWpUVHB5WjNDd3h1ZTNMRDBxYjVvdVg4QmFSZHpoVG1EZC83a0ozZlM1dnhHaDdtSEg4ZUE1UUFQUUlHN1prc3QzZnhnb2ZEVWhwSVhUTTlBNE01akwrWU9jd2pKNitZSGkrampyYlhVZm93RHR4MVlTbndrdEpQSUxlMDk5TnJYbFhUMW5OeStVQmd2ZVpyN0hYQXhsMXFvMERWemN1bjFEWlVFQ3k4Myt5akFFcFlOdEFYVHZ2cFZKVjA1SzFka0xVQllqTjhYdDlmSGp6bEdsZ3BZRjdGSnNWdUVEUXVMcllSeWlZcVFqM2UrcjZhclo1OEFxbEVNVkY0SHF0RHh3U2tWd0lVc0dPOXVxdUV3SUxsTGpJK0VzdWo1WlZvOTNYaGZ2dkNnWm9uS25icXBVUEN4OHYrQXhFQldER1NTV0o5ZUw0dk5mSDhmUGhKYVpJR3NzbVlhdmF5RStwMVF3bHBoY3Y2dDk0RHVqRnNDK2IxR0x5OFJpUWd0c3B2dmY4NkFaWklGcWhvNjZkN1g5Z2pIUWxpTVdKbnVQYkNSdFlHQU44QWp5Q0tCd0hYRWgzSXpSd0VHTElOMFEzTExWUnVyaE1NbmRCVXdjZitLdmRMWnFCQ0RCOEFqNEJYd0RCeFFFZDNReTFsdURLNCtEczB4UkxDY1hTMDBkSEdSY0I1RXlBWURGVXRWUnFVdzhBeDRCOENWc0tSWTVEUXp4SVErdjVnbExCME1BRGVGUjk3ZEo3elNrWkxFS0pQeTlReHM0WGdBdkhUMjJEUjY5TDE5N0FhaFl4M2lFZ2FzR0lSQ09hcnI1dVhSVDRjbWlYUzhMRlV4K0lRREh6T2ZnWmVRNGhtOGRjUDhmRW91Ym9yQmpmdzFBMVlFSGtDb3hlSzM5b3A4NGZCbVpxQmlvRElEU25wL0F4NkREeGZTQ3gzbE1KOElxNUlsckxDRXlTbHJFWlZZc1BPeFVwMkJTaS9vV0xrT0d5SjREVHdIM3kzb1M3bWRTZ0dXc0VKbzhzSVhCNFdZamlJR0xGVXhXRmtCSWJPL0JlL2hxSWlpdHR4T3BnQUQxZ2w2N0svcG9OSEx0dE5wUTVPRUlwVEJpc0hLTE9CWS9SMTREOWxQd1lzbzJZYXExOXdDRkdEQUlxSXYwK3Zwd3RzelJVWUZxOHpHdjJlZ2s4a0RTTmw4MFIyWjlGWEdZY1lzdGhJU0xmOWd2MGdSQW9YbnJ5YndZcE81MlBoZTF2a0pQSW5ZVkNqbC8vTmhoZTlCeTdjU1ZrMWpweEMzV2JGdWZWRXhNTmxMdzJDRi9QakhTcWpPeDdubGZRbFlxSVJ5K2N3Y2tVdWRGNXU5aTQzcEs1ZStweWNrMFpXemNpaTcxSjlXUk44QjF2cy8xTkM1WTlPRWlNMUhRTG1MaWNISmZucUNaM0U4aEF2RUI1dHJmSGRFOUJWZ0lRUkNpNXBuc0xKL2NUR0EyVU5qOEM0eVA0Q1hsNzIvejFlZzVRdkFRcnJhS1UrWDBrK0dKdEZnTHY3QXNaQXhNaXU0QldnMVI5T3B6NVQ2cGdpRzV3R3JycW1ML3IyNFNIZ1FjM0ZTZTNaOHR5eHdML1lUUEEzREVUSS8xQi9wOHJ5MDVXbkFnalBvOWZQeWhIS2RIVUVackx3SVdOcVlVS1g2ei9QejZVRHRNVStEbG1jQmEvditOcnJzcm14eHptZDlGWU9WdHJDOStnb2VoMDdyanpPeWFVZUZkeXRUZXhLd01uWTIwd1dUTTZrL3NpeXdNeWpyckR5aXM0b0Z0dUIxeENIQ016NjdyTm1Ua3BibkFBdjVxekJ4cU1yTFlNV1NWYXhGN3JYdk5kNC83N1owU2lrKzRqblE4aFJnYmM1dnBNSGowa1VPS3dZckJpdXZnWkhlOFlEM0J5U21pc0lvV3dvYVBRVmFuZ0dzSC9JYVJVb094RjB4V0RGWTZWM2NYcjBPYXdCckFhNFAyTWk5MGp3QldGc0xtOFRFTUZneFVIa1ZnTXlNS3hpMG9DcnhRbk05WUtWdVB5SkVYODYyd0dCbFpsRjcvVGNhYUdHY2FTWHUxMm01R3JDUXl2aTgyekpZWitVVEs1alh3Y1d1OFFHMG9OUDZ6Y1FNeW5ONTZtWFhBbGJKL2piaHVzRFdRSmFzN0Zyb1hyb3ZRQXRyQlM0UGJ2YlRjaVZnN2F2dW9OOU56MlkvSzVhczJNZk1BQThBdE9DYitQczdzd2xSSUc1c3JnT3NocFl1dW41K0hudXdHMkJVTDBrS1BCWnJFalZBQ3g3eGY3NG5ueHBidTEySFdhNENyTTd1WGhxNWRMc284dzNDTS9NeURaZ0hqUE1BMXM1cENVbWk2RXBYZDYrclFNdFZnRFhucFYwaU1wMloxRGlUTXMyWVpxRThnSFJMODE3WnpZQmxCd1dlL3ZRQXA0amhZeUJMMVJKNTRKZmpBNmxwbmx0NzBJNGxhOHM5WFNGaGZaNVNSLzFHSkF2bjBOQmRndjlueVlGNXdEd1BJRjE0dnhFcDlFVnF2UzBBSS91bXlnTldZWG1yY0F3OWEzUXFWMktXdUx2eUlqZS95TDFFTytTSnc5ckNtSXIydHNyR0YrbjNVeHF3R2xxNjZhclp1Vnd3Z29HS2o0STI4Z0NVOENoc2NmV2NYSUlWWHVXbUxHREJkbkhyNHp2b3RJUmtEbWEya1ZtOUpDM3dXTXhMalFITFlUSk5lR0tIeW5oRnlnS1dwbVJuSmpUUGhFdzdwcDFSSGtCKytHYy9PNkFzYUNrSldKc0xHa1VZd1RsYzRZYVBRaXhkT3NvRDU0eE5vek1TVXdnWlVGUnN5Z0ZXZFVNbi9YWnFWaUNnbVpuVlVXWTF1aHZ6OWQ2VDRLQ0VSNkQwcGRPenFhYXhVem5NVWc2d3hqMVdRcWNQWTcwVmc0SDN3TUF0Y3dwOUZ0YmdyZjlSVDUrbEZHQTkvL2xCOW1SbnFaS2xTa1Y0QVBxc2w5WWRVa3JLVWdhd3NrcGI2TXhScVNMTnNWdDJJdTRuUzBGZTVvR3p4NmJSb05HcGxLdFFEaTBsQUt2MWFBLzk2ZTY4Z0wrVklydUxseG1SeDhaQXE0Y0hvTStDZjlaMTgvS29yYU5IQ1VsTENjQmFzR29QSVJDVHF6UHpRdEt6a1BnYTUvZ0VheEpId3dXcnl4bXdRQUdZVDRIaWc5bUZnWFUzTEYwcnlRT292SU0xcWtJaGk3aEtXRGdLWGpNblYvaGM4YTdwM0s3SnRHWmFHK1VCcEZlK2RtNHV0Y2I1YUJoWHdIcm83YjFDM09TaklDOGdvd3VJcjNlV1o3U2o0Y1B2N0l2cjBUQnVnSld6SzJBVlJIb0xaajVubVkvcHpmUTJ3d1B3Z2o5clZDcmw3bTZKRzJqRkJiQ1FsdldtQndxby80Z1VWclN6M29ZM0xKZndBS1Fzck5sL0xTcWk3cDc0cEZhT0MyQzkrbFVsTzRpNmhFbk43TVQ4RzI5TGNMQWFydHBRR1JjcHkzSEFxbXJvRlBVRXRhUmh6TnplWm02ZVgrL05MOWJ1UmJkblVuVWNZZzBkQjZ5NUwrL2lIRmNzWGZFeDBNVThnS01ocXU3TWU5WDVBaGFPQWxaMldZdUlCSWRmQisrODN0dDVlVTc5TTZkWXd3aWx5OXZ0YkZwbFJ3RXJjZWwyNmpjOG1jSEt4YnNyZzVKL1FDbldYS01nNitobEpZN3FzaHdEckcreUdrVEZXWlFXaWtVSS9wNXB4RHlnUGc5Z0xRTzB2czF1Y0F5MEhBRXNtRUQvZG4rQmNPOW5SblNHRWJYQ0F0QTFtUDhMbEZiRHZkdzJiMWhJNXNlZEZOaGNXUktPT2U4STJjSGFkc3JOd1JIQSttaExyVkMwdTQzcDNkemYvcmVrME5SblN1bU5iNnBNLzczMmRTVU5tWnJscXBRLzJQVUhqa3FsSlcvdE5UMXUwT3p4anlwRWVUaytFY1RlckU1UFNDYXNjU2VhN1lEVmZ1eTRLQjgwTURGUSs4ek5JT0NXdm1QQlhuWlhOclYzSExmTVE1Tlc3SFNOM2hIV0swaFdJNWR1dHp4dTNPQ2FPWGxDc2V5V2VZOVhQNUZTR1hHR1I0OVo1N2RZRTJjN1lLM2VXTVZPb2c0ZkxYQVVlditIbWxoenIrdjdWOVpYRW5iUWVDMEdJODlGeGc5WXJtUWxuSnUxY2hmOWJKZzd4bTZFVG5aY2U5clFKQ0hSNm1JcUN4ZlpDbGhJK25YbHJCd2hvdHRCSkw3bnFlSTZqb0kzTFN5a251TnlRaWZ5ZHJlSXlzQ0RGVGVXQkh5RGt1bnVsK1g1Qm4yNHVWYmtObWMrTzVYUFFta0NxUjVGajl1UDJadm96MWJBZ2k3Z3B3bEpydGlkUXlmQWpmOUQzd0xBMmxZa3IwUVR4SHd3SW9KZVZhYkoyV1BTNkRjVE0raGczVEVMKy9mSlA5MWYwMEhuVGNnZ0R0Q1BEVmpnRFVqMmIzMWJkVElSSmY5bkcyQjFkQjRYdWE1WWQ2VnZzcTJDQVNRTUhGOG1QN2xUTW9zUTNmbGNtZEFOV2Uyam5iOUhmQnVLNzhwdVF4Y1hjYjQyblNvTjZMS1E2dnhZbDMyNkxOc0FhODNXV3Rmb1B1eGNTRTdkRzZrLzRIMWNlcUJkOXBxbHQ3K3JWdnBvTkhCVUNsMCtNNGVRRUZKMmUvS1RDclp3NndRczhEcktnMzJXVkNkN0d2cnVad3RnUVgveWp3Y0tlV2N5TU5GV2dFM29iNFltMGVLMzl2Wk5yTXczSlJWdEFnd0hqM05HV2pSS2k5TVRrZ2dicEIwdFkyY3pEVXhNRVM0T1J2dmx4K3ZQdUNXRi9ybXdrQ1NwVUUrWlVsc0FhMU5lSS9VYmtVSy9kR2pCK3BFeGdzZU02UGxMcG1SUjNaR3VVeVpZeGdkd0NyeGhmajZwZUx5SHpnNzVtV1FaR1VMcHBlbndZSDBNcGptL0Q3OTVRWStLdGI4bHZ6R1VsRkwrdHdXd0pqeStRM21kaDVjWURpWmxPSG5hMldCOVU4M0VEOHNsUEsyVGk0L1lPWFNhOHlLN054aFpML0NGbS9pRVBWV2pwUU5XeWY0MmdzV0dNektFMzRHTVRMeWVhMUVjQU5LUG5ZcE9vTUVuMjJxVkFpek55RERsbVZKYndRbzNYNXRjUnovam9IM2RFaWJXUG5TcU95cmFwTStOZE1CYTlHWTVLeWtkT2dyanlJMkZ0Q0h6c0hUR0NMMWhlZFZSa2M1YWxZMElDMkx3K0RUYVhTbmZ5QkE2OXNyRHgraC9KbVc0S2tSSnoyWm41elduSlNRVHNFQjJrd3BZalMxZEl2WnMwQmpPZDJVbk0rRGVrREFnZWp1VjN1TTREQ2tMQ21oQVlvcnVuZFl1R21Ec2NHTndzb0lMd24yZ0w3TnJURjY3THpEZzBtbloxTlRhTFJXenBBTFd1OTlYQytjeHJ4RmZ4ZkZBMG9FaU9IK1BjeFZNRnI1UnJvUjd3NW1qVTJuSXRDdzYzR3lQa1NIY0Nudis4NFBNMndaUERnanBlbTlUZFRoeW12NU1HbUQxOWhMOWUzRVJwNUF4T0tsbXdGQzRNU1FrMGQydnlBdEQwY05CNjlQcmxUQ21JSG9DTWFwT3RueVhoQ2laNFNlN2ZnT0RTTUxpWWlJNVVXSml1cVVCVnY3dVZzTE9wM3JNbVYyVDQrUjk3UWhEMGJQNEQ5VWZvLytaR0Y5ZERvd01mN2szbnpxNzdmT21Ea2NMbEthN2JsNGV4OFVhMkpDQkJYQzVLU2lYbDBaWkdtREJhUkdLTmljWHJoK2ZwZWx2bnZwRWZoaEt1SVVhK2hta2FJQkdQR2dQSXdQMGR0ODRtT0V5ZVB6M3ZyWkhpU054UEdodjlwbkFoSWZla2VmUUxBV3dFQkx4eHhrNUFrM05Eb3gvcDg4TkFzNmJWOHl5Snd3bGVIRkdldi9vZS92akVuS2xHUm5HTG5jMmgzZ3dIYjdPUEN3QWt4Mmk5ZkVxMWpRa3JDdG01aEF5dDhob1VnQ0xKMUwvQkZvRlpzUnFmV3hUR0lvZWh2byt0MUZZeTV6T3hBa2p3NkRScVZRbzhYaWhaN3pCMTlRMWRkSkZkMlFLUDBPcjgraW4zNlB3akN5cFdBcGczZmw4R1R2V0dUamJtMlhXL2lPUzZlYkZSWFFjRm80NE5ZVC9YSHhIbHFPTFZqTXk0RWdXN3pidXNSSVJlbUoyRHYzNE8wUklJQm1pakdZWnNPcVBkSWs0TmlpQy9UZ1pUbzFaaEtHTVRLR1U3ZmFHb2VoaHFzUkhuZlZKR2pRbWxjNmZsRWxWaHp2MWRNL1dhMTc5cXBKMXRRWTNaL2hrL1hacUZqVzBXSGREc1F4WW55RnNnZFBJMmdyV2tEQkFZeFNWVUtFNW1YSkZNekk4dC9hZ0NrTW5FWG9HTDNzdUJteUk1eEdSOFVWcXZlVTV0QXhZMDU0dFZjSTN4eWxKSng3UFFSZ0tkRWE3SzQ5YW5uQVpOMEN3TVN5RlR1aXhZR1M0ZW5hdU5LV3QxZkVqYzhXTjk2cVp1U0lldktuM21RQXNKSUswMml3QlZtTkx0eEQxT0JUSFBxVzdKbUU4OHU0K3EzUGQ5M3VyS3JBamJkMzB1K25aaEtPYVhvWTFleDI4cFNIRnkyb3k4alRCaGNjdGhUbk0wbDMyNzRBUlF4Q3EwMkl0Vk1jU1lDSG9GbjR4c2dmSDkvc1JBR0VXUmhpS2pQTS9GbjNtem1ZcDFVMlFRZ2g1ait5Y3EzNGprbW5va21LeUNyQWEySDJ5clk2K3piRmVwWGhUbkN5bGR0TGE3bnZERmFUZjhCVGFtR1dOL3BZQTY5N1g5N0QreXFBQzBpaGpJTmVWekRDVWhDVkZoRCtyN2NWMWgyeU5yVU1tQmh3NzAwcWFyWFpWL0I1K1FPZFB6cVFsYjF0M1lteHM3YVpMcDJVNUltRWE1UmVWcjRkTHpuMnZXN1AwbWdZczVGKzZkaTRYbXJTVFFiQmdiN3kzZ0RvbEpmWEg3dmJmLzA0U3g3bm1kbXVpT1dyL1FmcXpJeFFMeDJBd045eGxaTFduUGoxQS8rZHZXK2lXUitRVVdVV3hEMGlBZHM2LzErNk5ZUDNyN3M2enhNK21BU3RuVjR2SUZtQUh3M3B0b3N5TVI2U2FIWjRzNVFpRFJZOEszR0FXQktTaXVrbXFSZmNJYkZpb2tHSkg2bUFZR1VDenZWVnlqQXg3cXp2b1Z4UFN4Ymd2dkQyVGFocXR1MGU4OWEzYWhUbk04SnpkdjlGaUMxSHIwbXd6RFZpQmRCdTh3OWd4eVpBd29Cc2MrNWk4TUpRWFBqOG9ja2poM29qdmtsRVNhNjROYVpNMUl3TkNnR1MxNmMrVjlTbkpJUlZ0eUxLZThIRFhvWFpoSlZVbG9hRWRmR2pIUGNGN0s3OHc3NkppR3JER0xDK2gvallyWGUwZ21CdnVpVVVnTThxOXVxR1RMcGljU1pvMUY0bm9SajFxL1dpMFpvdjh0TW1RMkM2ZG5rM1FFOGxvMElIaGFLMmRCSERVWENnaEV5YXNqZi9MbGFFTUg0bUJHZU1zeElPYUFxeTZwaTY2ZUlxejRSbHVBQm9aZmRRa29IdGVsWmZyYXNGcXBLMU9FbGxLMFVkRUpWeHlSeFloU3NGS2cxOFk3aWRUeWdoVUQ1YVQ5QTNXeFdFUEZSRkNtclM1d1hINHIvY1ZTS215OCtqNysydzFQR2g5OXRLcjRMMHBXVlJ2TXZtaUtjRDZJZTlFQUt6TkZqSXZUWlRlc1VBS1F2NXc1QkdYMFRUUDdHQlFnWWtaVWhiS3NWbHBLSzMxdC91Uk5sbU9QeFlrSVlBSmNrL0phSituMUo5aXhRWWRJRzNKS0RpN3JhakpNUWRhdmZ5aituWFF6VUtQdXFYQUhPK1pBcXpIUDZybzB3bW9UaUMzOVErNXlwLzVURjZ1cTRrcmRvaEZDOGt0bUJZNEdpMTczN3FlNlA1VmN0SW1nNUdodC90T2dwOFV3QTcxQksrZG0wc0RScDRLcG5ENmZPdGI2eGxMT2EzU3lUd1Z6Ri9SM29QK0t6NnVNTFVubVFLc3hLWGJPUlZ5Q0FCRW15QzkzeUVNNWNwWjhzSlF0aFEwaWVOUXVCQWFTRE5ERjF2M3gwSjhtRlhuWVlBcDdqSHVQL0pxMmNGUERPQWZqdlo0MXBTbjVjUmxUbitPUTlQQzBUamFaNUR1eHl3enAwTTFERmlpTW81d211UHNETkVteGN4MzJIayszaWFuNURxT2F6Y3RMSXhZNlFXdUF6aDZJdTJ4bFZaUjIwRy92czFhMm1RYzB3SzVydVRVc2FzOWtiZHEwT2p3UEFxRHhoL3V5cWFXZHV0SjVUN2NYTU5aU0ExdTNwanIzMC9QcHFZMjQ0WVZ3NENWc2FOWmxDd1B0MnViV2FUOG00QllEZXNKMGcvTHluV0ZoUlFyWlRVa0RSU1dzTktnMlA3WG9rS2h5ekV6bDVxUlFXYXVxMFZ2bFBlNWNJVHJFM2dYRXFhTVZEMzdhenJvdkFucGRPNEozN0Z3eitQUFRqNDZndjZ3Qm1lWEdmZkhNZ3hZcjIrb1pQMlZ3UjBsRnNNaVZja3ZKQzBnZ0U5TGV6ZGRQak1uWnNFRVllSmZiYjNZSlhKMm13MEdEdVM2eXFBcVNVYUduUWZhaGRWU2N6Nk5SSHVBK1JOcnpPbFJRZ0VlUjJ2TVg2Um44ZWNuQXhib0FYNTV3MFRsSThPQWhjeUJuUC9xMUFrd3k1U1FNR1RudWtLQmlrajZtK0IrUWlHTjRxaFdNeGg4azlWZ09rd0YvWlNaNjJyeVV6dkRHaG1DeDQzM3NGUU5lNmc0Rkh0TS9iOWlUVVZNYVRiMCtYNy9IencvKzBYaldVZ05BVmFnK20raE5ETzIzeWNONDRja0FEUDdya055d2xCRUthNUpHWDFPb3RGb0ROMFJBSE9QeFJBWU9LWmVPRG5UY0NsM1ZKRythbll1dFVzcVVKQlUxQ1IwZHBxVGFMU3h5OUxoQWVFeWRyS2FKQnF0dzMwSFY1aC9MQ2cwdkZrYUFpekVZRjEwZXlhZHplZDFLZUkvd0FJU2hzeVM2L05mM1NOMmU4VE9oV09VME0rdzA4bFE5QTkvdU5pdzVSaEgwaytUNU9TNmdwRUJ1alFqNWVTaHc1T1JCUk11RkZmTnlxV3pScDNxUWhGS2IvNC93SmR3SUVWQkQ2TnhuWVlBSzYza0NDdmNKZXF2K25KZG1mVDZEVDIvb0tMTVdhUFRESG1lQTdEdWZ0bTZWLzFqSHhvci93VWpBOUxjV0QyT2FqUllzN1hXc0I0TmdIblBxOWJTbldqUG4vTVNxMHFNZ0RFVTd3TkhwVks2d2ZSQmhnRHI3ZStxV1g4bEViQWdYYTB5b1hqVUZrbm9LeXE2UUdxQTVLYVhlY0EwTjh6THQreGREcDh2NklYMDFPeURrUUZXT215QU1ob2NPT0cvQmo4MnZlUEdkUmo3OWZPc3BUdlIrcjgycGM2eVA1cVJ2bnZoV215VzczNXZMQXpMRUdBOWlOU3dYSERDMEtLSXhGaG5qRXlsUDkrVFQwalRJcU45bDl0QXFQOW0xTjBFNEFGZEZrSjRyTFREelYwaVhYYXM2a2w5Um9abjVUaHVvcy9QZnFiUHlCQTZGMGdTaUZDb0lnbTFEaEZLZGY0a2EvNW9vZjN6K3YvQWtpVnZHVXVvYUFpd3hqMjJnek0wR0pCZUlqRWNRQVdTME1aTTYybE9zR0FSZTRjWVBFZzRrWjRaN1hPWW1KSGZ5V29ic3l4MkJnOG91ekYrV1FVMU5LQXdtMThlN2cwbzNTV2pqVnpxYlBtemFIUHFodStnRnJqVllIU0Ric0RxN082MUxXR2JHNGdyczQrUWhFWXZrNWZyNnAzdnFpMloxUUdleUJsbHRTSEhGckl0UktJVnBDdWtmSlpaVUFNT3B3QWRJOGZnNFA0aEwvMkVKK1NFQkQyLzlxQ2xlUWp1bHgvZXcza1VSM0lqd2U2NkFRdm1jbVJyak9XUTV3ZENXeGtqamwrWXFQdzlyVmJ4UWZ5K3FiV2JmbjludHFYTW43QnV3YjNnNkRGcm9TcXBNWXd5ZlVZR0NRVTFNZmppZlcwaXJ6cG9hblpPY0lSRmZuWlVnTExha0VrVFk5VGpWbUcydjE3NkhiQUVsc0txQnYzaFlib0JTOHZoYlZSSDRpVUNXeDBMWEEwZ2djaXd5bW1MQzlZNVBVNmkwZnFPQllhRmxtc2hkUzM2QXcvN3krN01wa2d4ZkJpN3pJSWFxTnlEZW5kbXBTdlFCUHlNby9UbWZIUHBUclI1d0t1V05ocksvR2owNXU4Q1JpSHdIWFNJUmpadjNZQzFMclZlbEhYU1l3WGlDUWx2cGNOdS9wdUpHWFN3cmlPWXowMi8zeWZpMkRKRVFqNnJOSWNlNjVYMWgwejNSZnZoeENkUS91dkhoSGxhdjJBVi9NczkrUVRWZ295R25HdzR6c25ZUURIMnBlL0pxZnVJU2xKc21BclAveG92YUsrWU8raXgxbWZvajJmVkRWZ3ZmWW15VHFjeW92WndmbzA5U1pDRVpPUlMxeFk4d3FTczZHK0M1d3dnZzl4WlZ0dkw2dytkNGc4RnhvU2VEQ0U4TWhxcUwvLzlmdk5HaHVCeDR6M0E5SitMQ3FYVVAvd3E0N0FBYk43WVk2OEgwTjZvMFVNM1lLSGFMZndtUWllYi85YzNNVGdtWERFemgrQXpKS09oYWhIdWVlNDRmYytQTlU5SStYSFpYVG1XVTY1b3FvTmdQUTdBYXF5RlBONmg5SHB2RXpKUlJGYnV4eHByNlBmSXRJQ01DL3VxclV1K2RVZTY2T0k3TXFWSXZhSDk5T0wvd0pTSDN0RXYzZW9HckR1ZTVrUmxWaGdHeHc1NFk4dHFNS0dITzNxWjdTT2tJTVQyV1hYbUZHRXFzMzhNVTRGQ0hQcXhBa2xHaGlOdDNmU0h1M0lzR1JuQzBRZ0w1Nk10Y3VZSERyekJlZVREUFk4L0MyeTAyTXltUHFQZkowODNZQ0d5blZOb21KTm1jRTVIbkJ1Q3gyVzByek1QQzJsWDlyRURVb3VNekFsM1BsZlc1M0dQZTg2WFdGQURLV0dzR2huQ2dRV1U5ek5YR3M4ZUVHNCs0ZGZGNmhOOWF3V1lNdHhBMWd4ZGdBVkZLZndsWUk0UE45bjhXZVRKZ2VRQ0t4UXlDY2hvc0VUZE1EK2Y0Q2t2bSs0SUhKWnhkRU80QlJUUFdrRU5xMWxOTmJwcDJVMWplZE9ib1V1ZmEwZW45Y2lEN2Z2YkFsazRMTGhibUJtREczOER0UWI0V2E4dmxpN0FncS9QNzZabjYwcFo0a2FpMmRWbkxReEZWdjV3TE54Vkd5cUY4NlVkZlQ1N1RLb0lyMm13R0l5TkpIb0krZm0vTjIrVFdsQmo3a3Z5akF5aDlNUEdZallMcGdhbzJpdU1BamZlbXkrTzJLSFA0ZjlQM3R5eHFjR1BFRWQ5UFUwWFlHRm5RLzV2ZGhvOW1kaXhtQS8wZ2c2bjdHQzducm1JZVEzaTlZWk16Ykl0allrbURTS1EyVXJEZ3IxeWRxN29xeXdqUTk3dVZnRW9zb3dNNGVZT2VrWlVOSmZSSG55ei9CUnJhYmhuK3YwenJCRVUrVDFRcDg5NVZCZGdGZTlyRlRzbWRrMi9FMWp2K0NGZFFkZXk1RzFqd1ozUkZzdkQ3KzZ6Ulg4VFBDYm9Ydjd6a2ZYVXdkT2VLNU1Xb3dlYUlKUUpDdHJndnNwK2p5UHhLSlBWWEVMbjdmdmNFN1U3eHh2YjVHU1BTZlg3WVVQSFJvbGp0SjZtQzdDUVVSSGlNbTZzT2dGVTZSOHNZNWRNeVNLWXVXVTBCQXVEL25aTHVkQzNqWGpZZXVwZ1NKVnRraktKYnN4cUVHQmxOLzlCTndhWEJGUTJ0OXFnUmhuQzFhVmk0Z1htRkdzbHE3UlpGOGwxQVJaWGVqWU8xSkN1WHZ0YVRoWUF6Q1JNdnpDOVd3bEQwUVBteUNhTG1OSHF4azVkREdUM1JUOGFHY3hsb3RBejVyNXJ4cWNMVnhFQXBJdzIrY21kSXVWUDMvMGxaUHJ3MnIxZzZRNkVSdWxUUStnQ3JNOVQ2cVQ2L0hpTjZLSGpnZWYwRGZQenBPVzZTaWsrSWlZMTJCa3o5Sm15L2djRHdRM2ptMnc1aTlicXdnZm8yK0hHRUlsZXNHNHVlbFBPTVI0Skx6bE1KL1ptRDMvQ2RXbjZ3bk4wQWRiN1A5VFlyaitJeEVCdSt4d0xIajQ5Q05HUTBlQzdkZk9pSWtmemtFSDVMRFBQdkZrNjFCL3BFc2RxSEJtYzRnTTR6eUszR0hMRVcyMG9MSUlqajVWc0VrNk5PNTdQZ1c0U2RUVDFOTksyNU40QUFCOFBTVVJCVkYyQXRYcERGWWZsNkJEbmNWenJOenlGRWg4MVY0WTczSVRCKzlwcEowUklpRGMvV0VqV2wyeTRFZW4vYk5HYjVjS0Z3KzVqY1BCaUJiakF1RlI2d0xwbEYwVm1iM3JBZkpIWjRINTUrVDBBNjgxdnFuUXhoaTdBV3ZuRlFSWnRkUUFXR0IzR0NjVFR5V2pON1QzMHh4bXhDNkxLWnVaenhnV3lTdWcxTmNzWWErZzlkbGEwRS9vUmo0cktPTWJoT0NlalBmcmVQblp2aUxGMm9KdDkrVXQ5bVVKMEFSWUtjK0tZSUh0aGVPbCtrQUpBbzdrU0t0Qm9DMlhGeC9hRW9laWhPM1k5R1NXd3RMRVlmWjIwUWw5QlZEMWpNWG9OeG00a3ZpM2EyQkRoQUluVmJndW4wVEdxZEQwMkNPVGwxOU4wQVJiaXR4aXdvaXNQNFNVZXlIV2x6d0V1MXVUWUdZYWloMW5CUkFza2xMR1BOYzV3MzIvT2J4STZ1M2d0Y3VqTS9qQkRUbWFObHZZZUVhenRwQjVPei95cWRBMnc1Y2xQOVBuKzZRSXNaTFdVbWM1REpXTEo2Z3NzV1pCRVpiVlpMKzRTbTRTVCtwdGdXa0Q1akp4VHNnSzI5ZElGWHZLb0NBeFRkM0Ivbkh3UG9Cd3dNb1dROGxsR1E3NThTRzFPanNGTnp3SmdQYTdUV1ZrWFlDMTdud0VyR2dNZ2dQUHltVG5VY2xSZlBGU3NSWkJWMmtJbzVSM1B5QUxOc3JXbjhtaXM3a3I5SG9IVFRoc1p3czJ0MlBVL2xyTUJ3UUxHN2cyUlR5Z1FocFovc0Y4WEh6Rmd4VkFJaG1QbTBNL0EzREp6WGQzeVNMRkkveHY2SEtmL2h6TDBZNGs1dkdKeHBJeUNHckpvQkFuUFNOcVRhR1BiajFUV3Q2WEh4WUFnaXg1MjNrYzZZQ0cyVElWZHowNmltYjAzNHM5azVycUNvaHRBSVR2WGxabnhvUjkzdjJLOWpIMjB4Uno4SFhaWkhLM2pkUXdPcGhGQ29NNmZsRW1vZXlpakRWMVN4UG5rSWdnSHdCYXBSOElWckhRUHEzK0E1emwyNHFRaU9ib09aT3U4Wms2dU1tbEpVUHBkNUNycXNkOGpxN3pxcUtBeFFvT0NnU09lNzJWYVNtSHg1VTAvL0xFUUp4VFFSMC9UZFNSRTRRVGNOSjdNbzlxemhSdkRzR1JDNm1oWjdZWFBEem9haGhLTHBvUEhCYnkwZDFUb2k2UzNRZ2NvcHFIblFTbTBXUDF5Nm50SW1QZThKa2ZDUkFJQmJBRHhzbnc2UlRNeno4RzhQL09wUG4yaExzQmF1ZTRRS3cxRHhGa2NHYUFVbDVYckNzVWtrUmNJeFNETVRMcGR2d0V6eVhLaWpBUm9xZHVQQ0YrbHdlUFZrYTVBVHhoVGtHbTNzOXQ2RmxJVXFVV3gyak1WbTErNytNYklmYkV4b0NxWG5xWUxzRkQ4RWpjMTBna3ZYd3ZwQ2lYWGpWVDdpRFVaOTcyT2t1dEpTa2tZbUVNY2k2WTlLMCtLREtWRGIyOHZEVjNzYkt5a1h0N0Vob1NVTThWNzVWVHBudjNpTGw1SElScy81Z0t4dDFKRGN6ajQrZVJqQ3B3QUw1bWFSUWpPbGRFS3kxdEZUaURObFVEdmduTGlPb3dWTGh1eWNsdUYwdXVUYmJWS3F4dWdDcEdWSnVpejVEcXhPSjJZTnpjOUE1dmloNXYxVlN6U0pXRjlub0txenl4aGFVd0FTOWJyRytUbHVocjdtUDNaTkxXK0czMkZ6Z1h4a1hvVHJJVUNVclQva1Q3NWlsazVRcmRqdEY5T1hRKyt2KzBKNndWbVFRZFlIRG5WK01tYlA2emgwdFBMYk1vN2tlNDFqRGpuRk9PbzhweEFycXQ4YWJtdWtIY0tPNHdLYmd5UmFBenJGZ3dDc2h1TU9VN211b28wdm1pZkR4cVRTcGRPenliNGlNbG9JeC9aSGxjdi9taGpqY2QzNEh1UndFOW5IUUZkRWxZNkxCeWNJbGxZZUFBdUc3TGs1THBDTnMyLzNJT1NYZkVMUTlIRHBFam9oK0tnTXR2QnVtTWk5aEl4bUhyNkVLOXJJR0ZpUVcwcGFKUXlmQlM1WVBlR0g2VXMwQmRxQjcwU3ZDN0FLdHJiSnBLUXhUTlVKRjRNRy94Y2dCV0tJY2hxcXpaVTJWYXlLN2pmVnQvRElpclNKamZJUzV1TXJCWll1Q280aWNhaUQvUllDRStUMFZEOUJ3dlVpZXl4c2NhbHd2ZlEyd0swU21RV29VQm9nZC9QM2lBc2REbjV1K1ZZaktDdy95MUtkcm5BekkwK29xQkdqYVE4NzhnWEJsckN6MHVGUlJPckR5S2g0YUlpUWtJK3F3MHVFdGZOeXhNbmxsalA5Y1AzMkF6aHpuT3dYbDlFZ1M0SkMrZDNuT05SOU5BUFJBd2RvM0JqU0VpbXV5WG11a0w1TDlYMU54b2QwRTlabGpJcytKRkx0NHZpREc2UXJrQURiRmJuVFVpbmZkVWRWdkZLL1A3ZTEvYXdYK01KZmZpZzBXbDAyVjNaMU55dVQwZW9DN0N3Sy9pNVZEMThjV1RtdWtMNlhTd0M3QzRhS0tqNkt0dklzRDc5c0RLeGtrWm9EajlFV1FIdXlQZmZqOVBOQ042SGJ2elA5K1JUbDg3d0wxMkFoVzFoMkVQRnZnM2VoSVFCaTVhc2h2SlBXQUNxU3hqUUxVQnZ0MUdTa2VGbzUzRzY3dTQ4a1d2S0NGaW9jQzNtYTliS1hWSllvSzZwa3k2NkkxTTRwYW93dG5qMjRSY2pVd1MyNkNXc2JzQ2E4a3lwTDVPUURSeVZJaHduWlpWY1J4bDRXTjBBQnZGa0ZEM1BsbTFrZUhuOUlkY2NnMFBwYzlhb1ZMcDZUaTUxZEZvUDA4SGloTlcxM3dpMXJjT2hOTERqZi9DWWtYVFV1Z0VMT2hjL2h1ZWNucEFrN1NnZ3NtaytFTjlzbW5xWkRrZFdLTnNMOXNneE10UTJCcVNLczBhcmZ3d09SeU5zTUlnRHpKRlVZT1RWOVpYczNvQ3duR0hKaGtMY2RBUFdLK3NQK1k3QWdWeFhSVkpxMUdGWGZXOVRqU3RTVFd0R2h2bXZ5c2xVZ0xFdmZLTmNTRmNxWldNSUIwelJQa09zSnlwSXlXamI5N2NKSGFaYkxLWFI2R0xsTzdpMnZQcVYvcWdSM1lEMVpYcTlhNDR5Vmdpby9WYkxkWlZjcksrRWRpd21QdExXTFlvUndKeXZQVVBWVjFpRDRjYWkxOVFjYSt3N1VMSnJyRHVNRE5IbUJFZjVNY3ZsK09HaFVPdU45K1lyay9zczJyanQrZzVTSzJocXBPaXdic0RLMjkwaVVwLzR3ZUVORWdaRTFkdWYyaGxyTGVyK0hoa1ZvYnhYWGRFTzVrUS9uOUZaZGtrUEFTYXUyT0VLSTBPc2hZbmtnaGZma1VsMWtvTGVIM3h6cjlLQjM3SG9ZZlY3WUFrMngvdzkrdXQ0Nmdhc1EvWEg2TUxKbWE0d3hWc2xKS1FCNkhCa1ZQL0ZnaFk1dlNla2swclpOQ1BSYUdCaUNsMHhVMDZKSzR4OWMwR2paeVJ6TFZBWDhaOHkydmU1M3FGTkpINks5am5XMlVXM0cwdERyUnV3T3J1TzA1L3V6aE1leXRFNjRmYnZoUDVtYUJJdGZtdXZESjRVOTRBNUhNcDdOMGhYMG8wTUN3bzhGZXlMTUowSDN5eVh3aHVOTFYwMFpGb1dJY0RhN2V2R1RQK2hIb0hYZjFlMy9oQUMzWUNGR1JxN3ZFVHNsbVk2NTViZmFHRW9zc1QrN0xJV2tUN0ZEWEdZTURMY3ZLaElXaTFDdHhnWmpQQW02algrN2Y0Q2FZWVlWTGlHYWQ5SUg3eHlMZlJYNC85akxIV1BJY0JhOUdhNTUwTUtrRWxVWmhoS29HU1grZ3hwajVFaDIzTVNPVlFGb0pXczFOakl0T25YZWdsSXYyMzBKR01Jc043NnR0clRnSVV3RklRZ0llMkxqUFpsV3FCa2wrbzdvbVprbUNLeG9BYXFoYnZGeUdCMGZyRFEzdm0rV2dhTDBLNURSd1VBQWdpTjlzUHQxOE93aGNLNVJwb2h3RUt4QUs5Vy9vQkNGYm1salpoWW94RWFIdEhRK2FIa3VlcU1CZVdueklJYUNCS0d2NVViakF4bTVrWjRaMHZLYzMrOGwraC9IeWgwQlorWW9WV2szOENsQVhHRTZUdWFveTJqVTc0ekJGalZEWjBpTHhJWVBGSkgzUGc1SkF3d1llS2oyMDhoa05rUHREQVUxUlh0NkI4a0lVUXl5R296WGloempaSEJETDlDejNuNURIbDU3aDk5YjcvdmpvVklLSUI0U3FNcGl3d0IxdkhqdmZTUEJRVTBJTkZiVmcySTQ3Qlk1TzdXN3c4U2JYSFhOblVLZngwd3Rwa0Y0ZVJ2MEVmazVaSlZVQ056WjdOd2huU0RrY0VzblNFZFFQbWVWaUtuZ082Mm9pYVJkUmIzTmRzbnQvME9HUEtQQllVRUNkTklNd1JZdURGTTlGNktLY1RSQlNFWGMxNlNFNGtQR3NFaDhLZEQxYy9HQUNhSGRJWE1wN0xhaUllTGZSSFVDNTU1NmhNNUdUeGFqdmJRSCs3S2RrVXlSMW5BQ0F4QjJUT2p6VEJnZ2JtOVpOV0FhUHJyMnpLb29sWk9jcmFkTGdwRGtaM3I2b3RVZHhnWlpDdzY1SGtmOFVpeDBmVVc4ZnJwejViNXlyMEJHSUo2cDBhYlljQ0N5SS9qazFmRVYwZ1lLejZ1TUVxM2lOZFBja3V1cXhONnV3MlpjZ3Bxb0xMeE5YTnpQYWN1aUFSdTBPTWkzaEtsdTJTMER6ZlhlT3JrRW9sdStCellBUXpSVzNnaW1MNkdBYXNSNlpJOTRwMExLOFVmWitUb1RzOGFUTGh3NzdjV05oR2NMMVVIY3lqYWtmRlNaa0dObGVzQ3VhNVVOekpFVzBoR3Y0T2habDFhZlRoV01Qelp2cG9PT205Q0JwM3JNWU5XT0pyQ3MvOTNKa3VuR1FZc3pBU3NhUkNKdzNYR1RaOUJMTVhPSnFNaCt2Nm1oWVVDc0ZTbmdXWmtNQkowR28xRzFZMEI2L0VnRnhnWlpNNE45RERJenk2ckRWMWM1SXVzdnZCd0g3M01uRVhlRkdBaDg0RGI5VmlRaEc1Nm9GQmFpTVVIbTJ1RUtWL21nckRqWHBDQW9EQ2UrN0p4aFdla2hibGdkYm00cDUra0s4d05mQkp2bUo5dktCWXVFZzN4K1JOcktueVJjdzdZWVZZTll3cXdmc2hyRkJLV3l0V0tveTEySE5rQVdEakN5V2pON1QzMGh4azVyaWpkSkl3TUV6UG9nQ1Fqdy9aOWJTSTN1Ujg5dFJHaUErZlk0bjF0TXRpSU1sQ3dPTkU3K3VGd2F4QnJ6MHBoV2xPQVZkZlVSUmRQeVhKbEVuMUlBUkRsb1J5WDFiQmJRSGtmYm9KVSsweTJrV0hDNHp2bzV5NG9xR0hYUEVCYWtPVVdnaUlkVjgzTzlWejhaVER0c1dHaXhxVlp2ejlUZ0lXRlBtYVpPek0zd0xxRFAyVEJsTkhnRGdHM0NFeEU4TVNvK0I1R2hzdG55ak15UU5MdVB5SlplU09EblhQUmIwUXlUVndoYi9PRGI1S1gvQnhEYVEvOUZRcHdtRzJtQWV2NXRRZGRkOTRXVHFKRGsyalJtL0xDVU9CdzZxYVM2eDl0cVRYTEt5ZjlEZ1UxL242L3QzSmRoUzR1UGYvRDBBQ0xGMUpneTJocmsrczhEVmhZS3l1L09HU2FWS1lCQzNtZTNPYVBoVEFVcExoRjZJeU1oZ29xMERtNG9aQkEvMXVTNlo4TDVSa1pFR1VQNXRPenFMMThqZERKakpTbkQ2MnNQeWI4dTd3V3J3c2VnTTRQYXpCdnQvbEtUS1lCcTZQck9GMDcxMTBaU0tHL1FmVWZXUzF4NlhiaG5heTZkVXhUZEc2VFpHU0FOSEhabmQ3TGRXVVdXS0hIV3ZiK2ZsbHNSU01mMmU0Szl4aWo5RG96TVZVVTBrVWxlYlBOTkdEaGdmQkJjY3Q1RzJsZWtPNUZWaUZNcEtGQk9ocUFnZEdKYy9KNnpjZ3cyYWNGTlp5Z05VS2NibjZ3aUF6RzhVWmNzOCs1VU4yaWg4N0lJM2IvS212cHBTMEJGc0k2NERHdHA3UHh2RWJrdWhxV1RPdlQ1WVNoSE9zOExoTDlnVkhqT1M0OXo4YlJBaTRIcFFmbEdCbEVRUTBZR1h6Z2thMkh2cmdHM3VubjNaWWhpbzFFUkNFRFg2QkNGWTVPT0VMcDdZTWJyb09CWXFQRkFoNldBQ3NRcHBNdFN2V29TakJJR0NEVUxZK1k4NndOeDJkSW9ld0dOd1lZR2RCUG8ybG93NDFaK3d6Wk90eGlaSENTSjNIUytHU2JISU9HRnd1K29KelhwZE95Q1poaHBWa0NMRHg0K25OcVI1bERJUTdGT0l3RU1ocjhSeTZabXVXS1ZDRFlwZUh6VWlmSnlCQW9xSkhpdVoxZkJyQUJzTXlrUzRuRWsyNVN0K2loSDlRbmR6NVhGbW00dWorM0RGaWZwNmh0aGtXQUt2SlR5V29Qdm9WY1Ywa2lCYkNlaVlyWE5kQ3R3ZWZsd3kxeVlpVkJQNUhyYXJnNzhudzVUWGRZeksrZWt5dUx6U2lwK0VnZ21zUWp4MElBRnRJUFdXMldBZXR3YzVmWXhWVjBuQnc4UHFDL1diV2hrbEMwOHJ1Y0J0Ti8rRDE4bUtDcmNJUEpHWDFFSmxFVXdyQXlidngyVTE0alFSR01MSkdxR3htY0JpcnRlZEEzUVZjSXIvZE5FbmdOUWZtL21aZ2g3cWs5dzYydndBYndZa05MbDFXOElzdUFoUjdjOVh5WnNKaXBTRkRvY1hCK2hvTGM2aDlpb01DVXFyc3hhUE9Bc1dQbnR6cHU3ZmNNVnRHVjRERHVJSFd5Umk4cnI1ZzN0L0NaeG0rUlhuRmNucmxTVHJDOUZNQ0N0UkJITDFXRG9iSFFaUDFGbWhSVlA1YzFibFhuVmpXNlM2TzNSNDZDbUI5NEVueGowVHFvaVdaU0FLdjFhSTlJaEFjbHIyb014UDJKTGhVd2ZaZytkdkxBV2FOUzZZcVo4aW9NU1FFc29CK1UwVzdQa1dYbnhQRzlHUmo4eUFOd2dYbm9IWGxHTDJtQWhmZ2duTHU5NXV6bVJ5YmpNVE80eXVBQkxYYXdvTng4N0tCMkZOUmVwUUZXYnkvUnY1SGkxUU9wazJWTUZ0K0RGNzNmZVFCWWtMQkVYbVVoZ0pZMHdNTE5BaEg4N2toazUzZG00dkV6b05yTkExQVJ2YjlKbmgrZ2RNQnFiT21pSVZPemxBN1ZzWHVTK1A0TUJNd0Q2VFJvZENBVXA4bGlLSTUyRk5SZXBVcFl1T21pTjFHUVFQMkFhR1lxQmhibUFmdDRBQmdnTTFHbWJZQzFvOEsvUlFsNEFkaTNBSmkyN3FFdG5LdVJ6UU5ZSUx0Smw3RFFRVkdZd0FWcFozZ1J1R2NSOEZ5NVo2N2dSSDdiRXp0a1k1VzRueTJBaGVJRS9VYW9Yd0daRjRGN0ZnSFBsVHZtQ3A3K1dQdWI4eHZkQTFqSGUwbFVRV1lYQjNjd0dZTUJ6NU1zSHNDYS8rZWlRZ0lHMk5Gc2tiRFEwYldLcDUyUk5VRjhIMTdzekFNLzhnQUNuV1dra1lrRWRyWUJWbGQzTDkwd1AwOUVyL09FL2ppaFRBdW1oVmQ1QUhVVC9ueFBQbUh0MjlWc0F5eDArTDFOTmV6aWNDc3ZVSzh1VUI3WHlid05SOUVQTnN0SkV4MEo4R3dGTEZTb1FSWkdwQ2pteVQxNWNwa2VUQTh2OGNEQXhCUzZWbUpWcXJnQUZoNzZ4c1lxVnhSczhCTHo4RmdZREozbWdkT0dKdEhiMzFWSHdobHBuOXNxWWFHWGJSMDlMR1h4c1pBbGJBL3pBRkpuUTdvNjJtbStRS3BlUkxNZHNOQ1JEN2ZVc2k3THd3enI5RzdPejFOTGdvVHU2dU90OXVxdU5FQnpCTEM2ZTNycGIvY1YwQzljVUhpVUY0TmFpNEhuUSszNWdOL1YzKzh2SUt4eEo1b2pnSVdCSUtlenlQdnVvVnpWdkpqVVhrdzhQL2JPRDd6YXNhWmw1V3ZYQTNpT0FSWTZNMnBaaVJnZ001SzlqTVQwWmZvNndRTUFxOUhMU3ZUZ2pMUnJIQVdzM0YwdE5IQlVxaWRxclRuQkVQd01CaDVWZVFBWkdaQVNIYW5Sbld5T0FoWUdOdStWM1hSYVFwSm5hcTZweWxEY0x3WTd1M2dBOVJLeGh1ZS91dHRKckJMUGNoeXdxaHFPMFFXM1p4S1hCT01GWmRlQzR2dmF5MXRZdXhmZW5rblZqWjNlQnl5TThMV3ZLOW1abE4wYzJEZkxwVHp3MDZGSnRHcERsZU5naFFjNkxtSGhvVENCM3JTd2tQcVBTT0dqb1V1WmxxVVllNlVZRmVtTG8yQy9FY2wwODRPRjFHTlgvcGdZTUJnWHdFS2ZjbmExQ0tYZHVXUFRlS2RsMEdJZWNBRVBuRE0yVGFoeThoMVd0QWRqV053QUM1MVk4dlplY1RRRWNxdTRvM0NmZUY2WUJ3SThnRFg2azM4bjBkTDM5Z1hqaCtQdjR3cFlyVWQ3NkpvNXVYUUdlOEF6WVBPbXBUUVBZSTMrNmU0OGFqdmE0emhJQlQ4d3JvQ0ZqbXd0YkJMVm9nZVA0Nk1oNytZczBhbklBMWliQ01GSktqb1NqQjF4ZVI5M3dNS29GNndxNTZNaFN4aEtTeGdxQW9rVGZjSlJFRmJCQmF2TDR3SlFvUTlWQXJCYWdvNkdyTTlpS2NPSmhjalBpTTFuV0l0SVdIRE4zRHhxYVkvdlVWQURMaVVBQzUxSjNYNkVrQk1hbGdobXB0ak14RFJpR3RuTkExaUxBeEpUS0sya1djT0x1TDhxQTFpZ3hPTWZWZEJQaGlZeFlQSHhrSGxBQVI3QVdueGlUVVhjUVNxNEEwb0JGaHhLaHoxVUxESTYvR29DNzZCMjc2QjhmK2F4Y0R5QXRZZHlYU01lTG82YmcyZ3dTQVcvVndxdzBMRjlOUjEwL3FSTTRWUWFqcGo4R1M4eTVnSDdlQUI2SzJSVXVXQnlKbFhVZEFSamhSTHZsUU1zVU9XcmpNTWlCSUJkSGV4alRGNzBUTnR3UElDME1RaVoyNWgxV0FtQUN1MkVrb0NGVGo3eTdqNE9rRlpBanhHT3Fma3o3NElkdk5tWGY3QS9GQ2VVK1Y5WndJSSthL2pEeFhUNnNHUmlmWlozRndpRG54cHppeldHWWhJamwyNVhUbThWakpiS0FoWTZXZFhRU1pmZGxTMThRUmkwMUdCc0JoanZ6UVBXRmp6Wi96Z2poMnFibk05eEZReElzZDRyRFZqb1BOSXFRNWVGcEdIc1ZPcTl4Y0lBR044NXhackMyaG84UHAzeTl6aWI3amdXT0lYN1hubkFRcWUvU0trWGlrQk9SUk5mNW1adzhSNzlzYWFnWlA4aXRUNGNQaWozbVNzQUMxUjdkdTFCb1lSSGFTRmVPRXdENWdIclBJQzFoRGpCNTlZZVZBNllJblhJTllDRkFkejk4bTZSazRlWjFUcXpNZzJaaHJBSVlrMjVxYmtLc0xwNmVtbmNZeVdCcWp2c0NjK1NKcnQ5bU9JQktObFI5UVpyQ1d2S1RjMVZnQVhDTnJkMzA5OFhGSWpRQWJZY3NwVEFrcUl4SHNDYVFkak5QeDRvb0daRk1qQVlBVXpYQVJZR0IzZUhxMmJuQ205NEJpMWpETXNMM0wvMHdscEJFUW1zbmVvR3RkMFhJb0dZS3dFTGc5bGRlWlIrT3pWTCtJOHdhUGwzRVRJQTY1dDdyQkg0V2cyWmxrWGxsVWNqNFlIeW43c1dzRURaL0QwdDlPdmJNbWhBWWlwN3c3TSt4NVEreHcrQUI3RENHdm5OeEF3cUtGZmYxeW9hYXJvYXNEQ3cxSklqQlBNc0lzeFowdEszMi9waGtmSVlBN3lBTlRFd01WV0FlVnBKL0hPeVJ3TWpQZCs1SHJBd3lDMEZUUVFIT0FZdEJpd0dxaDk1UUFPcmM4ZWwwN2JDSmoxNG9QdzFuZ0FzVVBtSHZFWkNhZ3pzSml4cC9jaTB2SUQ5U1lzZndTcU5OdWMzS2c5RWVqdm9HY0RDZ0xma045TGdjWUh6T29PV1B4Y3FBM1M2MkxDaHM0S3FaRXVCZDhBS2E5eFRnSVVCSlJVMWlRbEQ0VWNHTFFZdHZ3RVllQjY4Zjk2RWRFb3U5c1l4TUZqNjhoeGdZWEJacGMxMDRlMloxUDhXQmkyL0xWZy9qeGRnMVg5RU1sMTBSNlpZQThFTDNTdnZQUWxZbUp5Uy9XMGlsOWJQaDNNQ1FEOHZZcitNSFdBRkQzYmt0TnBaMGU0VmZEcGxISjRGTEl5MG9yYURicnczWDhSTitZVnhlWnorUEFZak52Q3Y5eFhRZ2JwanB5eHlMMzNnYWNEQ1JEVzFkdE9vWmR0RnZVTk9UZVBQeGV4bEVOZFN4SXhkWGtKSDJycTloRTFoeCtKNXdNS29PN3Q3YWZhTHUwVHVIN2crZUptQmVXeitBV1h3TXZKWklVVU1haUQ0b2ZrQ3NMU0pYUEZ4aFNqU0t0SXRjM29hQm02WGhqTkJYd1VlN2pjOG1aNzg1SURHM3I1NDlSVmdZVVkvMkZ3akhFd1JDSXFKWjRtRWFlQW1IZ0RQZ25jaFhYMjRwY1lYSUJVOFNOOEJGZ2FmVmRwQ1Y4ek1FU1hFM01TczNGY0cxOU9ISmRFVnMzSUVEd2N2WkwrODl5VmdZWEpSem1qTThwSSt2UlpYNUdFd1VIVkRBRzlxK2lvbzExVXZ4V1VuZVBvV3NFQlVxQ2xSNVJZT3BtZHl0Z2MrSGl1bzA4SVJFRUg5T0FZKzlxRzZGWm50QktuZ2Uvc2FzRFJDZkpsZVR4ZmNua2svRzU3TWkxYkJSYXVxNU9ORXY4Q1RpTnBZbjNGWVkxZGZ2ekpnblpqK1BaVkhhZGhEeGVLSWVNN1lOQzdheXNBVnQ4MExSMER3SUZ3V1JqeGNUSHVyTzN3TlVzR0RaOEFLb2tiUDhWNXhSQnlZbUJKSXZjeUxObTZMMWducFJjVm5BS3h3L0lPS0FrZkE0OGY5NFY4VnRBeWp2bVhBQ2tPZWxPSWpkUDI4UEZiSU0yQTdCdGpCaXZVYjV1ZFQ2bmIzWndjTnM3UXNmOFNBRllHRXJSMDl0UGl0dlNJaG9QRFo0c1hyMk9KVlVmS3h1MC9nTVNTZkJNKzFkZlJFNEVyK21BRXJCZzhndjlZTjh3UFNGdXUyMlBWQkpuQUY2NnJBWTBrZXpGOFZZM2taL3BvQlN3ZkoybzcyMENQdjdxT3p4NlNLdW00eW1aYnY1VjhRUkkzQXM4ZW0wU1B2N1dPcFNzYzZ4Q1VNV0RvSmhjdHlkclhRME1WRmRGcENzb2psd2c3SmdNTTBNTUlENEJuRUFZS0hFcFlVVWU2dUZnTWN5SmN5WUJua2dkNWVvdFVicWtRUlYrUWdnZ2N5QXhlRFZpelFBbytBVjhBelE2Wm0wUnNicXdpOHhNMFlCUml3ak5HcjcrcXF3NTEwejJ0N3hHNkpyS2FjYTR0Qkt4Sm9nVGZBSTROR3A5RjlyKzl4YlpuNFB1YVA0eHNHTEl2RXp5NXJwdEhMU2tTcUR5VC9qOFMwL0xrL0FlMk1XMUtFM2hOeHF6bGxmUHl6dU54WWgyV1ZnTnJ2djB5cnB4dnZ5eGNaSU9CNHlnRGxUNERTNWgwOGNQcXdaSkcyZUgxNnZjWW0vR3FSQWl4aFdTUmc4TSs3dW52cG5lK3I2ZW81dVVKWGdhQlZqWUg1MVI4QWhqbUhudXFhT2JuMDd2ZlZCSjdnSm84Q0RGanlhTmwzcDlhalBmVEtWNVVpYnhHWWw0SEwrMkFGcDAvTTlaV3pjK20xcnlvSlBNQk5QZ1VZc09UVHRPK09MZTA5OU5yWGxYVFY3Rnc2UFNGWkZMaGtTY3RiNEFXOUpZNStWOC9PcGRlL1pxRHFZMzZiM2pCZzJVVFk0TnRpdDhWUkVTWEhZQzJDdytCZ0xvYmgydU15NWc1emlMbUUzdkxkVFRYcytCbk04RGErWjhDeWtiaWh0MFpsazNXcDlZU3NrV2VQU1JOUzE2QXhyT2R5aTlTSnVZS2tqTG5ESE1MUTRwZHFOYUc4SEsvL0diRGlSUG44M2EzMHdPcHk0WUNxSFJjSGovZldjY2t0UUJTdG41Z1RjZXhMU0JaenRmQ05jc3JmMHhvbnJ1SEhNbURGbVFmcW1qcHA5VGRWZE5QQ1FwRURDZUNGWEVpLzVMQ2Z1QjBaUVh2TWdUWVhtSnMzdnFraXpCVzMrRktBQVN1KzlPOTdPb3pmV2FYTnRPVHR2WFRsckZ6cVB5S0ZmallzY1B5SUpnSHdkL0trVWh6MVFIUFFIb1lTekFYbWhKczZGR0RBVW1jdStub0NKZjNHckFhYThVSVpYWHhIbGxoRUlyUmpUQnBMWGhJbFQwaFNnOGFrQ2VVNWdBcTBudmxDbWFBOTU2VHFZMGVsM2pCZ0tUVWRwM2FtdXFHVDFteXBwU2xQbDlLUWFWbkNPZ1V6T255N1dPZGxYTG9DelVBNzBCQ1dQdEIweWpPbHRHWnJMVlUzOHBIdlZBNVU2eE1HTExYbUkycHY2bzkwMGRlWmgrbisxL2VJRk02UURxQm42VGNpUlVnS0hJQjlLb0NCSnFBVHdBbTB3dnZyNStmUi9hdjJDRnFDcHR6Y1F3RUdMUGZNMVVrOVJjZ0hMSTB2ZlhtSUpqeStneTZkbGgyd1pwM1F3Y0FFNzBjSkRHTWVORHBWNktFQVVBTkdwdENsMDdNRmpVQXIwSXpEWlU1aUpWZjl3NERscXVtSzNObkR6VjIwdGJDSm52cmtnUEFSK3YyZDJTTDFEWTQrMEg4aGRBUXBucjBraFdFc0dOT0F4RlF4UmdBVWt1TmRkbGMyalgyc2hKNys5QUJ0SzJ5aWhoYVdvaUp6anJ1K1ljQnkxM3pwN20xamE3ZXdjQ0ZSM0l3WGRvbXNBZWRQeXV5VHdxQmsxc3BKWWRGRE1sSFJsUUo5UXQvUVI3Z2FvTS9vTzRBWS9sRVkwMS92S3hCamhPdEJkbWtMTmJWMjY2WVRYK2d1Q2pCZ3VXdStUUGNXTlJjUDFoMmpyUVZOOU1yNlNwRklMbkhwZHJwbWJpNmRQeWxEU0NiUTh5QjFMd0FCN3dFSWtGaGc3a2UyVE5tZ3BvRVI3bzFuNEZsNEpwNk5QcUF2ZUkvUEFVem9LL3FNSkhnWUE4YUNNV0ZzM1B4QkFRWXNmOHh6eEZGMmRCNm5pdG9PeWk1cm9iWEpkYlJ5M1NIaGdUOXB4VTc2MTZJaTRZOTB5WlFzK3RXRWREcnJoSVFESlQrT21RQVZJZTBrQUZ5U292N2h1S1pkajkvaUhwQ1dBRWE0TjU0QjN5YzhjOUtUTzBVZlhseDNTUFFKZlVNZjBWZHUvcVlBQTVhLzV6L202TnVQOVZCdFV5ZVZIbWluekozTnRLV2dpZGFuSDZZUE50ZlFxZzFWdFBLTFE3VGk0d3BhOXY1K2V2VDkvZUlWNzdVLzdUTmNBekRFYi9CYjNBUDN3ajF4Ynp3RHorTEdGSWhHQVFhc2FOVGg3NWdDVEFHbEtNQ0FwZFIwY0dlWUFreUJhQlJnd0lwR0hmNk9LY0FVVUlvQ0RGaEtUUWQzaGluQUZJaEdBUWFzYU5UaDc1Z0NUQUdsS01DQXBkUjBjR2VZQWt5QmFCUmd3SXBHSGY2T0tjQVVVSW9DREZoS1RRZDNoaW5BRkloR0FRYXNhTlRoNzVnQ1RBR2xLUEQvQWRXcDJSQnhQVXVTQUFBQUFFbEZUa1N1UW1DQyIvPgo8L2RlZnM+Cjwvc3ZnPgo=\";\n\nexport const MYALGO_WALLET: WalletProvider = {\n id: PROVIDER_ID.MYALGO_WALLET,\n name: \"MyAlgo Wallet\",\n icon,\n isWalletConnect: false,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PHN2ZyB3aWR0aD0iMjM4IiBoZWlnaHQ9IjIzOCIgdmlld0JveD0iMCAwIDIzOCAyMzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik01MS43MDUgMTQ1LjA0MkgxMTYuNzA1TDEwNy43MDUgMTU1LjA0Mkg1MS43MDVWMTQ1LjA0MloiIGZpbGw9IiNENjQ1MDAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNDcuNTE5IDE5MS41NTdMMTI5LjU3NyAxNDQuMzk0TDE0Mi40MDQgMTI3LjExMkwxNjcuODc1IDE5MS41NTdIMTQ3LjUxOVpNMTEwLjkzNiA5NS4zOTMyTDEyMC42MTMgMTIwLjgzMUwxMzMuMzU5IDEwNC4yMjhMMTE3LjQ3NSA2NC4wNDIyQzExNS45MjggNjAuMTI4IDExMi4xNDYgNTcuNTU2NSAxMDcuOTM4IDU3LjU1NjVDMTAzLjcyOSA1Ny41NTY1IDk5Ljk0NzQgNjAuMTI4IDk4LjQwMDMgNjQuMDQyMkw2Ny45NjU5IDE0MS4wNDJIODcuNzgwN0M5NS40MTUzIDEyMS4wMTEgMTAyLjg5MyAxMDEuMzk5IDEwNS4xOTggOTUuMzU0MUMxMDUuNjQxIDk0LjE5MTIgMTA2Ljc0MyA5My40NTk5IDEwNy45ODcgOTMuNDU5OUgxMDguMTMyQzEwOS4zNzggOTMuNDU5OSAxMTAuNDkzIDk0LjIyOTMgMTEwLjkzNiA5NS4zOTMyWk04MC45MjEgMTU5LjA0MkM3NC45Mjg5IDE3NC43NjggNjkuODY2MSAxODguMDYzIDY4LjU0NDcgMTkxLjU1N0g0OEw2MC44NTE0IDE1OS4wNDJIODAuOTIxWiIgZmlsbD0iIzIyMkI2MCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE3Ni4wMjYgNTQuNzUwOUMxNzcuOTk3IDUyLjA4NzIgMTgxLjc1NCA1MS41MjU3IDE4NC40MTggNTMuNDk2N0MxODcuMDgyIDU1LjQ2NzggMTg3LjY0MyA1OS4yMjUxIDE4NS42NzIgNjEuODg4OEwxMzAuMDEzIDEzNy4xMDdDMTI5LjcxNCAxMzcuNTEyIDEyOS4zNDEgMTM3Ljg1NyAxMjguOTEzIDEzOC4xMjNMMTE3Ljg1NiAxNDUuMDEzQzExNy4wODcgMTQ1LjQ5MyAxMTYuMTI4IDE0NC43ODMgMTE2LjM2MSAxNDMuOTA3TDExOS43MTggMTMxLjMxOEMxMTkuODQ3IDEzMC44MzIgMTIwLjA2OCAxMzAuMzc0IDEyMC4zNjcgMTI5Ljk3TDE3MC42NyA2MS45ODlMMTY5LjkyOSA2MS40NDA1QzE2OS40ODUgNjEuMTEyIDE2OC44NTkgNjEuMjA1NiAxNjguNTMgNjEuNjQ5NkwxNTIuMzExIDgzLjU2ODhDMTUyLjU4NiA4NC4yMDIzIDE1Mi41MjQgODQuOTYxMiAxNTIuMDg0IDg1LjU1NjJMMTQ5LjExIDg5LjU3NTVDMTQ4LjQ1MyA5MC40NjM0IDE0Ny4yMDEgOTAuNjUwNiAxNDYuMzEzIDg5Ljk5MzZDMTQ1LjQyNSA4OS4zMzY2IDE0NS4yMzggODguMDg0MSAxNDUuODk1IDg3LjE5NjJMMTQ3LjY3OSA4NC43ODQ3TDE0OC44NjkgODMuMTc2OUwxNjcuMzA4IDU4LjI1NzRDMTY4LjYyMiA1Ni40ODE1IDE3MS4xMjcgNTYuMTA3MiAxNzIuOTAzIDU3LjQyMTJMMTczLjY0NCA1Ny45Njk3TDE3Ni4wMjYgNTQuNzUwOVoiIGZpbGw9IiNENjQ1MDAiLz4KPC9zdmc+Cg==\";\n\nexport const ALGO_SIGNER: WalletProvider = {\n id: PROVIDER_ID.ALGO_SIGNER,\n name: \"AlgoSigner\",\n icon,\n isWalletConnect: false,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiLz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEuNjgyMDksMCwwLDEuNjgyMDksMjI2LjM2OCwyMTIuODE4KSI+CiAgICAgICAgPHBhdGggZD0iTTMyNy4wNDksMjgwLjE5MkwxNjkuNTI0LDEzTDEyLDI4MC4xOTJMMTY5LjUyNCwxODkuMDg0TDMyNy4wNDksMjgwLjE5MloiIHN0eWxlPSJmaWxsOndoaXRlO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS42ODIwOSwwLDAsMS42ODIwOSwyMjYuMzY4LDIxMi44MTgpIj4KICAgICAgICA8cGF0aCBkPSJNMjk5LjU0NiwzMDdMMTY5LjUyNSwyMzguNDczTDM5LjUwNCwzMDdMMTY5LjUyNSwyNjQuNjdMMjk5LjU0NiwzMDdaIiBzdHlsZT0iZmlsbDp3aGl0ZTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgIDwvZz4KPC9zdmc+Cg==\";\n\nexport const DEFLY: WalletProvider = {\n id: PROVIDER_ID.DEFLY,\n name: \"Defly Wallet\",\n icon,\n isWalletConnect: true,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgMzAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MXtmaWxsOnVybCgjU1ZHSURfMDAwMDAwNDM0MjYxNjcxNDAxMDY1ODIyNzAwMDAwMDIxMzA3Njg5MDYwNzMxMTM0ODRfKTt9Cgkuc3Qye2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEwMjUxOTMxNjAxNTI3NjU4MTY0MDAwMDAxNjI3NDExMjM4MzE3NTY0MTc1OV8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTt9Cgkuc3Qze2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEzODU2MzM4MjQ2MjA4NjAyMDM1MDAwMDAxNDg3ODQ5MDI3MDc4MjA3MTIwN18pO30KCS5zdDR7bWFzazp1cmwoI21hc2swXzE2NjFfMjk1XzAwMDAwMDg4MTMyMjUxNTk3NDQxNTczNDkwMDAwMDExNjkzNjEyMDE4NTA2NjgxNDgxXyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfMDAwMDAxMDYxMjA2MzI0NjE3OTI4NzExNjAwMDAwMDc0MzM5MTMwMzgzMzc3NjY1NzZfKTt9Cjwvc3R5bGU+CjxnPgoJCgkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDYuNjAzIiB5MT0iOS4yMjEyIiB4Mj0iMTc0LjE1OCIgeTI9IjMwOC41NDI2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xCgkJTDI3NC43LDkzLjl6Ii8+CgkKCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMjkuMzUxNiIgeTE9Ii0xOS4xNTczIiB4Mj0iNTYuOTA2NiIgeTI9IjI4MC4xNjQxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1Xyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCWw2OS4yLTQ1LjFWMjNMMjUuMyw5My45TDQzLDE1MC4xbC0xNy43LDU2LjJMMTMzLjcsMjc3di0zOS42bC02OS40LTQ1LjFMNzIuNSwxNjYuNHoiLz4KCTxkZWZzPgoJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ij4KCQkJPGZlQ29sb3JNYXRyaXggIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCAxIDAiLz4KCQk8L2ZpbHRlcj4KCTwvZGVmcz4KCQoJCTxtYXNrIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0IiBpZD0ibWFzazBfMTY2MV8yOTVfMDAwMDAwODgxMzIyNTE1OTc0NDE1NzM0OTAwMDAwMTE2OTM2MTIwMTg1MDY2ODE0ODFfIj4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjQ2LjYwMzgiIHkxPSI5LjIyMTQiIHgyPSIxNzQuMTU4OCIgeTI9IjMwOC41NDI4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMwQjQ2RjkiLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0JCRkJFMCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHBhdGggc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTsiIGQ9IgoJCQlNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xTDI3NC43LDkzLjl6Ii8+CgkJCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAxMTk4MTE3MDc2MjE0NzI4MTQyNzAwMDAwMTA4Mjk2NTkzODM4NTEyMDI0OTFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEyOS4zNTIxIiB5MT0iLTE5LjE1NzEiIHgyPSI1Ni45MDcxIiB5Mj0iMjgwLjE2NDIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCAzMDIpIj4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQkJGQkUwIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTE5ODExNzA3NjIxNDcyODE0MjcwMDAwMDEwODI5NjU5MzgzODUxMjAyNDkxXyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCQlsNjkuMi00NS4xVjIzTDI1LjMsOTMuOUw0MywxNTAuMWwtMTcuNyw1Ni4yTDEzMy43LDI3N3YtMzkuNmwtNjkuNC00NS4xTDcyLjUsMTY2LjR6Ii8+Cgk8L21hc2s+Cgk8ZyBjbGFzcz0ic3Q0Ij4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDEwOTAxOTkxODU1Nzc3MzA1MzQyMDAwMDAxNzYwMjQwNTkwODA2NzEyMDMwMF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDYuNDY2MiIgeTE9IjIyOC43NTU0IiB4Mj0iMTcxLjg2MzgiIHkyPSIxMzUuMTAzOSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDMwMikiPgoJCQk8c3RvcCAgb2Zmc2V0PSIwLjExOTgiIHN0eWxlPSJzdG9wLWNvbG9yOiM4OTUyRkY7c3RvcC1vcGFjaXR5OjAuODciLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0RBQkRGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJCgkJCTxyZWN0IHg9IjI1LjQiIHk9IjIzIiBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTA5MDE5OTE4NTU3NzczMDUzNDIwMDAwMDE3NjAyNDA1OTA4MDY3MTIwMzAwXyk7IiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==\";\n\nexport const EXODUS: WalletProvider = {\n id: PROVIDER_ID.EXODUS,\n name: \"Exodus\",\n icon,\n isWalletConnect: false,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDkuODMgMjEwLjMzIj48dGV4dCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDE2MS4zMSkiIHN0eWxlPSJmb250LWZhbWlseTpJQk1QbGV4U2Fucy1NZWRtLCAmYXBvcztJQk0gUGxleCBTYW5zJmFwb3M7OyBmb250LXNpemU6MTkwcHg7Ij48dHNwYW4geD0iMCIgeT0iMCI+S01EPC90c3Bhbj48L3RleHQ+PC9zdmc+\";\n\nexport const KMD_WALLET: WalletProvider = {\n id: PROVIDER_ID.KMD_WALLET,\n name: \"KMD\",\n icon,\n isWalletConnect: false,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDQ4MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMzMzk2RkY7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTI2LjYsMTY4YzYyLjYtNjEuMywxNjQuMi02MS4zLDIyNi44LDBsNy41LDcuNGMzLjEsMy4xLDMuMSw4LDAsMTEuMWwtMjUuOCwyNS4yYy0xLjYsMS41LTQuMSwxLjUtNS43LDAKCWwtMTAuNC0xMC4yYy00My43LTQyLjgtMTE0LjUtNDIuOC0xNTguMiwwbC0xMS4xLDEwLjljLTEuNiwxLjUtNC4xLDEuNS01LjcsMGwtMjUuOC0yNS4yYy0zLjEtMy4xLTMuMS04LDAtMTEuMUwxMjYuNiwxNjh6CgkgTTQwNi43LDIyMC4ybDIyLjksMjIuNWMzLjEsMy4xLDMuMSw4LDAsMTEuMUwzMjYuMiwzNTUuMWMtMy4xLDMuMS04LjIsMy4xLTExLjMsMGwtNzMuNC03MS45Yy0wLjgtMC44LTIuMS0wLjgtMi44LDBsLTczLjQsNzEuOQoJYy0zLjEsMy4xLTguMiwzLjEtMTEuMywwTDUwLjMsMjUzLjhjLTMuMS0zLjEtMy4xLTgsMC0xMS4xbDIyLjktMjIuNWMzLjEtMy4xLDguMi0zLjEsMTEuMywwbDczLjQsNzEuOWMwLjgsMC44LDIuMSwwLjgsMi44LDAKCWw3My40LTcxLjljMy4xLTMuMSw4LjItMy4xLDExLjMsMGw3My40LDcxLjljMC44LDAuOCwyLjEsMC44LDIuOCwwbDczLjQtNzEuOUMzOTguNSwyMTcuMSw0MDMuNiwyMTcuMSw0MDYuNywyMjAuMkw0MDYuNywyMjAuMnoiLz4KPC9zdmc+Cg==\";\n\nexport const WALLET_CONNECT: WalletProvider = {\n id: PROVIDER_ID.WALLET_CONNECT,\n name: \"Wallet Connect\",\n icon,\n isWalletConnect: true,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport { PERA_WALLET } from \"./perawallet\";\nimport { MYALGO_WALLET } from \"./myalgowallet\";\nimport { ALGO_SIGNER } from \"./algosigner\";\nimport { DEFLY } from \"./defly\";\nimport { EXODUS } from \"./exodus\";\nimport { KMD_WALLET } from \"./kmd\";\nimport { WALLET_CONNECT } from \"./walletconnect\";\n\nexport const providers = {\n [PROVIDER_ID.PERA_WALLET]: PERA_WALLET,\n [PROVIDER_ID.MYALGO_WALLET]: MYALGO_WALLET,\n [PROVIDER_ID.DEFLY]: DEFLY,\n [PROVIDER_ID.ALGO_SIGNER]: ALGO_SIGNER,\n [PROVIDER_ID.EXODUS]: EXODUS,\n [PROVIDER_ID.KMD_WALLET]: KMD_WALLET,\n [PROVIDER_ID.WALLET_CONNECT]: WALLET_CONNECT,\n};\n","export const audio = `data:audio/mp3;base64,SUQzBAAAAAIYBlRJVDIAAAAWAAAAMzAgU2Vjb25kcyBvZiBTaWxlbmNlVFBFMQAAABIAAABBbmFyIFNvZnR3YXJlIExMQ1RBTEIAAAAMAAAAQmxhbmsgQXVkaW9BUElDAAIPAgAAAGltYWdlL2pwZWcAAwCJUE5HDQoaCgAAAA1JSERSAAAEOAAABDgIBgAAAOwQbI8AAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACD0AAAg9AQWVVbYAAAAHdElNRQffCgsFHDEDbwR2AAAgAElEQVR42uzde5RVZd0H8N8wDDcBAS8o6oCJVyxTsDSxojJvgVYq3jVNUQgzaZWmpqh56+ItNa+kr4Cay9Q0DQ1DWb2WeSm8pGRy0RAEgRFhuIzz/tFbC5yZc86eOWfmPDOfz1rvemvvZz9779+zz3DOt2fvXRER9QEAAACQsE5KAAAAAKROwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8BBq9pss81i4sSJMXToUMUAAACgaCoiol4ZaA177rln3HzzzdG/f/+oqamJww8/PGbNmqUwAAAAtJgZHLSKk046Ke67777o379/RET07t07pk6dGtXV1YoDAABAi5nBQcmde+65MW7cuEbXvfjii3HIIYfE2rVrFQoAAIBmq4yIC5WBUqioqIgf/ehHceqppzbZZosttohevXrFk08+qWAAAAA0/zdomMFBCVRWVsZPfvKTGD16dEHtjzrqqJgxY4bCAQAA0CwCDoquU6dOccMNN8SoUaMK3mbOnDkxYsSIWL16tQICAACQmVtUKLoLL7wwjj766Ezb9OnTJz788MP44x//qIAAAABkZgYHRXXyySfHxRdf3Kxt16xZEyNGjIg333xTIQEAAMjEa2Ipmv333z8mTpzY7O27dOnSou0BAADouMzgoCh23333uO+++6J79+4t7utLX/pSvPLKK4oKAABAwczgoMW22mqruOOOO4oSbkREjBs3TlEBAADIxAwOWqRTp05x3333xV577VW0Puvq6uIzn/lMzJ8/X4EBAAAo7PepEtASp59+elHDjYiIysrKOO200xQXAACAgpnBQbPtuuuu8cgjj0RVVVXR+66trY0999wzlixZotAAAADkZQYHzdKtW7e4/vrrSxJu/Kf/r3/96woNAABAQQQcNMv5558f22+/fUn3MWrUKIUGAACgIAIOMvvCF74Q3/jGN0q+nz322COqq6sVHAAAgLwEHGRSVVUVl156adH7Xbp0aaPLzeIAAACgEAIOMjn22GOLPqvimWeeic997nOxaNGiBusOOeQQRQcAACAvAQcF69GjR5x55plF7fOhhx6KI488MhYvXhxTp05tsH7IkCGx3XbbKT4AAAA5CTgo2De/+c3YbLPNitbfM888E+PGjYs1a9ZERMTkyZOjvr7hW4vN4gAAACAfAQcF6dOnT4wdO7Zo/S1dujTGjh0bdXV1/1321ltvxaxZsxq0HTFihAEAAAAgJwEHBfnWt74VvXv3Llp/Z555ZrzzzjsNlj/++OMNln3iE5+Irl27GgQAAACaJOAgr/79+8dJJ51UtP5uu+22RoOMiIhp06Y1WFZVVRWf+MQnDAQAAABNEnCQ19ixY6Nbt25F6evdd9+Nyy+/vMn1s2bNanRmx5577mkgAAAAaJKAg9wXSKdOMWrUqKL199Of/jQ++OCDnG0am90h4AAAACDn71clIJe99tor+vfvX5S+3njjjZgyZUredo0FHMOGDTMYAAAANEnAQU4jR44sWl8/+tGPYt26dXnbPf3007Fq1aoNlm2yySax7bbbGhAAAAAaJeCgSZWVlXHwwQcXpa9nn302HnvssYLarl69Ol588cUGyz/1qU8ZFAAAABol4KBJe++9d2y66aZF6euiiy7K1P6VV15psGyPPfYwKAAAADRKwEGTDjnkkKL088gjj8Rzzz2XaZuXX365wbKBAwcaFAAAABol4KBRnTt3joMOOqjF/axbty4uvfTSzNs1NoNjq622MjAAAAA0SsBBo/bZZ5/o27dvi/v5n//5n3jzzTczb/faa69FfX39BssGDBhgYAAAAGiUgINGFeOBnitWrIirrrqqWduuXr063n///Q2Wde/evSihCwAAAO2PgING7brrri3u46abborFixc3e/ulS5c2WOY2FQAAABoj4KBRQ4YMadH2a9eujV/+8pct6mPZsmUNlrlNBQAAgMYIOGigT58+LQ4SHnrooViyZEmL+mgs4DCDAwAAgMYIOGhg8ODBLe6jpbM3IiI++OCDBssEHAAAADRGwEED/fr1a9H2s2bNiueee67Fx9HYA0UFHAAAADRGwEEDLX1TyaRJk4pyHJtvvnmDZZ7BAQAAQGMEHDTQkhkcy5YtiwceeKAox7HZZps1WNazZ08DBAAAQAMCDhro06dPs7e9++67o7a2tsXH0KVLl+jdu3eD5Z07dzZAAAAANCDgoIHKyspmbVdfXx933nlnUY5hu+22K+qxAQAA0L4JOGhg5cqVzdpu+vTpMWfOnKIcw/7779/ocgEHAAAAjRFw0EBzA45ivBr2Pw488MBGl7tFBQAAgMYIOGjggw8+yLzN3Llz48knnyzK/rfaaqv4+Mc/3ug6AQcAAACNEXDQQHNmcEyePDk+/PDDouz/oIMOanKdW1QAAABojICDBpoTcDz22GNF2XePHj1i7NixTa4XcAAAANAYAQcNZL1FZc6cOfGPf/yjKPseP3589O/fv8n1Ag4AAAAaI+CggawzOKZNm1aU/W699dZx2mmn5WzjGRwAAAA0RsBBA1lncDz++ONF2e95550XXbt2zdmmWM/5AAAAoH0RcNBAlhkcNTU18ac//anF+9xzzz1j1KhRedstWrTIAAEAANCAgIMG3nnnnaivry+o7fTp02PdunUt2l9FRUVMnDixoLb/+te/DBAAAAANCDhoYPXq1bFw4cKC2hbj+RuHHXZYfPKTnyyo7YIFCwwQAAAADQg4aNScOXPytlm3bl1Mnz69Rfvp0aNH/OAHPyi4vYADAACAxgg4aNTcuXPztvnzn/8cNTU1LdrPuHHjcr4W9qMEHAAAADRGwEGjCgk4Xn/99RbtY6uttorTTz890zaewQEAAEBjBBw0qpBbVJYvX96ifVx55ZXRrVu3TNuYwQEAAEBjBBw0at68eXnbtCTgOO6442LEiBGZtxNwAAAA0JjOSkBjCpnBsWzZsmb1PXDgwLjgggsyb7dmzZp47733DA4AANCqKioqmr0sa9tCt1+3bl18+OGHBmc9Ao717LTTTrHjjju2yoVbqu1b+mFaf3ltbW3OW0h233336Ny5c6Z9VVRUxJgxY6JHjx6Zx2fBggVx4oknluRcy2Vcy+EPain2laVdSuea0nWVyjXoXNvn562tx6pcz7UUY9Xevos4V99FfBfxXaRcPgPl6OSTT45HH33UD/n1xzQi6pXh3yZMmBATJkxQCAAAAMraKaecEo888ohCrMcMjiJZvHhxo7ds1Nc3nh9lWZ61j6Zk7bu6ujp69+7dZH8LFiyIxYsXF3yM3bp1ix122KHZSens2bPj/fffb9b5t8U4pDDG5VyTVMcy6z6LcZ4pjHG51NvnNYyxz6ux7EDfF4yxsWwP36E68vf7Aw44IMaNG9fk+k6dPFJTwFEi1113Xdxyyy3t6py+973vxZlnntnk+nvvvTeuuOKKgvqqqqqK3/72t80ON9asWRNf/vKXY/Xq1S42AACg3dtpp51yrk/9FptSEPnQpL/97W851/fp06fgvs4666wYMmRIs4/lL3/5i3ADAADoMPI9QNQMjkZqogQ0ZdasWTnX9+3bt6B+9thjj/jWt77VomP54x//aEAAAIAOQ8CRnYrQpLfffjvna1kLmcHRrVu3uPbaa6OysrJFxzJz5kwDAgAAdBj5ntch4GikJkpALrlmcVRXV+fd/rzzzouPfexjLTqGVatWxQsvvGAwAACADsMMjuxUhJxyPYejuro6unbt2uT64cOHxze+8Y0WH8PMmTNj7dq1BgMAAOgw8s3g8JDRhgQc5JQr4OjUqVOTszM22WSTuOaaa4ryobvzzjsNBAAA0KHkm8HR0scAtEcCDnLK96DR7bffvtEP2o033hhbbrlli/c/Z86cmD59uoEAAAA6FLeoZKci5DRv3rxYvnx5k+sbCzjOOeecGD58eFH2f8cdd+SdmgUAANDeeMhodipCXrlmcXw04Dj44INj7NixRdnvqlWrYurUqQYAAADocMzgyE5FyCvXczjWDzgGDx4cV111VdH2e//990dNTY0BAAAAOpx8AYeHjDbUWQnIJ1fAsd1220VlZWV07949br/99ujZs2fR9jtp0iTFBwAAOiQzOLJTEfLKFXB06dIlqqur46qrrorBgwcXbZ9/+tOf4pVXXlF8AACgQxJwZKci5DV37tyct4pcfvnlcfDBBxd1nzfeeKPCAwAAHZaHjGanIhT0wXrppZeaXL/vvvsWdX9PPfVUTJs2TeEBAIAO/Tss5495AUfDmigBhch1m0oxrVu3Ls4//3wFBwAAOjS3qGSnIhQk16tii+n222+P2bNnKzgAANChCTiyUxEK0hozOBYvXhw/+9nPFBsAAOjwBBzZqQgFefPNN2PFihUl3cell16a82GmAAAAHYWAIzsVoeAP18svv1yy/l988cW45557FBoAACA8ZLQ5VISCvfLKKyX74J533nl5P8AAAAAdRb4ZHBUVFYr0EQIOCjJkyJA47LDDStL3TTfdFM8//7wiAwAA/D+3qGSnIuQ1aNCgmDJlSvTq1avofb/44otx2WWXKTIAAMB6BBzZqQg59e/fP+65557YbLPNit73+++/H6effnqsXbtWoQEAANYj4MhORWjSxhtvHFOnTo1tttmmJP1/73vfi7lz5yo0AABA1h/zAo6GNVECGtO9e/e46667YqeddipJ/1OnTo0HH3xQoQEAABphBkd2KkIDVVVVceutt8bQoUNL0v/rr78e5513nkIDAAA0QcCRnYqwgYqKirjmmmtixIgRJel/9erVcdppp8WqVasUGwAAoAkCjuxUhA1ccsklceihh5as/3PPPTf+/ve/KzQAAEAOAo7sOisBEf+euXHppZfGCSecULJ93HjjjTFlyhTFBgAAyCNfwFFRUaFIHyHgIDp16hQ//elPY/To0SXbxyOPPBKXXHKJYgMAABSgvr4+7+84NiTg6OgXQOfOce2115b0tpTnn38+xo8fn/cDCgAAwL+5RaUZv2+VoOOqqqqKG2+8MQ466KCS7WPevHlx4oknRm1trYIDAABlpbHbPJq69aNYywtt27lz7p/rAo6GBBxFMmzYsFi9enWbfwgKXV5VVRWjR4+OHXbYoWQ1qa2tjYcffjgOP/zwZp9j1vMs5R+jch3LcqxJKc+znGpVLv9QpjrGqX5e29sY+7waS2NsjP0b4zthR/hO2B4JOAQcJTNy5MgYOXKkQqynW7duMXbsWIUAAAAoMgFHQwKOIlm8eHEsW7aswfLGnjvR1LMoWtq2Keu3raioiIEDB0aPHj1KWo958+bF0qVLS16HLLVpzbEo13Mrh/PNcm6pjaVza/3jNZbOrb2dm3/v2te5+Qym9z3FZ9C5ldP3lL59+8a9994r4BBwtL7rrrsubrnllrI+xt69e8eUKVNKHm5ERBx88MGxZMkSFwYAAEAzbLLJJjnXCzgaqYkSdAz9+vWL++67L/bYY49W2V9r7QcAAKA98haV7FSkA+jdu3fce++9seuuu7baPocPH67wAAAAzSTgyE5F2rlu3brFHXfcEbvsskur7lfAAQAA0Hz5ni3Skd4YUygBRzvWuXPnuOmmm+LTn/50q+97p512ik033dQgAAAANIMZHNmpSDtVUVERP/vZz2K//fZrs/2bxQEAANA8Ao7sVKSduvDCC+Owww4r6T5mzpwZNTU1Ta7fd999DQQAAEAzCDiyU5F2aPz48XHKKaeUdB/PPfdcnHjiifHXv/61yTYCDgAAgObJF3BUVlYq0kcIONqZL37xi3H22WeXdB+vvvpqHHvssbFy5cp4/vnnm2y39dZbx6BBgwwKAABARh4ymp2Aox0ZOHBg/PznPy/phT537tw4+uijY/ny5RER8cILL+Rs7zkcAAAA2blFJTsVaSe6desWt956a2y88cYl28eiRYviqKOOioULF/53Wb6Aw20qAAAA2Qk4slORduLyyy+PIUOGlKz/mpqaOOqoo2LOnDkbLH/33XfjrbfeanK7ffbZx9QpAACAjPLdoiLgaKQmSpC+448/Po444oiS9V9bWxvHH398vPrqq42uzzWLo1+/fiUNXgAAANqrXLM4BByN1EQJ0rbHHnvExRdfXLL+161bF6eeemr8+c9/brKN21QAAACKL1fAYaZ8QwKOhHXp0iWuvfbaqKqqKkn/9fX1ceaZZ8YTTzyRs12uN6lEeNAoAABAc3+TNflj3gyOhjVRgnSNHz8+Pvaxj5Ws/x/+8Idx//335203a9asWLduXZPr99prr5KFMAAAAO1VXV1d0z/mBRwNa6IEadp2221j/PjxJev/5z//edx2220FtV21alW89tprTa7v3r17DB061KABAABkkOsWlcrKSgX6CAFHoq644oro0qVLSfr+/e9/H5dffnmmbfLdpuI5HAAAANl4Bkc2nZUgPV/72tdK9lyLN998M8aNG5f3ncsf9fzzz8dxxx3X5Prhw4fHj3/844iI2GSTTWLPPfeMXXbZJfr16xd9+/bd4P/36dMnVq5cGUuWLInFixfH4sWL//uf586dGzNmzIhly5a5EAAAgHbNW1SyEXAkpnfv3nHhhReWpO8PPvggvvGNb0RNTU3mbV988cWc63fbbbf42c9+Fp/61KcKem5Iz549Y/PNN290XV1dXTz77LPx+OOPx7Rp0+KNN95wYQAAAO2Oh4xmI+BIzLnnnhubbrppST44Z5xxRrz++uvN2n727NmxYsWK6NmzZ6Pru3TpEkceeWRRjrWysjL22muv2GuvveL888+PN998Mx577LG4+eabY+HChS4SAACgXTCDIxsVScigQYPimGOOKUnf11xzTTz66KMt+uDlm8VRKttuu22cfvrpMXPmzBg/fnzJnk0CAADQmgQc2ahIQk455ZSSXMRPPPFE/OQnP2n29hUVFXHEEUfE4MGD27Q+G220UZxzzjkxY8aMOPDAA10wAABA0gQc2ahIIjbeeOMYPXp00ft9880341vf+lbmh4r+xy677BIPPvhgXH311bHFFluURa0GDhwYt912W9x7772x8847u3gAAIAkeYtKNgKORBx33HHRo0ePon9YzjjjjGY9VLRXr15x8cUXx+9+97sYNmxYWdZs+PDh8dhjj8URRxzhAgIAAJLjIaPZqEgCqqqq4uSTTy56vzfffHM899xzmbf76le/Gk8//XScfPLJUVlZWfa1u/rqq2PChAkuJAAAICluUclGRRJwyCGHRP/+/Yva5z//+c+48sorM21TWVkZl156aVx//fVNvsK1XE2YMCGuuuqqqKqqckEBAABJyBVwlPv/2NwWBBwJGDNmTNE/JN/5zneitra24G169+4dd911V5x44onJ1nH06NFx1113Ra9evVxUAABA2fMMjmwEHGVu+PDhMWTIkKL2efvtt8ezzz5bcPuBAwfGb37zm/jc5z6XfD333XffeOCBB4o+IwYAAKDY3KKSjYqUua9+9atF7W/OnDlx2WWXFdz+05/+dDzyyCOx/fbbt5ua7rzzzvHLX/4yunXr5gIDAADKloeMZtNZCcpbsWdNfPe7341Vq1YV1PaTn/xkTJ06tV0GAbvttltcddVVcfrpp7vIAICSa2oqeTGWZ52mXoy+2+J8inGe5XTcxTjPFI67PV2zbTGWuZ4hKOAQcJTMgQceGNtss01RPwQbb7xxDBgwoGjHOH/+/Bg1alSMGjUq77H07NkzDjjggHY9y+GQQw6JwYMHx9///vd2/Y9WOf3x949W+/likuoXLWNsjP0w8m9MW/2NACg2AUcjf5cjojspCGQAACAASURBVF4Z/m3ChAleJwoAAEDZW7hwYey+++4KsR4zOIrk1Vdfjblz5zZY3tg9U03dR/XR5cOGDSvawzDnz58fL7zwQt5jiPj3cze22GKLDjN2a9eujccffzyWLVtWlHErZdumlOIYWvt8s9SgXMfHuXXMczOWzs25Ff/flfb8GfT3xbm5Tp1blrZPPPFEbLfddo22N4NDwFEyd999d9xyyy1F66+qqipeeeWVov2AP/zww2PevHl5206cOLFDhRv/qfWuu+4aX/jCF2LlypUuZgAAoCzU1dU1uU7A0UhNlKA8DR06NDbaaKOi9HXXXXcVFG7svffeccopp3TIeldXV8cZZ5zhwgMAAMpGrtfEVlZWKtBHCDjK1Gc/+9mi9LNy5cq4+uqr818InTrFxIkTO3TNTzvttBg0aJCLDwAAKAteE5uNipSpYr0e9t5774133303b7vRo0fHrrvu2qFr3qVLlw4f8gAAAOUj1wwOb3JqSMBRpnbaaaei9DN58uS8bXr27Blnn322okfEfvvtF1/84hcVAgAAaHO5Ag4zOBqpiRKUn169ekX37t1b3M9f//rXePnll/O2+/a3vx2bbbaZwv+/iy66KKqqqhQCAABoUwKObFSkDG2++eZF6WfKlCl522y55ZYd9sGiTdl2223j1FNPVQgAAKBNCTiy8ZrYMtS/f/8W97Fy5cr49a9/nbfdqFGjokuXLm1ynq+++mrceuutUV1dHQMHDozq6uqorq6OTTfdtM3HYMyYMXHzzTfH2rVrXZAAAECbEHBkI+AoQ8W4XeShhx6KFStW5G138MEHF/346+rq4sknn4y+ffvG0KFDm2zXp0+fmDp1aoPlgwYNimOOOSZGjx7dZmHHpptuGgcccED85je/cUECAABtItdbVDxktCGRTxkqxgyOQn6Y9+/fP2cAkdW8efPiyiuvjD333DOOP/74eOyxx3K233LLLaNnz54Nls+ZMyd+9KMfxdChQ+PUU0+Np556KucHu1SOO+44FyMAANBmzODIRkXKUEufwbF27dp45pln8rY76KCDipL6zZo1K4488sjYe++94+qrr4533nknIiJef/31vNvusMMOOc/j4YcfjiOPPDI+85nPxOOPP96q47DPPvvEoEGDXJAAAECbEHBkoyJlqKUBx1/+8pdYtWpV3nYHHnhgi/ZTU1MT5557bhx00EGNzrJ47bXX8vax/fbbF7SvuXPnxoknnhgTJ05stediVFRUxLHHHuuCBAAA2kSugCNCyNGgHkpQflp6i8rTTz+dt02/fv1i7733bvY+fv/738dnP/vZmDRpUtTV1TXaZv78+bFy5cqc/eSawfFR9fX1cdNNN8UhhxwS8+bNa5WxGD16tFfGAgAAbULAkY1qlKGWzuAoJODYb7/9orKysln9X3vttXHCCSfEokWLcrarr6+P2bNn52yTJeD4jxdffDG+/OUvt8oDQDfZZJM44IADXJQAAECry/csQg8a3ZCAo515//3348UXX8zbbtttt83c99q1a2PMmDFx+eWX500S/yPfbSrNCTgi/n17zJgxY+Luu+8ueU332WcfFxYAANDqzODIRjXK0OLFi5u97d///vcmbxlZX9++fTP3feGFF2aeNZHvQaNbb7119OjRo9nne/bZZ8dzzz1X0vHYY489XJQAAECrE3BkoxplaMmSJc3e9o033iioXZ8+fTL1e++998akSZMyH0++GRwVFRUxePDgZp/vmjVr4pvf/GYsXLiwZOOx0047Rffu3V2YAABAqxJwZKMaZaglAcc//vGPgtplmcHxt7/9Lb7//e8363gKeZNKc29T+Y+FCxfGySefHGvWrCnJeHTu3Dl22203FyYAANCqBBzZqEYZasktKsUOOJYsWRInn3xyrF69ulnH8/bbb8cHH3yQs01LA46IiOeff77ZIUwh3KYCAAC0Ng8ZzUbAUYbK6RaVCRMmxNtvv92iD2S+53AUI+CIiLjnnnvi97//fUnGRMABAAC0tnwBR3PfjNleCTjKUHNncHz44Ycxd+7cgtr27t07b5t58+bF448/3uLzKdWbVBpz0003lWRMdt99dxcmAADQqtyiko1qlKH58+c3a7sVK1bEunXrCmq7dOnSvG2mTJmSNzEsRL6Ao7q6Orp27VqU2s2cOTNefvnloo9J1oeyAgAAtJSAIxvVKEMvv/xyQQHERy1btqzgtvPmzcu5ft26dXHPPfcU5XzyBRydOnWK7bbbrmj1K8Usji5durgwAQCAViXgyEY1yvQifvrppzNvt3z58oLb5psl8sQTTxTt1aut8SaV9T344IPxzjvvFHVMKisr3d8GAAC0Kg8ZzUbAUaZmzJiReZssAUe+Z3X89re/Ldq5LFiwIN5///2cbYoZcKxduzZuu+22oo+JWRwAAEBrMoMjG9UoU80JOIp5i8qCBQuKej6t9SaV/5g8eXJRnh+yPgEHAADQmgQc2ahGmfrXv/4Vs2fPzrRNXV1dwW3z3aJS7Fs85syZk3N9MZ/BEfHvsKclr7dtTLEehAoAAFAIAUc2qlHGss7i6NevX8FtZ8+enfONK4sWLSrqueS7JWabbbYpev0KefZHpg+LPx4AAEArEnBk/M2mBOXrySefzNQ+S8BRU1MTzzzzTKPrVq1alfeZGVnluyWmR48esckmmxR1n8UMONatWxeLFy92UQIAAK3GQ0azEXCUsaeeeirTbRZZAo6IiGnTprXahyTfDI6I4s/iyPfcjyzeeuutnDNeAAAAii3fDA5vetyQgKOM1dXVxR133FFw+6wzIJoKOLp16xabbbZZUc+lkICjurq6qPss5gyOfM8QAQAAKDa3qGTTWQnK25QpU+K73/1uQW/w6NKlS2y00UbxwQcfFNT3vHnz4tVXX42dd965wbptttkm3n333aKdx8KFC2PNmjU5z2Prrbcuau1mz54d9fX1RZmR8uabb7oYAYAWaew7SVPfU4q1vFR9l/K4i3GOKZ9Pa49lW12brtnC2vfp00fAIeBofQceeGCjt1gU4wMzb968GDx4cEHHcfXVVzf5rIjG+m7qtouzzz670VkLLTmf2tranAHHkUceGdtvv31RvySsXLkyNtpooxaP79ChQ+P6669P8o95Of2R78hfQFI+n478BcQY+5Lph1HH+jem1NcVQLH5O/SRekREvTL824QJE2LChAkKAQAAQNnbb7/94uWXX1aI/2cGR5G89NJL8cYbbzRY3thTb5t6Em6utiNGjCjoIaJLliyJ6dOnZzqGvfbaKwYOHLjB+qVLl/73GR3NOd7Glu+5556xww47NHnsNTU18dBDDxWtZhERhx12WPTs2bPF43vPPffEihUrilKH1mrblHI93izbZ6lBSufr3NI9t/b6Gcxybq5T5+bc0vn7Yiydm3Nr23PLsv1ll10WJ5xwQpPH4hYVAUdJ/OpXv4pbbrmlZP1/9atfbfIWifX17ds3Lrjggli2bFnBfe+4444xffr0DaY39e3bN3784x/Hv/71r6Kdw5gxY+KCCy5ocn3Xrl3j+9//fqY/LvmMHDmyxQHH66+/Ht/5zndc5AAAQKvykNFsVCMRDz74YLz66qv5B7RTp/jsZz+bqe/XXnstHnvssQbL999//6KeQ743qXTt2jU233zzou6zR48eLe5jxowZLkAAAKDV5fsffwUcH6mHEqThww8/jIsvvrigtiNGjMjc/9VXX91g2UknnVTU9yoX8qrYYr5JZcCAAdG9e/cW9yPgAAAA2kJdXV3uH/QCjg3roQTp+MMf/hBPPfVU3nb77bdf5h/2s2bNismTJ2+wbLvttotDDz20aMc/f/78vG2qq6uLtr/dd9+9xX2sWbMm/vd//9fFBwAAtDq3qGSjGom56KKL8l7k/fr1i+OPP75Zfb/99tsbLPv+979f0MNNC7FixYpYsmRJzjblFnD8+c9/jlWrVrnwAACAVifgyEY1EvPKK6/Efffdl7fd6aefHt26dcvU9/vvvx/f/e53N1i29dZbxxlnnFG04583b17O9dtss03R9lWMgOP+++930QEAAG3CMziyUY0EXXHFFVFbW5uzzeabbx7HHnts5r5nzJgRt99++wbLli5dWrRjzxdwFGsGR/fu3WO33XZrUR+LFy8WcAAAAG3GMziyUY0ELViwIK677rq87caNGxddu3bN3P8Pf/jDuOeee/773996662iHXu+B40W6yGjX/nKV1r8BpU77rgj1qxZ44IDAADaRL5bVCoqKhRpPQKORF133XXxt7/9LWeb/v37xzHHHNOsD9GECRNi0qRJsWbNmgbP5WiJfAHHVlttVZQU8sgjj2zR9mvWrIk777zThQYAALQZz+DIRjUStW7duvj2t7+dd4bB+PHjY+ONN27WB+ncc8+NIUOGxAsvvFC04853i0pVVVVsscUWLdrHoEGDYq+99mpRH7/+9a/j3XffdaEBAABtRsCRjWok7LXXXosrr7wyZ5v+/fvH1Vdf3ex9fPDBB7F69eqiHXO+GRwRLX8Ox+jRo1s0VWvt2rVxww03uMAAAIA2JeDIRjUS94tf/CL+8pe/5Gyz//77x6mnnloWx7tgwYJYu3ZtzjYteZNKr169mnVbzvp+/vOfx+zZs11cAABAmxJwZKMa7eCCP+OMM2LVqlU525177rlFeW1qS9XV1eV9pkdLZnBMmDAhNt1002ZvP3v27BbNeAEAACjm772cP+gFHBvWQwnSN2fOnDj//PNztqmqqopf/OIX0bt37zY/3nzP4Wjum1R23HHHOOmkk1r0x+Oss87KO8MEAACgNXhNbDaq0U5MmTIlJk+enLPNNttsUxazE/I9h2PAgAHN6vfiiy+Ozp07N/u4Jk2aFM8995yLCQAAKAv19fW5f9ALODashxK0Hz/4wQ/i+eefz9nmgAMOiEsuuaRNPwj5Ao7m3GIycuTIGD58eLOP6aWXXorLLrvMRQQAAJQNt6hkoxrtyNq1a+Ob3/xm3tebnnTSSXHjjTdGly5d2uQ4892istlmm2Xqb8cdd8z7Nplc5syZE8ccc0ysXLnSRQQAAJQNt6hkoxrtzDvvvBNjxoyJdevW5Ww3cuTImDp1aps8kyPfDI5+/foV/EHdaqutYurUqbHxxhs361gWLlwYRx55ZN5QCAAAoLXlm8FRUVGhSOsRcLRDzzzzTJxzzjl579fae++949e//nVsscUWrXp8+QKOTp06Rb9+/fL207dv35g6dWqzj7+mpiaOPvrovDNKAAAA2oJncGSjGu3U5MmT49xzz83bbuedd46HH344dthhh1Y7tpqamli+fHnONvluU+nevXvceeedMXjw4GYdw4oVK+KEE06IV1991cUCAACUJc/gyEY12rFf/vKXBYUcAwYMiN/85jcxZsyYqKqqapVja8mDRgcMGBBTpkyJoUOHNmvfc+bMia985Svxpz/9yUUCAACULc/gyEY12rlJkyYVFHL06tUrLrjggpgxY0bsv//+JT+ufAFHUzM4Dj300Jg+fXp8+tOfbtZ+Z8yYEQceeGC8/vrrLg4AAKCsmcGRjWp0AJMmTYrzzjuvoLaDBg2KSZMmxa9+9avYZZddSnZM8+fPz7n+ozM4evfuHTfccEPccMMNzX4w6k033RTHHnts3ttjAAAAyoGAIxvV6CBuv/32OP/88wtuv88++8S0adPiJz/5SebXthYiywyOz3/+8/Hkk0/GoYce2qx91dTUxPjx42PixIl5p3gBAACUCwFHNp2VoOO47bbboqKiIi666KKC2nfq1CmOPvro+PrXvx5PPfVU/O53v4snnngiFi1a1OJjyRdwDB48OE477bQ46qijYvvtt2/2fh544IG48MILi3LMAAAArUnAkY2Ao4O59dZb4/3334+LLrooevXqVdA2Xbt2jf322y/222+/qK+vj+effz6mTZsW06ZNi9dee61Zx/Huu+/mXL///vu36Fkg//znP+Pss8+OmTNnGnQAACBJAo5sBBwd0D333BNPPfVUXHHFFfGlL30p07YVFRUxdOjQGDp0aJxzzjkxZ86cePzxx+Oll16KOXPmxNy5c/POlqisrIyuXbuW5NxWr14d1157bVx//fWxZs0agw0AACRLwJGNgKODWrBgQRx//PHxta99Lb73ve9FdXV1s/oZNGhQnHLKKRssW7lyZSxYsCBWrVoVq1evjtra2qitrY2qqqqorq6Orbbaquivo62trY2pU6fGjTfeGG+99ZYBBgAAkpcv4KioqFCk9Qg4Orj7778/HnzwwRg5cmSMGzcuhgwZ0uI+e/ToEdttt12rHH9NTU1MmjQpbr311liyZIkBBQAA2g0zOLIRcBB1dXXxwAMPxAMPPBCf//zn49RTT43hw4dH587le3ksXLgwbrnllrjzzjtjxYoVBhEAAGh3BBzZCDjYwB/+8If4wx/+EP369YsDDzwwRo4cGZ/5zGfKIuxYsWJFTJ8+PR599NF49NFHPWMDAABo1+rq6nKuF3BsSMBBo957772YPHlyTJ48+b9hx7777hvDhg2LAQMGtNpxLFq0KH73u9/FY489FjNnzoy1a9caHAAAoEMwgyMbAQd5rR92RERsscUWMWzYsBg6dGgMGzYshgwZEt26dSv6fi+++OL4xS9+EfX19QYBAADocPL9FhJwbEjAQWbvvPNOPPzww/Hwww//d1m/fv1iyy23jAEDBsSWW2753//cs2fPqKura/T/dtxxxxg2bFiT+6mtrRVuAAAAJdPUW0iKsTzrG04aa58vwBBwbEjAUSTDhg2L1atXl+wDUy4fxkKXL1++PJYvX56z74033jjn+X3pS1+K7t27t+pxt0bfWcYzhfNp7Wu21Mddqn+cjHFFkrXqKGPs75K/S8bY3yV/l/xd6gjXbHsk4BBwlMTIkSNj5MiRClFEI0aMiBEjRigEAABAIwQcGxJwrOe9996Lf/zjHw2WN3WbRKmXN6WU+23Nc91oo41ixx13bPI8Fy1aFPPnz2/XNWjr8W6rGjjXtrvOSlmDFM5VDYx3RzvXrDVwrmmfqxpkP1/n6lxTP9e3337bD/n1VESEhxzQJgYNGhR//OMfm1x/9913x1lnnaVQAAAA5GU+C23mvffey7m+R48eigQAAEBBBBy0mdra2pzrBRwAAAAUSsBBm1m7dm3O9RtttJEiAQAAUBABB22mvr4+1qxZ0+R6MzgAAAAolICDNrV69eom15nBAQAAQKEEHLQpAQcAAADFIOCgTeW6RUXAAQAAQKEEHLSpXDM4unfvrkAAAAAURMBBm8oVcFRVVUVVVZUiAQAAkFdnJWg/qqqqYtddd43dd989Pv7xj0fv3r2jS5cu0bVr16ipqYm5c+fGvHnz4tlnn41XXnmlLI45V8AREdGlS5e8r5MFAAAAAUc7MHjw4DjttNPi61//enTt2rWgbf75z3/GAw88ELfcckssX768zY491zM4IiJqa2sNMAAAAHm5RSVhW2yxRdx+++0xY8aMOProowsONyIiPvaxj8VZZ50VM2fOjMMPP7zNziHXDI41a9ZEXV2dgQYAACAvAUeiRowYEU888UQccMABUVFR0ex+Ntlkk7jmmmvimmuuiU6dyutyWLVqlYEGAACgIAKOBI0dOzbuuuuu6NevX9H6PPzww+PKK69sUVjSHLleBbty5UqDDQAAQEEEHIk56qij4rzzzitJEHH00UfH2LFjW/V8cgUcZnAAAABQKAFHQr74xS/GlVdeWdJ9nHXWWbH11lu32jn17NmzyXVmcAAAAFAoAUcievbsGT/96U+jsrKypPvp3r17XHLJJa12Xm5RAQAAoBgEHIn49re/HZtvvnmr7OvLX/5yDBw4sFX21aNHjybXuUUFAACAQgk4ErDNNtvEqaee2qr7HDVqVMn30aVLl6iqqmpy/dKlSw0+AAAABRFwJOCII47IGQSUwqGHHlryfeS6PSUi4qWXXjL4AADwf+zdeXhMd+P//1f22GKJiF2C1tIWraq2WrUvtfZjj12LotRVRdHiptaitZYbdaulqpSb2vfW3hu1b7VUbRFBIiURSX5/+JmvMUtmkpmYw/NxXb0q5z1zzplzzsw553XeCwCHEHAYQEaEDY8rVaqUQkJC3LoMex2MStLBgwfZ+QAAAAAAhxBweLgXXnhBxYoVeyLLLlGihFvnby/gSElJ0eHDhzkAAAAAAAAOIeDwcOXLl39iy3Z3wGGvI9Pz588rNjaWAwAAAAAA4BACDg8XHh7+xJZdsmRJt86/VKlSNstongIAAAAAcAYBh4crWrToE1t2tmzZ3Dp/ewEKAQcAAAAAwBkEHB7O3R192hMXF+fW+ZcuXdpm2YEDB9j5AAAAAACHEXB4OHeHDPbcvn3bbfMOCAhQWFiY1bLo6Gjt27ePnQ8AAAAAcBgBh4d7kh1tujNcef755+Xj42O1bM2aNUpKSmLnAwAAAAAcRsDh4dxZiyI1x44dc9u87XUw+ssvv7DjAQAAAABOIeDwcIcPH34iy7179662bNnitvmXKVPG6vSbN29q586d7HgAAAAAgFMIODzctm3bnshyN2/erPj4eLfM29fXVw0aNLBatnbtWt2/f58dDwAAAABwCgGHhztz5owuXryY4ctdsWKF2+Zds2ZNm6PD0DwFAAAAAJAWBBwGsHnz5gxd3pEjR7Rq1Sq3zb9Vq1ZWp8fExGj79u3scAAAAACA0wg4DGDOnDlKSUnJsOUNHjxYycnJbpl33rx5VbVqVatla9euVWJiIjscAAAAAOA0Ag4DOHnypNasWZMhy1q5cqV2797ttvm3bNnS5vCw8+bNY2cDAAAAANLES1IKm8HzvfDCC9qwYYNbl3H+/HnVqVNHsbGxbpl/lixZtHXrVhUoUMCibN++fTY7HgUAAAAAIDXU4DCIo0ePujXgiIuLU4cOHdwWbnh5eembb76xGm5I0syZM9nJAAAAAIA0I+AwkM8//1xxcXEun298fLy6du2qU6dOuW3de/XqpXr16lktu3LlilavXs0OBgAAAACkGQGHgfz999/64osvXDrPmJgYtWjRQlu2bHHbeteoUUN9+/a1WT5p0iTdv3+fHQwAAAAASDP64DCg7777TnXq1En3fC5fvqyIiAi31twoVaqUli1bpqCgIKvlu3fvVpMmTTJ0lBgAAAAAwNOHgMOAgoODtXnzZoWEhKR5HidPnlRERISuXLnitvVs2rSpxowZo0yZMlktj4+PV7Vq1XT+/Hl2KgAAAAAgXWiiYkDR0dHq0KGD/vnnnzS9/8cff1TDhg3dFm74+/tr7NixmjRpks1wQ5LGjh1LuAEAAAAAcAlqcBjY22+/rfnz58vPz8/h92zbtk1t2rRRUlKSW9apRIkSmjx5sl588UW7r1u/fr06deqk5ORkdiQAAAAAIN0IOAyuXr16mj59unx8fBx+z549e/Thhx8qMjLSZeuRM2dOffrpp2rXrl2q67Jr1y5FREQoISGBHQgAAAAAcAkfSUPZDMZ1+vRpXb16VTVr1pSXl5dD7ylYsKCaNWums2fP6syZM+lafmBgoDp06KDZs2fr9ddfl7e3/VZPhw8fVkREhO7cucPOAwAAAAC4DDU4nhI1a9bUlClTlC1bNqfed/ToUU2ePFmrVq1yqtlKqVKl1Lp1azVt2tTmCCnWltWyZUtFR0ezwwAAAAAALkXA8RQpXry45s6dq/DwcKffe+HCBf3222/63//+p/379+uvv/5ScnKyqY+MokWLqkyZMnrppZdUsWJFlStXzqn5z5s3T4MHD6ZZCgAAAADALQg4njJBQUH69ttvVbVqVY9Yn3/++Ud9+/bV8uXL2TkAAAAAALehD46nTEJCgpYvX66YmBiVL19eAQEBT2xd1q9frw8++EC7d+9mxwAAAAAA3IoaHE+x4OBg9e/fXxEREal2/ulKu3bt0siRI7Vv3z52AgAAAAAgQxBwPANefPFFDRs2TK+//rrblpGYmKht27Zpzpw52rJlCxsdAAAAAJChCDieISVKlFDjxo3VuHFjFSlSJN3zS0pK0s6dO7V8+XKtXr1aMTExbGQAAAAAwBNBwPGMeuWVV9S4cWOVLVtWBQsWVGhoqN1mLCkpKTp37pwOHz6sw4cP69ChQzp8+DChBgAAAADAIxBwQJLk5+en/Pnzq2DBgsqePbtu376t27dvKzY2Vrdv31ZMTIzu3bvHhgIAAAAAeCQCDgAAAAAAYHjebAIAAAAAAGB0BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAAAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADI+AAwAAAAAAGB4BBwAAAAAAMDwCDgAAAAAAYHgEHAAAAAAAwPAIOAAAAAAAgOERcAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAAAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADI+AAwAAAAAAGB4BBwAAAAAAMDwCDgAAAAAAYHgEHAAAAAAAwPAIOAAAAAAAgOERcAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAArg8QfAAAIABJREFUAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADM+XTQAAAJC6rFmzKjg4WL6+vrp+/bpiY2OVkpLChgEAwEMQcADwOH5+fmrevLleeeUV3b17V3v37tXKlSu5kYDHHadBQUHKli2bzf+CgoKUNWtWBQUFafjw4bpy5QobzkD79/XXX1e1atVUpUoVhYeHy9/f3+w1iYmJio6O1u7du7V27Vpt2bJFt2/fTnXezZo107vvvitJmjlzpnbu3OnUumXPnl0tW7ZU6dKldfHiRa1cuVInTpxwah4BAQHKli2bsmbNajpeH/13lixZzKZv3bpVy5Yt48AAAHg0L0ncMeCZFBoaqm3bthlmfYcNG6aFCxc+9fslJCRE8+bNU5kyZcymb9u2Te3bt9e9e/c4eJ8Cc+fOVcWKFQ2zvrdu3dLrr78uScqVK5f2799vcbObmipVqujUqVPsfAMEGxEREerdu7dCQ0Odem9iYqKWLl2qr776ymaYVaJECa1du1YBAQGSpN69e2vx4sUOL6N06dKaO3euChQoYJp27949DRw40KFzxOuvv64ff/xRfn5+Tn22yZMna9SoURwgAACPRg0OPLO8vb0VFBRkmPXNnTv3M7Ffxo4daxFuSNI777yjTz/9VCNHjuTgfQrky5fPUN+/TJkymf7t5eXldLgBY3jzzTc1btw4hYWFWZTdvHlTly9f1o0bN5SSkqKQkBDlyZNHuXLlkpeXl6QH4UjLli3VuHFjzZ49W5MmTTKr0eHv769p06aZwo2H5yJH+fv7a/r06WbhxsPpo0aN0uHDh3X48GG78/Dx8XE63AAAwCgIOPDMSkpK0sWLF82m+fn5KU+ePKaLVUckJyfr8uXLDr8+KCgoTTd2RroZTKvg4GDVrl3bZnmjRo0IOJ4SzhzPycnJ2rNnj86dO6fLly/Ly8tLxYoV07vvvutQ0BAXF6eff/5ZZ8+eVWJiovLly6dChQqpatWqDq+Hn5+f/Pz8lJiYqPv37+vYsWMPTqK+vipUqJBZAAJjatOmjUaMGGF28x8ZGanZs2dr06ZNOnHihNVmcqGhoapZs6Zq1aqlatWqydvbW4GBgerRo4fq1aunrl27mkKHgQMHqlSpUhaBg6OqVKmi4sWL2zxG27Rpo/79+9udxz///GM6fh/+7jp73gMAgIAD8DDXrl3Ta6+9ZjE9MDBQrVq10vDhw1N9sjZ06FAtX75c165dc2rZAQEBKliwoN555x3Vrl1bb7/9NgGHZPWp6aPy588vb29vJScncwA/AwHHnTt3NG3aNP3www9Wq/uHhYVpzZo1yp49u815xMTEqGrVqrp69arV73rdunXVt2/fVI896UEHkzdv3lRMTIxq1KhhVlaiRAkNHDhQNWvWZOca0MCBA/XRRx+Z/k5MTNSYMWM0a9asVJvFRUZGav78+Zo/f77FcRAWFqaVK1fqX//6l86ePavOnTtbvN+ZgMNWuPHQ888/n+o8/vjjD4vjN0uWLPrggw/08ccfKzAwkAMCAGBYDBMLPCY+Pl5z5sxJtU300aNH9e9//9vpcEOSEhISdObMGX333Xdq0aKFGjZsmGq14mch4Dhz5ozd8r///ptw4ymRLVs2u+WHDx9W7dq1NWHCBJt9GZw/f14//fST3fn88ssvVsONh9/1ZcuWqUaNGpo/f36q65wlSxabZSdPnlT79u21fft2dq7BtGzZ0izcuHr1qho2bKhp06Y53efPw+Ogffv2iouLk/Sg+ciIESP0/fffW60l4UwTldRqC9o61lPzzz//aOLEiRowYAAHBACAgAN4Gu3bt89u+YYNG1y2rP/973+qX7++VqxYYfM1z0LAcevWLbvbYOnSpRyYT4EsWbLYfWq9d+9eNWzYMNXAS5LOnj2brhtC6UFNkX79+mn8+PF2X5c1a9ZU5zVu3Dh2sIGUL19eo0ePNv0dGxurVq1a6eDBg+ma74YNG9SoUSNdunTJNM1WvxfOBBzbt2/XrVu3bJavXLkyXev9448/WjTdBADASAg4ABvi4+PtlsfGxrp0eYmJierRo4fNC9TUnng/LQYOHKj9+/dbTF+3bp0mTZrEgfkUsHcsnz59Wu3bt1dCQoJD80qtRo8zT+DHjx9vdxQKezU4HmKUFANdAHl7a8KECWb9uPTu3VsnT550yfyPHz+uRo0a6fr163Zf50wTlevXr+vjjz821Q551IwZM7R69ep0rzfHMADAyOiDA/AgSUlJ6tu3r1577TWL4Qnt9TPwNLlx44YaN26s//u//1PZsmV19+5d7dmzx6U1ZvBk2TqW79+/r65duyomJuaJrduAAQP05ptvWu2Tw5EaHLdu3VJCQoLZKBnwTE2aNNFzzz1n+nv79u1au3atS5dx+fJldenSRYsXL5avr/VLLmcCDulB7ZAqVaqoVatWev7553XlyhWtW7dOu3btcsk6WwtPAAAwCgIOwMPExsbqs88+05w5c8ymPwtNVB690V28eHGq/aDAmGzV4Jg7d65OnDjxRNctMTFRQ4YM0dy5cy3KHKnBIYl+YgzAx8dHn3zyidm07777zi3L2r17t7788ksNHTrUarkzTVQeunz5cqpNqgAAeBbRRAXwQOvWrbNoA/4sBRx4ulmrwXHr1i199dVXHrF+GzZs0I4dOyymO1KDA8ZQrlw5FSlSxPR3QkKCtm7d6rblzZo1y2xoVrMLMW8uxQAAcBXOqoCH+vbbb83+DgwMtNlJHWAk1mpwLFq0yOX92qTH7NmzLaY5WoMDnq9atWpmf1+6dCnVfpfSIzk5WUOGDLFa5mwTFQAAYBsBB+ChVq1aZTECBLU48DR4/DhOSUnRvHnzPGodN2zYoMjISLNpBBxPjypVqpj9nVpHoK6wY8cOrVu3zmI6AQcAAK5DwAF4qKSkJIse8Qk48DR4/DjesWOHzp0753Hfvx9++MFsGk1Unh7Fixc3+ztz5swZstzp06dbXojRRAUAAJfhrAp4sDVr1ti9MQSM6PHj2BVDW7rD40/bCTieDv7+/hbNpB4ftcpd9uzZY9GRLgEHAACuw1kVyEB58+bVxo0btXHjRkVERKT6+r179+rGjRs2bwwBI3r8ON68ebNHrufhw4d169Yt0980UXk6BAcHW0wLCQlReHh4hiz/8RF6aKICAIDrEHAAGShHjhwqXbq0SpcurZCQkFRfn5SUpN9//930t7XRJwCjeTTgOHPmjC5cuOCR65mcnKzt27eb/ibgeDpkypTJ6vQGDRpkyPKXLl2qxMRE098EHAAAuA4BB5CB0lLFfd++faZ/Wxt9AjCaRwOObdu2efS6PjpcLE1Ung5xcXFWp3fv3l25cuXKkOXv2rXr/12I0UQFAACX4awKZKBixYo5/Z79+/eb/k0NDjwNHg04Dh8+7NHreuzYMdO/CTieDraGIw4KCtLUqVMzZDjujRs3mv5NDQ4AAFyHgAPIQGXKlHH6PX/88YdmzZqlWbNmWXROBxjRozWRHg0QPNHJkydN/6aJytMhPj5eV65csVr2zjvvaM6cOcqdO7db1+HRgIMaHAAAuI4vmwDIOFWrVnX6PXfu3NHgwYMdeq2/v7+yZs1q9b8sWbIoa9asWrhwof75559U5xUUFKSCBQua/rt//76ioqJ0/vx5nThxQikpKS7ZJl5eXsqUKZMyZ85s+r+tf1+5ckVr1651yXLLlSunOnXqKDw8XHny5FFISIh8fX0VFRWl69ev69KlS9qyZYt+++033bt3j4PXhR7WREpKStKpU6c8el1jY2N1+fJl5c+f3+0BR0hIiOrVq6ewsDAVKlRIBQsW1L179xQdHa0zZ85o48aN2rt3r5KSktz+ubNkyaLq1avrjTfeUL58+RQaGqrcuXMrNjZWUVFRunbtmv744w+tW7dOly5dMtwxuG/fPtWvX99qWbVq1fTbb79p8uTJWrRokVlHz65y/vx5DR48WIGBgTp06FCqr/fz8zP9Htr7759//tGSJUsMsQ/8/f319ttv65133lH+/PkVGhqq0NBQ3blzR1FRUYqKitKxY8e0bt06nT59Ol3L8vPzs3o+fPjvbNmyaeXKlYqMjHTou/Hw+1mwYEFJ0vXr13XhwgUdOXJEycnJGbYNw8PDVadOHZUoUUJ58uRRaGiosmfPrpiYGN24cUPHjh3Tnj179Ouvv9psmpWebfrGG2+oSpUqKlSokPLmzas8efIoISFB165dU1RUlE6dOqV169Z5fJANgIADQBpUrFhRYWFhLp9vjx491KNHD2XJksWhqtV//PGHWceljwoICFDjxo3VsWNHu7VNoqKitHbtWn3zzTc2n4Ta89lnn6lNmzbKnDmzAgMDHX7f+vXr0xVwZMmSRT169FCzZs1UoEABq68pXLiw6d+dOnXSP//8ow0bNmj8+PE6c+aMU/ulffv26dq3DRs21NWrV62WjRgxQjVr1nR6nocPH9b777//RL8Lf//9t27cuKGLFy8qISHB47+7Gzdu1KuvvqqbN2+67behQ4cOevfdd+1+h7t166ZLly5p2LBhWrlypVvW5eWXX1bv3r31zjvvyN/f36K8QIECKlWqlCSpadOm+vLLL3X06FFNmzZNy5YtM8zv8Y4dO2wGHNKDEO7zzz9Xv379tGrVKq1atUpbt27VnTt3XLYOs2bNslt+4MABU7jr6+vY5drRo0c9PuAIDw/Xp59+qpo1a9ps9vX8889Lkho3bqyBAwfq3LlzmjNnjv7zn//o/v37Di2nadOmGjp0qLJly+bQuTEqKkr//e9/rV8s+/qqTp066tixo9544w2b84iJidHmzZs1YcIEp84XzggMDFTnzp3VpEkT03Z6XP78+SVJlSpVUufOnRUbG6sFCxZo2rRpio6OTtfyCxQooE8//VR169a1ObJb8eLFTf/u27ev/v77b82fP1/Tp08362AXAAg4AIPy8fHR559/7pZ5BwUFKUeOHA6/vkSJEhYBh5eXl3r06KFu3bopZ86cqc4jJCREbdu2VbNmzTR69Gj9+9//dmqds2fPniGd+T36+Zo0aaJBgwYpNDTUojwhIUGXL19WfHy8QkNDlTNnTnl5eZlCkcaNG6tevXqaO3euxo8fr5iYmFSXmSNHDtPTvTT/QNu5qQkODk7T/B15QulujRo1MtT397PPPnPbd3fMmDFObY8CBQpoxowZevfdd9WzZ0+Hb/ZSExwcrIEDB6ply5amY1+S7t+/r23btunEiROKjIxU9uzZ9dxzz6l69eqmGi0vvPCCpk6dqjZt2mjgwIFmzXo81fLlyzV06FAFBATYfZ2/v7/ee+89vffee0pISNBvv/2mX3/9VTt37tSJEyfc9rTey8vL6m+VkWXOnFkff/yxPvzwQ7PAISUlRXv27NEff/yhq1evKlOmTAoLC1OtWrVM56Pw8HANGzZMrVq10sCBA7Vnz55Ul5clSxanzjMlS5a0GnC0bt1affr0Ud68eR06t7333ntq0KCBZsyYoZEjR7q0tmPjxo01aNAgU4DxqOTkZFPNlxw5cig0NNS0nYOCgtStWzc1a9ZMffr00YYNG5xevr+/v7p3766ePXtajES0b98+7du3T1euXJG/v7+KFCmiGjVqKE+ePJKkQoUKacCAAWrZsqUGDRqkrVu3cmEIgIADMLK+ffuqfPnybpn3gQMHNG/ePAUEBKhw4cIqXbq0zacqDwOOR2XNmlVTpkxRrVq1nF52YGCghg4dqvz582vo0KEOv+/KlSumKqve3t6mUMEd/Pz8NHnyZDVs2NBselJSkpYsWaL58+ebjVQjSaGhoWrRooU6depkukDz8/PTBx98oDp16igiIkJ//vmn3eVevnxZsbGxdvfF45KSknTy5ElTgGKvdsOZM2f0559/KiQkxOHOZyMjI1Ndb2SMihUravLkyWkOwRo1aqTAwEC9//776b7JLlWqlBYtWmQxdPW8efM0fvx4Xbt2zeI9mTJlUrdu3dSrVy9TTY833nhDa9asUceOHT1+dJyYmBgtWbJErVu3dvg9AQEBqlGjhmrUqGGax+7du7Vr1y7t3LlTx44dc1ngkZKSYtY0zlptGiPJmzevfvzxRz333HNm0zds2KAhQ4bo/PnzVn+7H94QP/wdLVWqlJYuXaq+ffvqhx9+sLvMkydPat68efLz81PBggVVsmRJu32rPH5u9PPz06hRoxQREeH8xbWvr3r06KGCBQu6JIgMDAzU9OnTrZ6nN2zYoB9++EGbNm0yqx3h6+ur+vXrq1evXipZsqQkKXfu3Jo7d66+/PJLTZs2zeHl58qVSwsXLrSo2bl9+3Z9/vnnVpsa+vj46L333tOQIUMUHBxsCqoWLlyoYcOGafr06ZwIALiFl6QUNgNgqUmTJpo8ebLNckdO0H5+furXr5969OhhUTZmzBhNnDjR5eudLVs2ffbZZ+rYsaPV8u3bt6t58+aSpLCwMM2dO9fsovP27ds6deqULl++LF9fX+XJk0dlypRJtYpv//79NW/evDSvd1BQkNq2bauePXvaDAXWr1+vDh06OHVROGvWLFWrVs3iRr979+5mQzVaExwcrKlTp6py5cpm02/evKl27dpZBCPWlC1bVp988kmqzUnGjBmjmTNnpqkKfPny5dWjRw/VqVPHavmSJUs0ZcoUj+/vIi3atWun0aNH2ywfMWKEpk6dmqHrdObMGYsnnJJUpUoVnTp1So0aNdKUKVPMRs84dOiQdu3aZQoT8ubNq8qVK1vcdD1uyJAhmjlzZprX9eWXX9bChQvNQrLExER169ZNq1evdujY++GHH8yaGty7d09dunTR+vXrPfrYCQoK0rZt21xWUyI2NlZ79uzRb7/9pg0bNuivv/5y2bpmzpxZBQoUUMOGDdWlSxebQ4YfPXo0TU3XHjV9+nSLQFiSJk+erFGjRjk9v8KFC2vx4sVmzf8k6V//+pdmzJiR6vvDwsL0888/m9WgSElJ0RdffKHvvvvO4fV4WAOhb9++ZrWUHjp37pwqVapkCgK+++47vfrqq6by+Ph4HT9+XFeuXFFycrLp3JhaM8tJkybZ/Y1KTfbs2TVv3jyzdXl4vPXp00erVq1K9diZM2eO3n77bbPpX3zxhWbPnp3q8kNDQ/Xjjz9aNIf5+uuvNW7cuFRrqISGhmrZsmUWTXS/+uorff3111xsAiDgAIwQcISEhKh27drq3r27zX433BVwPPTTTz+ZLtasXcRlyZJFa9euNQ1de+TIEX399dfavHmzRc2BoKAgtWrVSp9++qnNjhbj4+NVrVo1q0/inFGlShUtWLDA6gWoMwGHt7e3Fi5caBFOxMbGqk6dOg6vp4+PjxYsWGAxn7t376pBgwYOdZ7m5eWl8ePHq2XLllbLr127pgoVKqSrbbK3t7fmzZtn0ZHtyJEjNWXKlKf2e2q0gCN//vyaO3euKTD89ddfNWTIEJvNOt58802NHj3arE3748dh5cqV09TRZ+nSpbV8+XKLfhB69+6txYsXOzyfSpUqadGiRWaBzf3799W4cWOzYa49UcWKFbVw4UKr+yu9Tp48qfXr12vZsmUuHQHr5Zdf1ooVK6wOL+tpAUeePHm0du1ai+Yd33zzjcaOHevwfIoVK6bVq1dbBDsffvihVqxY4dQ6TZw4Uc2aNbOYnpCQoPDwcPn6+mrJkiV67bXXJD3oEHbChAlas2aNRQfdmTNnVsOGDTVo0CBTLYXHJScnq3Hjxvrf//7n9L7Ili2bVqxYYRF03rlzRw0aNNDx48cdmk+FChUsmt8kJCSoZs2admv1BQUFae3atRbXMXPmzNGgQYMc/hz58+fXunXrLLbRZ599pu+//54LTgAuxdhkQBp17dpVGzduNPtv27ZtOnz4sP744w+NHTvWLZ2KOsrWk5mH1dDHjx+vYsWKKSUlRaNGjVLdunW1Zs0aq80iYmNjNWPGDNWqVctqdXXpQW2JLl26pHu9t27d6lD76tT06tXLIpSQpJ49ezoVwiQlJalr164WT2MzZcqkGTNmODSyRkpKigYPHmyz/wtfX990d7yWnJxs8cR9w4YNT3W4YTSvvPKKZs2aJT8/PyUnJ2vQoEFq2bKl3T4rdu7cqYYNG9oM0jJlyqS2bds6vS6BgYGaNm2aRbixdOlSp8IN6UGHnY8/ifX19dWkSZPcEhy40p49e9S+fXuH+tVxVokSJdSzZ09t3rxZq1evVtu2bZ3qVNmWAwcOuK2TWVfy8vLSN998YxFu7Nu3z6lwQ3oQGvbv399i+pgxY5yugWOrc9eAgAAFBQVpwIABpnBj1qxZqlq1qpYsWWJ19LE7d+5o0aJFqlatms1ORb29vdWzZ880bcORI0darcX18ccfOxxuSA/CTGuft1evXnbfZ+065tSpUw6P7PbQ5cuX1atXL4vaHkOGDFF4eDgnBwAEHIAnCA0NVenSpc3+e+655xQcHGy19kFGszWsXtasWdW9e3c1bNhQKSkp6tevnyZPnuzQ0JPnzp1T+/btbbYzb968uc1e8Z3hzIWbNRUqVFCfPn0spm/atClNnavFxMRo5MiRFtOLFSvm8BPNuLg4TZo0yWpZrly59NZbb6V7uz3azvv+/fv64osv+KJ6kDFjxihz5sxKSUlRz549NWfOHIfed+vWLdOIPta0aNHC6tN8ewYPHmxR5Tw+Pt7qce6IyZMnW4z4U7RoUbd1ruxK27dvV7Vq1bR9+3a3LaNcuXIaM2aMdu3apfbt2zs8Koothw8f9vjt2rlzZ1WpUsViujP9NT1q+fLlFs0Cs2fP7nQzhzNnzthsVtG2bVt169ZNkjRhwgQNHjzYoZGeoqKi1KpVK929e9dqefXq1S2a6KTm//7v/9SkSROL6Q9H9XFUgQIFbJ4L6tevb7N/l+bNm1utyTNs2LA0DVW9ZcsWbdq0yWxapkyZNGnSJHl7czsCgIADeOISEhIUGxtr9l9aTvruEhUVZbPsYdXSf//731qwYIFT8z148KDNJ7yZM2e2aCecFukZxs7Ly0tjx461esM3YcKENM/3l19+0dGjRy2mN23aVK+//rpD8/jhhx9048YNq2UfffRRurfbo09K16xZowsXLvBF9SAPm6VMnDjR6SFVL1y4YLNJW2hoqKkTQUeUL1/ealOvn3/+OU3DPksP+u2w1h9Cu3btbA7J7EmuXLmi5s2bq0OHDukOWO0JDQ3VqFGjtGTJElMHxmldX08WGhqqgQMHWkzftWuXQ30X2WKtz44qVarYHbr1cXfu3FFcXJzVsofr/Msvv2jcuHFOrdvFixdtdtzp7e3tVIidI0cOq+F5cnKy07VfmjRposyZM1stCwwMVL58+SymBwUFafjw4RbTjx8/rs2bN6d5/1kbca18+fKqXbs2JwgABBzAkzZmzBiVLFnS7L8iRYropZdeUtu2bbVgwQKHnvy4i72Ov7y8vHTu3Lk0d3w2d+5cuzdPT1L16tWtVuk9ceKEDhw4kK7tuXDhQqtlqVXzfSg+Pt5m06HKlSvrpZdeStdnf/Qi35HO45DxDhw44PSN00MLFiwwG1njUY+PbmBP165drU5funRpuj7b409npQd92DjTMfCTtn79etWoUUOtW7fW+vXr3RZav/baa1q3bp1LAmFP1KlTJ6s1A9J7jG3dutXqiCTvv/++S9bby8tLN27c0IABA9L0/vnz59us4ejMvm7fvr3VjmQ3bdpks3amLXXr1rVbbm2o5DZt2lhdfnr33+7du63WROvUqRMnBwAEHIAnSk5OVnR0tDZt2qS+ffuqcuXKbq32nB5TpkxJcwBz8OBBXbx40WrZ48MAZrTu3btbnb5lyxaX3PxYU6VKFYfDie+++85mUwNro+04Knv27KaA48iRI9q7dy9fSA/0zTffpHko0Zs3b9oM6V588UWH5lG4cGGrNzzR0dHavXt3uj7biRMnrD4Zj4iIsHoT5alSUlK0ZcsWdejQQRUqVNDAgQO1devWdPeT87jQ0FAtXbpUFSpUeKqO8cyZM6tdu3ZWyxwZmceeuLg4q33W1K5d22U1hebMmZPmWoSRkZH6/fffrZbZ6ijYWuBg64Y/LU0sHx/++VH379/XuXPnzKb5+vraDIycaRpja3l//PGHxfRKlSo5VQsNAAg4gCfk77//Vps2bdJVpdMdbt265XQV+ccdOnTI5o32k1KsWDGbzUW2bduW7vlfunTJZvX11q1bOzSPmJgYzZ8/32pZ/fr109wxbcuWLU1NIKi94ZnOnz+vjRs3uuV7Z2sEh8e1bdvWavOt48ePpzrcoyPBwPXr1y2m58yZ02qHv0Zw9epV/ec//1FERIReeOEFdenSRUuWLLHobySt/Pz8NGPGDIf3nxE0atTI6nng0qVLunXrVrrnb62jax8fH9WrVy/d875//77N3+f0fkdz5Mjh0PsbN25sM5RIy++HvdFbVq9ebRHc1apVy2qzlbi4OJcMfWyro/IGDRpwkgBAwAEYwb179/TRRx/p5s2bHrNO27dvV3x8fLrmYWvkB0cv4tzB2rC4j97AuYKt+TjTvnrGjBlWnwZ7e3ubOrhzhpeXl9q3by/pwZP45cuX88XzQNu2bUt3iGDrxjooKMih99s6Tl01jKmt2knlypUz/P6Li4vTL7/8ol69eumVV17RG2+8od69e2vRokUWT8GdkTdvXk2ZMsUjOqd2hbfffvuJHGMvv/xyuud9+PBhm6NdZdS50VrHrNKDgCgtwdro0aOtdn56/fp1qx2+2vqNsDfakyv23yuvvMJJAgABB2AUt27dcrqnd3dKTydvD9kKbGz1yJ4R3nzzTavTY2Nj7Xa66oxTp05ZnV60aFGHhyu8evWqzbbMLVq0cLrzwSpVqphqfjzpvl9gmyuGP7bVSa219vKPy5o1q82mLLaanDnL1rH7NN68/PXXX1q8eLE+xHB9AAAgAElEQVQ++eQTVapUSeXKlVPXrl01Z84cpwOPd955x+bvl9HYqkXn7mPMFQGHO8+ND2vYpaZixYpWp//5559pWp/z58+rbt262rJli+7evavbt29r3bp1qlmzptXAxN37z9Z5sly5ck9NyAeAgAN4Jvz0008ub8OdVseOHUv3PGwNh/ck2bowPHv2rMuWcebMGZtlzvTkP23aNKtP8/39/dW5c2en1ulhJ47379/Xf/7zH75sHsoVIZutTi8dGSa2QoUKNl9na1QJZ5QqVcpm1fqnoQZHaq5du6aVK1dq0KBBqlSpkipVqqQJEyY4XCOgRYsWht8GYWFhZqM5PcrWk3tn5MiRw2Z/R4ULF1bOnDkNfW4sXLiwze2X1oBDehDMt27dWs8//7xKliypjh07Wj0uc+bMabWTblf9RmTKlMlmZ6vZs2dXkSJFOFEAIOAAjCImJiZd/UBUrVpVnTt3VufOndNdS8IVzWU8Jax5yM/Pz+aTIVe0+350P9riTCd3f/75p9auXWu1rG3btg49kZekQoUKqXr16pIetKd2Vd8AcM9vwJNkrwPg9N685M+fX1999ZXN8uzZsytTpkwesR+mTp2q6dOnq1+/fm5dzrlz5zRu3Di99tprGj58eKo3+PXq1VPWrFkNfYy78xgLCgrS119/bfc4stZ3hJHOjfY6q3ZFDYqkpCS7zeSKFy9usxZFevdflixZNHbsWLshlBGGlAbg+XzZBEDGOXjwoGrUqJGm9/bu3dvU2/68efPStR6uuOFPb18CrmavffOdO3dcthx7T+ecfXo4ZcoUqyNaBAUFqV27dpo6dWqq82jXrp28vR9k1XQu6tlsDfHqCd+RoUOHqm/fvmmab2BgoEM3Jjly5PCIml8NGjSQr6+v7t69q6+//trtYW1iYqK+/fZbrVmzRvPmzVOxYsWsvu7h0+2tW7ca9hi3d4y9//77atKkSdouVn19VahQIdNvnat+g90RcKSHvc5mXVGDIj37r3nz5mm+fvHx8VGhQoVSrWn2JDspB0DAASANjh49mub3Pv/885IeDEWb3g5CPa32hbsvzFxRNfohe2GJsxfXBw4c0I4dO6x2jtq5c2fNnDnT7k2xv7+/WrVqJelB53i2hicEUvuO2KoW7+rlX7lyxWO2R6ZMmfTSSy9p//79GbK88+fPq379+lqxYoXNmg758+d/ao+x4OBgt48Wk94b5Cd9brR3Drl9+/YTXX7OnDnTHSC5e/8BgETAAWSotDYfCA0NNZ34XVkb4WlibxQJW/0WpIW9eTk6ksWjpkyZYjXgyJMnj5o3b253yMJGjRopV65ckqi9gfTdvCQmJrq9Vpajza4y0muvvZZhAYf0oJlS27ZttWnTJmXJksWiPL1NLJ40ewHH/fv3lZyc/MwdY854+HtuTUac++3tv6SkJJeeS60xehMtAJ6BgAPIQGm9QHm00y9X1kZ4VratK9v+Z86c2WZZWvbNtm3bdOTIEaujW3Tv3l0LFy60eVPwcGjY69evMzQsUmVvhILu3btr1apVz9w2eeuttzR9+vQMXeaFCxc0ffp09enTx6LM6AGHvSYkY8eO1ZQpU/gi2mEt9HrI0VFY3PUbMWPGDH355ZfsJACefy5iEwAZ58aNG1q3bp3WrVvn1MgelStXNv3bE0cv8ZRtm5ZQwln25mVvHeyxddEfFhamevXqWS0rU6aMaejN+fPnP/H+HeD57PUvEBAQ8Exuk3feeeeJhArz58+3WmPG6EM8c4ylT2xsrM2ytNQQdOX+CwwMZAcBMAQCDiADXb9+XR07dlTHjh21cuVKh99Xs2ZN079pomKdvY5TM6oGR3R0dJrmuWrVKp0/f95qWY8ePaxO79ixo6QHTQvmzp3LAYBU2QvgPGWEk4zm4+OjiIiIDF9uZGSkTp48afUcYWT2bpCf1WPMVdsvI5pvEHAAeBoQcAAeLiwszKxDOpqoWJeQkGDz6VeePHlcthx7T3uvXbuWpnkmJSXp22+/tVpWpkwZvf3222bTcuTIoUaNGkl6MDRsZGQkBwDSdfNia4jlZ0FERESqozu4w6VLlyymGT3gsBeiPcvHmCu+oxlR08je/nPleRQA3ImAA/BwjRs3NvubGhy27d271+r0sLCwVIcXdFR4eLjNsvSMYrJ48WKbAUnPnj3N/m7ZsqXpadqsWbPY8XDI4cOHbZY5Mszr0ypfvnxq3rx5hi/X2m/5X3/9xTH2DLt48aLNstKlS7t9+SdOnLA5kgz7D4BREHAAHiwwMFDvv/9+qhfFeGDXrl1Wp/v7+7ts+EVbAcfly5dtNjNxREJCgs2w4q233lKZMmUkPegErl27dpKkgwcPat++fex4OGT//v02fz8eDkP9rBo0aJDdESTc4fEn4vHx8dqzZ4+ht+O1a9esNr3hGHPM77//rvv371stK1WqlNuX/88//+jAgQNWy4oWLZohHZ0CQHoRcAAeLCIiQsHBwRYXILBu586dNstcdXH4MGh43Pbt29M97++//163b9+2WvbRRx9JkqpWraqwsDBJDA0L5yQmJmr37t02j2t39JGQI0cONW/e3OM7mMyVK5cGDhyYocssVKiQ2d87duwwfCej9n4Lc+XKZdbc0lX8/PzUunXrDOmEMyMChoMHD1otCw0NVfHixV22rDJlylj9Xv72229WXx8QEKCyZcu6/DN7eXkpIiLC7jDWAOAMAg7AQ2XPnt2iaYJEDQ57Dh06pNOnT1ste+edd9I9/xIlSthsB+2KYVpjY2P1/fffWy179913FR4erg4dOkiSoqKi9N///pedDqesWbPG5k1ilSpVXL684cOH65tvvtG+fftUoUIFj942rVu3tujvxl1KlixpUats3bp1T/UxJpl3mO0qPXv21FdffaX9+/eb+iYysl9//dVmmas+X9GiRbV69WodO3bMVCPQkf1Xq1Ytl3/ejh07aty4cdq/f7/atGnDjzSAdCPgADzU2LFjrXbKRsBhW0pKiqZPn2617NGhdtOqatWqVqcfOnRIW7dudclnmDlzptUhX729vfXll1+qWrVqkqR58+bZbCsN2PLTTz/Z7Ovl4cg8rlKjRg01adJEkhQXF2fzybSn8PLy0syZM91SyyC1G9VLly5p8eLFT8UxtnPnTpvNHNq1a+ey/pCkB0HRxx9/LElKTk622UzRSOz9tr/33nsu2X69e/eWt7e3MmXKpD/++MOs7NixYzbPZ61atZK/v7/LPmuhQoVMNae8vb1dUhMyc+bM8vLyyvgbqv9/ez4JmTJleiKfGSDgAOCwVq1aqUGDBlbLaKJi39KlS63ewBUvXlyvvPJKui5ebD1dmjRpksvW/9q1a/rxxx+tllWtWlXe3t5KTEzUvHnz2Nlw2r179/Tvf//batlbb73lsifs2bJl09ixY01/Dx8+3Gpw52mCgoI0b9485c6d223LyJs3rzp37mw2bdy4cYbYPo6aMmWK1emFCxfWBx984JJl+Pj4aMKECaZ+ISZNmpTmkaw8ydWrV22GXUWLFlWrVq3SNf/w8HC99957kqQjR47o0KFDDu+/4OBgU6DkCuPHjzcNvT5z5sw092Pl5eWlbt26adeuXTp9+rROnDih2bNnu/V7/FBYWJgWLlyokydP6s8//9TOnTvVrFkzty/Xy8tLnTt31s6dO/Xnn3/q5MmTmjNnjkJCQjjRgYCDTQB4lg4dOpjdGDzu7t27bKRUbuBGjhxptaxXr15pnm+DBg1UtGhRi+k7d+60W6U3Lb799lslJyfbLP/ll18YGtaTT6zenn1q/f77722O1jBu3DjlypUrXfPPkiWLZs+erbx580qSVq5cqVWrVhlm/xUuXFg//vijRR8ZrropGTlypOmmTnow8siSJUuequ/A2rVrbXaAPGDAgHTXknkYbpQrV06SdODAAc2YMcMl+8edN6SOmjp1qs3A67PPPktzh7i+vr4aPXq0aVjkcePGWX3dzp07bdbi6Nmzp15++eV0b4svv/xSb731liTp9OnTGj9+fJrnN23aNH3xxRcqUqSIvLy8lC1bNtWtW1dr1651a+fBL730ktavX68qVaooS5Ys8vLyUlhYmCZOnGjqN8tdJk2apH/9618KCwuTl5eXsmbNqtq1a2v9+vUWfbcBBBwAJCnVDstcfRMTEBCgIUOGaOTIkaaLD2scbaJir7dzV4xnb+sE6gkn1sWLF2vZsmUW02vWrKk33njD6fllzZpV/fv3t5h+7do1devWTSkpKS5d//Pnz+uXX36xWU7noo7fNPj6+mbo+mTPnt1mh5quuNC29f3Knj27w/OIi4tT165drVaDDwkJ0cSJE03DEDsrR44cWrx4senG5cKFC+rbt6/hjqtSpUppzZo1evPNN10638GDB6tOnTqmv6OiotSxY0clJSU5NR9bHTK64ni3FXDZOy89LiUlRR9++KFu3bpl9Vw3bdq0NAdp/v7+mjlzpukp+e3bt9W9e3enmuzZ2k7uPDdmy5bN4eYd58+f16BBg2zOf86cOWlqKvLVV1+Z+pnZs2eP1q9fb/O1PXv21NWrV61uuylTppgCzLSELBMnTlSnTp0kPRhB7MMPP0zzw5tmzZrZ7Jskf/78GjJkiFt+I/z8/DR58mRlzZrVannfvn2tPhRxhcaNG5ua/z0uNDRUQ4cO5eIABBwALKXW2Zyrhrzz9vZWs2bNtH37dnXt2jXV1zvaROXhky1r0vv0xdvbW9WrV7daFhIS4rIhWdOjf//+FtVdvby8NG3aNKerrY4aNco0cslDSUlJ6tatm6Kiotyy/raqCB84cED79+/nC/r/e+211+yWZ0R/Co+qXbu2zbKSJUumO8yx9b0rXLiw1T57bDlw4ICGDRtmtax69epatmyZU/N7+Ju4bNky0+/LzZs31bFjR8XGxhriWDp37pzZ9zlXrlxatGiRPv7443SPAuPn56cRI0aY/cbfu3dPnTp10uXLl52eX8WKFW3ug4IFC6Z5PbNly6YXX3zRalndunWdCvYvXbqkXr16WQ2AX3jhBa1evdrp70S+fPk0f/58U0h07949denSRX/99ZfD8yhRooTNvhLSe26UbHek6uXlpZdeesnh+SxYsECLFi2yuf9nzpzp8MgxPj4+GjBggFq0aCHpwYOSPn362H1PdHS0PvzwQ6vD1oaHh2vNmjVOb6+QkBDNnj1bTZs2NZ1HP/roIx0/fjzN2/thcxtbbP1mptcLL7xg9zrQz8/PJZ2bp+Uz16hRg4sDEHAAMD8BDxkyxOwpmzVNmjRRy5YtnR4X3svLSzlz5lStWrU0evRo7dmzRxMnTlSBAgUcen9qNTi8vLz01ltvafTo0TZf88knn6T5xFuyZElNnTpVlSpVsrn8sWPHOvx53CUuLk7NmzfXmTNnzKaHhobqp59+cujJir+/v8aOHWvxpOTu3bv64IMP3Nqh3ZEjR7Rt2zaL6dTeeMDX11eVK1fWu+++a/d1jRs3Vps2bZz+njrLx8dHLVq00PDhw22+pnfv3ipfvnya5p8/f35NmDDBVDPC2vK//fZbp5pVzJ4922a18LJly2rdunXq3r17qjVPihcvrmnTpmnz5s0qUaKEpAcjArVs2TJdNy4ZKSYmRq1bt1b16tW1ZcsWs+Osf//+2rlzp5o3b56mmntly5bVihUrzDpxjYmJUbt27Ww247B33Hfs2NFmH01eXl7q379/mp4cFypUSFOnTrW5v8PDwzVw4ECnAuyNGzfqk08+sVq7onDhwlq5cqX69+9vc3Sqh/LmzasRI0Zo165dpu9AYmKiOnfubPV30pZXXnlFU6dOtVn+/vvvq0GDBmnaz0WKFNGIESNsPlmXpGHDhjkVug4YMEAbNmywGaRs3LhR1atXt7u+b731ltavX282Kttnn32ms2fPprr8vXv36sMPP1R8fLxFWWhoqH7++WcNHjxYRYoUsTuf4OBgffHFF9q9e7cpAEpOTtbHH3+c7uZrjz98eFzu3LnNmoS5SmrLfXhMuEN4eLjd8uzZsz8VwyYDaeUlKYXNgGc1yPjhhx/MLgxz586t3LlzO9VW9u7du4qMjHQoeMiVK5eCg4PTVY24devWZhfgRYsWNXUaGBAQoPz58zvck/edO3cUGRlpqhrap08fi5EOWrRooc6dOysgIED58uVz+EIhJSVF0dHRioqKUkpKiu7du5fqzeijAcynn35qMX39+vWmYVIdlStXLs2fP9+iRktcXJymTZumRYsWWVTD9ff3V/369dWjRw+VKlXKrCwqKkrt27e36HneHSpVqqSffvrJ9Pe1a9dUoUKFZ2b0lFdffdVmUFegQAGnmmUkJCTo4sWLSkhIsCgbPHiwdu7c6fT6LVq0yHTxXKBAAYdDlJs3b+rq1aumJ9tfffWVxRChI0aMUMWKFeXt7a08efIoZ86cDv0upaSkKDIyUjdu3DD7DkdHR9t8T9OmTTV+/Hib6x8fH6+NGzfq/PnzunTpkmJiYlSoUCEVLVpURYsWVfny5c1usM6cOaOOHTvqzz//9Mjj6sKFC2a/wUlJSWrTpo3pRtnLy0tdunTRwIEDLbbJxYsXtWHDBq1fv147d+60+V3MnTu33nzzTUVERFiM4HT8+HF16tQp1VoHFSpU0KhRo8x+lwoXLuxUM4dHz0tz5841dU78+eefmw0LHBIS4nDnhCkpKfrzzz/NPnvDhg3tngPfeustzZo1y+ZNV1JSkrZs2aLTp0/r8uXLun79uvLnz6/w8HCFh4fr1VdfNatFExUVpc6dO2vv3r02l5k1a1bT8N1+fn7Kly+fzeYE1n4vrl69aqoxOWbMGIugoWrVqho0aJB8fX2VL18+ZcuWzeFj8NatW4qMjDQ1TWratKnV5jzSgxqTgwcPVpcuXWzO78qVK1q7dq3++usvRUZGKm/evHr++edVunRplS1b1iJksTXamL1g6D//+Y/N2o/Jycnavn27jh8/rsuXL+vatWsKDQ1VeHi46Tfi0WuHmJgYde/e3exaJq0WLVpkd5S0K1eupDlYtqd8+fJauXKl3df069dP8+fPd/my582bZ7dmSlRUlMV+B54lvmwCPLMHv6+vSpcune75ZMqUyaEk31Ueb6ISEBCQ5s+ROXNmsycB1i7+goOD0zT/RwMjSS65KU/LELk3btxQ06ZN1bt3b3Xp0sV0c5A1a1b169dPffr00dmzZ/X333/rzp07KliwoIoVK2b1YnX58uUaNmyY1XbJ7rBjxw4dOHDAVA34WRsaNlu2bC75jj78nhQrVszmctKiRIkSTjfjkB70n/BoHwrW+lMoXLhwmr93efPmNWsfn1qgumTJEp09e1b/+te/rN4IBAYGqn79+qkuOzk5WYsXL9aQIUN0+/ZtwxxnI0eONKsFkJKSohkzZmjlypXq0aOHIiIiTDfXBQsWVMeOHdWxY0fdu3dPV69e1bVr10y/Cblz51bevHmtnhPi4uI0Z84cTZw40aHfsvQe/4+vw6P9SxQsWDDN8/by8rKohZBa/xzbt29X3bp1NXToUKtNOHx8fFSjRg2HqtZv2LBB/fv3T/V32MfHJ82fMSAgwOzpu7VaLdmzZ0/z/HPkyGE2T3vf0eTkZA0dOlSHDh3SoEGDrNZ2yZcvX6rDPMfHx+uLL77QggULnF7f/fv3q27duho8eLDV2kPe3t6qXLmyQ8Oxb9++Xf369UvziCmP27Rpk93l2uvPKj2OHj2qq1ev2uyL5M6dO9q8ebNblr1582a7AYe7PjNgFDRRAQwmLTf5T4ubN2+meZuNHDlSlStX1ooVK8x6p/fx8dFzzz2natWqqX79+ipXrpzZDW9KSop27dqlBg0aqHv37hkWbjx05MgRU0D0/fff8wWAW+zfv18NGjRQ586dnW5WkpiYqLVr16pOnTr65JNPDBVu/Pzzz/r222+tll2+fFmDBg1SxYoVNXXqVIsbsoc1Kl599VXVr19f9evX1+uvv24RLERHR2vy5MmqWLGiRo0a9cz+hp87d07t27dXkyZNtGfPHqc6Z05JSdH27dvVokULtW/fPsN/hz3lWH3zzTc1bNgwp4bDTUlJ0aZNm1SrVq00hRsPXbp0SV27dlW9evX066+/2h3py5rff/9dHTp0UPPmzV0WbkjSnDlzbNaoPHPmjN1R6dIjPj5eAwYMsNpBcEpKioYPH56m/nUc8f3339ts3nb+/Hm7TZSBZwFNVAB4HFtNVMaPH5+uoeQeypo1q6pVq6batWuraNGiypMnj6lpUnR0tK5du6YLFy5o8+bN2rhxo9s6Ek1Nvnz5tGvXLvn7+2vp0qVmbagBdypSpIhq1qypypUrq0CBAgoJCVGuXLmUkpKi2NhYRUZG6uDBg/rf//6nNWvWmDWJ8XRTp06Vj4+Pbt++rc8//9xqsyVbChcurLfffluVKlVS/vz5TbXUgoKCFB8fr+joaEVHR+vq1avavXu3fvvtNx07dszlIy09DfLkyaMaNWqoWrVqKlSokPLkyaPg4GB5e3srLi5O169f16FDh7R//36tWbNGly5dYqM9vHj38lLZsmVVvXp1vfHGG6ZtlyNHDt2/f18xMTE6ffq0duzYoZUrV+r06dMuX4dcuXKZ9l9YWJhpHXx9fXX79m3duHFDhw8f1oEDB7R27VqXhhqP8/f3V8+ePdWgQQOFh4crMjJSmzdv1pdffqm4uDi37ouXXnpJn332mcqWLatMmTLp+PHjGj9+vEua39jj5+enHj16qFGjRipatKgiIyO1detWDR8+3FAhM0DAAeCZ0K9fP/Xu3dtiep8+fcz6TXH1BaMkj7oRGT16tNq1aydJqlOnjg4dOsTBgSfG29vb6ae2zwofHx+nh3qFMX6H+Y46t/+8vLye+Do8qePnSS37SX5mwBPRBwcAj2OrI7rff//dbcv0tIuDQoUKqVWrVpIetFkm3MCTRrhhG+HG0/k7zHfU+f33pPfhk1z+k1o23xvAHH1wAPA41gKO6Ohojx2VwR0++eQT0wgOkyZN4qAAAAAAUkHAAcDjWAs4fvvtt2fm84eHh6tp06aSpAMHDmj79u0cFAAAAEAqaKICwONYG3rTqCOI+Pn5qUSJEpKkU6dOmY3gYsugQYNMwy6OGDGCAwIAAABwAAEHgAyTP39+tWrVSgULFtTu3bu1bt063bp1y+w1AQEBKl26tNm048ePa/fu3Yb7vLVq1dL48eMVHBws6f8Ns7d//36b76latareffddSdKGDRu0c+dODhwAAADAAYyiAiBDvPLKK1qwYIGyZ89umnbkyBHVrVvXrIO+V199VStWrDB7b9euXbVy5UpDfd7Q0FDt2LFDmTNnNpt++fJlvfHGG0pMTLR4j7+/v7Zu3aqwsDAlJCSoRo0aOnPmDAcPAAAA4AD64ADgdj4+Pvr666/Nwg1JevHFF9WhQwezaW+++abZ3ytWrDBcuCFJ7777rkW4IT2oxVK8eHGr7+nXr5/CwsIkPRgilnADAAAAcBwBBwC3CwsL03PPPWe1rHHjxqZ/Z86cWe+//77p72vXrmnAgAGG/MyFChVy6vXNmzdX9+7dJUk7duzQzJkzOXAAAAAAJxBwAHC7fPny2SwrV66cSpcuLW9vb/Xp00chISGSpH/++Uft27fXzZs3DfmZ//rrL5tlV69e/X8/wt7e6t27tyZMmCBJunDhgrp27ark5GQOHAAAAMAJdDIKwO3sNbXw8fHRf//7X126dEnPP/+8JCkxMVEdO3bUwYMHDfuZ9+7dq5SUFHl5eVmU9ejRQ3v27FGJEiUUERFhapZy/fp1tW/fXjdu3OCgAQAAAJxEJ6MAMsSmTZtUqlSpVF936dIl9ejRQ3v37jX8Zx46dKi6dOni0GvPnDmjNm3a2K35AQAAAMA2H0lD2QwA3G3v3r1q3LixAgMDrZYnJiZqyZIl6tSpk86ePftUfOYdO3YoZ86ceumll+Ttbb1F4L179zRt2jT17NlTUVFRHCgAAABAGlGDA0CGCQoKUufOnVW2bFkVKlRId+7c0d9//61Dhw5p8eLFun79+lP5uUuVKqWmTZuqePHiCgsLU2xsrC5duqRt27Zp/fr1io6O5uAAAAAA0omAAwAAAAAAGB6jqAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAAAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADI+AAwAAAAAAGB4BBwAAAAAAMDwCDgAAAAAAYHgEHAAAAAAAwPAIOAAAAAAAgOERcAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAAAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADI+AAwAAAAAAGB4BBwAAAAAAMDwCDgAAAAAAYHgEHAAAAAAAwPAIOAAAAAAAgOERcAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADwP/Xjh2QAAAAAAj6/7odgc4QAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgTx0fEZoAAAbRSURBVHAAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAewHYlw7VcO6u1QAAAABJRU5ErkJgglRDTVAAAAACAAADMFRQRTIAAAASAAADQW5hciBTb2Z0d2FyZSBMTEMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MYxAAIe2IECABNTRj//r//////y///8xvIY5vJEjgAACMewYhEOCEMsnsEEBAd//9/r/5///Pz6fOJ8T0x67CwSnuIFQWB/+MYxBkIi14kCABHZ5IJAhJDBAUFA1UP708/39m1T91///////dGmzEShSvFkydnFmWHiyFExUva7537+Tf5/1kc+fkX/IHv/+MYxDEI82IgCACTTf6////t98+t/1zM6EI0EjnShA1ZDQGwCihWSh/+31m+3T3//9v///+8isktZGQJQdVOqqAj3bzT2uob/+MYxEgJ62IcAABHLDA+NMOJVR//f+v/T3///////s601VGsHZ1JChXYMDDFChZLktspI2cRANRlAv6/7f9v/0//////6Ugi/+MYxFsJS2IgCACRTV9TK6QjqqLREYkhtQEagpiFkYQYKuGDFPp7vWtk619lsZL+duiJrb///7dOuZCbOCI7qOdlOnxRMxKD/+MYxHAJY2IoCACNT/pSA8JVAv//v/X9dP/////9r8yqZJznU5kd3CIDKMWQnF2IEClORjJGgJl5FnIPrr6KtLldn19bIn/T/+MYxIUJu2okEACTTNV/////XqhmdUqV2Wg6snZtpXGY3CJ5wHFTyS0P/avqv/pud6pZX1d7bk3XXpfdP///+Ts2hqWcGlJi/+MYxJkJ214cAACNTYEQosiRkGN8kyJVjqGKD613X0XY1H+r7lo789b3/b/9u/7b1dKmRGkR0OQcc7jbmFJpwthYsRGzaNYX/+MYxKwKK2YkEACTTARJ///LWsue/Kf/////W5K4XsY6nJZLEpr+yFCbYkKFUzYoQk6S9EwElUBYVoBsE+sylf9foSm1t9lS/+MYxL4KO2YcCACTTVu5pGRSEIpZiqIVVnbdHufbknQx6Pultv9kf9uvL57R38h8nqBpHJqZDbbFGW11xdtVZgUqltJZHhtq/+MYxNALG14YCACNMS8BvandlRGV/SiqrqtStTstbrV6f//tz8/ZUoh3RY1TnOyEDCAdVklceHyInItkgSKJ2uof/x/zz+KS/+MYxN4LO2IYCACTTQEmlFZRGzd6Lefkv////tfznKLv4NZTPgji8uQaa6hlcySiYiQEuVDRsQFhcGA2+PUDvvka+fT/fkd//+MYxOwMo2YkGABTSFf////n97B1Uwttzm0l0kRGqMMoy6zlDhgfQ2iJTrczBJjCcVQiTK0qKFn/yX/NWesrfq/////9ZKae/+MYxPQRA2oMAACTELWd87muwfkuw0cGyBYFhQaEYHAM/KZFCsERXTJKBp4OvEJRh6YgptX/d0+7zJbIqA0RHWdEVq9DqrBm/+MYxOsMm2IYEAFTTWVdBjTHwZSnuiITdUd3br9af+P95Orq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`;\n","/* UAParser.js v1.0.32\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.32\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=350;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\\d\\.]/g,EMPTY).split(\".\")[0]:undefined},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\\s\\s*/,EMPTY).replace(/\\s\\s*$/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined:i}}return str};var oldSafariMap={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},windowsVersionMap={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var regexes={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[NAME,VERSION],[/opios[\\/ ]+([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[NAME,VERSION],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"UC\"+BROWSER]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[VERSION,[NAME,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[VERSION,[NAME,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[VERSION,[NAME,\"IE\"]],[/yabrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 Secure \"+BROWSER],VERSION],[/\\bfocus\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"MIUI \"+BROWSER]],[/fxios\\/([-\\w\\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[NAME,\"360 \"+BROWSER]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 \"+BROWSER],VERSION],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[NAME,/_/g,\" \"],VERSION],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[NAME,VERSION],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[NAME],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[NAME,VERSION],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[VERSION,[NAME,\"GSA\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[VERSION,[NAME,CHROME+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[NAME,CHROME+\" WebView\"],VERSION],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,\"Android \"+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[NAME,VERSION],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[VERSION,[NAME,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[NAME,VERSION],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[NAME,\"Netscape\"],VERSION],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[VERSION,[NAME,FIREFOX+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i],[NAME,VERSION]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[ARCHITECTURE,\"amd64\"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[ARCHITECTURE,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[ARCHITECTURE,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[ARCHITECTURE,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\\w)[;\\)]/i],[[ARCHITECTURE,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/\\((ip(?:hone|od)[\\w ]*);/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[MODEL,[VENDOR,\"OPPO\"],[TYPE,MOBILE]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,\"Vivo\"],[TYPE,MOBILE]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[MODEL,[VENDOR,\"Realme\"],[TYPE,MOBILE]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[MODEL,[VENDOR,\"Lenovo\"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[MODEL,/_/g,\" \"],[VENDOR,\"Nokia\"],[TYPE,MOBILE]],[/(pixel c)\\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[MODEL,\"Xperia Tablet\"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[MODEL,[VENDOR,\"OnePlus\"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[MODEL,/(.+)/g,\"Fire Phone $1\"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\\w\\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,\"HTC\"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i],[VENDOR,[MODEL,/_/g,\" \"],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[MODEL,[VENDOR,\"Acer\"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[MODEL,[VENDOR,\"Meizu\"],[TYPE,MOBILE]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[MODEL,[VENDOR,\"Fairphone\"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,\"AT&T\"],[TYPE,MOBILE]],[/\\bsie-(\\w*)/i],[MODEL,[VENDOR,\"Siemens\"],[TYPE,MOBILE]],[/\\b(rct\\w+) b/i],[MODEL,[VENDOR,\"RCA\"],[TYPE,TABLET]],[/\\b(venue[\\d ]{2,7}) b/i],[MODEL,[VENDOR,\"Dell\"],[TYPE,TABLET]],[/\\b(q(?:mv|ta)\\w+) b/i],[MODEL,[VENDOR,\"Verizon\"],[TYPE,TABLET]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[MODEL,[VENDOR,\"Barnes & Noble\"],[TYPE,TABLET]],[/\\b(tm\\d{3}\\w+) b/i],[MODEL,[VENDOR,\"NuVision\"],[TYPE,TABLET]],[/\\b(k88) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,TABLET]],[/\\b(nx\\d{3}j) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,MOBILE]],[/\\b(gen\\d{3}) b.+49h/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,MOBILE]],[/\\b(zur\\d{3}) b/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,TABLET]],[/\\b((zeki)?tb.*\\b) b/i],[MODEL,[VENDOR,\"Zeki\"],[TYPE,TABLET]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[VENDOR,\"Dragon Touch\"],MODEL,[TYPE,TABLET]],[/\\b(ns-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"Insignia\"],[TYPE,TABLET]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"NextBook\"],[TYPE,TABLET]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,\"Voice\"],MODEL,[TYPE,MOBILE]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[VENDOR,\"LvTel\"],MODEL,[TYPE,MOBILE]],[/\\b(ph-1) /i],[MODEL,[VENDOR,\"Essential\"],[TYPE,MOBILE]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[MODEL,[VENDOR,\"Envizen\"],[TYPE,TABLET]],[/\\b(trio[-\\w\\. ]+) b/i],[MODEL,[VENDOR,\"MachSpeed\"],[TYPE,TABLET]],[/\\btu_(1491) b/i],[MODEL,[VENDOR,\"Rotor\"],[TYPE,TABLET]],[/(shield[\\w ]+) b/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,TABLET]],[/(sprint) (\\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\\.[onetw]{3})/i],[[MODEL,/\\./g,\" \"],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\\d+)/i],[[MODEL,/^/,\"SmartTV\"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+\" TV\"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+\"cast\"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\\w)( bui|\\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\\w ]+)( bui|\\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[TYPE,SMARTTV]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/droid.+; (glass) \\d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\\w\\. ]{0,9});.+buil/i],[MODEL,[VENDOR,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[VERSION,[NAME,EDGE+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[VERSION,[NAME,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i],[NAME,VERSION],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[NAME,\"Windows\"],[VERSION,strMapper,windowsVersionMap]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/cfnetwork\\/.+darwin/i],[[VERSION,/_/g,\".\"],[NAME,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[NAME,\"Mac OS\"],[VERSION,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[NAME,VERSION],[/\\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[VERSION,[NAME,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"webOS\"]],[/crkey\\/([\\d\\.]+)/i],[VERSION,[NAME,CHROME+\"cast\"]],[/(cros) [\\w]+ ([\\w\\.]+\\w)/i],[[NAME,\"Chromium OS\"],VERSION],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[NAME,VERSION],[/(sunos) ?([\\w\\.\\d]*)/i],[[NAME,\"Solaris\"],VERSION],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\\w\\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _ua=ua||(typeof window!==UNDEF_TYPE&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:EMPTY);var _rgxmap=extensions?extend(regexes,extensions):regexes;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined;_browser[VERSION]=undefined;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser.major=majorize(_browser.version);return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined;_device[MODEL]=undefined;_device[TYPE]=undefined;rgxMapper.call(_device,_ua,_rgxmap.device);return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","import type _algosdk from \"algosdk\";\nimport { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider, Asset, Wallet, AccountInfo } from \"../types\";\nimport { ConfirmedTxn, TxnType } from \"../types\";\nimport { TransactionsArray, TxnInfo } from \"../types\";\nimport { audio } from \"../media/audio\";\nimport { isIOS } from \"react-device-detect\";\n\n/** @todo implement audio hack */\n\nexport type InitAlgodClient = {\n algosdk: typeof _algosdk;\n token: string;\n server: string;\n port: string;\n};\n\nexport interface BaseWalletInterface {\n connect(onDisconnect: () => void): Promise<Wallet>;\n healthCheck(): Promise<Record<string, never>>;\n disconnect(): Promise<void>;\n reconnect(onDisconnect: () => void): Promise<Wallet | null>;\n decodeTransaction(txn: string, isSigned: boolean): _algosdk.Transaction;\n logEncodedTransaction(txn: string, isSigned: boolean): void;\n groupTransactionsBySender(\n transactions: TransactionsArray\n ): Record<string, TxnInfo[]>;\n signTransactions(\n activeAddress: string,\n transactions: Array<Uint8Array>\n ): Promise<Uint8Array[]>;\n signEncodedTransactions(\n transactions: TransactionsArray\n ): Promise<Uint8Array[]>;\n sendRawTransactions(\n transactions: Uint8Array[]\n ): Promise<ConfirmedTxn & { id: string }>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getAccountInfo(address: string): Promise<AccountInfo>;\n getAssets(address: string): Promise<Asset[]>;\n waitForConfirmation(txId: string, timeout?: number): Promise<ConfirmedTxn>;\n}\n\nabstract class BaseWallet implements BaseWalletInterface {\n algodClient: _algosdk.Algodv2;\n algosdk: typeof _algosdk;\n keepWCAlive: HTMLAudioElement;\n\n protected abstract id: PROVIDER_ID;\n protected abstract provider: WalletProvider;\n\n abstract connect(onDisconnect: () => void): Promise<Wallet>;\n abstract disconnect(): Promise<void>;\n abstract reconnect(onDisconnect: () => void): Promise<Wallet | null>;\n abstract signTransactions(\n activeAdress: string,\n transactions: Array<Uint8Array>\n ): Promise<Uint8Array[]>;\n abstract signEncodedTransactions(\n transactions: TransactionsArray\n ): Promise<Uint8Array[]>;\n\n protected constructor({ algosdk, token, server, port }: InitAlgodClient) {\n this.algodClient = new algosdk.Algodv2(token, server, port);\n this.algosdk = algosdk;\n this.keepWCAlive = new Audio();\n }\n\n async healthCheck() {\n return await this.algodClient.healthCheck().do();\n }\n\n async getAccountInfo(address: string) {\n const accountInfo = await this.algodClient.accountInformation(address).do();\n\n if (!accountInfo) {\n throw new Error(\"Unable to get account information\");\n }\n\n return accountInfo as AccountInfo;\n }\n\n async getAssets(address: string) {\n const accountInfo = await this.algodClient.accountInformation(address).do();\n\n if (!accountInfo || accountInfo.assets === undefined) {\n throw new Error(\"Unable to get account assets\");\n }\n\n return accountInfo.assets as Asset[];\n }\n\n async waitForConfirmation(txId: string, timeout = 4) {\n const confirmation = (await this.algosdk.waitForConfirmation(\n this.algodClient,\n txId,\n timeout\n )) as ConfirmedTxn;\n\n return { txId, ...confirmation };\n }\n\n decodeTransaction = (txn: string, isSigned: boolean) => {\n return isSigned\n ? this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ).txn\n : this.algosdk.decodeUnsignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n );\n };\n\n logEncodedTransaction(txn: string, isSigned: boolean) {\n const txnObj = this.decodeTransaction(txn, isSigned);\n\n console.log(\"TRANSACTION\", {\n isSigned,\n from: txnObj.from && this.algosdk.encodeAddress(txnObj.from.publicKey),\n to: txnObj.to && this.algosdk.encodeAddress(txnObj.to.publicKey),\n type: txnObj.type,\n txn: txnObj,\n });\n }\n\n groupTransactionsBySender(transactions: TransactionsArray) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function groupBy(objectArray: Record<string, any>[], property: string) {\n return objectArray.reduce(function (acc, obj) {\n const key = obj[property];\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(obj);\n return acc;\n }, {});\n }\n\n const decodedGroup = transactions.reduce(\n (acc: TxnInfo[], [type, txn], index) => {\n if (type === \"u\") {\n const decodedTxn = this.decodeTransaction(txn, false);\n const from = decodedTxn.from\n ? this.algosdk.encodeAddress(decodedTxn.from.publicKey)\n : \"\";\n const to = decodedTxn.to\n ? this.algosdk.encodeAddress(decodedTxn.to.publicKey)\n : \"\";\n const type = (decodedTxn.type as TxnType) || \"\";\n const amount = Number(decodedTxn.amount) || 0; // convert from bigint to number\n\n const txnObj = {\n groupIndex: index,\n amount,\n from,\n to,\n type,\n txn,\n };\n\n acc.push(txnObj);\n }\n\n return acc;\n },\n []\n );\n return groupBy(decodedGroup, \"from\");\n }\n\n async sendRawTransactions(transactions: Uint8Array[]) {\n const sentTransaction = await this.algodClient\n .sendRawTransaction(transactions)\n .do();\n\n if (!sentTransaction) {\n throw new Error(\"Transaction failed.\");\n }\n\n const confirmedTransaction = await this.waitForConfirmation(\n sentTransaction.txId\n );\n\n return {\n id: sentTransaction.txId,\n ...confirmedTransaction,\n };\n }\n\n keepWCAliveStart() {\n // Playing an audio file prevents Wallet Connect's\n // web socket connection from being dropped when\n // iOS goes into background mode\n\n if (!isIOS) {\n return;\n }\n\n this.keepWCAlive.src = audio;\n this.keepWCAlive.autoplay = true;\n this.keepWCAlive.volume = 0;\n this.keepWCAlive.loop = true;\n this.keepWCAlive.play();\n }\n\n keepWCAliveStop() {\n if (!isIOS) {\n return;\n }\n\n this.keepWCAlive.pause();\n }\n}\n\nexport default BaseWallet;\n","/**\n * Helpful resources:\n * https://github.com/perawallet/connect\n */\nimport { providers } from \"../providers\";\nimport type { PeraWalletConnect } from \"@perawallet/connect\";\nimport type { WalletProvider, Wallet } from \"../types\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport type { Transaction } from \"algosdk\";\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { TransactionsArray } from \"../types\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\nexport interface PeraTransaction {\n txn: Transaction;\n /**\n * Optional list of addresses that must sign the transactions.\n * Wallet skips to sign this txn if signers is empty array.\n * If undefined, wallet tries to sign it.\n */\n signers?: string[];\n}\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: PeraWalletConnect;\n providers: typeof providers;\n};\n\nclass PeraWalletClient extends BaseWallet {\n #client: PeraWalletConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n const PeraWalletConnect = (await import(\"@perawallet/connect\"))\n .PeraWalletConnect;\n const peraWallet = new PeraWalletConnect({ shouldShowSignTxnToast: false });\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.PERA_WALLET,\n client: peraWallet,\n providers: providers,\n };\n\n return new PeraWalletClient(initAlgodClient, initWallet);\n }\n\n async connect(onDisconnect: () => void): Promise<Wallet> {\n this.keepWCAliveStart();\n\n const accounts = await this.#client.connect();\n\n this.keepWCAliveStop();\n\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map((address: string, index: number) => ({\n name: `Pera Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n const accounts = await this.#client.reconnectSession();\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (!accounts) {\n return null;\n }\n\n return {\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Pera Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n };\n }\n\n async disconnect() {\n await this.#client.disconnect();\n }\n\n formatTransactionsArray(transactions: TransactionsArray): PeraTransaction[] {\n const formattedTransactions: PeraTransaction[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"s\") {\n formattedTransactions.push({\n ...this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n signers: [],\n });\n } else {\n formattedTransactions.push({\n txn: this.algosdk.decodeUnsignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n });\n }\n }\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<PeraTransaction[]>((acc, txn, i) => {\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push({\n txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),\n });\n } else {\n acc.push({\n txn: this.algosdk.decodeSignedTransaction(transactions[i]).txn,\n signers: [],\n });\n }\n\n return acc;\n }, []);\n\n // Play an audio file to keep Wallet Connect's web socket open on iOS\n // when the user goes into background mode.\n this.keepWCAliveStart();\n\n // Sign them with the client.\n const result = await this.#client.signTransaction([txnsToSign]);\n\n this.keepWCAliveStop();\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift();\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n\n this.keepWCAliveStart();\n\n const result = (await this.#client.signTransaction([\n transactionsToSign,\n ])) as Uint8Array[];\n\n this.keepWCAliveStop();\n\n const signedTransactions: Uint8Array[] = [];\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedTransactions.push(result[resultIndex]);\n resultIndex++;\n } else {\n signedTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedTransactions;\n }\n}\n\nexport default PeraWalletClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.error(\"error initializing PeraWalletClient\", e);\n return;\n }\n});\n","/**\n * Helpful resources:\n * https://github.com/randlabs/myalgo-connect\n */\nimport BaseWallet from \"./base\";\nimport type MyAlgoConnect from \"@randlabs/myalgo-connect\";\nimport type { InitAlgodClient } from \"./base\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: MyAlgoConnect;\n providers: typeof providers;\n};\n\nclass MyAlgoWalletClient extends BaseWallet {\n #client: MyAlgoConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n const MyAlgo = (await import(\"@randlabs/myalgo-connect\")).default;\n const myAlgo = new MyAlgo({ disableLedgerNano: false });\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.MYALGO_WALLET,\n client: myAlgo,\n providers: providers,\n };\n\n return new MyAlgoWalletClient(initAlgodClient, initWallet);\n }\n\n async connect() {\n const accounts = await this.#client.connect();\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map((account) => ({\n ...account,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect() {\n return null;\n }\n\n async disconnect() {\n return;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Get the unsigned transactions.\n const txnsToSign = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n // If the transaction isn't already signed and is to be sent from a connected account,\n // add it to the arrays of transactions to be signed.\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n // Sign them with the client.\n const result = await this.#client.signTransaction(txnsToSign);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift()?.blob;\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign: string[] = [];\n const signedRawTransactions: Uint8Array[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n transactionsToSign.push(txn);\n }\n }\n\n const result = await this.#client.signTransaction(transactionsToSign);\n\n if (!result) {\n throw new Error(\"Signing failed.\");\n }\n\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedRawTransactions.push(result[resultIndex].blob);\n resultIndex++;\n } else {\n signedRawTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedRawTransactions;\n }\n}\n\nexport default MyAlgoWalletClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.error(\"error initializing MyAlgoWalletClient\", e);\n return;\n }\n});\n","/**\n * Helpful resources:\n * https://github.com/PureStake/algosigner/blob/develop/docs/dApp-integration.md\n */\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport {\n PROVIDER_ID,\n NODE_TOKEN,\n NODE_SERVER,\n NODE_PORT,\n NODE_NETWORK,\n} from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype WindowExtended = { AlgoSigner: AlgoSigner } & Window & typeof globalThis;\n\ntype AlgoSignerTransaction = {\n txn: string;\n // array of addresses to sign with (defaults to the sender),\n // setting this to an empty array tells AlgoSigner\n // that this transaction is not meant to be signed\n signers?: [];\n multisig?: string; // address of a multisig wallet to sign with\n};\n\n\ntype SupportedLedgers = \"MainNet\" | \"TestNet\" | \"BetaNet\" | string;\n\ntype AlgoSigner = {\n connect: () => Promise<Record<string, never>>;\n accounts: (ledger: {\n ledger: SupportedLedgers;\n }) => Promise<{ address: string }[]>;\n signTxn: (transactions: AlgoSignerTransaction[]) => Promise<\n {\n txID: string;\n blob: string;\n }[]\n >;\n encoding: {\n msgpackToBase64(transaction: Uint8Array): string;\n byteArrayToString(transaction: Uint8Array): string;\n };\n};\n\ntype InitWallet = {\n client: AlgoSigner;\n id: PROVIDER_ID;\n providers: typeof providers;\n};\n\nclass AlgoSignerClient extends BaseWallet {\n #client: AlgoSigner;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n if (\n typeof window == \"undefined\" ||\n (window as WindowExtended).AlgoSigner === undefined\n ) {\n throw new Error(\"AlgoSigner is not available.\");\n }\n\n const algoSigner = (window as WindowExtended).AlgoSigner as AlgoSigner;\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.ALGO_SIGNER,\n client: algoSigner,\n providers: providers,\n };\n\n return new AlgoSignerClient(initAlgodClient, initWallet);\n }\n\n async connect() {\n await this.#client.connect();\n\n let ledger: SupportedLedgers = \"MainNet\";\n\n if (NODE_NETWORK === \"mainnet\") {\n ledger = \"MainNet\";\n } else if (NODE_NETWORK === \"betanet\") {\n ledger = \"BetaNet\";\n } else if (NODE_NETWORK === \"testnet\") {\n ledger = \"TestNet\";\n } else if (!!NODE_NETWORK) {\n ledger = NODE_NETWORK;\n }\n\n const accounts = await this.#client.accounts({\n ledger,\n });\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map(({ address }, index) => ({\n name: `AlgoSigner ${index + 1}`,\n address,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n if (\n window === undefined ||\n (window as WindowExtended).AlgoSigner === undefined\n ) {\n onDisconnect();\n }\n\n return null;\n }\n\n async disconnect() {\n return;\n }\n\n formatTransactionsArray(\n transactions: TransactionsArray\n ): AlgoSignerTransaction[] {\n const formattedTransactions = transactions.map(([type, txn]) => {\n const formattedTxn: AlgoSignerTransaction = {\n txn: txn[1],\n };\n\n if (type === \"s\") {\n formattedTxn.signers = [];\n const decoded = this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n );\n formattedTxn.txn = this.#client.encoding.msgpackToBase64(\n decoded.txn.toByte()\n );\n } else {\n const decoded = this.algosdk.decodeUnsignedTransaction(\n Buffer.from(txn, \"base64\")\n );\n formattedTxn.txn = this.#client.encoding.msgpackToBase64(\n decoded.toByte()\n );\n }\n\n return formattedTxn;\n });\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<AlgoSignerTransaction[]>(\n (acc, txn, i) => {\n const txnObj: AlgoSignerTransaction = {\n txn: this.#client.encoding.msgpackToBase64(transactions[i]),\n };\n\n if (\n \"txn\" in txn ||\n this.algosdk.encodeAddress(txn[\"snd\"]) !== activeAdress\n ) {\n txnObj.txn = this.#client.encoding.msgpackToBase64(\n this.algosdk.decodeSignedTransaction(transactions[i]).txn.toByte()\n );\n txnObj.signers = [];\n }\n\n acc.push(txnObj);\n\n return acc;\n },\n []\n );\n\n // Sign them with the client.\n const result = await this.#client.signTxn(txnsToSign);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = result.reduce<Uint8Array[]>((acc, txn, i) => {\n if (txn) {\n acc.push(new Uint8Array(Buffer.from(txn.blob, \"base64\")));\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n const result = await this.#client.signTxn(transactionsToSign);\n\n if (!result) {\n throw new Error(\"Signing failed.\");\n }\n\n const signedRawTransactions = result.reduce(\n (signedTxns: Uint8Array[], txn, currentIndex) => {\n if (txn) {\n signedTxns.push(new Uint8Array(Buffer.from(txn.blob, \"base64\")));\n }\n\n if (txn === null) {\n signedTxns.push(\n new Uint8Array(Buffer.from(transactions[currentIndex][1], \"base64\"))\n );\n }\n\n return signedTxns;\n },\n []\n );\n\n return signedRawTransactions;\n }\n}\n\nexport default AlgoSignerClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.info(\"error initializing AlgoSigner\", e);\n return;\n }\n});\n","/**\n * Helpful resources:\n * https://github.com/blockshake-io/defly-connect\n */\nimport { providers } from \"../providers\";\nimport type { WalletProvider, Wallet } from \"../types\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport type { Transaction, SignedTransaction } from \"algosdk\";\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { TransactionsArray } from \"../types\";\nimport type { DeflyWalletConnect } from \"@blockshake/defly-connect\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\nexport interface DeflyTransaction {\n txn: Transaction;\n /**\n * Optional list of addresses that must sign the transactions.\n * Wallet skips to sign this txn if signers is empty array.\n * If undefined, wallet tries to sign it.\n */\n signers?: string[];\n}\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: DeflyWalletConnect;\n providers: typeof providers;\n};\n\nclass DeflyWalletClient extends BaseWallet {\n #client: DeflyWalletConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n const DeflyWalletConnect = (await import(\"@blockshake/defly-connect\"))\n .DeflyWalletConnect;\n const deflyWallet = new DeflyWalletConnect({\n shouldShowSignTxnToast: false,\n });\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.DEFLY,\n client: deflyWallet,\n providers: providers,\n };\n\n return new DeflyWalletClient(initAlgodClient, initWallet);\n }\n\n async connect(onDisconnect: () => void): Promise<Wallet> {\n const accounts = await this.#client.connect();\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map((address: string, index: number) => ({\n name: `Defly Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n const accounts = await this.#client.reconnectSession();\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (!accounts) {\n return null;\n }\n\n return {\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Defly Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n };\n }\n\n async disconnect() {\n await this.#client.disconnect();\n }\n\n formatTransactionsArray(transactions: TransactionsArray) {\n const formattedTransactions: DeflyTransaction[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"s\") {\n formattedTransactions.push({\n ...this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n signers: [],\n });\n } else {\n formattedTransactions.push({\n txn: this.algosdk.decodeUnsignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n });\n }\n }\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<DeflyTransaction[]>((acc, txn, i) => {\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push({\n txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),\n });\n } else {\n acc.push({\n txn: this.algosdk.decodeSignedTransaction(transactions[i]).txn,\n signers: [],\n });\n }\n\n return acc;\n }, []);\n\n // Sign them with the client.\n const result = await this.#client.signTransaction([txnsToSign]);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift();\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n const result: Uint8Array[] = await this.#client.signTransaction([\n transactionsToSign,\n ]);\n\n const signedTransactions: Uint8Array[] = [];\n\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedTransactions.push(result[resultIndex]);\n resultIndex++;\n } else {\n signedTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedTransactions;\n }\n}\n\nexport default DeflyWalletClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.error(\"error initializing DeflyWalletClient\", e);\n return;\n }\n});\n","/**\n * Helpful resources:\n * https://docs.exodus.com/api-reference/algorand-provider-api/\n */\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport type { SignedTransaction, Transaction } from \"algosdk\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype WindowExtended = { exodus: { algorand: Exodus } } & Window &\n typeof globalThis;\n\ntype Bytes = Readonly<Uint8Array>;\n\ntype Exodus = {\n isConnected: boolean;\n address: string | null;\n connect: () => Promise<{\n address: string;\n }>;\n disconnect: () => void;\n signAndSendTransaction(transactions: Bytes[]): Promise<{\n txId: string;\n }>;\n signTransaction(transactions: Bytes[]): Promise<Bytes[]>;\n};\n\ntype InitWallet = {\n client: Exodus;\n id: PROVIDER_ID;\n providers: typeof providers;\n};\n\nclass ExodusClient extends BaseWallet {\n #client: Exodus;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n if (\n typeof window == \"undefined\" ||\n (window as WindowExtended).exodus === undefined\n ) {\n throw new Error(\"Exodus is not available.\");\n }\n\n const exodus = (window as WindowExtended).exodus.algorand as Exodus;\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.EXODUS,\n client: exodus,\n providers: providers,\n };\n\n return new ExodusClient(initAlgodClient, initWallet);\n }\n\n async connect() {\n const { address } = await this.#client.connect();\n\n if (!address) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const accounts = [\n {\n name: `Exodus 1`,\n address,\n providerId: this.provider.id,\n },\n ];\n\n return {\n ...this.provider,\n accounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n if (\n window === undefined ||\n (window as WindowExtended).exodus === undefined ||\n (window as WindowExtended).exodus.algorand.isConnected !== true\n ) {\n onDisconnect();\n }\n\n return null;\n }\n\n async disconnect() {\n return;\n }\n\n async signTransactions(\n activeAdress: string,\n transactions: Array<Uint8Array>\n ) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Get the unsigned transactions.\n const txnsToSign = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n // If the transaction isn't already signed and is to be sent from a connected account,\n // add it to the arrays of transactions to be signed.\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n // Sign them with the client.\n const result = await this.#client.signTransaction(txnsToSign);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift();\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign: Uint8Array[] = [];\n const signedRawTransactions: Uint8Array[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n const decoded = this.algosdk.decodeUnsignedTransaction(\n Buffer.from(txn, \"base64\")\n );\n transactionsToSign.push(decoded.toByte());\n }\n }\n\n const result = await this.#client.signTransaction(transactionsToSign);\n\n if (!result) {\n throw new Error(\"Signing failed.\");\n }\n\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedRawTransactions.push(result[resultIndex]);\n resultIndex++;\n } else {\n signedRawTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedRawTransactions;\n }\n}\n\nexport default ExodusClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.info(\"error initializing ExodusClient\", e);\n return;\n }\n});\n","import type {\n Kmd,\n EncodedSignedTransaction,\n EncodedTransaction,\n} from \"algosdk\";\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { Account, Wallet, WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport {\n KMD_HOST,\n KMD_TOKEN,\n KMD_PORT,\n KMD_WALLET,\n KMD_PASSWORD as _KMD_PASSWORD,\n} from \"../constants\";\n\ntype KMDConfig = {\n host: string;\n port: string;\n token: string;\n};\n\nconst DefaultKMDConfig = {\n host: KMD_HOST,\n token: KMD_TOKEN,\n port: KMD_PORT,\n} as KMDConfig;\n\ninterface ListWalletResponse {\n id: string;\n name: string;\n driver_name?: string;\n driver_version?: number;\n mnemonic_ux?: boolean;\n supported_txs?: Array<any>;\n}\n\ninterface InitWalletHandle {\n wallet_handle_token: string;\n message?: string;\n error?: boolean;\n}\n\ntype InitWallet = {\n client: Kmd;\n id: PROVIDER_ID;\n providers: typeof providers;\n};\n\nclass KMDWallet extends BaseWallet {\n #client: Kmd;\n walletId: string;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n this.walletId = \"\";\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n // TODO: allow diff config options?\n const kmdConfig: KMDConfig = DefaultKMDConfig;\n\n const kmdClient = new algosdk.Kmd(\n kmdConfig.token,\n kmdConfig.host,\n kmdConfig.port\n );\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.KMD_WALLET,\n client: kmdClient,\n providers: providers,\n };\n\n return new KMDWallet(initAlgodClient, initWallet);\n }\n\n async connect(): Promise<Wallet> {\n // TODO: prompt for wallet and password?\n return {\n ...this.provider,\n accounts: await this.listAccounts(\n KMD_WALLET,\n await this.requestPassword()\n ),\n };\n }\n\n async disconnect() {\n return;\n }\n\n async reconnect(): Promise<Wallet | null> {\n return {\n ...this.provider,\n accounts: await this.listAccounts(\n KMD_WALLET,\n await this.requestPassword()\n ),\n };\n }\n\n async requestPassword(): Promise<string> {\n // TODO: store it locally?\n const pw = prompt(\"gib password\");\n return pw ? pw : \"\";\n }\n\n async getWalletToken(walletId: string, password: string): Promise<string> {\n const handleResp: InitWalletHandle = await this.#client.initWalletHandle(\n walletId,\n password\n );\n return handleResp.wallet_handle_token;\n }\n\n async releaseToken(token: string): Promise<void> {\n await this.#client.releaseWalletHandle(token);\n }\n\n async listWallets(): Promise<Record<string, string>> {\n const walletResponse = await this.#client.listWallets();\n const walletList: Array<ListWalletResponse> = walletResponse[\"wallets\"];\n const walletMap: Record<string, string> = {};\n for (const w of walletList) {\n walletMap[w.name] = w.id;\n }\n return walletMap;\n }\n\n async listAccounts(\n wallet: string,\n password: string\n ): Promise<Array<Account>> {\n const walletMap = await this.listWallets();\n\n if (!(wallet in walletMap)) throw Error(\"No wallet named: \" + wallet);\n\n this.walletId = walletMap[wallet];\n\n // Get a handle token\n const token = await this.getWalletToken(this.walletId, password);\n\n // Fetch accounts and format them as lib expects\n const listResponse = await this.#client.listKeys(token);\n const addresses: Array<string> = listResponse[\"addresses\"];\n const mappedAccounts = addresses.map((address: string, index: number) => {\n return {\n name: `KMDWallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n };\n });\n\n // Release handle token\n this.releaseToken(token);\n\n return mappedAccounts;\n }\n\n async signTransactions(activeAddress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<EncodedTransaction | EncodedSignedTransaction>;\n\n // Get a handle token\n const pw = await this.requestPassword();\n const token = await this.getWalletToken(this.walletId, pw);\n\n const signedTxns: Uint8Array[] = [];\n // Sign them with the client.\n const signingPromises: Promise<Uint8Array>[] = [];\n for (const idx in decodedTxns) {\n const dtxn = decodedTxns[idx];\n\n // push the incoming txn into signed, we'll overwrite it later\n signedTxns.push(transactions[idx]);\n\n // Its already signed, skip it\n if (!(\"snd\" in dtxn)) continue;\n // Not to be signed by our signer, skip it\n if (!(this.algosdk.encodeAddress(dtxn.snd) === activeAddress)) continue;\n\n // overwrite with an empty blob\n signedTxns[idx] = new Uint8Array();\n\n const txn = this.algosdk.Transaction.from_obj_for_encoding(dtxn);\n signingPromises.push(this.#client.signTransaction(token, pw, txn));\n }\n\n const signingResults = await Promise.all(signingPromises);\n\n // Restore the newly signed txns in the correct order\n let signedIdx = 0;\n for (const idx in signedTxns) {\n // If its an empty array, infer that it is one of the\n // ones we wanted to have signed and overwrite the empty buff\n if (signedTxns[idx].length === 0) {\n signedTxns[idx] = signingResults[signedIdx];\n signedIdx += 1;\n }\n }\n\n return signedTxns;\n }\n\n signEncodedTransactions(\n transactions: TransactionsArray\n ): Promise<Uint8Array[]> {\n throw new Error(\"Method not implemented.\");\n }\n}\n\nexport default KMDWallet.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.info(\"error initializing kmd client\", e);\n return;\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STANDARD_ERROR_MAP = exports.SERVER_ERROR_CODE_RANGE = exports.RESERVED_ERROR_CODES = exports.SERVER_ERROR = exports.INTERNAL_ERROR = exports.INVALID_PARAMS = exports.METHOD_NOT_FOUND = exports.INVALID_REQUEST = exports.PARSE_ERROR = void 0;\nexports.PARSE_ERROR = \"PARSE_ERROR\";\nexports.INVALID_REQUEST = \"INVALID_REQUEST\";\nexports.METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexports.INVALID_PARAMS = \"INVALID_PARAMS\";\nexports.INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexports.SERVER_ERROR = \"SERVER_ERROR\";\nexports.RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexports.SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexports.STANDARD_ERROR_MAP = {\n [exports.PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [exports.INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [exports.METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [exports.INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [exports.INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [exports.SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateJsonRpcError = exports.getErrorByCode = exports.getError = exports.isValidErrorCode = exports.isReservedErrorCode = exports.isServerErrorCode = void 0;\nconst constants_1 = require(\"./constants\");\nfunction isServerErrorCode(code) {\n return code <= constants_1.SERVER_ERROR_CODE_RANGE[0] && code >= constants_1.SERVER_ERROR_CODE_RANGE[1];\n}\nexports.isServerErrorCode = isServerErrorCode;\nfunction isReservedErrorCode(code) {\n return constants_1.RESERVED_ERROR_CODES.includes(code);\n}\nexports.isReservedErrorCode = isReservedErrorCode;\nfunction isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexports.isValidErrorCode = isValidErrorCode;\nfunction getError(type) {\n if (!Object.keys(constants_1.STANDARD_ERROR_MAP).includes(type)) {\n return constants_1.STANDARD_ERROR_MAP[constants_1.INTERNAL_ERROR];\n }\n return constants_1.STANDARD_ERROR_MAP[type];\n}\nexports.getError = getError;\nfunction getErrorByCode(code) {\n const match = Object.values(constants_1.STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return constants_1.STANDARD_ERROR_MAP[constants_1.INTERNAL_ERROR];\n }\n return match;\n}\nexports.getErrorByCode = getErrorByCode;\nfunction validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== constants_1.STANDARD_ERROR_MAP[constants_1.INTERNAL_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexports.validateJsonRpcError = validateJsonRpcError;\n//# sourceMappingURL=error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative');\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== 'undefined' &&\n typeof process.versions !== 'undefined' &&\n typeof process.versions.node !== 'undefined');\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./crypto\"), exports);\n__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNodeJs = void 0;\nconst tslib_1 = require(\"tslib\");\nconst environment_1 = require(\"@pedrouid/environment\");\nexports.isNodeJs = environment_1.isNode;\ntslib_1.__exportStar(require(\"@pedrouid/environment\"), exports);\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatErrorMessage = exports.formatJsonRpcError = exports.formatJsonRpcResult = exports.formatJsonRpcRequest = exports.payloadId = void 0;\nconst error_1 = require(\"./error\");\nconst constants_1 = require(\"./constants\");\nfunction payloadId() {\n const date = Date.now() * Math.pow(10, 3);\n const extra = Math.floor(Math.random() * Math.pow(10, 3));\n return date + extra;\n}\nexports.payloadId = payloadId;\nfunction formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexports.formatJsonRpcRequest = formatJsonRpcRequest;\nfunction formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexports.formatJsonRpcResult = formatJsonRpcResult;\nfunction formatJsonRpcError(id, error) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error),\n };\n}\nexports.formatJsonRpcError = formatJsonRpcError;\nfunction formatErrorMessage(error) {\n if (typeof error === \"undefined\") {\n return error_1.getError(constants_1.INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, error_1.getError(constants_1.SERVER_ERROR)), { message: error });\n }\n if (error_1.isReservedErrorCode(error.code)) {\n error = error_1.getErrorByCode(error.code);\n }\n if (!error_1.isServerErrorCode(error.code)) {\n throw new Error(\"Error code is not in server code range\");\n }\n return error;\n}\nexports.formatErrorMessage = formatErrorMessage;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidTrailingWildcardRoute = exports.isValidLeadingWildcardRoute = exports.isValidWildcardRoute = exports.isValidDefaultRoute = exports.isValidRoute = void 0;\nfunction isValidRoute(route) {\n if (route.includes(\"*\")) {\n return isValidWildcardRoute(route);\n }\n if (/\\W/g.test(route)) {\n return false;\n }\n return true;\n}\nexports.isValidRoute = isValidRoute;\nfunction isValidDefaultRoute(route) {\n return route === \"*\";\n}\nexports.isValidDefaultRoute = isValidDefaultRoute;\nfunction isValidWildcardRoute(route) {\n if (isValidDefaultRoute(route)) {\n return true;\n }\n if (!route.includes(\"*\")) {\n return false;\n }\n if (route.split(\"*\").length !== 2) {\n return false;\n }\n if (route.split(\"*\").filter(x => x.trim() === \"\").length !== 1) {\n return false;\n }\n return true;\n}\nexports.isValidWildcardRoute = isValidWildcardRoute;\nfunction isValidLeadingWildcardRoute(route) {\n return !isValidDefaultRoute(route) && isValidWildcardRoute(route) && !route.split(\"*\")[0].trim();\n}\nexports.isValidLeadingWildcardRoute = isValidLeadingWildcardRoute;\nfunction isValidTrailingWildcardRoute(route) {\n return !isValidDefaultRoute(route) && isValidWildcardRoute(route) && !route.split(\"*\")[1].trim();\n}\nexports.isValidTrailingWildcardRoute = isValidTrailingWildcardRoute;\n//# sourceMappingURL=routing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IEvents = void 0;\nclass IEvents {\n}\nexports.IEvents = IEvents;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IJsonRpcProvider = exports.IBaseJsonRpcProvider = exports.IJsonRpcConnection = void 0;\nconst misc_1 = require(\"./misc\");\nclass IJsonRpcConnection extends misc_1.IEvents {\n constructor(opts) {\n super();\n }\n}\nexports.IJsonRpcConnection = IJsonRpcConnection;\nclass IBaseJsonRpcProvider extends misc_1.IEvents {\n constructor() {\n super();\n }\n}\nexports.IBaseJsonRpcProvider = IBaseJsonRpcProvider;\nclass IJsonRpcProvider extends IBaseJsonRpcProvider {\n constructor(connection) {\n super();\n }\n}\nexports.IJsonRpcProvider = IJsonRpcProvider;\n//# sourceMappingURL=provider.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IBlockchainProvider = exports.IBlockchainAuthenticator = exports.IPendingRequests = void 0;\nconst misc_1 = require(\"./misc\");\nconst provider_1 = require(\"./provider\");\nclass IPendingRequests {\n constructor(storage) {\n this.storage = storage;\n }\n}\nexports.IPendingRequests = IPendingRequests;\nclass IBlockchainAuthenticator extends misc_1.IEvents {\n constructor(config) {\n super();\n this.config = config;\n }\n}\nexports.IBlockchainAuthenticator = IBlockchainAuthenticator;\nclass IBlockchainProvider extends provider_1.IJsonRpcProvider {\n constructor(connection, config) {\n super(connection);\n }\n}\nexports.IBlockchainProvider = IBlockchainProvider;\n//# sourceMappingURL=blockchain.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=jsonrpc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IMultiServiceProvider = void 0;\nconst provider_1 = require(\"./provider\");\nclass IMultiServiceProvider extends provider_1.IBaseJsonRpcProvider {\n constructor(config) {\n super();\n this.config = config;\n }\n}\nexports.IMultiServiceProvider = IMultiServiceProvider;\n//# sourceMappingURL=multi.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IJsonRpcRouter = void 0;\nclass IJsonRpcRouter {\n constructor(routes) {\n this.routes = routes;\n }\n}\nexports.IJsonRpcRouter = IJsonRpcRouter;\n//# sourceMappingURL=router.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=schema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IJsonRpcValidator = void 0;\nclass IJsonRpcValidator {\n constructor(schemas) {\n this.schemas = schemas;\n }\n}\nexports.IJsonRpcValidator = IJsonRpcValidator;\n//# sourceMappingURL=validator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./blockchain\"), exports);\ntslib_1.__exportStar(require(\"./jsonrpc\"), exports);\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./multi\"), exports);\ntslib_1.__exportStar(require(\"./provider\"), exports);\ntslib_1.__exportStar(require(\"./router\"), exports);\ntslib_1.__exportStar(require(\"./schema\"), exports);\ntslib_1.__exportStar(require(\"./validator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"@json-rpc-tools/types\"), exports);\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJsonRpcValidationInvalid = exports.isJsonRpcError = exports.isJsonRpcResult = exports.isJsonRpcResponse = exports.isJsonRpcRequest = exports.isJsonRpcPayload = void 0;\nfunction isJsonRpcPayload(payload) {\n return \"id\" in payload && \"jsonrpc\" in payload && payload.jsonrpc === \"2.0\";\n}\nexports.isJsonRpcPayload = isJsonRpcPayload;\nfunction isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexports.isJsonRpcRequest = isJsonRpcRequest;\nfunction isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexports.isJsonRpcResponse = isJsonRpcResponse;\nfunction isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexports.isJsonRpcResult = isJsonRpcResult;\nfunction isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexports.isJsonRpcError = isJsonRpcError;\nfunction isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\nexports.isJsonRpcValidationInvalid = isJsonRpcValidationInvalid;\n//# sourceMappingURL=validators.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./constants\"), exports);\ntslib_1.__exportStar(require(\"./error\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\ntslib_1.__exportStar(require(\"./format\"), exports);\ntslib_1.__exportStar(require(\"./routing\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./validators\"), exports);\n//# sourceMappingURL=index.js.map","/**\n * Helpful resources:\n * https://developer.algorand.org/docs/get-details/walletconnect/\n */\nimport type WalletConnect from \"@walletconnect/client\";\nimport type { IWalletConnectOptions } from \"@walletconnect/types\";\nimport type QRCodeModal from \"algorand-walletconnect-qrcode-modal\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider, Wallet } from \"../types/wallet\";\nimport {\n PROVIDER_ID,\n NODE_NETWORK,\n NODE_TOKEN,\n NODE_SERVER,\n NODE_PORT,\n} from \"../constants\";\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { formatJsonRpcRequest } from \"@json-rpc-tools/utils\";\nimport { TransactionsArray } from \"../types/api\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype WalletConnectTransaction = {\n txn: string;\n message?: string;\n // if the transaction does not need to be signed,\n // because it is part of an atomic group that will be signed by another party,\n // specify an empty signers array\n signers?: string[] | [];\n};\n\ntype InitWallet = {\n id: PROVIDER_ID;\n walletConnect: typeof WalletConnect;\n bridge: string;\n qrcodeModal: typeof QRCodeModal;\n WalletConnectOptions?: IWalletConnectOptions;\n providers: typeof providers;\n};\n\nclass WalletConnectClient extends BaseWallet {\n #client: WalletConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = new initWallet.walletConnect({\n bridge: initWallet.bridge,\n qrcodeModal: initWallet.qrcodeModal,\n ...initWallet.WalletConnectOptions,\n });\n\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n const WalletConnect = (await import(\"@walletconnect/client\")).default;\n const QRCodeModal = (await import(\"algorand-walletconnect-qrcode-modal\"))\n .default;\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.WALLET_CONNECT,\n walletConnect: WalletConnect,\n bridge: \"https://bridge.walletconnect.org\",\n qrcodeModal: QRCodeModal,\n providers: providers,\n };\n\n return new WalletConnectClient(initAlgodClient, initWallet);\n }\n\n async connect(): Promise<Wallet> {\n let chainId = 416001;\n\n if (NODE_NETWORK === \"betanet\") {\n chainId = 416003;\n } else if (NODE_NETWORK === \"testnet\") {\n chainId = 416002;\n }\n\n if (!this.#client.connected) {\n await this.#client.createSession({ chainId });\n }\n\n return new Promise((resolve, reject) => {\n this.#client.on(\"connect\", (error, payload) => {\n if (error) {\n reject(error);\n }\n\n const { accounts } = payload.params[0];\n\n resolve({\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n });\n });\n\n this.#client.on(\"session_update\", (error, payload) => {\n if (error) {\n reject(error);\n }\n\n const { accounts } = payload.params[0];\n\n resolve({\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n });\n });\n });\n }\n\n async reconnect() {\n this.#client = (await WalletConnectClient.init()).#client;\n\n const accounts = this.#client.accounts;\n\n if (!accounts) {\n return null;\n }\n\n return {\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n };\n }\n\n check() {\n return this.#client.connected;\n }\n\n async disconnect() {\n try {\n await this.#client.killSession();\n } catch (e) {\n console.error(\"Error disconnecting\", e);\n }\n }\n\n formatTransactionsArray(\n transactions: TransactionsArray\n ): WalletConnectTransaction[] {\n const formattedTransactions = transactions.map((txn) => {\n const formattedTxn: WalletConnectTransaction = {\n txn: txn[1],\n };\n\n if (txn[0] === \"s\") {\n const decodedTxn = this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn[1], \"base64\"))\n );\n\n formattedTxn.txn = Buffer.from(\n this.algosdk.encodeUnsignedTransaction(decodedTxn.txn)\n ).toString(\"base64\");\n\n formattedTxn.signers = [];\n }\n\n return formattedTxn;\n });\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<WalletConnectTransaction[]>(\n (acc, txn, i) => {\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push({\n txn: Buffer.from(transactions[i]).toString(\"base64\"),\n });\n } else {\n acc.push({\n txn: Buffer.from(transactions[i]).toString(\"base64\"),\n signers: [],\n });\n }\n\n return acc;\n },\n []\n );\n\n const requestParams = [txnsToSign];\n const request = formatJsonRpcRequest(\"algo_signTxn\", requestParams);\n\n // Play an audio file to keep Wallet Connect's web socket open on iOS\n // when the user goes into background mode.\n this.keepWCAliveStart();\n\n // Sign them with the client.\n const result: Array<string | null> = await this.#client.sendCustomRequest(\n request\n );\n\n this.keepWCAliveStop();\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = result.reduce((signedTxns: Uint8Array[], txn, i) => {\n if (txn) {\n signedTxns.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n\n if (txn === null) {\n signedTxns.push(transactions[i]);\n }\n\n return signedTxns;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n const requestParams = [transactionsToSign];\n const request = formatJsonRpcRequest(\"algo_signTxn\", requestParams);\n\n this.keepWCAliveStart();\n\n const result: Array<string | null> = await this.#client.sendCustomRequest(\n request\n );\n\n this.keepWCAliveStop();\n\n const signedRawTransactions = result.reduce(\n (signedTxns: Uint8Array[], txn, currentIndex) => {\n if (txn) {\n signedTxns.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n\n if (txn === null) {\n signedTxns.push(\n new Uint8Array(Buffer.from(transactions[currentIndex][1], \"base64\"))\n );\n }\n\n return signedTxns;\n },\n []\n );\n\n return signedRawTransactions;\n }\n}\n\nexport default WalletConnectClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.error(\"error initializing WalletConnectClient\", e);\n return;\n }\n});\n","import { PROVIDER_ID } from \"../constants\";\nimport peraWalletClient from \"./perawallet\";\nimport myAlgoWalletClient from \"./myalgowallet\";\nimport algoSignerClient from \"./algosigner\";\nimport deflyClient from \"./defly\";\nimport exodusClient from \"./exodus\";\nimport kmdClient from \"./kmd\";\nimport walletconnectClient from \"./walletconnect\";\n\n\nexport const clients = {\n [PROVIDER_ID.KMD_WALLET]: kmdClient,\n [PROVIDER_ID.PERA_WALLET]: peraWalletClient,\n [PROVIDER_ID.MYALGO_WALLET]: myAlgoWalletClient,\n [PROVIDER_ID.ALGO_SIGNER]: algoSignerClient,\n [PROVIDER_ID.DEFLY]: deflyClient,\n [PROVIDER_ID.EXODUS]: exodusClient,\n [PROVIDER_ID.WALLET_CONNECT]: walletconnectClient,\n};\n","import Big from \"big.js\";\nimport { PROVIDER_ID, WalletClient } from \"../types\";\nimport { clients } from \"../clients\";\n\nexport const getWalletClient = async (\n id: PROVIDER_ID | undefined\n): Promise<WalletClient> => {\n if (!id) {\n throw new Error(\"No wallet provider id provided\");\n }\n\n const client = await clients[id];\n\n if (!client) {\n throw new Error(`No wallet client found for provider id: ${id}`);\n }\n\n return client;\n};\n\nexport const formatPrice = (\n price: number,\n isAlgos?: boolean,\n options?: Intl.NumberFormatOptions | undefined\n) => {\n const algos = isAlgos ? price : convertMicroalgosToAlgos(price);\n return new Intl.NumberFormat(undefined, options).format(algos);\n};\n\n// Formula: amount / (10 ^ decimals)\nexport const convertMicroalgosToAlgos = (amount: number) => {\n const divisor = new Big(10).pow(6);\n return new Big(amount).div(divisor).round(6).toNumber();\n};\n","import algosdk from \"algosdk\";\nimport { useMemo } from \"react\";\nimport { useWalletStore } from \"../store/index\";\nimport { PROVIDER_ID } from \"../types\";\nimport { getWalletClient } from \"../utils\";\nimport { TransactionsArray } from \"../types\";\n\nexport { PROVIDER_ID };\n\nexport default function useWallet() {\n const allAccounts = useWalletStore((state) => state.accounts);\n const activeAccount = useWalletStore((state) => state.activeAccount);\n\n const accounts = useMemo(\n () =>\n allAccounts.filter(\n (account) => account.providerId === activeAccount?.providerId\n ),\n [allAccounts, activeAccount]\n );\n\n const signTransactions = async (transactions: Array<Uint8Array>) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n if (!walletClient || !activeAccount?.address) {\n throw new Error(\"No wallet found.\");\n }\n\n const signedTransactions = await walletClient.signTransactions(\n activeAccount.address,\n transactions\n );\n\n return signedTransactions;\n };\n\n const sendTransactions = async (transactions: Uint8Array[]) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n const result = await walletClient?.sendRawTransactions(transactions);\n\n return result;\n };\n\n const signer: algosdk.TransactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ) => {\n const txnBlobs: Array<Uint8Array> = txnGroup.map(\n algosdk.encodeUnsignedTransaction\n );\n return Promise.resolve(signTransactions(txnBlobs)).then(\n (txns: Uint8Array[]) => {\n return txns.filter((_, index) => indexesToSign.includes(index));\n }\n );\n };\n\n const getAccountInfo = async () => {\n if (!activeAccount) throw new Error(\"No selected account.\");\n\n const walletClient = await getWalletClient(activeAccount.providerId);\n\n const accountInfo = await walletClient?.getAccountInfo(\n activeAccount.address\n );\n\n return accountInfo;\n };\n\n const getAddress = () => {\n return activeAccount?.address;\n };\n\n const getAssets = async () => {\n if (!activeAccount) throw new Error(\"No selected account.\");\n\n const walletClient = await getWalletClient(activeAccount.providerId);\n\n return await walletClient?.getAssets(activeAccount.address);\n };\n\n const groupTransactionsBySender = async (transactions: TransactionsArray) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n return walletClient?.groupTransactionsBySender(transactions);\n };\n\n const signEncodedTransactions = async (transactions: TransactionsArray) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n return await walletClient?.signEncodedTransactions(transactions);\n };\n\n const sendRawTransactions = async (transactions: Uint8Array[]) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n return await walletClient?.sendRawTransactions(transactions);\n };\n\n return {\n accounts,\n activeAccount,\n signer,\n signTransactions,\n sendTransactions,\n getAddress,\n groupTransactionsBySender,\n getAccountInfo,\n getAssets,\n signEncodedTransactions,\n sendRawTransactions,\n };\n}\n","function shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nexport { shallow as default };\n","import { useMemo } from \"react\";\nimport { useWalletStore, walletStoreSelector } from \"../store/index\";\nimport { PROVIDER_ID } from \"../types\";\nimport { providers as walletProviders } from \"../providers\";\nimport shallow from \"zustand/shallow\";\nimport { getWalletClient } from \"../utils\";\n\ntype Options = Partial<{\n providers: PROVIDER_ID[];\n}>;\n\nexport default function useConnectWallet(options?: Options) {\n const {\n accounts,\n setActiveAccount: setActiveAccount,\n activeAccount,\n clearActiveAccount,\n addAccounts,\n removeAccounts,\n } = useWalletStore(walletStoreSelector, shallow);\n\n const providers = useMemo(\n () =>\n Object.values(walletProviders)\n .filter(({ id }) =>\n options?.providers\n ? options.providers.includes(id)\n : id !== PROVIDER_ID.KMD_WALLET\n )\n .map(({ id, name, icon, isWalletConnect }) => {\n return {\n id,\n name,\n icon,\n accounts: accounts.filter((account) => account.providerId === id),\n activeAccount:\n activeAccount?.providerId === id ? activeAccount : null,\n isActive: activeAccount?.providerId === id,\n isConnected: accounts.some(\n (accounts) => accounts.providerId === id\n ),\n isWalletConnect,\n connect: () => connect(id),\n disconnect: () => disconnect(id),\n reconnect: () => reconnect(id),\n setActive: () => setActive(id),\n selectAccount: (account: string) =>\n selectActiveAccount(id, account),\n };\n }),\n [accounts, activeAccount]\n );\n\n const getAccountsByProvider = (id: PROVIDER_ID) => {\n return accounts.filter((account) => account.providerId === id);\n };\n\n const reconnectProviders = async () => {\n Object.values(providers).forEach(({ id, isActive, isConnected }) => {\n if (isActive || isConnected) {\n reconnect(id);\n }\n });\n };\n\n const disconnectWCSessions = async (id: PROVIDER_ID) => {\n if (!walletProviders[id].isWalletConnect) {\n return;\n }\n\n const wcSessions = Object.values(providers).filter(\n (p) => p.id !== id && p.isWalletConnect && (p.isConnected || p.isActive)\n );\n\n for (const session of wcSessions) {\n await disconnect(session.id);\n }\n };\n\n const connect = async (id: PROVIDER_ID) => {\n try {\n await disconnectWCSessions(id);\n\n const walletClient = await getWalletClient(id);\n const walletInfo = await walletClient.connect(() => disconnect(id));\n\n if (!walletInfo || !walletInfo.accounts.length) {\n throw new Error(\"Failed to connect \" + id);\n }\n\n setActiveAccount(walletInfo.accounts[0]);\n addAccounts(walletInfo.accounts);\n } catch (e) {\n console.error(e);\n }\n };\n\n const setActive = async (id: PROVIDER_ID) => {\n try {\n await disconnectWCSessions(id);\n const accounts = getAccountsByProvider(id);\n setActiveAccount(accounts[0]);\n } catch (e) {\n console.error(e);\n }\n };\n\n const selectActiveAccount = async (\n providerId: PROVIDER_ID,\n address: string\n ) => {\n try {\n const account = accounts.find(\n (acct) => acct.address === address && acct.providerId === providerId\n );\n\n if (!account) {\n throw new Error(`No accounts with address ${address} found.`);\n }\n\n await disconnectWCSessions(account.providerId);\n setActiveAccount(account);\n } catch (e) {\n console.error(e);\n }\n };\n\n const reconnect = async (id: PROVIDER_ID) => {\n try {\n const walletClient = await getWalletClient(id);\n const walletInfo = await walletClient?.reconnect(() => disconnect(id));\n\n if (walletInfo && walletInfo.accounts.length) {\n addAccounts(walletInfo.accounts);\n }\n } catch (e) {\n console.error(e);\n disconnect(id);\n }\n };\n\n const disconnect = async (id: PROVIDER_ID) => {\n try {\n const walletClient = await getWalletClient(id);\n\n walletClient?.disconnect();\n } catch (e) {\n console.error(e);\n } finally {\n clearActiveAccount(id);\n removeAccounts(id);\n }\n };\n\n return {\n providers,\n activeAccount,\n accounts,\n connect,\n reconnect,\n disconnect,\n selectActiveAccount,\n setActive,\n reconnectProviders,\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FBAV\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getClientMeta = exports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = exports.isBrowser = exports.isNode = exports.isMobile = exports.isIOS = exports.isAndroid = exports.detectOS = exports.detectEnv = void 0;\nconst tslib_1 = require(\"tslib\");\nconst windowMetadata = tslib_1.__importStar(require(\"@walletconnect/window-metadata\"));\nconst windowGetters = tslib_1.__importStar(require(\"@walletconnect/window-getters\"));\nconst detect_browser_1 = require(\"detect-browser\");\nfunction detectEnv(userAgent) {\n return (0, detect_browser_1.detect)(userAgent);\n}\nexports.detectEnv = detectEnv;\nfunction detectOS() {\n const env = detectEnv();\n return env && env.os ? env.os : undefined;\n}\nexports.detectOS = detectOS;\nfunction isAndroid() {\n const os = detectOS();\n return os ? os.toLowerCase().includes(\"android\") : false;\n}\nexports.isAndroid = isAndroid;\nfunction isIOS() {\n const os = detectOS();\n return os\n ? os.toLowerCase().includes(\"ios\") ||\n (os.toLowerCase().includes(\"mac\") && navigator.maxTouchPoints > 1)\n : false;\n}\nexports.isIOS = isIOS;\nfunction isMobile() {\n const os = detectOS();\n return os ? isAndroid() || isIOS() : false;\n}\nexports.isMobile = isMobile;\nfunction isNode() {\n const env = detectEnv();\n const result = env && env.name ? env.name.toLowerCase() === \"node\" : false;\n return result;\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n const result = !isNode() && !!(0, exports.getNavigator)();\n return result;\n}\nexports.isBrowser = isBrowser;\nexports.getFromWindow = windowGetters.getFromWindow;\nexports.getFromWindowOrThrow = windowGetters.getFromWindowOrThrow;\nexports.getDocumentOrThrow = windowGetters.getDocumentOrThrow;\nexports.getDocument = windowGetters.getDocument;\nexports.getNavigatorOrThrow = windowGetters.getNavigatorOrThrow;\nexports.getNavigator = windowGetters.getNavigator;\nexports.getLocationOrThrow = windowGetters.getLocationOrThrow;\nexports.getLocation = windowGetters.getLocation;\nexports.getCryptoOrThrow = windowGetters.getCryptoOrThrow;\nexports.getCrypto = windowGetters.getCrypto;\nexports.getLocalStorageOrThrow = windowGetters.getLocalStorageOrThrow;\nexports.getLocalStorage = windowGetters.getLocalStorage;\nfunction getClientMeta() {\n return windowMetadata.getWindowMetadata();\n}\nexports.getClientMeta = getClientMeta;\n//# sourceMappingURL=browser.js.map","export function safeJsonParse(value) {\n if (typeof value !== \"string\") {\n throw new Error(`Cannot safe json parse value of type ${typeof value}`);\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return value;\n }\n}\nexport function safeJsonStringify(value) {\n return typeof value === \"string\" ? value : JSON.stringify(value);\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.safeJsonStringify = exports.safeJsonParse = void 0;\nconst tslib_1 = require(\"tslib\");\nconst safeJson = tslib_1.__importStar(require(\"@walletconnect/safe-json\"));\nexports.safeJsonParse = safeJson.safeJsonParse;\nexports.safeJsonStringify = safeJson.safeJsonStringify;\n//# sourceMappingURL=json.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeLocal = exports.getLocal = exports.setLocal = void 0;\nconst json_1 = require(\"./json\");\nconst browser_1 = require(\"./browser\");\nfunction setLocal(key, data) {\n const raw = (0, json_1.safeJsonStringify)(data);\n const local = (0, browser_1.getLocalStorage)();\n if (local) {\n local.setItem(key, raw);\n }\n}\nexports.setLocal = setLocal;\nfunction getLocal(key) {\n let data = null;\n let raw = null;\n const local = (0, browser_1.getLocalStorage)();\n if (local) {\n raw = local.getItem(key);\n }\n data = raw ? (0, json_1.safeJsonParse)(raw) : raw;\n return data;\n}\nexports.getLocal = getLocal;\nfunction removeLocal(key) {\n const local = (0, browser_1.getLocalStorage)();\n if (local) {\n local.removeItem(key);\n }\n}\nexports.removeLocal = removeLocal;\n//# sourceMappingURL=local.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMobileLinkRegistry = exports.getMobileRegistryEntry = exports.saveMobileLinkInfo = exports.formatIOSMobile = exports.mobileLinkChoiceKey = void 0;\nconst local_1 = require(\"./local\");\nexports.mobileLinkChoiceKey = \"WALLETCONNECT_DEEPLINK_CHOICE\";\nfunction formatIOSMobile(uri, entry) {\n const encodedUri = encodeURIComponent(uri);\n return entry.universalLink\n ? `${entry.universalLink}/wc?uri=${encodedUri}`\n : entry.deepLink\n ? `${entry.deepLink}${entry.deepLink.endsWith(\":\") ? \"//\" : \"/\"}wc?uri=${encodedUri}`\n : \"\";\n}\nexports.formatIOSMobile = formatIOSMobile;\nfunction saveMobileLinkInfo(data) {\n const focusUri = data.href.split(\"?\")[0];\n (0, local_1.setLocal)(exports.mobileLinkChoiceKey, Object.assign(Object.assign({}, data), { href: focusUri }));\n}\nexports.saveMobileLinkInfo = saveMobileLinkInfo;\nfunction getMobileRegistryEntry(registry, name) {\n return registry.filter((entry) => entry.name.toLowerCase().includes(name.toLowerCase()))[0];\n}\nexports.getMobileRegistryEntry = getMobileRegistryEntry;\nfunction getMobileLinkRegistry(registry, whitelist) {\n let links = registry;\n if (whitelist) {\n links = whitelist.map((name) => getMobileRegistryEntry(registry, name)).filter(Boolean);\n }\n return links;\n}\nexports.getMobileLinkRegistry = getMobileLinkRegistry;\n//# sourceMappingURL=mobile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatMobileRegistry = exports.formatMobileRegistryEntry = exports.getDappRegistryUrl = exports.getWalletRegistryUrl = void 0;\nconst API_URL = \"https://registry.walletconnect.com\";\nfunction getWalletRegistryUrl() {\n return API_URL + \"/api/v2/wallets\";\n}\nexports.getWalletRegistryUrl = getWalletRegistryUrl;\nfunction getDappRegistryUrl() {\n return API_URL + \"/api/v2/dapps\";\n}\nexports.getDappRegistryUrl = getDappRegistryUrl;\nfunction formatMobileRegistryEntry(entry, platform = \"mobile\") {\n var _a;\n return {\n name: entry.name || \"\",\n shortName: entry.metadata.shortName || \"\",\n color: entry.metadata.colors.primary || \"\",\n logo: (_a = entry.image_url.sm) !== null && _a !== void 0 ? _a : \"\",\n universalLink: entry[platform].universal || \"\",\n deepLink: entry[platform].native || \"\",\n };\n}\nexports.formatMobileRegistryEntry = formatMobileRegistryEntry;\nfunction formatMobileRegistry(registry, platform = \"mobile\") {\n return Object.values(registry)\n .filter(entry => !!entry[platform].universal || !!entry[platform].native)\n .map((entry) => formatMobileRegistryEntry(entry, platform));\n}\nexports.formatMobileRegistry = formatMobileRegistry;\n//# sourceMappingURL=registry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./browser\"), exports);\ntslib_1.__exportStar(require(\"./json\"), exports);\ntslib_1.__exportStar(require(\"./local\"), exports);\ntslib_1.__exportStar(require(\"./mobile\"), exports);\ntslib_1.__exportStar(require(\"./registry\"), exports);\n//# sourceMappingURL=index.js.map","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/* Node.js 6.4.0 and up has full support */\nvar hasFullSupport = (function () {\n try {\n if (!Buffer.isEncoding('latin1')) {\n return false\n }\n\n var buf = Buffer.alloc ? Buffer.alloc(4) : new Buffer(4)\n\n buf.fill('ab', 'ucs2')\n\n return (buf.toString('hex') === '61006200')\n } catch (_) {\n return false\n }\n}())\n\nfunction isSingleByte (val) {\n return (val.length === 1 && val.charCodeAt(0) < 256)\n}\n\nfunction fillWithNumber (buffer, val, start, end) {\n if (start < 0 || end > buffer.length) {\n throw new RangeError('Out of range index')\n }\n\n start = start >>> 0\n end = end === undefined ? buffer.length : end >>> 0\n\n if (end > start) {\n buffer.fill(val, start, end)\n }\n\n return buffer\n}\n\nfunction fillWithBuffer (buffer, val, start, end) {\n if (start < 0 || end > buffer.length) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return buffer\n }\n\n start = start >>> 0\n end = end === undefined ? buffer.length : end >>> 0\n\n var pos = start\n var len = val.length\n while (pos <= (end - len)) {\n val.copy(buffer, pos)\n pos += len\n }\n\n if (pos !== end) {\n val.copy(buffer, pos, 0, end - pos)\n }\n\n return buffer\n}\n\nfunction fill (buffer, val, start, end, encoding) {\n if (hasFullSupport) {\n return buffer.fill(val, start, end, encoding)\n }\n\n if (typeof val === 'number') {\n return fillWithNumber(buffer, val, start, end)\n }\n\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = buffer.length\n } else if (typeof end === 'string') {\n encoding = end\n end = buffer.length\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n\n if (encoding === 'latin1') {\n encoding = 'binary'\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n if (val === '') {\n return fillWithNumber(buffer, 0, start, end)\n }\n\n if (isSingleByte(val)) {\n return fillWithNumber(buffer, val.charCodeAt(0), start, end)\n }\n\n val = new Buffer(val, encoding)\n }\n\n if (Buffer.isBuffer(val)) {\n return fillWithBuffer(buffer, val, start, end)\n }\n\n // Other values (e.g. undefined, boolean, object) results in zero-fill\n return fillWithNumber(buffer, 0, start, end)\n}\n\nmodule.exports = fill\n","function allocUnsafe (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n }\n\n if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n\n if (Buffer.allocUnsafe) {\n return Buffer.allocUnsafe(size)\n } else {\n return new Buffer(size)\n }\n}\n\nmodule.exports = allocUnsafe\n","var bufferFill = require('buffer-fill')\nvar allocUnsafe = require('buffer-alloc-unsafe')\n\nmodule.exports = function alloc (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n }\n\n if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n\n if (Buffer.alloc) {\n return Buffer.alloc(size, fill, encoding)\n }\n\n var buffer = allocUnsafe(size)\n\n if (size === 0) {\n return buffer\n }\n\n if (fill === undefined) {\n return bufferFill(buffer, 0)\n }\n\n if (typeof encoding !== 'string') {\n encoding = undefined\n }\n\n return bufferFill(buffer, fill, encoding)\n}\n","/* eslint-disable node/no-deprecated-api */\n\nvar toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer !== 'undefined' &&\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n","module.exports.alloc = require('buffer-alloc')\nmodule.exports.from = require('buffer-from')\n","var toSJISFunction\nvar CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n var digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","var BufferUtil = require('../utils/buffer')\n\n/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = BufferUtil.alloc(size * size)\n this.reservedBit = BufferUtil.alloc(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n var index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nvar getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n var posCount = Math.floor(version / 7) + 2\n var size = getSymbolSize(version)\n var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n var positions = [size - 7] // Last coord is always (size - 7)\n\n for (var i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * var pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var coords = []\n var pos = exports.getRowColCoords(version)\n var posLength = pos.length\n\n for (var i = 0; i < posLength; i++) {\n for (var j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","var getSymbolSize = require('./utils').getSymbolSize\nvar FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n var size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nvar PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n var size = data.size\n var points = 0\n var sameCountCol = 0\n var sameCountRow = 0\n var lastCol = null\n var lastRow = null\n\n for (var row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (var col = 0; col < size; col++) {\n var module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n var size = data.size\n var points = 0\n\n for (var row = 0; row < size - 1; row++) {\n for (var col = 0; col < size - 1; col++) {\n var last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n var size = data.size\n var points = 0\n var bitsCol = 0\n var bitsRow = 0\n\n for (var row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (var col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n var darkCount = 0\n var modulesCount = data.data.length\n\n for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n var size = data.size\n\n for (var col = 0; col < size; col++) {\n for (var row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n var numPatterns = Object.keys(exports.Patterns).length\n var bestPattern = 0\n var lowerPenalty = Infinity\n\n for (var p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n var penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","var ECLevel = require('./error-correction-level')\r\n\r\nvar EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nvar EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","var BufferUtil = require('../utils/buffer')\n\nvar EXP_TABLE = BufferUtil.alloc(512)\nvar LOG_TABLE = BufferUtil.alloc(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n var x = 1\n for (var i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","var BufferUtil = require('../utils/buffer')\nvar GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Buffer} p1 Polynomial\n * @param {Buffer} p2 Polynomial\n * @return {Buffer} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n var coeff = BufferUtil.alloc(p1.length + p2.length - 1)\n\n for (var i = 0; i < p1.length; i++) {\n for (var j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Buffer} divident Polynomial\n * @param {Buffer} divisor Polynomial\n * @return {Buffer} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n var result = BufferUtil.from(divident)\n\n while ((result.length - divisor.length) >= 0) {\n var coeff = result[0]\n\n for (var i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n var offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Buffer} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n var poly = BufferUtil.from([1])\n for (var i = 0; i < degree; i++) {\n poly = exports.mul(poly, [1, GF.exp(i)])\n }\n\n return poly\n}\n","var BufferUtil = require('../utils/buffer')\nvar Polynomial = require('./polynomial')\nvar Buffer = require('buffer').Buffer\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Buffer} data Buffer containing input data\n * @return {Buffer} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n var pad = BufferUtil.alloc(this.degree)\n var paddedData = Buffer.concat([data, pad], data.length + this.degree)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n var remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n var start = this.degree - remainder.length\n if (start > 0) {\n var buff = BufferUtil.alloc(this.degree)\n remainder.copy(buff, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","var numeric = '[0-9]+'\nvar alphanumeric = '[A-Z $%*+\\\\-./:]+'\nvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nvar TEST_KANJI = new RegExp('^' + kanji + '$')\nvar TEST_NUMERIC = new RegExp('^' + numeric + '$')\nvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","var VersionCheck = require('./version-check')\nvar Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n var lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var Utils = require('./utils')\nvar ECCode = require('./error-correction-code')\nvar ECLevel = require('./error-correction-level')\nvar Mode = require('./mode')\nvar VersionCheck = require('./version-check')\nvar isArray = require('isarray')\n\n// Generator polynomial used to encode version information\nvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nvar G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n var totalBits = 0\n\n segments.forEach(function (data) {\n var reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n var length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n var seg\n\n var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n var d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","var Utils = require('./utils')\n\nvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nvar G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n var data = ((errorCorrectionLevel.bit << 3) | mask)\n var d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","var Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n var i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n var remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","var Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nvar ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n var i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","var BufferUtil = require('../utils/buffer')\nvar Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n this.data = BufferUtil.from(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (var i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","var Mode = require('./mode')\nvar Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n var i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n var value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin <self@wyattbaldwin.com>\n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","var Mode = require('./mode')\nvar NumericData = require('./numeric-data')\nvar AlphanumericData = require('./alphanumeric-data')\nvar ByteData = require('./byte-data')\nvar KanjiData = require('./kanji-data')\nvar Regex = require('./regex')\nvar Utils = require('./utils')\nvar dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n var segments = []\n var result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n var byteSegs\n var kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n var nodes = []\n for (var i = 0; i < segs.length; i++) {\n var seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n var table = {}\n var graph = {'start': {}}\n var prevNodeIds = ['start']\n\n for (var i = 0; i < nodes.length; i++) {\n var nodeGroup = nodes[i]\n var currentNodeIds = []\n\n for (var j = 0; j < nodeGroup.length; j++) {\n var node = nodeGroup[j]\n var key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (var n = 0; n < prevNodeIds.length; n++) {\n var prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]]['end'] = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n var mode\n var bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n var nodes = buildNodes(segs)\n var graph = buildGraph(nodes, version)\n var path = dijkstra.find_path(graph.map, 'start', 'end')\n\n var optimizedSegs = []\n for (var i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","var BufferUtil = require('../utils/buffer')\nvar Utils = require('./utils')\nvar ECLevel = require('./error-correction-level')\nvar BitBuffer = require('./bit-buffer')\nvar BitMatrix = require('./bit-matrix')\nvar AlignmentPattern = require('./alignment-pattern')\nvar FinderPattern = require('./finder-pattern')\nvar MaskPattern = require('./mask-pattern')\nvar ECCode = require('./error-correction-code')\nvar ReedSolomonEncoder = require('./reed-solomon-encoder')\nvar Version = require('./version')\nvar FormatInfo = require('./format-info')\nvar Mode = require('./mode')\nvar Segments = require('./segments')\nvar isArray = require('isarray')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n var size = matrix.size\n var pos = FinderPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n var size = matrix.size\n\n for (var r = 8; r < size - 8; r++) {\n var value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n var pos = AlignmentPattern.getPositions(version)\n\n for (var i = 0; i < pos.length; i++) {\n var row = pos[i][0]\n var col = pos[i][1]\n\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n var size = matrix.size\n var bits = Version.getEncodedBits(version)\n var row, col, mod\n\n for (var i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n var size = matrix.size\n var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n var i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Buffer} data Data codewords\n */\nfunction setupData (matrix, data) {\n var size = matrix.size\n var inc = -1\n var row = size - 1\n var bitIndex = 7\n var byteIndex = 0\n\n for (var col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (var c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n var dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n var buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (var i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Buffer} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n var totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n var dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n var blocksInGroup2 = totalCodewords % ecTotalBlocks\n var blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n var rs = new ReedSolomonEncoder(ecCount)\n\n var offset = 0\n var dcData = new Array(ecTotalBlocks)\n var ecData = new Array(ecTotalBlocks)\n var maxDataSize = 0\n var buffer = BufferUtil.from(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (var b = 0; b < ecTotalBlocks; b++) {\n var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n var data = BufferUtil.alloc(totalCodewords)\n var index = 0\n var i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n var segments\n\n if (isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n var estimatedVersion = version\n\n if (!estimatedVersion) {\n var rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments,\n errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n var bestVersion = Version.getBestVersionForData(segments,\n errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n var dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n var moduleCount = Utils.getSymbolSize(version)\n var modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n var errorCorrectionLevel = ECLevel.M\n var version\n var mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","'use strict';\n\n\nvar util = require('util');\nvar Stream = require('stream');\n\n\nvar ChunkStream = module.exports = function() {\n Stream.call(this);\n\n this._buffers = [];\n this._buffered = 0;\n\n this._reads = [];\n this._paused = false;\n\n this._encoding = 'utf8';\n this.writable = true;\n};\nutil.inherits(ChunkStream, Stream);\n\n\nChunkStream.prototype.read = function(length, callback) {\n\n this._reads.push({\n length: Math.abs(length), // if length < 0 then at most this length\n allowLess: length < 0,\n func: callback\n });\n\n process.nextTick(function() {\n this._process();\n\n // its paused and there is not enought data then ask for more\n if (this._paused && this._reads.length > 0) {\n this._paused = false;\n\n this.emit('drain');\n }\n }.bind(this));\n};\n\nChunkStream.prototype.write = function(data, encoding) {\n\n if (!this.writable) {\n this.emit('error', new Error('Stream not writable'));\n return false;\n }\n\n var dataBuffer;\n if (Buffer.isBuffer(data)) {\n dataBuffer = data;\n }\n else {\n dataBuffer = new Buffer(data, encoding || this._encoding);\n }\n\n this._buffers.push(dataBuffer);\n this._buffered += dataBuffer.length;\n\n this._process();\n\n // ok if there are no more read requests\n if (this._reads && this._reads.length === 0) {\n this._paused = true;\n }\n\n return this.writable && !this._paused;\n};\n\nChunkStream.prototype.end = function(data, encoding) {\n\n if (data) {\n this.write(data, encoding);\n }\n\n this.writable = false;\n\n // already destroyed\n if (!this._buffers) {\n return;\n }\n\n // enqueue or handle end\n if (this._buffers.length === 0) {\n this._end();\n }\n else {\n this._buffers.push(null);\n this._process();\n }\n};\n\nChunkStream.prototype.destroySoon = ChunkStream.prototype.end;\n\nChunkStream.prototype._end = function() {\n\n if (this._reads.length > 0) {\n this.emit('error',\n new Error('Unexpected end of input')\n );\n }\n\n this.destroy();\n};\n\nChunkStream.prototype.destroy = function() {\n\n if (!this._buffers) {\n return;\n }\n\n this.writable = false;\n this._reads = null;\n this._buffers = null;\n\n this.emit('close');\n};\n\nChunkStream.prototype._processReadAllowingLess = function(read) {\n // ok there is any data so that we can satisfy this request\n this._reads.shift(); // == read\n\n // first we need to peek into first buffer\n var smallerBuf = this._buffers[0];\n\n // ok there is more data than we need\n if (smallerBuf.length > read.length) {\n\n this._buffered -= read.length;\n this._buffers[0] = smallerBuf.slice(read.length);\n\n read.func.call(this, smallerBuf.slice(0, read.length));\n\n }\n else {\n // ok this is less than maximum length so use it all\n this._buffered -= smallerBuf.length;\n this._buffers.shift(); // == smallerBuf\n\n read.func.call(this, smallerBuf);\n }\n};\n\nChunkStream.prototype._processRead = function(read) {\n this._reads.shift(); // == read\n\n var pos = 0;\n var count = 0;\n var data = new Buffer(read.length);\n\n // create buffer for all data\n while (pos < read.length) {\n\n var buf = this._buffers[count++];\n var len = Math.min(buf.length, read.length - pos);\n\n buf.copy(data, pos, 0, len);\n pos += len;\n\n // last buffer wasn't used all so just slice it and leave\n if (len !== buf.length) {\n this._buffers[--count] = buf.slice(len);\n }\n }\n\n // remove all used buffers\n if (count > 0) {\n this._buffers.splice(0, count);\n }\n\n this._buffered -= read.length;\n\n read.func.call(this, data);\n};\n\nChunkStream.prototype._process = function() {\n\n try {\n // as long as there is any data and read requests\n while (this._buffered > 0 && this._reads && this._reads.length > 0) {\n\n var read = this._reads[0];\n\n // read any data (but no more than length)\n if (read.allowLess) {\n this._processReadAllowingLess(read);\n\n }\n else if (this._buffered >= read.length) {\n // ok we can meet some expectations\n\n this._processRead(read);\n }\n else {\n // not enought data to satisfy first request in queue\n // so we need to wait for more\n break;\n }\n }\n\n if (this._buffers && !this.writable) {\n this._end();\n }\n }\n catch (ex) {\n this.emit('error', ex);\n }\n};\n","'use strict';\n\n// Adam 7\n// 0 1 2 3 4 5 6 7\n// 0 x 6 4 6 x 6 4 6\n// 1 7 7 7 7 7 7 7 7\n// 2 5 6 5 6 5 6 5 6\n// 3 7 7 7 7 7 7 7 7\n// 4 3 6 4 6 3 6 4 6\n// 5 7 7 7 7 7 7 7 7\n// 6 5 6 5 6 5 6 5 6\n// 7 7 7 7 7 7 7 7 7\n\n\nvar imagePasses = [\n { // pass 1 - 1px\n x: [0],\n y: [0]\n },\n { // pass 2 - 1px\n x: [4],\n y: [0]\n },\n { // pass 3 - 2px\n x: [0, 4],\n y: [4]\n },\n { // pass 4 - 4px\n x: [2, 6],\n y: [0, 4]\n },\n { // pass 5 - 8px\n x: [0, 2, 4, 6],\n y: [2, 6]\n },\n { // pass 6 - 16px\n x: [1, 3, 5, 7],\n y: [0, 2, 4, 6]\n },\n { // pass 7 - 32px\n x: [0, 1, 2, 3, 4, 5, 6, 7],\n y: [1, 3, 5, 7]\n }\n];\n\nexports.getImagePasses = function(width, height) {\n var images = [];\n var xLeftOver = width % 8;\n var yLeftOver = height % 8;\n var xRepeats = (width - xLeftOver) / 8;\n var yRepeats = (height - yLeftOver) / 8;\n for (var i = 0; i < imagePasses.length; i++) {\n var pass = imagePasses[i];\n var passWidth = xRepeats * pass.x.length;\n var passHeight = yRepeats * pass.y.length;\n for (var j = 0; j < pass.x.length; j++) {\n if (pass.x[j] < xLeftOver) {\n passWidth++;\n }\n else {\n break;\n }\n }\n for (j = 0; j < pass.y.length; j++) {\n if (pass.y[j] < yLeftOver) {\n passHeight++;\n }\n else {\n break;\n }\n }\n if (passWidth > 0 && passHeight > 0) {\n images.push({ width: passWidth, height: passHeight, index: i });\n }\n }\n return images;\n};\n\nexports.getInterlaceIterator = function(width) {\n return function(x, y, pass) {\n var outerXLeftOver = x % imagePasses[pass].x.length;\n var outerX = (((x - outerXLeftOver) / imagePasses[pass].x.length) * 8) + imagePasses[pass].x[outerXLeftOver];\n var outerYLeftOver = y % imagePasses[pass].y.length;\n var outerY = (((y - outerYLeftOver) / imagePasses[pass].y.length) * 8) + imagePasses[pass].y[outerYLeftOver];\n return (outerX * 4) + (outerY * width * 4);\n };\n};","'use strict';\r\n\r\nmodule.exports = function paethPredictor(left, above, upLeft) {\r\n\r\n var paeth = left + above - upLeft;\r\n var pLeft = Math.abs(paeth - left);\r\n var pAbove = Math.abs(paeth - above);\r\n var pUpLeft = Math.abs(paeth - upLeft);\r\n\r\n if (pLeft <= pAbove && pLeft <= pUpLeft) {\r\n return left;\r\n }\r\n if (pAbove <= pUpLeft) {\r\n return above;\r\n }\r\n return upLeft;\r\n};","'use strict';\n\nvar interlaceUtils = require('./interlace');\nvar paethPredictor = require('./paeth-predictor');\n\nfunction getByteWidth(width, bpp, depth) {\n var byteWidth = width * bpp;\n if (depth !== 8) {\n byteWidth = Math.ceil(byteWidth / (8 / depth));\n }\n return byteWidth;\n}\n\nvar Filter = module.exports = function(bitmapInfo, dependencies) {\n\n var width = bitmapInfo.width;\n var height = bitmapInfo.height;\n var interlace = bitmapInfo.interlace;\n var bpp = bitmapInfo.bpp;\n var depth = bitmapInfo.depth;\n\n this.read = dependencies.read;\n this.write = dependencies.write;\n this.complete = dependencies.complete;\n\n this._imageIndex = 0;\n this._images = [];\n if (interlace) {\n var passes = interlaceUtils.getImagePasses(width, height);\n for (var i = 0; i < passes.length; i++) {\n this._images.push({\n byteWidth: getByteWidth(passes[i].width, bpp, depth),\n height: passes[i].height,\n lineIndex: 0\n });\n }\n }\n else {\n this._images.push({\n byteWidth: getByteWidth(width, bpp, depth),\n height: height,\n lineIndex: 0\n });\n }\n\n // when filtering the line we look at the pixel to the left\n // the spec also says it is done on a byte level regardless of the number of pixels\n // so if the depth is byte compatible (8 or 16) we subtract the bpp in order to compare back\n // a pixel rather than just a different byte part. However if we are sub byte, we ignore.\n if (depth === 8) {\n this._xComparison = bpp;\n }\n else if (depth === 16) {\n this._xComparison = bpp * 2;\n }\n else {\n this._xComparison = 1;\n }\n};\n\nFilter.prototype.start = function() {\n this.read(this._images[this._imageIndex].byteWidth + 1, this._reverseFilterLine.bind(this));\n};\n\nFilter.prototype._unFilterType1 = function(rawData, unfilteredLine, byteWidth) {\n\n var xComparison = this._xComparison;\n var xBiggerThan = xComparison - 1;\n\n for (var x = 0; x < byteWidth; x++) {\n var rawByte = rawData[1 + x];\n var f1Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n unfilteredLine[x] = rawByte + f1Left;\n }\n};\n\nFilter.prototype._unFilterType2 = function(rawData, unfilteredLine, byteWidth) {\n\n var lastLine = this._lastLine;\n\n for (var x = 0; x < byteWidth; x++) {\n var rawByte = rawData[1 + x];\n var f2Up = lastLine ? lastLine[x] : 0;\n unfilteredLine[x] = rawByte + f2Up;\n }\n};\n\nFilter.prototype._unFilterType3 = function(rawData, unfilteredLine, byteWidth) {\n\n var xComparison = this._xComparison;\n var xBiggerThan = xComparison - 1;\n var lastLine = this._lastLine;\n\n for (var x = 0; x < byteWidth; x++) {\n var rawByte = rawData[1 + x];\n var f3Up = lastLine ? lastLine[x] : 0;\n var f3Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n var f3Add = Math.floor((f3Left + f3Up) / 2);\n unfilteredLine[x] = rawByte + f3Add;\n }\n};\n\nFilter.prototype._unFilterType4 = function(rawData, unfilteredLine, byteWidth) {\n\n var xComparison = this._xComparison;\n var xBiggerThan = xComparison - 1;\n var lastLine = this._lastLine;\n\n for (var x = 0; x < byteWidth; x++) {\n var rawByte = rawData[1 + x];\n var f4Up = lastLine ? lastLine[x] : 0;\n var f4Left = x > xBiggerThan ? unfilteredLine[x - xComparison] : 0;\n var f4UpLeft = x > xBiggerThan && lastLine ? lastLine[x - xComparison] : 0;\n var f4Add = paethPredictor(f4Left, f4Up, f4UpLeft);\n unfilteredLine[x] = rawByte + f4Add;\n }\n};\n\nFilter.prototype._reverseFilterLine = function(rawData) {\n\n var filter = rawData[0];\n var unfilteredLine;\n var currentImage = this._images[this._imageIndex];\n var byteWidth = currentImage.byteWidth;\n\n if (filter === 0) {\n unfilteredLine = rawData.slice(1, byteWidth + 1);\n }\n else {\n\n unfilteredLine = new Buffer(byteWidth);\n\n switch (filter) {\n case 1:\n this._unFilterType1(rawData, unfilteredLine, byteWidth);\n break;\n case 2:\n this._unFilterType2(rawData, unfilteredLine, byteWidth);\n break;\n case 3:\n this._unFilterType3(rawData, unfilteredLine, byteWidth);\n break;\n case 4:\n this._unFilterType4(rawData, unfilteredLine, byteWidth);\n break;\n default:\n throw new Error('Unrecognised filter type - ' + filter);\n }\n }\n\n this.write(unfilteredLine);\n\n currentImage.lineIndex++;\n if (currentImage.lineIndex >= currentImage.height) {\n this._lastLine = null;\n this._imageIndex++;\n currentImage = this._images[this._imageIndex];\n }\n else {\n this._lastLine = unfilteredLine;\n }\n\n if (currentImage) {\n // read, using the byte width that may be from the new current image\n this.read(currentImage.byteWidth + 1, this._reverseFilterLine.bind(this));\n }\n else {\n this._lastLine = null;\n this.complete();\n }\n};\n","'use strict';\n\nvar util = require('util');\nvar ChunkStream = require('./chunkstream');\nvar Filter = require('./filter-parse');\n\n\nvar FilterAsync = module.exports = function(bitmapInfo) {\n ChunkStream.call(this);\n\n var buffers = [];\n var that = this;\n this._filter = new Filter(bitmapInfo, {\n read: this.read.bind(this),\n write: function(buffer) {\n buffers.push(buffer);\n },\n complete: function() {\n that.emit('complete', Buffer.concat(buffers));\n }\n });\n\n this._filter.start();\n};\nutil.inherits(FilterAsync, ChunkStream);\n","'use strict';\n\n\nmodule.exports = {\n\n PNG_SIGNATURE: [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a],\n\n TYPE_IHDR: 0x49484452,\n TYPE_IEND: 0x49454e44,\n TYPE_IDAT: 0x49444154,\n TYPE_PLTE: 0x504c5445,\n TYPE_tRNS: 0x74524e53, // eslint-disable-line camelcase\n TYPE_gAMA: 0x67414d41, // eslint-disable-line camelcase\n\n // color-type bits\n COLORTYPE_GRAYSCALE: 0,\n COLORTYPE_PALETTE: 1,\n COLORTYPE_COLOR: 2,\n COLORTYPE_ALPHA: 4, // e.g. grayscale and alpha\n\n // color-type combinations\n COLORTYPE_PALETTE_COLOR: 3,\n COLORTYPE_COLOR_ALPHA: 6,\n\n COLORTYPE_TO_BPP_MAP: {\n 0: 1,\n 2: 3,\n 3: 1,\n 4: 2,\n 6: 4\n },\n\n GAMMA_DIVISION: 100000\n};\n","'use strict';\n\nvar crcTable = [];\n\n(function() {\n for (var i = 0; i < 256; i++) {\n var currentCrc = i;\n for (var j = 0; j < 8; j++) {\n if (currentCrc & 1) {\n currentCrc = 0xedb88320 ^ (currentCrc >>> 1);\n }\n else {\n currentCrc = currentCrc >>> 1;\n }\n }\n crcTable[i] = currentCrc;\n }\n}());\n\nvar CrcCalculator = module.exports = function() {\n this._crc = -1;\n};\n\nCrcCalculator.prototype.write = function(data) {\n\n for (var i = 0; i < data.length; i++) {\n this._crc = crcTable[(this._crc ^ data[i]) & 0xff] ^ (this._crc >>> 8);\n }\n return true;\n};\n\nCrcCalculator.prototype.crc32 = function() {\n return this._crc ^ -1;\n};\n\n\nCrcCalculator.crc32 = function(buf) {\n\n var crc = -1;\n for (var i = 0; i < buf.length; i++) {\n crc = crcTable[(crc ^ buf[i]) & 0xff] ^ (crc >>> 8);\n }\n return crc ^ -1;\n};\n","'use strict';\n\nvar constants = require('./constants');\nvar CrcCalculator = require('./crc');\n\n\nvar Parser = module.exports = function(options, dependencies) {\n\n this._options = options;\n options.checkCRC = options.checkCRC !== false;\n\n this._hasIHDR = false;\n this._hasIEND = false;\n this._emittedHeadersFinished = false;\n\n // input flags/metadata\n this._palette = [];\n this._colorType = 0;\n\n this._chunks = {};\n this._chunks[constants.TYPE_IHDR] = this._handleIHDR.bind(this);\n this._chunks[constants.TYPE_IEND] = this._handleIEND.bind(this);\n this._chunks[constants.TYPE_IDAT] = this._handleIDAT.bind(this);\n this._chunks[constants.TYPE_PLTE] = this._handlePLTE.bind(this);\n this._chunks[constants.TYPE_tRNS] = this._handleTRNS.bind(this);\n this._chunks[constants.TYPE_gAMA] = this._handleGAMA.bind(this);\n\n this.read = dependencies.read;\n this.error = dependencies.error;\n this.metadata = dependencies.metadata;\n this.gamma = dependencies.gamma;\n this.transColor = dependencies.transColor;\n this.palette = dependencies.palette;\n this.parsed = dependencies.parsed;\n this.inflateData = dependencies.inflateData;\n this.finished = dependencies.finished;\n this.simpleTransparency = dependencies.simpleTransparency;\n this.headersFinished = dependencies.headersFinished || function() {};\n};\n\nParser.prototype.start = function() {\n this.read(constants.PNG_SIGNATURE.length,\n this._parseSignature.bind(this)\n );\n};\n\nParser.prototype._parseSignature = function(data) {\n\n var signature = constants.PNG_SIGNATURE;\n\n for (var i = 0; i < signature.length; i++) {\n if (data[i] !== signature[i]) {\n this.error(new Error('Invalid file signature'));\n return;\n }\n }\n this.read(8, this._parseChunkBegin.bind(this));\n};\n\nParser.prototype._parseChunkBegin = function(data) {\n\n // chunk content length\n var length = data.readUInt32BE(0);\n\n // chunk type\n var type = data.readUInt32BE(4);\n var name = '';\n for (var i = 4; i < 8; i++) {\n name += String.fromCharCode(data[i]);\n }\n\n //console.log('chunk ', name, length);\n\n // chunk flags\n var ancillary = Boolean(data[4] & 0x20); // or critical\n // priv = Boolean(data[5] & 0x20), // or public\n // safeToCopy = Boolean(data[7] & 0x20); // or unsafe\n\n if (!this._hasIHDR && type !== constants.TYPE_IHDR) {\n this.error(new Error('Expected IHDR on beggining'));\n return;\n }\n\n this._crc = new CrcCalculator();\n this._crc.write(new Buffer(name));\n\n if (this._chunks[type]) {\n return this._chunks[type](length);\n }\n\n if (!ancillary) {\n this.error(new Error('Unsupported critical chunk type ' + name));\n return;\n }\n\n this.read(length + 4, this._skipChunk.bind(this));\n};\n\nParser.prototype._skipChunk = function(/*data*/) {\n this.read(8, this._parseChunkBegin.bind(this));\n};\n\nParser.prototype._handleChunkEnd = function() {\n this.read(4, this._parseChunkEnd.bind(this));\n};\n\nParser.prototype._parseChunkEnd = function(data) {\n\n var fileCrc = data.readInt32BE(0);\n var calcCrc = this._crc.crc32();\n\n // check CRC\n if (this._options.checkCRC && calcCrc !== fileCrc) {\n this.error(new Error('Crc error - ' + fileCrc + ' - ' + calcCrc));\n return;\n }\n\n if (!this._hasIEND) {\n this.read(8, this._parseChunkBegin.bind(this));\n }\n};\n\nParser.prototype._handleIHDR = function(length) {\n this.read(length, this._parseIHDR.bind(this));\n};\nParser.prototype._parseIHDR = function(data) {\n\n this._crc.write(data);\n\n var width = data.readUInt32BE(0);\n var height = data.readUInt32BE(4);\n var depth = data[8];\n var colorType = data[9]; // bits: 1 palette, 2 color, 4 alpha\n var compr = data[10];\n var filter = data[11];\n var interlace = data[12];\n\n // console.log(' width', width, 'height', height,\n // 'depth', depth, 'colorType', colorType,\n // 'compr', compr, 'filter', filter, 'interlace', interlace\n // );\n\n if (depth !== 8 && depth !== 4 && depth !== 2 && depth !== 1 && depth !== 16) {\n this.error(new Error('Unsupported bit depth ' + depth));\n return;\n }\n if (!(colorType in constants.COLORTYPE_TO_BPP_MAP)) {\n this.error(new Error('Unsupported color type'));\n return;\n }\n if (compr !== 0) {\n this.error(new Error('Unsupported compression method'));\n return;\n }\n if (filter !== 0) {\n this.error(new Error('Unsupported filter method'));\n return;\n }\n if (interlace !== 0 && interlace !== 1) {\n this.error(new Error('Unsupported interlace method'));\n return;\n }\n\n this._colorType = colorType;\n\n var bpp = constants.COLORTYPE_TO_BPP_MAP[this._colorType];\n\n this._hasIHDR = true;\n\n this.metadata({\n width: width,\n height: height,\n depth: depth,\n interlace: Boolean(interlace),\n palette: Boolean(colorType & constants.COLORTYPE_PALETTE),\n color: Boolean(colorType & constants.COLORTYPE_COLOR),\n alpha: Boolean(colorType & constants.COLORTYPE_ALPHA),\n bpp: bpp,\n colorType: colorType\n });\n\n this._handleChunkEnd();\n};\n\n\nParser.prototype._handlePLTE = function(length) {\n this.read(length, this._parsePLTE.bind(this));\n};\nParser.prototype._parsePLTE = function(data) {\n\n this._crc.write(data);\n\n var entries = Math.floor(data.length / 3);\n // console.log('Palette:', entries);\n\n for (var i = 0; i < entries; i++) {\n this._palette.push([\n data[i * 3],\n data[i * 3 + 1],\n data[i * 3 + 2],\n 0xff\n ]);\n }\n\n this.palette(this._palette);\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleTRNS = function(length) {\n this.simpleTransparency();\n this.read(length, this._parseTRNS.bind(this));\n};\nParser.prototype._parseTRNS = function(data) {\n\n this._crc.write(data);\n\n // palette\n if (this._colorType === constants.COLORTYPE_PALETTE_COLOR) {\n if (this._palette.length === 0) {\n this.error(new Error('Transparency chunk must be after palette'));\n return;\n }\n if (data.length > this._palette.length) {\n this.error(new Error('More transparent colors than palette size'));\n return;\n }\n for (var i = 0; i < data.length; i++) {\n this._palette[i][3] = data[i];\n }\n this.palette(this._palette);\n }\n\n // for colorType 0 (grayscale) and 2 (rgb)\n // there might be one gray/color defined as transparent\n if (this._colorType === constants.COLORTYPE_GRAYSCALE) {\n // grey, 2 bytes\n this.transColor([data.readUInt16BE(0)]);\n }\n if (this._colorType === constants.COLORTYPE_COLOR) {\n this.transColor([data.readUInt16BE(0), data.readUInt16BE(2), data.readUInt16BE(4)]);\n }\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleGAMA = function(length) {\n this.read(length, this._parseGAMA.bind(this));\n};\nParser.prototype._parseGAMA = function(data) {\n\n this._crc.write(data);\n this.gamma(data.readUInt32BE(0) / constants.GAMMA_DIVISION);\n\n this._handleChunkEnd();\n};\n\nParser.prototype._handleIDAT = function(length) {\n if (!this._emittedHeadersFinished) {\n this._emittedHeadersFinished = true;\n this.headersFinished();\n }\n this.read(-length, this._parseIDAT.bind(this, length));\n};\nParser.prototype._parseIDAT = function(length, data) {\n\n this._crc.write(data);\n\n if (this._colorType === constants.COLORTYPE_PALETTE_COLOR && this._palette.length === 0) {\n throw new Error('Expected palette not found');\n }\n\n this.inflateData(data);\n var leftOverLength = length - data.length;\n\n if (leftOverLength > 0) {\n this._handleIDAT(leftOverLength);\n }\n else {\n this._handleChunkEnd();\n }\n};\n\nParser.prototype._handleIEND = function(length) {\n this.read(length, this._parseIEND.bind(this));\n};\nParser.prototype._parseIEND = function(data) {\n\n this._crc.write(data);\n\n this._hasIEND = true;\n this._handleChunkEnd();\n\n if (this.finished) {\n this.finished();\n }\n};\n","'use strict';\n\nvar interlaceUtils = require('./interlace');\n\nvar pixelBppMapper = [\n // 0 - dummy entry\n function() {},\n\n // 1 - L\n // 0: 0, 1: 0, 2: 0, 3: 0xff\n function(pxData, data, pxPos, rawPos) {\n if (rawPos === data.length) {\n throw new Error('Ran out of data');\n }\n\n var pixel = data[rawPos];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = 0xff;\n },\n\n // 2 - LA\n // 0: 0, 1: 0, 2: 0, 3: 1\n function(pxData, data, pxPos, rawPos) {\n if (rawPos + 1 >= data.length) {\n throw new Error('Ran out of data');\n }\n\n var pixel = data[rawPos];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = data[rawPos + 1];\n },\n\n // 3 - RGB\n // 0: 0, 1: 1, 2: 2, 3: 0xff\n function(pxData, data, pxPos, rawPos) {\n if (rawPos + 2 >= data.length) {\n throw new Error('Ran out of data');\n }\n\n pxData[pxPos] = data[rawPos];\n pxData[pxPos + 1] = data[rawPos + 1];\n pxData[pxPos + 2] = data[rawPos + 2];\n pxData[pxPos + 3] = 0xff;\n },\n\n // 4 - RGBA\n // 0: 0, 1: 1, 2: 2, 3: 3\n function(pxData, data, pxPos, rawPos) {\n if (rawPos + 3 >= data.length) {\n throw new Error('Ran out of data');\n }\n\n pxData[pxPos] = data[rawPos];\n pxData[pxPos + 1] = data[rawPos + 1];\n pxData[pxPos + 2] = data[rawPos + 2];\n pxData[pxPos + 3] = data[rawPos + 3];\n }\n];\n\nvar pixelBppCustomMapper = [\n // 0 - dummy entry\n function() {},\n\n // 1 - L\n // 0: 0, 1: 0, 2: 0, 3: 0xff\n function(pxData, pixelData, pxPos, maxBit) {\n var pixel = pixelData[0];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = maxBit;\n },\n\n // 2 - LA\n // 0: 0, 1: 0, 2: 0, 3: 1\n function(pxData, pixelData, pxPos) {\n var pixel = pixelData[0];\n pxData[pxPos] = pixel;\n pxData[pxPos + 1] = pixel;\n pxData[pxPos + 2] = pixel;\n pxData[pxPos + 3] = pixelData[1];\n },\n\n // 3 - RGB\n // 0: 0, 1: 1, 2: 2, 3: 0xff\n function(pxData, pixelData, pxPos, maxBit) {\n pxData[pxPos] = pixelData[0];\n pxData[pxPos + 1] = pixelData[1];\n pxData[pxPos + 2] = pixelData[2];\n pxData[pxPos + 3] = maxBit;\n },\n\n // 4 - RGBA\n // 0: 0, 1: 1, 2: 2, 3: 3\n function(pxData, pixelData, pxPos) {\n pxData[pxPos] = pixelData[0];\n pxData[pxPos + 1] = pixelData[1];\n pxData[pxPos + 2] = pixelData[2];\n pxData[pxPos + 3] = pixelData[3];\n }\n];\n\nfunction bitRetriever(data, depth) {\n\n var leftOver = [];\n var i = 0;\n\n function split() {\n if (i === data.length) {\n throw new Error('Ran out of data');\n }\n var byte = data[i];\n i++;\n var byte8, byte7, byte6, byte5, byte4, byte3, byte2, byte1;\n switch (depth) {\n default:\n throw new Error('unrecognised depth');\n case 16:\n byte2 = data[i];\n i++;\n leftOver.push(((byte << 8) + byte2));\n break;\n case 4:\n byte2 = byte & 0x0f;\n byte1 = byte >> 4;\n leftOver.push(byte1, byte2);\n break;\n case 2:\n byte4 = byte & 3;\n byte3 = byte >> 2 & 3;\n byte2 = byte >> 4 & 3;\n byte1 = byte >> 6 & 3;\n leftOver.push(byte1, byte2, byte3, byte4);\n break;\n case 1:\n byte8 = byte & 1;\n byte7 = byte >> 1 & 1;\n byte6 = byte >> 2 & 1;\n byte5 = byte >> 3 & 1;\n byte4 = byte >> 4 & 1;\n byte3 = byte >> 5 & 1;\n byte2 = byte >> 6 & 1;\n byte1 = byte >> 7 & 1;\n leftOver.push(byte1, byte2, byte3, byte4, byte5, byte6, byte7, byte8);\n break;\n }\n }\n\n return {\n get: function(count) {\n while (leftOver.length < count) {\n split();\n }\n var returner = leftOver.slice(0, count);\n leftOver = leftOver.slice(count);\n return returner;\n },\n resetAfterLine: function() {\n leftOver.length = 0;\n },\n end: function() {\n if (i !== data.length) {\n throw new Error('extra data found');\n }\n }\n };\n}\n\nfunction mapImage8Bit(image, pxData, getPxPos, bpp, data, rawPos) { // eslint-disable-line max-params\n var imageWidth = image.width;\n var imageHeight = image.height;\n var imagePass = image.index;\n for (var y = 0; y < imageHeight; y++) {\n for (var x = 0; x < imageWidth; x++) {\n var pxPos = getPxPos(x, y, imagePass);\n pixelBppMapper[bpp](pxData, data, pxPos, rawPos);\n rawPos += bpp; //eslint-disable-line no-param-reassign\n }\n }\n return rawPos;\n}\n\nfunction mapImageCustomBit(image, pxData, getPxPos, bpp, bits, maxBit) { // eslint-disable-line max-params\n var imageWidth = image.width;\n var imageHeight = image.height;\n var imagePass = image.index;\n for (var y = 0; y < imageHeight; y++) {\n for (var x = 0; x < imageWidth; x++) {\n var pixelData = bits.get(bpp);\n var pxPos = getPxPos(x, y, imagePass);\n pixelBppCustomMapper[bpp](pxData, pixelData, pxPos, maxBit);\n }\n bits.resetAfterLine();\n }\n}\n\nexports.dataToBitMap = function(data, bitmapInfo) {\n\n var width = bitmapInfo.width;\n var height = bitmapInfo.height;\n var depth = bitmapInfo.depth;\n var bpp = bitmapInfo.bpp;\n var interlace = bitmapInfo.interlace;\n\n if (depth !== 8) {\n var bits = bitRetriever(data, depth);\n }\n var pxData;\n if (depth <= 8) {\n pxData = new Buffer(width * height * 4);\n }\n else {\n pxData = new Uint16Array(width * height * 4);\n }\n var maxBit = Math.pow(2, depth) - 1;\n var rawPos = 0;\n var images;\n var getPxPos;\n\n if (interlace) {\n images = interlaceUtils.getImagePasses(width, height);\n getPxPos = interlaceUtils.getInterlaceIterator(width, height);\n }\n else {\n var nonInterlacedPxPos = 0;\n getPxPos = function() {\n var returner = nonInterlacedPxPos;\n nonInterlacedPxPos += 4;\n return returner;\n };\n images = [{ width: width, height: height }];\n }\n\n for (var imageIndex = 0; imageIndex < images.length; imageIndex++) {\n if (depth === 8) {\n rawPos = mapImage8Bit(images[imageIndex], pxData, getPxPos, bpp, data, rawPos);\n }\n else {\n mapImageCustomBit(images[imageIndex], pxData, getPxPos, bpp, bits, maxBit);\n }\n }\n if (depth === 8) {\n if (rawPos !== data.length) {\n throw new Error('extra data found');\n }\n }\n else {\n bits.end();\n }\n\n return pxData;\n};\n","'use strict';\n\nfunction dePalette(indata, outdata, width, height, palette) {\n var pxPos = 0;\n // use values from palette\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var color = palette[indata[pxPos]];\n\n if (!color) {\n throw new Error('index ' + indata[pxPos] + ' not in palette');\n }\n\n for (var i = 0; i < 4; i++) {\n outdata[pxPos + i] = color[i];\n }\n pxPos += 4;\n }\n }\n}\n\nfunction replaceTransparentColor(indata, outdata, width, height, transColor) {\n var pxPos = 0;\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var makeTrans = false;\n\n if (transColor.length === 1) {\n if (transColor[0] === indata[pxPos]) {\n makeTrans = true;\n }\n }\n else if (transColor[0] === indata[pxPos] && transColor[1] === indata[pxPos + 1] && transColor[2] === indata[pxPos + 2]) {\n makeTrans = true;\n }\n if (makeTrans) {\n for (var i = 0; i < 4; i++) {\n outdata[pxPos + i] = 0;\n }\n }\n pxPos += 4;\n }\n }\n}\n\nfunction scaleDepth(indata, outdata, width, height, depth) {\n var maxOutSample = 255;\n var maxInSample = Math.pow(2, depth) - 1;\n var pxPos = 0;\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n for (var i = 0; i < 4; i++) {\n outdata[pxPos + i] = Math.floor((indata[pxPos + i] * maxOutSample) / maxInSample + 0.5);\n }\n pxPos += 4;\n }\n }\n}\n\nmodule.exports = function(indata, imageData) {\n\n var depth = imageData.depth;\n var width = imageData.width;\n var height = imageData.height;\n var colorType = imageData.colorType;\n var transColor = imageData.transColor;\n var palette = imageData.palette;\n\n var outdata = indata; // only different for 16 bits\n\n if (colorType === 3) { // paletted\n dePalette(indata, outdata, width, height, palette);\n }\n else {\n if (transColor) {\n replaceTransparentColor(indata, outdata, width, height, transColor);\n }\n // if it needs scaling\n if (depth !== 8) {\n // if we need to change the buffer size\n if (depth === 16) {\n outdata = new Buffer(width * height * 4);\n }\n scaleDepth(indata, outdata, width, height, depth);\n }\n }\n return outdata;\n};\n","'use strict';\n\nvar util = require('util');\nvar zlib = require('zlib');\nvar ChunkStream = require('./chunkstream');\nvar FilterAsync = require('./filter-parse-async');\nvar Parser = require('./parser');\nvar bitmapper = require('./bitmapper');\nvar formatNormaliser = require('./format-normaliser');\n\nvar ParserAsync = module.exports = function(options) {\n ChunkStream.call(this);\n\n this._parser = new Parser(options, {\n read: this.read.bind(this),\n error: this._handleError.bind(this),\n metadata: this._handleMetaData.bind(this),\n gamma: this.emit.bind(this, 'gamma'),\n palette: this._handlePalette.bind(this),\n transColor: this._handleTransColor.bind(this),\n finished: this._finished.bind(this),\n inflateData: this._inflateData.bind(this),\n simpleTransparency: this._simpleTransparency.bind(this),\n headersFinished: this._headersFinished.bind(this)\n });\n this._options = options;\n this.writable = true;\n\n this._parser.start();\n};\nutil.inherits(ParserAsync, ChunkStream);\n\n\nParserAsync.prototype._handleError = function(err) {\n\n this.emit('error', err);\n\n this.writable = false;\n\n this.destroy();\n\n if (this._inflate && this._inflate.destroy) {\n this._inflate.destroy();\n }\n\n if (this._filter) {\n this._filter.destroy();\n // For backward compatibility with Node 7 and below.\n // Suppress errors due to _inflate calling write() even after\n // it's destroy()'ed.\n this._filter.on('error', function() {});\n }\n\n this.errord = true;\n};\n\nParserAsync.prototype._inflateData = function(data) {\n if (!this._inflate) {\n if (this._bitmapInfo.interlace) {\n this._inflate = zlib.createInflate();\n\n this._inflate.on('error', this.emit.bind(this, 'error'));\n this._filter.on('complete', this._complete.bind(this));\n\n this._inflate.pipe(this._filter);\n }\n else {\n var rowSize = ((this._bitmapInfo.width * this._bitmapInfo.bpp * this._bitmapInfo.depth + 7) >> 3) + 1;\n var imageSize = rowSize * this._bitmapInfo.height;\n var chunkSize = Math.max(imageSize, zlib.Z_MIN_CHUNK);\n\n this._inflate = zlib.createInflate({ chunkSize: chunkSize });\n var leftToInflate = imageSize;\n\n var emitError = this.emit.bind(this, 'error');\n this._inflate.on('error', function(err) {\n if (!leftToInflate) {\n return;\n }\n\n emitError(err);\n });\n this._filter.on('complete', this._complete.bind(this));\n\n var filterWrite = this._filter.write.bind(this._filter);\n this._inflate.on('data', function(chunk) {\n if (!leftToInflate) {\n return;\n }\n\n if (chunk.length > leftToInflate) {\n chunk = chunk.slice(0, leftToInflate);\n }\n\n leftToInflate -= chunk.length;\n\n filterWrite(chunk);\n });\n\n this._inflate.on('end', this._filter.end.bind(this._filter));\n }\n }\n this._inflate.write(data);\n};\n\nParserAsync.prototype._handleMetaData = function(metaData) {\n this._metaData = metaData;\n this._bitmapInfo = Object.create(metaData);\n\n this._filter = new FilterAsync(this._bitmapInfo);\n};\n\nParserAsync.prototype._handleTransColor = function(transColor) {\n this._bitmapInfo.transColor = transColor;\n};\n\nParserAsync.prototype._handlePalette = function(palette) {\n this._bitmapInfo.palette = palette;\n};\n\nParserAsync.prototype._simpleTransparency = function() {\n this._metaData.alpha = true;\n};\n\nParserAsync.prototype._headersFinished = function() {\n // Up until this point, we don't know if we have a tRNS chunk (alpha)\n // so we can't emit metadata any earlier\n this.emit('metadata', this._metaData);\n};\n\nParserAsync.prototype._finished = function() {\n if (this.errord) {\n return;\n }\n\n if (!this._inflate) {\n this.emit('error', 'No Inflate block');\n }\n else {\n // no more data to inflate\n this._inflate.end();\n }\n this.destroySoon();\n};\n\nParserAsync.prototype._complete = function(filteredData) {\n\n if (this.errord) {\n return;\n }\n\n try {\n var bitmapData = bitmapper.dataToBitMap(filteredData, this._bitmapInfo);\n\n var normalisedBitmapData = formatNormaliser(bitmapData, this._bitmapInfo);\n bitmapData = null;\n }\n catch (ex) {\n this._handleError(ex);\n return;\n }\n\n this.emit('parsed', normalisedBitmapData);\n};\n","'use strict';\n\nvar constants = require('./constants');\n\nmodule.exports = function(dataIn, width, height, options) {\n var outHasAlpha = [constants.COLORTYPE_COLOR_ALPHA, constants.COLORTYPE_ALPHA].indexOf(options.colorType) !== -1;\n if (options.colorType === options.inputColorType) {\n var bigEndian = (function() {\n var buffer = new ArrayBuffer(2);\n new DataView(buffer).setInt16(0, 256, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] !== 256;\n })();\n // If no need to convert to grayscale and alpha is present/absent in both, take a fast route\n if (options.bitDepth === 8 || (options.bitDepth === 16 && bigEndian)) {\n return dataIn;\n }\n }\n\n // map to a UInt16 array if data is 16bit, fix endianness below\n var data = options.bitDepth !== 16 ? dataIn : new Uint16Array(dataIn.buffer);\n\n var maxValue = 255;\n var inBpp = constants.COLORTYPE_TO_BPP_MAP[options.inputColorType];\n if (inBpp === 4 && !options.inputHasAlpha) {\n inBpp = 3;\n }\n var outBpp = constants.COLORTYPE_TO_BPP_MAP[options.colorType];\n if (options.bitDepth === 16) {\n maxValue = 65535;\n outBpp *= 2;\n }\n var outData = new Buffer(width * height * outBpp);\n\n var inIndex = 0;\n var outIndex = 0;\n\n var bgColor = options.bgColor || {};\n if (bgColor.red === undefined) {\n bgColor.red = maxValue;\n }\n if (bgColor.green === undefined) {\n bgColor.green = maxValue;\n }\n if (bgColor.blue === undefined) {\n bgColor.blue = maxValue;\n }\n\n function getRGBA() {\n var red;\n var green;\n var blue;\n var alpha = maxValue;\n switch (options.inputColorType) {\n case constants.COLORTYPE_COLOR_ALPHA:\n alpha = data[inIndex + 3];\n red = data[inIndex];\n green = data[inIndex + 1];\n blue = data[inIndex + 2];\n break;\n case constants.COLORTYPE_COLOR:\n red = data[inIndex];\n green = data[inIndex + 1];\n blue = data[inIndex + 2];\n break;\n case constants.COLORTYPE_ALPHA:\n alpha = data[inIndex + 1];\n red = data[inIndex];\n green = red;\n blue = red;\n break;\n case constants.COLORTYPE_GRAYSCALE:\n red = data[inIndex];\n green = red;\n blue = red;\n break;\n default:\n throw new Error('input color type:' + options.inputColorType + ' is not supported at present');\n }\n\n if (options.inputHasAlpha) {\n if (!outHasAlpha) {\n alpha /= maxValue;\n red = Math.min(Math.max(Math.round((1 - alpha) * bgColor.red + alpha * red), 0), maxValue);\n green = Math.min(Math.max(Math.round((1 - alpha) * bgColor.green + alpha * green), 0), maxValue);\n blue = Math.min(Math.max(Math.round((1 - alpha) * bgColor.blue + alpha * blue), 0), maxValue);\n }\n }\n return { red: red, green: green, blue: blue, alpha: alpha };\n }\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var rgba = getRGBA(data, inIndex);\n\n switch (options.colorType) {\n case constants.COLORTYPE_COLOR_ALPHA:\n case constants.COLORTYPE_COLOR:\n if (options.bitDepth === 8) {\n outData[outIndex] = rgba.red;\n outData[outIndex + 1] = rgba.green;\n outData[outIndex + 2] = rgba.blue;\n if (outHasAlpha) {\n outData[outIndex + 3] = rgba.alpha;\n }\n }\n else {\n outData.writeUInt16BE(rgba.red, outIndex);\n outData.writeUInt16BE(rgba.green, outIndex + 2);\n outData.writeUInt16BE(rgba.blue, outIndex + 4);\n if (outHasAlpha) {\n outData.writeUInt16BE(rgba.alpha, outIndex + 6);\n }\n }\n break;\n case constants.COLORTYPE_ALPHA:\n case constants.COLORTYPE_GRAYSCALE:\n // Convert to grayscale and alpha\n var grayscale = (rgba.red + rgba.green + rgba.blue) / 3;\n if (options.bitDepth === 8) {\n outData[outIndex] = grayscale;\n if (outHasAlpha) {\n outData[outIndex + 1] = rgba.alpha;\n }\n }\n else {\n outData.writeUInt16BE(grayscale, outIndex);\n if (outHasAlpha) {\n outData.writeUInt16BE(rgba.alpha, outIndex + 2);\n }\n }\n break;\n default:\n throw new Error('unrecognised color Type ' + options.colorType);\n }\n\n inIndex += inBpp;\n outIndex += outBpp;\n }\n }\n\n return outData;\n};\n","'use strict';\n\nvar paethPredictor = require('./paeth-predictor');\n\nfunction filterNone(pxData, pxPos, byteWidth, rawData, rawPos) {\n\n for (var x = 0; x < byteWidth; x++) {\n rawData[rawPos + x] = pxData[pxPos + x];\n }\n}\n\nfunction filterSumNone(pxData, pxPos, byteWidth) {\n\n var sum = 0;\n var length = pxPos + byteWidth;\n\n for (var i = pxPos; i < length; i++) {\n sum += Math.abs(pxData[i]);\n }\n return sum;\n}\n\nfunction filterSub(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n\n for (var x = 0; x < byteWidth; x++) {\n\n var left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n var val = pxData[pxPos + x] - left;\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumSub(pxData, pxPos, byteWidth, bpp) {\n\n var sum = 0;\n for (var x = 0; x < byteWidth; x++) {\n\n var left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n var val = pxData[pxPos + x] - left;\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterUp(pxData, pxPos, byteWidth, rawData, rawPos) {\n\n for (var x = 0; x < byteWidth; x++) {\n\n var up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n var val = pxData[pxPos + x] - up;\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumUp(pxData, pxPos, byteWidth) {\n\n var sum = 0;\n var length = pxPos + byteWidth;\n for (var x = pxPos; x < length; x++) {\n\n var up = pxPos > 0 ? pxData[x - byteWidth] : 0;\n var val = pxData[x] - up;\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterAvg(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n\n for (var x = 0; x < byteWidth; x++) {\n\n var left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n var up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n var val = pxData[pxPos + x] - ((left + up) >> 1);\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumAvg(pxData, pxPos, byteWidth, bpp) {\n\n var sum = 0;\n for (var x = 0; x < byteWidth; x++) {\n\n var left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n var up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n var val = pxData[pxPos + x] - ((left + up) >> 1);\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nfunction filterPaeth(pxData, pxPos, byteWidth, rawData, rawPos, bpp) {\n\n for (var x = 0; x < byteWidth; x++) {\n\n var left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n var up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n var upleft = pxPos > 0 && x >= bpp ? pxData[pxPos + x - (byteWidth + bpp)] : 0;\n var val = pxData[pxPos + x] - paethPredictor(left, up, upleft);\n\n rawData[rawPos + x] = val;\n }\n}\n\nfunction filterSumPaeth(pxData, pxPos, byteWidth, bpp) {\n var sum = 0;\n for (var x = 0; x < byteWidth; x++) {\n\n var left = x >= bpp ? pxData[pxPos + x - bpp] : 0;\n var up = pxPos > 0 ? pxData[pxPos + x - byteWidth] : 0;\n var upleft = pxPos > 0 && x >= bpp ? pxData[pxPos + x - (byteWidth + bpp)] : 0;\n var val = pxData[pxPos + x] - paethPredictor(left, up, upleft);\n\n sum += Math.abs(val);\n }\n\n return sum;\n}\n\nvar filters = {\n 0: filterNone,\n 1: filterSub,\n 2: filterUp,\n 3: filterAvg,\n 4: filterPaeth\n};\n\nvar filterSums = {\n 0: filterSumNone,\n 1: filterSumSub,\n 2: filterSumUp,\n 3: filterSumAvg,\n 4: filterSumPaeth\n};\n\nmodule.exports = function(pxData, width, height, options, bpp) {\n\n var filterTypes;\n if (!('filterType' in options) || options.filterType === -1) {\n filterTypes = [0, 1, 2, 3, 4];\n }\n else if (typeof options.filterType === 'number') {\n filterTypes = [options.filterType];\n }\n else {\n throw new Error('unrecognised filter types');\n }\n\n if (options.bitDepth === 16) {\n bpp *= 2;\n }\n var byteWidth = width * bpp;\n var rawPos = 0;\n var pxPos = 0;\n var rawData = new Buffer((byteWidth + 1) * height);\n\n var sel = filterTypes[0];\n\n for (var y = 0; y < height; y++) {\n\n if (filterTypes.length > 1) {\n // find best filter for this line (with lowest sum of values)\n var min = Infinity;\n\n for (var i = 0; i < filterTypes.length; i++) {\n var sum = filterSums[filterTypes[i]](pxData, pxPos, byteWidth, bpp);\n if (sum < min) {\n sel = filterTypes[i];\n min = sum;\n }\n }\n }\n\n rawData[rawPos] = sel;\n rawPos++;\n filters[sel](pxData, pxPos, byteWidth, rawData, rawPos, bpp);\n rawPos += byteWidth;\n pxPos += byteWidth;\n }\n return rawData;\n};\n","'use strict';\n\nvar constants = require('./constants');\nvar CrcStream = require('./crc');\nvar bitPacker = require('./bitpacker');\nvar filter = require('./filter-pack');\nvar zlib = require('zlib');\n\nvar Packer = module.exports = function(options) {\n this._options = options;\n\n options.deflateChunkSize = options.deflateChunkSize || 32 * 1024;\n options.deflateLevel = options.deflateLevel != null ? options.deflateLevel : 9;\n options.deflateStrategy = options.deflateStrategy != null ? options.deflateStrategy : 3;\n options.inputHasAlpha = options.inputHasAlpha != null ? options.inputHasAlpha : true;\n options.deflateFactory = options.deflateFactory || zlib.createDeflate;\n options.bitDepth = options.bitDepth || 8;\n // This is outputColorType\n options.colorType = (typeof options.colorType === 'number') ? options.colorType : constants.COLORTYPE_COLOR_ALPHA;\n options.inputColorType = (typeof options.inputColorType === 'number') ? options.inputColorType : constants.COLORTYPE_COLOR_ALPHA;\n\n if ([\n constants.COLORTYPE_GRAYSCALE,\n constants.COLORTYPE_COLOR,\n constants.COLORTYPE_COLOR_ALPHA,\n constants.COLORTYPE_ALPHA\n ].indexOf(options.colorType) === -1) {\n throw new Error('option color type:' + options.colorType + ' is not supported at present');\n }\n if ([\n constants.COLORTYPE_GRAYSCALE,\n constants.COLORTYPE_COLOR,\n constants.COLORTYPE_COLOR_ALPHA,\n constants.COLORTYPE_ALPHA\n ].indexOf(options.inputColorType) === -1) {\n throw new Error('option input color type:' + options.inputColorType + ' is not supported at present');\n }\n if (options.bitDepth !== 8 && options.bitDepth !== 16) {\n throw new Error('option bit depth:' + options.bitDepth + ' is not supported at present');\n }\n};\n\nPacker.prototype.getDeflateOptions = function() {\n return {\n chunkSize: this._options.deflateChunkSize,\n level: this._options.deflateLevel,\n strategy: this._options.deflateStrategy\n };\n};\n\nPacker.prototype.createDeflate = function() {\n return this._options.deflateFactory(this.getDeflateOptions());\n};\n\nPacker.prototype.filterData = function(data, width, height) {\n // convert to correct format for filtering (e.g. right bpp and bit depth)\n var packedData = bitPacker(data, width, height, this._options);\n\n // filter pixel data\n var bpp = constants.COLORTYPE_TO_BPP_MAP[this._options.colorType];\n var filteredData = filter(packedData, width, height, this._options, bpp);\n return filteredData;\n};\n\nPacker.prototype._packChunk = function(type, data) {\n\n var len = (data ? data.length : 0);\n var buf = new Buffer(len + 12);\n\n buf.writeUInt32BE(len, 0);\n buf.writeUInt32BE(type, 4);\n\n if (data) {\n data.copy(buf, 8);\n }\n\n buf.writeInt32BE(CrcStream.crc32(buf.slice(4, buf.length - 4)), buf.length - 4);\n return buf;\n};\n\nPacker.prototype.packGAMA = function(gamma) {\n var buf = new Buffer(4);\n buf.writeUInt32BE(Math.floor(gamma * constants.GAMMA_DIVISION), 0);\n return this._packChunk(constants.TYPE_gAMA, buf);\n};\n\nPacker.prototype.packIHDR = function(width, height) {\n\n var buf = new Buffer(13);\n buf.writeUInt32BE(width, 0);\n buf.writeUInt32BE(height, 4);\n buf[8] = this._options.bitDepth; // Bit depth\n buf[9] = this._options.colorType; // colorType\n buf[10] = 0; // compression\n buf[11] = 0; // filter\n buf[12] = 0; // interlace\n\n return this._packChunk(constants.TYPE_IHDR, buf);\n};\n\nPacker.prototype.packIDAT = function(data) {\n return this._packChunk(constants.TYPE_IDAT, data);\n};\n\nPacker.prototype.packIEND = function() {\n return this._packChunk(constants.TYPE_IEND, null);\n};\n","'use strict';\n\nvar util = require('util');\nvar Stream = require('stream');\nvar constants = require('./constants');\nvar Packer = require('./packer');\n\nvar PackerAsync = module.exports = function(opt) {\n Stream.call(this);\n\n var options = opt || {};\n\n this._packer = new Packer(options);\n this._deflate = this._packer.createDeflate();\n\n this.readable = true;\n};\nutil.inherits(PackerAsync, Stream);\n\n\nPackerAsync.prototype.pack = function(data, width, height, gamma) {\n // Signature\n this.emit('data', new Buffer(constants.PNG_SIGNATURE));\n this.emit('data', this._packer.packIHDR(width, height));\n\n if (gamma) {\n this.emit('data', this._packer.packGAMA(gamma));\n }\n\n var filteredData = this._packer.filterData(data, width, height);\n\n // compress it\n this._deflate.on('error', this.emit.bind(this, 'error'));\n\n this._deflate.on('data', function(compressedData) {\n this.emit('data', this._packer.packIDAT(compressedData));\n }.bind(this));\n\n this._deflate.on('end', function() {\n this.emit('data', this._packer.packIEND());\n this.emit('end');\n }.bind(this));\n\n this._deflate.end(filteredData);\n};\n","'use strict';\n\nvar assert = require('assert').ok;\nvar zlib = require('zlib');\nvar util = require('util');\n\nvar kMaxLength = require('buffer').kMaxLength;\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) {\n return new Inflate(opts);\n }\n\n if (opts && opts.chunkSize < zlib.Z_MIN_CHUNK) {\n opts.chunkSize = zlib.Z_MIN_CHUNK;\n }\n\n zlib.Inflate.call(this, opts);\n\n // Node 8 --> 9 compatibility check\n this._offset = this._offset === undefined ? this._outOffset : this._offset;\n this._buffer = this._buffer || this._outBuffer;\n\n if (opts && opts.maxLength != null) {\n this._maxLength = opts.maxLength;\n }\n}\n\nfunction createInflate(opts) {\n return new Inflate(opts);\n}\n\nfunction _close(engine, callback) {\n if (callback) {\n process.nextTick(callback);\n }\n\n // Caller may invoke .close after a zlib error (which will null _handle).\n if (!engine._handle) {\n return;\n }\n\n engine._handle.close();\n engine._handle = null;\n}\n\nInflate.prototype._processChunk = function(chunk, flushFlag, asyncCb) {\n if (typeof asyncCb === 'function') {\n return zlib.Inflate._processChunk.call(this, chunk, flushFlag, asyncCb);\n }\n\n var self = this;\n\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var leftToInflate = this._maxLength;\n var inOff = 0;\n\n var buffers = [];\n var nread = 0;\n\n var error;\n this.on('error', function(err) {\n error = err;\n });\n\n function handleChunk(availInAfter, availOutAfter) {\n if (self._hadError) {\n return;\n }\n\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n\n if (out.length > leftToInflate) {\n out = out.slice(0, leftToInflate);\n }\n\n buffers.push(out);\n nread += out.length;\n leftToInflate -= out.length;\n\n if (leftToInflate === 0) {\n return false;\n }\n }\n\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n inOff += (availInBefore - availInAfter);\n availInBefore = availInAfter;\n\n return true;\n }\n\n return false;\n }\n\n assert(this._handle, 'zlib binding closed');\n do {\n var res = this._handle.writeSync(flushFlag,\n chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n // Node 8 --> 9 compatibility check\n res = res || this._writeState;\n } while (!this._hadError && handleChunk(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n if (nread >= kMaxLength) {\n _close(this);\n throw new RangeError('Cannot create final Buffer. It would be larger than 0x' + kMaxLength.toString(16) + ' bytes');\n }\n\n var buf = Buffer.concat(buffers, nread);\n _close(this);\n\n return buf;\n};\n\nutil.inherits(Inflate, zlib.Inflate);\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer);\n }\n if (!(buffer instanceof Buffer)) {\n throw new TypeError('Not a string or buffer');\n }\n\n var flushFlag = engine._finishFlushFlag;\n if (flushFlag == null) {\n flushFlag = zlib.Z_FINISH;\n }\n\n return engine._processChunk(buffer, flushFlag);\n}\n\nfunction inflateSync(buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n}\n\nmodule.exports = exports = inflateSync;\nexports.Inflate = Inflate;\nexports.createInflate = createInflate;\nexports.inflateSync = inflateSync;\n","'use strict';\n\nvar SyncReader = module.exports = function(buffer) {\n\n this._buffer = buffer;\n this._reads = [];\n};\n\nSyncReader.prototype.read = function(length, callback) {\n\n this._reads.push({\n length: Math.abs(length), // if length < 0 then at most this length\n allowLess: length < 0,\n func: callback\n });\n};\n\nSyncReader.prototype.process = function() {\n\n // as long as there is any data and read requests\n while (this._reads.length > 0 && this._buffer.length) {\n\n var read = this._reads[0];\n\n if (this._buffer.length && (this._buffer.length >= read.length || read.allowLess)) {\n\n // ok there is any data so that we can satisfy this request\n this._reads.shift(); // == read\n\n var buf = this._buffer;\n\n this._buffer = buf.slice(read.length);\n\n read.func.call(this, buf.slice(0, read.length));\n\n }\n else {\n break;\n }\n\n }\n\n if (this._reads.length > 0) {\n return new Error('There are some read requests waitng on finished stream');\n }\n\n if (this._buffer.length > 0) {\n return new Error('unrecognised content at end of stream');\n }\n\n};\n","'use strict';\n\nvar SyncReader = require('./sync-reader');\nvar Filter = require('./filter-parse');\n\n\nexports.process = function(inBuffer, bitmapInfo) {\n\n var outBuffers = [];\n var reader = new SyncReader(inBuffer);\n var filter = new Filter(bitmapInfo, {\n read: reader.read.bind(reader),\n write: function(bufferPart) {\n outBuffers.push(bufferPart);\n },\n complete: function() {\n }\n });\n\n filter.start();\n reader.process();\n\n return Buffer.concat(outBuffers);\n};","'use strict';\n\nvar hasSyncZlib = true;\nvar zlib = require('zlib');\nvar inflateSync = require('./sync-inflate');\nif (!zlib.deflateSync) {\n hasSyncZlib = false;\n}\nvar SyncReader = require('./sync-reader');\nvar FilterSync = require('./filter-parse-sync');\nvar Parser = require('./parser');\nvar bitmapper = require('./bitmapper');\nvar formatNormaliser = require('./format-normaliser');\n\n\nmodule.exports = function(buffer, options) {\n\n if (!hasSyncZlib) {\n throw new Error('To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0');\n }\n\n var err;\n function handleError(_err_) {\n err = _err_;\n }\n\n var metaData;\n function handleMetaData(_metaData_) {\n metaData = _metaData_;\n }\n\n function handleTransColor(transColor) {\n metaData.transColor = transColor;\n }\n\n function handlePalette(palette) {\n metaData.palette = palette;\n }\n\n function handleSimpleTransparency() {\n metaData.alpha = true;\n }\n\n var gamma;\n function handleGamma(_gamma_) {\n gamma = _gamma_;\n }\n\n var inflateDataList = [];\n function handleInflateData(inflatedData) {\n inflateDataList.push(inflatedData);\n }\n\n var reader = new SyncReader(buffer);\n\n var parser = new Parser(options, {\n read: reader.read.bind(reader),\n error: handleError,\n metadata: handleMetaData,\n gamma: handleGamma,\n palette: handlePalette,\n transColor: handleTransColor,\n inflateData: handleInflateData,\n simpleTransparency: handleSimpleTransparency\n });\n\n parser.start();\n reader.process();\n\n if (err) {\n throw err;\n }\n\n //join together the inflate datas\n var inflateData = Buffer.concat(inflateDataList);\n inflateDataList.length = 0;\n\n var inflatedData;\n if (metaData.interlace) {\n inflatedData = zlib.inflateSync(inflateData);\n }\n else {\n var rowSize = ((metaData.width * metaData.bpp * metaData.depth + 7) >> 3) + 1;\n var imageSize = rowSize * metaData.height;\n inflatedData = inflateSync(inflateData, { chunkSize: imageSize, maxLength: imageSize });\n }\n inflateData = null;\n\n if (!inflatedData || !inflatedData.length) {\n throw new Error('bad png - invalid inflate data response');\n }\n\n var unfilteredData = FilterSync.process(inflatedData, metaData);\n inflateData = null;\n\n var bitmapData = bitmapper.dataToBitMap(unfilteredData, metaData);\n unfilteredData = null;\n\n var normalisedBitmapData = formatNormaliser(bitmapData, metaData);\n\n metaData.data = normalisedBitmapData;\n metaData.gamma = gamma || 0;\n\n return metaData;\n};\n","'use strict';\n\nvar hasSyncZlib = true;\nvar zlib = require('zlib');\nif (!zlib.deflateSync) {\n hasSyncZlib = false;\n}\nvar constants = require('./constants');\nvar Packer = require('./packer');\n\nmodule.exports = function(metaData, opt) {\n\n if (!hasSyncZlib) {\n throw new Error('To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0');\n }\n\n var options = opt || {};\n\n var packer = new Packer(options);\n\n var chunks = [];\n\n // Signature\n chunks.push(new Buffer(constants.PNG_SIGNATURE));\n\n // Header\n chunks.push(packer.packIHDR(metaData.width, metaData.height));\n\n if (metaData.gamma) {\n chunks.push(packer.packGAMA(metaData.gamma));\n }\n\n var filteredData = packer.filterData(metaData.data, metaData.width, metaData.height);\n\n // compress it\n var compressedData = zlib.deflateSync(filteredData, packer.getDeflateOptions());\n filteredData = null;\n\n if (!compressedData || !compressedData.length) {\n throw new Error('bad png - invalid compressed data response');\n }\n chunks.push(packer.packIDAT(compressedData));\n\n // End\n chunks.push(packer.packIEND());\n\n return Buffer.concat(chunks);\n};\n","'use strict';\n\n\nvar parse = require('./parser-sync');\nvar pack = require('./packer-sync');\n\n\nexports.read = function(buffer, options) {\n\n return parse(buffer, options || {});\n};\n\nexports.write = function(png, options) {\n\n return pack(png, options);\n};\n","'use strict';\n\nvar util = require('util');\nvar Stream = require('stream');\nvar Parser = require('./parser-async');\nvar Packer = require('./packer-async');\nvar PNGSync = require('./png-sync');\n\n\nvar PNG = exports.PNG = function(options) {\n Stream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // coerce pixel dimensions to integers (also coerces undefined -> 0):\n this.width = options.width | 0;\n this.height = options.height | 0;\n\n this.data = this.width > 0 && this.height > 0 ?\n new Buffer(4 * this.width * this.height) : null;\n\n if (options.fill && this.data) {\n this.data.fill(0);\n }\n\n this.gamma = 0;\n this.readable = this.writable = true;\n\n this._parser = new Parser(options);\n\n this._parser.on('error', this.emit.bind(this, 'error'));\n this._parser.on('close', this._handleClose.bind(this));\n this._parser.on('metadata', this._metadata.bind(this));\n this._parser.on('gamma', this._gamma.bind(this));\n this._parser.on('parsed', function(data) {\n this.data = data;\n this.emit('parsed', data);\n }.bind(this));\n\n this._packer = new Packer(options);\n this._packer.on('data', this.emit.bind(this, 'data'));\n this._packer.on('end', this.emit.bind(this, 'end'));\n this._parser.on('close', this._handleClose.bind(this));\n this._packer.on('error', this.emit.bind(this, 'error'));\n\n};\nutil.inherits(PNG, Stream);\n\nPNG.sync = PNGSync;\n\nPNG.prototype.pack = function() {\n\n if (!this.data || !this.data.length) {\n this.emit('error', 'No data provided');\n return this;\n }\n\n process.nextTick(function() {\n this._packer.pack(this.data, this.width, this.height, this.gamma);\n }.bind(this));\n\n return this;\n};\n\n\nPNG.prototype.parse = function(data, callback) {\n\n if (callback) {\n var onParsed, onError;\n\n onParsed = function(parsedData) {\n this.removeListener('error', onError);\n\n this.data = parsedData;\n callback(null, this);\n }.bind(this);\n\n onError = function(err) {\n this.removeListener('parsed', onParsed);\n\n callback(err, null);\n }.bind(this);\n\n this.once('parsed', onParsed);\n this.once('error', onError);\n }\n\n this.end(data);\n return this;\n};\n\nPNG.prototype.write = function(data) {\n this._parser.write(data);\n return true;\n};\n\nPNG.prototype.end = function(data) {\n this._parser.end(data);\n};\n\nPNG.prototype._metadata = function(metadata) {\n this.width = metadata.width;\n this.height = metadata.height;\n\n this.emit('metadata', metadata);\n};\n\nPNG.prototype._gamma = function(gamma) {\n this.gamma = gamma;\n};\n\nPNG.prototype._handleClose = function() {\n if (!this._parser.writable && !this._packer.readable) {\n this.emit('close');\n }\n};\n\n\nPNG.bitblt = function(src, dst, srcX, srcY, width, height, deltaX, deltaY) { // eslint-disable-line max-params\n // coerce pixel dimensions to integers (also coerces undefined -> 0):\n /* eslint-disable no-param-reassign */\n srcX |= 0;\n srcY |= 0;\n width |= 0;\n height |= 0;\n deltaX |= 0;\n deltaY |= 0;\n /* eslint-enable no-param-reassign */\n\n if (srcX > src.width || srcY > src.height || srcX + width > src.width || srcY + height > src.height) {\n throw new Error('bitblt reading outside image');\n }\n\n if (deltaX > dst.width || deltaY > dst.height || deltaX + width > dst.width || deltaY + height > dst.height) {\n throw new Error('bitblt writing outside image');\n }\n\n for (var y = 0; y < height; y++) {\n src.data.copy(dst.data,\n ((deltaY + y) * dst.width + deltaX) << 2,\n ((srcY + y) * src.width + srcX) << 2,\n ((srcY + y) * src.width + srcX + width) << 2\n );\n }\n};\n\n\nPNG.prototype.bitblt = function(dst, srcX, srcY, width, height, deltaX, deltaY) { // eslint-disable-line max-params\n\n PNG.bitblt(this, dst, srcX, srcY, width, height, deltaX, deltaY);\n return this;\n};\n\nPNG.adjustGamma = function(src) {\n if (src.gamma) {\n for (var y = 0; y < src.height; y++) {\n for (var x = 0; x < src.width; x++) {\n var idx = (src.width * y + x) << 2;\n\n for (var i = 0; i < 3; i++) {\n var sample = src.data[idx + i] / 255;\n sample = Math.pow(sample, 1 / 2.2 / src.gamma);\n src.data[idx + i] = Math.round(sample * 255);\n }\n }\n }\n src.gamma = 0;\n }\n};\n\nPNG.prototype.adjustGamma = function() {\n PNG.adjustGamma(this);\n};\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n var hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n var hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n var margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0 ? 4 : options.margin\n\n var width = options.width && options.width >= 21 ? options.width : undefined\n var scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n var scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n var size = qr.modules.size\n var data = qr.modules.data\n var scale = exports.getScale(size, opts)\n var symbolSize = Math.floor((size + opts.margin * 2) * scale)\n var scaledMargin = opts.margin * scale\n var palette = [opts.color.light, opts.color.dark]\n\n for (var i = 0; i < symbolSize; i++) {\n for (var j = 0; j < symbolSize; j++) {\n var posDst = (i * symbolSize + j) * 4\n var pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n var iSrc = Math.floor((i - scaledMargin) / scale)\n var jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","var fs = require('fs')\nvar PNG = require('pngjs').PNG\nvar Utils = require('./utils')\n\nexports.render = function render (qrData, options) {\n var opts = Utils.getOptions(options)\n var pngOpts = opts.rendererOpts\n var size = Utils.getImageWidth(qrData.modules.size, opts)\n\n pngOpts.width = size\n pngOpts.height = size\n\n var pngImage = new PNG(pngOpts)\n Utils.qrToImageData(pngImage.data, qrData, opts)\n\n return pngImage\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, options, cb) {\n if (typeof cb === 'undefined') {\n cb = options\n options = undefined\n }\n\n exports.renderToBuffer(qrData, options, function (err, output) {\n if (err) cb(err)\n var url = 'data:image/png;base64,'\n url += output.toString('base64')\n cb(null, url)\n })\n}\n\nexports.renderToBuffer = function renderToBuffer (qrData, options, cb) {\n if (typeof cb === 'undefined') {\n cb = options\n options = undefined\n }\n\n var png = exports.render(qrData, options)\n var buffer = []\n\n png.on('error', cb)\n\n png.on('data', function (data) {\n buffer.push(data)\n })\n\n png.on('end', function () {\n cb(null, Buffer.concat(buffer))\n })\n\n png.pack()\n}\n\nexports.renderToFile = function renderToFile (path, qrData, options, cb) {\n if (typeof cb === 'undefined') {\n cb = options\n options = undefined\n }\n\n var stream = fs.createWriteStream(path)\n stream.on('error', cb)\n stream.on('close', cb)\n\n exports.renderToFileStream(stream, qrData, options)\n}\n\nexports.renderToFileStream = function renderToFileStream (stream, qrData, options) {\n var png = exports.render(qrData, options)\n png.pack().pipe(stream)\n}\n","var Utils = require('./utils')\n\nvar BLOCK_CHAR = {\n WW: ' ',\n WB: '▄',\n BB: '█',\n BW: '▀'\n}\n\nvar INVERTED_BLOCK_CHAR = {\n BB: ' ',\n BW: '▄',\n WW: '█',\n WB: '▀'\n}\n\nfunction getBlockChar (top, bottom, blocks) {\n if (top && bottom) return blocks.BB\n if (top && !bottom) return blocks.BW\n if (!top && bottom) return blocks.WB\n return blocks.WW\n}\n\nexports.render = function (qrData, options, cb) {\n var opts = Utils.getOptions(options)\n var blocks = BLOCK_CHAR\n if (opts.color.dark.hex === '#ffffff' || opts.color.light.hex === '#000000') {\n blocks = INVERTED_BLOCK_CHAR\n }\n\n var size = qrData.modules.size\n var data = qrData.modules.data\n\n var output = ''\n var hMargin = Array(size + (opts.margin * 2) + 1).join(blocks.WW)\n hMargin = Array((opts.margin / 2) + 1).join(hMargin + '\\n')\n\n var vMargin = Array(opts.margin + 1).join(blocks.WW)\n\n output += hMargin\n for (var i = 0; i < size; i += 2) {\n output += vMargin\n for (var j = 0; j < size; j++) {\n var topModule = data[i * size + j]\n var bottomModule = data[(i + 1) * size + j]\n\n output += getBlockChar(topModule, bottomModule, blocks)\n }\n\n output += vMargin + '\\n'\n }\n\n output += hMargin.slice(0, -1)\n\n if (typeof cb === 'function') {\n cb(null, output)\n }\n\n return output\n}\n\nexports.renderToFile = function renderToFile (path, qrData, options, cb) {\n if (typeof cb === 'undefined') {\n cb = options\n options = undefined\n }\n\n var fs = require('fs')\n var utf8 = exports.render(qrData, options)\n fs.writeFile(path, utf8, cb)\n}\n","// var Utils = require('./utils')\n\nexports.render = function (qrData, options, cb) {\n var size = qrData.modules.size\n var data = qrData.modules.data\n\n // var opts = Utils.getOptions(options)\n\n // use same scheme as https://github.com/gtanner/qrcode-terminal because it actually works! =)\n var black = '\\x1b[40m \\x1b[0m'\n var white = '\\x1b[47m \\x1b[0m'\n\n var output = ''\n var hMargin = Array(size + 3).join(white)\n var vMargin = Array(2).join(white)\n\n output += hMargin + '\\n'\n for (var i = 0; i < size; ++i) {\n output += white\n for (var j = 0; j < size; j++) {\n // var topModule = data[i * size + j]\n // var bottomModule = data[(i + 1) * size + j]\n\n output += data[i * size + j] ? black : white// getBlockChar(topModule, bottomModule)\n }\n // output += white+'\\n'\n output += vMargin + '\\n'\n }\n\n output += hMargin + '\\n'\n\n if (typeof cb === 'function') {\n cb(null, output)\n }\n\n return output\n}\n/*\nexports.renderToFile = function renderToFile (path, qrData, options, cb) {\n if (typeof cb === 'undefined') {\n cb = options\n options = undefined\n }\n\n var fs = require('fs')\n var utf8 = exports.render(qrData, options)\n fs.writeFile(path, utf8, cb)\n}\n*/\n","var Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n var alpha = color.a / 255\n var str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n var str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n var path = ''\n var moveBy = 0\n var newRow = false\n var lineLength = 0\n\n for (var i = 0; i < data.length; i++) {\n var col = Math.floor(i % size)\n var row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n var opts = Utils.getOptions(options)\n var size = qrData.modules.size\n var data = qrData.modules.data\n var qrcodesize = size + opts.margin * 2\n\n var bg = !opts.color.light.a\n ? ''\n : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>'\n\n var path =\n '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>'\n\n var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n var svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","var svgTagRenderer = require('./svg-tag')\n\nexports.render = svgTagRenderer.render\n\nexports.renderToFile = function renderToFile (path, qrData, options, cb) {\n if (typeof cb === 'undefined') {\n cb = options\n options = undefined\n }\n\n var fs = require('fs')\n var svgTag = exports.render(qrData, options)\n\n var xmlStr = '<?xml version=\"1.0\" encoding=\"utf-8\"?>' +\n '<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">' +\n svgTag\n\n fs.writeFile(path, xmlStr, cb)\n}\n","var Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n var opts = options\n var canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n var size = Utils.getImageWidth(qrData.modules.size, opts)\n\n var ctx = canvasEl.getContext('2d')\n var image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n var opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n var canvasEl = exports.render(qrData, canvas, opts)\n\n var type = opts.type || 'image/png'\n var rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","\nvar canPromise = require('./can-promise')\n\nvar QRCode = require('./core/qrcode')\nvar CanvasRenderer = require('./renderer/canvas')\nvar SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n var args = [].slice.call(arguments, 1)\n var argsNum = args.length\n var isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n var data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n var data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","var canPromise = require('./can-promise')\nvar QRCode = require('./core/qrcode')\nvar PngRenderer = require('./renderer/png')\nvar Utf8Renderer = require('./renderer/utf8')\nvar TerminalRenderer = require('./renderer/terminal')\nvar SvgRenderer = require('./renderer/svg')\n\nfunction checkParams (text, opts, cb) {\n if (typeof text === 'undefined') {\n throw new Error('String required as first argument')\n }\n\n if (typeof cb === 'undefined') {\n cb = opts\n opts = {}\n }\n\n if (typeof cb !== 'function') {\n if (!canPromise()) {\n throw new Error('Callback required as last argument')\n } else {\n opts = cb || {}\n cb = null\n }\n }\n\n return {\n opts: opts,\n cb: cb\n }\n}\n\nfunction getTypeFromFilename (path) {\n return path.slice((path.lastIndexOf('.') - 1 >>> 0) + 2).toLowerCase()\n}\n\nfunction getRendererFromType (type) {\n switch (type) {\n case 'svg':\n return SvgRenderer\n\n case 'txt':\n case 'utf8':\n return Utf8Renderer\n\n case 'png':\n case 'image/png':\n default:\n return PngRenderer\n }\n}\n\nfunction getStringRendererFromType (type) {\n switch (type) {\n case 'svg':\n return SvgRenderer\n\n case 'terminal':\n return TerminalRenderer\n\n case 'utf8':\n default:\n return Utf8Renderer\n }\n}\n\nfunction render (renderFunc, text, params) {\n if (!params.cb) {\n return new Promise(function (resolve, reject) {\n try {\n var data = QRCode.create(text, params.opts)\n return renderFunc(data, params.opts, function (err, data) {\n return err ? reject(err) : resolve(data)\n })\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n var data = QRCode.create(text, params.opts)\n return renderFunc(data, params.opts, params.cb)\n } catch (e) {\n params.cb(e)\n }\n}\n\nexports.create = QRCode.create\n\nexports.toCanvas = require('./browser').toCanvas\n\nexports.toString = function toString (text, opts, cb) {\n var params = checkParams(text, opts, cb)\n var renderer = getStringRendererFromType(params.opts.type)\n return render(renderer.render, text, params)\n}\n\nexports.toDataURL = function toDataURL (text, opts, cb) {\n var params = checkParams(text, opts, cb)\n var renderer = getRendererFromType(params.opts.type)\n return render(renderer.renderToDataURL, text, params)\n}\n\nexports.toBuffer = function toBuffer (text, opts, cb) {\n var params = checkParams(text, opts, cb)\n var renderer = getRendererFromType(params.opts.type)\n return render(renderer.renderToBuffer, text, params)\n}\n\nexports.toFile = function toFile (path, text, opts, cb) {\n if (typeof path !== 'string' || !(typeof text === 'string' || typeof text === 'object')) {\n throw new Error('Invalid argument')\n }\n\n if ((arguments.length < 3) && !canPromise()) {\n throw new Error('Too few arguments provided')\n }\n\n var params = checkParams(text, opts, cb)\n var type = params.opts.type || getTypeFromFilename(path)\n var renderer = getRendererFromType(type)\n var renderToFile = renderer.renderToFile.bind(null, path)\n\n return render(renderToFile, text, params)\n}\n\nexports.toFileStream = function toFileStream (stream, text, opts) {\n if (arguments.length < 2) {\n throw new Error('Too few arguments provided')\n }\n\n var params = checkParams(text, opts, stream.emit.bind(stream, 'error'))\n var renderer = getRendererFromType('png') // Only png support for now\n var renderToFileStream = renderer.renderToFileStream.bind(null, stream)\n render(renderToFileStream, text, params)\n}\n","/*\n*copyright Ryan Day 2012\n*\n* Licensed under the MIT license:\n* http://www.opensource.org/licenses/mit-license.php\n*\n* this is the main server side application file for node-qrcode.\n* these exports use serverside canvas api methods for file IO and buffers\n*\n*/\n\nmodule.exports = require('./server')\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","var n,l,u,t,i,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function p(n){var l=n.parentNode;l&&l.removeChild(n)}function v(n,l,u){var t,i=arguments,r={};for(t in l)\"key\"!==t&&\"ref\"!==t&&(r[t]=l[t]);if(arguments.length>3)for(u=[u],t=3;t<arguments.length;t++)u.push(i[t]);if(null!=u&&(r.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(t in n.defaultProps)void 0===r[t]&&(r[t]=n.defaultProps[t]);return h(n,r,l&&l.key,l&&l.ref,null)}function h(l,u,t,i,r){var o={type:l,props:u,key:t,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:r};return null==r&&(o.__v=o),n.vnode&&n.vnode(o),o}function y(n){return n.children}function d(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?x(n):null}function m(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return m(n)}}function w(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!t++||r!==n.debounceRendering)&&((r=n.debounceRendering)||i)(k)}function k(){for(var n;t=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,t,i,r,o,f;n.__d&&(o=(r=(l=n).__v).__e,(f=l.__P)&&(u=[],(t=a({},r)).__v=t,i=z(f,r,t,l.__n,void 0!==f.ownerSVGElement,null,u,null==o?x(r):o),A(u,r),i!=o&&m(r)))})}function g(n,l,u,t,i,r,o,f,s){var a,v,h,y,d,m,w,k=u&&u.__k||c,g=k.length;if(f==e&&(f=null!=r?r[0]:g?x(u,0):null),a=0,l.__k=_(l.__k,function(u){if(null!=u){if(u.__=l,u.__b=l.__b+1,null===(h=k[a])||h&&u.key==h.key&&u.type===h.type)k[a]=void 0;else for(v=0;v<g;v++){if((h=k[v])&&u.key==h.key&&u.type===h.type){k[v]=void 0;break}h=null}if(y=z(n,u,h=h||e,t,i,r,o,f,s),(v=u.ref)&&h.ref!=v&&(w||(w=[]),h.ref&&w.push(h.ref,null,u),w.push(v,u.__c||y,u)),null!=y){var c;if(null==m&&(m=y),void 0!==u.__d)c=u.__d,u.__d=void 0;else if(r==h||y!=f||null==y.parentNode){n:if(null==f||f.parentNode!==n)n.appendChild(y),c=null;else{for(d=f,v=0;(d=d.nextSibling)&&v<g;v+=2)if(d==y)break n;n.insertBefore(y,f),c=f}\"option\"==l.type&&(n.value=\"\")}f=void 0!==c?c:y.nextSibling,\"function\"==typeof l.type&&(l.__d=f)}else f&&h.__e==f&&f.parentNode!=n&&(f=x(h))}return a++,u}),l.__e=m,null!=r&&\"function\"!=typeof l.type)for(a=r.length;a--;)null!=r[a]&&p(r[a]);for(a=g;a--;)null!=k[a]&&j(k[a],k[a]);if(w)for(a=0;a<w.length;a++)$(w[a],w[++a],w[++a])}function _(n,l,u){if(null==u&&(u=[]),null==n||\"boolean\"==typeof n)l&&u.push(l(null));else if(Array.isArray(n))for(var t=0;t<n.length;t++)_(n[t],l,u);else u.push(l?l(\"string\"==typeof n||\"number\"==typeof n?h(null,n,null,null,n):null!=n.__e||null!=n.__c?h(n.type,n.props,n.key,null,n.__v):n):n);return u}function b(n,l,u,t,i){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||C(n,r,null,u[r],t);for(r in l)i&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||C(n,r,l[r],u[r],t)}function P(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=\"number\"==typeof u&&!1===s.test(l)?u+\"px\":null==u?\"\":u}function C(n,l,u,t,i){var r,o,f,e,c;if(i?\"className\"===l&&(l=\"class\"):\"class\"===l&&(l=\"className\"),\"style\"===l)if(r=n.style,\"string\"==typeof u)r.cssText=u;else{if(\"string\"==typeof t&&(r.cssText=\"\",t=null),t)for(e in t)u&&e in u||P(r,e,\"\");if(u)for(c in u)t&&u[c]===t[c]||P(r,c,u[c])}else\"o\"===l[0]&&\"n\"===l[1]?(o=l!==(l=l.replace(/Capture$/,\"\")),f=l.toLowerCase(),l=(f in n?f:l).slice(2),u?(t||n.addEventListener(l,N,o),(n.l||(n.l={}))[l]=u):n.removeEventListener(l,N,o)):\"list\"!==l&&\"tagName\"!==l&&\"form\"!==l&&\"type\"!==l&&\"size\"!==l&&!i&&l in n?n[l]=null==u?\"\":u:\"function\"!=typeof u&&\"dangerouslySetInnerHTML\"!==l&&(l!==(l=l.replace(/^xlink:?/,\"\"))?null==u||!1===u?n.removeAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase()):n.setAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase(),u):null==u||!1===u&&!/^ar/.test(l)?n.removeAttribute(l):n.setAttribute(l,u))}function N(l){this.l[l.type](n.event?n.event(l):l)}function z(l,u,t,i,r,o,f,e,c){var s,p,v,h,x,m,w,k,_,b,P=u.type;if(void 0!==u.constructor)return null;(s=n.__b)&&s(u);try{n:if(\"function\"==typeof P){if(k=u.props,_=(s=P.contextType)&&i[s.__c],b=s?_?_.props.value:s.__:i,t.__c?w=(p=u.__c=t.__c).__=p.__E:(\"prototype\"in P&&P.prototype.render?u.__c=p=new P(k,b):(u.__c=p=new d(k,b),p.constructor=P,p.render=D),_&&_.sub(p),p.props=k,p.state||(p.state={}),p.context=b,p.__n=i,v=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=P.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=a({},p.__s)),a(p.__s,P.getDerivedStateFromProps(k,p.__s))),h=p.props,x=p.state,v)null==P.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==P.getDerivedStateFromProps&&k!==h&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(k,b),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(k,p.__s,b)||u.__v===t.__v&&!p.__){for(p.props=k,p.state=p.__s,u.__v!==t.__v&&(p.__d=!1),p.__v=u,u.__e=t.__e,u.__k=t.__k,p.__h.length&&f.push(p),s=0;s<u.__k.length;s++)u.__k[s]&&(u.__k[s].__=u);break n}null!=p.componentWillUpdate&&p.componentWillUpdate(k,p.__s,b),null!=p.componentDidUpdate&&p.__h.push(function(){p.componentDidUpdate(h,x,m)})}p.context=b,p.props=k,p.state=p.__s,(s=n.__r)&&s(u),p.__d=!1,p.__v=u,p.__P=l,s=p.render(p.props,p.state,p.context),u.__k=null!=s&&s.type==y&&null==s.key?s.props.children:Array.isArray(s)?s:[s],null!=p.getChildContext&&(i=a(a({},i),p.getChildContext())),v||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(h,x)),g(l,u,t,i,r,o,f,e,c),p.base=u.__e,p.__h.length&&f.push(p),w&&(p.__E=p.__=null),p.__e=!1}else null==o&&u.__v===t.__v?(u.__k=t.__k,u.__e=t.__e):u.__e=T(t.__e,u,t,i,r,o,f,c);(s=n.diffed)&&s(u)}catch(l){u.__v=null,n.__e(l,u,t)}return u.__e}function A(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function T(n,l,u,t,i,r,o,f){var s,a,p,v,h,y=u.props,d=l.props;if(i=\"svg\"===l.type||i,null!=r)for(s=0;s<r.length;s++)if(null!=(a=r[s])&&((null===l.type?3===a.nodeType:a.localName===l.type)||n==a)){n=a,r[s]=null;break}if(null==n){if(null===l.type)return document.createTextNode(d);n=i?document.createElementNS(\"http://www.w3.org/2000/svg\",l.type):document.createElement(l.type,d.is&&{is:d.is}),r=null,f=!1}if(null===l.type)y!==d&&n.data!=d&&(n.data=d);else{if(null!=r&&(r=c.slice.call(n.childNodes)),p=(y=u.props||e).dangerouslySetInnerHTML,v=d.dangerouslySetInnerHTML,!f){if(y===e)for(y={},h=0;h<n.attributes.length;h++)y[n.attributes[h].name]=n.attributes[h].value;(v||p)&&(v&&p&&v.__html==p.__html||(n.innerHTML=v&&v.__html||\"\"))}b(n,d,y,i,f),v?l.__k=[]:(l.__k=l.props.children,g(n,l,u,t,\"foreignObject\"!==l.type&&i,r,o,e,f)),f||(\"value\"in d&&void 0!==(s=d.value)&&s!==n.value&&C(n,\"value\",s,y.value,!1),\"checked\"in d&&void 0!==(s=d.checked)&&s!==n.checked&&C(n,\"checked\",s,y.checked,!1))}return n}function $(l,u,t){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,t)}}function j(l,u,t){var i,r,o;if(n.unmount&&n.unmount(l),(i=l.ref)&&(i.current&&i.current!==l.__e||$(i,null,u)),t||\"function\"==typeof l.type||(t=null!=(r=l.__e)),l.__e=l.__d=void 0,null!=(i=l.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(l){n.__e(l,u)}i.base=i.__P=null}if(i=l.__k)for(o=0;o<i.length;o++)i[o]&&j(i[o],u,t);null!=r&&p(r)}function D(n,l,u){return this.constructor(n,u)}function E(l,u,t){var i,r,f;n.__&&n.__(l,u),r=(i=t===o)?null:t&&t.__k||u.__k,l=v(y,null,[l]),f=[],z(u,(i?u:t||u).__k=l,r||e,e,void 0!==u.ownerSVGElement,t&&!i?[t]:r?null:c.slice.call(u.childNodes),f,t||e,i),A(f,l)}n={__e:function(n,l){for(var u,t;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(t=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(t=!0,u.componentDidCatch(n)),t)return w(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),w(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),w(this))},d.prototype.render=y,u=[],t=0,i=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=e,f=0,exports.render=E,exports.hydrate=function(n,l){E(n,l,o)},exports.createElement=v,exports.h=v,exports.Fragment=y,exports.createRef=function(){return{}},exports.isValidElement=l,exports.Component=d,exports.cloneElement=function(n,l){var u,t;for(t in l=a(a({},n.props),l),arguments.length>2&&(l.children=c.slice.call(arguments,2)),u={},l)\"key\"!==t&&\"ref\"!==t&&(u[t]=l[t]);return h(n.type,u,l.key||n.key,l.ref||n.ref,null)},exports.createContext=function(n){var l={},u={__c:\"__cC\"+f++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var t,i=this;return this.getChildContext||(t=[],this.getChildContext=function(){return l[u.__c]=i,l},this.shouldComponentUpdate=function(n){i.props.value!==n.value&&t.some(function(l){l.context=n.value,w(l)})},this.sub=function(n){t.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){t.splice(t.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u.Provider.__=u,u},exports.toChildArray=_,exports._e=j,exports.options=n;\n//# sourceMappingURL=preact.js.map\n","var n,t,r,u=require(\"preact\"),o=0,i=[],c=u.options.__r,e=u.options.diffed,f=u.options.__c,a=u.options.unmount;function p(n,r){u.options.__h&&u.options.__h(t,n,o||r),o=0;var i=t.__H||(t.__H={__:[],__h:[]});return n>=i.__.length&&i.__.push({}),i.__[n]}function v(n){return o=1,s(T,n)}function s(r,u,o){var i=p(n++,2);return i.__c||(i.__c=t,i.__=[o?o(u):T(void 0,u),function(n){var t=r(i.__[0],n);i.__[0]!==t&&(i.__[0]=t,i.__c.setState({}))}]),i.__}function x(r,o){var i=p(n++,4);!u.options.__s&&h(i.__H,o)&&(i.__=r,i.__H=o,t.__h.push(i))}function l(t,r){var u=p(n++,7);return h(u.__H,r)?(u.__H=r,u.__h=t,u.__=t()):u.__}function m(){i.some(function(n){if(n.__P)try{n.__H.__h.forEach(y),n.__H.__h.forEach(d),n.__H.__h=[]}catch(t){return n.__H.__h=[],u.options.__e(t,n.__v),!0}}),i=[]}function y(n){n.t&&n.t()}function d(n){var t=n.__();\"function\"==typeof t&&(n.t=t)}function h(n,t){return!n||t.some(function(t,r){return t!==n[r]})}function T(n,t){return\"function\"==typeof t?t(n):t}u.options.__r=function(r){c&&c(r),n=0,(t=r.__c).__H&&(t.__H.__h.forEach(y),t.__H.__h.forEach(d),t.__H.__h=[])},u.options.diffed=function(n){e&&e(n);var t=n.__c;if(t){var o=t.__H;o&&o.__h.length&&(1!==i.push(t)&&r===u.options.requestAnimationFrame||((r=u.options.requestAnimationFrame)||function(n){var t,r=function(){clearTimeout(u),cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);\"undefined\"!=typeof window&&(t=requestAnimationFrame(r))})(m))}},u.options.__c=function(n,t){t.some(function(n){try{n.__h.forEach(y),n.__h=n.__h.filter(function(n){return!n.__||d(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],u.options.__e(r,n.__v)}}),f&&f(n,t)},u.options.unmount=function(n){a&&a(n);var t=n.__c;if(t){var r=t.__H;if(r)try{r.__.forEach(function(n){return n.t&&n.t()})}catch(n){u.options.__e(n,t.__v)}}},exports.useState=v,exports.useReducer=s,exports.useEffect=function(r,o){var i=p(n++,3);!u.options.__s&&h(i.__H,o)&&(i.__=r,i.__H=o,t.__H.__h.push(i))},exports.useLayoutEffect=x,exports.useRef=function(n){return o=5,l(function(){return{current:n}},[])},exports.useImperativeHandle=function(n,t,r){o=6,x(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==r?r:r.concat(n))},exports.useMemo=l,exports.useCallback=function(n,t){return o=8,l(function(){return n},t)},exports.useContext=function(r){var u=t.context[r.__c],o=p(n++,9);return o.__c=r,u?(null==o.__&&(o.__=!0,u.sub(t)),u.props.value):r.__},exports.useDebugValue=function(n,t){u.options.useDebugValue&&u.options.useDebugValue(t?t(n):n)},exports.useErrorBoundary=function(r){var u=p(n++,10),o=v();return u.__=r,t.componentDidCatch||(t.componentDidCatch=function(n){u.__&&u.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]};\n//# sourceMappingURL=hooks.js.map\n","var n=require(\"preact/hooks\"),t=require(\"preact\");function e(n,t){for(var e in t)n[e]=t[e];return n}function r(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}var o=function(n){var t,e;function o(t){var e;return(e=n.call(this,t)||this).isPureReactComponent=!0,e}return e=n,(t=o).prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e,o.prototype.shouldComponentUpdate=function(n,t){return r(this.props,n)||r(this.state,t)},o}(t.Component);function u(n,o){function u(n){var t=this.props.ref,e=t==n.ref;return!e&&t&&(t.call?t(null):t.current=null),o?!o(this.props,n)||!e:r(this.props,n)}function i(r){return this.shouldComponentUpdate=u,t.createElement(n,e({},r))}return i.prototype.isReactComponent=!0,i.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",i.t=!0,i}var i=t.options.__b;function f(n){function t(t){var r=e({},t);return delete r.ref,n(r,t.ref)}return t.prototype.isReactComponent=t.t=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}t.options.__b=function(n){n.type&&n.type.t&&n.ref&&(n.props.ref=n.ref,n.ref=null),i&&i(n)};var c=function(n,e){return n?t.toChildArray(n).reduce(function(n,t,r){return n.concat(e(t,r))},[]):null},l={map:c,forEach:c,count:function(n){return n?t.toChildArray(n).length:0},only:function(n){if(1!==(n=t.toChildArray(n)).length)throw new Error(\"Children.only() expects only one child.\");return n[0]},toArray:t.toChildArray},a=t.options.__e;function s(n){return n&&((n=e({},n)).__c=null,n.__k=n.__k&&n.__k.map(s)),n}function p(){this.__u=0,this.o=null,this.__b=null}function v(n){var t=n.__.__c;return t&&t.u&&t.u(n)}function h(n){var e,r,o;function u(u){if(e||(e=n()).then(function(n){r=n.default||n},function(n){o=n}),o)throw o;if(!r)throw e;return t.createElement(r,u)}return u.displayName=\"Lazy\",u.t=!0,u}function d(){this.i=null,this.l=null}t.options.__e=function(n,t,e){if(n.then)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return r.__c(n,t.__c);a(n,t,e)},(p.prototype=new t.Component).__c=function(n,t){var e=this;null==e.o&&(e.o=[]),e.o.push(t);var r=v(e.__v),o=!1,u=function(){o||(o=!0,r?r(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){u(),t.__c&&t.__c()};var i=function(){var n;if(!--e.__u)for(e.__v.__k[0]=e.state.u,e.setState({u:e.__b=null});n=e.o.pop();)n.forceUpdate()};e.__u++||e.setState({u:e.__b=e.__v.__k[0]}),n.then(u,u)},p.prototype.render=function(n,e){return this.__b&&(this.__v.__k[0]=s(this.__b),this.__b=null),[t.createElement(t.Component,null,e.u?null:n.children),e.u&&n.fallback]};var x=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};(d.prototype=new t.Component).u=function(n){var t=this,e=v(t.__v),r=t.l.get(n);return r[0]++,function(o){var u=function(){t.props.revealOrder?(r.push(o),x(t,n,r)):o()};e?e(u):u()}},d.prototype.render=function(n){this.i=null,this.l=new Map;var e=t.toChildArray(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&e.reverse();for(var r=e.length;r--;)this.l.set(e[r],this.i=[1,0,this.i]);return n.children},d.prototype.componentDidUpdate=d.prototype.componentDidMount=function(){var n=this;n.l.forEach(function(t,e){x(n,e,t)})};var m=function(){function n(){}var t=n.prototype;return t.getChildContext=function(){return this.props.context},t.render=function(n){return n.children},n}();function y(n){var e=this,r=n.container,o=t.createElement(m,{context:e.context},n.vnode);return e.s&&e.s!==r&&(e.p.parentNode&&e.s.removeChild(e.p),t._e(e.v),e.h=!1),n.vnode?e.h?(r.__k=e.__k,t.render(o,r),e.__k=r.__k):(e.p=document.createTextNode(\"\"),t.hydrate(\"\",r),r.appendChild(e.p),e.h=!0,e.s=r,t.render(o,r,e.p),e.__k=e.p.__k):e.h&&(e.p.parentNode&&e.s.removeChild(e.p),t._e(e.v)),e.v=o,e.componentWillUnmount=function(){e.p.parentNode&&e.s.removeChild(e.p),t._e(e.v)},null}function b(n,e){return t.createElement(y,{vnode:n,container:e})}var g=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;t.Component.prototype.isReactComponent={};var w=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;function E(n,e,r){if(null==e.__k)for(;e.firstChild;)e.removeChild(e.firstChild);return t.render(n,e),\"function\"==typeof r&&r(),n?n.__c:null}var _=t.options.event;function A(n,t){n[\"UNSAFE_\"+t]&&!n[t]&&Object.defineProperty(n,t,{configurable:!1,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){this[\"UNSAFE_\"+t]=n}})}t.options.event=function(n){_&&(n=_(n)),n.persist=function(){};var t=!1,e=!1,r=n.stopPropagation;n.stopPropagation=function(){r.call(n),t=!0};var o=n.preventDefault;return n.preventDefault=function(){o.call(n),e=!0},n.isPropagationStopped=function(){return t},n.isDefaultPrevented=function(){return e},n.nativeEvent=n};var C={configurable:!0,get:function(){return this.class}},S=t.options.vnode;function k(n){return t.createElement.bind(null,n)}function N(n){return!!n&&n.$$typeof===w}function R(n){return N(n)?t.cloneElement.apply(null,arguments):n}function U(n){return!!n.__k&&(t.render(null,n),!0)}function F(n){return n&&(n.base||1===n.nodeType&&n)||null}t.options.vnode=function(n){n.$$typeof=w;var e=n.type,r=n.props;if(e){if(r.class!=r.className&&(C.enumerable=\"className\"in r,null!=r.className&&(r.class=r.className),Object.defineProperty(r,\"className\",C)),\"function\"!=typeof e){var o,u,i;for(i in r.defaultValue&&void 0!==r.value&&(r.value||0===r.value||(r.value=r.defaultValue),delete r.defaultValue),Array.isArray(r.value)&&r.multiple&&\"select\"===e&&(t.toChildArray(r.children).forEach(function(n){-1!=r.value.indexOf(n.props.value)&&(n.props.selected=!0)}),delete r.value),r)if(o=g.test(i))break;if(o)for(i in u=n.props={},r)u[g.test(i)?i.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():i]=r[i]}!function(t){var e=n.type,r=n.props;if(r&&\"string\"==typeof e){var o={};for(var u in r)/^on(Ani|Tra|Tou)/.test(u)&&(r[u.toLowerCase()]=r[u],delete r[u]),o[u.toLowerCase()]=u;if(o.ondoubleclick&&(r.ondblclick=r[o.ondoubleclick],delete r[o.ondoubleclick]),o.onbeforeinput&&(r.onbeforeinput=r[o.onbeforeinput],delete r[o.onbeforeinput]),o.onchange&&(\"textarea\"===e||\"input\"===e.toLowerCase()&&!/^fil|che|ra/i.test(r.type))){var i=o.oninput||\"oninput\";r[i]||(r[i]=r[o.onchange],delete r[o.onchange])}}}(),\"function\"==typeof e&&!e.m&&e.prototype&&(A(e.prototype,\"componentWillMount\"),A(e.prototype,\"componentWillReceiveProps\"),A(e.prototype,\"componentWillUpdate\"),e.m=!0)}S&&S(n)};var M=function(n,t){return n(t)},O={useState:n.useState,useReducer:n.useReducer,useEffect:n.useEffect,useLayoutEffect:n.useLayoutEffect,useRef:n.useRef,useImperativeHandle:n.useImperativeHandle,useMemo:n.useMemo,useCallback:n.useCallback,useContext:n.useContext,useDebugValue:n.useDebugValue,version:\"16.8.0\",Children:l,render:E,hydrate:E,unmountComponentAtNode:U,createPortal:b,createElement:t.createElement,createContext:t.createContext,createFactory:k,cloneElement:R,createRef:t.createRef,Fragment:t.Fragment,isValidElement:N,findDOMNode:F,Component:t.Component,PureComponent:o,memo:u,forwardRef:f,unstable_batchedUpdates:M,Suspense:p,SuspenseList:d,lazy:h};Object.keys(n).forEach(function(t){exports[t]=n[t]}),exports.createElement=t.createElement,exports.createContext=t.createContext,exports.createRef=t.createRef,exports.Fragment=t.Fragment,exports.Component=t.Component,exports.version=\"16.8.0\",exports.Children=l,exports.render=E,exports.hydrate=function(n,e,r){return t.hydrate(n,e),\"function\"==typeof r&&r(),n?n.__c:null},exports.unmountComponentAtNode=U,exports.createPortal=b,exports.createFactory=k,exports.cloneElement=R,exports.isValidElement=N,exports.findDOMNode=F,exports.PureComponent=o,exports.memo=u,exports.forwardRef=f,exports.unstable_batchedUpdates=M,exports.Suspense=p,exports.SuspenseList=d,exports.lazy=h,exports.default=O;\n//# sourceMappingURL=compat.js.map\n","function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar browserUtils = require('@walletconnect/browser-utils');\nvar QRCode = _interopDefault(require('qrcode'));\nvar copy = _interopDefault(require('copy-to-clipboard'));\nvar React = require('preact/compat');\n\nfunction open(uri) {\n QRCode.toString(uri, {\n type: \"terminal\"\n }).then(console.log);\n}\n\nvar WALLETCONNECT_STYLE_SHEET = \":root {\\n --animation-duration: 300ms;\\n}\\n\\n@keyframes fadeIn {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fadeOut {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n\\n.animated {\\n animation-duration: var(--animation-duration);\\n animation-fill-mode: both;\\n}\\n\\n.fadeIn {\\n animation-name: fadeIn;\\n}\\n\\n.fadeOut {\\n animation-name: fadeOut;\\n}\\n\\n#walletconnect-wrapper {\\n -webkit-user-select: none;\\n align-items: center;\\n display: flex;\\n height: 100%;\\n justify-content: center;\\n left: 0;\\n pointer-events: none;\\n position: fixed;\\n top: 0;\\n user-select: none;\\n width: 100%;\\n z-index: 99999999999999;\\n}\\n\\n.walletconnect-modal__headerLogo {\\n height: 21px;\\n}\\n\\n.walletconnect-modal__header p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n align-items: flex-start;\\n display: flex;\\n flex: 1;\\n margin-left: 5px;\\n}\\n\\n.walletconnect-modal__close__wrapper {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n z-index: 10000;\\n background: white;\\n border-radius: 26px;\\n padding: 6px;\\n box-sizing: border-box;\\n width: 26px;\\n height: 26px;\\n cursor: pointer;\\n}\\n\\n.walletconnect-modal__close__icon {\\n position: relative;\\n top: 7px;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transform: rotate(45deg);\\n}\\n\\n.walletconnect-modal__close__line1 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n}\\n\\n.walletconnect-modal__close__line2 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n transform: rotate(90deg);\\n}\\n\\n.walletconnect-qrcode__base {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n background: rgba(37, 41, 46, 0.95);\\n height: 100%;\\n left: 0;\\n pointer-events: auto;\\n position: fixed;\\n top: 0;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n width: 100%;\\n will-change: opacity;\\n padding: 40px;\\n box-sizing: border-box;\\n}\\n\\n.walletconnect-qrcode__text {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 10px 0 20px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-qrcode__text {\\n font-size: 4vw;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-qrcode__text {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-qrcode__image {\\n width: calc(100% - 30px);\\n box-sizing: border-box;\\n cursor: none;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-qrcode__notification {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n font-size: 16px;\\n padding: 16px 20px;\\n border-radius: 16px;\\n text-align: center;\\n transition: all 0.1s ease-in-out;\\n background: white;\\n color: black;\\n margin-bottom: -60px;\\n opacity: 0;\\n}\\n\\n.walletconnect-qrcode__notification.notification__show {\\n opacity: 1;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__header {\\n height: 130px;\\n }\\n .walletconnect-modal__base {\\n overflow: auto;\\n }\\n}\\n\\n@media only screen and (min-device-width: 415px) and (max-width: 768px) {\\n #content {\\n max-width: 768px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 375px) and (max-width: 415px) {\\n #content {\\n max-width: 414px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 320px) and (max-width: 375px) {\\n #content {\\n max-width: 375px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n #content {\\n max-width: 320px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.walletconnect-modal__base {\\n -webkit-font-smoothing: antialiased;\\n background: #ffffff;\\n border-radius: 24px;\\n box-shadow: 0 10px 50px 5px rgba(0, 0, 0, 0.4);\\n font-family: ui-rounded, \\\"SF Pro Rounded\\\", \\\"SF Pro Text\\\", medium-content-sans-serif-font,\\n -apple-system, BlinkMacSystemFont, ui-sans-serif, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell,\\n \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n margin-top: 41px;\\n padding: 24px 24px 22px;\\n pointer-events: auto;\\n position: relative;\\n text-align: center;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n will-change: transform;\\n overflow: visible;\\n transform: translateY(-50%);\\n top: 50%;\\n max-width: 500px;\\n margin: auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__base {\\n padding: 24px 12px;\\n }\\n}\\n\\n.walletconnect-modal__base .hidden {\\n transform: translateY(150%);\\n transition: 0.125s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.walletconnect-modal__header {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n left: 0;\\n justify-content: space-between;\\n position: absolute;\\n top: -42px;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base .wc-logo {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n margin-top: 15px;\\n padding-bottom: 15px;\\n pointer-events: auto;\\n}\\n\\n.walletconnect-modal__base .wc-logo div {\\n background-color: #3399ff;\\n height: 21px;\\n margin-right: 5px;\\n mask-image: url(\\\"images/wc-logo.svg\\\") center no-repeat;\\n width: 32px;\\n}\\n\\n.walletconnect-modal__base .wc-logo p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n}\\n\\n.walletconnect-modal__base h2 {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 0 0 19px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base__row {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n align-items: center;\\n border-radius: 20px;\\n cursor: pointer;\\n display: flex;\\n height: 56px;\\n justify-content: space-between;\\n padding: 0 15px;\\n position: relative;\\n margin: 0px 0px 8px;\\n text-align: left;\\n transition: 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n will-change: transform;\\n text-decoration: none;\\n}\\n\\n.walletconnect-modal__base__row:hover {\\n background: rgba(60, 66, 82, 0.06);\\n}\\n\\n.walletconnect-modal__base__row:active {\\n background: rgba(60, 66, 82, 0.06);\\n transform: scale(0.975);\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n}\\n\\n.walletconnect-modal__base__row__h3 {\\n color: #25292e;\\n font-size: 20px;\\n font-weight: 700;\\n margin: 0;\\n padding-bottom: 3px;\\n}\\n\\n.walletconnect-modal__base__row__right {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n}\\n\\n.walletconnect-modal__base__row__right__app-icon {\\n border-radius: 8px;\\n height: 34px;\\n margin: 0 11px 2px 0;\\n width: 34px;\\n background-size: 100%;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-modal__base__row__right__caret {\\n height: 18px;\\n opacity: 0.3;\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n width: 8px;\\n will-change: opacity;\\n}\\n\\n.walletconnect-modal__base__row:hover .caret,\\n.walletconnect-modal__base__row:active .caret {\\n opacity: 0.6;\\n}\\n\\n.walletconnect-modal__mobile__toggle {\\n width: 80%;\\n display: flex;\\n margin: 0 auto;\\n position: relative;\\n overflow: hidden;\\n border-radius: 8px;\\n margin-bottom: 18px;\\n background: #d4d5d9;\\n}\\n\\n.walletconnect-modal__single_wallet {\\n display: flex;\\n justify-content: center;\\n margin-top: 7px;\\n margin-bottom: 18px;\\n}\\n\\n.walletconnect-modal__single_wallet a {\\n cursor: pointer;\\n color: rgb(64, 153, 255);\\n font-size: 21px;\\n font-weight: 800;\\n text-decoration: none !important;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-modal__mobile__toggle_selector {\\n width: calc(50% - 8px);\\n background: white;\\n position: absolute;\\n border-radius: 5px;\\n height: calc(100% - 8px);\\n top: 4px;\\n transition: all 0.2s ease-in-out;\\n transform: translate3d(4px, 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle.right__selected .walletconnect-modal__mobile__toggle_selector {\\n transform: translate3d(calc(100% + 12px), 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle a {\\n font-size: 12px;\\n width: 50%;\\n text-align: center;\\n padding: 8px;\\n margin: 0;\\n font-weight: 600;\\n z-index: 1;\\n}\\n\\n.walletconnect-modal__footer {\\n display: flex;\\n justify-content: center;\\n margin-top: 20px;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__footer {\\n margin-top: 5vw;\\n }\\n}\\n\\n.walletconnect-modal__footer a {\\n cursor: pointer;\\n color: #898d97;\\n font-size: 15px;\\n margin: 0 auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__footer a {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-connect__buttons__wrapper {\\n max-height: 44vh;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__android {\\n margin: 50% 0;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__wrap {\\n display: grid;\\n grid-template-columns: repeat(4, 1fr);\\n margin: 10px 0;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__buttons__wrapper__wrap {\\n margin-top: 40px;\\n }\\n}\\n\\n.walletconnect-connect__button {\\n background-color: rgb(64, 153, 255);\\n padding: 12px;\\n border-radius: 8px;\\n text-decoration: none;\\n color: rgb(255, 255, 255);\\n font-weight: 500;\\n}\\n\\n.walletconnect-connect__button__icon_anchor {\\n cursor: pointer;\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n margin: 8px;\\n width: 42px;\\n justify-self: center;\\n flex-direction: column;\\n text-decoration: none !important;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-connect__button__icon_anchor {\\n margin: 4px;\\n }\\n}\\n\\n.walletconnect-connect__button__icon {\\n border-radius: 10px;\\n height: 42px;\\n margin: 0;\\n width: 42px;\\n background-size: cover !important;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-connect__button__text {\\n color: #424952;\\n font-size: 2.7vw;\\n text-decoration: none !important;\\n padding: 0;\\n margin-top: 1.8vw;\\n font-weight: 600;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__button__text {\\n font-size: 16px;\\n margin-top: 12px;\\n }\\n}\\n\\n.walletconnect-search__input {\\n border: none;\\n background: #d4d5d9;\\n border-style: none;\\n padding: 8px 16px;\\n outline: none;\\n font-style: normal;\\n font-stretch: normal;\\n font-size: 16px;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: normal;\\n letter-spacing: normal;\\n text-align: left;\\n border-radius: 8px;\\n width: calc(100% - 16px);\\n margin: 0;\\n margin-bottom: 8px;\\n}\\n\";\n\nvar WALLETCONNECT_LOGO_SVG_URL = \"data:image/svg+xml,%3Csvg height='185' viewBox='0 0 300 185' width='300' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m61.4385429 36.2562612c48.9112241-47.8881663 128.2119871-47.8881663 177.1232091 0l5.886545 5.7634174c2.445561 2.3944081 2.445561 6.2765112 0 8.6709204l-20.136695 19.715503c-1.222781 1.1972051-3.2053 1.1972051-4.428081 0l-8.100584-7.9311479c-34.121692-33.4079817-89.443886-33.4079817-123.5655788 0l-8.6750562 8.4936051c-1.2227816 1.1972041-3.205301 1.1972041-4.4280806 0l-20.1366949-19.7155031c-2.4455612-2.3944092-2.4455612-6.2765122 0-8.6709204zm218.7677961 40.7737449 17.921697 17.546897c2.445549 2.3943969 2.445563 6.2764769.000031 8.6708899l-80.810171 79.121134c-2.445544 2.394426-6.410582 2.394453-8.85616.000062-.00001-.00001-.000022-.000022-.000032-.000032l-57.354143-56.154572c-.61139-.598602-1.60265-.598602-2.21404 0-.000004.000004-.000007.000008-.000011.000011l-57.3529212 56.154531c-2.4455368 2.394432-6.4105755 2.394472-8.8561612.000087-.0000143-.000014-.0000296-.000028-.0000449-.000044l-80.81241943-79.122185c-2.44556021-2.394408-2.44556021-6.2765115 0-8.6709197l17.92172963-17.5468673c2.4455602-2.3944082 6.4105989-2.3944082 8.8561602 0l57.3549775 56.155357c.6113908.598602 1.602649.598602 2.2140398 0 .0000092-.000009.0000174-.000017.0000265-.000024l57.3521031-56.155333c2.445505-2.3944633 6.410544-2.3945531 8.856161-.0002.000034.0000336.000068.0000673.000101.000101l57.354902 56.155432c.61139.598601 1.60265.598601 2.21404 0l57.353975-56.1543249c2.445561-2.3944092 6.410599-2.3944092 8.85616 0z' fill='%233b99fc'/%3E%3C/svg%3E\";\n\nvar WALLETCONNECT_HEADER_TEXT = \"WalletConnect\";\nvar ANIMATION_DURATION = 300;\nvar DEFAULT_BUTTON_COLOR = \"rgb(64, 153, 255)\";\nvar WALLETCONNECT_WRAPPER_ID = \"walletconnect-wrapper\";\nvar WALLETCONNECT_STYLE_ID = \"walletconnect-style-sheet\";\nvar WALLETCONNECT_MODAL_ID = \"walletconnect-qrcode-modal\";\nvar WALLETCONNECT_CLOSE_BUTTON_ID = \"walletconnect-qrcode-close\";\nvar WALLETCONNECT_CTA_TEXT_ID = \"walletconnect-qrcode-text\";\nvar WALLETCONNECT_CONNECT_BUTTON_ID = \"walletconnect-connect-button\";\n\nfunction Header(props) {\n return React.createElement(\"div\", {\n className: \"walletconnect-modal__header\"\n }, React.createElement(\"img\", {\n src: WALLETCONNECT_LOGO_SVG_URL,\n className: \"walletconnect-modal__headerLogo\"\n }), React.createElement(\"p\", null, WALLETCONNECT_HEADER_TEXT), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__wrapper\",\n onClick: props.onClose\n }, React.createElement(\"div\", {\n id: WALLETCONNECT_CLOSE_BUTTON_ID,\n className: \"walletconnect-modal__close__icon\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line1\"\n }), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line2\"\n }))));\n}\n\nfunction ConnectButton(props) {\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button\",\n href: props.href,\n id: (WALLETCONNECT_CONNECT_BUTTON_ID + \"-\" + (props.name)),\n onClick: props.onClick,\n rel: \"noopener noreferrer\",\n style: {\n backgroundColor: props.color\n },\n target: \"_blank\"\n }, props.name);\n}\n\nvar CARET_SVG_URL = \"data:image/svg+xml,%3Csvg fill='none' height='18' viewBox='0 0 8 18' width='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='m.586301.213898c-.435947.33907-.5144813.967342-.175411 1.403292l4.87831 6.27212c.28087.36111.28087.86677 0 1.22788l-4.878311 6.27211c-.33907.436-.260536 1.0642.175412 1.4033.435949.3391 1.064219.2605 1.403289-.1754l4.87832-6.2721c.84259-1.08336.84259-2.60034 0-3.68367l-4.87832-6.27212c-.33907-.4359474-.96734-.514482-1.403289-.175412z' fill='%233c4252' fill-rule='evenodd'/%3E%3C/svg%3E\";\n\nfunction WalletButton(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n return React.createElement(\"a\", {\n className: \"walletconnect-modal__base__row\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"h3\", {\n className: \"walletconnect-modal__base__row__h3\"\n }, name), React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right__app-icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"img\", {\n src: CARET_SVG_URL,\n className: \"walletconnect-modal__base__row__right__caret\"\n })));\n}\n\nfunction WalletIcon(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n var fontSize = window.innerWidth < 768 ? ((name.length > 8 ? 2.5 : 2.7) + \"vw\") : \"inherit\";\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button__icon_anchor\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-connect__button__icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"div\", {\n style: {\n fontSize: fontSize\n },\n className: \"walletconnect-connect__button__text\"\n }, name));\n}\n\nvar GRID_MIN_COUNT = 5;\nvar LINKS_PER_PAGE = 12;\n\nfunction LinkDisplay(props) {\n var android = browserUtils.isAndroid();\n var ref = React.useState(\"\");\n var input = ref[0];\n var setInput = ref[1];\n var ref$1 = React.useState(\"\");\n var filter = ref$1[0];\n var setFilter = ref$1[1];\n var ref$2 = React.useState(1);\n var page = ref$2[0];\n var setPage = ref$2[1];\n var links = filter ? props.links.filter(function (link) { return link.name.toLowerCase().includes(filter.toLowerCase()); }) : props.links;\n var errorMessage = props.errorMessage;\n var grid = filter || links.length > GRID_MIN_COUNT;\n var pages = Math.ceil(links.length / LINKS_PER_PAGE);\n var range = [(page - 1) * LINKS_PER_PAGE + 1, page * LINKS_PER_PAGE];\n var pageLinks = links.length ? links.filter(function (_, index) { return index + 1 >= range[0] && index + 1 <= range[1]; }) : [];\n var hasPaging = !!(!android && pages > 1);\n var filterTimeout = undefined;\n\n function handleInput(e) {\n setInput(e.target.value);\n clearTimeout(filterTimeout);\n\n if (e.target.value) {\n filterTimeout = setTimeout(function () {\n setFilter(e.target.value);\n setPage(1);\n }, 1000);\n } else {\n setInput(\"\");\n setFilter(\"\");\n setPage(1);\n }\n }\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, android ? props.text.connect_mobile_wallet : props.text.choose_preferred_wallet), !android && React.createElement(\"input\", {\n className: \"walletconnect-search__input\",\n placeholder: \"Search\",\n value: input,\n onChange: handleInput\n }), React.createElement(\"div\", {\n className: (\"walletconnect-connect__buttons__wrapper\" + (android ? \"__android\" : grid && links.length ? \"__wrap\" : \"\"))\n }, !android ? pageLinks.length ? pageLinks.map(function (entry) {\n var color = entry.color;\n var name = entry.name;\n var shortName = entry.shortName;\n var logo = entry.logo;\n var href = browserUtils.formatIOSMobile(props.uri, entry);\n var handleClickIOS = React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: name,\n href: href\n });\n }, [pageLinks]);\n return !grid ? React.createElement(WalletButton, {\n color: color,\n href: href,\n name: name,\n logo: logo,\n onClick: handleClickIOS\n }) : React.createElement(WalletIcon, {\n color: color,\n href: href,\n name: shortName || name,\n logo: logo,\n onClick: handleClickIOS\n });\n }) : React.createElement(React.Fragment, null, React.createElement(\"p\", null, errorMessage.length ? props.errorMessage : !!props.links.length && !links.length ? props.text.no_wallets_found : props.text.loading)) : React.createElement(ConnectButton, {\n name: props.text.connect,\n color: DEFAULT_BUTTON_COLOR,\n href: props.uri,\n onClick: React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: \"Unknown\",\n href: props.uri\n });\n }, [])\n })), hasPaging && React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, Array(pages).fill(0).map(function (_, index) {\n var pageNumber = index + 1;\n var selected = page === pageNumber;\n return React.createElement(\"a\", {\n style: {\n margin: \"auto 10px\",\n fontWeight: selected ? \"bold\" : \"normal\"\n },\n onClick: function () { return setPage(pageNumber); }\n }, pageNumber);\n })));\n}\n\nfunction Notification(props) {\n var show = !!props.message.trim();\n return React.createElement(\"div\", {\n className: (\"walletconnect-qrcode__notification\" + (show ? \" notification__show\" : \"\"))\n }, props.message);\n}\n\nvar formatQRCodeImage = function (data) {\n try {\n var result = \"\";\n return Promise.resolve(QRCode.toString(data, {\n margin: 0,\n type: \"svg\"\n })).then(function (dataString) {\n if (typeof dataString === \"string\") {\n result = dataString.replace(\"<svg\", \"<svg class=\\\"walletconnect-qrcode__image\\\"\");\n }\n\n return result;\n });\n } catch (e) {\n return Promise.reject(e);\n }\n};\n\nfunction QRCodeDisplay(props) {\n var ref = React.useState(\"\");\n var notification = ref[0];\n var setNotification = ref[1];\n var ref$1 = React.useState(\"\");\n var svg = ref$1[0];\n var setSvg = ref$1[1];\n React.useEffect(function () {\n try {\n return Promise.resolve(formatQRCodeImage(props.uri)).then(function (_formatQRCodeImage) {\n setSvg(_formatQRCodeImage);\n });\n } catch (e) {\n Promise.reject(e);\n }\n }, []);\n\n var copyToClipboard = function () {\n var success = copy(props.uri);\n\n if (success) {\n setNotification(props.text.copied_to_clipboard);\n setInterval(function () { return setNotification(\"\"); }, 1200);\n } else {\n setNotification(\"Error\");\n setInterval(function () { return setNotification(\"\"); }, 1200);\n }\n };\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, props.text.scan_qrcode_with_wallet), React.createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: svg\n }\n }), React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, React.createElement(\"a\", {\n onClick: copyToClipboard\n }, props.text.copy_to_clipboard)), React.createElement(Notification, {\n message: notification\n }));\n}\n\nvar officialAlgorandWallet = {\n id: \"23138217b046ae8d9d07e62b3337fb288c4445f92f64be067809cd0a8f9454b9\",\n name: \"Pera Wallet\",\n homepage: \"https://perawallet.app\",\n chains: [\"algorand\"],\n image_id: \"1765f9aa-f99e-414e-826b-6b570d480999\",\n image_url: {\n sm: \"https://algorand-app.s3.amazonaws.com/app-icons/Pera-walletconnect-128.png\",\n md: \"https://algorand-app.s3.amazonaws.com/app-icons/Pera-walletconnect-128.png\",\n lg: \"https://algorand-app.s3.amazonaws.com/app-icons/Pera-walletconnect-128.png\"\n },\n app: {\n browser: \"\",\n ios: \"https://apps.apple.com/us/app/algorand-wallet/id1459898525\",\n android: \"https://play.google.com/store/apps/details?id=com.algorand.android\",\n mac: \"\",\n windows: \"\",\n linux: \"\"\n },\n mobile: {\n native: \"algorand-wc:\",\n universal: \"\"\n },\n desktop: {\n native: \"\",\n universal: \"\"\n },\n metadata: {\n shortName: \"Pera Wallet\",\n colors: {\n primary: \"rgb(255, 238, 85)\",\n secondary: \"\"\n }\n }\n};\nvar registry = {};\nregistry[officialAlgorandWallet.id] = officialAlgorandWallet;\n\nfunction Modal(props) {\n var android = browserUtils.isAndroid();\n var mobile = browserUtils.isMobile();\n var whitelist = mobile ? props.qrcodeModalOptions && props.qrcodeModalOptions.mobileLinks ? props.qrcodeModalOptions.mobileLinks : undefined : props.qrcodeModalOptions && props.qrcodeModalOptions.desktopLinks ? props.qrcodeModalOptions.desktopLinks : undefined;\n var ref = React.useState(false);\n var loading = ref[0];\n var setLoading = ref[1];\n var ref$1 = React.useState(false);\n var fetched = ref$1[0];\n var setFetched = ref$1[1];\n var ref$2 = React.useState(!mobile);\n var displayQRCode = ref$2[0];\n var setDisplayQRCode = ref$2[1];\n var displayProps = {\n mobile: mobile,\n text: props.text,\n uri: props.uri,\n qrcodeModalOptions: props.qrcodeModalOptions\n };\n var ref$3 = React.useState(\"\");\n var singleLinkHref = ref$3[0];\n var setSingleLinkHref = ref$3[1];\n var ref$4 = React.useState(false);\n var hasSingleLink = ref$4[0];\n var setHasSingleLink = ref$4[1];\n var ref$5 = React.useState([]);\n var links = ref$5[0];\n var setLinks = ref$5[1];\n var ref$6 = React.useState(\"\");\n var errorMessage = ref$6[0];\n var setErrorMessage = ref$6[1];\n\n var getLinksIfNeeded = function () {\n if (fetched || loading || whitelist && !whitelist.length || links.length > 0) {\n return;\n }\n\n React.useEffect(function () {\n var initLinks = function () {\n try {\n if (android) { return Promise.resolve(); }\n setLoading(true);\n\n try {\n var platform = mobile ? \"mobile\" : \"desktop\";\n\n var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist);\n\n setLoading(false);\n setFetched(true);\n setErrorMessage(!_links.length ? props.text.no_supported_wallets : \"\");\n setLinks(_links);\n var hasSingleLink = _links.length === 1;\n\n if (hasSingleLink) {\n setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0]));\n setDisplayQRCode(true);\n }\n\n setHasSingleLink(hasSingleLink);\n } catch (e) {\n setLoading(false);\n setFetched(true);\n setErrorMessage(props.text.something_went_wrong);\n console.error(e);\n }\n\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n initLinks();\n });\n };\n\n getLinksIfNeeded();\n var rightSelected = mobile ? displayQRCode : !displayQRCode;\n return React.createElement(\"div\", {\n id: WALLETCONNECT_MODAL_ID,\n className: \"walletconnect-qrcode__base animated fadeIn\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base\"\n }, React.createElement(Header, {\n onClose: props.onClose\n }), hasSingleLink && displayQRCode ? React.createElement(\"div\", {\n className: \"walletconnect-modal__single_wallet\"\n }, React.createElement(\"a\", {\n onClick: function () { return browserUtils.saveMobileLinkInfo({\n name: links[0].name,\n href: singleLinkHref\n }); },\n href: singleLinkHref,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, props.text.connect_with + \" \" + (hasSingleLink ? links[0].name : \"\") + \" ›\")) : android || loading || !loading && links.length ? React.createElement(\"div\", {\n className: (\"walletconnect-modal__mobile__toggle\" + (rightSelected ? \" right__selected\" : \"\"))\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__mobile__toggle_selector\"\n }), mobile ? React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.mobile), React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode)) : React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode), React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.desktop))) : null, React.createElement(\"div\", null, displayQRCode || !android && !loading && !links.length ? React.createElement(QRCodeDisplay, Object.assign({}, displayProps)) : React.createElement(LinkDisplay, Object.assign({}, displayProps,\n {links: links,\n errorMessage: errorMessage})))));\n}\n\nvar de = {\n choose_preferred_wallet: \"Wähle bevorzugte Wallet\",\n connect_mobile_wallet: \"Verbinde mit Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet\",\n connect: \"Verbinden\",\n qrcode: \"QR-Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"In die Zwischenablage kopieren\",\n copied_to_clipboard: \"In die Zwischenablage kopiert!\",\n connect_with: \"Verbinden mit Hilfe von\",\n loading: \"Laden...\",\n something_went_wrong: \"Etwas ist schief gelaufen\",\n no_supported_wallets: \"Es gibt noch keine unterstützten Wallet\",\n no_wallets_found: \"keine Wallet gefunden\"\n};\n\nvar en = {\n choose_preferred_wallet: \"Choose your preferred wallet\",\n connect_mobile_wallet: \"Connect to Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scan QR code with a WalletConnect-compatible wallet\",\n connect: \"Connect\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copy to clipboard\",\n copied_to_clipboard: \"Copied to clipboard!\",\n connect_with: \"Connect with\",\n loading: \"Loading...\",\n something_went_wrong: \"Something went wrong\",\n no_supported_wallets: \"There are no supported wallets yet\",\n no_wallets_found: \"No wallets found\"\n};\n\nvar es = {\n choose_preferred_wallet: \"Elige tu billetera preferida\",\n connect_mobile_wallet: \"Conectar a billetera móvil\",\n scan_qrcode_with_wallet: \"Escanea el código QR con una billetera compatible con WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvil\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Conectar mediante\",\n loading: \"Cargando...\",\n something_went_wrong: \"Algo salió mal\",\n no_supported_wallets: \"Todavía no hay billeteras compatibles\",\n no_wallets_found: \"No se encontraron billeteras\"\n};\n\nvar fr = {\n choose_preferred_wallet: \"Choisissez votre portefeuille préféré\",\n connect_mobile_wallet: \"Se connecter au portefeuille mobile\",\n scan_qrcode_with_wallet: \"Scannez le QR code avec un portefeuille compatible WalletConnect\",\n connect: \"Se connecter\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copier\",\n copied_to_clipboard: \"Copié!\",\n connect_with: \"Connectez-vous à l'aide de\",\n loading: \"Chargement...\",\n something_went_wrong: \"Quelque chose a mal tourné\",\n no_supported_wallets: \"Il n'y a pas encore de portefeuilles pris en charge\",\n no_wallets_found: \"Aucun portefeuille trouvé\"\n};\n\nvar ko = {\n choose_preferred_wallet: \"원하는 지갑을 선택하세요\",\n connect_mobile_wallet: \"모바일 지갑과 연결\",\n scan_qrcode_with_wallet: \"WalletConnect 지원 지갑에서 QR코드를 스캔하세요\",\n connect: \"연결\",\n qrcode: \"QR 코드\",\n mobile: \"모바일\",\n desktop: \"데스크탑\",\n copy_to_clipboard: \"클립보드에 복사\",\n copied_to_clipboard: \"클립보드에 복사되었습니다!\",\n connect_with: \"와 연결하다\",\n loading: \"로드 중...\",\n something_went_wrong: \"문제가 발생했습니다.\",\n no_supported_wallets: \"아직 지원되는 지갑이 없습니다\",\n no_wallets_found: \"지갑을 찾을 수 없습니다\"\n};\n\nvar pt = {\n choose_preferred_wallet: \"Escolha sua carteira preferida\",\n connect_mobile_wallet: \"Conectar-se à carteira móvel\",\n scan_qrcode_with_wallet: \"Ler o código QR com uma carteira compatível com WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvel\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Ligar por meio de\",\n loading: \"Carregamento...\",\n something_went_wrong: \"Algo correu mal\",\n no_supported_wallets: \"Ainda não há carteiras suportadas\",\n no_wallets_found: \"Nenhuma carteira encontrada\"\n};\n\nvar zh = {\n choose_preferred_wallet: \"选择你的钱包\",\n connect_mobile_wallet: \"连接至移动端钱包\",\n scan_qrcode_with_wallet: \"使用兼容 WalletConnect 的钱包扫描二维码\",\n connect: \"连接\",\n qrcode: \"二维码\",\n mobile: \"移动\",\n desktop: \"桌面\",\n copy_to_clipboard: \"复制到剪贴板\",\n copied_to_clipboard: \"复制到剪贴板成功!\",\n connect_with: \"通过以下方式连接\",\n loading: \"正在加载...\",\n something_went_wrong: \"出了问题\",\n no_supported_wallets: \"目前还没有支持的钱包\",\n no_wallets_found: \"没有找到钱包\"\n};\n\nvar fa = {\n choose_preferred_wallet: \"کیف پول مورد نظر خود را انتخاب کنید\",\n connect_mobile_wallet: \"به کیف پول موبایل وصل شوید\",\n scan_qrcode_with_wallet: \"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید\",\n connect: \"اتصال\",\n qrcode: \"کد QR\",\n mobile: \"سیار\",\n desktop: \"دسکتاپ\",\n copy_to_clipboard: \"کپی به کلیپ بورد\",\n copied_to_clipboard: \"در کلیپ بورد کپی شد!\",\n connect_with: \"ارتباط با\",\n loading: \"...بارگذاری\",\n something_went_wrong: \"مشکلی پیش آمد\",\n no_supported_wallets: \"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد\",\n no_wallets_found: \"هیچ کیف پولی پیدا نشد\"\n};\n\nvar languages = {\n de: de,\n en: en,\n es: es,\n fr: fr,\n ko: ko,\n pt: pt,\n zh: zh,\n fa: fa\n};\n\nfunction injectStyleSheet() {\n var doc = browserUtils.getDocumentOrThrow();\n var prev = doc.getElementById(WALLETCONNECT_STYLE_ID);\n\n if (prev) {\n doc.head.removeChild(prev);\n }\n\n var style = doc.createElement(\"style\");\n style.setAttribute(\"id\", WALLETCONNECT_STYLE_ID);\n style.innerText = WALLETCONNECT_STYLE_SHEET;\n doc.head.appendChild(style);\n}\n\nfunction renderWrapper() {\n var doc = browserUtils.getDocumentOrThrow();\n var wrapper = doc.createElement(\"div\");\n wrapper.setAttribute(\"id\", WALLETCONNECT_WRAPPER_ID);\n doc.body.appendChild(wrapper);\n return wrapper;\n}\n\nfunction triggerCloseAnimation() {\n var doc = browserUtils.getDocumentOrThrow();\n var modal = doc.getElementById(WALLETCONNECT_MODAL_ID);\n\n if (modal) {\n modal.className = modal.className.replace(\"fadeIn\", \"fadeOut\");\n setTimeout(function () {\n var wrapper = doc.getElementById(WALLETCONNECT_WRAPPER_ID);\n\n if (wrapper) {\n doc.body.removeChild(wrapper);\n }\n }, ANIMATION_DURATION);\n }\n}\n\nfunction getWrappedCallback(cb) {\n return function () {\n triggerCloseAnimation();\n\n if (cb) {\n cb();\n }\n };\n}\n\nfunction getText() {\n var lang = browserUtils.getNavigatorOrThrow().language.split(\"-\")[0] || \"en\";\n return languages[lang] || languages[\"en\"];\n}\n\nfunction open$1(uri, cb, qrcodeModalOptions) {\n injectStyleSheet();\n var wrapper = renderWrapper();\n React.render(React.createElement(Modal, {\n text: getText(),\n uri: uri,\n onClose: getWrappedCallback(cb),\n qrcodeModalOptions: qrcodeModalOptions\n }), wrapper);\n}\nfunction close$1() {\n triggerCloseAnimation();\n}\n\nvar ALGORAND_QUERY_PARAM_NAME = \"algorand\";\nfunction transformUri(uri, addAlgorandMarkerToUri) {\n if (addAlgorandMarkerToUri == null || addAlgorandMarkerToUri) {\n var urlObject = new URL(uri);\n\n if (!urlObject.searchParams.has(ALGORAND_QUERY_PARAM_NAME)) {\n urlObject.searchParams.set(ALGORAND_QUERY_PARAM_NAME, \"true\");\n return urlObject.toString();\n }\n }\n\n return uri;\n}\n\nfunction objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n\nvar isNode = function () { return typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\"; };\n\nfunction open$2(uri, cb, qrcodeModalOptions) {\n var ref = qrcodeModalOptions || {};\n var addAlgorandMarkerToUri = ref.addAlgorandMarkerToUri;\n var rest = objectWithoutProperties( ref, [\"addAlgorandMarkerToUri\"] );\n var vanillaOptions = rest;\n uri = transformUri(uri, addAlgorandMarkerToUri);\n console.log(uri);\n\n if (isNode()) {\n open(uri);\n } else {\n open$1(uri, cb, vanillaOptions);\n }\n}\n\nfunction close$2() {\n if (isNode()) ; else {\n close$1();\n }\n}\n\nvar index = {\n open: open$2,\n close: close$2\n};\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n"],"names":["n","r","t","s","v","i","o","u","a","f","c","p","l","d","y","h","b","_","j","g","w","P","x","A","z","k","E","en","D","fn","produce","KMD_WALLET","parse","icon","undefined","this","lib","_interopDefault","React","require$$0","require$$1","browser","parseUserAgent","browserName","isIOS","global","format","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","formatJsonRpcRequest","providers","walletProviders","cjs","registry","canPromise","bufferFill","allocUnsafe","toString","utils","BitBuffer","BufferUtil","BitMatrix","ECLevel","Buffer","ReedSolomonEncoder","Utils","Mode","dijkstra","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","util","Stream","ChunkStream","chunkstreamModule","paethPredictor","interlaceUtils","Filter","filterParseModule","FilterAsync","filterParseAsyncModule","constants","CrcCalculator","crcModule","Parser","parserModule","bitmapper","formatNormaliser","zlib","parserAsyncModule","Packer","packerModule","packerAsyncModule","SyncReader","syncReaderModule","hasSyncZlib","QRCode","copy","e","m","T"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,GAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,kDAAkD,CAAC,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAEC,GAAC,CAAC,CAAC,CAAC,EAAEC,GAAC,CAAC,CAAC,CAAC,CAAC,CAA2C,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,SAASA,GAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAACH,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAGD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAGF,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACH,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAASI,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAASP,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,GAAG,CAAC,SAASO,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,GAAC,CAAC,CAAC,CAAC,EAAEb,GAAC,CAAC,CAAC,CAAC,EAAE,CAACC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEI,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAACS,GAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEV,GAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOQ,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASE,GAAC,EAAE,CAACf,GAAC,CAAC,CAAC,EAAC,CAAC,SAASc,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAASE,GAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAEhB,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAkC,SAASiB,GAAC,EAAE,CAAC,OAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAEjB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASkB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGF,GAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAACG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,SAASA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEL,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAChB,GAAC,CAAC,CAAC,CAAC,CAAC,CAACE,GAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEoB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEN,GAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGF,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAOT,GAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOkB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACV,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACP,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOkB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAACD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEN,GAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAASO,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAEvB,GAAC,CAAC,CAAC,CAAC,CAACC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAACM,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAGE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACR,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAGC,GAAC,CAAC,CAAC,CAAC,EAAE,CAACY,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEQ,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,SAASA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAET,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAASW,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAACb,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAC,CAAC,CAAC,SAASc,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAASC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAACd,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACT,GAAC,CAAC,CAAC,CAAC,CAACa,GAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACZ,GAAC,CAAC,CAAC,CAAC,CAACY,GAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACU,IAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACX,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACC,GAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASW,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO3B,GAAC,CAAC,CAAC,CAAC,EAAED,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAACE,GAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACI,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAACU,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOX,GAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAEC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAOG,GAAC,CAAC,CAAC,CAAC,CAAirO,IAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,MAAM,EAAE,QAAQ,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAA6D,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,sHAAsH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mHAAmH,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,iEAAiE,CAAC,CAAC,CAAC,0FAA0F,CAAC,CAAC,CAAC,2EAA2E,CAAC,EAAE,CAAC,sCAAsC,CAAC,EAAE,CAAC,0DAA0D,CAAC,EAAE,CAAC,0DAA0D,CAAC,EAAE,CAAC,4CAA4C,CAAC,EAAE,CAAC,qEAAqE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,4CAA4C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,qCAAqC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,+BAA+B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,kBAAkB,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,EAAE,CAAC,2EAA2E,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,qJAAqJ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,uFAAuF,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,MAAM,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAACe,IAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAChB,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAACJ,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAACL,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGsB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAIf,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAACA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACa,GAAC,CAACb,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAEH,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAACmB,GAAC,CAAC,CAAC,CAAC,CAACD,GAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAGD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACE,GAAC,CAAC,CAAC,CAAC,CAACD,GAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACd,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAACX,GAAC,CAAC,EAAE,EAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAACA,GAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAGK,GAAC,CAACsB,IAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE3B,GAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAEA,GAAC,CAAC,EAAE,CAAC,CAAC2B,IAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAI,IAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,EAAE3B,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAEA,GAAC,CAAC,CAAC,CAAC,CAACE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACkB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACD,GAAC,CAAC,CAAC,EAAC,CAAC,OAAM,WAAW,EAAE,OAAO,OAAO,EAAE,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAOD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAEH,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAER,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAACG,GAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAChB,GAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,OAAM,WAAW,EAAE,OAAO,OAAO,EAAE,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAACE,GAAC,CAAC,CAAC,CAAC,EAAEF,GAAC,CAAC,CAAC,CAAC,CAACC,GAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC2B,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACR,GAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACD,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEnB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEA,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAOkB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACG,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAErB,GAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAACgB,GAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAOf,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;;ACIp8iB;;;;;;AAMG;AACI,MAAM,KAAK,GAChB,CAME,MAKC,KAEH,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAI;;AAEhB,IAAA,GAAG,CAAC,QAAQ,GAAG,CAAC4B,IAAE,KAAK,GAAG,CAACC,EAAO,CAACD,IAA4B,CAAC,CAAC,CAAC;AAElE,IAAA,OAAO,MAAM,CACX,CAAC,OAAO,EAAE,OAAO,KAAI;AACnB,QAAA,MAAM,SAAS,GACb,OAAO,OAAO,KAAK,UAAU;AAC3B,cAAEC,EAAO,CAAC,OAAiC,CAAC;cACzC,OAAa,CAAC;AACrB,QAAA,OAAO,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,KAAC,EACD,GAAG,EACH,GAAG,CACJ,CAAC;AACJ,CAAC;;ACtCH,SAAS,WAAW,CAAC,WAAW,EAAE;AAClC,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,MAAM,SAAS,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAC9C,EAAE,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK;AACzC,IAAI,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AAC/E,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE;AAC7B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;AAClC,MAAM,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AACxE,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;AAC/B,EAAE,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,KAAK;AAC3F,IAAI,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;AAC/E,IAAI,IAAI,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvC,IAAI,SAAS,aAAa,GAAG;AAC7B,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE;AAChD,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC;AAC3C,QAAQ,QAAQ,CAAC,YAAY,GAAG,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1D,OAAO;AACP,KAAK;AACL,IAAI,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACjC,IAAI,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACjD,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,KAAK;AACxD,IAAI,IAAI,QAAQ,IAAI,UAAU,EAAE;AAChC,MAAM,OAAO,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5B,IAAI,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5C,GAAG,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;AAC1C,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AACzD,EAAE,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC/C,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACnI,MAAM,yBAAyB,GAAG,KAAK,GAAG,SAAS,GAAG,eAAe,CAAC;AACtE,SAAS,MAAM,CAAC,WAAW,EAAE;AAC7B,EAAE,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AACzF,EAAE,MAAM,QAAQ,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,KAAK;AACxE,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AACjC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzC,IAAI,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7C,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,IAAI,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC;AACrC,IAAI,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAM,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,IAAI,aAAa,CAAC;AACtB,IAAI,IAAI,gBAAgB,GAAG,KAAK,CAAC;AACjC,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,IAAI,WAAW,CAAC,OAAO,KAAK,QAAQ,IAAI,aAAa,CAAC,OAAO,KAAK,UAAU,IAAI,UAAU,CAAC,OAAO,EAAE;AACtI,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtC,MAAM,gBAAgB,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,yBAAyB,CAAC,MAAM;AACpC,MAAM,IAAI,gBAAgB,EAAE;AAC5B,QAAQ,eAAe,CAAC,OAAO,GAAG,aAAa,CAAC;AAChD,OAAO;AACP,MAAM,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/B,MAAM,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;AACrC,MAAM,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;AACzC,MAAM,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AACjC,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,0BAA0B,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACrD,IAAI,yBAAyB,CAAC,MAAM;AACpC,MAAM,MAAM,QAAQ,GAAG,MAAM;AAC7B,QAAQ,IAAI;AACZ,UAAU,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC3C,UAAU,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChE,UAAU,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE;AAC/E,YAAY,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;AACzC,YAAY,eAAe,CAAC,OAAO,GAAG,cAAc,CAAC;AACrD,YAAY,WAAW,EAAE,CAAC;AAC1B,WAAW;AACX,SAAS,CAAC,OAAO,KAAK,EAAE;AACxB,UAAU,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;AACpC,UAAU,WAAW,EAAE,CAAC;AACxB,SAAS;AACT,OAAO,CAAC;AACR,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAClD,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,0BAA0B,CAAC,OAAO,EAAE;AACjE,QAAQ,QAAQ,EAAE,CAAC;AACnB,OAAO;AACP,MAAM,OAAO,WAAW,CAAC;AACzB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,IAAI,MAAM,aAAa,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC;AACrF,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;AACjC,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG,CAAC;AACJ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC/B,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW;AACzC,IAAI,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;AACvF,IAAI,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAClC,IAAI,OAAO;AACX,MAAM,IAAI,GAAG;AACb,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;AACvC,QAAQ,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC;AAC9C,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC;AACJ,EAAE,OAAO,QAAQ,CAAC;AAClB;;ACnFA,SAAS,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE;AAC/B,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK;AAC5B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,2BAA2B,GAAG,KAAK,CAAC;AAC5C,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,2BAA2B,EAAE;AACrE,MAAM,OAAO,CAAC,IAAI,CAAC,iJAAiJ,CAAC,CAAC;AACtK,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,eAAe,GAAG,OAAO,KAAK,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,GAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;AAC3J,IAAI,IAAI,QAAQ,CAAC,EAAE,GAAG,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,SAAS,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,WAAW,EAAE;AACpI,MAAM,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;AAC7G,KAAK;AACL,IAAI,IAAI,kBAAkB,CAAC;AAC3B,IAAI,IAAI;AACR,MAAM,kBAAkB,GAAG,MAAM,CAAC,4BAA4B,IAAI,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;AAC1G,KAAK,CAAC,MAAM;AACZ,KAAK;AACL,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,YAAY,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvG,QAAQ,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;AACrG,OAAO;AACP,MAAM,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/E,IAAI,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACrC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE;AAC3C,MAAM,GAAG,EAAE,MAAM;AACjB,QAAQ,IAAI,CAAC,oBAAoB,EAAE;AACnC,UAAU,OAAO,CAAC,IAAI,CAAC,oQAAoQ,CAAC,CAAC;AAC7R,UAAU,oBAAoB,GAAG,IAAI,CAAC;AACtC,SAAS;AACT,QAAQ,OAAO,SAAS,CAAC;AACzB,OAAO;AACP,MAAM,GAAG,EAAE,CAAC,KAAK,KAAK;AACtB,QAAQ,IAAI,CAAC,oBAAoB,EAAE;AACnC,UAAU,OAAO,CAAC,IAAI,CAAC,mPAAmP,CAAC,CAAC;AAC5Q,UAAU,oBAAoB,GAAG,IAAI,CAAC;AACtC,SAAS;AACT,QAAQ,SAAS,GAAG,KAAK,CAAC;AAC1B,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,kBAAkB,GAAG,KAAK,CAAC;AACnC,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE;AAC/C,MAAM,GAAG,EAAE,MAAM;AACjB,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,UAAU,OAAO,CAAC,IAAI,CAAC,sIAAsI,GAAG,eAAe,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,oFAAoF,GAAG,6FAA6F,CAAC,CAAC;AACxX,UAAU,kBAAkB,GAAG,IAAI,CAAC;AACpC,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC;AAClB,OAAO;AACP,MAAM,GAAG,EAAE,MAAM;AACjB,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,UAAU,OAAO,CAAC,IAAI,CAAC,sIAAsI,GAAG,eAAe,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,oFAAoF,GAAG,6FAA6F,CAAC,CAAC;AACxX,UAAU,kBAAkB,GAAG,IAAI,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC;AAC3B,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,KAAK;AACrD,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,WAAW;AACtB,QAAQ,OAAO;AACf,MAAM,SAAS,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,CAAC,mBAAmB,IAAI,WAAW,EAAE,GAAG,OAAO,YAAY,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;AAC/L,KAAK,CAAC;AACN,IAAI,MAAM,oBAAoB,GAAG,CAAC,GAAG,CAAC,KAAK;AAC3C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC;AAC9C,MAAM,WAAW,GAAG,KAAK,CAAC;AAC1B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChB,MAAM,WAAW,GAAG,mBAAmB,CAAC;AACxC,KAAK,CAAC;AACN,IAAI,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpD,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACjC,IAAI,IAAI,GAAG,CAAC,oBAAoB,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE;AACxE,MAAM,IAAI,8BAA8B,GAAG,KAAK,CAAC;AACjD,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC5C,MAAM,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK;AAC/B,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,8BAA8B,EAAE;AAC3E,UAAU,OAAO,CAAC,IAAI,CAAC,oHAAoH,CAAC,CAAC;AAC7I,UAAU,8BAA8B,GAAG,IAAI,CAAC;AAChD,SAAS;AACT,QAAQ,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,OAAO,CAAC;AACR,KAAK;AACL,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK;AACrC,MAAM,IAAI,GAAG,CAAC;AACd,MAAM,QAAQ,OAAO,CAAC,IAAI;AAC1B,QAAQ,KAAK,QAAQ;AACrB,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;AACnD,YAAY,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;AACrF,YAAY,OAAO;AACnB,WAAW;AACX,UAAU,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK;AAC5D,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;AAC9C,cAAc,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjD,cAAc,OAAO;AACrB,aAAa;AACb,YAAY,IAAI,CAAC,GAAG,CAAC,oBAAoB;AACzC,cAAc,OAAO;AACrB,YAAY,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU;AAClD,cAAc,OAAO;AACrB,YAAY,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACjC,WAAW,CAAC,CAAC;AACb,QAAQ,KAAK,UAAU;AACvB,UAAU,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI;AACtC,YAAY,KAAK,OAAO;AACxB,cAAc,oBAAoB,CAAC,YAAY,CAAC,CAAC;AACjD,cAAc,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpD,YAAY,KAAK,QAAQ;AACzB,cAAc,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpD,YAAY,KAAK,UAAU;AAC3B,cAAc,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK;AAC7D,gBAAgB,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC5C,gBAAgB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/C,eAAe,CAAC,CAAC;AACjB,YAAY,KAAK,eAAe,CAAC;AACjC,YAAY,KAAK,gBAAgB;AACjC,cAAc,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK;AAC7D,gBAAgB,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC5C,eAAe,CAAC,CAAC;AACjB,YAAY,KAAK,cAAc,EAAE;AACjC,cAAc,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;AAC1D,cAAc,MAAM,iBAAiB,GAAG,CAAC,GAAG,GAAG,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;AACzH,cAAc,IAAI,CAAC,iBAAiB;AACpC,gBAAgB,OAAO;AACvB,cAAc,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AACtD,cAAc,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACpD,cAAc,OAAO;AACrB,aAAa;AACb,YAAY,KAAK,iBAAiB;AAClC,cAAc,OAAO,WAAW,GAAG,CAAC,WAAW,CAAC;AAChD,WAAW;AACX,UAAU,OAAO;AACjB,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG,CAAC;AACJ,CAAC;AACD,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK;AAC1C,EAAE,IAAI,MAAM,CAAC;AACb,EAAE,IAAI;AACN,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACrC,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAE,CAAC,CAAC,CAAC;AACxF,GAAG;AACH,EAAE,IAAI,MAAM,KAAK,KAAK,CAAC;AACvB,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AACd,CAAC,CAAC;AA2BF;AACA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,MAAM,UAAU,GAAG,CAAC,EAAE,KAAK,CAAC,KAAK,KAAK;AACtC,EAAE,IAAI;AACN,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAC7B,IAAI,IAAI,MAAM,YAAY,OAAO,EAAE;AACnC,MAAM,OAAO,MAAM,CAAC;AACpB,KAAK;AACL,IAAI,OAAO;AACX,MAAM,IAAI,CAAC,WAAW,EAAE;AACxB,QAAQ,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/C,OAAO;AACP,MAAM,KAAK,CAAC,WAAW,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO;AACX,MAAM,IAAI,CAAC,YAAY,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP,MAAM,KAAK,CAAC,UAAU,EAAE;AACxB,QAAQ,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;AACF,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK;AAC5D,EAAE,IAAI,OAAO,GAAG,cAAc,CAAC;AAC/B,IAAI,UAAU,EAAE,MAAM,YAAY;AAClC,IAAI,SAAS,EAAE,IAAI,CAAC,SAAS;AAC7B,IAAI,WAAW,EAAE,IAAI,CAAC,KAAK;AAC3B,IAAI,UAAU,EAAE,CAAC,KAAK,KAAK,KAAK;AAChC,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,KAAK,EAAE,CAAC,cAAc,EAAE,YAAY,KAAK,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC;AAC7G,GAAG,EAAE,WAAW,CAAC,CAAC;AAClB,EAAE,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE;AAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC,0GAA0G,CAAC,CAAC,CAAC;AACnL,GAAG;AACH,EAAE,IAAI,WAAW,GAAG,KAAK,CAAC;AAC1B,EAAE,MAAM,kBAAkB,mBAAmB,IAAI,GAAG,EAAE,CAAC;AACvD,EAAE,MAAM,wBAAwB,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAC7D,EAAE,IAAI,OAAO,CAAC;AACd,EAAE,IAAI;AACN,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AACnC,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK;AAC/B,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,oDAAoD,EAAE,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;AACxI,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,yDAAyD,EAAE,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC,CAAC;AACpK,GAAG;AACH,EAAE,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC1D,EAAE,MAAM,OAAO,GAAG,MAAM;AACxB,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAChE,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;AAC3B,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC1C,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7F,OAAO,CAAC,CAAC;AACT,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;AAC3B,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;AACnK,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,WAAW,EAAE;AACrB,MAAM,MAAM,WAAW,CAAC;AACxB,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC;AACrC,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK;AACrC,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAClC,IAAI,KAAK,OAAO,EAAE,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK;AAC3C,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACjB,IAAI,KAAK,OAAO,EAAE,CAAC;AACnB,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACf,EAAE,IAAI,gBAAgB,CAAC;AACvB,EAAE,MAAM,OAAO,GAAG,MAAM;AACxB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,CAAC,OAAO;AAChB,MAAM,OAAO;AACb,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAClD,IAAI,MAAM,uBAAuB,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,kBAAkB,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;AAC7H,IAAI,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK;AAC1F,MAAM,IAAI,YAAY,EAAE;AACxB,QAAQ,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACjD,OAAO;AACP,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,wBAAwB,KAAK;AAC1C,MAAM,IAAI,wBAAwB,EAAE;AACpC,QAAQ,IAAI,OAAO,wBAAwB,CAAC,OAAO,KAAK,QAAQ,IAAI,wBAAwB,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE;AAC1H,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE;AAC/B,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACrG,WAAW;AACX,UAAU,OAAO,CAAC,KAAK,CAAC,CAAC,qFAAqF,CAAC,CAAC,CAAC;AACjH,SAAS,MAAM;AACf,UAAU,OAAO,wBAAwB,CAAC,KAAK,CAAC;AAChD,SAAS;AACT,OAAO;AACP,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,KAAK;AAC/B,MAAM,IAAI,GAAG,CAAC;AACd,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC;AAClG,MAAM,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAClC,MAAM,OAAO,OAAO,EAAE,CAAC;AACvB,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM;AAClB,MAAM,uBAAuB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;AACnG,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACrE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;AACpB,MAAM,uBAAuB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACpF,KAAK,CAAC,CAAC;AACP,GAAG,CAAC;AACJ,EAAE,GAAG,CAAC,OAAO,GAAG;AAChB,IAAI,UAAU,EAAE,CAAC,UAAU,KAAK;AAChC,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;AACxE,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE;AACjC,QAAQ,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;AAC1C,OAAO;AACP,KAAK;AACL,IAAI,YAAY,EAAE,MAAM;AACxB,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7G,KAAK;AACL,IAAI,SAAS,EAAE,MAAM,OAAO,EAAE;AAC9B,IAAI,WAAW,EAAE,MAAM,WAAW;AAClC,IAAI,SAAS,EAAE,CAAC,EAAE,KAAK;AACvB,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjC,MAAM,OAAO,MAAM;AACnB,QAAQ,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC;AACR,KAAK;AACL,IAAI,iBAAiB,EAAE,CAAC,EAAE,KAAK;AAC/B,MAAM,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACvC,MAAM,OAAO,MAAM;AACnB,QAAQ,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC;AACR,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,OAAO,EAAE,CAAC;AACZ,EAAE,OAAO,gBAAgB,IAAI,YAAY,CAAC;AAC1C,CAAC;;ACpWM,MAAM,mBAAmB,GAAG,CAAC,KAAkB,MAAM;IAC1D,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,aAAa,EAAE,KAAK,CAAC,aAAa;IAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;IACxC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;IAC5C,WAAW,EAAE,KAAK,CAAC,WAAW;IAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;AACrC,CAAA,CAAC,CAAC;AAWI,MAAM,cAAc,GAAG,MAAM,CAClC,QAAQ,CACN,OAAO,CACL,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM;AACpB,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,gBAAgB,EAAE,CAAC,OAAgB,KAAI;AACrC,QAAA,GAAG,CAAC,CAAC,KAAK,KAAI;AACZ,YAAA,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC;AAChC,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,kBAAkB,EAAE,CAAC,EAAe,KAAI;AACtC,QAAA,GAAG,CAAC,CAAC,KAAK,KAAI;AACZ,YAAA,IAAI,EAAE,KAAK,KAAK,CAAC,aAAa,EAAE,UAAU;AACxC,gBAAA,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;AAC/B,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,WAAW,EAAE,CAAC,QAAmB,KAAI;AACnC,QAAA,GAAG,CAAC,CAAC,KAAK,KAAI;AACZ,YAAA,MAAM,cAAc,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAE5D,CAAC,cAAc,EAAE,CAAC,KAAI;gBACtB,IACE,CAAC,cAAc,CAAC,IAAI,CAClB,CAAC,GAAG,KACF,GAAG,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAC/D,EACD;AACA,oBAAA,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,iBAAA;AACD,gBAAA,OAAO,cAAc,CAAC;aACvB,EAAE,EAAE,CAAC,CAAC;;AAGP,YAAA,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC;AAClC,SAAC,CAAC,CAAC;KACJ;AACD,IAAA,cAAc,EAAE,CAAC,UAAuB,KAAI;AAC1C,QAAA,GAAG,CAAC,CAAC,KAAK,KAAI;YACZ,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CACpC,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,KAAK,UAAU,CAC/C,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AACF,CAAA,CAAC,CAAC,EACH;AACE,IAAA,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,CAAC;AACX,CAAA,CACF,EACD,EAAE,IAAI,EAAE,eAAe,EAAE;AAC1B,CAAA,CACF;;IC5EW,YAQX;AARD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACnC,CAAC,EARW,WAAW,KAAX,WAAW,GAQtB,EAAA,CAAA,CAAA,CAAA;MAEY,WAAW,GACtB,OAAO,CAAC,GAAG,CAAC,WAAW;IACvB,OAAO,CAAC,GAAG,CAAC,qBAAqB;IACjC,OAAO,CAAC,GAAG,CAAC,uBAAuB;;IAEnC,OAAO,CAAC,GAAG,CAAC,oBAAoB;AAChC,IAAA,qCAAqC;MAE1B,UAAU,GACrB,OAAO,CAAC,GAAG,CAAC,UAAU;IACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAClC,IAAA,GAAG;MAEQ,SAAS,GACpB,OAAO,CAAC,GAAG,CAAC,SAAS;IACrB,OAAO,CAAC,GAAG,CAAC,mBAAmB;IAC/B,OAAO,CAAC,GAAG,CAAC,qBAAqB;AACjC,IAAA,GAAG;MAEQ,YAAY,GACvB,OAAO,CAAC,GAAG,CAAC,YAAY;IACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB;IAClC,OAAO,CAAC,GAAG,CAAC,wBAAwB;;IAEpC,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAClC,IAAA,UAAU;MAEC,QAAQ,GACnB,OAAO,CAAC,GAAG,CAAC,QAAQ;IACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB;IAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB;AAChC,IAAA,mBAAmB;MAER,SAAS,GACpB,OAAO,CAAC,GAAG,CAAC,SAAS;IACrB,OAAO,CAAC,GAAG,CAAC,mBAAmB;IAC/B,OAAO,CAAC,GAAG,CAAC,qBAAqB;AACjC,IAAA,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;MAEJ,QAAQ,GACnB,OAAO,CAAC,GAAG,CAAC,QAAQ;IACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB;IAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB;AAChC,IAAA,OAAO;MAEIC,YAAU,GACrB,OAAO,CAAC,GAAG,CAAC,UAAU;IACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAClC,IAAA,6BAA6B;MAElB,YAAY,GACvB,OAAO,CAAC,GAAG,CAAC,YAAY;IACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB;IAClC,OAAO,CAAC,GAAG,CAAC,wBAAwB;AACpC,IAAA;;AClEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,GAAG,EAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,GAAG,CAAC;AACR;AACA;AACA,EAAE,MAAM,GAAG,GAAG;AACd;AACA;AACA,EAAE,SAAS,GAAG,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,GAAG,CAAC,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,GAAG,EAAE;AACT;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,GAAG,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,GAAG,WAAW;AACpB,EAAE,OAAO,GAAG,IAAI,GAAG,UAAU;AAC7B,EAAE,UAAU,GAAG,OAAO,GAAG,gBAAgB;AACzC,EAAE,UAAU,GAAG,OAAO,GAAG,eAAe;AACxC,EAAE,WAAW,GAAG,IAAI,GAAG,kBAAkB;AACzC;AACA;AACA,EAAEV,GAAC,GAAG,EAAE;AACR,EAAE,SAAS,GAAG,KAAK,CAAC;AACpB,EAAE,OAAO,GAAG,sCAAsC,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE;AAClB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;AACjB;AACA;AACA,IAAI,IAAI,EAAE,CAAC,YAAY,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3E;AACA;AACA,IAAI,IAAI,CAAC,YAAY,GAAG,EAAE;AAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACxB,KAAK,MAAM;AACX,MAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC1D,UAAU,MAAM,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;AAC7C,SAAS;AACT;AACA;AACA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,OAAO;AACP;AACA,MAAMW,OAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,KAAK;AACL;AACA;AACA;AACA,IAAI,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC;AACxB,GAAG;AACH;AACA,EAAE,GAAG,CAAC,SAAS,GAAGX,GAAC,CAAC;AACpB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;AACtB,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,EAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;AACtB,EAAE,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC;AAClB;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASW,OAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AACrB,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACf;AACA,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACxB,IAAI,MAAM,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;AACpC,GAAG;AACH;AACA;AACA,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD;AACA;AACA,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACxD;AACA;AACA,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAChC;AACA;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACrB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACpB;AACA;AACA,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACjB,GAAG;AACH;AACA,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;AAChB;AACA;AACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;AACjD;AACA,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AACf;AACA;AACA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,GAAG,MAAM;AACT;AACA;AACA,IAAI,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;AAC7C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACb;AACA;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;AAChC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACf;AACA,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;AAC9C,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AACpD,IAAI,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AACd,IAAI,IAAI;AACR,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/C,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AAC7E,KAAK,CAAC;AACN;AACA,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB;AACA,IAAI,IAAI,IAAI,EAAE;AACd;AACA;AACA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACzB,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,KAAK,MAAM;AACX;AACA;AACA,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACtB,KAAK;AACL,GAAG,MAAM,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;AAC7B;AACA;AACA,IAAI,IAAI;AACR,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7B,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;AAC7C,SAAS,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC;AACA;AACA,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB;AACA;AACA,IAAI,IAAI,IAAI,EAAE;AACd;AACA;AACA,MAAM,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG;AAC9B,QAAQ,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACnB,QAAQ,IAAI,EAAE,KAAK,CAAC,EAAE;AACtB,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAChB,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE;AAChD,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACb,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACpB,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACjB;AACA;AACA,EAAE,IAAI,aAAa,EAAE;AACrB,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACjF;AACA;AACA,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACpB,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAC7B,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AACjB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACpB,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE;AACjB,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;AAClC,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACtB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,KAAK;AACL,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;AACpB,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAX,GAAC,CAAC,GAAG,GAAG,YAAY;AACpB,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACrC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACV,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACrB,EAAE,IAAI,KAAK;AACX,IAAI,CAAC,GAAG,IAAI;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ;AACA;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D;AACA;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AACvB;AACA,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAChB;AACA;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C;AACA,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD;AACA;AACA,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG;AACzB,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,GAAG;AACH;AACA;AACA,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACrB,EAAE,IAAI,CAAC,GAAG,IAAI;AACd,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW;AACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;AAChB;AACA,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE;AAC5C,IAAI,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;AAC5B,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACb,IAAI,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;AAC7B,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACb,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH;AACA,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;AACxB,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;AAClB,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM;AACtB,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM;AACjB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACtB,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM;AACjB,IAAI,CAAC,GAAG,CAAC;AACT,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;AACjB,IAAI,EAAE,GAAG,CAAC;AACV,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnC;AACA,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACV,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB;AACA;AACA,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChB;AACA;AACA,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B;AACA,EAAE,GAAG;AACL;AACA;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC7B;AACA;AACA,MAAM,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE;AACjC,QAAQ,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,OAAO,MAAM;AACb,QAAQ,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG;AAC3C,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9B,YAAY,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,YAAY,MAAM;AAClB,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AACnB;AACA;AACA;AACA,QAAQ,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG;AAC1C,UAAU,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;AAChC,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,YAAY,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9C,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;AACxB,WAAW;AACX,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1B,SAAS;AACT;AACA,QAAQ,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL;AACA;AACA,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B;AACA;AACA,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACxC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB;AACA,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,KAAK,CAAC,EAAE,EAAE;AACrD;AACA;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AACzB;AACA;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;AACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACV,IAAI,CAAC,EAAE,CAAC;AACR,GAAG;AACH;AACA;AACA,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AACtD;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE;AACpB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE;AACpB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACrB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE;AACpB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACrB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,KAAK,GAAGA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AAC/B,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI;AACnB,IAAI,CAAC,GAAG,IAAI;AACZ,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW;AACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B;AACA;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACd,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACb,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,GAAG;AACH;AACA,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb;AACA;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxB,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACf,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACf,KAAK,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACtB,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,KAAK,MAAM;AACX,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACd,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;AACnB;AACA,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AACtB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACb,MAAM,CAAC,GAAG,EAAE,CAAC;AACb,KAAK,MAAM;AACX,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,CAAC,GAAG,EAAE,CAAC;AACb,KAAK;AACL;AACA,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAChB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAChB,GAAG,MAAM;AACT;AACA;AACA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,CAAC;AAC1D;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AAC1B,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7B,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5E;AACA;AACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AACtB,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;AACzB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClB,KAAK;AACL;AACA,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACnB,GAAG;AACH;AACA;AACA,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAClC;AACA;AACA,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;AACvB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;AACf,IAAI,EAAE,EAAE,CAAC;AACT,GAAG;AACH;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACd;AACA;AACA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACZ;AACA;AACA,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClB,GAAG;AACH;AACA,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACX,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACX;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACrB,EAAE,IAAI,IAAI;AACV,IAAI,CAAC,GAAG,IAAI;AACZ,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW;AACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B;AACA,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACf,IAAI,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChB,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACV,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACV;AACA,EAAE,IAAI,IAAI,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B;AACA,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;AACb,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;AACb,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACtB,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACf,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACb,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACb;AACA,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,GAAG,GAAG,YAAY;AACpB,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACrC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACb,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,IAAI,GAAGA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AAC9B,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACb,IAAI,CAAC,GAAG,IAAI;AACZ,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC;AACxB;AACA,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB;AACA;AACA,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AAClB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACd,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACb;AACA;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AAChB,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AACjB,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACvB,OAAO,MAAM;AACb,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH;AACA,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AAClB;AACA;AACA;AACA,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;AACnB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACf,MAAM,EAAE,GAAG,EAAE,CAAC;AACd,MAAM,CAAC,GAAG,EAAE,CAAC;AACb,KAAK,MAAM;AACX,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACb,MAAM,CAAC,GAAG,EAAE,CAAC;AACb,KAAK;AACL;AACA,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAChB,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AAChB,GAAG;AACH;AACA;AACA,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,GAAG;AACH;AACA,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AAChB;AACA;AACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACzE;AACA;AACA;AACA,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClB,IAAI,EAAE,EAAE,CAAC;AACT,GAAG;AACH;AACA;AACA,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;AAC/C;AACA,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACX,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACX;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AACrB,EAAE,IAAI,CAAC,GAAG,IAAI;AACd,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;AAChC,IAAI,CAAC,GAAG,GAAG;AACX,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB;AACA,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,SAAS,EAAE;AACpD,IAAI,MAAM,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC;AACtC,GAAG;AACH;AACA,EAAE,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB;AACA,EAAE,SAAS;AACX,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,CAAC,KAAK,CAAC,CAAC;AACZ,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM;AAClB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,GAAG;AACH;AACA,EAAE,OAAO,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,IAAI,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;AAC3B,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE;AAC5C,IAAI,MAAM,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,KAAK,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;AAC5B,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/B,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,EAAE;AACvD,IAAI,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,IAAI,GAAG,YAAY;AACrB,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACb,IAAI,CAAC,GAAG,IAAI;AACZ,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW;AACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B;AACA;AACA,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC;AACA;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACb,IAAI,MAAM,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC,CAAC;AACzC,GAAG;AACH;AACA;AACA,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACxB;AACA;AACA;AACA,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AAC9B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrB,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;AACtC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChG,GAAG,MAAM;AACT,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACxB,GAAG;AACH;AACA,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1B;AACA;AACA,EAAE,GAAG;AACL,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAClE;AACA,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,KAAK,GAAGA,GAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;AAC/B,EAAE,IAAI,CAAC;AACP,IAAI,CAAC,GAAG,IAAI;AACZ,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW;AACvB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3B,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM;AACjB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM;AACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACZ;AACA;AACA,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B;AACA;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH;AACA;AACA,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACd;AACA;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AACb,IAAI,CAAC,GAAG,EAAE,CAAC;AACX,IAAI,EAAE,GAAG,EAAE,CAAC;AACZ,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,GAAG;AACH;AACA;AACA,EAAE,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG;AACpB,IAAI,CAAC,GAAG,CAAC,CAAC;AACV;AACA;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG;AAC5B;AACA;AACA,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACtB;AACA;AACA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACrB,KAAK;AACL;AACA,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACf,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;AACjB;AACA;AACA,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACvC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACV;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,aAAa,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;AACpC,EAAE,IAAI,CAAC,GAAG,IAAI;AACd,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf;AACA,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE;AACxB,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE;AAC9C,MAAM,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9C,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC,GAAG;AACH;AACA,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,OAAO,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;AAC9B,EAAE,IAAI,CAAC,GAAG,IAAI;AACd,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf;AACA,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE;AACxB,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE;AAC9C,MAAM,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AACtD;AACA;AACA,IAAI,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1D,GAAG;AACH;AACA,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,GAAGA,GAAC,CAAC,MAAM,GAAGA,GAAC,CAAC,QAAQ,GAAG,YAAY;AAClF,EAAE,IAAI,CAAC,GAAG,IAAI;AACd,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC;AACxB,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,QAAQ,GAAG,YAAY;AACzB,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE;AAClE,IAAI,MAAM,KAAK,CAAC,IAAI,GAAG,sBAAsB,CAAC,CAAC;AAC/C,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,WAAW,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;AAClC,EAAE,IAAI,CAAC,GAAG,IAAI;AACd,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW;AACvB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf;AACA,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE;AACxB,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,EAAE;AAC9C,MAAM,MAAM,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAClC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACzC,GAAG;AACH;AACA,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,GAAC,CAAC,OAAO,GAAG,YAAY;AACxB,EAAE,IAAI,CAAC,GAAG,IAAI;AACd,IAAI,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC;AACxB,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE;AAC3B,IAAI,MAAM,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC;AAC7C,GAAG;AACH,EAAE,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACO,IAAI,GAAG,GAAG,KAAK,EAAE;;AC5/BxB,MAAMY,MAAI,GACR,4BAA4B;AAC5B,IAAA,0jDAA0jD,CAAC;AAEtjD,MAAM,WAAW,GAAmB;IACzC,EAAE,EAAE,WAAW,CAAC,WAAW;AAC3B,IAAA,IAAI,EAAE,aAAa;UACnBA,MAAI;AACJ,IAAA,eAAe,EAAE,IAAI;CACtB;;ACTD,MAAMA,MAAI,GACR,4BAA4B;AAC5B,IAAA,sy5BAAsy5B,CAAC;AAEly5B,MAAM,aAAa,GAAmB;IAC3C,EAAE,EAAE,WAAW,CAAC,aAAa;AAC7B,IAAA,IAAI,EAAE,eAAe;UACrBA,MAAI;AACJ,IAAA,eAAe,EAAE,KAAK;CACvB;;ACTD,MAAMA,MAAI,GACR,4BAA4B;AAC5B,IAAA,89DAA89D,CAAC;AAE19D,MAAM,WAAW,GAAmB;IACzC,EAAE,EAAE,WAAW,CAAC,WAAW;AAC3B,IAAA,IAAI,EAAE,YAAY;UAClBA,MAAI;AACJ,IAAA,eAAe,EAAE,KAAK;CACvB;;ACTD,MAAMA,MAAI,GACR,4BAA4B;AAC5B,IAAA,8rCAA8rC,CAAC;AAE1rC,MAAM,KAAK,GAAmB;IACnC,EAAE,EAAE,WAAW,CAAC,KAAK;AACrB,IAAA,IAAI,EAAE,cAAc;UACpBA,MAAI;AACJ,IAAA,eAAe,EAAE,IAAI;CACtB;;ACTD,MAAMA,MAAI,GACR,4BAA4B;AAC5B,IAAA,0jKAA0jK,CAAC;AAEtjK,MAAM,MAAM,GAAmB;IACpC,EAAE,EAAE,WAAW,CAAC,MAAM;AACtB,IAAA,IAAI,EAAE,QAAQ;UACdA,MAAI;AACJ,IAAA,eAAe,EAAE,KAAK;CACvB;;ACTD,MAAMA,MAAI,GACR,4BAA4B;AAC5B,IAAA,0XAA0X,CAAC;AAEtX,MAAM,UAAU,GAAmB;IACxC,EAAE,EAAE,WAAW,CAAC,UAAU;AAC1B,IAAA,IAAI,EAAE,KAAK;UACXA,MAAI;AACJ,IAAA,eAAe,EAAE,KAAK;CACvB;;ACTD,MAAM,IAAI,GACR,4BAA4B;AAC5B,IAAA,0uCAA0uC,CAAC;AAEtuC,MAAM,cAAc,GAAmB;IAC5C,EAAE,EAAE,WAAW,CAAC,cAAc;AAC9B,IAAA,IAAI,EAAE,gBAAgB;IACtB,IAAI;AACJ,IAAA,eAAe,EAAE,IAAI;CACtB;;ACHY,MAAA,SAAS,GAAG;AACvB,IAAA,CAAC,WAAW,CAAC,WAAW,GAAG,WAAW;AACtC,IAAA,CAAC,WAAW,CAAC,aAAa,GAAG,aAAa;AAC1C,IAAA,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK;AAC1B,IAAA,CAAC,WAAW,CAAC,WAAW,GAAG,WAAW;AACtC,IAAA,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM;AAC5B,IAAA,CAAC,WAAW,CAAC,UAAU,GAAG,UAAU;AACpC,IAAA,CAAC,WAAW,CAAC,cAAc,GAAG,cAAc;;;AChBvC,MAAM,KAAK,GAAG,owsFAAowsF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGzxsF,CAAA,CAAC,SAAS,MAAM,CAACC,WAAS,CAAC,CAAc,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,OAAO,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,OAAO,CAAC,CAAC,OAAO,OAAO,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,WAAS,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,OAAO,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAC,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,YAAS,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,YAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,YAAS,CAAC,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAACA,YAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAACA,WAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,OAAO,CAACA,WAAS,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,kDAAkD,CAAC,yCAAyC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,6DAA6D,CAAC,oDAAoD,CAAC,iCAAiC,CAAC,0BAA0B,CAAC,8LAA8L,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,gDAAgD,CAAC,wDAAwD,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,aAAa,CAAC,kGAAkG,CAAC,8FAA8F,CAAC,uBAAuB,CAAC,0CAA0C,CAAC,uHAAuH,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,yHAAyH,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,mCAAmC,CAAC,gCAAgC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,oEAAoE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,wBAAwB,CAAC,sCAAsC,CAAC,gDAAgD,CAAC,uGAAuG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,iEAAiE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,kCAAkC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gFAAgF,CAAC,2BAA2B,CAAC,oDAAoD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,mDAAmD,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,mEAAmE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,wGAAwG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,wCAAwC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,0BAA0B,CAAC,8BAA8B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,0CAA0C,CAAC,mCAAmC,CAAC,mEAAmE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iGAAiG,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,sCAAsC,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,iCAAiC,CAAC,6BAA6B,CAAC,+BAA+B,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,qEAAqE,CAAC,yBAAyB,CAAC,wCAAwC,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,uDAAuD,CAAC,4CAA4C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,8EAA8E,CAAC,6BAA6B,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,sCAAsC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kDAAkD,CAAC,0BAA0B,CAAC,uCAAuC,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,6SAA6S,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,4EAA4E,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,iCAAiC,CAAC,uDAAuD,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAACA,YAAS,CAAC,GAAG,EAAE,IAAI,YAAY,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,OAAO,MAAM,GAAG,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAACA,WAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAACA,WAAS,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAACA,WAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAACA,WAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAACA,WAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAACA,WAAS,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAACA,WAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAACA,WAAS,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAACA,WAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAACA,WAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAgC,CAAC,GAA+B,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAe,CAAA,OAAA,CAAA,SAAQ,CAAC,OAAA,CAAA,QAAA,CAAiB,SAAQ,CAAkJ,IAAI,CAAC,CAAC,OAAO,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,OAAO,MAAM,GAAG,QAAQ,CAAC,MAAM,CAACC,cAAI,CAAC,CAAA;;;ACDr7mB,MAAM,CAAC,cAAc,CAACC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D;AACA,SAASC,iBAAe,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,CAAC,IAAI,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE;AAClH;AACA,IAAIC,OAAK,GAAGC,YAAgB,CAAC;AAC7B,IAAI,cAAc,GAAGF,iBAAe,CAACC,OAAK,CAAC,CAAC;AAC5C;AACA,IAAI,QAAQ,GAAGE,oBAA0C,CAAC;AAC1D;AACA,IAAI,gBAAgB,GAAG,IAAI,QAAQ,EAAE,CAAC;AACtC,IAAIC,SAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC;AAC5C,IAAI,GAAG,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;AACpC,IAAI,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;AAC1C,IAAI,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;AAC1C,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAClC,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAClC,IAAI,KAAK,GAAG,SAAS,KAAK,CAAC,eAAe,EAAE;AAC5C,EAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACjD,CAAC,CAAC;AACF,IAAIC,gBAAc,GAAG,SAAS,cAAc,CAAC,SAAS,EAAE;AACxD,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;AACtD,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,iBAAiB,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClD,EAAE,OAAO;AACT,IAAI,EAAE,EAAE,iBAAiB;AACzB,IAAI,OAAO,EAAE,iBAAiB,CAAC,UAAU,EAAE;AAC3C,IAAI,GAAG,EAAE,iBAAiB,CAAC,MAAM,EAAE;AACnC,IAAI,MAAM,EAAE,iBAAiB,CAAC,SAAS,EAAE;AACzC,IAAI,MAAM,EAAE,iBAAiB,CAAC,SAAS,EAAE;AACzC,IAAI,EAAE,EAAE,iBAAiB,CAAC,KAAK,EAAE;AACjC,IAAI,EAAE,EAAE,iBAAiB,CAAC,KAAK,EAAE;AACjC,IAAI,YAAY,EAAE,SAAS,YAAY,CAAC,eAAe,EAAE;AACzD,MAAM,OAAO,iBAAiB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACtD,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,IAAI,QAAQ,gBAAgB,MAAM,CAAC,MAAM,CAAC;AAC1C,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,OAAO,EAAED,SAAO;AAClB,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,cAAc,EAAEC,gBAAc;AAChC,CAAC,CAAC,CAAC;AACH;AACA,SAAS,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE;AACzC,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC;AACA,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE;AACpC,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACvD;AACA,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE;AAC9C,QAAQ,OAAO,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC;AACvE,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC1D;AACA,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACf,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC3D,QAAQ,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAClD,OAAO,CAAC,CAAC;AACT,KAAK,MAAM,IAAI,MAAM,CAAC,yBAAyB,EAAE;AACjD,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACrD,QAAQ,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACzF,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA,SAAS,OAAO,CAAC,GAAG,EAAE;AACtB,EAAE,yBAAyB,CAAC;AAC5B;AACA,EAAE,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC3E,IAAI,OAAO,GAAG,UAAU,GAAG,EAAE;AAC7B,MAAM,OAAO,OAAO,GAAG,CAAC;AACxB,KAAK,CAAC;AACN,GAAG,MAAM;AACT,IAAI,OAAO,GAAG,UAAU,GAAG,EAAE;AAC7B,MAAM,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC;AACnI,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AACD;AACA,SAAS,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE;AAChD,EAAE,IAAI,EAAE,QAAQ,YAAY,WAAW,CAAC,EAAE;AAC1C,IAAI,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;AAC7D,GAAG;AACH,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC1C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;AAC3D,IAAI,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;AACnC,IAAI,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1D,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAC9D,GAAG;AACH,CAAC;AACD;AACA,SAAS,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;AAC5D,EAAE,IAAI,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACvE,EAAE,IAAI,WAAW,EAAE,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC/D,EAAE,OAAO,WAAW,CAAC;AACrB,CAAC;AACD;AACA,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AAC1C,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;AAClB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;AACpC,MAAM,KAAK,EAAE,KAAK;AAClB,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,YAAY,EAAE,IAAI;AACxB,MAAM,QAAQ,EAAE,IAAI;AACpB,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACrB,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA,SAAS,QAAQ,GAAG;AACpB,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE;AAChD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAChC;AACA,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;AAC9B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AAC/D,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACpC,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC;AACJ;AACA,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AACD;AACA,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE;AACzC,EAAE,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE;AAC/D,IAAI,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;AAC9E,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;AACzE,IAAI,WAAW,EAAE;AACjB,MAAM,KAAK,EAAE,QAAQ;AACrB,MAAM,QAAQ,EAAE,IAAI;AACpB,MAAM,YAAY,EAAE,IAAI;AACxB,KAAK;AACL,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,UAAU,EAAE,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE;AAC5B,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,SAAS,eAAe,CAAC,CAAC,EAAE;AAChG,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACnD,GAAG,CAAC;AACJ,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AACD;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/B,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,IAAI,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5E,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;AACpB,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,CAAC;AACJ;AACA,EAAE,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AACD;AACA,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE;AACzD,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;AAChC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACb;AACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;AAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA,SAAS,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE;AACpD,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;AAChC;AACA,EAAE,IAAI,MAAM,GAAG,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/D;AACA,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACb;AACA,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE;AACpC,IAAI,IAAI,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAChE;AACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;AAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS;AAC7E,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAChC,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACvB,IAAI,MAAM,IAAI,cAAc,CAAC,2DAA2D,CAAC,CAAC;AAC1F,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE;AAChD,EAAE,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU,CAAC,EAAE;AACxE,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AAC9B,IAAI,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAC;AACpF,GAAG;AACH;AACA,EAAE,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AACD;AACA,SAAS,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE;AAChC,EAAE,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,2BAA2B,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC;AAC5H,CAAC;AACD;AACA,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;AACrC,CAAC;AACD;AACA,SAAS,qBAAqB,CAAC,GAAG,EAAE,CAAC,EAAE;AACvC,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAC3G;AACA,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,OAAO;AACzB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAChB,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AACjB;AACA,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACb;AACA,EAAE,IAAI;AACN,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;AACtE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B;AACA,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM;AACxC,KAAK;AACL,GAAG,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,EAAE,GAAG,IAAI,CAAC;AACd,IAAI,EAAE,GAAG,GAAG,CAAC;AACb,GAAG,SAAS;AACZ,IAAI,IAAI;AACR,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;AACtD,KAAK,SAAS;AACd,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;AACvB,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE;AAChD,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO;AACjB,EAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACjE,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,EAAE,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;AAC9D,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACnH,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE;AACrC,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AACxD;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACxE;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,gBAAgB,GAAG;AAC5B,EAAE,MAAM,IAAI,SAAS,CAAC,2IAA2I,CAAC,CAAC;AACnK,CAAC;AACD;AACA,IAAI,WAAW,GAAG;AAClB,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,QAAQ,EAAE,UAAU;AACtB,EAAE,QAAQ,EAAE,UAAU;AACtB,EAAE,OAAO,EAAE,SAAS;AACpB,CAAC,CAAC;AACF,IAAI,YAAY,GAAG;AACnB,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,KAAK,EAAE,OAAO;AAChB,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,gBAAgB,EAAE,mBAAmB;AACvC,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,QAAQ,EAAE,UAAU;AACtB,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,YAAY,EAAE,eAAe;AAC/B,EAAE,YAAY,EAAE,eAAe;AAC/B,EAAE,IAAI,EAAE,cAAc;AACtB,EAAE,cAAc,EAAE,iBAAiB;AACnC,CAAC,CAAC;AACF,IAAI,OAAO,GAAG;AACd,EAAE,GAAG,EAAE,KAAK;AACZ,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,YAAY,EAAE,eAAe;AAC/B,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,MAAM,EAAE,QAAQ;AAClB,CAAC,CAAC;AACF,IAAI,kBAAkB,GAAG;AACzB,EAAE,QAAQ,EAAE,KAAK;AACjB,EAAE,QAAQ,EAAE,KAAK;AACjB,EAAE,SAAS,EAAE,KAAK;AAClB,EAAE,SAAS,EAAE,KAAK;AAClB,EAAE,SAAS,EAAE,KAAK;AAClB,EAAE,UAAU,EAAE,KAAK;AACnB,CAAC,CAAC;AACF;AACA,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,IAAI,EAAE;AACrD,EAAE,QAAQ,IAAI;AACd,IAAI,KAAK,WAAW,CAAC,MAAM;AAC3B,MAAM,OAAO;AACb,QAAQ,QAAQ,EAAE,IAAI;AACtB,OAAO,CAAC;AACR;AACA,IAAI,KAAK,WAAW,CAAC,MAAM;AAC3B,MAAM,OAAO;AACb,QAAQ,QAAQ,EAAE,IAAI;AACtB,OAAO,CAAC;AACR;AACA,IAAI,KAAK,WAAW,CAAC,OAAO;AAC5B,MAAM,OAAO;AACb,QAAQ,SAAS,EAAE,IAAI;AACvB,OAAO,CAAC;AACR;AACA,IAAI,KAAK,WAAW,CAAC,OAAO;AAC5B,MAAM,OAAO;AACb,QAAQ,SAAS,EAAE,IAAI;AACvB,OAAO,CAAC;AACR;AACA,IAAI,KAAK,WAAW,CAAC,QAAQ;AAC7B,MAAM,OAAO;AACb,QAAQ,UAAU,EAAE,IAAI;AACxB,OAAO,CAAC;AACR;AACA,IAAI,KAAK,WAAW,CAAC,OAAO;AAC5B,MAAM,OAAO;AACb,QAAQ,SAAS,EAAE,IAAI;AACvB,OAAO,CAAC;AACR;AACA,IAAI,KAAK,WAAW,CAAC,QAAQ;AAC7B,MAAM,OAAO;AACb,QAAQ,UAAU,EAAE,IAAI;AACxB,OAAO,CAAC;AACR;AACA,IAAI;AACJ,MAAM,OAAO,kBAAkB,CAAC;AAChC,GAAG;AACH,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE;AACpD,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1B,CAAC,CAAC;AACF,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,CAAC,EAAE;AAC1C,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AACrF,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC,CAAC;AACF,IAAI,oBAAoB,GAAG,SAAS,oBAAoB,GAAG;AAC3D,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACrC,IAAI,IAAI,MAAM,CAAC,SAAS,IAAI,SAAS,EAAE;AACvC,MAAM,OAAO,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;AAC3C,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,IAAI,EAAE;AAC/C,EAAE,IAAI,GAAG,GAAG,oBAAoB,EAAE,CAAC;AACnC,EAAE,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjJ,CAAC,CAAC;AACF;AACA,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AACjF,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,mBAAmB,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;AACnD,IAAI,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;AACpD,IAAI,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1C,IAAI,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9C,IAAI,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;AAChC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACtC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;AAC9B,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AACjE,EAAE,OAAO,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE;AAClC,IAAI,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AACtC,IAAI,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,IAAI,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;AAC5B,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACtC,IAAI,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;AACvB,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AACxE,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9C,IAAI,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;AAChC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACtC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;AAC9B,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AACxE,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,SAAS;AACxB,IAAI,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9C,IAAI,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;AAChC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACtC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;AAC9B,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3E,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9C,IAAI,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;AAChC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACtC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;AAC9B,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE;AACnF,EAAE,OAAO;AACT,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AACtC,IAAI,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,IAAI,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;AAC9C,IAAI,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;AAChC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;AACtC,IAAI,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;AAC9B,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,SAAS,YAAY,CAAC,SAAS,EAAE;AACjC,EAAE,IAAI,IAAI,GAAG,SAAS,GAAGA,gBAAc,CAAC,SAAS,CAAC,GAAG,QAAQ;AAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB;AACA,EAAE,IAAI,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1C,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;AAChC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;AAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;AACnC;AACA,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9D,GAAG;AACH;AACA,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/C,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/C,GAAG;AACH;AACA,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,OAAO,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,OAAO,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/D,GAAG;AACH,CAAC;AACD;AACA,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,IAAI,EAAE;AAC/C,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,EAAE,OAAO,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC;AACrC,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,KAAK,EAAE;AAChD,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,EAAE,OAAO,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC;AACrC,CAAC,CAAC;AACF,IAAI,qBAAqB,GAAG,SAAS,qBAAqB,CAAC,KAAK,EAAE;AAClE,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,EAAE,OAAO,IAAI,KAAK,WAAW,CAAC,MAAM,IAAI,IAAI,KAAK,WAAW,CAAC,MAAM,CAAC;AACpE,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,EAAE,OAAO,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC;AACtC,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,EAAE,OAAO,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC;AACtC,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,EAAE,OAAO,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;AACvC,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE;AAClD,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,EAAE,OAAO,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC;AACtC,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACxB,EAAE,OAAO,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;AACvC,CAAC,CAAC;AACF,IAAI,eAAe,GAAG,SAAS,eAAe,CAAC,KAAK,EAAE;AACtD,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;AACrD,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,MAAM,EAAE;AACnD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC,CAAC;AACF;AACA,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,MAAM,EAAE;AACnD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC;AAClC,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,MAAM,EAAE;AACnD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC;AAClC,CAAC,CAAC;AACF,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,MAAM,EAAE;AAC/C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC;AACjC,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;AACrD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,OAAO,CAAC,YAAY,CAAC;AACvC,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC;AAC9B,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;AACjD,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,EAAE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF;AACA,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;AACjD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC;AACtC,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,MAAM,EAAE;AACnD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC;AACvC,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;AACrD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC;AACxC,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,MAAM,EAAE;AAC7C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;AACpC,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;AACjD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC;AACtC,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;AACjD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,MAAM,IAAI,IAAI,KAAK,YAAY,CAAC,YAAY,CAAC;AAC5E,CAAC,CAAC;AACF,IAAI,kBAAkB,GAAG,SAAS,kBAAkB,CAAC,MAAM,EAAE;AAC7D,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,YAAY,CAAC;AAC5C,CAAC,CAAC;AACF,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,MAAM,EAAE;AAC/C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC;AACrC,CAAC,CAAC;AACF,IAAI,QAAQ,GAAG,SAAS,QAAQ,CAAC,MAAM,EAAE;AACzC,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,gBAAgB,IAAI,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;AAC5E,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,MAAM,EAAE;AAC7C,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;AACpC,CAAC,CAAC;AACF,IAAI,oBAAoB,GAAG,SAAS,oBAAoB,CAAC,MAAM,EAAE;AACjE,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,cAAc,CAAC;AAC9C,CAAC,CAAC;AACF,IAAI,qBAAqB,GAAG,SAAS,qBAAqB,CAAC,MAAM,EAAE;AACnE,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,EAAE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF,IAAI,iBAAiB,GAAG,SAAS,iBAAiB,CAAC,MAAM,EAAE;AAC3D,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;AACrD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF;AACA,IAAI,aAAa,GAAG,SAAS,aAAa,CAAC,MAAM,EAAE;AACnD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC;AACF,IAAI,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,MAAM,EAAE;AACzD,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC/B,EAAE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,GAAG;AAC/C,EAAE,IAAI,GAAG,GAAG,oBAAoB,EAAE,CAAC;AACnC,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;AAC/D,EAAE,OAAO,OAAO,EAAE,KAAK,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;AAC9D,CAAC,CAAC;AACF,IAAI,kBAAkB,GAAG,SAAS,kBAAkB,CAAC,EAAE,EAAE;AACzD,EAAE,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,QAAQ,GAAG,SAAS,QAAQ,GAAG;AACnC,EAAE,IAAI,GAAG,GAAG,oBAAoB,EAAE,CAAC;AACnC,EAAE,OAAO,GAAG,KAAK,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrI,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,SAAS,SAAS,GAAG;AACrC,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF,IAAI,WAAW,GAAG,SAAS,WAAW,GAAG;AACzC,EAAE,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,SAAS,SAAS,GAAG;AACrC,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;AACjD,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF;AACA,SAAS,oBAAoB,CAAC,OAAO,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ;AACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;AAClB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB;AACA,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC;AACpC,IAAI,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC;AACpC,IAAI,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC;AACtC,IAAI,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC;AACtC,IAAI,cAAc,EAAE,kBAAkB,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE;AAC9D,IAAI,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC;AACvC,IAAI,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE;AAC1D,IAAI,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC;AACtC,IAAI,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE;AACjD,IAAI,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC;AACpC,IAAI,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC;AACpC,IAAI,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;AAChC,IAAI,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC;AAClC,IAAI,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE;AACvC,IAAI,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC;AACnC,IAAI,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC;AACrC,IAAI,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC;AACnC,IAAI,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;AACjC,IAAI,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC3B,IAAI,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;AAC/B,IAAI,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;AACzB,IAAI,kBAAkB,EAAE,qBAAqB,CAAC,OAAO,CAAC;AACtD,IAAI,cAAc,EAAE,iBAAiB,CAAC,OAAO,CAAC;AAC9C,IAAI,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC;AACxC,IAAI,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC;AACzC,IAAI,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC;AACvC,IAAI,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC;AACrC,IAAI,aAAa,EAAE,gBAAgB,CAAC,MAAM,CAAC;AAC3C,IAAI,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;AAC3B,IAAI,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC;AACzD,IAAI,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC;AACnC,IAAI,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC;AACrC,IAAI,OAAO,EAAE,QAAQ,EAAE;AACvB,IAAI,QAAQ,EAAE,SAAS,EAAE;AACzB,IAAI,UAAU,EAAE,WAAW,EAAE;AAC7B,IAAI,QAAQ,EAAE,SAAS,EAAE;AACzB,IAAI,UAAU,EAAE,cAAc,EAAE;AAChC,IAAI,cAAc,EAAE,kBAAkB,CAAC,EAAE,CAAC;AAC1C,IAAI,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;AAChE,IAAI,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;AAChC,IAAI,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;AAC5B,IAAI,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC;AAC/B,IAAI,gBAAgB,EAAE,oBAAoB,CAAC,OAAO,CAAC;AACnD,GAAG,CAAC;AACJ,CAAC;AACD;AACA,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACtC,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACtC,IAAI,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACxC,IAAI,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACxC,IAAI,cAAc,GAAG,kBAAkB,CAACD,SAAO,CAAC,IAAI,SAAS,EAAE,CAAC;AAChE,IAAI,UAAU,GAAG,cAAc,CAACA,SAAO,CAAC,CAAC;AACzC,IAAI,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;AAC5D,IAAI,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACxC,IAAI,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;AACnD,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACtC,IAAI,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACtC,IAAI,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AAClC,IAAI,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;AACpC,IAAI,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;AACzC,IAAI,QAAQ,GAAG,YAAY,CAACA,SAAO,CAAC,CAAC;AACrC,IAAI,SAAS,GAAG,aAAa,CAACA,SAAO,CAAC,CAAC;AACvC,IAAI,QAAQ,GAAG,YAAY,CAACA,SAAO,CAAC,CAAC;AACrC,IAAI,OAAO,GAAG,WAAW,CAACA,SAAO,CAAC,CAAC;AACnC,IAAI,IAAI,GAAG,QAAQ,CAACA,SAAO,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;AACjC,IAAI,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3B,IAAI,kBAAkB,GAAG,qBAAqB,CAACA,SAAO,CAAC,CAAC;AACxD,IAAI,cAAc,GAAG,iBAAiB,CAACA,SAAO,CAAC,CAAC;AAChD,IAAIE,aAAW,GAAG,cAAc,CAACF,SAAO,CAAC,CAAC;AAC1C,IAAI,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAC3C,IAAI,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACzC,IAAI,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,IAAI,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;AAC7B,IAAI,MAAM,GAAG,UAAU,CAACA,SAAO,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC3D,IAAI,QAAQ,GAAG,YAAY,CAACA,SAAO,CAAC,CAAC;AACrC,IAAI,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;AACzB,IAAI,QAAQ,GAAG,SAAS,EAAE,CAAC;AAC3B,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;AAC/B,IAAI,QAAQ,GAAG,SAAS,EAAE,CAAC;AAC3B,IAAI,UAAU,GAAG,cAAc,EAAE,CAAC;AAClC,IAAI,cAAc,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC5C,IAAI,YAAY,GAAG,UAAU,CAACA,SAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAClE,IAAI,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;AAClC,IAAI,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAC9B,IAAI,MAAM,GAAG,UAAU,CAACA,SAAO,CAAC,CAAC;AACjC,IAAI,gBAAgB,GAAG,oBAAoB,CAACA,SAAO,CAAC,CAAC;AACrD,IAAI,uBAAuB,GAAG,SAAS,uBAAuB,CAAC,SAAS,EAAE;AAC1E,EAAE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACnD,IAAI,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC7D,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,qBAAqB,GAAGC,gBAAc,CAAC,SAAS,CAAC;AACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM;AAC3C,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO;AAC7C,MAAM,EAAE,GAAG,qBAAqB,CAAC,EAAE;AACnC,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM;AAC3C,MAAM,EAAE,GAAG,qBAAqB,CAAC,EAAE,CAAC;AACpC;AACA,EAAE,OAAO,oBAAoB,CAAC;AAC9B,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,EAAE,EAAE,EAAE;AACV,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,IAAI,EAAE;AAC7C,EAAE,IAAI,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;AAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC9B,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AACjF;AACA,EAAE,OAAO,SAAS,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACJ,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrK,CAAC,CAAC;AACF,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,KAAK,EAAE;AAC9C,EAAE,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;AACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC/B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AAClF;AACA,EAAE,OAAO,SAAS,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrK,CAAC,CAAC;AACF,IAAI,MAAM,GAAG,SAAS,MAAM,CAAC,KAAK,EAAE;AACpC,EAAE,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;AACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC/B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AAClF;AACA,EAAE,OAAO,IAAI,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AAChK,CAAC,CAAC;AACF,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,KAAK,EAAE;AACtC,EAAE,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;AACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC/B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AAClF;AACA,EAAE,OAAO,KAAK,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACjK,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE;AAC5C,EAAE,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;AACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC/B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AAClF;AACA,EAAE,OAAO,QAAQ,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACpK,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE;AAC5C,EAAE,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;AACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC/B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AAClF;AACA,EAAE,OAAO,QAAQ,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACpK,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,KAAK,EAAE;AAChD,EAAE,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;AACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC/B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AAClF;AACA,EAAE,OAAO,UAAU,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACtK,CAAC,CAAC;AACF,IAAI,cAAc,GAAG,SAAS,cAAc,CAAC,KAAK,EAAE;AACpD,EAAM,IAAA,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAA;AACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AAC/B,MAAsB,KAAK,CAAC,aAAa,CAAA;AACzC,MAAc,KAAK,CAAC,KAAK,CAAA;AACzB,UAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;AAC5G;AACA,EAAE,OAAO,YAAY,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACxK,CAAC,CAAC;AACF,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,KAAK,EAAE;AAC9C,EAAE,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB;AACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC/B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AAClF;AACA,EAAE,OAAO,SAAS,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrK,CAAC,CAAC;AACF,IAAI,WAAW,GAAG,SAAS,WAAW,CAAC,MAAM,EAAE;AAC/C,EAAE,IAAI,kBAAkB,GAAG,MAAM,CAAC,kBAAkB;AACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AACnF;AACA,EAAE,OAAO,SAAS,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrK,CAAC,CAAC;AACF,IAAI,YAAY,GAAG,SAAS,YAAY,CAAC,MAAM,EAAE;AACjD,EAAE,IAAI,kBAAkB,GAAG,MAAM,CAAC,kBAAkB;AACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;AACnF;AACA,EAAE,OAAO,UAAU,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACtK,CAAC,CAAC;AACF,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,MAAM,EAAE;AAC7C,EAAM,IAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAA;AACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;AAChC,MAAsB,MAAM,CAAC,aAAa,CAAA;AAC1C,MAAc,MAAM,CAAC,KAAK,CAAA;AAC1B,UAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;AAClC,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,oBAAoB,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE;AAC1H;AACA,EAAE,OAAO,SAAS,GAAG,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAACA,OAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrK,CAAC,CAAC;AACF;AACA,SAAS,qBAAqB,CAAC,gBAAgB,EAAE;AACjD,EAAE,oBAAoB,UAAU,gBAAgB,EAAE;AAClD,IAAI,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACxC;AACA,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE;AAC3B,MAAM,IAAI,KAAK,CAAC;AAChB;AACA,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC;AACA,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1F,MAAM,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC;AACzC,MAAM,KAAK,CAAC,uBAAuB,GAAG,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AACxG,MAAM,KAAK,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChG,MAAM,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,MAAM,KAAK,CAAC,KAAK,GAAG;AACpB,QAAQ,WAAW,EAAE,KAAK;AAC1B,QAAQ,UAAU,EAAE,KAAK;AACzB,OAAO,CAAC;AACR,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL;AACA,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;AAC1B,MAAM,GAAG,EAAE,yBAAyB;AACpC,MAAM,KAAK,EAAE,SAAS,uBAAuB,GAAG;AAChD,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACxC,UAAU,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AAC3C,SAAS;AACT;AACA,QAAQ,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1E,QAAQ,IAAI,CAAC,QAAQ,CAAC;AACtB,UAAU,UAAU,EAAE,WAAW,KAAK,CAAC;AACvC,UAAU,WAAW,EAAE,WAAW,KAAK,EAAE;AACzC,SAAS,CAAC,CAAC;AACX,OAAO;AACP,KAAK,EAAE;AACP,MAAM,GAAG,EAAE,qBAAqB;AAChC,MAAM,KAAK,EAAE,SAAS,mBAAmB,GAAG;AAC5C,QAAQ,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACvC,OAAO;AACP,KAAK,EAAE;AACP,MAAM,GAAG,EAAE,YAAY;AACvB,MAAM,KAAK,EAAE,SAAS,UAAU,GAAG;AACnC,QAAQ,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACvC,OAAO;AACP,KAAK,EAAE;AACP,MAAM,GAAG,EAAE,mBAAmB;AAC9B,MAAM,KAAK,EAAE,SAAS,iBAAiB,GAAG;AAC1C,QAAQ,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,EAAE;AACvG,UAAU,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC1C,YAAY,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC3C,YAAY,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACpE,WAAW,MAAM;AACjB,YAAY,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACvE,WAAW;AACX;AACA,UAAU,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAC7E,SAAS;AACT,OAAO;AACP,KAAK,EAAE;AACP,MAAM,GAAG,EAAE,sBAAsB;AACjC,MAAM,KAAK,EAAE,SAAS,oBAAoB,GAAG;AAC7C,QAAQ,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAC9E,OAAO;AACP,KAAK,EAAE;AACP,MAAM,GAAG,EAAE,QAAQ;AACnB,MAAM,KAAK,EAAE,SAAS,MAAM,GAAG;AAC/B,QAAQ,OAAO,cAAc,CAAC,aAAa,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE;AACvF,UAAU,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;AAC7C,UAAU,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;AAC3C,SAAS,CAAC,CAAC,CAAC;AACZ,OAAO;AACP,KAAK,CAAC,CAAC,CAAC;AACR;AACA,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AACD;AACA,SAAS,oBAAoB,GAAG;AAChC,EAAE,IAAI,SAAS,GAAGA,OAAK,CAAC,QAAQ,CAAC,YAAY;AAC7C,IAAI,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,IAAI,OAAO;AACX,MAAM,UAAU,EAAE,WAAW,KAAK,CAAC;AACnC,MAAM,WAAW,EAAE,WAAW,KAAK,EAAE;AACrC,MAAM,WAAW,EAAE,WAAW,KAAK,CAAC,GAAG,UAAU,GAAG,WAAW;AAC/D,KAAK,CAAC;AACN,GAAG,CAAC;AACJ,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC;AAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B;AACA,EAAE,IAAI,uBAAuB,GAAGA,OAAK,CAAC,WAAW,CAAC,YAAY;AAC9D,IAAI,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,IAAI,IAAI,IAAI,GAAG;AACf,MAAM,UAAU,EAAE,WAAW,KAAK,CAAC;AACnC,MAAM,WAAW,EAAE,WAAW,KAAK,EAAE;AACrC,MAAM,WAAW,EAAE,WAAW,KAAK,CAAC,GAAG,UAAU,GAAG,WAAW;AAC/D,KAAK,CAAC;AACN,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7D,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1B,EAAEA,OAAK,CAAC,SAAS,CAAC,YAAY;AAC9B,IAAI,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS,IAAI,QAAQ,EAAE;AACnG,MAAM,uBAAuB,EAAE,CAAC;AAChC,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACtE,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACxE,KAAK;AACL;AACA,IAAI,OAAO,YAAY;AACvB,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;AAC3E,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACzE,KAAK,CAAC;AACN,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAChC,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA,SAAS,aAAa,CAAC,SAAS,EAAE;AAClC,EAAE,IAAI,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AACzE,EAAE,OAAOI,gBAAc,CAAC,aAAa,CAAC,CAAC;AACvC,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,SAAS,EAAE;AACvC,EAAE,IAAI,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;AACzE,EAAE,IAAI,UAAU,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;AAChD,EAAE,IAAI,SAAS,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;AACnD,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACjC,CAAC;AACD;AACmBN,KAAA,CAAA,WAAA,GAAG,YAAY;AACdA,KAAA,CAAA,YAAA,GAAG,aAAa;AACjBA,KAAA,CAAA,WAAA,GAAG,YAAY;AACfA,KAAA,CAAA,WAAA,GAAG,YAAY;AAChBA,KAAA,CAAA,UAAA,GAAG,WAAW;AAClBA,KAAA,CAAA,MAAA,GAAG,OAAO;AACTA,KAAA,CAAA,OAAA,GAAG,QAAQ;AACJA,KAAA,CAAA,cAAA,GAAG,eAAe;AACtBA,KAAA,CAAA,UAAA,GAAG,WAAW;AACjBA,KAAA,CAAA,OAAA,GAAG,QAAQ;AACPA,KAAA,CAAA,WAAA,GAAG,YAAY;AAChBA,KAAA,CAAA,UAAA,GAAG,WAAW;AACZA,KAAA,CAAA,YAAA,GAAG,aAAa;AAChBA,KAAA,CAAA,YAAA,GAAG,aAAa;AACjBA,KAAA,CAAA,WAAA,GAAGO,cAAY;AACZP,KAAA,CAAA,cAAA,GAAG,eAAe;AACpBA,KAAA,CAAA,YAAA,GAAG,aAAa;AAClBA,KAAA,CAAA,UAAA,GAAG,WAAW;AACdA,KAAA,CAAA,UAAA,GAAG,WAAW;AACXA,KAAA,CAAA,aAAA,GAAG,cAAc;AACZA,KAAA,CAAA,kBAAA,GAAG,mBAAmB;AACjBA,KAAA,CAAA,uBAAA,GAAG,wBAAwB;AAC7CA,KAAA,CAAA,KAAA,GAAG,MAAM;AACLA,KAAA,CAAA,SAAA,GAAG,UAAU;AACbA,KAAA,CAAA,SAAA,GAAG,UAAU;AACdA,KAAA,CAAA,QAAA,GAAG,SAAS;AACVA,KAAA,CAAA,UAAA,GAAG,WAAW;AACfA,KAAA,CAAA,SAAA,GAAG,UAAU;AACbA,KAAA,CAAA,SAAA,GAAG,UAAU;AAChBA,KAAA,CAAA,MAAA,GAAG,OAAO;AACFA,KAAA,CAAA,cAAA,GAAG,eAAe;AACtBA,KAAA,CAAA,UAAA,GAAG,WAAW;AACdA,KAAA,CAAA,UAAA,GAAG,WAAW;AACfA,KAAA,CAAA,SAAA,GAAG,UAAU;AAClBA,KAAA,CAAA,IAAA,GAAG,KAAK;AACpB,IAAa,OAAA,GAAAA,KAAA,CAAA,KAAA,GAAG,KAAK,CAAC;AACPA,KAAA,CAAA,OAAA,GAAG,QAAQ;AACVA,KAAA,CAAA,QAAA,GAAG,SAAS;AACVA,KAAA,CAAA,UAAA,GAAG,WAAW;AAChBA,KAAA,CAAA,QAAA,GAAG,SAAS;AACRA,KAAA,CAAA,YAAA,GAAG,aAAa;AACtBA,KAAA,CAAA,MAAA,GAAG,OAAO;AACTA,KAAA,CAAA,OAAA,GAAG,QAAQ;AACVA,KAAA,CAAA,QAAA,GAAG,SAAS;AACRA,KAAA,CAAA,YAAA,GAAG,aAAa;AACdA,KAAA,CAAA,cAAA,GAAG,eAAe;AACzBA,KAAA,CAAA,OAAA,GAAG,QAAQ;AACVA,KAAA,CAAA,QAAA,GAAG,SAAS;AACJA,KAAA,CAAA,gBAAA,GAAG,iBAAiB;AAC3BA,KAAA,CAAA,SAAA,GAAG,UAAU;AACdA,KAAA,CAAA,QAAA,GAAG,SAAS;AACVA,KAAA,CAAA,UAAA,GAAG,WAAW;AACdA,KAAA,CAAA,UAAA,GAAG,WAAW;AACfA,KAAA,CAAA,SAAA,GAAG,UAAU;AACdA,KAAA,CAAA,QAAA,GAAG,SAAS;AACTA,KAAA,CAAA,WAAA,GAAG,YAAY;AACdA,KAAA,CAAA,YAAA,GAAG,aAAa;AACtBA,KAAA,CAAA,MAAA,GAAG,OAAO;AACPA,KAAA,CAAA,SAAA,GAAG,UAAU;AACRA,KAAA,CAAA,cAAA,GAAGM,iBAAe;AACpBN,KAAA,CAAA,YAAA,GAAG,aAAa;AACfA,KAAA,CAAA,aAAA,GAAG,cAAc;AACZA,KAAA,CAAA,kBAAA,GAAG,mBAAmB;AACpBA,KAAA,CAAA,oBAAA,GAAG,qBAAqB;AACpDA,KAAA,CAAA,qBAA6B,GAAG;;ACjhChC,MAAe,UAAU,CAAA;AACvB,IAAA,WAAW,CAAmB;AAC9B,IAAA,OAAO,CAAkB;AACzB,IAAA,WAAW,CAAmB;IAgB9B,WAAsB,CAAA,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAmB,EAAA;AACrE,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,EAAE,CAAC;KAChC;AAED,IAAA,MAAM,WAAW,GAAA;QACf,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;KAClD;IAED,MAAM,cAAc,CAAC,OAAe,EAAA;AAClC,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;QAE5E,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACtD,SAAA;AAED,QAAA,OAAO,WAA0B,CAAC;KACnC;IAED,MAAM,SAAS,CAAC,OAAe,EAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;QAE5E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE;AACpD,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AACjD,SAAA;QAED,OAAO,WAAW,CAAC,MAAiB,CAAC;KACtC;AAED,IAAA,MAAM,mBAAmB,CAAC,IAAY,EAAE,OAAO,GAAG,CAAC,EAAA;AACjD,QAAA,MAAM,YAAY,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAC1D,IAAI,CAAC,WAAW,EAChB,IAAI,EACJ,OAAO,CACR,CAAiB,CAAC;AAEnB,QAAA,OAAO,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;KAClC;AAED,IAAA,iBAAiB,GAAG,CAAC,GAAW,EAAE,QAAiB,KAAI;AACrD,QAAA,OAAO,QAAQ;cACX,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAClC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C,CAAC,GAAG;cACL,IAAI,CAAC,OAAO,CAAC,yBAAyB,CACpC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C,CAAC;AACR,KAAC,CAAC;IAEF,qBAAqB,CAAC,GAAW,EAAE,QAAiB,EAAA;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAErD,QAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;YACzB,QAAQ;AACR,YAAA,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AACtE,YAAA,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;YAChE,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,YAAA,GAAG,EAAE,MAAM;AACZ,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,yBAAyB,CAAC,YAA+B,EAAA;;AAEvD,QAAA,SAAS,OAAO,CAAC,WAAkC,EAAE,QAAgB,EAAA;AACnE,YAAA,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,EAAA;AAC1C,gBAAA,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACb,oBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACf,iBAAA;gBACD,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,gBAAA,OAAO,GAAG,CAAC;aACZ,EAAE,EAAE,CAAC,CAAC;SACR;AAED,QAAA,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CACtC,CAAC,GAAc,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,KAAI;YACrC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD,gBAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI;AAC1B,sBAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;sBACrD,EAAE,CAAC;AACP,gBAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE;AACtB,sBAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC;sBACnD,EAAE,CAAC;AACP,gBAAA,MAAM,IAAI,GAAI,UAAU,CAAC,IAAgB,IAAI,EAAE,CAAC;AAChD,gBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAE9C,gBAAA,MAAM,MAAM,GAAG;AACb,oBAAA,UAAU,EAAE,KAAK;oBACjB,MAAM;oBACN,IAAI;oBACJ,EAAE;oBACF,IAAI;oBACJ,GAAG;iBACJ,CAAC;AAEF,gBAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EACD,EAAE,CACH,CAAC;AACF,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;KACtC;IAED,MAAM,mBAAmB,CAAC,YAA0B,EAAA;AAClD,QAAA,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW;aAC3C,kBAAkB,CAAC,YAAY,CAAC;AAChC,aAAA,EAAE,EAAE,CAAC;QAER,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;AACxC,SAAA;QAED,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACzD,eAAe,CAAC,IAAI,CACrB,CAAC;QAEF,OAAO;YACL,EAAE,EAAE,eAAe,CAAC,IAAI;AACxB,YAAA,GAAG,oBAAoB;SACxB,CAAC;KACH;IAED,gBAAgB,GAAA;;;;QAKd,IAAI,CAACQ,OAAK,EAAE;YACV,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IAED,eAAe,GAAA;QACb,IAAI,CAACA,OAAK,EAAE;YACV,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;KAC1B;AACF;;ACnND;;;AAGG;AA2BH,MAAM,gBAAiB,SAAQ,UAAU,CAAA;AACvC,IAAA,OAAO,CAAoB;AAC3B,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,eAAgC,EAAE,UAAsB,EAAA;QAClE,KAAK,CAAC,eAAe,CAAC,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/C;IAED,aAAa,IAAI,GAAA;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC;AAElD,QAAA,MAAM,eAAe,GAAoB;YACvC,OAAO;AACP,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,MAAM,OAAO,qBAAqB,CAAC;AAC3D,aAAA,iBAAiB,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC,CAAC;AAE5E,QAAA,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,WAAW,CAAC,WAAW;AAC3B,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,SAAS,EAAE,SAAS;SACrB,CAAC;AAEF,QAAA,OAAO,IAAI,gBAAgB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;KAC1D;IAED,MAAM,OAAO,CAAC,YAAwB,EAAA;QACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE9C,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAEvD,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AACvE,YAAA,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,GAAG,CAAC,CAAE,CAAA;YAChC,OAAO;AACP,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,SAAA,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,MAAM,SAAS,CAAC,YAAwB,EAAA;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AAC1D,gBAAA,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,GAAG,CAAC,CAAE,CAAA;gBAChC,OAAO;AACP,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,aAAA,CAAC,CAAC;SACJ,CAAC;KACH;AAED,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;KACjC;AAED,IAAA,uBAAuB,CAAC,YAA+B,EAAA;QACrD,MAAM,qBAAqB,GAAsB,EAAE,CAAC;QAEpD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,qBAAqB,CAAC,IAAI,CAAC;AACzB,oBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CACrC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C;AACD,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,qBAAqB,CAAC,IAAI,CAAC;AACzB,oBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,yBAAyB,CACzC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AAED,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AAED,IAAA,MAAM,gBAAgB,CAAC,YAAoB,EAAE,YAA0B,EAAA;;QAErE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;;AAI3D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AACvE,YAAA,IACE,EAAE,KAAK,IAAI,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY,EACvD;gBACA,GAAG,CAAC,IAAI,CAAC;oBACP,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7D,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC;AACP,oBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC9D,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;;;QAIP,IAAI,CAAC,gBAAgB,EAAE,CAAC;;AAGxB,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC,eAAe,EAAE,CAAC;;AAGvB,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AAClE,YAAA,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE;AACnB,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACpC,gBAAA,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,MAAM,uBAAuB,CAAC,YAA+B,EAAA;QAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAEtE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,MAAM,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YACjD,kBAAkB;AACnB,SAAA,CAAC,CAAiB,CAAC;QAEpB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,kBAAkB,GAAiB,EAAE,CAAC;QAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,kBAAkB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrE,aAAA;AACF,SAAA;AAED,QAAA,OAAO,kBAAkB,CAAC;KAC3B;AACF,CAAA;AAED,uBAAe,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI;AACjD,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO;AACR,KAAA;AACH,CAAC,CAAC;;AC1NF;;;AAGG;AAgBH,MAAM,kBAAmB,SAAQ,UAAU,CAAA;AACzC,IAAA,OAAO,CAAgB;AACvB,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,eAAgC,EAAE,UAAsB,EAAA;QAClE,KAAK,CAAC,eAAe,CAAC,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/C;IAED,aAAa,IAAI,GAAA;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC;AAElD,QAAA,MAAM,eAAe,GAAoB;YACvC,OAAO;AACP,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,0BAA0B,CAAC,EAAE,OAAO,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;AAExD,QAAA,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,WAAW,CAAC,aAAa;AAC7B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,SAAS,EAAE,SAAS;SACrB,CAAC;AAEF,QAAA,OAAO,IAAI,kBAAkB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;KAC5D;AAED,IAAA,MAAM,OAAO,GAAA;QACX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAE9C,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;AAC3D,SAAA;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;AAChD,YAAA,GAAG,OAAO;AACV,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,SAAA,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;AAED,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,MAAM,UAAU,GAAA;QACd,OAAO;KACR;AAED,IAAA,MAAM,gBAAgB,CAAC,YAAoB,EAAE,YAA0B,EAAA;;QAErE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;AAG3D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;;;AAGlE,YAAA,IACE,EAAE,KAAK,IAAI,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY,EACvD;gBACA,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;;QAGP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;;AAG9D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AAClE,YAAA,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE;gBACnB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;AAC1C,gBAAA,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,MAAM,uBAAuB,CAAC,YAA+B,EAAA;QAC3D,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,MAAM,qBAAqB,GAAiB,EAAE,CAAC;QAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,gBAAA,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,aAAA;AACF,SAAA;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACpC,SAAA;QAED,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;AACrD,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,aAAA;AACF,SAAA;AAED,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AACF,CAAA;AAED,yBAAe,kBAAkB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI;AACnD,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO;AACR,KAAA;AACH,CAAC,CAAC;;AC1JF;;;AAGG;AAoDH,MAAM,gBAAiB,SAAQ,UAAU,CAAA;AACvC,IAAA,OAAO,CAAa;AACpB,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,eAAgC,EAAE,UAAsB,EAAA;QAClE,KAAK,CAAC,eAAe,CAAC,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/C;IAED,aAAa,IAAI,GAAA;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC;AAElD,QAAA,MAAM,eAAe,GAAoB;YACvC,OAAO;AACP,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,IACE,OAAO,MAAM,IAAI,WAAW;AAC3B,YAAA,MAAyB,CAAC,UAAU,KAAK,SAAS,EACnD;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;AACjD,SAAA;AAED,QAAA,MAAM,UAAU,GAAI,MAAyB,CAAC,UAAwB,CAAC;AAEvE,QAAA,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,WAAW,CAAC,WAAW;AAC3B,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,SAAS,EAAE,SAAS;SACrB,CAAC;AAEF,QAAA,OAAO,IAAI,gBAAgB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;KAC1D;AAED,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE7B,IAAI,MAAM,GAAqB,SAAS,CAAC;QAEzC,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,MAAM,GAAG,SAAS,CAAC;AACpB,SAAA;aAAM,IAAI,YAAY,KAAK,SAAS,EAAE;YACrC,MAAM,GAAG,SAAS,CAAC;AACpB,SAAA;aAAM,IAAI,YAAY,KAAK,SAAS,EAAE;YACrC,MAAM,GAAG,SAAS,CAAC;AACpB,SAAA;aAAM,IAAI,CAAC,CAAC,YAAY,EAAE;YACzB,MAAM,GAAG,YAAY,CAAC;AACvB,SAAA;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC3C,MAAM;AACP,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,MAAM;AAC3D,YAAA,IAAI,EAAE,CAAA,WAAA,EAAc,KAAK,GAAG,CAAC,CAAE,CAAA;YAC/B,OAAO;AACP,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,SAAA,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,MAAM,SAAS,CAAC,YAAwB,EAAA;QACtC,IACE,MAAM,KAAK,SAAS;AACnB,YAAA,MAAyB,CAAC,UAAU,KAAK,SAAS,EACnD;AACA,YAAA,YAAY,EAAE,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,MAAM,UAAU,GAAA;QACd,OAAO;KACR;AAED,IAAA,uBAAuB,CACrB,YAA+B,EAAA;AAE/B,QAAA,MAAM,qBAAqB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,KAAI;AAC7D,YAAA,MAAM,YAAY,GAA0B;AAC1C,gBAAA,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;aACZ,CAAC;YAEF,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,gBAAA,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAClD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C,CAAC;AACF,gBAAA,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CACtD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CACrB,CAAC;AACH,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CACpD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAC3B,CAAC;AACF,gBAAA,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CACtD,OAAO,CAAC,MAAM,EAAE,CACjB,CAAC;AACH,aAAA;AAED,YAAA,OAAO,YAAY,CAAC;AACtB,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AAED,IAAA,MAAM,gBAAgB,CAAC,YAAoB,EAAE,YAA0B,EAAA;;QAErE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;;AAI3D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AACd,YAAA,MAAM,MAAM,GAA0B;AACpC,gBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aAC5D,CAAC;YAEF,IACE,KAAK,IAAI,GAAG;AACZ,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY,EACvD;AACA,gBAAA,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAChD,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CACnE,CAAC;AACF,gBAAA,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;AACrB,aAAA;AAED,YAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEjB,YAAA,OAAO,GAAG,CAAC;SACZ,EACD,EAAE,CACH,CAAC;;QAGF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;AAGtD,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AAC7D,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3D,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,MAAM,uBAAuB,CAAC,YAA+B,EAAA;QAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACpC,SAAA;AAED,QAAA,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CACzC,CAAC,UAAwB,EAAE,GAAG,EAAE,YAAY,KAAI;AAC9C,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClE,aAAA;YAED,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,UAAU,CAAC,IAAI,CACb,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CACrE,CAAC;AACH,aAAA;AAED,YAAA,OAAO,UAAU,CAAC;SACnB,EACD,EAAE,CACH,CAAC;AAEF,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AACF,CAAA;AAED,uBAAe,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI;AACjD,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO;AACR,KAAA;AACH,CAAC,CAAC;;ACnQF;;;AAGG;AA2BH,MAAM,iBAAkB,SAAQ,UAAU,CAAA;AACxC,IAAA,OAAO,CAAqB;AAC5B,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,eAAgC,EAAE,UAAsB,EAAA;QAClE,KAAK,CAAC,eAAe,CAAC,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/C;IAED,aAAa,IAAI,GAAA;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC;AAElD,QAAA,MAAM,eAAe,GAAoB;YACvC,OAAO;AACP,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,MAAM,kBAAkB,GAAG,CAAC,MAAM,OAAO,2BAA2B,CAAC;AAClE,aAAA,kBAAkB,CAAC;AACtB,QAAA,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;AACzC,YAAA,sBAAsB,EAAE,KAAK;AAC9B,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,WAAW,CAAC,KAAK;AACrB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,SAAS,EAAE,SAAS;SACrB,CAAC;AAEF,QAAA,OAAO,IAAI,iBAAiB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;KAC3D;IAED,MAAM,OAAO,CAAC,YAAwB,EAAA;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAEvD,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AACvE,YAAA,IAAI,EAAE,CAAA,aAAA,EAAgB,KAAK,GAAG,CAAC,CAAE,CAAA;YACjC,OAAO;AACP,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,SAAA,CAAC,CAAC,CAAC;QAEJ,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;SACzB,CAAC;KACH;IAED,MAAM,SAAS,CAAC,YAAwB,EAAA;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AAC1D,gBAAA,IAAI,EAAE,CAAA,aAAA,EAAgB,KAAK,GAAG,CAAC,CAAE,CAAA;gBACjC,OAAO;AACP,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,aAAA,CAAC,CAAC;SACJ,CAAC;KACH;AAED,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;KACjC;AAED,IAAA,uBAAuB,CAAC,YAA+B,EAAA;QACrD,MAAM,qBAAqB,GAAuB,EAAE,CAAC;QAErD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,qBAAqB,CAAC,IAAI,CAAC;AACzB,oBAAA,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CACrC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C;AACD,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,qBAAqB,CAAC,IAAI,CAAC;AACzB,oBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,yBAAyB,CACzC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAC3C;AACF,iBAAA,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AAED,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AAED,IAAA,MAAM,gBAAgB,CAAC,YAAoB,EAAE,YAA0B,EAAA;;QAErE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;;AAI3D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AACxE,YAAA,IACE,EAAE,KAAK,IAAI,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY,EACvD;gBACA,GAAG,CAAC,IAAI,CAAC;oBACP,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC7D,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC;AACP,oBAAA,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AAC9D,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;;AAGP,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;;AAGhE,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AAClE,YAAA,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE;AACnB,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACpC,gBAAA,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,MAAM,uBAAuB,CAAC,YAA+B,EAAA;QAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,MAAM,GAAiB,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAC9D,kBAAkB;AACnB,SAAA,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAiB,EAAE,CAAC;QAE5C,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7C,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,kBAAkB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrE,aAAA;AACF,SAAA;AAED,QAAA,OAAO,kBAAkB,CAAC;KAC3B;AACF,CAAA;AAED,kBAAe,iBAAiB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI;AAClD,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO;AACR,KAAA;AACH,CAAC,CAAC;;AC7MF;;;AAGG;AAkCH,MAAM,YAAa,SAAQ,UAAU,CAAA;AACnC,IAAA,OAAO,CAAS;AAChB,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,eAAgC,EAAE,UAAsB,EAAA;QAClE,KAAK,CAAC,eAAe,CAAC,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/C;IAED,aAAa,IAAI,GAAA;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC;AAElD,QAAA,MAAM,eAAe,GAAoB;YACvC,OAAO;AACP,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,IACE,OAAO,MAAM,IAAI,WAAW;AAC3B,YAAA,MAAyB,CAAC,MAAM,KAAK,SAAS,EAC/C;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC7C,SAAA;AAED,QAAA,MAAM,MAAM,GAAI,MAAyB,CAAC,MAAM,CAAC,QAAkB,CAAC;AAEpE,QAAA,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,WAAW,CAAC,MAAM;AACtB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,SAAS,EAAE,SAAS;SACrB,CAAC;AAEF,QAAA,OAAO,IAAI,YAAY,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;KACtD;AAED,IAAA,MAAM,OAAO,GAAA;QACX,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAEjD,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;AAC3D,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG;AACf,YAAA;AACE,gBAAA,IAAI,EAAE,CAAU,QAAA,CAAA;gBAChB,OAAO;AACP,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,aAAA;SACF,CAAC;QAEF,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACT,CAAC;KACH;IAED,MAAM,SAAS,CAAC,YAAwB,EAAA;QACtC,IACE,MAAM,KAAK,SAAS;YACnB,MAAyB,CAAC,MAAM,KAAK,SAAS;YAC9C,MAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,EAC/D;AACA,YAAA,YAAY,EAAE,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,MAAM,UAAU,GAAA;QACd,OAAO;KACR;AAED,IAAA,MAAM,gBAAgB,CACpB,YAAoB,EACpB,YAA+B,EAAA;;QAG/B,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;AAG3D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;;;AAGlE,YAAA,IACE,EAAE,KAAK,IAAI,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY,EACvD;gBACA,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;;QAGP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;;AAG9D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AAClE,YAAA,IAAI,EAAE,KAAK,IAAI,GAAG,CAAC,EAAE;AACnB,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACpC,gBAAA,YAAY,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,MAAM,uBAAuB,CAAC,YAA+B,EAAA;QAC3D,MAAM,kBAAkB,GAAiB,EAAE,CAAC;QAC5C,MAAM,qBAAqB,GAAiB,EAAE,CAAC;QAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CACpD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAC3B,CAAC;gBACF,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,aAAA;AACF,SAAA;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACpC,SAAA;QAED,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE;YACtC,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA;AAAM,iBAAA;AACL,gBAAA,qBAAqB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxE,aAAA;AACF,SAAA;AAED,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AACF,CAAA;AAED,mBAAe,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI;AAC7C,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO;AACR,KAAA;AACH,CAAC,CAAC;;AC1KF,MAAM,gBAAgB,GAAG;AACvB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,IAAI,EAAE,QAAQ;CACF,CAAC;AAuBf,MAAM,SAAU,SAAQ,UAAU,CAAA;AAChC,IAAA,OAAO,CAAM;AACb,IAAA,QAAQ,CAAS;AACjB,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,eAAgC,EAAE,UAAsB,EAAA;QAClE,KAAK,CAAC,eAAe,CAAC,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;IAED,aAAa,IAAI,GAAA;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC;AAClD,QAAA,MAAM,eAAe,GAAoB;YACvC,OAAO;AACP,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;;QAGF,MAAM,SAAS,GAAc,gBAAgB,CAAC;AAE9C,QAAA,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,GAAG,CAC/B,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,IAAI,CACf,CAAC;AAEF,QAAA,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,WAAW,CAAC,UAAU;AAC1B,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,SAAS,EAAE,SAAS;SACrB,CAAC;AAEF,QAAA,OAAO,IAAI,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;KACnD;AAED,IAAA,MAAM,OAAO,GAAA;;QAEX,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,YAAY,CAC/Bb,YAAU,EACV,MAAM,IAAI,CAAC,eAAe,EAAE,CAC7B;SACF,CAAC;KACH;AAED,IAAA,MAAM,UAAU,GAAA;QACd,OAAO;KACR;AAED,IAAA,MAAM,SAAS,GAAA;QACb,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,YAAY,CAC/BA,YAAU,EACV,MAAM,IAAI,CAAC,eAAe,EAAE,CAC7B;SACF,CAAC;KACH;AAED,IAAA,MAAM,eAAe,GAAA;;AAEnB,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,MAAM,cAAc,CAAC,QAAgB,EAAE,QAAgB,EAAA;AACrD,QAAA,MAAM,UAAU,GAAqB,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACtE,QAAQ,EACR,QAAQ,CACT,CAAC;QACF,OAAO,UAAU,CAAC,mBAAmB,CAAC;KACvC;IAED,MAAM,YAAY,CAAC,KAAa,EAAA;QAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KAC/C;AAED,IAAA,MAAM,WAAW,GAAA;QACf,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACxD,QAAA,MAAM,UAAU,GAA8B,cAAc,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,SAAS,GAA2B,EAAE,CAAC;AAC7C,QAAA,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC1B,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC1B,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;AAED,IAAA,MAAM,YAAY,CAChB,MAAc,EACd,QAAgB,EAAA;AAEhB,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AAE3C,QAAA,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC;AAAE,YAAA,MAAM,KAAK,CAAC,mBAAmB,GAAG,MAAM,CAAC,CAAC;AAEtE,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;;AAGlC,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;;QAGjE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,MAAM,SAAS,GAAkB,YAAY,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,KAAI;YACtE,OAAO;AACL,gBAAA,IAAI,EAAE,CAAA,UAAA,EAAa,KAAK,GAAG,CAAC,CAAE,CAAA;gBAC9B,OAAO;AACP,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;aAC7B,CAAC;AACJ,SAAC,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAEzB,QAAA,OAAO,cAAc,CAAC;KACvB;AAED,IAAA,MAAM,gBAAgB,CAAC,aAAqB,EAAE,YAA0B,EAAA;;QAEtE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;AAG3D,QAAA,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AACxC,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAiB,EAAE,CAAC;;QAEpC,MAAM,eAAe,GAA0B,EAAE,CAAC;AAClD,QAAA,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;AAC7B,YAAA,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;;YAG9B,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;;AAGnC,YAAA,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;gBAAE,SAAS;;AAE/B,YAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC;gBAAE,SAAS;;AAGxE,YAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;AAEnC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACjE,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACpE,SAAA;QAED,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;;QAG1D,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,QAAA,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;;;YAG5B,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC5C,SAAS,IAAI,CAAC,CAAC;AAChB,aAAA;AACF,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;AAED,IAAA,uBAAuB,CACrB,YAA+B,EAAA;AAE/B,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;AACF,CAAA;AAED,gBAAe,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI;AAC1C,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO;AACR,KAAA;AACH,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC3OF,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;EAC9D,OAA6B,CAAA,kBAAA,GAAA,OAAA,CAAA,uBAAA,GAAkC,OAA+B,CAAA,oBAAA,GAAA,OAAA,CAAA,YAAA,GAAuB,OAAyB,CAAA,cAAA,GAAA,OAAA,CAAA,cAAA,GAAyB,2BAA2B,OAA0B,CAAA,eAAA,GAAA,OAAA,CAAA,WAAA,GAAsB,KAAK,CAAC,CAAC;AACzP,EAAA,OAAA,CAAA,WAAA,GAAsB,aAAa,CAAC;AACpC,EAAA,OAAA,CAAA,eAAA,GAA0B,iBAAiB,CAAC;AAC5C,EAAA,OAAA,CAAA,gBAAA,GAA2B,kBAAkB,CAAC;AAC9C,EAAA,OAAA,CAAA,cAAA,GAAyB,gBAAgB,CAAC;AAC1C,EAAA,OAAA,CAAA,cAAA,GAAyB,gBAAgB,CAAC;AAC1C,EAAA,OAAA,CAAA,YAAA,GAAuB,cAAc,CAAC;AACtC,EAAA,OAAA,CAAA,oBAAA,GAA+B,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AACxE,EAAA,OAAA,CAAA,uBAAA,GAAkC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;EACnD,OAA6B,CAAA,kBAAA,GAAA;AAC7B,MAAI,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE;AACnE,MAAI,CAAC,OAAO,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE;AAC3E,MAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE;AAC7E,MAAI,CAAC,OAAO,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE;AACzE,MAAI,CAAC,OAAO,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE;AACzE,MAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE;AACrE,GAAC,CAAC;AACF,EAAA;;;;;;;;;;;;AClBA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA,KAAA,CAAA,oBAA4B,GAAG,KAAA,CAAA,cAAsB,GAAG,KAAA,CAAA,QAAgB,GAAG,KAAA,CAAA,gBAAwB,GAAG,KAAA,CAAA,mBAA2B,GAAG,KAAA,CAAA,iBAAyB,GAAG,KAAK,CAAC,CAAC;CACvK,MAAM,WAAW,GAAGQ,gBAAA,EAAsB,CAAC;CAC3C,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,KAAI,OAAO,IAAI,IAAI,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;EAC3G;AACD,CAAyB,KAAA,CAAA,iBAAA,GAAG,iBAAiB,CAAC;CAC9C,SAAS,mBAAmB,CAAC,IAAI,EAAE;KAC/B,OAAO,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;EAC1D;AACD,CAA2B,KAAA,CAAA,mBAAA,GAAG,mBAAmB,CAAC;CAClD,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,KAAI,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;EACnC;AACD,CAAwB,KAAA,CAAA,gBAAA,GAAG,gBAAgB,CAAC;CAC5C,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,KAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;SAC7D,OAAO,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;MACrE;AACL,KAAI,OAAO,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;EAC/C;AACD,CAAgB,KAAA,CAAA,QAAA,GAAG,QAAQ,CAAC;CAC5B,SAAS,cAAc,CAAC,IAAI,EAAE;KAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;KACvF,IAAI,CAAC,KAAK,EAAE;SACR,OAAO,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;MACrE;KACD,OAAO,KAAK,CAAC;EAChB;AACD,CAAsB,KAAA,CAAA,cAAA,GAAG,cAAc,CAAC;CACxC,SAAS,oBAAoB,CAAC,QAAQ,EAAE;KACpC,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;SAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;MACrE;KACD,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE;SAC/C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC;MACxE;KACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAChD,SAAQ,OAAO;aACH,KAAK,EAAE,KAAK;aACZ,KAAK,EAAE,CAAC,sCAAsC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACjF,UAAS,CAAC;MACL;KACD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;SAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1D,SAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO;aACpF,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE;AACtD,aAAY,OAAO;iBACH,KAAK,EAAE,KAAK;iBACZ,KAAK,EAAE,CAAC,yCAAyC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxF,cAAa,CAAC;UACL;MACJ;AACL,KAAI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;EAC1B;AACD,CAA4B,KAAA,CAAA,oBAAA,GAAG,oBAAoB,CAAC;AACpD,CAAA;;;;;;;;;;;;;;;ACxDA,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA,MAAA,CAAA,wBAAgC,GAAG,MAAuB,CAAA,eAAA,GAAG,sBAAuB,GAAG,KAAK,CAAC,CAAC;AAC9F,CAAA,SAAS,eAAe,GAAG;AAC3B,KAAI,OAAO,CAACM,cAAM,KAAK,IAAI,IAAIA,cAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAM,CAAC,MAAM,MAAMA,cAAM,KAAK,IAAI,IAAIA,cAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;EACrJ;AACD,CAAuB,MAAA,CAAA,eAAA,GAAG,eAAe,CAAC;AAC1C,CAAA,SAAS,eAAe,GAAG;AAC3B,KAAI,MAAM,aAAa,GAAG,eAAe,EAAE,CAAC;KACxC,OAAO,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,YAAY,CAAC;EAC7D;AACD,CAAuB,MAAA,CAAA,eAAA,GAAG,eAAe,CAAC;AAC1C,CAAA,SAAS,wBAAwB,GAAG;KAChC,OAAO,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;EACrD;AACD,CAAgC,MAAA,CAAA,wBAAA,GAAG,wBAAwB,CAAC;AAC5D,CAAA;;;;;;;;;;;ACfA,CAAA,MAAM,CAAC,cAAc,CAAC,GAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA,GAAA,CAAA,SAAiB,GAAG,GAAc,CAAA,MAAA,GAAG,iBAAqB,GAAG,KAAK,CAAC,CAAC;AACpE,CAAA,SAAS,aAAa,GAAG;AACzB,KAAI,QAAQ,OAAO,QAAQ,KAAK,WAAW;SACnC,OAAO,SAAS,KAAK,WAAW;AACxC,SAAQ,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE;EAC5C;AACD,CAAqB,GAAA,CAAA,aAAA,GAAG,aAAa,CAAC;AACtC,CAAA,SAAS,MAAM,GAAG;AAClB,KAAI,QAAQ,OAAO,OAAO,KAAK,WAAW;AAC1C,SAAQ,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;SACvC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;EACrD;AACD,CAAc,GAAA,CAAA,MAAA,GAAG,MAAM,CAAC;AACxB,CAAA,SAAS,SAAS,GAAG;KACjB,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;EACxC;AACD,CAAiB,GAAA,CAAA,SAAA,GAAG,SAAS,CAAC;AAC9B,CAAA;;;;;;;;;;EClBA,IAAI,eAAe,GAAG,CAACV,cAAI,IAAIA,cAAI,CAAC,eAAe,MAAM,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;MAC5F,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;MAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;GACxF,KAAK,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;MACxB,IAAI,EAAE,KAAK,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;MAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;GAChB,CAAC,CAAC,CAAC;AACJ,EAAA,IAAI,YAAY,GAAG,CAACA,cAAI,IAAIA,cAAI,CAAC,YAAY,KAAK,SAAS,CAAC,EAAE,OAAO,EAAE;MACnE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvG,GAAC,CAAC;EACF,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,EAAA,YAAY,CAACI,aAAA,EAAmB,EAAE,OAAO,CAAC,CAAC;AAC3C,EAAA,YAAY,CAACC,YAAA,EAAgB,EAAE,OAAO,CAAC,CAAC;AACxC,EAAA;;;;;;;;;;;ECbA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;EAC9D,OAAmB,CAAA,QAAA,GAAA,KAAK,CAAC,CAAC;EAC1B,MAAM,OAAO,GAAG,UAAgB,CAAC;EACjC,MAAM,aAAa,GAAGA,YAAA,EAAgC,CAAC;EACvD,OAAmB,CAAA,QAAA,GAAA,aAAa,CAAC,MAAM,CAAC;AACxC,EAAA,OAAO,CAAC,YAAY,CAACA,cAAgC,EAAE,OAAO,CAAC,CAAC;AAChE,EAAA;;;;;;;;;;;;ACNA,CAAA,MAAM,CAAC,cAAc,CAACM,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAA0BA,QAAA,CAAA,kBAAA,GAAGA,QAA0B,CAAA,kBAAA,GAAGA,QAA2B,CAAA,mBAAA,GAAGA,QAA4B,CAAA,oBAAA,GAAGA,QAAiB,CAAA,SAAA,GAAG,KAAK,CAAC,CAAC;CAClJ,MAAM,OAAO,GAAGP,YAAA,EAAkB,CAAC;CACnC,MAAM,WAAW,GAAGC,gBAAA,EAAsB,CAAC;AAC3C,CAAA,SAAS,SAAS,GAAG;AACrB,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,KAAI,OAAO,IAAI,GAAG,KAAK,CAAC;EACvB;AACD,CAAiBM,QAAA,CAAA,SAAA,GAAG,SAAS,CAAC;AAC9B,CAAA,SAAS,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;AAClD,KAAI,OAAO;AACX,SAAQ,EAAE,EAAE,EAAE,IAAI,SAAS,EAAE;SACrB,OAAO,EAAE,KAAK;AACtB,SAAQ,MAAM;AACd,SAAQ,MAAM;AACd,MAAK,CAAC;EACL;AACD,CAA4BA,QAAA,CAAA,oBAAA,GAAG,oBAAoB,CAAC;AACpD,CAAA,SAAS,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE;AACzC,KAAI,OAAO;AACX,SAAQ,EAAE;SACF,OAAO,EAAE,KAAK;AACtB,SAAQ,MAAM;AACd,MAAK,CAAC;EACL;AACD,CAA2BA,QAAA,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAClD,CAAA,SAAS,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE;AACvC,KAAI,OAAO;AACX,SAAQ,EAAE;SACF,OAAO,EAAE,KAAK;AACtB,SAAQ,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;AACxC,MAAK,CAAC;EACL;AACD,CAA0BA,QAAA,CAAA,kBAAA,GAAG,kBAAkB,CAAC;CAChD,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,KAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;SAC9B,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;MACvD;AACL,KAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,SAAQ,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;MAC5G;KACD,IAAI,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;SACzC,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;MAC9C;KACD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAChD,SAAQ,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;MAC7D;KACD,OAAO,KAAK,CAAC;EAChB;AACD,CAA0BA,QAAA,CAAA,kBAAA,GAAG,kBAAkB,CAAC;AAChD,CAAA;;;;;;;;;;;ACnDA,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAoC,OAAA,CAAA,4BAAA,GAAG,OAAmC,CAAA,2BAAA,GAAG,OAA4B,CAAA,oBAAA,GAAG,OAA2B,CAAA,mBAAA,GAAG,OAAoB,CAAA,YAAA,GAAG,KAAK,CAAC,CAAC;CACxK,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,KAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC7B,SAAQ,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;MACtC;AACL,KAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SACnB,OAAO,KAAK,CAAC;MAChB;KACD,OAAO,IAAI,CAAC;EACf;AACD,CAAoB,OAAA,CAAA,YAAA,GAAG,YAAY,CAAC;CACpC,SAAS,mBAAmB,CAAC,KAAK,EAAE;AACpC,KAAI,OAAO,KAAK,KAAK,GAAG,CAAC;EACxB;AACD,CAA2B,OAAA,CAAA,mBAAA,GAAG,mBAAmB,CAAC;CAClD,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACrC,KAAI,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;SAC5B,OAAO,IAAI,CAAC;MACf;KACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;SACtB,OAAO,KAAK,CAAC;MAChB;KACD,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;SAC/B,OAAO,KAAK,CAAC;MAChB;KACD,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;SAC5D,OAAO,KAAK,CAAC;MAChB;KACD,OAAO,IAAI,CAAC;EACf;AACD,CAA4B,OAAA,CAAA,oBAAA,GAAG,oBAAoB,CAAC;CACpD,SAAS,2BAA2B,CAAC,KAAK,EAAE;KACxC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;EACpG;AACD,CAAmC,OAAA,CAAA,2BAAA,GAAG,2BAA2B,CAAC;CAClE,SAAS,4BAA4B,CAAC,KAAK,EAAE;KACzC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;EACpG;AACD,CAAoC,OAAA,CAAA,4BAAA,GAAG,4BAA4B,CAAC;AACpE,CAAA;;;;;;;;;;;;;;;;;ACxCA,CAAA,MAAM,CAAC,cAAc,CAAC,IAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAe,IAAA,CAAA,OAAA,GAAG,KAAK,CAAC,CAAC;AACzB,CAAA,MAAM,OAAO,CAAC;EACb;AACD,CAAe,IAAA,CAAA,OAAA,GAAG,OAAO,CAAC;AAC1B,CAAA;;;;;;;;;;;ACLA,CAAA,MAAM,CAAC,cAAc,CAAC,QAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA,QAAA,CAAA,gBAAwB,GAAG,QAA4B,CAAA,oBAAA,GAAG,2BAA0B,GAAG,KAAK,CAAC,CAAC;CAC9F,MAAM,MAAM,GAAGP,WAAA,EAAiB,CAAC;AACjC,CAAA,MAAM,kBAAkB,SAAS,MAAM,CAAC,OAAO,CAAC;KAC5C,WAAW,CAAC,IAAI,EAAE;SACd,KAAK,EAAE,CAAC;MACX;EACJ;AACD,CAA0B,QAAA,CAAA,kBAAA,GAAG,kBAAkB,CAAC;AAChD,CAAA,MAAM,oBAAoB,SAAS,MAAM,CAAC,OAAO,CAAC;AAClD,KAAI,WAAW,GAAG;SACV,KAAK,EAAE,CAAC;MACX;EACJ;AACD,CAA4B,QAAA,CAAA,oBAAA,GAAG,oBAAoB,CAAC;CACpD,MAAM,gBAAgB,SAAS,oBAAoB,CAAC;KAChD,WAAW,CAAC,UAAU,EAAE;SACpB,KAAK,EAAE,CAAC;MACX;EACJ;AACD,CAAwB,QAAA,CAAA,gBAAA,GAAG,gBAAgB,CAAC;AAC5C,CAAA;;;;;;;;;ACrBA,CAAA,MAAM,CAAC,cAAc,CAAC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA,UAAA,CAAA,mBAA2B,GAAG,UAAgC,CAAA,wBAAA,GAAG,2BAAwB,GAAG,KAAK,CAAC,CAAC;CACnG,MAAM,MAAM,GAAGA,WAAA,EAAiB,CAAC;CACjC,MAAM,UAAU,GAAGC,eAAA,EAAqB,CAAC;AACzC,CAAA,MAAM,gBAAgB,CAAC;KACnB,WAAW,CAAC,OAAO,EAAE;AACzB,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;MAC1B;EACJ;AACD,CAAwB,UAAA,CAAA,gBAAA,GAAG,gBAAgB,CAAC;AAC5C,CAAA,MAAM,wBAAwB,SAAS,MAAM,CAAC,OAAO,CAAC;KAClD,WAAW,CAAC,MAAM,EAAE;SAChB,KAAK,EAAE,CAAC;AAChB,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;MACxB;EACJ;AACD,CAAgC,UAAA,CAAA,wBAAA,GAAG,wBAAwB,CAAC;AAC5D,CAAA,MAAM,mBAAmB,SAAS,UAAU,CAAC,gBAAgB,CAAC;AAC9D,KAAI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE;AACpC,SAAQ,KAAK,CAAC,UAAU,CAAC,CAAC;MACrB;EACJ;AACD,CAA2B,UAAA,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAClD,CAAA;;;;;;;;;;;ACvBA,CAAA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA;;;;;;;;;;;ACDA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAA6B,KAAA,CAAA,qBAAA,GAAG,KAAK,CAAC,CAAC;CACvC,MAAM,UAAU,GAAGD,eAAA,EAAqB,CAAC;AACzC,CAAA,MAAM,qBAAqB,SAAS,UAAU,CAAC,oBAAoB,CAAC;KAChE,WAAW,CAAC,MAAM,EAAE;SAChB,KAAK,EAAE,CAAC;AAChB,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;MACxB;EACJ;AACD,CAA6B,KAAA,CAAA,qBAAA,GAAG,qBAAqB,CAAC;AACtD,CAAA;;;;;;;;;;;ACVA,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAsB,MAAA,CAAA,cAAA,GAAG,KAAK,CAAC,CAAC;AAChC,CAAA,MAAM,cAAc,CAAC;KACjB,WAAW,CAAC,MAAM,EAAE;AACxB,SAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;MACxB;EACJ;AACD,CAAsB,MAAA,CAAA,cAAA,GAAG,cAAc,CAAC;AACxC,CAAA;;;;;;;;;;;ACRA,CAAA,MAAM,CAAC,cAAc,CAAC,MAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA;;;;;;;;;;;ACDA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAyB,SAAA,CAAA,iBAAA,GAAG,KAAK,CAAC,CAAC;AACnC,CAAA,MAAM,iBAAiB,CAAC;KACpB,WAAW,CAAC,OAAO,EAAE;AACzB,SAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;MAC1B;EACJ;AACD,CAAyB,SAAA,CAAA,iBAAA,GAAG,iBAAiB,CAAC;AAC9C,CAAA;;;;;;;;;;ECRA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;EAC9D,MAAM,OAAO,GAAG,UAAgB,CAAC;AACjC,EAAA,OAAO,CAAC,YAAY,CAACC,mBAAuB,EAAE,OAAO,CAAC,CAAC;AACvD,EAAA,OAAO,CAAC,YAAY,CAACO,gBAAoB,EAAE,OAAO,CAAC,CAAC;AACpD,EAAA,OAAO,CAAC,YAAY,CAACC,aAAiB,EAAE,OAAO,CAAC,CAAC;AACjD,EAAA,OAAO,CAAC,YAAY,CAACC,cAAkB,EAAE,OAAO,CAAC,CAAC;AAClD,EAAA,OAAO,CAAC,YAAY,CAACC,iBAAqB,EAAE,OAAO,CAAC,CAAC;AACrD,EAAA,OAAO,CAAC,YAAY,CAACC,eAAmB,EAAE,OAAO,CAAC,CAAC;AACnD,EAAA,OAAO,CAAC,YAAY,CAACC,eAAmB,EAAE,OAAO,CAAC,CAAC;AACnD,EAAA,OAAO,CAAC,YAAY,CAACC,kBAAsB,EAAE,OAAO,CAAC,CAAC;AACtD,EAAA;;;;;;;;;;;ECVA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;EAC9D,MAAM,OAAO,GAAG,UAAgB,CAAC;AACjC,EAAA,OAAO,CAAC,YAAY,CAACb,cAAgC,EAAE,OAAO,CAAC,CAAC;AAChE,EAAA;;;;;;;;;;;;ACHA,CAAA,MAAM,CAAC,cAAc,CAAC,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA,UAAA,CAAA,0BAAkC,GAAG,UAAA,CAAA,cAAsB,GAAG,UAAA,CAAA,eAAuB,GAAG,UAAA,CAAA,iBAAyB,GAAG,UAAA,CAAA,gBAAwB,GAAG,UAAA,CAAA,gBAAwB,GAAG,KAAK,CAAC,CAAC;CACjL,SAAS,gBAAgB,CAAC,OAAO,EAAE;AACnC,KAAI,OAAO,IAAI,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;EAC/E;AACD,CAAwB,UAAA,CAAA,gBAAA,GAAG,gBAAgB,CAAC;CAC5C,SAAS,gBAAgB,CAAC,OAAO,EAAE;KAC/B,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC;EAC3D;AACD,CAAwB,UAAA,CAAA,gBAAA,GAAG,gBAAgB,CAAC;CAC5C,SAAS,iBAAiB,CAAC,OAAO,EAAE;AACpC,KAAI,OAAO,gBAAgB,CAAC,OAAO,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;EAC7F;AACD,CAAyB,UAAA,CAAA,iBAAA,GAAG,iBAAiB,CAAC;CAC9C,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,KAAI,OAAO,QAAQ,IAAI,OAAO,CAAC;EAC9B;AACD,CAAuB,UAAA,CAAA,eAAA,GAAG,eAAe,CAAC;CAC1C,SAAS,cAAc,CAAC,OAAO,EAAE;AACjC,KAAI,OAAO,OAAO,IAAI,OAAO,CAAC;EAC7B;AACD,CAAsB,UAAA,CAAA,cAAA,GAAG,cAAc,CAAC;CACxC,SAAS,0BAA0B,CAAC,UAAU,EAAE;KAC5C,OAAO,OAAO,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC;EAC9D;AACD,CAAkC,UAAA,CAAA,0BAAA,GAAG,0BAA0B,CAAC;AAChE,CAAA;;;;;CC1BA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;CAC9D,MAAM,OAAO,GAAG,UAAgB,CAAC;AACjC,CAAA,OAAO,CAAC,YAAY,CAACA,kBAAsB,EAAE,OAAO,CAAC,CAAC;AACtD,CAAA,OAAO,CAAC,YAAY,CAACO,cAAkB,EAAE,OAAO,CAAC,CAAC;AAClD,CAAA,OAAO,CAAC,YAAY,CAACC,YAAgB,EAAE,OAAO,CAAC,CAAC;AAChD,CAAA,OAAO,CAAC,YAAY,CAACC,eAAmB,EAAE,OAAO,CAAC,CAAC;AACnD,CAAA,OAAO,CAAC,YAAY,CAACC,gBAAoB,EAAE,OAAO,CAAC,CAAC;AACpD,CAAA,OAAO,CAAC,YAAY,CAACC,cAAkB,EAAE,OAAO,CAAC,CAAC;AAClD,CAAA,OAAO,CAAC,YAAY,CAACC,mBAAuB,EAAE,OAAO,CAAC,CAAC;AACvD,CAAA;;;AC8BA,MAAM,mBAAoB,SAAQ,UAAU,CAAA;AAC1C,IAAA,OAAO,CAAgB;AACvB,IAAA,EAAE,CAAc;AAChB,IAAA,QAAQ,CAAiB;IAEzB,WAAY,CAAA,eAAgC,EAAE,UAAsB,EAAA;QAClE,KAAK,CAAC,eAAe,CAAC,CAAC;AAEvB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC;YAC1C,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,GAAG,UAAU,CAAC,oBAAoB;AACnC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/C;IAED,aAAa,IAAI,GAAA;QACf,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC;AAElD,QAAA,MAAM,eAAe,GAAoB;YACvC,OAAO;AACP,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,SAAS;SAChB,CAAC;QAEF,MAAM,aAAa,GAAG,CAAC,MAAM,OAAO,uBAAuB,CAAC,EAAE,OAAO,CAAC;QACtE,MAAM,WAAW,GAAG,CAAC,MAAM,uDAA6C;AACrE,aAAA,OAAO,CAAC;AAEX,QAAA,MAAM,UAAU,GAAe;YAC7B,EAAE,EAAE,WAAW,CAAC,cAAc;AAC9B,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,MAAM,EAAE,kCAAkC;AAC1C,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,SAAS,EAAE,SAAS;SACrB,CAAC;AAEF,QAAA,OAAO,IAAI,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;KAC7D;AAED,IAAA,MAAM,OAAO,GAAA;QACX,IAAI,OAAO,GAAG,MAAM,CAAC;QAErB,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,OAAO,GAAG,MAAM,CAAC;AAClB,SAAA;aAAM,IAAI,YAAY,KAAK,SAAS,EAAE;YACrC,OAAO,GAAG,MAAM,CAAC;AAClB,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/C,SAAA;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAI;AAC5C,gBAAA,IAAI,KAAK,EAAE;oBACT,MAAM,CAAC,KAAK,CAAC,CAAC;AACf,iBAAA;gBAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEvC,gBAAA,OAAO,CAAC;oBACN,GAAG,IAAI,CAAC,QAAQ;AAChB,oBAAA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AAC1D,wBAAA,IAAI,EAAE,CAAA,eAAA,EAAkB,KAAK,GAAG,CAAC,CAAE,CAAA;wBACnC,OAAO;AACP,wBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,qBAAA,CAAC,CAAC;AACJ,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAI;AACnD,gBAAA,IAAI,KAAK,EAAE;oBACT,MAAM,CAAC,KAAK,CAAC,CAAC;AACf,iBAAA;gBAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEvC,gBAAA,OAAO,CAAC;oBACN,GAAG,IAAI,CAAC,QAAQ;AAChB,oBAAA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AAC1D,wBAAA,IAAI,EAAE,CAAA,eAAA,EAAkB,KAAK,GAAG,CAAC,CAAE,CAAA;wBACnC,OAAO;AACP,wBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,qBAAA,CAAC,CAAC;AACJ,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,MAAM,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,mBAAmB,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC;AAE1D,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEvC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;AACb,SAAA;QAED,OAAO;YACL,GAAG,IAAI,CAAC,QAAQ;AAChB,YAAA,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,KAAa,MAAM;AAC1D,gBAAA,IAAI,EAAE,CAAA,eAAA,EAAkB,KAAK,GAAG,CAAC,CAAE,CAAA;gBACnC,OAAO;AACP,gBAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7B,aAAA,CAAC,CAAC;SACJ,CAAC;KACH;IAED,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;KAC/B;AAED,IAAA,MAAM,UAAU,GAAA;QACd,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAClC,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AACzC,SAAA;KACF;AAED,IAAA,uBAAuB,CACrB,YAA+B,EAAA;QAE/B,MAAM,qBAAqB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACrD,YAAA,MAAM,YAAY,GAA6B;AAC7C,gBAAA,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;aACZ,CAAC;AAEF,YAAA,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CACrD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAC9C,CAAC;gBAEF,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAC5B,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,GAAG,CAAC,CACvD,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAErB,gBAAA,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;AAC3B,aAAA;AAED,YAAA,OAAO,YAAY,CAAC;AACtB,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AAED,IAAA,MAAM,gBAAgB,CAAC,YAAoB,EAAE,YAA0B,EAAA;;QAErE,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACrC,SAAC,CAAyD,CAAC;;;AAI3D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAI;AACd,YAAA,IACE,EAAE,KAAK,IAAI,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,YAAY,EACvD;gBACA,GAAG,CAAC,IAAI,CAAC;AACP,oBAAA,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACrD,iBAAA,CAAC,CAAC;AACJ,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,IAAI,CAAC;AACP,oBAAA,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACpD,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACZ,EACD,EAAE,CACH,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,OAAO,GAAGE,0BAAoB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;;;QAIpE,IAAI,CAAC,gBAAgB,EAAE,CAAC;;QAGxB,MAAM,MAAM,GAAyB,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACvE,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;;AAGvB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,UAAwB,EAAE,GAAG,EAAE,CAAC,KAAI;AACpE,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7D,aAAA;YAED,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,aAAA;AAED,YAAA,OAAO,UAAU,CAAC;SACnB,EAAE,EAAE,CAAC,CAAC;AAEP,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,MAAM,uBAAuB,CAAC,YAA+B,EAAA;QAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;AACtE,QAAA,MAAM,aAAa,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAGA,0BAAoB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAEpE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,MAAM,GAAyB,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACvE,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,QAAA,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CACzC,CAAC,UAAwB,EAAE,GAAG,EAAE,YAAY,KAAI;AAC9C,YAAA,IAAI,GAAG,EAAE;AACP,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7D,aAAA;YAED,IAAI,GAAG,KAAK,IAAI,EAAE;gBAChB,UAAU,CAAC,IAAI,CACb,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CACrE,CAAC;AACH,aAAA;AAED,YAAA,OAAO,UAAU,CAAC;SACnB,EACD,EAAE,CACH,CAAC;AAEF,QAAA,OAAO,qBAAqB,CAAC;KAC9B;AACF,CAAA;AAED,0BAAe,mBAAmB,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI;AACpD,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO;AACR,KAAA;AACH,CAAC,CAAC;;ACtRW,MAAA,OAAO,GAAG;AACrB,IAAA,CAAC,WAAW,CAAC,UAAU,GAAG,SAAS;AACnC,IAAA,CAAC,WAAW,CAAC,WAAW,GAAG,gBAAgB;AAC3C,IAAA,CAAC,WAAW,CAAC,aAAa,GAAG,kBAAkB;AAC/C,IAAA,CAAC,WAAW,CAAC,WAAW,GAAG,gBAAgB;AAC3C,IAAA,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW;AAChC,IAAA,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY;AAClC,IAAA,CAAC,WAAW,CAAC,cAAc,GAAG,mBAAmB;;;MCbtC,eAAe,GAAG,OAC7B,EAA2B,KACF;IACzB,IAAI,CAAC,EAAE,EAAE;AACP,QAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACnD,KAAA;AAED,IAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;IAEjC,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,EAAE,CAAA,CAAE,CAAC,CAAC;AAClE,KAAA;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,EAAE;AAEW,MAAA,WAAW,GAAG,CACzB,KAAa,EACb,OAAiB,EACjB,OAA8C,KAC5C;AACF,IAAA,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAChE,IAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,EAAE;AAEF;AACa,MAAA,wBAAwB,GAAG,CAAC,MAAc,KAAI;AACzD,IAAA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnC,IAAA,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1D;;ACxBc,SAAU,SAAS,GAAA;AAC/B,IAAA,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9D,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC;AAErE,IAAA,MAAM,QAAQ,GAAG,OAAO,CACtB,MACE,WAAW,CAAC,MAAM,CAChB,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,KAAK,aAAa,EAAE,UAAU,CAC9D,EACH,CAAC,WAAW,EAAE,aAAa,CAAC,CAC7B,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAG,OAAO,YAA+B,KAAI;QACjE,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAEtE,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;AAC5C,YAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACrC,SAAA;AAED,QAAA,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAC5D,aAAa,CAAC,OAAO,EACrB,YAAY,CACb,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;AAC5B,KAAC,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAG,OAAO,YAA0B,KAAI;QAC5D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAErE,QAAA,OAAO,MAAM,CAAC;AAChB,KAAC,CAAC;AAEF,IAAA,MAAM,MAAM,GAA8B,CACxC,QAA+B,EAC/B,aAAuB,KACrB;QACF,MAAM,QAAQ,GAAsB,QAAQ,CAAC,GAAG,CAC9C,OAAO,CAAC,yBAAyB,CAClC,CAAC;AACF,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CACrD,CAAC,IAAkB,KAAI;AACrB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAClE,SAAC,CACF,CAAC;AACJ,KAAC,CAAC;AAEF,IAAA,MAAM,cAAc,GAAG,YAAW;AAChC,QAAA,IAAI,CAAC,aAAa;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG,MAAM,YAAY,EAAE,cAAc,CACpD,aAAa,CAAC,OAAO,CACtB,CAAC;AAEF,QAAA,OAAO,WAAW,CAAC;AACrB,KAAC,CAAC;IAEF,MAAM,UAAU,GAAG,MAAK;QACtB,OAAO,aAAa,EAAE,OAAO,CAAC;AAChC,KAAC,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,YAAW;AAC3B,QAAA,IAAI,CAAC,aAAa;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE5D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAErE,OAAO,MAAM,YAAY,EAAE,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9D,KAAC,CAAC;AAEF,IAAA,MAAM,yBAAyB,GAAG,OAAO,YAA+B,KAAI;QAC1E,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAEtE,QAAA,OAAO,YAAY,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;AAC/D,KAAC,CAAC;AAEF,IAAA,MAAM,uBAAuB,GAAG,OAAO,YAA+B,KAAI;QACxE,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAEtE,QAAA,OAAO,MAAM,YAAY,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;AACnE,KAAC,CAAC;AAEF,IAAA,MAAM,mBAAmB,GAAG,OAAO,YAA0B,KAAI;QAC/D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAEtE,QAAA,OAAO,MAAM,YAAY,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAC/D,KAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,aAAa;QACb,MAAM;QACN,gBAAgB;QAChB,gBAAgB;QAChB,UAAU;QACV,yBAAyB;QACzB,cAAc;QACd,SAAS;QACT,uBAAuB;QACvB,mBAAmB;KACpB,CAAC;AACJ;;ACjHA,SAAS,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE;AAC7B,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AAC7B,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC9F,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACjD,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7G,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd;;ACNwB,SAAA,gBAAgB,CAAC,OAAiB,EAAA;IACxD,MAAM,EACJ,QAAQ,EACR,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,cAAc,GACf,GAAG,cAAc,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAEjD,IAAA,MAAMC,WAAS,GAAG,OAAO,CACvB,MACE,MAAM,CAAC,MAAM,CAACC,SAAe,CAAC;SAC3B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KACb,OAAO,EAAE,SAAS;UACd,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChC,UAAE,EAAE,KAAK,WAAW,CAAC,UAAU,CAClC;AACA,SAAA,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,KAAI;QAC3C,OAAO;YACL,EAAE;YACF,IAAI;YACJ,IAAI;AACJ,YAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC;AACjE,YAAA,aAAa,EACX,aAAa,EAAE,UAAU,KAAK,EAAE,GAAG,aAAa,GAAG,IAAI;AACzD,YAAA,QAAQ,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE;AAC1C,YAAA,WAAW,EAAE,QAAQ,CAAC,IAAI,CACxB,CAAC,QAAQ,KAAK,QAAQ,CAAC,UAAU,KAAK,EAAE,CACzC;YACD,eAAe;AACf,YAAA,OAAO,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC;AAC1B,YAAA,UAAU,EAAE,MAAM,UAAU,CAAC,EAAE,CAAC;AAChC,YAAA,SAAS,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC;AAC9B,YAAA,SAAS,EAAE,MAAM,SAAS,CAAC,EAAE,CAAC;YAC9B,aAAa,EAAE,CAAC,OAAe,KAC7B,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC;SACnC,CAAC;KACH,CAAC,EACN,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC1B,CAAC;AAEF,IAAA,MAAM,qBAAqB,GAAG,CAAC,EAAe,KAAI;AAChD,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;AACjE,KAAC,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAG,YAAW;AACpC,QAAA,MAAM,CAAC,MAAM,CAACD,WAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAI;YACjE,IAAI,QAAQ,IAAI,WAAW,EAAE;gBAC3B,SAAS,CAAC,EAAE,CAAC,CAAC;AACf,aAAA;AACH,SAAC,CAAC,CAAC;AACL,KAAC,CAAC;AAEF,IAAA,MAAM,oBAAoB,GAAG,OAAO,EAAe,KAAI;AACrD,QAAA,IAAI,CAACC,SAAe,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE;YACxC,OAAO;AACR,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAACD,WAAS,CAAC,CAAC,MAAM,CAChD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,CACzE,CAAC;AAEF,QAAA,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE;AAChC,YAAA,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC9B,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,MAAM,OAAO,GAAG,OAAO,EAAe,KAAI;QACxC,IAAI;AACF,YAAA,MAAM,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAE/B,YAAA,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;AAC/C,YAAA,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9C,gBAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;AAC5C,aAAA;YAED,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,YAAA,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClC,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,OAAO,EAAe,KAAI;QAC1C,IAAI;AACF,YAAA,MAAM,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAA,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC3C,YAAA,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;AACH,KAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,OAC1B,UAAuB,EACvB,OAAe,KACb;QACF,IAAI;YACF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAC3B,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CACrE,CAAC;YAEF,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAA,OAAA,CAAS,CAAC,CAAC;AAC/D,aAAA;AAED,YAAA,MAAM,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC/C,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC3B,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,MAAM,SAAS,GAAG,OAAO,EAAe,KAAI;QAC1C,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;AAC/C,YAAA,MAAM,UAAU,GAAG,MAAM,YAAY,EAAE,SAAS,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AAEvE,YAAA,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC5C,gBAAA,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClC,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,UAAU,CAAC,EAAE,CAAC,CAAC;AAChB,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,MAAM,UAAU,GAAG,OAAO,EAAe,KAAI;QAC3C,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;YAE/C,YAAY,EAAE,UAAU,EAAE,CAAC;AAC5B,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,SAAA;AAAS,gBAAA;YACR,kBAAkB,CAAC,EAAE,CAAC,CAAC;YACvB,cAAc,CAAC,EAAE,CAAC,CAAC;AACpB,SAAA;AACH,KAAC,CAAC;IAEF,OAAO;mBACLA,WAAS;QACT,aAAa;QACb,QAAQ;QACR,OAAO;QACP,SAAS;QACT,UAAU;QACV,mBAAmB;QACnB,SAAS;QACT,kBAAkB;KACnB,CAAC;AACJ;;;;;;;;;;;;;;;ACpKA,CAAA,MAAM,CAAC,cAAc,CAACE,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAuBA,KAAA,CAAA,eAAA,GAAGA,KAA8B,CAAA,sBAAA,GAAGA,KAAiB,CAAA,SAAA,GAAGA,sBAAwB,GAAGA,KAAA,CAAA,WAAmB,GAAGA,KAAA,CAAA,kBAA0B,GAAGA,KAAA,CAAA,YAAoB,GAAGA,KAA2B,CAAA,mBAAA,GAAGA,KAAmB,CAAA,WAAA,GAAGA,KAA0B,CAAA,kBAAA,GAAGA,KAA4B,CAAA,oBAAA,GAAGA,KAAqB,CAAA,aAAA,GAAG,KAAK,CAAC,CAAC;CACnU,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B,KAAI,IAAI,GAAG,GAAG,SAAS,CAAC;AACxB,KAAI,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;AAC9E,SAAQ,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;MACtB;KACD,OAAO,GAAG,CAAC;EACd;AACD,CAAqBA,KAAA,CAAA,aAAA,GAAG,aAAa,CAAC;CACtC,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,KAAI,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;KAChC,IAAI,CAAC,GAAG,EAAE;SACN,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;MACvD;KACD,OAAO,GAAG,CAAC;EACd;AACD,CAA4BA,KAAA,CAAA,oBAAA,GAAG,oBAAoB,CAAC;AACpD,CAAA,SAAS,kBAAkB,GAAG;AAC9B,KAAI,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;EAC3C;AACD,CAA0BA,KAAA,CAAA,kBAAA,GAAG,kBAAkB,CAAC;AAChD,CAAA,SAAS,WAAW,GAAG;AACvB,KAAI,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;EACpC;AACD,CAAmBA,KAAA,CAAA,WAAA,GAAG,WAAW,CAAC;AAClC,CAAA,SAAS,mBAAmB,GAAG;AAC/B,KAAI,OAAO,oBAAoB,CAAC,WAAW,CAAC,CAAC;EAC5C;AACD,CAA2BA,KAAA,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAClD,CAAA,SAAS,YAAY,GAAG;AACxB,KAAI,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC;EACrC;AACD,CAAoBA,KAAA,CAAA,YAAA,GAAG,YAAY,CAAC;AACpC,CAAA,SAAS,kBAAkB,GAAG;AAC9B,KAAI,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;EAC3C;AACD,CAA0BA,KAAA,CAAA,kBAAA,GAAG,kBAAkB,CAAC;AAChD,CAAA,SAAS,WAAW,GAAG;AACvB,KAAI,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;EACpC;AACD,CAAmBA,KAAA,CAAA,WAAA,GAAG,WAAW,CAAC;AAClC,CAAA,SAAS,gBAAgB,GAAG;AAC5B,KAAI,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;EACzC;AACD,CAAwBA,KAAA,CAAA,gBAAA,GAAG,gBAAgB,CAAC;AAC5C,CAAA,SAAS,SAAS,GAAG;AACrB,KAAI,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;EAClC;AACD,CAAiBA,KAAA,CAAA,SAAA,GAAG,SAAS,CAAC;AAC9B,CAAA,SAAS,sBAAsB,GAAG;AAClC,KAAI,OAAO,oBAAoB,CAAC,cAAc,CAAC,CAAC;EAC/C;AACD,CAA8BA,KAAA,CAAA,sBAAA,GAAG,sBAAsB,CAAC;AACxD,CAAA,SAAS,eAAe,GAAG;AAC3B,KAAI,OAAO,aAAa,CAAC,cAAc,CAAC,CAAC;EACxC;AACD,CAAuBA,KAAA,CAAA,eAAA,GAAG,eAAe,CAAC;AAC1C,CAAA;;;;;;;;;AC1DA,CAAA,MAAM,CAAC,cAAc,CAACA,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAyBA,KAAA,CAAA,iBAAA,GAAG,KAAK,CAAC,CAAC;CACnC,MAAM,gBAAgB,GAAGlB,YAAA,EAAwC,CAAC;AAClE,CAAA,SAAS,iBAAiB,GAAG;KACzB,IAAI,GAAG,CAAC;KACR,IAAI,GAAG,CAAC;AACZ,KAAI,IAAI;AACR,SAAQ,GAAG,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;AACpD,SAAQ,GAAG,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;MAC/C;KACD,OAAO,CAAC,EAAE;SACN,OAAO,IAAI,CAAC;MACf;KACD,SAAS,QAAQ,GAAG;SAChB,MAAM,KAAK,GAAG,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACvD,SAAQ,MAAM,KAAK,GAAG,EAAE,CAAC;AACzB,SAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,aAAY,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;aACtB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACrC,IAAI,GAAG,EAAE;AACrB,iBAAgB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;qBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;qBACvC,IAAI,IAAI,EAAE;AAC9B,yBAAwB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;6BAC3C,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;6BAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACtD,6BAA4B,IAAI,YAAY,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;6BAClD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;iCACzB,YAAY,IAAI,IAAI,CAAC;8BACxB;kCACI;iCACD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrE,iCAAgC,IAAI,CAAC,GAAG,EAAE,CAAC;iCACX,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjE,iCAAgC,YAAY,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;8BAC1C;AAC7B,6BAA4B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;0BAC5B;8BACI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;6BAC/B,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;AACpE,6BAA4B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;0BAC3B;8BACI;AAC7B,6BAA4B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;0BACpB;sBACJ;kBACJ;cACJ;UACJ;SACD,OAAO,KAAK,CAAC;MAChB;AACL,KAAI,SAAS,sBAAsB,CAAC,GAAG,IAAI,EAAE;SACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC1D,SAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,aAAY,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;aACxB,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC;kBAC9C,GAAG,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC1D,kBAAiB,MAAM,CAAC,CAAC,IAAI,KAAK;iBAClB,IAAI,IAAI,EAAE;AAC1B,qBAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;kBAC9B;iBACD,OAAO,KAAK,CAAC;AAC7B,cAAa,CAAC,CAAC;AACf,aAAY,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,EAAE;iBACjC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;iBAC5C,IAAI,OAAO,EAAE;qBACT,OAAO,OAAO,CAAC;kBAClB;cACJ;UACJ;SACD,OAAO,EAAE,CAAC;MACb;KACD,SAAS,OAAO,GAAG;AACvB,SAAQ,IAAI,IAAI,GAAG,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;SACvF,IAAI,CAAC,IAAI,EAAE;AACnB,aAAY,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;UACpB;SACD,OAAO,IAAI,CAAC;MACf;KACD,SAAS,cAAc,GAAG;AAC9B,SAAQ,MAAM,WAAW,GAAG,sBAAsB,CAAC,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAAC;SAC/G,OAAO,WAAW,CAAC;MACtB;AACL,KAAI,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AAC3B,KAAI,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;AACzC,KAAI,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AAC3B,KAAI,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;KACzB,MAAM,IAAI,GAAG;AACjB,SAAQ,WAAW;AACnB,SAAQ,GAAG;AACX,SAAQ,KAAK;AACb,SAAQ,IAAI;AACZ,MAAK,CAAC;KACF,OAAO,IAAI,CAAC;EACf;AACD,CAAyBkB,KAAA,CAAA,iBAAA,GAAG,iBAAiB,CAAC;AAC9C,CAAA;;;;ACjGA,IAAI,cAAc,GAAG,CAACtB,SAAI,IAAIA,SAAI,CAAC,cAAc,KAAK,YAAY;AAClE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;AACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;AACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AACF,IAAI,WAAW,kBAAkB,YAAY;AAC7C,IAAI,SAAS,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAC5C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,EAAE,CAAC,CAAC;AAEL,IAAI,QAAQ,kBAAkB,YAAY;AAC1C,IAAI,SAAS,QAAQ,CAAC,OAAO,EAAE;AAC/B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AAC3B,QAAQ,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC,EAAE,CAAC,CAAC;AAEL,IAAI,mBAAmB,kBAAkB,YAAY;AACrD,IAAI,SAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,mBAAmB,CAAC;AAC/B,CAAC,EAAE,CAAC,CAAC;AAEL,IAAI,OAAO,kBAAkB,YAAY;AACzC,IAAI,SAAS,OAAO,GAAG;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAC1B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC,EAAE,CAAC,CAAC;AAEL,IAAI,eAAe,kBAAkB,YAAY;AACjD,IAAI,SAAS,eAAe,GAAG;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;AACnC,QAAQ,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;AACnC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,eAAe,CAAC;AAC3B,CAAC,EAAE,CAAC,CAAC;AAEL;AACA,IAAI,kBAAkB,GAAG,8HAA8H,CAAC;AACxJ,IAAI,kBAAkB,GAAG,+EAA+E,CAAC;AACzG,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAC/B,IAAI,cAAc,GAAG;AACrB,IAAI,CAAC,KAAK,EAAE,wBAAwB,CAAC;AACrC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC;AACjC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC;AACvC,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC;AAC/C,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC;AAC1C,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC;AAC7C,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC;AACrC,IAAI,CAAC,MAAM,EAAE,0BAA0B,CAAC;AACxC,IAAI,CAAC,QAAQ,EAAE,2BAA2B,CAAC;AAC3C,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC;AAC1C,IAAI;AACJ,QAAQ,kBAAkB;AAC1B,QAAQ,wDAAwD;AAChE,KAAK;AACL,IAAI,CAAC,QAAQ,EAAE,kDAAkD,CAAC;AAClE,IAAI,CAAC,WAAW,EAAE,+BAA+B,CAAC;AAClD,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC;AAC1C,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC;AAC9C,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAClC,IAAI,CAAC,YAAY,EAAE,iCAAiC,CAAC;AACrD,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC;AAC1C,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC;AACxC,IAAI,CAAC,IAAI,EAAE,2CAA2C,CAAC;AACvD,IAAI,CAAC,IAAI,EAAE,qCAAqC,CAAC;AACjD,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC1B,IAAI,CAAC,MAAM,EAAE,mCAAmC,CAAC;AACjD,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;AACtC,IAAI,CAAC,KAAK,EAAE,wCAAwC,CAAC;AACrD,IAAI,CAAC,QAAQ,EAAE,8BAA8B,CAAC;AAC9C,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC;AACpC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC;AAC1C,IAAI,CAAC,aAAa,EAAE,iCAAiC,CAAC;AACtD,IAAI,CAAC,aAAa,EAAE,mCAAmC,CAAC;AACxD,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;AACrC,CAAC,CAAC;AACF,IAAI,oBAAoB,GAAG;AAC3B,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC;AAC7B,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;AAC7B,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC;AACxC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;AAClC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC3B,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;AAC7B,IAAI,CAAC,YAAY,EAAE,mCAAmC,CAAC;AACvD,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC;AAC1C,IAAI,CAAC,cAAc,EAAE,iCAAiC,CAAC;AACvD,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC;AACnD,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;AAC/C,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC;AACzC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;AACrC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;AACrC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC;AACvC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC;AACvC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;AAChC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;AAC3B,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;AACvB,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;AACzB,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AAC9B,IAAI,CAAC,QAAQ,EAAE,2BAA2B,CAAC;AAC3C,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;AAClB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACpB,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AACrB,CAAC,CAAC;AACK,SAAS,MAAM,CAAC,SAAS,EAAE;AAClC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE;AACrB,QAAQ,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AACzC,KAAK;AACL,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW;AACvC,QAAQ,OAAO,SAAS,KAAK,WAAW;AACxC,QAAQ,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE;AAC7C,QAAQ,OAAO,IAAI,eAAe,EAAE,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;AAC1C,QAAQ,OAAO,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,cAAc,EAAE,CAAC;AAC5B,CAAC;AACD,SAAS,cAAc,CAAC,EAAE,EAAE;AAC5B;AACA;AACA;AACA;AACA,IAAI,QAAQ,EAAE,KAAK,EAAE;AACrB,QAAQ,cAAc,CAAC,MAAM,CAAC,UAAU,OAAO,EAAE,EAAE,EAAE;AACrD,YAAY,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,OAAO,OAAO,CAAC;AAC/B,aAAa;AACb,YAAY,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,YAAY,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,SAAS,EAAE,KAAK,CAAC,EAAE;AACnB,CAAC;AACM,SAAS,WAAW,CAAC,EAAE,EAAE;AAChC,IAAI,IAAI,IAAI,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;AAClC,IAAI,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AACM,SAAS,cAAc,CAAC,EAAE,EAAE;AACnC,IAAI,IAAI,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI,IAAI,IAAI,KAAK,WAAW,EAAE;AAC9B,QAAQ,OAAO,IAAI,OAAO,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtE,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,sBAAsB,EAAE;AAC1D,YAAY,YAAY,GAAG,cAAc,CAAC,YAAY,EAAE,kBAAkB,CAAC,sBAAsB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1H,SAAS;AACT,KAAK;AACL,SAAS;AACT,QAAQ,YAAY,GAAG,EAAE,CAAC;AAC1B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,IAAI,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrD,IAAI,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;AAC7C,QAAQ,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AACM,SAAS,QAAQ,CAAC,EAAE,EAAE;AAC7B,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;AAC5E,QAAQ,IAAI,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACM,SAAS,cAAc,GAAG;AACjC,IAAI,IAAI,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;AACnE,IAAI,OAAO,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClE,CAAC;AACD,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;AACvC,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB;;;;;;;;;;;;;;;;;;;;;;;;EC5MA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;EAC9D,OAAwB,CAAA,aAAA,GAAA,OAAA,CAAA,eAAA,GAA0B,iCAAiC,OAAoB,CAAA,SAAA,GAAA,OAAA,CAAA,gBAAA,GAA2B,sBAAsB,OAA6B,CAAA,kBAAA,GAAA,OAAA,CAAA,YAAA,GAAuB,8BAA8B,OAAsB,CAAA,WAAA,GAAA,OAAA,CAAA,kBAAA,GAA6B,+BAA+B,OAAwB,CAAA,aAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,iBAAiB,OAAmB,CAAA,QAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,oBAAoB,OAAmB,CAAA,QAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,KAAK,CAAC,CAAC;EAC9d,MAAM,OAAO,GAAG,UAAgB,CAAC;EACjC,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,CAACK,UAAA,EAAyC,CAAC,CAAC;EACvF,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAACO,YAAA,EAAwC,CAAC,CAAC;EACrF,MAAM,gBAAgB,GAAG,UAAyB,CAAC;EACnD,SAAS,SAAS,CAAC,SAAS,EAAE;MAC1B,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;GAClD;AACD,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS,CAAC;AAC9B,EAAA,SAAS,QAAQ,GAAG;AACpB,MAAI,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAC5B,MAAI,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;GAC7C;AACD,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ,CAAC;AAC5B,EAAA,SAAS,SAAS,GAAG;AACrB,MAAI,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;AAC1B,MAAI,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;GAC5D;AACD,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS,CAAC;AAC9B,EAAA,SAAS,KAAK,GAAG;AACjB,MAAI,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;AAC1B,MAAI,OAAO,EAAE;YACH,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC1C,eAAa,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC;AAC9E,YAAU,KAAK,CAAC;GACf;AACD,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK,CAAC;AACtB,EAAA,SAAS,QAAQ,GAAG;AACpB,MAAI,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;MACtB,OAAO,EAAE,GAAG,SAAS,EAAE,IAAI,KAAK,EAAE,GAAG,KAAK,CAAC;GAC9C;AACD,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ,CAAC;AAC5B,EAAA,SAAS,MAAM,GAAG;AAClB,MAAI,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAC5B,MAAI,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,GAAG,KAAK,CAAC;MAC3E,OAAO,MAAM,CAAC;GACjB;AACD,EAAA,OAAA,CAAA,MAAA,GAAiB,MAAM,CAAC;AACxB,EAAA,SAAS,SAAS,GAAG;AACrB,MAAI,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC;MAC1D,OAAO,MAAM,CAAC;GACjB;AACD,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS,CAAC;EAC9B,OAAwB,CAAA,aAAA,GAAA,aAAa,CAAC,aAAa,CAAC;EACpD,OAA+B,CAAA,oBAAA,GAAA,aAAa,CAAC,oBAAoB,CAAC;EAClE,OAA6B,CAAA,kBAAA,GAAA,aAAa,CAAC,kBAAkB,CAAC;EAC9D,OAAsB,CAAA,WAAA,GAAA,aAAa,CAAC,WAAW,CAAC;EAChD,OAA8B,CAAA,mBAAA,GAAA,aAAa,CAAC,mBAAmB,CAAC;EAChE,OAAuB,CAAA,YAAA,GAAA,aAAa,CAAC,YAAY,CAAC;EAClD,OAA6B,CAAA,kBAAA,GAAA,aAAa,CAAC,kBAAkB,CAAC;EAC9D,OAAsB,CAAA,WAAA,GAAA,aAAa,CAAC,WAAW,CAAC;EAChD,OAA2B,CAAA,gBAAA,GAAA,aAAa,CAAC,gBAAgB,CAAC;EAC1D,OAAoB,CAAA,SAAA,GAAA,aAAa,CAAC,SAAS,CAAC;EAC5C,OAAiC,CAAA,sBAAA,GAAA,aAAa,CAAC,sBAAsB,CAAC;EACtE,OAA0B,CAAA,eAAA,GAAA,aAAa,CAAC,eAAe,CAAC;AACxD,EAAA,SAAS,aAAa,GAAG;AACzB,MAAI,OAAO,cAAc,CAAC,iBAAiB,EAAE,CAAC;GAC7C;AACD,EAAA,OAAA,CAAA,aAAA,GAAwB,aAAa,CAAC;AACtC,EAAA;;;;;;;AC7DO,SAAS,aAAa,CAAC,KAAK,EAAE;AACrC,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,qCAAqC,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAChF,KAAK;AACL,IAAI,IAAI;AACR,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,CAAC;AACM,SAAS,iBAAiB,CAAC,KAAK,EAAE;AACzC,IAAI,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACrE;;;;;;;;;;;;;;;ACZA,CAAA,MAAM,CAAC,cAAc,CAAC,IAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA,IAAA,CAAA,iBAAyB,GAAG,IAAA,CAAA,aAAqB,GAAG,KAAK,CAAC,CAAC;CAC3D,MAAM,OAAO,GAAG,UAAgB,CAAC;CACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,UAAmC,CAAC,CAAC;AAC3E,CAAA,IAAA,CAAA,aAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC;AAC/C,CAAA,IAAA,CAAA,iBAAyB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;AACvD,CAAA;;;;;;;;;;;ACNA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAA,KAAA,CAAA,WAAmB,GAAG,KAAgB,CAAA,QAAA,GAAG,cAAgB,GAAG,KAAK,CAAC,CAAC;CACnE,MAAM,MAAM,GAAGR,WAAA,EAAiB,CAAC;CACjC,MAAM,SAAS,GAAGC,gBAAA,EAAoB,CAAC;AACvC,CAAA,SAAS,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE;AAC7B,KAAI,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;KAChD,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,eAAe,GAAG,CAAC;KAC/C,IAAI,KAAK,EAAE;SACP,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;MAC3B;EACJ;AACD,CAAgB,KAAA,CAAA,QAAA,GAAG,QAAQ,CAAC;CAC5B,SAAS,QAAQ,CAAC,GAAG,EAAE;AACvB,KAAI,IAAI,IAAI,GAAG,IAAI,CAAC;AACpB,KAAI,IAAI,GAAG,GAAG,IAAI,CAAC;KACf,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,eAAe,GAAG,CAAC;KAC/C,IAAI,KAAK,EAAE;SACP,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;MAC5B;AACL,KAAI,IAAI,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;KAClD,OAAO,IAAI,CAAC;EACf;AACD,CAAgB,KAAA,CAAA,QAAA,GAAG,QAAQ,CAAC;CAC5B,SAAS,WAAW,CAAC,GAAG,EAAE;KACtB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,eAAe,GAAG,CAAC;KAC/C,IAAI,KAAK,EAAE;AACf,SAAQ,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;MACzB;EACJ;AACD,CAAmB,KAAA,CAAA,WAAA,GAAG,WAAW,CAAC;AAClC,CAAA;;;;;;;;;;;;EC9BA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,EAAA,OAAA,CAAA,qBAAA,GAAgC,iCAAiC,OAA6B,CAAA,kBAAA,GAAA,OAAA,CAAA,eAAA,GAA0B,OAA8B,CAAA,mBAAA,GAAA,KAAK,CAAC,CAAC;EAC7J,MAAM,OAAO,GAAGD,YAAA,EAAkB,CAAC;AACnC,EAAA,OAAA,CAAA,mBAAA,GAA8B,+BAA+B,CAAC;AAC9D,EAAA,SAAS,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE;AACrC,MAAI,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;MAC3C,OAAO,KAAK,CAAC,aAAa;YACpB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC7C,KAAK,CAAC,QAAQ;gBACV,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACjG,gBAAc,EAAE,CAAC;GAChB;AACD,EAAA,OAAA,CAAA,eAAA,GAA0B,eAAe,CAAC;EAC1C,SAAS,kBAAkB,CAAC,IAAI,EAAE;AAClC,MAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,MAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;GAClH;AACD,EAAA,OAAA,CAAA,kBAAA,GAA6B,kBAAkB,CAAC;AAChD,EAAA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,IAAI,EAAE;MAC5C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GAC/F;AACD,EAAA,OAAA,CAAA,sBAAA,GAAiC,sBAAsB,CAAC;AACxD,EAAA,SAAS,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE;AACpD,MAAI,IAAI,KAAK,GAAG,QAAQ,CAAC;MACrB,IAAI,SAAS,EAAE;UACX,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;OAC3F;MACD,OAAO,KAAK,CAAC;GAChB;AACD,EAAA,OAAA,CAAA,qBAAA,GAAgC,qBAAqB,CAAC;AACtD,EAAA;;;;;;;;;;;;AC9BA,CAAA,MAAM,CAAC,cAAc,CAACmB,UAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAA4BA,UAAA,CAAA,oBAAA,GAAGA,oCAAiC,GAAGA,UAAA,CAAA,kBAA0B,GAAGA,UAA4B,CAAA,oBAAA,GAAG,KAAK,CAAC,CAAC;CACtI,MAAM,OAAO,GAAG,oCAAoC,CAAC;AACrD,CAAA,SAAS,oBAAoB,GAAG;AAChC,KAAI,OAAO,OAAO,GAAG,iBAAiB,CAAC;EACtC;AACD,CAA4BA,UAAA,CAAA,oBAAA,GAAG,oBAAoB,CAAC;AACpD,CAAA,SAAS,kBAAkB,GAAG;AAC9B,KAAI,OAAO,OAAO,GAAG,eAAe,CAAC;EACpC;AACD,CAA0BA,UAAA,CAAA,kBAAA,GAAG,kBAAkB,CAAC;AAChD,CAAA,SAAS,yBAAyB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,EAAE;KAC3D,IAAI,EAAE,CAAC;AACX,KAAI,OAAO;AACX,SAAQ,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;SACtB,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE;SACzC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;SAC1C,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;SACnE,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,EAAE;SAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,EAAE;AAC9C,MAAK,CAAC;EACL;AACD,CAAiCA,UAAA,CAAA,yBAAA,GAAG,yBAAyB,CAAC;AAC9D,CAAA,SAAS,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE;AAC7D,KAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;UACzB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AACjF,UAAS,GAAG,CAAC,CAAC,KAAK,KAAK,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;EACnE;AACD,CAA4BA,UAAA,CAAA,oBAAA,GAAG,oBAAoB,CAAC;AACpD,CAAA;;;;;CC7BA,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;CAC9D,MAAM,OAAO,GAAG,UAAgB,CAAC;AACjC,CAAA,OAAO,CAAC,YAAY,CAAClB,kBAAoB,EAAE,OAAO,CAAC,CAAC;AACpD,CAAA,OAAO,CAAC,YAAY,CAACO,aAAiB,EAAE,OAAO,CAAC,CAAC;AACjD,CAAA,OAAO,CAAC,YAAY,CAACC,cAAkB,EAAE,OAAO,CAAC,CAAC;AAClD,CAAA,OAAO,CAAC,YAAY,CAACC,eAAmB,EAAE,OAAO,CAAC,CAAC;AACnD,CAAA,OAAO,CAAC,YAAY,CAACC,iBAAqB,EAAE,OAAO,CAAC,CAAC;AACrD,CAAA;;;;;;;ACRA;AACA;AACA;AACA;AACA,IAAAS,YAAc,GAAG,YAAY;AAC7B,EAAE,OAAO,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI;AACrF;;;;;;;;ACLA,IAAI,cAAc,IAAI,YAAY;AAClC,EAAE,IAAI;AACN,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACtC,MAAM,OAAO,KAAK;AAClB,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAC;AAC5D;AACA,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAC;AAC1B;AACA,IAAI,QAAQ,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC;AAC/C,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK;AAChB,GAAG;AACH,CAAC,EAAE,EAAC;AACJ;AACA,SAAS,YAAY,EAAE,GAAG,EAAE;AAC5B,EAAE,QAAQ,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACtD,CAAC;AACD;AACA,SAAS,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAClD,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AACxC,IAAI,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,KAAK,GAAG,KAAK,KAAK,EAAC;AACrB,EAAE,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAC;AACrD;AACA,EAAE,IAAI,GAAG,GAAG,KAAK,EAAE;AACnB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC;AAChC,GAAG;AACH;AACA,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA,SAAS,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAClD,EAAE,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE;AACxC,IAAI,MAAM,IAAI,UAAU,CAAC,oBAAoB,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,IAAI,GAAG,IAAI,KAAK,EAAE;AACpB,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,KAAK,GAAG,KAAK,KAAK,EAAC;AACrB,EAAE,GAAG,GAAG,GAAG,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAC;AACrD;AACA,EAAE,IAAI,GAAG,GAAG,MAAK;AACjB,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,OAAM;AACtB,EAAE,OAAO,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE;AAC7B,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAC;AACzB,IAAI,GAAG,IAAI,IAAG;AACd,GAAG;AACH;AACA,EAAE,IAAI,GAAG,KAAK,GAAG,EAAE;AACnB,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,EAAC;AACvC,GAAG;AACH;AACA,EAAE,OAAO,MAAM;AACf,CAAC;AACD;AACA,SAAS,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE;AAClD,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC;AACjD,GAAG;AACH;AACA,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,IAAI,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;AAClD,GAAG;AACH;AACA,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,MAAM,QAAQ,GAAG,MAAK;AACtB,MAAM,KAAK,GAAG,EAAC;AACf,MAAM,GAAG,GAAG,MAAM,CAAC,OAAM;AACzB,KAAK,MAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACxC,MAAM,QAAQ,GAAG,IAAG;AACpB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAM;AACzB,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChE,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC;AACtD,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE;AAC/B,MAAM,QAAQ,GAAG,SAAQ;AACzB,KAAK;AACL;AACA,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACtE,MAAM,MAAM,IAAI,SAAS,CAAC,oBAAoB,GAAG,QAAQ,CAAC;AAC1D,KAAK;AACL;AACA,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;AACpB,MAAM,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;AAClD,KAAK;AACL;AACA,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;AAC3B,MAAM,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;AAClE,KAAK;AACL;AACA,IAAI,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAC;AACnC,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC5B,IAAI,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC;AAClD,GAAG;AACH;AACA;AACA,EAAE,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;AAC9C,CAAC;AACD;AACA,IAAAC,YAAc,GAAG;;AChHjB,SAASC,aAAW,EAAE,IAAI,EAAE;AAC5B,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC;AAC3D,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE;AAChB,IAAI,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC;AAChE,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,WAAW,EAAE;AAC1B,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;AAC3B,GAAG;AACH,CAAC;AACD;AACA,IAAA,iBAAc,GAAGA;;AChBjB,IAAI,UAAU,GAAGtB,aAAsB;AACvC,IAAI,WAAW,GAAGC,kBAA8B;AAChD;IACA,WAAc,GAAG,SAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;AACvD,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC;AAC3D,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE;AAChB,IAAI,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC;AAChE,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE;AACpB,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,EAAC;AAChC;AACA,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AAClB,IAAI,OAAO,MAAM;AACjB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,KAAK,SAAS,EAAE;AAC1B,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AACpC,IAAI,QAAQ,GAAG,UAAS;AACxB,GAAG;AACH;AACA,EAAE,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;AAC3C;;;;AC7BA,IAAIsB,UAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,SAAQ;AACxC;AACA,IAAI,QAAQ;AACZ,EAAE,OAAO,MAAM,KAAK,WAAW;AAC/B,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU;AACpC,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU;AAC1C,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;AACnC,EAAC;AACD;AACA,SAAS,aAAa,EAAE,KAAK,EAAE;AAC/B,EAAE,OAAOA,UAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,aAAa;AAC5D,CAAC;AACD;AACA,SAAS,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE;AACnD,EAAE,UAAU,MAAM,EAAC;AACnB;AACA,EAAE,IAAI,SAAS,GAAG,GAAG,CAAC,UAAU,GAAG,WAAU;AAC7C;AACA,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE;AACrB,IAAI,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC;AACrD,GAAG;AACH;AACA,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE;AAC5B,IAAI,MAAM,GAAG,UAAS;AACtB,GAAG,MAAM;AACT,IAAI,MAAM,MAAM,EAAC;AACjB;AACA,IAAI,IAAI,MAAM,GAAG,SAAS,EAAE;AAC5B,MAAM,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC;AACvD,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,QAAQ;AACjB,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;AAC7D,MAAM,IAAI,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC;AACD;AACA,SAAS,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE;AACvC,EAAE,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE;AACvD,IAAI,QAAQ,GAAG,OAAM;AACrB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACpC,IAAI,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC;AACrE,GAAG;AACH;AACA,EAAE,OAAO,QAAQ;AACjB,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AACnC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;AAClC,CAAC;AACD;AACA,SAAS,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE;AACtD,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC;AAChE,GAAG;AACH;AACA,EAAE,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;AAC5B,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC;AAC3D,GAAG;AACH;AACA,EAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,IAAI,OAAO,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,OAAO,QAAQ;AACjB,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;AACvB,CAAC;AACD;AACA,IAAA,YAAc,GAAG;;ACvEjB,MAAA,CAAA,KAAoB,GAAGvB,YAAuB;AAC9C,MAAA,CAAA,IAAmB,GAAGC;;;;ACDtB,IAAI,eAAc;AAClB,IAAI,eAAe,GAAG;AACtB,EAAE,CAAC;AACH,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAC/C,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;AACnD,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5D,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5D,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACAuB,OAAA,CAAA,aAAqB,GAAG,SAAS,aAAa,EAAE,OAAO,EAAE;AACzD,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AACxE,EAAE,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;AAC/F,EAAE,OAAO,OAAO,GAAG,CAAC,GAAG,EAAE;AACzB,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,OAAA,CAAA,uBAA+B,GAAG,SAAS,uBAAuB,EAAE,OAAO,EAAE;AAC7E,EAAE,OAAO,eAAe,CAAC,OAAO,CAAC;AACjC,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACmBA,OAAA,CAAA,WAAA,GAAG,UAAU,IAAI,EAAE;AACtC,EAAE,IAAI,KAAK,GAAG,EAAC;AACf;AACA,EAAE,OAAO,IAAI,KAAK,CAAC,EAAE;AACrB,IAAI,KAAK,GAAE;AACX,IAAI,IAAI,MAAM,EAAC;AACf,GAAG;AACH;AACA,EAAE,OAAO,KAAK;AACd,EAAC;AACD;AACAA,OAAA,CAAA,iBAAyB,GAAG,SAAS,iBAAiB,EAAE,CAAC,EAAE;AAC3D,EAAE,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE;AAC/B,IAAI,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AAC5D,GAAG;AACH;AACA,EAAE,cAAc,GAAG,EAAC;AACpB,EAAC;AACD;AACAA,OAAA,CAAA,kBAA0B,GAAG,YAAY;AACzC,EAAE,OAAO,OAAO,cAAc,KAAK,WAAW;AAC9C,EAAC;AACD;AACAA,OAAA,CAAA,MAAc,GAAG,SAAS,MAAM,EAAE,KAAK,EAAE;AACzC,EAAE,OAAO,cAAc,CAAC,KAAK,CAAC;AAC9B;;;;;AC9DA,CAAA,OAAA,CAAA,CAAA,GAAY,EAAE,GAAG,EAAE,CAAC,GAAE;AACtB,CAAA,OAAA,CAAA,CAAA,GAAY,EAAE,GAAG,EAAE,CAAC,GAAE;AACtB,CAAA,OAAA,CAAA,CAAA,GAAY,EAAE,GAAG,EAAE,CAAC,GAAE;AACtB,CAAA,OAAA,CAAA,CAAA,GAAY,EAAE,GAAG,EAAE,CAAC,GAAE;AACtB;CACA,SAAS,UAAU,EAAE,MAAM,EAAE;AAC7B,GAAE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAClC,KAAI,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;IACzC;AACH;AACA,GAAE,IAAI,KAAK,GAAG,MAAM,CAAC,WAAW,GAAE;AAClC;AACA,GAAE,QAAQ,KAAK;KACX,KAAK,GAAG,CAAC;AACb,KAAI,KAAK,KAAK;OACR,OAAO,OAAO,CAAC,CAAC;AACtB;KACI,KAAK,GAAG,CAAC;AACb,KAAI,KAAK,QAAQ;OACX,OAAO,OAAO,CAAC,CAAC;AACtB;KACI,KAAK,GAAG,CAAC;AACb,KAAI,KAAK,UAAU;OACb,OAAO,OAAO,CAAC,CAAC;AACtB;KACI,KAAK,GAAG,CAAC;AACb,KAAI,KAAK,MAAM;OACT,OAAO,OAAO,CAAC,CAAC;AACtB;KACI;AACJ,OAAM,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC;IACjD;EACF;AACD;AACA,CAAA,OAAA,CAAA,OAAA,GAAkB,SAAS,OAAO,EAAE,KAAK,EAAE;GACzC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,WAAW;KAC9C,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;GAClC;AACD;AACA,CAAA,OAAA,CAAA,IAAA,GAAe,SAAS,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;AACnD,GAAE,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,KAAI,OAAO,KAAK;IACb;AACH;AACA,GAAE,IAAI;AACN,KAAI,OAAO,UAAU,CAAC,KAAK,CAAC;IACzB,CAAC,OAAO,CAAC,EAAE;AACd,KAAI,OAAO,YAAY;IACpB;AACH,GAAA;;;ACjDA,SAASC,WAAS,IAAI;AACtB,EAAE,IAAI,CAAC,MAAM,GAAG,GAAE;AAClB,EAAE,IAAI,CAAC,MAAM,GAAG,EAAC;AACjB,CAAC;AACD;AACAA,WAAS,CAAC,SAAS,GAAG;AACtB;AACA,EAAE,GAAG,EAAE,UAAU,KAAK,EAAE;AACxB,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAC;AACxC,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AAClE,GAAG;AACH;AACA,EAAE,GAAG,EAAE,UAAU,GAAG,EAAE,MAAM,EAAE;AAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC;AACzD,KAAK;AACL,GAAG;AACH;AACA,EAAE,eAAe,EAAE,YAAY;AAC/B,IAAI,OAAO,IAAI,CAAC,MAAM;AACtB,GAAG;AACH;AACA,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE;AACzB,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAC;AAC9C,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE;AACxC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAC;AACzB,KAAK;AACL;AACA,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAC;AAC3D,KAAK;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAE;AACjB,GAAG;AACH,EAAC;AACD;AACA,IAAA,SAAc,GAAGA;;ACpCjB,IAAIC,YAAU,GAAG1B,OAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2B,WAAS,EAAE,IAAI,EAAE;AAC1B,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE;AACzB,IAAI,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;AACxE,GAAG;AACH;AACA,EAAE,IAAI,CAAC,IAAI,GAAG,KAAI;AAClB,EAAE,IAAI,CAAC,IAAI,GAAGD,YAAU,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,EAAC;AAC3C,EAAE,IAAI,CAAC,WAAW,GAAGA,YAAU,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,EAAC;AAClD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,WAAS,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;AAC/D,EAAE,IAAI,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,IAAG;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAK;AAC1B,EAAE,IAAI,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,KAAI;AAC9C,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,WAAS,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE;AAC9C,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AACzC,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,WAAS,CAAC,SAAS,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACrD,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,MAAK;AAC3C,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,WAAS,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE;AACrD,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAChD,EAAC;AACD;AACA,IAAA,SAAc,GAAGA;;;;;;;;;;;;;;;ACxDjB,CAAA,IAAI,aAAa,GAAG3B,OAAkB,CAAC,cAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,eAAA,GAA0B,SAAS,eAAe,EAAE,OAAO,EAAE;AAC7D,GAAE,IAAI,OAAO,KAAK,CAAC,EAAE,OAAO,EAAE;AAC9B;AACA,GAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAC;AAC5C,GAAE,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,EAAC;GACjC,IAAI,SAAS,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAC;AACrF,GAAE,IAAI,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,EAAC;AAC5B;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,KAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,UAAS;IAC5C;AACH;AACA,GAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAC;AACnB;AACA,GAAE,OAAO,SAAS,CAAC,OAAO,EAAE;GAC3B;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,OAAO,EAAE;GACrD,IAAI,MAAM,GAAG,GAAE;GACf,IAAI,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,EAAC;AAC5C,GAAE,IAAI,SAAS,GAAG,GAAG,CAAC,OAAM;AAC5B;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AACtC,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AACxC;OACM,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC;YAC/B,CAAC,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC5C,SAAQ,QAAQ;QACT;AACP;AACA,OAAM,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC;MAC9B;IACF;AACH;AACA,GAAE,OAAO,MAAM;AACf,GAAA;;;;;AClFA,IAAI,aAAa,GAAGA,OAAkB,CAAC,cAAa;AACpD,IAAI,mBAAmB,GAAG,EAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAA,CAAA,YAAoB,GAAG,SAAS,YAAY,EAAE,OAAO,EAAE;AACvD,EAAE,IAAI,IAAI,GAAG,aAAa,CAAC,OAAO,EAAC;AACnC;AACA,EAAE,OAAO;AACT;AACA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACV;AACA,IAAI,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC,CAAC;AACnC;AACA,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,mBAAmB,CAAC;AACnC,GAAG;AACH;;;;;;;;;;CCjBA,OAAmB,CAAA,QAAA,GAAA;GACjB,UAAU,EAAE,CAAC;GACb,UAAU,EAAE,CAAC;GACb,UAAU,EAAE,CAAC;GACb,UAAU,EAAE,CAAC;GACb,UAAU,EAAE,CAAC;GACb,UAAU,EAAE,CAAC;GACb,UAAU,EAAE,CAAC;GACb,UAAU,EAAE,CAAC;GACd;AACD;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,aAAa,GAAG;GAClB,EAAE,EAAE,CAAC;GACL,EAAE,EAAE,CAAC;GACL,EAAE,EAAE,EAAE;GACN,EAAE,EAAE,EAAE;GACP;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,OAAA,GAAkB,SAAS,OAAO,EAAE,IAAI,EAAE;GACxC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;GAC7E;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,IAAA,GAAe,SAAS,IAAI,EAAE,KAAK,EAAE;AACrC,GAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,SAAS;GAChE;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,IAAI,EAAE;AACpD,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;GACpB,IAAI,MAAM,GAAG,EAAC;GACd,IAAI,YAAY,GAAG,EAAC;GACpB,IAAI,YAAY,GAAG,EAAC;GACpB,IAAI,OAAO,GAAG,KAAI;GAClB,IAAI,OAAO,GAAG,KAAI;AACpB;AACA,GAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACvC,KAAI,YAAY,GAAG,YAAY,GAAG,EAAC;AACnC,KAAI,OAAO,GAAG,OAAO,GAAG,KAAI;AAC5B;AACA,KAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;OACnC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAC;AACrC,OAAM,IAAI,MAAM,KAAK,OAAO,EAAE;AAC9B,SAAQ,YAAY,GAAE;AACtB,QAAO,MAAM;AACb,SAAQ,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC,EAAC;SACtE,OAAO,GAAG,OAAM;SAChB,YAAY,GAAG,EAAC;QACjB;AACP;OACM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAC;AACjC,OAAM,IAAI,MAAM,KAAK,OAAO,EAAE;AAC9B,SAAQ,YAAY,GAAE;AACtB,QAAO,MAAM;AACb,SAAQ,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC,EAAC;SACtE,OAAO,GAAG,OAAM;SAChB,YAAY,GAAG,EAAC;QACjB;MACF;AACL;AACA,KAAI,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC,EAAC;AAC1E,KAAI,IAAI,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,IAAI,YAAY,GAAG,CAAC,EAAC;IACvE;AACH;AACA,GAAE,OAAO,MAAM;GACd;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,IAAI,EAAE;AACpD,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;GACpB,IAAI,MAAM,GAAG,EAAC;AAChB;AACA,GAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAC3C,KAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;OACvC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;SAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;SACtB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC;SACtB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAC;AAClC;OACM,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,MAAM,GAAE;MACvC;IACF;AACH;AACA,GAAE,OAAO,MAAM,GAAG,aAAa,CAAC,EAAE;GACjC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,IAAI,EAAE;AACpD,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;GACpB,IAAI,MAAM,GAAG,EAAC;GACd,IAAI,OAAO,GAAG,EAAC;GACf,IAAI,OAAO,GAAG,EAAC;AACjB;AACA,GAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACvC,KAAI,OAAO,GAAG,OAAO,GAAG,EAAC;AACzB,KAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACzC,OAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAC;AAC7D,OAAM,IAAI,GAAG,IAAI,EAAE,KAAK,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,MAAM,GAAE;AACzE;AACA,OAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAC;AAC7D,OAAM,IAAI,GAAG,IAAI,EAAE,KAAK,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,MAAM,GAAE;MACpE;IACF;AACH;AACA,GAAE,OAAO,MAAM,GAAG,aAAa,CAAC,EAAE;GACjC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,YAAA,GAAuB,SAAS,YAAY,EAAE,IAAI,EAAE;GAClD,IAAI,SAAS,GAAG,EAAC;AACnB,GAAE,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAM;AACrC;GACE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC;AAClE;GACE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,YAAY,IAAI,CAAC,CAAC,GAAG,EAAE,EAAC;AACxE;AACA,GAAE,OAAO,CAAC,GAAG,aAAa,CAAC,EAAE;GAC5B;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE;AACvC,GAAE,QAAQ,WAAW;AACrB,KAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9D,KAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACxD,KAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACxD,KAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9D,KAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;KAC1F,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;KACxE,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;KAC9E,KAAK,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAClF;KACI,SAAS,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,WAAW,CAAC;IAC3D;EACF;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,SAAA,GAAoB,SAAS,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;AACvD,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAI;AACtB;AACA,GAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACvC,KAAI,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;OACnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ;AAC7C,OAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,EAAC;MACjD;IACF;GACF;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,OAAA,CAAA,WAAA,GAAsB,SAAS,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE;AACnE,GAAE,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAM;GACtD,IAAI,WAAW,GAAG,EAAC;GACnB,IAAI,YAAY,GAAG,SAAQ;AAC7B;AACA,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;KACpC,eAAe,CAAC,CAAC,EAAC;AACtB,KAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAC;AAC9B;AACA;AACA,KAAI,IAAI,OAAO;AACf,OAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AAChC,OAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AAChC,OAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AAChC,OAAM,OAAO,CAAC,YAAY,CAAC,IAAI,EAAC;AAChC;AACA;AACA,KAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAC;AAC9B;AACA,KAAI,IAAI,OAAO,GAAG,YAAY,EAAE;OAC1B,YAAY,GAAG,QAAO;OACtB,WAAW,GAAG,EAAC;MAChB;IACF;AACH;AACA,GAAE,OAAO,WAAW;AACpB,GAAA;;;;;ACzOA,IAAI4B,SAAO,GAAG5B,qBAAmC;AACjD;AACA,IAAI,eAAe,GAAG;AACtB;AACA,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACZ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AACb,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACd,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACd,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACd,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACf,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EA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"}
1
+ {"version":3,"file":"index.js","sources":["../../node_modules/immer/dist/immer.esm.mjs","../../src/store/middelware/immer.ts","../../node_modules/zustand/esm/index.js","../../node_modules/zustand/esm/middleware.js","../../src/store/state/walletStore.ts","../../src/constants/constants.ts","../../node_modules/big.js/big.mjs","../../src/providers/perawallet.ts","../../src/providers/myalgowallet.ts","../../src/providers/algosigner.ts","../../src/providers/defly.ts","../../src/providers/exodus.ts","../../src/providers/kmd.ts","../../src/providers/walletconnect.ts","../../src/providers/index.ts","../../src/media/audio.ts","../../node_modules/ua-parser-js/dist/ua-parser.min.js","../../node_modules/react-device-detect/dist/lib.js","../../src/clients/base.ts","../../src/clients/perawallet.ts","../../src/clients/myalgowallet.ts","../../src/clients/algosigner.ts","../../src/clients/defly.ts","../../src/clients/exodus.ts","../../src/clients/kmd.ts","../../node_modules/@json-rpc-tools/utils/dist/cjs/constants.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/error.js","../../node_modules/@pedrouid/environment/dist/cjs/crypto.js","../../node_modules/@pedrouid/environment/dist/cjs/env.js","../../node_modules/@pedrouid/environment/dist/cjs/index.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/env.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/format.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/routing.js","../../node_modules/@json-rpc-tools/types/dist/cjs/misc.js","../../node_modules/@json-rpc-tools/types/dist/cjs/provider.js","../../node_modules/@json-rpc-tools/types/dist/cjs/blockchain.js","../../node_modules/@json-rpc-tools/types/dist/cjs/jsonrpc.js","../../node_modules/@json-rpc-tools/types/dist/cjs/multi.js","../../node_modules/@json-rpc-tools/types/dist/cjs/router.js","../../node_modules/@json-rpc-tools/types/dist/cjs/schema.js","../../node_modules/@json-rpc-tools/types/dist/cjs/validator.js","../../node_modules/@json-rpc-tools/types/dist/cjs/index.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/types.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/validators.js","../../node_modules/@json-rpc-tools/utils/dist/cjs/index.js","../../src/clients/walletconnect.ts","../../src/clients/index.ts","../../src/utils/index.ts","../../src/hooks/useWallet.ts","../../node_modules/zustand/esm/shallow.js","../../src/hooks/useConnectWallet.ts","../../node_modules/algorand-walletconnect-qrcode-modal/dist/cjs/index.js"],"sourcesContent":["function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(\"production\"!==process.env.NODE_ENV){var i=Y[n],o=i?\"function\"==typeof i?i.apply(null,t):i:\"unknown error nr: \"+n;throw Error(\"[Immer] \"+o)}throw Error(\"[Immer] minified error nr: \"+n+(t.length?\" \"+t.map((function(n){return\"'\"+n+\"'\"})).join(\",\"):\"\")+\". Find the full error at: https://bit.ly/3cXEKWf\")}function r(n){return!!n&&!!n[Q]}function t(n){return!!n&&(function(n){if(!n||\"object\"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,\"constructor\")&&r.constructor;return t===Object||\"function\"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!n.constructor[L]||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&\"symbol\"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)?n:(o(n)>1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.O=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.g||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(O(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A(n,e,o,r,i,t)})),x(n,o,!1),t&&n.u&&b(\"Patches\").R(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!r(v))return;e.m=!1}if(t(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,r,t){var e=s(r)?b(\"MapSet\").N(r,t):v(r)?b(\"MapSet\").T(r,t):n.g?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function D(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}function f(r){r.O&&n(3,JSON.stringify(p(r)))}var s={};m(\"ES5\",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,\"\"+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&\"object\"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.D,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return u(n,L)&&(r[L]=n[L]),r}function f(n){return r(n)?e(n):n}var c=\"add\";m(\"Patches\",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=\"\"+i[s];0!==v&&1!==v||\"__proto__\"!==p&&\"constructor\"!==p||n(24),\"function\"==typeof f&&\"prototype\"===p&&n(24),\"object\"!=typeof(f=a(f,p))&&n(15,i.join(\"/\"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case\"replace\":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return\"-\"===h?f.push(d):f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case\"remove\":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},R:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.D,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?\"replace\":c:\"remove\";if(v!==p||\"replace\"!==l){var d=r.concat(n);t.push(\"remove\"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:\"remove\",path:d}:\"remove\"===l?{op:c,path:d,value:f(v)}:{op:\"replace\",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.D,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:\"replace\",path:p,value:f(u[v])}),e.push({op:\"replace\",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:\"replace\",path:r.concat([\"length\"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:\"remove\",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:\"remove\",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:\"replace\",path:[],value:r===H?void 0:r}),e.push({op:\"replace\",path:[],value:n})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.D=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=R(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.O&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,D:void 0,t:n,k:this,C:!1,O:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,\"size\",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.D.set(n,!0),t.o.set(n,r),t.D.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.t.has(n)?r.D.set(n,!1):r.D.delete(n),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.D=new Map,i(n.t,(function(r){n.D.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=R(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,O:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,\"size\",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m(\"MapSet\",{N:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){N(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W=\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol(\"x\"),X=\"undefined\"!=typeof Map,q=\"undefined\"!=typeof Set,B=\"undefined\"!=typeof Proxy&&void 0!==Proxy.revocable&&\"undefined\"!=typeof Reflect,H=W?Symbol.for(\"immer-nothing\"):((G={})[\"immer-nothing\"]=!0,G),L=W?Symbol.for(\"immer-draftable\"):\"__$immer_draftable\",Q=W?Symbol.for(\"immer-state\"):\"__$immer_state\",V=\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\",Y={0:\"Illegal state\",1:\"Immer drafts cannot have computed properties\",2:\"This object has been frozen and should not be mutated\",3:function(n){return\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \"+n},4:\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",5:\"Immer forbids circular references\",6:\"The first or second argument to `produce` must be a function\",7:\"The third argument to `produce` must be a function or undefined\",8:\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",9:\"First argument to `finishDraft` must be a draft returned by `createDraft`\",10:\"The given draft is already finalized\",11:\"Object.defineProperty() cannot be used on an Immer draft\",12:\"Object.setPrototypeOf() cannot be used on an Immer draft\",13:\"Immer only supports deleting array indices\",14:\"Immer only supports setting array indices and the 'length' property\",15:function(n){return\"Cannot apply patch, path doesn't resolve: \"+n},16:'Sets cannot have \"replace\" patches.',17:function(n){return\"Unsupported patch operation: \"+n},18:function(n){return\"The plugin for '\"+n+\"' has not been loaded into Immer. To enable the plugin, import and call `enable\"+n+\"()` when initializing your application.\"},20:\"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",21:function(n){return\"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\"+n+\"'\"},22:function(n){return\"'current' expects a draft, got: \"+n},23:function(n){return\"'original' expects a draft, got: \"+n},24:\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"},Z=\"\"+Object.prototype.constructor,nn=\"undefined\"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?\"value\"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=R(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.D[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&\"number\"!=typeof t&&(void 0!==t||r in n.o)||(n.o[r]=t,n.D[r]=!0,!0)},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.D[r]=!1,E(n),k(n)):delete n.D[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||\"length\"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return\"production\"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return\"production\"!==process.env.NODE_ENV&&\"length\"!==t&&isNaN(parseInt(t))&&n(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.g=B,this.F=!0,this.produce=function(r,i,o){if(\"function\"==typeof r&&\"function\"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if(\"function\"!=typeof i&&n(6),void 0!==o&&\"function\"!=typeof o&&n(7),t(r)){var c=w(e),s=R(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?O(c):g(c)}return\"undefined\"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw O(c),n})):(j(c,o),P(f,c))}if(!r||\"object\"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.F&&d(f,!0),o){var p=[],l=[];b(\"Patches\").M(r,f,p,l),o(p,l)}return f}n(21,r)},this.produceWithPatches=function(n,r){if(\"function\"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r}));return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then((function(n){return[n,t,i]})):[o,t,i]},\"boolean\"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),\"boolean\"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=D(e));var i=w(this),o=R(this,e,void 0);return o[Q].C=!0,g(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];\"production\"!==process.env.NODE_ENV&&(e&&e.C||n(9),e.I&&n(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.F=n},i.setUseProxies=function(r){r&&!B&&n(20),this.g=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,D as current,J as enableAllPlugins,N as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","import { produce } from \"immer\";\nimport type { Draft } from \"immer\";\nimport { GetState, SetState, State, StateCreator, StoreApi } from \"zustand\";\n\n/**\n * The immer middleware turns the `set` method into a proxy for the immer `produce` method.\n * https://immerjs.github.io/immer/\n *\n * The TypeScript magic is taken from here:\n * https://github.com/pmndrs/zustand/blob/main/tests/middlewareTypes.test.tsx\n */\nexport const immer =\n <\n T extends State,\n CustomSetState extends SetState<T>,\n CustomGetState extends GetState<T>,\n CustomStoreApi extends StoreApi<T>\n >(\n config: StateCreator<\n T,\n (partial: ((draft: Draft<T>) => void) | T, replace?: boolean) => void,\n CustomGetState,\n CustomStoreApi\n >\n ): StateCreator<T, CustomSetState, CustomGetState, CustomStoreApi> =>\n (set, get, api) => {\n // see https://github.com/pmndrs/zustand/issues/449#issuecomment-873777576\n api.setState = (fn) => set(produce(fn as (state: Draft<T>) => T));\n\n return config(\n (partial, replace) => {\n const nextState =\n typeof partial === \"function\"\n ? produce(partial as (state: Draft<T>) => T)\n : (partial as T);\n return set(nextState, replace);\n },\n get,\n api\n );\n };\n","import { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect } from 'react';\n\nfunction createStore(createState) {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (nextState !== state) {\n const previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n let currentSlice = selector(state);\n function listenerToAdd() {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n listener(currentSlice = nextSlice, previousSlice);\n }\n }\n listeners.add(listenerToAdd);\n return () => listeners.delete(listenerToAdd);\n };\n const subscribe = (listener, selector, equalityFn) => {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => listeners.clear();\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n}\n\nconst isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nconst useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n const api = typeof createState === \"function\" ? createStore(createState) : createState;\n const useStore = (selector = api.getState, equalityFn = Object.is) => {\n const [, forceUpdate] = useReducer((c) => c + 1, 0);\n const state = api.getState();\n const stateRef = useRef(state);\n const selectorRef = useRef(selector);\n const equalityFnRef = useRef(equalityFn);\n const erroredRef = useRef(false);\n const currentSliceRef = useRef();\n if (currentSliceRef.current === void 0) {\n currentSliceRef.current = selector(state);\n }\n let newStateSlice;\n let hasNewStateSlice = false;\n if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n newStateSlice = selector(state);\n hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n }\n useIsomorphicLayoutEffect(() => {\n if (hasNewStateSlice) {\n currentSliceRef.current = newStateSlice;\n }\n stateRef.current = state;\n selectorRef.current = selector;\n equalityFnRef.current = equalityFn;\n erroredRef.current = false;\n });\n const stateBeforeSubscriptionRef = useRef(state);\n useIsomorphicLayoutEffect(() => {\n const listener = () => {\n try {\n const nextState = api.getState();\n const nextStateSlice = selectorRef.current(nextState);\n if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n stateRef.current = nextState;\n currentSliceRef.current = nextStateSlice;\n forceUpdate();\n }\n } catch (error) {\n erroredRef.current = true;\n forceUpdate();\n }\n };\n const unsubscribe = api.subscribe(listener);\n if (api.getState() !== stateBeforeSubscriptionRef.current) {\n listener();\n }\n return unsubscribe;\n }, []);\n const sliceToReturn = hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n useDebugValue(sliceToReturn);\n return sliceToReturn;\n };\n Object.assign(useStore, api);\n useStore[Symbol.iterator] = function() {\n console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n const items = [useStore, api];\n return {\n next() {\n const done = items.length <= 0;\n return { value: items.shift(), done };\n }\n };\n };\n return useStore;\n}\n\nexport { create as default };\n","var __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nconst redux = (reducer, initial) => (set, get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return __spreadValues$1({ dispatch: (...a) => api.dispatch(...a) }, initial);\n};\n\nfunction devtools(fn, options) {\n return (set, get, api) => {\n var _a;\n let didWarnAboutNameDeprecation = false;\n if (typeof options === \"string\" && !didWarnAboutNameDeprecation) {\n console.warn(\"[zustand devtools middleware]: passing `name` as directly will be not allowed in next majorpass the `name` in an object `{ name: ... }` instead\");\n didWarnAboutNameDeprecation = true;\n }\n const devtoolsOptions = options === void 0 ? { name: void 0, anonymousActionType: void 0 } : typeof options === \"string\" ? { name: options } : options;\n if (typeof ((_a = devtoolsOptions == null ? void 0 : devtoolsOptions.serialize) == null ? void 0 : _a.options) !== \"undefined\") {\n console.warn(\"[zustand devtools middleware]: `serialize.options` is deprecated, just use `serialize`\");\n }\n let extensionConnector;\n try {\n extensionConnector = window.__REDUX_DEVTOOLS_EXTENSION__ || window.top.__REDUX_DEVTOOLS_EXTENSION__;\n } catch {\n }\n if (!extensionConnector) {\n if ((import.meta.env && import.meta.env.MODE) !== \"production\" && typeof window !== \"undefined\") {\n console.warn(\"[zustand devtools middleware] Please install/enable Redux devtools extension\");\n }\n return fn(set, get, api);\n }\n let extension = Object.create(extensionConnector.connect(devtoolsOptions));\n let didWarnAboutDevtools = false;\n Object.defineProperty(api, \"devtools\", {\n get: () => {\n if (!didWarnAboutDevtools) {\n console.warn(\"[zustand devtools middleware] `devtools` property on the store is deprecated it will be removed in the next major.\\nYou shouldn't interact with the extension directly. But in case you still want to you can patch `window.__REDUX_DEVTOOLS_EXTENSION__` directly\");\n didWarnAboutDevtools = true;\n }\n return extension;\n },\n set: (value) => {\n if (!didWarnAboutDevtools) {\n console.warn(\"[zustand devtools middleware] `api.devtools` is deprecated, it will be removed in the next major.\\nYou shouldn't interact with the extension directly. But in case you still want to you can patch `window.__REDUX_DEVTOOLS_EXTENSION__` directly\");\n didWarnAboutDevtools = true;\n }\n extension = value;\n }\n });\n let didWarnAboutPrefix = false;\n Object.defineProperty(extension, \"prefix\", {\n get: () => {\n if (!didWarnAboutPrefix) {\n console.warn(\"[zustand devtools middleware] along with `api.devtools`, `api.devtools.prefix` is deprecated.\\nWe no longer prefix the actions/names\" + devtoolsOptions.name === void 0 ? \", pass the `name` option to create a separate instance of devtools for each store.\" : \", because the `name` option already creates a separate instance of devtools for each store.\");\n didWarnAboutPrefix = true;\n }\n return \"\";\n },\n set: () => {\n if (!didWarnAboutPrefix) {\n console.warn(\"[zustand devtools middleware] along with `api.devtools`, `api.devtools.prefix` is deprecated.\\nWe no longer prefix the actions/names\" + devtoolsOptions.name === void 0 ? \", pass the `name` option to create a separate instance of devtools for each store.\" : \", because the `name` option already creates a separate instance of devtools for each store.\");\n didWarnAboutPrefix = true;\n }\n }\n });\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n set(state, replace);\n if (!isRecording)\n return;\n extension.send(nameOrAction === void 0 ? { type: devtoolsOptions.anonymousActionType || \"anonymous\" } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction, get());\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n extension.init(initialState);\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...a) => {\n if (a[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn('[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.');\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...a);\n };\n }\n extension.subscribe((message) => {\n var _a2;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\"[zustand devtools middleware] Unsupported action format\");\n return;\n }\n return parseJsonThen(message.payload, (action) => {\n if (action.type === \"__setState\") {\n setStateFromDevtools(action.state);\n return;\n }\n if (!api.dispatchFromDevtools)\n return;\n if (typeof api.dispatch !== \"function\")\n return;\n api.dispatch(action);\n });\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n return extension.init(api.getState());\n case \"COMMIT\":\n return extension.init(api.getState());\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n setStateFromDevtools(state);\n extension.init(api.getState());\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n setStateFromDevtools(state);\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a2 = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a2.state;\n if (!lastComputedState)\n return;\n setStateFromDevtools(lastComputedState);\n extension.send(null, nextLiftedState);\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n };\n}\nconst parseJsonThen = (stringified, f) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\"[zustand devtools middleware] Could not parse the received json\", e);\n }\n if (parsed !== void 0)\n f(parsed);\n};\n\nconst subscribeWithSelector = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\n\nconst combine = (initialState, create) => (set, get, api) => Object.assign({}, initialState, create(set, get, api));\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persist = (config, baseOptions) => (set, get, api) => {\n let options = __spreadValues({\n getStorage: () => localStorage,\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => __spreadValues(__spreadValues({}, currentState), persistedState)\n }, baseOptions);\n if (options.blacklist || options.whitelist) {\n console.warn(`The ${options.blacklist ? \"blacklist\" : \"whitelist\"} option is deprecated and will be removed in the next version. Please use the 'partialize' option instead.`);\n }\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage;\n try {\n storage = options.getStorage();\n } catch (e) {\n }\n if (!storage) {\n return config((...args) => {\n console.warn(`[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`);\n set(...args);\n }, get, api);\n } else if (!storage.removeItem) {\n console.warn(`[zustand persist middleware] The given storage for item '${options.name}' does not contain a 'removeItem' method, which will be required in v4.`);\n }\n const thenableSerialize = toThenable(options.serialize);\n const setItem = () => {\n const state = options.partialize(__spreadValues({}, get()));\n if (options.whitelist) {\n Object.keys(state).forEach((key) => {\n var _a;\n !((_a = options.whitelist) == null ? void 0 : _a.includes(key)) && delete state[key];\n });\n }\n if (options.blacklist) {\n options.blacklist.forEach((key) => delete state[key]);\n }\n let errorInSync;\n const thenable = thenableSerialize({ state, version: options.version }).then((serializedValue) => storage.setItem(options.name, serializedValue)).catch((e) => {\n errorInSync = e;\n });\n if (errorInSync) {\n throw errorInSync;\n }\n return thenable;\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config((...args) => {\n set(...args);\n void setItem();\n }, get, api);\n let stateFromStorage;\n const hydrate = () => {\n var _a;\n if (!storage)\n return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => cb(get()));\n const postRehydrationCallback = ((_a = options.onRehydrateStorage) == null ? void 0 : _a.call(options, get())) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((storageValue) => {\n if (storageValue) {\n return options.deserialize(storageValue);\n }\n }).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n return options.migrate(deserializedStorageValue.state, deserializedStorageValue.version);\n }\n console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`);\n } else {\n return deserializedStorageValue.state;\n }\n }\n }).then((migratedState) => {\n var _a2;\n stateFromStorage = options.merge(migratedState, (_a2 = get()) != null ? _a2 : configResult);\n set(stateFromStorage, true);\n return setItem();\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = __spreadValues(__spreadValues({}, options), newOptions);\n if (newOptions.getStorage) {\n storage = newOptions.getStorage();\n }\n },\n clearStorage: () => {\n var _a;\n (_a = storage == null ? void 0 : storage.removeItem) == null ? void 0 : _a.call(storage, options.name);\n },\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n hydrate();\n return stateFromStorage || configResult;\n};\n\nexport { combine, devtools, persist, redux, subscribeWithSelector };\n","import { immer } from \"../middelware/immer\";\nimport create from \"zustand\";\nimport { devtools, persist } from \"zustand/middleware\";\nimport type { Account } from \"../../types\";\nimport { PROVIDER_ID } from \"../../constants\";\n\nexport const walletStoreSelector = (state: WalletStore) => ({\n accounts: state.accounts,\n activeAccount: state.activeAccount,\n setActiveAccount: state.setActiveAccount,\n clearActiveAccount: state.clearActiveAccount,\n addAccounts: state.addAccounts,\n removeAccounts: state.removeAccounts,\n});\n\nexport type WalletStore = {\n accounts: Account[];\n activeAccount: Account | null;\n setActiveAccount: (account: Account) => void;\n clearActiveAccount: (id: PROVIDER_ID) => void;\n addAccounts: (accounts: Account[]) => void;\n removeAccounts: (providerId: PROVIDER_ID) => void;\n};\n\nexport const useWalletStore = create<WalletStore>(\n devtools(\n persist(\n immer((set, _get) => ({\n accounts: [],\n activeAccount: null,\n setActiveAccount: (account: Account) => {\n set((state) => {\n state.activeAccount = account;\n });\n },\n clearActiveAccount: (id: PROVIDER_ID) => {\n set((state) => {\n if (id === state.activeAccount?.providerId)\n state.activeAccount = null;\n });\n },\n addAccounts: (accounts: Account[]) => {\n set((state) => {\n const uniqueAccounts = [...state.accounts, ...accounts].reduce<\n Account[]\n >((uniqueAccounts, o) => {\n if (\n !uniqueAccounts.some(\n (obj) =>\n obj.providerId === o.providerId && obj.address === o.address\n )\n ) {\n uniqueAccounts.push(o);\n }\n return uniqueAccounts;\n }, []);\n\n // Remove duplicates that occur when a user reconnects Pera wallet\n state.accounts = uniqueAccounts;\n });\n },\n removeAccounts: (providerId: PROVIDER_ID) => {\n set((state) => {\n state.accounts = state.accounts.filter(\n (account) => account.providerId !== providerId\n );\n });\n },\n })),\n {\n name: \"txnlab-use-wallet\", // key in local storage\n version: 0, // increment to deprecate stored data\n }\n ),\n { name: \"local-storage\" } // prefix in Redux DevTools\n )\n);\n","export enum PROVIDER_ID {\n KMD_WALLET = \"KMD Wallet\",\n PERA_WALLET = \"Pera Wallet\",\n MYALGO_WALLET = \"MyAlgo Wallet\",\n ALGO_SIGNER = \"Algo Signer\",\n DEFLY = \"Defly\",\n EXODUS = \"Exodus\",\n WALLET_CONNECT = \"Wallet Connect\",\n}\n\nexport const NODE_SERVER =\n process.env.NODE_SERVER ||\n process.env.REACT_APP_NODE_SERVER ||\n process.env.NEXT_PUBLIC_NODE_SERVER ||\n /** @todo deprecate this env var */\n process.env.NEXT_PUBLIC_NODE_URL ||\n \"https://mainnet-api.algonode.cloud\";\n\nexport const NODE_TOKEN =\n process.env.NODE_TOKEN ||\n process.env.REACT_APP_NODE_TOKEN ||\n process.env.NEXT_PUBLIC_NODE_TOKEN ||\n \"\";\n\nexport const NODE_PORT =\n process.env.NODE_PORT ||\n process.env.REACT_APP_NODE_PORT ||\n process.env.NEXT_PUBLIC_NODE_PORT ||\n \"\";\n\nexport const NODE_NETWORK =\n process.env.NODE_NETWORK ||\n process.env.REACT_APP_NODE_NETWORK ||\n process.env.NEXT_PUBLIC_NODE_NETWORK ||\n /** @todo deprecate this env var */\n process.env.NEXT_PUBLIC_VERCEL_ENV ||\n \"mainnet\";\n\nexport const KMD_HOST =\n process.env.KMD_HOST ||\n process.env.REACT_APP_KMD_HOST ||\n process.env.NEXT_PUBLIC_KMD_HOST ||\n \"http://localhost\";\n\nexport const KMD_TOKEN =\n process.env.KMD_TOKEN ||\n process.env.REACT_APP_KMD_TOKEN ||\n process.env.NEXT_PUBLIC_KMD_TOKEN ||\n \"a\".repeat(64);\n\nexport const KMD_PORT =\n process.env.KMD_PORT ||\n process.env.REACT_APP_KMD_PORT ||\n process.env.NEXT_PUBLIC_KMD_PORT ||\n \"4002\";\n\nexport const KMD_WALLET =\n process.env.KMD_WALLET ||\n process.env.REACT_APP_KMD_WALLET ||\n process.env.NEXT_PUBLIC_KMD_WALLET ||\n \"unencrypted-default-wallet\";\n\nexport const KMD_PASSWORD =\n process.env.KMD_PASSWORD ||\n process.env.REACT_APP_KMD_PASSWORD ||\n process.env.NEXT_PUBLIC_KMD_PASSWORD ||\n \"\";\n","/*\r\n * big.js v6.2.1\r\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n * Copyright (c) 2022 Michael Mclaughlin\r\n * https://github.com/MikeMcl/big.js/LICENCE.md\r\n */\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n // The default values below must be integers within the stated ranges.\r\n\r\n /*\r\n * The maximum number of decimal places (DP) of the results of operations involving division:\r\n * div and sqrt, and pow with negative exponents.\r\n */\r\nvar DP = 20, // 0 to MAX_DP\r\n\r\n /*\r\n * The rounding mode (RM) used when rounding to the above decimal places.\r\n *\r\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\r\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\r\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\r\n * 3 Away from zero. (ROUND_UP)\r\n */\r\n RM = 1, // 0, 1, 2 or 3\r\n\r\n // The maximum value of DP and Big.DP.\r\n MAX_DP = 1E6, // 0 to 1000000\r\n\r\n // The maximum magnitude of the exponent argument to the pow method.\r\n MAX_POWER = 1E6, // 1 to 1000000\r\n\r\n /*\r\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n * (JavaScript numbers: -7)\r\n * -1000000 is the minimum recommended exponent value of a Big.\r\n */\r\n NE = -7, // 0 to -1000000\r\n\r\n /*\r\n * The positive exponent (PE) at and above which toString returns exponential notation.\r\n * (JavaScript numbers: 21)\r\n * 1000000 is the maximum recommended exponent value of a Big, but this limit is not enforced.\r\n */\r\n PE = 21, // 0 to 1000000\r\n\r\n /*\r\n * When true, an error will be thrown if a primitive number is passed to the Big constructor,\r\n * or if valueOf is called, or if toNumber is called on a Big which cannot be converted to a\r\n * primitive number without a loss of precision.\r\n */\r\n STRICT = false, // true or false\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n // Error messages.\r\n NAME = '[big.js] ',\r\n INVALID = NAME + 'Invalid ',\r\n INVALID_DP = INVALID + 'decimal places',\r\n INVALID_RM = INVALID + 'rounding mode',\r\n DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n // The shared prototype object.\r\n P = {},\r\n UNDEFINED = void 0,\r\n NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n/*\r\n * Create and return a Big constructor.\r\n */\r\nfunction _Big_() {\r\n\r\n /*\r\n * The Big constructor and exported function.\r\n * Create and return a new instance of a Big number object.\r\n *\r\n * n {number|string|Big} A numeric value.\r\n */\r\n function Big(n) {\r\n var x = this;\r\n\r\n // Enable constructor usage without new.\r\n if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);\r\n\r\n // Duplicate.\r\n if (n instanceof Big) {\r\n x.s = n.s;\r\n x.e = n.e;\r\n x.c = n.c.slice();\r\n } else {\r\n if (typeof n !== 'string') {\r\n if (Big.strict === true && typeof n !== 'bigint') {\r\n throw TypeError(INVALID + 'value');\r\n }\r\n\r\n // Minus zero?\r\n n = n === 0 && 1 / n < 0 ? '-0' : String(n);\r\n }\r\n\r\n parse(x, n);\r\n }\r\n\r\n // Retain a reference to this Big constructor.\r\n // Shadow Big.prototype.constructor which points to Object.\r\n x.constructor = Big;\r\n }\r\n\r\n Big.prototype = P;\r\n Big.DP = DP;\r\n Big.RM = RM;\r\n Big.NE = NE;\r\n Big.PE = PE;\r\n Big.strict = STRICT;\r\n Big.roundDown = 0;\r\n Big.roundHalfUp = 1;\r\n Big.roundHalfEven = 2;\r\n Big.roundUp = 3;\r\n\r\n return Big;\r\n}\r\n\r\n\r\n/*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\nfunction parse(x, n) {\r\n var e, i, nl;\r\n\r\n if (!NUMERIC.test(n)) {\r\n throw Error(INVALID + 'number');\r\n }\r\n\r\n // Determine sign.\r\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n // Decimal point?\r\n if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = n.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +n.slice(i + 1);\r\n n = n.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = n.length;\r\n }\r\n\r\n nl = n.length;\r\n\r\n // Determine leading zeros.\r\n for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n if (i == nl) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n\r\n // Determine trailing zeros.\r\n for (; nl > 0 && n.charAt(--nl) == '0';);\r\n x.e = e - i - 1;\r\n x.c = [];\r\n\r\n // Convert string to array of digits without leading/trailing zeros.\r\n for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Round Big x to a maximum of sd significant digits using rounding mode rm.\r\n *\r\n * x {Big} The Big to round.\r\n * sd {number} Significant digits: integer, 0 to MAX_DP inclusive.\r\n * rm {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\nfunction round(x, sd, rm, more) {\r\n var xc = x.c;\r\n\r\n if (rm === UNDEFINED) rm = x.constructor.RM;\r\n if (rm !== 0 && rm !== 1 && rm !== 2 && rm !== 3) {\r\n throw Error(INVALID_RM);\r\n }\r\n\r\n if (sd < 1) {\r\n more =\r\n rm === 3 && (more || !!xc[0]) || sd === 0 && (\r\n rm === 1 && xc[0] >= 5 ||\r\n rm === 2 && (xc[0] > 5 || xc[0] === 5 && (more || xc[1] !== UNDEFINED))\r\n );\r\n\r\n xc.length = 1;\r\n\r\n if (more) {\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n x.e = x.e - sd + 1;\r\n xc[0] = 1;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n } else if (sd < xc.length) {\r\n\r\n // xc[sd] is the digit after the digit that may be rounded up.\r\n more =\r\n rm === 1 && xc[sd] >= 5 ||\r\n rm === 2 && (xc[sd] > 5 || xc[sd] === 5 &&\r\n (more || xc[sd + 1] !== UNDEFINED || xc[sd - 1] & 1)) ||\r\n rm === 3 && (more || !!xc[0]);\r\n\r\n // Remove any digits after the required precision.\r\n xc.length = sd;\r\n\r\n // Round up?\r\n if (more) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up.\r\n for (; ++xc[--sd] > 9;) {\r\n xc[sd] = 0;\r\n if (sd === 0) {\r\n ++x.e;\r\n xc.unshift(1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (sd = xc.length; !xc[--sd];) xc.pop();\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n */\r\nfunction stringify(x, doExponential, isNonzero) {\r\n var e = x.e,\r\n s = x.c.join(''),\r\n n = s.length;\r\n\r\n // Exponential notation?\r\n if (doExponential) {\r\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n // Normal notation.\r\n } else if (e < 0) {\r\n for (; ++e;) s = '0' + s;\r\n s = '0.' + s;\r\n } else if (e > 0) {\r\n if (++e > n) {\r\n for (e -= n; e--;) s += '0';\r\n } else if (e < n) {\r\n s = s.slice(0, e) + '.' + s.slice(e);\r\n }\r\n } else if (n > 1) {\r\n s = s.charAt(0) + '.' + s.slice(1);\r\n }\r\n\r\n return x.s < 0 && isNonzero ? '-' + s : s;\r\n}\r\n\r\n\r\n// Prototype/instance methods\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\nP.abs = function () {\r\n var x = new this.constructor(this);\r\n x.s = 1;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n * -1 if the value of this Big is less than the value of Big y, or\r\n * 0 if they have the same value.\r\n */\r\nP.cmp = function (y) {\r\n var isneg,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new x.constructor(y)).c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n isneg = i < 0;\r\n\r\n // Compare exponents.\r\n if (k != l) return k > l ^ isneg ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = -1; ++i < j;) {\r\n if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.div = function (y) {\r\n var x = this,\r\n Big = x.constructor,\r\n a = x.c, // dividend\r\n b = (y = new Big(y)).c, // divisor\r\n k = x.s == y.s ? 1 : -1,\r\n dp = Big.DP;\r\n\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n\r\n // Divisor is zero?\r\n if (!b[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n // Dividend is 0? Return +-0.\r\n if (!a[0]) {\r\n y.s = k;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n var bl, bt, n, cmp, ri,\r\n bz = b.slice(),\r\n ai = bl = b.length,\r\n al = a.length,\r\n r = a.slice(0, bl), // remainder\r\n rl = r.length,\r\n q = y, // quotient\r\n qc = q.c = [],\r\n qi = 0,\r\n p = dp + (q.e = x.e - y.e) + 1; // precision of the result\r\n\r\n q.s = k;\r\n k = p < 0 ? 0 : p;\r\n\r\n // Create version of divisor with leading zero.\r\n bz.unshift(0);\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; rl++ < bl;) r.push(0);\r\n\r\n do {\r\n\r\n // n is how many times the divisor goes into current remainder.\r\n for (n = 0; n < 10; n++) {\r\n\r\n // Compare divisor and remainder.\r\n if (bl != (rl = r.length)) {\r\n cmp = bl > rl ? 1 : -1;\r\n } else {\r\n for (ri = -1, cmp = 0; ++ri < bl;) {\r\n if (b[ri] != r[ri]) {\r\n cmp = b[ri] > r[ri] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If divisor < remainder, subtract divisor from remainder.\r\n if (cmp < 0) {\r\n\r\n // Remainder can't be more than 1 digit longer than divisor.\r\n // Equalise lengths using divisor with extra leading zero?\r\n for (bt = rl == bl ? b : bz; rl;) {\r\n if (r[--rl] < bt[rl]) {\r\n ri = rl;\r\n for (; ri && !r[--ri];) r[ri] = 9;\r\n --r[ri];\r\n r[rl] += 10;\r\n }\r\n r[rl] -= bt[rl];\r\n }\r\n\r\n for (; !r[0];) r.shift();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Add the digit n to the result array.\r\n qc[qi++] = cmp ? n : ++n;\r\n\r\n // Update the remainder.\r\n if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n else r = [a[ai]];\r\n\r\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n if (!qc[0] && qi != 1) {\r\n\r\n // There can't be more than one zero.\r\n qc.shift();\r\n q.e--;\r\n p--;\r\n }\r\n\r\n // Round?\r\n if (qi > p) round(q, p, Big.RM, r[0] !== UNDEFINED);\r\n\r\n return q;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\nP.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\nP.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.gte = function (y) {\r\n return this.cmp(y) > -1;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\nP.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\nP.minus = P.sub = function (y) {\r\n var i, j, t, xlty,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xc = x.c.slice(),\r\n xe = x.e,\r\n yc = y.c,\r\n ye = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (yc[0]) {\r\n y.s = -b;\r\n } else if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = 1;\r\n }\r\n return y;\r\n }\r\n\r\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\r\n if (a = xe - ye) {\r\n\r\n if (xlty = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n for (b = a; b--;) t.push(0);\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n if (xc[b] != yc[b]) {\r\n xlty = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xlty) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n /*\r\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n * needs to start at yc.length.\r\n */\r\n if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n // Subtract yc from xc.\r\n for (b = i; j > a;) {\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i];) xc[i] = 9;\r\n --xc[i];\r\n xc[j] += 10;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--b] === 0;) xc.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] === 0;) {\r\n xc.shift();\r\n --ye;\r\n }\r\n\r\n if (!xc[0]) {\r\n\r\n // n - n = +0\r\n y.s = 1;\r\n\r\n // Result must be zero.\r\n xc = [ye = 0];\r\n }\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\nP.mod = function (y) {\r\n var ygtx,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n if (!y.c[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n x.s = y.s = 1;\r\n ygtx = y.cmp(x) == 1;\r\n x.s = a;\r\n y.s = b;\r\n\r\n if (ygtx) return new Big(x);\r\n\r\n a = Big.DP;\r\n b = Big.RM;\r\n Big.DP = Big.RM = 0;\r\n x = x.div(y);\r\n Big.DP = a;\r\n Big.RM = b;\r\n\r\n return this.minus(x.times(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big negated.\r\n */\r\nP.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\nP.plus = P.add = function (y) {\r\n var e, k, t,\r\n x = this,\r\n Big = x.constructor;\r\n\r\n y = new Big(y);\r\n\r\n // Signs differ?\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e,\r\n xc = x.c,\r\n ye = y.e,\r\n yc = y.c;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (!yc[0]) {\r\n if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = x.s;\r\n }\r\n }\r\n return y;\r\n }\r\n\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents.\r\n // Note: reverse faster than unshifts.\r\n if (e = xe - ye) {\r\n if (e > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n e = -e;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; e--;) t.push(0);\r\n t.reverse();\r\n }\r\n\r\n // Point xc to the longer array.\r\n if (xc.length - yc.length < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n }\r\n\r\n e = yc.length;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n for (k = 0; e; xc[e] %= 10) k = (xc[--e] = xc[e] + yc[e] + k) / 10 | 0;\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n if (k) {\r\n xc.unshift(k);\r\n ++ye;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (e = xc.length; xc[--e] === 0;) xc.pop();\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\nP.pow = function (n) {\r\n var x = this,\r\n one = new x.constructor('1'),\r\n y = one,\r\n isneg = n < 0;\r\n\r\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) {\r\n throw Error(INVALID + 'exponent');\r\n }\r\n\r\n if (isneg) n = -n;\r\n\r\n for (;;) {\r\n if (n & 1) y = y.times(x);\r\n n >>= 1;\r\n if (!n) break;\r\n x = x.times(x);\r\n }\r\n\r\n return isneg ? one.div(y) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum precision of sd\r\n * significant digits using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.prec = function (sd, rm) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n return round(new this.constructor(this), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum of dp decimal places\r\n * using rounding mode rm, or Big.RM if rm is not specified.\r\n * If dp is negative, round to an integer which is a multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.round = function (dp, rm) {\r\n if (dp === UNDEFINED) dp = 0;\r\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n return round(new this.constructor(this), dp + this.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.sqrt = function () {\r\n var r, c, t,\r\n x = this,\r\n Big = x.constructor,\r\n s = x.s,\r\n e = x.e,\r\n half = new Big('0.5');\r\n\r\n // Zero?\r\n if (!x.c[0]) return new Big(x);\r\n\r\n // Negative?\r\n if (s < 0) {\r\n throw Error(NAME + 'No square root');\r\n }\r\n\r\n // Estimate.\r\n s = Math.sqrt(x + '');\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n if (s === 0 || s === 1 / 0) {\r\n c = x.c.join('');\r\n if (!(c.length + e & 1)) c += '0';\r\n s = Math.sqrt(c);\r\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n r = new Big((s == 1 / 0 ? '5e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n } else {\r\n r = new Big(s + '');\r\n }\r\n\r\n e = r.e + (Big.DP += 4);\r\n\r\n // Newton-Raphson iteration.\r\n do {\r\n t = r;\r\n r = half.times(t.plus(x.div(t)));\r\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n return round(r, (Big.DP -= 4) + r.e + 1, Big.RM);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\nP.times = P.mul = function (y) {\r\n var c,\r\n x = this,\r\n Big = x.constructor,\r\n xc = x.c,\r\n yc = (y = new Big(y)).c,\r\n a = xc.length,\r\n b = yc.length,\r\n i = x.e,\r\n j = y.e;\r\n\r\n // Determine sign of result.\r\n y.s = x.s == y.s ? 1 : -1;\r\n\r\n // Return signed 0 if either 0.\r\n if (!xc[0] || !yc[0]) {\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // Initialise exponent of result as x.e + y.e.\r\n y.e = i + j;\r\n\r\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n if (a < b) {\r\n c = xc;\r\n xc = yc;\r\n yc = c;\r\n j = a;\r\n a = b;\r\n b = j;\r\n }\r\n\r\n // Initialise coefficient array of result with zeros.\r\n for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n // Multiply.\r\n\r\n // i is initially xc.length.\r\n for (i = b; i--;) {\r\n b = 0;\r\n\r\n // a is yc.length.\r\n for (j = a + i; j > i;) {\r\n\r\n // Current sum of products at this digit position, plus carry.\r\n b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n c[j--] = b % 10;\r\n\r\n // carry\r\n b = b / 10 | 0;\r\n }\r\n\r\n c[j] = b;\r\n }\r\n\r\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n if (b) ++y.e;\r\n else c.shift();\r\n\r\n // Remove trailing zeros.\r\n for (i = c.length; !c[--i];) c.pop();\r\n y.c = c;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in exponential notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), ++dp, rm);\r\n for (; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, true, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in normal notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), dp + x.e + 1, rm);\r\n\r\n // x.e may have changed if the value is rounded up.\r\n for (dp = dp + x.e + 1; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, false, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toJSON = P.toString = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, !!x.c[0]);\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Big as a primitve number.\r\n */\r\nP.toNumber = function () {\r\n var n = Number(stringify(this, true, true));\r\n if (this.constructor.strict === true && !this.eq(n.toString())) {\r\n throw Error(NAME + 'Imprecise conversion');\r\n }\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * rounding mode rm, or Big.RM if rm is not specified.\r\n * Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var x = this,\r\n Big = x.constructor,\r\n n = x.c[0];\r\n\r\n if (sd !== UNDEFINED) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n x = round(new Big(x), sd, rm);\r\n for (; x.c.length < sd;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, sd <= x.e || x.e <= Big.NE || x.e >= Big.PE, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\nP.valueOf = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n if (Big.strict === true) {\r\n throw Error(NAME + 'valueOf disallowed');\r\n }\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, true);\r\n};\r\n\r\n\r\n// Export\r\n\r\n\r\nexport var Big = _Big_();\r\n\r\n/// <reference types=\"https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/types/big.js/index.d.ts\" />\r\nexport default Big;\r\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNzcgMTg3Ij48cmVjdCB4PSItMTEuMzgiIHk9Ii0yNS45NyIgd2lkdGg9IjIwMC4wMiIgaGVpZ2h0PSIyMzEuNTMiIHN0eWxlPSJmaWxsOiNmZTU7Ii8+PHBhdGggZD0iTTk0LjA1LDU5LjYxYzIuMDUsOC40OCwxLjM2LDE1Ljk0LTEuNTUsMTYuNjYtMi45LC43Mi02LjkxLTUuNTctOC45Ni0xNC4wNS0yLjA1LTguNDgtMS4zNi0xNS45NCwxLjU1LTE2LjY2LDIuOS0uNzIsNi45MSw1LjU3LDguOTYsMTQuMDVaIiBzdHlsZT0iZmlsbDojMWMxYzFjOyIvPjxwYXRoIGQ9Ik0xMjcuODUsNjYuOWMtNC41My00LjgxLTEzLjU1LTMuNS0yMC4xNSwyLjkxLTYuNTksNi40MS04LjI2LDE1LjUtMy43MywyMC4zMSw0LjUzLDQuOCwxMy41NSwzLjUsMjAuMTUtMi45MXM4LjI2LTE1LjUsMy43My0yMC4zMVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTkxLjc5LDE0MC40N2MyLjktLjcyLDMuNDktOC42LDEuMzItMTcuNjEtMi4xNy05LTYuMjktMTUuNzEtOS4xOS0xNC45OS0yLjksLjcyLTMuNDksOC42LTEuMzIsMTcuNjEsMi4xNyw5LDYuMjksMTUuNzEsOS4xOSwxNC45OVoiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTYyLjIyLDcxLjNjOC4zNywyLjQ3LDE0LjQ4LDYuOCwxMy42Niw5LjY3LS44MywyLjg3LTguMjgsMy4yLTE2LjY1LC43My04LjM3LTIuNDctMTQuNDgtNi44LTEzLjY2LTkuNjcsLjgzLTIuODcsOC4yOC0zLjIsMTYuNjUtLjczWiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48cGF0aCBkPSJNMTE2LjU0LDEwMy43NGM4Ljg4LDIuNjIsMTUuNDEsNy4wNywxNC41OSw5Ljk0LS44MywyLjg3LTguNywzLjA4LTE3LjU4LC40Ni04Ljg4LTIuNjItMTUuNDEtNy4wNy0xNC41OS05Ljk0LC44My0yLjg3LDguNy0zLjA4LDE3LjU4LS40NloiIHN0eWxlPSJmaWxsOiMxYzFjMWM7Ii8+PHBhdGggZD0iTTcxLjY0LDk3LjcxYy0yLjA4LTIuMTUtOC44OCwuOTgtMTUuMiw2Ljk5LTYuMzIsNi4wMS05Ljc2LDEyLjYzLTcuNjksMTQuNzgsMi4wOCwyLjE1LDguODgtLjk4LDE1LjItNi45OSw2LjMyLTYuMDEsOS43Ni0xMi42Myw3LjY5LTE0Ljc4WiIgc3R5bGU9ImZpbGw6IzFjMWMxYzsiLz48L3N2Zz4=\";\n\nexport const PERA_WALLET: WalletProvider = {\n id: PROVIDER_ID.PERA_WALLET,\n name: \"Pera Wallet\",\n icon,\n isWalletConnect: true,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxyZWN0IHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgcng9IjE2IiBmaWxsPSJ1cmwoI3BhdHRlcm4wKSIvPgo8ZGVmcz4KPHBhdHRlcm4gaWQ9InBhdHRlcm4wIiBwYXR0ZXJuQ29udGVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+Cjx1c2UgeGxpbms6aHJlZj0iI2ltYWdlMCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuMDU4NjA0MyAtMC4wNTEyMjcpIHNjYWxlKDAuMDAzNzczMjEpIi8+CjwvcGF0dGVybj4KPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVN3QUFBRXNDQVlBQUFCNWZZNTFBQUFnQUVsRVFWUjRBZTE5ZDVoVjFkWDMrOC8zNy9jbW1rQUVSU1ZmVEY1ck1ER3hSMDFNZVUwTUE4aFFSVUFwU2hVc0NJS0tZQlM3Mk1IZXNLQ0lnZ1VwMDN0bFlBWVlZSURwekF6VEdLWXc2M3QrKzNMR3krV1dVL1k1ZDU5ejFuNmVlZTZkZTg4OVorKzExLzd0dFZmOUwrTEdGR0FLTUFWY1FvSC9ja2svdVp0TUFhWUFVNEFZc0pnSm1BSk1BZGRRZ0FITE5WUEZIV1VLTUFVWXNKZ0htQUpNQWRkUWdBSExOVlBGSFdVS01BVVlzSmdIbUFKTUFkZFFnQUhMTlZQRkhXVUtNQVVZc0pnSG1BSk1BZGRRZ0FITE5WTVZuNDUyZEI2bnB0WnVPbEI3akhaVXRGRjJXUXR0SzJ5aXJ6TVAweWRKZGZUdXBtcDYvZXRLZXVHTFEvVE1wd2ZvaVRVVnRQeUQvZUlQNy9FWnZzTTF1QmEvd1c5eEQ5d0w5enhRZDB3OEE4L2l4aFNJUmdFR3JHalU4Y0YzQUltSzJnNEJIbXVUNjJqbHVrUDB3T3B5bXJSaUovMXJVUkZkT3plUExwMmVUUmRNenFUL2QyczZEUnFkU3IrNEpZWDZqMGloZmlPUzZlZkRrK2xudzVMcGRPMHZJWmxPUzBnU2Y2Y24vUGc1cnNHMStBMStpM3ZnWHJnbjd2Mjc2ZG5pV1hnbW5vMCt2TGp1RUtGUEFEYjBrUUhOQnd3Wlk0Z01XREVJNUpXdmU0NzMwc0c2WTdTbG9JbGVXVjlKOTcyK2h4S1hicWRyNXViUytaTXk2S3pScVFKTVRrc0lBQkNBNVl5UktYVG1xRlFhTkNhTnpobWJSdWVPUzZQQjQ5UHBsK1BUQmRBQWJNejgvZkxXd0Qxd0w5d1Q5OFl6OEN3OEU4OEd3S0V2ZUkrK25UOHBrNjZkbXl2NmpMNWpERnNMbThTWU1EWnUvcUFBQTVaSDV4bkh1S3pTRm5yam15cWE4Y0l1K3V0OUJXTFJBeEFnRFFFUUlPVUFKQUFZQW9oTUFwQVowTkw3RzRBYitvWStvcS9vc3liUllTd0FNb3h0NXNwZFlxelpwUzNpZU9uUmFmWDlzQml3UE1JQ2g1dTdoRjdvNlU4UDBOamxKWFRabmRsQ01nRTQ0U2cyTURFQVRGYWxJNzFBNDhSMUdBdUFiRUJpcWhnampxQ1F4aTY3SzRmR1BWWkNvTVcyb2lacWFPbnl5Q3p6TUJpd1hNb0RuZDI5bExlN2hWNzY4aEJOZUh3SFhUb3RXeHluc0dpaEk0SitDSktKRThDaDBqTXdab3dkTkFBdEJveE1FVG80ME9qbDlZY29mMDhyZFhYekVkS2xiTS9CejI2YXVQb2pYY0xDQmgzTzlmUHlhTkNZVkxFbyt3R2d4cVJaMWkycEJEeXkrZ0lwRExTQkxnd0FodmZYejgrbisxZnRvUTJaaHdrMDVlWWVDckNFcGZoY1ZUZDAwcHF0dFRUbG1WSWFNaTByc1BDR0pkUEFVZjZVb0t3Q0dTUXcwQTVIWllBWWFBcmFnc2JWaloyS2N3TjNqd0ZMUVI1b1BkcERHN01hYU1ZTFpYVHhIVmxDeVF3OWxKQ2lGRlNNV3dXUmVQMGVDbjNRVkhQTkFLMW52bEJHRzdNYnFLMmpSMEhPNEM0eFlDbkNBOUNxWkpZMjA1SzM5OUpWczNLRkRnYldzTFBIcFBsT0R4VXZBQU90UWZQK3Q2VFFWYk56NmFGMzlsSldhYk1pSE1MZEFBVVlzT0xNQjdXTm5iUjZZeFhkOUVDaE1OdER6d0x6UFhiL2VDMWN2ejhYZWkvTUFlWUNWc2QvTGl5a043K3BwdG9tUGpMR2Via3dZTVZyQW9yMnR0SENOOHJwdDFPenhNS0FUNUVmclhxcWd5UG1SUGl1SlNUVGtLbFpZczR3ZDl6aVF3R1dzQnltK3c5NWpUVHB5WjNDd3h1ZTNMRDBxYjVvdVg4QmFSZHpoVG1EZC83a0ozZlM1dnhHaDdtSEg4ZUE1UUFQUUlHN1prc3QzZnhnb2ZEVWhwSVhUTTlBNE01akwrWU9jd2pKNitZSGkrampyYlhVZm93RHR4MVlTbndrdEpQSUxlMDk5TnJYbFhUMW5OeStVQmd2ZVpyN0hYQXhsMXFvMERWemN1bjFEWlVFQ3k4Myt5akFFcFlOdEFYVHZ2cFZKVjA1SzFka0xVQllqTjhYdDlmSGp6bEdsZ3BZRjdGSnNWdUVEUXVMcllSeWlZcVFqM2UrcjZhclo1OEFxbEVNVkY0SHF0RHh3U2tWd0lVc0dPOXVxdUV3SUxsTGpJK0VzdWo1WlZvOTNYaGZ2dkNnWm9uS25icXBVUEN4OHYrQXhFQldER1NTV0o5ZUw0dk5mSDhmUGhKYVpJR3NzbVlhdmF5RStwMVF3bHBoY3Y2dDk0RHVqRnNDK2IxR0x5OFJpUWd0c3B2dmY4NkFaWklGcWhvNjZkN1g5Z2pIUWxpTVdKbnVQYkNSdFlHQU44QWp5Q0tCd0hYRWgzSXpSd0VHTElOMFEzTExWUnVyaE1NbmRCVXdjZitLdmRMWnFCQ0RCOEFqNEJYd0RCeFFFZDNReTFsdURLNCtEczB4UkxDY1hTMDBkSEdSY0I1RXlBWURGVXRWUnFVdzhBeDRCOENWc0tSWTVEUXp4SVErdjVnbExCME1BRGVGUjk3ZEo3elNrWkxFS0pQeTlReHM0WGdBdkhUMjJEUjY5TDE5N0FhaFl4M2lFZ2FzR0lSQ09hcnI1dVhSVDRjbWlYUzhMRlV4K0lRREh6T2ZnWmVRNGhtOGRjUDhmRW91Ym9yQmpmdzFBMVlFSGtDb3hlSzM5b3A4NGZCbVpxQmlvRElEU25wL0F4NkREeGZTQ3gzbE1KOElxNUlsckxDRXlTbHJFWlZZc1BPeFVwMkJTaS9vV0xrT0d5SjREVHdIM3kzb1M3bWRTZ0dXc0VKbzhzSVhCNFdZamlJR0xGVXhXRmtCSWJPL0JlL2hxSWlpdHR4T3BnQUQxZ2w2N0svcG9OSEx0dE5wUTVPRUlwVEJpc0hLTE9CWS9SMTREOWxQd1lzbzJZYXExOXdDRkdEQUlxSXYwK3Zwd3RzelJVWUZxOHpHdjJlZ2s4a0RTTmw4MFIyWjlGWEdZY1lzdGhJU0xmOWd2MGdSQW9YbnJ5YndZcE81MlBoZTF2a0pQSW5ZVkNqbC8vTmhoZTlCeTdjU1ZrMWpweEMzV2JGdWZWRXhNTmxMdzJDRi9QakhTcWpPeDdubGZRbFlxSVJ5K2N3Y2tVdWRGNXU5aTQzcEs1ZStweWNrMFpXemNpaTcxSjlXUk44QjF2cy8xTkM1WTlPRWlNMUhRTG1MaWNISmZucUNaM0U4aEF2RUI1dHJmSGRFOUJWZ0lRUkNpNXBuc0xKL2NUR0EyVU5qOEM0eVA0Q1hsNzIvejFlZzVRdkFRcnJhS1UrWDBrK0dKdEZnTHY3QXNaQXhNaXU0QldnMVI5T3B6NVQ2cGdpRzV3R3JycW1ML3IyNFNIZ1FjM0ZTZTNaOHR5eHdML1lUUEEzREVUSS8xQi9wOHJ5MDVXbkFnalBvOWZQeWhIS2RIVUVackx3SVdOcVlVS1g2ei9QejZVRHRNVStEbG1jQmEvditOcnJzcm14eHptZDlGWU9WdHJDOStnb2VoMDdyanpPeWFVZUZkeXRUZXhLd01uWTIwd1dUTTZrL3NpeXdNeWpyckR5aXM0b0Z0dUIxeENIQ016NjdyTm1Ua3BibkFBdjVxekJ4cU1yTFlNV1NWYXhGN3JYdk5kNC83N1owU2lrKzRqblE4aFJnYmM1dnBNSGowa1VPS3dZckJpdXZnWkhlOFlEM0J5U21pc0lvV3dvYVBRVmFuZ0dzSC9JYVJVb094RjB4V0RGWTZWM2NYcjBPYXdCckFhNFAyTWk5MGp3QldGc0xtOFRFTUZneFVIa1ZnTXlNS3hpMG9DcnhRbk05WUtWdVB5SkVYODYyd0dCbFpsRjcvVGNhYUdHY2FTWHUxMm01R3JDUXl2aTgyekpZWitVVEs1alh3Y1d1OFFHMG9OUDZ6Y1FNeW5ONTZtWFhBbGJKL2piaHVzRFdRSmFzN0Zyb1hyb3ZRQXRyQlM0UGJ2YlRjaVZnN2F2dW9OOU56MlkvSzVhczJNZk1BQThBdE9DYitQczdzd2xSSUc1c3JnT3NocFl1dW41K0hudXdHMkJVTDBrS1BCWnJFalZBQ3g3eGY3NG5ueHBidTEySFdhNENyTTd1WGhxNWRMc284dzNDTS9NeURaZ0hqUE1BMXM1cENVbWk2RXBYZDYrclFNdFZnRFhucFYwaU1wMloxRGlUTXMyWVpxRThnSFJMODE3WnpZQmxCd1dlL3ZRQXA0amhZeUJMMVJKNTRKZmpBNmxwbmx0NzBJNGxhOHM5WFNGaGZaNVNSLzFHSkF2bjBOQmRndjlueVlGNXdEd1BJRjE0dnhFcDlFVnF2UzBBSS91bXlnTldZWG1yY0F3OWEzUXFWMktXdUx2eUlqZS95TDFFTytTSnc5ckNtSXIydHNyR0YrbjNVeHF3R2xxNjZhclp1Vnd3Z29HS2o0STI4Z0NVOENoc2NmV2NYSUlWWHVXbUxHREJkbkhyNHp2b3RJUmtEbWEya1ZtOUpDM3dXTXhMalFITFlUSk5lR0tIeW5oRnlnS1dwbVJuSmpUUGhFdzdwcDFSSGtCKytHYy9PNkFzYUNrSldKc0xHa1VZd1RsYzRZYVBRaXhkT3NvRDU0eE5vek1TVXdnWlVGUnN5Z0ZXZFVNbi9YWnFWaUNnbVpuVlVXWTF1aHZ6OWQ2VDRLQ0VSNkQwcGRPenFhYXhVem5NVWc2d3hqMVdRcWNQWTcwVmc0SDN3TUF0Y3dwOUZ0YmdyZjlSVDUrbEZHQTkvL2xCOW1SbnFaS2xTa1Y0QVBxc2w5WWRVa3JLVWdhd3NrcGI2TXhScVNMTnNWdDJJdTRuUzBGZTVvR3p4NmJSb05HcGxLdFFEaTBsQUt2MWFBLzk2ZTY4Z0wrVklydUxseG1SeDhaQXE0Y0hvTStDZjlaMTgvS29yYU5IQ1VsTENjQmFzR29QSVJDVHF6UHpRdEt6a1BnYTUvZ0VheEpId3dXcnl4bXdRQUdZVDRIaWc5bUZnWFUzTEYwcnlRT292SU0xcWtJaGk3aEtXRGdLWGpNblYvaGM4YTdwM0s3SnRHWmFHK1VCcEZlK2RtNHV0Y2I1YUJoWHdIcm83YjFDM09TaklDOGdvd3VJcjNlV1o3U2o0Y1B2N0l2cjBUQnVnSld6SzJBVlJIb0xaajVubVkvcHpmUTJ3d1B3Z2o5clZDcmw3bTZKRzJqRkJiQ1FsdldtQndxby80Z1VWclN6M29ZM0xKZndBS1Fzck5sL0xTcWk3cDc0cEZhT0MyQzkrbFVsTzRpNmhFbk43TVQ4RzI5TGNMQWFydHBRR1JjcHkzSEFxbXJvRlBVRXRhUmh6TnplWm02ZVgrL05MOWJ1UmJkblVuVWNZZzBkQjZ5NUwrL2lIRmNzWGZFeDBNVThnS01ocXU3TWU5WDVBaGFPQWxaMldZdUlCSWRmQisrODN0dDVlVTc5TTZkWXd3aWx5OXZ0YkZwbFJ3RXJjZWwyNmpjOG1jSEt4YnNyZzVKL1FDbldYS01nNitobEpZN3FzaHdEckcreUdrVEZXWlFXaWtVSS9wNXB4RHlnUGc5Z0xRTzB2czF1Y0F5MEhBRXNtRUQvZG4rQmNPOW5SblNHRWJYQ0F0QTFtUDhMbEZiRHZkdzJiMWhJNXNlZEZOaGNXUktPT2U4STJjSGFkc3JOd1JIQSttaExyVkMwdTQzcDNkemYvcmVrME5SblN1bU5iNnBNLzczMmRTVU5tWnJscXBRLzJQVUhqa3FsSlcvdE5UMXUwT3p4anlwRWVUaytFY1RlckU1UFNDYXNjU2VhN1lEVmZ1eTRLQjgwTURGUSs4ek5JT0NXdm1QQlhuWlhOclYzSExmTVE1Tlc3SFNOM2hIV0swaFdJNWR1dHp4dTNPQ2FPWGxDc2V5V2VZOVhQNUZTR1hHR1I0OVo1N2RZRTJjN1lLM2VXTVZPb2c0ZkxYQVVlditIbWxoenIrdjdWOVpYRW5iUWVDMEdJODlGeGc5WXJtUWxuSnUxY2hmOWJKZzd4bTZFVG5aY2U5clFKQ0hSNm1JcUN4ZlpDbGhJK25YbHJCd2hvdHRCSkw3bnFlSTZqb0kzTFN5a251TnlRaWZ5ZHJlSXlzQ0RGVGVXQkh5RGt1bnVsK1g1Qm4yNHVWYmtObWMrTzVYUFFta0NxUjVGajl1UDJadm96MWJBZ2k3Z3B3bEpydGlkUXlmQWpmOUQzd0xBMmxZa3IwUVR4SHd3SW9KZVZhYkoyV1BTNkRjVE0raGczVEVMKy9mSlA5MWYwMEhuVGNnZ0R0Q1BEVmpnRFVqMmIzMWJkVElSSmY5bkcyQjFkQjRYdWE1WWQ2VnZzcTJDQVNRTUhGOG1QN2xUTW9zUTNmbGNtZEFOV2Uyam5iOUhmQnVLNzhwdVF4Y1hjYjQyblNvTjZMS1E2dnhZbDMyNkxOc0FhODNXV3Rmb1B1eGNTRTdkRzZrLzRIMWNlcUJkOXBxbHQ3K3JWdnBvTkhCVUNsMCtNNGVRRUZKMmUvS1RDclp3NndRczhEcktnMzJXVkNkN0d2cnVad3RnUVgveWp3Y0tlV2N5TU5GV2dFM29iNFltMGVLMzl2Wk5yTXczSlJWdEFnd0hqM05HV2pSS2k5TVRrZ2dicEIwdFkyY3pEVXhNRVM0T1J2dmx4K3ZQdUNXRi9ybXdrQ1NwVUUrWlVsc0FhMU5lSS9VYmtVSy9kR2pCK3BFeGdzZU02UGxMcG1SUjNaR3VVeVpZeGdkd0NyeGhmajZwZUx5SHpnNzVtV1FaR1VMcHBlbndZSDBNcGptL0Q3OTVRWStLdGI4bHZ6R1VsRkwrdHdXd0pqeStRM21kaDVjWURpWmxPSG5hMldCOVU4M0VEOHNsUEsyVGk0L1lPWFNhOHlLN054aFpML0NGbS9pRVBWV2pwUU5XeWY0MmdzV0dNektFMzRHTVRMeWVhMUVjQU5LUG5ZcE9vTUVuMjJxVkFpek55RERsbVZKYndRbzNYNXRjUnovam9IM2RFaWJXUG5TcU95cmFwTStOZE1CYTlHWTVLeWtkT2dyanlJMkZ0Q0h6c0hUR0NMMWhlZFZSa2M1YWxZMElDMkx3K0RUYVhTbmZ5QkE2OXNyRHgraC9KbVc0S2tSSnoyWm41elduSlNRVHNFQjJrd3BZalMxZEl2WnMwQmpPZDJVbk0rRGVrREFnZWp1VjN1TTREQ2tMQ21oQVlvcnVuZFl1R21Ec2NHTndzb0lMd24yZ0w3TnJURjY3THpEZzBtbloxTlRhTFJXenBBTFd1OTlYQytjeHJ4RmZ4ZkZBMG9FaU9IK1BjeFZNRnI1UnJvUjd3NW1qVTJuSXRDdzYzR3lQa1NIY0Nudis4NFBNMndaUERnanBlbTlUZFRoeW12NU1HbUQxOWhMOWUzRVJwNUF4T0tsbXdGQzRNU1FrMGQydnlBdEQwY05CNjlQcmxUQ21JSG9DTWFwT3RueVhoQ2laNFNlN2ZnT0RTTUxpWWlJNVVXSml1cVVCVnY3dVZzTE9wM3JNbVYyVDQrUjk3UWhEMGJQNEQ5VWZvLytaR0Y5ZERvd01mN2szbnpxNzdmT21Ea2NMbEthN2JsNGV4OFVhMkpDQkJYQzVLU2lYbDBaWkdtREJhUkdLTmljWHJoK2ZwZWx2bnZwRWZoaEt1SVVhK2hta2FJQkdQR2dQSXdQMGR0ODRtT0V5ZVB6M3ZyWkhpU054UEdodjlwbkFoSWZla2VmUUxBV3dFQkx4eHhrNUFrM05Eb3gvcDg4TkFzNmJWOHl5Snd3bGVIRkdldi9vZS92akVuS2xHUm5HTG5jMmgzZ3dIYjdPUEN3QWt4Mmk5ZkVxMWpRa3JDdG01aEF5dDhob1VnQ0xKMUwvQkZvRlpzUnFmV3hUR0lvZWh2byt0MUZZeTV6T3hBa2p3NkRScVZRbzhYaWhaN3pCMTlRMWRkSkZkMlFLUDBPcjgraW4zNlB3akN5cFdBcGczZmw4R1R2V0dUamJtMlhXL2lPUzZlYkZSWFFjRm80NE5ZVC9YSHhIbHFPTFZqTXk0RWdXN3pidXNSSVJlbUoyRHYzNE8wUklJQm1pakdZWnNPcVBkSWs0TmlpQy9UZ1pUbzFaaEtHTVRLR1U3ZmFHb2VoaHFzUkhuZlZKR2pRbWxjNmZsRWxWaHp2MWRNL1dhMTc5cXBKMXRRWTNaL2hrL1hacUZqVzBXSGREc1F4WW55RnNnZFBJMmdyV2tEQkFZeFNWVUtFNW1YSkZNekk4dC9hZ0NrTW5FWG9HTDNzdUJteUk1eEdSOFVWcXZlVTV0QXhZMDU0dFZjSTN4eWxKSng3UFFSZ0tkRWE3SzQ5YW5uQVpOMEN3TVN5RlR1aXhZR1M0ZW5hdU5LV3QxZkVqYzhXTjk2cVp1U0lldktuM21RQXNKSUswMml3QlZtTkx0eEQxT0JUSFBxVzdKbUU4OHU0K3EzUGQ5M3VyS3JBamJkMzB1K25aaEtPYVhvWTFleDI4cFNIRnkyb3k4alRCaGNjdGhUbk0wbDMyNzRBUlF4Q3EwMkl0Vk1jU1lDSG9GbjR4c2dmSDkvc1JBR0VXUmhpS2pQTS9GbjNtem1ZcDFVMlFRZ2g1ait5Y3EzNGprbW5va21LeUNyQWEySDJ5clk2K3piRmVwWGhUbkN5bGR0TGE3bnZERmFUZjhCVGFtR1dOL3BZQTY5N1g5N0QreXFBQzBpaGpJTmVWekRDVWhDVkZoRCtyN2NWMWgyeU5yVU1tQmh3NzAwcWFyWFpWL0I1K1FPZFB6cVFsYjF0M1lteHM3YVpMcDJVNUltRWE1UmVWcjRkTHpuMnZXN1AwbWdZczVGKzZkaTRYbXJTVFFiQmdiN3kzZ0RvbEpmWEg3dmJmLzA0U3g3bm1kbXVpT1dyL1FmcXpJeFFMeDJBd045eGxaTFduUGoxQS8rZHZXK2lXUitRVVdVV3hEMGlBZHM2LzErNk5ZUDNyN3M2enhNK21BU3RuVjR2SUZtQUh3M3B0b3N5TVI2U2FIWjRzNVFpRFJZOEszR0FXQktTaXVrbXFSZmNJYkZpb2tHSkg2bUFZR1VDenZWVnlqQXg3cXp2b1Z4UFN4Ymd2dkQyVGFocXR1MGU4OWEzYWhUbk04SnpkdjlGaUMxSHIwbXd6RFZpQmRCdTh3OWd4eVpBd29Cc2MrNWk4TUpRWFBqOG9ja2poM29qdmtsRVNhNjROYVpNMUl3TkNnR1MxNmMrVjlTbkpJUlZ0eUxLZThIRFhvWFpoSlZVbG9hRWRmR2pIUGNGN0s3OHc3NkppR3JER0xDK2gvallyWGUwZ21CdnVpVVVnTThxOXVxR1RMcGljU1pvMUY0bm9SajFxL1dpMFpvdjh0TW1RMkM2ZG5rM1FFOGxvMElIaGFLMmRCSERVWENnaEV5YXNqZi9MbGFFTUg0bUJHZU1zeElPYUFxeTZwaTY2ZUlxejRSbHVBQm9aZmRRa29IdGVsWmZyYXNGcXBLMU9FbGxLMFVkRUpWeHlSeFloU3NGS2cxOFk3aWRUeWdoVUQ1YVQ5QTNXeFdFUEZSRkNtclM1d1hINHIvY1ZTS215OCtqNysydzFQR2g5OXRLcjRMMHBXVlJ2TXZtaUtjRDZJZTlFQUt6TkZqSXZUWlRlc1VBS1F2NXc1QkdYMFRUUDdHQlFnWWtaVWhiS3NWbHBLSzMxdC91Uk5sbU9QeFlrSVlBSmNrL0phSituMUo5aXhRWWRJRzNKS0RpN3JhakpNUWRhdmZ5aituWFF6VUtQdXFYQUhPK1pBcXpIUDZybzB3bW9UaUMzOVErNXlwLzVURjZ1cTRrcmRvaEZDOGt0bUJZNEdpMTczN3FlNlA1VmN0SW1nNUdodC90T2dwOFV3QTcxQksrZG0wc0RScDRLcG5ENmZPdGI2eGxMT2EzU3lUd1Z6Ri9SM29QK0t6NnVNTFVubVFLc3hLWGJPUlZ5Q0FCRW15QzkzeUVNNWNwWjhzSlF0aFEwaWVOUXVCQWFTRE5ERjF2M3gwSjhtRlhuWVlBcDdqSHVQL0pxMmNGUERPQWZqdlo0MXBTbjVjUmxUbitPUTlQQzBUamFaNUR1eHl3enAwTTFERmlpTW81d211UHNETkVteGN4MzJIayszaWFuNURxT2F6Y3RMSXhZNlFXdUF6aDZJdTJ4bFZaUjIwRy92czFhMm1RYzB3SzVydVRVc2FzOWtiZHEwT2p3UEFxRHhoL3V5cWFXZHV0SjVUN2NYTU5aU0ExdTNwanIzMC9QcHFZMjQ0WVZ3NENWc2FOWmxDd1B0MnViV2FUOG00QllEZXNKMGcvTHluV0ZoUlFyWlRVa0RSU1dzTktnMlA3WG9rS2h5ekV6bDVxUlFXYXVxMFZ2bFBlNWNJVHJFM2dYRXFhTVZEMzdhenJvdkFucGRPNEozN0Z3eitQUFRqNDZndjZ3Qm1lWEdmZkhNZ3hZcjIrb1pQMlZ3UjBsRnNNaVZja3ZKQzBnZ0U5TGV6ZGRQak1uWnNFRVllSmZiYjNZSlhKMm13MEdEdVM2eXFBcVNVYUduUWZhaGRWU2N6Nk5SSHVBK1JOcnpPbFJRZ0VlUjJ2TVg2Um44ZWNuQXhib0FYNTV3MFRsSThPQWhjeUJuUC9xMUFrd3k1U1FNR1RudWtLQmlrajZtK0IrUWlHTjRxaFdNeGg4azlWZ09rd0YvWlNaNjJyeVV6dkRHaG1DeDQzM3NGUU5lNmc0Rkh0TS9iOWlUVVZNYVRiMCtYNy9IencvKzBYaldVZ05BVmFnK20raE5ETzIzeWNONDRja0FEUDdya055d2xCRUthNUpHWDFPb3RGb0ROMFJBSE9QeFJBWU9LWmVPRG5UY0NsM1ZKRythbll1dFVzcVVKQlUxQ1IwZHBxVGFMU3h5OUxoQWVFeWRyS2FKQnF0dzMwSFY1aC9MQ2cwdkZrYUFpekVZRjEwZXlhZHplZDFLZUkvd0FJU2hzeVM2L05mM1NOMmU4VE9oV09VME0rdzA4bFE5QTkvdU5pdzVSaEgwaytUNU9TNmdwRUJ1alFqNWVTaHc1T1JCUk11RkZmTnlxV3pScDNxUWhGS2IvNC93SmR3SUVWQkQ2TnhuWVlBSzYza0NDdmNKZXF2K25KZG1mVDZEVDIvb0tMTVdhUFRESG1lQTdEdWZ0bTZWLzFqSHhvci93VWpBOUxjV0QyT2FqUllzN1hXc0I0TmdIblBxOWJTbldqUG4vTVNxMHFNZ0RFVTd3TkhwVks2d2ZSQmhnRHI3ZStxV1g4bEViQWdYYTB5b1hqVUZrbm9LeXE2UUdxQTVLYVhlY0EwTjh6THQreGREcDh2NklYMDFPeURrUUZXT215QU1ob2NPT0cvQmo4MnZlUEdkUmo3OWZPc3BUdlIrcjgycGM2eVA1cVJ2bnZoV215VzczNXZMQXpMRUdBOWlOU3dYSERDMEtLSXhGaG5qRXlsUDkrVFQwalRJcU45bDl0QXFQOW0xTjBFNEFGZEZrSjRyTFREelYwaVhYYXM2a2w5Um9abjVUaHVvcy9QZnFiUHlCQTZGMGdTaUZDb0lnbTFEaEZLZGY0a2EvNW9vZjN6K3YvQWtpVnZHVXVvYUFpd3hqMjJnek0wR0pCZUlqRWNRQVdTME1aTTYybE9zR0FSZTRjWVBFZzRrWjRaN1hPWW1KSGZ5V29ic3l4MkJnOG91ekYrV1FVMU5LQXdtMThlN2cwbzNTV2pqVnpxYlBtemFIUHFodStnRnJqVllIU0Ric0RxN082MUxXR2JHNGdyczQrUWhFWXZrNWZyNnAzdnFpMloxUUdleUJsbHRTSEhGckl0UktJVnBDdWtmSlpaVUFNT3B3QWRJOGZnNFA0aEwvMkVKK1NFQkQyLzlxQ2xlUWp1bHgvZXcza1VSM0lqd2U2NkFRdm1jbVJyak9XUTV3ZENXeGtqamwrWXFQdzlyVmJ4UWZ5K3FiV2JmbjludHFYTW43QnV3YjNnNkRGcm9TcXBNWXd5ZlVZR0NRVTFNZmppZlcwaXJ6cG9hblpPY0lSRmZuWlVnTExha0VrVFk5VGpWbUcydjE3NkhiQUVsc0txQnYzaFlib0JTOHZoYlZSSDRpVUNXeDBMWEEwZ2djaXd5bW1MQzlZNVBVNmkwZnFPQllhRmxtc2hkUzM2QXcvN3krN01wa2d4ZkJpN3pJSWFxTnlEZW5kbXBTdlFCUHlNby9UbWZIUHBUclI1d0t1V05ocksvR2owNXU4Q1JpSHdIWFNJUmpadjNZQzFMclZlbEhYU1l3WGlDUWx2cGNOdS9wdUpHWFN3cmlPWXowMi8zeWZpMkRKRVFqNnJOSWNlNjVYMWgwejNSZnZoeENkUS91dkhoSGxhdjJBVi9NczkrUVRWZ295R25HdzR6c25ZUURIMnBlL0pxZnVJU2xKc21BclAveG92YUsrWU8raXgxbWZvajJmVkRWZ3ZmWW15VHFjeW92WndmbzA5U1pDRVpPUlMxeFk4d3FTczZHK0M1d3dnZzl4WlZ0dkw2dytkNGc4RnhvU2VEQ0U4TWhxcUwvLzlmdk5HaHVCeDR6M0E5SitMQ3FYVVAvd3E0N0FBYk43WVk2OEgwTjZvMFVNM1lLSGFMZndtUWllYi85YzNNVGdtWERFemgrQXpKS09oYWhIdWVlNDRmYytQTlU5SStYSFpYVG1XVTY1b3FvTmdQUTdBYXF5RlBONmg5SHB2RXpKUlJGYnV4eHByNlBmSXRJQ01DL3VxclV1K2RVZTY2T0k3TXFWSXZhSDk5T0wvd0pTSDN0RXYzZW9HckR1ZTVrUmxWaGdHeHc1NFk4dHFNS0dITzNxWjdTT2tJTVQyV1hYbUZHRXFzMzhNVTRGQ0hQcXhBa2xHaGlOdDNmU0h1M0lzR1JuQzBRZ0w1Nk10Y3VZSERyekJlZVREUFk4L0MyeTAyTXltUHFQZkowODNZQ0d5blZOb21KTm1jRTVIbkJ1Q3gyVzByek1QQzJsWDlyRURVb3VNekFsM1BsZlc1M0dQZTg2WFdGQURLV0dzR2huQ2dRV1U5ek5YR3M4ZUVHNCs0ZGZGNmhOOWF3V1lNdHhBMWd4ZGdBVkZLZndsWUk0UE45bjhXZVRKZ2VRQ0t4UXlDY2hvc0VUZE1EK2Y0Q2t2bSs0SUhKWnhkRU80QlJUUFdrRU5xMWxOTmJwcDJVMWplZE9ib1V1ZmEwZW45Y2lEN2Z2YkFsazRMTGhibUJtREczOER0UWI0V2E4dmxpN0FncS9QNzZabjYwcFo0a2FpMmRWbkxReEZWdjV3TE54Vkd5cUY4NlVkZlQ1N1RLb0lyMm13R0l5TkpIb0krZm0vTjIrVFdsQmo3a3Z5akF5aDlNUEdZallMcGdhbzJpdU1BamZlbXkrTzJLSFA0ZjlQM3R5eHFjR1BFRWQ5UFUwWFlHRm5RLzV2ZGhvOW1kaXhtQS8wZ2c2bjdHQzducm1JZVEzaTlZWk16Ykl0allrbURTS1EyVXJEZ3IxeWRxN29xeXdqUTk3dVZnRW9zb3dNNGVZT2VrWlVOSmZSSG55ei9CUnJhYmhuK3YwenJCRVUrVDFRcDg5NVZCZGdGZTlyRlRzbWRrMi9FMWp2K0NGZFFkZXk1RzFqd1ozUkZzdkQ3KzZ6Ulg4VFBDYm9Ydjd6a2ZYVXdkT2VLNU1Xb3dlYUlKUUpDdHJndnNwK2p5UHhLSlBWWEVMbjdmdmNFN1U3eHh2YjVHU1BTZlg3WVVQSFJvbGp0SjZtQzdDUVVSSGlNbTZzT2dGVTZSOHNZNWRNeVNLWXVXVTBCQXVEL25aTHVkQzNqWGpZZXVwZ1NKVnRraktKYnN4cUVHQmxOLzlCTndhWEJGUTJ0OXFnUmhuQzFhVmk0Z1htRkdzbHE3UlpGOGwxQVJaWGVqWU8xSkN1WHZ0YVRoWUF6Q1JNdnpDOVd3bEQwUVBteUNhTG1OSHF4azVkREdUM1JUOGFHY3hsb3RBejVyNXJ4cWNMVnhFQXBJdzIrY21kSXVWUDMvMGxaUHJ3MnIxZzZRNkVSdWxUUStnQ3JNOVQ2cVQ2L0hpTjZLSGpnZWYwRGZQenBPVzZTaWsrSWlZMTJCa3o5Sm15L2djRHdRM2ptMnc1aTlicXdnZm8yK0hHRUlsZXNHNHVlbFBPTVI0Skx6bE1KL1ptRDMvQ2RXbjZ3bk4wQWRiN1A5VFlyaitJeEVCdSt4d0xIajQ5Q05HUTBlQzdkZk9pSWtmemtFSDVMRFBQdkZrNjFCL3BFc2RxSEJtYzRnTTR6eUszR0hMRVcyMG9MSUlqajVWc0VrNk5PNTdQZ1c0U2RUVDFOTksyNU40QUFCOFBTVVJCVkYyQXRYcERGWWZsNkJEbmNWenJOenlGRWg4MVY0WTczSVRCKzlwcEowUklpRGMvV0VqV2wyeTRFZW4vYk5HYjVjS0Z3KzVqY1BCaUJiakF1RlI2d0xwbEYwVm1iM3JBZkpIWjRINTUrVDBBNjgxdnFuUXhoaTdBV3ZuRlFSWnRkUUFXR0IzR0NjVFR5V2pON1QzMHh4bXhDNkxLWnVaenhnV3lTdWcxTmNzWWErZzlkbGEwRS9vUmo0cktPTWJoT0NlalBmcmVQblp2aUxGMm9KdDkrVXQ5bVVKMEFSWUtjK0tZSUh0aGVPbCtrQUpBbzdrU0t0Qm9DMlhGeC9hRW9laWhPM1k5R1NXd3RMRVlmWjIwUWw5QlZEMWpNWG9OeG00a3ZpM2EyQkRoQUluVmJndW4wVEdxZEQwMkNPVGwxOU4wQVJiaXR4aXdvaXNQNFNVZXlIV2x6d0V1MXVUWUdZYWloMW5CUkFza2xMR1BOYzV3MzIvT2J4STZ1M2d0Y3VqTS9qQkRUbWFObHZZZUVhenRwQjVPei95cWRBMnc1Y2xQOVBuKzZRSXNaTFdVbWM1REpXTEo2Z3NzV1pCRVpiVlpMKzRTbTRTVCtwdGdXa0Q1akp4VHNnSzI5ZElGWHZLb0NBeFRkM0Ivbkh3UG9Cd3dNb1dROGxsR1E3NThTRzFPanNGTnp3SmdQYTdUV1ZrWFlDMTdud0VyR2dNZ2dQUHltVG5VY2xSZlBGU3NSWkJWMmtJbzVSM1B5QUxOc3JXbjhtaXM3a3I5SG9IVFRoc1p3czJ0MlBVL2xyTUJ3UUxHN2cyUlR5Z1FocFovc0Y4WEh6Rmd4VkFJaG1QbTBNL0EzREp6WGQzeVNMRkkveHY2SEtmL2h6TDBZNGs1dkdKeHBJeUNHckpvQkFuUFNOcVRhR1BiajFUV3Q2WEh4WUFnaXg1MjNrYzZZQ0cyVElWZHowNmltYjAzNHM5azVycUNvaHRBSVR2WGxabnhvUjkzdjJLOWpIMjB4Uno4SFhaWkhLM2pkUXdPcGhGQ29NNmZsRW1vZXlpakRWMVN4UG5rSWdnSHdCYXBSOElWckhRUHEzK0E1emwyNHFRaU9ib09aT3U4Wms2dU1tbEpVUHBkNUNycXNkOGpxN3pxcUtBeFFvT0NnU09lNzJWYVNtSHg1VTAvL0xFUUp4VFFSMC9UZFNSRTRRVGNOSjdNbzlxemhSdkRzR1JDNm1oWjdZWFBEem9haGhLTHBvUEhCYnkwZDFUb2k2UzNRZ2NvcHFIblFTbTBXUDF5Nm50SW1QZThKa2ZDUkFJQmJBRHhzbnc2UlRNeno4RzhQL09wUG4yaExzQmF1ZTRRS3cxRHhGa2NHYUFVbDVYckNzVWtrUmNJeFNETVRMcGR2d0V6eVhLaWpBUm9xZHVQQ0YrbHdlUFZrYTVBVHhoVGtHbTNzOXQ2RmxJVXFVV3gyak1WbTErNytNYklmYkV4b0NxWG5xWUxzRkQ4RWpjMTBna3ZYd3ZwQ2lYWGpWVDdpRFVaOTcyT2t1dEpTa2tZbUVNY2k2WTlLMCtLREtWRGIyOHZEVjNzYkt5a1h0N0Vob1NVTThWNzVWVHBudjNpTGw1SElScy81Z0t4dDFKRGN6ajQrZVJqQ3B3QUw1bWFSUWpPbGRFS3kxdEZUaURObFVEdmduTGlPb3dWTGh1eWNsdUYwdXVUYmJWS3F4dWdDcEdWSnVpejVEcXhPSjJZTnpjOUE1dmloNXYxVlN6U0pXRjlub0txenl4aGFVd0FTOWJyRytUbHVocjdtUDNaTkxXK0czMkZ6Z1h4a1hvVHJJVUNVclQva1Q3NWlsazVRcmRqdEY5T1hRKyt2KzBKNndWbVFRZFlIRG5WK01tYlA2emgwdFBMYk1vN2tlNDFqRGpuRk9PbzhweEFycXQ4YWJtdWtIY0tPNHdLYmd5UmFBenJGZ3dDc2h1TU9VN211b28wdm1pZkR4cVRTcGRPenliNGlNbG9JeC9aSGxjdi9taGpqY2QzNEh1UndFOW5IUUZkRWxZNkxCeWNJbGxZZUFBdUc3TGs1THBDTnMyLzNJT1NYZkVMUTlIRHBFam9oK0tnTXR2QnVtTWk5aEl4bUhyNkVLOXJJR0ZpUVcwcGFKUXlmQlM1WVBlR0g2VXMwQmRxQjcwU3ZDN0FLdHJiSnBLUXhUTlVKRjRNRy94Y2dCV0tJY2hxcXpaVTJWYXlLN2pmVnQvRElpclNKamZJUzV1TXJCWll1Q280aWNhaUQvUllDRStUMFZEOUJ3dlVpZXl4c2NhbHd2ZlEyd0swU21RV29VQm9nZC9QM2lBc2REbjV1K1ZZaktDdy95MUtkcm5BekkwK29xQkdqYVE4NzhnWEJsckN6MHVGUlJPckR5S2g0YUlpUWtJK3F3MHVFdGZOeXhNbmxsalA5Y1AzMkF6aHpuT3dYbDlFZ1M0SkMrZDNuT05SOU5BUFJBd2RvM0JqU0VpbXV5WG11a0w1TDlYMU54b2QwRTlabGpJcytKRkx0NHZpREc2UXJrQURiRmJuVFVpbmZkVWRWdkZLL1A3ZTEvYXdYK01KZmZpZzBXbDAyVjNaMU55dVQwZW9DN0N3Sy9pNVZEMThjV1RtdWtMNlhTd0M3QzRhS0tqNkt0dklzRDc5c0RLeGtrWm9EajlFV1FIdXlQZmZqOVBOQ042SGJ2elA5K1JUbDg3d0wxMkFoVzFoMkVQRnZnM2VoSVFCaTVhc2h2SlBXQUNxU3hqUUxVQnZ0MUdTa2VGbzUzRzY3dTQ4a1d2S0NGaW9jQzNtYTliS1hWSllvSzZwa3k2NkkxTTRwYW93dG5qMjRSY2pVd1MyNkNXc2JzQ2E4a3lwTDVPUURSeVZJaHduWlpWY1J4bDRXTjBBQnZGa0ZEM1BsbTFrZUhuOUlkY2NnMFBwYzlhb1ZMcDZUaTUxZEZvUDA4SGloTlcxM3dpMXJjT2hOTERqZi9DWWtYVFV1Z0VMT2hjL2h1ZWNucEFrN1NnZ3NtaytFTjlzbW5xWkRrZFdLTnNMOXNneE10UTJCcVNLczBhcmZ3d09SeU5zTUlnRHpKRlVZT1RWOVpYczNvQ3duR0hKaGtMY2RBUFdLK3NQK1k3QWdWeFhSVkpxMUdGWGZXOVRqU3RTVFd0R2h2bXZ5c2xVZ0xFdmZLTmNTRmNxWldNSUIwelJQa09zSnlwSXlXamI5N2NKSGFaYkxLWFI2R0xsTzdpMnZQcVYvcWdSM1lEMVpYcTlhNDR5Vmdpby9WYkxkWlZjcksrRWRpd21QdExXTFlvUndKeXZQVVBWVjFpRDRjYWkxOVFjYSt3N1VMSnJyRHVNRE5IbUJFZjVNY3ZsK09HaFVPdU45K1lyay9zczJyanQrZzVTSzJocXBPaXdic0RLMjkwaVVwLzR3ZUVORWdaRTFkdWYyaGxyTGVyK0hoa1ZvYnhYWGRFTzVrUS9uOUZaZGtrUEFTYXUyT0VLSTBPc2hZbmtnaGZma1VsMWtvTGVIM3h6cjlLQjM3SG9ZZlY3WUFrMngvdzkrdXQ0Nmdhc1EvWEg2TUxKbWE0d3hWc2xKS1FCNkhCa1ZQL0ZnaFk1dlNla2swclpOQ1BSYUdCaUNsMHhVMDZKSzR4OWMwR2paeVJ6TFZBWDhaOHkydmU1M3FGTkpINks5am5XMlVXM0cwdERyUnV3T3J1TzA1L3V6aE1leXRFNjRmYnZoUDVtYUJJdGZtdXZESjRVOTRBNUhNcDdOMGhYMG8wTUN3bzhGZXlMTUowSDN5eVh3aHVOTFYwMFpGb1dJY0RhN2V2R1RQK2hIb0hYZjFlMy9oQUMzWUNGR1JxN3ZFVHNsbVk2NTViZmFHRW9zc1QrN0xJV2tUN0ZEWEdZTURMY3ZLaElXaTFDdHhnWmpQQW02algrN2Y0Q2FZWVlWTGlHYWQ5SUg3eHlMZlJYNC85akxIV1BJY0JhOUdhNTUwTUtrRWxVWmhoS29HU1grZ3hwajVFaDIzTVNPVlFGb0pXczFOakl0T25YZWdsSXYyMzBKR01Jc043NnR0clRnSVV3RklRZ0llMkxqUFpsV3FCa2wrbzdvbVprbUNLeG9BYXFoYnZGeUdCMGZyRFEzdm0rV2dhTDBLNURSd1VBQWdpTjlzUHQxOE93aGNLNVJwb2h3RUt4QUs5Vy9vQkNGYm1salpoWW94RWFIdEhRK2FIa3VlcU1CZVdueklJYUNCS0d2NVViakF4bTVrWjRaMHZLYzMrOGwraC9IeWgwQlorWW9WV2szOENsQVhHRTZUdWFveTJqVTc0ekJGalZEWjBpTHhJWVBGSkgzUGc1SkF3d1llS2oyMDhoa05rUHREQVUxUlh0NkI4a0lVUXl5R296WGloempaSEJETDlDejNuNURIbDU3aDk5YjcvdmpvVklLSUI0U3FNcGl3d0IxdkhqdmZTUEJRVTBJTkZiVmcySTQ3Qlk1TzdXN3c4U2JYSFhOblVLZngwd3Rwa0Y0ZVJ2MEVmazVaSlZVQ056WjdOd2huU0RrY0VzblNFZFFQbWVWaUtuZ082Mm9pYVJkUmIzTmRzbnQvME9HUEtQQllVRUNkTklNd1JZdURGTTlGNktLY1RSQlNFWGMxNlNFNGtQR3NFaDhLZEQxYy9HQUNhSGRJWE1wN0xhaUllTGZSSFVDNTU1NmhNNUdUeGFqdmJRSCs3S2RrVXlSMW5BQ0F4QjJUT2p6VEJnZ2JtOVpOV0FhUHJyMnpLb29sWk9jcmFkTGdwRGtaM3I2b3RVZHhnWlpDdzY1SGtmOFVpeDBmVVc4ZnJwejViNXlyMEJHSUo2cDBhYlljQ0N5SS9qazFmRVYwZ1lLejZ1TUVxM2lOZFBja3V1cXhONnV3MlpjZ3Bxb0xMeE5YTnpQYWN1aUFSdTBPTWkzaEtsdTJTMER6ZlhlT3JrRW9sdStCellBUXpSVzNnaW1MNkdBYXNSNlpJOTRwMExLOFVmWitUb1RzOGFUTGh3NzdjV05oR2NMMVVIY3lqYWtmRlNaa0dObGVzQ3VhNVVOekpFVzBoR3Y0T2habDFhZlRoV01Qelp2cG9PT205Q0JwM3JNWU5XT0pyQ3MvOTNKa3VuR1FZc3pBU3NhUkNKdzNYR1RaOUJMTVhPSnFNaCt2Nm1oWVVDc0ZTbmdXWmtNQkowR28xRzFZMEI2L0VnRnhnWlpNNE45RERJenk2ckRWMWM1SXVzdnZCd0g3M01uRVhlRkdBaDg0RGI5VmlRaEc1Nm9GQmFpTVVIbTJ1RUtWL21nckRqWHBDQW9EQ2UrN0p4aFdla2hibGdkYm00cDUra0s4d05mQkp2bUo5dktCWXVFZzN4K1JOcktueVJjdzdZWVZZTll3cXdmc2hyRkJLV3l0V0tveTEySE5rQVdEakN5V2pON1QzMGh4azVyaWpkSkl3TUV6UG9nQ1Fqdy9aOWJTSTN1Ujg5dFJHaUErZlk0bjF0TXRpSU1sQ3dPTkU3K3VGd2F4QnJ6MHBoV2xPQVZkZlVSUmRQeVhKbEVuMUlBUkRsb1J5WDFiQmJRSGtmYm9KVSsweTJrV0hDNHp2bzV5NG9xR0hYUEVCYWtPVVdnaUlkVjgzTzlWejhaVER0c1dHaXhxVlp2ejlUZ0lXRlBtYVpPek0zd0xxRFAyVEJsTkhnRGdHM0NFeEU4TVNvK0I1R2hzdG55ak15UU5MdVB5SlplU09EblhQUmIwUXlUVndoYi9PRGI1S1gvQnhEYVEvOUZRcHdtRzJtQWV2NXRRZGRkOTRXVHFKRGsyalJtL0xDVU9CdzZxYVM2eDl0cVRYTEt5ZjlEZ1UxL242L3QzSmRoUzR1UGYvRDBBQ0xGMUpneTJocmsrczhEVmhZS3l1L09HU2FWS1lCQzNtZTNPYVBoVEFVcExoRjZJeU1oZ29xMERtNG9aQkEvMXVTNlo4TDVSa1pFR1VQNXRPenFMMThqZERKakpTbkQ2MnNQeWI4dTd3V3J3c2VnTTRQYXpCdnQvbEtUS1lCcTZQck9GMDcxMTBaU0tHL1FmVWZXUzF4NlhiaG5heTZkVXhUZEc2VFpHU0FOSEhabmQ3TGRXVVdXS0hIV3ZiK2ZsbHNSU01mMmU0Szl4aWo5RG96TVZVVTBrVWxlYlBOTkdEaGdmQkJjY3Q1RzJsZWtPNUZWaUZNcEtGQk9ocUFnZEdKYy9KNnpjZ3cyYWNGTlp5Z05VS2NibjZ3aUF6RzhVWmNzOCs1VU4yaWg4N0lJM2IvS212cHBTMEJGc0k2NERHdHA3UHh2RWJrdWhxV1RPdlQ1WVNoSE9zOExoTDlnVkhqT1M0OXo4YlJBaTRIcFFmbEdCbEVRUTBZR1h6Z2thMkh2cmdHM3VubjNaWWhpbzFFUkNFRFg2QkNGWTVPT0VMcDdZTWJyb09CWXFQRkFoNldBQ3NRcHBNdFN2V29TakJJR0NEVUxZK1k4NndOeDJkSW9ld0dOd1lZR2RCUG8ybG93NDFaK3d6Wk90eGlaSENTSjNIUytHU2JISU9HRnd1K29KelhwZE95Q1poaHBWa0NMRHg0K25OcVI1bERJUTdGT0l3RU1ocjhSeTZabXVXS1ZDRFlwZUh6VWlmSnlCQW9xSkhpdVoxZkJyQUJzTXlrUzRuRWsyNVN0K2loSDlRbmR6NVhGbW00dWorM0RGaWZwNmh0aGtXQUt2SlR5V29Qdm9WY1Ywa2lCYkNlaVlyWE5kQ3R3ZWZsd3kxeVlpVkJQNUhyYXJnNzhudzVUWGRZeksrZWt5dUx6U2lwK0VnZ21zUWp4MElBRnRJUFdXMldBZXR3YzVmWXhWVjBuQnc4UHFDL1diV2hrbEMwOHJ1Y0J0Ti8rRDE4bUtDcmNJUEpHWDFFSmxFVXdyQXlidngyVTE0alFSR01MSkdxR3htY0JpcnRlZEEzUVZjSXIvZE5FbmdOUWZtL21aZ2g3cWs5dzYydndBYndZa05MbDFXOElzdUFoUjdjOVh5WnNKaXBTRkRvY1hCK2hvTGM2aDlpb01DVXFyc3hhUE9Bc1dQbnR6cHU3ZmNNVnRHVjRERHVJSFd5Umk4cnI1ZzN0L0NaeG0rUlhuRmNucmxTVHJDOUZNQ0N0UkJITDFXRG9iSFFaUDFGbWhSVlA1YzFibFhuVmpXNlM2TzNSNDZDbUI5NEVueGowVHFvaVdaU0FLdjFhSTlJaEFjbHIyb014UDJKTGhVd2ZaZytkdkxBV2FOUzZZcVo4aW9NU1FFc29CK1UwVzdQa1dYbnhQRzlHUmo4eUFOd2dYbm9IWGxHTDJtQWhmZ2duTHU5NXV6bVJ5YmpNVE80eXVBQkxYYXdvTng4N0tCMkZOUmVwUUZXYnkvUnY1SGkxUU9wazJWTUZ0K0RGNzNmZVFCWWtMQkVYbVVoZ0pZMHdNTE5BaEg4N2toazUzZG00dkV6b05yTkExQVJ2YjlKbmgrZ2RNQnFiT21pSVZPemxBN1ZzWHVTK1A0TUJNd0Q2VFJvZENBVXA4bGlLSTUyRk5SZXBVcFl1T21pTjFHUVFQMkFhR1lxQmhibUFmdDRBQmdnTTFHbWJZQzFvOEsvUlFsNEFkaTNBSmkyN3FFdG5LdVJ6UU5ZSUx0Smw3RFFRVkdZd0FWcFozZ1J1R2NSOEZ5NVo2N2dSSDdiRXp0a1k1VzRueTJBaGVJRS9VYW9Yd0daRjRGN0ZnSFBsVHZtQ3A3K1dQdWI4eHZkQTFqSGUwbFVRV1lYQjNjd0dZTUJ6NU1zSHNDYS8rZWlRZ0lHMk5Gc2tiRFEwYldLcDUyUk5VRjhIMTdzekFNLzhnQUNuV1dra1lrRWRyWUJWbGQzTDkwd1AwOUVyL09FL2ppaFRBdW1oVmQ1QUhVVC9ueFBQbUh0MjlWc0F5eDArTDFOTmV6aWNDc3ZVSzh1VUI3WHlid05SOUVQTnN0SkV4MEo4R3dGTEZTb1FSWkdwQ2pteVQxNWNwa2VUQTh2OGNEQXhCUzZWbUpWcXJnQUZoNzZ4c1lxVnhSczhCTHo4RmdZREozbWdkT0dKdEhiMzFWSHdobHBuOXNxWWFHWGJSMDlMR1h4c1pBbGJBL3pBRkpuUTdvNjJtbStRS3BlUkxNZHNOQ1JEN2ZVc2k3THd3enI5RzdPejFOTGdvVHU2dU90OXVxdU5FQnpCTEM2ZTNycGIvY1YwQzljVUhpVUY0TmFpNEhuUSszNWdOL1YzKzh2SUt4eEo1b2pnSVdCSUtlenlQdnVvVnpWdkpqVVhrdzhQL2JPRDd6YXNhWmw1V3ZYQTNpT0FSWTZNMnBaaVJnZ001SzlqTVQwWmZvNndRTUFxOUhMU3ZUZ2pMUnJIQVdzM0YwdE5IQlVxaWRxclRuQkVQd01CaDVWZVFBWkdaQVNIYW5Sbld5T0FoWUdOdStWM1hSYVFwSm5hcTZweWxEY0x3WTd1M2dBOVJLeGh1ZS91dHRKckJMUGNoeXdxaHFPMFFXM1p4S1hCT01GWmRlQzR2dmF5MXRZdXhmZW5rblZqWjNlQnl5TThMV3ZLOW1abE4wYzJEZkxwVHp3MDZGSnRHcERsZU5naFFjNkxtSGhvVENCM3JTd2tQcVBTT0dqb1V1WmxxVVllNlVZRmVtTG8yQy9FY2wwODRPRjFHTlgvcGdZTUJnWHdFS2ZjbmExQ0tYZHVXUFRlS2RsMEdJZWNBRVBuRE0yVGFoeThoMVd0QWRqV053QUM1MVk4dlplY1RRRWNxdTRvM0NmZUY2WUJ3SThnRFg2azM4bjBkTDM5Z1hqaCtQdjR3cFlyVWQ3NkpvNXVYUUdlOEF6WVBPbXBUUVBZSTMrNmU0OGFqdmE0emhJQlQ4d3JvQ0ZqbXd0YkJMVm9nZVA0Nk1oNytZczBhbklBMWliQ01GSktqb1NqQjF4ZVI5M3dNS29GNndxNTZNaFN4aEtTeGdxQW9rVGZjSlJFRmJCQmF2TDR3SlFvUTlWQXJCYWdvNkdyTTlpS2NPSmhjalBpTTFuV0l0SVdIRE4zRHhxYVkvdlVWQURMaVVBQzUxSjNYNkVrQk1hbGdobXB0ak14RFJpR3RuTkExaUxBeEpUS0sya1djT0x1TDhxQTFpZ3hPTWZWZEJQaGlZeFlQSHhrSGxBQVI3QVdueGlUVVhjUVNxNEEwb0JGaHhLaHoxVUxESTYvR29DNzZCMjc2QjhmK2F4Y0R5QXRZZHlYU01lTG82YmcyZ3dTQVcvVndxdzBMRjlOUjEwL3FSTTRWUWFqcGo4R1M4eTVnSDdlQUI2SzJSVXVXQnlKbFhVZEFSamhSTHZsUU1zVU9XcmpNTWlCSUJkSGV4alRGNzBUTnR3UElDME1RaVoyNWgxV0FtQUN1MkVrb0NGVGo3eTdqNE9rRlpBanhHT3Fma3o3NElkdk5tWGY3QS9GQ2VVK1Y5WndJSSthL2pEeFhUNnNHUmlmWlozRndpRG54cHppeldHWWhJamwyNVhUbThWakpiS0FoWTZXZFhRU1pmZGxTMThRUmkwMUdCc0JoanZ6UVBXRmp6Wi96Z2poMnFibk05eEZReElzZDRyRFZqb1BOSXFRNWVGcEdIc1ZPcTl4Y0lBR044NXhackMyaG84UHAzeTl6aWI3amdXT0lYN1hubkFRcWUvU0trWGlrQk9SUk5mNW1adzhSNzlzYWFnWlA4aXRUNGNQaWozbVNzQUMxUjdkdTFCb1lSSGFTRmVPRXdENWdIclBJQzFoRGpCNTlZZVZBNllJblhJTllDRkFkejk4bTZSazRlWjFUcXpNZzJaaHJBSVlrMjVxYmtLc0xwNmVtbmNZeVdCcWp2c0NjK1NKcnQ5bU9JQktObFI5UVpyQ1d2S1RjMVZnQVhDTnJkMzA5OFhGSWpRQWJZY3NwVEFrcUl4SHNDYVFkak5QeDRvb0daRk1qQVlBVXpYQVJZR0IzZUhxMmJuQ205NEJpMWpETXNMM0wvMHdscEJFUW1zbmVvR3RkMFhJb0dZS3dFTGc5bGRlWlIrT3pWTCtJOHdhUGwzRVRJQTY1dDdyQkg0V2cyWmxrWGxsVWNqNFlIeW43c1dzRURaL0QwdDlPdmJNbWhBWWlwN3c3TSt4NVEreHcrQUI3RENHdm5OeEF3cUtGZmYxeW9hYXJvYXNEQ3cxSklqQlBNc0lzeFowdEszMi9waGtmSVlBN3lBTlRFd01WV0FlVnBKL0hPeVJ3TWpQZCs1SHJBd3lDMEZUUVFIT0FZdEJpd0dxaDk1UUFPcmM4ZWwwN2JDSmoxNG9QdzFuZ0FzVVBtSHZFWkNhZ3pzSml4cC9jaTB2SUQ5U1lzZndTcU5OdWMzS2c5RWVqdm9HY0RDZ0xma045TGdjWUh6T29PV1B4Y3FBM1M2MkxDaHM0S3FaRXVCZDhBS2E5eFRnSVVCSlJVMWlRbEQ0VWNHTFFZdHZ3RVllQjY4Zjk2RWRFb3U5c1l4TUZqNjhoeGdZWEJacGMxMDRlMloxUDhXQmkyL0xWZy9qeGRnMVg5RU1sMTBSNlpZQThFTDNTdnZQUWxZbUp5Uy9XMGlsOWJQaDNNQ1FEOHZZcitNSFdBRkQzYmt0TnBaMGU0VmZEcGxISjRGTEl5MG9yYURicnczWDhSTitZVnhlWnorUEFZak52Q3Y5eFhRZ2JwanB5eHlMMzNnYWNEQ1JEVzFkdE9vWmR0RnZVTk9UZVBQeGV4bEVOZFN4SXhkWGtKSDJycTloRTFoeCtKNXdNS29PN3Q3YWZhTHUwVHVIN2crZUptQmVXeitBV1h3TXZKWklVVU1haUQ0b2ZrQ3NMU0pYUEZ4aFNqU0t0SXRjM29hQm02WGhqTkJYd1VlN2pjOG1aNzg1SURHM3I1NDlSVmdZVVkvMkZ3akhFd1JDSXFKWjRtRWFlQW1IZ0RQZ25jaFhYMjRwY1lYSUJVOFNOOEJGZ2FmVmRwQ1Y4ek1FU1hFM01TczNGY0cxOU9ISmRFVnMzSUVEd2N2WkwrODl5VmdZWEpSem1qTThwSSt2UlpYNUdFd1VIVkRBRzlxK2lvbzExVXZ4V1VuZVBvV3NFQlVxQ2xSNVJZT3BtZHl0Z2MrSGl1bzA4SVJFRUg5T0FZKzlxRzZGWm50QktuZ2Uvc2FzRFJDZkpsZVR4ZmNua2svRzU3TWkxYkJSYXVxNU9ORXY4Q1RpTnBZbjNGWVkxZGZ2ekpnblpqK1BaVkhhZGhEeGVLSWVNN1lOQzdheXNBVnQ4MExSMER3SUZ3V1JqeGNUSHVyTzN3TlVzR0RaOEFLb2tiUDhWNXhSQnlZbUJKSXZjeUxObTZMMWducFJjVm5BS3h3L0lPS0FrZkE0OGY5NFY4VnRBeWp2bVhBQ2tPZWxPSWpkUDI4UEZiSU0yQTdCdGpCaXZVYjV1ZFQ2bmIzWndjTnM3UXNmOFNBRllHRXJSMDl0UGl0dlNJaG9QRFo0c1hyMk9KVlVmS3h1MC9nTVNTZkJNKzFkZlJFNEVyK21BRXJCZzhndjlZTjh3UFNGdXUyMlBWQkpuQUY2NnJBWTBrZXpGOFZZM2taL3BvQlN3ZkoybzcyMENQdjdxT3p4NlNLdW00eW1aYnY1VjhRUkkzQXM4ZW0wU1B2N1dPcFNzYzZ4Q1VNV0RvSmhjdHlkclhRME1WRmRGcENzb2psd2c3SmdNTTBNTUlENEJuRUFZS0hFcFlVVWU2dUZnTWN5SmN5WUJua2dkNWVvdFVicWtRUlYrUWdnZ2N5QXhlRFZpelFBbytBVjhBelE2Wm0wUnNicXdpOHhNMFlCUml3ak5HcjcrcXF3NTEwejJ0N3hHNkpyS2FjYTR0Qkt4Sm9nVGZBSTROR3A5RjlyKzl4YlpuNFB1YVA0eHNHTEl2RXp5NXJwdEhMU2tTcUR5VC9qOFMwL0xrL0FlMk1XMUtFM2hOeHF6bGxmUHl6dU54WWgyV1ZnTnJ2djB5cnB4dnZ5eGNaSU9CNHlnRGxUNERTNWgwOGNQcXdaSkcyZUgxNnZjWW0vR3FSQWl4aFdTUmc4TSs3dW52cG5lK3I2ZW81dVVKWGdhQlZqWUg1MVI4QWhqbUhudXFhT2JuMDd2ZlZCSjdnSm84Q0RGanlhTmwzcDlhalBmVEtWNVVpYnhHWWw0SEwrMkFGcDAvTTlaV3pjK20xcnlvSlBNQk5QZ1VZc09UVHRPK09MZTA5OU5yWGxYVFY3Rnc2UFNGWkZMaGtTY3RiNEFXOUpZNStWOC9PcGRlL1pxRHFZMzZiM2pCZzJVVFk0TnRpdDhWUkVTWEhZQzJDdytCZ0xvYmgydU15NWc1emlMbUUzdkxkVFRYcytCbk04RGErWjhDeWtiaWh0MFpsazNXcDlZU3NrV2VQU1JOUzE2QXhyT2R5aTlTSnVZS2tqTG5ESE1MUTRwZHFOYUc4SEsvL0diRGlSUG44M2EzMHdPcHk0WUNxSFJjSGovZldjY2t0UUJTdG41Z1RjZXhMU0JaenRmQ05jc3JmMHhvbnJ1SEhNbURGbVFmcW1qcHA5VGRWZE5QQ1FwRURDZUNGWEVpLzVMQ2Z1QjBaUVh2TWdUWVhtSnMzdnFraXpCVzMrRktBQVN1KzlPOTdPb3pmV2FYTnRPVHR2WFRsckZ6cVB5S0ZmallzY1B5SUpnSHdkL0trVWh6MVFIUFFIb1lTekFYbWhKczZGR0RBVW1jdStub0NKZjNHckFhYThVSVpYWHhIbGxoRUlyUmpUQnBMWGhJbFQwaFNnOGFrQ2VVNWdBcTBudmxDbWFBOTU2VHFZMGVsM2pCZ0tUVWRwM2FtdXFHVDFteXBwU2xQbDlLUWFWbkNPZ1V6T255N1dPZGxYTG9DelVBNzBCQ1dQdEIweWpPbHRHWnJMVlUzOHBIdlZBNVU2eE1HTExYbUkycHY2bzkwMGRlWmgrbisxL2VJRk02UURxQm42VGNpUlVnS0hJQjlLb0NCSnFBVHdBbTB3dnZyNStmUi9hdjJDRnFDcHR6Y1F3RUdMUGZNMVVrOVJjZ0hMSTB2ZlhtSUpqeStneTZkbGgyd1pwM1F3Y0FFNzBjSkRHTWVORHBWNktFQVVBTkdwdENsMDdNRmpVQXIwSXpEWlU1aUpWZjl3NERscXVtSzNObkR6VjIwdGJDSm52cmtnUEFSK3YyZDJTTDFEWTQrMEg4aGRBUXBucjBraFdFc0dOT0F4RlF4UmdBVWt1TmRkbGMyalgyc2hKNys5QUJ0SzJ5aWhoYVdvaUp6anJ1K1ljQnkxM3pwN20xamE3ZXdjQ0ZSM0l3WGRvbXNBZWRQeXV5VHdxQmsxc3BKWWRGRE1sSFJsUUo5UXQvUVI3Z2FvTS9vTzRBWS9sRVkwMS92S3hCamhPdEJkbWtMTmJWMjY2WVRYK2d1Q2pCZ3VXdStUUGNXTlJjUDFoMmpyUVZOOU1yNlNwRklMbkhwZHJwbWJpNmRQeWxEU0NiUTh5QjFMd0FCN3dFSWtGaGc3a2UyVE5tZ3BvRVI3bzFuNEZsNEpwNk5QcUF2ZUkvUEFVem9LL3FNSkhnWUE4YUNNV0ZzM1B4QkFRWXNmOHh6eEZGMmRCNm5pdG9PeWk1cm9iWEpkYlJ5M1NIaGdUOXB4VTc2MTZJaTRZOTB5WlFzK3RXRWREcnJoSVFESlQrT21RQVZJZTBrQUZ5U292N2h1S1pkajkvaUhwQ1dBRWE0TjU0QjN5YzhjOUtUTzBVZlhseDNTUFFKZlVNZjBWZHUvcVlBQTVhLzV6L202TnVQOVZCdFV5ZVZIbWluekozTnRLV2dpZGFuSDZZUE50ZlFxZzFWdFBLTFE3VGk0d3BhOXY1K2V2VDkvZUlWNzdVLzdUTmNBekRFYi9CYjNBUDN3ajF4Ynp3RHorTEdGSWhHQVFhc2FOVGg3NWdDVEFHbEtNQ0FwZFIwY0dlWUFreUJhQlJnd0lwR0hmNk9LY0FVVUlvQ0RGaEtUUWQzaGluQUZJaEdBUWFzYU5UaDc1Z0NUQUdsS01DQXBkUjBjR2VZQWt5QmFCUmd3SXBHSGY2T0tjQVVVSW9DREZoS1RRZDNoaW5BRkloR0FRYXNhTlRoNzVnQ1RBR2xLUEQvQWRXcDJSQnhQVXVTQUFBQUFFbEZUa1N1UW1DQyIvPgo8L2RlZnM+Cjwvc3ZnPgo=\";\n\nexport const MYALGO_WALLET: WalletProvider = {\n id: PROVIDER_ID.MYALGO_WALLET,\n name: \"MyAlgo Wallet\",\n icon,\n isWalletConnect: false,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PHN2ZyB3aWR0aD0iMjM4IiBoZWlnaHQ9IjIzOCIgdmlld0JveD0iMCAwIDIzOCAyMzgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik01MS43MDUgMTQ1LjA0MkgxMTYuNzA1TDEwNy43MDUgMTU1LjA0Mkg1MS43MDVWMTQ1LjA0MloiIGZpbGw9IiNENjQ1MDAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNDcuNTE5IDE5MS41NTdMMTI5LjU3NyAxNDQuMzk0TDE0Mi40MDQgMTI3LjExMkwxNjcuODc1IDE5MS41NTdIMTQ3LjUxOVpNMTEwLjkzNiA5NS4zOTMyTDEyMC42MTMgMTIwLjgzMUwxMzMuMzU5IDEwNC4yMjhMMTE3LjQ3NSA2NC4wNDIyQzExNS45MjggNjAuMTI4IDExMi4xNDYgNTcuNTU2NSAxMDcuOTM4IDU3LjU1NjVDMTAzLjcyOSA1Ny41NTY1IDk5Ljk0NzQgNjAuMTI4IDk4LjQwMDMgNjQuMDQyMkw2Ny45NjU5IDE0MS4wNDJIODcuNzgwN0M5NS40MTUzIDEyMS4wMTEgMTAyLjg5MyAxMDEuMzk5IDEwNS4xOTggOTUuMzU0MUMxMDUuNjQxIDk0LjE5MTIgMTA2Ljc0MyA5My40NTk5IDEwNy45ODcgOTMuNDU5OUgxMDguMTMyQzEwOS4zNzggOTMuNDU5OSAxMTAuNDkzIDk0LjIyOTMgMTEwLjkzNiA5NS4zOTMyWk04MC45MjEgMTU5LjA0MkM3NC45Mjg5IDE3NC43NjggNjkuODY2MSAxODguMDYzIDY4LjU0NDcgMTkxLjU1N0g0OEw2MC44NTE0IDE1OS4wNDJIODAuOTIxWiIgZmlsbD0iIzIyMkI2MCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE3Ni4wMjYgNTQuNzUwOUMxNzcuOTk3IDUyLjA4NzIgMTgxLjc1NCA1MS41MjU3IDE4NC40MTggNTMuNDk2N0MxODcuMDgyIDU1LjQ2NzggMTg3LjY0MyA1OS4yMjUxIDE4NS42NzIgNjEuODg4OEwxMzAuMDEzIDEzNy4xMDdDMTI5LjcxNCAxMzcuNTEyIDEyOS4zNDEgMTM3Ljg1NyAxMjguOTEzIDEzOC4xMjNMMTE3Ljg1NiAxNDUuMDEzQzExNy4wODcgMTQ1LjQ5MyAxMTYuMTI4IDE0NC43ODMgMTE2LjM2MSAxNDMuOTA3TDExOS43MTggMTMxLjMxOEMxMTkuODQ3IDEzMC44MzIgMTIwLjA2OCAxMzAuMzc0IDEyMC4zNjcgMTI5Ljk3TDE3MC42NyA2MS45ODlMMTY5LjkyOSA2MS40NDA1QzE2OS40ODUgNjEuMTEyIDE2OC44NTkgNjEuMjA1NiAxNjguNTMgNjEuNjQ5NkwxNTIuMzExIDgzLjU2ODhDMTUyLjU4NiA4NC4yMDIzIDE1Mi41MjQgODQuOTYxMiAxNTIuMDg0IDg1LjU1NjJMMTQ5LjExIDg5LjU3NTVDMTQ4LjQ1MyA5MC40NjM0IDE0Ny4yMDEgOTAuNjUwNiAxNDYuMzEzIDg5Ljk5MzZDMTQ1LjQyNSA4OS4zMzY2IDE0NS4yMzggODguMDg0MSAxNDUuODk1IDg3LjE5NjJMMTQ3LjY3OSA4NC43ODQ3TDE0OC44NjkgODMuMTc2OUwxNjcuMzA4IDU4LjI1NzRDMTY4LjYyMiA1Ni40ODE1IDE3MS4xMjcgNTYuMTA3MiAxNzIuOTAzIDU3LjQyMTJMMTczLjY0NCA1Ny45Njk3TDE3Ni4wMjYgNTQuNzUwOVoiIGZpbGw9IiNENjQ1MDAiLz4KPC9zdmc+Cg==\";\n\nexport const ALGO_SIGNER: WalletProvider = {\n id: PROVIDER_ID.ALGO_SIGNER,\n name: \"AlgoSigner\",\n icon,\n isWalletConnect: false,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiLz4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDEuNjgyMDksMCwwLDEuNjgyMDksMjI2LjM2OCwyMTIuODE4KSI+CiAgICAgICAgPHBhdGggZD0iTTMyNy4wNDksMjgwLjE5MkwxNjkuNTI0LDEzTDEyLDI4MC4xOTJMMTY5LjUyNCwxODkuMDg0TDMyNy4wNDksMjgwLjE5MloiIHN0eWxlPSJmaWxsOndoaXRlO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMS42ODIwOSwwLDAsMS42ODIwOSwyMjYuMzY4LDIxMi44MTgpIj4KICAgICAgICA8cGF0aCBkPSJNMjk5LjU0NiwzMDdMMTY5LjUyNSwyMzguNDczTDM5LjUwNCwzMDdMMTY5LjUyNSwyNjQuNjdMMjk5LjU0NiwzMDdaIiBzdHlsZT0iZmlsbDp3aGl0ZTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgIDwvZz4KPC9zdmc+Cg==\";\n\nexport const DEFLY: WalletProvider = {\n id: PROVIDER_ID.DEFLY,\n name: \"Defly Wallet\",\n icon,\n isWalletConnect: true,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI2LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAzMDAgMzAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMDAgMzAwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQoJLnN0MXtmaWxsOnVybCgjU1ZHSURfMDAwMDAwNDM0MjYxNjcxNDAxMDY1ODIyNzAwMDAwMDIxMzA3Njg5MDYwNzMxMTM0ODRfKTt9Cgkuc3Qye2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEwMjUxOTMxNjAxNTI3NjU4MTY0MDAwMDAxNjI3NDExMjM4MzE3NTY0MTc1OV8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTt9Cgkuc3Qze2ZpbGw6dXJsKCNTVkdJRF8wMDAwMDEzODU2MzM4MjQ2MjA4NjAyMDM1MDAwMDAxNDg3ODQ5MDI3MDc4MjA3MTIwN18pO30KCS5zdDR7bWFzazp1cmwoI21hc2swXzE2NjFfMjk1XzAwMDAwMDg4MTMyMjUxNTk3NDQxNTczNDkwMDAwMDExNjkzNjEyMDE4NTA2NjgxNDgxXyk7fQoJLnN0NXtmaWxsOnVybCgjU1ZHSURfMDAwMDAxMDYxMjA2MzI0NjE3OTI4NzExNjAwMDAwMDc0MzM5MTMwMzgzMzc3NjY1NzZfKTt9Cjwvc3R5bGU+CjxnPgoJCgkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNDYuNjAzIiB5MT0iOS4yMjEyIiB4Mj0iMTc0LjE1OCIgeTI9IjMwOC41NDI2IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xCgkJTDI3NC43LDkzLjl6Ii8+CgkKCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1XyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMjkuMzUxNiIgeTE9Ii0xOS4xNTczIiB4Mj0iNTYuOTA2NiIgeTI9IjI4MC4xNjQxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNCQkZCRTAiLz4KCTwvbGluZWFyR3JhZGllbnQ+Cgk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMDE4MjI4MjM3MTUxMjM5MTUxMzIwMDAwMDE3ODM4NjY0MjU5NzY2MjczOTI1Xyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCWw2OS4yLTQ1LjFWMjNMMjUuMyw5My45TDQzLDE1MC4xbC0xNy43LDU2LjJMMTMzLjcsMjc3di0zOS42bC02OS40LTQ1LjFMNzIuNSwxNjYuNHoiLz4KCTxkZWZzPgoJCTxmaWx0ZXIgaWQ9IkFkb2JlX09wYWNpdHlNYXNrRmlsdGVyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ij4KCQkJPGZlQ29sb3JNYXRyaXggIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIxIDAgMCAwIDAgIDAgMSAwIDAgMCAgMCAwIDEgMCAwICAwIDAgMCAxIDAiLz4KCQk8L2ZpbHRlcj4KCTwvZGVmcz4KCQoJCTxtYXNrIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjI1LjQiIHk9IjIzIiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0IiBpZD0ibWFzazBfMTY2MV8yOTVfMDAwMDAwODgxMzIyNTE1OTc0NDE1NzM0OTAwMDAwMTE2OTM2MTIwMTg1MDY2ODE0ODFfIj4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjQ2LjYwMzgiIHkxPSI5LjIyMTQiIHgyPSIxNzQuMTU4OCIgeTI9IjMwOC41NDI4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMzAyKSI+CgkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMwQjQ2RjkiLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0JCRkJFMCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHBhdGggc3R5bGU9ImZpbGw6dXJsKCNTVkdJRF8wMDAwMDE2NTkyOTcyNDMwMzE2NDIwMzAwMDAwMDAwNzEwMTkwNDk4NDUxOTkxNTE2Ml8pO2ZpbHRlcjp1cmwoI0Fkb2JlX09wYWNpdHlNYXNrRmlsdGVyKTsiIGQ9IgoJCQlNMjc0LjcsOTMuOUwxNjYuNiwyM3YzOS42bDY5LjQsNDUuMWwtOC4yLDI1LjhoLTYxLjJ2MzIuOWg2MS4ybDguMiwyNS44bC02OS40LDQ1LjFWMjc3bDEwOC4yLTcwLjdMMjU3LDE1MC4xTDI3NC43LDkzLjl6Ii8+CgkJCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMDAwMDAxMTk4MTE3MDc2MjE0NzI4MTQyNzAwMDAwMTA4Mjk2NTkzODM4NTEyMDI0OTFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjEyOS4zNTIxIiB5MT0iLTE5LjE1NzEiIHgyPSI1Ni45MDcxIiB5Mj0iMjgwLjE2NDIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCAzMDIpIj4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzBCNDZGOSIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQkJGQkUwIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTE5ODExNzA3NjIxNDcyODE0MjcwMDAwMDEwODI5NjU5MzgzODUxMjAyNDkxXyk7IiBkPSJNNzIuNSwxNjYuNGg2MXYtMzIuOUg3Mi4ybC03LjktMjUuOAoJCQlsNjkuMi00NS4xVjIzTDI1LjMsOTMuOUw0MywxNTAuMWwtMTcuNyw1Ni4yTDEzMy43LDI3N3YtMzkuNmwtNjkuNC00NS4xTDcyLjUsMTY2LjR6Ii8+Cgk8L21hc2s+Cgk8ZyBjbGFzcz0ic3Q0Ij4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8wMDAwMDEwOTAxOTkxODU1Nzc3MzA1MzQyMDAwMDAxNzYwMjQwNTkwODA2NzEyMDMwMF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNDYuNDY2MiIgeTE9IjIyOC43NTU0IiB4Mj0iMTcxLjg2MzgiIHkyPSIxMzUuMTAzOSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxIDAgMCAtMSAwIDMwMikiPgoJCQk8c3RvcCAgb2Zmc2V0PSIwLjExOTgiIHN0eWxlPSJzdG9wLWNvbG9yOiM4OTUyRkY7c3RvcC1vcGFjaXR5OjAuODciLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0RBQkRGRjtzdG9wLW9wYWNpdHk6MCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJCgkJCTxyZWN0IHg9IjI1LjQiIHk9IjIzIiBzdHlsZT0iZmlsbDp1cmwoI1NWR0lEXzAwMDAwMTA5MDE5OTE4NTU3NzczMDUzNDIwMDAwMDE3NjAyNDA1OTA4MDY3MTIwMzAwXyk7IiB3aWR0aD0iMjQ3LjYiIGhlaWdodD0iMjU0Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+Cg==\";\n\nexport const EXODUS: WalletProvider = {\n id: PROVIDER_ID.EXODUS,\n name: \"Exodus\",\n icon,\n isWalletConnect: false,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDkuODMgMjEwLjMzIj48dGV4dCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDE2MS4zMSkiIHN0eWxlPSJmb250LWZhbWlseTpJQk1QbGV4U2Fucy1NZWRtLCAmYXBvcztJQk0gUGxleCBTYW5zJmFwb3M7OyBmb250LXNpemU6MTkwcHg7Ij48dHNwYW4geD0iMCIgeT0iMCI+S01EPC90c3Bhbj48L3RleHQ+PC9zdmc+\";\n\nexport const KMD_WALLET: WalletProvider = {\n id: PROVIDER_ID.KMD_WALLET,\n name: \"KMD\",\n icon,\n isWalletConnect: false,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider } from \"../types\";\n\nconst icon =\n \"data:image/svg+xml;base64,\" +\n \"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgNDgwIDQ4MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDgwIDQ4MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMzMzk2RkY7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTI2LjYsMTY4YzYyLjYtNjEuMywxNjQuMi02MS4zLDIyNi44LDBsNy41LDcuNGMzLjEsMy4xLDMuMSw4LDAsMTEuMWwtMjUuOCwyNS4yYy0xLjYsMS41LTQuMSwxLjUtNS43LDAKCWwtMTAuNC0xMC4yYy00My43LTQyLjgtMTE0LjUtNDIuOC0xNTguMiwwbC0xMS4xLDEwLjljLTEuNiwxLjUtNC4xLDEuNS01LjcsMGwtMjUuOC0yNS4yYy0zLjEtMy4xLTMuMS04LDAtMTEuMUwxMjYuNiwxNjh6CgkgTTQwNi43LDIyMC4ybDIyLjksMjIuNWMzLjEsMy4xLDMuMSw4LDAsMTEuMUwzMjYuMiwzNTUuMWMtMy4xLDMuMS04LjIsMy4xLTExLjMsMGwtNzMuNC03MS45Yy0wLjgtMC44LTIuMS0wLjgtMi44LDBsLTczLjQsNzEuOQoJYy0zLjEsMy4xLTguMiwzLjEtMTEuMywwTDUwLjMsMjUzLjhjLTMuMS0zLjEtMy4xLTgsMC0xMS4xbDIyLjktMjIuNWMzLjEtMy4xLDguMi0zLjEsMTEuMywwbDczLjQsNzEuOWMwLjgsMC44LDIuMSwwLjgsMi44LDAKCWw3My40LTcxLjljMy4xLTMuMSw4LjItMy4xLDExLjMsMGw3My40LDcxLjljMC44LDAuOCwyLjEsMC44LDIuOCwwbDczLjQtNzEuOUMzOTguNSwyMTcuMSw0MDMuNiwyMTcuMSw0MDYuNywyMjAuMkw0MDYuNywyMjAuMnoiLz4KPC9zdmc+Cg==\";\n\nexport const WALLET_CONNECT: WalletProvider = {\n id: PROVIDER_ID.WALLET_CONNECT,\n name: \"Wallet Connect\",\n icon,\n isWalletConnect: true,\n};\n","import { PROVIDER_ID } from \"../constants\";\nimport { PERA_WALLET } from \"./perawallet\";\nimport { MYALGO_WALLET } from \"./myalgowallet\";\nimport { ALGO_SIGNER } from \"./algosigner\";\nimport { DEFLY } from \"./defly\";\nimport { EXODUS } from \"./exodus\";\nimport { KMD_WALLET } from \"./kmd\";\nimport { WALLET_CONNECT } from \"./walletconnect\";\n\nexport const providers = {\n [PROVIDER_ID.PERA_WALLET]: PERA_WALLET,\n [PROVIDER_ID.MYALGO_WALLET]: MYALGO_WALLET,\n [PROVIDER_ID.DEFLY]: DEFLY,\n [PROVIDER_ID.ALGO_SIGNER]: ALGO_SIGNER,\n [PROVIDER_ID.EXODUS]: EXODUS,\n [PROVIDER_ID.KMD_WALLET]: KMD_WALLET,\n [PROVIDER_ID.WALLET_CONNECT]: WALLET_CONNECT,\n};\n","export const audio = `data:audio/mp3;base64,SUQzBAAAAAIYBlRJVDIAAAAWAAAAMzAgU2Vjb25kcyBvZiBTaWxlbmNlVFBFMQAAABIAAABBbmFyIFNvZnR3YXJlIExMQ1RBTEIAAAAMAAAAQmxhbmsgQXVkaW9BUElDAAIPAgAAAGltYWdlL2pwZWcAAwCJUE5HDQoaCgAAAA1JSERSAAAEOAAABDgIBgAAAOwQbI8AAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACD0AAAg9AQWVVbYAAAAHdElNRQffCgsFHDEDbwR2AAAgAElEQVR42uzde5RVZd0H8N8wDDcBAS8o6oCJVyxTsDSxojJvgVYq3jVNUQgzaZWmpqh56+ItNa+kr4Cay9Q0DQ1DWb2WeSm8pGRy0RAEgRFhuIzz/tFbC5yZc86eOWfmPDOfz1rvemvvZz9779+zz3DOt2fvXRER9QEAAACQsE5KAAAAAKROwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8ABAAAAJE/AAQAAACRPwAEAAAAkT8BBq9pss81i4sSJMXToUMUAAACgaCoiol4ZaA177rln3HzzzdG/f/+oqamJww8/PGbNmqUwAAAAtJgZHLSKk046Ke67777o379/RET07t07pk6dGtXV1YoDAABAi5nBQcmde+65MW7cuEbXvfjii3HIIYfE2rVrFQoAAIBmq4yIC5WBUqioqIgf/ehHceqppzbZZosttohevXrFk08+qWAAAAA0/zdomMFBCVRWVsZPfvKTGD16dEHtjzrqqJgxY4bCAQAA0CwCDoquU6dOccMNN8SoUaMK3mbOnDkxYsSIWL16tQICAACQmVtUKLoLL7wwjj766Ezb9OnTJz788MP44x//qIAAAABkZgYHRXXyySfHxRdf3Kxt16xZEyNGjIg333xTIQEAAMjEa2Ipmv333z8mTpzY7O27dOnSou0BAADouMzgoCh23333uO+++6J79+4t7utLX/pSvPLKK4oKAABAwczgoMW22mqruOOOO4oSbkREjBs3TlEBAADIxAwOWqRTp05x3333xV577VW0Puvq6uIzn/lMzJ8/X4EBAAAo7PepEtASp59+elHDjYiIysrKOO200xQXAACAgpnBQbPtuuuu8cgjj0RVVVXR+66trY0999wzlixZotAAAADkZQYHzdKtW7e4/vrrSxJu/Kf/r3/96woNAABAQQQcNMv5558f22+/fUn3MWrUKIUGAACgIAIOMvvCF74Q3/jGN0q+nz322COqq6sVHAAAgLwEHGRSVVUVl156adH7Xbp0aaPLzeIAAACgEAIOMjn22GOLPqvimWeeic997nOxaNGiBusOOeQQRQcAACAvAQcF69GjR5x55plF7fOhhx6KI488MhYvXhxTp05tsH7IkCGx3XbbKT4AAAA5CTgo2De/+c3YbLPNitbfM888E+PGjYs1a9ZERMTkyZOjvr7hW4vN4gAAACAfAQcF6dOnT4wdO7Zo/S1dujTGjh0bdXV1/1321ltvxaxZsxq0HTFihAEAAAAgJwEHBfnWt74VvXv3Llp/Z555ZrzzzjsNlj/++OMNln3iE5+Irl27GgQAAACaJOAgr/79+8dJJ51UtP5uu+22RoOMiIhp06Y1WFZVVRWf+MQnDAQAAABNEnCQ19ixY6Nbt25F6evdd9+Nyy+/vMn1s2bNanRmx5577mkgAAAAaJKAg9wXSKdOMWrUqKL199Of/jQ++OCDnG0am90h4AAAACDn71clIJe99tor+vfvX5S+3njjjZgyZUredo0FHMOGDTMYAAAANEnAQU4jR44sWl8/+tGPYt26dXnbPf3007Fq1aoNlm2yySax7bbbGhAAAAAaJeCgSZWVlXHwwQcXpa9nn302HnvssYLarl69Ol588cUGyz/1qU8ZFAAAABol4KBJe++9d2y66aZF6euiiy7K1P6VV15psGyPPfYwKAAAADRKwEGTDjnkkKL088gjj8Rzzz2XaZuXX365wbKBAwcaFAAAABol4KBRnTt3joMOOqjF/axbty4uvfTSzNs1NoNjq622MjAAAAA0SsBBo/bZZ5/o27dvi/v5n//5n3jzzTczb/faa69FfX39BssGDBhgYAAAAGiUgINGFeOBnitWrIirrrqqWduuXr063n///Q2Wde/evSihCwAAAO2PgING7brrri3u46abborFixc3e/ulS5c2WOY2FQAAABoj4KBRQ4YMadH2a9eujV/+8pct6mPZsmUNlrlNBQAAgMYIOGigT58+LQ4SHnrooViyZEmL+mgs4DCDAwAAgMYIOGhg8ODBLe6jpbM3IiI++OCDBssEHAAAADRGwEED/fr1a9H2s2bNiueee67Fx9HYA0UFHAAAADRGwEEDLX1TyaRJk4pyHJtvvnmDZZ7BAQAAQGMEHDTQkhkcy5YtiwceeKAox7HZZps1WNazZ08DBAAAQAMCDhro06dPs7e9++67o7a2tsXH0KVLl+jdu3eD5Z07dzZAAAAANCDgoIHKyspmbVdfXx933nlnUY5hu+22K+qxAQAA0L4JOGhg5cqVzdpu+vTpMWfOnKIcw/7779/ocgEHAAAAjRFw0EBzA45ivBr2Pw488MBGl7tFBQAAgMYIOGjggw8+yLzN3Llz48knnyzK/rfaaqv4+Mc/3ug6AQcAAACNEXDQQHNmcEyePDk+/PDDouz/oIMOanKdW1QAAABojICDBpoTcDz22GNF2XePHj1i7NixTa4XcAAAANAYAQcNZL1FZc6cOfGPf/yjKPseP3589O/fv8n1Ag4AAAAaI+CggawzOKZNm1aU/W699dZx2mmn5WzjGRwAAAA0RsBBA1lncDz++ONF2e95550XXbt2zdmmWM/5AAAAoH0RcNBAlhkcNTU18ac//anF+9xzzz1j1KhRedstWrTIAAEAANCAgIMG3nnnnaivry+o7fTp02PdunUt2l9FRUVMnDixoLb/+te/DBAAAAANCDhoYPXq1bFw4cKC2hbj+RuHHXZYfPKTnyyo7YIFCwwQAAAADQg4aNScOXPytlm3bl1Mnz69Rfvp0aNH/OAHPyi4vYADAACAxgg4aNTcuXPztvnzn/8cNTU1LdrPuHHjcr4W9qMEHAAAADRGwEGjCgk4Xn/99RbtY6uttorTTz890zaewQEAAEBjBBw0qpBbVJYvX96ifVx55ZXRrVu3TNuYwQEAAEBjBBw0at68eXnbtCTgOO6442LEiBGZtxNwAAAA0JjOSkBjCpnBsWzZsmb1PXDgwLjgggsyb7dmzZp47733DA4AANCqKioqmr0sa9tCt1+3bl18+OGHBmc9Ao717LTTTrHjjju2yoVbqu1b+mFaf3ltbW3OW0h233336Ny5c6Z9VVRUxJgxY6JHjx6Zx2fBggVx4oknluRcy2Vcy+EPain2laVdSuea0nWVyjXoXNvn562tx6pcz7UUY9Xevos4V99FfBfxXaRcPgPl6OSTT45HH33UD/n1xzQi6pXh3yZMmBATJkxQCAAAAMraKaecEo888ohCrMcMjiJZvHhxo7ds1Nc3nh9lWZ61j6Zk7bu6ujp69+7dZH8LFiyIxYsXF3yM3bp1ix122KHZSens2bPj/fffb9b5t8U4pDDG5VyTVMcy6z6LcZ4pjHG51NvnNYyxz6ux7EDfF4yxsWwP36E68vf7Aw44IMaNG9fk+k6dPFJTwFEi1113Xdxyyy3t6py+973vxZlnntnk+nvvvTeuuOKKgvqqqqqK3/72t80ON9asWRNf/vKXY/Xq1S42AACg3dtpp51yrk/9FptSEPnQpL/97W851/fp06fgvs4666wYMmRIs4/lL3/5i3ADAADoMPI9QNQMjkZqogQ0ZdasWTnX9+3bt6B+9thjj/jWt77VomP54x//aEAAAIAOQ8CRnYrQpLfffjvna1kLmcHRrVu3uPbaa6OysrJFxzJz5kwDAgAAdBj5ntch4GikJkpALrlmcVRXV+fd/rzzzouPfexjLTqGVatWxQsvvGAwAACADsMMjuxUhJxyPYejuro6unbt2uT64cOHxze+8Y0WH8PMmTNj7dq1BgMAAOgw8s3g8JDRhgQc5JQr4OjUqVOTszM22WSTuOaaa4ryobvzzjsNBAAA0KHkm8HR0scAtEcCDnLK96DR7bffvtEP2o033hhbbrlli/c/Z86cmD59uoEAAAA6FLeoZKci5DRv3rxYvnx5k+sbCzjOOeecGD58eFH2f8cdd+SdmgUAANDeeMhodipCXrlmcXw04Dj44INj7NixRdnvqlWrYurUqQYAAADocMzgyE5FyCvXczjWDzgGDx4cV111VdH2e//990dNTY0BAAAAOpx8AYeHjDbUWQnIJ1fAsd1220VlZWV07949br/99ujZs2fR9jtp0iTFBwAAOiQzOLJTEfLKFXB06dIlqqur46qrrorBgwcXbZ9/+tOf4pVXXlF8AACgQxJwZKci5DV37tyct4pcfvnlcfDBBxd1nzfeeKPCAwAAHZaHjGanIhT0wXrppZeaXL/vvvsWdX9PPfVUTJs2TeEBAIAO/Tss5495AUfDmigBhch1m0oxrVu3Ls4//3wFBwAAOjS3qGSnIhQk16tii+n222+P2bNnKzgAANChCTiyUxEK0hozOBYvXhw/+9nPFBsAAOjwBBzZqQgFefPNN2PFihUl3cell16a82GmAAAAHYWAIzsVoeAP18svv1yy/l988cW45557FBoAACA8ZLQ5VISCvfLKKyX74J533nl5P8AAAAAdRb4ZHBUVFYr0EQIOCjJkyJA47LDDStL3TTfdFM8//7wiAwAA/D+3qGSnIuQ1aNCgmDJlSvTq1avofb/44otx2WWXKTIAAMB6BBzZqQg59e/fP+65557YbLPNit73+++/H6effnqsXbtWoQEAANYj4MhORWjSxhtvHFOnTo1tttmmJP1/73vfi7lz5yo0AABA1h/zAo6GNVECGtO9e/e46667YqeddipJ/1OnTo0HH3xQoQEAABphBkd2KkIDVVVVceutt8bQoUNL0v/rr78e5513nkIDAAA0QcCRnYqwgYqKirjmmmtixIgRJel/9erVcdppp8WqVasUGwAAoAkCjuxUhA1ccsklceihh5as/3PPPTf+/ve/KzQAAEAOAo7sOisBEf+euXHppZfGCSecULJ93HjjjTFlyhTFBgAAyCNfwFFRUaFIHyHgIDp16hQ//elPY/To0SXbxyOPPBKXXHKJYgMAABSgvr4+7+84NiTg6OgXQOfOce2115b0tpTnn38+xo8fn/cDCgAAwL+5RaUZv2+VoOOqqqqKG2+8MQ466KCS7WPevHlx4oknRm1trYIDAABlpbHbPJq69aNYywtt27lz7p/rAo6GBBxFMmzYsFi9enWbfwgKXV5VVRWjR4+OHXbYoWQ1qa2tjYcffjgOP/zwZp9j1vMs5R+jch3LcqxJKc+znGpVLv9QpjrGqX5e29sY+7waS2NsjP0b4zthR/hO2B4JOAQcJTNy5MgYOXKkQqynW7duMXbsWIUAAAAoMgFHQwKOIlm8eHEsW7aswfLGnjvR1LMoWtq2Keu3raioiIEDB0aPHj1KWo958+bF0qVLS16HLLVpzbEo13Mrh/PNcm6pjaVza/3jNZbOrb2dm3/v2te5+Qym9z3FZ9C5ldP3lL59+8a9994r4BBwtL7rrrsubrnllrI+xt69e8eUKVNKHm5ERBx88MGxZMkSFwYAAEAzbLLJJjnXCzgaqYkSdAz9+vWL++67L/bYY49W2V9r7QcAAKA98haV7FSkA+jdu3fce++9seuuu7baPocPH67wAAAAzSTgyE5F2rlu3brFHXfcEbvsskur7lfAAQAA0Hz5ni3Skd4YUygBRzvWuXPnuOmmm+LTn/50q+97p512ik033dQgAAAANIMZHNmpSDtVUVERP/vZz2K//fZrs/2bxQEAANA8Ao7sVKSduvDCC+Owww4r6T5mzpwZNTU1Ta7fd999DQQAAEAzCDiyU5F2aPz48XHKKaeUdB/PPfdcnHjiifHXv/61yTYCDgAAgObJF3BUVlYq0kcIONqZL37xi3H22WeXdB+vvvpqHHvssbFy5cp4/vnnm2y39dZbx6BBgwwKAABARh4ymp2Aox0ZOHBg/PznPy/phT537tw4+uijY/ny5RER8cILL+Rs7zkcAAAA2blFJTsVaSe6desWt956a2y88cYl28eiRYviqKOOioULF/53Wb6Aw20qAAAA2Qk4slORduLyyy+PIUOGlKz/mpqaOOqoo2LOnDkbLH/33XfjrbfeanK7ffbZx9QpAACAjPLdoiLgaKQmSpC+448/Po444oiS9V9bWxvHH398vPrqq42uzzWLo1+/fiUNXgAAANqrXLM4BByN1EQJ0rbHHnvExRdfXLL+161bF6eeemr8+c9/brKN21QAAACKL1fAYaZ8QwKOhHXp0iWuvfbaqKqqKkn/9fX1ceaZZ8YTTzyRs12uN6lEeNAoAABAc3+TNflj3gyOhjVRgnSNHz8+Pvaxj5Ws/x/+8Idx//335203a9asWLduXZPr99prr5KFMAAAAO1VXV1d0z/mBRwNa6IEadp2221j/PjxJev/5z//edx2220FtV21alW89tprTa7v3r17DB061KABAABkkOsWlcrKSgX6CAFHoq644oro0qVLSfr+/e9/H5dffnmmbfLdpuI5HAAAANl4Bkc2nZUgPV/72tdK9lyLN998M8aNG5f3ncsf9fzzz8dxxx3X5Prhw4fHj3/844iI2GSTTWLPPfeMXXbZJfr16xd9+/bd4P/36dMnVq5cGUuWLInFixfH4sWL//uf586dGzNmzIhly5a5EAAAgHbNW1SyEXAkpnfv3nHhhReWpO8PPvggvvGNb0RNTU3mbV988cWc63fbbbf42c9+Fp/61KcKem5Iz549Y/PNN290XV1dXTz77LPx+OOPx7Rp0+KNN95wYQAAAO2Oh4xmI+BIzLnnnhubbrppST44Z5xxRrz++uvN2n727NmxYsWK6NmzZ6Pru3TpEkceeWRRjrWysjL22muv2GuvveL888+PN998Mx577LG4+eabY+HChS4SAACgXTCDIxsVScigQYPimGOOKUnf11xzTTz66KMt+uDlm8VRKttuu22cfvrpMXPmzBg/fnzJnk0CAADQmgQc2ahIQk455ZSSXMRPPPFE/OQnP2n29hUVFXHEEUfE4MGD27Q+G220UZxzzjkxY8aMOPDAA10wAABA0gQc2ahIIjbeeOMYPXp00ft9880341vf+lbmh4r+xy677BIPPvhgXH311bHFFluURa0GDhwYt912W9x7772x8847u3gAAIAkeYtKNgKORBx33HHRo0ePon9YzjjjjGY9VLRXr15x8cUXx+9+97sYNmxYWdZs+PDh8dhjj8URRxzhAgIAAJLjIaPZqEgCqqqq4uSTTy56vzfffHM899xzmbf76le/Gk8//XScfPLJUVlZWfa1u/rqq2PChAkuJAAAICluUclGRRJwyCGHRP/+/Yva5z//+c+48sorM21TWVkZl156aVx//fVNvsK1XE2YMCGuuuqqqKqqckEBAABJyBVwlPv/2NwWBBwJGDNmTNE/JN/5zneitra24G169+4dd911V5x44onJ1nH06NFx1113Ra9evVxUAABA2fMMjmwEHGVu+PDhMWTIkKL2efvtt8ezzz5bcPuBAwfGb37zm/jc5z6XfD333XffeOCBB4o+IwYAAKDY3KKSjYqUua9+9atF7W/OnDlx2WWXFdz+05/+dDzyyCOx/fbbt5ua7rzzzvHLX/4yunXr5gIDAADKloeMZtNZCcpbsWdNfPe7341Vq1YV1PaTn/xkTJ06tV0GAbvttltcddVVcfrpp7vIAICSa2oqeTGWZ52mXoy+2+J8inGe5XTcxTjPFI67PV2zbTGWuZ4hKOAQcJTMgQceGNtss01RPwQbb7xxDBgwoGjHOH/+/Bg1alSMGjUq77H07NkzDjjggHY9y+GQQw6JwYMHx9///vd2/Y9WOf3x949W+/likuoXLWNsjP0w8m9MW/2NACg2AUcjf5cjojspCGQAACAASURBVF4Z/m3ChAleJwoAAEDZW7hwYey+++4KsR4zOIrk1Vdfjblz5zZY3tg9U03dR/XR5cOGDSvawzDnz58fL7zwQt5jiPj3cze22GKLDjN2a9eujccffzyWLVtWlHErZdumlOIYWvt8s9SgXMfHuXXMczOWzs25Ff/flfb8GfT3xbm5Tp1blrZPPPFEbLfddo22N4NDwFEyd999d9xyyy1F66+qqipeeeWVov2AP/zww2PevHl5206cOLFDhRv/qfWuu+4aX/jCF2LlypUuZgAAoCzU1dU1uU7A0UhNlKA8DR06NDbaaKOi9HXXXXcVFG7svffeccopp3TIeldXV8cZZ5zhwgMAAMpGrtfEVlZWKtBHCDjK1Gc/+9mi9LNy5cq4+uqr818InTrFxIkTO3TNTzvttBg0aJCLDwAAKAteE5uNipSpYr0e9t5774133303b7vRo0fHrrvu2qFr3qVLlw4f8gAAAOUj1wwOb3JqSMBRpnbaaaei9DN58uS8bXr27Blnn322okfEfvvtF1/84hcVAgAAaHO5Ag4zOBqpiRKUn169ekX37t1b3M9f//rXePnll/O2+/a3vx2bbbaZwv+/iy66KKqqqhQCAABoUwKObFSkDG2++eZF6WfKlCl522y55ZYd9sGiTdl2223j1FNPVQgAAKBNCTiy8ZrYMtS/f/8W97Fy5cr49a9/nbfdqFGjokuXLm1ynq+++mrceuutUV1dHQMHDozq6uqorq6OTTfdtM3HYMyYMXHzzTfH2rVrXZAAAECbEHBkI+AoQ8W4XeShhx6KFStW5G138MEHF/346+rq4sknn4y+ffvG0KFDm2zXp0+fmDp1aoPlgwYNimOOOSZGjx7dZmHHpptuGgcccED85je/cUECAABtItdbVDxktCGRTxkqxgyOQn6Y9+/fP2cAkdW8efPiyiuvjD333DOOP/74eOyxx3K233LLLaNnz54Nls+ZMyd+9KMfxdChQ+PUU0+Np556KucHu1SOO+44FyMAANBmzODIRkXKUEufwbF27dp45pln8rY76KCDipL6zZo1K4488sjYe++94+qrr4533nknIiJef/31vNvusMMOOc/j4YcfjiOPPDI+85nPxOOPP96q47DPPvvEoEGDXJAAAECbEHBkoyJlqKUBx1/+8pdYtWpV3nYHHnhgi/ZTU1MT5557bhx00EGNzrJ47bXX8vax/fbbF7SvuXPnxoknnhgTJ05stediVFRUxLHHHuuCBAAA2kSugCNCyNGgHkpQflp6i8rTTz+dt02/fv1i7733bvY+fv/738dnP/vZmDRpUtTV1TXaZv78+bFy5cqc/eSawfFR9fX1cdNNN8UhhxwS8+bNa5WxGD16tFfGAgAAbULAkY1qlKGWzuAoJODYb7/9orKysln9X3vttXHCCSfEokWLcrarr6+P2bNn52yTJeD4jxdffDG+/OUvt8oDQDfZZJM44IADXJQAAECry/csQg8a3ZCAo515//3348UXX8zbbtttt83c99q1a2PMmDFx+eWX500S/yPfbSrNCTgi/n17zJgxY+Luu+8ueU332WcfFxYAANDqzODIRjXK0OLFi5u97d///vcmbxlZX9++fTP3feGFF2aeNZHvQaNbb7119OjRo9nne/bZZ8dzzz1X0vHYY489XJQAAECrE3BkoxplaMmSJc3e9o033iioXZ8+fTL1e++998akSZMyH0++GRwVFRUxePDgZp/vmjVr4pvf/GYsXLiwZOOx0047Rffu3V2YAABAqxJwZKMaZaglAcc//vGPgtplmcHxt7/9Lb7//e8363gKeZNKc29T+Y+FCxfGySefHGvWrCnJeHTu3Dl22203FyYAANCqBBzZqEYZasktKsUOOJYsWRInn3xyrF69ulnH8/bbb8cHH3yQs01LA46IiOeff77ZIUwh3KYCAAC0Ng8ZzUbAUYbK6RaVCRMmxNtvv92iD2S+53AUI+CIiLjnnnvi97//fUnGRMABAAC0tnwBR3PfjNleCTjKUHNncHz44Ycxd+7cgtr27t07b5t58+bF448/3uLzKdWbVBpz0003lWRMdt99dxcmAADQqtyiko1qlKH58+c3a7sVK1bEunXrCmq7dOnSvG2mTJmSNzEsRL6Ao7q6Orp27VqU2s2cOTNefvnloo9J1oeyAgAAtJSAIxvVKEMvv/xyQQHERy1btqzgtvPmzcu5ft26dXHPPfcU5XzyBRydOnWK7bbbrmj1K8Usji5durgwAQCAViXgyEY1yvQifvrppzNvt3z58oLb5psl8sQTTxTt1aut8SaV9T344IPxzjvvFHVMKisr3d8GAAC0Kg8ZzUbAUaZmzJiReZssAUe+Z3X89re/Ldq5LFiwIN5///2cbYoZcKxduzZuu+22oo+JWRwAAEBrMoMjG9UoU80JOIp5i8qCBQuKej6t9SaV/5g8eXJRnh+yPgEHAADQmgQc2ahGmfrXv/4Vs2fPzrRNXV1dwW3z3aJS7Fs85syZk3N9MZ/BEfHvsKclr7dtTLEehAoAAFAIAUc2qlHGss7i6NevX8FtZ8+enfONK4sWLSrqueS7JWabbbYpev0KefZHpg+LPx4AAEArEnBk/M2mBOXrySefzNQ+S8BRU1MTzzzzTKPrVq1alfeZGVnluyWmR48esckmmxR1n8UMONatWxeLFy92UQIAAK3GQ0azEXCUsaeeeirTbRZZAo6IiGnTprXahyTfDI6I4s/iyPfcjyzeeuutnDNeAAAAii3fDA5vetyQgKOM1dXVxR133FFw+6wzIJoKOLp16xabbbZZUc+lkICjurq6qPss5gyOfM8QAQAAKDa3qGTTWQnK25QpU+K73/1uQW/w6NKlS2y00UbxwQcfFNT3vHnz4tVXX42dd965wbptttkm3n333aKdx8KFC2PNmjU5z2Prrbcuau1mz54d9fX1RZmR8uabb7oYAYAWaew7SVPfU4q1vFR9l/K4i3GOKZ9Pa49lW12brtnC2vfp00fAIeBofQceeGCjt1gU4wMzb968GDx4cEHHcfXVVzf5rIjG+m7qtouzzz670VkLLTmf2tranAHHkUceGdtvv31RvySsXLkyNtpooxaP79ChQ+P6669P8o95Of2R78hfQFI+n478BcQY+5Lph1HH+jem1NcVQLH5O/SRekREvTL824QJE2LChAkKAQAAQNnbb7/94uWXX1aI/2cGR5G89NJL8cYbbzRY3thTb5t6Em6utiNGjCjoIaJLliyJ6dOnZzqGvfbaKwYOHLjB+qVLl/73GR3NOd7Glu+5556xww47NHnsNTU18dBDDxWtZhERhx12WPTs2bPF43vPPffEihUrilKH1mrblHI93izbZ6lBSufr3NI9t/b6Gcxybq5T5+bc0vn7Yiydm3Nr23PLsv1ll10WJ5xwQpPH4hYVAUdJ/OpXv4pbbrmlZP1/9atfbfIWifX17ds3Lrjggli2bFnBfe+4444xffr0DaY39e3bN3784x/Hv/71r6Kdw5gxY+KCCy5ocn3Xrl3j+9//fqY/LvmMHDmyxQHH66+/Ht/5zndc5AAAQKvykNFsVCMRDz74YLz66qv5B7RTp/jsZz+bqe/XXnstHnvssQbL999//6KeQ743qXTt2jU233zzou6zR48eLe5jxowZLkAAAKDV5fsffwUcH6mHEqThww8/jIsvvrigtiNGjMjc/9VXX91g2UknnVTU9yoX8qrYYr5JZcCAAdG9e/cW9yPgAAAA2kJdXV3uH/QCjg3roQTp+MMf/hBPPfVU3nb77bdf5h/2s2bNismTJ2+wbLvttotDDz20aMc/f/78vG2qq6uLtr/dd9+9xX2sWbMm/vd//9fFBwAAtDq3qGSjGom56KKL8l7k/fr1i+OPP75Zfb/99tsbLPv+979f0MNNC7FixYpYsmRJzjblFnD8+c9/jlWrVrnwAACAVifgyEY1EvPKK6/Efffdl7fd6aefHt26dcvU9/vvvx/f/e53N1i29dZbxxlnnFG04583b17O9dtss03R9lWMgOP+++930QEAAG3CMziyUY0EXXHFFVFbW5uzzeabbx7HHnts5r5nzJgRt99++wbLli5dWrRjzxdwFGsGR/fu3WO33XZrUR+LFy8WcAAAAG3GMziyUY0ELViwIK677rq87caNGxddu3bN3P8Pf/jDuOeee/773996662iHXu+B40W6yGjX/nKV1r8BpU77rgj1qxZ44IDAADaRL5bVCoqKhRpPQKORF133XXxt7/9LWeb/v37xzHHHNOsD9GECRNi0qRJsWbNmgbP5WiJfAHHVlttVZQU8sgjj2zR9mvWrIk777zThQYAALQZz+DIRjUStW7duvj2t7+dd4bB+PHjY+ONN27WB+ncc8+NIUOGxAsvvFC04853i0pVVVVsscUWLdrHoEGDYq+99mpRH7/+9a/j3XffdaEBAABtRsCRjWok7LXXXosrr7wyZ5v+/fvH1Vdf3ex9fPDBB7F69eqiHXO+GRwRLX8Ox+jRo1s0VWvt2rVxww03uMAAAIA2JeDIRjUS94tf/CL+8pe/5Gyz//77x6mnnloWx7tgwYJYu3ZtzjYteZNKr169mnVbzvp+/vOfx+zZs11cAABAmxJwZKMa7eCCP+OMM2LVqlU525177rlFeW1qS9XV1eV9pkdLZnBMmDAhNt1002ZvP3v27BbNeAEAACjm772cP+gFHBvWQwnSN2fOnDj//PNztqmqqopf/OIX0bt37zY/3nzP4Wjum1R23HHHOOmkk1r0x+Oss87KO8MEAACgNXhNbDaq0U5MmTIlJk+enLPNNttsUxazE/I9h2PAgAHN6vfiiy+Ozp07N/u4Jk2aFM8995yLCQAAKAv19fW5f9ALODashxK0Hz/4wQ/i+eefz9nmgAMOiEsuuaRNPwj5Ao7m3GIycuTIGD58eLOP6aWXXorLLrvMRQQAAJQNt6hkoxrtyNq1a+Ob3/xm3tebnnTSSXHjjTdGly5d2uQ4892istlmm2Xqb8cdd8z7Nplc5syZE8ccc0ysXLnSRQQAAJQNt6hkoxrtzDvvvBNjxoyJdevW5Ww3cuTImDp1aps8kyPfDI5+/foV/EHdaqutYurUqbHxxhs361gWLlwYRx55ZN5QCAAAoLXlm8FRUVGhSOsRcLRDzzzzTJxzzjl579fae++949e//nVsscUWrXp8+QKOTp06Rb9+/fL207dv35g6dWqzj7+mpiaOPvrovDNKAAAA2oJncGSjGu3U5MmT49xzz83bbuedd46HH344dthhh1Y7tpqamli+fHnONvluU+nevXvceeedMXjw4GYdw4oVK+KEE06IV1991cUCAACUJc/gyEY12rFf/vKXBYUcAwYMiN/85jcxZsyYqKqqapVja8mDRgcMGBBTpkyJoUOHNmvfc+bMia985Svxpz/9yUUCAACULc/gyEY12rlJkyYVFHL06tUrLrjggpgxY0bsv//+JT+ufAFHUzM4Dj300Jg+fXp8+tOfbtZ+Z8yYEQceeGC8/vrrLg4AAKCsmcGRjWp0AJMmTYrzzjuvoLaDBg2KSZMmxa9+9avYZZddSnZM8+fPz7n+ozM4evfuHTfccEPccMMNzX4w6k033RTHHnts3ttjAAAAyoGAIxvV6CBuv/32OP/88wtuv88++8S0adPiJz/5SebXthYiywyOz3/+8/Hkk0/GoYce2qx91dTUxPjx42PixIl5p3gBAACUCwFHNp2VoOO47bbboqKiIi666KKC2nfq1CmOPvro+PrXvx5PPfVU/O53v4snnngiFi1a1OJjyRdwDB48OE477bQ46qijYvvtt2/2fh544IG48MILi3LMAAAArUnAkY2Ao4O59dZb4/3334+LLrooevXqVdA2Xbt2jf322y/222+/qK+vj+effz6mTZsW06ZNi9dee61Zx/Huu+/mXL///vu36Fkg//znP+Pss8+OmTNnGnQAACBJAo5sBBwd0D333BNPPfVUXHHFFfGlL30p07YVFRUxdOjQGDp0aJxzzjkxZ86cePzxx+Oll16KOXPmxNy5c/POlqisrIyuXbuW5NxWr14d1157bVx//fWxZs0agw0AACRLwJGNgKODWrBgQRx//PHxta99Lb73ve9FdXV1s/oZNGhQnHLKKRssW7lyZSxYsCBWrVoVq1evjtra2qitrY2qqqqorq6Orbbaquivo62trY2pU6fGjTfeGG+99ZYBBgAAkpcv4KioqFCk9Qg4Orj7778/HnzwwRg5cmSMGzcuhgwZ0uI+e/ToEdttt12rHH9NTU1MmjQpbr311liyZIkBBQAA2g0zOLIRcBB1dXXxwAMPxAMPPBCf//zn49RTT43hw4dH587le3ksXLgwbrnllrjzzjtjxYoVBhEAAGh3BBzZCDjYwB/+8If4wx/+EP369YsDDzwwRo4cGZ/5zGfKIuxYsWJFTJ8+PR599NF49NFHPWMDAABo1+rq6nKuF3BsSMBBo957772YPHlyTJ48+b9hx7777hvDhg2LAQMGtNpxLFq0KH73u9/FY489FjNnzoy1a9caHAAAoEMwgyMbAQd5rR92RERsscUWMWzYsBg6dGgMGzYshgwZEt26dSv6fi+++OL4xS9+EfX19QYBAADocPL9FhJwbEjAQWbvvPNOPPzww/Hwww//d1m/fv1iyy23jAEDBsSWW2753//cs2fPqKura/T/dtxxxxg2bFiT+6mtrRVuAAAAJdPUW0iKsTzrG04aa58vwBBwbEjAUSTDhg2L1atXl+wDUy4fxkKXL1++PJYvX56z74033jjn+X3pS1+K7t27t+pxt0bfWcYzhfNp7Wu21Mddqn+cjHFFkrXqKGPs75K/S8bY3yV/l/xd6gjXbHsk4BBwlMTIkSNj5MiRClFEI0aMiBEjRigEAABAIwQcGxJwrOe9996Lf/zjHw2WN3WbRKmXN6WU+23Nc91oo41ixx13bPI8Fy1aFPPnz2/XNWjr8W6rGjjXtrvOSlmDFM5VDYx3RzvXrDVwrmmfqxpkP1/n6lxTP9e3337bD/n1VESEhxzQJgYNGhR//OMfm1x/9913x1lnnaVQAAAA5GU+C23mvffey7m+R48eigQAAEBBBBy0mdra2pzrBRwAAAAUSsBBm1m7dm3O9RtttJEiAQAAUBABB22mvr4+1qxZ0+R6MzgAAAAolICDNrV69eom15nBAQAAQKEEHLQpAQcAAADFIOCgTeW6RUXAAQAAQKEEHLSpXDM4unfvrkAAAAAURMBBm8oVcFRVVUVVVZUiAQAAkFdnJWg/qqqqYtddd43dd989Pv7xj0fv3r2jS5cu0bVr16ipqYm5c+fGvHnz4tlnn41XXnmlLI45V8AREdGlS5e8r5MFAAAAAUc7MHjw4DjttNPi61//enTt2rWgbf75z3/GAw88ELfcckssX768zY491zM4IiJqa2sNMAAAAHm5RSVhW2yxRdx+++0xY8aMOProowsONyIiPvaxj8VZZ50VM2fOjMMPP7zNziHXDI41a9ZEXV2dgQYAACAvAUeiRowYEU888UQccMABUVFR0ex+Ntlkk7jmmmvimmuuiU6dyutyWLVqlYEGAACgIAKOBI0dOzbuuuuu6NevX9H6PPzww+PKK69sUVjSHLleBbty5UqDDQAAQEEEHIk56qij4rzzzitJEHH00UfH2LFjW/V8cgUcZnAAAABQKAFHQr74xS/GlVdeWdJ9nHXWWbH11lu32jn17NmzyXVmcAAAAFAoAUcievbsGT/96U+jsrKypPvp3r17XHLJJa12Xm5RAQAAoBgEHIn49re/HZtvvnmr7OvLX/5yDBw4sFX21aNHjybXuUUFAACAQgk4ErDNNtvEqaee2qr7HDVqVMn30aVLl6iqqmpy/dKlSw0+AAAABRFwJOCII47IGQSUwqGHHlryfeS6PSUi4qWXXjL4AADwf+zdeXhMd+P//1f22GKJiF2C1tIWraq2WrUvtfZjj12LotRVRdHiptaitZYbdaulqpSb2vfW3hu1b7VUbRFBIiURSX5/+JmvMUtmkpmYw/NxXb0q5z1zzplzzsw553XeCwCHEHAYQEaEDY8rVaqUQkJC3LoMex2MStLBgwfZ+QAAAAAAhxBweLgXXnhBxYoVeyLLLlGihFvnby/gSElJ0eHDhzkAAAAAAAAOIeDwcOXLl39iy3Z3wGGvI9Pz588rNjaWAwAAAAAA4BACDg8XHh7+xJZdsmRJt86/VKlSNstongIAAAAAcAYBh4crWrToE1t2tmzZ3Dp/ewEKAQcAAAAAwBkEHB7O3R192hMXF+fW+ZcuXdpm2YEDB9j5AAAAAACHEXB4OHeHDPbcvn3bbfMOCAhQWFiY1bLo6Gjt27ePnQ8AAAAAcBgBh4d7kh1tujNcef755+Xj42O1bM2aNUpKSmLnAwAAAAAcRsDh4dxZiyI1x44dc9u87XUw+ssvv7DjAQAAAABOIeDwcIcPH34iy7179662bNnitvmXKVPG6vSbN29q586d7HgAAAAAgFMIODzctm3bnshyN2/erPj4eLfM29fXVw0aNLBatnbtWt2/f58dDwAAAABwCgGHhztz5owuXryY4ctdsWKF2+Zds2ZNm6PD0DwFAAAAAJAWBBwGsHnz5gxd3pEjR7Rq1Sq3zb9Vq1ZWp8fExGj79u3scAAAAACA0wg4DGDOnDlKSUnJsOUNHjxYycnJbpl33rx5VbVqVatla9euVWJiIjscAAAAAOA0Ag4DOHnypNasWZMhy1q5cqV2797ttvm3bNnS5vCw8+bNY2cDAAAAANLES1IKm8HzvfDCC9qwYYNbl3H+/HnVqVNHsbGxbpl/lixZtHXrVhUoUMCibN++fTY7HgUAAAAAIDXU4DCIo0ePujXgiIuLU4cOHdwWbnh5eembb76xGm5I0syZM9nJAAAAAIA0I+AwkM8//1xxcXEun298fLy6du2qU6dOuW3de/XqpXr16lktu3LlilavXs0OBgAAAACkGQGHgfz999/64osvXDrPmJgYtWjRQlu2bHHbeteoUUN9+/a1WT5p0iTdv3+fHQwAAAAASDP64DCg7777TnXq1En3fC5fvqyIiAi31twoVaqUli1bpqCgIKvlu3fvVpMmTTJ0lBgAAAAAwNOHgMOAgoODtXnzZoWEhKR5HidPnlRERISuXLnitvVs2rSpxowZo0yZMlktj4+PV7Vq1XT+/Hl2KgAAAAAgXWiiYkDR0dHq0KGD/vnnnzS9/8cff1TDhg3dFm74+/tr7NixmjRpks1wQ5LGjh1LuAEAAAAAcAlqcBjY22+/rfnz58vPz8/h92zbtk1t2rRRUlKSW9apRIkSmjx5sl588UW7r1u/fr06deqk5ORkdiQAAAAAIN0IOAyuXr16mj59unx8fBx+z549e/Thhx8qMjLSZeuRM2dOffrpp2rXrl2q67Jr1y5FREQoISGBHQgAAAAAcAkfSUPZDMZ1+vRpXb16VTVr1pSXl5dD7ylYsKCaNWums2fP6syZM+lafmBgoDp06KDZs2fr9ddfl7e3/VZPhw8fVkREhO7cucPOAwAAAAC4DDU4nhI1a9bUlClTlC1bNqfed/ToUU2ePFmrVq1yqtlKqVKl1Lp1azVt2tTmCCnWltWyZUtFR0ezwwAAAAAALkXA8RQpXry45s6dq/DwcKffe+HCBf3222/63//+p/379+uvv/5ScnKyqY+MokWLqkyZMnrppZdUsWJFlStXzqn5z5s3T4MHD6ZZCgAAAADALQg4njJBQUH69ttvVbVqVY9Yn3/++Ud9+/bV8uXL2TkAAAAAALehD46nTEJCgpYvX66YmBiVL19eAQEBT2xd1q9frw8++EC7d+9mxwAAAAAA3IoaHE+x4OBg9e/fXxEREal2/ulKu3bt0siRI7Vv3z52AgAAAAAgQxBwPANefPFFDRs2TK+//rrblpGYmKht27Zpzpw52rJlCxsdAAAAAJChCDieISVKlFDjxo3VuHFjFSlSJN3zS0pK0s6dO7V8+XKtXr1aMTExbGQAAAAAwBNBwPGMeuWVV9S4cWOVLVtWBQsWVGhoqN1mLCkpKTp37pwOHz6sw4cP69ChQzp8+DChBgAAAADAIxBwQJLk5+en/Pnzq2DBgsqePbtu376t27dvKzY2Vrdv31ZMTIzu3bvHhgIAAAAAeCQCDgAAAAAAYHjebAIAAAAAAGB0BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAAAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADI+AAwAAAAAAGB4BBwAAAAAAMDwCDgAAAAAAYHgEHAAAAAAAwPAIOAAAAAAAgOERcAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAAAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADI+AAwAAAAAAGB4BBwAAAAAAMDwCDgAAAAAAYHgEHAAAAAAAwPAIOAAAAAAAgOERcAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAArg8QfAAAIABJREFUAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADM+XTQAAAJC6rFmzKjg4WL6+vrp+/bpiY2OVkpLChgEAwEMQcADwOH5+fmrevLleeeUV3b17V3v37tXKlSu5kYDHHadBQUHKli2bzf+CgoKUNWtWBQUFafjw4bpy5QobzkD79/XXX1e1atVUpUoVhYeHy9/f3+w1iYmJio6O1u7du7V27Vpt2bJFt2/fTnXezZo107vvvitJmjlzpnbu3OnUumXPnl0tW7ZU6dKldfHiRa1cuVInTpxwah4BAQHKli2bsmbNajpeH/13lixZzKZv3bpVy5Yt48AAAHg0L0ncMeCZFBoaqm3bthlmfYcNG6aFCxc+9fslJCRE8+bNU5kyZcymb9u2Te3bt9e9e/c4eJ8Cc+fOVcWKFQ2zvrdu3dLrr78uScqVK5f2799vcbObmipVqujUqVPsfAMEGxEREerdu7dCQ0Odem9iYqKWLl2qr776ymaYVaJECa1du1YBAQGSpN69e2vx4sUOL6N06dKaO3euChQoYJp27949DRw40KFzxOuvv64ff/xRfn5+Tn22yZMna9SoURwgAACPRg0OPLO8vb0VFBRkmPXNnTv3M7Ffxo4daxFuSNI777yjTz/9VCNHjuTgfQrky5fPUN+/TJkymf7t5eXldLgBY3jzzTc1btw4hYWFWZTdvHlTly9f1o0bN5SSkqKQkBDlyZNHuXLlkpeXl6QH4UjLli3VuHFjzZ49W5MmTTKr0eHv769p06aZwo2H5yJH+fv7a/r06WbhxsPpo0aN0uHDh3X48GG78/Dx8XE63AAAwCgIOPDMSkpK0sWLF82m+fn5KU+ePKaLVUckJyfr8uXLDr8+KCgoTTd2RroZTKvg4GDVrl3bZnmjRo0IOJ4SzhzPycnJ2rNnj86dO6fLly/Ly8tLxYoV07vvvutQ0BAXF6eff/5ZZ8+eVWJiovLly6dChQqpatWqDq+Hn5+f/Pz8lJiYqPv37+vYsWMPTqK+vipUqJBZAAJjatOmjUaMGGF28x8ZGanZs2dr06ZNOnHihNVmcqGhoapZs6Zq1aqlatWqydvbW4GBgerRo4fq1aunrl27mkKHgQMHqlSpUhaBg6OqVKmi4sWL2zxG27Rpo/79+9udxz///GM6fh/+7jp73gMAgIAD8DDXrl3Ta6+9ZjE9MDBQrVq10vDhw1N9sjZ06FAtX75c165dc2rZAQEBKliwoN555x3Vrl1bb7/9NgGHZPWp6aPy588vb29vJScncwA/AwHHnTt3NG3aNP3www9Wq/uHhYVpzZo1yp49u815xMTEqGrVqrp69arV73rdunXVt2/fVI896UEHkzdv3lRMTIxq1KhhVlaiRAkNHDhQNWvWZOca0MCBA/XRRx+Z/k5MTNSYMWM0a9asVJvFRUZGav78+Zo/f77FcRAWFqaVK1fqX//6l86ePavOnTtbvN+ZgMNWuPHQ888/n+o8/vjjD4vjN0uWLPrggw/08ccfKzAwkAMCAGBYDBMLPCY+Pl5z5sxJtU300aNH9e9//9vpcEOSEhISdObMGX333Xdq0aKFGjZsmGq14mch4Dhz5ozd8r///ptw4ymRLVs2u+WHDx9W7dq1NWHCBJt9GZw/f14//fST3fn88ssvVsONh9/1ZcuWqUaNGpo/f36q65wlSxabZSdPnlT79u21fft2dq7BtGzZ0izcuHr1qho2bKhp06Y53efPw+Ogffv2iouLk/Sg+ciIESP0/fffW60l4UwTldRqC9o61lPzzz//aOLEiRowYAAHBACAgAN4Gu3bt89u+YYNG1y2rP/973+qX7++VqxYYfM1z0LAcevWLbvbYOnSpRyYT4EsWbLYfWq9d+9eNWzYMNXAS5LOnj2brhtC6UFNkX79+mn8+PF2X5c1a9ZU5zVu3Dh2sIGUL19eo0ePNv0dGxurVq1a6eDBg+ma74YNG9SoUSNdunTJNM1WvxfOBBzbt2/XrVu3bJavXLkyXev9448/WjTdBADASAg4ABvi4+PtlsfGxrp0eYmJierRo4fNC9TUnng/LQYOHKj9+/dbTF+3bp0mTZrEgfkUsHcsnz59Wu3bt1dCQoJD80qtRo8zT+DHjx9vdxQKezU4HmKUFANdAHl7a8KECWb9uPTu3VsnT550yfyPHz+uRo0a6fr163Zf50wTlevXr+vjjz821Q551IwZM7R69ep0rzfHMADAyOiDA/AgSUlJ6tu3r1577TWL4Qnt9TPwNLlx44YaN26s//u//1PZsmV19+5d7dmzx6U1ZvBk2TqW79+/r65duyomJuaJrduAAQP05ptvWu2Tw5EaHLdu3VJCQoLZKBnwTE2aNNFzzz1n+nv79u1au3atS5dx+fJldenSRYsXL5avr/VLLmcCDulB7ZAqVaqoVatWev7553XlyhWtW7dOu3btcsk6WwtPAAAwCgIOwMPExsbqs88+05w5c8ymPwtNVB690V28eHGq/aDAmGzV4Jg7d65OnDjxRNctMTFRQ4YM0dy5cy3KHKnBIYl+YgzAx8dHn3zyidm07777zi3L2r17t7788ksNHTrUarkzTVQeunz5cqpNqgAAeBbRRAXwQOvWrbNoA/4sBRx4ulmrwXHr1i199dVXHrF+GzZs0I4dOyymO1KDA8ZQrlw5FSlSxPR3QkKCtm7d6rblzZo1y2xoVrMLMW8uxQAAcBXOqoCH+vbbb83+DgwMtNlJHWAk1mpwLFq0yOX92qTH7NmzLaY5WoMDnq9atWpmf1+6dCnVfpfSIzk5WUOGDLFa5mwTFQAAYBsBB+ChVq1aZTECBLU48DR4/DhOSUnRvHnzPGodN2zYoMjISLNpBBxPjypVqpj9nVpHoK6wY8cOrVu3zmI6AQcAAK5DwAF4qKSkJIse8Qk48DR4/DjesWOHzp0753Hfvx9++MFsGk1Unh7Fixc3+ztz5swZstzp06dbXojRRAUAAJfhrAp4sDVr1ti9MQSM6PHj2BVDW7rD40/bCTieDv7+/hbNpB4ftcpd9uzZY9GRLgEHAACuw1kVyEB58+bVxo0btXHjRkVERKT6+r179+rGjRs2bwwBI3r8ON68ebNHrufhw4d169Yt0980UXk6BAcHW0wLCQlReHh4hiz/8RF6aKICAIDrEHAAGShHjhwqXbq0SpcurZCQkFRfn5SUpN9//930t7XRJwCjeTTgOHPmjC5cuOCR65mcnKzt27eb/ibgeDpkypTJ6vQGDRpkyPKXLl2qxMRE098EHAAAuA4BB5CB0lLFfd++faZ/Wxt9AjCaRwOObdu2efS6PjpcLE1Ung5xcXFWp3fv3l25cuXKkOXv2rXr/12I0UQFAACX4awKZKBixYo5/Z79+/eb/k0NDjwNHg04Dh8+7NHreuzYMdO/CTieDraGIw4KCtLUqVMzZDjujRs3mv5NDQ4AAFyHgAPIQGXKlHH6PX/88YdmzZqlWbNmWXROBxjRozWRHg0QPNHJkydN/6aJytMhPj5eV65csVr2zjvvaM6cOcqdO7db1+HRgIMaHAAAuI4vmwDIOFWrVnX6PXfu3NHgwYMdeq2/v7+yZs1q9b8sWbIoa9asWrhwof75559U5xUUFKSCBQua/rt//76ioqJ0/vx5nThxQikpKS7ZJl5eXsqUKZMyZ85s+r+tf1+5ckVr1651yXLLlSunOnXqKDw8XHny5FFISIh8fX0VFRWl69ev69KlS9qyZYt+++033bt3j4PXhR7WREpKStKpU6c8el1jY2N1+fJl5c+f3+0BR0hIiOrVq6ewsDAVKlRIBQsW1L179xQdHa0zZ85o48aN2rt3r5KSktz+ubNkyaLq1avrjTfeUL58+RQaGqrcuXMrNjZWUVFRunbtmv744w+tW7dOly5dMtwxuG/fPtWvX99qWbVq1fTbb79p8uTJWrRokVlHz65y/vx5DR48WIGBgTp06FCqr/fz8zP9Htr7759//tGSJUsMsQ/8/f319ttv65133lH+/PkVGhqq0NBQ3blzR1FRUYqKitKxY8e0bt06nT59Ol3L8vPzs3o+fPjvbNmyaeXKlYqMjHTou/Hw+1mwYEFJ0vXr13XhwgUdOXJEycnJGbYNw8PDVadOHZUoUUJ58uRRaGiosmfPrpiYGN24cUPHjh3Tnj179Ouvv9psmpWebfrGG2+oSpUqKlSokPLmzas8efIoISFB165dU1RUlE6dOqV169Z5fJANgIADQBpUrFhRYWFhLp9vjx491KNHD2XJksWhqtV//PGHWceljwoICFDjxo3VsWNHu7VNoqKitHbtWn3zzTc2n4Ta89lnn6lNmzbKnDmzAgMDHX7f+vXr0xVwZMmSRT169FCzZs1UoEABq68pXLiw6d+dOnXSP//8ow0bNmj8+PE6c+aMU/ulffv26dq3DRs21NWrV62WjRgxQjVr1nR6nocPH9b777//RL8Lf//9t27cuKGLFy8qISHB47+7Gzdu1KuvvqqbN2+67behQ4cOevfdd+1+h7t166ZLly5p2LBhWrlypVvW5eWXX1bv3r31zjvvyN/f36K8QIECKlWqlCSpadOm+vLLL3X06FFNmzZNy5YtM8zv8Y4dO2wGHNKDEO7zzz9Xv379tGrVKq1atUpbt27VnTt3XLYOs2bNslt+4MABU7jr6+vY5drRo0c9PuAIDw/Xp59+qpo1a9ps9vX8889Lkho3bqyBAwfq3LlzmjNnjv7zn//o/v37Di2nadOmGjp0qLJly+bQuTEqKkr//e9/rV8s+/qqTp066tixo9544w2b84iJidHmzZs1YcIEp84XzggMDFTnzp3VpEkT03Z6XP78+SVJlSpVUufOnRUbG6sFCxZo2rRpio6OTtfyCxQooE8//VR169a1ObJb8eLFTf/u27ev/v77b82fP1/Tp08362AXAAg4AIPy8fHR559/7pZ5BwUFKUeOHA6/vkSJEhYBh5eXl3r06KFu3bopZ86cqc4jJCREbdu2VbNmzTR69Gj9+9//dmqds2fPniGd+T36+Zo0aaJBgwYpNDTUojwhIUGXL19WfHy8QkNDlTNnTnl5eZlCkcaNG6tevXqaO3euxo8fr5iYmFSXmSNHDtPTvTT/QNu5qQkODk7T/B15QulujRo1MtT397PPPnPbd3fMmDFObY8CBQpoxowZevfdd9WzZ0+Hb/ZSExwcrIEDB6ply5amY1+S7t+/r23btunEiROKjIxU9uzZ9dxzz6l69eqmGi0vvPCCpk6dqjZt2mjgwIFmzXo81fLlyzV06FAFBATYfZ2/v7/ee+89vffee0pISNBvv/2mX3/9VTt37tSJEyfc9rTey8vL6m+VkWXOnFkff/yxPvzwQ7PAISUlRXv27NEff/yhq1evKlOmTAoLC1OtWrVM56Pw8HANGzZMrVq10sCBA7Vnz55Ul5clSxanzjMlS5a0GnC0bt1affr0Ud68eR06t7333ntq0KCBZsyYoZEjR7q0tmPjxo01aNAgU4DxqOTkZFPNlxw5cig0NNS0nYOCgtStWzc1a9ZMffr00YYNG5xevr+/v7p3766ePXtajES0b98+7du3T1euXJG/v7+KFCmiGjVqKE+ePJKkQoUKacCAAWrZsqUGDRqkrVu3cmEIgIADMLK+ffuqfPnybpn3gQMHNG/ePAUEBKhw4cIqXbq0zacqDwOOR2XNmlVTpkxRrVq1nF52YGCghg4dqvz582vo0KEOv+/KlSumKqve3t6mUMEd/Pz8NHnyZDVs2NBselJSkpYsWaL58+ebjVQjSaGhoWrRooU6depkukDz8/PTBx98oDp16igiIkJ//vmn3eVevnxZsbGxdvfF45KSknTy5ElTgGKvdsOZM2f0559/KiQkxOHOZyMjI1Ndb2SMihUravLkyWkOwRo1aqTAwEC9//776b7JLlWqlBYtWmQxdPW8efM0fvx4Xbt2zeI9mTJlUrdu3dSrVy9TTY833nhDa9asUceOHT1+dJyYmBgtWbJErVu3dvg9AQEBqlGjhmrUqGGax+7du7Vr1y7t3LlTx44dc1ngkZKSYtY0zlptGiPJmzevfvzxRz333HNm0zds2KAhQ4bo/PnzVn+7H94QP/wdLVWqlJYuXaq+ffvqhx9+sLvMkydPat68efLz81PBggVVsmRJu32rPH5u9PPz06hRoxQREeH8xbWvr3r06KGCBQu6JIgMDAzU9OnTrZ6nN2zYoB9++EGbNm0yqx3h6+ur+vXrq1evXipZsqQkKXfu3Jo7d66+/PJLTZs2zeHl58qVSwsXLrSo2bl9+3Z9/vnnVpsa+vj46L333tOQIUMUHBxsCqoWLlyoYcOGafr06ZwIALiFl6QUNgNgqUmTJpo8ebLNckdO0H5+furXr5969OhhUTZmzBhNnDjR5eudLVs2ffbZZ+rYsaPV8u3bt6t58+aSpLCwMM2dO9fsovP27ds6deqULl++LF9fX+XJk0dlypRJtYpv//79NW/evDSvd1BQkNq2bauePXvaDAXWr1+vDh06OHVROGvWLFWrVs3iRr979+5mQzVaExwcrKlTp6py5cpm02/evKl27dpZBCPWlC1bVp988kmqzUnGjBmjmTNnpqkKfPny5dWjRw/VqVPHavmSJUs0ZcoUj+/vIi3atWun0aNH2ywfMWKEpk6dmqHrdObMGYsnnJJUpUoVnTp1So0aNdKUKVPMRs84dOiQdu3aZQoT8ubNq8qVK1vcdD1uyJAhmjlzZprX9eWXX9bChQvNQrLExER169ZNq1evdujY++GHH8yaGty7d09dunTR+vXrPfrYCQoK0rZt21xWUyI2NlZ79uzRb7/9pg0bNuivv/5y2bpmzpxZBQoUUMOGDdWlSxebQ4YfPXo0TU3XHjV9+nSLQFiSJk+erFGjRjk9v8KFC2vx4sVmzf8k6V//+pdmzJiR6vvDwsL0888/m9WgSElJ0RdffKHvvvvO4fV4WAOhb9++ZrWUHjp37pwqVapkCgK+++47vfrqq6by+Ph4HT9+XFeuXFFycrLp3JhaM8tJkybZ/Y1KTfbs2TVv3jyzdXl4vPXp00erVq1K9diZM2eO3n77bbPpX3zxhWbPnp3q8kNDQ/Xjjz9aNIf5+uuvNW7cuFRrqISGhmrZsmUWTXS/+uorff3111xsAiDgAIwQcISEhKh27drq3r27zX433BVwPPTTTz+ZLtasXcRlyZJFa9euNQ1de+TIEX399dfavHmzRc2BoKAgtWrVSp9++qnNjhbj4+NVrVo1q0/inFGlShUtWLDA6gWoMwGHt7e3Fi5caBFOxMbGqk6dOg6vp4+PjxYsWGAxn7t376pBgwYOdZ7m5eWl8ePHq2XLllbLr127pgoVKqSrbbK3t7fmzZtn0ZHtyJEjNWXKlKf2e2q0gCN//vyaO3euKTD89ddfNWTIEJvNOt58802NHj3arE3748dh5cqV09TRZ+nSpbV8+XKLfhB69+6txYsXOzyfSpUqadGiRWaBzf3799W4cWOzYa49UcWKFbVw4UKr+yu9Tp48qfXr12vZsmUuHQHr5Zdf1ooVK6wOL+tpAUeePHm0du1ai+Yd33zzjcaOHevwfIoVK6bVq1dbBDsffvihVqxY4dQ6TZw4Uc2aNbOYnpCQoPDwcPn6+mrJkiV67bXXJD3oEHbChAlas2aNRQfdmTNnVsOGDTVo0CBTLYXHJScnq3Hjxvrf//7n9L7Ili2bVqxYYRF03rlzRw0aNNDx48cdmk+FChUsmt8kJCSoZs2admv1BQUFae3atRbXMXPmzNGgQYMc/hz58+fXunXrLLbRZ599pu+//54LTgAuxdhkQBp17dpVGzduNPtv27ZtOnz4sP744w+NHTvWLZ2KOsrWk5mH1dDHjx+vYsWKKSUlRaNGjVLdunW1Zs0aq80iYmNjNWPGDNWqVctqdXXpQW2JLl26pHu9t27d6lD76tT06tXLIpSQpJ49ezoVwiQlJalr164WT2MzZcqkGTNmODSyRkpKigYPHmyz/wtfX990d7yWnJxs8cR9w4YNT3W4YTSvvPKKZs2aJT8/PyUnJ2vQoEFq2bKl3T4rdu7cqYYNG9oM0jJlyqS2bds6vS6BgYGaNm2aRbixdOlSp8IN6UGHnY8/ifX19dWkSZPcEhy40p49e9S+fXuH+tVxVokSJdSzZ09t3rxZq1evVtu2bZ3qVNmWAwcOuK2TWVfy8vLSN998YxFu7Nu3z6lwQ3oQGvbv399i+pgxY5yugWOrc9eAgAAFBQVpwIABpnBj1qxZqlq1qpYsWWJ19LE7d+5o0aJFqlatms1ORb29vdWzZ880bcORI0darcX18ccfOxxuSA/CTGuft1evXnbfZ+065tSpUw6P7PbQ5cuX1atXL4vaHkOGDFF4eDgnBwAEHIAnCA0NVenSpc3+e+655xQcHGy19kFGszWsXtasWdW9e3c1bNhQKSkp6tevnyZPnuzQ0JPnzp1T+/btbbYzb968uc1e8Z3hzIWbNRUqVFCfPn0spm/atClNnavFxMRo5MiRFtOLFSvm8BPNuLg4TZo0yWpZrly59NZbb6V7uz3azvv+/fv64osv+KJ6kDFjxihz5sxKSUlRz549NWfOHIfed+vWLdOIPta0aNHC6tN8ewYPHmxR5Tw+Pt7qce6IyZMnW4z4U7RoUbd1ruxK27dvV7Vq1bR9+3a3LaNcuXIaM2aMdu3apfbt2zs8Koothw8f9vjt2rlzZ1WpUsViujP9NT1q+fLlFs0Cs2fP7nQzhzNnzthsVtG2bVt169ZNkjRhwgQNHjzYoZGeoqKi1KpVK929e9dqefXq1S2a6KTm//7v/9SkSROL6Q9H9XFUgQIFbJ4L6tevb7N/l+bNm1utyTNs2LA0DVW9ZcsWbdq0yWxapkyZNGnSJHl7czsCgIADeOISEhIUGxtr9l9aTvruEhUVZbPsYdXSf//731qwYIFT8z148KDNJ7yZM2e2aCecFukZxs7Ly0tjx461esM3YcKENM/3l19+0dGjRy2mN23aVK+//rpD8/jhhx9048YNq2UfffRRurfbo09K16xZowsXLvBF9SAPm6VMnDjR6SFVL1y4YLNJW2hoqKkTQUeUL1/ealOvn3/+OU3DPksP+u2w1h9Cu3btbA7J7EmuXLmi5s2bq0OHDukOWO0JDQ3VqFGjtGTJElMHxmldX08WGhqqgQMHWkzftWuXQ30X2WKtz44qVarYHbr1cXfu3FFcXJzVsofr/Msvv2jcuHFOrdvFixdtdtzp7e3tVIidI0cOq+F5cnKy07VfmjRposyZM1stCwwMVL58+SymBwUFafjw4RbTjx8/rs2bN6d5/1kbca18+fKqXbs2JwgABBzAkzZmzBiVLFnS7L8iRYropZdeUtu2bbVgwQKHnvy4i72Ov7y8vHTu3Lk0d3w2d+5cuzdPT1L16tWtVuk9ceKEDhw4kK7tuXDhQqtlqVXzfSg+Pt5m06HKlSvrpZdeStdnf/Qi35HO45DxDhw44PSN00MLFiwwG1njUY+PbmBP165drU5funRpuj7b409npQd92DjTMfCTtn79etWoUUOtW7fW+vXr3RZav/baa1q3bp1LAmFP1KlTJ6s1A9J7jG3dutXqiCTvv/++S9bby8tLN27c0IABA9L0/vnz59us4ejMvm7fvr3VjmQ3bdpks3amLXXr1rVbbm2o5DZt2lhdfnr33+7du63WROvUqRMnBwAEHIAnSk5OVnR0tDZt2qS+ffuqcuXKbq32nB5TpkxJcwBz8OBBXbx40WrZ48MAZrTu3btbnb5lyxaX3PxYU6VKFYfDie+++85mUwNro+04Knv27KaA48iRI9q7dy9fSA/0zTffpHko0Zs3b9oM6V588UWH5lG4cGGrNzzR0dHavXt3uj7biRMnrD4Zj4iIsHoT5alSUlK0ZcsWdejQQRUqVNDAgQO1devWdPeT87jQ0FAtXbpUFSpUeKqO8cyZM6tdu3ZWyxwZmceeuLg4q33W1K5d22U1hebMmZPmWoSRkZH6/fffrZbZ6ijYWuBg64Y/LU0sHx/++VH379/XuXPnzKb5+vraDIycaRpja3l//PGHxfRKlSo5VQsNAAg4gCfk77//Vps2bdJVpdMdbt265XQV+ccdOnTI5o32k1KsWDGbzUW2bduW7vlfunTJZvX11q1bOzSPmJgYzZ8/32pZ/fr109wxbcuWLU1NIKi94ZnOnz+vjRs3uuV7Z2sEh8e1bdvWavOt48ePpzrcoyPBwPXr1y2m58yZ02qHv0Zw9epV/ec//1FERIReeOEFdenSRUuWLLHobySt/Pz8NGPGDIf3nxE0atTI6nng0qVLunXrVrrnb62jax8fH9WrVy/d875//77N3+f0fkdz5Mjh0PsbN25sM5RIy++HvdFbVq9ebRHc1apVy2qzlbi4OJcMfWyro/IGDRpwkgBAwAEYwb179/TRRx/p5s2bHrNO27dvV3x8fLrmYWvkB0cv4tzB2rC4j97AuYKt+TjTvnrGjBlWnwZ7e3ubOrhzhpeXl9q3by/pwZP45cuX88XzQNu2bUt3iGDrxjooKMih99s6Tl01jKmt2knlypUz/P6Li4vTL7/8ol69eumVV17RG2+8od69e2vRokUWT8GdkTdvXk2ZMsUjOqd2hbfffvuJHGMvv/xyuud9+PBhm6NdZdS50VrHrNKDgCgtwdro0aOtdn56/fp1qx2+2vqNsDfakyv23yuvvMJJAgABB2AUt27dcrqnd3dKTydvD9kKbGz1yJ4R3nzzTavTY2Nj7Xa66oxTp05ZnV60aFGHhyu8evWqzbbMLVq0cLrzwSpVqphqfjzpvl9gmyuGP7bVSa219vKPy5o1q82mLLaanDnL1rH7NN68/PXXX1q8eLE+xHB9AAAgAElEQVQ++eQTVapUSeXKlVPXrl01Z84cpwOPd955x+bvl9HYqkXn7mPMFQGHO8+ND2vYpaZixYpWp//5559pWp/z58+rbt262rJli+7evavbt29r3bp1qlmzptXAxN37z9Z5sly5ck9NyAeAgAN4Jvz0008ub8OdVseOHUv3PGwNh/ck2bowPHv2rMuWcebMGZtlzvTkP23aNKtP8/39/dW5c2en1ulhJ47379/Xf/7zH75sHsoVIZutTi8dGSa2QoUKNl9na1QJZ5QqVcpm1fqnoQZHaq5du6aVK1dq0KBBqlSpkipVqqQJEyY4XCOgRYsWht8GYWFhZqM5PcrWk3tn5MiRw2Z/R4ULF1bOnDkNfW4sXLiwze2X1oBDehDMt27dWs8//7xKliypjh07Wj0uc+bMabWTblf9RmTKlMlmZ6vZs2dXkSJFOFEAIOAAjCImJiZd/UBUrVpVnTt3VufOndNdS8IVzWU8Jax5yM/Pz+aTIVe0+350P9riTCd3f/75p9auXWu1rG3btg49kZekQoUKqXr16pIetKd2Vd8AcM9vwJNkrwPg9N685M+fX1999ZXN8uzZsytTpkwesR+mTp2q6dOnq1+/fm5dzrlz5zRu3Di99tprGj58eKo3+PXq1VPWrFkNfYy78xgLCgrS119/bfc4stZ3hJHOjfY6q3ZFDYqkpCS7zeSKFy9usxZFevdflixZNHbsWLshlBGGlAbg+XzZBEDGOXjwoGrUqJGm9/bu3dvU2/68efPStR6uuOFPb18CrmavffOdO3dcthx7T+ecfXo4ZcoUqyNaBAUFqV27dpo6dWqq82jXrp28vR9k1XQu6tlsDfHqCd+RoUOHqm/fvmmab2BgoEM3Jjly5PCIml8NGjSQr6+v7t69q6+//trtYW1iYqK+/fZbrVmzRvPmzVOxYsWsvu7h0+2tW7ca9hi3d4y9//77atKkSdouVn19VahQIdNvnat+g90RcKSHvc5mXVGDIj37r3nz5mm+fvHx8VGhQoVSrWn2JDspB0DAASANjh49mub3Pv/885IeDEWb3g5CPa32hbsvzFxRNfohe2GJsxfXBw4c0I4dO6x2jtq5c2fNnDnT7k2xv7+/WrVqJelB53i2hicEUvuO2KoW7+rlX7lyxWO2R6ZMmfTSSy9p//79GbK88+fPq379+lqxYoXNmg758+d/ao+x4OBgt48Wk94b5Cd9brR3Drl9+/YTXX7OnDnTHSC5e/8BgETAAWSotDYfCA0NNZ34XVkb4WlibxQJW/0WpIW9eTk6ksWjpkyZYjXgyJMnj5o3b253yMJGjRopV65ckqi9gfTdvCQmJrq9Vpajza4y0muvvZZhAYf0oJlS27ZttWnTJmXJksWiPL1NLJ40ewHH/fv3lZyc/MwdY854+HtuTUac++3tv6SkJJeeS60xehMtAJ6BgAPIQGm9QHm00y9X1kZ4VratK9v+Z86c2WZZWvbNtm3bdOTIEaujW3Tv3l0LFy60eVPwcGjY69evMzQsUmVvhILu3btr1apVz9w2eeuttzR9+vQMXeaFCxc0ffp09enTx6LM6AGHvSYkY8eO1ZQpU/gi2mEt9HrI0VFY3PUbMWPGDH355ZfsJACefy5iEwAZ58aNG1q3bp3WrVvn1MgelStXNv3bE0cv8ZRtm5ZQwln25mVvHeyxddEfFhamevXqWS0rU6aMaejN+fPnP/H+HeD57PUvEBAQ8Exuk3feeeeJhArz58+3WmPG6EM8c4ylT2xsrM2ytNQQdOX+CwwMZAcBMAQCDiADXb9+XR07dlTHjh21cuVKh99Xs2ZN079pomKdvY5TM6oGR3R0dJrmuWrVKp0/f95qWY8ePaxO79ixo6QHTQvmzp3LAYBU2QvgPGWEk4zm4+OjiIiIDF9uZGSkTp48afUcYWT2bpCf1WPMVdsvI5pvEHAAeBoQcAAeLiwszKxDOpqoWJeQkGDz6VeePHlcthx7T3uvXbuWpnkmJSXp22+/tVpWpkwZvf3222bTcuTIoUaNGkl6MDRsZGQkBwDSdfNia4jlZ0FERESqozu4w6VLlyymGT3gsBeiPcvHmCu+oxlR08je/nPleRQA3ImAA/BwjRs3NvubGhy27d271+r0sLCwVIcXdFR4eLjNsvSMYrJ48WKbAUnPnj3N/m7ZsqXpadqsWbPY8XDI4cOHbZY5Mszr0ypfvnxq3rx5hi/X2m/5X3/9xTH2DLt48aLNstKlS7t9+SdOnLA5kgz7D4BREHAAHiwwMFDvv/9+qhfFeGDXrl1Wp/v7+7ts+EVbAcfly5dtNjNxREJCgs2w4q233lKZMmUkPegErl27dpKkgwcPat++fex4OGT//v02fz8eDkP9rBo0aJDdESTc4fEn4vHx8dqzZ4+ht+O1a9esNr3hGHPM77//rvv371stK1WqlNuX/88//+jAgQNWy4oWLZohHZ0CQHoRcAAeLCIiQsHBwRYXILBu586dNstcdXH4MGh43Pbt29M97++//163b9+2WvbRRx9JkqpWraqwsDBJDA0L5yQmJmr37t02j2t39JGQI0cONW/e3OM7mMyVK5cGDhyYocssVKiQ2d87duwwfCej9n4Lc+XKZdbc0lX8/PzUunXrDOmEMyMChoMHD1otCw0NVfHixV22rDJlylj9Xv72229WXx8QEKCyZcu6/DN7eXkpIiLC7jDWAOAMAg7AQ2XPnt2iaYJEDQ57Dh06pNOnT1ste+edd9I9/xIlSthsB+2KYVpjY2P1/fffWy179913FR4erg4dOkiSoqKi9N///pedDqesWbPG5k1ilSpVXL684cOH65tvvtG+fftUoUIFj942rVu3tujvxl1KlixpUats3bp1T/UxJpl3mO0qPXv21FdffaX9+/eb+iYysl9//dVmmas+X9GiRbV69WodO3bMVCPQkf1Xq1Ytl3/ejh07aty4cdq/f7/atGnDjzSAdCPgADzU2LFjrXbKRsBhW0pKiqZPn2617NGhdtOqatWqVqcfOnRIW7dudclnmDlzptUhX729vfXll1+qWrVqkqR58+bZbCsN2PLTTz/Z7Ovl4cg8rlKjRg01adJEkhQXF2fzybSn8PLy0syZM91SyyC1G9VLly5p8eLFT8UxtnPnTpvNHNq1a+ey/pCkB0HRxx9/LElKTk622UzRSOz9tr/33nsu2X69e/eWt7e3MmXKpD/++MOs7NixYzbPZ61atZK/v7/LPmuhQoVMNae8vb1dUhMyc+bM8vLyyvgbqv9/ez4JmTJleiKfGSDgAOCwVq1aqUGDBlbLaKJi39KlS63ewBUvXlyvvPJKui5ebD1dmjRpksvW/9q1a/rxxx+tllWtWlXe3t5KTEzUvHnz2Nlw2r179/Tvf//batlbb73lsifs2bJl09ixY01/Dx8+3Gpw52mCgoI0b9485c6d223LyJs3rzp37mw2bdy4cYbYPo6aMmWK1emFCxfWBx984JJl+Pj4aMKECaZ+ISZNmpTmkaw8ydWrV22GXUWLFlWrVq3SNf/w8HC99957kqQjR47o0KFDDu+/4OBgU6DkCuPHjzcNvT5z5sw092Pl5eWlbt26adeuXTp9+rROnDih2bNnu/V7/FBYWJgWLlyokydP6s8//9TOnTvVrFkzty/Xy8tLnTt31s6dO/Xnn3/q5MmTmjNnjkJCQjjRgYCDTQB4lg4dOpjdGDzu7t27bKRUbuBGjhxptaxXr15pnm+DBg1UtGhRi+k7d+60W6U3Lb799lslJyfbLP/ll18YGtaTT6zenn1q/f77722O1jBu3DjlypUrXfPPkiWLZs+erbx580qSVq5cqVWrVhlm/xUuXFg//vijRR8ZrropGTlypOmmTnow8siSJUuequ/A2rVrbXaAPGDAgHTXknkYbpQrV06SdODAAc2YMcMl+8edN6SOmjp1qs3A67PPPktzh7i+vr4aPXq0aVjkcePGWX3dzp07bdbi6Nmzp15++eV0b4svv/xSb731liTp9OnTGj9+fJrnN23aNH3xxRcqUqSIvLy8lC1bNtWtW1dr1651a+fBL730ktavX68qVaooS5Ys8vLyUlhYmCZOnGjqN8tdJk2apH/9618KCwuTl5eXsmbNqtq1a2v9+vUWfbcBBBwAJCnVDstcfRMTEBCgIUOGaOTIkaaLD2scbaJir7dzV4xnb+sE6gkn1sWLF2vZsmUW02vWrKk33njD6fllzZpV/fv3t5h+7do1devWTSkpKS5d//Pnz+uXX36xWU7noo7fNPj6+mbo+mTPnt1mh5quuNC29f3Knj27w/OIi4tT165drVaDDwkJ0cSJE03DEDsrR44cWrx4senG5cKFC+rbt6/hjqtSpUppzZo1evPNN10638GDB6tOnTqmv6OiotSxY0clJSU5NR9bHTK64ni3FXDZOy89LiUlRR9++KFu3bpl9Vw3bdq0NAdp/v7+mjlzpukp+e3bt9W9e3enmuzZ2k7uPDdmy5bN4eYd58+f16BBg2zOf86cOWlqKvLVV1+Z+pnZs2eP1q9fb/O1PXv21NWrV61uuylTppgCzLSELBMnTlSnTp0kPRhB7MMPP0zzw5tmzZrZ7Jskf/78GjJkiFt+I/z8/DR58mRlzZrVannfvn2tPhRxhcaNG5ua/z0uNDRUQ4cO5eIABBwALKXW2Zyrhrzz9vZWs2bNtH37dnXt2jXV1zvaROXhky1r0vv0xdvbW9WrV7daFhIS4rIhWdOjf//+FtVdvby8NG3aNKerrY4aNco0cslDSUlJ6tatm6Kiotyy/raqCB84cED79+/nC/r/e+211+yWZ0R/Co+qXbu2zbKSJUumO8yx9b0rXLiw1T57bDlw4ICGDRtmtax69epatmyZU/N7+Ju4bNky0+/LzZs31bFjR8XGxhriWDp37pzZ9zlXrlxatGiRPv7443SPAuPn56cRI0aY/cbfu3dPnTp10uXLl52eX8WKFW3ug4IFC6Z5PbNly6YXX3zRalndunWdCvYvXbqkXr16WQ2AX3jhBa1evdrp70S+fPk0f/58U0h07949denSRX/99ZfD8yhRooTNvhLSe26UbHek6uXlpZdeesnh+SxYsECLFi2yuf9nzpzp8MgxPj4+GjBggFq0aCHpwYOSPn362H1PdHS0PvzwQ6vD1oaHh2vNmjVOb6+QkBDNnj1bTZs2NZ1HP/roIx0/fjzN2/thcxtbbP1mptcLL7xg9zrQz8/PJZ2bp+Uz16hRg4sDEHAAMD8BDxkyxOwpmzVNmjRRy5YtnR4X3svLSzlz5lStWrU0evRo7dmzRxMnTlSBAgUcen9qNTi8vLz01ltvafTo0TZf88knn6T5xFuyZElNnTpVlSpVsrn8sWPHOvx53CUuLk7NmzfXmTNnzKaHhobqp59+cujJir+/v8aOHWvxpOTu3bv64IMP3Nqh3ZEjR7Rt2zaL6dTeeMDX11eVK1fWu+++a/d1jRs3Vps2bZz+njrLx8dHLVq00PDhw22+pnfv3ipfvnya5p8/f35NmDDBVDPC2vK//fZbp5pVzJ4922a18LJly2rdunXq3r17qjVPihcvrmnTpmnz5s0qUaKEpAcjArVs2TJdNy4ZKSYmRq1bt1b16tW1ZcsWs+Osf//+2rlzp5o3b56mmntly5bVihUrzDpxjYmJUbt27Ww247B33Hfs2NFmH01eXl7q379/mp4cFypUSFOnTrW5v8PDwzVw4ECnAuyNGzfqk08+sVq7onDhwlq5cqX69+9vc3Sqh/LmzasRI0Zo165dpu9AYmKiOnfubPV30pZXXnlFU6dOtVn+/vvvq0GDBmnaz0WKFNGIESNsPlmXpGHDhjkVug4YMEAbNmywGaRs3LhR1atXt7u+b731ltavX282Kttnn32ms2fPprr8vXv36sMPP1R8fLxFWWhoqH7++WcNHjxYRYoUsTuf4OBgffHFF9q9e7cpAEpOTtbHH3+c7uZrjz98eFzu3LnNmoS5SmrLfXhMuEN4eLjd8uzZsz8VwyYDaeUlKYXNgGc1yPjhhx/MLgxz586t3LlzO9VW9u7du4qMjHQoeMiVK5eCg4PTVY24devWZhfgRYsWNXUaGBAQoPz58zvck/edO3cUGRlpqhrap08fi5EOWrRooc6dOysgIED58uVz+EIhJSVF0dHRioqKUkpKiu7du5fqzeijAcynn35qMX39+vWmYVIdlStXLs2fP9+iRktcXJymTZumRYsWWVTD9ff3V/369dWjRw+VKlXKrCwqKkrt27e36HneHSpVqqSffvrJ9Pe1a9dUoUKFZ2b0lFdffdVmUFegQAGnmmUkJCTo4sWLSkhIsCgbPHiwdu7c6fT6LVq0yHTxXKBAAYdDlJs3b+rq1aumJ9tfffWVxRChI0aMUMWKFeXt7a08efIoZ86cDv0upaSkKDIyUjdu3DD7DkdHR9t8T9OmTTV+/Hib6x8fH6+NGzfq/PnzunTpkmJiYlSoUCEVLVpURYsWVfny5c1usM6cOaOOHTvqzz//9Mjj6sKFC2a/wUlJSWrTpo3pRtnLy0tdunTRwIEDLbbJxYsXtWHDBq1fv147d+60+V3MnTu33nzzTUVERFiM4HT8+HF16tQp1VoHFSpU0KhRo8x+lwoXLuxUM4dHz0tz5841dU78+eefmw0LHBIS4nDnhCkpKfrzzz/NPnvDhg3tngPfeustzZo1y+ZNV1JSkrZs2aLTp0/r8uXLun79uvLnz6/w8HCFh4fr1VdfNatFExUVpc6dO2vv3r02l5k1a1bT8N1+fn7Kly+fzeYE1n4vrl69aqoxOWbMGIugoWrVqho0aJB8fX2VL18+ZcuWzeFj8NatW4qMjDQ1TWratKnV5jzSgxqTgwcPVpcuXWzO78qVK1q7dq3++usvRUZGKm/evHr++edVunRplS1b1iJksTXamL1g6D//+Y/N2o/Jycnavn27jh8/rsuXL+vatWsKDQ1VeHi46Tfi0WuHmJgYde/e3exaJq0WLVpkd5S0K1eupDlYtqd8+fJauXKl3df069dP8+fPd/my582bZ7dmSlRUlMV+B54lvmwCPLMHv6+vSpcune75ZMqUyaEk31Ueb6ISEBCQ5s+ROXNmsycB1i7+goOD0zT/RwMjSS65KU/LELk3btxQ06ZN1bt3b3Xp0sV0c5A1a1b169dPffr00dmzZ/X333/rzp07KliwoIoVK2b1YnX58uUaNmyY1XbJ7rBjxw4dOHDAVA34WRsaNlu2bC75jj78nhQrVszmctKiRIkSTjfjkB70n/BoHwrW+lMoXLhwmr93efPmNWsfn1qgumTJEp09e1b/+te/rN4IBAYGqn79+qkuOzk5WYsXL9aQIUN0+/ZtwxxnI0eONKsFkJKSohkzZmjlypXq0aOHIiIiTDfXBQsWVMeOHdWxY0fdu3dPV69e1bVr10y/Cblz51bevHmtnhPi4uI0Z84cTZw40aHfsvQe/4+vw6P9SxQsWDDN8/by8rKohZBa/xzbt29X3bp1NXToUKtNOHx8fFSjRg2HqtZv2LBB/fv3T/V32MfHJ82fMSAgwOzpu7VaLdmzZ0/z/HPkyGE2T3vf0eTkZA0dOlSHDh3SoEGDrNZ2yZcvX6rDPMfHx+uLL77QggULnF7f/fv3q27duho8eLDV2kPe3t6qXLmyQ8Oxb9++Xf369UvziCmP27Rpk93l2uvPKj2OHj2qq1ev2uyL5M6dO9q8ebNblr1582a7AYe7PjNgFDRRAQwmLTf5T4ubN2+meZuNHDlSlStX1ooVK8x6p/fx8dFzzz2natWqqX79+ipXrpzZDW9KSop27dqlBg0aqHv37hkWbjx05MgRU0D0/fff8wWAW+zfv18NGjRQ586dnW5WkpiYqLVr16pOnTr65JNPDBVu/Pzzz/r222+tll2+fFmDBg1SxYoVNXXqVIsbsoc1Kl599VXVr19f9evX1+uvv24RLERHR2vy5MmqWLGiRo0a9cz+hp87d07t27dXkyZNtGfPHqc6Z05JSdH27dvVokULtW/fPsN/hz3lWH3zzTc1bNgwp4bDTUlJ0aZNm1SrVq00hRsPXbp0SV27dlW9evX066+/2h3py5rff/9dHTp0UPPmzV0WbkjSnDlzbNaoPHPmjN1R6dIjPj5eAwYMsNpBcEpKioYPH56m/nUc8f3339ts3nb+/Hm7TZSBZwFNVAB4HFtNVMaPH5+uoeQeypo1q6pVq6batWuraNGiypMnj6lpUnR0tK5du6YLFy5o8+bN2rhxo9s6Ek1Nvnz5tGvXLvn7+2vp0qVmbagBdypSpIhq1qypypUrq0CBAgoJCVGuXLmUkpKi2NhYRUZG6uDBg/rf//6nNWvWmDWJ8XRTp06Vj4+Pbt++rc8//9xqsyVbChcurLfffluVKlVS/vz5TbXUgoKCFB8fr+joaEVHR+vq1avavXu3fvvtNx07dszlIy09DfLkyaMaNWqoWrVqKlSokPLkyaPg4GB5e3srLi5O169f16FDh7R//36tWbNGly5dYqM9vHj38lLZsmVVvXp1vfHGG6ZtlyNHDt2/f18xMTE6ffq0duzYoZUrV+r06dMuX4dcuXKZ9l9YWJhpHXx9fXX79m3duHFDhw8f1oEDB7R27VqXhhqP8/f3V8+ePdWgQQOFh4crMjJSmzdv1pdffqm4uDi37ouXXnpJn332mcqWLatMmTLp+PHjGj9+vEua39jj5+enHj16qFGjRipatKgiIyO1detWDR8+3FAhM0DAAeCZ0K9fP/Xu3dtiep8+fcz6TXH1BaMkj7oRGT16tNq1aydJqlOnjg4dOsTBgSfG29vb6ae2zwofHx+nh3qFMX6H+Y46t/+8vLye+Do8qePnSS37SX5mwBPRBwcAj2OrI7rff//dbcv0tIuDQoUKqVWrVpIetFkm3MCTRrhhG+HG0/k7zHfU+f33pPfhk1z+k1o23xvAHH1wAPA41gKO6Ohojx2VwR0++eQT0wgOkyZN4qAAAAAAUkHAAcDjWAs4fvvtt2fm84eHh6tp06aSpAMHDmj79u0cFAAAAEAqaKICwONYG3rTqCOI+Pn5qUSJEpKkU6dOmY3gYsugQYNMwy6OGDGCAwIAAABwAAEHgAyTP39+tWrVSgULFtTu3bu1bt063bp1y+w1AQEBKl26tNm048ePa/fu3Yb7vLVq1dL48eMVHBws6f8Ns7d//36b76latareffddSdKGDRu0c+dODhwAAADAAYyiAiBDvPLKK1qwYIGyZ89umnbkyBHVrVvXrIO+V199VStWrDB7b9euXbVy5UpDfd7Q0FDt2LFDmTNnNpt++fJlvfHGG0pMTLR4j7+/v7Zu3aqwsDAlJCSoRo0aOnPmDAcPAAAA4AD64ADgdj4+Pvr666/Nwg1JevHFF9WhQwezaW+++abZ3ytWrDBcuCFJ7777rkW4IT2oxVK8eHGr7+nXr5/CwsIkPRgilnADAAAAcBwBBwC3CwsL03PPPWe1rHHjxqZ/Z86cWe+//77p72vXrmnAgAGG/MyFChVy6vXNmzdX9+7dJUk7duzQzJkzOXAAAAAAJxBwAHC7fPny2SwrV66cSpcuLW9vb/Xp00chISGSpH/++Uft27fXzZs3DfmZ//rrL5tlV69e/X8/wt7e6t27tyZMmCBJunDhgrp27ark5GQOHAAAAMAJdDIKwO3sNbXw8fHRf//7X126dEnPP/+8JCkxMVEdO3bUwYMHDfuZ9+7dq5SUFHl5eVmU9ejRQ3v27FGJEiUUERFhapZy/fp1tW/fXjdu3OCgAQAAAJxEJ6MAMsSmTZtUqlSpVF936dIl9ejRQ3v37jX8Zx46dKi6dOni0GvPnDmjNm3a2K35AQAAAMA2H0lD2QwA3G3v3r1q3LixAgMDrZYnJiZqyZIl6tSpk86ePftUfOYdO3YoZ86ceumll+Ttbb1F4L179zRt2jT17NlTUVFRHCgAAABAGlGDA0CGCQoKUufOnVW2bFkVKlRId+7c0d9//61Dhw5p8eLFun79+lP5uUuVKqWmTZuqePHiCgsLU2xsrC5duqRt27Zp/fr1io6O5uAAAAAA0omAAwAAAAAAGB6jqAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAAAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADI+AAwAAAAAAGB4BBwAAAAAAMDwCDgAAAAAAYHgEHAAAAAAAwPAIOAAAAAAAgOERcAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADAAAAAAAYHgEHAAAAAAAwPAIOAAAAAABgeAQcAAAAAADA8Ag4AAAAAACA4RFwAAAAAAAAwyPgAAAAAAAAhkfAAQAAAAAADI+AAwAAAAAAGB4BBwAAAAAAMDwCDgAAAAAAYHgEHAAAAAAAwPAIOAAAAAAAgOERcAAAAAAAAMMj4AAAAAAAAIZHwAEAAAAAAAyPgAMAAAAAABgeAQcAAAAAADA8Ag4AAAAAAGB4BBwAAAAAAMDwCDgAAAAAAIDhEXAAAAAAAADDI+AAAAAAAACGR8ABAAAAAAAMj4ADwP/Xjh2QAAAAAAj6/7odgc4QAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgTx0fEZoAAAbRSURBVHAAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4AAABgT3AAAAAAe4IDAAAA2BMcAAAAwJ7gAAAAAPYEBwAAALAnOAAAAIA9wQEAAADsCQ4A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/+MYxDEI82IgCACTTf6////t98+t/1zM6EI0EjnShA1ZDQGwCihWSh/+31m+3T3//9v///+8isktZGQJQdVOqqAj3bzT2uob/+MYxEgJ62IcAABHLDA+NMOJVR//f+v/T3///////s601VGsHZ1JChXYMDDFChZLktspI2cRANRlAv6/7f9v/0//////6Ugi/+MYxFsJS2IgCACRTV9TK6QjqqLREYkhtQEagpiFkYQYKuGDFPp7vWtk619lsZL+duiJrb///7dOuZCbOCI7qOdlOnxRMxKD/+MYxHAJY2IoCACNT/pSA8JVAv//v/X9dP/////9r8yqZJznU5kd3CIDKMWQnF2IEClORjJGgJl5FnIPrr6KtLldn19bIn/T/+MYxIUJu2okEACTTNV/////XqhmdUqV2Wg6snZtpXGY3CJ5wHFTyS0P/avqv/pud6pZX1d7bk3XXpfdP///+Ts2hqWcGlJi/+MYxJkJ214cAACNTYEQosiRkGN8kyJVjqGKD613X0XY1H+r7lo789b3/b/9u/7b1dKmRGkR0OQcc7jbmFJpwthYsRGzaNYX/+MYxKwKK2YkEACTTARJ///LWsue/Kf/////W5K4XsY6nJZLEpr+yFCbYkKFUzYoQk6S9EwElUBYVoBsE+sylf9foSm1t9lS/+MYxL4KO2YcCACTTVu5pGRSEIpZiqIVVnbdHufbknQx6Pultv9kf9uvL57R38h8nqBpHJqZDbbFGW11xdtVZgUqltJZHhtq/+MYxNALG14YCACNMS8BvandlRGV/SiqrqtStTstbrV6f//tz8/ZUoh3RY1TnOyEDCAdVklceHyInItkgSKJ2uof/x/zz+KS/+MYxN4LO2IYCACTTQEmlFZRGzd6Lefkv////tfznKLv4NZTPgji8uQaa6hlcySiYiQEuVDRsQFhcGA2+PUDvvka+fT/fkd//+MYxOwMo2YkGABTSFf////n97B1Uwttzm0l0kRGqMMoy6zlDhgfQ2iJTrczBJjCcVQiTK0qKFn/yX/NWesrfq/////9ZKae/+MYxPQRA2oMAACTELWd87muwfkuw0cGyBYFhQaEYHAM/KZFCsERXTJKBp4OvEJRh6YgptX/d0+7zJbIqA0RHWdEVq9DqrBm/+MYxOsMm2IYEAFTTWVdBjTHwZSnuiITdUd3br9af+P95Orq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`;\n","/* UAParser.js v1.0.32\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.32\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=350;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\\d\\.]/g,EMPTY).split(\".\")[0]:undefined},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\\s\\s*/,EMPTY).replace(/\\s\\s*$/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined:i}}return str};var oldSafariMap={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},windowsVersionMap={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var regexes={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[NAME,VERSION],[/opios[\\/ ]+([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[NAME,VERSION],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"UC\"+BROWSER]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[VERSION,[NAME,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[VERSION,[NAME,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[VERSION,[NAME,\"IE\"]],[/yabrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 Secure \"+BROWSER],VERSION],[/\\bfocus\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"MIUI \"+BROWSER]],[/fxios\\/([-\\w\\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[NAME,\"360 \"+BROWSER]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 \"+BROWSER],VERSION],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[NAME,/_/g,\" \"],VERSION],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[NAME,VERSION],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[NAME],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[NAME,VERSION],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[VERSION,[NAME,\"GSA\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[VERSION,[NAME,CHROME+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[NAME,CHROME+\" WebView\"],VERSION],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,\"Android \"+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[NAME,VERSION],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[VERSION,[NAME,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[NAME,VERSION],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[NAME,\"Netscape\"],VERSION],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[VERSION,[NAME,FIREFOX+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i],[NAME,VERSION]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[ARCHITECTURE,\"amd64\"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[ARCHITECTURE,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[ARCHITECTURE,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[ARCHITECTURE,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\\w)[;\\)]/i],[[ARCHITECTURE,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/\\((ip(?:hone|od)[\\w ]*);/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[MODEL,[VENDOR,\"OPPO\"],[TYPE,MOBILE]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,\"Vivo\"],[TYPE,MOBILE]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[MODEL,[VENDOR,\"Realme\"],[TYPE,MOBILE]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[MODEL,[VENDOR,\"Lenovo\"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[MODEL,/_/g,\" \"],[VENDOR,\"Nokia\"],[TYPE,MOBILE]],[/(pixel c)\\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[MODEL,\"Xperia Tablet\"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[MODEL,[VENDOR,\"OnePlus\"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[MODEL,/(.+)/g,\"Fire Phone $1\"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\\w\\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,\"HTC\"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i],[VENDOR,[MODEL,/_/g,\" \"],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[MODEL,[VENDOR,\"Acer\"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[MODEL,[VENDOR,\"Meizu\"],[TYPE,MOBILE]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[MODEL,[VENDOR,\"Fairphone\"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,\"AT&T\"],[TYPE,MOBILE]],[/\\bsie-(\\w*)/i],[MODEL,[VENDOR,\"Siemens\"],[TYPE,MOBILE]],[/\\b(rct\\w+) b/i],[MODEL,[VENDOR,\"RCA\"],[TYPE,TABLET]],[/\\b(venue[\\d ]{2,7}) b/i],[MODEL,[VENDOR,\"Dell\"],[TYPE,TABLET]],[/\\b(q(?:mv|ta)\\w+) b/i],[MODEL,[VENDOR,\"Verizon\"],[TYPE,TABLET]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[MODEL,[VENDOR,\"Barnes & Noble\"],[TYPE,TABLET]],[/\\b(tm\\d{3}\\w+) b/i],[MODEL,[VENDOR,\"NuVision\"],[TYPE,TABLET]],[/\\b(k88) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,TABLET]],[/\\b(nx\\d{3}j) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,MOBILE]],[/\\b(gen\\d{3}) b.+49h/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,MOBILE]],[/\\b(zur\\d{3}) b/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,TABLET]],[/\\b((zeki)?tb.*\\b) b/i],[MODEL,[VENDOR,\"Zeki\"],[TYPE,TABLET]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[VENDOR,\"Dragon Touch\"],MODEL,[TYPE,TABLET]],[/\\b(ns-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"Insignia\"],[TYPE,TABLET]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"NextBook\"],[TYPE,TABLET]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,\"Voice\"],MODEL,[TYPE,MOBILE]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[VENDOR,\"LvTel\"],MODEL,[TYPE,MOBILE]],[/\\b(ph-1) /i],[MODEL,[VENDOR,\"Essential\"],[TYPE,MOBILE]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[MODEL,[VENDOR,\"Envizen\"],[TYPE,TABLET]],[/\\b(trio[-\\w\\. ]+) b/i],[MODEL,[VENDOR,\"MachSpeed\"],[TYPE,TABLET]],[/\\btu_(1491) b/i],[MODEL,[VENDOR,\"Rotor\"],[TYPE,TABLET]],[/(shield[\\w ]+) b/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,TABLET]],[/(sprint) (\\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\\.[onetw]{3})/i],[[MODEL,/\\./g,\" \"],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\\d+)/i],[[MODEL,/^/,\"SmartTV\"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+\" TV\"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+\"cast\"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\\w)( bui|\\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\\w ]+)( bui|\\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[TYPE,SMARTTV]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/droid.+; (glass) \\d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\\w\\. ]{0,9});.+buil/i],[MODEL,[VENDOR,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[VERSION,[NAME,EDGE+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[VERSION,[NAME,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i],[NAME,VERSION],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[NAME,\"Windows\"],[VERSION,strMapper,windowsVersionMap]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/cfnetwork\\/.+darwin/i],[[VERSION,/_/g,\".\"],[NAME,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[NAME,\"Mac OS\"],[VERSION,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[NAME,VERSION],[/\\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[VERSION,[NAME,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"webOS\"]],[/crkey\\/([\\d\\.]+)/i],[VERSION,[NAME,CHROME+\"cast\"]],[/(cros) [\\w]+ ([\\w\\.]+\\w)/i],[[NAME,\"Chromium OS\"],VERSION],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[NAME,VERSION],[/(sunos) ?([\\w\\.\\d]*)/i],[[NAME,\"Solaris\"],VERSION],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\\w\\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _ua=ua||(typeof window!==UNDEF_TYPE&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:EMPTY);var _rgxmap=extensions?extend(regexes,extensions):regexes;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined;_browser[VERSION]=undefined;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser.major=majorize(_browser.version);return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined;_device[MODEL]=undefined;_device[TYPE]=undefined;rgxMapper.call(_device,_ua,_rgxmap.device);return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","import type _algosdk from \"algosdk\";\nimport { PROVIDER_ID } from \"../constants\";\nimport type { WalletProvider, Asset, Wallet, AccountInfo } from \"../types\";\nimport { ConfirmedTxn, TxnType } from \"../types\";\nimport { TransactionsArray, TxnInfo } from \"../types\";\nimport { audio } from \"../media/audio\";\nimport { isIOS } from \"react-device-detect\";\n\n/** @todo implement audio hack */\n\nexport type InitAlgodClient = {\n algosdk: typeof _algosdk;\n token: string;\n server: string;\n port: string;\n};\n\nexport interface BaseWalletInterface {\n connect(onDisconnect: () => void): Promise<Wallet>;\n healthCheck(): Promise<Record<string, never>>;\n disconnect(): Promise<void>;\n reconnect(onDisconnect: () => void): Promise<Wallet | null>;\n decodeTransaction(txn: string, isSigned: boolean): _algosdk.Transaction;\n logEncodedTransaction(txn: string, isSigned: boolean): void;\n groupTransactionsBySender(\n transactions: TransactionsArray\n ): Record<string, TxnInfo[]>;\n signTransactions(\n activeAddress: string,\n transactions: Array<Uint8Array>\n ): Promise<Uint8Array[]>;\n signEncodedTransactions(\n transactions: TransactionsArray\n ): Promise<Uint8Array[]>;\n sendRawTransactions(\n transactions: Uint8Array[]\n ): Promise<ConfirmedTxn & { id: string }>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getAccountInfo(address: string): Promise<AccountInfo>;\n getAssets(address: string): Promise<Asset[]>;\n waitForConfirmation(txId: string, timeout?: number): Promise<ConfirmedTxn>;\n}\n\nabstract class BaseWallet implements BaseWalletInterface {\n algodClient: _algosdk.Algodv2;\n algosdk: typeof _algosdk;\n keepWCAlive: HTMLAudioElement;\n\n protected abstract id: PROVIDER_ID;\n protected abstract provider: WalletProvider;\n\n abstract connect(onDisconnect: () => void): Promise<Wallet>;\n abstract disconnect(): Promise<void>;\n abstract reconnect(onDisconnect: () => void): Promise<Wallet | null>;\n abstract signTransactions(\n activeAdress: string,\n transactions: Array<Uint8Array>\n ): Promise<Uint8Array[]>;\n abstract signEncodedTransactions(\n transactions: TransactionsArray\n ): Promise<Uint8Array[]>;\n\n protected constructor({ algosdk, token, server, port }: InitAlgodClient) {\n this.algodClient = new algosdk.Algodv2(token, server, port);\n this.algosdk = algosdk;\n this.keepWCAlive = new Audio();\n }\n\n async healthCheck() {\n return await this.algodClient.healthCheck().do();\n }\n\n async getAccountInfo(address: string) {\n const accountInfo = await this.algodClient.accountInformation(address).do();\n\n if (!accountInfo) {\n throw new Error(\"Unable to get account information\");\n }\n\n return accountInfo as AccountInfo;\n }\n\n async getAssets(address: string) {\n const accountInfo = await this.algodClient.accountInformation(address).do();\n\n if (!accountInfo || accountInfo.assets === undefined) {\n throw new Error(\"Unable to get account assets\");\n }\n\n return accountInfo.assets as Asset[];\n }\n\n async waitForConfirmation(txId: string, timeout = 4) {\n const confirmation = (await this.algosdk.waitForConfirmation(\n this.algodClient,\n txId,\n timeout\n )) as ConfirmedTxn;\n\n return { txId, ...confirmation };\n }\n\n decodeTransaction = (txn: string, isSigned: boolean) => {\n return isSigned\n ? this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ).txn\n : this.algosdk.decodeUnsignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n );\n };\n\n logEncodedTransaction(txn: string, isSigned: boolean) {\n const txnObj = this.decodeTransaction(txn, isSigned);\n\n console.log(\"TRANSACTION\", {\n isSigned,\n from: txnObj.from && this.algosdk.encodeAddress(txnObj.from.publicKey),\n to: txnObj.to && this.algosdk.encodeAddress(txnObj.to.publicKey),\n type: txnObj.type,\n txn: txnObj,\n });\n }\n\n groupTransactionsBySender(transactions: TransactionsArray) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function groupBy(objectArray: Record<string, any>[], property: string) {\n return objectArray.reduce(function (acc, obj) {\n const key = obj[property];\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(obj);\n return acc;\n }, {});\n }\n\n const decodedGroup = transactions.reduce(\n (acc: TxnInfo[], [type, txn], index) => {\n if (type === \"u\") {\n const decodedTxn = this.decodeTransaction(txn, false);\n const from = decodedTxn.from\n ? this.algosdk.encodeAddress(decodedTxn.from.publicKey)\n : \"\";\n const to = decodedTxn.to\n ? this.algosdk.encodeAddress(decodedTxn.to.publicKey)\n : \"\";\n const type = (decodedTxn.type as TxnType) || \"\";\n const amount = Number(decodedTxn.amount) || 0; // convert from bigint to number\n\n const txnObj = {\n groupIndex: index,\n amount,\n from,\n to,\n type,\n txn,\n };\n\n acc.push(txnObj);\n }\n\n return acc;\n },\n []\n );\n return groupBy(decodedGroup, \"from\");\n }\n\n async sendRawTransactions(transactions: Uint8Array[]) {\n const sentTransaction = await this.algodClient\n .sendRawTransaction(transactions)\n .do();\n\n if (!sentTransaction) {\n throw new Error(\"Transaction failed.\");\n }\n\n const confirmedTransaction = await this.waitForConfirmation(\n sentTransaction.txId\n );\n\n return {\n id: sentTransaction.txId,\n ...confirmedTransaction,\n };\n }\n\n keepWCAliveStart() {\n // Playing an audio file prevents Wallet Connect's\n // web socket connection from being dropped when\n // iOS goes into background mode\n\n if (!isIOS) {\n return;\n }\n\n this.keepWCAlive.src = audio;\n this.keepWCAlive.autoplay = true;\n this.keepWCAlive.volume = 0;\n this.keepWCAlive.loop = true;\n this.keepWCAlive.play();\n }\n\n keepWCAliveStop() {\n if (!isIOS) {\n return;\n }\n\n this.keepWCAlive.pause();\n }\n}\n\nexport default BaseWallet;\n","/**\n * Helpful resources:\n * https://github.com/perawallet/connect\n */\nimport { providers } from \"../providers\";\nimport type { PeraWalletConnect } from \"@perawallet/connect\";\nimport type { WalletProvider, Wallet } from \"../types\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport type { Transaction } from \"algosdk\";\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { TransactionsArray } from \"../types\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\nexport interface PeraTransaction {\n txn: Transaction;\n /**\n * Optional list of addresses that must sign the transactions.\n * Wallet skips to sign this txn if signers is empty array.\n * If undefined, wallet tries to sign it.\n */\n signers?: string[];\n}\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: PeraWalletConnect;\n providers: typeof providers;\n};\n\nclass PeraWalletClient extends BaseWallet {\n #client: PeraWalletConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n const PeraWalletConnect = (await import(\"@perawallet/connect\"))\n .PeraWalletConnect;\n const peraWallet = new PeraWalletConnect({ shouldShowSignTxnToast: false });\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.PERA_WALLET,\n client: peraWallet,\n providers: providers,\n };\n\n return new PeraWalletClient(initAlgodClient, initWallet);\n }\n\n async connect(onDisconnect: () => void): Promise<Wallet> {\n this.keepWCAliveStart();\n\n const accounts = await this.#client.connect();\n\n this.keepWCAliveStop();\n\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map((address: string, index: number) => ({\n name: `Pera Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n const accounts = await this.#client.reconnectSession();\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (!accounts) {\n return null;\n }\n\n return {\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Pera Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n };\n }\n\n async disconnect() {\n await this.#client.disconnect();\n }\n\n formatTransactionsArray(transactions: TransactionsArray): PeraTransaction[] {\n const formattedTransactions: PeraTransaction[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"s\") {\n formattedTransactions.push({\n ...this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n signers: [],\n });\n } else {\n formattedTransactions.push({\n txn: this.algosdk.decodeUnsignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n });\n }\n }\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<PeraTransaction[]>((acc, txn, i) => {\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push({\n txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),\n });\n } else {\n acc.push({\n txn: this.algosdk.decodeSignedTransaction(transactions[i]).txn,\n signers: [],\n });\n }\n\n return acc;\n }, []);\n\n // Play an audio file to keep Wallet Connect's web socket open on iOS\n // when the user goes into background mode.\n this.keepWCAliveStart();\n\n // Sign them with the client.\n const result = await this.#client.signTransaction([txnsToSign]);\n\n this.keepWCAliveStop();\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift();\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n\n this.keepWCAliveStart();\n\n const result = (await this.#client.signTransaction([\n transactionsToSign,\n ])) as Uint8Array[];\n\n this.keepWCAliveStop();\n\n const signedTransactions: Uint8Array[] = [];\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedTransactions.push(result[resultIndex]);\n resultIndex++;\n } else {\n signedTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedTransactions;\n }\n}\n\nexport default PeraWalletClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.error(\"error initializing PeraWalletClient\", e);\n return;\n }\n});\n","/**\n * Helpful resources:\n * https://github.com/randlabs/myalgo-connect\n */\nimport BaseWallet from \"./base\";\nimport type MyAlgoConnect from \"@randlabs/myalgo-connect\";\nimport type { InitAlgodClient } from \"./base\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: MyAlgoConnect;\n providers: typeof providers;\n};\n\nclass MyAlgoWalletClient extends BaseWallet {\n #client: MyAlgoConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n const MyAlgo = (await import(\"@randlabs/myalgo-connect\")).default;\n const myAlgo = new MyAlgo({ disableLedgerNano: false });\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.MYALGO_WALLET,\n client: myAlgo,\n providers: providers,\n };\n\n return new MyAlgoWalletClient(initAlgodClient, initWallet);\n }\n\n async connect() {\n const accounts = await this.#client.connect();\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map((account) => ({\n ...account,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect() {\n return null;\n }\n\n async disconnect() {\n return;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Get the unsigned transactions.\n const txnsToSign = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n // If the transaction isn't already signed and is to be sent from a connected account,\n // add it to the arrays of transactions to be signed.\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n // Sign them with the client.\n const result = await this.#client.signTransaction(txnsToSign);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift()?.blob;\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign: string[] = [];\n const signedRawTransactions: Uint8Array[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n transactionsToSign.push(txn);\n }\n }\n\n const result = await this.#client.signTransaction(transactionsToSign);\n\n if (!result) {\n throw new Error(\"Signing failed.\");\n }\n\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedRawTransactions.push(result[resultIndex].blob);\n resultIndex++;\n } else {\n signedRawTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedRawTransactions;\n }\n}\n\nexport default MyAlgoWalletClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.error(\"error initializing MyAlgoWalletClient\", e);\n return;\n }\n});\n","/**\n * Helpful resources:\n * https://github.com/PureStake/algosigner/blob/develop/docs/dApp-integration.md\n */\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport {\n PROVIDER_ID,\n NODE_TOKEN,\n NODE_SERVER,\n NODE_PORT,\n NODE_NETWORK,\n} from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype WindowExtended = { AlgoSigner: AlgoSigner } & Window & typeof globalThis;\n\ntype AlgoSignerTransaction = {\n txn: string;\n // array of addresses to sign with (defaults to the sender),\n // setting this to an empty array tells AlgoSigner\n // that this transaction is not meant to be signed\n signers?: [];\n multisig?: string; // address of a multisig wallet to sign with\n};\n\n\ntype SupportedLedgers = \"MainNet\" | \"TestNet\" | \"BetaNet\" | string;\n\ntype AlgoSigner = {\n connect: () => Promise<Record<string, never>>;\n accounts: (ledger: {\n ledger: SupportedLedgers;\n }) => Promise<{ address: string }[]>;\n signTxn: (transactions: AlgoSignerTransaction[]) => Promise<\n {\n txID: string;\n blob: string;\n }[]\n >;\n encoding: {\n msgpackToBase64(transaction: Uint8Array): string;\n byteArrayToString(transaction: Uint8Array): string;\n };\n};\n\ntype InitWallet = {\n client: AlgoSigner;\n id: PROVIDER_ID;\n providers: typeof providers;\n};\n\nclass AlgoSignerClient extends BaseWallet {\n #client: AlgoSigner;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n if (\n typeof window == \"undefined\" ||\n (window as WindowExtended).AlgoSigner === undefined\n ) {\n throw new Error(\"AlgoSigner is not available.\");\n }\n\n const algoSigner = (window as WindowExtended).AlgoSigner as AlgoSigner;\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.ALGO_SIGNER,\n client: algoSigner,\n providers: providers,\n };\n\n return new AlgoSignerClient(initAlgodClient, initWallet);\n }\n\n async connect() {\n await this.#client.connect();\n\n let ledger: SupportedLedgers = \"MainNet\";\n\n if (NODE_NETWORK === \"mainnet\") {\n ledger = \"MainNet\";\n } else if (NODE_NETWORK === \"betanet\") {\n ledger = \"BetaNet\";\n } else if (NODE_NETWORK === \"testnet\") {\n ledger = \"TestNet\";\n } else if (!!NODE_NETWORK) {\n ledger = NODE_NETWORK;\n }\n\n const accounts = await this.#client.accounts({\n ledger,\n });\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map(({ address }, index) => ({\n name: `AlgoSigner ${index + 1}`,\n address,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n if (\n window === undefined ||\n (window as WindowExtended).AlgoSigner === undefined\n ) {\n onDisconnect();\n }\n\n return null;\n }\n\n async disconnect() {\n return;\n }\n\n formatTransactionsArray(\n transactions: TransactionsArray\n ): AlgoSignerTransaction[] {\n const formattedTransactions = transactions.map(([type, txn]) => {\n const formattedTxn: AlgoSignerTransaction = {\n txn: txn[1],\n };\n\n if (type === \"s\") {\n formattedTxn.signers = [];\n const decoded = this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n );\n formattedTxn.txn = this.#client.encoding.msgpackToBase64(\n decoded.txn.toByte()\n );\n } else {\n const decoded = this.algosdk.decodeUnsignedTransaction(\n Buffer.from(txn, \"base64\")\n );\n formattedTxn.txn = this.#client.encoding.msgpackToBase64(\n decoded.toByte()\n );\n }\n\n return formattedTxn;\n });\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<AlgoSignerTransaction[]>(\n (acc, txn, i) => {\n const txnObj: AlgoSignerTransaction = {\n txn: this.#client.encoding.msgpackToBase64(transactions[i]),\n };\n\n if (\n \"txn\" in txn ||\n this.algosdk.encodeAddress(txn[\"snd\"]) !== activeAdress\n ) {\n txnObj.txn = this.#client.encoding.msgpackToBase64(\n this.algosdk.decodeSignedTransaction(transactions[i]).txn.toByte()\n );\n txnObj.signers = [];\n }\n\n acc.push(txnObj);\n\n return acc;\n },\n []\n );\n\n // Sign them with the client.\n const result = await this.#client.signTxn(txnsToSign);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = result.reduce<Uint8Array[]>((acc, txn, i) => {\n if (txn) {\n acc.push(new Uint8Array(Buffer.from(txn.blob, \"base64\")));\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n const result = await this.#client.signTxn(transactionsToSign);\n\n if (!result) {\n throw new Error(\"Signing failed.\");\n }\n\n const signedRawTransactions = result.reduce(\n (signedTxns: Uint8Array[], txn, currentIndex) => {\n if (txn) {\n signedTxns.push(new Uint8Array(Buffer.from(txn.blob, \"base64\")));\n }\n\n if (txn === null) {\n signedTxns.push(\n new Uint8Array(Buffer.from(transactions[currentIndex][1], \"base64\"))\n );\n }\n\n return signedTxns;\n },\n []\n );\n\n return signedRawTransactions;\n }\n}\n\nexport default AlgoSignerClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.info(\"error initializing AlgoSigner\", e);\n return;\n }\n});\n","/**\n * Helpful resources:\n * https://github.com/blockshake-io/defly-connect\n */\nimport { providers } from \"../providers\";\nimport type { WalletProvider, Wallet } from \"../types\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport type { Transaction, SignedTransaction } from \"algosdk\";\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { TransactionsArray } from \"../types\";\nimport type { DeflyWalletConnect } from \"@blockshake/defly-connect\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\nexport interface DeflyTransaction {\n txn: Transaction;\n /**\n * Optional list of addresses that must sign the transactions.\n * Wallet skips to sign this txn if signers is empty array.\n * If undefined, wallet tries to sign it.\n */\n signers?: string[];\n}\n\ntype InitWallet = {\n id: PROVIDER_ID;\n client: DeflyWalletConnect;\n providers: typeof providers;\n};\n\nclass DeflyWalletClient extends BaseWallet {\n #client: DeflyWalletConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n const DeflyWalletConnect = (await import(\"@blockshake/defly-connect\"))\n .DeflyWalletConnect;\n const deflyWallet = new DeflyWalletConnect({\n shouldShowSignTxnToast: false,\n });\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.DEFLY,\n client: deflyWallet,\n providers: providers,\n };\n\n return new DeflyWalletClient(initAlgodClient, initWallet);\n }\n\n async connect(onDisconnect: () => void): Promise<Wallet> {\n const accounts = await this.#client.connect();\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (accounts.length === 0) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const mappedAccounts = accounts.map((address: string, index: number) => ({\n name: `Defly Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n }));\n\n return {\n ...this.provider,\n accounts: mappedAccounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n const accounts = await this.#client.reconnectSession();\n this.#client.connector?.on(\"disconnect\", onDisconnect);\n\n if (!accounts) {\n return null;\n }\n\n return {\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Defly Wallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n };\n }\n\n async disconnect() {\n await this.#client.disconnect();\n }\n\n formatTransactionsArray(transactions: TransactionsArray) {\n const formattedTransactions: DeflyTransaction[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"s\") {\n formattedTransactions.push({\n ...this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n signers: [],\n });\n } else {\n formattedTransactions.push({\n txn: this.algosdk.decodeUnsignedTransaction(\n new Uint8Array(Buffer.from(txn, \"base64\"))\n ),\n });\n }\n }\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<DeflyTransaction[]>((acc, txn, i) => {\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push({\n txn: this.algosdk.decodeUnsignedTransaction(transactions[i]),\n });\n } else {\n acc.push({\n txn: this.algosdk.decodeSignedTransaction(transactions[i]).txn,\n signers: [],\n });\n }\n\n return acc;\n }, []);\n\n // Sign them with the client.\n const result = await this.#client.signTransaction([txnsToSign]);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift();\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n const result: Uint8Array[] = await this.#client.signTransaction([\n transactionsToSign,\n ]);\n\n const signedTransactions: Uint8Array[] = [];\n\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedTransactions.push(result[resultIndex]);\n resultIndex++;\n } else {\n signedTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedTransactions;\n }\n}\n\nexport default DeflyWalletClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.error(\"error initializing DeflyWalletClient\", e);\n return;\n }\n});\n","/**\n * Helpful resources:\n * https://docs.exodus.com/api-reference/algorand-provider-api/\n */\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport type { SignedTransaction, Transaction } from \"algosdk\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype WindowExtended = { exodus: { algorand: Exodus } } & Window &\n typeof globalThis;\n\ntype Bytes = Readonly<Uint8Array>;\n\ntype Exodus = {\n isConnected: boolean;\n address: string | null;\n connect: () => Promise<{\n address: string;\n }>;\n disconnect: () => void;\n signAndSendTransaction(transactions: Bytes[]): Promise<{\n txId: string;\n }>;\n signTransaction(transactions: Bytes[]): Promise<Bytes[]>;\n};\n\ntype InitWallet = {\n client: Exodus;\n id: PROVIDER_ID;\n providers: typeof providers;\n};\n\nclass ExodusClient extends BaseWallet {\n #client: Exodus;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n if (\n typeof window == \"undefined\" ||\n (window as WindowExtended).exodus === undefined\n ) {\n throw new Error(\"Exodus is not available.\");\n }\n\n const exodus = (window as WindowExtended).exodus.algorand as Exodus;\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.EXODUS,\n client: exodus,\n providers: providers,\n };\n\n return new ExodusClient(initAlgodClient, initWallet);\n }\n\n async connect() {\n const { address } = await this.#client.connect();\n\n if (!address) {\n throw new Error(`No accounts found for ${this.provider}`);\n }\n\n const accounts = [\n {\n name: `Exodus 1`,\n address,\n providerId: this.provider.id,\n },\n ];\n\n return {\n ...this.provider,\n accounts,\n };\n }\n\n async reconnect(onDisconnect: () => void) {\n if (\n window === undefined ||\n (window as WindowExtended).exodus === undefined ||\n (window as WindowExtended).exodus.algorand.isConnected !== true\n ) {\n onDisconnect();\n }\n\n return null;\n }\n\n async disconnect() {\n return;\n }\n\n async signTransactions(\n activeAdress: string,\n transactions: Array<Uint8Array>\n ) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Get the unsigned transactions.\n const txnsToSign = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n // If the transaction isn't already signed and is to be sent from a connected account,\n // add it to the arrays of transactions to be signed.\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n // Sign them with the client.\n const result = await this.#client.signTransaction(txnsToSign);\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = decodedTxns.reduce<Uint8Array[]>((acc, txn, i) => {\n if (!(\"txn\" in txn)) {\n const signedByUser = result.shift();\n signedByUser && acc.push(signedByUser);\n } else {\n acc.push(transactions[i]);\n }\n\n return acc;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign: Uint8Array[] = [];\n const signedRawTransactions: Uint8Array[] = [];\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n const decoded = this.algosdk.decodeUnsignedTransaction(\n Buffer.from(txn, \"base64\")\n );\n transactionsToSign.push(decoded.toByte());\n }\n }\n\n const result = await this.#client.signTransaction(transactionsToSign);\n\n if (!result) {\n throw new Error(\"Signing failed.\");\n }\n\n let resultIndex = 0;\n\n for (const [type, txn] of transactions) {\n if (type === \"u\") {\n signedRawTransactions.push(result[resultIndex]);\n resultIndex++;\n } else {\n signedRawTransactions.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n }\n\n return signedRawTransactions;\n }\n}\n\nexport default ExodusClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.info(\"error initializing ExodusClient\", e);\n return;\n }\n});\n","import type {\n Kmd,\n EncodedSignedTransaction,\n EncodedTransaction,\n} from \"algosdk\";\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { PROVIDER_ID, NODE_TOKEN, NODE_SERVER, NODE_PORT } from \"../constants\";\nimport { providers } from \"../providers\";\nimport type { Account, Wallet, WalletProvider } from \"../types\";\nimport { TransactionsArray } from \"../types\";\nimport {\n KMD_HOST,\n KMD_TOKEN,\n KMD_PORT,\n KMD_WALLET,\n KMD_PASSWORD as _KMD_PASSWORD,\n} from \"../constants\";\n\ntype KMDConfig = {\n host: string;\n port: string;\n token: string;\n};\n\nconst DefaultKMDConfig = {\n host: KMD_HOST,\n token: KMD_TOKEN,\n port: KMD_PORT,\n} as KMDConfig;\n\ninterface ListWalletResponse {\n id: string;\n name: string;\n driver_name?: string;\n driver_version?: number;\n mnemonic_ux?: boolean;\n supported_txs?: Array<any>;\n}\n\ninterface InitWalletHandle {\n wallet_handle_token: string;\n message?: string;\n error?: boolean;\n}\n\ntype InitWallet = {\n client: Kmd;\n id: PROVIDER_ID;\n providers: typeof providers;\n};\n\nclass KMDWallet extends BaseWallet {\n #client: Kmd;\n walletId: string;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = initWallet.client;\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n this.walletId = \"\";\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n // TODO: allow diff config options?\n const kmdConfig: KMDConfig = DefaultKMDConfig;\n\n const kmdClient = new algosdk.Kmd(\n kmdConfig.token,\n kmdConfig.host,\n kmdConfig.port\n );\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.KMD_WALLET,\n client: kmdClient,\n providers: providers,\n };\n\n return new KMDWallet(initAlgodClient, initWallet);\n }\n\n async connect(): Promise<Wallet> {\n // TODO: prompt for wallet and password?\n return {\n ...this.provider,\n accounts: await this.listAccounts(\n KMD_WALLET,\n await this.requestPassword()\n ),\n };\n }\n\n async disconnect() {\n return;\n }\n\n async reconnect(): Promise<Wallet | null> {\n return {\n ...this.provider,\n accounts: await this.listAccounts(\n KMD_WALLET,\n await this.requestPassword()\n ),\n };\n }\n\n async requestPassword(): Promise<string> {\n // TODO: store it locally?\n const pw = prompt(\"gib password\");\n return pw ? pw : \"\";\n }\n\n async getWalletToken(walletId: string, password: string): Promise<string> {\n const handleResp: InitWalletHandle = await this.#client.initWalletHandle(\n walletId,\n password\n );\n return handleResp.wallet_handle_token;\n }\n\n async releaseToken(token: string): Promise<void> {\n await this.#client.releaseWalletHandle(token);\n }\n\n async listWallets(): Promise<Record<string, string>> {\n const walletResponse = await this.#client.listWallets();\n const walletList: Array<ListWalletResponse> = walletResponse[\"wallets\"];\n const walletMap: Record<string, string> = {};\n for (const w of walletList) {\n walletMap[w.name] = w.id;\n }\n return walletMap;\n }\n\n async listAccounts(\n wallet: string,\n password: string\n ): Promise<Array<Account>> {\n const walletMap = await this.listWallets();\n\n if (!(wallet in walletMap)) throw Error(\"No wallet named: \" + wallet);\n\n this.walletId = walletMap[wallet];\n\n // Get a handle token\n const token = await this.getWalletToken(this.walletId, password);\n\n // Fetch accounts and format them as lib expects\n const listResponse = await this.#client.listKeys(token);\n const addresses: Array<string> = listResponse[\"addresses\"];\n const mappedAccounts = addresses.map((address: string, index: number) => {\n return {\n name: `KMDWallet ${index + 1}`,\n address,\n providerId: this.provider.id,\n };\n });\n\n // Release handle token\n this.releaseToken(token);\n\n return mappedAccounts;\n }\n\n async signTransactions(activeAddress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<EncodedTransaction | EncodedSignedTransaction>;\n\n // Get a handle token\n const pw = await this.requestPassword();\n const token = await this.getWalletToken(this.walletId, pw);\n\n const signedTxns: Uint8Array[] = [];\n // Sign them with the client.\n const signingPromises: Promise<Uint8Array>[] = [];\n for (const idx in decodedTxns) {\n const dtxn = decodedTxns[idx];\n\n // push the incoming txn into signed, we'll overwrite it later\n signedTxns.push(transactions[idx]);\n\n // Its already signed, skip it\n if (!(\"snd\" in dtxn)) continue;\n // Not to be signed by our signer, skip it\n if (!(this.algosdk.encodeAddress(dtxn.snd) === activeAddress)) continue;\n\n // overwrite with an empty blob\n signedTxns[idx] = new Uint8Array();\n\n const txn = this.algosdk.Transaction.from_obj_for_encoding(dtxn);\n signingPromises.push(this.#client.signTransaction(token, pw, txn));\n }\n\n const signingResults = await Promise.all(signingPromises);\n\n // Restore the newly signed txns in the correct order\n let signedIdx = 0;\n for (const idx in signedTxns) {\n // If its an empty array, infer that it is one of the\n // ones we wanted to have signed and overwrite the empty buff\n if (signedTxns[idx].length === 0) {\n signedTxns[idx] = signingResults[signedIdx];\n signedIdx += 1;\n }\n }\n\n return signedTxns;\n }\n\n signEncodedTransactions(\n transactions: TransactionsArray\n ): Promise<Uint8Array[]> {\n throw new Error(\"Method not implemented.\");\n }\n}\n\nexport default KMDWallet.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.info(\"error initializing kmd client\", e);\n return;\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.STANDARD_ERROR_MAP = exports.SERVER_ERROR_CODE_RANGE = exports.RESERVED_ERROR_CODES = exports.SERVER_ERROR = exports.INTERNAL_ERROR = exports.INVALID_PARAMS = exports.METHOD_NOT_FOUND = exports.INVALID_REQUEST = exports.PARSE_ERROR = void 0;\nexports.PARSE_ERROR = \"PARSE_ERROR\";\nexports.INVALID_REQUEST = \"INVALID_REQUEST\";\nexports.METHOD_NOT_FOUND = \"METHOD_NOT_FOUND\";\nexports.INVALID_PARAMS = \"INVALID_PARAMS\";\nexports.INTERNAL_ERROR = \"INTERNAL_ERROR\";\nexports.SERVER_ERROR = \"SERVER_ERROR\";\nexports.RESERVED_ERROR_CODES = [-32700, -32600, -32601, -32602, -32603];\nexports.SERVER_ERROR_CODE_RANGE = [-32000, -32099];\nexports.STANDARD_ERROR_MAP = {\n [exports.PARSE_ERROR]: { code: -32700, message: \"Parse error\" },\n [exports.INVALID_REQUEST]: { code: -32600, message: \"Invalid Request\" },\n [exports.METHOD_NOT_FOUND]: { code: -32601, message: \"Method not found\" },\n [exports.INVALID_PARAMS]: { code: -32602, message: \"Invalid params\" },\n [exports.INTERNAL_ERROR]: { code: -32603, message: \"Internal error\" },\n [exports.SERVER_ERROR]: { code: -32000, message: \"Server error\" },\n};\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateJsonRpcError = exports.getErrorByCode = exports.getError = exports.isValidErrorCode = exports.isReservedErrorCode = exports.isServerErrorCode = void 0;\nconst constants_1 = require(\"./constants\");\nfunction isServerErrorCode(code) {\n return code <= constants_1.SERVER_ERROR_CODE_RANGE[0] && code >= constants_1.SERVER_ERROR_CODE_RANGE[1];\n}\nexports.isServerErrorCode = isServerErrorCode;\nfunction isReservedErrorCode(code) {\n return constants_1.RESERVED_ERROR_CODES.includes(code);\n}\nexports.isReservedErrorCode = isReservedErrorCode;\nfunction isValidErrorCode(code) {\n return typeof code === \"number\";\n}\nexports.isValidErrorCode = isValidErrorCode;\nfunction getError(type) {\n if (!Object.keys(constants_1.STANDARD_ERROR_MAP).includes(type)) {\n return constants_1.STANDARD_ERROR_MAP[constants_1.INTERNAL_ERROR];\n }\n return constants_1.STANDARD_ERROR_MAP[type];\n}\nexports.getError = getError;\nfunction getErrorByCode(code) {\n const match = Object.values(constants_1.STANDARD_ERROR_MAP).find(e => e.code === code);\n if (!match) {\n return constants_1.STANDARD_ERROR_MAP[constants_1.INTERNAL_ERROR];\n }\n return match;\n}\nexports.getErrorByCode = getErrorByCode;\nfunction validateJsonRpcError(response) {\n if (typeof response.error.code === \"undefined\") {\n return { valid: false, error: \"Missing code for JSON-RPC error\" };\n }\n if (typeof response.error.message === \"undefined\") {\n return { valid: false, error: \"Missing message for JSON-RPC error\" };\n }\n if (!isValidErrorCode(response.error.code)) {\n return {\n valid: false,\n error: `Invalid error code type for JSON-RPC: ${response.error.code}`,\n };\n }\n if (isReservedErrorCode(response.error.code)) {\n const error = getErrorByCode(response.error.code);\n if (error.message !== constants_1.STANDARD_ERROR_MAP[constants_1.INTERNAL_ERROR].message &&\n response.error.message === error.message) {\n return {\n valid: false,\n error: `Invalid error code message for JSON-RPC: ${response.error.code}`,\n };\n }\n }\n return { valid: true };\n}\nexports.validateJsonRpcError = validateJsonRpcError;\n//# sourceMappingURL=error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowserCryptoAvailable = exports.getSubtleCrypto = exports.getBrowerCrypto = void 0;\nfunction getBrowerCrypto() {\n return (global === null || global === void 0 ? void 0 : global.crypto) || (global === null || global === void 0 ? void 0 : global.msCrypto) || {};\n}\nexports.getBrowerCrypto = getBrowerCrypto;\nfunction getSubtleCrypto() {\n const browserCrypto = getBrowerCrypto();\n return browserCrypto.subtle || browserCrypto.webkitSubtle;\n}\nexports.getSubtleCrypto = getSubtleCrypto;\nfunction isBrowserCryptoAvailable() {\n return !!getBrowerCrypto() && !!getSubtleCrypto();\n}\nexports.isBrowserCryptoAvailable = isBrowserCryptoAvailable;\n//# sourceMappingURL=crypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isBrowser = exports.isNode = exports.isReactNative = void 0;\nfunction isReactNative() {\n return (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative');\n}\nexports.isReactNative = isReactNative;\nfunction isNode() {\n return (typeof process !== 'undefined' &&\n typeof process.versions !== 'undefined' &&\n typeof process.versions.node !== 'undefined');\n}\nexports.isNode = isNode;\nfunction isBrowser() {\n return !isReactNative() && !isNode();\n}\nexports.isBrowser = isBrowser;\n//# sourceMappingURL=env.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./crypto\"), exports);\n__exportStar(require(\"./env\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNodeJs = void 0;\nconst tslib_1 = require(\"tslib\");\nconst environment_1 = require(\"@pedrouid/environment\");\nexports.isNodeJs = environment_1.isNode;\ntslib_1.__exportStar(require(\"@pedrouid/environment\"), exports);\n//# sourceMappingURL=env.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatErrorMessage = exports.formatJsonRpcError = exports.formatJsonRpcResult = exports.formatJsonRpcRequest = exports.payloadId = void 0;\nconst error_1 = require(\"./error\");\nconst constants_1 = require(\"./constants\");\nfunction payloadId() {\n const date = Date.now() * Math.pow(10, 3);\n const extra = Math.floor(Math.random() * Math.pow(10, 3));\n return date + extra;\n}\nexports.payloadId = payloadId;\nfunction formatJsonRpcRequest(method, params, id) {\n return {\n id: id || payloadId(),\n jsonrpc: \"2.0\",\n method,\n params,\n };\n}\nexports.formatJsonRpcRequest = formatJsonRpcRequest;\nfunction formatJsonRpcResult(id, result) {\n return {\n id,\n jsonrpc: \"2.0\",\n result,\n };\n}\nexports.formatJsonRpcResult = formatJsonRpcResult;\nfunction formatJsonRpcError(id, error) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error),\n };\n}\nexports.formatJsonRpcError = formatJsonRpcError;\nfunction formatErrorMessage(error) {\n if (typeof error === \"undefined\") {\n return error_1.getError(constants_1.INTERNAL_ERROR);\n }\n if (typeof error === \"string\") {\n error = Object.assign(Object.assign({}, error_1.getError(constants_1.SERVER_ERROR)), { message: error });\n }\n if (error_1.isReservedErrorCode(error.code)) {\n error = error_1.getErrorByCode(error.code);\n }\n if (!error_1.isServerErrorCode(error.code)) {\n throw new Error(\"Error code is not in server code range\");\n }\n return error;\n}\nexports.formatErrorMessage = formatErrorMessage;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidTrailingWildcardRoute = exports.isValidLeadingWildcardRoute = exports.isValidWildcardRoute = exports.isValidDefaultRoute = exports.isValidRoute = void 0;\nfunction isValidRoute(route) {\n if (route.includes(\"*\")) {\n return isValidWildcardRoute(route);\n }\n if (/\\W/g.test(route)) {\n return false;\n }\n return true;\n}\nexports.isValidRoute = isValidRoute;\nfunction isValidDefaultRoute(route) {\n return route === \"*\";\n}\nexports.isValidDefaultRoute = isValidDefaultRoute;\nfunction isValidWildcardRoute(route) {\n if (isValidDefaultRoute(route)) {\n return true;\n }\n if (!route.includes(\"*\")) {\n return false;\n }\n if (route.split(\"*\").length !== 2) {\n return false;\n }\n if (route.split(\"*\").filter(x => x.trim() === \"\").length !== 1) {\n return false;\n }\n return true;\n}\nexports.isValidWildcardRoute = isValidWildcardRoute;\nfunction isValidLeadingWildcardRoute(route) {\n return !isValidDefaultRoute(route) && isValidWildcardRoute(route) && !route.split(\"*\")[0].trim();\n}\nexports.isValidLeadingWildcardRoute = isValidLeadingWildcardRoute;\nfunction isValidTrailingWildcardRoute(route) {\n return !isValidDefaultRoute(route) && isValidWildcardRoute(route) && !route.split(\"*\")[1].trim();\n}\nexports.isValidTrailingWildcardRoute = isValidTrailingWildcardRoute;\n//# sourceMappingURL=routing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IEvents = void 0;\nclass IEvents {\n}\nexports.IEvents = IEvents;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IJsonRpcProvider = exports.IBaseJsonRpcProvider = exports.IJsonRpcConnection = void 0;\nconst misc_1 = require(\"./misc\");\nclass IJsonRpcConnection extends misc_1.IEvents {\n constructor(opts) {\n super();\n }\n}\nexports.IJsonRpcConnection = IJsonRpcConnection;\nclass IBaseJsonRpcProvider extends misc_1.IEvents {\n constructor() {\n super();\n }\n}\nexports.IBaseJsonRpcProvider = IBaseJsonRpcProvider;\nclass IJsonRpcProvider extends IBaseJsonRpcProvider {\n constructor(connection) {\n super();\n }\n}\nexports.IJsonRpcProvider = IJsonRpcProvider;\n//# sourceMappingURL=provider.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IBlockchainProvider = exports.IBlockchainAuthenticator = exports.IPendingRequests = void 0;\nconst misc_1 = require(\"./misc\");\nconst provider_1 = require(\"./provider\");\nclass IPendingRequests {\n constructor(storage) {\n this.storage = storage;\n }\n}\nexports.IPendingRequests = IPendingRequests;\nclass IBlockchainAuthenticator extends misc_1.IEvents {\n constructor(config) {\n super();\n this.config = config;\n }\n}\nexports.IBlockchainAuthenticator = IBlockchainAuthenticator;\nclass IBlockchainProvider extends provider_1.IJsonRpcProvider {\n constructor(connection, config) {\n super(connection);\n }\n}\nexports.IBlockchainProvider = IBlockchainProvider;\n//# sourceMappingURL=blockchain.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=jsonrpc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IMultiServiceProvider = void 0;\nconst provider_1 = require(\"./provider\");\nclass IMultiServiceProvider extends provider_1.IBaseJsonRpcProvider {\n constructor(config) {\n super();\n this.config = config;\n }\n}\nexports.IMultiServiceProvider = IMultiServiceProvider;\n//# sourceMappingURL=multi.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IJsonRpcRouter = void 0;\nclass IJsonRpcRouter {\n constructor(routes) {\n this.routes = routes;\n }\n}\nexports.IJsonRpcRouter = IJsonRpcRouter;\n//# sourceMappingURL=router.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=schema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IJsonRpcValidator = void 0;\nclass IJsonRpcValidator {\n constructor(schemas) {\n this.schemas = schemas;\n }\n}\nexports.IJsonRpcValidator = IJsonRpcValidator;\n//# sourceMappingURL=validator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./blockchain\"), exports);\ntslib_1.__exportStar(require(\"./jsonrpc\"), exports);\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./multi\"), exports);\ntslib_1.__exportStar(require(\"./provider\"), exports);\ntslib_1.__exportStar(require(\"./router\"), exports);\ntslib_1.__exportStar(require(\"./schema\"), exports);\ntslib_1.__exportStar(require(\"./validator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"@json-rpc-tools/types\"), exports);\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isJsonRpcValidationInvalid = exports.isJsonRpcError = exports.isJsonRpcResult = exports.isJsonRpcResponse = exports.isJsonRpcRequest = exports.isJsonRpcPayload = void 0;\nfunction isJsonRpcPayload(payload) {\n return \"id\" in payload && \"jsonrpc\" in payload && payload.jsonrpc === \"2.0\";\n}\nexports.isJsonRpcPayload = isJsonRpcPayload;\nfunction isJsonRpcRequest(payload) {\n return isJsonRpcPayload(payload) && \"method\" in payload;\n}\nexports.isJsonRpcRequest = isJsonRpcRequest;\nfunction isJsonRpcResponse(payload) {\n return isJsonRpcPayload(payload) && (isJsonRpcResult(payload) || isJsonRpcError(payload));\n}\nexports.isJsonRpcResponse = isJsonRpcResponse;\nfunction isJsonRpcResult(payload) {\n return \"result\" in payload;\n}\nexports.isJsonRpcResult = isJsonRpcResult;\nfunction isJsonRpcError(payload) {\n return \"error\" in payload;\n}\nexports.isJsonRpcError = isJsonRpcError;\nfunction isJsonRpcValidationInvalid(validation) {\n return \"error\" in validation && validation.valid === false;\n}\nexports.isJsonRpcValidationInvalid = isJsonRpcValidationInvalid;\n//# sourceMappingURL=validators.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./constants\"), exports);\ntslib_1.__exportStar(require(\"./error\"), exports);\ntslib_1.__exportStar(require(\"./env\"), exports);\ntslib_1.__exportStar(require(\"./format\"), exports);\ntslib_1.__exportStar(require(\"./routing\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./validators\"), exports);\n//# sourceMappingURL=index.js.map","/**\n * Helpful resources:\n * https://developer.algorand.org/docs/get-details/walletconnect/\n */\nimport type WalletConnect from \"@walletconnect/client\";\nimport type { IWalletConnectOptions } from \"@walletconnect/types\";\nimport type QRCodeModal from \"algorand-walletconnect-qrcode-modal\";\nimport { providers } from \"../providers\";\nimport type { WalletProvider, Wallet } from \"../types/wallet\";\nimport {\n PROVIDER_ID,\n NODE_NETWORK,\n NODE_TOKEN,\n NODE_SERVER,\n NODE_PORT,\n} from \"../constants\";\nimport BaseWallet from \"./base\";\nimport type { InitAlgodClient } from \"./base\";\nimport { formatJsonRpcRequest } from \"@json-rpc-tools/utils\";\nimport { TransactionsArray } from \"../types/api\";\nimport type { DecodedTransaction, DecodedSignedTransaction } from \"../types\";\n\ntype WalletConnectTransaction = {\n txn: string;\n message?: string;\n // if the transaction does not need to be signed,\n // because it is part of an atomic group that will be signed by another party,\n // specify an empty signers array\n signers?: string[] | [];\n};\n\ntype InitWallet = {\n id: PROVIDER_ID;\n walletConnect: typeof WalletConnect;\n bridge: string;\n qrcodeModal: typeof QRCodeModal;\n WalletConnectOptions?: IWalletConnectOptions;\n providers: typeof providers;\n};\n\nclass WalletConnectClient extends BaseWallet {\n #client: WalletConnect;\n id: PROVIDER_ID;\n provider: WalletProvider;\n\n constructor(initAlgodClient: InitAlgodClient, initWallet: InitWallet) {\n super(initAlgodClient);\n\n this.#client = new initWallet.walletConnect({\n bridge: initWallet.bridge,\n qrcodeModal: initWallet.qrcodeModal,\n ...initWallet.WalletConnectOptions,\n });\n\n this.id = initWallet.id;\n this.provider = initWallet.providers[this.id];\n }\n\n static async init() {\n const algosdk = (await import(\"algosdk\")).default;\n\n const initAlgodClient: InitAlgodClient = {\n algosdk,\n token: NODE_TOKEN,\n server: NODE_SERVER,\n port: NODE_PORT,\n };\n\n const WalletConnect = (await import(\"@walletconnect/client\")).default;\n const QRCodeModal = (await import(\"algorand-walletconnect-qrcode-modal\"))\n .default;\n\n const initWallet: InitWallet = {\n id: PROVIDER_ID.WALLET_CONNECT,\n walletConnect: WalletConnect,\n bridge: \"https://bridge.walletconnect.org\",\n qrcodeModal: QRCodeModal,\n providers: providers,\n };\n\n return new WalletConnectClient(initAlgodClient, initWallet);\n }\n\n async connect(): Promise<Wallet> {\n let chainId = 416001;\n\n if (NODE_NETWORK === \"betanet\") {\n chainId = 416003;\n } else if (NODE_NETWORK === \"testnet\") {\n chainId = 416002;\n }\n\n if (!this.#client.connected) {\n await this.#client.createSession({ chainId });\n }\n\n return new Promise((resolve, reject) => {\n this.#client.on(\"connect\", (error, payload) => {\n if (error) {\n reject(error);\n }\n\n const { accounts } = payload.params[0];\n\n resolve({\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n });\n });\n\n this.#client.on(\"session_update\", (error, payload) => {\n if (error) {\n reject(error);\n }\n\n const { accounts } = payload.params[0];\n\n resolve({\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n });\n });\n });\n }\n\n async reconnect() {\n this.#client = (await WalletConnectClient.init()).#client;\n\n const accounts = this.#client.accounts;\n\n if (!accounts) {\n return null;\n }\n\n return {\n ...this.provider,\n accounts: accounts.map((address: string, index: number) => ({\n name: `Wallet Connect ${index + 1}`,\n address,\n providerId: this.provider.id,\n })),\n };\n }\n\n check() {\n return this.#client.connected;\n }\n\n async disconnect() {\n try {\n await this.#client.killSession();\n } catch (e) {\n console.error(\"Error disconnecting\", e);\n }\n }\n\n formatTransactionsArray(\n transactions: TransactionsArray\n ): WalletConnectTransaction[] {\n const formattedTransactions = transactions.map((txn) => {\n const formattedTxn: WalletConnectTransaction = {\n txn: txn[1],\n };\n\n if (txn[0] === \"s\") {\n const decodedTxn = this.algosdk.decodeSignedTransaction(\n new Uint8Array(Buffer.from(txn[1], \"base64\"))\n );\n\n formattedTxn.txn = Buffer.from(\n this.algosdk.encodeUnsignedTransaction(decodedTxn.txn)\n ).toString(\"base64\");\n\n formattedTxn.signers = [];\n }\n\n return formattedTxn;\n });\n\n return formattedTransactions;\n }\n\n async signTransactions(activeAdress: string, transactions: Uint8Array[]) {\n // Decode the transactions to access their properties.\n const decodedTxns = transactions.map((txn) => {\n return this.algosdk.decodeObj(txn);\n }) as Array<DecodedTransaction | DecodedSignedTransaction>;\n\n // Marshal the transactions,\n // and add the signers property if they shouldn't be signed.\n const txnsToSign = decodedTxns.reduce<WalletConnectTransaction[]>(\n (acc, txn, i) => {\n if (\n !(\"txn\" in txn) &&\n this.algosdk.encodeAddress(txn[\"snd\"]) === activeAdress\n ) {\n acc.push({\n txn: Buffer.from(transactions[i]).toString(\"base64\"),\n });\n } else {\n acc.push({\n txn: Buffer.from(transactions[i]).toString(\"base64\"),\n signers: [],\n });\n }\n\n return acc;\n },\n []\n );\n\n const requestParams = [txnsToSign];\n const request = formatJsonRpcRequest(\"algo_signTxn\", requestParams);\n\n // Play an audio file to keep Wallet Connect's web socket open on iOS\n // when the user goes into background mode.\n this.keepWCAliveStart();\n\n // Sign them with the client.\n const result: Array<string | null> = await this.#client.sendCustomRequest(\n request\n );\n\n this.keepWCAliveStop();\n\n // Join the newly signed transactions with the original group of transactions.\n const signedTxns = result.reduce((signedTxns: Uint8Array[], txn, i) => {\n if (txn) {\n signedTxns.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n\n if (txn === null) {\n signedTxns.push(transactions[i]);\n }\n\n return signedTxns;\n }, []);\n\n return signedTxns;\n }\n\n async signEncodedTransactions(transactions: TransactionsArray) {\n const transactionsToSign = this.formatTransactionsArray(transactions);\n const requestParams = [transactionsToSign];\n const request = formatJsonRpcRequest(\"algo_signTxn\", requestParams);\n\n this.keepWCAliveStart();\n\n const result: Array<string | null> = await this.#client.sendCustomRequest(\n request\n );\n\n this.keepWCAliveStop();\n\n const signedRawTransactions = result.reduce(\n (signedTxns: Uint8Array[], txn, currentIndex) => {\n if (txn) {\n signedTxns.push(new Uint8Array(Buffer.from(txn, \"base64\")));\n }\n\n if (txn === null) {\n signedTxns.push(\n new Uint8Array(Buffer.from(transactions[currentIndex][1], \"base64\"))\n );\n }\n\n return signedTxns;\n },\n []\n );\n\n return signedRawTransactions;\n }\n}\n\nexport default WalletConnectClient.init().catch((e) => {\n if (typeof window !== \"undefined\") {\n console.error(\"error initializing WalletConnectClient\", e);\n return;\n }\n});\n","import { PROVIDER_ID } from \"../constants\";\nimport peraWalletClient from \"./perawallet\";\nimport myAlgoWalletClient from \"./myalgowallet\";\nimport algoSignerClient from \"./algosigner\";\nimport deflyClient from \"./defly\";\nimport exodusClient from \"./exodus\";\nimport kmdClient from \"./kmd\";\nimport walletconnectClient from \"./walletconnect\";\n\n\nexport const clients = {\n [PROVIDER_ID.KMD_WALLET]: kmdClient,\n [PROVIDER_ID.PERA_WALLET]: peraWalletClient,\n [PROVIDER_ID.MYALGO_WALLET]: myAlgoWalletClient,\n [PROVIDER_ID.ALGO_SIGNER]: algoSignerClient,\n [PROVIDER_ID.DEFLY]: deflyClient,\n [PROVIDER_ID.EXODUS]: exodusClient,\n [PROVIDER_ID.WALLET_CONNECT]: walletconnectClient,\n};\n","import Big from \"big.js\";\nimport { PROVIDER_ID, WalletClient } from \"../types\";\nimport { clients } from \"../clients\";\n\nexport const getWalletClient = async (\n id: PROVIDER_ID | undefined\n): Promise<WalletClient> => {\n if (!id) {\n throw new Error(\"No wallet provider id provided\");\n }\n\n const client = await clients[id];\n\n if (!client) {\n throw new Error(`No wallet client found for provider id: ${id}`);\n }\n\n return client;\n};\n\nexport const formatPrice = (\n price: number,\n isAlgos?: boolean,\n options?: Intl.NumberFormatOptions | undefined\n) => {\n const algos = isAlgos ? price : convertMicroalgosToAlgos(price);\n return new Intl.NumberFormat(undefined, options).format(algos);\n};\n\n// Formula: amount / (10 ^ decimals)\nexport const convertMicroalgosToAlgos = (amount: number) => {\n const divisor = new Big(10).pow(6);\n return new Big(amount).div(divisor).round(6).toNumber();\n};\n","import algosdk from \"algosdk\";\nimport { useMemo } from \"react\";\nimport { useWalletStore } from \"../store/index\";\nimport { PROVIDER_ID } from \"../types\";\nimport { getWalletClient } from \"../utils\";\nimport { TransactionsArray } from \"../types\";\n\nexport { PROVIDER_ID };\n\nexport default function useWallet() {\n const allAccounts = useWalletStore((state) => state.accounts);\n const activeAccount = useWalletStore((state) => state.activeAccount);\n\n const accounts = useMemo(\n () =>\n allAccounts.filter(\n (account) => account.providerId === activeAccount?.providerId\n ),\n [allAccounts, activeAccount]\n );\n\n const signTransactions = async (transactions: Array<Uint8Array>) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n if (!walletClient || !activeAccount?.address) {\n throw new Error(\"No wallet found.\");\n }\n\n const signedTransactions = await walletClient.signTransactions(\n activeAccount.address,\n transactions\n );\n\n return signedTransactions;\n };\n\n const sendTransactions = async (transactions: Uint8Array[]) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n const result = await walletClient?.sendRawTransactions(transactions);\n\n return result;\n };\n\n const signer: algosdk.TransactionSigner = (\n txnGroup: algosdk.Transaction[],\n indexesToSign: number[]\n ) => {\n const txnBlobs: Array<Uint8Array> = txnGroup.map(\n algosdk.encodeUnsignedTransaction\n );\n return Promise.resolve(signTransactions(txnBlobs)).then(\n (txns: Uint8Array[]) => {\n return txns.filter((_, index) => indexesToSign.includes(index));\n }\n );\n };\n\n const getAccountInfo = async () => {\n if (!activeAccount) throw new Error(\"No selected account.\");\n\n const walletClient = await getWalletClient(activeAccount.providerId);\n\n const accountInfo = await walletClient?.getAccountInfo(\n activeAccount.address\n );\n\n return accountInfo;\n };\n\n const getAddress = () => {\n return activeAccount?.address;\n };\n\n const getAssets = async () => {\n if (!activeAccount) throw new Error(\"No selected account.\");\n\n const walletClient = await getWalletClient(activeAccount.providerId);\n\n return await walletClient?.getAssets(activeAccount.address);\n };\n\n const groupTransactionsBySender = async (transactions: TransactionsArray) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n return walletClient?.groupTransactionsBySender(transactions);\n };\n\n const signEncodedTransactions = async (transactions: TransactionsArray) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n return await walletClient?.signEncodedTransactions(transactions);\n };\n\n const sendRawTransactions = async (transactions: Uint8Array[]) => {\n const walletClient = await getWalletClient(activeAccount?.providerId);\n\n return await walletClient?.sendRawTransactions(transactions);\n };\n\n return {\n accounts,\n activeAccount,\n signer,\n signTransactions,\n sendTransactions,\n getAddress,\n groupTransactionsBySender,\n getAccountInfo,\n getAssets,\n signEncodedTransactions,\n sendRawTransactions,\n };\n}\n","function shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nexport { shallow as default };\n","import { useMemo } from \"react\";\nimport { useWalletStore, walletStoreSelector } from \"../store/index\";\nimport { PROVIDER_ID } from \"../types\";\nimport { providers as walletProviders } from \"../providers\";\nimport shallow from \"zustand/shallow\";\nimport { getWalletClient } from \"../utils\";\n\ntype Options = Partial<{\n providers: PROVIDER_ID[];\n}>;\n\nexport default function useConnectWallet(options?: Options) {\n const {\n accounts,\n setActiveAccount: setActiveAccount,\n activeAccount,\n clearActiveAccount,\n addAccounts,\n removeAccounts,\n } = useWalletStore(walletStoreSelector, shallow);\n\n const providers = useMemo(\n () =>\n Object.values(walletProviders)\n .filter(({ id }) =>\n options?.providers\n ? options.providers.includes(id)\n : id !== PROVIDER_ID.KMD_WALLET\n )\n .map(({ id, name, icon, isWalletConnect }) => {\n return {\n id,\n name,\n icon,\n accounts: accounts.filter((account) => account.providerId === id),\n activeAccount:\n activeAccount?.providerId === id ? activeAccount : null,\n isActive: activeAccount?.providerId === id,\n isConnected: accounts.some(\n (accounts) => accounts.providerId === id\n ),\n isWalletConnect,\n connect: () => connect(id),\n disconnect: () => disconnect(id),\n reconnect: () => reconnect(id),\n setActive: () => setActive(id),\n selectAccount: (account: string) =>\n selectActiveAccount(id, account),\n };\n }),\n [accounts, activeAccount]\n );\n\n const getAccountsByProvider = (id: PROVIDER_ID) => {\n return accounts.filter((account) => account.providerId === id);\n };\n\n const reconnectProviders = async () => {\n Object.values(providers).forEach(({ id, isActive, isConnected }) => {\n if (isActive || isConnected) {\n reconnect(id);\n }\n });\n };\n\n const disconnectWCSessions = async (id: PROVIDER_ID) => {\n if (!walletProviders[id].isWalletConnect) {\n return;\n }\n\n const wcSessions = Object.values(providers).filter(\n (p) => p.id !== id && p.isWalletConnect && (p.isConnected || p.isActive)\n );\n\n for (const session of wcSessions) {\n await disconnect(session.id);\n }\n };\n\n const connect = async (id: PROVIDER_ID) => {\n try {\n await disconnectWCSessions(id);\n\n const walletClient = await getWalletClient(id);\n const walletInfo = await walletClient.connect(() => disconnect(id));\n\n if (!walletInfo || !walletInfo.accounts.length) {\n throw new Error(\"Failed to connect \" + id);\n }\n\n setActiveAccount(walletInfo.accounts[0]);\n addAccounts(walletInfo.accounts);\n } catch (e) {\n console.error(e);\n }\n };\n\n const setActive = async (id: PROVIDER_ID) => {\n try {\n await disconnectWCSessions(id);\n const accounts = getAccountsByProvider(id);\n setActiveAccount(accounts[0]);\n } catch (e) {\n console.error(e);\n }\n };\n\n const selectActiveAccount = async (\n providerId: PROVIDER_ID,\n address: string\n ) => {\n try {\n const account = accounts.find(\n (acct) => acct.address === address && acct.providerId === providerId\n );\n\n if (!account) {\n throw new Error(`No accounts with address ${address} found.`);\n }\n\n await disconnectWCSessions(account.providerId);\n setActiveAccount(account);\n } catch (e) {\n console.error(e);\n }\n };\n\n const reconnect = async (id: PROVIDER_ID) => {\n try {\n const walletClient = await getWalletClient(id);\n const walletInfo = await walletClient?.reconnect(() => disconnect(id));\n\n if (walletInfo && walletInfo.accounts.length) {\n addAccounts(walletInfo.accounts);\n }\n } catch (e) {\n console.error(e);\n disconnect(id);\n }\n };\n\n const disconnect = async (id: PROVIDER_ID) => {\n try {\n const walletClient = await getWalletClient(id);\n\n walletClient?.disconnect();\n } catch (e) {\n console.error(e);\n } finally {\n clearActiveAccount(id);\n removeAccounts(id);\n }\n };\n\n return {\n providers,\n activeAccount,\n accounts,\n connect,\n reconnect,\n disconnect,\n selectActiveAccount,\n setActive,\n reconnectProviders,\n };\n}\n","function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar browserUtils = require('@walletconnect/browser-utils');\nvar QRCode = _interopDefault(require('qrcode'));\nvar copy = _interopDefault(require('copy-to-clipboard'));\nvar React = require('preact/compat');\n\nfunction open(uri) {\n QRCode.toString(uri, {\n type: \"terminal\"\n }).then(console.log);\n}\n\nvar WALLETCONNECT_STYLE_SHEET = \":root {\\n --animation-duration: 300ms;\\n}\\n\\n@keyframes fadeIn {\\n from {\\n opacity: 0;\\n }\\n to {\\n opacity: 1;\\n }\\n}\\n\\n@keyframes fadeOut {\\n from {\\n opacity: 1;\\n }\\n to {\\n opacity: 0;\\n }\\n}\\n\\n.animated {\\n animation-duration: var(--animation-duration);\\n animation-fill-mode: both;\\n}\\n\\n.fadeIn {\\n animation-name: fadeIn;\\n}\\n\\n.fadeOut {\\n animation-name: fadeOut;\\n}\\n\\n#walletconnect-wrapper {\\n -webkit-user-select: none;\\n align-items: center;\\n display: flex;\\n height: 100%;\\n justify-content: center;\\n left: 0;\\n pointer-events: none;\\n position: fixed;\\n top: 0;\\n user-select: none;\\n width: 100%;\\n z-index: 99999999999999;\\n}\\n\\n.walletconnect-modal__headerLogo {\\n height: 21px;\\n}\\n\\n.walletconnect-modal__header p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n align-items: flex-start;\\n display: flex;\\n flex: 1;\\n margin-left: 5px;\\n}\\n\\n.walletconnect-modal__close__wrapper {\\n position: absolute;\\n top: 0px;\\n right: 0px;\\n z-index: 10000;\\n background: white;\\n border-radius: 26px;\\n padding: 6px;\\n box-sizing: border-box;\\n width: 26px;\\n height: 26px;\\n cursor: pointer;\\n}\\n\\n.walletconnect-modal__close__icon {\\n position: relative;\\n top: 7px;\\n right: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n transform: rotate(45deg);\\n}\\n\\n.walletconnect-modal__close__line1 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n}\\n\\n.walletconnect-modal__close__line2 {\\n position: absolute;\\n width: 100%;\\n border: 1px solid rgb(48, 52, 59);\\n transform: rotate(90deg);\\n}\\n\\n.walletconnect-qrcode__base {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n background: rgba(37, 41, 46, 0.95);\\n height: 100%;\\n left: 0;\\n pointer-events: auto;\\n position: fixed;\\n top: 0;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n width: 100%;\\n will-change: opacity;\\n padding: 40px;\\n box-sizing: border-box;\\n}\\n\\n.walletconnect-qrcode__text {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 10px 0 20px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-qrcode__text {\\n font-size: 4vw;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-qrcode__text {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-qrcode__image {\\n width: calc(100% - 30px);\\n box-sizing: border-box;\\n cursor: none;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-qrcode__notification {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n font-size: 16px;\\n padding: 16px 20px;\\n border-radius: 16px;\\n text-align: center;\\n transition: all 0.1s ease-in-out;\\n background: white;\\n color: black;\\n margin-bottom: -60px;\\n opacity: 0;\\n}\\n\\n.walletconnect-qrcode__notification.notification__show {\\n opacity: 1;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__header {\\n height: 130px;\\n }\\n .walletconnect-modal__base {\\n overflow: auto;\\n }\\n}\\n\\n@media only screen and (min-device-width: 415px) and (max-width: 768px) {\\n #content {\\n max-width: 768px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 375px) and (max-width: 415px) {\\n #content {\\n max-width: 414px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (min-width: 320px) and (max-width: 375px) {\\n #content {\\n max-width: 375px;\\n box-sizing: border-box;\\n }\\n}\\n\\n@media only screen and (max-width: 320px) {\\n #content {\\n max-width: 320px;\\n box-sizing: border-box;\\n }\\n}\\n\\n.walletconnect-modal__base {\\n -webkit-font-smoothing: antialiased;\\n background: #ffffff;\\n border-radius: 24px;\\n box-shadow: 0 10px 50px 5px rgba(0, 0, 0, 0.4);\\n font-family: ui-rounded, \\\"SF Pro Rounded\\\", \\\"SF Pro Text\\\", medium-content-sans-serif-font,\\n -apple-system, BlinkMacSystemFont, ui-sans-serif, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell,\\n \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n margin-top: 41px;\\n padding: 24px 24px 22px;\\n pointer-events: auto;\\n position: relative;\\n text-align: center;\\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\\n will-change: transform;\\n overflow: visible;\\n transform: translateY(-50%);\\n top: 50%;\\n max-width: 500px;\\n margin: auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__base {\\n padding: 24px 12px;\\n }\\n}\\n\\n.walletconnect-modal__base .hidden {\\n transform: translateY(150%);\\n transition: 0.125s cubic-bezier(0.4, 0, 1, 1);\\n}\\n\\n.walletconnect-modal__header {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n left: 0;\\n justify-content: space-between;\\n position: absolute;\\n top: -42px;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base .wc-logo {\\n align-items: center;\\n display: flex;\\n height: 26px;\\n margin-top: 15px;\\n padding-bottom: 15px;\\n pointer-events: auto;\\n}\\n\\n.walletconnect-modal__base .wc-logo div {\\n background-color: #3399ff;\\n height: 21px;\\n margin-right: 5px;\\n mask-image: url(\\\"images/wc-logo.svg\\\") center no-repeat;\\n width: 32px;\\n}\\n\\n.walletconnect-modal__base .wc-logo p {\\n color: #ffffff;\\n font-size: 20px;\\n font-weight: 600;\\n margin: 0;\\n}\\n\\n.walletconnect-modal__base h2 {\\n color: rgba(60, 66, 82, 0.6);\\n font-size: 16px;\\n font-weight: 600;\\n letter-spacing: 0;\\n line-height: 1.1875em;\\n margin: 0 0 19px 0;\\n text-align: center;\\n width: 100%;\\n}\\n\\n.walletconnect-modal__base__row {\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n align-items: center;\\n border-radius: 20px;\\n cursor: pointer;\\n display: flex;\\n height: 56px;\\n justify-content: space-between;\\n padding: 0 15px;\\n position: relative;\\n margin: 0px 0px 8px;\\n text-align: left;\\n transition: 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n will-change: transform;\\n text-decoration: none;\\n}\\n\\n.walletconnect-modal__base__row:hover {\\n background: rgba(60, 66, 82, 0.06);\\n}\\n\\n.walletconnect-modal__base__row:active {\\n background: rgba(60, 66, 82, 0.06);\\n transform: scale(0.975);\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n}\\n\\n.walletconnect-modal__base__row__h3 {\\n color: #25292e;\\n font-size: 20px;\\n font-weight: 700;\\n margin: 0;\\n padding-bottom: 3px;\\n}\\n\\n.walletconnect-modal__base__row__right {\\n align-items: center;\\n display: flex;\\n justify-content: center;\\n}\\n\\n.walletconnect-modal__base__row__right__app-icon {\\n border-radius: 8px;\\n height: 34px;\\n margin: 0 11px 2px 0;\\n width: 34px;\\n background-size: 100%;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-modal__base__row__right__caret {\\n height: 18px;\\n opacity: 0.3;\\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\\n width: 8px;\\n will-change: opacity;\\n}\\n\\n.walletconnect-modal__base__row:hover .caret,\\n.walletconnect-modal__base__row:active .caret {\\n opacity: 0.6;\\n}\\n\\n.walletconnect-modal__mobile__toggle {\\n width: 80%;\\n display: flex;\\n margin: 0 auto;\\n position: relative;\\n overflow: hidden;\\n border-radius: 8px;\\n margin-bottom: 18px;\\n background: #d4d5d9;\\n}\\n\\n.walletconnect-modal__single_wallet {\\n display: flex;\\n justify-content: center;\\n margin-top: 7px;\\n margin-bottom: 18px;\\n}\\n\\n.walletconnect-modal__single_wallet a {\\n cursor: pointer;\\n color: rgb(64, 153, 255);\\n font-size: 21px;\\n font-weight: 800;\\n text-decoration: none !important;\\n margin: 0 auto;\\n}\\n\\n.walletconnect-modal__mobile__toggle_selector {\\n width: calc(50% - 8px);\\n background: white;\\n position: absolute;\\n border-radius: 5px;\\n height: calc(100% - 8px);\\n top: 4px;\\n transition: all 0.2s ease-in-out;\\n transform: translate3d(4px, 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle.right__selected .walletconnect-modal__mobile__toggle_selector {\\n transform: translate3d(calc(100% + 12px), 0, 0);\\n}\\n\\n.walletconnect-modal__mobile__toggle a {\\n font-size: 12px;\\n width: 50%;\\n text-align: center;\\n padding: 8px;\\n margin: 0;\\n font-weight: 600;\\n z-index: 1;\\n}\\n\\n.walletconnect-modal__footer {\\n display: flex;\\n justify-content: center;\\n margin-top: 20px;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .walletconnect-modal__footer {\\n margin-top: 5vw;\\n }\\n}\\n\\n.walletconnect-modal__footer a {\\n cursor: pointer;\\n color: #898d97;\\n font-size: 15px;\\n margin: 0 auto;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-modal__footer a {\\n font-size: 14px;\\n }\\n}\\n\\n.walletconnect-connect__buttons__wrapper {\\n max-height: 44vh;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__android {\\n margin: 50% 0;\\n}\\n\\n.walletconnect-connect__buttons__wrapper__wrap {\\n display: grid;\\n grid-template-columns: repeat(4, 1fr);\\n margin: 10px 0;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__buttons__wrapper__wrap {\\n margin-top: 40px;\\n }\\n}\\n\\n.walletconnect-connect__button {\\n background-color: rgb(64, 153, 255);\\n padding: 12px;\\n border-radius: 8px;\\n text-decoration: none;\\n color: rgb(255, 255, 255);\\n font-weight: 500;\\n}\\n\\n.walletconnect-connect__button__icon_anchor {\\n cursor: pointer;\\n display: flex;\\n justify-content: flex-start;\\n align-items: center;\\n margin: 8px;\\n width: 42px;\\n justify-self: center;\\n flex-direction: column;\\n text-decoration: none !important;\\n}\\n\\n@media only screen and (max-width: 320px) {\\n .walletconnect-connect__button__icon_anchor {\\n margin: 4px;\\n }\\n}\\n\\n.walletconnect-connect__button__icon {\\n border-radius: 10px;\\n height: 42px;\\n margin: 0;\\n width: 42px;\\n background-size: cover !important;\\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\\n}\\n\\n.walletconnect-connect__button__text {\\n color: #424952;\\n font-size: 2.7vw;\\n text-decoration: none !important;\\n padding: 0;\\n margin-top: 1.8vw;\\n font-weight: 600;\\n}\\n\\n@media only screen and (min-width: 768px) {\\n .walletconnect-connect__button__text {\\n font-size: 16px;\\n margin-top: 12px;\\n }\\n}\\n\\n.walletconnect-search__input {\\n border: none;\\n background: #d4d5d9;\\n border-style: none;\\n padding: 8px 16px;\\n outline: none;\\n font-style: normal;\\n font-stretch: normal;\\n font-size: 16px;\\n font-style: normal;\\n font-stretch: normal;\\n line-height: normal;\\n letter-spacing: normal;\\n text-align: left;\\n border-radius: 8px;\\n width: calc(100% - 16px);\\n margin: 0;\\n margin-bottom: 8px;\\n}\\n\";\n\nvar WALLETCONNECT_LOGO_SVG_URL = \"data:image/svg+xml,%3Csvg height='185' viewBox='0 0 300 185' width='300' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m61.4385429 36.2562612c48.9112241-47.8881663 128.2119871-47.8881663 177.1232091 0l5.886545 5.7634174c2.445561 2.3944081 2.445561 6.2765112 0 8.6709204l-20.136695 19.715503c-1.222781 1.1972051-3.2053 1.1972051-4.428081 0l-8.100584-7.9311479c-34.121692-33.4079817-89.443886-33.4079817-123.5655788 0l-8.6750562 8.4936051c-1.2227816 1.1972041-3.205301 1.1972041-4.4280806 0l-20.1366949-19.7155031c-2.4455612-2.3944092-2.4455612-6.2765122 0-8.6709204zm218.7677961 40.7737449 17.921697 17.546897c2.445549 2.3943969 2.445563 6.2764769.000031 8.6708899l-80.810171 79.121134c-2.445544 2.394426-6.410582 2.394453-8.85616.000062-.00001-.00001-.000022-.000022-.000032-.000032l-57.354143-56.154572c-.61139-.598602-1.60265-.598602-2.21404 0-.000004.000004-.000007.000008-.000011.000011l-57.3529212 56.154531c-2.4455368 2.394432-6.4105755 2.394472-8.8561612.000087-.0000143-.000014-.0000296-.000028-.0000449-.000044l-80.81241943-79.122185c-2.44556021-2.394408-2.44556021-6.2765115 0-8.6709197l17.92172963-17.5468673c2.4455602-2.3944082 6.4105989-2.3944082 8.8561602 0l57.3549775 56.155357c.6113908.598602 1.602649.598602 2.2140398 0 .0000092-.000009.0000174-.000017.0000265-.000024l57.3521031-56.155333c2.445505-2.3944633 6.410544-2.3945531 8.856161-.0002.000034.0000336.000068.0000673.000101.000101l57.354902 56.155432c.61139.598601 1.60265.598601 2.21404 0l57.353975-56.1543249c2.445561-2.3944092 6.410599-2.3944092 8.85616 0z' fill='%233b99fc'/%3E%3C/svg%3E\";\n\nvar WALLETCONNECT_HEADER_TEXT = \"WalletConnect\";\nvar ANIMATION_DURATION = 300;\nvar DEFAULT_BUTTON_COLOR = \"rgb(64, 153, 255)\";\nvar WALLETCONNECT_WRAPPER_ID = \"walletconnect-wrapper\";\nvar WALLETCONNECT_STYLE_ID = \"walletconnect-style-sheet\";\nvar WALLETCONNECT_MODAL_ID = \"walletconnect-qrcode-modal\";\nvar WALLETCONNECT_CLOSE_BUTTON_ID = \"walletconnect-qrcode-close\";\nvar WALLETCONNECT_CTA_TEXT_ID = \"walletconnect-qrcode-text\";\nvar WALLETCONNECT_CONNECT_BUTTON_ID = \"walletconnect-connect-button\";\n\nfunction Header(props) {\n return React.createElement(\"div\", {\n className: \"walletconnect-modal__header\"\n }, React.createElement(\"img\", {\n src: WALLETCONNECT_LOGO_SVG_URL,\n className: \"walletconnect-modal__headerLogo\"\n }), React.createElement(\"p\", null, WALLETCONNECT_HEADER_TEXT), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__wrapper\",\n onClick: props.onClose\n }, React.createElement(\"div\", {\n id: WALLETCONNECT_CLOSE_BUTTON_ID,\n className: \"walletconnect-modal__close__icon\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line1\"\n }), React.createElement(\"div\", {\n className: \"walletconnect-modal__close__line2\"\n }))));\n}\n\nfunction ConnectButton(props) {\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button\",\n href: props.href,\n id: (WALLETCONNECT_CONNECT_BUTTON_ID + \"-\" + (props.name)),\n onClick: props.onClick,\n rel: \"noopener noreferrer\",\n style: {\n backgroundColor: props.color\n },\n target: \"_blank\"\n }, props.name);\n}\n\nvar CARET_SVG_URL = \"data:image/svg+xml,%3Csvg fill='none' height='18' viewBox='0 0 8 18' width='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='m.586301.213898c-.435947.33907-.5144813.967342-.175411 1.403292l4.87831 6.27212c.28087.36111.28087.86677 0 1.22788l-4.878311 6.27211c-.33907.436-.260536 1.0642.175412 1.4033.435949.3391 1.064219.2605 1.403289-.1754l4.87832-6.2721c.84259-1.08336.84259-2.60034 0-3.68367l-4.87832-6.27212c-.33907-.4359474-.96734-.514482-1.403289-.175412z' fill='%233c4252' fill-rule='evenodd'/%3E%3C/svg%3E\";\n\nfunction WalletButton(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n return React.createElement(\"a\", {\n className: \"walletconnect-modal__base__row\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"h3\", {\n className: \"walletconnect-modal__base__row__h3\"\n }, name), React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base__row__right__app-icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"img\", {\n src: CARET_SVG_URL,\n className: \"walletconnect-modal__base__row__right__caret\"\n })));\n}\n\nfunction WalletIcon(props) {\n var color = props.color;\n var href = props.href;\n var name = props.name;\n var logo = props.logo;\n var onClick = props.onClick;\n var fontSize = window.innerWidth < 768 ? ((name.length > 8 ? 2.5 : 2.7) + \"vw\") : \"inherit\";\n return React.createElement(\"a\", {\n className: \"walletconnect-connect__button__icon_anchor\",\n href: href,\n onClick: onClick,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-connect__button__icon\",\n style: {\n background: (\"url('\" + logo + \"') \" + color),\n backgroundSize: \"100%\"\n }\n }), React.createElement(\"div\", {\n style: {\n fontSize: fontSize\n },\n className: \"walletconnect-connect__button__text\"\n }, name));\n}\n\nvar GRID_MIN_COUNT = 5;\nvar LINKS_PER_PAGE = 12;\n\nfunction LinkDisplay(props) {\n var android = browserUtils.isAndroid();\n var ref = React.useState(\"\");\n var input = ref[0];\n var setInput = ref[1];\n var ref$1 = React.useState(\"\");\n var filter = ref$1[0];\n var setFilter = ref$1[1];\n var ref$2 = React.useState(1);\n var page = ref$2[0];\n var setPage = ref$2[1];\n var links = filter ? props.links.filter(function (link) { return link.name.toLowerCase().includes(filter.toLowerCase()); }) : props.links;\n var errorMessage = props.errorMessage;\n var grid = filter || links.length > GRID_MIN_COUNT;\n var pages = Math.ceil(links.length / LINKS_PER_PAGE);\n var range = [(page - 1) * LINKS_PER_PAGE + 1, page * LINKS_PER_PAGE];\n var pageLinks = links.length ? links.filter(function (_, index) { return index + 1 >= range[0] && index + 1 <= range[1]; }) : [];\n var hasPaging = !!(!android && pages > 1);\n var filterTimeout = undefined;\n\n function handleInput(e) {\n setInput(e.target.value);\n clearTimeout(filterTimeout);\n\n if (e.target.value) {\n filterTimeout = setTimeout(function () {\n setFilter(e.target.value);\n setPage(1);\n }, 1000);\n } else {\n setInput(\"\");\n setFilter(\"\");\n setPage(1);\n }\n }\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, android ? props.text.connect_mobile_wallet : props.text.choose_preferred_wallet), !android && React.createElement(\"input\", {\n className: \"walletconnect-search__input\",\n placeholder: \"Search\",\n value: input,\n onChange: handleInput\n }), React.createElement(\"div\", {\n className: (\"walletconnect-connect__buttons__wrapper\" + (android ? \"__android\" : grid && links.length ? \"__wrap\" : \"\"))\n }, !android ? pageLinks.length ? pageLinks.map(function (entry) {\n var color = entry.color;\n var name = entry.name;\n var shortName = entry.shortName;\n var logo = entry.logo;\n var href = browserUtils.formatIOSMobile(props.uri, entry);\n var handleClickIOS = React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: name,\n href: href\n });\n }, [pageLinks]);\n return !grid ? React.createElement(WalletButton, {\n color: color,\n href: href,\n name: name,\n logo: logo,\n onClick: handleClickIOS\n }) : React.createElement(WalletIcon, {\n color: color,\n href: href,\n name: shortName || name,\n logo: logo,\n onClick: handleClickIOS\n });\n }) : React.createElement(React.Fragment, null, React.createElement(\"p\", null, errorMessage.length ? props.errorMessage : !!props.links.length && !links.length ? props.text.no_wallets_found : props.text.loading)) : React.createElement(ConnectButton, {\n name: props.text.connect,\n color: DEFAULT_BUTTON_COLOR,\n href: props.uri,\n onClick: React.useCallback(function () {\n browserUtils.saveMobileLinkInfo({\n name: \"Unknown\",\n href: props.uri\n });\n }, [])\n })), hasPaging && React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, Array(pages).fill(0).map(function (_, index) {\n var pageNumber = index + 1;\n var selected = page === pageNumber;\n return React.createElement(\"a\", {\n style: {\n margin: \"auto 10px\",\n fontWeight: selected ? \"bold\" : \"normal\"\n },\n onClick: function () { return setPage(pageNumber); }\n }, pageNumber);\n })));\n}\n\nfunction Notification(props) {\n var show = !!props.message.trim();\n return React.createElement(\"div\", {\n className: (\"walletconnect-qrcode__notification\" + (show ? \" notification__show\" : \"\"))\n }, props.message);\n}\n\nvar formatQRCodeImage = function (data) {\n try {\n var result = \"\";\n return Promise.resolve(QRCode.toString(data, {\n margin: 0,\n type: \"svg\"\n })).then(function (dataString) {\n if (typeof dataString === \"string\") {\n result = dataString.replace(\"<svg\", \"<svg class=\\\"walletconnect-qrcode__image\\\"\");\n }\n\n return result;\n });\n } catch (e) {\n return Promise.reject(e);\n }\n};\n\nfunction QRCodeDisplay(props) {\n var ref = React.useState(\"\");\n var notification = ref[0];\n var setNotification = ref[1];\n var ref$1 = React.useState(\"\");\n var svg = ref$1[0];\n var setSvg = ref$1[1];\n React.useEffect(function () {\n try {\n return Promise.resolve(formatQRCodeImage(props.uri)).then(function (_formatQRCodeImage) {\n setSvg(_formatQRCodeImage);\n });\n } catch (e) {\n Promise.reject(e);\n }\n }, []);\n\n var copyToClipboard = function () {\n var success = copy(props.uri);\n\n if (success) {\n setNotification(props.text.copied_to_clipboard);\n setInterval(function () { return setNotification(\"\"); }, 1200);\n } else {\n setNotification(\"Error\");\n setInterval(function () { return setNotification(\"\"); }, 1200);\n }\n };\n\n return React.createElement(\"div\", null, React.createElement(\"p\", {\n id: WALLETCONNECT_CTA_TEXT_ID,\n className: \"walletconnect-qrcode__text\"\n }, props.text.scan_qrcode_with_wallet), React.createElement(\"div\", {\n dangerouslySetInnerHTML: {\n __html: svg\n }\n }), React.createElement(\"div\", {\n className: \"walletconnect-modal__footer\"\n }, React.createElement(\"a\", {\n onClick: copyToClipboard\n }, props.text.copy_to_clipboard)), React.createElement(Notification, {\n message: notification\n }));\n}\n\nvar officialAlgorandWallet = {\n id: \"23138217b046ae8d9d07e62b3337fb288c4445f92f64be067809cd0a8f9454b9\",\n name: \"Pera Wallet\",\n homepage: \"https://perawallet.app\",\n chains: [\"algorand\"],\n image_id: \"1765f9aa-f99e-414e-826b-6b570d480999\",\n image_url: {\n sm: \"https://algorand-app.s3.amazonaws.com/app-icons/Pera-walletconnect-128.png\",\n md: \"https://algorand-app.s3.amazonaws.com/app-icons/Pera-walletconnect-128.png\",\n lg: \"https://algorand-app.s3.amazonaws.com/app-icons/Pera-walletconnect-128.png\"\n },\n app: {\n browser: \"\",\n ios: \"https://apps.apple.com/us/app/algorand-wallet/id1459898525\",\n android: \"https://play.google.com/store/apps/details?id=com.algorand.android\",\n mac: \"\",\n windows: \"\",\n linux: \"\"\n },\n mobile: {\n native: \"algorand-wc:\",\n universal: \"\"\n },\n desktop: {\n native: \"\",\n universal: \"\"\n },\n metadata: {\n shortName: \"Pera Wallet\",\n colors: {\n primary: \"rgb(255, 238, 85)\",\n secondary: \"\"\n }\n }\n};\nvar registry = {};\nregistry[officialAlgorandWallet.id] = officialAlgorandWallet;\n\nfunction Modal(props) {\n var android = browserUtils.isAndroid();\n var mobile = browserUtils.isMobile();\n var whitelist = mobile ? props.qrcodeModalOptions && props.qrcodeModalOptions.mobileLinks ? props.qrcodeModalOptions.mobileLinks : undefined : props.qrcodeModalOptions && props.qrcodeModalOptions.desktopLinks ? props.qrcodeModalOptions.desktopLinks : undefined;\n var ref = React.useState(false);\n var loading = ref[0];\n var setLoading = ref[1];\n var ref$1 = React.useState(false);\n var fetched = ref$1[0];\n var setFetched = ref$1[1];\n var ref$2 = React.useState(!mobile);\n var displayQRCode = ref$2[0];\n var setDisplayQRCode = ref$2[1];\n var displayProps = {\n mobile: mobile,\n text: props.text,\n uri: props.uri,\n qrcodeModalOptions: props.qrcodeModalOptions\n };\n var ref$3 = React.useState(\"\");\n var singleLinkHref = ref$3[0];\n var setSingleLinkHref = ref$3[1];\n var ref$4 = React.useState(false);\n var hasSingleLink = ref$4[0];\n var setHasSingleLink = ref$4[1];\n var ref$5 = React.useState([]);\n var links = ref$5[0];\n var setLinks = ref$5[1];\n var ref$6 = React.useState(\"\");\n var errorMessage = ref$6[0];\n var setErrorMessage = ref$6[1];\n\n var getLinksIfNeeded = function () {\n if (fetched || loading || whitelist && !whitelist.length || links.length > 0) {\n return;\n }\n\n React.useEffect(function () {\n var initLinks = function () {\n try {\n if (android) { return Promise.resolve(); }\n setLoading(true);\n\n try {\n var platform = mobile ? \"mobile\" : \"desktop\";\n\n var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist);\n\n setLoading(false);\n setFetched(true);\n setErrorMessage(!_links.length ? props.text.no_supported_wallets : \"\");\n setLinks(_links);\n var hasSingleLink = _links.length === 1;\n\n if (hasSingleLink) {\n setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0]));\n setDisplayQRCode(true);\n }\n\n setHasSingleLink(hasSingleLink);\n } catch (e) {\n setLoading(false);\n setFetched(true);\n setErrorMessage(props.text.something_went_wrong);\n console.error(e);\n }\n\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n initLinks();\n });\n };\n\n getLinksIfNeeded();\n var rightSelected = mobile ? displayQRCode : !displayQRCode;\n return React.createElement(\"div\", {\n id: WALLETCONNECT_MODAL_ID,\n className: \"walletconnect-qrcode__base animated fadeIn\"\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__base\"\n }, React.createElement(Header, {\n onClose: props.onClose\n }), hasSingleLink && displayQRCode ? React.createElement(\"div\", {\n className: \"walletconnect-modal__single_wallet\"\n }, React.createElement(\"a\", {\n onClick: function () { return browserUtils.saveMobileLinkInfo({\n name: links[0].name,\n href: singleLinkHref\n }); },\n href: singleLinkHref,\n rel: \"noopener noreferrer\",\n target: \"_blank\"\n }, props.text.connect_with + \" \" + (hasSingleLink ? links[0].name : \"\") + \" ›\")) : android || loading || !loading && links.length ? React.createElement(\"div\", {\n className: (\"walletconnect-modal__mobile__toggle\" + (rightSelected ? \" right__selected\" : \"\"))\n }, React.createElement(\"div\", {\n className: \"walletconnect-modal__mobile__toggle_selector\"\n }), mobile ? React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.mobile), React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode)) : React.createElement(React.Fragment, null, React.createElement(\"a\", {\n onClick: function () { return setDisplayQRCode(true); }\n }, props.text.qrcode), React.createElement(\"a\", {\n onClick: function () { return (setDisplayQRCode(false), getLinksIfNeeded()); }\n }, props.text.desktop))) : null, React.createElement(\"div\", null, displayQRCode || !android && !loading && !links.length ? React.createElement(QRCodeDisplay, Object.assign({}, displayProps)) : React.createElement(LinkDisplay, Object.assign({}, displayProps,\n {links: links,\n errorMessage: errorMessage})))));\n}\n\nvar de = {\n choose_preferred_wallet: \"Wähle bevorzugte Wallet\",\n connect_mobile_wallet: \"Verbinde mit Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scanne den QR-code mit einer WalletConnect kompatiblen Wallet\",\n connect: \"Verbinden\",\n qrcode: \"QR-Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"In die Zwischenablage kopieren\",\n copied_to_clipboard: \"In die Zwischenablage kopiert!\",\n connect_with: \"Verbinden mit Hilfe von\",\n loading: \"Laden...\",\n something_went_wrong: \"Etwas ist schief gelaufen\",\n no_supported_wallets: \"Es gibt noch keine unterstützten Wallet\",\n no_wallets_found: \"keine Wallet gefunden\"\n};\n\nvar en = {\n choose_preferred_wallet: \"Choose your preferred wallet\",\n connect_mobile_wallet: \"Connect to Mobile Wallet\",\n scan_qrcode_with_wallet: \"Scan QR code with a WalletConnect-compatible wallet\",\n connect: \"Connect\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copy to clipboard\",\n copied_to_clipboard: \"Copied to clipboard!\",\n connect_with: \"Connect with\",\n loading: \"Loading...\",\n something_went_wrong: \"Something went wrong\",\n no_supported_wallets: \"There are no supported wallets yet\",\n no_wallets_found: \"No wallets found\"\n};\n\nvar es = {\n choose_preferred_wallet: \"Elige tu billetera preferida\",\n connect_mobile_wallet: \"Conectar a billetera móvil\",\n scan_qrcode_with_wallet: \"Escanea el código QR con una billetera compatible con WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvil\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Conectar mediante\",\n loading: \"Cargando...\",\n something_went_wrong: \"Algo salió mal\",\n no_supported_wallets: \"Todavía no hay billeteras compatibles\",\n no_wallets_found: \"No se encontraron billeteras\"\n};\n\nvar fr = {\n choose_preferred_wallet: \"Choisissez votre portefeuille préféré\",\n connect_mobile_wallet: \"Se connecter au portefeuille mobile\",\n scan_qrcode_with_wallet: \"Scannez le QR code avec un portefeuille compatible WalletConnect\",\n connect: \"Se connecter\",\n qrcode: \"QR Code\",\n mobile: \"Mobile\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copier\",\n copied_to_clipboard: \"Copié!\",\n connect_with: \"Connectez-vous à l'aide de\",\n loading: \"Chargement...\",\n something_went_wrong: \"Quelque chose a mal tourné\",\n no_supported_wallets: \"Il n'y a pas encore de portefeuilles pris en charge\",\n no_wallets_found: \"Aucun portefeuille trouvé\"\n};\n\nvar ko = {\n choose_preferred_wallet: \"원하는 지갑을 선택하세요\",\n connect_mobile_wallet: \"모바일 지갑과 연결\",\n scan_qrcode_with_wallet: \"WalletConnect 지원 지갑에서 QR코드를 스캔하세요\",\n connect: \"연결\",\n qrcode: \"QR 코드\",\n mobile: \"모바일\",\n desktop: \"데스크탑\",\n copy_to_clipboard: \"클립보드에 복사\",\n copied_to_clipboard: \"클립보드에 복사되었습니다!\",\n connect_with: \"와 연결하다\",\n loading: \"로드 중...\",\n something_went_wrong: \"문제가 발생했습니다.\",\n no_supported_wallets: \"아직 지원되는 지갑이 없습니다\",\n no_wallets_found: \"지갑을 찾을 수 없습니다\"\n};\n\nvar pt = {\n choose_preferred_wallet: \"Escolha sua carteira preferida\",\n connect_mobile_wallet: \"Conectar-se à carteira móvel\",\n scan_qrcode_with_wallet: \"Ler o código QR com uma carteira compatível com WalletConnect\",\n connect: \"Conectar\",\n qrcode: \"Código QR\",\n mobile: \"Móvel\",\n desktop: \"Desktop\",\n copy_to_clipboard: \"Copiar\",\n copied_to_clipboard: \"Copiado!\",\n connect_with: \"Ligar por meio de\",\n loading: \"Carregamento...\",\n something_went_wrong: \"Algo correu mal\",\n no_supported_wallets: \"Ainda não há carteiras suportadas\",\n no_wallets_found: \"Nenhuma carteira encontrada\"\n};\n\nvar zh = {\n choose_preferred_wallet: \"选择你的钱包\",\n connect_mobile_wallet: \"连接至移动端钱包\",\n scan_qrcode_with_wallet: \"使用兼容 WalletConnect 的钱包扫描二维码\",\n connect: \"连接\",\n qrcode: \"二维码\",\n mobile: \"移动\",\n desktop: \"桌面\",\n copy_to_clipboard: \"复制到剪贴板\",\n copied_to_clipboard: \"复制到剪贴板成功!\",\n connect_with: \"通过以下方式连接\",\n loading: \"正在加载...\",\n something_went_wrong: \"出了问题\",\n no_supported_wallets: \"目前还没有支持的钱包\",\n no_wallets_found: \"没有找到钱包\"\n};\n\nvar fa = {\n choose_preferred_wallet: \"کیف پول مورد نظر خود را انتخاب کنید\",\n connect_mobile_wallet: \"به کیف پول موبایل وصل شوید\",\n scan_qrcode_with_wallet: \"کد QR را با یک کیف پول سازگار با WalletConnect اسکن کنید\",\n connect: \"اتصال\",\n qrcode: \"کد QR\",\n mobile: \"سیار\",\n desktop: \"دسکتاپ\",\n copy_to_clipboard: \"کپی به کلیپ بورد\",\n copied_to_clipboard: \"در کلیپ بورد کپی شد!\",\n connect_with: \"ارتباط با\",\n loading: \"...بارگذاری\",\n something_went_wrong: \"مشکلی پیش آمد\",\n no_supported_wallets: \"هنوز هیچ کیف پول پشتیبانی شده ای وجود ندارد\",\n no_wallets_found: \"هیچ کیف پولی پیدا نشد\"\n};\n\nvar languages = {\n de: de,\n en: en,\n es: es,\n fr: fr,\n ko: ko,\n pt: pt,\n zh: zh,\n fa: fa\n};\n\nfunction injectStyleSheet() {\n var doc = browserUtils.getDocumentOrThrow();\n var prev = doc.getElementById(WALLETCONNECT_STYLE_ID);\n\n if (prev) {\n doc.head.removeChild(prev);\n }\n\n var style = doc.createElement(\"style\");\n style.setAttribute(\"id\", WALLETCONNECT_STYLE_ID);\n style.innerText = WALLETCONNECT_STYLE_SHEET;\n doc.head.appendChild(style);\n}\n\nfunction renderWrapper() {\n var doc = browserUtils.getDocumentOrThrow();\n var wrapper = doc.createElement(\"div\");\n wrapper.setAttribute(\"id\", WALLETCONNECT_WRAPPER_ID);\n doc.body.appendChild(wrapper);\n return wrapper;\n}\n\nfunction triggerCloseAnimation() {\n var doc = browserUtils.getDocumentOrThrow();\n var modal = doc.getElementById(WALLETCONNECT_MODAL_ID);\n\n if (modal) {\n modal.className = modal.className.replace(\"fadeIn\", \"fadeOut\");\n setTimeout(function () {\n var wrapper = doc.getElementById(WALLETCONNECT_WRAPPER_ID);\n\n if (wrapper) {\n doc.body.removeChild(wrapper);\n }\n }, ANIMATION_DURATION);\n }\n}\n\nfunction getWrappedCallback(cb) {\n return function () {\n triggerCloseAnimation();\n\n if (cb) {\n cb();\n }\n };\n}\n\nfunction getText() {\n var lang = browserUtils.getNavigatorOrThrow().language.split(\"-\")[0] || \"en\";\n return languages[lang] || languages[\"en\"];\n}\n\nfunction open$1(uri, cb, qrcodeModalOptions) {\n injectStyleSheet();\n var wrapper = renderWrapper();\n React.render(React.createElement(Modal, {\n text: getText(),\n uri: uri,\n onClose: getWrappedCallback(cb),\n qrcodeModalOptions: qrcodeModalOptions\n }), wrapper);\n}\nfunction close$1() {\n triggerCloseAnimation();\n}\n\nvar ALGORAND_QUERY_PARAM_NAME = \"algorand\";\nfunction transformUri(uri, addAlgorandMarkerToUri) {\n if (addAlgorandMarkerToUri == null || addAlgorandMarkerToUri) {\n var urlObject = new URL(uri);\n\n if (!urlObject.searchParams.has(ALGORAND_QUERY_PARAM_NAME)) {\n urlObject.searchParams.set(ALGORAND_QUERY_PARAM_NAME, \"true\");\n return urlObject.toString();\n }\n }\n\n return uri;\n}\n\nfunction objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n\nvar isNode = function () { return typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\"; };\n\nfunction open$2(uri, cb, qrcodeModalOptions) {\n var ref = qrcodeModalOptions || {};\n var addAlgorandMarkerToUri = ref.addAlgorandMarkerToUri;\n var rest = objectWithoutProperties( ref, [\"addAlgorandMarkerToUri\"] );\n var vanillaOptions = rest;\n uri = transformUri(uri, addAlgorandMarkerToUri);\n console.log(uri);\n\n if (isNode()) {\n open(uri);\n } else {\n open$1(uri, cb, vanillaOptions);\n }\n}\n\nfunction close$2() {\n if (isNode()) ; else {\n close$1();\n }\n}\n\nvar index = {\n open: open$2,\n close: close$2\n};\n\nmodule.exports = index;\n//# sourceMappingURL=index.js.map\n"],"names":["P","en","on","fn","produce","KMD_WALLET","icon","undefined","this","_interopDefault","React","require$$0","require$$1","browser","isBrowser","isIOS","global","isNode","process","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","formatJsonRpcRequest","providers","walletProviders"],"mappings":"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C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAA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"}