@datagrok/peptides 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +2 -2
- package/dist/563.js +2 -2
- package/dist/611.js +1 -1
- package/dist/802.js +2 -2
- package/dist/96.js +2 -2
- package/dist/package-test.js +2 -2
- package/dist/package.js +2 -2
- package/files/tests/HELM_small.csv +12 -0
- package/package.json +4 -4
- package/src/demo/fasta.ts +24 -0
- package/src/model.ts +170 -180
- package/src/package-test.ts +3 -0
- package/src/package.ts +10 -1
- package/src/tests/algorithms.ts +1 -1
- package/src/tests/core.ts +13 -8
- package/src/tests/model.ts +152 -0
- package/src/tests/table-view.ts +158 -0
- package/src/tests/viewers.ts +142 -2
- package/src/tests/widgets.ts +135 -0
- package/src/utils/algorithms.ts +2 -2
- package/src/utils/cell-renderer.ts +1 -1
- package/src/utils/constants.ts +8 -0
- package/src/utils/misc.ts +4 -4
- package/src/utils/statistics.ts +5 -10
- package/src/utils/types.ts +3 -3
- package/src/viewers/logo-summary.ts +91 -112
- package/src/viewers/sar-viewer.ts +106 -108
- package/src/widgets/distribution.ts +92 -122
- package/src/widgets/mutation-cliffs.ts +2 -2
- package/src/widgets/peptides.ts +7 -2
- package/src/widgets/settings.ts +67 -23
- package/tsconfig.json +1 -1
package/dist/611.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";(self.webpackChunkpeptides=self.webpackChunkpeptides||[]).push([[611],{5697:(t,n,r)=>{function u(t,n){return g(function(t,n){const r=t.trueCount()+n.trueCount();if(0==r)return 1;const u=t.andWithCountBits(n,!0);return u/(r-u)}(t,n))}function e(t,n){return g(function(t,n){const r=t.trueCount()+n.trueCount();return 0==r?0:2*t.andWithCountBits(n,!0)/r}(t,n))}function o(t,n){return g(function(t,n){const r=t.trueCount()*n.trueCount();return 0==r?0:t.andWithCountBits(n,!0)/Math.sqrt(r)}(t,n))}function i(t,n){return Math.sqrt(t.trueCount()+n.trueCount()-2*t.andWithCountBits(n,!0))}function c(t,n){return t.trueCount()+n.trueCount()-2*t.andWithCountBits(n,!0)}function h(t,n){return g(function(t,n){const r=t.trueCount()+n.trueCount(),u=t.andWithCountBits(n,!0);return u/(2*r-3*u)}(t,n))}function a(t,n){return g(function(t,n){const r=t.trueCount()+n.trueCount(),u=t.trueCount()*n.trueCount();return 0==u?0:t.andWithCountBits(n,!0)*r/(2*u)}(t,n))}function f(t,n){return g(function(t,n){const r=t.trueCount()+n.trueCount(),u=t.trueCount()*n.trueCount();return 0==u?0:(t.andWithCountBits(n,!0)*r-u)/u}(t,n))}function s(t,n){return g(function(t,n){const r=Math.min(t.trueCount(),n.trueCount());return 0==r?0:t.andWithCountBits(n,!0)/r}(t,n))}function C(t,n){return g(function(t,n){const r=Math.max(t.trueCount(),n.trueCount());return 0==r?0:t.andWithCountBits(n,!0)/r}(t,n))}function l(t,n){return g(function(t,n){return 0==t.length?0:t.andWithCountBits(n,!0)/t.length}(t,n))}function d(t,n){return g(function(t,n){const r=t.andWithCountBits(n,!0),u=t.countBits(!0)+n.countBits(!0),e=t.length,o=e-u+r;return r==e||o==e?1:r/u+o/(2*e-u)}(t,n))}function g(t){return 1/t-1}r.d(n,{Dz:()=>C,KR:()=>u,MI:()=>d,NB:()=>h,UX:()=>c,WI:()=>i,Zd:()=>o,_h:()=>e,aW:()=>f,fX:()=>l,s:()=>a,yU:()=>s})},3659:(t,n,r)=>{r.d(n,{OW:()=>u});class u extends Float32Array{}},1811:(t,n,r)=>{r.d(n,{T:()=>e});const u=new Uint32Array(65536),e=(t,n)=>{if(t.length<n.length){const r=n;n=t,t=r}return 0===n.length?t.length:t.length<=32?((t,n)=>{const r=t.length,e=n.length,o=1<<r-1;let i=-1,c=0,h=r,a=r;for(;a--;)u[t.charCodeAt(a)]|=1<<a;for(a=0;a<e;a++){let t=u[n.charCodeAt(a)];const r=t|c;t|=(t&i)+i^i,c|=~(t|i),i&=t,c&o&&h++,i&o&&h--,c=c<<1|1,i=i<<1|~(r|c),c&=r}for(a=r;a--;)u[t.charCodeAt(a)]=0;return h})(t,n):((t,n)=>{const r=n.length,e=t.length,o=[],i=[],c=Math.ceil(r/32),h=Math.ceil(e/32);for(let t=0;t<c;t++)i[t]=-1,o[t]=0;let a=0;for(;a<h-1;a++){let c=0,h=-1;const f=32*a,s=Math.min(32,e)+f;for(let n=f;n<s;n++)u[t.charCodeAt(n)]|=1<<n;for(let t=0;t<r;t++){const r=u[n.charCodeAt(t)],e=i[t/32|0]>>>t&1,a=o[t/32|0]>>>t&1,f=r|c,s=((r|a)&h)+h^h|r|a;let C=c|~(s|h),l=h&s;C>>>31^e&&(i[t/32|0]^=1<<t),l>>>31^a&&(o[t/32|0]^=1<<t),C=C<<1|e,l=l<<1|a,h=l|~(f|C),c=C&f}for(let n=f;n<s;n++)u[t.charCodeAt(n)]=0}let f=0,s=-1;const C=32*a,l=Math.min(32,e-C)+C;for(let n=C;n<l;n++)u[t.charCodeAt(n)]|=1<<n;let d=e;for(let t=0;t<r;t++){const r=u[n.charCodeAt(t)],c=i[t/32|0]>>>t&1,h=o[t/32|0]>>>t&1,a=r|f,C=((r|h)&s)+s^s|r|h;let l=f|~(C|s),g=s&C;d+=l>>>e-1&1,d-=g>>>e-1&1,l>>>31^c&&(i[t/32|0]^=1<<t),g>>>31^h&&(o[t/32|0]^=1<<t),l=l<<1|c,g=g<<1|h,s=g|~(a|l),f=l&a}for(let n=C;n<l;n++)u[t.charCodeAt(n)]=0;return d})(t,n)}},3979:(t,n)=>{n.H$=void 0,n.H$=function(t,n,r){var u=function(t,n,r){if(0===t.length||0===n.length)return 0;if(r&&!r.caseSensitive&&(t=t.toUpperCase(),n=n.toUpperCase()),t===n)return 1;for(var u=0,e=t.length,o=n.length,i=Math.floor(Math.max(e,o)/2)-1,c=new Array(e),h=new Array(o),a=0;a<e;a++)for(var f=Math.max(0,a-i);f<=Math.min(o,a+i+1);f++)if(!c[a]&&!h[f]&&t[a]===n[f]){++u,c[a]=h[f]=!0;break}if(0===u)return 0;var s=0,C=0;for(a=0;a<e;a++)if(c[a]){for(;!h[C];)C++;t.charAt(a)!==n.charAt(C++)&&s++}return(u/e+u/o+(u-(s/=2))/u)/3}(t,n,r),e=0;if(u>.7){for(var o=Math.min(t.length,n.length),i=0;t[i]===n[i]&&i<4&&i<o;)++e,i++;u+=.1*e*(1-u)}return u}}}]);
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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LEVBQUluRCxLQUFLZ0IsSUFBSSxFQUFHeUIsRUFBSThCLEdBQVNwQixHQUFLbkQsS0FBS2EsSUFBSXlELEVBQU03QixFQUFJOEIsRUFBUyxHQUFJcEIsSUFDdkUsSUFBS3NCLEVBQVNoQyxLQUFPa0MsRUFBU3hCLElBQU1ZLEVBQUt0QixLQUFPdUIsRUFBS2IsR0FBSSxHQUNuRGYsRUFDRnFDLEVBQVNoQyxHQUFLa0MsRUFBU3hCLElBQUssRUFDNUIsS0FDSixDQUlSLEdBQVUsSUFBTmYsRUFDQSxPQUFPLEVBR1gsSUFBSXdDLEVBQUksRUFDSkMsRUFBUSxFQUNaLElBQVNwQyxFQUFJLEVBQUdBLEVBQUk0QixFQUFNNUIsSUFDdEIsR0FBSWdDLEVBQVNoQyxHQUFJLENBQ2IsTUFBUWtDLEVBQVNFLElBQ2JBLElBRUFkLEVBQUtlLE9BQU9yQyxLQUFPdUIsRUFBS2MsT0FBT0QsTUFDL0JELEdBRVIsQ0FHSixPQUFReEMsRUFBSWlDLEVBQU9qQyxFQUFJa0MsR0FBUWxDLEdBRC9Cd0MsR0FBSyxJQUNtQ3hDLEdBQUssQ0FDakQsQ0FVbUIyQyxDQUFLaEIsRUFBTUMsRUFBTUMsR0FFNUJlLEVBQVMsRUFDYixHQUFJZCxFQUFXLEdBQUssQ0FHaEIsSUFGQSxJQUFJZSxFQUFXakYsS0FBS2EsSUFBSWtELEVBQUs1QyxPQUFRNkMsRUFBSzdDLFFBQ3RDc0IsRUFBSSxFQUNEc0IsRUFBS3RCLEtBQU91QixFQUFLdkIsSUFBTUEsRUFBSSxHQUFLQSxFQUFJd0MsS0FDckNELEVBQ0Z2QyxJQUVKeUIsR0FBWSxHQUFNYyxHQUFVLEVBQUlkLEVBQ3BDLENBQ0EsT0FBT0EsQ0FDWCxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWV0cmljcy1tZXRob2RzLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL2Zhc3Rlc3QtbGV2ZW5zaHRlaW4vZXNtL21vZC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9qYXJvLXdpbmtsZXItdHlwZXNjcmlwdC9saWIvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNpbWlsYXJpdHlNZXRyaWMgPSB7XG4gICAgJ1Rhbmltb3RvJzogdGFuaW1vdG9TaW1pbGFyaXR5LFxuICAgICdEaWNlJzogZGljZVNpbWlsYXJpdHksXG4gICAgJ0FzeW1tZXRyaWMnOiBhc3ltbWV0cmljU2ltaWxhcml0eSxcbiAgICAnQnJhdW4tQmxhbnF1ZXQnOiBicmF1bkJsYW5xdWV0U2ltaWxhcml0eSxcbiAgICAnQ29zaW5lJzogY29zaW5lU2ltaWxhcml0eSxcbiAgICAnS3VsY3p5bnNraSc6IGt1bGN6eW5za2lTaW1pbGFyaXR5LFxuICAgICdNYy1Db25uYXVnaGV5JzogbWNDb25uYXVnaGV5U2ltaWxhcml0eSxcbiAgICAnUm9nb3QtR29sZGJlcmcnOiByb2dvdEdvbGRiZXJnU2ltaWxhcml0eSxcbiAgICAnUnVzc2VsJzogcnVzc2VsU2ltaWxhcml0eSxcbiAgICAnU29rYWwnOiBzb2thbFNpbWlsYXJpdHksXG4gICAgJ0hhbW1pbmcnOiBoYW1taW5nU2ltaWxhcml0eSxcbiAgICAnRXVjbGlkZWFuJzogZXVjbGlkZWFuU2ltaWxhcml0eSxcbn07XG5leHBvcnQgY29uc3QgZGlzdGFuY2VNZXRyaWNzID0ge1xuICAgICdUYW5pbW90byc6IHRhbmltb3RvRGlzdGFuY2UsXG4gICAgJ0RpY2UnOiBkaWNlRGlzdGFuY2UsXG4gICAgJ0FzeW1tZXRyaWMnOiBhc3ltbWV0cmljRGlzdGFuY2UsXG4gICAgJ0JyYXVuLUJsYW5xdWV0JzogYnJhdW5CbGFucXVldERpc3RhbmNlLFxuICAgICdDb3NpbmUnOiBjb3NpbmVEaXN0YW5jZSxcbiAgICAnS3VsY3p5bnNraSc6IGt1bGN6eW5za2lEaXN0YW5jZSxcbiAgICAnTWMtQ29ubmF1Z2hleSc6IG1jQ29ubmF1Z2hleURpc3RhbmNlLFxuICAgICdSb2dvdC1Hb2xkYmVyZyc6IHJvZ290R29sZGJlcmdEaXN0YW5jZSxcbiAgICAnUnVzc2VsJzogcnVzc2VsRGlzdGFuY2UsXG4gICAgJ1Nva2FsJzogc29rYWxEaXN0YW5jZSxcbiAgICAnSGFtbWluZyc6IGhhbW1pbmdEaXN0YW5jZSxcbiAgICAnRXVjbGlkZWFuJzogZXVjbGlkZWFuRGlzdGFuY2UsXG59O1xuZXhwb3J0IGNvbnN0IENIRU1fU0lNSUxBUklUWV9NRVRSSUNTID0gWydUYW5pbW90bycsICdEaWNlJywgJ0Nvc2luZScsICdIYW1taW5nJywgJ0V1Y2xpZGVhbiddO1xuZXhwb3J0IGZ1bmN0aW9uIHRhbmltb3RvU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWwgPT0gMClcbiAgICAgICAgcmV0dXJuIDEuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvICh0b3RhbCAtIGNvbW1vbik7XG59XG5leHBvcnQgZnVuY3Rpb24gdGFuaW1vdG9EaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkodGFuaW1vdG9TaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkaWNlU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWwgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIDIgKiBjb21tb24gLyB0b3RhbDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkaWNlRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGRpY2VTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjb3NpbmVTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKiB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gTWF0aC5zcXJ0KHRvdGFsKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjb3NpbmVEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoY29zaW5lU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZXVjbGlkZWFuU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZXVjbGlkZWFuRGlzdGFuY2UoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGV1Y2xpZGVhbkRpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpIC0gMiAqIHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaGFtbWluZ1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIHJldHVybiBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGhhbW1pbmdEaXN0YW5jZSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaGFtbWluZ0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCkgLSAyICogeC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNva2FsU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvICgyICogdG90YWwgLSAzICogY29tbW9uKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzb2thbERpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShzb2thbFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGt1bGN6eW5za2lTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGNvbnN0IHRvdGFsUHJvZCA9IHgudHJ1ZUNvdW50KCkgKiB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbFByb2QgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIChjb21tb24gKiB0b3RhbCkgLyAoMiAqIHRvdGFsUHJvZCk7XG59XG5leHBvcnQgZnVuY3Rpb24ga3VsY3p5bnNraURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShrdWxjenluc2tpU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gbWNDb25uYXVnaGV5U2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBjb25zdCB0b3RhbFByb2QgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWxQcm9kID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAoY29tbW9uICogdG90YWwgLSB0b3RhbFByb2QpIC8gdG90YWxQcm9kO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1jQ29ubmF1Z2hleURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShtY0Nvbm5hdWdoZXlTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhc3ltbWV0cmljU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgbWluID0gTWF0aC5taW4oeC50cnVlQ291bnQoKSwgeS50cnVlQ291bnQoKSk7XG4gICAgaWYgKG1pbiA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gbWluO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFzeW1tZXRyaWNEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoYXN5bW1ldHJpY1NpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJyYXVuQmxhbnF1ZXRTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCh4LnRydWVDb3VudCgpLCB5LnRydWVDb3VudCgpKTtcbiAgICBpZiAobWF4ID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyBtYXg7XG59XG5leHBvcnQgZnVuY3Rpb24gYnJhdW5CbGFucXVldERpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShicmF1bkJsYW5xdWV0U2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcnVzc2VsU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgaWYgKHgubGVuZ3RoID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyB4Lmxlbmd0aDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBydXNzZWxEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkocnVzc2VsU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICBjb25zdCB0b3RhbCA9IHguY291bnRCaXRzKHRydWUpICsgeS5jb3VudEJpdHModHJ1ZSk7XG4gICAgY29uc3QgbGVuID0geC5sZW5ndGg7XG4gICAgY29uc3QgZGlmZiA9IGxlbiAtIHRvdGFsICsgY29tbW9uO1xuICAgIGlmICgoY29tbW9uID09IGxlbikgfHwgKGRpZmYgPT0gbGVuKSlcbiAgICAgICAgcmV0dXJuIDEuMDtcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBjb21tb24gLyB0b3RhbCArIGRpZmYgLyAoMiAqIGxlbiAtIHRvdGFsKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByb2dvdEdvbGRiZXJnRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHJvZ290R29sZGJlcmdTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGRpc3RhbmNlKSB7XG4gICAgcmV0dXJuIDEgLyAoMSArIGRpc3RhbmNlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHNpbWlsYXJpdHkpIHtcbiAgICByZXR1cm4gMSAvIHNpbWlsYXJpdHkgLSAxO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdsemRHRnVZMlV0YldWMGNtbGpjeTF0WlhSb2IyUnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaVpHbHpkR0Z1WTJVdGJXVjBjbWxqY3kxdFpYUm9iMlJ6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVVkJMRTFCUVUwc1EwRkJReXhOUVVGTkxHZENRVUZuUWl4SFFVRTJSRHRKUVVONFJpeFZRVUZWTEVWQlFVVXNhMEpCUVd0Q08wbEJRemxDTEUxQlFVMHNSVUZCUlN4alFVRmpPMGxCUTNSQ0xGbEJRVmtzUlVGQlJTeHZRa0ZCYjBJN1NVRkRiRU1zWjBKQlFXZENMRVZCUVVVc2RVSkJRWFZDTzBsQlEzcERMRkZCUVZFc1JVRkJSU3huUWtGQlowSTdTVUZETVVJc1dVRkJXU3hGUVVGRkxHOUNRVUZ2UWp0SlFVTnNReXhsUVVGbExFVkJRVVVzYzBKQlFYTkNPMGxCUTNaRExHZENRVUZuUWl4RlFVRkZMSFZDUVVGMVFqdEpRVU42UXl4UlFVRlJMRVZCUVVVc1owSkJRV2RDTzBsQlF6RkNMRTlCUVU4c1JVRkJSU3hsUVVGbE8wbEJRM2hDTEZOQlFWTXNSVUZCUlN4cFFrRkJhVUk3U1VGRE5VSXNWMEZCVnl4RlFVRkZMRzFDUVVGdFFqdERRVU5xUXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hEUVVGRExFMUJRVTBzWlVGQlpTeEhRVUUyUkR0SlFVTjJSaXhWUVVGVkxFVkJRVVVzWjBKQlFXZENPMGxCUXpWQ0xFMUJRVTBzUlVGQlJTeFpRVUZaTzBsQlEzQkNMRmxCUVZrc1JVRkJSU3hyUWtGQmEwSTdTVUZEYUVNc1owSkJRV2RDTEVWQlFVVXNjVUpCUVhGQ08wbEJRM1pETEZGQlFWRXNSVUZCUlN4alFVRmpPMGxCUTNoQ0xGbEJRVmtzUlVGQlJTeHJRa0ZCYTBJN1NVRkRhRU1zWlVGQlpTeEZRVUZGTEc5Q1FVRnZRanRKUVVOeVF5eG5Ra0ZCWjBJc1JVRkJSU3h4UWtGQmNVSTdTVUZEZGtNc1VVRkJVU3hGUVVGRkxHTkJRV003U1VGRGVFSXNUMEZCVHl4RlFVRkZMR0ZCUVdFN1NVRkRkRUlzVTBGQlV5eEZRVUZGTEdWQlFXVTdTVUZETVVJc1YwRkJWeXhGUVVGRkxHbENRVUZwUWp0RFFVTXZRaXhEUVVGRE8wRkJSVVlzVFVGQlRTeERRVUZETEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzUTBGQlF5eFZRVUZWTEVWQlFVVXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdRVUZGT1VZc1RVRkJUU3hWUVVGVkxHdENRVUZyUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM3BFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zU1VGQlNTeExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVRkZMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wTXNUMEZCVHl4TlFVRk5MRWRCUVVjc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTTdRVUZEYmtNc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU4yUkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpkRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNZMEZCWXl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM0pFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zU1VGQlNTeExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVRkZMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF6dEJRVU0xUWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxGbEJRVmtzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTnVSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzWkVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE5VTXNTVUZCU1N4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVGRkxFOUJRVThzUjBGQlJ5eERRVUZETzBsQlF6TkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVOdVF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU55UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpORUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZETVVRc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNMVJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2xDUVVGcFFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNoRUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEY0VZc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHBRa0ZCYVVJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU40UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU14UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHVkJRV1VzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjBSQ3hQUVVGUExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRla1VzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4bFFVRmxMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRFUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVNMVF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRek5ETEU5QlFVOHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNN1FVRkRNME1zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGNFUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE1VUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h2UWtGQmIwSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNelJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUXpWRExFMUJRVTBzVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZEYUVRc1NVRkJTU3hUUVVGVExFbEJRVWtzUTBGQlF6dFJRVUZGTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUXk5Q0xFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNME1zVDBGQlR5eERRVUZETEUxQlFVMHNSMEZCUnl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXp0QlFVTTFReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEd0Q1FVRnJRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzcEVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRMMFFzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4elFrRkJjMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTTNSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlF6VkRMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRGFFUXNTVUZCU1N4VFFVRlRMRWxCUVVrc1EwRkJRenRSUVVGRkxFOUJRVThzUjBGQlJ5eERRVUZETzBsQlF5OUNMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhEUVVGRExFMUJRVTBzUjBGQlJ5eExRVUZMTEVkQlFVY3NVMEZCVXl4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRE8wRkJRMnhFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2IwSkJRVzlDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRNMFFzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5xUlN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHOUNRVUZ2UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRek5FTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlEyNUVMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGQlJTeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTjZRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpORExFOUJRVThzVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXp0QlFVTjBRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEd0Q1FVRnJRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzcEVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRMMFFzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4MVFrRkJkVUlzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTTVSQ3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVOdVJDeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUVVVc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRGVrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGRFSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h4UWtGQmNVSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNMVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeEZMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRrUXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU03VVVGQlJTeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTTVRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpORExFOUJRVThzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1FVRkRNMElzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4alFVRmpMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGNrUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXpSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhWQ1FVRjFRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlF6bEVMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1RVRkJUU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTNCRUxFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRja0lzVFVGQlRTeEpRVUZKTEVkQlFVY3NSMEZCUnl4SFFVRkhMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRGJFTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNN1VVRkJSU3hQUVVGUExFZEJRVWNzUTBGQlF6czdVVUZETlVNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUzBGQlN5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTTdRVUZEZUVRc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHhRa0ZCY1VJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU0xUkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJ4RkxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNlVUpCUVhsQ0xFTkJRVU1zVVVGQlowSTdTVUZEZUVRc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNN1FVRkROVUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4NVFrRkJlVUlzUTBGQlF5eFZRVUZyUWp0SlFVTXhSQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUXpWQ0xFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnUW1sMFFYSnlZWGtnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12WW1sMExXRnljbUY1Snp0Y2JseHVaWGh3YjNKMElHTnZibk4wSUhOcGJXbHNZWEpwZEhsTlpYUnlhV002SUhzZ1cyNWhiV1U2SUhOMGNtbHVaMTA2SUNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwSUQwK0lHNTFiV0psY2lCOUlEMGdlMXh1SUNBblZHRnVhVzF2ZEc4bk9pQjBZVzVwYlc5MGIxTnBiV2xzWVhKcGRIa3NYRzRnSUNkRWFXTmxKem9nWkdsalpWTnBiV2xzWVhKcGRIa3NYRzRnSUNkQmMzbHRiV1YwY21sakp6b2dZWE41YlcxbGRISnBZMU5wYldsc1lYSnBkSGtzWEc0Z0lDZENjbUYxYmkxQ2JHRnVjWFZsZENjNklHSnlZWFZ1UW14aGJuRjFaWFJUYVcxcGJHRnlhWFI1TEZ4dUlDQW5RMjl6YVc1bEp6b2dZMjl6YVc1bFUybHRhV3hoY21sMGVTeGNiaUFnSjB0MWJHTjZlVzV6YTJrbk9pQnJkV3hqZW5sdWMydHBVMmx0YVd4aGNtbDBlU3hjYmlBZ0owMWpMVU52Ym01aGRXZG9aWGtuT2lCdFkwTnZibTVoZFdkb1pYbFRhVzFwYkdGeWFYUjVMRnh1SUNBblVtOW5iM1F0UjI5c1pHSmxjbWNuT2lCeWIyZHZkRWR2YkdSaVpYSm5VMmx0YVd4aGNtbDBlU3hjYmlBZ0oxSjFjM05sYkNjNklISjFjM05sYkZOcGJXbHNZWEpwZEhrc1hHNGdJQ2RUYjJ0aGJDYzZJSE52YTJGc1UybHRhV3hoY21sMGVTeGNiaUFnSjBoaGJXMXBibWNuT2lCb1lXMXRhVzVuVTJsdGFXeGhjbWwwZVN4Y2JpQWdKMFYxWTJ4cFpHVmhiaWM2SUdWMVkyeHBaR1ZoYmxOcGJXbHNZWEpwZEhrc1hHNTlPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdaR2x6ZEdGdVkyVk5aWFJ5YVdOek9pQjdJRnR1WVcxbE9pQnpkSEpwYm1kZE9pQW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtTQTlQaUJ1ZFcxaVpYSWdmU0E5SUh0Y2JpQWdKMVJoYm1sdGIzUnZKem9nZEdGdWFXMXZkRzlFYVhOMFlXNWpaU3hjYmlBZ0owUnBZMlVuT2lCa2FXTmxSR2x6ZEdGdVkyVXNYRzRnSUNkQmMzbHRiV1YwY21sakp6b2dZWE41YlcxbGRISnBZMFJwYzNSaGJtTmxMRnh1SUNBblFuSmhkVzR0UW14aGJuRjFaWFFuT2lCaWNtRjFia0pzWVc1eGRXVjBSR2x6ZEdGdVkyVXNYRzRnSUNkRGIzTnBibVVuT2lCamIzTnBibVZFYVhOMFlXNWpaU3hjYmlBZ0owdDFiR042ZVc1emEya25PaUJyZFd4amVubHVjMnRwUkdsemRHRnVZMlVzWEc0Z0lDZE5ZeTFEYjI1dVlYVm5hR1Y1SnpvZ2JXTkRiMjV1WVhWbmFHVjVSR2x6ZEdGdVkyVXNYRzRnSUNkU2IyZHZkQzFIYjJ4a1ltVnlaeWM2SUhKdloyOTBSMjlzWkdKbGNtZEVhWE4wWVc1alpTeGNiaUFnSjFKMWMzTmxiQ2M2SUhKMWMzTmxiRVJwYzNSaGJtTmxMRnh1SUNBblUyOXJZV3duT2lCemIydGhiRVJwYzNSaGJtTmxMRnh1SUNBblNHRnRiV2x1WnljNklHaGhiVzFwYm1kRWFYTjBZVzVqWlN4Y2JpQWdKMFYxWTJ4cFpHVmhiaWM2SUdWMVkyeHBaR1ZoYmtScGMzUmhibU5sTEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFTklSVTFmVTBsTlNVeEJVa2xVV1Y5TlJWUlNTVU5USUQwZ1d5ZFVZVzVwYlc5MGJ5Y3NJQ2RFYVdObEp5d2dKME52YzJsdVpTY3NJQ2RJWVcxdGFXNW5KeXdnSjBWMVkyeHBaR1ZoYmlkZE8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkR0Z1YVcxdmRHOVRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHbG1JQ2gwYjNSaGJDQTlQU0F3S1NCeVpYUjFjbTRnTVM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUJqYjIxdGIyNGdMeUFvZEc5MFlXd2dMU0JqYjIxdGIyNHBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RHRnVhVzF2ZEc5RWFYTjBZVzVqWlNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnlaWFIxY200Z1oyVjBSR2x6ZEdGdVkyVkdjbTl0VTJsdGFXeGhjbWwwZVNoMFlXNXBiVzkwYjFOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaR2xqWlZOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ2RHOTBZV3dnUFNCNExuUnlkV1ZEYjNWdWRDZ3BJQ3NnZVM1MGNuVmxRMjkxYm5Rb0tUdGNiaUFnYVdZZ0tIUnZkR0ZzSUQwOUlEQXBJSEpsZEhWeWJpQXdMakE3WEc0Z0lHTnZibk4wSUdOdmJXMXZiaUE5SUhndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1R0Y2JpQWdjbVYwZFhKdUlESWdLaUJqYjIxdGIyNGdMeUIwYjNSaGJEdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdScFkyVkVhWE4wWVc1alpTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdaMlYwUkdsemRHRnVZMlZHY205dFUybHRhV3hoY21sMGVTaGthV05sVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmpiM05wYm1WVGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2VDNTBjblZsUTI5MWJuUW9LU0FxSUhrdWRISjFaVU52ZFc1MEtDazdYRzRnSUdsbUlDaDBiM1JoYkNBOVBTQXdLU0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5Qk5ZWFJvTG5OeGNuUW9kRzkwWVd3cE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTI5emFXNWxSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZMjl6YVc1bFUybHRhV3hoY21sMGVTaDRMQ0I1S1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJsZFdOc2FXUmxZVzVUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUlRhVzFwYkdGeWFYUjVSbkp2YlVScGMzUmhibU5sS0dWMVkyeHBaR1ZoYmtScGMzUmhibU5sS0hnc0lIa3BLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHVjFZMnhwWkdWaGJrUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQk5ZWFJvTG5OeGNuUW9lQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2tnTFNBeUlDb2dlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHaGhiVzFwYm1kVGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJUYVcxcGJHRnlhWFI1Um5KdmJVUnBjM1JoYm1ObEtHaGhiVzFwYm1kRWFYTjBZVzVqWlNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm9ZVzF0YVc1blJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS3lCNUxuUnlkV1ZEYjNWdWRDZ3BJQzBnTWlBcUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOdmEyRnNVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0t5QjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QW9NaUFxSUhSdmRHRnNJQzBnTXlBcUlHTnZiVzF2YmlrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6YjJ0aGJFUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtITnZhMkZzVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnJkV3hqZW5sdWMydHBVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0t5QjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQmpiMjV6ZENCMGIzUmhiRkJ5YjJRZ1BTQjRMblJ5ZFdWRGIzVnVkQ2dwSUNvZ2VTNTBjblZsUTI5MWJuUW9LVHRjYmlBZ2FXWWdLSFJ2ZEdGc1VISnZaQ0E5UFNBd0tTQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlBb1kyOXRiVzl1SUNvZ2RHOTBZV3dwSUM4Z0tESWdLaUIwYjNSaGJGQnliMlFwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhM1ZzWTNwNWJuTnJhVVJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLR3QxYkdONmVXNXphMmxUYVcxcGJHRnlhWFI1S0hnc0lIa3BLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHMWpRMjl1Ym1GMVoyaGxlVk5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnZEc5MFlXd2dQU0I0TG5SeWRXVkRiM1Z1ZENncElDc2dlUzUwY25WbFEyOTFiblFvS1R0Y2JpQWdZMjl1YzNRZ2RHOTBZV3hRY205a0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcUlIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHbG1JQ2gwYjNSaGJGQnliMlFnUFQwZ01Da2djbVYwZFhKdUlEQXVNRHRjYmlBZ1kyOXVjM1FnWTI5dGJXOXVJRDBnZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dUlDQnlaWFIxY200Z0tHTnZiVzF2YmlBcUlIUnZkR0ZzSUMwZ2RHOTBZV3hRY205a0tTQXZJSFJ2ZEdGc1VISnZaRHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHMWpRMjl1Ym1GMVoyaGxlVVJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLRzFqUTI5dWJtRjFaMmhsZVZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWE41YlcxbGRISnBZMU5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnYldsdUlEMGdUV0YwYUM1dGFXNG9lQzUwY25WbFEyOTFiblFvS1N3Z2VTNTBjblZsUTI5MWJuUW9LU2s3WEc0Z0lHbG1JQ2h0YVc0Z1BUMGdNQ2tnY21WMGRYSnVJREF1TUR0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0J5WlhSMWNtNGdZMjl0Ylc5dUlDOGdiV2x1TzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWE41YlcxbGRISnBZMFJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLR0Z6ZVcxdFpYUnlhV05UYVcxcGJHRnlhWFI1S0hnc0lIa3BLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHSnlZWFZ1UW14aGJuRjFaWFJUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUcxaGVDQTlJRTFoZEdndWJXRjRLSGd1ZEhKMVpVTnZkVzUwS0Nrc0lIa3VkSEoxWlVOdmRXNTBLQ2twTzF4dUlDQnBaaUFvYldGNElEMDlJREFwSUhKbGRIVnliaUF3TGpBN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJRzFoZUR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR0p5WVhWdVFteGhibkYxWlhSRWFYTjBZVzVqWlNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnlaWFIxY200Z1oyVjBSR2x6ZEdGdVkyVkdjbTl0VTJsdGFXeGhjbWwwZVNoaWNtRjFia0pzWVc1eGRXVjBVMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeWRYTnpaV3hUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHbG1JQ2g0TG14bGJtZDBhQ0E5UFNBd0tTQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCNExteGxibWQwYUR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEoxYzNObGJFUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtISjFjM05sYkZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbTluYjNSSGIyeGtZbVZ5WjFOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VZMjkxYm5SQ2FYUnpLSFJ5ZFdVcElDc2dlUzVqYjNWdWRFSnBkSE1vZEhKMVpTazdYRzRnSUdOdmJuTjBJR3hsYmlBOUlIZ3ViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQmthV1ptSUQwZ2JHVnVJQzBnZEc5MFlXd2dLeUJqYjIxdGIyNDdYRzRnSUdsbUlDZ29ZMjl0Ylc5dUlEMDlJR3hsYmlrZ2ZId2dLR1JwWm1ZZ1BUMGdiR1Z1S1NrZ2NtVjBkWEp1SURFdU1EdGNiaUFnWld4elpTQnlaWFIxY200Z1kyOXRiVzl1SUM4Z2RHOTBZV3dnS3lCa2FXWm1JQzhnS0RJZ0tpQnNaVzRnTFNCMGIzUmhiQ2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnliMmR2ZEVkdmJHUmlaWEpuUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvY205bmIzUkhiMnhrWW1WeVoxTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFUybHRhV3hoY21sMGVVWnliMjFFYVhOMFlXNWpaU2hrYVhOMFlXNWpaVG9nYm5WdFltVnlLU0I3WEc0Z0lISmxkSFZ5YmlBeElDOGdLREVnS3lCa2FYTjBZVzVqWlNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLSE5wYldsc1lYSnBkSGs2SUc1MWJXSmxjaWtnZTF4dUlDQnlaWFIxY200Z01TQXZJSE5wYldsc1lYSnBkSGtnTFNBeE8xeHVmVnh1SWwxOSIsIi8qKlxuICogRGVub3RlcyBhIHZlY3RvciBvZiBmbG9hdGluZyBwb2l0IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yXG4gKiBAZXh0ZW5kcyB7RmxvYXQzMkFycmF5fVxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yIGV4dGVuZHMgRmxvYXQzMkFycmF5IHtcbn1cbi8qKlxuICogRGVub3RlcyBhIHR3by1kaW1lbnNpb25hbCBtYXRyaXguXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIE1hdHJpeFxuICogQGV4dGVuZHMge0FycmF5PFZlY3Rvcj59XG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRyaXggZXh0ZW5kcyBBcnJheSB7XG59XG4vKipcbiAqIERlbm90ZXMgY2FydGVzaWFuIGNvb3JkaW5hdGVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb29yZGluYXRlc1xuICogQGV4dGVuZHMge01hdHJpeH1cbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGVzIGV4dGVuZHMgTWF0cml4IHtcbn1cbi8qKlxuICogRGVub3RlcyBhbiBhcnJheSBvZiBhcmJpdHJhcnktdHlwZWQgdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yc1xuICogQGV4dGVuZHMge0FycmF5PGFueT59XG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JzIGV4dGVuZHMgQXJyYXkge1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pTMWtaV05zWVhKaGRHbHZibk11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVFVGQlR5eFRRVUZSTEZsQlFWazdRMEZCUnp0QlFVVXpRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUVUZCVHl4VFFVRlJMRXRCUVdFN1EwRkJSenRCUVVVMVF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1YwRkJXU3hUUVVGUkxFMUJRVTA3UTBGQlJ6dEJRVVV4UXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVDBGQlVTeFRRVUZSTEV0QlFWVTdRMEZCUnlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElIWmxZM1J2Y2lCdlppQm1iRzloZEdsdVp5QndiMmwwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQVkyeGhjM01nVm1WamRHOXlYRzRnS2lCQVpYaDBaVzVrY3lCN1JteHZZWFF6TWtGeWNtRjVmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1WamRHOXlJR1Y0ZEdWdVpITWdSbXh2WVhRek1rRnljbUY1SUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFIzYnkxa2FXMWxibk5wYjI1aGJDQnRZWFJ5YVhndVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRR05zWVhOeklFMWhkSEpwZUZ4dUlDb2dRR1Y0ZEdWdVpITWdlMEZ5Y21GNVBGWmxZM1J2Y2o1OVhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk5ZWFJ5YVhnZ1pYaDBaVzVrY3lCQmNuSmhlVHhXWldOMGIzSStJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCallYSjBaWE5wWVc0Z1kyOXZjbVJwYm1GMFpYTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRU52YjNKa2FXNWhkR1Z6WEc0Z0tpQkFaWGgwWlc1a2N5QjdUV0YwY21sNGZWeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdRMjl2Y21ScGJtRjBaWE1nWlhoMFpXNWtjeUJOWVhSeWFYZ2dlMzFjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdGdUlHRnljbUY1SUc5bUlHRnlZbWwwY21GeWVTMTBlWEJsWkNCMlpXTjBiM0p6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQmpiR0Z6Y3lCV1pXTjBiM0p6WEc0Z0tpQkFaWGgwWlc1a2N5QjdRWEp5WVhrOFlXNTVQbjFjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZabFkzUnZjbk1nWlhoMFpXNWtjeUJCY25KaGVUeGhibmsrSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJR1JwWTNScGIyNWhjbmtnWTI5dWRHRnBibWx1WnlCbWRXNWpkR2x2YmlCdmNIUnBiMjV6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQjBlWEJsSUU5d2RHbHZibk5jYmlBcUwxeHVaWGh3YjNKMElIUjVjR1VnVDNCMGFXOXVjeUE5SUh0YmJtRnRaVG9nYzNSeWFXNW5YVG9nWVc1NWZUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR04xYzNSdmJTQmthWE4wWVc1alpTQnRaWFJ5YVdNZ1ltVjBkMlZsYmlCMGFHVWdkSGR2SUdkcGRtVnVJSFpsWTNSdmNuTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhSNWNHVWdSR2x6ZEdGdVkyVk5aWFJ5YVdOY2JpQXFJRUJ3WVhKaGJTQjdZVzU1ZlNCMk1TQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRoYm5sOUlIWXlJRlJvWlNCelpXTnZibVFnZG1WamRHOXlMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCRWFYTjBZVzVqWlNCaVpYUjNaV1Z1SUhSb1pYTmxJSFIzYnlCMlpXTjBiM0p6TGx4dUlDb3ZYRzVsZUhCdmNuUWdkSGx3WlNCRWFYTjBZVzVqWlUxbGRISnBZeUE5SUNoMk1Ub2dZVzU1TENCMk1qb2dZVzU1S1NBOVBpQW9iblZ0WW1WeUtUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR0VnYzJsdGNHeGxJSE4wY21sdVp5QjBieUJ6ZEhKcGJtY2daR2xqZEdsdmJtRnllUzVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWRIbHdaU0JUZEhKcGJtZEVhV04wYVc5dVlYSjVYRzRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0I3VzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1bmZUdGNiaUpkZlE9PSIsImNvbnN0IHBlcSA9IG5ldyBVaW50MzJBcnJheSgweDEwMDAwKTtcbmNvbnN0IG15ZXJzXzMyID0gKGEsIGIpID0+IHtcbiAgICBjb25zdCBuID0gYS5sZW5ndGg7XG4gICAgY29uc3QgbSA9IGIubGVuZ3RoO1xuICAgIGNvbnN0IGxzdCA9IDEgPDwgKG4gLSAxKTtcbiAgICBsZXQgcHYgPSAtMTtcbiAgICBsZXQgbXYgPSAwO1xuICAgIGxldCBzYyA9IG47XG4gICAgbGV0IGkgPSBuO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgcGVxW2EuY2hhckNvZGVBdChpKV0gfD0gMSA8PCBpO1xuICAgIH1cbiAgICBmb3IgKGkgPSAwOyBpIDwgbTsgaSsrKSB7XG4gICAgICAgIGxldCBlcSA9IHBlcVtiLmNoYXJDb2RlQXQoaSldO1xuICAgICAgICBjb25zdCB4diA9IGVxIHwgbXY7XG4gICAgICAgIGVxIHw9ICgoZXEgJiBwdikgKyBwdikgXiBwdjtcbiAgICAgICAgbXYgfD0gfihlcSB8IHB2KTtcbiAgICAgICAgcHYgJj0gZXE7XG4gICAgICAgIGlmIChtdiAmIGxzdCkge1xuICAgICAgICAgICAgc2MrKztcbiAgICAgICAgfVxuICAgICAgICBpZiAocHYgJiBsc3QpIHtcbiAgICAgICAgICAgIHNjLS07XG4gICAgICAgIH1cbiAgICAgICAgbXYgPSAobXYgPDwgMSkgfCAxO1xuICAgICAgICBwdiA9IChwdiA8PCAxKSB8IH4oeHYgfCBtdik7XG4gICAgICAgIG12ICY9IHh2O1xuICAgIH1cbiAgICBpID0gbjtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIHBlcVthLmNoYXJDb2RlQXQoaSldID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIHNjO1xufTtcbmNvbnN0IG15ZXJzX3ggPSAoYiwgYSkgPT4ge1xuICAgIGNvbnN0IG4gPSBhLmxlbmd0aDtcbiAgICBjb25zdCBtID0gYi5sZW5ndGg7XG4gICAgY29uc3QgbWhjID0gW107XG4gICAgY29uc3QgcGhjID0gW107XG4gICAgY29uc3QgaHNpemUgPSBNYXRoLmNlaWwobiAvIDMyKTtcbiAgICBjb25zdCB2c2l6ZSA9IE1hdGguY2VpbChtIC8gMzIpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaHNpemU7IGkrKykge1xuICAgICAgICBwaGNbaV0gPSAtMTtcbiAgICAgICAgbWhjW2ldID0gMDtcbiAgICB9XG4gICAgbGV0IGogPSAwO1xuICAgIGZvciAoOyBqIDwgdnNpemUgLSAxOyBqKyspIHtcbiAgICAgICAgbGV0IG12ID0gMDtcbiAgICAgICAgbGV0IHB2ID0gLTE7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gaiAqIDMyO1xuICAgICAgICBjb25zdCB2bGVuID0gTWF0aC5taW4oMzIsIG0pICsgc3RhcnQ7XG4gICAgICAgIGZvciAobGV0IGsgPSBzdGFydDsgayA8IHZsZW47IGsrKykge1xuICAgICAgICAgICAgcGVxW2IuY2hhckNvZGVBdChrKV0gfD0gMSA8PCBrO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBlcSA9IHBlcVthLmNoYXJDb2RlQXQoaSldO1xuICAgICAgICAgICAgY29uc3QgcGIgPSAocGhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgICAgICAgIGNvbnN0IG1iID0gKG1oY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgICAgICAgICBjb25zdCB4diA9IGVxIHwgbXY7XG4gICAgICAgICAgICBjb25zdCB4aCA9ICgoKChlcSB8IG1iKSAmIHB2KSArIHB2KSBeIHB2KSB8IGVxIHwgbWI7XG4gICAgICAgICAgICBsZXQgcGggPSBtdiB8IH4oeGggfCBwdik7XG4gICAgICAgICAgICBsZXQgbWggPSBwdiAmIHhoO1xuICAgICAgICAgICAgaWYgKChwaCA+Pj4gMzEpIF4gcGIpIHtcbiAgICAgICAgICAgICAgICBwaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKG1oID4+PiAzMSkgXiBtYikge1xuICAgICAgICAgICAgICAgIG1oY1soaSAvIDMyKSB8IDBdIF49IDEgPDwgaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBoID0gKHBoIDw8IDEpIHwgcGI7XG4gICAgICAgICAgICBtaCA9IChtaCA8PCAxKSB8IG1iO1xuICAgICAgICAgICAgcHYgPSBtaCB8IH4oeHYgfCBwaCk7XG4gICAgICAgICAgICBtdiA9IHBoICYgeHY7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgdmxlbjsgaysrKSB7XG4gICAgICAgICAgICBwZXFbYi5jaGFyQ29kZUF0KGspXSA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbGV0IG12ID0gMDtcbiAgICBsZXQgcHYgPSAtMTtcbiAgICBjb25zdCBzdGFydCA9IGogKiAzMjtcbiAgICBjb25zdCB2bGVuID0gTWF0aC5taW4oMzIsIG0gLSBzdGFydCkgKyBzdGFydDtcbiAgICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCB2bGVuOyBrKyspIHtcbiAgICAgICAgcGVxW2IuY2hhckNvZGVBdChrKV0gfD0gMSA8PCBrO1xuICAgIH1cbiAgICBsZXQgc2NvcmUgPSBtO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGVxID0gcGVxW2EuY2hhckNvZGVBdChpKV07XG4gICAgICAgIGNvbnN0IHBiID0gKHBoY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgICAgIGNvbnN0IG1iID0gKG1oY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgICAgIGNvbnN0IHh2ID0gZXEgfCBtdjtcbiAgICAgICAgY29uc3QgeGggPSAoKCgoZXEgfCBtYikgJiBwdikgKyBwdikgXiBwdikgfCBlcSB8IG1iO1xuICAgICAgICBsZXQgcGggPSBtdiB8IH4oeGggfCBwdik7XG4gICAgICAgIGxldCBtaCA9IHB2ICYgeGg7XG4gICAgICAgIHNjb3JlICs9IChwaCA+Pj4gKG0gLSAxKSkgJiAxO1xuICAgICAgICBzY29yZSAtPSAobWggPj4+IChtIC0gMSkpICYgMTtcbiAgICAgICAgaWYgKChwaCA+Pj4gMzEpIF4gcGIpIHtcbiAgICAgICAgICAgIHBoY1soaSAvIDMyKSB8IDBdIF49IDEgPDwgaTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKG1oID4+PiAzMSkgXiBtYikge1xuICAgICAgICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgICB9XG4gICAgICAgIHBoID0gKHBoIDw8IDEpIHwgcGI7XG4gICAgICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgICAgIHB2ID0gbWggfCB+KHh2IHwgcGgpO1xuICAgICAgICBtdiA9IHBoICYgeHY7XG4gICAgfVxuICAgIGZvciAobGV0IGsgPSBzdGFydDsgayA8IHZsZW47IGsrKykge1xuICAgICAgICBwZXFbYi5jaGFyQ29kZUF0KGspXSA9IDA7XG4gICAgfVxuICAgIHJldHVybiBzY29yZTtcbn07XG5jb25zdCBkaXN0YW5jZSA9IChhLCBiKSA9PiB7XG4gICAgaWYgKGEubGVuZ3RoIDwgYi5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdG1wID0gYjtcbiAgICAgICAgYiA9IGE7XG4gICAgICAgIGEgPSB0bXA7XG4gICAgfVxuICAgIGlmIChiLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gYS5sZW5ndGg7XG4gICAgfVxuICAgIGlmIChhLmxlbmd0aCA8PSAzMikge1xuICAgICAgICByZXR1cm4gbXllcnNfMzIoYSwgYik7XG4gICAgfVxuICAgIHJldHVybiBteWVyc194KGEsIGIpO1xufTtcbmNvbnN0IGNsb3Nlc3QgPSAoc3RyLCBhcnIpID0+IHtcbiAgICBsZXQgbWluX2Rpc3RhbmNlID0gSW5maW5pdHk7XG4gICAgbGV0IG1pbl9pbmRleCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZGlzdCA9IGRpc3RhbmNlKHN0ciwgYXJyW2ldKTtcbiAgICAgICAgaWYgKGRpc3QgPCBtaW5fZGlzdGFuY2UpIHtcbiAgICAgICAgICAgIG1pbl9kaXN0YW5jZSA9IGRpc3Q7XG4gICAgICAgICAgICBtaW5faW5kZXggPSBpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhcnJbbWluX2luZGV4XTtcbn07XG5leHBvcnQgeyBjbG9zZXN0LCBkaXN0YW5jZSB9O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vLyBSZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmdlZWtzZm9yZ2Vla3Mub3JnL2phcm8tYW5kLWphcm8td2lua2xlci1zaW1pbGFyaXR5L1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuZXhwb3J0cy5qYXJvV2lua2xlciA9IGV4cG9ydHMuamFybyA9IHZvaWQgMDtcbi8qKlxuICpcbiAqIEBwYXJhbSBzdHIxIFN0cmluZyAxIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gc3RyMiBTdHJpbmcgMiBmb3IgY29tcGFyZVxuICogQHBhcmFtIG9wdGlvbnMgdG8gY29udHJvbCBjYXNlIHNlbnNpdGl2ZSBvciBub3RcbiAqL1xuZnVuY3Rpb24gamFybyhzdHIxLCBzdHIyLCBvcHRpb25zKSB7XG4gICAgLy8gRXhpdCBlYXJseSBpZiBlaXRoZXIgYXJlIGVtcHR5LlxuICAgIGlmIChzdHIxLmxlbmd0aCA9PT0gMCB8fCBzdHIyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgLy8gQ29udmVydCB0byB1cHBlciBpZiBjYXNlLXNlbnNpdGl2ZSBpcyBmYWxzZS5cbiAgICBpZiAob3B0aW9ucyAmJiAhb3B0aW9ucy5jYXNlU2Vuc2l0aXZlKSB7XG4gICAgICAgIHN0cjEgPSBzdHIxLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIHN0cjIgPSBzdHIyLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICAgIC8vIEV4YWN0IG1hdGNoXG4gICAgaWYgKHN0cjEgPT09IHN0cjIpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIC8vIE51bWJlciBvZiBtYXRjaGVzXG4gICAgdmFyIG0gPSAwO1xuICAgIC8vIExlbmd0aCBvZiB0d28gU3RyaW5nc1xuICAgIHZhciBsZW4xID0gc3RyMS5sZW5ndGg7XG4gICAgdmFyIGxlbjIgPSBzdHIyLmxlbmd0aDtcbiAgICAvLyBNYXhpbXVtIGRpc3RhbmNlXG4gICAgdmFyIHdpbmRvdyA9IE1hdGguZmxvb3IoTWF0aC5tYXgobGVuMSwgbGVuMikgLyAyKSAtIDE7XG4gICAgLy8gSGFzaCBmb3IgbWF0Y2hlc1xuICAgIHZhciBzdHIxSGFzaCA9IG5ldyBBcnJheShsZW4xKTtcbiAgICB2YXIgc3RyMkhhc2ggPSBuZXcgQXJyYXkobGVuMik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW4xOyBpKyspIHtcbiAgICAgICAgZm9yICh2YXIgaiA9IE1hdGgubWF4KDAsIGkgLSB3aW5kb3cpOyBqIDw9IE1hdGgubWluKGxlbjIsIGkgKyB3aW5kb3cgKyAxKTsgaisrKSB7XG4gICAgICAgICAgICBpZiAoIXN0cjFIYXNoW2ldICYmICFzdHIySGFzaFtqXSAmJiBzdHIxW2ldID09PSBzdHIyW2pdKSB7XG4gICAgICAgICAgICAgICAgKyttO1xuICAgICAgICAgICAgICAgIHN0cjFIYXNoW2ldID0gc3RyMkhhc2hbal0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEV4aXQgZWFybHkgaWYgbm8gbWF0Y2hlcyB3ZXJlIGZvdW5kLlxuICAgIGlmIChtID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvLyBDb3VudCB0aGUgdHJhbnNwb3NpdGlvbnMuXG4gICAgdmFyIHQgPSAwO1xuICAgIHZhciBwb2ludCA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW4xOyBpKyspIHtcbiAgICAgICAgaWYgKHN0cjFIYXNoW2ldKSB7XG4gICAgICAgICAgICB3aGlsZSAoIXN0cjJIYXNoW3BvaW50XSkge1xuICAgICAgICAgICAgICAgIHBvaW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3RyMS5jaGFyQXQoaSkgIT09IHN0cjIuY2hhckF0KHBvaW50KyspKSB7XG4gICAgICAgICAgICAgICAgdCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHQgLz0gMjtcbiAgICByZXR1cm4gKG0gLyBsZW4xICsgbSAvIGxlbjIgKyAobSAtIHQpIC8gbSkgLyAzO1xufVxuZXhwb3J0cy5qYXJvID0gamFybztcbi8qKlxuICpcbiAqIEBwYXJhbSBzdHIxIFN0cmluZyAxIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gc3RyMiBTdHJpbmcgMiBmb3IgY29tcGFyZVxuICogQHBhcmFtIG9wdGlvbnMgdG8gY29udHJvbCBjYXNlIHNlbnNpdGl2ZSBvciBub3RcbiAqL1xuZnVuY3Rpb24gamFyb1dpbmtsZXIoc3RyMSwgc3RyMiwgb3B0aW9ucykge1xuICAgIC8vIEphcm8gRGlzdGFuY2VcbiAgICB2YXIgamFyb0Rpc3QgPSBqYXJvKHN0cjEsIHN0cjIsIG9wdGlvbnMpO1xuICAgIC8vIFNhbWUgcHJlZml4IGxlbmd0aCwgbWF4aXVtIGlzIDRcbiAgICB2YXIgcHJlZml4ID0gMDtcbiAgICBpZiAoamFyb0Rpc3QgPiAwLjcpIHtcbiAgICAgICAgdmFyIG1pbkluZGV4ID0gTWF0aC5taW4oc3RyMS5sZW5ndGgsIHN0cjIubGVuZ3RoKTtcbiAgICAgICAgdmFyIGkgPSAwO1xuICAgICAgICB3aGlsZSAoc3RyMVtpXSA9PT0gc3RyMltpXSAmJiBpIDwgNCAmJiBpIDwgbWluSW5kZXgpIHtcbiAgICAgICAgICAgICsrcHJlZml4O1xuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIGphcm9EaXN0ICs9IDAuMSAqIHByZWZpeCAqICgxIC0gamFyb0Rpc3QpO1xuICAgIH1cbiAgICByZXR1cm4gamFyb0Rpc3Q7XG59XG5leHBvcnRzLmphcm9XaW5rbGVyID0gamFyb1dpbmtsZXI7XG4iXSwibmFtZXMiOlsidGFuaW1vdG9EaXN0YW5jZSIsIngiLCJ5IiwiZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eSIsInRvdGFsIiwidHJ1ZUNvdW50IiwiY29tbW9uIiwiYW5kV2l0aENvdW50Qml0cyIsInRhbmltb3RvU2ltaWxhcml0eSIsImRpY2VEaXN0YW5jZSIsImRpY2VTaW1pbGFyaXR5IiwiY29zaW5lRGlzdGFuY2UiLCJNYXRoIiwic3FydCIsImNvc2luZVNpbWlsYXJpdHkiLCJldWNsaWRlYW5EaXN0YW5jZSIsImhhbW1pbmdEaXN0YW5jZSIsInNva2FsRGlzdGFuY2UiLCJzb2thbFNpbWlsYXJpdHkiLCJrdWxjenluc2tpRGlzdGFuY2UiLCJ0b3RhbFByb2QiLCJrdWxjenluc2tpU2ltaWxhcml0eSIsIm1jQ29ubmF1Z2hleURpc3RhbmNlIiwibWNDb25uYXVnaGV5U2ltaWxhcml0eSIsImFzeW1tZXRyaWNEaXN0YW5jZSIsIm1pbiIsImFzeW1tZXRyaWNTaW1pbGFyaXR5IiwiYnJhdW5CbGFucXVldERpc3RhbmNlIiwibWF4IiwiYnJhdW5CbGFucXVldFNpbWlsYXJpdHkiLCJydXNzZWxEaXN0YW5jZSIsImxlbmd0aCIsInJ1c3NlbFNpbWlsYXJpdHkiLCJyb2dvdEdvbGRiZXJnRGlzdGFuY2UiLCJjb3VudEJpdHMiLCJsZW4iLCJkaWZmIiwicm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHkiLCJzaW1pbGFyaXR5IiwiVmVjdG9yIiwiRmxvYXQzMkFycmF5IiwicGVxIiwiVWludDMyQXJyYXkiLCJkaXN0YW5jZSIsImEiLCJiIiwidG1wIiwibiIsIm0iLCJsc3QiLCJwdiIsIm12Iiwic2MiLCJpIiwiY2hhckNvZGVBdCIsImVxIiwieHYiLCJteWVyc18zMiIsIm1oYyIsInBoYyIsImhzaXplIiwiY2VpbCIsInZzaXplIiwiaiIsInN0YXJ0IiwidmxlbiIsImsiLCJwYiIsIm1iIiwieGgiLCJwaCIsIm1oIiwic2NvcmUiLCJteWVyc194IiwiZXhwb3J0cyIsInN0cjEiLCJzdHIyIiwib3B0aW9ucyIsImphcm9EaXN0IiwiY2FzZVNlbnNpdGl2ZSIsInRvVXBwZXJDYXNlIiwibGVuMSIsImxlbjIiLCJ3aW5kb3ciLCJmbG9vciIsInN0cjFIYXNoIiwiQXJyYXkiLCJzdHIySGFzaCIsInQiLCJwb2ludCIsImNoYXJBdCIsImphcm8iLCJwcmVmaXgiLCJtaW5JbmRleCJdLCJzb3VyY2VSb290IjoiIn0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNjExLmpzIiwibWFwcGluZ3MiOiJtR0FxQ08sU0FBU0EsRUFBaUJDLEVBQUdDLEdBQ2hDLE9BQU9DLEVBUkosU0FBNEJGLEVBQUdDLEdBQ2xDLE1BQU1FLEVBQVFILEVBQUVJLFlBQWNILEVBQUVHLFlBQ2hDLEdBQWEsR0FBVEQsRUFDQSxPQUFPLEVBQ1gsTUFBTUUsRUFBU0wsRUFBRU0saUJBQWlCTCxHQUFHLEdBQ3JDLE9BQU9JLEdBQVVGLEVBQVFFLEVBQzdCLENBRXFDRSxDQUFtQlAsRUFBR0MsR0FDM0QsQ0FRTyxTQUFTTyxFQUFhUixFQUFHQyxHQUM1QixPQUFPQyxFQVJKLFNBQXdCRixFQUFHQyxHQUM5QixNQUFNRSxFQUFRSCxFQUFFSSxZQUFjSCxFQUFFRyxZQUNoQyxPQUFhLEdBQVRELEVBQ08sRUFFSixFQURRSCxFQUFFTSxpQkFBaUJMLEdBQUcsR0FDakJFLENBQ3hCLENBRXFDTSxDQUFlVCxFQUFHQyxHQUN2RCxDQVFPLFNBQVNTLEVBQWVWLEVBQUdDLEdBQzlCLE9BQU9DLEVBUkosU0FBMEJGLEVBQUdDLEdBQ2hDLE1BQU1FLEVBQVFILEVBQUVJLFlBQWNILEVBQUVHLFlBQ2hDLE9BQWEsR0FBVEQsRUFDTyxFQUNJSCxFQUFFTSxpQkFBaUJMLEdBQUcsR0FDckJVLEtBQUtDLEtBQUtULEVBQzlCLENBRXFDVSxDQUFpQmIsRUFBR0MsR0FDekQsQ0FJTyxTQUFTYSxFQUFrQmQsRUFBR0MsR0FDakMsT0FBT1UsS0FBS0MsS0FBS1osRUFBRUksWUFBY0gsRUFBRUcsWUFBYyxFQUFJSixFQUFFTSxpQkFBaUJMLEdBQUcsR0FDL0UsQ0FJTyxTQUFTYyxFQUFnQmYsRUFBR0MsR0FDL0IsT0FBT0QsRUFBRUksWUFBY0gsRUFBRUcsWUFBYyxFQUFJSixFQUFFTSxpQkFBaUJMLEdBQUcsRUFDckUsQ0FNTyxTQUFTZSxFQUFjaEIsRUFBR0MsR0FDN0IsT0FBT0MsRUFOSixTQUF5QkYsRUFBR0MsR0FDL0IsTUFBTUUsRUFBUUgsRUFBRUksWUFBY0gsRUFBRUcsWUFDMUJDLEVBQVNMLEVBQUVNLGlCQUFpQkwsR0FBRyxHQUNyQyxPQUFPSSxHQUFVLEVBQUlGLEVBQVEsRUFBSUUsRUFDckMsQ0FFcUNZLENBQWdCakIsRUFBR0MsR0FDeEQsQ0FTTyxTQUFTaUIsRUFBbUJsQixFQUFHQyxHQUNsQyxPQUFPQyxFQVRKLFNBQThCRixFQUFHQyxHQUNwQyxNQUFNRSxFQUFRSCxFQUFFSSxZQUFjSCxFQUFFRyxZQUMxQmUsRUFBWW5CLEVBQUVJLFlBQWNILEVBQUVHLFlBQ3BDLE9BQWlCLEdBQWJlLEVBQ08sRUFDSW5CLEVBQUVNLGlCQUFpQkwsR0FBRyxHQUNwQkUsR0FBVSxFQUFJZ0IsRUFDbkMsQ0FFcUNDLENBQXFCcEIsRUFBR0MsR0FDN0QsQ0FTTyxTQUFTb0IsRUFBcUJyQixFQUFHQyxHQUNwQyxPQUFPQyxFQVRKLFNBQWdDRixFQUFHQyxHQUN0QyxNQUFNRSxFQUFRSCxFQUFFSSxZQUFjSCxFQUFFRyxZQUMxQmUsRUFBWW5CLEVBQUVJLFlBQWNILEVBQUVHLFlBQ3BDLE9BQWlCLEdBQWJlLEVBQ08sR0FDSW5CLEVBQUVNLGlCQUFpQkwsR0FBRyxHQUNwQkUsRUFBUWdCLEdBQWFBLENBQzFDLENBRXFDRyxDQUF1QnRCLEVBQUdDLEdBQy9ELENBUU8sU0FBU3NCLEVBQW1CdkIsRUFBR0MsR0FDbEMsT0FBT0MsRUFSSixTQUE4QkYsRUFBR0MsR0FDcEMsTUFBTXVCLEVBQU1iLEtBQUthLElBQUl4QixFQUFFSSxZQUFhSCxFQUFFRyxhQUN0QyxPQUFXLEdBQVBvQixFQUNPLEVBQ0l4QixFQUFFTSxpQkFBaUJMLEdBQUcsR0FDckJ1QixDQUNwQixDQUVxQ0MsQ0FBcUJ6QixFQUFHQyxHQUM3RCxDQVFPLFNBQVN5QixFQUFzQjFCLEVBQUdDLEdBQ3JDLE9BQU9DLEVBUkosU0FBaUNGLEVBQUdDLEdBQ3ZDLE1BQU0wQixFQUFNaEIsS0FBS2dCLElBQUkzQixFQUFFSSxZQUFhSCxFQUFFRyxhQUN0QyxPQUFXLEdBQVB1QixFQUNPLEVBQ0kzQixFQUFFTSxpQkFBaUJMLEdBQUcsR0FDckIwQixDQUNwQixDQUVxQ0MsQ0FBd0I1QixFQUFHQyxHQUNoRSxDQU9PLFNBQVM0QixFQUFlN0IsRUFBR0MsR0FDOUIsT0FBT0MsRUFQSixTQUEwQkYsRUFBR0MsR0FDaEMsT0FBZ0IsR0FBWkQsRUFBRThCLE9BQ0ssRUFDSTlCLEVBQUVNLGlCQUFpQkwsR0FBRyxHQUNyQkQsRUFBRThCLE1BQ3RCLENBRXFDQyxDQUFpQi9CLEVBQUdDLEdBQ3pELENBV08sU0FBUytCLEVBQXNCaEMsRUFBR0MsR0FDckMsT0FBT0MsRUFYSixTQUFpQ0YsRUFBR0MsR0FDdkMsTUFBTUksRUFBU0wsRUFBRU0saUJBQWlCTCxHQUFHLEdBQy9CRSxFQUFRSCxFQUFFaUMsV0FBVSxHQUFRaEMsRUFBRWdDLFdBQVUsR0FDeENDLEVBQU1sQyxFQUFFOEIsT0FDUkssRUFBT0QsRUFBTS9CLEVBQVFFLEVBQzNCLE9BQUtBLEdBQVU2QixHQUFTQyxHQUFRRCxFQUNyQixFQUVBN0IsRUFBU0YsRUFBUWdDLEdBQVEsRUFBSUQsRUFBTS9CLEVBQ2xELENBRXFDaUMsQ0FBd0JwQyxFQUFHQyxHQUNoRSxDQUlPLFNBQVNDLEVBQTBCbUMsR0FDdEMsT0FBTyxFQUFJQSxFQUFhLENBQzVCLEMsc0pDOUlPLE1BQU1DLFVBQWVDLGMsa0NDUDVCLE1BQU1DLEVBQU0sSUFBSUMsWUFBWSxPQStHdEJDLEVBQVcsQ0FBQ0MsRUFBR0MsS0FDakIsR0FBSUQsRUFBRWIsT0FBU2MsRUFBRWQsT0FBUSxDQUNyQixNQUFNZSxFQUFNRCxFQUNaQSxFQUFJRCxFQUNKQSxFQUFJRSxDQUNSLENBQ0EsT0FBaUIsSUFBYkQsRUFBRWQsT0FDS2EsRUFBRWIsT0FFVGEsRUFBRWIsUUFBVSxHQXZISCxFQUFDYSxFQUFHQyxLQUNqQixNQUFNRSxFQUFJSCxFQUFFYixPQUNOaUIsRUFBSUgsRUFBRWQsT0FDTmtCLEVBQU0sR0FBTUYsRUFBSSxFQUN0QixJQUFJRyxHQUFNLEVBQ05DLEVBQUssRUFDTEMsRUFBS0wsRUFDTE0sRUFBSU4sRUFDUixLQUFPTSxLQUNIWixFQUFJRyxFQUFFVSxXQUFXRCxLQUFPLEdBQUtBLEVBRWpDLElBQUtBLEVBQUksRUFBR0EsRUFBSUwsRUFBR0ssSUFBSyxDQUNwQixJQUFJRSxFQUFLZCxFQUFJSSxFQUFFUyxXQUFXRCxJQUMxQixNQUFNRyxFQUFLRCxFQUFLSixFQUNoQkksSUFBUUEsRUFBS0wsR0FBTUEsRUFBTUEsRUFDekJDLEtBQVFJLEVBQUtMLEdBQ2JBLEdBQU1LLEVBQ0ZKLEVBQUtGLEdBQ0xHLElBRUFGLEVBQUtELEdBQ0xHLElBRUpELEVBQU1BLEdBQU0sRUFBSyxFQUNqQkQsRUFBTUEsR0FBTSxJQUFPTSxFQUFLTCxHQUN4QkEsR0FBTUssQ0FDVixDQUVBLElBREFILEVBQUlOLEVBQ0dNLEtBQ0haLEVBQUlHLEVBQUVVLFdBQVdELElBQU0sRUFFM0IsT0FBT0QsQ0FBRSxFQXlGRUssQ0FBU2IsRUFBR0MsR0F2RlgsRUFBQ0EsRUFBR0QsS0FDaEIsTUFBTUcsRUFBSUgsRUFBRWIsT0FDTmlCLEVBQUlILEVBQUVkLE9BQ04yQixFQUFNLEdBQ05DLEVBQU0sR0FDTkMsRUFBUWhELEtBQUtpRCxLQUFLZCxFQUFJLElBQ3RCZSxFQUFRbEQsS0FBS2lELEtBQUtiLEVBQUksSUFDNUIsSUFBSyxJQUFJSyxFQUFJLEVBQUdBLEVBQUlPLEVBQU9QLElBQ3ZCTSxFQUFJTixJQUFNLEVBQ1ZLLEVBQUlMLEdBQUssRUFFYixJQUFJVSxFQUFJLEVBQ1IsS0FBT0EsRUFBSUQsRUFBUSxFQUFHQyxJQUFLLENBQ3ZCLElBQUlaLEVBQUssRUFDTEQsR0FBTSxFQUNWLE1BQU1jLEVBQVksR0FBSkQsRUFDUkUsRUFBT3JELEtBQUthLElBQUksR0FBSXVCLEdBQUtnQixFQUMvQixJQUFLLElBQUlFLEVBQUlGLEVBQU9FLEVBQUlELEVBQU1DLElBQzFCekIsRUFBSUksRUFBRVMsV0FBV1ksS0FBTyxHQUFLQSxFQUVqQyxJQUFLLElBQUliLEVBQUksRUFBR0EsRUFBSU4sRUFBR00sSUFBSyxDQUN4QixNQUFNRSxFQUFLZCxFQUFJRyxFQUFFVSxXQUFXRCxJQUN0QmMsRUFBTVIsRUFBS04sRUFBSSxHQUFNLEtBQU9BLEVBQUssRUFDakNlLEVBQU1WLEVBQUtMLEVBQUksR0FBTSxLQUFPQSxFQUFLLEVBQ2pDRyxFQUFLRCxFQUFLSixFQUNWa0IsSUFBU2QsRUFBS2EsR0FBTWxCLEdBQU1BLEVBQU1BLEVBQU1LLEVBQUthLEVBQ2pELElBQUlFLEVBQUtuQixJQUFPa0IsRUFBS25CLEdBQ2pCcUIsRUFBS3JCLEVBQUttQixFQUNUQyxJQUFPLEdBQU1ILElBQ2RSLEVBQUtOLEVBQUksR0FBTSxJQUFNLEdBQUtBLEdBRXpCa0IsSUFBTyxHQUFNSCxJQUNkVixFQUFLTCxFQUFJLEdBQU0sSUFBTSxHQUFLQSxHQUU5QmlCLEVBQU1BLEdBQU0sRUFBS0gsRUFDakJJLEVBQU1BLEdBQU0sRUFBS0gsRUFDakJsQixFQUFLcUIsSUFBT2YsRUFBS2MsR0FDakJuQixFQUFLbUIsRUFBS2QsQ0FDZCxDQUNBLElBQUssSUFBSVUsRUFBSUYsRUFBT0UsRUFBSUQsRUFBTUMsSUFDMUJ6QixFQUFJSSxFQUFFUyxXQUFXWSxJQUFNLENBRS9CLENBQ0EsSUFBSWYsRUFBSyxFQUNMRCxHQUFNLEVBQ1YsTUFBTWMsRUFBWSxHQUFKRCxFQUNSRSxFQUFPckQsS0FBS2EsSUFBSSxHQUFJdUIsRUFBSWdCLEdBQVNBLEVBQ3ZDLElBQUssSUFBSUUsRUFBSUYsRUFBT0UsRUFBSUQsRUFBTUMsSUFDMUJ6QixFQUFJSSxFQUFFUyxXQUFXWSxLQUFPLEdBQUtBLEVBRWpDLElBQUlNLEVBQVF4QixFQUNaLElBQUssSUFBSUssRUFBSSxFQUFHQSxFQUFJTixFQUFHTSxJQUFLLENBQ3hCLE1BQU1FLEVBQUtkLEVBQUlHLEVBQUVVLFdBQVdELElBQ3RCYyxFQUFNUixFQUFLTixFQUFJLEdBQU0sS0FBT0EsRUFBSyxFQUNqQ2UsRUFBTVYsRUFBS0wsRUFBSSxHQUFNLEtBQU9BLEVBQUssRUFDakNHLEVBQUtELEVBQUtKLEVBQ1ZrQixJQUFTZCxFQUFLYSxHQUFNbEIsR0FBTUEsRUFBTUEsRUFBTUssRUFBS2EsRUFDakQsSUFBSUUsRUFBS25CLElBQU9rQixFQUFLbkIsR0FDakJxQixFQUFLckIsRUFBS21CLEVBQ2RHLEdBQVVGLElBQVF0QixFQUFJLEVBQU0sRUFDNUJ3QixHQUFVRCxJQUFRdkIsRUFBSSxFQUFNLEVBQ3ZCc0IsSUFBTyxHQUFNSCxJQUNkUixFQUFLTixFQUFJLEdBQU0sSUFBTSxHQUFLQSxHQUV6QmtCLElBQU8sR0FBTUgsSUFDZFYsRUFBS0wsRUFBSSxHQUFNLElBQU0sR0FBS0EsR0FFOUJpQixFQUFNQSxHQUFNLEVBQUtILEVBQ2pCSSxFQUFNQSxHQUFNLEVBQUtILEVBQ2pCbEIsRUFBS3FCLElBQU9mLEVBQUtjLEdBQ2pCbkIsRUFBS21CLEVBQUtkLENBQ2QsQ0FDQSxJQUFLLElBQUlVLEVBQUlGLEVBQU9FLEVBQUlELEVBQU1DLElBQzFCekIsRUFBSUksRUFBRVMsV0FBV1ksSUFBTSxFQUUzQixPQUFPTSxDQUFLLEVBY0xDLENBQVE3QixFQUFHQyxFQUFFLEMsZUN4SHhCNkIsRUFBUSxRQUE2QixFQW1GckNBLEVBQVEsR0FoQlIsU0FBcUJDLEVBQU1DLEVBQU1DLEdBRTdCLElBQUlDLEVBOURSLFNBQWNILEVBQU1DLEVBQU1DLEdBRXRCLEdBQW9CLElBQWhCRixFQUFLNUMsUUFBZ0MsSUFBaEI2QyxFQUFLN0MsT0FDMUIsT0FBTyxFQVFYLEdBTEk4QyxJQUFZQSxFQUFRRSxnQkFDcEJKLEVBQU9BLEVBQUtLLGNBQ1pKLEVBQU9BLEVBQUtJLGVBR1pMLElBQVNDLEVBQ1QsT0FBTyxFQVlYLElBVEEsSUFBSTVCLEVBQUksRUFFSmlDLEVBQU9OLEVBQUs1QyxPQUNabUQsRUFBT04sRUFBSzdDLE9BRVpvRCxFQUFTdkUsS0FBS3dFLE1BQU14RSxLQUFLZ0IsSUFBSXFELEVBQU1DLEdBQVEsR0FBSyxFQUVoREcsRUFBVyxJQUFJQyxNQUFNTCxHQUNyQk0sRUFBVyxJQUFJRCxNQUFNSixHQUNoQjdCLEVBQUksRUFBR0EsRUFBSTRCLEVBQU01QixJQUN0QixJQUFLLElBQUlVLEVBQUluRCxLQUFLZ0IsSUFBSSxFQUFHeUIsRUFBSThCLEdBQVNwQixHQUFLbkQsS0FBS2EsSUFBSXlELEVBQU03QixFQUFJOEIsRUFBUyxHQUFJcEIsSUFDdkUsSUFBS3NCLEVBQVNoQyxLQUFPa0MsRUFBU3hCLElBQU1ZLEVBQUt0QixLQUFPdUIsRUFBS2IsR0FBSSxHQUNuRGYsRUFDRnFDLEVBQVNoQyxHQUFLa0MsRUFBU3hCLElBQUssRUFDNUIsS0FDSixDQUlSLEdBQVUsSUFBTmYsRUFDQSxPQUFPLEVBR1gsSUFBSXdDLEVBQUksRUFDSkMsRUFBUSxFQUNaLElBQVNwQyxFQUFJLEVBQUdBLEVBQUk0QixFQUFNNUIsSUFDdEIsR0FBSWdDLEVBQVNoQyxHQUFJLENBQ2IsTUFBUWtDLEVBQVNFLElBQ2JBLElBRUFkLEVBQUtlLE9BQU9yQyxLQUFPdUIsRUFBS2MsT0FBT0QsTUFDL0JELEdBRVIsQ0FHSixPQUFReEMsRUFBSWlDLEVBQU9qQyxFQUFJa0MsR0FBUWxDLEdBRC9Cd0MsR0FBSyxJQUNtQ3hDLEdBQUssQ0FDakQsQ0FVbUIyQyxDQUFLaEIsRUFBTUMsRUFBTUMsR0FFNUJlLEVBQVMsRUFDYixHQUFJZCxFQUFXLEdBQUssQ0FHaEIsSUFGQSxJQUFJZSxFQUFXakYsS0FBS2EsSUFBSWtELEVBQUs1QyxPQUFRNkMsRUFBSzdDLFFBQ3RDc0IsRUFBSSxFQUNEc0IsRUFBS3RCLEtBQU91QixFQUFLdkIsSUFBTUEsRUFBSSxHQUFLQSxFQUFJd0MsS0FDckNELEVBQ0Z2QyxJQUVKeUIsR0FBWSxHQUFNYyxHQUFVLEVBQUlkLEVBQ3BDLENBQ0EsT0FBT0EsQ0FDWCxDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvZGlzdGFuY2UtbWV0cmljcy1tZXRob2RzLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zLmpzIiwid2VicGFjazovL3BlcHRpZGVzLy4vbm9kZV9tb2R1bGVzL2Zhc3Rlc3QtbGV2ZW5zaHRlaW4vZXNtL21vZC5qcyIsIndlYnBhY2s6Ly9wZXB0aWRlcy8uL25vZGVfbW9kdWxlcy9qYXJvLXdpbmtsZXItdHlwZXNjcmlwdC9saWIvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNpbWlsYXJpdHlNZXRyaWMgPSB7XG4gICAgJ1Rhbmltb3RvJzogdGFuaW1vdG9TaW1pbGFyaXR5LFxuICAgICdEaWNlJzogZGljZVNpbWlsYXJpdHksXG4gICAgJ0FzeW1tZXRyaWMnOiBhc3ltbWV0cmljU2ltaWxhcml0eSxcbiAgICAnQnJhdW4tQmxhbnF1ZXQnOiBicmF1bkJsYW5xdWV0U2ltaWxhcml0eSxcbiAgICAnQ29zaW5lJzogY29zaW5lU2ltaWxhcml0eSxcbiAgICAnS3VsY3p5bnNraSc6IGt1bGN6eW5za2lTaW1pbGFyaXR5LFxuICAgICdNYy1Db25uYXVnaGV5JzogbWNDb25uYXVnaGV5U2ltaWxhcml0eSxcbiAgICAnUm9nb3QtR29sZGJlcmcnOiByb2dvdEdvbGRiZXJnU2ltaWxhcml0eSxcbiAgICAnUnVzc2VsJzogcnVzc2VsU2ltaWxhcml0eSxcbiAgICAnU29rYWwnOiBzb2thbFNpbWlsYXJpdHksXG4gICAgJ0hhbW1pbmcnOiBoYW1taW5nU2ltaWxhcml0eSxcbiAgICAnRXVjbGlkZWFuJzogZXVjbGlkZWFuU2ltaWxhcml0eSxcbn07XG5leHBvcnQgY29uc3QgZGlzdGFuY2VNZXRyaWNzID0ge1xuICAgICdUYW5pbW90byc6IHRhbmltb3RvRGlzdGFuY2UsXG4gICAgJ0RpY2UnOiBkaWNlRGlzdGFuY2UsXG4gICAgJ0FzeW1tZXRyaWMnOiBhc3ltbWV0cmljRGlzdGFuY2UsXG4gICAgJ0JyYXVuLUJsYW5xdWV0JzogYnJhdW5CbGFucXVldERpc3RhbmNlLFxuICAgICdDb3NpbmUnOiBjb3NpbmVEaXN0YW5jZSxcbiAgICAnS3VsY3p5bnNraSc6IGt1bGN6eW5za2lEaXN0YW5jZSxcbiAgICAnTWMtQ29ubmF1Z2hleSc6IG1jQ29ubmF1Z2hleURpc3RhbmNlLFxuICAgICdSb2dvdC1Hb2xkYmVyZyc6IHJvZ290R29sZGJlcmdEaXN0YW5jZSxcbiAgICAnUnVzc2VsJzogcnVzc2VsRGlzdGFuY2UsXG4gICAgJ1Nva2FsJzogc29rYWxEaXN0YW5jZSxcbiAgICAnSGFtbWluZyc6IGhhbW1pbmdEaXN0YW5jZSxcbiAgICAnRXVjbGlkZWFuJzogZXVjbGlkZWFuRGlzdGFuY2UsXG59O1xuZXhwb3J0IGNvbnN0IENIRU1fU0lNSUxBUklUWV9NRVRSSUNTID0gWydUYW5pbW90bycsICdEaWNlJywgJ0Nvc2luZScsICdIYW1taW5nJywgJ0V1Y2xpZGVhbiddO1xuZXhwb3J0IGNvbnN0IFNFUV9TUEFDRV9TSU1JTEFSSVRZX01FVFJJQ1MgPSBbJ1Rhbmltb3RvJywgJ0FzeW1tZXRyaWMnLCAnQ29zaW5lJywgJ1Nva2FsJ107XG5leHBvcnQgZnVuY3Rpb24gdGFuaW1vdG9TaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbCA9PSAwKVxuICAgICAgICByZXR1cm4gMS4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gKHRvdGFsIC0gY29tbW9uKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0YW5pbW90b0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eSh0YW5pbW90b1NpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpY2VTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gMiAqIGNvbW1vbiAvIHRvdGFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpY2VEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoZGljZVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNvc2luZVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyBNYXRoLnNxcnQodG90YWwpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNvc2luZURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShjb3NpbmVTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldWNsaWRlYW5TaW1pbGFyaXR5KHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShldWNsaWRlYW5EaXN0YW5jZSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZXVjbGlkZWFuRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBNYXRoLnNxcnQoeC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCkgLSAyICogeC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYW1taW5nU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoaGFtbWluZ0Rpc3RhbmNlKHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYW1taW5nRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKSAtIDIgKiB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gc29rYWxTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gKDIgKiB0b3RhbCAtIDMgKiBjb21tb24pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNva2FsRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHNva2FsU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24ga3VsY3p5bnNraVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgdG90YWxQcm9kID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsUHJvZCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gKGNvbW1vbiAqIHRvdGFsKSAvICgyICogdG90YWxQcm9kKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBrdWxjenluc2tpRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGt1bGN6eW5za2lTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtY0Nvbm5hdWdoZXlTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGNvbnN0IHRvdGFsUHJvZCA9IHgudHJ1ZUNvdW50KCkgKiB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbFByb2QgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIChjb21tb24gKiB0b3RhbCAtIHRvdGFsUHJvZCkgLyB0b3RhbFByb2Q7XG59XG5leHBvcnQgZnVuY3Rpb24gbWNDb25uYXVnaGV5RGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KG1jQ29ubmF1Z2hleVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFzeW1tZXRyaWNTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbih4LnRydWVDb3VudCgpLCB5LnRydWVDb3VudCgpKTtcbiAgICBpZiAobWluID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyBtaW47XG59XG5leHBvcnQgZnVuY3Rpb24gYXN5bW1ldHJpY0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShhc3ltbWV0cmljU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gYnJhdW5CbGFucXVldFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KHgudHJ1ZUNvdW50KCksIHkudHJ1ZUNvdW50KCkpO1xuICAgIGlmIChtYXggPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIG1heDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBicmF1bkJsYW5xdWV0RGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGJyYXVuQmxhbnF1ZXRTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBydXNzZWxTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBpZiAoeC5sZW5ndGggPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIHgubGVuZ3RoO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJ1c3NlbERpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShydXNzZWxTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByb2dvdEdvbGRiZXJnU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIGNvbnN0IHRvdGFsID0geC5jb3VudEJpdHModHJ1ZSkgKyB5LmNvdW50Qml0cyh0cnVlKTtcbiAgICBjb25zdCBsZW4gPSB4Lmxlbmd0aDtcbiAgICBjb25zdCBkaWZmID0gbGVuIC0gdG90YWwgKyBjb21tb247XG4gICAgaWYgKChjb21tb24gPT0gbGVuKSB8fCAoZGlmZiA9PSBsZW4pKVxuICAgICAgICByZXR1cm4gMS4wO1xuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGNvbW1vbiAvIHRvdGFsICsgZGlmZiAvICgyICogbGVuIC0gdG90YWwpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvZ290R29sZGJlcmdEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkocm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2UpIHtcbiAgICByZXR1cm4gMSAvICgxICsgZGlzdGFuY2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoc2ltaWxhcml0eSkge1xuICAgIHJldHVybiAxIC8gc2ltaWxhcml0eSAtIDE7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laR2x6ZEdGdVkyVXRiV1YwY21samN5MXRaWFJvYjJSekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpWkdsemRHRnVZMlV0YldWMGNtbGpjeTF0WlhSb2IyUnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVWQkxFMUJRVTBzUTBGQlF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVFMlJEdEpRVU40Uml4VlFVRlZMRVZCUVVVc2EwSkJRV3RDTzBsQlF6bENMRTFCUVUwc1JVRkJSU3hqUVVGak8wbEJRM1JDTEZsQlFWa3NSVUZCUlN4dlFrRkJiMEk3U1VGRGJFTXNaMEpCUVdkQ0xFVkJRVVVzZFVKQlFYVkNPMGxCUTNwRExGRkJRVkVzUlVGQlJTeG5Ra0ZCWjBJN1NVRkRNVUlzV1VGQldTeEZRVUZGTEc5Q1FVRnZRanRKUVVOc1F5eGxRVUZsTEVWQlFVVXNjMEpCUVhOQ08wbEJRM1pETEdkQ1FVRm5RaXhGUVVGRkxIVkNRVUYxUWp0SlFVTjZReXhSUVVGUkxFVkJRVVVzWjBKQlFXZENPMGxCUXpGQ0xFOUJRVThzUlVGQlJTeGxRVUZsTzBsQlEzaENMRk5CUVZNc1JVRkJSU3hwUWtGQmFVSTdTVUZETlVJc1YwRkJWeXhGUVVGRkxHMUNRVUZ0UWp0RFFVTnFReXhEUVVGRE8wRkJSVVlzVFVGQlRTeERRVUZETEUxQlFVMHNaVUZCWlN4SFFVRTJSRHRKUVVOMlJpeFZRVUZWTEVWQlFVVXNaMEpCUVdkQ08wbEJRelZDTEUxQlFVMHNSVUZCUlN4WlFVRlpPMGxCUTNCQ0xGbEJRVmtzUlVGQlJTeHJRa0ZCYTBJN1NVRkRhRU1zWjBKQlFXZENMRVZCUVVVc2NVSkJRWEZDTzBsQlEzWkRMRkZCUVZFc1JVRkJSU3hqUVVGak8wbEJRM2hDTEZsQlFWa3NSVUZCUlN4clFrRkJhMEk3U1VGRGFFTXNaVUZCWlN4RlFVRkZMRzlDUVVGdlFqdEpRVU55UXl4blFrRkJaMElzUlVGQlJTeHhRa0ZCY1VJN1NVRkRka01zVVVGQlVTeEZRVUZGTEdOQlFXTTdTVUZEZUVJc1QwRkJUeXhGUVVGRkxHRkJRV0U3U1VGRGRFSXNVMEZCVXl4RlFVRkZMR1ZCUVdVN1NVRkRNVUlzVjBGQlZ5eEZRVUZGTEdsQ1FVRnBRanREUVVNdlFpeERRVUZETzBGQlJVWXNUVUZCVFN4RFFVRkRMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1RVRkJUU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFRRVUZUTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNN1FVRkRPVVlzVFVGQlRTeERRVUZETEUxQlFVMHNORUpCUVRSQ0xFZEJRVWNzUTBGQlF5eFZRVUZWTEVWQlFVVXNXVUZCV1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEJRVVV4Uml4TlFVRk5MRlZCUVZVc2EwSkJRV3RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRla1FzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTTFReXhKUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETzFGQlFVVXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRNMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4RFFVRkRMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU51UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHZENRVUZuUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM1pFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETjBRc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeGpRVUZqTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRja1FzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTTFReXhKUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETzFGQlFVVXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRNMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRE8wRkJRelZDTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1dVRkJXU3hEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEyNUVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzcEVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRrUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVNMVF5eEpRVUZKTEV0QlFVc3NTVUZCU1N4RFFVRkRPMUZCUVVVc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRE0wSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTI1RExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNZMEZCWXl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM0pFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETTBRc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHRRa0ZCYlVJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU14UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpWRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEZUVRc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU53Uml4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHbENRVUZwUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM2hFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRekZFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1pVRkJaU3hEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzUkVMRTlCUVU4c1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTjZSU3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdWQlFXVXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOMFJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUXpWRExFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNME1zVDBGQlR5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXpReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdGQlFXRXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOd1JDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNeFJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRzlDUVVGdlFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUXpORUxFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETlVNc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dEpRVU5vUkN4SlFVRkpMRk5CUVZNc1NVRkJTU3hEUVVGRE8xRkJRVVVzVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZETDBJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETzBGQlF6VkRMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVrUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXZSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhOQ1FVRnpRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlF6ZEVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE5VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVOb1JDeEpRVUZKTEZOQlFWTXNTVUZCU1N4RFFVRkRPMUZCUVVVc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGREwwSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hIUVVGSExFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1FVRkRiRVFzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4dlFrRkJiMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTXpSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnBGTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2IwSkJRVzlDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRNMFFzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGJrUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVGRkxFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEzcENMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUjBGQlJ5eERRVUZETzBGQlEzUkNMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVrUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXZSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhWQ1FVRjFRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlF6bEVMRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUTI1RUxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZCUlN4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVONlFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRek5ETEU5QlFVOHNUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVOMFFpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSEZDUVVGeFFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUXpWRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJFVXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3huUWtGQlowSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOMlJDeEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJRenRSUVVGRkxFOUJRVThzUjBGQlJ5eERRVUZETzBsQlF6bENMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOeVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6TkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzZFVKQlFYVkNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE9VUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEY0VRc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTnlRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEhRVUZITEVkQlFVY3NTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJRenRKUVVOc1F5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXp0UlFVRkZMRTlCUVU4c1IwRkJSeXhEUVVGRE96dFJRVU0xUXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhMUVVGTExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU40UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxIRkNRVUZ4UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRelZFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVVc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeDVRa0ZCZVVJc1EwRkJReXhSUVVGblFqdEpRVU40UkN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTTFRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhsQ1FVRjVRaXhEUVVGRExGVkJRV3RDTzBsQlF6RkVMRTlCUVU4c1EwRkJReXhIUVVGSExGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZETlVJc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0JDYVhSQmNuSmhlU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTlpYVhRdFlYSnlZWGtuTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnYzJsdGFXeGhjbWwwZVUxbGRISnBZem9nZXlCYmJtRnRaVG9nYzNSeWFXNW5YVG9nS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2tnUFQ0Z2JuVnRZbVZ5SUgwZ1BTQjdYRzRnSUNkVVlXNXBiVzkwYnljNklIUmhibWx0YjNSdlUybHRhV3hoY21sMGVTeGNiaUFnSjBScFkyVW5PaUJrYVdObFUybHRhV3hoY21sMGVTeGNiaUFnSjBGemVXMXRaWFJ5YVdNbk9pQmhjM2x0YldWMGNtbGpVMmx0YVd4aGNtbDBlU3hjYmlBZ0owSnlZWFZ1TFVKc1lXNXhkV1YwSnpvZ1luSmhkVzVDYkdGdWNYVmxkRk5wYldsc1lYSnBkSGtzWEc0Z0lDZERiM05wYm1Vbk9pQmpiM05wYm1WVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuUzNWc1kzcDVibk5yYVNjNklHdDFiR042ZVc1emEybFRhVzFwYkdGeWFYUjVMRnh1SUNBblRXTXRRMjl1Ym1GMVoyaGxlU2M2SUcxalEyOXVibUYxWjJobGVWTnBiV2xzWVhKcGRIa3NYRzRnSUNkU2IyZHZkQzFIYjJ4a1ltVnlaeWM2SUhKdloyOTBSMjlzWkdKbGNtZFRhVzFwYkdGeWFYUjVMRnh1SUNBblVuVnpjMlZzSnpvZ2NuVnpjMlZzVTJsdGFXeGhjbWwwZVN4Y2JpQWdKMU52YTJGc0p6b2djMjlyWVd4VGFXMXBiR0Z5YVhSNUxGeHVJQ0FuU0dGdGJXbHVaeWM2SUdoaGJXMXBibWRUYVcxcGJHRnlhWFI1TEZ4dUlDQW5SWFZqYkdsa1pXRnVKem9nWlhWamJHbGtaV0Z1VTJsdGFXeGhjbWwwZVN4Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmthWE4wWVc1alpVMWxkSEpwWTNNNklIc2dXMjVoYldVNklITjBjbWx1WjEwNklDaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcElEMCtJRzUxYldKbGNpQjlJRDBnZTF4dUlDQW5WR0Z1YVcxdmRHOG5PaUIwWVc1cGJXOTBiMFJwYzNSaGJtTmxMRnh1SUNBblJHbGpaU2M2SUdScFkyVkVhWE4wWVc1alpTeGNiaUFnSjBGemVXMXRaWFJ5YVdNbk9pQmhjM2x0YldWMGNtbGpSR2x6ZEdGdVkyVXNYRzRnSUNkQ2NtRjFiaTFDYkdGdWNYVmxkQ2M2SUdKeVlYVnVRbXhoYm5GMVpYUkVhWE4wWVc1alpTeGNiaUFnSjBOdmMybHVaU2M2SUdOdmMybHVaVVJwYzNSaGJtTmxMRnh1SUNBblMzVnNZM3A1Ym5OcmFTYzZJR3QxYkdONmVXNXphMmxFYVhOMFlXNWpaU3hjYmlBZ0owMWpMVU52Ym01aGRXZG9aWGtuT2lCdFkwTnZibTVoZFdkb1pYbEVhWE4wWVc1alpTeGNiaUFnSjFKdloyOTBMVWR2YkdSaVpYSm5Kem9nY205bmIzUkhiMnhrWW1WeVowUnBjM1JoYm1ObExGeHVJQ0FuVW5WemMyVnNKem9nY25WemMyVnNSR2x6ZEdGdVkyVXNYRzRnSUNkVGIydGhiQ2M2SUhOdmEyRnNSR2x6ZEdGdVkyVXNYRzRnSUNkSVlXMXRhVzVuSnpvZ2FHRnRiV2x1WjBScGMzUmhibU5sTEZ4dUlDQW5SWFZqYkdsa1pXRnVKem9nWlhWamJHbGtaV0Z1UkdsemRHRnVZMlVzWEc1OU8xeHVYRzVsZUhCdmNuUWdZMjl1YzNRZ1EwaEZUVjlUU1UxSlRFRlNTVlJaWDAxRlZGSkpRMU1nUFNCYkoxUmhibWx0YjNSdkp5d2dKMFJwWTJVbkxDQW5RMjl6YVc1bEp5d2dKMGhoYlcxcGJtY25MQ0FuUlhWamJHbGtaV0Z1SjEwN1hHNWxlSEJ2Y25RZ1kyOXVjM1FnVTBWUlgxTlFRVU5GWDFOSlRVbE1RVkpKVkZsZlRVVlVVa2xEVXlBOUlGc25WR0Z1YVcxdmRHOG5MQ0FuUVhONWJXMWxkSEpwWXljc0lDZERiM05wYm1VbkxDQW5VMjlyWVd3blhUdGNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSFJoYm1sdGIzUnZVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0t5QjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXd2dQVDBnTUNrZ2NtVjBkWEp1SURFdU1EdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCeVpYUjFjbTRnWTI5dGJXOXVJQzhnS0hSdmRHRnNJQzBnWTI5dGJXOXVLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlIUmhibWx0YjNSdlJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb2RHRnVhVzF2ZEc5VGFXMXBiR0Z5YVhSNUtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1JwWTJWVGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDazdYRzRnSUdsbUlDaDBiM1JoYkNBOVBTQXdLU0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQXlJQ29nWTI5dGJXOXVJQzhnZEc5MFlXdzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXTmxSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29aR2xqWlZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMjl6YVc1bFUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS2lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd3Z1BUMGdNQ2tnY21WMGRYSnVJREF1TUR0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0J5WlhSMWNtNGdZMjl0Ylc5dUlDOGdUV0YwYUM1emNYSjBLSFJ2ZEdGc0tUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdOdmMybHVaVVJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLR052YzJsdVpWTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWlhWamJHbGtaV0Z1VTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnlaWFIxY200Z1oyVjBVMmx0YVd4aGNtbDBlVVp5YjIxRWFYTjBZVzVqWlNobGRXTnNhV1JsWVc1RWFYTjBZVzVqWlNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxkV05zYVdSbFlXNUVhWE4wWVc1alpTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdUV0YwYUM1emNYSjBLSGd1ZEhKMVpVTnZkVzUwS0NrZ0t5QjVMblJ5ZFdWRGIzVnVkQ2dwSUMwZ01pQXFJSGd1WVc1a1YybDBhRU52ZFc1MFFtbDBjeWg1TENCMGNuVmxLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm9ZVzF0YVc1blUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdaMlYwVTJsdGFXeGhjbWwwZVVaeWIyMUVhWE4wWVc1alpTaG9ZVzF0YVc1blJHbHpkR0Z1WTJVb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhR0Z0YldsdVowUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQjRMblJ5ZFdWRGIzVnVkQ2dwSUNzZ2VTNTBjblZsUTI5MWJuUW9LU0F0SURJZ0tpQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCemIydGhiRk5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnZEc5MFlXd2dQU0I0TG5SeWRXVkRiM1Z1ZENncElDc2dlUzUwY25WbFEyOTFiblFvS1R0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0J5WlhSMWNtNGdZMjl0Ylc5dUlDOGdLRElnS2lCMGIzUmhiQ0F0SURNZ0tpQmpiMjF0YjI0cE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYzI5cllXeEVhWE4wWVc1alpTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdaMlYwUkdsemRHRnVZMlZHY205dFUybHRhV3hoY21sMGVTaHpiMnRoYkZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhM1ZzWTNwNWJuTnJhVk5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnZEc5MFlXd2dQU0I0TG5SeWRXVkRiM1Z1ZENncElDc2dlUzUwY25WbFEyOTFiblFvS1R0Y2JpQWdZMjl1YzNRZ2RHOTBZV3hRY205a0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcUlIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHbG1JQ2gwYjNSaGJGQnliMlFnUFQwZ01Da2djbVYwZFhKdUlEQXVNRHRjYmlBZ1kyOXVjM1FnWTI5dGJXOXVJRDBnZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dUlDQnlaWFIxY200Z0tHTnZiVzF2YmlBcUlIUnZkR0ZzS1NBdklDZ3lJQ29nZEc5MFlXeFFjbTlrS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR3QxYkdONmVXNXphMmxFYVhOMFlXNWpaU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2hyZFd4amVubHVjMnRwVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnRZME52Ym01aGRXZG9aWGxUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElIUnZkR0ZzVUhKdlpDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXeFFjbTlrSUQwOUlEQXBJSEpsZEhWeWJpQXdMakE3WEc0Z0lHTnZibk4wSUdOdmJXMXZiaUE5SUhndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1R0Y2JpQWdjbVYwZFhKdUlDaGpiMjF0YjI0Z0tpQjBiM1JoYkNBdElIUnZkR0ZzVUhKdlpDa2dMeUIwYjNSaGJGQnliMlE3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnRZME52Ym01aGRXZG9aWGxFYVhOMFlXNWpaU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2h0WTBOdmJtNWhkV2RvWlhsVGFXMXBiR0Z5YVhSNUtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR0Z6ZVcxdFpYUnlhV05UYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUcxcGJpQTlJRTFoZEdndWJXbHVLSGd1ZEhKMVpVTnZkVzUwS0Nrc0lIa3VkSEoxWlVOdmRXNTBLQ2twTzF4dUlDQnBaaUFvYldsdUlEMDlJREFwSUhKbGRIVnliaUF3TGpBN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJRzFwYmp0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR0Z6ZVcxdFpYUnlhV05FYVhOMFlXNWpaU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2hoYzNsdGJXVjBjbWxqVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmljbUYxYmtKc1lXNXhkV1YwVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQmpiMjV6ZENCdFlYZ2dQU0JOWVhSb0xtMWhlQ2g0TG5SeWRXVkRiM1Z1ZENncExDQjVMblJ5ZFdWRGIzVnVkQ2dwS1R0Y2JpQWdhV1lnS0cxaGVDQTlQU0F3S1NCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUJqYjIxdGIyNGdMeUJ0WVhnN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJpY21GMWJrSnNZVzV4ZFdWMFJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb1luSmhkVzVDYkdGdWNYVmxkRk5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NuVnpjMlZzVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnBaaUFvZUM1c1pXNW5kR2dnUFQwZ01Da2djbVYwZFhKdUlEQXVNRHRjYmlBZ1kyOXVjM1FnWTI5dGJXOXVJRDBnZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dUlDQnlaWFIxY200Z1kyOXRiVzl1SUM4Z2VDNXNaVzVuZEdnN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5ZFhOelpXeEVhWE4wWVc1alpTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdaMlYwUkdsemRHRnVZMlZHY205dFUybHRhV3hoY21sMGVTaHlkWE56Wld4VGFXMXBiR0Z5YVhSNUtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEp2WjI5MFIyOXNaR0psY21kVGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnWTI5dWMzUWdkRzkwWVd3Z1BTQjRMbU52ZFc1MFFtbDBjeWgwY25WbEtTQXJJSGt1WTI5MWJuUkNhWFJ6S0hSeWRXVXBPMXh1SUNCamIyNXpkQ0JzWlc0Z1BTQjRMbXhsYm1kMGFEdGNiaUFnWTI5dWMzUWdaR2xtWmlBOUlHeGxiaUF0SUhSdmRHRnNJQ3NnWTI5dGJXOXVPMXh1SUNCcFppQW9LR052YlcxdmJpQTlQU0JzWlc0cElIeDhJQ2hrYVdabUlEMDlJR3hsYmlrcElISmxkSFZ5YmlBeExqQTdYRzRnSUdWc2MyVWdjbVYwZFhKdUlHTnZiVzF2YmlBdklIUnZkR0ZzSUNzZ1pHbG1aaUF2SUNneUlDb2diR1Z1SUMwZ2RHOTBZV3dwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbTluYjNSSGIyeGtZbVZ5WjBScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkVhWE4wWVc1alpVWnliMjFUYVcxcGJHRnlhWFI1S0hKdloyOTBSMjlzWkdKbGNtZFRhVzFwYkdGeWFYUjVLSGdzSUhrcEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRGTnBiV2xzWVhKcGRIbEdjbTl0UkdsemRHRnVZMlVvWkdsemRHRnVZMlU2SUc1MWJXSmxjaWtnZTF4dUlDQnlaWFIxY200Z01TQXZJQ2d4SUNzZ1pHbHpkR0Z1WTJVcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2h6YVcxcGJHRnlhWFI1T2lCdWRXMWlaWElwSUh0Y2JpQWdjbVYwZFhKdUlERWdMeUJ6YVcxcGJHRnlhWFI1SUMwZ01UdGNibjFjYmlKZGZRPT0iLCIvKipcbiAqIERlbm90ZXMgYSB2ZWN0b3Igb2YgZmxvYXRpbmcgcG9pdCB2YWx1ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFZlY3RvclxuICogQGV4dGVuZHMge0Zsb2F0MzJBcnJheX1cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvciBleHRlbmRzIEZsb2F0MzJBcnJheSB7XG59XG4vKipcbiAqIERlbm90ZXMgYSB0d28tZGltZW5zaW9uYWwgbWF0cml4LlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBNYXRyaXhcbiAqIEBleHRlbmRzIHtBcnJheTxWZWN0b3I+fVxuICovXG5leHBvcnQgY2xhc3MgTWF0cml4IGV4dGVuZHMgQXJyYXkge1xufVxuLyoqXG4gKiBEZW5vdGVzIGNhcnRlc2lhbiBjb29yZGluYXRlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQ29vcmRpbmF0ZXNcbiAqIEBleHRlbmRzIHtNYXRyaXh9XG4gKi9cbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlcyBleHRlbmRzIE1hdHJpeCB7XG59XG4vKipcbiAqIERlbm90ZXMgYW4gYXJyYXkgb2YgYXJiaXRyYXJ5LXR5cGVkIHZlY3RvcnMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFZlY3RvcnNcbiAqIEBleHRlbmRzIHtBcnJheTxhbnk+fVxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9ycyBleHRlbmRzIEFycmF5IHtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRIbHdaUzFrWldOc1lYSmhkR2x2Ym5NdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUowZVhCbExXUmxZMnhoY21GMGFXOXVjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1RVRkJUeXhUUVVGUkxGbEJRVms3UTBGQlJ6dEJRVVV6UXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVFVGQlR5eFRRVUZSTEV0QlFXRTdRMEZCUnp0QlFVVTFRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNWMEZCV1N4VFFVRlJMRTFCUVUwN1EwRkJSenRCUVVVeFF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1QwRkJVU3hUUVVGUkxFdEJRVlU3UTBGQlJ5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFpsWTNSdmNpQnZaaUJtYkc5aGRHbHVaeUJ3YjJsMElIWmhiSFZsY3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFZMnhoYzNNZ1ZtVmpkRzl5WEc0Z0tpQkFaWGgwWlc1a2N5QjdSbXh2WVhRek1rRnljbUY1ZlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZtVmpkRzl5SUdWNGRHVnVaSE1nUm14dllYUXpNa0Z5Y21GNUlIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUhSM2J5MWthVzFsYm5OcGIyNWhiQ0J0WVhSeWFYZ3VYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRTFoZEhKcGVGeHVJQ29nUUdWNGRHVnVaSE1nZTBGeWNtRjVQRlpsWTNSdmNqNTlYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJOWVhSeWFYZ2daWGgwWlc1a2N5QkJjbkpoZVR4V1pXTjBiM0krSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmpZWEowWlhOcFlXNGdZMjl2Y21ScGJtRjBaWE11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FHTnNZWE56SUVOdmIzSmthVzVoZEdWelhHNGdLaUJBWlhoMFpXNWtjeUI3VFdGMGNtbDRmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nUTI5dmNtUnBibUYwWlhNZ1pYaDBaVzVrY3lCTllYUnlhWGdnZTMxY2JseHVMeW9xWEc0Z0tpQkVaVzV2ZEdWeklHRnVJR0Z5Y21GNUlHOW1JR0Z5WW1sMGNtRnllUzEwZVhCbFpDQjJaV04wYjNKekxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJqYkdGemN5QldaV04wYjNKelhHNGdLaUJBWlhoMFpXNWtjeUI3UVhKeVlYazhZVzU1UG4xY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWmxZM1J2Y25NZ1pYaDBaVzVrY3lCQmNuSmhlVHhoYm5rK0lIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUdScFkzUnBiMjVoY25rZ1kyOXVkR0ZwYm1sdVp5Qm1kVzVqZEdsdmJpQnZjSFJwYjI1ekxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUIwZVhCbElFOXdkR2x2Ym5OY2JpQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1QzQjBhVzl1Y3lBOUlIdGJibUZ0WlRvZ2MzUnlhVzVuWFRvZ1lXNTVmVHRjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdOMWMzUnZiU0JrYVhOMFlXNWpaU0J0WlhSeWFXTWdZbVYwZDJWbGJpQjBhR1VnZEhkdklHZHBkbVZ1SUhabFkzUnZjbk11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIUjVjR1VnUkdsemRHRnVZMlZOWlhSeWFXTmNiaUFxSUVCd1lYSmhiU0I3WVc1NWZTQjJNU0JVYUdVZ1ptbHljM1FnZG1WamRHOXlMbHh1SUNvZ1FIQmhjbUZ0SUh0aGJubDlJSFl5SUZSb1pTQnpaV052Ym1RZ2RtVmpkRzl5TGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZTQkVhWE4wWVc1alpTQmlaWFIzWldWdUlIUm9aWE5sSUhSM2J5QjJaV04wYjNKekxseHVJQ292WEc1bGVIQnZjblFnZEhsd1pTQkVhWE4wWVc1alpVMWxkSEpwWXlBOUlDaDJNVG9nWVc1NUxDQjJNam9nWVc1NUtTQTlQaUFvYm5WdFltVnlLVHRjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdFZ2MybHRjR3hsSUhOMGNtbHVaeUIwYnlCemRISnBibWNnWkdsamRHbHZibUZ5ZVM1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFkSGx3WlNCVGRISnBibWRFYVdOMGFXOXVZWEo1WEc0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCN1cydGxlVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5mVHRjYmlKZGZRPT0iLCJjb25zdCBwZXEgPSBuZXcgVWludDMyQXJyYXkoMHgxMDAwMCk7XG5jb25zdCBteWVyc18zMiA9IChhLCBiKSA9PiB7XG4gICAgY29uc3QgbiA9IGEubGVuZ3RoO1xuICAgIGNvbnN0IG0gPSBiLmxlbmd0aDtcbiAgICBjb25zdCBsc3QgPSAxIDw8IChuIC0gMSk7XG4gICAgbGV0IHB2ID0gLTE7XG4gICAgbGV0IG12ID0gMDtcbiAgICBsZXQgc2MgPSBuO1xuICAgIGxldCBpID0gbjtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIHBlcVthLmNoYXJDb2RlQXQoaSldIHw9IDEgPDwgaTtcbiAgICB9XG4gICAgZm9yIChpID0gMDsgaSA8IG07IGkrKykge1xuICAgICAgICBsZXQgZXEgPSBwZXFbYi5jaGFyQ29kZUF0KGkpXTtcbiAgICAgICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgICAgICBlcSB8PSAoKGVxICYgcHYpICsgcHYpIF4gcHY7XG4gICAgICAgIG12IHw9IH4oZXEgfCBwdik7XG4gICAgICAgIHB2ICY9IGVxO1xuICAgICAgICBpZiAobXYgJiBsc3QpIHtcbiAgICAgICAgICAgIHNjKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHB2ICYgbHN0KSB7XG4gICAgICAgICAgICBzYy0tO1xuICAgICAgICB9XG4gICAgICAgIG12ID0gKG12IDw8IDEpIHwgMTtcbiAgICAgICAgcHYgPSAocHYgPDwgMSkgfCB+KHh2IHwgbXYpO1xuICAgICAgICBtdiAmPSB4djtcbiAgICB9XG4gICAgaSA9IG47XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgICBwZXFbYS5jaGFyQ29kZUF0KGkpXSA9IDA7XG4gICAgfVxuICAgIHJldHVybiBzYztcbn07XG5jb25zdCBteWVyc194ID0gKGIsIGEpID0+IHtcbiAgICBjb25zdCBuID0gYS5sZW5ndGg7XG4gICAgY29uc3QgbSA9IGIubGVuZ3RoO1xuICAgIGNvbnN0IG1oYyA9IFtdO1xuICAgIGNvbnN0IHBoYyA9IFtdO1xuICAgIGNvbnN0IGhzaXplID0gTWF0aC5jZWlsKG4gLyAzMik7XG4gICAgY29uc3QgdnNpemUgPSBNYXRoLmNlaWwobSAvIDMyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhzaXplOyBpKyspIHtcbiAgICAgICAgcGhjW2ldID0gLTE7XG4gICAgICAgIG1oY1tpXSA9IDA7XG4gICAgfVxuICAgIGxldCBqID0gMDtcbiAgICBmb3IgKDsgaiA8IHZzaXplIC0gMTsgaisrKSB7XG4gICAgICAgIGxldCBtdiA9IDA7XG4gICAgICAgIGxldCBwdiA9IC0xO1xuICAgICAgICBjb25zdCBzdGFydCA9IGogKiAzMjtcbiAgICAgICAgY29uc3QgdmxlbiA9IE1hdGgubWluKDMyLCBtKSArIHN0YXJ0O1xuICAgICAgICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCB2bGVuOyBrKyspIHtcbiAgICAgICAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldIHw9IDEgPDwgaztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZXEgPSBwZXFbYS5jaGFyQ29kZUF0KGkpXTtcbiAgICAgICAgICAgIGNvbnN0IHBiID0gKHBoY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgICAgICAgICBjb25zdCBtYiA9IChtaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgICAgICAgICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgICAgICAgICAgY29uc3QgeGggPSAoKCgoZXEgfCBtYikgJiBwdikgKyBwdikgXiBwdikgfCBlcSB8IG1iO1xuICAgICAgICAgICAgbGV0IHBoID0gbXYgfCB+KHhoIHwgcHYpO1xuICAgICAgICAgICAgbGV0IG1oID0gcHYgJiB4aDtcbiAgICAgICAgICAgIGlmICgocGggPj4+IDMxKSBeIHBiKSB7XG4gICAgICAgICAgICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKChtaCA+Pj4gMzEpIF4gbWIpIHtcbiAgICAgICAgICAgICAgICBtaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwaCA9IChwaCA8PCAxKSB8IHBiO1xuICAgICAgICAgICAgbWggPSAobWggPDwgMSkgfCBtYjtcbiAgICAgICAgICAgIHB2ID0gbWggfCB+KHh2IHwgcGgpO1xuICAgICAgICAgICAgbXYgPSBwaCAmIHh2O1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGsgPSBzdGFydDsgayA8IHZsZW47IGsrKykge1xuICAgICAgICAgICAgcGVxW2IuY2hhckNvZGVBdChrKV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIGxldCBtdiA9IDA7XG4gICAgbGV0IHB2ID0gLTE7XG4gICAgY29uc3Qgc3RhcnQgPSBqICogMzI7XG4gICAgY29uc3QgdmxlbiA9IE1hdGgubWluKDMyLCBtIC0gc3RhcnQpICsgc3RhcnQ7XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgdmxlbjsgaysrKSB7XG4gICAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldIHw9IDEgPDwgaztcbiAgICB9XG4gICAgbGV0IHNjb3JlID0gbTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgICAgICBjb25zdCBlcSA9IHBlcVthLmNoYXJDb2RlQXQoaSldO1xuICAgICAgICBjb25zdCBwYiA9IChwaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgICAgICBjb25zdCBtYiA9IChtaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgICAgICBjb25zdCB4diA9IGVxIHwgbXY7XG4gICAgICAgIGNvbnN0IHhoID0gKCgoKGVxIHwgbWIpICYgcHYpICsgcHYpIF4gcHYpIHwgZXEgfCBtYjtcbiAgICAgICAgbGV0IHBoID0gbXYgfCB+KHhoIHwgcHYpO1xuICAgICAgICBsZXQgbWggPSBwdiAmIHhoO1xuICAgICAgICBzY29yZSArPSAocGggPj4+IChtIC0gMSkpICYgMTtcbiAgICAgICAgc2NvcmUgLT0gKG1oID4+PiAobSAtIDEpKSAmIDE7XG4gICAgICAgIGlmICgocGggPj4+IDMxKSBeIHBiKSB7XG4gICAgICAgICAgICBwaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKChtaCA+Pj4gMzEpIF4gbWIpIHtcbiAgICAgICAgICAgIG1oY1soaSAvIDMyKSB8IDBdIF49IDEgPDwgaTtcbiAgICAgICAgfVxuICAgICAgICBwaCA9IChwaCA8PCAxKSB8IHBiO1xuICAgICAgICBtaCA9IChtaCA8PCAxKSB8IG1iO1xuICAgICAgICBwdiA9IG1oIHwgfih4diB8IHBoKTtcbiAgICAgICAgbXYgPSBwaCAmIHh2O1xuICAgIH1cbiAgICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCB2bGVuOyBrKyspIHtcbiAgICAgICAgcGVxW2IuY2hhckNvZGVBdChrKV0gPSAwO1xuICAgIH1cbiAgICByZXR1cm4gc2NvcmU7XG59O1xuY29uc3QgZGlzdGFuY2UgPSAoYSwgYikgPT4ge1xuICAgIGlmIChhLmxlbmd0aCA8IGIubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHRtcCA9IGI7XG4gICAgICAgIGIgPSBhO1xuICAgICAgICBhID0gdG1wO1xuICAgIH1cbiAgICBpZiAoYi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGEubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAoYS5sZW5ndGggPD0gMzIpIHtcbiAgICAgICAgcmV0dXJuIG15ZXJzXzMyKGEsIGIpO1xuICAgIH1cbiAgICByZXR1cm4gbXllcnNfeChhLCBiKTtcbn07XG5jb25zdCBjbG9zZXN0ID0gKHN0ciwgYXJyKSA9PiB7XG4gICAgbGV0IG1pbl9kaXN0YW5jZSA9IEluZmluaXR5O1xuICAgIGxldCBtaW5faW5kZXggPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGRpc3QgPSBkaXN0YW5jZShzdHIsIGFycltpXSk7XG4gICAgICAgIGlmIChkaXN0IDwgbWluX2Rpc3RhbmNlKSB7XG4gICAgICAgICAgICBtaW5fZGlzdGFuY2UgPSBkaXN0O1xuICAgICAgICAgICAgbWluX2luZGV4ID0gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXJyW21pbl9pbmRleF07XG59O1xuZXhwb3J0IHsgY2xvc2VzdCwgZGlzdGFuY2UgfTtcbiIsIlwidXNlIHN0cmljdFwiO1xuLy8gUmVmZXJlbmNlOiBodHRwczovL3d3dy5nZWVrc2ZvcmdlZWtzLm9yZy9qYXJvLWFuZC1qYXJvLXdpbmtsZXItc2ltaWxhcml0eS9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuamFyb1dpbmtsZXIgPSBleHBvcnRzLmphcm8gPSB2b2lkIDA7XG4vKipcbiAqXG4gKiBAcGFyYW0gc3RyMSBTdHJpbmcgMSBmb3IgY29tcGFyZVxuICogQHBhcmFtIHN0cjIgU3RyaW5nIDIgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBvcHRpb25zIHRvIGNvbnRyb2wgY2FzZSBzZW5zaXRpdmUgb3Igbm90XG4gKi9cbmZ1bmN0aW9uIGphcm8oc3RyMSwgc3RyMiwgb3B0aW9ucykge1xuICAgIC8vIEV4aXQgZWFybHkgaWYgZWl0aGVyIGFyZSBlbXB0eS5cbiAgICBpZiAoc3RyMS5sZW5ndGggPT09IDAgfHwgc3RyMi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIC8vIENvbnZlcnQgdG8gdXBwZXIgaWYgY2FzZS1zZW5zaXRpdmUgaXMgZmFsc2UuXG4gICAgaWYgKG9wdGlvbnMgJiYgIW9wdGlvbnMuY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICBzdHIxID0gc3RyMS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICBzdHIyID0gc3RyMi50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgICAvLyBFeGFjdCBtYXRjaFxuICAgIGlmIChzdHIxID09PSBzdHIyKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICAvLyBOdW1iZXIgb2YgbWF0Y2hlc1xuICAgIHZhciBtID0gMDtcbiAgICAvLyBMZW5ndGggb2YgdHdvIFN0cmluZ3NcbiAgICB2YXIgbGVuMSA9IHN0cjEubGVuZ3RoO1xuICAgIHZhciBsZW4yID0gc3RyMi5sZW5ndGg7XG4gICAgLy8gTWF4aW11bSBkaXN0YW5jZVxuICAgIHZhciB3aW5kb3cgPSBNYXRoLmZsb29yKE1hdGgubWF4KGxlbjEsIGxlbjIpIC8gMikgLSAxO1xuICAgIC8vIEhhc2ggZm9yIG1hdGNoZXNcbiAgICB2YXIgc3RyMUhhc2ggPSBuZXcgQXJyYXkobGVuMSk7XG4gICAgdmFyIHN0cjJIYXNoID0gbmV3IEFycmF5KGxlbjIpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuMTsgaSsrKSB7XG4gICAgICAgIGZvciAodmFyIGogPSBNYXRoLm1heCgwLCBpIC0gd2luZG93KTsgaiA8PSBNYXRoLm1pbihsZW4yLCBpICsgd2luZG93ICsgMSk7IGorKykge1xuICAgICAgICAgICAgaWYgKCFzdHIxSGFzaFtpXSAmJiAhc3RyMkhhc2hbal0gJiYgc3RyMVtpXSA9PT0gc3RyMltqXSkge1xuICAgICAgICAgICAgICAgICsrbTtcbiAgICAgICAgICAgICAgICBzdHIxSGFzaFtpXSA9IHN0cjJIYXNoW2pdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBFeGl0IGVhcmx5IGlmIG5vIG1hdGNoZXMgd2VyZSBmb3VuZC5cbiAgICBpZiAobSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgLy8gQ291bnQgdGhlIHRyYW5zcG9zaXRpb25zLlxuICAgIHZhciB0ID0gMDtcbiAgICB2YXIgcG9pbnQgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuMTsgaSsrKSB7XG4gICAgICAgIGlmIChzdHIxSGFzaFtpXSkge1xuICAgICAgICAgICAgd2hpbGUgKCFzdHIySGFzaFtwb2ludF0pIHtcbiAgICAgICAgICAgICAgICBwb2ludCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN0cjEuY2hhckF0KGkpICE9PSBzdHIyLmNoYXJBdChwb2ludCsrKSkge1xuICAgICAgICAgICAgICAgIHQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB0IC89IDI7XG4gICAgcmV0dXJuIChtIC8gbGVuMSArIG0gLyBsZW4yICsgKG0gLSB0KSAvIG0pIC8gMztcbn1cbmV4cG9ydHMuamFybyA9IGphcm87XG4vKipcbiAqXG4gKiBAcGFyYW0gc3RyMSBTdHJpbmcgMSBmb3IgY29tcGFyZVxuICogQHBhcmFtIHN0cjIgU3RyaW5nIDIgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBvcHRpb25zIHRvIGNvbnRyb2wgY2FzZSBzZW5zaXRpdmUgb3Igbm90XG4gKi9cbmZ1bmN0aW9uIGphcm9XaW5rbGVyKHN0cjEsIHN0cjIsIG9wdGlvbnMpIHtcbiAgICAvLyBKYXJvIERpc3RhbmNlXG4gICAgdmFyIGphcm9EaXN0ID0gamFybyhzdHIxLCBzdHIyLCBvcHRpb25zKTtcbiAgICAvLyBTYW1lIHByZWZpeCBsZW5ndGgsIG1heGl1bSBpcyA0XG4gICAgdmFyIHByZWZpeCA9IDA7XG4gICAgaWYgKGphcm9EaXN0ID4gMC43KSB7XG4gICAgICAgIHZhciBtaW5JbmRleCA9IE1hdGgubWluKHN0cjEubGVuZ3RoLCBzdHIyLmxlbmd0aCk7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKHN0cjFbaV0gPT09IHN0cjJbaV0gJiYgaSA8IDQgJiYgaSA8IG1pbkluZGV4KSB7XG4gICAgICAgICAgICArK3ByZWZpeDtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICBqYXJvRGlzdCArPSAwLjEgKiBwcmVmaXggKiAoMSAtIGphcm9EaXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIGphcm9EaXN0O1xufVxuZXhwb3J0cy5qYXJvV2lua2xlciA9IGphcm9XaW5rbGVyO1xuIl0sIm5hbWVzIjpbInRhbmltb3RvRGlzdGFuY2UiLCJ4IiwieSIsImdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkiLCJ0b3RhbCIsInRydWVDb3VudCIsImNvbW1vbiIsImFuZFdpdGhDb3VudEJpdHMiLCJ0YW5pbW90b1NpbWlsYXJpdHkiLCJkaWNlRGlzdGFuY2UiLCJkaWNlU2ltaWxhcml0eSIsImNvc2luZURpc3RhbmNlIiwiTWF0aCIsInNxcnQiLCJjb3NpbmVTaW1pbGFyaXR5IiwiZXVjbGlkZWFuRGlzdGFuY2UiLCJoYW1taW5nRGlzdGFuY2UiLCJzb2thbERpc3RhbmNlIiwic29rYWxTaW1pbGFyaXR5Iiwia3VsY3p5bnNraURpc3RhbmNlIiwidG90YWxQcm9kIiwia3VsY3p5bnNraVNpbWlsYXJpdHkiLCJtY0Nvbm5hdWdoZXlEaXN0YW5jZSIsIm1jQ29ubmF1Z2hleVNpbWlsYXJpdHkiLCJhc3ltbWV0cmljRGlzdGFuY2UiLCJtaW4iLCJhc3ltbWV0cmljU2ltaWxhcml0eSIsImJyYXVuQmxhbnF1ZXREaXN0YW5jZSIsIm1heCIsImJyYXVuQmxhbnF1ZXRTaW1pbGFyaXR5IiwicnVzc2VsRGlzdGFuY2UiLCJsZW5ndGgiLCJydXNzZWxTaW1pbGFyaXR5Iiwicm9nb3RHb2xkYmVyZ0Rpc3RhbmNlIiwiY291bnRCaXRzIiwibGVuIiwiZGlmZiIsInJvZ290R29sZGJlcmdTaW1pbGFyaXR5Iiwic2ltaWxhcml0eSIsIlZlY3RvciIsIkZsb2F0MzJBcnJheSIsInBlcSIsIlVpbnQzMkFycmF5IiwiZGlzdGFuY2UiLCJhIiwiYiIsInRtcCIsIm4iLCJtIiwibHN0IiwicHYiLCJtdiIsInNjIiwiaSIsImNoYXJDb2RlQXQiLCJlcSIsInh2IiwibXllcnNfMzIiLCJtaGMiLCJwaGMiLCJoc2l6ZSIsImNlaWwiLCJ2c2l6ZSIsImoiLCJzdGFydCIsInZsZW4iLCJrIiwicGIiLCJtYiIsInhoIiwicGgiLCJtaCIsInNjb3JlIiwibXllcnNfeCIsImV4cG9ydHMiLCJzdHIxIiwic3RyMiIsIm9wdGlvbnMiLCJqYXJvRGlzdCIsImNhc2VTZW5zaXRpdmUiLCJ0b1VwcGVyQ2FzZSIsImxlbjEiLCJsZW4yIiwid2luZG93IiwiZmxvb3IiLCJzdHIxSGFzaCIsIkFycmF5Iiwic3RyMkhhc2giLCJ0IiwicG9pbnQiLCJjaGFyQXQiLCJqYXJvIiwicHJlZml4IiwibWluSW5kZXgiXSwic291cmNlUm9vdCI6IiJ9
|
package/dist/802.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var peptides;(()=>{"use strict";var e,r,t={6802:(e,r,t)=>{var n=t(6535),o=t(6215);self.addEventListener("message",(({data:{peptidesList:e,metric:r}})=>{return t=void 0,i=void 0,c=function*(){const t={};try{const i=n.H.calc(e,((e,t)=>o.v_[r](e,t)));t.distances=i.data}catch(e){t.error=e}self.postMessage(t)},new((a=void 0)||(a=Promise))((function(e,r){function n(e){try{s(c.next(e))}catch(e){r(e)}}function o(e){try{s(c.throw(e))}catch(e){r(e)}}function s(r){var t;r.done?e(r.value):(t=r.value,t instanceof a?t:new a((function(e){e(t)}))).then(n,o)}s((c=c.apply(t,i||[])).next())}));var t,i,a,c}))}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,o),i.exports}o.m=t,o.x=()=>{var e=o.O(void 0,[611,96],(()=>o(6802)));return o.O(e)},e=[],o.O=(r,t,n,i)=>{if(!t){var a=1/0;for(
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiODAyLmpzIiwibWFwcGluZ3MiOiJvQ0FBSUEsRUNBQUMsRSwwQ0NXUUMsS0FDUkMsaUJBQWlCLFdBQVcsRUFBR0MsTUFBUUMsZUFBY0MsY0FBZUMsT0FabEJDLE9BWTRCLEVBWm5CQyxPQVkyQixFQVpaQyxFQVk0QixZQUN0RyxNQUFNTixFQUFPLENBQUMsRUFDZCxJQUNJLE1BQU1PLEVBQUssU0FBb0JOLEdBQWMsQ0FBQ08sRUFBR0MsSUFBTSxLQUE2QlAsR0FBUU0sRUFBR0MsS0FDL0ZULEVBQUtVLFVBQVlILEVBQUdQLElBSXhCLENBRkEsTUFBT1csR0FDSFgsRUFBS1ksTUFBUUQsQ0FDakIsQ0FDQWIsS0FBS2UsWUFBWWIsRUFDckIsRUFwQlcsS0FGZ0VjLE9BWXVCLEtBVjVFQSxFQUFJQyxXQUFVLFNBQVVDLEVBQVNDLEdBQy9DLFNBQVNDLEVBQVVDLEdBQVMsSUFBTUMsRUFBS2QsRUFBVVQsS0FBS3NCLEdBQWtDLENBQXZCLE1BQU9SLEdBQUtNLEVBQU9OLEVBQUksQ0FBRSxDQUMxRixTQUFTVSxFQUFTRixHQUFTLElBQU1DLEVBQUtkLEVBQWlCLE1BQUVhLEdBQWtDLENBQXZCLE1BQU9SLEdBQUtNLEVBQU9OLEVBQUksQ0FBRSxDQUM3RixTQUFTUyxFQUFLRSxHQUpsQixJQUFlSCxFQUlhRyxFQUFPQyxLQUFPUCxFQUFRTSxFQUFPSCxRQUoxQ0EsRUFJeURHLEVBQU9ILE1BSmhEQSxhQUFpQkwsRUFBSUssRUFBUSxJQUFJTCxHQUFFLFNBQVVFLEdBQVdBLEVBQVFHLEVBQVEsS0FJakJLLEtBQUtOLEVBQVdHLEVBQVcsQ0FDN0dELEdBQU1kLEVBQVlBLEVBQVVtQixNQUFNckIsRUFBU0MsR0FBYyxLQUFLUixPQUNsRSxJQVB3QyxJQUFVTyxFQUFTQyxFQUFZUyxFQUFHUixDQXNCNUUsRyxHQ3JCRW9CLEVBQTJCLENBQUMsRUFHaEMsU0FBU0MsRUFBb0JDLEdBRTVCLElBQUlDLEVBQWVILEVBQXlCRSxHQUM1QyxRQUFxQkUsSUFBakJELEVBQ0gsT0FBT0EsRUFBYUUsUUFHckIsSUFBSUMsRUFBU04sRUFBeUJFLEdBQVksQ0FHakRHLFFBQVMsQ0FBQyxHQU9YLE9BSEFFLEVBQW9CTCxHQUFVSSxFQUFRQSxFQUFPRCxRQUFTSixHQUcvQ0ssRUFBT0QsT0FDZixDQUdBSixFQUFvQk8sRUFBSUQsRUFHeEJOLEVBQW9CUSxFQUFJLEtBR3ZCLElBQUlDLEVBQXNCVCxFQUFvQlUsT0FBRVAsRUFBVyxDQUFDLElBQUksS0FBSyxJQUFPSCxFQUFvQixRQUVoRyxPQURzQkEsRUFBb0JVLEVBQUVELEVBQ2xCLEVIakN2QnhDLEVBQVcsR0FDZitCLEVBQW9CVSxFQUFJLENBQUNmLEVBQVFnQixFQUFVQyxFQUFJQyxLQUM5QyxJQUFHRixFQUFILENBTUEsSUFBSUcsRUFBZUMsSUFDbkIsSUFBU0MsRUFBSSxFQUFHQSxFQUFJL0MsRUFBU2dELE9BQVFELElBQUssQ0FHekMsSUFGQSxJQUFLTCxFQUFVQyxFQUFJQyxHQUFZNUMsRUFBUytDLEdBQ3BDekIsR0FBWSxFQUNQMkIsRUFBSSxFQUFHQSxFQUFJUCxFQUFTTSxPQUFRQyxNQUNwQixFQUFYTCxHQUFzQkMsR0FBZ0JELElBQWFNLE9BQU9DLEtBQUtwQixFQUFvQlUsR0FBR1csT0FBT0MsR0FBU3RCLEVBQW9CVSxFQUFFWSxHQUFLWCxFQUFTTyxNQUM5SVAsRUFBU1ksT0FBT0wsSUFBSyxJQUVyQjNCLEdBQVksRUFDVHNCLEVBQVdDLElBQWNBLEVBQWVELElBRzdDLEdBQUd0QixFQUFXLENBQ2J0QixFQUFTc0QsT0FBT1AsSUFBSyxHQUNyQixJQUFJUSxFQUFJWixTQUNFVCxJQUFOcUIsSUFBaUI3QixFQUFTNkIsRUFDL0IsQ0FDRCxDQUNBLE9BQU83QixDQW5CUCxDQUpDa0IsRUFBV0EsR0FBWSxFQUN2QixJQUFJLElBQUlHLEVBQUkvQyxFQUFTZ0QsT0FBUUQsRUFBSSxHQUFLL0MsRUFBUytDLEVBQUksR0FBRyxHQUFLSCxFQUFVRyxJQUFLL0MsRUFBUytDLEdBQUsvQyxFQUFTK0MsRUFBSSxHQUNyRy9DLEVBQVMrQyxHQUFLLENBQUNMLEVBQVVDLEVBQUlDLEVBcUJqQixFSXpCZGIsRUFBb0J5QixFQUFJLENBQUNyQixFQUFTc0IsS0FDakMsSUFBSSxJQUFJSixLQUFPSSxFQUNYMUIsRUFBb0IyQixFQUFFRCxFQUFZSixLQUFTdEIsRUFBb0IyQixFQUFFdkIsRUFBU2tCLElBQzVFSCxPQUFPUyxlQUFleEIsRUFBU2tCLEVBQUssQ0FBRU8sWUFBWSxFQUFNQyxJQUFLSixFQUFXSixJQUUxRSxFQ05EdEIsRUFBb0IrQixFQUFJLENBQUMsRUFHekIvQixFQUFvQmhCLEVBQUtnRCxHQUNqQjVDLFFBQVE2QyxJQUFJZCxPQUFPQyxLQUFLcEIsRUFBb0IrQixHQUFHRyxRQUFPLENBQUNDLEVBQVViLEtBQ3ZFdEIsRUFBb0IrQixFQUFFVCxHQUFLVSxFQUFTRyxHQUM3QkEsSUFDTCxLQ05KbkMsRUFBb0JvQyxFQUFLSixHQUVaQSxFQUFVLE1DSHZCaEMsRUFBb0JxQyxFQUFJLFdBQ3ZCLEdBQTBCLGlCQUFmQyxXQUF5QixPQUFPQSxXQUMzQyxJQUNDLE9BQU9DLE1BQVEsSUFBSUMsU0FBUyxjQUFiLEVBR2hCLENBRkUsTUFBT3hELEdBQ1IsR0FBc0IsaUJBQVh5RCxPQUFxQixPQUFPQSxNQUN4QyxDQUNBLENBUHVCLEdDQXhCekMsRUFBb0IyQixFQUFJLENBQUNlLEVBQUtDLElBQVV4QixPQUFPeUIsVUFBVUMsZUFBZUMsS0FBS0osRUFBS0MsRyxNQ0FsRixJQUFJSSxFQUNBL0MsRUFBb0JxQyxFQUFFVyxnQkFBZUQsRUFBWS9DLEVBQW9CcUMsRUFBRVksU0FBVyxJQUN0RixJQUFJQyxFQUFXbEQsRUFBb0JxQyxFQUFFYSxTQUNyQyxJQUFLSCxHQUFhRyxJQUNiQSxFQUFTQyxnQkFDWkosRUFBWUcsRUFBU0MsY0FBY0MsTUFDL0JMLEdBQVcsQ0FDZixJQUFJTSxFQUFVSCxFQUFTSSxxQkFBcUIsVUFDekNELEVBQVFwQyxTQUFROEIsRUFBWU0sRUFBUUEsRUFBUXBDLE9BQVMsR0FBR21DLElBQzVELENBSUQsSUFBS0wsRUFBVyxNQUFNLElBQUlRLE1BQU0seURBQ2hDUixFQUFZQSxFQUFVUyxRQUFRLE9BQVEsSUFBSUEsUUFBUSxRQUFTLElBQUlBLFFBQVEsWUFBYSxLQUNwRnhELEVBQW9CeUQsRUFBSVYsQyxXQ1h4QixJQUFJVyxFQUFrQixDQUNyQixJQUFLLEdBZ0JOMUQsRUFBb0IrQixFQUFFZixFQUFJLENBQUNnQixFQUFTRyxLQUUvQnVCLEVBQWdCMUIsSUFFbEJnQixjQUFjaEQsRUFBb0J5RCxFQUFJekQsRUFBb0JvQyxFQUFFSixHQUU5RCxFQUdELElBQUkyQixFQUFxQnhGLEtBQTJCLHFCQUFJQSxLQUEyQixzQkFBSyxHQUNwRnlGLEVBQTZCRCxFQUFtQkUsS0FBS0MsS0FBS0gsR0FDOURBLEVBQW1CRSxLQXZCQ3hGLElBQ25CLElBQUtzQyxFQUFVb0QsRUFBYUMsR0FBVzNGLEVBQ3ZDLElBQUksSUFBSTRCLEtBQVk4RCxFQUNoQi9ELEVBQW9CMkIsRUFBRW9DLEVBQWE5RCxLQUNyQ0QsRUFBb0JPLEVBQUVOLEdBQVk4RCxFQUFZOUQsSUFJaEQsSUFERytELEdBQVNBLEVBQVFoRSxHQUNkVyxFQUFTTSxRQUNkeUMsRUFBZ0IvQyxFQUFTc0QsT0FBUyxFQUNuQ0wsRUFBMkJ2RixFQUFLLEMsS1RuQjdCSCxFQUFPOEIsRUFBb0JRLEVBQy9CUixFQUFvQlEsRUFBSSxJQUNoQnBCLFFBQVE2QyxJQUFJLENBQ2xCakMsRUFBb0JoQixFQUFFLEtBQ3RCZ0IsRUFBb0JoQixFQUFFLE1BQ3BCYSxLQUFLM0IsR1VKVCxJQUFJdUMsRUFBc0JULEVBQW9CUSxJIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2NodW5rIGxvYWRlZCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvc3RhcnR1cCBjaHVuayBkZXBlbmRlbmNpZXMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvLi9zcmMvdXRpbHMvZGlzdGFuY2UtbWF0cml4Lndvcmtlci50cyIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9pbXBvcnRTY3JpcHRzIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9zdGFydHVwIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBkZWZlcnJlZCA9IFtdO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5PID0gKHJlc3VsdCwgY2h1bmtJZHMsIGZuLCBwcmlvcml0eSkgPT4ge1xuXHRpZihjaHVua0lkcykge1xuXHRcdHByaW9yaXR5ID0gcHJpb3JpdHkgfHwgMDtcblx0XHRmb3IodmFyIGkgPSBkZWZlcnJlZC5sZW5ndGg7IGkgPiAwICYmIGRlZmVycmVkW2kgLSAxXVsyXSA+IHByaW9yaXR5OyBpLS0pIGRlZmVycmVkW2ldID0gZGVmZXJyZWRbaSAtIDFdO1xuXHRcdGRlZmVycmVkW2ldID0gW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldO1xuXHRcdHJldHVybjtcblx0fVxuXHR2YXIgbm90RnVsZmlsbGVkID0gSW5maW5pdHk7XG5cdGZvciAodmFyIGkgPSAwOyBpIDwgZGVmZXJyZWQubGVuZ3RoOyBpKyspIHtcblx0XHR2YXIgW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldID0gZGVmZXJyZWRbaV07XG5cdFx0dmFyIGZ1bGZpbGxlZCA9IHRydWU7XG5cdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBjaHVua0lkcy5sZW5ndGg7IGorKykge1xuXHRcdFx0aWYgKChwcmlvcml0eSAmIDEgPT09IDAgfHwgbm90RnVsZmlsbGVkID49IHByaW9yaXR5KSAmJiBPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLk8pLmV2ZXJ5KChrZXkpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fLk9ba2V5XShjaHVua0lkc1tqXSkpKSkge1xuXHRcdFx0XHRjaHVua0lkcy5zcGxpY2Uoai0tLCAxKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZ1bGZpbGxlZCA9IGZhbHNlO1xuXHRcdFx0XHRpZihwcmlvcml0eSA8IG5vdEZ1bGZpbGxlZCkgbm90RnVsZmlsbGVkID0gcHJpb3JpdHk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKGZ1bGZpbGxlZCkge1xuXHRcdFx0ZGVmZXJyZWQuc3BsaWNlKGktLSwgMSlcblx0XHRcdHZhciByID0gZm4oKTtcblx0XHRcdGlmIChyICE9PSB1bmRlZmluZWQpIHJlc3VsdCA9IHI7XG5cdFx0fVxuXHR9XG5cdHJldHVybiByZXN1bHQ7XG59OyIsInZhciBuZXh0ID0gX193ZWJwYWNrX3JlcXVpcmVfXy54O1xuX193ZWJwYWNrX3JlcXVpcmVfXy54ID0gKCkgPT4ge1xuXHRyZXR1cm4gUHJvbWlzZS5hbGwoW1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZSg2MTEpLFxuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZSg5Nilcblx0XSkudGhlbihuZXh0KTtcbn07IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBEaXN0YW5jZU1hdHJpeCB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy90cmVlcy9kaXN0YW5jZS1tYXRyaXgnO1xuaW1wb3J0IHsgc3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3R5cGVkLW1ldHJpY3MnO1xuY29uc3QgY3R4ID0gc2VsZjtcbmN0eC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKHsgZGF0YTogeyBwZXB0aWRlc0xpc3QsIG1ldHJpYyB9IH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBkbSA9IERpc3RhbmNlTWF0cml4LmNhbGMocGVwdGlkZXNMaXN0LCAoYSwgYikgPT4gc3RyaW5nRGlzdGFuY2VNZXRyaWNzTWV0aG9kc1ttZXRyaWNdKGEsIGIpKTtcbiAgICAgICAgZGF0YS5kaXN0YW5jZXMgPSBkbS5kYXRhO1xuICAgIH1cbiAgICBjYXRjaCAoZSkge1xuICAgICAgICBkYXRhLmVycm9yID0gZTtcbiAgICB9XG4gICAgc2VsZi5wb3N0TWVzc2FnZShkYXRhKTtcbn0pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHbHpkR0Z1WTJVdGJXRjBjbWw0TG5kdmNtdGxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltUnBjM1JoYm1ObExXMWhkSEpwZUM1M2IzSnJaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3TzBGQlFVRXNUMEZCVHl4RlFVRkRMR05CUVdNc1JVRkJReXhOUVVGTkxHMUVRVUZ0UkN4RFFVRkRPMEZCUTJwR0xFOUJRVThzUlVGQlF5dzBRa0ZCTkVJc1JVRkJReXhOUVVGTkxEQkRRVUV3UXl4RFFVRkRPMEZCUlhSR0xFMUJRVTBzUjBGQlJ5eEhRVUZYTEVsQlFWY3NRMEZCUXp0QlFVVm9ReXhIUVVGSExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVThzUlVGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUXl4WlFVRlpMRVZCUVVVc1RVRkJUU3hGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZGTzBsQlEzWkZMRTFCUVUwc1NVRkJTU3hIUVVFMFF5eEZRVUZGTEVOQlFVTTdTVUZEZWtRc1NVRkJTVHRSUVVOR0xFMUJRVTBzUlVGQlJTeEhRVUZITEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVONlF5eERRVUZETEVOQlFWTXNSVUZCUlN4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExEUkNRVUUwUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJRenRMUVVNeFFqdEpRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMUZCUTFZc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdTMEZEYUVJN1NVRkRSQ3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNwQ0xFTkJRVU1zUTBGQlFTeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMFJwYzNSaGJtTmxUV0YwY21sNGZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwySnBieTl6Y21NdmRISmxaWE12WkdsemRHRnVZMlV0YldGMGNtbDRKenRjYm1sdGNHOXlkQ0I3YzNSeWFXNW5SR2x6ZEdGdVkyVk5aWFJ5YVdOelRXVjBhRzlrYzMwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5dGJDOXpjbU12ZEhsd1pXUXRiV1YwY21samN5YzdYRzVjYm1OdmJuTjBJR04wZURvZ1YyOXlhMlZ5SUQwZ2MyVnNaaUJoY3lCaGJuazdYRzVjYm1OMGVDNWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtDZHRaWE56WVdkbEp5d2dZWE41Ym1NZ0tIdGtZWFJoT2lCN2NHVndkR2xrWlhOTWFYTjBMQ0J0WlhSeWFXTjlmU2tnUFQ0Z2UxeHVJQ0JqYjI1emRDQmtZWFJoT2lCN1pYSnliM0kvT2lCaGJua3NJR1JwYzNSaGJtTmxjejg2SUVac2IyRjBNekpCY25KaGVYMGdQU0I3ZlR0Y2JpQWdkSEo1SUh0Y2JpQWdJQ0JqYjI1emRDQmtiU0E5SUVScGMzUmhibU5sVFdGMGNtbDRMbU5oYkdNb2NHVndkR2xrWlhOTWFYTjBMRnh1SUNBZ0lDQWdLR0U2SUhOMGNtbHVaeXdnWWpvZ2MzUnlhVzVuS1NBOVBpQnpkSEpwYm1kRWFYTjBZVzVqWlUxbGRISnBZM05OWlhSb2IyUnpXMjFsZEhKcFkxMG9ZU3dnWWlrcE8xeHVJQ0FnSUdSaGRHRXVaR2x6ZEdGdVkyVnpJRDBnWkcwdVpHRjBZVHRjYmlBZ2ZTQmpZWFJqYUNBb1pTa2dlMXh1SUNBZ0lHUmhkR0V1WlhKeWIzSWdQU0JsTzF4dUlDQjlYRzRnSUhObGJHWXVjRzl6ZEUxbGMzTmhaMlVvWkdGMFlTazdYRzU5S1R0Y2JpSmRmUT09IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4vLyB0aGUgc3RhcnR1cCBmdW5jdGlvblxuX193ZWJwYWNrX3JlcXVpcmVfXy54ID0gKCkgPT4ge1xuXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcblx0Ly8gVGhpcyBlbnRyeSBtb2R1bGUgZGVwZW5kcyBvbiBvdGhlciBsb2FkZWQgY2h1bmtzIGFuZCBleGVjdXRpb24gbmVlZCB0byBiZSBkZWxheWVkXG5cdHZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXy5PKHVuZGVmaW5lZCwgWzYxMSw5Nl0sICgpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fKDY4MDIpKSlcblx0X193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyhfX3dlYnBhY2tfZXhwb3J0c19fKTtcblx0cmV0dXJuIF9fd2VicGFja19leHBvcnRzX187XG59O1xuXG4iLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmYgPSB7fTtcbi8vIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IHRoZSBlbnRyeSBjaHVuay5cbi8vIFRoZSBjaHVuayBsb2FkaW5nIGZ1bmN0aW9uIGZvciBhZGRpdGlvbmFsIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5lID0gKGNodW5rSWQpID0+IHtcblx0cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uZikucmVkdWNlKChwcm9taXNlcywga2V5KSA9PiB7XG5cdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mW2tleV0oY2h1bmtJZCwgcHJvbWlzZXMpO1xuXHRcdHJldHVybiBwcm9taXNlcztcblx0fSwgW10pKTtcbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzIGFuZCBzaWJsaW5nIGNodW5rcyBmb3IgdGhlIGVudHJ5cG9pbnRcbl9fd2VicGFja19yZXF1aXJlX18udSA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gXCJcIiArIGNodW5rSWQgKyBcIi5qc1wiO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCJ2YXIgc2NyaXB0VXJsO1xuaWYgKF9fd2VicGFja19yZXF1aXJlX18uZy5pbXBvcnRTY3JpcHRzKSBzY3JpcHRVcmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcubG9jYXRpb24gKyBcIlwiO1xudmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmRvY3VtZW50O1xuaWYgKCFzY3JpcHRVcmwgJiYgZG9jdW1lbnQpIHtcblx0aWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpXG5cdFx0c2NyaXB0VXJsID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7XG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkgc2NyaXB0VXJsID0gc2NyaXB0c1tzY3JpcHRzLmxlbmd0aCAtIDFdLnNyY1xuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCIvLyBubyBiYXNlVVJJXG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgY2h1bmtzXG4vLyBcIjFcIiBtZWFucyBcImFscmVhZHkgbG9hZGVkXCJcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDgwMjogMVxufTtcblxuLy8gaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nXG52YXIgaW5zdGFsbENodW5rID0gKGRhdGEpID0+IHtcblx0dmFyIFtjaHVua0lkcywgbW9yZU1vZHVsZXMsIHJ1bnRpbWVdID0gZGF0YTtcblx0Zm9yKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhtb3JlTW9kdWxlcywgbW9kdWxlSWQpKSB7XG5cdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuXHRcdH1cblx0fVxuXHRpZihydW50aW1lKSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuXHR3aGlsZShjaHVua0lkcy5sZW5ndGgpXG5cdFx0aW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRzLnBvcCgpXSA9IDE7XG5cdHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKGRhdGEpO1xufTtcbl9fd2VicGFja19yZXF1aXJlX18uZi5pID0gKGNodW5rSWQsIHByb21pc2VzKSA9PiB7XG5cdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuXHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0aWYodHJ1ZSkgeyAvLyBhbGwgY2h1bmtzIGhhdmUgSlNcblx0XHRcdGltcG9ydFNjcmlwdHMoX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy51KGNodW5rSWQpKTtcblx0XHR9XG5cdH1cbn07XG5cbnZhciBjaHVua0xvYWRpbmdHbG9iYWwgPSBzZWxmW1wid2VicGFja0NodW5rcGVwdGlkZXNcIl0gPSBzZWxmW1wid2VicGFja0NodW5rcGVwdGlkZXNcIl0gfHwgW107XG52YXIgcGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24gPSBjaHVua0xvYWRpbmdHbG9iYWwucHVzaC5iaW5kKGNodW5rTG9hZGluZ0dsb2JhbCk7XG5jaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IGluc3RhbGxDaHVuaztcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsIi8vIHJ1biBzdGFydHVwXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18ueCgpO1xuIl0sIm5hbWVzIjpbImRlZmVycmVkIiwibmV4dCIsInNlbGYiLCJhZGRFdmVudExpc3RlbmVyIiwiZGF0YSIsInBlcHRpZGVzTGlzdCIsIm1ldHJpYyIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiZ2VuZXJhdG9yIiwiZG0iLCJhIiwiYiIsImRpc3RhbmNlcyIsImUiLCJlcnJvciIsInBvc3RNZXNzYWdlIiwiUCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwidmFsdWUiLCJzdGVwIiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIm1vZHVsZUlkIiwiY2FjaGVkTW9kdWxlIiwidW5kZWZpbmVkIiwiZXhwb3J0cyIsIm1vZHVsZSIsIl9fd2VicGFja19tb2R1bGVzX18iLCJtIiwieCIsIl9fd2VicGFja19leHBvcnRzX18iLCJPIiwiY2h1bmtJZHMiLCJmbiIsInByaW9yaXR5Iiwibm90RnVsZmlsbGVkIiwiSW5maW5pdHkiLCJpIiwibGVuZ3RoIiwiaiIsIk9iamVjdCIsImtleXMiLCJldmVyeSIsImtleSIsInNwbGljZSIsInIiLCJkIiwiZGVmaW5pdGlvbiIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJmIiwiY2h1bmtJZCIsImFsbCIsInJlZHVjZSIsInByb21pc2VzIiwidSIsImciLCJnbG9iYWxUaGlzIiwidGhpcyIsIkZ1bmN0aW9uIiwid2luZG93Iiwib2JqIiwicHJvcCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInNjcmlwdFVybCIsImltcG9ydFNjcmlwdHMiLCJsb2NhdGlvbiIsImRvY3VtZW50IiwiY3VycmVudFNjcmlwdCIsInNyYyIsInNjcmlwdHMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsIkVycm9yIiwicmVwbGFjZSIsInAiLCJpbnN0YWxsZWRDaHVua3MiLCJjaHVua0xvYWRpbmdHbG9iYWwiLCJwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbiIsInB1c2giLCJiaW5kIiwibW9yZU1vZHVsZXMiLCJydW50aW1lIiwicG9wIl0sInNvdXJjZVJvb3QiOiIifQ==
|
|
1
|
+
var peptides;(()=>{"use strict";var e,r,t={6802:(e,r,t)=>{var n=t(6535),o=t(6215);self.addEventListener("message",(({data:{peptidesList:e,metric:r}})=>{return t=void 0,i=void 0,c=function*(){const t={};try{const i=n.H.calc(e,((e,t)=>o.v_[r](e,t)));t.distances=i.data}catch(e){t.error=e}self.postMessage(t)},new((a=void 0)||(a=Promise))((function(e,r){function n(e){try{s(c.next(e))}catch(e){r(e)}}function o(e){try{s(c.throw(e))}catch(e){r(e)}}function s(r){var t;r.done?e(r.value):(t=r.value,t instanceof a?t:new a((function(e){e(t)}))).then(n,o)}s((c=c.apply(t,i||[])).next())}));var t,i,a,c}))}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,o),i.exports}o.m=t,o.x=()=>{var e=o.O(void 0,[611,96],(()=>o(6802)));return o.O(e)},e=[],o.O=(r,t,n,i)=>{if(!t){var a=1/0;for(f=0;f<e.length;f++){for(var[t,n,i]=e[f],c=!0,s=0;s<t.length;s++)(!1&i||a>=i)&&Object.keys(o.O).every((e=>o.O[e](t[s])))?t.splice(s--,1):(c=!1,i<a&&(a=i));if(c){e.splice(f--,1);var p=n();void 0!==p&&(r=p)}}return r}i=i||0;for(var f=e.length;f>0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[t,n,i]},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>e+".js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var r=o.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&!e;)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={802:1};o.f.i=(r,t)=>{e[r]||importScripts(o.p+o.u(r))};var r=self.webpackChunkpeptides=self.webpackChunkpeptides||[],t=r.push.bind(r);r.push=r=>{var[n,i,a]=r;for(var c in i)o.o(i,c)&&(o.m[c]=i[c]);for(a&&a(o);n.length;)e[n.pop()]=1;t(r)}})(),r=o.x,o.x=()=>Promise.all([o.e(611),o.e(96)]).then(r);var i=o.x();peptides=i})();
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFBWU0sRUFBUXJDLEtBQUtvQyxHQUV4RCxDQUlELElBQUtMLEVBQVcsTUFBTSxJQUFJUSxNQUFNLHlEQUNoQ1IsRUFBWUEsRUFBVVMsUUFBUSxPQUFRLElBQUlBLFFBQVEsUUFBUyxJQUFJQSxRQUFRLFlBQWEsS0FDcEZ4RCxFQUFvQnlELEVBQUlWLEMsV0NkeEIsSUFBSVcsRUFBa0IsQ0FDckIsSUFBSyxHQWdCTjFELEVBQW9CK0IsRUFBRWYsRUFBSSxDQUFDZ0IsRUFBU0csS0FFL0J1QixFQUFnQjFCLElBRWxCZ0IsY0FBY2hELEVBQW9CeUQsRUFBSXpELEVBQW9Cb0MsRUFBRUosR0FFOUQsRUFHRCxJQUFJMkIsRUFBcUJ4RixLQUEyQixxQkFBSUEsS0FBMkIsc0JBQUssR0FDcEZ5RixFQUE2QkQsRUFBbUJFLEtBQUtDLEtBQUtILEdBQzlEQSxFQUFtQkUsS0F2QkN4RixJQUNuQixJQUFLc0MsRUFBVW9ELEVBQWFDLEdBQVczRixFQUN2QyxJQUFJLElBQUk0QixLQUFZOEQsRUFDaEIvRCxFQUFvQjJCLEVBQUVvQyxFQUFhOUQsS0FDckNELEVBQW9CTyxFQUFFTixHQUFZOEQsRUFBWTlELElBSWhELElBREcrRCxHQUFTQSxFQUFRaEUsR0FDZFcsRUFBU00sUUFDZHlDLEVBQWdCL0MsRUFBU3NELE9BQVMsRUFDbkNMLEVBQTJCdkYsRUFBSyxDLEtUbkI3QkgsRUFBTzhCLEVBQW9CUSxFQUMvQlIsRUFBb0JRLEVBQUksSUFDaEJwQixRQUFRNkMsSUFBSSxDQUNsQmpDLEVBQW9CaEIsRUFBRSxLQUN0QmdCLEVBQW9CaEIsRUFBRSxNQUNwQmEsS0FBSzNCLEdVSlQsSUFBSXVDLEVBQXNCVCxFQUFvQlEsSSIsInNvdXJjZXMiOlsid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9jaHVuayBsb2FkZWQiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL3N0YXJ0dXAgY2h1bmsgZGVwZW5kZW5jaWVzIiwid2VicGFjazovL3BlcHRpZGVzLy4vc3JjL3V0aWxzL2Rpc3RhbmNlLW1hdHJpeC53b3JrZXIudHMiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9lbnN1cmUgY2h1bmsiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vcGVwdGlkZXMvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9wZXB0aWRlcy93ZWJwYWNrL3J1bnRpbWUvaW1wb3J0U2NyaXB0cyBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL3BlcHRpZGVzL3dlYnBhY2svc3RhcnR1cCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZGVmZXJyZWQgPSBbXTtcbl9fd2VicGFja19yZXF1aXJlX18uTyA9IChyZXN1bHQsIGNodW5rSWRzLCBmbiwgcHJpb3JpdHkpID0+IHtcblx0aWYoY2h1bmtJZHMpIHtcblx0XHRwcmlvcml0eSA9IHByaW9yaXR5IHx8IDA7XG5cdFx0Zm9yKHZhciBpID0gZGVmZXJyZWQubGVuZ3RoOyBpID4gMCAmJiBkZWZlcnJlZFtpIC0gMV1bMl0gPiBwcmlvcml0eTsgaS0tKSBkZWZlcnJlZFtpXSA9IGRlZmVycmVkW2kgLSAxXTtcblx0XHRkZWZlcnJlZFtpXSA9IFtjaHVua0lkcywgZm4sIHByaW9yaXR5XTtcblx0XHRyZXR1cm47XG5cdH1cblx0dmFyIG5vdEZ1bGZpbGxlZCA9IEluZmluaXR5O1xuXHRmb3IgKHZhciBpID0gMDsgaSA8IGRlZmVycmVkLmxlbmd0aDsgaSsrKSB7XG5cdFx0dmFyIFtjaHVua0lkcywgZm4sIHByaW9yaXR5XSA9IGRlZmVycmVkW2ldO1xuXHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuXHRcdGZvciAodmFyIGogPSAwOyBqIDwgY2h1bmtJZHMubGVuZ3RoOyBqKyspIHtcblx0XHRcdGlmICgocHJpb3JpdHkgJiAxID09PSAwIHx8IG5vdEZ1bGZpbGxlZCA+PSBwcmlvcml0eSkgJiYgT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5PKS5ldmVyeSgoa2V5KSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXy5PW2tleV0oY2h1bmtJZHNbal0pKSkpIHtcblx0XHRcdFx0Y2h1bmtJZHMuc3BsaWNlKGotLSwgMSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmdWxmaWxsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYocHJpb3JpdHkgPCBub3RGdWxmaWxsZWQpIG5vdEZ1bGZpbGxlZCA9IHByaW9yaXR5O1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZihmdWxmaWxsZWQpIHtcblx0XHRcdGRlZmVycmVkLnNwbGljZShpLS0sIDEpXG5cdFx0XHR2YXIgciA9IGZuKCk7XG5cdFx0XHRpZiAociAhPT0gdW5kZWZpbmVkKSByZXN1bHQgPSByO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gcmVzdWx0O1xufTsiLCJ2YXIgbmV4dCA9IF9fd2VicGFja19yZXF1aXJlX18ueDtcbl9fd2VicGFja19yZXF1aXJlX18ueCA9ICgpID0+IHtcblx0cmV0dXJuIFByb21pc2UuYWxsKFtcblx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmUoNjExKSxcblx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmUoOTYpXG5cdF0pLnRoZW4obmV4dCk7XG59OyIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgRGlzdGFuY2VNYXRyaXggfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdHJlZXMvZGlzdGFuY2UtbWF0cml4JztcbmltcG9ydCB7IHN0cmluZ0Rpc3RhbmNlTWV0cmljc01ldGhvZHMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy90eXBlZC1tZXRyaWNzJztcbmNvbnN0IGN0eCA9IHNlbGY7XG5jdHguYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsICh7IGRhdGE6IHsgcGVwdGlkZXNMaXN0LCBtZXRyaWMgfSB9KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICBjb25zdCBkYXRhID0ge307XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZG0gPSBEaXN0YW5jZU1hdHJpeC5jYWxjKHBlcHRpZGVzTGlzdCwgKGEsIGIpID0+IHN0cmluZ0Rpc3RhbmNlTWV0cmljc01ldGhvZHNbbWV0cmljXShhLCBiKSk7XG4gICAgICAgIGRhdGEuZGlzdGFuY2VzID0gZG0uZGF0YTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgZGF0YS5lcnJvciA9IGU7XG4gICAgfVxuICAgIHNlbGYucG9zdE1lc3NhZ2UoZGF0YSk7XG59KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laR2x6ZEdGdVkyVXRiV0YwY21sNExuZHZjbXRsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbVJwYzNSaGJtTmxMVzFoZEhKcGVDNTNiM0pyWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN08wRkJRVUVzVDBGQlR5eEZRVUZETEdOQlFXTXNSVUZCUXl4TlFVRk5MRzFFUVVGdFJDeERRVUZETzBGQlEycEdMRTlCUVU4c1JVRkJReXcwUWtGQk5FSXNSVUZCUXl4TlFVRk5MREJEUVVFd1F5eERRVUZETzBGQlJYUkdMRTFCUVUwc1IwRkJSeXhIUVVGWExFbEJRVmNzUTBGQlF6dEJRVVZvUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVU4c1JVRkJReXhKUVVGSkxFVkJRVVVzUlVGQlF5eFpRVUZaTEVWQlFVVXNUVUZCVFN4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRk8wbEJRM1pGTEUxQlFVMHNTVUZCU1N4SFFVRTBReXhGUVVGRkxFTkJRVU03U1VGRGVrUXNTVUZCU1R0UlFVTkdMRTFCUVUwc1JVRkJSU3hIUVVGSExHTkJRV01zUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVTjZReXhEUVVGRExFTkJRVk1zUlVGQlJTeERRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRFJDUVVFMFFpeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaEZMRWxCUVVrc1EwRkJReXhUUVVGVExFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXp0TFFVTXhRanRKUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFGQlExWXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03UzBGRGFFSTdTVUZEUkN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzcENMRU5CUVVNc1EwRkJRU3hEUVVGRExFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTBScGMzUmhibU5sVFdGMGNtbDRmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMMkpwYnk5emNtTXZkSEpsWlhNdlpHbHpkR0Z1WTJVdGJXRjBjbWw0Snp0Y2JtbHRjRzl5ZENCN2MzUnlhVzVuUkdsemRHRnVZMlZOWlhSeWFXTnpUV1YwYUc5a2MzMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OXRiQzl6Y21NdmRIbHdaV1F0YldWMGNtbGpjeWM3WEc1Y2JtTnZibk4wSUdOMGVEb2dWMjl5YTJWeUlEMGdjMlZzWmlCaGN5Qmhibms3WEc1Y2JtTjBlQzVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLQ2R0WlhOellXZGxKeXdnWVhONWJtTWdLSHRrWVhSaE9pQjdjR1Z3ZEdsa1pYTk1hWE4wTENCdFpYUnlhV045ZlNrZ1BUNGdlMXh1SUNCamIyNXpkQ0JrWVhSaE9pQjdaWEp5YjNJL09pQmhibmtzSUdScGMzUmhibU5sY3o4NklFWnNiMkYwTXpKQmNuSmhlWDBnUFNCN2ZUdGNiaUFnZEhKNUlIdGNiaUFnSUNCamIyNXpkQ0JrYlNBOUlFUnBjM1JoYm1ObFRXRjBjbWw0TG1OaGJHTW9jR1Z3ZEdsa1pYTk1hWE4wTEZ4dUlDQWdJQ0FnS0dFNklITjBjbWx1Wnl3Z1lqb2djM1J5YVc1bktTQTlQaUJ6ZEhKcGJtZEVhWE4wWVc1alpVMWxkSEpwWTNOTlpYUm9iMlJ6VzIxbGRISnBZMTBvWVN3Z1lpa3BPMXh1SUNBZ0lHUmhkR0V1WkdsemRHRnVZMlZ6SUQwZ1pHMHVaR0YwWVR0Y2JpQWdmU0JqWVhSamFDQW9aU2tnZTF4dUlDQWdJR1JoZEdFdVpYSnliM0lnUFNCbE8xeHVJQ0I5WEc0Z0lITmxiR1l1Y0c5emRFMWxjM05oWjJVb1pHRjBZU2s3WEc1OUtUdGNiaUpkZlE9PSIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuLy8gdGhlIHN0YXJ0dXAgZnVuY3Rpb25cbl9fd2VicGFja19yZXF1aXJlX18ueCA9ICgpID0+IHtcblx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG5cdC8vIFRoaXMgZW50cnkgbW9kdWxlIGRlcGVuZHMgb24gb3RoZXIgbG9hZGVkIGNodW5rcyBhbmQgZXhlY3V0aW9uIG5lZWQgdG8gYmUgZGVsYXllZFxuXHR2YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18uTyh1bmRlZmluZWQsIFs2MTEsOTZdLCAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyg2ODAyKSkpXG5cdF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLk8oX193ZWJwYWNrX2V4cG9ydHNfXyk7XG5cdHJldHVybiBfX3dlYnBhY2tfZXhwb3J0c19fO1xufTtcblxuIiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rcyBhbmQgc2libGluZyBjaHVua3MgZm9yIHRoZSBlbnRyeXBvaW50XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjO1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHtcblx0XHRcdHZhciBpID0gc2NyaXB0cy5sZW5ndGggLSAxO1xuXHRcdFx0d2hpbGUgKGkgPiAtMSAmJiAhc2NyaXB0VXJsKSBzY3JpcHRVcmwgPSBzY3JpcHRzW2ktLV0uc3JjO1xuXHRcdH1cblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiLy8gbm8gYmFzZVVSSVxuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJhbHJlYWR5IGxvYWRlZFwiXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQ4MDI6IDFcbn07XG5cbi8vIGltcG9ydFNjcmlwdHMgY2h1bmsgbG9hZGluZ1xudmFyIGluc3RhbGxDaHVuayA9IChkYXRhKSA9PiB7XG5cdHZhciBbY2h1bmtJZHMsIG1vcmVNb2R1bGVzLCBydW50aW1lXSA9IGRhdGE7XG5cdGZvcih2YXIgbW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcblx0XHR9XG5cdH1cblx0aWYocnVudGltZSkgcnVudGltZShfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblx0d2hpbGUoY2h1bmtJZHMubGVuZ3RoKVxuXHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkcy5wb3AoKV0gPSAxO1xuXHRwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbihkYXRhKTtcbn07XG5fX3dlYnBhY2tfcmVxdWlyZV9fLmYuaSA9IChjaHVua0lkLCBwcm9taXNlcykgPT4ge1xuXHQvLyBcIjFcIiBpcyB0aGUgc2lnbmFsIGZvciBcImFscmVhZHkgbG9hZGVkXCJcblx0aWYoIWluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuXHRcdGlmKHRydWUpIHsgLy8gYWxsIGNodW5rcyBoYXZlIEpTXG5cdFx0XHRpbXBvcnRTY3JpcHRzKF9fd2VicGFja19yZXF1aXJlX18ucCArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSk7XG5cdFx0fVxuXHR9XG59O1xuXG52YXIgY2h1bmtMb2FkaW5nR2xvYmFsID0gc2VsZltcIndlYnBhY2tDaHVua3BlcHRpZGVzXCJdID0gc2VsZltcIndlYnBhY2tDaHVua3BlcHRpZGVzXCJdIHx8IFtdO1xudmFyIHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uID0gY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpO1xuY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2ggPSBpbnN0YWxsQ2h1bms7XG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCIvLyBydW4gc3RhcnR1cFxudmFyIF9fd2VicGFja19leHBvcnRzX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLngoKTtcbiJdLCJuYW1lcyI6WyJkZWZlcnJlZCIsIm5leHQiLCJzZWxmIiwiYWRkRXZlbnRMaXN0ZW5lciIsImRhdGEiLCJwZXB0aWRlc0xpc3QiLCJtZXRyaWMiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsImdlbmVyYXRvciIsImRtIiwiYSIsImIiLCJkaXN0YW5jZXMiLCJlIiwiZXJyb3IiLCJwb3N0TWVzc2FnZSIsIlAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInZhbHVlIiwic3RlcCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fd2VicGFja19tb2R1bGVfY2FjaGVfXyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImNhY2hlZE1vZHVsZSIsInVuZGVmaW5lZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwibSIsIngiLCJfX3dlYnBhY2tfZXhwb3J0c19fIiwiTyIsImNodW5rSWRzIiwiZm4iLCJwcmlvcml0eSIsIm5vdEZ1bGZpbGxlZCIsIkluZmluaXR5IiwiaSIsImxlbmd0aCIsImoiLCJPYmplY3QiLCJrZXlzIiwiZXZlcnkiLCJrZXkiLCJzcGxpY2UiLCJyIiwiZCIsImRlZmluaXRpb24iLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiZiIsImNodW5rSWQiLCJhbGwiLCJyZWR1Y2UiLCJwcm9taXNlcyIsInUiLCJnIiwiZ2xvYmFsVGhpcyIsInRoaXMiLCJGdW5jdGlvbiIsIndpbmRvdyIsIm9iaiIsInByb3AiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzY3JpcHRVcmwiLCJpbXBvcnRTY3JpcHRzIiwibG9jYXRpb24iLCJkb2N1bWVudCIsImN1cnJlbnRTY3JpcHQiLCJzcmMiLCJzY3JpcHRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJFcnJvciIsInJlcGxhY2UiLCJwIiwiaW5zdGFsbGVkQ2h1bmtzIiwiY2h1bmtMb2FkaW5nR2xvYmFsIiwicGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24iLCJwdXNoIiwiYmluZCIsIm1vcmVNb2R1bGVzIiwicnVudGltZSIsInBvcCJdLCJzb3VyY2VSb290IjoiIn0=
|