@volcengine/veplayer 1.8.2-rc.1 → 1.8.3
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/index.d.ts +1657 -824
- package/index.min.css +1 -1
- package/index.min.js +2 -2
- package/package.json +1 -5
- package/plugin/XGVideo.js +2 -0
- package/plugin/danmuMask.js +2 -0
- package/plugin/danmujs.js +2 -0
- package/plugin/dash.js +2 -0
- package/plugin/flv.js +2 -0
- package/plugin/hls.js +2 -0
- package/plugin/hlsEncrypt.js +2 -0
- package/plugin/mp4Encrypt.js +2 -0
- package/plugin/streamprobe.js +2 -0
- package/plugin/vestrategy.js +1 -0
- package/plugin/vestrategy_h265.js +1 -0
package/plugin/dash.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// Built @Tue, 12 Dec 2023 07:27:01 GMT
|
|
2
|
+
!function(e,U){"object"==typeof exports&&"undefined"!=typeof module?module.exports=U(require("core-js/modules/es.array.slice.js"),require("core-js/modules/es.array.map.js"),require("core-js/modules/es.array.concat.js"),require("core-js/modules/es.object.assign.js"),require("core-js/modules/es.object.to-string.js"),require("core-js/modules/web.dom-collections.for-each.js"),require("core-js/modules/es.object.keys.js"),require("core-js/modules/es.regexp.to-string.js"),require("xgplayer"),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.search.js"),require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.typed-array.of.js"),require("core-js/modules/es.array.iterator.js"),require("core-js/modules/es.typed-array.uint8-array.js"),require("core-js/modules/es.typed-array.copy-within.js"),require("core-js/modules/es.typed-array.every.js"),require("core-js/modules/es.typed-array.fill.js"),require("core-js/modules/es.typed-array.filter.js"),require("core-js/modules/es.typed-array.find.js"),require("core-js/modules/es.typed-array.find-index.js"),require("core-js/modules/es.typed-array.for-each.js"),require("core-js/modules/es.typed-array.includes.js"),require("core-js/modules/es.typed-array.index-of.js"),require("core-js/modules/es.typed-array.iterator.js"),require("core-js/modules/es.typed-array.join.js"),require("core-js/modules/es.typed-array.last-index-of.js"),require("core-js/modules/es.typed-array.map.js"),require("core-js/modules/es.typed-array.reduce.js"),require("core-js/modules/es.typed-array.reduce-right.js"),require("core-js/modules/es.typed-array.reverse.js"),require("core-js/modules/es.typed-array.set.js"),require("core-js/modules/es.typed-array.slice.js"),require("core-js/modules/es.typed-array.some.js"),require("core-js/modules/es.typed-array.sort.js"),require("core-js/modules/es.typed-array.subarray.js"),require("core-js/modules/es.typed-array.to-locale-string.js"),require("core-js/modules/es.typed-array.to-string.js"),require("core-js/modules/es.promise.js"),require("core-js/modules/es.array-buffer.constructor.js"),require("core-js/modules/es.string.replace.js"),require("core-js/modules/es.array.join.js"),require("core-js/modules/es.number.constructor.js"),require("core-js/modules/es.number.to-fixed.js"),require("core-js/modules/es.promise.finally.js"),require("core-js/modules/es.string.match.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.js"),require("core-js/modules/es.array.sort.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.map.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js"),require("core-js/modules/es.typed-array.int32-array.js"),require("core-js/modules/es.array.splice.js"),require("core-js/modules/es.object.values.js"),require("core-js/modules/es.string.split.js"),require("core-js/modules/web.url.js"),require("core-js/modules/web.url-search-params.js"),require("core-js/modules/es.string.includes.js"),require("core-js/modules/es.number.is-nan.js"),require("core-js/modules/es.string.repeat.js"),require("core-js/modules/es.array.find.js")):"function"==typeof define&&define.amd?define(["core-js/modules/es.array.slice.js","core-js/modules/es.array.map.js","core-js/modules/es.array.concat.js","core-js/modules/es.object.assign.js","core-js/modules/es.object.to-string.js","core-js/modules/web.dom-collections.for-each.js","core-js/modules/es.object.keys.js","core-js/modules/es.regexp.to-string.js","xgplayer","core-js/modules/es.regexp.exec.js","core-js/modules/es.string.search.js","core-js/modules/es.array.includes.js","core-js/modules/es.typed-array.of.js","core-js/modules/es.array.iterator.js","core-js/modules/es.typed-array.uint8-array.js","core-js/modules/es.typed-array.copy-within.js","core-js/modules/es.typed-array.every.js","core-js/modules/es.typed-array.fill.js","core-js/modules/es.typed-array.filter.js","core-js/modules/es.typed-array.find.js","core-js/modules/es.typed-array.find-index.js","core-js/modules/es.typed-array.for-each.js","core-js/modules/es.typed-array.includes.js","core-js/modules/es.typed-array.index-of.js","core-js/modules/es.typed-array.iterator.js","core-js/modules/es.typed-array.join.js","core-js/modules/es.typed-array.last-index-of.js","core-js/modules/es.typed-array.map.js","core-js/modules/es.typed-array.reduce.js","core-js/modules/es.typed-array.reduce-right.js","core-js/modules/es.typed-array.reverse.js","core-js/modules/es.typed-array.set.js","core-js/modules/es.typed-array.slice.js","core-js/modules/es.typed-array.some.js","core-js/modules/es.typed-array.sort.js","core-js/modules/es.typed-array.subarray.js","core-js/modules/es.typed-array.to-locale-string.js","core-js/modules/es.typed-array.to-string.js","core-js/modules/es.promise.js","core-js/modules/es.array-buffer.constructor.js","core-js/modules/es.string.replace.js","core-js/modules/es.array.join.js","core-js/modules/es.number.constructor.js","core-js/modules/es.number.to-fixed.js","core-js/modules/es.promise.finally.js","core-js/modules/es.string.match.js","core-js/modules/es.string.iterator.js","core-js/modules/web.dom-collections.iterator.js","core-js/modules/es.array.sort.js","core-js/modules/es.array.filter.js","core-js/modules/es.function.name.js","core-js/modules/es.map.js","core-js/modules/esnext.map.delete-all.js","core-js/modules/esnext.map.every.js","core-js/modules/esnext.map.filter.js","core-js/modules/esnext.map.find.js","core-js/modules/esnext.map.find-key.js","core-js/modules/esnext.map.includes.js","core-js/modules/esnext.map.key-of.js","core-js/modules/esnext.map.map-keys.js","core-js/modules/esnext.map.map-values.js","core-js/modules/esnext.map.merge.js","core-js/modules/esnext.map.reduce.js","core-js/modules/esnext.map.some.js","core-js/modules/esnext.map.update.js","core-js/modules/es.typed-array.int32-array.js","core-js/modules/es.array.splice.js","core-js/modules/es.object.values.js","core-js/modules/es.string.split.js","core-js/modules/web.url.js","core-js/modules/web.url-search-params.js","core-js/modules/es.string.includes.js","core-js/modules/es.number.is-nan.js","core-js/modules/es.string.repeat.js","core-js/modules/es.array.find.js"],U):(e="undefined"!=typeof globalThis?globalThis:e||self).DashPlugin=U(null,null,null,null,null,null,null,null,e.Player)}(this,(function(e,U,t,n,F,Q,l,i,d){"use strict";function r(e,U){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);U&&(n=n.filter((function(U){return Object.getOwnPropertyDescriptor(e,U).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var U=1;U<arguments.length;U++){var t=null!=arguments[U]?arguments[U]:{};U%2?r(Object(t),!0).forEach((function(U){u(e,U,t[U])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):r(Object(t)).forEach((function(U){Object.defineProperty(e,U,Object.getOwnPropertyDescriptor(t,U))}))}return e}function o(){o=function(){return e};var e={},U=Object.prototype,t=U.hasOwnProperty,n=Object.defineProperty||function(e,U,t){e[U]=t.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",l=F.asyncIterator||"@@asyncIterator",i=F.toStringTag||"@@toStringTag";function d(e,U,t){return Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[U]}try{d({},"")}catch(b){d=function(e,U,t){return e[U]=t}}function r(e,U,t,F){var Q=U&&U.prototype instanceof s?U:s,l=Object.create(Q.prototype),i=new k(F||[]);return n(l,"_invoke",{value:p(e,t,i)}),l}function a(e,U,t){try{return{type:"normal",arg:e.call(U,t)}}catch(b){return{type:"throw",arg:b}}}e.wrap=r;var B={};function s(){}function R(){}function c(){}var V={};d(V,Q,(function(){return this}));var h=Object.getPrototypeOf,u=h&&h(h(y([])));u&&u!==U&&t.call(u,Q)&&(V=u);var Z=c.prototype=s.prototype=Object.create(V);function S(e){["next","throw","return"].forEach((function(U){d(e,U,(function(e){return this._invoke(U,e)}))}))}function J(e,U){function F(n,Q,l,i){var d=a(e[n],e,Q);if("throw"!==d.type){var r=d.arg,o=r.value;return o&&"object"==typeof o&&t.call(o,"__await")?U.resolve(o.__await).then((function(e){F("next",e,l,i)}),(function(e){F("throw",e,l,i)})):U.resolve(o).then((function(e){r.value=e,l(r)}),(function(e){return F("throw",e,l,i)}))}i(d.arg)}var Q;n(this,"_invoke",{value:function(e,t){function n(){return new U((function(U,n){F(e,t,U,n)}))}return Q=Q?Q.then(n,n):n()}})}function p(e,U,t){var n="suspendedStart";return function(F,Q){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(t.method=F,t.arg=Q;;){var l=t.delegate;if(l){var i=W(l,t);if(i){if(i===B)continue;return i}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var d=a(e,U,t);if("normal"===d.type){if(n=t.done?"completed":"suspendedYield",d.arg===B)continue;return{value:d.arg,done:t.done}}"throw"===d.type&&(n="completed",t.method="throw",t.arg=d.arg)}}}function W(e,U){var t=U.method,n=e.iterator[t];if(void 0===n)return U.delegate=null,"throw"===t&&e.iterator.return&&(U.method="return",U.arg=void 0,W(e,U),"throw"===U.method)||"return"!==t&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+t+"' method")),B;var F=a(n,e.iterator,U.arg);if("throw"===F.type)return U.method="throw",U.arg=F.arg,U.delegate=null,B;var Q=F.arg;return Q?Q.done?(U[e.resultName]=Q.value,U.next=e.nextLoc,"return"!==U.method&&(U.method="next",U.arg=void 0),U.delegate=null,B):Q:(U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,B)}function m(e){var U={tryLoc:e[0]};1 in e&&(U.catchLoc=e[1]),2 in e&&(U.finallyLoc=e[2],U.afterLoc=e[3]),this.tryEntries.push(U)}function E(e){var U=e.completion||{};U.type="normal",delete U.arg,e.completion=U}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function y(e){if(e){var U=e[Q];if(U)return U.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,F=function U(){for(;++n<e.length;)if(t.call(e,n))return U.value=e[n],U.done=!1,U;return U.value=void 0,U.done=!0,U};return F.next=F}}return{next:N}}function N(){return{value:void 0,done:!0}}return R.prototype=c,n(Z,"constructor",{value:c,configurable:!0}),n(c,"constructor",{value:R,configurable:!0}),R.displayName=d(c,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var U="function"==typeof e&&e.constructor;return!!U&&(U===R||"GeneratorFunction"===(U.displayName||U.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,d(e,i,"GeneratorFunction")),e.prototype=Object.create(Z),e},e.awrap=function(e){return{__await:e}},S(J.prototype),d(J.prototype,l,(function(){return this})),e.AsyncIterator=J,e.async=function(U,t,n,F,Q){void 0===Q&&(Q=Promise);var l=new J(r(U,t,n,F),Q);return e.isGeneratorFunction(t)?l:l.next().then((function(e){return e.done?e.value:l.next()}))},S(Z),d(Z,i,"Generator"),d(Z,Q,(function(){return this})),d(Z,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var U=Object(e),t=[];for(var n in U)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in U)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=y,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var U in this)"t"===U.charAt(0)&&t.call(this,U)&&!isNaN(+U.slice(1))&&(this[U]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var U=this;function n(t,n){return l.type="throw",l.arg=e,U.next=t,n&&(U.method="next",U.arg=void 0),!!n}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],l=Q.completion;if("root"===Q.tryLoc)return n("end");if(Q.tryLoc<=this.prev){var i=t.call(Q,"catchLoc"),d=t.call(Q,"finallyLoc");if(i&&d){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}else if(i){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}}}},abrupt:function(e,U){for(var n=this.tryEntries.length-1;n>=0;--n){var F=this.tryEntries[n];if(F.tryLoc<=this.prev&&t.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=U&&U<=Q.finallyLoc&&(Q=null);var l=Q?Q.completion:{};return l.type=e,l.arg=U,Q?(this.method="next",this.next=Q.finallyLoc,B):this.complete(l)},complete:function(e,U){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&U&&(this.next=U),B},finish:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),E(t),B}},catch:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var F=n.arg;E(t)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,U,t){return this.delegate={iterator:y(e),resultName:U,nextLoc:t},"next"===this.method&&(this.arg=void 0),B}},e}function B(e){return(B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,U,t,n,F,Q,l){try{var i=e[Q](l),d=i.value}catch(r){return void t(r)}i.done?U(d):Promise.resolve(d).then(n,F)}function R(e){return function(){var U=this,t=arguments;return new Promise((function(n,F){var Q=e.apply(U,t);function l(e){s(Q,n,F,l,i,"next",e)}function i(e){s(Q,n,F,l,i,"throw",e)}l(void 0)}))}}function c(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function V(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,b(n.key),n)}}function h(e,U,t){return U&&V(e.prototype,U),t&&V(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function u(e,U,t){return(U=b(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function Z(e,U){if("function"!=typeof U&&null!==U)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(U&&U.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),U&&J(e,U)}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function J(e,U){return(J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,U){return e.__proto__=U,e})(e,U)}function p(e,U){if(null==e)return{};var t,n,F=function(e,U){if(null==e)return{};var t,n,F={},Q=Object.keys(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||(F[t]=e[t]);return F}(e,U);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(F[t]=e[t])}return F}function W(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){var U=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,n=S(e);if(U){var F=S(this).constructor;t=Reflect.construct(n,arguments,F)}else t=n.apply(this,arguments);return function(e,U){if(U&&("object"==typeof U||"function"==typeof U))return U;if(void 0!==U)throw new TypeError("Derived constructors may only return object or undefined");return W(e)}(this,t)}}function E(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||k(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,U){if(e){if("string"==typeof e)return y(e,U);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?y(e,U):void 0}}function y(e,U){(null==U||U>e.length)&&(U=e.length);for(var t=0,n=new Array(U);t<U;t++)n[t]=e[t];return n}function N(e,U){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=k(e))||U&&e&&"number"==typeof e.length){t&&(e=t);var n=0,F=function(){};return{s:F,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var Q,l=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return l=e.done,e},e:function(e){i=!0,Q=e},f:function(){try{l||null==t.return||t.return()}finally{if(i)throw Q}}}}function b(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}var f=function(){function e(){c(this,e)}return h(e,null,[{key:"install",value:function(){if(window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,window.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame,!window.requestAnimationFrame){var e=Date.now();window.requestAnimationFrame=function(U){var t=Date.now(),n=Math.max(16.7-(t-e),0),F=setTimeout(U,n);return e=t+n,F}}window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}}]),e}(),v=function(){function e(){c(this,e),this.fps=0,this.isStoped=!0,this.ticks=[],this.isSupport=!0,this.maxFps=0,this.step=this._step.bind(this),this.rafId=null}return h(e,[{key:"_step",value:function(e){var U=this.ticks;if(U.unshift(e),U.length>10){var t=U.pop();t&&(this.fps=Math.floor(1e4/(e-t)),this.updateFpsInfo())}this.isStoped||(this.rafId=window.requestAnimationFrame(this.step))}},{key:"updateFpsInfo",value:function(){this.fps>this.maxFps&&(this.maxFps=this.fps)}},{key:"start",value:function(){void 0!==window.requestAnimationFrame&&(this.isStoped=!1,this.rafId=window.requestAnimationFrame(this.step))}},{key:"stop",value:function(){window.cancelAnimationFrame(this.rafId),this.isStoped=!0}}],[{key:"install",value:function(){f.install()}}]),e}(),T=function(){function e(){c(this,e),this.timeID=null,this.func=null}return h(e,[{key:"repeat",value:function(e,U){this.timeID=1,this.repeatInterval(e,U)}},{key:"repeatInterval",value:function(e,U){var t=this;this.timeID&&(null===this.func&&(this.func=e),this.func===e&&(this.timeID&&clearTimeout(this.timeID),this.timeID=null,this.timeID=setTimeout((function(){e(),t.repeatInterval(e,U)}),U)))}},{key:"clear",value:function(){clearTimeout(this.timeID),this.timeID=null}}]),e}(),C=D&&!function(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(U){return!0}}();function D(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}var g={length:C?localStorage.length:0,clear:function(e){try{for(var U=localStorage.length-1;U>=0;U--){var t=localStorage.key(U);0===t.indexOf(e)&&localStorage.removeItem(t)}}catch(n){}},getItem:function(e){try{return localStorage.getItem(e)}catch(U){return null}},key:function(e){try{return localStorage.key(e)}catch(U){return null}},setItem:function(e,U){try{localStorage.setItem(e,U)}catch(t){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(U){}},isSupport:C},X=function(){function e(){var U,t;c(this,e);var n=new Promise((function(e,n){U=e,t=n}));return n.resolve=U,n.reject=t,n}return h(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),x=function(){function e(){c(this,e)}return h(e,null,[{key:"parse",value:function(U){var t=e.parseXmlString(U);return null!==t?e.parseDOMChildren(t):null}},{key:"parseXmlString",value:function(e){if(void 0===e)return null;var U,t=new window.DOMParser;try{(U=t.parseFromString(e,"text/xml")).getElementsByTagNameNS("*","parsererror").length>0&&(U=null)}catch(n){U=null}return U}},{key:"parseDOMChildren",value:function(U,t){if(U.nodeType===Node.DOCUMENT_NODE){for(var n={},F=U.childNodes,Q=0;Q<F.length;Q++){var l=F[Q];l.nodeType===Node.ELEMENT_NODE&&(n=e.parseDOMChildren(l))}return n}if(U.nodeType===Node.ELEMENT_NODE){for(var i={__cnt:0},d=[],r=U.childNodes,a=0;a<r.length;a++){var o=r[a],B=e.getNodeLocalName(o);if(o.nodeType!==Node.COMMENT_NODE){var s="".concat(t,".").concat(B);if(i.__cnt++,null==i[B]){var R=e.parseDOMChildren(o,s);if("#text"!==B||/[^\s]/.test(R)){var c={};c[B]=R,d.push(c)}i[B]=R,e.toArrayAccessForm(i,B)}else{null!=i[B]&&(i[B]instanceof Array||(i[B]=[i[B]],e.toArrayAccessForm(i,B,s)));var V=e.parseDOMChildren(o,s);if("#text"!==B||/[^\s]/.test(V)){var h={};h[B]=V,d.push(h)}i[B][i[B].length]=V}}}for(var u=0;u<U.attributes.length;u++){var Z=U.attributes[u];i.__cnt++;var S=Z.value;i[Z.name]=S}var J=U.prefix;return null!=J&&""!==J&&(i.__cnt++,i.__prefix=J),null!=i["#text"]&&(i.__text=i["#text"],i.__text instanceof Array&&(i.__text=i.__text.join("\n")),delete i["#text"],delete i["#text_asArray"]),null!=i["#cdata-section"]&&(i.__cdata=i["#cdata-section"],delete i["#cdata-section"],delete i["#cdata-section_asArray"]),1===i.__cnt&&null!=i.__text?i=i.__text:1===i.__cnt&&null!=i.__cdata&&(i=i.__cdata),delete i.__cnt,i}if(U.nodeType===Node.TEXT_NODE||U.nodeType===Node.CDATA_SECTION_NODE)return U.nodeValue}},{key:"getNodeLocalName",value:function(e){var U=e.localName;return null==U&&(U=e.baseName),null!=U&&""!==U||(U=e.nodeName),U}},{key:"toArrayAccessForm",value:function(e,U){e[U]instanceof Array||(e[U]=[e[U]])}}]),e}();function L(e,U){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);U&&(n=n.filter((function(U){return Object.getOwnPropertyDescriptor(e,U).enumerable}))),t.push.apply(t,n)}return t}function G(e){for(var U=1;U<arguments.length;U++){var t=null!=arguments[U]?arguments[U]:{};U%2?L(Object(t),!0).forEach((function(U){H(e,U,t[U])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):L(Object(t)).forEach((function(U){Object.defineProperty(e,U,Object.getOwnPropertyDescriptor(t,U))}))}return e}function I(){I=function(){return e};var e={},U=Object.prototype,t=U.hasOwnProperty,n=Object.defineProperty||function(e,U,t){e[U]=t.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",l=F.asyncIterator||"@@asyncIterator",i=F.toStringTag||"@@toStringTag";function d(e,U,t){return Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[U]}try{d({},"")}catch(N){d=function(e,U,t){return e[U]=t}}function r(e,U,t,F){var Q=U&&U.prototype instanceof B?U:B,l=Object.create(Q.prototype),i=new E(F||[]);return n(l,"_invoke",{value:J(e,t,i)}),l}function a(e,U,t){try{return{type:"normal",arg:e.call(U,t)}}catch(N){return{type:"throw",arg:N}}}e.wrap=r;var o={};function B(){}function s(){}function R(){}var c={};d(c,Q,(function(){return this}));var V=Object.getPrototypeOf,h=V&&V(V(k([])));h&&h!==U&&t.call(h,Q)&&(c=h);var u=R.prototype=B.prototype=Object.create(c);function Z(e){["next","throw","return"].forEach((function(U){d(e,U,(function(e){return this._invoke(U,e)}))}))}function S(e,U){function F(n,Q,l,i){var d=a(e[n],e,Q);if("throw"!==d.type){var r=d.arg,o=r.value;return o&&"object"==typeof o&&t.call(o,"__await")?U.resolve(o.__await).then((function(e){F("next",e,l,i)}),(function(e){F("throw",e,l,i)})):U.resolve(o).then((function(e){r.value=e,l(r)}),(function(e){return F("throw",e,l,i)}))}i(d.arg)}var Q;n(this,"_invoke",{value:function(e,t){function n(){return new U((function(U,n){F(e,t,U,n)}))}return Q=Q?Q.then(n,n):n()}})}function J(e,U,t){var n="suspendedStart";return function(F,Q){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(t.method=F,t.arg=Q;;){var l=t.delegate;if(l){var i=p(l,t);if(i){if(i===o)continue;return i}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var d=a(e,U,t);if("normal"===d.type){if(n=t.done?"completed":"suspendedYield",d.arg===o)continue;return{value:d.arg,done:t.done}}"throw"===d.type&&(n="completed",t.method="throw",t.arg=d.arg)}}}function p(e,U){var t=U.method,n=e.iterator[t];if(void 0===n)return U.delegate=null,"throw"===t&&e.iterator.return&&(U.method="return",U.arg=void 0,p(e,U),"throw"===U.method)||"return"!==t&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+t+"' method")),o;var F=a(n,e.iterator,U.arg);if("throw"===F.type)return U.method="throw",U.arg=F.arg,U.delegate=null,o;var Q=F.arg;return Q?Q.done?(U[e.resultName]=Q.value,U.next=e.nextLoc,"return"!==U.method&&(U.method="next",U.arg=void 0),U.delegate=null,o):Q:(U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,o)}function W(e){var U={tryLoc:e[0]};1 in e&&(U.catchLoc=e[1]),2 in e&&(U.finallyLoc=e[2],U.afterLoc=e[3]),this.tryEntries.push(U)}function m(e){var U=e.completion||{};U.type="normal",delete U.arg,e.completion=U}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function k(e){if(e){var U=e[Q];if(U)return U.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,F=function U(){for(;++n<e.length;)if(t.call(e,n))return U.value=e[n],U.done=!1,U;return U.value=void 0,U.done=!0,U};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return s.prototype=R,n(u,"constructor",{value:R,configurable:!0}),n(R,"constructor",{value:s,configurable:!0}),s.displayName=d(R,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var U="function"==typeof e&&e.constructor;return!!U&&(U===s||"GeneratorFunction"===(U.displayName||U.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,d(e,i,"GeneratorFunction")),e.prototype=Object.create(u),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),d(S.prototype,l,(function(){return this})),e.AsyncIterator=S,e.async=function(U,t,n,F,Q){void 0===Q&&(Q=Promise);var l=new S(r(U,t,n,F),Q);return e.isGeneratorFunction(t)?l:l.next().then((function(e){return e.done?e.value:l.next()}))},Z(u),d(u,i,"Generator"),d(u,Q,(function(){return this})),d(u,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var U=Object(e),t=[];for(var n in U)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in U)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=k,E.prototype={constructor:E,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(m),!e)for(var U in this)"t"===U.charAt(0)&&t.call(this,U)&&!isNaN(+U.slice(1))&&(this[U]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var U=this;function n(t,n){return l.type="throw",l.arg=e,U.next=t,n&&(U.method="next",U.arg=void 0),!!n}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],l=Q.completion;if("root"===Q.tryLoc)return n("end");if(Q.tryLoc<=this.prev){var i=t.call(Q,"catchLoc"),d=t.call(Q,"finallyLoc");if(i&&d){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}else if(i){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}}}},abrupt:function(e,U){for(var n=this.tryEntries.length-1;n>=0;--n){var F=this.tryEntries[n];if(F.tryLoc<=this.prev&&t.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=U&&U<=Q.finallyLoc&&(Q=null);var l=Q?Q.completion:{};return l.type=e,l.arg=U,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(l)},complete:function(e,U){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&U&&(this.next=U),o},finish:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),m(t),o}},catch:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var F=n.arg;m(t)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,U,t){return this.delegate={iterator:k(e),resultName:U,nextLoc:t},"next"===this.method&&(this.arg=void 0),o}},e}function M(e){return(M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Y(e,U,t,n,F,Q,l){try{var i=e[Q](l),d=i.value}catch(r){return void t(r)}i.done?U(d):Promise.resolve(d).then(n,F)}function w(e){return function(){var U=this,t=arguments;return new Promise((function(n,F){var Q=e.apply(U,t);function l(e){Y(Q,n,F,l,i,"next",e)}function i(e){Y(Q,n,F,l,i,"throw",e)}l(void 0)}))}}function K(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function j(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,le(n.key),n)}}function _(e,U,t){return U&&j(e.prototype,U),t&&j(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function H(e,U,t){return(U=le(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function z(e,U){if("function"!=typeof U&&null!==U)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(U&&U.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),U&&P(e,U)}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function P(e,U){return(P=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,U){return e.__proto__=U,e})(e,U)}function A(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function q(e,U,t){return(q=A()?Reflect.construct.bind():function(e,U,t){var n=[null];n.push.apply(n,U);var F=new(Function.bind.apply(e,n));return t&&P(F,t.prototype),F}).apply(null,arguments)}function $(e){var U="function"==typeof Map?new Map:void 0;return $=function(e){if(null===e||(t=e,-1===Function.toString.call(t).indexOf("[native code]")))return e;var t;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==U){if(U.has(e))return U.get(e);U.set(e,n)}function n(){return q(e,arguments,O(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),P(n,e)},$(e)}function ee(e,U){if(null==e)return{};var t,n,F=function(e,U){if(null==e)return{};var t,n,F={},Q=Object.keys(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||(F[t]=e[t]);return F}(e,U);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(F[t]=e[t])}return F}function Ue(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function te(e){var U=A();return function(){var t,n=O(e);if(U){var F=O(this).constructor;t=Reflect.construct(n,arguments,F)}else t=n.apply(this,arguments);return function(e,U){if(U&&("object"==typeof U||"function"==typeof U))return U;if(void 0!==U)throw new TypeError("Derived constructors may only return object or undefined");return Ue(e)}(this,t)}}function ne(){return ne="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,U,t){var n=function(e,U){for(;!Object.prototype.hasOwnProperty.call(e,U)&&null!==(e=O(e)););return e}(e,U);if(n){var F=Object.getOwnPropertyDescriptor(n,U);return F.get?F.get.call(arguments.length<3?e:t):F.value}},ne.apply(this,arguments)}function Fe(e,U){(null==U||U>e.length)&&(U=e.length);for(var t=0,n=new Array(U);t<U;t++)n[t]=e[t];return n}function Qe(e,U){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,U){if(e){if("string"==typeof e)return Fe(e,U);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Fe(e,U):void 0}}(e))||U&&e&&"number"==typeof e.length){t&&(e=t);var n=0,F=function(){};return{s:F,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var Q,l=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return l=e.done,e},e:function(e){i=!0,Q=e},f:function(){try{l||null==t.return||t.return()}finally{if(i)throw Q}}}}function le(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}function ie(){var e,U,t=new Promise((function(t,n){e=t,U=n}));return t.used=!1,t.resolve=function(){return t.used=!0,e.apply(void 0,arguments)},t.reject=function(){return t.used=!0,U.apply(void 0,arguments)},t}function de(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}var re,ae=function(){function e(){K(this,e)}return _(e,null,[{key:"start",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6||1===e.length&&e.start(0)<0?0:e.start(0):0}},{key:"end",value:function(e){return e&&e.length?1===e.length&&e.end(0)-e.start(0)<1e-6?0:e.end(e.length-1):0}},{key:"get",value:function(e){if(e)try{return e.buffered}catch(U){}}},{key:"buffers",value:function(e,U){if(!e||!e.length)return[];for(var t=[],n=0,F=e.length;n<F;n++){var Q=t.length;if(Q&&U){var l=t[Q-1],i=l[1];if(e.start(n)-i<=U){var d=e.end(n);d>i&&(l[1]=d)}else t.push([e.start(n),e.end(n)])}else t.push([e.start(n),e.end(n)])}return t}},{key:"totalLength",value:function(e){return e&&e.length?e.reduce((function(e,U){return e+(U[1]-U[0])}),0):0}},{key:"info",value:function(U){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!U||!U.length)return{start:0,end:0,buffers:[]};for(var F=0,Q=0,l=0,i=0,d=0,r=0,a=0,o=e.buffers(U,n),B=0,s=o.length;B<s;B++){var R=o[B];if(t+n>=R[0]&&t<=R[1])F=R[0],Q=R[1],l=B;else{if(t+n<R[0]){i=R[0],d=R[1];break}t+n>R[1]&&(r=R[0],a=R[1])}}return{start:F,end:Q,index:l,buffers:o,nextStart:i,nextEnd:d,prevStart:r,prevEnd:a,currentTime:t,behind:t-F,remaining:Q?Q-t:0,length:e.totalLength&&e.totalLength(o)}}}]),e}(),oe="manifest",Be="network",se="network_timeout",Re="network_forbidden",ce="network_notfound",Ve="network_range_not_satisfiable",he="demux",ue="remux",Ze="media",Se="drm",Je="other",pe="runtime",We={FLV:"FLV",HLS:"HLS",MP4:"MP4",FMP4:"FMP4",MSE_ADD_SB:"MSE_ADD_SB",MSE_APPEND_BUFFER:"MSE_APPEND_BUFFER",MSE_OTHER:"MSE_OTHER",MSE_FULL:"MSE_FULL",OPTION:"OPTION",DASH:"DASH",LICENSE:"LICENSE",CUSTOM_LICENSE:"CUSTOM_LICENSE",MSE_HIJACK:"MSE_HIJACK",EME_HIJACK:"EME_HIJACK",SIDX:"SIDX",NO_CANPLAY_ERROR:"NO_CANPLAY_ERROR",BUFFERBREAK_ERROR:"BUFFERBREAK_ERROR",WAITING_TIMEOUT_ERROR:"WAITING_TIMEOUT_ERROR",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_CODEC_NOT_SUPPORTED:"MEDIA_ERR_CODEC_NOT_SUPPORTED",MEDIA_ERR_URL_EMPTY:"MEDIA_ERR_URL_EMPTY"},me=(H(re={},oe,{HLS:1100,DASH:1200}),H(re,Be,2100),H(re,se,2101),H(re,Re,2103),H(re,ce,2104),H(re,Ve,2116),H(re,he,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),H(re,ue,{FMP4:4100,MP4:4200}),H(re,Ze,{MEDIA_ERR_ABORTED:5101,MEDIA_ERR_NETWORK:5102,MEDIA_ERR_DECODE:5103,MEDIA_ERR_SRC_NOT_SUPPORTED:5104,MEDIA_ERR_CODEC_NOT_SUPPORTED:5105,MEDIA_ERR_URL_EMPTY:5106,MSE_ADD_SB:5200,MSE_APPEND_BUFFER:5201,MSE_OTHER:5202,MSE_FULL:5203,MSE_HIJACK:5204,EME_HIJACK:5301}),H(re,Se,{LICENSE:7100,CUSTOM_LICENSE:7200}),H(re,Je,8e3),H(re,pe,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),re),Ee=function(e){z(t,e);var U=te(t);function t(e,n,F,Q,l){var i;return K(this,t),(i=U.call(this,l||(null==F?void 0:F.message))).errorType=e===se?Be:e,i.originError=F,i.ext=Q,i.errorCode=me[e][n]||me[e],i.errorMessage=i.message,i.errorCode||(i.errorType=Je,i.errorCode=me[i.errorType]),i}return _(t,null,[{key:"create",value:function(e,U,n,F,Q){return e instanceof t?e:(e instanceof Error&&(n=e,e=""),e||(e=Je),new t(e,U,n,F,Q))}},{key:"network",value:function(e){var U;return new t(null!=e&&e.isTimeout?se:Be,null,e instanceof Error?e:null,{url:null==e?void 0:e.url,response:null==e?void 0:e.response,httpCode:null==e||null===(U=e.response)||void 0===U?void 0:U.status})}}]),t}($(Error)),ke="undefined"!=typeof window,ye={DEBUG:1,LOG:2,WARN:3,ERROR:4},Ne=["Boolean","Number","String","Undefined","Null","Date","Object"],be=function(){function e(U,t){K(this,e),this.name=U||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==t?void 0:t.logCacheLevel)||3,this.logMaxSize=(null==t?void 0:t.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return _(e,[{key:"debug",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[ye.DEBUG].concat(n)),e.disabled||(U=console).debug.apply(U,[this._prefix,fe()].concat(n))}},{key:"log",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[ye.LOG].concat(n)),e.disabled||(U=console).log.apply(U,[this._prefix,fe()].concat(n))}},{key:"warn",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[ye.WARN].concat(n)),e.disabled||(U=console).warn.apply(U,[this._prefix,fe()].concat(n))}},{key:"error",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[ye.ERROR].concat(n)),e.disabled||(U=console).error.apply(U,[this._prefix,fe()].concat(n))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var U="";try{for(var t=arguments.length,n=new Array(t>1?t-1:0),F=1;F<t;F++)n[F-1]=arguments[F];var Q=n.map((function(e){return Te(e)}));U=this._prefix+fe()+JSON.stringify(Q)}catch(i){return}if(e>=this.logCacheLevel&&(this.logSize+=U.length,this.logTextArray.push(U)),this.logSize>this.logMaxSize){var l=this.logTextArray.shift();this.logSize-=l.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var U;e.disabled||(console.group(this._prefix),(U=console).table.apply(U,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function fe(){return(new Date).toLocaleString()}function ve(e){if("object"!==M(e))return e;var U=Object.prototype.toString.call(e).slice(8,-1);switch(U){case"Array":case"Uint8Array":case"ArrayBuffer":return U+"["+e.length+"]";case"Object":return"{}";default:return U}}function Te(e,U,t){t||(t=1),U||(U=2);var n={};if(!e||"object"!==M(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!Ne.includes(F))return F;if(!(t>U)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(t===U?n[Q]=ve(e[Q]):"object"===M(e[Q])?n[Q]=Te(e[Q],U,t+1):n[Q]=e[Q]);return n}}H(be,"disabled",!0);var Ce=function(){try{return ke?window.MediaSource:null}catch(e){}}(),De="appendBuffer",ge="removeBuffer",Xe="updateDuration",xe=function(){function e(U,t){var n=this;K(this,e),H(this,"media",null),H(this,"mediaSource",null),H(this,"_openPromise",ie()),H(this,"_queue",Object.create(null)),H(this,"_sourceBuffer",Object.create(null)),H(this,"_mseFullFlag",{}),H(this,"_st",0),H(this,"_opst",0),H(this,"_logger",null),H(this,"_config",null),H(this,"_url",null),H(this,"_onSBUpdateEnd",(function(e){var U=n._queue[e];if(U){var t=U[0];if((null==t?void 0:t.opName)!==Xe&&U.shift(),t){var F=de()-n._opst;n._logger.debug("UpdateEnd",t.opName,F,t.context),t.promise.resolve({name:t.opName,context:t.context,costtime:F}),n._startQueue(e)}}})),H(this,"_onSBUpdateError",(function(e,U){var t=n._queue[e];if(t){var F=t[0];F&&(n._logger.error("UpdateError",e,F.opName,F.context),F.promise.reject(new Ee(Ze,We.MSE_APPEND_BUFFER,U)))}})),this._config=Object.assign(e.getDefaultConfig(),t),U&&this.bindMedia(U),this._logger=new be("MSE"),this._config.openLog&&be.enable()}var U,t,n;return _(e,[{key:"isOpened",get:function(){var e;return"open"===(null===(e=this.mediaSource)||void 0===e?void 0:e.readyState)}},{key:"url",get:function(){return this._url}},{key:"duration",get:function(){var e;return(null===(e=this.mediaSource)||void 0===e?void 0:e.duration)||-1}},{key:"isEnded",get:function(){return!!this.mediaSource&&"ended"===this.mediaSource.readyState}},{key:"isFull",value:function(U){return U?this._mseFullFlag[U]:this._mseFullFlag[e.VIDEO]}},{key:"updateDuration",value:function(e){var U=this,t=this.mediaSource&&this.mediaSource.duration>e;if(this.mediaSource&&this.mediaSource.duration>e){var n=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{n=Math.max(U.bufferEnd(e)||0,n)}catch(t){}})),e<n)return Promise.resolve()}return this._enqueueBlockingOp((function(){U.isEnded?U._logger.debug("[debug mse] setDuration ended"):U.mediaSource&&(U.mediaSource.duration=e,U._logger.debug("[debug mse] setDuration"))}),Xe,{isReduceDuration:t})}},{key:"open",value:function(){var e=this;if(this._openPromise.used&&!this.isOpened&&this.mediaSource){var U=this.mediaSource;U.addEventListener("sourceopen",(function t(){var n=de()-e._st;e._logger.debug("MSE OPEN",n),U.removeEventListener("sourceopen",t),e._openPromise.resolve({costtime:n})})),this._openPromise=ie()}return this._openPromise}},{key:"bindMedia",value:(n=w(I().mark((function e(U){var t,n,F=this;return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.mediaSource&&!this.media){e.next=3;break}return e.next=3,this.unbindMedia();case 3:if(U&&Ce){e.next=5;break}throw new Error("Param media or MediaSource does not exist");case 5:return this.media=U,t=this.mediaSource=new Ce,this._st=de(),n=function e(){var n=de()-F._st;F._logger.debug("MSE OPEN"),t.removeEventListener("sourceopen",e),URL.revokeObjectURL(U.src),F._openPromise.resolve({costtime:n})},t.addEventListener("sourceopen",n),this._url=URL.createObjectURL(t),U.src=this._url,e.abrupt("return",this._openPromise);case 13:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"unbindMedia",value:(t=w(I().mark((function e(){var U,t,n,F=this;return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._openPromise.used||this._openPromise.resolve(),U=this.mediaSource){if(Object.keys(this._queue).forEach((function(e){var U=F._queue[e];U&&U.forEach((function(e){return e.promise.resolve}))})),t=!!this.media&&this.media.readyState>=1,n="open"===U.readyState,t&&n)try{U.endOfStream()}catch(Q){}Object.keys(this._sourceBuffer).forEach((function(e){try{U.removeSourceBuffer(F._sourceBuffer[e])}catch(Q){}}))}if(this.media){this.media.removeAttribute("src");try{this.media.load()}catch(Q){}this.media=null}this.mediaSource=null,this._openPromise=ie(),this._queue=Object.create(null),this._sourceBuffer=Object.create(null);case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"createSource",value:function(e,U){if(!this._sourceBuffer[e]&&this.mediaSource){var t;try{t=this._sourceBuffer[e]=this.mediaSource.addSourceBuffer(U)}catch(n){throw new Ee(Ze,We.MSE_ADD_SB,n)}t.mimeType=U,t.addEventListener("updateend",this._onSBUpdateEnd.bind(this,e)),t.addEventListener("error",this._onSBUpdateError.bind(this,e))}}},{key:"changeType",value:function(e,U){var t=this,n=this._sourceBuffer[e];return this.mediaSource&&n&&n.mimeType!==U?"function"!=typeof n.changeType?Promise.reject():this._enqueueOp(e,(function(){n.changeType(U),n.mimeType=U,t._onSBUpdateEnd(e)}),"changeType",{mimeType:U}):Promise.resolve()}},{key:"createOrChangeSource",value:function(e,U){return this.createSource(e,U),this.changeType(e,U)}},{key:"append",value:function(e,U,t){var n=this;return U&&U.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var F;n.mediaSource&&!n.media.error&&(n._logger.debug("MSE APPEND START",t),n._opst=de(),null===(F=n._sourceBuffer[e])||void 0===F||F.appendBuffer(U))}),De,t):Promise.resolve()}},{key:"remove",value:function(e,U,t,n){var F=this,Q=!1;return this._mseFullFlag[e]&&(Q=!0),this._enqueueOp(e,(function(){if(F.mediaSource&&!F.media.error){var Q=F._sourceBuffer[e];U>=t||!Q?F._onSBUpdateEnd(e):(F._opst=de(),F._logger.debug("MSE REMOVE START",e,U,t,n),Q.remove(U,t))}}),ge,n,Q)}},{key:"clearBuffer",value:function(e,U){var t,n=this;return Object.keys(this._sourceBuffer).forEach((function(F){t=n._enqueueOp(F,(function(){if(n.mediaSource&&!n.media.error){var t=n._sourceBuffer[F];n._logger.debug("MSE clearBuffer START",F,e,U),t.remove(e,U)}}),ge)})),t||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,U=this;return Object.keys(this._sourceBuffer).forEach((function(t){e=U._enqueueOp(t,(function(){if(U.mediaSource&&!U.media.error){var e=U._sourceBuffer[t];U._logger.debug("MSE clearAllBuffer START",t),e.remove(0,ae.end(ae.get(e)))}}))})),e}},{key:"clearOpQueues",value:function(e,U){var t;this._logger.debug("MSE clearOpQueue START");var n=this._queue[e];if(U&&n)this._queue[e]=[];else if(n&&n[e]&&!(n.length<5)){var F=[];n.forEach((function(e){e.context&&e.context.isinit&&F.push(e)})),this._queue[e]=n.slice(0,2),F.length>0&&(t=this._queue[e]).push.apply(t,F)}}},{key:"endOfStream",value:function(e){var U=this;return this.mediaSource&&"open"===this.mediaSource.readyState?this._enqueueBlockingOp((function(){var t=U.mediaSource;t&&"open"===t.readyState&&(U._logger.debug("MSE endOfStream START"),e?t.endOfStream(e):t.endOfStream())}),"endOfStream"):Promise.resolve()}},{key:"setLiveSeekableRange",value:function(e,U){var t=this.mediaSource;e<0||U<e||null==t||!t.setLiveSeekableRange||"open"!==t.readyState||t.setLiveSeekableRange(e,U)}},{key:"getSourceBuffer",value:function(e){return this._sourceBuffer[e]}},{key:"buffered",value:function(e){return ae.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return ae.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return ae.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,U,t,n,F){var Q=this;if(!this.mediaSource)return Promise.resolve();var l=this._queue[e]=this._queue[e]||[],i={exec:U,promise:ie(),opName:t,context:n};return F?(l.splice(0,0,i),this._mseFullFlag[e]=!1,this._startQueue(e)):l.push(i),this.isOpened||this.isEnded?1===l.length&&this._startQueue(e):this._openPromise.then((function(){1===l.length&&Q._startQueue(e)})),i.promise}},{key:"_enqueueBlockingOp",value:(U=w(I().mark((function e(U,t,n){var F,Q,l=this;return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.mediaSource){e.next=2;break}return e.abrupt("return",Promise.resolve());case 2:if((F=Object.keys(this._sourceBuffer)).length){e.next=5;break}return e.abrupt("return",U());case 5:return Q=[],F.forEach((function(e){var U=l._queue[e],F=ie();Q.push(F),U.push({exec:function(){F.resolve()},promise:F,opName:t,context:n}),1===U.length&&l._startQueue(e)})),e.abrupt("return",Promise.all(Q).then((function(){try{return U()}finally{F.forEach((function(e){var U=l._queue[e],t=l._sourceBuffer[e];null==U||U.shift(),t&&t.updating||l._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return U.apply(this,arguments)})},{key:"_startQueue",value:function(e){var U=this._queue[e];if(U){var t=U[0];if(t&&!this._mseFullFlag[e])try{t.exec()}catch(n){n&&n.message&&n.message.indexOf("SourceBuffer is full")>=0?(this._mseFullFlag[e]=!0,this._logger.error("[MSE error], context,",t.context," ,name,",t.opName,",err,SourceBuffer is full"),t.promise.reject(new Ee(Ze,We.MSE_FULL,n))):(this._logger.error(n),t.promise.reject(new Ee(Ze,We.MSE_OTHER,n)),U.shift(),this._startQueue(e))}}}},{key:"setTimeoffset",value:function(e,U,t){var n=this;return this._enqueueOp(e,(function(){U<0&&(U+=.001),n._sourceBuffer[e].timestampOffset=U,n._onSBUpdateEnd(e)}),"setTimeoffset",t)}},{key:"abort",value:function(e,U){var t=this;return this.isOpened?this._enqueueOp(e,(function(){t._sourceBuffer[e].abort(),t._onSBUpdateEnd(e)}),"abort",U):Promise.resolve()}}],[{key:"getDefaultConfig",value:function(){return{openLog:!1}}},{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"';if(!Ce)return!1;try{return Ce.isTypeSupported(e)}catch(U){return this._logger.error(e,U),!1}}}]),e}();H(xe,"VIDEO","video"),H(xe,"AUDIO","audio");var Le="fetch",Ge="xhr",Ie="arraybuffer",Me="text",Ye="json",we=function(e){z(t,e);var U=te(t);function t(e,n,F,Q){var l;return K(this,t),H(Ue(l=U.call(this,Q)),"retryCount",0),H(Ue(l),"isTimeout",!1),H(Ue(l),"loaderType",Le),H(Ue(l),"startTime",0),H(Ue(l),"endTime",0),H(Ue(l),"options",{}),l.url=e,l.request=n,l.response=F,l}return _(t)}($(Error)),Ke=Object.prototype.toString;function je(e){if("[object Object]"!==Ke.call(e))return!1;var U=Object.getPrototypeOf(e);return null===U||U===Object.prototype}function _e(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var U="bytes="+e[0]+"-";return e[1]&&(U+=e[1]),U}}function He(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function ze(e,U){if(e){if(!U)return e;var t,n=Object.keys(U).map((function(e){if(null!=(t=U[e]))return Array.isArray(t)?e+="[]":t=[t],t.map((function(U){var t;return t=U,"[object Date]"===Ke.call(t)?U=U.toISOString():function(e){return null!==e&&"object"===M(e)}(U)&&(U=JSON.stringify(U)),"".concat(He(e),"=").concat(He(U))})).join("&")})).filter(Boolean).join("&");if(n){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}}function Oe(e,U,t,n,F,Q,l,i,d,r,a){return F=null!=F?parseFloat(F):null,n=parseInt(n||"0",10),Number.isNaN(n)&&(n=0),{data:e,done:U,options:{range:d,vid:r,index:i,contentLength:n,age:F,startTime:Q,firstByteTime:l,endTime:Date.now(),priOptions:a},response:t}}function Pe(e,U){return Math.round(8*e*1e3/U/1024)}var Ae="error",qe="real_time_speed",$e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function eU(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var UU={exports:{}};!function(e){var U=Object.prototype.hasOwnProperty,t="~";function n(){}function F(e,U,t){this.fn=e,this.context=U,this.once=t||!1}function Q(e,U,n,Q,l){if("function"!=typeof n)throw new TypeError("The listener must be a function");var i=new F(n,Q||e,l),d=t?t+U:U;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],i]:e._events[d].push(i):(e._events[d]=i,e._eventsCount++),e}function l(e,U){0==--e._eventsCount?e._events=new n:delete e._events[U]}function i(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(t=!1)),i.prototype.eventNames=function(){var e,n,F=[];if(0===this._eventsCount)return F;for(n in e=this._events)U.call(e,n)&&F.push(t?n.slice(1):n);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},i.prototype.listeners=function(e){var U=t?t+e:e,n=this._events[U];if(!n)return[];if(n.fn)return[n.fn];for(var F=0,Q=n.length,l=new Array(Q);F<Q;F++)l[F]=n[F].fn;return l},i.prototype.listenerCount=function(e){var U=t?t+e:e,n=this._events[U];return n?n.fn?1:n.length:0},i.prototype.emit=function(e,U,n,F,Q,l){var i=t?t+e:e;if(!this._events[i])return!1;var d,r,a=this._events[i],o=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),o){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,U),!0;case 3:return a.fn.call(a.context,U,n),!0;case 4:return a.fn.call(a.context,U,n,F),!0;case 5:return a.fn.call(a.context,U,n,F,Q),!0;case 6:return a.fn.call(a.context,U,n,F,Q,l),!0}for(r=1,d=new Array(o-1);r<o;r++)d[r-1]=arguments[r];a.fn.apply(a.context,d)}else{var B,s=a.length;for(r=0;r<s;r++)switch(a[r].once&&this.removeListener(e,a[r].fn,void 0,!0),o){case 1:a[r].fn.call(a[r].context);break;case 2:a[r].fn.call(a[r].context,U);break;case 3:a[r].fn.call(a[r].context,U,n);break;case 4:a[r].fn.call(a[r].context,U,n,F);break;default:if(!d)for(B=1,d=new Array(o-1);B<o;B++)d[B-1]=arguments[B];a[r].fn.apply(a[r].context,d)}}return!0},i.prototype.on=function(e,U,t){return Q(this,e,U,t,!1)},i.prototype.once=function(e,U,t){return Q(this,e,U,t,!0)},i.prototype.removeListener=function(e,U,n,F){var Q=t?t+e:e;if(!this._events[Q])return this;if(!U)return l(this,Q),this;var i=this._events[Q];if(i.fn)i.fn!==U||F&&!i.once||n&&i.context!==n||l(this,Q);else{for(var d=0,r=[],a=i.length;d<a;d++)(i[d].fn!==U||F&&!i[d].once||n&&i[d].context!==n)&&r.push(i[d]);r.length?this._events[Q]=1===r.length?r[0]:r:l(this,Q)}return this},i.prototype.removeAllListeners=function(e){var U;return e?(U=t?t+e:e,this._events[U]&&l(this,U)):(this._events=new n,this._eventsCount=0),this},i.prototype.off=i.prototype.removeListener,i.prototype.addListener=i.prototype.on,i.prefixed=t,i.EventEmitter=i,e.exports=i}(UU);var tU=eU(UU.exports),nU=2097152,FU=function(e){z(n,e);var U,t=te(n);function n(){var e;return K(this,n),H(Ue(e=t.call(this)),"_abortController",null),H(Ue(e),"_timeoutTimer",null),H(Ue(e),"_reader",null),H(Ue(e),"_response",null),H(Ue(e),"_aborted",!1),H(Ue(e),"_index",-1),H(Ue(e),"_range",null),H(Ue(e),"_receivedLength",0),H(Ue(e),"_running",!1),H(Ue(e),"_logger",null),H(Ue(e),"_vid",""),H(Ue(e),"_onProcessMinLen",0),H(Ue(e),"_onCancel",null),H(Ue(e),"_priOptions",null),e}return _(n,[{key:"load",value:function(e){var U,t=this,n=e.url,F=e.vid,Q=e.timeout,l=e.responseType,i=e.onProgress,d=e.index,r=e.onTimeout,a=e.onCancel,o=e.range,B=e.transformResponse,s=e.request,R=e.params,c=e.logger,V=e.method,h=e.headers,u=e.body,Z=e.mode,S=e.credentials,J=e.cache,p=e.redirect,W=e.referrer,m=e.referrerPolicy,E=e.onProcessMinLen,k=e.priOptions;this._logger=c,this._aborted=!1,this._onProcessMinLen=E,this._onCancel=a,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=d,this._range=o||[0,0],this._vid=F||n,this._priOptions=k||{};var y={method:V,headers:h,body:u,mode:Z,credentials:S,cache:J,redirect:p,referrer:W,referrerPolicy:m,signal:null===(U=this._abortController)||void 0===U?void 0:U.signal},N=!1;clearTimeout(this._timeoutTimer),n=ze(n,R);var b=_e(o);b&&(h=s?s.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&h instanceof Headers?h.append("Range",b):h.Range=b),Q&&(this._timeoutTimer=setTimeout((function(){if(N=!0,t.cancel(),r){var e=new we(n,y,null,"timeout");e.isTimeout=!0,r(e,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})}}),Q));var f=Date.now();return this._logger.debug("[fetch load start], index,",d,",range,",o),new Promise((function(e,U){fetch(s||n,s?void 0:y).then(function(){var F=w(I().mark((function F(Q){var r,a,s,R;return I().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(t._timeoutTimer),t._response=Q,!t._aborted&&t._running){F.next=4;break}return F.abrupt("return");case 4:if(B&&(Q=B(Q,n)||Q),Q.ok){F.next=7;break}throw new we(n,y,Q,"bad network response");case 7:if(r=Date.now(),l!==Me){F.next=15;break}return F.next=11,Q.text();case 11:a=F.sent,t._running=!1,F.next=37;break;case 15:if(l!==Ye){F.next=22;break}return F.next=18,Q.json();case 18:a=F.sent,t._running=!1,F.next=37;break;case 22:if(!i){F.next=29;break}return t.resolve=e,t.reject=U,t._loadChunk(Q,i,f,r),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:a=F.sent,a=new Uint8Array(a),t._running=!1,s=Date.now()-f,R=Pe(a.byteLength,s),t.emit(qe,{speed:R,len:a.byteLength,time:s,vid:t._vid,index:t._index,range:t._range,priOptions:t._priOptions});case 37:t._logger.debug("[fetch load end], index,",d,",range,",o),e(Oe(a,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),f,r,d,o,t._vid,t._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(t._timeoutTimer),t._running=!1,t._aborted&&!N||((e=e instanceof we?e:new we(n,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=f,e.endTime=Date.now(),e.isTimeout=N,e.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},U(e))}))}))}},{key:"cancel",value:(U=w(I().mark((function e(){return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(U){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return U.apply(this,arguments)})},{key:"_loadChunk",value:function(e,U,t,n){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new we(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(nU),this._writeIdx=0);var l,i,d,r=this._reader=e.body.getReader(),a=function(){var Q=w(I().mark((function Q(){var o,B,s,R,c,V,h,u;return I().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return i=Date.now(),Q.prev=1,Q.next=4,r.read();case 4:l=Q.sent,d=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),d=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(B=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,s=B+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,U(void 0,!1,{range:[s,s],vid:F._vid,index:F._index,startTime:i,endTime:d,st:t,firstByteTime:n,priOptions:F._priOptions},e),Q.abrupt("return");case 19:R=l.value?l.value.byteLength:0,F._receivedLength+=R,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",s,", end,",B+F._receivedLength,", done,",l.done),F._onProcessMinLen>0?F._writeIdx+R>=F._onProcessMinLen||l.done?((c=new Uint8Array(F._writeIdx+R)).set(F._cache.slice(0,F._writeIdx),0),R>0&&c.set(l.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",l.done,",len,",c.byteLength,", writeIdx,",F._writeIdx)):R>0&&F._writeIdx+R<nU?(F._cache.set(l.value,F._writeIdx),F._writeIdx+=R,F._logger.debug("【fetchLoader,onProgress cache】,len,",R,", writeIdx,",F._writeIdx)):R>0&&(V=new Uint8Array(F._writeIdx+R+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+R+2048,", datalen,",R,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),R>0&&V.set(l.value,F._writeIdx),F._writeIdx+=R,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",R,", writeIdx,",F._writeIdx)):c=l.value,(c&&c.byteLength>0||l.done)&&U(c,l.done,{range:[F._range[0]+F._receivedLength-(c?c.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:i,endTime:d,st:t,firstByteTime:n,priOptions:F._priOptions},e),l.done?(h=Date.now()-t,u=Pe(F._receivedLength,h),F.emit(qe,{speed:u,len:F._receivedLength,time:h,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",l.done),F.resolve(Oe(l,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),t,n,F._index,F._range,F._vid,F._priOptions))):a();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();a()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),n}(tU);var QU=function(e){z(t,e);var U=te(t);function t(){var e;return K(this,t),H(Ue(e=U.call(this)),"_xhr",null),H(Ue(e),"_aborted",!1),H(Ue(e),"_timeoutTimer",null),H(Ue(e),"_range",null),H(Ue(e),"_receivedLength",0),H(Ue(e),"_url",null),H(Ue(e),"_onProgress",null),H(Ue(e),"_index",-1),H(Ue(e),"_headers",null),H(Ue(e),"_currentChunkSizeKB",384),H(Ue(e),"_timeout",null),H(Ue(e),"_xhr",null),H(Ue(e),"_withCredentials",null),H(Ue(e),"_startTime",-1),H(Ue(e),"_loadCompleteResolve",null),H(Ue(e),"_loadCompleteReject",null),H(Ue(e),"_runing",!1),H(Ue(e),"_logger",!1),H(Ue(e),"_vid",""),H(Ue(e),"_responseType",void 0),H(Ue(e),"_credentials",void 0),H(Ue(e),"_method",void 0),H(Ue(e),"_transformResponse",void 0),H(Ue(e),"_firstRtt",void 0),H(Ue(e),"_onCancel",null),H(Ue(e),"_priOptions",null),e}return _(t,[{key:"load",value:function(e){var U=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=ze(e.url,e.params);var t=Date.now();return new Promise((function(e,t){U._loadCompleteResolve=e,U._loadCompleteReject=t,U._startLoad()})).catch((function(e){if(clearTimeout(U._timeoutTimer),U._runing=!1,!U._aborted)throw(e=e instanceof we?e:new we(U._url,U._request)).startTime=t,e.endTime=Date.now(),e.options={index:U._index,vid:U._vid,priOptions:U._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===Ie&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var U=1024*this._currentChunkSizeKB,t=this._range[0]+this._receivedLength,n=this._range[1];U<this._range[1]-t&&(n=t+U),e=[t,n],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var U=this;try{this._startTime=Date.now();var t=this._xhr=new XMLHttpRequest;t.open(this._method||"GET",this._url,!0),t.responseType=this._responseType,this._timeout&&(t.timeout=this._timeout),t.withCredentials=this._withCredentials,t.onload=this._onLoad.bind(this),t.onreadystatechange=this._onReadyStatechange.bind(this),t.onerror=function(e){var t,n,F;U._running=!1;var Q=new we(U._url,U._request,null==e||null===(t=e.currentTarget)||void 0===t?void 0:t.response,"xhr.onerror.status:"+(null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions},U._loadCompleteReject(Q)},t.ontimeout=function(e){U.cancel();var t=new we(U._url,U._request,{status:408},"timeout");U._onTimeout&&(t.isTimeout=!0,U._onTimeout(t,{index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions})),t.options={index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions},U._loadCompleteReject(t)};var n=this._headers||{},F=_e(e);F&&(n.Range=F),n&&Object.keys(n).forEach((function(e){t.setRequestHeader(e,n[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),t.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var U,t=e.target.status;if(t<200||t>299){var n=new we(this._url,null,G(G({},e.target.response),{},{status:t}),"bad response,status:"+t);return n.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(n)}var F,Q=null,l=!1,i=(null===(U=this._range)||void 0===U?void 0:U.length)>0?this._range[0]:0;if(this._responseType===Ie){var d,r=new Uint8Array(e.target.response);if(F=i+this._receivedLength,r&&r.byteLength>0){this._receivedLength+=r.byteLength;var a=Date.now()-this._startTime,o=Pe(this._receivedLength,a);this.emit(qe,{speed:o,len:this._receivedLength,time:a,vid:this._vid,index:this._index,range:[F,i+this._receivedLength],priOptions:this._priOptions})}Q=r,l=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",i+this._receivedLength,",dataLen,",r?r.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",l)}else l=!0,Q=e.target.response;var B={ok:t>=200&&t<300,status:t,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(B=this._transformResponse(B,this._url)||B),this._onProgress&&this._onProgress(Q,l,{index:this._index,vid:this._vid,range:[F,i+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},B),l?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(Oe(this._onProgress?null:Q,l,B,B.headers["content-length"],B.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,ne(O(t.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var U,t={},n=Qe(e.getAllResponseHeaders().trim().split("\r\n"));try{for(n.s();!(U=n.n()).done;){var F=U.value.split(": ");t[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){n.e(Q)}finally{n.f()}return t}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),t}(tU),lU=["retry","retryDelay","onRetryError","transformError"],iU=function(){function e(U,t){K(this,e),this.promise=ie(),this.alive=!!t.onProgress,!t.logger&&(t.logger=new be("Loader")),this._loaderType=U,this._loader=U===Le&&window.fetch?new FU:new QU,this._config=t,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=t.retryCheckFunc,this._logger=t.logger}var U;return _(e,[{key:"exec",value:function(){var e=this,U=this._config,t=U.retry,n=U.retryDelay,F=U.onRetryError,Q=U.transformError,l=ee(U,lU),i=function(){var U=w(I().mark((function U(){var d,r,a;return I().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return U.prev=0,U.next=3,e._loader.load(l);case 3:d=U.sent,e.promise.resolve(d),U.next=27;break;case 7:if(U.prev=7,U.t0=U.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",U.t0),!e._canceled){U.next=13;break}return U.abrupt("return");case 13:if(U.t0.loaderType=e._loaderType,U.t0.retryCount=e._retryCount,r=U.t0,Q&&(r=Q(r)||r),F&&e._retryCount>0&&F(r,e._retryCount,{index:l.index,vid:l.vid,range:l.range,priOptions:l.priOptions}),e._retryCount++,a=!0,e._retryCheckFunc&&(a=e._retryCheckFunc(U.t0)),!(a&&e._retryCount<=t)){U.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",l.range),e._retryTimer=setTimeout(i,n),U.abrupt("return");case 26:e.promise.reject(r);case 27:case"end":return U.stop()}}),U,null,[[0,7]])})));return function(){return U.apply(this,arguments)}}();return i(),this.promise}},{key:"cancel",value:(U=w(I().mark((function e(){return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function dU(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(U){return setTimeout(U,e)}))}var rU=function(e){z(n,e);var U,t=te(n);function n(e){var U;return K(this,n),H(Ue(U=t.call(this,e)),"type",Le),H(Ue(U),"_queue",[]),H(Ue(U),"_alive",[]),H(Ue(U),"_currentTask",null),H(Ue(U),"_config",void 0),U._config=function(e){return G({loaderType:Le,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:Me,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}(e),U._config.loaderType!==Ge&&FU.isSupported()||(U.type=Ge),U.log=e.logger,U}return _(n,[{key:"isFetch",value:function(){return this.type===Le}},{key:"load",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?t=e:t.url=e||t.url||this._config.url,(t=Object.assign({},this._config,t)).params&&(t.params=Object.assign({},t.params)),t.headers&&je(t.headers)&&(t.headers=Object.assign({},t.headers)),t.body&&je(t.body)&&(t.body=Object.assign({},t.body)),t.transformRequest&&(t=t.transformRequest(t)||t),t.logger=this.log;var n=new iU(this.type,t);return n.loader.on(qe,(function(e){U.emit(qe,e)})),this._queue.push(n),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),n.promise}},{key:"cancel",value:(U=w(I().mark((function e(){var U;return I().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&U.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(U);case 6:return e.next=8,dU();case 8:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var U=this._currentTask.exec().catch((function(e){}));U&&"function"==typeof U.finally&&U.finally((function(){var U,t;null!==(U=e._currentTask)&&void 0!==U&&U.alive&&(null===(t=e._alive)||void 0===t?void 0:t.length)>0&&(e._alive=e._alive.filter((function(U){return U&&U!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return FU.isSupported()}}]),n}(tU),aU="undefined"!=typeof window&&(window.location.search.indexOf("log=true")>-1||!!g.getItem("abrdebug")||!!g.getItem("playerlog"));var oU=new be("Logger",{logCacheLevel:ye.DEBUG});aU&&be.enable();var BU={},sU=["abr"],RU=function(e){sU.includes(e)?BU[e]=aU?function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];(U=console).log.apply(U,["[".concat(e,"]"),(new Date).toLocaleString()].concat(n))}:function(){}:BU[e]=function(){for(var U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];oU.log.apply(oU,["[".concat(e,"]")].concat(t))}};for(var cU in{log:"log",network:"network",abr:"abr",encrypt:"encrypt",segment:"segment",definition:"definition",content:"content",mse:"mse",media:"media",time:"time",preload:"preload",gap:"gap"})RU(cU);function VU(){return oU}var hU=BU,uU=1e3,ZU=6e3,SU="danger_d_speed",JU={"x-cache":"x_cache","x-response-sinfo":"server_ip"},pU={"360p":.45,"480p":.75,"720p":1.6,"1080p":5,"2k":7.5,"4k":12.5},WU="player_start",mU="wasm_start",EU="wasm_ready",kU="init_finished",yU="core_start",NU="start_play",bU="error_handler",fU="next_finished",vU=0,TU=1,CU=2,DU="media_exception",gU="task_request_error",XU=1,xU={MAIN:"0",BACK:"1"},LU={INIT:"init",ERR:"error"},GU="currentDashType",IU="cdn",MU="pcdn";function YU(){var e=window.navigator.userAgent,U=e.indexOf("MSIE "),t=e.indexOf("Trident/");return U>0||t>0}function wU(){return window.navigator.userAgent.toLowerCase().indexOf("qqbrowser")>-1}function KU(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function jU(){return navigator.userAgent.indexOf("Edge")>0}function _U(){var e,U=KU(),t=YU(),n=(e=window.navigator.userAgent,!(window.location.search.indexOf("firefox_dash=true")>-1||g.getItem("firefox_dash"))&&e.toLowerCase().indexOf("firefox")>-1),F=jU();return U||t||n||F}function HU(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":B(WebAssembly))&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(U){console.log(U)}return!1}function zU(){var e=window.MediaSource=window.MediaSource||window.WebKitMediaSource;return e&&"function"==typeof e.isTypeSupported}var OU=['video/mp4; codecs="av01.0.01M.08,mp4a.40.5"'];function PU(e){if(!zU())return!1;for(var U=0;U<e.length;U++){var t=e[U];if(MediaSource.isTypeSupported(t))return!0}return!1}function AU(){return!!navigator.requestMediaKeySystemAccess&&!_U()}var qU=Object.freeze({__proto__:null,AV1MimeTypes:OU,checkWebAssemblySupport:HU,getDrmServerUrl:function(e){return new Promise((function(U){HU()&&zU()&&navigator.requestMediaKeySystemAccess||U(void 0);KU();var t=navigator.userAgent.toLowerCase().indexOf("chrome")>-1,n=jU();t&&!wU()?navigator.requestMediaKeySystemAccess("com.widevine.alpha",[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'}]}]).then((function(){U("https://".concat(e,"/video/drm/v1/widevine?aid=32&kid="))}),(function(){U(void 0)})):U(n?"https://".concat(e,"/video/drm/v1/playready?aid=32&kid="):void 0)}))},isAV1Supported:function(){return PU(OU)},isCodecSupported:PU,isEMESupported:AU,isEncryptSupported:function(){return HU()&&zU()&&!YU()&&!wU()},isSupported:function(){return HU()&&zU()&&!YU()}}),$U={};function et(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}$U.ArrayBufferToString=function(e){for(var U="",t=new Uint8Array(e),n=0;n<t.length;n++)U+=String.fromCharCode(t[n]);return U},$U.StringToArrayBuffer=function(e){for(var U=new ArrayBuffer(e.length),t=new Uint8Array(U),n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return U},$U.Base64ToHex=function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(U){for(var n=[],F=0;F<t.length;F++)n.push(t.charCodeAt(F));return new Uint8Array(n).buffer}for(var Q="",l=0;l<t.length;l++)Q+="0".concat(t.charCodeAt(l).toString(16)).substr(-2);return Q},$U.HexToBase64=function(e){for(var U="",t=0;t<e.length;t+=2)U+=String.fromCharCode(parseInt(e.substr(t,2),16));return window.btoa(U).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")},$U.padStart=function(e,U,t){for(var n=String(t),F=U>>0,Q=Math.ceil(F/n.length),l=[],i=String(e);Q--;)l.push(n);return l.join("").substring(0,F-i.length)+i},$U.durationConvert=function(e){var U=0,t=0,n=0;return(e=e.slice(e.indexOf("PT")+2)).indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(U=parseFloat(e.slice(0,e.indexOf("H"))),t=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M"))),n=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")<0?(U=parseFloat(e.slice(0,e.indexOf("H"))),t=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M")))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(t=parseFloat(e.slice(0,e.indexOf("M"))),n=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")<0&&e.indexOf("S")>-1?(U=parseFloat(e.slice(0,e.indexOf("H"))),n=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("S")))):e.indexOf("H")<0&&e.indexOf("M")<0&&e.indexOf("S")>-1?n=parseFloat(e.slice(0,e.indexOf("S"))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")<0&&(t=parseFloat(e.slice(0,e.indexOf("M")))),3600*U+60*t+n},$U.preFixInterge=function(e,U){return(Array(U).join(0)+e).slice(-U)},$U.toHex=function(){for(var e=[],U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];return t.forEach((function(U){e.push($U.padStart(Number(U).toString(16),2,0))})),e},$U.sum=function(){for(var e=0,U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];return t.forEach((function(U){e+=U})),e},$U.toUTF8=function(e){for(var U=encodeURIComponent(e),t=unescape(U),n=new Uint8Array(t.length),F=0;F<t.length;++F)n[F]=t.charCodeAt(F);return n.buffer},$U.fromHex=function(e){for(var U=new Uint8Array(e.length/2),t=0;t<e.length;t+=2)U[t/2]=parseInt(e.substr(t,2),16);return U},$U.fromCharCode=function(e){for(var U="",t=0;t<e.length;t+=16e3){var n=e.subarray(t,t+16e3);U+=String.fromCharCode.apply(null,n)}return U},$U.toBase64=function(e,U){var t=$U.fromCharCode(e);U=void 0===U||U;var n=window.btoa(t).replace(/\+/g,"-").replace(/\//g,"_");return U?n:n.replace(/=*$/,"")},$U.str2hex=function(e){if(""===e)return"";for(var U=[],t=0;t<e.length;t++)U.push(e.charCodeAt(t));return U},$U.bufferToString=function(e){return"0".concat(Number(e).toString(16)).slice(-2).toUpperCase()},$U.stringToBuffer=function(e){for(var U=[],t=0;t<e.length;t+=2)U.push(parseInt(e[t]+e[t+1],16));return new Uint8Array(U)},$U.round=function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Number(e.toFixed(U))},$U.isSogou=function(){return window.navigator.userAgent.toLowerCase().indexOf("metasr")>-1},$U.isEdge=function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("edge")>-1||e.indexOf("edg/")>-1},$U.offInDestroy=function(e,U,t,n){e.once(n,(function F(){e.off(U,t),e.off(n,F)}))},$U.on=function(e,U,t,n){if(n)e.on(U,t),$U.offInDestroy(e,U,t,n);else{e.on(U,(function n(F){t(F),e.off(U,n)}))}},$U.once=function(e,U,t,n){if(n)e.once(U,t),$U.offInDestroy(e,U,t,n);else{e.once(U,(function n(F){t(F),e.off(U,n)}))}},$U.promisePolyfill=function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var U=function(U){return Promise.resolve(e()).then(U)};return this.then((function(e){return U((function(){return e}))}),(function(e){return U((function(){return Promise.reject(e)}))}))}}.finally)},$U.transformHeaders=function(e,U){var t=Object.assign({},e);return Object.keys(U).forEach((function(n){var F=U[n];e&&e[n]&&(t[F]=e[n],delete t[n])})),t},$U.generateUniqueKey=function(e){var U=e.vid,t=e.start,n=e.end,F=e.mediaType,Q=e.definition,l=e.codecType,i=e.format;return t=t||0,n=n||0,l=l||"h264",i=i||"dash",U&&F?Q?"".concat(U,"#").concat(F,"#").concat(Q,"#").concat(t,"#").concat(n,"#").concat(l,"#").concat(i):"".concat(U,"#").concat(F,"#").concat(t,"#").concat(n,"#").concat(l,"#").concat(i):null},$U.getDefinition=function(e){if(!e)return null;var U=e.split("#");return U.length>2?U[2]:null},$U.exchangeListUrl=function(e){if(e&&0!==e.length)for(var U=0;U<e.length;U++)$U.exchangeUrl(e[U])},$U.exchangeUrl=function(e){if(e&&e.main_url&&e.backup_url_1){var U=e.main_url,t=e.backup_url_1,n=U.split("?");2===n.length&&-1===t.indexOf("?")?(e.main_url="".concat(t,"?").concat(n[1]),e.backup_url_1=n[0]):(e.main_url=t,e.backup_url_1=U)}},$U.validateFragment=function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(e instanceof ArrayBuffer){try{var t=new Uint8Array(e,4,4),n=String.fromCharCode.apply(null,t);if(2===U.length){var F=U[1]-U[0]+1;if(!(e.byteLength===F))return}if("moof"!==n&&"styp"!==n&&"ftyp"!==n)return!1}catch(Q){return!1}return!0}return!1},$U.validateUrlRange=function(e,U){if((e=e||[]).length>0&&U)for(var t=0;t<e.length;t++){var n=e[t];if(/([0-9.\-A-Za-z]+)/.test(n)&&U.indexOf(n)>-1)return!0}return!1},$U.nowTime=function(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}},$U.getBitrateItem=function(e,U,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=U,Q=$U.getSelectorList(e,t);return F.getSuitableBitrate?F.getSuitableBitrate(Q,n):F.bitRateAdapter.select(Q)},$U.getSelectorList=function(e,U){for(var t=e.dynamic_video_list,n=[],F=0;F<t.length;F++){var Q=t[F];n.push({bitrate:Q.bitrate,definition:Q.definition,duration:U})}return n},$U.typeof=et,$U.getHostFromUrl=function(e){if("String"!==et(e)||!e)return"";var U=e.split("/"),t="";return U.length>3&&U[2]&&(t=U[2]),t};var Ut=$U,tt="PRELOAD_NEXT",nt="PRELOAD_SEG_DONE",Ft="PREPARE",Qt="IDLE",lt="FINISH",it={VIDEO:0,AUDIO:1,MIXED:2},dt=1,rt=0,at=1,ot=function(e){Z(t,e);var U=m(t);function t(e,n,F,Q,l){var i;c(this,t),(i=U.call(this)).state=Ft,i.options=e||{},i.logger=e.logger||function(){},i._preloadManager=n,i.player=n.player;var d=F.handlers,r=F.predictInst,a=F.readyPromise;return i._predictInst=r,i._handlers=d,i._predictInstReadyPromise=a,i._toLoadList=[],i.retryCount=0,i._cachedHandler=Q,i._cachedDataHandler=l,i.cnt=0,i}return h(t,[{key:"start",value:function(){var e=this,U=new X;return this._handlers.start(this.options).then((function(t){t.onObtain().then((function(n){e._predictInstReadyPromise.then((function(){e._predictInst.updateMediaInfos(n);var F=e._predictInst.preloadPredict(e.options),Q=e._predictInst.cachedData;e._cachedDataHandler(Object.assign({vid:e.options.vid},{data:Q}));var l=Object.assign(F,e.options);t.onTransform(l).then((function(t){e._toLoadList=t,U.resolve(t)}))}))}))})).catch((function(){U.reject(new Error("preload unit start error"))})),U}},{key:"preloadSeg",value:function(){var e=this;if(0===this._toLoadList.length)return this.state=lt,void this.emit(nt,!0);this.state="PRELOADING";var U=this._toLoadList.shift();this._handlers.onRequest(U,(function(t){var n=Object.assign({},U.extData,t);e._cachedHandler(n)})).then((function(){e.state=Qt,e.emit(nt)})).catch((function(){e.requestError(),e.emit(nt,!1)}))}},{key:"requestError",value:function(){this.retryCount++,this.state=Qt,this.retryCount>=10&&(this.state=lt),this.emit("ONE_STEP_DONE"),this.logger("preload request error")}},{key:"cancelLoading",value:function(){this._toLoadList=[]}},{key:"destroy",value:function(){this.removeAllListeners()}}]),t}(tU);var Bt=function(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}();function st(e,U){U&&e.then((function(e){U(null,e)}),(function(e){U(e)}))}function Rt(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var ct={},Vt="readonly",ht="readwrite";function ut(e){var U=ct[e.name],t={};t.promise=new Promise((function(e,U){t.resolve=e,t.reject=U})),U.deferredOperations.push(t),U.dbReady?U.dbReady=U.dbReady.then((function(){return t.promise})):U.dbReady=t.promise}function Zt(e,U){return new Promise((function(t,n){if(ct[e.name]=ct[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!U)return t(e.db);ut(e),e.db.close()}var F=[e.name];U&&F.push(e.version);var Q=null==Bt?void 0:Bt.open.apply(Bt,F);U&&(Q.onupgradeneeded=function(U){var t=Q.result;try{t.createObjectStore(e.storeName)}catch(n){if("ConstraintError"!==n.name)throw n;console.warn('The database "'.concat(e.name,'" has been upgraded from version ').concat(U.oldVersion," to\n version ").concat(U.newVersion,', but the storage "').concat(e.storeName,'" already exists.'))}}),Q.onerror=function(e){e.preventDefault(),n(Q.error)},Q.onsuccess=function(){t(Q.result),function(e){var U=ct[e.name].deferredOperations.pop();if(U)U.resolve(),U.promise}(e)}}))}function St(e){return Zt(e,!1)}function Jt(e){return Zt(e,!0)}function pt(e,U){if(!e.db)return!0;var t=!e.db.objectStoreNames.contains(e.storeName),n=e.version<e.db.version,F=e.version>e.db.version;if(n&&(e.version!==U&&console.warn('The database "'.concat(e.name,"\" can't be downgraded from version ").concat(e.db.version," to\n version ").concat(e.version,".")),e.version=e.db.version),F||t){if(t){var Q=e.db.version+1;Q>e.version&&(e.version=Q)}return!0}return!1}function Wt(e){ut(e);for(var U=ct[e.name],t=U.forages,n=0;n<t.length;n++){var F=t[n];F._dbInfo.db&&(F._dbInfo.db.close(),F._dbInfo.db=null)}return e.db=null,St(e).then((function(U){return e.db=U,pt(e)?Jt(e):U})).then((function(n){e.db=U.db=n;for(var F=0;F<t.length;F++)t[F]._dbInfo.db=n})).catch((function(U){throw function(e,U){var t=ct[e.name].deferredOperations.pop();if(t)t.reject(U),t.promise}(e,U),U}))}function mt(e,U,t,n){void 0===n&&(n=1);try{var F=e.db.transaction(e.storeName,U);t(null,F)}catch(Q){if(n>0&&(!e.db||"InvalidStateError"===Q.name||"NotFoundError"===Q.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===Q.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),Jt(e)})).then((function(){return Wt(e).then((function(){mt(e,U,t,n-1)}))})).catch(t);t(Q)}}var Et=function(){function e(){c(this,e)}return h(e,[{key:"ready",value:function(){return this._ready}},{key:"_initStorage",value:function(e){var U=this;U._defaultConfig=e;var t={db:null,name:"",version:""};if(e)for(var n in e)t[n]=e[n];var F=ct[t.name];F||(F={forages:[],db:null,dbReady:null,deferredOperations:[]},ct[t.name]=F),F.forages.push(U),U._initReady||(U._initReady=U.ready,U._ready=U._fullyReady);var Q=[];function l(){return Promise.resolve()}for(var i=0;i<F.forages.length;i++){var d=F.forages[i];d!==U&&Q.push(d._initReady().catch(l))}var r=F.forages.slice(0);return U._ready=Promise.all(Q).then((function(){return t.db=F.db,St(t)})).then((function(e){return t.db=e,pt(t,U._defaultConfig.version)?Jt(t):e})).then((function(e){t.db=F.db=e,U._dbInfo=t;for(var n=0;n<r.length;n++){var Q=r[n];Q!==U&&(Q._dbInfo.db=t.db,Q._dbInfo.version=t.version)}})),U._ready}},{key:"probeSupport",get:function(){return function(){try{if(null==Bt||!Bt.open)return!1;var e=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),U="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||U)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(t){return!1}}()}},{key:"getItem",value:function(e,U){var t=this;e=Rt(e);var n=new Promise((function(U,n){t.ready().then((function(){mt(t._dbInfo,Vt,(function(F,Q){if(F)return n(F);try{var l=Q.objectStore(t._dbInfo.storeName).get(e);l.onsuccess=function(){var e=l.result;void 0===e&&(e=null),U(e)},l.onerror=function(){n(l.error)}}catch(i){n(i)}}))})).catch(n)}));return st(n,U),n}},{key:"setItem",value:function(e,U,t){var n=this;e=Rt(e);var F=new Promise((function(t,F){n.ready().then((function(){return n._dbInfo,U})).then((function(U){mt(n._dbInfo,ht,(function(Q,l){if(Q)return F(Q);try{var i=l.objectStore(n._dbInfo.storeName);null===U&&(U=void 0);var d=i.put(U,e);l.oncomplete=function(){void 0===U&&(U=null),t(U)},l.onabort=l.onerror=function(){var e=d.error?d.error:d.transaction.error;F(e)}}catch(r){F(r)}}))})).catch(F)}));return st(F,t),F}},{key:"removeItem",value:function(e,U){var t=this;e=Rt(e);var n=new Promise((function(U,n){t.ready().then((function(){mt(t._dbInfo,ht,(function(F,Q){if(F)return n(F);try{var l=Q.objectStore(t._dbInfo.storeName).delete(e);Q.oncomplete=function(){U()},Q.onerror=function(){n(l.error)},Q.onabort=function(){var e=l.error?l.error:l.transaction.error;n(e)}}catch(i){n(i)}}))})).catch(n)}));return st(n,U),n}},{key:"clear",value:function(e){var U=this,t=new Promise((function(e,t){U.ready().then((function(){mt(U._dbInfo,ht,(function(n,F){if(n)return t(n);try{var Q=F.objectStore(U._dbInfo.storeName).clear();F.oncomplete=function(){e()},F.onabort=F.onerror=function(){var e=Q.error?Q.error:Q.transaction.error;t(e)}}catch(l){t(l)}}))})).catch(t)}));return st(t,e),t}},{key:"length",value:function(e){var U=this,t=new Promise((function(e,t){U.ready().then((function(){mt(U._dbInfo,Vt,(function(n,F){if(n)return t(n);try{var Q=F.objectStore(U._dbInfo.storeName).count();Q.onsuccess=function(){e(Q.result)},Q.onerror=function(){t(Q.error)}}catch(l){t(l)}}))})).catch(t)}));return st(t,e),t}},{key:"all",value:function(e){var U=this,t=new Promise((function(e,t){U.ready().then((function(){mt(U._dbInfo,Vt,(function(n,F){if(n)return t(n);try{var Q=F.objectStore(U._dbInfo.storeName).openCursor(),l=[];Q.onsuccess=function(){var U=Q.result;U?(l.push({key:U.key,value:U.value}),U.continue()):e(l)},Q.onerror=function(){t(Q.error)}}catch(i){t(i)}}))})).catch(t)}));return st(t,e),t}},{key:"_fullyReady",value:function(e){var U=this,t=U._initReady().then((function(){var e=ct[U._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return function(e,U,t){"function"==typeof U&&e.then(U),"function"==typeof t&&e.catch(t)}(t,e,e),t}}]),e}(),kt=function(){function e(){c(this,e)}return h(e,[{key:"_initStorage",value:function(e){var U=e.name,t=e.storeName,n="".concat(U,"_").concat(t);return this.key=n,window[n]&&"object"===B(window[n])||(window[n]={}),this.store=window[n],Promise.resolve()}},{key:"getItem",value:function(e,U){var t=this.store[e];return void 0===t&&(t=null),this._internalPromise(U,t)}},{key:"setItem",value:function(e,U,t){return this.store[e]=U,this._internalPromise(t)}},{key:"removeItem",value:function(e,U){return delete this.store[e],this._internalPromise(U)}},{key:"clear",value:function(e){return this.store={},window[this.key]={},this._internalPromise(e)}},{key:"length",value:function(e){var U=Object.keys(this.store).length;return this._internalPromise(e,U)}},{key:"_internalPromise",value:function(e,U){var t=U?Promise.resolve(U):Promise.resolve();return st(t,e),t}},{key:"all",value:function(e){for(var U=[],t=Object.keys(this.store),n=0;n<t.length;n++){var F=t[n];U.push({key:F,value:this.store[F]})}return this._internalPromise(e,U)}},{key:"probeSupport",value:function(){return!0}}]),e}(),yt={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},Nt="__PRE_CACHE__KEYS",bt=function(){function e(U,t){c(this,e);var n=t===dt?kt:Et;this._driver=new n,this._driver._initStorage(yt).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!U||U<=0?200:U,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new X,this.init()}return h(e,[{key:"getCachedKeysFromLocal",value:function(){var e=g.getItem(Nt);if(e)for(var U=e.split("|"),t=0;t<U.length;t++){var n=U[t],F=this._getCacheKeyInfos(n),Q=F.time,l=F.cachedKey;this._allCachedKeys[l]=1,this._allCachedTimeKeys[l]=Q}}},{key:"_getCacheKeyInfos",value:function(e){var U,t=e.split("$");return 2===t.length&&(U=t[0],e=t[1]),{time:U,cachedKey:e}}},{key:"writeCachedKeysToLocal",value:function(e){var U=[];this._allCachedKeys={},this._allCachedTimeKeys={};for(var t=0;t<e.length;t++){var n=e[t].key,F=this._getCacheKeyInfos(n),Q=F.time,l=F.cachedKey;this._allCachedKeys[l]=1,this._allCachedTimeKeys[l]=Q,U.push(n)}var i=U.join("|");g.setItem(Nt,i)}},{key:"init",value:function(){var e=this;this._driver.setItem("test","test").then((function(){})).catch((function(){e._hasIdbForbidden=!0})).finally((function(){e._driver.removeItem("test").catch((function(){})),e._hasIdbForbidden&&(e._driver=new kt,e._driver._initStorage(yt)),e._getAll(),e._readyPromise.resolve()}))}},{key:"_getAll",value:function(){var e=this;this._driver.all().then((function(U){e._cachedLength=U.length;var t=U.length-e._maxCache,n=U;if(t>0){var F=U.slice(0,t);n=U.slice(t);for(var Q=0;Q<F.length;Q++)e.removeItem(F[Q].key).then((function(){}))}e.writeCachedKeysToLocal(n)})).catch((function(){}))}},{key:"getItem",value:function(e,U){if(!this.hasItem(e))return Promise.resolve(!1);var t=this._getTimeKey(e).timeKey;return this._driver.getItem(t,U)}},{key:"setItem",value:function(e,U,t){var n=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var F=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=F;var Q=this._genTimeKey(e,F);return t=t?function(){n._getAll(),t()}:function(){n._getAll()},this._driver.setItem(Q,U,t)}},{key:"_getTimeKey",value:function(e){var U=this._allCachedTimeKeys[e],t=e;return U&&(t=this._genTimeKey(e,U)),{timeKey:t,time:U}}},{key:"_genTimeKey",value:function(e,U){return"".concat(U).concat("$").concat(e)}},{key:"removeItem",value:function(e,U){var t=this._getTimeKey(e).timeKey,n=this._driver.removeItem(t,U);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],n}},{key:"hasItem",value:function(e){return!!this._allCachedKeys[e]}},{key:"clear",value:function(e){return this._driver.clear(e)}},{key:"length",value:function(e){return this._driver.length(e)}},{key:"setMaxCache",value:function(e){"number"==typeof e&&e>0&&(this._maxCache=e)}}]),e}(),ft=function(e){Z(t,e);var U=m(t);function t(e,n){var F,Q=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return c(this,t),(F=U.call(this))._preloadDataList=[],F._currentPreloadInst=null,F.autoPreload=e.autoPreload||!1,F._autoCheck=e.autoCheck||{enable:!1,interval:1e3},F._onPreloadNext=F.onPreloadNextReady.bind(W(F)),F.on(tt,F._onPreloadNext),F._preloaderConfigs={},F.update(e,n,Q),F._cacheInst=new bt(e.preloadMaxCacheCount,e.preloadCacheType),F._preloadCacheProgress={},F._ptag_=!0,F._cachedDatas={},F._taskIntervalId=null,F}return h(t,[{key:"startCheckTask",value:function(){var e=this,U=this._autoCheck,t=this._preloadDataList;(this._taskIntervalId&&(window.clearTimeout(this._taskIntervalId),this._taskIntervalId=null),0!==t.length)&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=window.setTimeout((function(){e.startCheckTask()}),U.interval||1e3))}},{key:"stopCheckTask",value:function(){this._taskIntervalId&&(window.clearTimeout(this._taskIntervalId),this._taskIntervalId=null)}},{key:"_checkIfCanPreload",value:function(){if(null==this._currentPreloadInst&&this._preloadDataList.length>0){var e=this._preloadDataList[0].data;if(e.payload){var U=this._getPreloaderKey(e),t=this._preloaderConfigs[U];if(null!=t&&t.handlers){var n=t.handlers.checkIfCanPreload;return n?n(e):(this.stopCheckTask(),!1)}return console.warn("need to set vtype, no preloader",e),this.stopCheckTask(),!1}}return!1}},{key:"_getPreloaderKey",value:function(e){return e.vtype?e.vtype:"DEFAULT"}},{key:"update",value:function(e,U,t){if(!t)throw new Error("PreloaderManager predictInst is null");var n=this._getPreloaderKey(e);this._preloaderConfigs[n]={predictInst:t,readyPromise:t.init(e),handlers:U}}},{key:"cachedDatas",get:function(){return this._cachedDatas}},{key:"onCacheSegment",value:function(e){var U=e.vid,t=e.format,n=e.cacheKey,F=e.total,Q=e.loaded,l=e.isInitSegment,i=e.mediaType,d=this.getProgressCacheKey(U,t,i),r=this._preloadCacheProgress[d];r||(r=this._preloadCacheProgress[d]={}),r[n]={total:F,loaded:Q,isInitSegment:l}}},{key:"onCachePredict",value:function(e){var U=e.vid,t=e.data;U&&t&&(this._cachedDatas[U]=t)}},{key:"getProgressCacheKey",value:function(e,U,t){return"".concat(e,"-").concat(U,"-").concat(t)}},{key:"onPreloadNextReady",value:function(){this.onPreloadNext()}},{key:"onPreloadSegDone",value:function(){this.autoPreload&&this.emit(tt)}},{key:"onPreloadNext",value:function(){var e=this;if(null==this._currentPreloadInst&&this._preloadDataList.length>0){if(this._preloadDataList.length>0){var U=this._preloadDataList.shift(),t=null==U?void 0:U.data;if(null!=t&&t.payload){var n=this._getPreloaderKey(t),F=this._preloaderConfigs[n];if(!F)return void console.warn("need to set vtype, no preloader",t);this._currentPreloadInst=new ot(t,this,F,(function(U){e.onCacheSegment(U)}),(function(U){e.onCachePredict(U)})),this._currentPreloadInst.on(nt,this.onPreloadSegDone.bind(this)),this._currentPreloadInst.start().then((function(){e._currentPreloadInst.preloadSeg()})).catch((function(){e._currentPreloadInst=null}))}}}else null!=this._currentPreloadInst&&(this._currentPreloadInst.state===Qt?this._currentPreloadInst.preloadSeg():this._currentPreloadInst.state===lt?(this._currentPreloadInst.destroy(),this._currentPreloadInst=null):this._currentPreloadInst.state===Ft&&(this._currentPreloadInst.cnt++,this._currentPreloadInst.cnt>2&&(this._currentPreloadInst.destroy(),this._currentPreloadInst=null)))}},{key:"addDashPreloader",value:function(e){e.data&&(this._preloadDataList.push(e),this.sort(this._preloadDataList),this.autoPreload&&this.emit(tt),this._autoCheck.enable&&!this._taskIntervalId&&this.startCheckTask())}},{key:"_addDashPreloader",value:function(e){e.data&&this._preloadDataList.push(e)}},{key:"addDashPreloaderList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.sort(e);for(var U=0;U<e.length;U++)this._addDashPreloader(e[U]);this._autoCheck.enable&&!this._taskIntervalId&&this.startCheckTask()}},{key:"sort",value:function(e){e.sort((function(e,U){return void 0===e.order&&void 0===e.order||"number"==typeof e.order&&"number"==typeof U.order&&e.order<U.order?-1:1}))}},{key:"destroy",value:function(){this.off(tt,this._onPreloadNext)}},{key:"cancelLoading",value:function(){this._currentPreloadInst&&(this._currentPreloadInst.cancelLoading(),this._currentPreloadInst=null),this._preloadDataList=[]}},{key:"preloadCacheProgress",value:function(e){var U=e.vid,t=e.format,n=e.mediaType,F=e.prelaodType,Q=e.bitrate,l=e.set_duration,i=e.set_size,d=e.media_type,r=e.start_time,a=this.getProgressCacheKey(U,t,n),o=this._preloadCacheProgress[a];if(o){for(var B=Object.values(o),s=0,R=0,c=0,V=0,h=0,u=0;u<B.length;u++){var Z=B[u];Z.isInitSegment&&(s=Z.total,c=Z.loaded,V=Z.loaded===Z.total?rt:at),R+=Z.total,h+=Z.loaded}return{media_type:d,preload_type:F,stream_bitrate:Q,header_size:s,content_total_size:R,start_time:r||-1,state_info:{set_duration:l,set_size:i,current_header_download_size:c,current_content_download_size:h,header_download_state:V,content_download_state:h===R?rt:at}}}return null}},{key:"getPreloadTaskInfos",value:function(){}},{key:"getItem",value:function(e,U){return this._cacheInst.getItem(e,U)}},{key:"setItem",value:function(e,U,t){return this._cacheInst.setItem(e,U,t)}},{key:"removeItem",value:function(e,U){return this.removeItem(e,U)}}],[{key:"getInstance",value:function(e,U){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,F=t.GLOBAL_KEY+(e.globalKey?e.globalKey:""),Q=window[F];if(null!=Q&&Q._ptag_)return Q.update(e,U,n),Q;var l=new t(e,U,n);return window[F]=l,l}}]),t}(tU),vt=ft;vt.GLOBAL_KEY="__preloadcontext__";var Tt,Ct,Dt=vt,gt=function(e){Z(t,e);var U=m(t);function t(e){var n;return c(this,t),(n=U.call(this)).options=e,n.promisePolyfill(),n.before(),n.check(),n._preloadManager=Dt.getInstance(e,n.handlers,n.predictInst),n.loadingTasks=[],n}return h(t,[{key:"promisePolyfill",value:function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var U=function(U){return Promise.resolve(e()).then(U)};return this.then((function(e){return U((function(){return e}))}),(function(e){return U((function(){return Promise.reject(e)}))}))}}.finally)}},{key:"before",value:function(){throw new Error("need")}},{key:"check",value:function(){if(!this.handlers)throw new Error("handlers null");if(!this.handlers.start||!this.handlers.onRequest)throw new Error("handlers callback null");if(!this.predictInst)throw new Error("predictInst null");if(!this.predictInst.__p__)throw new Error("predictInst need extends predictbase")}},{key:"preloadNext",value:function(){this._preloadManager.emit(tt)}},{key:"preloadManager",get:function(){return this._preloadManager}},{key:"start",value:function(){throw new Error("start need implment, return Promise")}},{key:"cancelLoading",value:function(){for(var e=0;e<this.loadingTasks.length;e++)try{var U=this.loadingTasks[e];"function"==typeof U.cancel&&U.cancel()}catch(t){}this.loadingTasks=[],this._preloadManager.cancelLoading()}},{key:"addTasker",value:function(e){this.loadingTasks.push(e)}},{key:"removeTasker",value:function(e){var U=this;setTimeout((function(){for(var t=U.loadingTasks.length-1;t>-1;t--)if(U.loadingTasks[t]===e){U.loadingTasks.splice(t,1);break}}))}},{key:"addDashPreloader",value:function(e){this._preloadManager.addDashPreloader(e)}},{key:"addDashPreloaderList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this._preloadManager.addDashPreloaderList(e)}}]),t}(tU),Xt=function(){function e(){c(this,e),this.bandwidth2item={},this._mediaInfos=void 0,this.__p__=!0}return h(e,[{key:"init",value:function(){throw new Error("init func not implement, return promise")}},{key:"preloadPredict",value:function(e){throw new Error("preloadPredict error: ".concat(e))}},{key:"updateMediaInfos",value:function(e){if(this._mediaInfos=e,this.bandwidth2item={},this.dynamic_video=e.dynamic_video_list,this.dynamic_video.length>0)for(var U=0;U<this.dynamic_video.length;U++){var t=this.dynamic_video[U],n=(null==t?void 0:t.bitrate)||(null==t?void 0:t.bandwidth);this.bandwidth2item[n]=t}}},{key:"getIdx",value:function(e,U){var t=0;return e.forEach((function(e,n){e.definition===U&&(t=n)})),t}},{key:"cachedData",get:function(){return null}}]),e}(),xt={MP4:"MP4",DASH:"DASH",HLS:"HLS"},Lt={exports:{}},Gt={exports:{}},It=function(e){return null!=e},Mt=It,Yt={object:!0,function:!0,undefined:!0},wt=function(e){return!!Mt(e)&&hasOwnProperty.call(Yt,typeof e)},Kt=function(e){if(!wt(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(U){return!1}},jt=function(e){if("function"!=typeof e)return!1;if(!hasOwnProperty.call(e,"length"))return!1;try{if("number"!=typeof e.length)return!1;if("function"!=typeof e.call)return!1;if("function"!=typeof e.apply)return!1}catch(U){return!1}return!Kt(e)},_t=/^\s*class[\s{/}]/,Ht=Function.prototype.toString;var zt,Ot,Pt,At,qt,$t,en,Un,tn=function(e){return null!=e};function nn(){return At?Pt:(At=1,Pt=(Ct?Tt:(Ct=1,Tt=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}))()?Object.keys:function(){if(Ot)return zt;Ot=1;var e=tn,U=Object.keys;return zt=function(t){return U(e(t)?Object(t):t)}}())}var Fn,Qn,ln,dn,rn="function"==typeof(Qn=Object.assign)&&(Qn(Fn={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),Fn.foo+Fn.bar+Fn.trzy==="razdwatrzy")?Object.assign:function(){if(Un)return en;Un=1;var e=nn(),U=function(){if($t)return qt;$t=1;var e=tn;return qt=function(U){if(!e(U))throw new TypeError("Cannot use null or undefined");return U}}(),t=Math.max;return en=function(n,F){var Q,l,i,d=t(arguments.length,2);for(n=Object(U(n)),i=function(e){try{n[e]=F[e]}catch(U){Q||(Q=U)}},l=1;l<d;++l)e(F=arguments[l]).forEach(i);if(void 0!==Q)throw Q;return n},en}(),an=tn,on=Array.prototype.forEach,Bn=Object.create,sn="razdwatrzy";var Rn="function"==typeof sn.contains&&!0===sn.contains("dwa")&&!1===sn.contains("foo")?String.prototype.contains:function(){if(dn)return ln;dn=1;var e=String.prototype.indexOf;return ln=function(U){return e.call(this,U,arguments[1])>-1},ln}(),cn=It,Vn=function(e){return!!jt(e)&&!_t.test(Ht.call(e))},hn=rn,un=function(e){var U=Bn(null);return on.call(arguments,(function(e){an(e)&&function(e,U){var t;for(t in e)U[t]=e[t]}(Object(e),U)})),U},Zn=Rn,Sn=Gt.exports=function(e,U){var t,n,F,Q,l;return arguments.length<2||"string"!=typeof e?(Q=U,U=e,e=null):Q=arguments[2],cn(e)?(t=Zn.call(e,"c"),n=Zn.call(e,"e"),F=Zn.call(e,"w")):(t=F=!0,n=!1),l={value:U,configurable:t,enumerable:n,writable:F},Q?hn(un(Q),l):l};Sn.gs=function(e,U,t){var n,F,Q,l;return"string"!=typeof e?(Q=t,t=U,U=e,e=null):Q=arguments[3],cn(U)?Vn(U)?cn(t)?Vn(t)||(Q=t,t=void 0):t=void 0:(Q=U,U=t=void 0):U=void 0,cn(e)?(n=Zn.call(e,"c"),F=Zn.call(e,"e")):(n=!0,F=!1),l={get:U,set:t,configurable:n,enumerable:F},Q?hn(un(Q),l):l};var Jn,pn,Wn,mn,En,kn,yn,Nn,bn,fn,vn,Tn,Cn,Dn,gn,Xn,xn,Ln,Gn=Gt.exports;Jn=Lt,pn=Lt.exports,fn=Gn,vn=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},Tn=Function.prototype.apply,Cn=Function.prototype.call,Dn=Object.create,gn=Object.defineProperty,Xn=Object.defineProperties,xn=Object.prototype.hasOwnProperty,Ln={configurable:!0,enumerable:!1,writable:!0},mn=function(e,U){var t,n;return vn(U),n=this,Wn.call(this,e,t=function(){En.call(n,e,t),Tn.call(U,this,arguments)}),t.__eeOnceListener__=U,this},kn=function(e){var U,t,n,F,Q;if(xn.call(this,"__ee__")&&(F=this.__ee__[e]))if("object"==typeof F){for(t=arguments.length,Q=new Array(t-1),U=1;U<t;++U)Q[U-1]=arguments[U];for(F=F.slice(),U=0;n=F[U];++U)Tn.call(n,this,Q)}else switch(arguments.length){case 1:Cn.call(F,this);break;case 2:Cn.call(F,this,arguments[1]);break;case 3:Cn.call(F,this,arguments[1],arguments[2]);break;default:for(t=arguments.length,Q=new Array(t-1),U=1;U<t;++U)Q[U-1]=arguments[U];Tn.call(F,this,Q)}},yn={on:Wn=function(e,U){var t;return vn(U),xn.call(this,"__ee__")?t=this.__ee__:(t=Ln.value=Dn(null),gn(this,"__ee__",Ln),Ln.value=null),t[e]?"object"==typeof t[e]?t[e].push(U):t[e]=[t[e],U]:t[e]=U,this},once:mn,off:En=function(e,U){var t,n,F,Q;if(vn(U),!xn.call(this,"__ee__"))return this;if(!(t=this.__ee__)[e])return this;if("object"==typeof(n=t[e]))for(Q=0;F=n[Q];++Q)F!==U&&F.__eeOnceListener__!==U||(2===n.length?t[e]=n[Q?0:1]:n.splice(Q,1));else n!==U&&n.__eeOnceListener__!==U||delete t[e];return this},emit:kn},Nn={on:fn(Wn),once:fn(mn),off:fn(En),emit:fn(kn)},bn=Xn({},Nn),Jn.exports=pn=function(e){return null==e?Dn(bn):Xn(Object(e),Nn)},pn.methods=yn;var In=eU(Lt.exports),Mn=h((function e(U,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};c(this,e);var F="number"==typeof t?t:void 0;n.playerVersion="3.5.23",this.errorType=U,this.errorCode=F||me[U][t]||me[U],this.ext=n}));Mn.DUR_PARSE_ERROR=9201,Mn.SEG_PARSE_ERROR=9202,Mn.INIT_SEGMENT_ERROR=9203,Mn.MPD_INIT_ERROR=9204,Mn.SEGMENT_CONTENT_ERROR=9205;var Yn,wn=Mn,Kn=h((function e(U,t,n,F,Q,l){c(this,e),this.type=U,this.codecs=t,this.visualEntryBox=n,this.configurationBox=F,this.types=Q,this.logCodeType=l})),jn="avc",_n="av1",Hn="hevc",zn="bytevc1",On=(u(Yn={},jn,new Kn("avc","avc1.64001E","avc1","avcC",["h264"],"h264")),u(Yn,_n,new Kn("av1","av01.0.08M.08","av01","av1C",["av1"],"av1")),u(Yn,Hn,new Kn("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),u(Yn,zn,new Kn("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),Yn);function Pn(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function An(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,eF(n.key),n)}}function qn(e,U,t){return U&&An(e.prototype,U),t&&An(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function $n(e,U,t){return(U=eF(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function eF(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}var UF="video",tF="audio",nF="avc",FF="hevc",QF="aac",lF="g7110a",iF="g7110m",dF=function(){function e(){Pn(this,e),$n(this,"id",1),$n(this,"type",UF),$n(this,"codecType",nF),$n(this,"pid",-1),$n(this,"hvcC",void 0),$n(this,"codec",""),$n(this,"timescale",0),$n(this,"formatTimescale",0),$n(this,"sequenceNumber",0),$n(this,"baseMediaDecodeTime",0),$n(this,"baseDts",0),$n(this,"duration",0),$n(this,"warnings",[]),$n(this,"samples",[]),$n(this,"pps",[]),$n(this,"sps",[]),$n(this,"vps",[]),$n(this,"fpsNum",0),$n(this,"fpsDen",0),$n(this,"sarRatio",[]),$n(this,"width",0),$n(this,"height",0),$n(this,"nalUnitSize",4),$n(this,"present",!1),$n(this,"isVideoEncryption",!1),$n(this,"isAudioEncryption",!1),$n(this,"isVideo",!0),$n(this,"kid",null),$n(this,"pssh",null),$n(this,"ext",void 0)}return qn(e,[{key:"reset",value:function(){this.sequenceNumber=this.width=this.height=this.fpsDen=this.fpsNum=this.duration=this.baseMediaDecodeTime=this.timescale=0,this.codec="",this.present=!1,this.pid=-1,this.pps=[],this.sps=[],this.vps=[],this.sarRatio=[],this.samples=[],this.warnings=[],this.hvcC=null}},{key:"exist",value:function(){return!!(this.pps.length&&this.sps.length&&this.codec)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isVideoEncryption}}]),e}(),rF=function(){function e(){Pn(this,e),$n(this,"id",2),$n(this,"type",tF),$n(this,"codecType",QF),$n(this,"pid",-1),$n(this,"codec",""),$n(this,"sequenceNumber",0),$n(this,"sampleDuration",0),$n(this,"timescale",0),$n(this,"formatTimescale",0),$n(this,"baseMediaDecodeTime",0),$n(this,"duration",0),$n(this,"warnings",[]),$n(this,"samples",[]),$n(this,"baseDts",0),$n(this,"sampleSize",16),$n(this,"sampleRate",0),$n(this,"channelCount",0),$n(this,"objectType",0),$n(this,"sampleRateIndex",0),$n(this,"config",[]),$n(this,"present",!1),$n(this,"isVideoEncryption",!1),$n(this,"isAudioEncryption",!1),$n(this,"kid",null),$n(this,"ext",void 0)}return qn(e,[{key:"reset",value:function(){this.sequenceNumber=0,this.timescale=0,this.sampleDuration=0,this.sampleRate=0,this.channelCount=0,this.baseMediaDecodeTime=0,this.present=!1,this.pid=-1,this.codec="",this.samples=[],this.config=[],this.warnings=[]}},{key:"exist",value:function(){return!!(this.sampleRate&&this.channelCount&&this.codec&&this.codecType===QF)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}}]),e}(),aF="undefined"!=typeof window,oF=aF&&navigator.userAgent.toLocaleLowerCase(),BF=aF&&oF.includes("firefox"),sF=aF&&oF.includes("android"),RF=function(){function e(){Pn(this,e)}return qn(e,null,[{key:"getRateIndexByRate",value:function(U){return e.FREQ.indexOf(U)}},{key:"parseADTS",value:function(U,t){for(var n=U.length,F=0;F+2<n&&(255!==U[F]||240!=(246&U[F+1]));)F++;if(!(F>=n)){var Q=F,l=[],i=(60&U[F+2])>>>2,d=e.FREQ[i];if(!d)throw new Error("Invalid sampling index: ".concat(i));for(var r,a,o=1+((192&U[F+2])>>>6),B=(1&U[F+2])<<2|(192&U[F+3])>>>6,s=e._getConfig(i,B,o),R=s.config,c=s.codec,V=0,h=e.getFrameDuration(d);F+7<n;)if(255===U[F]&&240==(246&U[F+1])){if(n-F<(a=(3&U[F+3])<<11|U[F+4]<<3|(224&U[F+5])>>5))break;r=2*(1&~U[F+1]),l.push({pts:t+V*h,data:U.subarray(F+7+r,F+a)}),V++,F+=a}else F++;return{skip:Q,remaining:F>=n?void 0:U.subarray(F),frames:l,samplingFrequencyIndex:i,sampleRate:d,objectType:o,channelCount:B,codec:c,config:R,originCodec:"mp4a.40.".concat(o)}}}},{key:"parseAudioSpecificConfig",value:function(U){if(U.length){var t=U[0]>>>3,n=(7&U[0])<<1|U[1]>>>7,F=(120&U[1])>>>3,Q=e.FREQ[n];if(Q){var l=e._getConfig(n,F,t);return{samplingFrequencyIndex:n,sampleRate:Q,objectType:t,channelCount:F,config:l.config,codec:l.codec,originCodec:"mp4a.40.".concat(t)}}}}},{key:"getFrameDuration",value:function(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}},{key:"_getConfig",value:function(e,U,t){var n,F,Q=[];return BF?e>=6?(n=5,F=e-3):(n=2,F=e):sF?(n=2,F=e):(n=2===t||5===t?t:5,F=e,e>=6?F=e-3:1===U&&(n=2,F=e)),Q[0]=n<<3,Q[0]|=(14&e)>>1,Q[1]=(1&e)<<7,Q[1]|=U<<3,5===n&&(Q[1]|=(14&F)>>1,Q[2]=(1&F)<<7,Q[2]|=8,Q[3]=0),{config:Q,codec:"mp4a.40.".concat(n)}}},{key:"getSilentFrame",value:function(e,U){if("mp4a.40.2"===e){if(1===U)return new Uint8Array([0,200,0,128,35,128]);if(2===U)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===U)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===U)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===U)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===U)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===U)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===U)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===U)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}]),e}();$n(RF,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var cF=Math.pow(2,32);function VF(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[U]<<8)+(e[U+1]||0)}function hF(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[U]<<24>>>0)+(e[U+1]<<16)+(e[U+2]<<8)+(e[U+3]||0)}function uF(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return hF(e,U)*cF+hF(e,U+4)}var ZF=function(){function e(){Pn(this,e)}return qn(e,null,[{key:"findBox",value:function(U,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,F=[];if(!U)return F;for(var Q=0,l="",i=0;U.length>7;){if(Q=hF(U),l=String.fromCharCode.apply(null,U.subarray(4,8)),i=8,1===Q?(Q=uF(U,8),i+=8):Q||(Q=U.length),!t[0]||l===t[0]){var d=U.subarray(0,Q);if(!(t.length<2))return e.findBox(d.subarray(i),t.slice(1),n+i);F.push({start:n,size:Q,headerSize:i,type:l,data:d})}n+=Q,U=U.subarray(Q)}return F}},{key:"tfhd",value:function(e){return WF(e,!0,(function(e,U){e.trackId=hF(U);var t=4,n=1&e.flags,F=2&e.flags,Q=8&e.flags,l=16&e.flags,i=32&e.flags;n&&(t+=4,e.baseDataOffset=hF(U,t),t+=4),F&&(e.sampleDescriptionIndex=hF(U,t),t+=4),Q&&(e.defaultSampleDuration=hF(U,t),t+=4),l&&(e.defaultSampleSize=hF(U,t),t+=4),i&&(e.defaultSampleFlags=hF(U,t))}))}},{key:"sidx",value:function(e){return WF(e,!0,(function(e,U){var t=0;e.reference_ID=hF(U,t),t+=4,e.timescale=hF(U,t),t+=4,0===e.version?(e.earliest_presentation_time=hF(U,t),t+=4,e.first_offset=hF(U,t),t+=4):(e.earliest_presentation_time=uF(U,t),t+=8,e.first_offset=uF(U,t),t+=8),t+=2,e.references=[];var n=VF(U,t);t+=2;for(var F=0;F<n;F++){var Q={};e.references.push(Q);var l=hF(U,t);t+=4,Q.reference_type=l>>31&1,Q.referenced_size=2147483647&l,Q.subsegment_duration=hF(U,t),l=hF(U,t+=4),t+=4,Q.starts_with_SAP=l>>31&1,Q.SAP_type=l>>28&7,Q.SAP_delta_time=268435455&l}}))}},{key:"moov",value:function(U){return WF(U,!1,(function(U,t,n){U.mvhd=e.mvhd(e.findBox(t,["mvhd"],n)[0]),U.trak=e.findBox(t,["trak"],n).map((function(U){return e.trak(U)})),U.pssh=e.pssh(e.findBox(t,["pssh"],n)[0])}))}},{key:"mvhd",value:function(e){return WF(e,!0,(function(e,U){var t=0;1===e.version?(e.timescale=hF(U,16),e.duration=uF(U,20),t+=28):(e.timescale=hF(U,8),e.duration=hF(U,12),t+=16),e.nextTrackId=hF(U,t+76)}))}},{key:"trak",value:function(U){return WF(U,!1,(function(U,t,n){U.tkhd=e.tkhd(e.findBox(t,["tkhd"],n)[0]),U.mdia=e.mdia(e.findBox(t,["mdia"],n)[0])}))}},{key:"tkhd",value:function(e){return WF(e,!0,(function(e,U){var t=0;1===e.version?(e.trackId=hF(U,16),e.duration=uF(U,24),t+=32):(e.trackId=hF(U,8),e.duration=hF(U,16),t+=20),e.width=hF(U,t+52),e.height=hF(U,t+56)}))}},{key:"mdia",value:function(U){return WF(U,!1,(function(U,t,n){U.mdhd=e.mdhd(e.findBox(t,["mdhd"],n)[0]),U.hdlr=e.hdlr(e.findBox(t,["hdlr"],n)[0]),U.minf=e.minf(e.findBox(t,["minf"],n)[0])}))}},{key:"mdhd",value:function(e){return WF(e,!0,(function(e,U){var t=0;1===e.version?(e.timescale=hF(U,16),e.duration=uF(U,20),t+=28):(e.timescale=hF(U,8),e.duration=hF(U,12),t+=16);var n=VF(U,t);e.language=String.fromCharCode(96+(n>>10&31),96+(n>>5&31),96+(31&n))}))}},{key:"hdlr",value:function(e){return WF(e,!0,(function(e,U){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,U.subarray(4,8)))}))}},{key:"minf",value:function(U){return WF(U,!1,(function(U,t,n){U.vmhd=e.vmhd(e.findBox(t,["vmhd"],n)[0]),U.smhd=e.smhd(e.findBox(t,["smhd"],n)[0]),U.stbl=e.stbl(e.findBox(t,["stbl"],n)[0])}))}},{key:"vmhd",value:function(e){return WF(e,!0,(function(e,U){e.graphicsmode=VF(U),e.opcolor=[VF(U,2),VF(U,4),VF(U,6)]}))}},{key:"smhd",value:function(e){return WF(e,!0,(function(e,U){e.balance=VF(U)}))}},{key:"stbl",value:function(U){return WF(U,!1,(function(U,t,n){var F,Q,l;U.stsd=e.stsd(e.findBox(t,["stsd"],n)[0]),U.stts=e.stts(e.findBox(t,["stts"],n)[0]),U.ctts=e.ctts(e.findBox(t,["ctts"],n)[0]),U.stsc=e.stsc(e.findBox(t,["stsc"],n)[0]),U.stsz=e.stsz(e.findBox(t,["stsz"],n)[0]),U.stco=e.stco(e.findBox(t,["stco"],n)[0]),U.stco||(U.co64=e.co64(e.findBox(t,["co64"],n)[0]),U.stco=U.co64);var i=null===(F=U.stsd.entries[0])||void 0===F||null===(Q=F.sinf)||void 0===Q||null===(l=Q.schi)||void 0===l?void 0:l.tenc.default_IV_size;U.stss=e.stss(e.findBox(t,["stss"],n)[0]),U.senc=e.senc(e.findBox(t,["senc"],n)[0],i)}))}},{key:"senc",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return WF(e,!0,(function(e,t){var n=0,F=hF(t,n);n+=4,e.samples=[];for(var Q=0;Q<F;Q++){for(var l={InitializationVector:[]},i=0;i<U;i++)l.InitializationVector[i]=t[n+i];if(n+=U,2&e.flags){l.subsamples=[];var d=VF(t,n);n+=2;for(var r=0;r<d;r++){var a={};a.BytesOfClearData=VF(t,n),n+=2,a.BytesOfProtectedData=hF(t,n),n+=4,l.subsamples.push(a)}}e.samples.push(l)}}))}},{key:"pssh",value:function(e){return WF(e,!0,(function(e,U){for(var t=[],n=[],F=0,Q=0;Q<16;Q++)n.push(mF(U[F+Q]));if(F+=16,e.version>0){var l=hF(U,F);F+=4;for(var i=0;i<(""+l).length;i++)for(var d=0;d<16;d++){var r=U[F];F+=1,t.push(mF(r))}}var a=hF(U,F);e.data_size=a,F+=4,e.kid=t,e.system_id=n,e.buffer=U}))}},{key:"stsd",value:function(U){return WF(U,!0,(function(U,t,n){U.entryCount=hF(t),U.entries=e.findBox(t.subarray(4),[],n+4).map((function(U){switch(U.type){case"avc1":case"avc2":case"avc3":case"avc4":return e.avc1(U);case"hvc1":case"hev1":return e.hvc1(U);case"mp4a":return e.mp4a(U);case"alaw":case"ulaw":return e.alaw(U);case"enca":return WF(U,!1,(function(U,t,n){U.channelCount=VF(t,16),U.samplesize=VF(t,18),U.sampleRate=hF(t,24)/65536,t=t.subarray(28),U.sinf=e.sinf(e.findBox(t,["sinf"],n)[0]),U.esds=e.esds(e.findBox(t,["esds"],n)[0])}));case"encv":return WF(U,!1,(function(U,t,n){U.width=VF(t,24),U.height=VF(t,26),U.horizresolution=hF(t,28),U.vertresolution=hF(t,32),t=t.subarray(78),U.sinf=e.sinf(e.findBox(t,["sinf"],n)[0]),U.avcC=e.avcC(e.findBox(t,["avcC"],n)[0]),U.hvcC=e.hvcC(e.findBox(t,["hvcC"],n)[0]),U.pasp=e.pasp(e.findBox(t,["pasp"],n)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return WF(e,!1,(function(e,U){var t=6;e.default_IsEncrypted=U[t],t+=1,e.default_IV_size=U[t],t+=1,e.default_KID=[];for(var n=0;n<16;n++)e.default_KID.push(mF(U[t])),t+=1}))}},{key:"schi",value:function(U){return WF(U,!1,(function(U,t,n){U.tenc=e.tenc(e.findBox(t,["tenc"],n)[0])}))}},{key:"sinf",value:function(U){return WF(U,!1,(function(U,t,n){U.schi=e.schi(e.findBox(t,["schi"],n)[0]),U.frma=e.frma(e.findBox(t,["frma"],n)[0])}))}},{key:"frma",value:function(e){return WF(e,!1,(function(e,U){e.data_format="";for(var t=0;t<4;t++)e.data_format+=String.fromCharCode(U[t])}))}},{key:"avc1",value:function(U){return WF(U,!1,(function(U,t,n){var F=JF(U,t),Q=t.subarray(F);n+=F,U.avcC=e.avcC(e.findBox(Q,["avcC"],n)[0]),U.pasp=e.pasp(e.findBox(Q,["pasp"],n)[0])}))}},{key:"avcC",value:function(e){return WF(e,!1,(function(e,U){e.configurationVersion=U[0],e.AVCProfileIndication=U[1],e.profileCompatibility=U[2],e.AVCLevelIndication=U[3],e.codec=function(e){for(var U,t="avc1.",n=0;n<3;n++)(U=e[n].toString(16)).length<2&&(U="0".concat(U)),t+=U;return t}([U[1],U[2],U[3]]),e.lengthSizeMinusOne=3&U[4],e.spsLength=31&U[5],e.sps=[];for(var t=6,n=0;n<e.spsLength;n++){var F=VF(U,t);t+=2,e.sps.push(U.subarray(t,t+F)),t+=F}e.ppsLength=U[t],t+=1,e.pps=[];for(var Q=0;Q<e.ppsLength;Q++){var l=VF(U,t);t+=2,e.pps.push(U.subarray(t,t+=l)),t+=l}}))}},{key:"hvc1",value:function(U){return WF(U,!1,(function(U,t,n){var F=JF(U,t),Q=t.subarray(F);n+=F,U.hvcC=e.hvcC(e.findBox(Q,["hvcC"],n)[0]),U.pasp=e.pasp(e.findBox(Q,["pasp"],n)[0])}))}},{key:"hvcC",value:function(e){return WF(e,!1,(function(U,t){U.data=e.data,U.codec="hev1.1.6.L93.B0",U.configurationVersion=t[0];var n=t[1];U.generalProfileSpace=n>>6,U.generalTierFlag=(32&n)>>5,U.generalProfileIdc=31&n,U.generalProfileCompatibility=hF(t,2),U.generalConstraintIndicatorFlags=t.subarray(6,12),U.generalLevelIdc=t[12],U.avgFrameRate=VF(t,19),U.numOfArrays=t[22],U.vps=[],U.sps=[],U.pps=[];for(var F=23,Q=0,l=0,i=0,d=0;d<U.numOfArrays;d++){Q=63&t[F],l=VF(t,F+1),F+=3;for(var r,a=[],o=0;o<l;o++)i=VF(t,F),F+=2,a.push(t.subarray(F,F+i)),F+=i;if(32===Q)(r=U.vps).push.apply(r,a);else if(33===Q){var B;(B=U.sps).push.apply(B,a)}else if(34===Q){var s;(s=U.pps).push.apply(s,a)}}}))}},{key:"pasp",value:function(e){return WF(e,!1,(function(e,U){e.hSpacing=hF(U),e.vSpacing=hF(U,4)}))}},{key:"mp4a",value:function(U){return WF(U,!1,(function(U,t,n){var F=pF(U,t);U.esds=e.esds(e.findBox(t.subarray(F),["esds"],n+F)[0])}))}},{key:"esds",value:function(e){return WF(e,!0,(function(e,U){e.codec="mp4a.";for(var t=0,n=0,F=0,Q=0;U.length;){for(Q=U[t=0],n=U[t+1],t+=2;128&n;)F=(127&n)<<7,n=U[t],t+=1;if(F+=127&n,3===Q)U=U.subarray(t+3);else{if(4!==Q){if(5===Q){var l=e.config=U.subarray(t,t+F),i=(248&l[0])>>3;return 31===i&&l.length>=2&&(i=32+((7&l[0])<<3)+((224&l[1])>>5)),e.objectType=i,e.codec+=i.toString(16),void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}return void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}e.codec+=(U[t].toString(16)+".").padStart(3,"0"),U=U.subarray(t+13)}}}))}},{key:"alaw",value:function(e){return WF(e,!1,(function(e,U){pF(e,U)}))}},{key:"stts",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push({count:hF(U,F),delta:hF(U,F+4)}),F+=8;e.entryCount=t,e.entries=n}))}},{key:"ctts",value:function(e){return WF(e,!0,(function(e,U){var t=hF(U),n=[],F=4;if(1===e.version)for(var Q=0;Q<t;Q++)n.push({count:hF(U,F),offset:hF(U,F+4)}),F+=8;else for(var l=0;l<t;l++)n.push({count:hF(U,F),offset:-(1+~hF(U,F+4))}),F+=8;e.entryCount=t,e.entries=n}))}},{key:"stsc",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push({firstChunk:hF(U,F),samplesPerChunk:hF(U,F+4),sampleDescriptionIndex:hF(U,F+8)}),F+=12;e.entryCount=t,e.entries=n}))}},{key:"stsz",value:function(e){return WF(e,!0,(function(e,U){var t=hF(U),n=hF(U,4),F=[];if(!t)for(var Q=8,l=0;l<n;l++)F.push(hF(U,Q)),Q+=4;e.sampleSize=t,e.sampleCount=n,e.entrySizes=F}))}},{key:"stco",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push(hF(U,F)),F+=4;e.entryCount=t,e.entries=n}))}},{key:"co64",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push(uF(U,F)),F+=8;e.entryCount=t,e.entries=n}))}},{key:"stss",value:function(e){return WF(e,!0,(function(e,U){for(var t=hF(U),n=[],F=4,Q=0;Q<t;Q++)n.push(hF(U,F)),F+=4;e.entryCount=t,e.entries=n}))}},{key:"moof",value:function(U){return WF(U,!1,(function(U,t,n){U.mfhd=e.mfhd(e.findBox(t,["mfhd"],n)[0]),U.traf=e.findBox(t,["traf"],n).map((function(U){return e.traf(U)}))}))}},{key:"mfhd",value:function(e){return WF(e,!0,(function(e,U){e.sequenceNumber=hF(U)}))}},{key:"traf",value:function(U){return WF(U,!1,(function(U,t,n){U.tfhd=e.tfhd(e.findBox(t,["tfhd"],n)[0]),U.tfdt=e.tfdt(e.findBox(t,["tfdt"],n)[0]),U.trun=e.trun(e.findBox(t,["trun"],n)[0])}))}},{key:"trun",value:function(e){return WF(e,!0,(function(e,U){var t=e.version,n=e.flags,F=U.length,Q=e.sampleCount=hF(U),l=4;if(F>l&&1&n&&(e.dataOffset=-(1+~hF(U,l)),l+=4),F>l&&4&n&&(e.firstSampleFlags=hF(U,l),l+=4),e.samples=[],F>l)for(var i,d=0;d<Q;d++)i={},256&n&&(i.duration=hF(U,l),l+=4),512&n&&(i.size=hF(U,l),l+=4),1024&n&&(i.flags=hF(U,l),l+=4),2048&n&&(i.cts=t?-(1+~hF(U,l+4)):hF(U,l),l+=4),e.samples.push(i)}))}},{key:"tfdt",value:function(e){return WF(e,!0,(function(e,U){1===e.version?e.baseMediaDecodeTime=uF(U):e.baseMediaDecodeTime=hF(U)}))}},{key:"probe",value:function(U){return!!e.findBox(U,["ftyp"])}},{key:"parseSampleFlags",value:function(e){return{isLeading:(12&e[0])>>>2,dependsOn:3&e[0],isDependedOn:(192&e[1])>>>6,hasRedundancy:(48&e[1])>>>4,paddingValue:(14&e[1])>>>1,isNonSyncSample:1&e[1],degradationPriority:e[2]<<8|e[3]}}},{key:"moovToTrack",value:function(e,U,t){var n,F,Q=e.trak;if(Q&&Q.length){var l=Q.find((function(e){var U,t;return"vide"===(null===(U=e.mdia)||void 0===U||null===(t=U.hdlr)||void 0===t?void 0:t.handlerType)})),i=Q.find((function(e){var U,t;return"soun"===(null===(U=e.mdia)||void 0===U||null===(t=U.hdlr)||void 0===t?void 0:t.handlerType)}));if(l&&U){var d,r,a,o,B,s,R,c=U,V=null===(d=l.tkhd)||void 0===d?void 0:d.trackId;null!=V&&(c.id=l.tkhd.trackId),c.tkhdDuration=l.tkhd.duration,c.mvhdDurtion=e.mvhd.duration,c.mvhdTimecale=e.mvhd.timescale,c.timescale=c.formatTimescale=l.mdia.mdhd.timescale,c.duration=l.mdia.mdhd.duration||c.mvhdDurtion/c.mvhdTimecale*c.timescale;var h,u,Z,S,J,p,W,m,E=l.mdia.minf.stbl.stsd.entries[0];if(c.width=E.width,c.height=E.height,E.pasp&&(c.sarRatio=[E.pasp.hSpacing,E.pasp.vSpacing]),E.hvcC)c.codecType=FF,c.codec=E.hvcC.codec,c.vps=E.hvcC.vps,c.sps=E.hvcC.sps,c.pps=E.hvcC.pps,c.hvcC=E.hvcC.data;else{if(!E.avcC)throw new Error("unknown video stsd entry");c.codec=E.avcC.codec,c.sps=E.avcC.sps,c.pps=E.avcC.pps}if(c.present=!0,c.ext={},c.ext.stss=null===(r=l.mdia)||void 0===r||null===(a=r.minf)||void 0===a||null===(o=a.stbl)||void 0===o?void 0:o.stss,c.ext.ctts=null===(B=l.mdia)||void 0===B||null===(s=B.minf)||void 0===s||null===(R=s.stbl)||void 0===R?void 0:R.ctts,E&&"encv"===E.type)c.isVideoEncryption=!0,E.default_KID=null===(h=E.sinf)||void 0===h||null===(u=h.schi)||void 0===u?void 0:u.tenc.default_KID,E.default_IsEncrypted=null===(Z=E.sinf)||void 0===Z||null===(S=Z.schi)||void 0===S?void 0:S.tenc.default_IsEncrypted,E.default_IV_size=null===(J=E.sinf)||void 0===J||null===(p=J.schi)||void 0===p?void 0:p.tenc.default_IV_size,c.videoSenc=l.mdia.minf.stbl.senc&&l.mdia.minf.stbl.senc.samples,E.data_format=null===(W=E.sinf)||void 0===W||null===(m=W.frma)||void 0===m?void 0:m.data_format,c.useEME=e.useEME,c.kidValue=e.kidValue,c.pssh=e.pssh,c.encv=E}if(i&&t){var k,y,N,b,f,v,T,C,D,g=t,X=null===(k=i.tkhd)||void 0===k?void 0:k.trackId;null!=X&&(g.id=i.tkhd.trackId),g.tkhdDuration=i.tkhd.duration,g.mvhdDurtion=e.mvhd.duration,g.mvhdTimecale=e.mvhd.timescale,g.timescale=g.formatTimescale=i.mdia.mdhd.timescale,g.duration=i.mdia.mdhd.duration||g.mvhdDurtion/g.mvhdTimecale*g.timescale;var x,L,G,I,M,Y,w,K,j=i.mdia.minf.stbl.stsd.entries[0];switch(g.sampleSize=j.sampleSize,g.sampleRate=j.sampleRate,g.channelCount=j.channelCount,g.present=!0,j.type){case"alaw":g.codecType=g.codec=lF,g.sampleRate=8e3;break;case"ulaw":g.codecType=g.codec=iF,g.sampleRate=8e3;break;default:g.sampleDuration=RF.getFrameDuration(g.sampleRate,g.timescale),g.sampleRateIndex=RF.getRateIndexByRate(g.sampleRate),g.objectType=(null===(n=j.esds)||void 0===n?void 0:n.objectType)||2,j.esds&&(g.config=Array.from(j.esds.config)),g.codec=(null===(F=j.esds)||void 0===F?void 0:F.codec)||"mp4a.40.2"}if(g.sampleDuration=RF.getFrameDuration(g.sampleRate,g.timescale),g.objectType=(null===(y=j.esds)||void 0===y?void 0:y.objectType)||2,j.esds&&(j.esds.config?g.config=Array.from(j.esds.config):console.warn("esds config is null")),g.codec=(null===(N=j.esds)||void 0===N?void 0:N.codec)||"mp4a.40.2",g.sampleRateIndex=RF.getRateIndexByRate(g.sampleRate),g.ext={},g.ext.stss=null===(b=i.mdia)||void 0===b||null===(f=b.minf)||void 0===f||null===(v=f.stbl)||void 0===v?void 0:v.stss,g.ext.ctts=null===(T=i.mdia)||void 0===T||null===(C=T.minf)||void 0===C||null===(D=C.stbl)||void 0===D?void 0:D.ctts,g.present=!0,j&&"enca"===j.type)g.isAudioEncryption=!0,j.data_format=null===(x=j.sinf)||void 0===x||null===(L=x.frma)||void 0===L?void 0:L.data_format,j.default_KID=null===(G=j.sinf)||void 0===G||null===(I=G.schi)||void 0===I?void 0:I.tenc.default_KID,j.default_IsEncrypted=null===(M=j.sinf)||void 0===M||null===(Y=M.schi)||void 0===Y?void 0:Y.tenc.default_IsEncrypted,j.default_IV_size=null===(w=j.sinf)||void 0===w||null===(K=w.schi)||void 0===K?void 0:K.tenc.default_IV_size,g.audioSenc=i.mdia.minf.stbl.senc&&i.mdia.minf.stbl.senc.samples,g.useEME=e.useEME,g.kidValue=e.kidValue,g.enca=j}if(t&&(t.isVideoEncryption=!!U&&U.isVideoEncryption),U&&(U.isAudioEncryption=!!t&&t.isAudioEncryption),null!=U&&U.encv||null!=t&&t.enca){var _,H,z=null==U||null===(_=U.encv)||void 0===_?void 0:_.default_KID,O=null==t||null===(H=t.enca)||void 0===H?void 0:H.default_KID,P=z||O?(z||O).join(""):null;U&&(U.kid=P),t&&(t.kid=P)}return U&&(U.flags=3841),t&&(t.flags=1793),{videoTrack:U,audioTrack:t}}}},{key:"evaluateDefaultDuration",value:function(e,U,t){var n,F=null==U||null===(n=U.samples)||void 0===n?void 0:n.length;return F?1024*F/U.timescale*e.timescale/t:1024}},{key:"moofToSamples",value:function(U,t,n){var F={};return U.mfhd&&(t&&(t.sequenceNumber=U.mfhd.sequenceNumber),n&&(n.sequenceNumber=U.mfhd.sequenceNumber)),U.traf.forEach((function(U){var Q=U.tfhd,l=U.tfdt,i=U.trun;if(Q&&i){l&&(t&&t.id===Q.trackId&&(t.baseMediaDecodeTime=l.baseMediaDecodeTime),n&&n.id===Q.trackId&&(n.baseMediaDecodeTime=l.baseMediaDecodeTime));var d=Q.defaultSampleSize||0,r=Q.defaultSampleDuration||e.evaluateDefaultDuration(t,n,i.samples.length||i.sampleCount),a=i.dataOffset||0,o=0,B=-1;if(!i.samples.length&&i.sampleCount){F[Q.trackId]=[];for(var s=0;s<i.sampleCount;s++)F[Q.trackId].push({offset:a,dts:o,duration:r,size:d}),o+=r,a+=d}else F[Q.trackId]=i.samples.map((function(e,U){return(e={offset:a,dts:o,pts:o+(e.cts||0),duration:e.duration||r,size:e.size||d,gopId:B,keyframe:0===U||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(B++,e.gopId=B),o+=e.duration,a+=e.size,e}))}})),F}},{key:"moovToSamples",value:function(e){var U=e.trak;if(U&&U.length){var t=U.find((function(e){var U,t;return"vide"===(null===(U=e.mdia)||void 0===U||null===(t=U.hdlr)||void 0===t?void 0:t.handlerType)})),n=U.find((function(e){var U,t;return"soun"===(null===(U=e.mdia)||void 0===U||null===(t=U.hdlr)||void 0===t?void 0:t.handlerType)}));if(t||n){var F,Q;if(t){var l,i,d=null===(l=t.mdia)||void 0===l||null===(i=l.minf)||void 0===i?void 0:i.stbl;if(!d)return;var r=d.stts,a=d.stsc,o=d.stsz,B=d.stco,s=d.stss,R=d.ctts;if(!(r&&a&&o&&B&&s))return;F=SF(r,a,o,B,R,s)}if(n){var c,V,h,u=null===(c=n.mdia)||void 0===c||null===(V=c.minf)||void 0===V?void 0:V.stbl;if(!u)return;var Z=null===(h=n.mdia.mdhd)||void 0===h?void 0:h.timescale,S=u.stts,J=u.stsc,p=u.stsz,W=u.stco;if(!(Z&&S&&J&&p&&W))return;Q=SF(S,J,p,W)}return{videoSamples:F,audioSamples:Q}}}}}]),e}();function SF(e,U,t,n,F,Q){var l,i,d,r=[],a=null==F?void 0:F.entries,o=U.entries,B=n.entries,s=t.entrySizes,R=null==Q?void 0:Q.entries;R&&(l={},R.forEach((function(e){l[e-1]=!0}))),a&&(i=[],a.forEach((function(e){for(var U=e.count,t=e.offset,n=0;n<U;n++)i.push(t)})));var c=-1,V=0,h=0,u=0,Z=0,S=0,J=o[0].samplesPerChunk,p=o[1]?o[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var U=e.count,n=e.delta,F=0;F<U;F++)d={dts:V,duration:n,size:s[h]||t.sampleSize,offset:B[u]+S,index:h},R&&(d.keyframe=l[h],d.keyframe&&c++,d.gopId=c),i&&h<i.length&&(d.pts=d.dts+i[h]),r.push(d),V+=n,++h<J?S+=d.size:(u++,S=0,u>=p&&(Z++,p=o[Z+1]?o[Z+1].firstChunk-1:1/0),J+=o[Z].samplesPerChunk)})),r}function JF(e,U){return e.dataReferenceIndex=VF(U,6),e.width=VF(U,24),e.height=VF(U,26),e.horizresolution=hF(U,28),e.vertresolution=hF(U,32),e.frameCount=VF(U,40),e.depth=VF(U,74),78}function pF(e,U){return e.dataReferenceIndex=VF(U,6),e.channelCount=VF(U,16),e.sampleSize=VF(U,18),e.sampleRate=hF(U,24)/65536,28}function WF(e,U,t){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var n={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return U&&(n.version=e.data[e.headerSize],n.flags=function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[U]<<16)+(e[U+1]<<8)+(e[U+2]||0)}(e.data,e.headerSize+1),n.headerSize+=4),t(n,e.data.subarray(n.headerSize),n.start+n.headerSize),n}}var mF=function(){for(var e=[],U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];return t.forEach((function(U){e.push(function(e,U,t){for(var n=String(t),F=U>>0,Q=Math.ceil(F/n.length),l=[],i=String(e);Q--;)l.push(n);return l.join("").substring(0,F-i.length)+i}(Number(U).toString(16),2,0))})),e[0]};function EF(e,U,t,n){return e[U]?n?n(e[U]):e[U]:t}var kF=function(){function e(U){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;c(this,e),In(this),this.url=U,this.options=t,this.dash=n,this.mediaList={video:[],audio:[]},this.retryMax=10,this.retry=0,this.type="live",this.isEnd=!1,this.duration=0,this.videoCodecType=null,this.videoCodecs=null,this.hasSync=!1,this._readyPromise=new X}var U;return h(e,[{key:"readyPromise",get:function(){return this._readyPromise}},{key:"calcVideoCodeType",value:function(e,U){if(e||U){var t=null;U?t=U.split(".")[0]:e&&(t=e.split(".")[0]);for(var n=Object.keys(On),F=0;F<n.length;F++){var Q=n[F],l=On[Q];if(l.types.concat(l.visualEntryBox).indexOf(t)>-1){this.videoCodecType=Q,this.videoCodecs=l.codecs;break}}hU.log("mpd dataType:",e,"codecs:",U,"cal type:",this.videoCodecType,"videoCodecs",this.videoCodecs),this.videoCodecType||(this.videoCodecType=jn,this.videoCodecs=On[jn].codecs,console.warn("calcVideoCodeType default")),this.dash&&this.dash._pluginInst&&this.dash._pluginInst.setCodeInfo(this.videoCodecType)}}},{key:"fetch",value:(U=R(o().mark((function U(t){var n,F,Q,l,i,d,r,a;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return n=this,F={TYPE:"LIVE",ENDLIST:""},Q=[],U.prev=3,l=new rU({}),U.next=7,l.load(t);case 7:if(i=U.sent,!(d=i.data)){U.next=21;break}if(r=e.parseMPD(d)){U.next=13;break}throw new Error("parse mpd error");case 13:return this._parseMeta(F,r),this._parseSegments(r,t),["video","audio"].forEach((function(e){n.mediaList[e].length>0&&(n.mediaList[e].selectedIdx="video"===e&&n.dash.selectedIdx||0,n.mediaList[e].sort((function(U,t){return"video"===e?t.height-U.height:t.bandwidth-U.bandwidth})))})),0===n.mediaList.video.length&&0===n.mediaList.audio.length&&setTimeout((function(){n.dash.player&&n.dash.player.emit("NO_MEDIALIST",{dynamic_type:"segment_template"})})),U.abrupt("return",{meta:F,segments:Q});case 21:throw n.dash.emit("error",new wn(oe,We.DASH,{url:t,message:"mpd parse error"})),new Error("MPD_PARSE_ERROR");case 23:U.next=29;break;case 25:throw U.prev=25,U.t0=U.catch(3),n.dash.emit("error",new wn(pe,wn.MPD_INIT_ERROR,{httpCode:null===(a=U.t0.response)||void 0===a?void 0:a.status,url:t,message:null===U.t0||void 0===U.t0?void 0:U.t0.message})),new Error(U.t0);case 29:case"end":return U.stop()}}),U,this,[[3,25]])}))),function(e){return U.apply(this,arguments)})},{key:"_parseMeta",value:function(e,U){"static"===U.type&&(e.TYPE="VOD"),U.minBufferTime&&(e.minBufferTime=Ut.durationConvert(U.minBufferTime)),U.maxSegmentDuration&&(e.maxSegmentDuration=Ut.durationConvert(U.maxSegmentDuration)),U.mediaPresentationDuration&&(this.duration=Ut.durationConvert(U.mediaPresentationDuration));var t=U.Period[0];!this.duration&&t&&t.duration&&(this.duration=Ut.durationConvert(t.duration)),e.duration=this.duration}},{key:"_parseST",value:function(e,U,t,n,F){for(var Q=parseFloat(e.timescale),l=parseFloat(e.duration),i=Math.round(l/Q),d=parseInt(e.startNumber,10),r=d+Math.ceil(this.duration/i)-1,a=d;a<=r;a++){var o=i*(a-d),B=i*(a-d+1);a===r&&(i=this.duration-i*(r-d),B=this.duration),U.push({idx:a,start:Math.round(o),end:Math.round(B),url:n+e.media.replace("$RepresentationID$",t).replace("$Number%04d$",Ut.preFixInterge(a,4)),downloaded:0,segmentDuration:i,height:F})}}},{key:"_getVideoSegments",value:function(e){var U,t,n,F=e.bandwidth,Q=e.id,l=e.baseURL,i=e.initSegment,d=e.mediaSegments,r=e.mimeType,a=e.codecs,o=e.width,B=e.height,s=e.frameRate,R=e.sar,c=e.startWithSAP,V=e.timescale,h=e.duration,u=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_video_list)for(var Z=0;Z<this.options.dynamic_video.dynamic_video_list.length;Z++){var S=this.options.dynamic_video.dynamic_video_list[Z];S.bitrate===F&&(U=S.size,t=S.definition,n=S.file_id)}this.mediaList.video.push({id:Q,baseURL:l,initSegment:l+i.replace("$RepresentationID$",Q),inited:!1,mediaSegments:d,mimeType:r,codecs:a,width:o,height:B,size:U,frameRate:s,sar:R,startWithSAP:c,bandwidth:F,timescale:V,duration:h,encrypted:u,definition:t,fileId:n})}},{key:"_getAudioSegments",value:function(e){var U,t=e.bandwidth,n=e.id,F=e.baseURL,Q=e.initSegment,l=e.mediaSegments,i=e.mimeType,d=e.codecs,r=e.startWithSAP,a=e.timescale,o=e.duration,B=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_audio_list)for(var s=0;s<this.options.dynamic_video.dynamic_audio_list.length;s++)this.options.dynamic_video.dynamic_audio_list[s].bitrate===t&&(U=this.options.dynamic_video.dynamic_audio_list[s].size);this.mediaList.audio.push({id:n,baseURL:F,initSegment:F+Q.replace("$RepresentationID$",n),inited:!1,mediaSegments:l,mimeType:i,codecs:d,startWithSAP:r,bandwidth:t,size:U,timescale:a,duration:o,encrypted:B})}},{key:"_parseSegments",value:function(e,U){var t=this,n=[],F="";e.BaseURL&&(F=e.BaseURL[0]);var Q=e.Period[0];Q.AdaptationSet&&Q.AdaptationSet.length>1&&Q.AdaptationSet.forEach((function(e){var Q="video/mp4",l="avc1.64001E",i="640",d="360",r="25",a="1:1",o="1",B="588633";e.mimeType&&("video/mp4"===(Q=e.mimeType)?(l=e.codecs,i=parseFloat(e.width),d=parseFloat(e.height),r=parseFloat(e.frameRate),a=e.sar,o=e.startWithSAP,B=parseFloat(e.bandwidth),t.calcVideoCodeType(null,l)):"audio/mp4"===Q&&(l=e.codecs,o=e.startWithSAP,B=parseFloat(e.bandwidth))),e.Representation.forEach((function(s){n.indexOf(s.id)>-1&&(s.id=(parseInt(n[n.length-1],10)+1).toString()),n.push(s.id);var R,c="",V=[],h=0,u=U.slice(0,U.lastIndexOf("/")+1)+F;"video/mp4"===(Q=EF(s,"mimeType",Q))?(s.codecs&&(l=s.codecs,t.calcVideoCodeType(null,l)),i=EF(s,"width",i,parseFloat),d=EF(s,"height",d,parseFloat),r=EF(s,"frameRate",r,parseFloat),a=EF(s,"sar",a)):"audio/mp4"===Q&&(l=EF(s,"codecs",l)),o=EF(s,"startWithSAP",o),B=EF(s,"bandwidth",B,parseFloat),s.BaseURL&&s.BaseURL.length>0&&(u+=s.BaseURL[0]),e.SegmentTemplate&&e.SegmentTemplate.length>0&&(R=e.SegmentTemplate[0]),s.SegmentTemplate&&s.SegmentTemplate.length>0&&(R=s.SegmentTemplate[0]);var Z=!1;(e.ContentProtection||s.ContentProtection)&&(Z=!0),R&&(c=R.initialization,h=parseFloat(R.duration),t._parseST(R,V,s.id,u,d)),B=parseInt(B),"video/mp4"===Q?t._getVideoSegments({id:s.id,bandwidth:B,baseURL:u,initSegment:c,mediaSegments:V,mimeType:Q,codecs:l,width:i,height:d,frameRate:r,sar:a,startWithSAP:o,timescale:0,duration:h,encrypted:Z}):"audio/mp4"===Q&&t._getAudioSegments({id:s.id,baseURL:u,bandwidth:B,initSegment:c,mediaSegments:V,mimeType:Q,codecs:l,startWithSAP:o,timescale:0,duration:h,encrypted:Z})}))}))}},{key:"init",value:function(){var e=this,U=e.options;if(U.dynamic_video.dynamic_type&&"segment_template"!==U.dynamic_video.dynamic_type){e.dashType="segment_base";var t=0;U.duration;var n=U.dynamic_video;["dynamic_video_list","dynamic_audio_list"].forEach((function(F){var Q="dynamic_audio_list"===F;n[F].forEach((function(n){var l=parseInt(n.init_range.split("-")[0],10),i=parseInt(n.init_range.split("-")[1],10),d=parseInt(n.index_range.split("-")[0],10),r=parseInt(n.index_range.split("-")[1],10);Q||e.calcVideoCodeType(n.codec_type),e.mediaList["dynamic_audio_list"===F?"audio":"video"].push({id:("dynamic_audio_list"===F?0:t++).toString(),baseURL:n.main_url,initSegment:n.main_url,initSegmentRange:[l,i],sidxRange:[d,r],inited:!1,hasSidx:!1,mediaSegments:[],mimeType:Q?"audio/mp4":"video/mp4",codecs:Q?"mp4a.40.2":n.codec_type&&n.codec_type.indexOf("h265")>-1?"hev1.1.6.L93.B0":e.videoCodecs,width:n.vwidth,height:n.vheight,bandwidth:parseInt(n.bitrate),avg_bitrate:n.avg_bitrate,size:n.size,timescale:-1,duration:U.duration,encrypted:n.encrypt,kid:n.kid,definition:n.definition,sidxRes:void 0,fileId:n.file_id})}))})),e.type="vod",["video","audio"].forEach((function(U){e.mediaList[U].length>0&&(e.mediaList[U].selectedIdx="video"===U&&e.dash.selectedIdx||0,"video"===U&&e.mediaList[U].sort((function(e,t){return"video"===U?t.height-e.height:t.bandwidth-e.bandwidth})))})),0===e.mediaList.video.length&&0===e.mediaList.audio.length&&e.dash&&e.dash.player&&setTimeout((function(){e.dash.player.emit("NO_MEDIALIST",{dynamic_type:"segment_base"})})),e.emit("ready"),e._readyPromise.resolve()}else e.dashType="segment_template",e.fetch(U.dynamic_video.main_url).then((function(U){e.type=U.meta.TYPE.toLocaleLowerCase(),e.emit("ready"),e._readyPromise.resolve()}),(function(){["video","audio"].forEach((function(U){e.mediaList[U]=[]})),e.retry++,e.retry,e.retryMax}))}},{key:"getSidx",value:function(e){var U,t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"video",F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,Q=arguments.length>3?arguments[3]:void 0,l=this.mediaList[n][F],i=l.sidxRange[1];try{var d=e instanceof ArrayBuffer?e:e.buffer,r=new Uint8Array(d);if("sidx"!==String.fromCharCode.apply(null,r.subarray(4,8)))throw hU.log("mpd sdix parse err"),new Error;var a=(U=ZF.sidx(ZF.findBox(new Uint8Array(d),[])[0])).timescale,o=[],B=0,s=0,R=i+1,c=R-1;U.references.forEach((function(e,U){s+=e.subsegment_duration,c+=e.referenced_size,o.push({idx:U+1,url:l.initSegment,start:Math.round(B/a),end:Math.round(s/a),startRaw:B/a,endRaw:s/a,range:[R,c],downloaded:0,segmentDuration:Math.round(e.subsegment_duration/a),reference_type:e.reference_type,starts_with_SAP:e.starts_with_SAP,SAP_type:e.SAP_type,SAP_delta_time:e.SAP_delta_time,codecType:t.videoCodecType||"h264"}),B=s+1,R=c+1})),o[0].startTime_=0,l.mediaDuration=0,o.forEach((function(e,U){l.mediaDuration+=e.segmentDuration,U>0&&(e.startTime_=o[U-1].startTime_+o[U-1].segmentDuration),U===o.length-1&&Q&&(e.end=Q)})),l.hasSidx=!0,l.mediaSegments=o,l.timescale=a,l.sidxRes=e}catch(V){throw new wn(he,We.SIDX,{line:398,handle:"[MPD] getSidx",message:"mpd segment base Parse getSidx error"})}}},{key:"checkInBuffered",value:function(e,U,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=arguments.length>4?arguments[4]:void 0,Q=arguments.length>5?arguments[5]:void 0;if(0===e.length)return!1;var l=this._inBufferd(U,F,e,n),i=this._inBufferd(t,Q,e,n);return!(!l.in||!i.in||l.index!==i.index)}},{key:"_inBufferd",value:function(e,U,t){for(var n=0;n<t.length;n++){var F=Ut.round(t[n].start),Q=Ut.round(t[n].end);if(F<=e&&e<=Q)return{index:n,in:!0};if(F<=U&&U<=Q)return{index:n,in:!0}}return{in:!1}}},{key:"_doSyncAV",value:function(){var e=this.mediaList;if(!this.hasSync){var U=!1;if(e.video.length<1&&(U=!0),e.audio.length<1&&(U=!0),!U){var t=this.mediaList.video[this.mediaList.video.selectedIdx].mediaSegments,n=this.mediaList.audio[this.mediaList.audio.selectedIdx].mediaSegments,F=Math.min(t.length,n.length);if(F>0){var Q=n[F-1],l=t[F-1];Q&&(Q.incomplete=!0),l&&(l.incomplete=!0)}}this.hasSync=!0}}},{key:"syncAV",value:function(){this.hasSync=!1}},{key:"_getBuffered",value:function(e){var U,t,n,F,Q,l=this.dash.mse;if(!l)return[];"[object Function]"===Object.prototype.toString.call(l.buffered)?U=this.dash.mse.buffered(e):U="video"===e?null===(t=l.timeline)||void 0===t||null===(n=t.videoRender)||void 0===n?void 0:n.buffered:null===(F=l.timeline)||void 0===F||null===(Q=F.audioRender)||void 0===Q?void 0:Q.buffered;if(!U||0===U.length)return[];for(var i=[],d=0;d<U.length;d++)i.push({start:U.start(d),end:U.end(d)});return i}},{key:"seek",value:function(e,U){var t=this,n=this;this._doSyncAV();var F={};return new Promise((function(Q,l){"vod"===t.type||void 0!==e?(["video","audio"].forEach((function(t){if(n.mediaList[t].length<1)return!0;var Q=n._getBuffered(t),l=n.mediaList[t][n.mediaList[t].selectedIdx].mediaSegments;"video"===t&&hU.log("seek",t,"idx",n.mediaList[t].selectedIdx),F[t]=l.filter((function(F,l){if(F.downloaded===CU){if(n.checkInBuffered(Q,F.start,F.end,0,F.startRaw,F.endRaw))return!1;if(F.incomplete)return!1;hU.log("".concat(t," ").concat(l," start:").concat(F.start," end:").concat(F.end," segment downloaded set false")),F.downloaded=vU}var i=F.start<=e&&e<=F.end;if(F.downloaded===vU){if(i)return!0;if(U>0&&F.start>=U&&F.end<=e)return!n.checkInBuffered(Q,F.start,F.end,0,F.startRaw,F.endRaw)}return!1}))})),Q(F)):l("media error2")}))}},{key:"clearBuffer",value:function(e,U,t){hU.log("mpd clearBuffer ".concat(t," start:").concat(e," end:").concat(U));var n=this,F=t?[t]:["video","audio"];"vod"===n.type&&F.forEach((function(t){if(n.mediaList[t].length>0){var F=n.mediaList[t][n.mediaList[t].selectedIdx],Q=[];F.mediaSegments.forEach((function(t,n){t.end<e||t.start>U||(t.downloaded=vU,Q.push(n))}));var l=Q.length>0?Q[0]:void 0,i=Q.length>1?Q[Q.length-1]:l;hU.log("".concat(t," start:").concat(e," end:").concat(U,",\n startId:").concat(l," , endId:").concat(i,", segment downloaded set false"))}}))}},{key:"isLastSegmentAndAppend",value:function(e,U){if(!this.mediaList[e])return!0;var t=U-1,n=this.mediaList[e].selectedIdx,F=this.mediaList[e][n].mediaSegments;return!!F&&(this._isSegmentAppend(F[t])&&F.length-1===t)}},{key:"_isSegmentAppend",value:function(e){return e.downloaded===CU||e.incomplete}},{key:"isSegmentAppendFromIdx",value:function(e,U){if(!this.mediaList[e])return!0;for(var t=0,n=this.mediaList[e].selectedIdx,F=this.mediaList[e][n].mediaSegments||[],Q=0;Q<F.length;Q++)if(F[Q].start<=U&&U<=F[Q].end){t=Q;break}F&&U>=F[F.length-1].end&&(t=F.length-1);var l=!0;if(F){for(var i=t;t<F.length&&F[i];i++)if(!this._isSegmentAppend(F[i])){l=!1;break}}else l=!1;return l}}],[{key:"parseMPD",value:function(e){var U;if("string"==typeof e&&(U=e),e instanceof ArrayBuffer){var t=new Uint8Array(e);U=String.fromCharCode.apply(null,t)}if(!U)return null;var n=performance.now();return U=U.replace(/<(\/)?(\w+:)+(\w+)/g,"<$1$3"),hU.log("MPD cost",performance.now()-n),x.parse(U)}}]),e}(),yF=kF;function NF(e){if(window.Headers&&e instanceof Headers){var U,t={},n=N(e);try{for(n.s();!(U=n.n()).done;){var F=U.value;t[F[0]]=F[1]}}catch(Q){n.e(Q)}finally{n.f()}return t}return e}var bF={loaderCount:2,loaderType:Le,onProcessMinLen:5120,enableDynamicMinLen:!0};function fF(e,U){if(e.length>0)for(var t=0,n=!0,F=0;F<e.length;F++){var Q=e[F];if(Q>U){n=!1;break}if((t+=Q)/e.length>U&&(n=!1),!n)return!1}return!0}var vF=0,TF=function(){function e(U,t){var n=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";c(this,e),In(this),this._config=Object.assign({},bF,a({responseType:"arraybuffer"},U)),this._loaderCount=this._config.loaderCount||1,this._loaderType=this._config.loaderType||Le,this._enableDynamicMinLen=this._config.enableDynamicMinLen,this._preloadManager=t,U.openLog&&be.enable(),this._videoLoaders=[],this._audioLoaders=[],this._videoIdx=0,this._audioIdx=0;for(var Q=0;Q<this._loaderCount;Q++){var l=new be("".concat(F,"VideoLoader_").concat(Q),this._config.vid),i=new be("".concat(F,"AudioLoader_").concat(Q),this._config.vid),d=new rU(a(a({},this._config),{},{logger:l,loaderType:this._loaderType})),r=new rU(a(a({},this._config),{},{logger:i,loaderType:this._loaderType}));this._videoLoaders.push(d),this._audioLoaders.push(r),this._videoSpeeds=[],d.on(qe,(function(e){vF=e.speed,n._cacheSpeed(e)})),r.on(qe,(function(e){vF=e.speed,n._cacheSpeed(e)})),this._videoReqCosts=[]}this._isSupportUrlRange="fetch"===this._loaderType}var U,t,n;return h(e,[{key:"isSupportedProgress",value:function(){return 1===this._loaderCount&&"fetch"===this._loaderType}},{key:"_addCost",value:function(e){this._videoReqCosts.push(e),this._videoReqCosts.length>3&&this._videoReqCosts.shift()}},{key:"_addVideoSpeed",value:function(e){this._videoSpeeds.push(e),this._videoSpeeds.length>3&&this._videoSpeeds.shift()}},{key:"checkProgressSatisfied",value:function(e){var U=!1;if(navigator.connection&&navigator.connection.downlink){U=!0;var t=1e6*navigator.connection.downlink;return!(5*e/t>4)}if(!fF(this._videoReqCosts,4))return!1;var n=this._videoSpeeds.map((function(U){return 1e3*U*5/e}));if(!fF(n,4))return!1;if(!U&&0===n.length)try{try{var F=parseFloat(g.getItem(SU))||0;if(0===F||1e3*F*5/e>4)return!1}catch(Q){}}catch(Q){}return!0}},{key:"_cacheSpeed",value:function(U){var t,n=U.speed;e.historySpeed.length>=20&&e.historySpeed.shift(),e.historySpeed.push(n),this.emit(qe,{speed:n,type:(null==U||null===(t=U.priOptions)||void 0===t?void 0:t.type)||IU})}},{key:"load",value:(n=R(o().mark((function e(U,t,n,F){var Q,l,i,d,r,B,s,R,c,V,h,u,Z,S,J,p,W,m,E,k,y,N,b,f=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Q=f.length>4&&void 0!==f[4]&&f[4],l=f.length>5&&void 0!==f[5]?f[5]:null,i=f.length>6&&void 0!==f[6]?f[6]:null,d=f.length>7&&void 0!==f[7]?f[7]:null,r=f.length>8&&void 0!==f[8]?f[8]:null,B=F.cacheKey||Ut.generateUniqueKey(F),s={start:F.start,end:F.end,bandwidth:F.bandwidth||F.bitrate,sequence:F.idx,fps:F.fps,mediaType:U,selectedIdx:F.selectedIdx,definition:F.definition},R=this._config.onProcessMinLen,this._enableDynamicMinLen&&s.bandwidth&&l&&(c=0===F.start?.5:1,R=Math.floor(s.bandwidth*c/8)),!this._preloadManager){e.next=16;break}return e.next=12,this._preloadManager.getItem(B);case 12:if(!((V=e.sent)&&V.res instanceof ArrayBuffer)){e.next=16;break}return l&&l(V.res,!0,{range:n},null,F),e.abrupt("return",{res:V.res,headers:V.headers,status:V.status,fromCache:!0,selectedIdx:F.selectedIdx,extData:s,cacheKey:B});case 16:if(h=F.isPCDN,u=!l||this._isSupportUrlRange,Z=u&&(this._config.useUrlRange||F.useUrlRange||!1)&&!h,S=t,Z&&n&&n.length>1&&(S="".concat(t+(t.split("?")[1]?"&":"?"),"range=").concat(n[0],"-").concat(n[1])),n&&0!==n.length&&!Z||(n=void 0),J=performance.now(),hU.log("load res start:",JSON.stringify(F),"startTime",J,"userUrlRange",Z,"onProgress",!!l,"onProcessMinLen",R),e.prev=24,p=this._getLoader(U)){e.next=28;break}return e.abrupt("return");case 28:return W=this._config.headers||{},e.next=31,p.load(S,{range:n,onProgress:l,selectedIdx:F.selectedIdx,sequence:F.idx,initSegment:F.initSegment,onProcessMinLen:R,onCancel:i,timeout:d,onTimeout:r,headers:h?Object.assign({},W,{"X-Origin-Server-Host":F.cdnHost}):W,priOptions:{type:h?MU:IU}});case 31:if(m=e.sent){e.next=34;break}return e.abrupt("return",null);case 34:return hU.log("load res finish: ",F,"cost time",performance.now()-J,"ms"),"video"===U&&this._addCost((performance.now()-J)/1e3),E=m.data,k=m.response,y={res:E instanceof Uint8Array?E.buffer:E,headers:NF(k.headers),status:k.status},Q&&this._preloadManager.setItem(B,y).catch((function(){})),e.abrupt("return",a(a({},y),{},{extData:s,selectedIdx:F.selectedIdx,cacheKey:B,isPCDN:h}));case 42:return e.prev=42,e.t0=e.catch(24),hU.log("loader error",{msg:e.t0.message}),e.abrupt("return",{res:"error",status:null===(N=e.t0.response)||void 0===N?void 0:N.status,header:NF(null===(b=e.t0.response)||void 0===b?void 0:b.headers),cacheKey:B,error:e.t0,isPCDN:h,url:S,bitrate:s.bandwidth});case 46:case"end":return e.stop()}}),e,this,[[24,42]])}))),function(e,U,t,F){return n.apply(this,arguments)})},{key:"_getLoader",value:function(e){if("video"===e){var U=this._videoLoaders[this._videoIdx];return this._videoIdx++,this._videoIdx>=this._videoLoaders.length&&(this._videoIdx=0),U}var t=this._audioLoaders[this._audioIdx];return this._audioIdx++,this._audioIdx>=this._audioLoaders.length&&(this._audioIdx=0),t}},{key:"cancel",value:(t=R(o().mark((function e(U){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!U){e.next=6;break}return t="video"===U?this._videoLoaders:this._audioLoaders,e.next=4,this.cancelLoaders(t);case 4:e.next=10;break;case 6:return e.next=8,this.cancelLoaders(this._audioLoaders);case 8:return e.next=10,this.cancelLoaders(this._videoLoaders);case 10:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"cancelLoaders",value:(U=R(o().mark((function e(U){var t,n,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=N(U),e.prev=1,t.s();case 3:if((n=t.n()).done){e.next=9;break}return F=n.value,e.next=7,F.cancel();case 7:e.next=3;break;case 9:e.next=14;break;case 11:e.prev=11,e.t0=e.catch(1),t.e(e.t0);case 14:return e.prev=14,t.f(),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[1,11,14,17]])}))),function(e){return U.apply(this,arguments)})},{key:"destroy",value:function(){this.cancel();for(var e=0;e<this._videoLoaders.length;e++){var U=this._videoLoaders[e];U&&U.removeAllListeners();var t=this._audioLoaders[e];t&&t.removeAllListeners()}this._audioLoaders=[],this._videoLoaders=[]}}],[{key:"currentSpeed",get:function(){return vF}},{key:"historyAvspeed",get:function(){var U=e.historySpeed.reduce((function(e,U){return e+U}),0);return 0===e.historySpeed.length?0:U/e.historySpeed.length}}]),e}();TF.historySpeed=[];var CF="danger_d_speed";var DF=function(){function e(U,t,n,F){var Q=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};c(this,e),this.bitrate=t,this.segment_duration=F||5e3,this.logger=Q.logger,this.openLog=Q.openLog,this.cdnHost=U.cdnHost,this._loadedPromise=new X,this._wasmPromise=new X,this.config=U,this.autoBitrateOpts=U.autoBitrateOpts||{},this.stall_penalty=this.autoBitrateOpts.stall_penalty||11,this.switch_penalty=this.autoBitrateOpts.switch_penalty||4,this.interval=this.autoBitrateOpts.interval||1e3;var l=U.progressTimer||1e3,i=this.autoBitrateOpts.startInterval||l;this.initInterval=.8*i,this._prealodMethod=U.preloadmethod||0,this._videoWidth=0,this._videoHeight=0,this._hasDeviceInfoChanged=!0,this._maxDefinition=this.autoBitrateOpts.maxDefinition||null,this._underflowDefinition=this.autoBitrateOpts.underflowDefinition||null,this.updateMediaInfos(n,!1)}return h(e,[{key:"onLoadWasm",value:function(){var e=this,U=this.module={onRuntimeInitialized:function(){e._wasmPromise.resolve()}};return(0,this.autoBitrateOpts.module)(U),this._wasmPromise}},{key:"updateMediaInfos",value:function(e){var U=this,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._heightToDefitionConfig=new Map,this._bitrateToDefitionConfig=new Map,this._definitionToDefitionConfig=new Map,e?(this.mediaInfos=e,this.mediaInfos.dynamic_video_list.forEach((function(e){U._heightToDefitionConfig.set(e.vheight,e),U._bitrateToDefitionConfig.set(e.bitrate,e),U._definitionToDefitionConfig.set(e.definition,e)})),this._maxDefinition&&(this._defaultMaxBitrate=this._getBitrate(this._maxDefinition)),this._underflowDefinition&&(this._underflowBitrate=this._getBitrate(this._underflowDefinition))):t&&console.error("baseAbr mediaInfos null")}},{key:"_getBitrate",value:function(e){var U;return(null===(U=this._definitionToDefitionConfig.get(e))||void 0===U?void 0:U.bitrate)||-1}},{key:"parseMPD",value:function(){if(this.setDebugModel(this.openLog),this.mediaInfos){this.logger("mediaInfos",this.mediaInfos);try{for(var e=[],U=this.mediaInfos.dynamic_video_list,t=0;t<U.length;t++){var n=U[t];e.push({stream_id:"s".concat(t),bandwidth:n.bitrate||n.bandwidth,width:n.vwidth||n.width,height:n.vheight||n.height,codec:n.codecs||n.codec_type||"h264",frame_rate:Number(n.fps)||-1,segment_duration:this.segment_duration})}var F={v_adaptation:e},Q=JSON.stringify(F);this.module.ccall("parseMPD","null",["string"],[Q])}catch(l){}}else console.warn("mediaInfos is null")}},{key:"_getDefautSpeed",value:function(e){var U=0,t=window.navigator.connection;if(t&&t.downlink)U=1024*navigator.connection.downlink/8,this.logger("initSpeed connect",U);else try{U=parseFloat(g.getItem(CF))||0,this.logger("initSpeed connect",U)}catch(n){}return 0===U&&(U=e&&e.historyAvspeed||0,this.logger("initSpeed history",U)),U}},{key:"setDebugModel",value:function(e){this.module._setDebugModel(e)}},{key:"updateBitrate",value:function(e){this.bitrate=e}},{key:"_updatePreloadSupplier",value:function(e,U){this.module._updatePreloadSupplier(e,U)}},{key:"updatePreloadSupplier",value:function(e){var U=this._getDefautSpeed();this._updatePreloadSupplier(U,e)}},{key:"getPreloadBitrate",value:function(){var e,U=null,t=[];try{this.logger("preloadMethod",this._prealodMethod),e=this.module._getPreloadBitrate(this._prealodMethod);for(var n=0;n<5;n++)t.push(this.module.HEAP32[e/Int32Array.BYTES_PER_ELEMENT+n]);var F={bitrate:t[0],pduration:t[1],preloadType:t[2],size:t[3],mediaType:t[4]};return this.logger("getPreloadBitrate",F),F}catch(Q){U=null,console.log("getPreloadBitrate",Q)}finally{this.module._free(e)}return U}},{key:"_updateDeviceInfo",value:function(e){try{if(this._hasDeviceInfoChanged){var U=window.devicePixelRatio||1;this.module._updateDeviceInfo(this._videoWidth||Number(this.config.width),this._videoHeight||Number(this.config.height),U,e||-1)}this._hasDeviceInfoChanged=!1}catch(t){console.log("_updateDeviceInfo")}}},{key:"preload",value:function(e){this.parseMPD(),this.updatePreloadSupplier(e),this._updateDeviceInfo(-1);var U=window.devicePixelRatio||1;return this.logger("baseAbr updateDeviceInfo width",this._videoWidth||Number(this.config.width),"height",this._videoHeight||Number(this.config.height),"dpr",U),this.getPreloadBitrate()}}]),e}();DF.SPPED_CACHE=CF;var gF="ABR_CHANGE_A",XF="UPDATE_AUTO_DESC",xF="ABR_START_PROGRESS",LF="MAX_BUFFER_CHANGE",GF="ABR_LIMIT_BITRATE",IF="__auto__",MF=0,YF=1,wF=-1,KF=0,jF=1,_F={PLAYBACK_BITRATE:"avg_play_bitrate",DOWNLOAD_BITRATE:"avg_download_bitrate",DOWNLOAD_NETWORK_SPEED:"avg_download_speed",PREDICT_NETWORK_SPEED:"avg_predict_speed",BUFFER_LENGTH:"avg_buffer_length",QOE:"avg_qoe"},HF=function(e){Z(t,e);var U=m(t);function t(e,n,F,Q,l){var i,d=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{logger:function(){},openLog:!1};c(this,t),(i=U.call(this,n,F,Q,l,d)).player=e,i.timerId=0,i.isOpenAutoDefi=!!i.autoBitrateOpts.isOpenAutoDefi,i._maxDefinition=i.autoBitrateOpts.maxDefinition||null,i.onPlayrateChange=i._onPlayrateChange.bind(W(i)),i.onPlay=i._onPlay.bind(W(i)),i._stop=i.stop.bind(W(i)),i._bufferRange=new Map,i._sortedBufferRange=[],i._lastCheckResolutionStamp=0,i._currentDefinition=null,i._isSeeking=!1,i._waitingStartTime=0,i._stallCount=0,i._seekState=MF,i._stallState=KF,i._videoCurrentTime=0,i._maxBitrate=-1,i.listeners=[{evt:"playbackrateChange",handler:i.onPlayrateChange},{evt:"ended",handler:i._stop},{evt:"error",handler:i._stop},{evt:"timeupdate",handler:i._onTimeUpdate.bind(W(i))},{evt:"addVideoBufferEnd",handler:i._bufferRangeUpdate.bind(W(i))},{evt:"canplay",handler:i._updateAutoDesc.bind(W(i))},{evt:"play",handler:i._onplayStart.bind(W(i))},{evt:LF,handler:i._onMaxBufferChange.bind(W(i))},{evt:"seeking",handler:i._onSeeking.bind(W(i))},{evt:"seeked",handler:i._onSeekEnd.bind(W(i))},{evt:"waiting",handler:i._onWaiting.bind(W(i))},{evt:"playing",handler:i._onPlaying.bind(W(i))}],i._hasStart=!1,i.listeners.forEach((function(e){var U=e.evt,t=e.handler;i.player.on(U,t)})),i._isPaused=!1,i._hasAddFrament=!1,i._eventInfo={local_time_ms:0,internet_speed:0,buffer_length:0,last_bitrate:0,now_bitrate:0,play_speed:1},i._bitrateSet=[],i._generalInfo={},i._currentInAbr=!1,i._hasCalcTimelineLog=!1,i._abr_play_info={start_play_time_ms:0,is_hint:0,playback_info:{internet_speed_record:[],play_bitrate_record:[],buffer_length_record:[],play_speed_record:[],qoe_record:[],qoe_a_record:[],qoe_b_record:[],qoe_c_record:[]}},i._abrMethod=i.autoBitrateOpts.method||0,i.logger("abr: constructor"),i._loopInterval=i.initInterval,i._tickCount=0,i._fps=30,v.install(),i.startTime=performance.now(),i.logger("time abr",(new Date).getTime()),i._maxCacheTimeVideo=i.config.preloadTime||5,i._maxCacheTimeAudio=i._maxCacheTimeVideo,i._prevDefinitionItem=null,i._currentItem=null,i._switchCount=0,i._switchBitrate=0,i._avgStatItems={};for(var r=Object.keys(_F),a=0;a<r.length;a++){var o=r[a],B=_F[o];i._avgStatItems[B]=new zF}return i._qoeArgs=[0,0,0,0],i._abrUsed=-1,i._abrAlwaysOn=1,i._prelaodInfo=null,i._hasLogStartInfo=!1,i._hasExecuteAbrAlgo=!1,i._lastExecuteTimeInMs=0,i}return h(t,[{key:"init",value:function(e){return this._mediaList=e,this.isOpenAutoDefi?this.onLoadWasm():this._wasmPromise.resolve(),this._wasmPromise}},{key:"execute",value:function(){return this.listenSize(),this.initFps(),this.onWinElemSizeChange(),this.onPlay()}},{key:"_onSeeking",value:function(){this._isSeeking=!0,this.player.currentTime<this._videoCurrentTime?this._seekState=wF:this._seekState=YF,this.logger("seekState",this._seekState)}},{key:"_onSeekEnd",value:function(){this._isSeeking=!1}},{key:"_onWaiting",value:function(){var e=this;if(!(this._isSeeking||this._waitingStartTime>0)){for(var U=this.player.video.buffered,t=this.player.currentTime,n=!1,F=0;F<U.length;F++){var Q=U.start(F),l=U.end(F);if(Q<=t&&t<l-1&&this.player.readyState<HTMLVideoElement.HAVE_ENOUGH_DATA){n=!0;break}}n&&(this._defaultMaxBitrate||this._underflowBitrate)&&(this.player.emit(GF),this._underflowBitrate>0&&(this._maxBitrate=this._underflowBitrate)),this._waitingStartTime=(new Date).getTime(),this._stallId=setTimeout((function(){clearTimeout(e._stallId),e._stallCount++,e._stallState=jF}),200)}}},{key:"_onPlaying",value:function(){this._waitingStartTime=0,this._stallState=KF,clearTimeout(this._stallId)}},{key:"initFps",value:function(){this.fpsDetection=new v,this.fpsDetection.start(),this._fps=this.fpsDetection.fps,this._hasDeviceInfoChanged=!0}},{key:"listenSize",value:function(){var e,U,t,n;this.mediaElem=this.player.video,this._onWinSizeChange=(e=this.onWinElemSizeChange.bind(this),U=1e3,t=!1,function(){for(var F=this,Q=arguments.length,l=new Array(Q),i=0;i<Q;i++)l[i]=arguments[i];var d=l,r=t&&!n;clearTimeout(n),n=setTimeout((function(){n=null,t||e.apply(F,d)}),U),r&&e.apply(F,d)}),window.addEventListener("resize",this._onWinSizeChange)}},{key:"onWinElemSizeChange",value:function(){if(this.mediaElem){var e=this.mediaElem.getBoundingClientRect();this._videoWidth=Math.floor(e.width),this._videoHeight=Math.floor(e.height),this._hasDeviceInfoChanged=!0}}},{key:"_onMaxBufferChange",value:function(e){var U=e.videoCacheTime,t=e.audioCacheTime;this._maxCacheTimeAudio=t,this._maxCacheTimeVideo=U}},{key:"_onTimeUpdate",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this._sortedBufferRange&&0!==this._sortedBufferRange.length&&this._currentInAbr){this._videoCurrentTime=this.player.currentTime;var t=Date.now();if(!(t-this._lastCheckResolutionStamp<1e3&&0!==this._lastCheckResolutionStamp)||U){this._lastCheckResolutionStamp=t;for(var n=this.player.currentTime,F=0,Q=this._sortedBufferRange.length-1,l=null;F<=Q;){var i=Math.floor(F+(Q-F)/2),d=this._sortedBufferRange[i];if(n<d.start)Q=i-1;else{if(!(n>=d.end)){l=d;break}F=i+1}}if(l){var r=this._bitrateToDefitionConfig.get(l.bandwidth),a=r&&r.definition;if(this._currentDefinition===a&&!U||!a)return void(a||this.logger("error defintion, mpd配置与接口配置不一致"));this._currentDefinition=a,this._prevDefinitionItem=this._currentItem,this._currentFps=r.fps,this._currentItem=r,this._emitAutoDescChange(a,!1,this._currentFps,r)}}}}},{key:"_emitAutoDescChange",value:function(e,U,t,n){this.player.emit(XF,{definition:e,reset:U,fps:t,item:n,pre_item:this._prevDefinitionItem})}},{key:"_onplayStart",value:function(){this._hasStart=!0,this.logger("onplaystart")}},{key:"_updateAutoDesc",value:function(){var e=this;this._currentInAbr&&this._currentDefinition&&(this._updateId=setTimeout((function(){clearTimeout(e._updateId),e._emitAutoDescChange(e._currentDefinition,!1,e._currentFps,e._currentItem)}),0))}},{key:"_bufferRangeUpdate",value:function(e){if(void 0!==e.start){null===this._currentItem&&this._onTimeUpdate(null,!0);var U=e.start;this._hasAddFrament=!0,this._bufferRange.set(U,e);var t=E(this._bufferRange.values());this._sortedBufferRange=t.sort((function(e,U){return e.start-U.start})),this.avgStat(_F.DOWNLOAD_BITRATE,e.bandwidth)}}},{key:"_onPlayrateChange",value:function(){this.module&&this.updateBufferInfo()}},{key:"_onPlay",value:function(){var e=this;if(!this.isOpenAutoDefi)return this.logger("onPlay"),0;var U=0;try{this.logger("abr: loadeddata"),this.updateSwitchInfo(),this.parseMPD(),this.updateDeviceInfo();var n=t.getIsPlayAutoDefi(this.autoBitrateOpts);if(this.isOpenAutoDefi&&n){this._abrUsed=1;var F=this._getDefautSpeed(this.player);U=this._loopAbr(F),this.start(),this.logger("time abr start prgress",(new Date).getTime()),this.logger("time abr costTime",performance.now()-this.startTime),this.logger("abr onplay"),this.startTimer=setTimeout((function(){e._loopInterval=e.interval,clearTimeout(e.startTimer),e.logger("interval change")}),5e3)}}catch(Q){this.logger("abr: loadeddata error",Q),this.logger("time abr costTime err",performance.now()-this.startTime)}return U}},{key:"start",value:function(){if(this.logger("abr: start"),this._isPaused=!1,!this._hasCalcTimelineLog){var e=1===Math.floor(100*Math.random());this._abr_play_info.is_hint=e?1:0}this._hasCalcTimelineLog=!0,this._loop()}},{key:"_loop",value:function(){var e=this;this._isPaused||(clearTimeout(this.timerId),this.timerId=setTimeout((function(){if(!e.player.paused||!e.player.config.autoplay&&!e._hasStart){var U=e._hasAddFrament?void 0:e._getDefautSpeed(e.player);e._loopAbr(U)}e._loop()}),this._loopInterval))}},{key:"updateDeviceInfo",value:function(){try{if(this.fpsDetection){var e=this.fpsDetection.fps;e!==this._fps&&(this._fps=e,this._hasDeviceInfoChanged=!0)}this._updateDeviceInfo(this._fps)}catch(U){}}},{key:"updateBufferInfo",value:function(e){var U=this.player.playbackRate,t=this.bufferLength,n=e||Math.floor(this.player.downloadSpeed);this._tickCount<5&&0===n&&(n=this._getDefautSpeed(this.player),this.logger("initSpeed fix"));var F=-1===this._maxBitrate?this._defaultMaxBitrate:this._maxBitrate;return this.logger("maxCacheTimeAudio:",this._maxCacheTimeAudio,"maxCacheVideoTime",this._maxCacheTimeVideo,"seekState",this._seekState,"stallState",this._stallState,"maxBitrate",F),this.module._updateBufferInfo(U,this._maxCacheTimeAudio,this._maxCacheTimeVideo,t,t,n,this._seekState,this.player.currentTime,this._stallState,F),this._seekState=MF,this._eventInfo={internet_speed:n,buffer_length:t,last_bitrate:this.bitrate,play_speed:U},this.logger("playRate:",U,"buff:",t,"downloadSpeed:",n),{buffer:t,downloadSpeed:n}}},{key:"updateSwitchInfo",value:function(){var e=(new Date).getTime();this._openTimeMs=e,this._abr_play_info.start_play_time_ms=e;var U,t,n=this.player.config.preloadTime||50,F=(t=(U=e).toString(16)).length<=8?{high:0,low:U}:{high:parseInt(t.substr(0,t.length-8),16),low:parseInt(t.substr(t.length-8),16)},Q=this.autoBitrateOpts.noStallCheckTime||5,l=this.openLog;this.logger("openTime:",e,"this.logger",l),this.module._updateSwitchInfo(F.low,F.high,Q,l,this.stall_penalty,this.switch_penalty);var i=this._mediaList.video,d=i.map((function(e){var U=e.bandwidth,t=e.bitrate;return U||t}));this._bitrateSet=d.map((function(e,U){return{bitrate:e,codecs:i[U].codecs||i[U].codec_type}})),this._generalInfo={max_cache_time:n,bitrate_set:this._bitrateSet,segment_duration:this.segment_duration,preload_info:{},startup_info:{}}}},{key:"updatePreloadCacheInfo",value:function(e){try{this._prelaodInfo=e,this.logger("update preloadInfo",e),e&&e.item_num!==e.items.length&&(this.logger("preloadInfo invalid"),this._prelaodInfo=null)}catch(U){this.logger("updatePreloadCacheInfo",U),this._prelaodInfo=null}}},{key:"updatePreloadLogInfo",value:function(e){this._generalInfo.preload_info=e||{}}},{key:"_updatePreloadInfo",value:function(){try{var e=this.player.getPreloadInfos();if(e){var U=e.preloadInfo,t=e.abr;this.updatePreloadLogInfo(U),t&&this.updatePreloadCacheInfo(U)}if(this.logger("_updatePreloadInfo preloadinfos",e),null!=this._prelaodInfo){var n=JSON.stringify(this._prelaodInfo);this.module.ccall("updatePreloadInfo","null",["string"],[n])}else this.logger("_updatePreloadInfo preloadinfo null, no preload")}catch(F){this.logger("_updatePreloadInfo err",F)}}},{key:"_loopAbr",value:function(e){var U;this._tickCount++;var t=[];try{this.updateDeviceInfo();var n=this.updateBufferInfo(e),F=n.downloadSpeed,Q=n.buffer;U=this.module._getPredictedBitrate(this.bitrate,this._abrMethod);for(var l=0;l<7;l++)t.push(this.module.HEAP32[U/Int32Array.BYTES_PER_ELEMENT+l]);var i=t[0],d=1===t[1];this._eventInfo.now_bitrate=i,this._eventInfo.local_time_ms=(new Date).getTime();var r=0;if(i!==this.bitrate&&0!==i){var a=this.bitrate;r=Math.abs(a-i);for(var o=[],B=this.player.video.buffered,s=0;s<B.length;s++)o.push({start:B.start(s),end:B.end(s)});var R=this._videoWidth||Number(this.config.width),c=this._videoHeight||Number(this.config.height),V=(new Date).getTime(),h={speed:"".concat(F," KB/s"),buffer_length:"".concat(Q," s"),video_pos:this.player.currentTime,all_buffers:o,seek_state:this._seekState,stall_state:this._stallState,screen_width:R,screen_height:c,dpr:window&&window.devicePixelRatio,playbackRate:this.player.playbackRate,bitrateSet:this._bitrateSet,abrMethod:this._abrMethod,delta:this._hasExecuteAbrAlgo?V-this._lastExecuteTimeInMs:0};this._lastExecuteTimeInMs=V,this._hasExecuteAbrAlgo=!0,this.player.emit(gF,this.bitrate,i,d,JSON.stringify(h)),this.logger("abr loop predicte:",i,"willStall:",d,"switchBitrate",r,"cur",a),this.bitrate=i}this._hasLogStartInfo||(this._hasLogStartInfo=!0,this._generalInfo.startup_info={predict_bitrate:i,download_speed:F,screen_width:this._videoWidth||Number(this.config.width),screen_height:this._videoHeight||Number(this.config.height),device_pixel_ratio:window&&window.devicePixelRatio,screen_fps:this._fps,startup_method:this._abrMethod}),this.player.emit("ABR_LOOP"),this.onAbrLoop(F,t[2],r,t.slice(3))}catch(u){this.logger("abr error",u),console.log("error",u)}finally{this.module._free(U)}return this.bitrate}},{key:"stop",value:function(){!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&(this._abrAlwaysOn=-1),clearTimeout(this.timerId),this._isPaused=!0,this.logger("abr: stop")}},{key:"destroy",value:function(){var e=this;this._stop(),this.listeners.forEach((function(U){var t=U.evt,n=U.handler;e.player.off(t,n)})),this.player=null,this._heightToDefitionConfig=null,this._bitrateToDefitionConfig=null,this._bufferRange=null,this._sortedBufferRange=null,this.module=null,clearTimeout(this._stallId),clearTimeout(this._updateId),clearTimeout(this.startTimer),window.removeEventListener("resize",this._onWinSizeChange),this.fpsDetection&&this.fpsDetection.stop(),this._maxBitrate=-1,this.player=null}},{key:"eventInfo",get:function(){return this._eventInfo}},{key:"generalInfo",get:function(){return this._generalInfo}},{key:"bufferLength",get:function(){var e=this.player.getBufferedRange(),U=this.player.video.currentTime,t=e[1]-Math.max(e[0],U);return t=Math.max(0,t).toFixed(2),parseFloat(t)}},{key:"downloadSpeed",get:function(){return Math.floor(this.player.downloadSpeed)}},{key:"nowBitrate",get:function(){return this.bitrate}},{key:"openTimeMs",get:function(){return this._openTimeMs}},{key:"isCurrentInAbr",get:function(){return this._currentInAbr},set:function(e){this._currentInAbr=e}},{key:"onAbrLoop",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(this._qoeArgs=n,this._currentItem&&this.avgStat(_F.PLAYBACK_BITRATE,this._currentItem.bitrate),this.avgStat(_F.DOWNLOAD_NETWORK_SPEED,1e3*e*8),this.avgStat(_F.PREDICT_NETWORK_SPEED,U),this.avgStat(_F.BUFFER_LENGTH,this.bufferLength),this.avgStat(_F.QOE,this.getQoeRelValue(0)),t>0&&(this._switchCount++,this._switchBitrate+=t),this._abr_play_info.is_hint){var F=this,Q=((new Date).getTime()-this.openTimeMs)/1e3;Q=parseFloat(Q.toFixed(2)),this._abr_play_info.playback_info.internet_speed_record.push([Q,F.downloadSpeed]),this._abr_play_info.playback_info.play_bitrate_record.push([Q,F.nowBitrate]),this._abr_play_info.playback_info.buffer_length_record.push([Q,F.bufferLength]),this._abr_play_info.playback_info.play_speed_record.push([Q,this.player.playbackRate]),this._abr_play_info.playback_info.qoe_record.push([Q,this.getQoeRelValue(0)]),this._abr_play_info.playback_info.qoe_a_record.push([Q,this.getQoeRelValue(1)]),this._abr_play_info.playback_info.qoe_b_record.push([Q,this.getQoeRelValue(2)]),this._abr_play_info.playback_info.qoe_c_record.push([Q,this.getQoeRelValue(3)])}}},{key:"getQoeRelValue",value:function(e){return this._qoeArgs[e]/100}},{key:"avgStat",value:function(e,U){var t=this._avgStatItems[e];t&&t.add(U)}},{key:"getAbrPlayInfo",value:function(){return this._abr_play_info}},{key:"updateAbrMethod",value:function(e){this._abrMethod=e}},{key:"getAbrMethod",value:function(){return this._abrMethod}},{key:"getAbrVVStats",value:function(){for(var e={},U=Object.keys(_F),t=0;t<U.length;t++){var n=U[t],F=_F[n],Q=this._avgStatItems[F];e[F]=Q.avg()}return e.switch_counts=this._switchCount,e.avg_switch_bitrate=0===this._switchCount?0:this._switchBitrate/this._switchCount,e.abr_qoe=this.getQoeRelValue(0),e.abr_qoe_a=this.getQoeRelValue(1),e.abr_qoe_b=this.getQoeRelValue(2),e.abr_qoe_c=this.getQoeRelValue(3),e.abr_method=this._abrMethod,e.abr_used=this._abrUsed,e.abr_always_on=this._abrAlwaysOn,this.logger("abrVVStats",e),e}}],[{key:"getIsPlayAutoDefi",value:function(e){return!!e.isPlayAutoDefi}}]),t}(DF),zF=function(){function e(){c(this,e),this.total=0,this.count=0}return h(e,[{key:"add",value:function(e){this.total+=e,this.count++}},{key:"avg",value:function(){if(0===this.count)return 0;var e=this.total/this.count;return Math.floor(e)}}]),e}(),OF=it,PF=function(e){Z(t,e);var U=m(t);function t(e,n,F,Q){var l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};return c(this,t),U.call(this,e,n,F,Q,l)}return h(t,[{key:"init",value:function(){return this.onLoadWasm()}},{key:"preloadPredict",value:function(){return this.preload(OF.VIDEO)}}]),t}(DF),AF=function(e){Z(t,e);var U=m(t);function t(e){var n;return c(this,t),(n=U.call(this)).loggerConfig=e,n._isWasmSupport=HU(),n}return h(t,[{key:"init",value:function(e){var U=e.autoBitrateOpts||{},t=U.module;return this.isOpenAbr=U.isOpenAutoDefi,this.isOpenAbr&&!t&&(console.warn("if open abr, need [module], abr open change to close"),this.isOpenAbr=!1),this._isWasmSupport&&t&&this.isOpenAbr?(this._abrPreloadInst=new PF(e,0,null,5,this.loggerConfig),this._abrPreloadInst.init()):Promise.resolve()}},{key:"preloadPredict",value:function(e){var U=this._mediaInfos,t=0,n=0;if(this._isWasmSupport&&this.isOpenAbr&&(e.useAbr||void 0===e.useAbr)){this._abrPreloadInst.updateMediaInfos(this._mediaInfos);var F=this._abrPreloadPredict();t=F.videoIdx,n=F.time}else t=this.getIdx(U.dynamic_video_list,e.defaultDefinition),this._cachedData=null;var Q=U.dynamic_video_list[t]||U.dynamic_video_list[0];return{bandwidth:Q.bitrate||Q.bandwidth,executeTime:n}}},{key:"_abrPreloadPredict",value:function(){var e=this._abrPreloadInst.preloadPredict();this._cachedData=e;var U=e.bitrate,t=0,n=this.bandwidth2item[U];if(n){var F=n.definition;t=this.getIdx(this._mediaInfos.dynamic_video_list,F)}return{videoIdx:t,time:e.pduration}}},{key:"cachedData",get:function(){return this._cachedData}}]),t}(Xt);function qF(e){e.duration=e.dashOpts.Data.Duration,e.dashOpts.dynamic_video=e.dashOpts.Data,e.dashOpts.dynamic_video.dynamic_video_list=[],e.dashOpts.dynamic_video.dynamic_audio_list=[],e.dashOpts.dynamic_video.dynamic_type=e.dashOpts.Data.AdaptiveInfo.AdaptiveType,e.dashOpts.dynamic_video.main_url=e.dashOpts.Data.AdaptiveInfo.MainPlayUrl;for(var U=0;U<e.dashOpts.Data.PlayInfoList.length;U++){var t=e.dashOpts.Data.PlayInfoList[U],n={backup_url_1:t.BackupPlayUrl,bitrate:e.dashOpts.Data.VideoID?t.Bitrate:1e3*t.Bitrate,check_info:t.CheckInfo,codec_type:t.Codec,definition:t.Definition,encrypt:!(!t.PlayAuth||!t.PlayAuthID&&!t.PlayAuthId),file_hash:t.FileHash||t.Md5,file_id:t.FileID,index_range:t.IndexRange,init_range:t.InitRange,kid:t.PlayAuthID||t.PlayAuthId,logo_type:t.Logo||t.LogoType,main_url:t.MainPlayUrl,preload_interval:t.PreloadInterval,preload_max_step:t.PreloadMaxStep,preload_min_step:t.PreloadMinStep,preload_size:t.PreloadSize,quality:t.Quality,size:t.Size,spade_a:t.PlayAuth,vheight:t.Height,vtype:t.Format,vwidth:t.Width};"video"===t.MediaType||"video"===t.FileType?e.dashOpts.dynamic_video.dynamic_video_list.push(n):"audio"!==t.MediaType&&"audio"!==t.FileType||e.dashOpts.dynamic_video.dynamic_audio_list.push(n)}}var $F=null,eQ=function(e){Z(n,e);var U,t=m(n);function n(e,U,F){var Q;return c(this,n),U.vtype=xt.DASH,(Q=t.call(this,U)).player=e,Q.logger=F||function(){},Q.loader=new TF({loaderCount:1,loaderType:Ge},Q.preloadManager,"preloader"),Q}return h(n,[{key:"before",value:function(){var e=this;this.handlers={start:function(U){return e.start(U)},onRequest:function(U,t){var n=U.url,F=U.range,Q=U.extData;return e.getData(n,F,Q,t)}},this.loggerConfig={logger:function(){},openLog:!1};try{!!localStorage.getItem("abrdebug")&&(this.loggerConfig.logger=console.log,this.loggerConfig.openLog=!0)}catch(U){}this.predictInst=new AF(this.loggerConfig)}},{key:"start",value:function(e){var U=this,t=new X,F=e.payload;if("TOP"===e.playInfoType){var Q={dashOpts:e.payload};qF(Q),F=Q.dashOpts.dynamic_video}F.dynamic_video_list&&F.dynamic_video_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate})),F.dynamic_audio_list&&F.dynamic_audio_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate}));var l=new yF("anytext",{dynamic_video:F},this),i={mediaInfos:{dynamic_video_list:[],dynamic_audio_list:[]},onObtain:function(){var e=new X;return e.resolve(i.mediaInfos),e},onTransform:function(t){var Q=new X;if(n.BitRateAdapter){var i=U.getUserSelectDefinition(),d=Ut.getSelectorList(F,e.duration),r=n.BitRateAdapter.getSuitableBitrate(d,i);U.logger("[xgplayer-encrypt] preloader getSuitableBitrate",r,"userSelectDefinition",i),r&&(t.bandwidth=r.bitrate)}var a=l.mediaList.video||[],o=l.mediaList.audio||[],B=e.vid;if("segment_template"===l.dashType)U._calRequests(l,t,Q,e,!0);else{var s=[];if(o&&o.length>0){var R=U.makeInitBaseSegemntRequest(l,e.duration,"audio",0,void 0,B);s.push(R)}if(a&&a.length>0){var c=U._calVideoItemIdx(a,t.bandwidth)||0,V=a[c].definition,h=U.makeInitBaseSegemntRequest(l,e.duration,"video",c,V,B);s.push(h)}Promise.all(s).then((function(){U._calRequests(l,t,Q,e)})).catch((function(e){console.warn&&console.warn("catch no reqeuset",e),Q.resolve([])}))}return Q}};return l.once("ready",(function(){i.type=l.type,i.mediaInfos.dynamic_video_list=l.mediaList.video||[],i.mediaInfos.dynamic_audio_list=l.mediaList.audio||[],t.resolve(i)})),l.init(),t}},{key:"_calRequests",value:function(e,U,t,n){var F=arguments.length>4&&void 0!==arguments[4]&&arguments[4],Q=[],l=U.bandwidth,i=U.time,d=U.executeTime,r=e.mediaList.video||[],a=e.mediaList.audio||[],o=n.vid;if(a&&a.length>0){a[0].codec_type=e.videoCodecType;var B=this._calUrls(a[0],i,d,"audio",o,null,F);Q=Q.concat(B)}if(r&&r.length>0){var s=r[this._calVideoItemIdx(r,l)||0];s.codec_type=e.videoCodecType;var R=this._calUrls(s,i,d,"video",o,s.definition,F);Q=Q.concat(R)}0===Q.length&&console.warn&&console.warn("no reqeusts from preloader"),t.resolve(Q)}},{key:"_calUrls",value:function(e,U,t,n,F,Q){var l=[];if(e){var i=e;arguments.length>6&&void 0!==arguments[6]&&arguments[6]&&l.push({url:i.initSegment,range:i.initSegmentRange||[],extData:{cacheKey:Ut.generateUniqueKey({vid:F,mediaType:n,codecType:i.codec_type,format:"dash",bitrate:i.bandwidth||i.bitrate}),vid:F,format:"dash",isInitSegment:!0,mediaType:n,useUrlRange:Ut.validateUrlRange(this.options.url_range_domains,i.initSegment)}});var d=e.mediaSegments,r=d[this._calStartEnd(d,U,t)];l.push({url:r.url,range:r.range||[],extData:{cacheKey:Ut.generateUniqueKey({vid:F,mediaType:n,codecType:i.codec_type,format:"dash",start:r.start,end:r.end,definition:Q,bitrate:i.bandwidth||i.bitrate}),vid:F,format:"dash",isInitSegment:!1,mediaType:n,useUrlRange:Ut.validateUrlRange(this.options.url_range_domains,r.url)}})}return l}},{key:"_calStartEnd",value:function(e,U){for(var t=-1,n=0;n<e.length;n++){var F=e[n],Q=U||0;if(F.start>=Q&&Q<F.end){t=n;break}}return-1===t&&(t=0),t}},{key:"_calVideoItemIdx",value:function(e,U){for(var t=0;t<e.length;t++){var n=e[t];if(n&&n.bandwidth===U)return t}return null}},{key:"getData",value:(U=R(o().mark((function e(U){var t,n,F,Q,l,i,d,r=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>1&&void 0!==r[1]?r[1]:[],n=r.length>2&&void 0!==r[2]?r[2]:{},F=r.length>3?r[3]:void 0,e.prev=3,e.next=6,this.loader.load(n.mediaType,U,t,n,!0);case 6:return Q=e.sent,l=Q.res,i=Q.headers,d=Q.cacheKey,F&&F({total:l.byteLength,loaded:l.byteLength,cacheKey:d||n.cacheKey}),e.abrupt("return",{res:l,headers:i});case 14:return e.prev=14,e.t0=e.catch(3),console.log("preload get data error",e.t0),e.abrupt("return",{res:null});case 18:case"end":return e.stop()}}),e,this,[[3,14]])}))),function(e){return U.apply(this,arguments)})},{key:"makeInitBaseSegemntRequest",value:function(e,U,t,n,F,Q){var l=this,i=new X,d=e.mediaList[t][n],r=[d.initSegmentRange[0],d.sidxRange[1]],a=d.initSegment,o={mediaType:t,vid:Q,definition:F,useUrlRange:Ut.validateUrlRange(this.options.url_range_domains,a),timeout:-1,isInitSegment:!0,bitrate:d.bandwidth||d.bitrate,codecType:e.videoCodecType||"h264"};return this.getData(a,r,o,(function(e){var U=Object.assign({},e,{vid:Q,mediaType:t,isInitSegment:!0,format:"dash"});l._preloadManager.onCacheSegment(U)}),-1).then((function(F){var Q=F.res;Q&&"error"!==Q?l.handleInitData(Q,r,d.sidxRange).then((function(F){F.sidxSegmentRes&&e.getSidx(F.sidxSegmentRes,t,n,U),Ut.validateFragment(F.initSegmentRes,r)?i.resolve(F.initSegmentRes):(i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0}),l.logger("initSegmentRequest 分片校验失败"))})).catch((function(e){i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0}),l.logger("initSegmentRequest error",e)})):i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0})})).catch((function(e){i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0}),l.logger("initSegmentRequest error",e)})),i}},{key:"handleInitData",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=new X;if(e instanceof ArrayBuffer){var F=0===U.length?e:e.slice(U[0],U[1]+1),Q=null===t?null:e.slice(t[0],t[1]+1);n.resolve({initSegmentRes:F,sidxSegmentRes:Q})}else;return n}},{key:"checkIfExistInList",value:function(e){for(var U=this._preloadManager._preloadDataList,t=0;t<U.length;t++)if(e===U[t].data.vid)return!0;return!1}},{key:"addPreloader",value:function(e,U){if(e.data){e.data.vtype||(e.data.vtype=xt.DASH);var t=e.data.vid,n=this.checkIfExistInList(t);this.logger("[Preloader-Dash] addPreloader checkIfExistInList",t,n),U&&t===U||n||this.addDashPreloader(e)}}},{key:"addPreloaderList",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],U=arguments.length>1?arguments[1]:void 0,t=0;t<e.length;t++)this.addPreloader(e[t],U)}},{key:"setUserSelectDefinition",value:function(e){this._preloadManager&&(this._preloadManager.userDefinition=e)}},{key:"getUserSelectDefinition",value:function(){return this._preloadManager.userDefinition||null}}],[{key:"BitRateAdapter",get:function(){return $F},set:function(e){$F=e}}]),n}(gt);eQ.encryptUtils=qU;var UQ=tn,tQ={function:!0,object:!0},nQ=function(e){return UQ(e)&&tQ[typeof e]||!1},FQ=function(e){if(!nQ(e))throw new TypeError(e+" is not an Object");return e},QQ=Object.prototype.hasOwnProperty,lQ=function(e){var U,t=arguments[1];if(FQ(e),void 0===t)QQ.call(e,"__ee__")&&delete e.__ee__;else{if(!(U=QQ.call(e,"__ee__")&&e.__ee__))return;U[t]&&delete U[t]}},iQ=eU(lQ),dQ={exports:{}};!function(e,U){!function(e){var U="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==$e?$e:"undefined"!=typeof self?self:{};function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var n=function(e){return e&&e.Math==Math&&e},F=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof U&&U)||function(){return this}()||Function("return this")(),Q={},l=function(e){try{return!!e()}catch(Vh){return!0}},i=!l((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),d={},r={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,o=a&&!r.call({1:2},1);d.f=o?function(e){var U=a(this,e);return!!U&&U.enumerable}:r;var B=function(e,U){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:U}},s={}.toString,R=function(e){return s.call(e).slice(8,-1)},c=R,V="".split,h=l((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==c(e)?V.call(e,""):Object(e)}:Object,u=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Z=h,S=u,J=function(e){return Z(S(e))},p=function(e){return"object"==typeof e?null!==e:"function"==typeof e},W=p,m=function(e,U){if(!W(e))return e;var t,n;if(U&&"function"==typeof(t=e.toString)&&!W(n=t.call(e)))return n;if("function"==typeof(t=e.valueOf)&&!W(n=t.call(e)))return n;if(!U&&"function"==typeof(t=e.toString)&&!W(n=t.call(e)))return n;throw TypeError("Can't convert object to primitive value")},E=u,k=function(e){return Object(E(e))},y=k,N={}.hasOwnProperty,b=function(e,U){return N.call(y(e),U)},f=p,v=F.document,T=f(v)&&f(v.createElement),C=function(e){return T?v.createElement(e):{}},D=C,g=!i&&!l((function(){return 7!=Object.defineProperty(D("div"),"a",{get:function(){return 7}}).a})),X=i,x=d,L=B,G=J,I=m,M=b,Y=g,w=Object.getOwnPropertyDescriptor;Q.f=X?w:function(e,U){if(e=G(e),U=I(U,!0),Y)try{return w(e,U)}catch(t){}if(M(e,U))return L(!x.f.call(e,U),e[U])};var K={},j=p,_=function(e){if(!j(e))throw TypeError(String(e)+" is not an object");return e},H=i,z=g,O=_,P=m,A=Object.defineProperty;K.f=H?A:function(e,U,t){if(O(e),U=P(U,!0),O(t),z)try{return A(e,U,t)}catch(n){}if("get"in t||"set"in t)throw TypeError("Accessors not supported");return"value"in t&&(e[U]=t.value),e};var q=K,$=B,ee=i?function(e,U,t){return q.f(e,U,$(1,t))}:function(e,U,t){return e[U]=t,e},Ue={exports:{}},te=F,ne=ee,Fe=function(e,U){try{ne(te,e,U)}catch(t){te[e]=U}return U},Qe=Fe,le="__core-js_shared__",ie=F[le]||Qe(le,{}),de=ie,re=Function.toString;"function"!=typeof de.inspectSource&&(de.inspectSource=function(e){return re.call(e)});var ae=de.inspectSource,oe=ae,Be=F.WeakMap,se="function"==typeof Be&&/native code/.test(oe(Be)),Re={exports:{}},ce=ie;(Re.exports=function(e,U){return ce[e]||(ce[e]=void 0!==U?U:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var Ve,he,ue,Ze=Re.exports,Se=0,Je=Math.random(),pe=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Se+Je).toString(36)},We=pe,me=Ze("keys"),Ee=function(e){return me[e]||(me[e]=We(e))},ke={},ye=se,Ne=p,be=ee,fe=b,ve=ie,Te=Ee,Ce=ke,De="Object already initialized",ge=F.WeakMap;if(ye||ve.state){var Xe=ve.state||(ve.state=new ge),xe=Xe.get,Le=Xe.has,Ge=Xe.set;Ve=function(e,U){if(Le.call(Xe,e))throw new TypeError(De);return U.facade=e,Ge.call(Xe,e,U),U},he=function(e){return xe.call(Xe,e)||{}},ue=function(e){return Le.call(Xe,e)}}else{var Ie=Te("state");Ce[Ie]=!0,Ve=function(e,U){if(fe(e,Ie))throw new TypeError(De);return U.facade=e,be(e,Ie,U),U},he=function(e){return fe(e,Ie)?e[Ie]:{}},ue=function(e){return fe(e,Ie)}}var Me={set:Ve,get:he,has:ue,enforce:function(e){return ue(e)?he(e):Ve(e,{})},getterFor:function(e){return function(U){var t;if(!Ne(U)||(t=he(U)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return t}}},Ye=F,we=ee,Ke=b,je=Fe,_e=ae,He=Me.get,ze=Me.enforce,Oe=String(String).split("String");(Ue.exports=function(e,U,t,n){var F,Q=!!n&&!!n.unsafe,l=!!n&&!!n.enumerable,i=!!n&&!!n.noTargetGet;"function"==typeof t&&("string"!=typeof U||Ke(t,"name")||we(t,"name",U),(F=ze(t)).source||(F.source=Oe.join("string"==typeof U?U:""))),e!==Ye?(Q?!i&&e[U]&&(l=!0):delete e[U],l?e[U]=t:we(e,U,t)):l?e[U]=t:je(U,t)})(Function.prototype,"toString",(function(){return"function"==typeof this&&He(this).source||_e(this)}));var Pe=Ue.exports,Ae=F,qe=F,eU=function(e){return"function"==typeof e?e:void 0},UU=function(e,U){return arguments.length<2?eU(Ae[e])||eU(qe[e]):Ae[e]&&Ae[e][U]||qe[e]&&qe[e][U]},tU={},nU=Math.ceil,FU=Math.floor,QU=function(e){return isNaN(e=+e)?0:(e>0?FU:nU)(e)},lU=QU,iU=Math.min,dU=function(e){return e>0?iU(lU(e),9007199254740991):0},rU=QU,aU=Math.max,oU=Math.min,BU=function(e,U){var t=rU(e);return t<0?aU(t+U,0):oU(t,U)},sU=J,RU=dU,cU=BU,VU=function(e){return function(U,t,n){var F,Q=sU(U),l=RU(Q.length),i=cU(n,l);if(e&&t!=t){for(;l>i;)if((F=Q[i++])!=F)return!0}else for(;l>i;i++)if((e||i in Q)&&Q[i]===t)return e||i||0;return!e&&-1}},hU={includes:VU(!0),indexOf:VU(!1)},uU=b,ZU=J,SU=hU.indexOf,JU=ke,pU=function(e,U){var t,n=ZU(e),F=0,Q=[];for(t in n)!uU(JU,t)&&uU(n,t)&&Q.push(t);for(;U.length>F;)uU(n,t=U[F++])&&(~SU(Q,t)||Q.push(t));return Q},WU=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],mU=pU,EU=WU.concat("length","prototype");tU.f=Object.getOwnPropertyNames||function(e){return mU(e,EU)};var kU={};kU.f=Object.getOwnPropertySymbols;var yU=tU,NU=kU,bU=_,fU=UU("Reflect","ownKeys")||function(e){var U=yU.f(bU(e)),t=NU.f;return t?U.concat(t(e)):U},vU=b,TU=fU,CU=Q,DU=K,gU=l,XU=/#|\.prototype\./,xU=function(e,U){var t=GU[LU(e)];return t==MU||t!=IU&&("function"==typeof U?gU(U):!!U)},LU=xU.normalize=function(e){return String(e).replace(XU,".").toLowerCase()},GU=xU.data={},IU=xU.NATIVE="N",MU=xU.POLYFILL="P",YU=xU,wU=F,KU=Q.f,jU=ee,_U=Pe,HU=Fe,zU=function(e,U){for(var t=TU(U),n=DU.f,F=CU.f,Q=0;Q<t.length;Q++){var l=t[Q];vU(e,l)||n(e,l,F(U,l))}},OU=YU,PU=function(e,U){var t,n,F,Q,l,i=e.target,d=e.global,r=e.stat;if(t=d?wU:r?wU[i]||HU(i,{}):(wU[i]||{}).prototype)for(n in U){if(Q=U[n],F=e.noTargetGet?(l=KU(t,n))&&l.value:t[n],!OU(d?n:i+(r?".":"#")+n,e.forced)&&void 0!==F){if(typeof Q==typeof F)continue;zU(Q,F)}(e.sham||F&&F.sham)&&jU(Q,"sham",!0),_U(t,n,Q,e)}};function AU(){AU=function(){return e};var e={},U=Object.prototype,t=U.hasOwnProperty,n=Object.defineProperty||function(e,U,t){e[U]=t.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",l=F.asyncIterator||"@@asyncIterator",i=F.toStringTag||"@@toStringTag";function d(e,U,t){return Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[U]}try{d({},"")}catch(N){d=function(e,U,t){return e[U]=t}}function r(e,U,t,F){var Q=U&&U.prototype instanceof B?U:B,l=Object.create(Q.prototype),i=new E(F||[]);return n(l,"_invoke",{value:J(e,t,i)}),l}function a(e,U,t){try{return{type:"normal",arg:e.call(U,t)}}catch(N){return{type:"throw",arg:N}}}e.wrap=r;var o={};function B(){}function s(){}function R(){}var c={};d(c,Q,(function(){return this}));var V=Object.getPrototypeOf,h=V&&V(V(k([])));h&&h!==U&&t.call(h,Q)&&(c=h);var u=R.prototype=B.prototype=Object.create(c);function Z(e){["next","throw","return"].forEach((function(U){d(e,U,(function(e){return this._invoke(U,e)}))}))}function S(e,U){function F(n,Q,l,i){var d=a(e[n],e,Q);if("throw"!==d.type){var r=d.arg,o=r.value;return o&&"object"==typeof o&&t.call(o,"__await")?U.resolve(o.__await).then((function(e){F("next",e,l,i)}),(function(e){F("throw",e,l,i)})):U.resolve(o).then((function(e){r.value=e,l(r)}),(function(e){return F("throw",e,l,i)}))}i(d.arg)}var Q;n(this,"_invoke",{value:function(e,t){function n(){return new U((function(U,n){F(e,t,U,n)}))}return Q=Q?Q.then(n,n):n()}})}function J(e,U,t){var n="suspendedStart";return function(F,Q){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(t.method=F,t.arg=Q;;){var l=t.delegate;if(l){var i=p(l,t);if(i){if(i===o)continue;return i}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var d=a(e,U,t);if("normal"===d.type){if(n=t.done?"completed":"suspendedYield",d.arg===o)continue;return{value:d.arg,done:t.done}}"throw"===d.type&&(n="completed",t.method="throw",t.arg=d.arg)}}}function p(e,U){var t=U.method,n=e.iterator[t];if(void 0===n)return U.delegate=null,"throw"===t&&e.iterator.return&&(U.method="return",U.arg=void 0,p(e,U),"throw"===U.method)||"return"!==t&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+t+"' method")),o;var F=a(n,e.iterator,U.arg);if("throw"===F.type)return U.method="throw",U.arg=F.arg,U.delegate=null,o;var Q=F.arg;return Q?Q.done?(U[e.resultName]=Q.value,U.next=e.nextLoc,"return"!==U.method&&(U.method="next",U.arg=void 0),U.delegate=null,o):Q:(U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,o)}function W(e){var U={tryLoc:e[0]};1 in e&&(U.catchLoc=e[1]),2 in e&&(U.finallyLoc=e[2],U.afterLoc=e[3]),this.tryEntries.push(U)}function m(e){var U=e.completion||{};U.type="normal",delete U.arg,e.completion=U}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function k(e){if(e){var U=e[Q];if(U)return U.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,F=function U(){for(;++n<e.length;)if(t.call(e,n))return U.value=e[n],U.done=!1,U;return U.value=void 0,U.done=!0,U};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return s.prototype=R,n(u,"constructor",{value:R,configurable:!0}),n(R,"constructor",{value:s,configurable:!0}),s.displayName=d(R,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var U="function"==typeof e&&e.constructor;return!!U&&(U===s||"GeneratorFunction"===(U.displayName||U.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,d(e,i,"GeneratorFunction")),e.prototype=Object.create(u),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),d(S.prototype,l,(function(){return this})),e.AsyncIterator=S,e.async=function(U,t,n,F,Q){void 0===Q&&(Q=Promise);var l=new S(r(U,t,n,F),Q);return e.isGeneratorFunction(t)?l:l.next().then((function(e){return e.done?e.value:l.next()}))},Z(u),d(u,i,"Generator"),d(u,Q,(function(){return this})),d(u,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var U=Object(e),t=[];for(var n in U)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in U)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=k,E.prototype={constructor:E,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(m),!e)for(var U in this)"t"===U.charAt(0)&&t.call(this,U)&&!isNaN(+U.slice(1))&&(this[U]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var U=this;function n(t,n){return l.type="throw",l.arg=e,U.next=t,n&&(U.method="next",U.arg=void 0),!!n}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],l=Q.completion;if("root"===Q.tryLoc)return n("end");if(Q.tryLoc<=this.prev){var i=t.call(Q,"catchLoc"),d=t.call(Q,"finallyLoc");if(i&&d){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}else if(i){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}}}},abrupt:function(e,U){for(var n=this.tryEntries.length-1;n>=0;--n){var F=this.tryEntries[n];if(F.tryLoc<=this.prev&&t.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=U&&U<=Q.finallyLoc&&(Q=null);var l=Q?Q.completion:{};return l.type=e,l.arg=U,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(l)},complete:function(e,U){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&U&&(this.next=U),o},finish:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),m(t),o}},catch:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var F=n.arg;m(t)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,U,t){return this.delegate={iterator:k(e),resultName:U,nextLoc:t},"next"===this.method&&(this.arg=void 0),o}},e}function qU(e){return(qU="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $U(e,U,t,n,F,Q,l){try{var i=e[Q](l),d=i.value}catch(r){return void t(r)}i.done?U(d):Promise.resolve(d).then(n,F)}function et(e){return function(){var U=this,t=arguments;return new Promise((function(n,F){var Q=e.apply(U,t);function l(e){$U(Q,n,F,l,i,"next",e)}function i(e){$U(Q,n,F,l,i,"throw",e)}l(void 0)}))}}function Ut(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function tt(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,at(n.key),n)}}function nt(e,U,t){return U&&tt(e.prototype,U),t&&tt(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ft(e,U,t){return(U=at(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function Qt(e,U){if("function"!=typeof U&&null!==U)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(U&&U.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),U&&it(e,U)}function lt(e){return(lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function it(e,U){return(it=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,U){return e.__proto__=U,e})(e,U)}function dt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rt(e){var U=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,n=lt(e);if(U){var F=lt(this).constructor;t=Reflect.construct(n,arguments,F)}else t=n.apply(this,arguments);return function(e,U){if(U&&("object"==typeof U||"function"==typeof U))return U;if(void 0!==U)throw new TypeError("Derived constructors may only return object or undefined");return dt(e)}(this,t)}}function at(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}PU({global:!0},{globalThis:F});var ot,Bt,st=UU("navigator","userAgent")||"",Rt=st,ct=F.process,Vt=ct&&ct.versions,ht=Vt&&Vt.v8;ht?Bt=(ot=ht.split("."))[0]<4?1:ot[0]+ot[1]:Rt&&(!(ot=Rt.match(/Edge\/(\d+)/))||ot[1]>=74)&&(ot=Rt.match(/Chrome\/(\d+)/))&&(Bt=ot[1]);var ut,Zt=Bt&&+Bt,St=Zt,Jt=l,pt=!!Object.getOwnPropertySymbols&&!Jt((function(){return!String(Symbol())||!Symbol.sham&&St&&St<41})),Wt=pt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,mt=F,Et=b,kt=pe,yt=pt,Nt=Wt,bt=Ze("wks"),ft=mt.Symbol,vt=Nt?ft:ft&&ft.withoutSetter||kt,Tt=function(e){return Et(bt,e)&&(yt||"string"==typeof bt[e])||(yt&&Et(ft,e)?bt[e]=ft[e]:bt[e]=vt("Symbol."+e)),bt[e]},Ct=pU,Dt=WU,gt=Object.keys||function(e){return Ct(e,Dt)},Xt=K,xt=_,Lt=gt,Gt=i?Object.defineProperties:function(e,U){xt(e);for(var t,n=Lt(U),F=n.length,Q=0;F>Q;)Xt.f(e,t=n[Q++],U[t]);return e},It=UU("document","documentElement"),Mt=_,Yt=Gt,wt=WU,Kt=ke,jt=It,_t=C,Ht="prototype",zt="script",Ot=Ee("IE_PROTO"),Pt=function(){},At=function(e){return"<"+zt+">"+e+"</"+zt+">"},qt=function(){try{ut=document.domain&&new ActiveXObject("htmlfile")}catch(F){}var e,U,t;qt=ut?function(e){e.write(At("")),e.close();var U=e.parentWindow.Object;return e=null,U}(ut):(U=_t("iframe"),t="java"+zt+":",U.style.display="none",jt.appendChild(U),U.src=String(t),(e=U.contentWindow.document).open(),e.write(At("document.F=Object")),e.close(),e.F);for(var n=wt.length;n--;)delete qt[Ht][wt[n]];return qt()};Kt[Ot]=!0;var $t=Object.create||function(e,U){var t;return null!==e?(Pt[Ht]=Mt(e),t=new Pt,Pt[Ht]=null,t[Ot]=e):t=qt(),void 0===U?t:Yt(t,U)},en=$t,Un=K,tn=Tt("unscopables"),nn=Array.prototype;null==nn[tn]&&Un.f(nn,tn,{configurable:!0,value:en(null)});var Fn,Qn,ln,dn={},rn=!l((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),an=b,on=k,Bn=rn,sn=Ee("IE_PROTO"),Rn=Object.prototype,cn=Bn?Object.getPrototypeOf:function(e){return e=on(e),an(e,sn)?e[sn]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?Rn:null},Vn=l,hn=cn,un=ee,Zn=b,Sn=Tt("iterator"),Jn=!1;[].keys&&("next"in(ln=[].keys())?(Qn=hn(hn(ln)))!==Object.prototype&&(Fn=Qn):Jn=!0),(null==Fn||Vn((function(){var e={};return Fn[Sn].call(e)!==e})))&&(Fn={}),Zn(Fn,Sn)||un(Fn,Sn,(function(){return this}));var pn={IteratorPrototype:Fn,BUGGY_SAFARI_ITERATORS:Jn},Wn=K.f,mn=b,En=Tt("toStringTag"),kn=function(e,U,t){e&&!mn(e=t?e:e.prototype,En)&&Wn(e,En,{configurable:!0,value:U})},yn=pn.IteratorPrototype,Nn=$t,bn=B,fn=kn,vn=dn,Tn=function(){return this},Cn=p,Dn=_,gn=function(e){if(!Cn(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},Xn=Object.setPrototypeOf||("__proto__"in{}?function(){var e,U=!1,t={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(t,[]),U=t instanceof Array}catch(n){}return function(t,n){return Dn(t),gn(n),U?e.call(t,n):t.__proto__=n,t}}():void 0),xn=PU,Ln=function(e,U,t){var n=U+" Iterator";return e.prototype=Nn(yn,{next:bn(1,t)}),fn(e,n,!1),vn[n]=Tn,e},Gn=cn,In=Xn,Mn=kn,Yn=ee,wn=Pe,Kn=dn,jn=pn.IteratorPrototype,_n=pn.BUGGY_SAFARI_ITERATORS,Hn=Tt("iterator"),zn="keys",On="values",Pn="entries",An=function(){return this},qn=function(e,U,t,n,F,Q,l){Ln(t,U,n);var i,d,r,a=function(e){if(e===F&&c)return c;if(!_n&&e in s)return s[e];switch(e){case zn:case On:case Pn:return function(){return new t(this,e)}}return function(){return new t(this)}},o=U+" Iterator",B=!1,s=e.prototype,R=s[Hn]||s["@@iterator"]||F&&s[F],c=!_n&&R||a(F),V="Array"==U&&s.entries||R;if(V&&(i=Gn(V.call(new e)),jn!==Object.prototype&&i.next&&(Gn(i)!==jn&&(In?In(i,jn):"function"!=typeof i[Hn]&&Yn(i,Hn,An)),Mn(i,o,!0))),F==On&&R&&R.name!==On&&(B=!0,c=function(){return R.call(this)}),s[Hn]!==c&&Yn(s,Hn,c),Kn[U]=c,F)if(d={values:a(On),keys:Q?c:a(zn),entries:a(Pn)},l)for(r in d)(_n||B||!(r in s))&&wn(s,r,d[r]);else xn({target:U,proto:!0,forced:_n||B},d);return d},$n=J,eF=function(e){nn[tn][e]=!0},UF=dn,tF=Me,nF=qn,FF="Array Iterator",QF=tF.set,lF=tF.getterFor(FF),iF=nF(Array,"Array",(function(e,U){QF(this,{type:FF,target:$n(e),index:0,kind:U})}),(function(){var e=lF(this),U=e.target,t=e.kind,n=e.index++;return!U||n>=U.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==t?{value:n,done:!1}:"values"==t?{value:U[n],done:!1}:{value:[n,U[n]],done:!1}}),"values");UF.Arguments=UF.Array,eF("keys"),eF("values"),eF("entries");var dF={exports:{}},rF=!l((function(){return Object.isExtensible(Object.preventExtensions({}))})),aF=ke,oF=p,BF=b,sF=K.f,RF=rF,cF=pe("meta"),VF=0,hF=Object.isExtensible||function(){return!0},uF=function(e){sF(e,cF,{value:{objectID:"O"+ ++VF,weakData:{}}})},ZF=dF.exports={REQUIRED:!1,fastKey:function(e,U){if(!oF(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!BF(e,cF)){if(!hF(e))return"F";if(!U)return"E";uF(e)}return e[cF].objectID},getWeakData:function(e,U){if(!BF(e,cF)){if(!hF(e))return!0;if(!U)return!1;uF(e)}return e[cF].weakData},onFreeze:function(e){return RF&&ZF.REQUIRED&&hF(e)&&!BF(e,cF)&&uF(e),e}};aF[cF]=!0;var SF=dF.exports,JF=dn,pF=Tt("iterator"),WF=Array.prototype,mF=function(e){return void 0!==e&&(JF.Array===e||WF[pF]===e)},EF=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},kF=EF,yF=function(e,U,t){if(kF(e),void 0===U)return e;switch(t){case 0:return function(){return e.call(U)};case 1:return function(t){return e.call(U,t)};case 2:return function(t,n){return e.call(U,t,n)};case 3:return function(t,n,F){return e.call(U,t,n,F)}}return function(){return e.apply(U,arguments)}},NF={};NF[Tt("toStringTag")]="z";var bF="[object z]"===String(NF),fF=bF,vF=R,TF=Tt("toStringTag"),CF="Arguments"==vF(function(){return arguments}()),DF=fF?vF:function(e){var U,t,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,U){try{return e[U]}catch(t){}}(U=Object(e),TF))?t:CF?vF(U):"Object"==(n=vF(U))&&"function"==typeof U.callee?"Arguments":n},gF=DF,XF=dn,xF=Tt("iterator"),LF=function(e){if(null!=e)return e[xF]||e["@@iterator"]||XF[gF(e)]},GF=_,IF=_,MF=mF,YF=dU,wF=yF,KF=LF,jF=function(e){var U=e.return;if(void 0!==U)return GF(U.call(e)).value},_F=function(e,U){this.stopped=e,this.result=U},HF=function(e,U,t){var n,F,Q,l,i,d,r,a=t&&t.that,o=!(!t||!t.AS_ENTRIES),B=!(!t||!t.IS_ITERATOR),s=!(!t||!t.INTERRUPTED),R=wF(U,a,1+o+s),c=function(e){return n&&jF(n),new _F(!0,e)},V=function(e){return o?(IF(e),s?R(e[0],e[1],c):R(e[0],e[1])):s?R(e,c):R(e)};if(B)n=e;else{if("function"!=typeof(F=KF(e)))throw TypeError("Target is not iterable");if(MF(F)){for(Q=0,l=YF(e.length);l>Q;Q++)if((i=V(e[Q]))&&i instanceof _F)return i;return new _F(!1)}n=F.call(e)}for(d=n.next;!(r=d.call(n)).done;){try{i=V(r.value)}catch(h){throw jF(n),h}if("object"==typeof i&&i&&i instanceof _F)return i}return new _F(!1)},zF=function(e,U,t){if(!(e instanceof U))throw TypeError("Incorrect "+(t?t+" ":"")+"invocation");return e},OF=Tt("iterator"),PF=!1;try{var AF=0,qF={next:function(){return{done:!!AF++}},return:function(){PF=!0}};qF[OF]=function(){return this},Array.from(qF,(function(){throw 2}))}catch(mu){}var $F=function(e,U){if(!U&&!PF)return!1;var t=!1;try{var n={};n[OF]=function(){return{next:function(){return{done:t=!0}}}},e(n)}catch(mu){}return t},eQ=p,UQ=Xn,tQ=function(e,U,t){var n,F;return UQ&&"function"==typeof(n=U.constructor)&&n!==t&&eQ(F=n.prototype)&&F!==t.prototype&&UQ(e,F),e},nQ=PU,FQ=F,QQ=YU,lQ=Pe,iQ=SF,dQ=HF,rQ=zF,aQ=p,oQ=l,BQ=$F,sQ=kn,RQ=tQ,cQ=Pe,VQ=function(e,U,t){for(var n in U)cQ(e,n,U[n],t);return e},hQ=UU,uQ=K,ZQ=i,SQ=Tt("species"),JQ=function(e){var U=hQ(e),t=uQ.f;ZQ&&U&&!U[SQ]&&t(U,SQ,{configurable:!0,get:function(){return this}})},pQ=K.f,WQ=$t,mQ=VQ,EQ=yF,kQ=zF,yQ=HF,NQ=qn,bQ=JQ,fQ=i,vQ=SF.fastKey,TQ=Me.set,CQ=Me.getterFor,DQ={getConstructor:function(e,U,t,n){var F=e((function(e,Q){kQ(e,F,U),TQ(e,{type:U,index:WQ(null),first:void 0,last:void 0,size:0}),fQ||(e.size=0),null!=Q&&yQ(Q,e[n],{that:e,AS_ENTRIES:t})})),Q=CQ(U),l=function(e,U,t){var n,F,l=Q(e),d=i(e,U);return d?d.value=t:(l.last=d={index:F=vQ(U,!0),key:U,value:t,previous:n=l.last,next:void 0,removed:!1},l.first||(l.first=d),n&&(n.next=d),fQ?l.size++:e.size++,"F"!==F&&(l.index[F]=d)),e},i=function(e,U){var t,n=Q(e),F=vQ(U);if("F"!==F)return n.index[F];for(t=n.first;t;t=t.next)if(t.key==U)return t};return mQ(F.prototype,{clear:function(){for(var e=Q(this),U=e.index,t=e.first;t;)t.removed=!0,t.previous&&(t.previous=t.previous.next=void 0),delete U[t.index],t=t.next;e.first=e.last=void 0,fQ?e.size=0:this.size=0},delete:function(e){var U=this,t=Q(U),n=i(U,e);if(n){var F=n.next,l=n.previous;delete t.index[n.index],n.removed=!0,l&&(l.next=F),F&&(F.previous=l),t.first==n&&(t.first=F),t.last==n&&(t.last=l),fQ?t.size--:U.size--}return!!n},forEach:function(e){for(var U,t=Q(this),n=EQ(e,arguments.length>1?arguments[1]:void 0,3);U=U?U.next:t.first;)for(n(U.value,U.key,this);U&&U.removed;)U=U.previous},has:function(e){return!!i(this,e)}}),mQ(F.prototype,t?{get:function(e){var U=i(this,e);return U&&U.value},set:function(e,U){return l(this,0===e?0:e,U)}}:{add:function(e){return l(this,e=0===e?0:e,e)}}),fQ&&pQ(F.prototype,"size",{get:function(){return Q(this).size}}),F},setStrong:function(e,U,t){var n=U+" Iterator",F=CQ(U),Q=CQ(n);NQ(e,U,(function(e,U){TQ(this,{type:n,target:e,state:F(e),kind:U,last:void 0})}),(function(){for(var e=Q(this),U=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?"keys"==U?{value:t.key,done:!1}:"values"==U?{value:t.value,done:!1}:{value:[t.key,t.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),t?"entries":"values",!t,!0),bQ(U)}};!function(e,U,t){var n=-1!==e.indexOf("Map"),F=-1!==e.indexOf("Weak"),Q=n?"set":"add",l=FQ[e],i=l&&l.prototype,d=l,r={},a=function(e){var U=i[e];lQ(i,e,"add"==e?function(e){return U.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(F&&!aQ(e))&&U.call(this,0===e?0:e)}:"get"==e?function(e){return F&&!aQ(e)?void 0:U.call(this,0===e?0:e)}:"has"==e?function(e){return!(F&&!aQ(e))&&U.call(this,0===e?0:e)}:function(e,t){return U.call(this,0===e?0:e,t),this})};if(QQ(e,"function"!=typeof l||!(F||i.forEach&&!oQ((function(){(new l).entries().next()})))))d=t.getConstructor(U,e,n,Q),iQ.REQUIRED=!0;else if(QQ(e,!0)){var o=new d,B=o[Q](F?{}:-0,1)!=o,s=oQ((function(){o.has(1)})),R=BQ((function(e){new l(e)})),c=!F&&oQ((function(){for(var e=new l,U=5;U--;)e[Q](U,U);return!e.has(-0)}));R||((d=U((function(U,t){rQ(U,d,e);var F=RQ(new l,U,d);return null!=t&&dQ(t,F[Q],{that:F,AS_ENTRIES:n}),F}))).prototype=i,i.constructor=d),(s||c)&&(a("delete"),a("has"),n&&a("get")),(c||B)&&a(Q),F&&i.clear&&delete i.clear}r[e]=d,nQ({global:!0,forced:d!=l},r),sQ(d,e),F||t.setStrong(d,e,n)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),DQ);var gQ=DF,XQ=bF?{}.toString:function(){return"[object "+gQ(this)+"]"};bF||Pe(Object.prototype,"toString",XQ,{unsafe:!0});var xQ=QU,LQ=u,GQ=function(e){return function(U,t){var n,F,Q=String(LQ(U)),l=xQ(t),i=Q.length;return l<0||l>=i?e?"":void 0:(n=Q.charCodeAt(l))<55296||n>56319||l+1===i||(F=Q.charCodeAt(l+1))<56320||F>57343?e?Q.charAt(l):n:e?Q.slice(l,l+2):F-56320+(n-55296<<10)+65536}},IQ={codeAt:GQ(!1),charAt:GQ(!0)},MQ=IQ.charAt,YQ=Me,wQ=qn,KQ="String Iterator",jQ=YQ.set,_Q=YQ.getterFor(KQ);wQ(String,"String",(function(e){jQ(this,{type:KQ,string:String(e),index:0})}),(function(){var e,U=_Q(this),t=U.string,n=U.index;return n>=t.length?{value:void 0,done:!0}:(e=MQ(t,n),U.index+=e.length,{value:e,done:!1})}));var HQ=_,zQ=EF,OQ=function(){for(var e,U=HQ(this),t=zQ(U.delete),n=!0,F=0,Q=arguments.length;F<Q;F++)e=t.call(U,arguments[F]),n=n&&e;return!!n};PU({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return OQ.apply(this,arguments)}});var PQ=function(e){return Map.prototype.entries.call(e)},AQ=_,qQ=yF,$Q=PQ,el=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var U=AQ(this),t=$Q(U),n=qQ(e,arguments.length>1?arguments[1]:void 0,3);return!el(t,(function(e,t,F){if(!n(t,e,U))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var Ul=_,tl=EF,nl=Tt("species"),Fl=function(e,U){var t,n=Ul(e).constructor;return void 0===n||null==(t=Ul(n)[nl])?U:tl(t)},Ql=UU,ll=_,il=EF,dl=yF,rl=Fl,al=PQ,ol=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var U=ll(this),t=al(U),n=dl(e,arguments.length>1?arguments[1]:void 0,3),F=new(rl(U,Ql("Map"))),Q=il(F.set);return ol(t,(function(e,t){n(t,e,U)&&Q.call(F,e,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Bl=_,sl=yF,Rl=PQ,cl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var U=Bl(this),t=Rl(U),n=sl(e,arguments.length>1?arguments[1]:void 0,3);return cl(t,(function(e,t,F){if(n(t,e,U))return F(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Vl=_,hl=yF,ul=PQ,Zl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var U=Vl(this),t=ul(U),n=hl(e,arguments.length>1?arguments[1]:void 0,3);return Zl(t,(function(e,t,F){if(n(t,e,U))return F(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var Sl=_,Jl=PQ,pl=function(e,U){return e===U||e!=e&&U!=U},Wl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return Wl(Jl(Sl(this)),(function(U,t,n){if(pl(t,e))return n()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var ml=_,El=PQ,kl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return kl(El(ml(this)),(function(U,t,n){if(t===e)return n(U)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var yl=UU,Nl=_,bl=EF,fl=yF,vl=Fl,Tl=PQ,Cl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var U=Nl(this),t=Tl(U),n=fl(e,arguments.length>1?arguments[1]:void 0,3),F=new(vl(U,yl("Map"))),Q=bl(F.set);return Cl(t,(function(e,t){Q.call(F,n(t,e,U),t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Dl=UU,gl=_,Xl=EF,xl=yF,Ll=Fl,Gl=PQ,Il=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var U=gl(this),t=Gl(U),n=xl(e,arguments.length>1?arguments[1]:void 0,3),F=new(Ll(U,Dl("Map"))),Q=Xl(F.set);return Il(t,(function(e,t){Q.call(F,e,n(t,e,U))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var Ml=_,Yl=EF,wl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var U=Ml(this),t=Yl(U.set),n=0;n<arguments.length;)wl(arguments[n++],t,{that:U,AS_ENTRIES:!0});return U}});var Kl=_,jl=EF,_l=PQ,Hl=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var U=Kl(this),t=_l(U),n=arguments.length<2,F=n?void 0:arguments[1];if(jl(e),Hl(t,(function(t,Q){n?(n=!1,F=Q):F=e(F,Q,t,U)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),n)throw TypeError("Reduce of empty map with no initial value");return F}});var zl=_,Ol=yF,Pl=PQ,Al=HF;PU({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var U=zl(this),t=Pl(U),n=Ol(e,arguments.length>1?arguments[1]:void 0,3);return Al(t,(function(e,t,F){if(n(t,e,U))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var ql=_,$l=EF;PU({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,U){var t=ql(this),n=arguments.length;$l(U);var F=t.has(e);if(!F&&n<3)throw TypeError("Updating absent value");var Q=F?t.get(e):$l(n>2?arguments[2]:void 0)(e,t);return t.set(e,U(Q,e,t)),t}});var ei={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Ui=F,ti=ei,ni=iF,Fi=ee,Qi=Tt,li=Qi("iterator"),ii=Qi("toStringTag"),di=ni.values;for(var ri in ti){var ai=Ui[ri],oi=ai&&ai.prototype;if(oi){if(oi[li]!==di)try{Fi(oi,li,di)}catch(mu){oi[li]=di}if(oi[ii]||Fi(oi,ii,ri),ti[ri])for(var Bi in ni)if(oi[Bi]!==ni[Bi])try{Fi(oi,Bi,ni[Bi])}catch(mu){oi[Bi]=ni[Bi]}}}var si=R,Ri=Array.isArray||function(e){return"Array"==si(e)},ci=p,Vi=Ri,hi=Tt("species"),ui=function(e,U){var t;return Vi(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!Vi(t.prototype)?ci(t)&&null===(t=t[hi])&&(t=void 0):t=void 0),new(void 0===t?Array:t)(0===U?0:U)},Zi=yF,Si=h,Ji=k,pi=dU,Wi=ui,mi=[].push,Ei=function(e){var U=1==e,t=2==e,n=3==e,F=4==e,Q=6==e,l=7==e,i=5==e||Q;return function(d,r,a,o){for(var B,s,R=Ji(d),c=Si(R),V=Zi(r,a,3),h=pi(c.length),u=0,Z=o||Wi,S=U?Z(d,h):t||l?Z(d,0):void 0;h>u;u++)if((i||u in c)&&(s=V(B=c[u],u,R),e))if(U)S[u]=s;else if(s)switch(e){case 3:return!0;case 5:return B;case 6:return u;case 2:mi.call(S,B)}else switch(e){case 4:return!1;case 7:mi.call(S,B)}return Q?-1:n||F?F:S}},ki={forEach:Ei(0),map:Ei(1),filter:Ei(2),some:Ei(3),every:Ei(4),find:Ei(5),findIndex:Ei(6),filterOut:Ei(7)},yi=l,Ni=Zt,bi=Tt("species"),fi=function(e){return Ni>=51||!yi((function(){var U=[];return(U.constructor={})[bi]=function(){return{foo:1}},1!==U[e](Boolean).foo}))},vi=ki.map;PU({target:"Array",proto:!0,forced:!fi("map")},{map:function(e){return vi(this,e,arguments.length>1?arguments[1]:void 0)}});var Ti=k,Ci=gt;PU({target:"Object",stat:!0,forced:l((function(){Ci(1)}))},{keys:function(e){return Ci(Ti(e))}});var Di=m,gi=K,Xi=B,xi=function(e,U,t){var n=Di(U);n in e?gi.f(e,n,Xi(0,t)):e[n]=t},Li=PU,Gi=l,Ii=Ri,Mi=p,Yi=k,wi=dU,Ki=xi,ji=ui,_i=fi,Hi=Zt,zi=Tt("isConcatSpreadable"),Oi=9007199254740991,Pi="Maximum allowed index exceeded",Ai=Hi>=51||!Gi((function(){var e=[];return e[zi]=!1,e.concat()[0]!==e})),qi=_i("concat"),$i=function(e){if(!Mi(e))return!1;var U=e[zi];return void 0!==U?!!U:Ii(e)};Li({target:"Array",proto:!0,forced:!Ai||!qi},{concat:function(e){var U,t,n,F,Q,l=Yi(this),i=ji(l,0),d=0;for(U=-1,n=arguments.length;U<n;U++)if($i(Q=-1===U?l:arguments[U])){if(d+(F=wi(Q.length))>Oi)throw TypeError(Pi);for(t=0;t<F;t++,d++)t in Q&&Ki(i,d,Q[t])}else{if(d>=Oi)throw TypeError(Pi);Ki(i,d++,Q)}return i.length=d,i}});var ed,Ud,td,nd=F.Promise,Fd=/(?:iphone|ipod|ipad).*applewebkit/i.test(st),Qd="process"==R(F.process),ld=F,id=l,dd=yF,rd=It,ad=C,od=Fd,Bd=Qd,sd=ld.location,Rd=ld.setImmediate,cd=ld.clearImmediate,Vd=ld.process,hd=ld.MessageChannel,ud=ld.Dispatch,Zd=0,Sd={},Jd="onreadystatechange",pd=function(e){if(Sd.hasOwnProperty(e)){var U=Sd[e];delete Sd[e],U()}},Wd=function(e){return function(){pd(e)}},md=function(e){pd(e.data)},Ed=function(e){ld.postMessage(e+"",sd.protocol+"//"+sd.host)};Rd&&cd||(Rd=function(e){for(var U=[],t=1;arguments.length>t;)U.push(arguments[t++]);return Sd[++Zd]=function(){("function"==typeof e?e:Function(e)).apply(void 0,U)},ed(Zd),Zd},cd=function(e){delete Sd[e]},Bd?ed=function(e){Vd.nextTick(Wd(e))}:ud&&ud.now?ed=function(e){ud.now(Wd(e))}:hd&&!od?(td=(Ud=new hd).port2,Ud.port1.onmessage=md,ed=dd(td.postMessage,td,1)):ld.addEventListener&&"function"==typeof postMessage&&!ld.importScripts&&sd&&"file:"!==sd.protocol&&!id(Ed)?(ed=Ed,ld.addEventListener("message",md,!1)):ed=Jd in ad("script")?function(e){rd.appendChild(ad("script"))[Jd]=function(){rd.removeChild(this),pd(e)}}:function(e){setTimeout(Wd(e),0)});var kd,yd,Nd,bd,fd,vd,Td,Cd,Dd={set:Rd,clear:cd},gd=/web0s(?!.*chrome)/i.test(st),Xd=F,xd=Q.f,Ld=Dd.set,Gd=Fd,Id=gd,Md=Qd,Yd=Xd.MutationObserver||Xd.WebKitMutationObserver,wd=Xd.document,Kd=Xd.process,jd=Xd.Promise,_d=xd(Xd,"queueMicrotask"),Hd=_d&&_d.value;Hd||(kd=function(){var e,U;for(Md&&(e=Kd.domain)&&e.exit();yd;){U=yd.fn,yd=yd.next;try{U()}catch(mu){throw yd?bd():Nd=void 0,mu}}Nd=void 0,e&&e.enter()},Gd||Md||Id||!Yd||!wd?jd&&jd.resolve?((Td=jd.resolve(void 0)).constructor=jd,Cd=Td.then,bd=function(){Cd.call(Td,kd)}):bd=Md?function(){Kd.nextTick(kd)}:function(){Ld.call(Xd,kd)}:(fd=!0,vd=wd.createTextNode(""),new Yd(kd).observe(vd,{characterData:!0}),bd=function(){vd.data=fd=!fd}));var zd=Hd||function(e){var U={fn:e,next:void 0};Nd&&(Nd.next=U),yd||(yd=U,bd()),Nd=U},Od={},Pd=EF,Ad=function(e){var U,t;this.promise=new e((function(e,n){if(void 0!==U||void 0!==t)throw TypeError("Bad Promise constructor");U=e,t=n})),this.resolve=Pd(U),this.reject=Pd(t)};Od.f=function(e){return new Ad(e)};var qd,$d,er,Ur,tr=_,nr=p,Fr=Od,Qr=F,lr="object"==typeof window,ir=PU,dr=F,rr=UU,ar=nd,or=Pe,Br=VQ,sr=Xn,Rr=kn,cr=JQ,Vr=p,hr=EF,ur=zF,Zr=ae,Sr=HF,Jr=$F,pr=Fl,Wr=Dd.set,mr=zd,Er=function(e,U){if(tr(e),nr(U)&&U.constructor===e)return U;var t=Fr.f(e);return(0,t.resolve)(U),t.promise},kr=function(e,U){var t=Qr.console;t&&t.error&&(1===arguments.length?t.error(e):t.error(e,U))},yr=Od,Nr=function(e){try{return{error:!1,value:e()}}catch(mu){return{error:!0,value:mu}}},br=Me,fr=YU,vr=lr,Tr=Qd,Cr=Zt,Dr=Tt("species"),gr="Promise",Xr=br.get,xr=br.set,Lr=br.getterFor(gr),Gr=ar&&ar.prototype,Ir=ar,Mr=Gr,Yr=dr.TypeError,wr=dr.document,Kr=dr.process,jr=yr.f,_r=jr,Hr=!!(wr&&wr.createEvent&&dr.dispatchEvent),zr="function"==typeof PromiseRejectionEvent,Or="unhandledrejection",Pr=!1,Ar=fr(gr,(function(){var e=Zr(Ir)!==String(Ir);if(!e&&66===Cr)return!0;if(Cr>=51&&/native code/.test(Ir))return!1;var U=new Ir((function(e){e(1)})),t=function(e){e((function(){}),(function(){}))};return(U.constructor={})[Dr]=t,!(Pr=U.then((function(){}))instanceof t)||!e&&vr&&!zr})),qr=Ar||!Jr((function(e){Ir.all(e).catch((function(){}))})),$r=function(e){var U;return!(!Vr(e)||"function"!=typeof(U=e.then))&&U},ea=function(e,U){if(!e.notified){e.notified=!0;var t=e.reactions;mr((function(){for(var n=e.value,F=1==e.state,Q=0;t.length>Q;){var l,i,d,r=t[Q++],a=F?r.ok:r.fail,o=r.resolve,B=r.reject,s=r.domain;try{a?(F||(2===e.rejection&&Fa(e),e.rejection=1),!0===a?l=n:(s&&s.enter(),l=a(n),s&&(s.exit(),d=!0)),l===r.promise?B(Yr("Promise-chain cycle")):(i=$r(l))?i.call(l,o,B):o(l)):B(n)}catch(mu){s&&!d&&s.exit(),B(mu)}}e.reactions=[],e.notified=!1,U&&!e.rejection&&ta(e)}))}},Ua=function(e,U,t){var n,F;Hr?((n=wr.createEvent("Event")).promise=U,n.reason=t,n.initEvent(e,!1,!0),dr.dispatchEvent(n)):n={promise:U,reason:t},!zr&&(F=dr["on"+e])?F(n):e===Or&&kr("Unhandled promise rejection",t)},ta=function(e){Wr.call(dr,(function(){var U,t=e.facade,n=e.value;if(na(e)&&(U=Nr((function(){Tr?Kr.emit("unhandledRejection",n,t):Ua(Or,t,n)})),e.rejection=Tr||na(e)?2:1,U.error))throw U.value}))},na=function(e){return 1!==e.rejection&&!e.parent},Fa=function(e){Wr.call(dr,(function(){var U=e.facade;Tr?Kr.emit("rejectionHandled",U):Ua("rejectionhandled",U,e.value)}))},Qa=function(e,U,t){return function(n){e(U,n,t)}},la=function(e,U,t){e.done||(e.done=!0,t&&(e=t),e.value=U,e.state=2,ea(e,!0))},ia=function(e,U,t){if(!e.done){e.done=!0,t&&(e=t);try{if(e.facade===U)throw Yr("Promise can't be resolved itself");var n=$r(U);n?mr((function(){var t={done:!1};try{n.call(U,Qa(ia,t,e),Qa(la,t,e))}catch(mu){la(t,mu,e)}})):(e.value=U,e.state=1,ea(e,!1))}catch(mu){la({done:!1},mu,e)}}};if(Ar&&(Mr=(Ir=function(e){ur(this,Ir,gr),hr(e),qd.call(this);var U=Xr(this);try{e(Qa(ia,U),Qa(la,U))}catch(mu){la(U,mu)}}).prototype,(qd=function(e){xr(this,{type:gr,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Br(Mr,{then:function(e,U){var t=Lr(this),n=jr(pr(this,Ir));return n.ok="function"!=typeof e||e,n.fail="function"==typeof U&&U,n.domain=Tr?Kr.domain:void 0,t.parent=!0,t.reactions.push(n),0!=t.state&&ea(t,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),$d=function(){var e=new qd,U=Xr(e);this.promise=e,this.resolve=Qa(ia,U),this.reject=Qa(la,U)},yr.f=jr=function(e){return e===Ir||e===er?new $d(e):_r(e)},"function"==typeof ar&&Gr!==Object.prototype)){Ur=Gr.then,Pr||(or(Gr,"then",(function(e,U){var t=this;return new Ir((function(e,U){Ur.call(t,e,U)})).then(e,U)}),{unsafe:!0}),or(Gr,"catch",Mr.catch,{unsafe:!0}));try{delete Gr.constructor}catch(mu){}sr&&sr(Gr,Mr)}ir({global:!0,wrap:!0,forced:Ar},{Promise:Ir}),Rr(Ir,gr,!1),cr(gr),er=rr(gr),ir({target:gr,stat:!0,forced:Ar},{reject:function(e){var U=jr(this);return U.reject.call(void 0,e),U.promise}}),ir({target:gr,stat:!0,forced:Ar},{resolve:function(e){return Er(this,e)}}),ir({target:gr,stat:!0,forced:qr},{all:function(e){var U=this,t=jr(U),n=t.resolve,F=t.reject,Q=Nr((function(){var t=hr(U.resolve),Q=[],l=0,i=1;Sr(e,(function(e){var d=l++,r=!1;Q.push(void 0),i++,t.call(U,e).then((function(e){r||(r=!0,Q[d]=e,--i||n(Q))}),F)})),--i||n(Q)}));return Q.error&&F(Q.value),t.promise},race:function(e){var U=this,t=jr(U),n=t.reject,F=Nr((function(){var F=hr(U.resolve);Sr(e,(function(e){F.call(U,e).then(t.resolve,n)}))}));return F.error&&n(F.value),t.promise}});var da,ra="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,aa=ra,oa=i,Ba=F,sa=p,Ra=b,ca=DF,Va=ee,ha=Pe,ua=K.f,Za=cn,Sa=Xn,Ja=Tt,pa=pe,Wa=Ba.Int8Array,ma=Wa&&Wa.prototype,Ea=Ba.Uint8ClampedArray,ka=Ea&&Ea.prototype,ya=Wa&&Za(Wa),Na=ma&&Za(ma),ba=Object.prototype,fa=ba.isPrototypeOf,va=Ja("toStringTag"),Ta=pa("TYPED_ARRAY_TAG"),Ca=aa&&!!Sa&&"Opera"!==ca(Ba.opera),Da=!1,ga={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},Xa={BigInt64Array:8,BigUint64Array:8},xa=function(e){if(!sa(e))return!1;var U=ca(e);return Ra(ga,U)||Ra(Xa,U)};for(da in ga)Ba[da]||(Ca=!1);if((!Ca||"function"!=typeof ya||ya===Function.prototype)&&(ya=function(){throw TypeError("Incorrect invocation")},Ca))for(da in ga)Ba[da]&&Sa(Ba[da],ya);if((!Ca||!Na||Na===ba)&&(Na=ya.prototype,Ca))for(da in ga)Ba[da]&&Sa(Ba[da].prototype,Na);if(Ca&&Za(ka)!==Na&&Sa(ka,Na),oa&&!Ra(Na,va))for(da in Da=!0,ua(Na,va,{get:function(){return sa(this)?this[Ta]:void 0}}),ga)Ba[da]&&Va(Ba[da],Ta,da);var La={NATIVE_ARRAY_BUFFER_VIEWS:Ca,TYPED_ARRAY_TAG:Da&&Ta,aTypedArray:function(e){if(xa(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(Sa){if(fa.call(ya,e))return e}else for(var U in ga)if(Ra(ga,da)){var t=Ba[U];if(t&&(e===t||fa.call(t,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,U,t){if(oa){if(t)for(var n in ga){var F=Ba[n];if(F&&Ra(F.prototype,e))try{delete F.prototype[e]}catch(mu){}}Na[e]&&!t||ha(Na,e,t?U:Ca&&ma[e]||U)}},exportTypedArrayStaticMethod:function(e,U,t){var n,F;if(oa){if(Sa){if(t)for(n in ga)if((F=Ba[n])&&Ra(F,e))try{delete F[e]}catch(mu){}if(ya[e]&&!t)return;try{return ha(ya,e,t?U:Ca&&ya[e]||U)}catch(mu){}}for(n in ga)!(F=Ba[n])||F[e]&&!t||ha(F,e,U)}},isView:function(e){if(!sa(e))return!1;var U=ca(e);return"DataView"===U||Ra(ga,U)||Ra(Xa,U)},isTypedArray:xa,TypedArray:ya,TypedArrayPrototype:Na},Ga=F,Ia=l,Ma=$F,Ya=La.NATIVE_ARRAY_BUFFER_VIEWS,wa=Ga.ArrayBuffer,Ka=Ga.Int8Array,ja=!Ya||!Ia((function(){Ka(1)}))||!Ia((function(){new Ka(-1)}))||!Ma((function(e){new Ka,new Ka(null),new Ka(1.5),new Ka(e)}),!0)||Ia((function(){return 1!==new Ka(new wa(2),1,void 0).length})),_a=La.aTypedArrayConstructor;(0,La.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,U=arguments.length,t=new(_a(this))(U);U>e;)t[e]=arguments[e++];return t}),ja);var Ha={exports:{}},za=QU,Oa=dU,Pa=function(e){if(void 0===e)return 0;var U=za(e),t=Oa(U);if(U!==t)throw RangeError("Wrong length or index");return t},Aa=Math.abs,qa=Math.pow,$a=Math.floor,eo=Math.log,Uo=Math.LN2,to=k,no=BU,Fo=dU,Qo=function(e){for(var U=to(this),t=Fo(U.length),n=arguments.length,F=no(n>1?arguments[1]:void 0,t),Q=n>2?arguments[2]:void 0,l=void 0===Q?t:no(Q,t);l>F;)U[F++]=e;return U},lo=F,io=i,ro=ra,ao=ee,oo=VQ,Bo=l,so=zF,Ro=QU,co=dU,Vo=Pa,ho={pack:function(e,U,t){var n,F,Q,l=new Array(t),i=8*t-U-1,d=(1<<i)-1,r=d>>1,a=23===U?qa(2,-24)-qa(2,-77):0,o=e<0||0===e&&1/e<0?1:0,B=0;for((e=Aa(e))!=e||e===1/0?(F=e!=e?1:0,n=d):(n=$a(eo(e)/Uo),e*(Q=qa(2,-n))<1&&(n--,Q*=2),(e+=n+r>=1?a/Q:a*qa(2,1-r))*Q>=2&&(n++,Q/=2),n+r>=d?(F=0,n=d):n+r>=1?(F=(e*Q-1)*qa(2,U),n+=r):(F=e*qa(2,r-1)*qa(2,U),n=0));U>=8;l[B++]=255&F,F/=256,U-=8);for(n=n<<U|F,i+=U;i>0;l[B++]=255&n,n/=256,i-=8);return l[--B]|=128*o,l},unpack:function(e,U){var t,n=e.length,F=8*n-U-1,Q=(1<<F)-1,l=Q>>1,i=F-7,d=n-1,r=e[d--],a=127&r;for(r>>=7;i>0;a=256*a+e[d],d--,i-=8);for(t=a&(1<<-i)-1,a>>=-i,i+=U;i>0;t=256*t+e[d],d--,i-=8);if(0===a)a=1-l;else{if(a===Q)return t?NaN:r?-1/0:1/0;t+=qa(2,U),a-=l}return(r?-1:1)*t*qa(2,a-U)}},uo=cn,Zo=Xn,So=tU.f,Jo=K.f,po=Qo,Wo=kn,mo=Me.get,Eo=Me.set,ko="ArrayBuffer",yo="DataView",No="prototype",bo="Wrong index",fo=lo[ko],vo=fo,To=lo[yo],Co=To&&To[No],Do=Object.prototype,go=lo.RangeError,Xo=ho.pack,xo=ho.unpack,Lo=function(e){return[255&e]},Go=function(e){return[255&e,e>>8&255]},Io=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Mo=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},Yo=function(e){return Xo(e,23,4)},wo=function(e){return Xo(e,52,8)},Ko=function(e,U){Jo(e[No],U,{get:function(){return mo(this)[U]}})},jo=function(e,U,t,n){var F=Vo(t),Q=mo(e);if(F+U>Q.byteLength)throw go(bo);var l=mo(Q.buffer).bytes,i=F+Q.byteOffset,d=l.slice(i,i+U);return n?d:d.reverse()},_o=function(e,U,t,n,F,Q){var l=Vo(t),i=mo(e);if(l+U>i.byteLength)throw go(bo);for(var d=mo(i.buffer).bytes,r=l+i.byteOffset,a=n(+F),o=0;o<U;o++)d[r+o]=a[Q?o:U-o-1]};if(ro){if(!Bo((function(){fo(1)}))||!Bo((function(){new fo(-1)}))||Bo((function(){return new fo,new fo(1.5),new fo(NaN),fo.name!=ko}))){for(var Ho,zo=(vo=function(e){return so(this,vo),new fo(Vo(e))})[No]=fo[No],Oo=So(fo),Po=0;Oo.length>Po;)(Ho=Oo[Po++])in vo||ao(vo,Ho,fo[Ho]);zo.constructor=vo}Zo&&uo(Co)!==Do&&Zo(Co,Do);var Ao=new To(new vo(2)),qo=Co.setInt8;Ao.setInt8(0,2147483648),Ao.setInt8(1,2147483649),!Ao.getInt8(0)&&Ao.getInt8(1)||oo(Co,{setInt8:function(e,U){qo.call(this,e,U<<24>>24)},setUint8:function(e,U){qo.call(this,e,U<<24>>24)}},{unsafe:!0})}else vo=function(e){so(this,vo,ko);var U=Vo(e);Eo(this,{bytes:po.call(new Array(U),0),byteLength:U}),io||(this.byteLength=U)},To=function(e,U,t){so(this,To,yo),so(e,vo,yo);var n=mo(e).byteLength,F=Ro(U);if(F<0||F>n)throw go("Wrong offset");if(F+(t=void 0===t?n-F:co(t))>n)throw go("Wrong length");Eo(this,{buffer:e,byteLength:t,byteOffset:F}),io||(this.buffer=e,this.byteLength=t,this.byteOffset=F)},io&&(Ko(vo,"byteLength"),Ko(To,"buffer"),Ko(To,"byteLength"),Ko(To,"byteOffset")),oo(To[No],{getInt8:function(e){return jo(this,1,e)[0]<<24>>24},getUint8:function(e){return jo(this,1,e)[0]},getInt16:function(e){var U=jo(this,2,e,arguments.length>1?arguments[1]:void 0);return(U[1]<<8|U[0])<<16>>16},getUint16:function(e){var U=jo(this,2,e,arguments.length>1?arguments[1]:void 0);return U[1]<<8|U[0]},getInt32:function(e){return Mo(jo(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Mo(jo(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return xo(jo(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return xo(jo(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,U){_o(this,1,e,Lo,U)},setUint8:function(e,U){_o(this,1,e,Lo,U)},setInt16:function(e,U){_o(this,2,e,Go,U,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,U){_o(this,2,e,Go,U,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,U){_o(this,4,e,Io,U,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,U){_o(this,4,e,Io,U,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,U){_o(this,4,e,Yo,U,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,U){_o(this,8,e,wo,U,arguments.length>2?arguments[2]:void 0)}});Wo(vo,ko),Wo(To,yo);var $o={ArrayBuffer:vo,DataView:To},eB=QU,UB=function(e){var U=eB(e);if(U<0)throw RangeError("The argument can't be less than 0");return U},tB=function(e,U){var t=UB(e);if(t%U)throw RangeError("Wrong offset");return t},nB=k,FB=dU,QB=LF,lB=mF,iB=yF,dB=La.aTypedArrayConstructor,rB=PU,aB=F,oB=i,BB=ja,sB=La,RB=$o,cB=zF,VB=B,hB=ee,uB=dU,ZB=Pa,SB=tB,JB=m,pB=b,WB=DF,mB=p,EB=$t,kB=Xn,yB=tU.f,NB=function(e){var U,t,n,F,Q,l,i=nB(e),d=arguments.length,r=d>1?arguments[1]:void 0,a=void 0!==r,o=QB(i);if(null!=o&&!lB(o))for(l=(Q=o.call(i)).next,i=[];!(F=l.call(Q)).done;)i.push(F.value);for(a&&d>2&&(r=iB(r,arguments[2],2)),t=FB(i.length),n=new(dB(this))(t),U=0;t>U;U++)n[U]=a?r(i[U],U):i[U];return n},bB=ki.forEach,fB=JQ,vB=K,TB=Q,CB=tQ,DB=Me.get,gB=Me.set,XB=vB.f,xB=TB.f,LB=Math.round,GB=aB.RangeError,IB=RB.ArrayBuffer,MB=RB.DataView,YB=sB.NATIVE_ARRAY_BUFFER_VIEWS,wB=sB.TYPED_ARRAY_TAG,KB=sB.TypedArray,jB=sB.TypedArrayPrototype,_B=sB.aTypedArrayConstructor,HB=sB.isTypedArray,zB="BYTES_PER_ELEMENT",OB="Wrong length",PB=function(e,U){for(var t=0,n=U.length,F=new(_B(e))(n);n>t;)F[t]=U[t++];return F},AB=function(e,U){XB(e,U,{get:function(){return DB(this)[U]}})},qB=function(e){var U;return e instanceof IB||"ArrayBuffer"==(U=WB(e))||"SharedArrayBuffer"==U},$B=function(e,U){return HB(e)&&"symbol"!=typeof U&&U in e&&String(+U)==String(U)},es=function(e,U){return $B(e,U=JB(U,!0))?VB(2,e[U]):xB(e,U)},Us=function(e,U,t){return!($B(e,U=JB(U,!0))&&mB(t)&&pB(t,"value"))||pB(t,"get")||pB(t,"set")||t.configurable||pB(t,"writable")&&!t.writable||pB(t,"enumerable")&&!t.enumerable?XB(e,U,t):(e[U]=t.value,e)};oB?(YB||(TB.f=es,vB.f=Us,AB(jB,"buffer"),AB(jB,"byteOffset"),AB(jB,"byteLength"),AB(jB,"length")),rB({target:"Object",stat:!0,forced:!YB},{getOwnPropertyDescriptor:es,defineProperty:Us}),Ha.exports=function(e,U,t){var n=e.match(/\d+$/)[0]/8,F=e+(t?"Clamped":"")+"Array",Q="get"+e,l="set"+e,i=aB[F],d=i,r=d&&d.prototype,a={},o=function(e,U){XB(e,U,{get:function(){return e=U,(t=DB(this)).view[Q](e*n+t.byteOffset,!0);var e,t},set:function(e){return F=U,Q=e,i=DB(this),t&&(Q=(Q=LB(Q))<0?0:Q>255?255:255&Q),void i.view[l](F*n+i.byteOffset,Q,!0);var F,Q,i},enumerable:!0})};YB?BB&&(d=U((function(e,U,t,Q){return cB(e,d,F),CB(mB(U)?qB(U)?void 0!==Q?new i(U,SB(t,n),Q):void 0!==t?new i(U,SB(t,n)):new i(U):HB(U)?PB(d,U):NB.call(d,U):new i(ZB(U)),e,d)})),kB&&kB(d,KB),bB(yB(i),(function(e){e in d||hB(d,e,i[e])})),d.prototype=r):(d=U((function(e,U,t,Q){cB(e,d,F);var l,i,r,a=0,B=0;if(mB(U)){if(!qB(U))return HB(U)?PB(d,U):NB.call(d,U);l=U,B=SB(t,n);var s=U.byteLength;if(void 0===Q){if(s%n)throw GB(OB);if((i=s-B)<0)throw GB(OB)}else if((i=uB(Q)*n)+B>s)throw GB(OB);r=i/n}else r=ZB(U),l=new IB(i=r*n);for(gB(e,{buffer:l,byteOffset:B,byteLength:i,length:r,view:new MB(l)});a<r;)o(e,a++)})),kB&&kB(d,KB),r=d.prototype=EB(jB)),r.constructor!==d&&hB(r,"constructor",d),wB&&hB(r,wB,F),a[F]=d,rB({global:!0,forced:d!=i,sham:!YB},a),zB in d||hB(d,zB,n),zB in r||hB(r,zB,n),fB(F)}):Ha.exports=function(){};var ts=Ha.exports;ts("Uint8",(function(e){return function(U,t,n){return e(this,U,t,n)}}));var ns=k,Fs=BU,Qs=dU,ls=Math.min,is=[].copyWithin||function(e,U){var t=ns(this),n=Qs(t.length),F=Fs(e,n),Q=Fs(U,n),l=arguments.length>2?arguments[2]:void 0,i=ls((void 0===l?n:Fs(l,n))-Q,n-F),d=1;for(Q<F&&F<Q+i&&(d=-1,Q+=i-1,F+=i-1);i-- >0;)Q in t?t[F]=t[Q]:delete t[F],F+=d,Q+=d;return t},ds=is,rs=La.aTypedArray;(0,La.exportTypedArrayMethod)("copyWithin",(function(e,U){return ds.call(rs(this),e,U,arguments.length>2?arguments[2]:void 0)}));var as=ki.every,os=La.aTypedArray;(0,La.exportTypedArrayMethod)("every",(function(e){return as(os(this),e,arguments.length>1?arguments[1]:void 0)}));var Bs=Qo,ss=La.aTypedArray;(0,La.exportTypedArrayMethod)("fill",(function(e){return Bs.apply(ss(this),arguments)}));var Rs=La.aTypedArrayConstructor,cs=Fl,Vs=ki.filter,hs=function(e,U){for(var t=cs(e,e.constructor),n=0,F=U.length,Q=new(Rs(t))(F);F>n;)Q[n]=U[n++];return Q},us=La.aTypedArray;(0,La.exportTypedArrayMethod)("filter",(function(e){var U=Vs(us(this),e,arguments.length>1?arguments[1]:void 0);return hs(this,U)}));var Zs=ki.find,Ss=La.aTypedArray;(0,La.exportTypedArrayMethod)("find",(function(e){return Zs(Ss(this),e,arguments.length>1?arguments[1]:void 0)}));var Js=ki.findIndex,ps=La.aTypedArray;(0,La.exportTypedArrayMethod)("findIndex",(function(e){return Js(ps(this),e,arguments.length>1?arguments[1]:void 0)}));var Ws=ki.forEach,ms=La.aTypedArray;(0,La.exportTypedArrayMethod)("forEach",(function(e){Ws(ms(this),e,arguments.length>1?arguments[1]:void 0)}));var Es=hU.includes,ks=La.aTypedArray;(0,La.exportTypedArrayMethod)("includes",(function(e){return Es(ks(this),e,arguments.length>1?arguments[1]:void 0)}));var ys=hU.indexOf,Ns=La.aTypedArray;(0,La.exportTypedArrayMethod)("indexOf",(function(e){return ys(Ns(this),e,arguments.length>1?arguments[1]:void 0)}));var bs=F,fs=La,vs=iF,Ts=Tt("iterator"),Cs=bs.Uint8Array,Ds=vs.values,gs=vs.keys,Xs=vs.entries,xs=fs.aTypedArray,Ls=fs.exportTypedArrayMethod,Gs=Cs&&Cs.prototype[Ts],Is=!!Gs&&("values"==Gs.name||null==Gs.name),Ms=function(){return Ds.call(xs(this))};Ls("entries",(function(){return Xs.call(xs(this))})),Ls("keys",(function(){return gs.call(xs(this))})),Ls("values",Ms,!Is),Ls(Ts,Ms,!Is);var Ys=La.aTypedArray,ws=[].join;(0,La.exportTypedArrayMethod)("join",(function(e){return ws.apply(Ys(this),arguments)}));var Ks=l,js=function(e,U){var t=[][e];return!!t&&Ks((function(){t.call(null,U||function(){throw 1},1)}))},_s=J,Hs=QU,zs=dU,Os=js,Ps=Math.min,As=[].lastIndexOf,qs=!!As&&1/[1].lastIndexOf(1,-0)<0,$s=Os("lastIndexOf"),eR=qs||!$s?function(e){if(qs)return As.apply(this,arguments)||0;var U=_s(this),t=zs(U.length),n=t-1;for(arguments.length>1&&(n=Ps(n,Hs(arguments[1]))),n<0&&(n=t+n);n>=0;n--)if(n in U&&U[n]===e)return n||0;return-1}:As,UR=eR,tR=La.aTypedArray;(0,La.exportTypedArrayMethod)("lastIndexOf",(function(e){return UR.apply(tR(this),arguments)}));var nR=ki.map,FR=Fl,QR=La.aTypedArray,lR=La.aTypedArrayConstructor;(0,La.exportTypedArrayMethod)("map",(function(e){return nR(QR(this),e,arguments.length>1?arguments[1]:void 0,(function(e,U){return new(lR(FR(e,e.constructor)))(U)}))}));var iR=EF,dR=k,rR=h,aR=dU,oR=function(e){return function(U,t,n,F){iR(t);var Q=dR(U),l=rR(Q),i=aR(Q.length),d=e?i-1:0,r=e?-1:1;if(n<2)for(;;){if(d in l){F=l[d],d+=r;break}if(d+=r,e?d<0:i<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:i>d;d+=r)d in l&&(F=t(F,l[d],d,Q));return F}},BR={left:oR(!1),right:oR(!0)},sR=BR.left,RR=La.aTypedArray;(0,La.exportTypedArrayMethod)("reduce",(function(e){return sR(RR(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var cR=BR.right,VR=La.aTypedArray;(0,La.exportTypedArrayMethod)("reduceRight",(function(e){return cR(VR(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var hR=La.aTypedArray,uR=La.exportTypedArrayMethod,ZR=Math.floor;uR("reverse",(function(){for(var e,U=this,t=hR(U).length,n=ZR(t/2),F=0;F<n;)e=U[F],U[F++]=U[--t],U[t]=e;return U}));var SR=dU,JR=tB,pR=k,WR=La.aTypedArray;(0,La.exportTypedArrayMethod)("set",(function(e){WR(this);var U=JR(arguments.length>1?arguments[1]:void 0,1),t=this.length,n=pR(e),F=SR(n.length),Q=0;if(F+U>t)throw RangeError("Wrong length");for(;Q<F;)this[U+Q]=n[Q++]}),l((function(){new Int8Array(1).set({})})));var mR=Fl,ER=La.aTypedArray,kR=La.aTypedArrayConstructor,yR=[].slice;(0,La.exportTypedArrayMethod)("slice",(function(e,U){for(var t=yR.call(ER(this),e,U),n=mR(this,this.constructor),F=0,Q=t.length,l=new(kR(n))(Q);Q>F;)l[F]=t[F++];return l}),l((function(){new Int8Array(1).slice()})));var NR=ki.some,bR=La.aTypedArray;(0,La.exportTypedArrayMethod)("some",(function(e){return NR(bR(this),e,arguments.length>1?arguments[1]:void 0)}));var fR=La.aTypedArray,vR=[].sort;(0,La.exportTypedArrayMethod)("sort",(function(e){return vR.call(fR(this),e)}));var TR=dU,CR=BU,DR=Fl,gR=La.aTypedArray;(0,La.exportTypedArrayMethod)("subarray",(function(e,U){var t=gR(this),n=t.length,F=CR(e,n);return new(DR(t,t.constructor))(t.buffer,t.byteOffset+F*t.BYTES_PER_ELEMENT,TR((void 0===U?n:CR(U,n))-F))}));var XR=La,xR=l,LR=F.Int8Array,GR=XR.aTypedArray,IR=XR.exportTypedArrayMethod,MR=[].toLocaleString,YR=[].slice,wR=!!LR&&xR((function(){MR.call(new LR(1))}));IR("toLocaleString",(function(){return MR.apply(wR?YR.call(GR(this)):GR(this),arguments)}),xR((function(){return[1,2].toLocaleString()!=new LR([1,2]).toLocaleString()}))||!xR((function(){LR.prototype.toLocaleString.call([1,2])})));var KR=La.exportTypedArrayMethod,jR=l,_R=F.Uint8Array,HR=_R&&_R.prototype||{},zR=[].toString,OR=[].join;jR((function(){zR.call({})}))&&(zR=function(){return OR.call(this)});var PR=HR.toString!=zR;KR("toString",zR,PR);var AR=function(){function e(){var U,t;Ut(this,e);var n=new Promise((function(e,n){U=e,t=n}));return n.resolve=function(e){U(e),n.state="fulfilled"},n.reject=function(e){t(e),n.state="rejected",n.isBreak="DESTROYED"===e},n.state="pending",n}return nt(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),qR=PU,$R=J,ec=[].join,Uc=h!=Object,tc=js("join",",");qR({target:"Array",proto:!0,forced:Uc||!tc},{join:function(e){return ec.call($R(this),void 0===e?",":e)}});var nc,Fc=nt((function e(){var U=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=U.url,n=U.method,F=void 0===n?"GET":n,Q=U.type,l=void 0===Q?"arraybuffer":Q,i=U.data,d=void 0===i?{}:i;return Ut(this,e),new Promise((function(e,U){var n=new window.XMLHttpRequest,Q=F.toUpperCase(),i=[];if(Object.keys(d).map((function(e){i.push("k=".concat(d[e]))})),"GET"===Q){var r="";r=t.indexOf("?")<0?"".concat(t,"?").concat(i.join("&")):(null==i?void 0:i.length)>0?"".concat(t,"&").concat(i.join("&")):t,n.open(Q,r),l&&(n.responseType=l),n.send()}else{if("POST"!==Q)throw new Error("xhr ".concat(Q," is not supported"));n.open(Q,t,!0),l&&(n.responseType=l),n.setRequestHeader("Content-Type","application/json"),n.send(JSON.stringify(d))}n.onload=function(){200===n.status||206===n.status?e(n):U(n)},n.onerror=function(){U(n)}}))})),Qc=Fc;!function(e,U,t){function n(e,U){var t=parseInt(e.slice(U,U+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(U+2,U+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(U+2,U+6),16)])}var F,Q=0,l=[],i=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var d=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)l.push(parseInt(e.slice(F,F+2),16));var a=r+40,o=parseInt(e.slice(a,a+4),16);for(a+=4,F=0;F<o;++F){var B=n(e,a);a+=2*B[0];for(var s="",R=0;R<B[1];++R){var c=n(e,a);s+=String.fromCharCode(Q^c[1]),a+=2*c[0]}i.push(s)}U.p=null,function e(U,t,n,F,Q){var d,r,a,o,B,s=-1,R=[],c=null,V=[t];for(r=Math.min(t.length,n),a=0;a<r;++a)V.push(t[a]);V.p=F;for(var h=[];;)try{switch(l[U++]){case 33:R[++s]=null;break;case 34:d=l[U++],R[++s]=d<<24>>24;break;case 7:d=(l[U]<<8)+l[U+1],U+=2,R[++s]=d<<16>>16;break;case 29:d=((d=((d=l[U++])<<8)+l[U++])<<8)+l[U++],R[++s]=(d<<8)+l[U++];break;case 62:d=(l[U]<<8)+l[U+1],U+=2,R[++s]=i[d];break;case 76:R[++s]=void 0;break;case 53:R[++s]={};break;case 75:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],a=R[s--],R[s][r]=a;break;case 60:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;R[++s]=o[a];break;case 31:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],R[s]=R[s][r];break;case 32:r=R[s--],R[s]=R[s][r];break;case 63:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;o[a]=R[s--];break;case 30:r=R[s--],a=R[s--],o=R[s--],a[r]=o;break;case 74:for(r=l[U++],a=l[U++],o=V,o=V;r>0;--r)o=o.p;R[++s]=o,R[++s]=a;break;case 21:r=R[s--],R[s]+=r;break;case 58:r=R[s--],R[s]-=r;break;case 12:r=R[s--],R[s]%=r;break;case 10:r=R[s--],o=(a=R[s--])[r]++,R[++s]=o;break;case 2:r=R[s--],o=(a=R[s--])[r]--,R[++s]=o;break;case 1:r=R[s--],R[s]=R[s]===r;break;case 68:r=R[s--],R[s]=R[s]!==r;break;case 51:r=R[s--],R[s]=R[s]<r;break;case 6:r=R[s--],R[s]=R[s]<=r;break;case 16:r=R[s--],R[s]=R[s]>r;break;case 0:r=R[s--],R[s]=R[s]>=r;break;case 50:r=R[s--],R[s]=R[s]&r;break;case 67:r=R[s--],R[s]=R[s]^r;break;case 52:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,R[s]?--s:U+=d;break;case 45:r=R[s--],(a=R[s--])[r]=R[s];break;case 3:d=l[U++],r=R[s--],(a=function e(){var U=e._v;return(0,e._u)(U[0],arguments,U[1],U[2],this)})._v=[r,d,V],a._u=e,R[++s]=a;break;case 22:d=l[U++],r=R[s--],(o=[a=function e(){var U=e._v;return(0,e._u)(U[0],arguments,U[1],U[2],this)}]).p=V,a._v=[r,d,o],a._u=e,R[++s]=a;break;case 56:for(r=R[s--],a=null;o=h.pop();)if(2===o[0]||3===o[0]){a=o;break}if(a)U=a[2],a[0]=0,h.push(a);else{if(!c)return r;U=c[1],Q=c[2],V=c[3],h=c[4],R[++s]=r,c=c[0]}break;case 44:s-=d=l[U++],a=R.slice(s+1,s+d+1),r=R[s--],o=R[s--],r._u===e?(r=r._v,c=[c,U,Q,V,h],U=r[0],null==o&&(o=function(){return this}()),Q=o,(V=[a].concat(a)).length=Math.min(r[1],d)+1,V.p=r[2],h=[]):(B=r.apply(o,a),R[++s]=B);break;case 55:for(d=l[U++],o=[void 0],B=d;B>0;--B)o[B]=R[s--];a=R[s--],B=new(r=Function.bind.apply(a,o)),R[++s]=B;break;case 46:U+=2+(d=(d=(l[U]<<8)+l[U+1])<<16>>16);break;case 42:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,(r=R[s--])||(U+=d);break;case 39:--s;break;case 18:r=R[s],R[++s]=r;break;default:throw new Error("ioe")}}catch(u){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;c;){for(r=c[4];d=r.pop();)if(d[0])break e;c=c[0]}if(!c)throw u;U=c[1],Q=c[2],V=c[3],h=c[4],c=c[0]}1===(r=d[0])?(U=d[2],d[0]=0,h.push(d),R[++s]=u):2===r?(U=d[2],d[0]=0,h.push(d)):(U=d[3],d[0]=2,h.push(d),R[++s]=u)}}(d,[],0,U,t)}("504B010177739c88000003618b9f70750000039f3c00013e0000003400073c00013e0001062a00183c0001121f000222002c013e0000121f000222002c013a383c00013e0003003400073c00013e0004062a001b3c0001121f000222002c013e0003121f000222002c013a220a15380700ff383c0001220020121f00022c003c0001220120121f00022c00433c0001220220121f00022c00433e0000121f000222002c013a3f00033c00023c00033a22013a3f00043c03003c000437013f00053c03003c000337013f00063c00034a00072d273c00072200102a004e3c00013c00023c00033a22023a20121f00022c003c00013c00023c00033a22013a20121f00022c00433c00013c00023c00073a20121f00022c00433c00063c00033c00073a1e4a000702272effa922004a00072d273c00073c0004332a00193c00013c0007220115203c00053c00071e4a00070a272effdd353c00054b00053c00044b00063c00064b00073c00034b00083822003f000222004a00022d273c00012200442a00173c00013c000122013a324a00012d274a00020a272effe03c0002383c0001121f00022c00213c02033c00022c01153c0003153f00043c0301121f00093c00040700ff322c013822553f00030700fa3f000422003f000622004a00062d273c00063c0002332a007d3c000622020c2201012a00273c00033c00013c000620121f00022c00433f00053c00013c000620121f00022c003f00032e00243c00043c00013c000620121f00022c00433f00053c00013c000620121f00022c003f0004213c02043c0301121f00093c00052c013c000622152c033c00013c00061e4a00060a272eff793c000138213c02023c00012c013f00023c00021f000a3f00033c00023f0004213c01023c00043c00032c023f00053c00051f00053f00063c00051f00063f00073c00051f00083f0008213c01053c00063c00072c023f0006213c01013c00062200202c013f00083c00073c00083a22013a3f00093c02003c000922011537013f000a3c02003c000822011537013f000b3e000b3c000a3c00091e22003c000b3c00081e22003f000c22004a000c2d273c000c3c0009332a00193c00063c000c220115203c000a3c000c1e4a000c0a272effdd22004a000c2d273c000c3c0008332a001e3c00063c00073c00083a3c000c15203c000b3c000c1e4a000c0a272effd83c000a121f000c3e000b2c01381d0000025703013f01031d0000000016013f00011d0000005f16023f00021d0000015a16013f00031d0000018a16033f00041d000001b516023f00054c38000d013f01360a6c676e7d4c606b6a4e7b016e01750a6c6061796a7d7b446a760a6c6061796a7d7b436a610d6c6061796a7d7b426a7b67606b09626a7b67606b436a610c697d60624c676e7d4c606b6a06636a61687b67000465606661",{0:Array,1:String,get 2(){return atob},get 3(){return nc},set 3(e){nc=e}},void 0);var lc=null;function ic(e,U,t){var n=new AR;return new Qc({type:"json",method:"POST",url:t,data:{drm_type:"22",license_request:[{vid:e,kids:[].concat(U)}]}}).then((function(t){var F=null==t?void 0:t.response;if("string"==typeof F&&(F=JSON.parse(F)),F){var Q=F.play_licenses[e][U];n.resolve(Q)}else console.error("getSecretKeyByKid end, vid,",e,",kid",U,"response null"),n.reject()})).catch((function(){console.error("getSecretKeyByKid end, vid,",e,",kid",U,"catch"),n.reject()})),n}function dc(){return function(e,U,t){function n(e,U){var t=parseInt(e.slice(U,U+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(U+2,U+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(U+2,U+6),16)])}var F,Q=0,l=[],i=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var d=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)l.push(parseInt(e.slice(F,F+2),16));var a=r+40,o=parseInt(e.slice(a,a+4),16);for(a+=4,F=0;F<o;++F){var B=n(e,a);a+=2*B[0];for(var s="",R=0;R<B[1];++R){var c=n(e,a);s+=String.fromCharCode(Q^c[1]),a+=2*c[0]}i.push(s)}return U.p=null,function e(U,t,n,F,Q){var d,r,a,o,B,s=-1,R=[],c=null,V=[t];for(r=Math.min(t.length,n),a=0;a<r;++a)V.push(t[a]);V.p=F;for(var h=[];;)try{switch(l[U++]){case 33:R[++s]=null;break;case 34:d=l[U++],R[++s]=d<<24>>24;break;case 29:d=((d=((d=l[U++])<<8)+l[U++])<<8)+l[U++],R[++s]=(d<<8)+l[U++];break;case 62:d=(l[U]<<8)+l[U+1],U+=2,R[++s]=i[d];break;case 76:R[++s]=void 0;break;case 53:R[++s]={};break;case 75:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],a=R[s--],R[s][r]=a;break;case 60:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;R[++s]=o[a];break;case 31:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],R[s]=R[s][r];break;case 32:r=R[s--],R[s]=R[s][r];break;case 63:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;o[a]=R[s--];break;case 70:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],a=R[s--],o=R[s--],a[r]=o;break;case 30:r=R[s--],a=R[s--],o=R[s--],a[r]=o;break;case 68:r=R[s--],R[s]=R[s]!==r;break;case 16:r=R[s--],R[s]=R[s]>r;break;case 52:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,R[s]?--s:U+=d;break;case 3:d=l[U++],r=R[s--],(a=function e(){var U=e._v;return(0,e._u)(U[0],arguments,U[1],U[2],this)})._v=[r,d,V],a._u=e,R[++s]=a;break;case 56:for(r=R[s--],a=null;o=h.pop();)if(2===o[0]||3===o[0]){a=o;break}if(a)U=a[2],a[0]=0,h.push(a);else{if(!c)return r;U=c[1],Q=c[2],V=c[3],h=c[4],R[++s]=r,c=c[0]}break;case 44:s-=d=l[U++],a=R.slice(s+1,s+d+1),r=R[s--],o=R[s--],r._u===e?(r=r._v,c=[c,U,Q,V,h],U=r[0],null==o&&(o=function(){return this}()),Q=o,(V=[a].concat(a)).length=Math.min(r[1],d)+1,V.p=r[2],h=[]):(B=r.apply(o,a),R[++s]=B);break;case 55:for(d=l[U++],o=[void 0],B=d;B>0;--B)o[B]=R[s--];a=R[s--],B=new(r=Function.bind.apply(a,o)),R[++s]=B;break;case 46:U+=2+(d=(d=(l[U]<<8)+l[U+1])<<16>>16);break;case 42:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,(r=R[s--])||(U+=d);break;case 39:--s;break;case 18:r=R[s],R[++s]=r;break;default:throw new Error("ioe")}}catch(u){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;c;){for(r=c[4];d=r.pop();)if(d[0])break e;c=c[0]}if(!c)throw u;U=c[1],Q=c[2],V=c[3],h=c[4],c=c[0]}1===(r=d[0])?(U=d[2],d[0]=0,h.push(d),R[++s]=u):2===r?(U=d[2],d[0]=0,h.push(d)):(U=d[3],d[0]=2,h.push(d),R[++s]=u)}}(d,[],0,U,t)}("504B010177739c880000003f8b9f707500000142213c02013c00012c013f000235354b00023f00033c00023c00031f00023c01031e3c0105121f00033c00032c01274c383c0105121f00083c00012c01274c383c01031f00002200103400083c01032200204c442a00093c01032200202e00033e00013f00013c01031f00002201102a00093c01032201202e00014c3f00023c01031f00002202102a00093c01032202202e00014c3f00033c01031f00002203102a00093c01032203202e00014c3f00043c010037003f00053c00022a0047213c01013c00022c013f00063c00032a002535354b00023f00073c00063c00071f00023c00031e3c0005121f00033c00072c01272e000d3c0005121f00033c00062c01272e0039213c01023c00013c00033c00042c033f00083e00043c00084600053c0008121f00061d0000000003012c01121f00071d0000003003012c01273c000538000906636a61687b6700096c636a6e7d446a767c077d6a7c6063796a0e7d6a7e7a6a7c7b5f7d6062667c6a02666b047b676a61056c6e7b6c67067d6a656a6c7b",{get 0(){return AR},get 1(){return nc},get 2(){return ic},3:arguments},this)}function rc(e){var U;if(null===lc)try{lc=localStorage&&!!localStorage.getItem("secretkeylog")}catch(Q){}for(var t=arguments.length,n=new Array(t>1?t-1:0),F=1;F<t;F++)n[F-1]=arguments[F];lc&&console.log&&(U=console).log.apply(U,["[XGSecretkey]",e].concat(n))}var ac={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(e){this.toString=function(){return"CORRUPT: "+this.message},this.message=e},invalid:function(e){this.toString=function(){return"INVALID: "+this.message},this.message=e},bug:function(e){this.toString=function(){return"BUG: "+this.message},this.message=e},notReady:function(e){this.toString=function(){return"NOT READY: "+this.message},this.message=e}}};ac.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var U,t,n,F,Q,l=this._tables[0][4],i=this._tables[1],d=e.length,r=1;if(4!==d&&6!==d&&8!==d)throw new ac.exception.invalid("invalid aes key size");for(this._key=[F=e.slice(0),Q=[]],U=d;U<4*d+28;U++)n=F[U-1],(U%d==0||8===d&&U%d==4)&&(n=l[n>>>24]<<24^l[n>>16&255]<<16^l[n>>8&255]<<8^l[255&n],U%d==0&&(n=n<<8^n>>>24^r<<24,r=r<<1^283*(r>>7))),F[U]=F[U-d]^n;for(t=0;U;t++,U--)n=F[3&t?U:U-4],Q[t]=U<=4||t<4?n:i[0][l[n>>>24]]^i[1][l[n>>16&255]]^i[2][l[n>>8&255]]^i[3][l[255&n]]},ac.cipher.aes.prototype={encrypt:function(e){return this._crypt(e,0)},decrypt:function(e){return this._crypt(e,1)},_tables:[[[],[],[],[],[]],[[],[],[],[],[]]],_precompute:function(){var e,U,t,n,F,Q,l,i,d=this._tables[0],r=this._tables[1],a=d[4],o=r[4],B=[],s=[];for(e=0;e<256;e++)s[(B[e]=e<<1^283*(e>>7))^e]=e;for(U=t=0;!a[U];U^=n||1,t=s[t]||1)for(Q=(Q=t^t<<1^t<<2^t<<3^t<<4)>>8^255&Q^99,a[U]=Q,o[Q]=U,i=16843009*B[F=B[n=B[U]]]^65537*F^257*n^16843008*U,l=257*B[Q]^16843008*Q,e=0;e<4;e++)d[e][U]=l=l<<24^l>>>8,r[e][Q]=i=i<<24^i>>>8;for(e=0;e<5;e++)d[e]=d[e].slice(0),r[e]=r[e].slice(0)},_crypt:function(e,U){if(4!==e.length)throw new ac.exception.invalid("invalid aes block size");var t,n,F,Q,l=this._key[U],i=e[0]^l[0],d=e[U?3:1]^l[1],r=e[2]^l[2],a=e[U?1:3]^l[3],o=l.length/4-2,B=4,s=[0,0,0,0],R=this._tables[U],c=R[0],V=R[1],h=R[2],u=R[3],Z=R[4];for(Q=0;Q<o;Q++)t=c[i>>>24]^V[d>>16&255]^h[r>>8&255]^u[255&a]^l[B],n=c[d>>>24]^V[r>>16&255]^h[a>>8&255]^u[255&i]^l[B+1],F=c[r>>>24]^V[a>>16&255]^h[i>>8&255]^u[255&d]^l[B+2],a=c[a>>>24]^V[i>>16&255]^h[d>>8&255]^u[255&r]^l[B+3],B+=4,i=t,d=n,r=F;for(Q=0;Q<4;Q++)s[U?3&-Q:Q]=Z[i>>>24]<<24^Z[d>>16&255]<<16^Z[r>>8&255]<<8^Z[255&a]^l[B++],t=i,i=d,d=r,r=a,a=t;return s}},ac.bitArray={bitSlice:function(e,U,t){return e=ac.bitArray._shiftRight(e.slice(U/32),32-(31&U)).slice(1),void 0===t?e:ac.bitArray.clamp(e,t-U)},extract:function(e,U,t){var n=Math.floor(-U-t&31);return(-32&(U+t-1^U)?e[U/32|0]<<32-n^e[U/32+1|0]>>>n:e[U/32|0]>>>n)&(1<<t)-1},concat:function(e,U){if(0===e.length||0===U.length)return e.concat(U);var t=e[e.length-1],n=ac.bitArray.getPartial(t);return 32===n?e.concat(U):ac.bitArray._shiftRight(U,n,0|t,e.slice(0,e.length-1))},bitLength:function(e){var U,t=e.length;return 0===t?0:(U=e[t-1],32*(t-1)+ac.bitArray.getPartial(U))},clamp:function(e,U){if(32*e.length<U)return e;var t=(e=e.slice(0,Math.ceil(U/32))).length;return U&=31,t>0&&U&&(e[t-1]=ac.bitArray.partial(U,e[t-1]&2147483648>>U-1,1)),e},partial:function(e,U,t){return 32===e?U:(t?0|U:U<<32-e)+1099511627776*e},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(e,U){if(ac.bitArray.bitLength(e)!==ac.bitArray.bitLength(U))return!1;var t,n=0;for(t=0;t<e.length;t++)n|=e[t]^U[t];return 0===n},_shiftRight:function(e,U,t,n){var F,Q,l;for(void 0===n&&(n=[]);U>=32;U-=32)n.push(t),t=0;if(0===U)return n.concat(e);for(F=0;F<e.length;F++)n.push(t|e[F]>>>U),t=e[F]<<32-U;return Q=e.length?e[e.length-1]:0,l=ac.bitArray.getPartial(Q),n.push(ac.bitArray.partial(U+l&31,U+l>32?t:n.pop(),1)),n},_xor4:function(e,U){return[e[0]^U[0],e[1]^U[1],e[2]^U[2],e[3]^U[3]]},byteswapM:function(e){var U,t;for(U=0;U<e.length;++U)t=e[U],e[U]=t>>>24|t>>>8&65280|(65280&t)<<8|t<<24;return e}},ac.codec.utf8String={fromBits:function(e){var U,t,n="",F=ac.bitArray.bitLength(e);for(U=0;U<F/8;U++)0==(3&U)&&(t=e[U/4]),n+=String.fromCharCode(t>>>8>>>8>>>8),t<<=8;return decodeURIComponent(escape(n))},toBits:function(e){e=unescape(encodeURIComponent(e));var U,t=[],n=0;for(U=0;U<e.length;U++)n=n<<8|e.charCodeAt(U),3==(3&U)&&(t.push(n),n=0);return 3&U&&t.push(ac.bitArray.partial(8*(3&U),n)),t}},ac.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,U,t){var n,F="",Q=0,l=ac.codec.base64._chars,i=0,d=ac.bitArray.bitLength(e);for(t&&(l=l.substr(0,62)+"-_"),n=0;6*F.length<d;)F+=l.charAt((i^e[n]>>>Q)>>>26),Q<6?(i=e[n]<<6-Q,Q+=26,n++):(i<<=6,Q-=6);for(;3&F.length&&!U;)F+="=";return F},toBits:function(e,U){e=e.replace(/\s|=/g,"");var t,n,F=[],Q=0,l=ac.codec.base64._chars,i=0;for(U&&(l=l.substr(0,62)+"-_"),t=0;t<e.length;t++){if((n=l.indexOf(e.charAt(t)))<0)throw new ac.exception.invalid("this isn't base64!");Q>26?(Q-=26,F.push(i^n>>>Q),i=n<<32-Q):i^=n<<32-(Q+=6)}return 56&Q&&F.push(ac.bitArray.partial(56&Q,i,1)),F}},ac.codec.base64url={fromBits:function(e){return ac.codec.base64.fromBits(e,1,1)},toBits:function(e){return ac.codec.base64.toBits(e,1)}},ac.mode.gcm={name:"gcm",encrypt:function(e,U,t,n,F){var Q,l=U.slice(0),i=ac.bitArray;return F=F||128,n=n||[],Q=ac.mode.gcm._ctrMode(!0,e,l,n,t,F),i.concat(Q.data,Q.tag)},decrypt:function(e,U,t,n,F){var Q,l,i=U.slice(0),d=ac.bitArray,r=d.bitLength(i);if(n=n||[],(F=F||128)<=r?(l=d.bitSlice(i,r-F),i=d.bitSlice(i,0,r-F)):(l=i,i=[]),Q=ac.mode.gcm._ctrMode(!1,e,i,n,t,F),!d.equal(Q.tag,l))throw new ac.exception.corrupt("gcm: tag doesn't match");return Q.data},_galoisMultiply:function(e,U){var t,n,F,Q,l,i=ac.bitArray._xor4;for(F=[0,0,0,0],Q=U.slice(0),t=0;t<128;t++){for(0!=(e[Math.floor(t/32)]&1<<31-t%32)&&(F=i(F,Q)),l=0!=(1&Q[3]),n=3;n>0;n--)Q[n]=Q[n]>>>1|(1&Q[n-1])<<31;Q[0]=Q[0]>>>1,l&&(Q[0]=Q[0]^225<<24)}return F},_ghash:function(e,U,t){var n,F,Q=t.length;for(n=U.slice(0),F=0;F<Q;F+=4)n[0]^=4294967295&t[F],n[1]^=4294967295&t[F+1],n[2]^=4294967295&t[F+2],n[3]^=4294967295&t[F+3],n=ac.mode.gcm._galoisMultiply(n,e);return n},_ctrMode:function(e,U,t,n,F,Q){var l,i,d,r,a,o,B,s,R,c,V,h,u=ac.bitArray;for(R=t.length,c=u.bitLength(t),V=u.bitLength(n),h=u.bitLength(F),l=U.encrypt([0,0,0,0]),96===h?(i=F.slice(0),i=u.concat(i,[1])):(i=ac.mode.gcm._ghash(l,[0,0,0,0],F),i=ac.mode.gcm._ghash(l,i,[0,0,Math.floor(h/4294967296),4294967295&h])),d=ac.mode.gcm._ghash(l,[0,0,0,0],n),o=i.slice(0),B=d.slice(0),e||(B=ac.mode.gcm._ghash(l,d,t)),a=0;a<R;a+=4)o[3]++,r=U.encrypt(o),t[a]^=r[0],t[a+1]^=r[1],t[a+2]^=r[2],t[a+3]^=r[3];return t=u.clamp(t,c),e&&(B=ac.mode.gcm._ghash(l,d,t)),s=[Math.floor(V/4294967296),4294967295&V,Math.floor(c/4294967296),4294967295&c],B=ac.mode.gcm._ghash(l,B,s),r=U.encrypt(i),B[0]^=r[0],B[1]^=r[1],B[2]^=r[2],B[3]^=r[3],{tag:u.bitSlice(B,0,Q),data:t}}};var oc=_,Bc=function(){var e=oc(this),U="";return e.global&&(U+="g"),e.ignoreCase&&(U+="i"),e.multiline&&(U+="m"),e.dotAll&&(U+="s"),e.unicode&&(U+="u"),e.sticky&&(U+="y"),U},sc={},Rc=l;function cc(e,U){return RegExp(e,U)}sc.UNSUPPORTED_Y=Rc((function(){var e=cc("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),sc.BROKEN_CARET=Rc((function(){var e=cc("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var Vc,hc,uc=Bc,Zc=sc,Sc=Ze,Jc=RegExp.prototype.exec,pc=Sc("native-string-replace",String.prototype.replace),Wc=Jc,mc=(Vc=/a/,hc=/b*/g,Jc.call(Vc,"a"),Jc.call(hc,"a"),0!==Vc.lastIndex||0!==hc.lastIndex),Ec=Zc.UNSUPPORTED_Y||Zc.BROKEN_CARET,kc=void 0!==/()??/.exec("")[1];(mc||kc||Ec)&&(Wc=function(e){var U,t,n,F,Q=this,l=Ec&&Q.sticky,i=uc.call(Q),d=Q.source,r=0,a=e;return l&&(-1===(i=i.replace("y","")).indexOf("g")&&(i+="g"),a=String(e).slice(Q.lastIndex),Q.lastIndex>0&&(!Q.multiline||Q.multiline&&"\n"!==e[Q.lastIndex-1])&&(d="(?: "+d+")",a=" "+a,r++),t=new RegExp("^(?:"+d+")",i)),kc&&(t=new RegExp("^"+d+"$(?!\\s)",i)),mc&&(U=Q.lastIndex),n=Jc.call(l?t:Q,a),l?n?(n.input=n.input.slice(r),n[0]=n[0].slice(r),n.index=Q.lastIndex,Q.lastIndex+=n[0].length):Q.lastIndex=0:mc&&n&&(Q.lastIndex=Q.global?n.index+n[0].length:U),kc&&n&&n.length>1&&pc.call(n[0],t,(function(){for(F=1;F<arguments.length-2;F++)void 0===arguments[F]&&(n[F]=void 0)})),n});var yc=Wc;PU({target:"RegExp",proto:!0,forced:/./.exec!==yc},{exec:yc});var Nc=Pe,bc=yc,fc=l,vc=Tt,Tc=ee,Cc=vc("species"),Dc=RegExp.prototype,gc=!fc((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),Xc="$0"==="a".replace(/./,"$0"),xc=vc("replace"),Lc=!!/./[xc]&&""===/./[xc]("a","$0"),Gc=!fc((function(){var e=/(?:)/,U=e.exec;e.exec=function(){return U.apply(this,arguments)};var t="ab".split(e);return 2!==t.length||"a"!==t[0]||"b"!==t[1]})),Ic=function(e,U,t,n){var F=vc(e),Q=!fc((function(){var U={};return U[F]=function(){return 7},7!=""[e](U)})),l=Q&&!fc((function(){var U=!1,t=/a/;return"split"===e&&((t={}).constructor={},t.constructor[Cc]=function(){return t},t.flags="",t[F]=/./[F]),t.exec=function(){return U=!0,null},t[F](""),!U}));if(!Q||!l||"replace"===e&&(!gc||!Xc||Lc)||"split"===e&&!Gc){var i=/./[F],d=t(F,""[e],(function(e,U,t,n,F){var l=U.exec;return l===bc||l===Dc.exec?Q&&!F?{done:!0,value:i.call(U,t,n)}:{done:!0,value:e.call(t,U,n)}:{done:!1}}),{REPLACE_KEEPS_$0:Xc,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:Lc}),r=d[0],a=d[1];Nc(String.prototype,e,r),Nc(Dc,F,2==U?function(e,U){return a.call(e,this,U)}:function(e){return a.call(e,this)})}n&&Tc(Dc[F],"sham",!0)},Mc=IQ.charAt,Yc=function(e,U,t){return U+(t?Mc(e,U).length:1)},wc=k,Kc=Math.floor,jc="".replace,_c=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,Hc=/\$([$&'`]|\d{1,2})/g,zc=R,Oc=yc,Pc=function(e,U){var t=e.exec;if("function"==typeof t){var n=t.call(e,U);if("object"!=typeof n)throw TypeError("RegExp exec method returned something other than an Object or null");return n}if("RegExp"!==zc(e))throw TypeError("RegExp#exec called on incompatible receiver");return Oc.call(e,U)},Ac=Ic,qc=_,$c=dU,eV=QU,UV=u,tV=Yc,nV=function(e,U,t,n,F,Q){var l=t+e.length,i=n.length,d=Hc;return void 0!==F&&(F=wc(F),d=_c),jc.call(Q,d,(function(Q,d){var r;switch(d.charAt(0)){case"$":return"$";case"&":return e;case"`":return U.slice(0,t);case"'":return U.slice(l);case"<":r=F[d.slice(1,-1)];break;default:var a=+d;if(0===a)return Q;if(a>i){var o=Kc(a/10);return 0===o?Q:o<=i?void 0===n[o-1]?d.charAt(1):n[o-1]+d.charAt(1):Q}r=n[a-1]}return void 0===r?"":r}))},FV=Pc,QV=Math.max,lV=Math.min;Ac("replace",2,(function(e,U,t,n){var F=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,Q=n.REPLACE_KEEPS_$0,l=F?"$":"$0";return[function(t,n){var F=UV(this),Q=null==t?void 0:t[e];return void 0!==Q?Q.call(t,F,n):U.call(String(F),t,n)},function(e,n){if(!F&&Q||"string"==typeof n&&-1===n.indexOf(l)){var i=t(U,e,this,n);if(i.done)return i.value}var d=qc(e),r=String(this),a="function"==typeof n;a||(n=String(n));var o=d.global;if(o){var B=d.unicode;d.lastIndex=0}for(var s=[];;){var R=FV(d,r);if(null===R)break;if(s.push(R),!o)break;""===String(R[0])&&(d.lastIndex=tV(r,$c(d.lastIndex),B))}for(var c,V="",h=0,u=0;u<s.length;u++){R=s[u];for(var Z=String(R[0]),S=QV(lV(eV(R.index),r.length),0),J=[],p=1;p<R.length;p++)J.push(void 0===(c=R[p])?c:String(c));var W=R.groups;if(a){var m=[Z].concat(J,S,r);void 0!==W&&m.push(W);var E=String(n.apply(void 0,m))}else E=nV(Z,r,S,J,W,n);S>=h&&(V+=r.slice(h,S)+E,h=S+Z.length)}return V+r.slice(h)}]}));var iV=Pe,dV=_,rV=l,aV=Bc,oV="toString",BV=RegExp.prototype,sV=BV[oV],RV=rV((function(){return"/a/b"!=sV.call({source:"a",flags:"b"})})),cV=sV.name!=oV;(RV||cV)&&iV(RegExp.prototype,oV,(function(){var e=dV(this),U=String(e.source),t=e.flags;return"/"+U+"/"+String(void 0===t&&e instanceof RegExp&&!("flags"in BV)?aV.call(e):t)}),{unsafe:!0});var VV=PU,hV=p,uV=Ri,ZV=BU,SV=dU,JV=J,pV=xi,WV=Tt,mV=fi("slice"),EV=WV("species"),kV=[].slice,yV=Math.max;VV({target:"Array",proto:!0,forced:!mV},{slice:function(e,U){var t,n,F,Q=JV(this),l=SV(Q.length),i=ZV(e,l),d=ZV(void 0===U?l:U,l);if(uV(Q)&&("function"!=typeof(t=Q.constructor)||t!==Array&&!uV(t.prototype)?hV(t)&&null===(t=t[EV])&&(t=void 0):t=void 0,t===Array||void 0===t))return kV.call(Q,i,d);for(n=new(void 0===t?Array:t)(yV(d-i,0)),F=0;i<d;i++,F++)i in Q&&pV(n,F,Q[i]);return n.length=F,n}});var NV=JQ,bV="ArrayBuffer",fV=$o[bV];PU({global:!0,forced:F[bV]!==fV},{ArrayBuffer:fV}),NV(bV);var vV=u,TV="[\t\n\v\f\r \u2028\u2029\ufeff]",CV=RegExp("^"+TV+TV+"*"),DV=RegExp(TV+TV+"*$"),gV=function(e){return function(U){var t=String(vV(U));return 1&e&&(t=t.replace(CV,"")),2&e&&(t=t.replace(DV,"")),t}},XV={start:gV(1),end:gV(2),trim:gV(3)},xV=i,LV=F,GV=YU,IV=Pe,MV=b,YV=R,wV=tQ,KV=m,jV=l,_V=$t,HV=tU.f,zV=Q.f,OV=K.f,PV=XV.trim,AV="Number",qV=LV[AV],$V=qV.prototype,eh=YV(_V($V))==AV,Uh=function(e){var U,t,n,F,Q,l,i,d,r=KV(e,!1);if("string"==typeof r&&r.length>2)if(43===(U=(r=PV(r)).charCodeAt(0))||45===U){if(88===(t=r.charCodeAt(2))||120===t)return NaN}else if(48===U){switch(r.charCodeAt(1)){case 66:case 98:n=2,F=49;break;case 79:case 111:n=8,F=55;break;default:return+r}for(l=(Q=r.slice(2)).length,i=0;i<l;i++)if((d=Q.charCodeAt(i))<48||d>F)return NaN;return parseInt(Q,n)}return+r};if(GV(AV,!qV(" 0o1")||!qV("0b1")||qV("+0x1"))){for(var th,nh=function(e){var U=arguments.length<1?0:e,t=this;return t instanceof nh&&(eh?jV((function(){$V.valueOf.call(t)})):YV(t)!=AV)?wV(new qV(Uh(U)),t,nh):Uh(U)},Fh=xV?HV(qV):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),Qh=0;Fh.length>Qh;Qh++)MV(qV,th=Fh[Qh])&&!MV(nh,th)&&OV(nh,th,zV(qV,th));nh.prototype=$V,$V.constructor=nh,IV(LV,AV,nh)}var lh=_,ih=dU,dh=u,rh=Yc,ah=Pc;Ic("match",1,(function(e,U,t){return[function(U){var t=dh(this),n=null==U?void 0:U[e];return void 0!==n?n.call(U,t):new RegExp(U)[e](String(t))},function(e){var n=t(U,e,this);if(n.done)return n.value;var F=lh(e),Q=String(this);if(!F.global)return ah(F,Q);var l=F.unicode;F.lastIndex=0;for(var i,d=[],r=0;null!==(i=ah(F,Q));){var a=String(i[0]);d[r]=a,""===a&&(F.lastIndex=rh(Q,ih(F.lastIndex),l)),r++}return 0===r?null:d}]}));var oh,Bh,sh,Rh,ch,Vh,hh={str2hex:function(e){if(""===e)return"";for(var U=[],t=0;t<e.length;t++)U.push(e.charCodeAt(t));return U},Base64ToHex:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(U){for(var n=[],F=0;F<t.length;F++)n.push(t.charCodeAt(F));return new Uint8Array(n).buffer}for(var Q="",l=0;l<t.length;l++)Q+="0".concat(t.charCodeAt(l).toString(16)).substr(-2);return Q},checkUnionInfoExpired:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;if(0===U.indexOf(e)){var n=parseInt(Zh(U.slice(e.length))),F=(new Date).getTime()-n;if(F>0&&F<=1e3*t)return!0;console.error("UnionInfo timestamp expire!!!")}else console.error("unionID and UnionInfo not match!!!");return!1},getUnionInfo:function(){return"".concat(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").concat(uh((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var U=new ArrayBuffer(e.length),t=new Uint8Array(U),n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return U},ArrayBufferToString:function(e){var U=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var t,n=0;n<e.length;n++)t=e[n],U.push(String.fromCharCode(t));return U.join("")},isBase64:function(e){return/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/.test(e)},fromHex:function(e){for(var U=new Uint8Array(e.length/2),t=0;t<e.length;t+=2)U[t/2]=window.parseInt(e.substr(t,2),16);return U},fromCharCode:function(e){for(var U="",t=0;t<e.length;t+=16e3){var n=e.subarray(t,t+16e3);U+=String.fromCharCode.apply(null,n)}return U},toBase64:function(e,U){var t=hh.fromCharCode(e);U=void 0===U||U;var n=window.btoa(t).replace(/\+/g,"-").replace(/\//g,"_");return U?n:n.replace(/=*$/,"")},toUTF8:function(e){for(var U=encodeURIComponent(e),t=unescape(U),n=new Uint8Array(t.length),F=0;F<t.length;++F)n[F]=t.charCodeAt(F);return n.buffer}},uh=(oh="vodTimestampSalt",Bh=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},sh=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},Rh=function(e){return Bh(oh).reduce((function(e,U){return e^U}),e)},function(e){return e.split("").map(Bh).map(Rh).map(sh).join("")}),Zh=(ch="vodTimestampSalt",Vh=function(e){return(U=ch,U.split("").map((function(e){return e.charCodeAt(0)}))).reduce((function(e,U){return e^U}),e);var U},function(e){return e.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})).map(Vh).map((function(e){return String.fromCharCode(e)})).join("")}),Sh=hh;function Jh(e,U){return ph.apply(this,arguments)}function ph(){return(ph=et(AU().mark((function e(U,t){var n,F,Q,l,i;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.iv,F=t.tagLength,Q=t.data,l=null,U=Sh.StringToArrayBuffer(U),Q=Sh.Base64ToHex(Q,!0),e.prev=4,e.next=7,crypto.subtle.importKey("raw",U,"AES-GCM",!0,["encrypt","decrypt"]);case 7:i=e.sent,e.next=13;break;case 10:throw e.prev=10,e.t0=e.catch(4),new Error("importKey: ".concat((null===e.t0||void 0===e.t0?void 0:e.t0.message)||e.t0));case 13:return e.prev=13,e.next=16,crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(n),tagLength:F},i,Q);case 16:l=e.sent,e.next=30;break;case 19:if(e.prev=19,e.t1=e.catch(13),"OperationError"!==String(e.t1)){e.next=25;break}throw new Error("Wrong Password.");case 25:if("InvalidAccessError"!==String(e.t1)){e.next=29;break}throw new Error("Invalid Key");case 29:throw e.t1;case 30:return e.abrupt("return",new TextDecoder("utf-8").decode(l));case 31:case"end":return e.stop()}}),e,null,[[4,10],[13,19]])})))).apply(this,arguments)}function Wh(e,U){return mh.apply(this,arguments)}function mh(){return(mh=et(AU().mark((function e(U,t){var n,F,Q,l,i,d,r;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.iv,F=t.tagLength,Q=t.data,l=btoa(Sh.ArrayBufferToString(n)),i=ac.codec.base64.toBits(l),d=ac.codec.utf8String.toBits(U),r=new ac.cipher.aes(d),e.abrupt("return",ac.codec.utf8String.fromBits(ac.mode.gcm.decrypt(r,ac.codec.base64.toBits(Q),i,[],F)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Eh,kh={webCryptoDecrypt:Jh,decrypt:(Eh=et(AU().mark((function e(U,t){var n,F;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof t&&(t=JSON.parse(t)),!t.enableSoftwareAES&&null!==(n=crypto)&&void 0!==n&&n.subtle){e.next=7;break}return e.next=4,Wh(U,t);case 4:F=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,Jh(U,t);case 10:F=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,Wh(U,t);case 17:F=e.sent;case 18:return e.abrupt("return",F);case 19:case"end":return e.stop()}}),e,null,[[7,13]])}))),function(e,U){return Eh.apply(this,arguments)})},yh={exports:{}};yh.exports=function(e){var U=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function t(e,U){var t=e[0],n=e[1],F=e[2],Q=e[3];n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&F|~n&Q)+U[0]-680876936|0)<<7|t>>>25)+n|0)&n|~t&F)+U[1]-389564586|0)<<12|Q>>>20)+t|0)&t|~Q&n)+U[2]+606105819|0)<<17|F>>>15)+Q|0)&Q|~F&t)+U[3]-1044525330|0)<<22|n>>>10)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&F|~n&Q)+U[4]-176418897|0)<<7|t>>>25)+n|0)&n|~t&F)+U[5]+1200080426|0)<<12|Q>>>20)+t|0)&t|~Q&n)+U[6]-1473231341|0)<<17|F>>>15)+Q|0)&Q|~F&t)+U[7]-45705983|0)<<22|n>>>10)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&F|~n&Q)+U[8]+1770035416|0)<<7|t>>>25)+n|0)&n|~t&F)+U[9]-1958414417|0)<<12|Q>>>20)+t|0)&t|~Q&n)+U[10]-42063|0)<<17|F>>>15)+Q|0)&Q|~F&t)+U[11]-1990404162|0)<<22|n>>>10)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&F|~n&Q)+U[12]+1804603682|0)<<7|t>>>25)+n|0)&n|~t&F)+U[13]-40341101|0)<<12|Q>>>20)+t|0)&t|~Q&n)+U[14]-1502002290|0)<<17|F>>>15)+Q|0)&Q|~F&t)+U[15]+1236535329|0)<<22|n>>>10)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&Q|F&~Q)+U[1]-165796510|0)<<5|t>>>27)+n|0)&F|n&~F)+U[6]-1069501632|0)<<9|Q>>>23)+t|0)&n|t&~n)+U[11]+643717713|0)<<14|F>>>18)+Q|0)&t|Q&~t)+U[0]-373897302|0)<<20|n>>>12)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&Q|F&~Q)+U[5]-701558691|0)<<5|t>>>27)+n|0)&F|n&~F)+U[10]+38016083|0)<<9|Q>>>23)+t|0)&n|t&~n)+U[15]-660478335|0)<<14|F>>>18)+Q|0)&t|Q&~t)+U[4]-405537848|0)<<20|n>>>12)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&Q|F&~Q)+U[9]+568446438|0)<<5|t>>>27)+n|0)&F|n&~F)+U[14]-1019803690|0)<<9|Q>>>23)+t|0)&n|t&~n)+U[3]-187363961|0)<<14|F>>>18)+Q|0)&t|Q&~t)+U[8]+1163531501|0)<<20|n>>>12)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n&Q|F&~Q)+U[13]-1444681467|0)<<5|t>>>27)+n|0)&F|n&~F)+U[2]-51403784|0)<<9|Q>>>23)+t|0)&n|t&~n)+U[7]+1735328473|0)<<14|F>>>18)+Q|0)&t|Q&~t)+U[12]-1926607734|0)<<20|n>>>12)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n^F^Q)+U[5]-378558|0)<<4|t>>>28)+n|0)^n^F)+U[8]-2022574463|0)<<11|Q>>>21)+t|0)^t^n)+U[11]+1839030562|0)<<16|F>>>16)+Q|0)^Q^t)+U[14]-35309556|0)<<23|n>>>9)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n^F^Q)+U[1]-1530992060|0)<<4|t>>>28)+n|0)^n^F)+U[4]+1272893353|0)<<11|Q>>>21)+t|0)^t^n)+U[7]-155497632|0)<<16|F>>>16)+Q|0)^Q^t)+U[10]-1094730640|0)<<23|n>>>9)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n^F^Q)+U[13]+681279174|0)<<4|t>>>28)+n|0)^n^F)+U[0]-358537222|0)<<11|Q>>>21)+t|0)^t^n)+U[3]-722521979|0)<<16|F>>>16)+Q|0)^Q^t)+U[6]+76029189|0)<<23|n>>>9)+F|0,n=((n+=((F=((F+=((Q=((Q+=((t=((t+=(n^F^Q)+U[9]-640364487|0)<<4|t>>>28)+n|0)^n^F)+U[12]-421815835|0)<<11|Q>>>21)+t|0)^t^n)+U[15]+530742520|0)<<16|F>>>16)+Q|0)^Q^t)+U[2]-995338651|0)<<23|n>>>9)+F|0,n=((n+=((Q=((Q+=(n^((t=((t+=(F^(n|~Q))+U[0]-198630844|0)<<6|t>>>26)+n|0)|~F))+U[7]+1126891415|0)<<10|Q>>>22)+t|0)^((F=((F+=(t^(Q|~n))+U[14]-1416354905|0)<<15|F>>>17)+Q|0)|~t))+U[5]-57434055|0)<<21|n>>>11)+F|0,n=((n+=((Q=((Q+=(n^((t=((t+=(F^(n|~Q))+U[12]+1700485571|0)<<6|t>>>26)+n|0)|~F))+U[3]-1894986606|0)<<10|Q>>>22)+t|0)^((F=((F+=(t^(Q|~n))+U[10]-1051523|0)<<15|F>>>17)+Q|0)|~t))+U[1]-2054922799|0)<<21|n>>>11)+F|0,n=((n+=((Q=((Q+=(n^((t=((t+=(F^(n|~Q))+U[8]+1873313359|0)<<6|t>>>26)+n|0)|~F))+U[15]-30611744|0)<<10|Q>>>22)+t|0)^((F=((F+=(t^(Q|~n))+U[6]-1560198380|0)<<15|F>>>17)+Q|0)|~t))+U[13]+1309151649|0)<<21|n>>>11)+F|0,n=((n+=((Q=((Q+=(n^((t=((t+=(F^(n|~Q))+U[4]-145523070|0)<<6|t>>>26)+n|0)|~F))+U[11]-1120210379|0)<<10|Q>>>22)+t|0)^((F=((F+=(t^(Q|~n))+U[2]+718787259|0)<<15|F>>>17)+Q|0)|~t))+U[9]-343485551|0)<<21|n>>>11)+F|0,e[0]=t+e[0]|0,e[1]=n+e[1]|0,e[2]=F+e[2]|0,e[3]=Q+e[3]|0}function n(e){var U,t=[];for(U=0;U<64;U+=4)t[U>>2]=e.charCodeAt(U)+(e.charCodeAt(U+1)<<8)+(e.charCodeAt(U+2)<<16)+(e.charCodeAt(U+3)<<24);return t}function F(e){var U,t=[];for(U=0;U<64;U+=4)t[U>>2]=e[U]+(e[U+1]<<8)+(e[U+2]<<16)+(e[U+3]<<24);return t}function Q(e){var U,F,Q,l,i,d,r=e.length,a=[1732584193,-271733879,-1732584194,271733878];for(U=64;U<=r;U+=64)t(a,n(e.substring(U-64,U)));for(F=(e=e.substring(U-64)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],U=0;U<F;U+=1)Q[U>>2]|=e.charCodeAt(U)<<(U%4<<3);if(Q[U>>2]|=128<<(U%4<<3),U>55)for(t(a,Q),U=0;U<16;U+=1)Q[U]=0;return l=(l=8*r).toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(l[2],16),d=parseInt(l[1],16)||0,Q[14]=i,Q[15]=d,t(a,Q),a}function l(e){var U,n,Q,l,i,d,r=e.length,a=[1732584193,-271733879,-1732584194,271733878];for(U=64;U<=r;U+=64)t(a,F(e.subarray(U-64,U)));for(n=(e=U-64<r?e.subarray(U-64):new Uint8Array(0)).length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],U=0;U<n;U+=1)Q[U>>2]|=e[U]<<(U%4<<3);if(Q[U>>2]|=128<<(U%4<<3),U>55)for(t(a,Q),U=0;U<16;U+=1)Q[U]=0;return l=(l=8*r).toString(16).match(/(.*?)(.{0,8})$/),i=parseInt(l[2],16),d=parseInt(l[1],16)||0,Q[14]=i,Q[15]=d,t(a,Q),a}function i(e){var t,n="";for(t=0;t<4;t+=1)n+=U[e>>8*t+4&15]+U[e>>8*t&15];return n}function d(e){var U;for(U=0;U<e.length;U+=1)e[U]=i(e[U]);return e.join("")}function r(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function a(e,U){var t,n=e.length,F=new ArrayBuffer(n),Q=new Uint8Array(F);for(t=0;t<n;t+=1)Q[t]=e.charCodeAt(t);return U?Q:F}function o(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function B(e,U,t){var n=new Uint8Array(e.byteLength+U.byteLength);return n.set(new Uint8Array(e)),n.set(new Uint8Array(U),e.byteLength),t?n:n.buffer}function s(e){var U,t=[],n=e.length;for(U=0;U<n-1;U+=2)t.push(parseInt(e.substr(U,2),16));return String.fromCharCode.apply(String,t)}function R(){this.reset()}return d(Q("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function U(e,U){return(e=0|e||0)<0?Math.max(e+U,0):Math.min(e,U)}ArrayBuffer.prototype.slice=function(t,n){var F,Q,l,i,d=this.byteLength,r=U(t,d),a=d;return n!==e&&(a=U(n,d)),r>a?new ArrayBuffer(0):(F=a-r,Q=new ArrayBuffer(F),l=new Uint8Array(Q),i=new Uint8Array(this,r,F),l.set(i),Q)}}(),R.prototype.append=function(e){return this.appendBinary(r(e)),this},R.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var U,F=this._buff.length;for(U=64;U<=F;U+=64)t(this._hash,n(this._buff.substring(U-64,U)));return this._buff=this._buff.substring(U-64),this},R.prototype.end=function(e){var U,t,n=this._buff,F=n.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(U=0;U<F;U+=1)Q[U>>2]|=n.charCodeAt(U)<<(U%4<<3);return this._finish(Q,F),t=d(this._hash),e&&(t=s(t)),this.reset(),t},R.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},R.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},R.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},R.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},R.prototype._finish=function(e,U){var n,F,Q,l=U;if(e[l>>2]|=128<<(l%4<<3),l>55)for(t(this._hash,e),l=0;l<16;l+=1)e[l]=0;n=(n=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),F=parseInt(n[2],16),Q=parseInt(n[1],16)||0,e[14]=F,e[15]=Q,t(this._hash,e)},R.hash=function(e,U){return R.hashBinary(r(e),U)},R.hashBinary=function(e,U){var t=d(Q(e));return U?s(t):t},R.ArrayBuffer=function(){this.reset()},R.ArrayBuffer.prototype.append=function(e){var U,n=B(this._buff.buffer,e,!0),Q=n.length;for(this._length+=e.byteLength,U=64;U<=Q;U+=64)t(this._hash,F(n.subarray(U-64,U)));return this._buff=U-64<Q?new Uint8Array(n.buffer.slice(U-64)):new Uint8Array(0),this},R.ArrayBuffer.prototype.end=function(e){var U,t,n=this._buff,F=n.length,Q=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(U=0;U<F;U+=1)Q[U>>2]|=n[U]<<(U%4<<3);return this._finish(Q,F),t=d(this._hash),e&&(t=s(t)),this.reset(),t},R.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},R.ArrayBuffer.prototype.getState=function(){var e=R.prototype.getState.call(this);return e.buff=o(e.buff),e},R.ArrayBuffer.prototype.setState=function(e){return e.buff=a(e.buff,!0),R.prototype.setState.call(this,e)},R.ArrayBuffer.prototype.destroy=R.prototype.destroy,R.ArrayBuffer.prototype._finish=R.prototype._finish,R.ArrayBuffer.hash=function(e,U){var t=d(l(new Uint8Array(e)));return U?s(t):t},R}();var Nh=t(yh.exports),bh=new Uint8Array([91,104,69,75,156,171,238,71,202,4,244,5]).buffer;function fh(e,U){return vh.apply(this,arguments)}function vh(){return(vh=et(AU().mark((function e(U,t){var n,F;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Nh.hash(t),e.next=3,kh.decrypt(n,{data:U,iv:bh,tagLength:128});case 3:return F=e.sent,e.abrupt("return",F);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Th=ki.forEach,Ch=js("forEach")?[].forEach:function(e){return Th(this,e,arguments.length>1?arguments[1]:void 0)},Dh=F,gh=ei,Xh=Ch,xh=ee;for(var Lh in gh){var Gh=Dh[Lh],Ih=Gh&&Gh.prototype;if(Ih&&Ih.forEach!==Xh)try{xh(Ih,"forEach",Xh)}catch(mu){Ih.forEach=Xh}}ts("Uint16",(function(e){return function(U,t,n){return e(this,U,t,n)}}));var Mh={exports:{}};!function(e){var U=Object.prototype.hasOwnProperty,t="~";function n(){}function F(e,U,t){this.fn=e,this.context=U,this.once=t||!1}function Q(e,U,n,Q,l){if("function"!=typeof n)throw new TypeError("The listener must be a function");var i=new F(n,Q||e,l),d=t?t+U:U;return e._events[d]?e._events[d].fn?e._events[d]=[e._events[d],i]:e._events[d].push(i):(e._events[d]=i,e._eventsCount++),e}function l(e,U){0==--e._eventsCount?e._events=new n:delete e._events[U]}function i(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(t=!1)),i.prototype.eventNames=function(){var e,n,F=[];if(0===this._eventsCount)return F;for(n in e=this._events)U.call(e,n)&&F.push(t?n.slice(1):n);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},i.prototype.listeners=function(e){var U=t?t+e:e,n=this._events[U];if(!n)return[];if(n.fn)return[n.fn];for(var F=0,Q=n.length,l=new Array(Q);F<Q;F++)l[F]=n[F].fn;return l},i.prototype.listenerCount=function(e){var U=t?t+e:e,n=this._events[U];return n?n.fn?1:n.length:0},i.prototype.emit=function(e,U,n,F,Q,l){var i=t?t+e:e;if(!this._events[i])return!1;var d,r,a=this._events[i],o=arguments.length;if(a.fn){switch(a.once&&this.removeListener(e,a.fn,void 0,!0),o){case 1:return a.fn.call(a.context),!0;case 2:return a.fn.call(a.context,U),!0;case 3:return a.fn.call(a.context,U,n),!0;case 4:return a.fn.call(a.context,U,n,F),!0;case 5:return a.fn.call(a.context,U,n,F,Q),!0;case 6:return a.fn.call(a.context,U,n,F,Q,l),!0}for(r=1,d=new Array(o-1);r<o;r++)d[r-1]=arguments[r];a.fn.apply(a.context,d)}else{var B,s=a.length;for(r=0;r<s;r++)switch(a[r].once&&this.removeListener(e,a[r].fn,void 0,!0),o){case 1:a[r].fn.call(a[r].context);break;case 2:a[r].fn.call(a[r].context,U);break;case 3:a[r].fn.call(a[r].context,U,n);break;case 4:a[r].fn.call(a[r].context,U,n,F);break;default:if(!d)for(B=1,d=new Array(o-1);B<o;B++)d[B-1]=arguments[B];a[r].fn.apply(a[r].context,d)}}return!0},i.prototype.on=function(e,U,t){return Q(this,e,U,t,!1)},i.prototype.once=function(e,U,t){return Q(this,e,U,t,!0)},i.prototype.removeListener=function(e,U,n,F){var Q=t?t+e:e;if(!this._events[Q])return this;if(!U)return l(this,Q),this;var i=this._events[Q];if(i.fn)i.fn!==U||F&&!i.once||n&&i.context!==n||l(this,Q);else{for(var d=0,r=[],a=i.length;d<a;d++)(i[d].fn!==U||F&&!i[d].once||n&&i[d].context!==n)&&r.push(i[d]);r.length?this._events[Q]=1===r.length?r[0]:r:l(this,Q)}return this},i.prototype.removeAllListeners=function(e){var U;return e?(U=t?t+e:e,this._events[U]&&l(this,U)):(this._events=new n,this._eventsCount=0),this},i.prototype.off=i.prototype.removeListener,i.prototype.addListener=i.prototype.on,i.prefixed=t,i.EventEmitter=i,e.exports=i}(Mh);var Yh=t(Mh.exports),wh="kid",Kh={ERROR:"error",ENCRYPTED:"encrypted",CDM_LICENSE_SUCCESS:"CDM_LICENSE_SUCCESS",CDM_LICENSE_ERROR:"CDM_LICENSE_ERROR"},jh=function(e){Qt(t,e);var U=rt(t);function t(e){var n;return Ut(this,t),Ft(dt(n=U.call(this)),"encryptHandle",(function(e){var U,t,F,Q=dt(n).video,l=dt(n);"org.w3.clearkey"===n.KEYSYSTEM_TYPE?(U="keyids",t=JSON.stringify({kids:["0123456789abcdef0123456789abcdef"]}),F=new Uint8Array(Sh.toUTF8(t))):"com.widevine.alpha"===n.KEYSYSTEM_TYPE?(U="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,0,67,112,115,115,104,0,0,0,0,237,239,139,169,121,214,74,206,163,200,39,220,213,29,33,237,0,0,0,35,8,1,18,16,51,51,51,51,51,51,51,51,51,51,51,51,0,0,0,0,26,10,105,110,116,101,114,116,114,117,115,116,34,1,42])):"com.microsoft.playready"===n.KEYSYSTEM_TYPE&&(U="cenc",F=e&&new Uint8Array(e.initData)||new Uint8Array([0,0,2,38,112,115,115,104,0,0,0,0,154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149,0,0,2,6,6,2,0,0,1,0,1,0,252,1,60,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,32,0,120,0,109,0,108,0,110,0,115,0,61,0,34,0,104,0,116,0,116,0,112,0,58,0,47,0,47,0,115,0,99,0,104,0,101,0,109,0,97,0,115,0,46,0,109,0,105,0,99,0,114,0,111,0,115,0,111,0,102,0,116,0,46,0,99,0,111,0,109,0,47,0,68,0,82,0,77,0,47,0,50,0,48,0,48,0,55,0,47,0,48,0,51,0,47,0,80,0,108,0,97,0,121,0,82,0,101,0,97,0,100,0,121,0,72,0,101,0,97,0,100,0,101,0,114,0,34,0,32,0,118,0,101,0,114,0,115,0,105,0,111,0,110,0,61,0,34,0,52,0,46,0,48,0,46,0,48,0,46,0,48,0,34,0,62,0,60,0,68,0,65,0,84,0,65,0,62,0,60,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,49,0,54,0,60,0,47,0,75,0,69,0,89,0,76,0,69,0,78,0,62,0,60,0,65,0,76,0,71,0,73,0,68,0,62,0,65,0,69,0,83,0,67,0,84,0,82,0,60,0,47,0,65,0,76,0,71,0,73,0,68,0,62,0,60,0,47,0,80,0,82,0,79,0,84,0,69,0,67,0,84,0,73,0,78,0,70,0,79,0,62,0,60,0,75,0,73,0,68,0,62,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,77,0,122,0,65,0,65,0,65,0,65,0,65,0,65,0,61,0,61,0,60,0,47,0,75,0,73,0,68,0,62,0,60,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,65,0,49,0,53,0,66,0,89,0,87,0,68,0,52,0,113,0,115,0,73,0,61,0,60,0,47,0,67,0,72,0,69,0,67,0,75,0,83,0,85,0,77,0,62,0,60,0,47,0,68,0,65,0,84,0,65,0,62,0,60,0,47,0,87,0,82,0,77,0,72,0,69,0,65,0,68,0,69,0,82,0,62,0])),l.EnsureMediaKeysCreated(Q,l.KEYSYSTEM_TYPE,l.options).then((function(){var e=Q.mediaKeys.createSession();return Q.sessions.push(e),"org.w3.clearkey"===l.KEYSYSTEM_TYPE?e.addEventListener("message",l.updateSessionFunc(l.keys)):("com.widevine.alpha"===l.KEYSYSTEM_TYPE||"com.microsoft.playready"===l.KEYSYSTEM_TYPE)&&e.addEventListener("message",l.licenseRequestReady.bind(l)),e.generateRequest(U,F.buffer)}),(function(){return l.bail(" failed to ensure MediaKeys on HTMLMediaElement")})).then((function(){}),(function(){return l.bail(" Failed to generate request.")}))})),n.KEYSYSTEM_TYPE="",n.keys={},n.updateDrm(e),n.options=[],n.ensurePromise=void 0,n.kid=wh,n.video=null,n.licenseStep=0,n.on(Kh.ENCRYPTED,n.encryptHandle),n}return nt(t,[{key:"updateDrm",value:function(e,U){null!=e&&e.clearKeys&&(this.KEYSYSTEM_TYPE="org.w3.clearkey",this.keys=e.clearKeys),null!=e&&e.clearKeys?this.KEYSYSTEM_TYPE="org.w3.clearkey":null!=e&&e.widevine?(this.KEYSYSTEM_TYPE="com.widevine.alpha",this.keys=e.widevine):null!=e&&e.playready&&(this.KEYSYSTEM_TYPE="com.microsoft.playready",this.keys=e.playready),U&&(this.kid=U)}},{key:"updateKid",value:function(e){this.kid===wh&&this.keys[this.kid]&&(this.keys[e]=this.keys[this.kid],delete this.keys[wh]),this.kid=e}},{key:"setOptions",value:function(){this.options=[{initDataTypes:["keyids","webm"],audioCapabilities:[{contentType:'audio/mp4; codecs="mp4a.40.2"'}],videoCapabilities:[{contentType:'video/mp4; codecs="avc1.42c01e"'},{contentType:'video/mp4; codecs="hev1.1.6.L120.90"'},{contentType:'video/webm; codecs="vp8"'}]}]}},{key:"bail",value:function(e){console.error("[EME]",e),this.emit(Kh.ERROR,e)}},{key:"updateSessionFunc",value:function(e){var U=this;return function(t){var n=[],F=[];Object.keys(e).forEach((function(U){var t=e[U],Q=Sh.fromHex(U),l=Sh.fromHex(t),i={kty:"oct",kid:Sh.toBase64(Q,!1),k:Sh.toBase64(l,!1)};n.push(i),F.push(i.kid)}));var Q={keys:n},l=JSON.stringify(Q);t.target.update(Sh.StringToArrayBuffer(l)).then((function(){}),(function(){return U.bail(" MediaKeySession update failed")}))}}},{key:"keysChange",value:function(){}},{key:"EnsureMediaKeysCreated",value:function(e,U,t){var n=this;return this.ensurePromise||(this.ensurePromise=navigator.requestMediaKeySystemAccess(U,t).then((function(e){return e.createMediaKeys()}),(function(){return n.bail(" Failed to request key system access.")})).then((function(U){return e.setMediaKeys(U)}),(function(){return n.bail(" failed to create MediaKeys object")}))),this.ensurePromise}},{key:"setupEME",value:function(e){this.video=e,e.sessions=[]}},{key:"parseServerResponse",value:function(e){var U="https://schemas.xmlsoap.org/soap/envelope/";if(window.DOMParser){var t=this.uintToString(e),n=(new window.DOMParser).parseFromString(t,"text/xml"),F=n?n.getElementsByTagNameNS(U,"Envelope")[0]:null,Q=F?F.getElementsByTagNameNS(U,"Body")[0]:null;if(Q&&Q.getElementsByTagNameNS(U,"Fault")[0])return null}return e}},{key:"uintToString",value:function(e){var U=String.fromCharCode.apply(null,new Uint8Array(e));return decodeURIComponent(escape(U))}},{key:"licenseRequestReady",value:function(e){var U=this,t=new XMLHttpRequest;t.open("GET",this.keys.serverURL),t.onreadystatechange=function(){if(4===t.readyState){var n=e.message,F=t.response;"com.microsoft.playready"===U.KEYSYSTEM_TYPE&&(F=JSON.parse(t.response),F="".concat(F.licenseAcquisitionUrl,"?ExpressPlayToken=").concat(F.token));var Q=new XMLHttpRequest;Q.keySession=e.target,Q.responseType="arraybuffer",Q.withCredentials=!1,Q.open("POST",String(F)),"com.microsoft.playready"===U.KEYSYSTEM_TYPE&&Q.setRequestHeader("Content-type","text/xml"),Q.onreadystatechange=function(){if(4===Q.readyState){if(200!==Q.status)return void U.emit(Kh.CDM_LICENSE_ERROR,{data:U.licenseStep});var e;U.emit(Kh.CDM_LICENSE_SUCCESS,{data:U.licenseStep}),U.licenseStep++,e="com.microsoft.playready"===U.KEYSYSTEM_TYPE?U.parseServerResponse(Q.response):new Uint8Array(Q.response),Q.keySession.update(e).catch(console.error.bind(console,"update() failed"))}},Q.send(U.getLicenseRequestFromMessage(n))}},t.send()}},{key:"getLicenseRequestFromMessage",value:function(e){if("com.microsoft.playready"===this.KEYSYSTEM_TYPE){var U=null,t=new DOMParser,n=new Uint16Array(e),F=String.fromCharCode.apply(null,n),Q=t.parseFromString(F,"application/xml");if(!Q.getElementsByTagName("PlayReadyKeyMessage")[0])return e;var l=Q.getElementsByTagName("Challenge")[0].childNodes[0].nodeValue;return l&&(U=window.atob(l)),U}return new Uint8Array(e)}},{key:"destroy",value:function(){this.removeAllListeners(),this.video=null}}]),t}(Yh),_h="volcvui",Hh=new Map,zh=function(e){Qt(n,e);var U,t=rt(n);function n(e){var U;return Ut(this,n),Ft(dt(U=t.call(this)),"EMEError",(function(e){U.emit(Kh.ERROR,e)})),Ft(dt(U),"encryptHandle",(function(){var e;null===(e=U.eme)||void 0===e||e.emit(Kh.ENCRYPTED)})),U.config=n.defaultConfig,U.updateConfig(e),U.config.isEncrypt=!!(U.config.kid||U.config.drm||U.config.secretKey||U.config.drmKeyToken||U.config.keyValue||U.config.drm),U.on(Kh.ENCRYPTED,U.encryptHandle),U}return nt(n,[{key:"updateConfig",value:function(e){var U=this;Object.keys(e).map((function(t){void 0!==e[t]&&null!==e[t]&&void 0!==U.config[t]&&(U.config[t]=e[t])})),this.log("set config",JSON.stringify(this.config))}},{key:"setupEME",value:function(e){this.eme&&this.eme.setupEME(e)}},{key:"setOptions",value:function(e){this.eme&&this.eme.setOptions(e)}},{key:"getSecretKeyByToken",value:function(e,U,t){var n=this,F=this.config,Q=e||F.kid,l=U||F.playDomain;l.indexOf("//")<0&&(l="//".concat(l));var i=t||F.drmKeyToken,d=Sh.isBase64(i)?window.atob(i):i,r="".concat(l,"?").concat(d,"&PlayAuthIds=").concat(Q,"&ssl=true");d.indexOf("DrmType=")<0&&(r+="&DrmType=".concat(F.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",F.vid,r);var a=new AR;return new Qc({type:"json",method:"GET",url:r}).then((function(e){var U,t,Q=e.response;if("string"==typeof Q&&(Q=JSON.parse(Q)),Q&&null!==(U=Q)&&void 0!==U&&U.Result&&(null===(t=Q.Result.PlayAuthInfoList)||void 0===t?void 0:t.length)>0){var l=Q.Result.PlayAuthInfoList[0].PlayAuthContent;n.log("getSecretKeyByToken end, vid,",F.vid,",res,",JSON.stringify(Q)),a.resolve(l)}})).catch((function(e){a.reject(e)})),a}},{key:"getLicense",value:function(){var e=this,U=this.config,t=U.vid,n=U.kid,F=U.getLicenseUrl,Q=new AR;return Promise.resolve().then(et(AU().mark((function U(){var l,i,d,r,a,o,B,s,R,c,V,h;return AU().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return l={method:"getLicense",success:!1},U.next=3,e._tryGetSecretKeyByToken(l,Q);case 3:if(i=e.config,d=i.secretKey,r=i.keyValue,!(n||d||r||e.config.drm)){U.next=39;break}if(U.prev=5,a=e.config.drm||r,!(d||n&&F)){U.next=11;break}return U.next=10,dc(t,d,n,F);case 10:a=U.sent;case 11:if(o=a&&a.clearKeys?a.clearKeys[n]:a,s=e.config,R=s.sessionId,c=s.useUnionInfoDRM,V=s.keyTokenExpiredDuration,h=Hh.get(R),!o&&(o=e.config.keyValue),!c||!Sh.checkUnionInfoExpired(h.unionID,h.unionInfo,V)){U.next=25;break}return U.next=19,fh(o,h.unionInfo);case 19:B=U.sent,U.next=23;break;case 22:throw new Error('The "transformUnionKey" should be provided in configuration as a function');case 23:U.next=26;break;case 25:B=o;case 26:a&&a.clearKeys&&(a.clearKeys[n]=B,l.drm=a),l.keyValue=B,l.success=!0,Q.resolve(l),U.next=37;break;case 32:U.prev=32,U.t0=U.catch(5),l.success=!1,l.error=U.t0,Q.reject(l);case 37:U.next=41;break;case 39:l.success=!0,Q.resolve(l);case 41:case"end":return U.stop()}}),U,null,[[5,32]])})))),Q}},{key:"_tryGetSecretKeyByToken",value:(U=et(AU().mark((function e(U,t){var n,F,Q,l;return AU().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.config,F=n.kid,Q=n.drmKeyToken,l=n.playDomain,!(F&&Q&&l)){e.next=13;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(F,l,Q);case 5:this.config.secretKey=e.sent,e.next=13;break;case 8:e.prev=8,e.t0=e.catch(2),U.success=!1,U.error=e.t0,t.reject(U);case 13:case"end":return e.stop()}}),e,this,[[2,8]])}))),function(e,t){return U.apply(this,arguments)})},{key:"updateKid",value:function(e){this.eme&&this.eme.updateKid(e)}},{key:"getLicenseSecret",value:function(){var e=this,U=this.config,t=U.vid,n=U.kid,F=U.getLicenseUrl,Q=U.useEME,l=U.keyValue;if(this.config.useEME&&!this.eme){this.eme=new jh,this.eme.on(Kh.ERROR,this.EMEError),this.eme.on(Kh.CDM_LICENSE_SUCCESS,(function(U){e.emit(Kh.CDM_LICENSE_SUCCESS,U)})),this.eme.on(Kh.CDM_LICENSE_ERROR,(function(U){e.emit(Kh.CDM_LICENSE_ERROR,U)}));var i=this.config.intertrustServerURL;if(n&&i){var d=Ft({},window.navigator.userAgent.toLocaleLowerCase().indexOf("chrome")>-1?"widevine":"playready",{serverURL:i+n});return this.eme.updateDrm(d),Promise.resolve()}}var r=new AR;return Promise.resolve().then(et(AU().mark((function U(){var i,d,a,o,B,s,R,c,V;return AU().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return i={method:"getLicense",success:!1},U.next=3,e._tryGetSecretKeyByToken(i,r);case 3:if((d=e.config.secretKey)||l){U.next=8;break}return U.next=7,ic(t,n,F);case 7:d=U.sent;case 8:if(Q&&(d&&(d=nc(d)),l&&(d=l)),U.prev=9,a=e.config,o=a.sessionId,B=a.useUnionInfoDRM,s=a.keyTokenExpiredDuration,R=Hh.get(o),!B||!Sh.checkUnionInfoExpired(R.unionID,R.unionInfo,s)){U.next=18;break}if(!Q){U.next=17;break}return U.next=16,fh(d,R.unionInfo);case 16:d=U.sent;case 17:i.decryptKey=Sh.StringToArrayBuffer(Nh.hash(R.unionInfo));case 18:Q?((c={clearKeys:{}}).clearKeys[V=n||wh]=d,e.eme.updateDrm(c,V),i.secretKey=null):i.secretKey=d,i.success=!0,r.resolve(i),U.next=28;break;case 23:U.prev=23,U.t0=U.catch(9),i.success=!1,i.error=U.t0,r.reject(i);case 28:case"end":return U.stop()}}),U,null,[[9,23]])})))),r}},{key:"destroy",value:function(){this.removeAllListeners(),this.eme&&(this.eme.destroy(),this.eme=null)}},{key:"log",value:function(e){for(var U=arguments.length,t=new Array(U>1?U-1:0),n=1;n<U;n++)t[n-1]=arguments[n];rc.apply(void 0,[e].concat(t))}},{key:"getSecretKey",value:function(){var e=this.config,U=e.vid,t=e.kid,n=e.getLicenseUrl,F=e.drmKeyToken,Q=e.playDomain,l=e.secretKey;return n&&t?ic(U,t,n):F&&t&&Q?this.getSecretKeyByToken(t,Q,F):l||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function(){var e=this.config,U=e.vid,t=e.kid,n=e.getLicenseUrl;return dc(U,e.secretKey,t,n)}}],[{key:"pluginName",get:function(){return"XGSecretKey"}},{key:"defaultConfig",get:function(){return{keyValue:null,kid:null,getLicenseUrl:"",secretKey:null,drm:null,vid:"",useUnionInfoDRM:!1,transformUnionKey:null,drmKeyToken:null,keyTokenExpiredDuration:null,playDomain:null,sessionId:_h,useEME:!0,intertrustServerURL:null}}},{key:"updateUnionInfo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_h,t=Sh.getUnionInfo(e);return Hh.set(U,{unionID:e,unionInfo:t}),t}}]),n}(Yh);zh.isWebAssemblySupported=function(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":qU(WebAssembly))&&"function"==typeof WebAssembly.instantiate){var e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(Vh){}return!1};var Oh,Ph,Ah=p,qh=R,$h=Tt("match"),eu=i,Uu=F,tu=YU,nu=tQ,Fu=K.f,Qu=tU.f,lu=function(e){var U;return Ah(e)&&(void 0!==(U=e[$h])?!!U:"RegExp"==qh(e))},iu=Bc,du=sc,ru=Pe,au=l,ou=Me.enforce,Bu=JQ,su=Tt("match"),Ru=Uu.RegExp,cu=Ru.prototype,Vu=/a/g,hu=/a/g,uu=new Ru(Vu)!==Vu,Zu=du.UNSUPPORTED_Y;if(eu&&tu("RegExp",!uu||Zu||au((function(){return hu[su]=!1,Ru(Vu)!=Vu||Ru(hu)==hu||"/a/i"!=Ru(Vu,"i")})))){for(var Su=function(e,U){var t,n=this instanceof Su,F=lu(e),Q=void 0===U;if(!n&&F&&e.constructor===Su&&Q)return e;uu?F&&!Q&&(e=e.source):e instanceof Su&&(Q&&(U=iu.call(e)),e=e.source),Zu&&(t=!!U&&U.indexOf("y")>-1)&&(U=U.replace(/y/g,""));var l=nu(uu?new Ru(e,U):Ru(e,U),n?this:cu,Su);return Zu&&t&&(ou(l).sticky=!0),l},Ju=function(e){e in Su||Fu(Su,e,{configurable:!0,get:function(){return Ru[e]},set:function(U){Ru[e]=U}})},pu=Qu(Ru),Wu=0;pu.length>Wu;)Ju(pu[Wu++]);cu.constructor=Su,Su.prototype=cu,ru(Uu,"RegExp",Su)}Bu("RegExp"),e.isNativeFunction=void 0,e.checkMSEValid=void 0,e.checkEMEValid=void 0,function(e,U,t){function n(e,U){var t=parseInt(e.slice(U,U+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=parseInt(e.slice(U+2,U+4),16)]):(t=(63&t)<<16,[3,t+=parseInt(e.slice(U+2,U+6),16)])}var F,Q=0,l=[],i=[];for(F=0;F<4;++F)Q+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var d=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)l.push(parseInt(e.slice(F,F+2),16));var a=r+40,o=parseInt(e.slice(a,a+4),16);for(a+=4,F=0;F<o;++F){var B=n(e,a);a+=2*B[0];for(var s="",R=0;R<B[1];++R){var c=n(e,a);s+=String.fromCharCode(Q^c[1]),a+=2*c[0]}i.push(s)}U.p=null,function e(U,t,n,F,Q){var d,r,a,o,B,s=-1,R=[],c=null,V=[t];for(r=Math.min(t.length,n),a=0;a<r;++a)V.push(t[a]);V.p=F;for(var h=[];;)try{switch(l[U++]){case 69:R[++s]=!0;break;case 71:R[++s]=!1;break;case 33:R[++s]=null;break;case 34:d=l[U++],R[++s]=d<<24>>24;break;case 29:d=((d=((d=l[U++])<<8)+l[U++])<<8)+l[U++],R[++s]=(d<<8)+l[U++];break;case 62:d=(l[U]<<8)+l[U+1],U+=2,R[++s]=i[d];break;case 76:R[++s]=void 0;break;case 61:d=(l[U]<<8)+l[U+1],U+=2,s=s-d+1,r=R.slice(s,s+d),R[s]=r;break;case 60:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;R[++s]=o[a];break;case 31:d=(l[U]<<8)+l[U+1],U+=2,r=i[d],R[s]=R[s][r];break;case 63:for(r=l[U++],a=l[U++],o=V;r>0;--r)o=o.p;o[a]=R[s--];break;case 1:r=R[s--],R[s]=R[s]===r;break;case 68:r=R[s--],R[s]=R[s]!==r;break;case 52:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,R[s]?--s:U+=d;break;case 72:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,R[s]?U+=d:--s;break;case 43:R[s]=typeof R[s];break;case 3:d=l[U++],r=R[s--],(a=function e(){var U=e._v;return(0,e._u)(U[0],arguments,U[1],U[2],this)})._v=[r,d,V],a._u=e,R[++s]=a;break;case 56:for(r=R[s--],a=null;o=h.pop();)if(2===o[0]||3===o[0]){a=o;break}if(a)U=a[2],a[0]=0,h.push(a);else{if(!c)return r;U=c[1],Q=c[2],V=c[3],h=c[4],R[++s]=r,c=c[0]}break;case 44:s-=d=l[U++],a=R.slice(s+1,s+d+1),r=R[s--],o=R[s--],r._u===e?(r=r._v,c=[c,U,Q,V,h],U=r[0],null==o&&(o=function(){return this}()),Q=o,(V=[a].concat(a)).length=Math.min(r[1],d)+1,V.p=r[2],h=[]):(B=r.apply(o,a),R[++s]=B);break;case 55:for(d=l[U++],o=[void 0],B=d;B>0;--B)o[B]=R[s--];a=R[s--],B=new(r=Function.bind.apply(a,o)),R[++s]=B;break;case 46:U+=2+(d=(d=(l[U]<<8)+l[U+1])<<16>>16);break;case 42:d=(d=(l[U]<<8)+l[U+1])<<16>>16,U+=2,(r=R[s--])||(U+=d);break;case 39:--s;break;case 18:r=R[s],R[++s]=r;break;default:throw new Error("ioe")}}catch(u){for(;(d=h.pop())&&!d[0];);if(!d){e:for(;c;){for(r=c[4];d=r.pop();)if(d[0])break e;c=c[0]}if(!c)throw u;U=c[1],Q=c[2],V=c[3],h=c[4],c=c[0]}1===(r=d[0])?(U=d[2],d[0]=0,h.push(d),R[++s]=u):2===r?(U=d[2],d[0]=0,h.push(d)):(U=d[3],d[0]=2,h.push(d),R[++s]=u)}}(d,[],0,U,t)}("504B010177739c88000001908b9f7075000001dc453f00023c0202121f00023c00012c012a00193c0001121f00031d0000009d03023c00022c023f00022e006d213c02033e0004121f0005213c02043c01012c01121f00063c02033e00073e000837023e00092c02121f00063c02033e000a3e000837023e000b2c023e000c2c022c013f00033c00012b3e000d012a00183c0003121f000e3c0102121f000f3c00012c012c012e0001473f00023c0002383c0001340009213c03073c00022c01383c02051f00104800063c02051f0011383c02051f001238213c02082c003f0001213c02092c003f0002473f00033c00013400033c00022a00623d00003f00043c00022a00203c0004121f00133c00022c01273c0004121f00133c00021f00001f00142c01273c00012a00203c0004121f00133c00012c01273c0004121f00133c00011f00001f00152c0127213c02073c00042c012a0004453f00033c0003383d00003f00013c02062b3e0016443400033c02062a00133c0001121f00133c02061f00001f00172c01273c00011f00182200012a0004452e0009213c02073c00012c01381d0000000003013f01071d000000ad03003f01081d000000bd03003f01091d000000c403003f010a1d0000014c03003f010b3c01001f00001f00013f00013c01011f00001f00013f00024c380019097f7d607b607b767f6a087b605c7b7d66616807667c4e7d7d6e76067d6a6b7a6c6a0151066c60616c6e7b077d6a7f636e6c6a145421252430512b74722726735453525320535352016803532b292f7b605c7b7d6661687327697a616c7b666061262125302730325353532726732f69607d2f2124302730325353535226052b3e212530012b08697a616c7b666061047b6a7c7b046c6e63630b426a6b666e5c607a7d6c6a11586a6d44667b426a6b666e5c607a7d6c6a0c5c607a7d6c6a4d7a69696a7d047f7a7c670c6e7f7f6a616b4d7a69696a7d0f6e6b6b5c607a7d6c6a4d7a69696a7d097a616b6a6966616a6b067a7f6b6e7b6a06636a61687b67",{0:Object,1:Function,2:Array,3:RegExp,4:String,get 5(){return self},get 6(){return"undefined"!=typeof MediaKeySession?MediaKeySession:void 0},get 7(){return e.isNativeFunction},set 7(U){e.isNativeFunction=U},get 8(){return Oh},set 8(e){Oh=e},get 9(){return Ph},set 9(e){Ph=e},get 10(){return e.checkMSEValid},set 10(U){e.checkMSEValid=U},get 11(){return e.checkEMEValid},set 11(U){e.checkEMEValid=U}},void 0),e.EVENT_EME=Kh,e.TRANSFORM_IV=bh,e.XGSecretKey=zh,e.aes4js=kh,e.transformUnionKey=fh,e.util=Sh}(U)}(0,dQ.exports);var rQ=dQ.exports,aQ=function(){function e(U,t,n,F){var Q=this;c(this,e),this.config=e.getDefaultConfig(),Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=n,this.player=U,this.updateBitrate(t)}return h(e,[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getAdaptLoadDuration",value:function(){var e=this.player,U=this.config;if(!U.rangeControl)return-1;var t=(null==e?void 0:e.bufferedPoint)||null,n=t&&t.end?t.end-e.currentTime:0;return Math.max(U.rangeMaxDuration-n,U.rangeMinDuration)}},{key:"getAdaptCacheBuffer",value:function(){var e=this.player,U=this.config,t=this.bitrate;if(!U.targetCacheControl)return-1;var n=U.estPlayTime,F=n;U.estPTcontrol&&(F=Math.min(n,this.duration-((null==e?void 0:e.currentTime)||0)));var Q=1024*(null==e?void 0:e.avgSpeed)||0,l=Math.max(U.safeFactor*Q,U.minBandwidth);e&&e.avgSpeed&&(l=U.safeFactor*Q);var i=t>0?Math.floor((1-l/t)*F):0;return i=U.minDangerThreshold+Math.max(i,0),Math.min(Math.max(U.cacheSafeFactor*i,U.minTargetCacheDur),U.maxTargetCacheDur)}}],[{key:"getDefaultConfig",value:function(){return{rangeMaxDuration:15,rangeMinDuration:5,rangeMinSize:409600,safeFactor:.1,cacheSafeFactor:3,minDangerThreshold:5,estPlayTime:12,minBandwidth:1e6,estPTcontrol:!1,minTargetCacheDur:30,maxTargetCacheDur:60,targetCacheControl:!1,rangeControl:!1}}}]),e}();function oQ(e,U){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);U&&(n=n.filter((function(U){return Object.getOwnPropertyDescriptor(e,U).enumerable}))),t.push.apply(t,n)}return t}function BQ(e){for(var U=1;U<arguments.length;U++){var t=null!=arguments[U]?arguments[U]:{};U%2?oQ(Object(t),!0).forEach((function(U){SQ(e,U,t[U])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):oQ(Object(t)).forEach((function(U){Object.defineProperty(e,U,Object.getOwnPropertyDescriptor(t,U))}))}return e}function sQ(){sQ=function(){return e};var e={},U=Object.prototype,t=U.hasOwnProperty,n=Object.defineProperty||function(e,U,t){e[U]=t.value},F="function"==typeof Symbol?Symbol:{},Q=F.iterator||"@@iterator",l=F.asyncIterator||"@@asyncIterator",i=F.toStringTag||"@@toStringTag";function d(e,U,t){return Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}),e[U]}try{d({},"")}catch(N){d=function(e,U,t){return e[U]=t}}function r(e,U,t,F){var Q=U&&U.prototype instanceof B?U:B,l=Object.create(Q.prototype),i=new E(F||[]);return n(l,"_invoke",{value:J(e,t,i)}),l}function a(e,U,t){try{return{type:"normal",arg:e.call(U,t)}}catch(N){return{type:"throw",arg:N}}}e.wrap=r;var o={};function B(){}function s(){}function R(){}var c={};d(c,Q,(function(){return this}));var V=Object.getPrototypeOf,h=V&&V(V(k([])));h&&h!==U&&t.call(h,Q)&&(c=h);var u=R.prototype=B.prototype=Object.create(c);function Z(e){["next","throw","return"].forEach((function(U){d(e,U,(function(e){return this._invoke(U,e)}))}))}function S(e,U){function F(n,Q,l,i){var d=a(e[n],e,Q);if("throw"!==d.type){var r=d.arg,o=r.value;return o&&"object"==typeof o&&t.call(o,"__await")?U.resolve(o.__await).then((function(e){F("next",e,l,i)}),(function(e){F("throw",e,l,i)})):U.resolve(o).then((function(e){r.value=e,l(r)}),(function(e){return F("throw",e,l,i)}))}i(d.arg)}var Q;n(this,"_invoke",{value:function(e,t){function n(){return new U((function(U,n){F(e,t,U,n)}))}return Q=Q?Q.then(n,n):n()}})}function J(e,U,t){var n="suspendedStart";return function(F,Q){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===F)throw Q;return{value:void 0,done:!0}}for(t.method=F,t.arg=Q;;){var l=t.delegate;if(l){var i=p(l,t);if(i){if(i===o)continue;return i}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if("suspendedStart"===n)throw n="completed",t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n="executing";var d=a(e,U,t);if("normal"===d.type){if(n=t.done?"completed":"suspendedYield",d.arg===o)continue;return{value:d.arg,done:t.done}}"throw"===d.type&&(n="completed",t.method="throw",t.arg=d.arg)}}}function p(e,U){var t=U.method,n=e.iterator[t];if(void 0===n)return U.delegate=null,"throw"===t&&e.iterator.return&&(U.method="return",U.arg=void 0,p(e,U),"throw"===U.method)||"return"!==t&&(U.method="throw",U.arg=new TypeError("The iterator does not provide a '"+t+"' method")),o;var F=a(n,e.iterator,U.arg);if("throw"===F.type)return U.method="throw",U.arg=F.arg,U.delegate=null,o;var Q=F.arg;return Q?Q.done?(U[e.resultName]=Q.value,U.next=e.nextLoc,"return"!==U.method&&(U.method="next",U.arg=void 0),U.delegate=null,o):Q:(U.method="throw",U.arg=new TypeError("iterator result is not an object"),U.delegate=null,o)}function W(e){var U={tryLoc:e[0]};1 in e&&(U.catchLoc=e[1]),2 in e&&(U.finallyLoc=e[2],U.afterLoc=e[3]),this.tryEntries.push(U)}function m(e){var U=e.completion||{};U.type="normal",delete U.arg,e.completion=U}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(W,this),this.reset(!0)}function k(e){if(e){var U=e[Q];if(U)return U.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,F=function U(){for(;++n<e.length;)if(t.call(e,n))return U.value=e[n],U.done=!1,U;return U.value=void 0,U.done=!0,U};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return s.prototype=R,n(u,"constructor",{value:R,configurable:!0}),n(R,"constructor",{value:s,configurable:!0}),s.displayName=d(R,i,"GeneratorFunction"),e.isGeneratorFunction=function(e){var U="function"==typeof e&&e.constructor;return!!U&&(U===s||"GeneratorFunction"===(U.displayName||U.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,d(e,i,"GeneratorFunction")),e.prototype=Object.create(u),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),d(S.prototype,l,(function(){return this})),e.AsyncIterator=S,e.async=function(U,t,n,F,Q){void 0===Q&&(Q=Promise);var l=new S(r(U,t,n,F),Q);return e.isGeneratorFunction(t)?l:l.next().then((function(e){return e.done?e.value:l.next()}))},Z(u),d(u,i,"Generator"),d(u,Q,(function(){return this})),d(u,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var U=Object(e),t=[];for(var n in U)t.push(n);return t.reverse(),function e(){for(;t.length;){var n=t.pop();if(n in U)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=k,E.prototype={constructor:E,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(m),!e)for(var U in this)"t"===U.charAt(0)&&t.call(this,U)&&!isNaN(+U.slice(1))&&(this[U]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var U=this;function n(t,n){return l.type="throw",l.arg=e,U.next=t,n&&(U.method="next",U.arg=void 0),!!n}for(var F=this.tryEntries.length-1;F>=0;--F){var Q=this.tryEntries[F],l=Q.completion;if("root"===Q.tryLoc)return n("end");if(Q.tryLoc<=this.prev){var i=t.call(Q,"catchLoc"),d=t.call(Q,"finallyLoc");if(i&&d){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0);if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}else if(i){if(this.prev<Q.catchLoc)return n(Q.catchLoc,!0)}else{if(!d)throw new Error("try statement without catch or finally");if(this.prev<Q.finallyLoc)return n(Q.finallyLoc)}}}},abrupt:function(e,U){for(var n=this.tryEntries.length-1;n>=0;--n){var F=this.tryEntries[n];if(F.tryLoc<=this.prev&&t.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var Q=F;break}}Q&&("break"===e||"continue"===e)&&Q.tryLoc<=U&&U<=Q.finallyLoc&&(Q=null);var l=Q?Q.completion:{};return l.type=e,l.arg=U,Q?(this.method="next",this.next=Q.finallyLoc,o):this.complete(l)},complete:function(e,U){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&U&&(this.next=U),o},finish:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),m(t),o}},catch:function(e){for(var U=this.tryEntries.length-1;U>=0;--U){var t=this.tryEntries[U];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var F=n.arg;m(t)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,U,t){return this.delegate={iterator:k(e),resultName:U,nextLoc:t},"next"===this.method&&(this.arg=void 0),o}},e}function RQ(e){return(RQ="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cQ(e,U,t,n,F,Q,l){try{var i=e[Q](l),d=i.value}catch(r){return void t(r)}i.done?U(d):Promise.resolve(d).then(n,F)}function VQ(e){return function(){var U=this,t=arguments;return new Promise((function(n,F){var Q=e.apply(U,t);function l(e){cQ(Q,n,F,l,i,"next",e)}function i(e){cQ(Q,n,F,l,i,"throw",e)}l(void 0)}))}}function hQ(e,U){if(!(e instanceof U))throw new TypeError("Cannot call a class as a function")}function uQ(e,U){for(var t=0;t<U.length;t++){var n=U[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,CQ(n.key),n)}}function ZQ(e,U,t){return U&&uQ(e.prototype,U),t&&uQ(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function SQ(e,U,t){return(U=CQ(U))in e?Object.defineProperty(e,U,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[U]=t,e}function JQ(e,U){if("function"!=typeof U&&null!==U)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(U&&U.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),U&&WQ(e,U)}function pQ(e){return(pQ=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function WQ(e,U){return(WQ=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,U){return e.__proto__=U,e})(e,U)}function mQ(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function EQ(e,U,t){return(EQ=mQ()?Reflect.construct.bind():function(e,U,t){var n=[null];n.push.apply(n,U);var F=new(Function.bind.apply(e,n));return t&&WQ(F,t.prototype),F}).apply(null,arguments)}function kQ(e){var U="function"==typeof Map?new Map:void 0;return kQ=function(e){if(null===e||(t=e,-1===Function.toString.call(t).indexOf("[native code]")))return e;var t;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==U){if(U.has(e))return U.get(e);U.set(e,n)}function n(){return EQ(e,arguments,pQ(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),WQ(n,e)},kQ(e)}function yQ(e,U){if(null==e)return{};var t,n,F=function(e,U){if(null==e)return{};var t,n,F={},Q=Object.keys(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||(F[t]=e[t]);return F}(e,U);if(Object.getOwnPropertySymbols){var Q=Object.getOwnPropertySymbols(e);for(n=0;n<Q.length;n++)t=Q[n],U.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(F[t]=e[t])}return F}function NQ(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function bQ(e){var U=mQ();return function(){var t,n=pQ(e);if(U){var F=pQ(this).constructor;t=Reflect.construct(n,arguments,F)}else t=n.apply(this,arguments);return function(e,U){if(U&&("object"==typeof U||"function"==typeof U))return U;if(void 0!==U)throw new TypeError("Derived constructors may only return object or undefined");return NQ(e)}(this,t)}}function fQ(){return fQ="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,U,t){var n=function(e,U){for(;!Object.prototype.hasOwnProperty.call(e,U)&&null!==(e=pQ(e)););return e}(e,U);if(n){var F=Object.getOwnPropertyDescriptor(n,U);return F.get?F.get.call(arguments.length<3?e:t):F.value}},fQ.apply(this,arguments)}function vQ(e,U){(null==U||U>e.length)&&(U=e.length);for(var t=0,n=new Array(U);t<U;t++)n[t]=e[t];return n}function TQ(e,U){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,U){if(e){if("string"==typeof e)return vQ(e,U);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?vQ(e,U):void 0}}(e))||U&&e&&"number"==typeof e.length){t&&(e=t);var n=0,F=function(){};return{s:F,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var Q,l=!0,i=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return l=e.done,e},e:function(e){i=!0,Q=e},f:function(){try{l||null==t.return||t.return()}finally{if(i)throw Q}}}}function CQ(e){var U=function(e,U){if("object"!=typeof e||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,U||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===U?String:Number)(e)}(e,"string");return"symbol"==typeof U?U:String(U)}function DQ(){var e,U,t=new Promise((function(t,n){e=t,U=n}));return t.used=!1,t.resolve=function(){return t.used=!0,e.apply(void 0,arguments)},t.reject=function(){return t.used=!0,U.apply(void 0,arguments)},t}var gQ={DEBUG:1,LOG:2,WARN:3,ERROR:4},XQ=["Boolean","Number","String","Undefined","Null","Date","Object"],xQ=function(){function e(U,t){hQ(this,e),this.name=U||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==t?void 0:t.logCacheLevel)||3,this.logMaxSize=(null==t?void 0:t.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return ZQ(e,[{key:"debug",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[gQ.DEBUG].concat(n)),e.disabled||(U=console).debug.apply(U,[this._prefix,LQ()].concat(n))}},{key:"log",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[gQ.LOG].concat(n)),e.disabled||(U=console).log.apply(U,[this._prefix,LQ()].concat(n))}},{key:"warn",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[gQ.WARN].concat(n)),e.disabled||(U=console).warn.apply(U,[this._prefix,LQ()].concat(n))}},{key:"error",value:function(){for(var U,t=arguments.length,n=new Array(t),F=0;F<t;F++)n[F]=arguments[F];this.logCache.apply(this,[gQ.ERROR].concat(n)),e.disabled||(U=console).error.apply(U,[this._prefix,LQ()].concat(n))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var U="";try{for(var t=arguments.length,n=new Array(t>1?t-1:0),F=1;F<t;F++)n[F-1]=arguments[F];var Q=n.map((function(e){return IQ(e)}));U=this._prefix+LQ()+JSON.stringify(Q)}catch(i){return}if(e>=this.logCacheLevel&&(this.logSize+=U.length,this.logTextArray.push(U)),this.logSize>this.logMaxSize){var l=this.logTextArray.shift();this.logSize-=l.length}}}},{key:"getLogCache",value:function(){var e=this.logTextArray.join("\n");return this.reset(),e}},{key:"reset",value:function(){this.logTextArray=[],this.logSize=0}},{key:"table",value:function(){var U;e.disabled||(console.group(this._prefix),(U=console).table.apply(U,arguments),console.groupEnd())}},{key:"setLogLevel",value:function(e){this.logCacheLevel=e}}],[{key:"enable",value:function(){e.disabled=!1}},{key:"disable",value:function(){e.disabled=!0}}]),e}();function LQ(){return(new Date).toLocaleString()}function GQ(e){if("object"!==RQ(e))return e;var U=Object.prototype.toString.call(e).slice(8,-1);switch(U){case"Array":case"Uint8Array":case"ArrayBuffer":return U+"["+e.length+"]";case"Object":return"{}";default:return U}}function IQ(e,U,t){t||(t=1),U||(U=2);var n={};if(!e||"object"!==RQ(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!XQ.includes(F))return F;if(!(t>U)){for(var Q in e)Object.prototype.hasOwnProperty.call(e,Q)&&(t===U?n[Q]=GQ(e[Q]):"object"===RQ(e[Q])?n[Q]=IQ(e[Q],U,t+1):n[Q]=e[Q]);return n}}SQ(xQ,"disabled",!0);var MQ="fetch",YQ="xhr",wQ="arraybuffer",KQ="text",jQ="json",_Q=function(e){JQ(t,e);var U=bQ(t);function t(e,n,F,Q){var l;return hQ(this,t),SQ(NQ(l=U.call(this,Q)),"retryCount",0),SQ(NQ(l),"isTimeout",!1),SQ(NQ(l),"loaderType",MQ),SQ(NQ(l),"startTime",0),SQ(NQ(l),"endTime",0),SQ(NQ(l),"options",{}),l.url=e,l.request=n,l.response=F,l}return ZQ(t)}(kQ(Error)),HQ=Object.prototype.toString;function zQ(e){if("[object Object]"!==HQ.call(e))return!1;var U=Object.getPrototypeOf(e);return null===U||U===Object.prototype}function OQ(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var U="bytes="+e[0]+"-";return e[1]&&(U+=e[1]),U}}function PQ(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function AQ(e,U){if(e){if(!U)return e;var t,n=Object.keys(U).map((function(e){if(null!=(t=U[e]))return Array.isArray(t)?e+="[]":t=[t],t.map((function(U){var t;return t=U,"[object Date]"===HQ.call(t)?U=U.toISOString():function(e){return null!==e&&"object"===RQ(e)}(U)&&(U=JSON.stringify(U)),"".concat(PQ(e),"=").concat(PQ(U))})).join("&")})).filter(Boolean).join("&");if(n){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}}function qQ(e,U,t,n,F,Q,l,i,d,r,a){return F=null!=F?parseFloat(F):null,n=parseInt(n||"0",10),Number.isNaN(n)&&(n=0),{data:e,done:U,options:{range:d,vid:r,index:i,contentLength:n,age:F,startTime:Q,firstByteTime:l,endTime:Date.now(),priOptions:a},response:t}}function $Q(e,U){return Math.round(8*e*1e3/U/1024)}var el="real_time_speed",Ul=2097152,tl=function(e){JQ(n,e);var U,t=bQ(n);function n(){var e;return hQ(this,n),SQ(NQ(e=t.call(this)),"_abortController",null),SQ(NQ(e),"_timeoutTimer",null),SQ(NQ(e),"_reader",null),SQ(NQ(e),"_response",null),SQ(NQ(e),"_aborted",!1),SQ(NQ(e),"_index",-1),SQ(NQ(e),"_range",null),SQ(NQ(e),"_receivedLength",0),SQ(NQ(e),"_running",!1),SQ(NQ(e),"_logger",null),SQ(NQ(e),"_vid",""),SQ(NQ(e),"_onProcessMinLen",0),SQ(NQ(e),"_onCancel",null),SQ(NQ(e),"_priOptions",null),e}return ZQ(n,[{key:"load",value:function(e){var U,t=this,n=e.url,F=e.vid,Q=e.timeout,l=e.responseType,i=e.onProgress,d=e.index,r=e.onTimeout,a=e.onCancel,o=e.range,B=e.transformResponse,s=e.request,R=e.params,c=e.logger,V=e.method,h=e.headers,u=e.body,Z=e.mode,S=e.credentials,J=e.cache,p=e.redirect,W=e.referrer,m=e.referrerPolicy,E=e.onProcessMinLen,k=e.priOptions;this._logger=c,this._aborted=!1,this._onProcessMinLen=E,this._onCancel=a,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=d,this._range=o||[0,0],this._vid=F||n,this._priOptions=k||{};var y={method:V,headers:h,body:u,mode:Z,credentials:S,cache:J,redirect:p,referrer:W,referrerPolicy:m,signal:null===(U=this._abortController)||void 0===U?void 0:U.signal},N=!1;clearTimeout(this._timeoutTimer),n=AQ(n,R);var b=OQ(o);b&&(h=s?s.headers:y.headers=y.headers||(Headers?new Headers:{}),Headers&&h instanceof Headers?h.append("Range",b):h.Range=b),Q&&(this._timeoutTimer=setTimeout((function(){if(N=!0,t.cancel(),r){var e=new _Q(n,y,null,"timeout");e.isTimeout=!0,r(e,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})}}),Q));var f=Date.now();return this._logger.debug("[fetch load start], index,",d,",range,",o),new Promise((function(e,U){fetch(s||n,s?void 0:y).then(function(){var F=VQ(sQ().mark((function F(Q){var r,a,s,R;return sQ().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(t._timeoutTimer),t._response=Q,!t._aborted&&t._running){F.next=4;break}return F.abrupt("return");case 4:if(B&&(Q=B(Q,n)||Q),Q.ok){F.next=7;break}throw new _Q(n,y,Q,"bad network response");case 7:if(r=Date.now(),l!==KQ){F.next=15;break}return F.next=11,Q.text();case 11:a=F.sent,t._running=!1,F.next=37;break;case 15:if(l!==jQ){F.next=22;break}return F.next=18,Q.json();case 18:a=F.sent,t._running=!1,F.next=37;break;case 22:if(!i){F.next=29;break}return t.resolve=e,t.reject=U,t._loadChunk(Q,i,f,r),F.abrupt("return");case 29:return F.next=31,Q.arrayBuffer();case 31:a=F.sent,a=new Uint8Array(a),t._running=!1,s=Date.now()-f,R=$Q(a.byteLength,s),t.emit(el,{speed:R,len:a.byteLength,time:s,vid:t._vid,index:t._index,range:t._range,priOptions:t._priOptions});case 37:t._logger.debug("[fetch load end], index,",d,",range,",o),e(qQ(a,!0,Q,Q.headers.get("Content-Length"),Q.headers.get("age"),f,r,d,o,t._vid,t._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(t._timeoutTimer),t._running=!1,t._aborted&&!N||((e=e instanceof _Q?e:new _Q(n,y,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=f,e.endTime=Date.now(),e.isTimeout=N,e.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},U(e))}))}))}},{key:"cancel",value:(U=VQ(sQ().mark((function e(){return sQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._aborted){e.next=2;break}return e.abrupt("return");case 2:if(this._aborted=!0,this._running=!1,!this._response){e.next=14;break}if(e.prev=5,!this._reader){e.next=9;break}return e.next=9,this._reader.cancel();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(5);case 13:this._response=this._reader=null;case 14:if(this._abortController){try{this._abortController.abort()}catch(U){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions});case 16:case"end":return e.stop()}}),e,this,[[5,11]])}))),function(){return U.apply(this,arguments)})},{key:"_loadChunk",value:function(e,U,t,n){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var Q=new _Q(e.url,"",e,"onProgress of bad response.body.getReader");return Q.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(Q)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(Ul),this._writeIdx=0);var l,i,d,r=this._reader=e.body.getReader(),a=function(){var Q=VQ(sQ().mark((function Q(){var o,B,s,R,c,V,h,u;return sQ().wrap((function(Q){for(;;)switch(Q.prev=Q.next){case 0:return i=Date.now(),Q.prev=1,Q.next=4,r.read();case 4:l=Q.sent,d=Date.now(),Q.next=13;break;case 8:return Q.prev=8,Q.t0=Q.catch(1),d=Date.now(),F._aborted||(F._running=!1,Q.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(Q.t0)),Q.abrupt("return");case 13:if(B=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,s=B+F._receivedLength,!F._aborted){Q.next=19;break}return F._running=!1,U(void 0,!1,{range:[s,s],vid:F._vid,index:F._index,startTime:i,endTime:d,st:t,firstByteTime:n,priOptions:F._priOptions},e),Q.abrupt("return");case 19:R=l.value?l.value.byteLength:0,F._receivedLength+=R,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",s,", end,",B+F._receivedLength,", done,",l.done),F._onProcessMinLen>0?F._writeIdx+R>=F._onProcessMinLen||l.done?((c=new Uint8Array(F._writeIdx+R)).set(F._cache.slice(0,F._writeIdx),0),R>0&&c.set(l.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",l.done,",len,",c.byteLength,", writeIdx,",F._writeIdx)):R>0&&F._writeIdx+R<Ul?(F._cache.set(l.value,F._writeIdx),F._writeIdx+=R,F._logger.debug("【fetchLoader,onProgress cache】,len,",R,", writeIdx,",F._writeIdx)):R>0&&(V=new Uint8Array(F._writeIdx+R+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+R+2048,", datalen,",R,", writeIdx,",F._writeIdx),V.set(F._cache.slice(0,F._writeIdx),0),R>0&&V.set(l.value,F._writeIdx),F._writeIdx+=R,delete F._cache,F._cache=V,F._logger.debug("【fetchLoader,onProgress extra end】,len,",R,", writeIdx,",F._writeIdx)):c=l.value,(c&&c.byteLength>0||l.done)&&U(c,l.done,{range:[F._range[0]+F._receivedLength-(c?c.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:i,endTime:d,st:t,firstByteTime:n,priOptions:F._priOptions},e),l.done?(h=Date.now()-t,u=$Q(F._receivedLength,h),F.emit(el,{speed:u,len:F._receivedLength,time:h,vid:F._vid,index:F._index,range:F._range,priOptions:F._priOptions}),F._running=!1,F._logger.debug("[fetchLoader onProgress end],task,",F._range,",done,",l.done),F.resolve(qQ(l,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),t,n,F._index,F._range,F._vid,F._priOptions))):a();case 25:case"end":return Q.stop()}}),Q,null,[[1,8]])})));return function(){return Q.apply(this,arguments)}}();a()}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}}],[{key:"isSupported",value:function(){return!("undefined"==typeof fetch)}}]),n}(tU);var nl=function(e){JQ(t,e);var U=bQ(t);function t(){var e;return hQ(this,t),SQ(NQ(e=U.call(this)),"_xhr",null),SQ(NQ(e),"_aborted",!1),SQ(NQ(e),"_timeoutTimer",null),SQ(NQ(e),"_range",null),SQ(NQ(e),"_receivedLength",0),SQ(NQ(e),"_url",null),SQ(NQ(e),"_onProgress",null),SQ(NQ(e),"_index",-1),SQ(NQ(e),"_headers",null),SQ(NQ(e),"_currentChunkSizeKB",384),SQ(NQ(e),"_timeout",null),SQ(NQ(e),"_xhr",null),SQ(NQ(e),"_withCredentials",null),SQ(NQ(e),"_startTime",-1),SQ(NQ(e),"_loadCompleteResolve",null),SQ(NQ(e),"_loadCompleteReject",null),SQ(NQ(e),"_runing",!1),SQ(NQ(e),"_logger",!1),SQ(NQ(e),"_vid",""),SQ(NQ(e),"_responseType",void 0),SQ(NQ(e),"_credentials",void 0),SQ(NQ(e),"_method",void 0),SQ(NQ(e),"_transformResponse",void 0),SQ(NQ(e),"_firstRtt",void 0),SQ(NQ(e),"_onCancel",null),SQ(NQ(e),"_priOptions",null),e}return ZQ(t,[{key:"load",value:function(e){var U=this;clearTimeout(this._timeoutTimer),this._logger=e.logger,this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this._logger.debug("【xhrLoader task】, range",this._range),this._url=AQ(e.url,e.params);var t=Date.now();return new Promise((function(e,t){U._loadCompleteResolve=e,U._loadCompleteReject=t,U._startLoad()})).catch((function(e){if(clearTimeout(U._timeoutTimer),U._runing=!1,!U._aborted)throw(e=e instanceof _Q?e:new _Q(U._url,U._request)).startTime=t,e.endTime=Date.now(),e.options={index:U._index,vid:U._vid,priOptions:U._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===wQ&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var U=1024*this._currentChunkSizeKB,t=this._range[0]+this._receivedLength,n=this._range[1];U<this._range[1]-t&&(n=t+U),e=[t,n],this._logger.debug("[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this._logger.debug("[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}},{key:"_internalOpen",value:function(e){var U=this;try{this._startTime=Date.now();var t=this._xhr=new XMLHttpRequest;t.open(this._method||"GET",this._url,!0),t.responseType=this._responseType,this._timeout&&(t.timeout=this._timeout),t.withCredentials=this._withCredentials,t.onload=this._onLoad.bind(this),t.onreadystatechange=this._onReadyStatechange.bind(this),t.onerror=function(e){var t,n,F;U._running=!1;var Q=new _Q(U._url,U._request,null==e||null===(t=e.currentTarget)||void 0===t?void 0:t.response,"xhr.onerror.status:"+(null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));Q.options={index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions},U._loadCompleteReject(Q)},t.ontimeout=function(e){U.cancel();var t=new _Q(U._url,U._request,{status:408},"timeout");U._onTimeout&&(t.isTimeout=!0,U._onTimeout(t,{index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions})),t.options={index:U._index,range:U._range,vid:U._vid,priOptions:U._priOptions},U._loadCompleteReject(t)};var n=this._headers||{},F=OQ(e);F&&(n.Range=F),n&&Object.keys(n).forEach((function(e){t.setRequestHeader(e,n[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),t.send(this._body)}catch(Q){Q.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(Q)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var U,t=e.target.status;if(t<200||t>299){var n=new _Q(this._url,null,BQ(BQ({},e.target.response),{},{status:t}),"bad response,status:"+t);return n.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(n)}var F,Q=null,l=!1,i=(null===(U=this._range)||void 0===U?void 0:U.length)>0?this._range[0]:0;if(this._responseType===wQ){var d,r=new Uint8Array(e.target.response);if(F=i+this._receivedLength,r&&r.byteLength>0){this._receivedLength+=r.byteLength;var a=Date.now()-this._startTime,o=$Q(this._receivedLength,a);this.emit(el,{speed:o,len:this._receivedLength,time:a,vid:this._vid,index:this._index,range:[F,i+this._receivedLength],priOptions:this._priOptions})}Q=r,l=!((null===(d=this._range)||void 0===d?void 0:d.length)>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this._logger.debug("[xhr load done->], tast :",this._range,", start",F,"end ",i+this._receivedLength,",dataLen,",r?r.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",l)}else l=!0,Q=e.target.response;var B={ok:t>=200&&t<300,status:t,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(B=this._transformResponse(B,this._url)||B),this._onProgress&&this._onProgress(Q,l,{index:this._index,vid:this._vid,range:[F,i+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},B),l?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(qQ(this._onProgress?null:Q,l,B,B.headers["content-length"],B.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}},{key:"cancel",value:function(){if(!this._aborted)return this._aborted=!0,this._runing=!1,fQ(pQ(t.prototype),"removeAllListeners",this).call(this),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}},{key:"receiveLen",get:function(){return this._receivedLength}},{key:"running",get:function(){return this._running},set:function(e){this._running=e}},{key:"_getHeaders",value:function(e){var U,t={},n=TQ(e.getAllResponseHeaders().trim().split("\r\n"));try{for(n.s();!(U=n.n()).done;){var F=U.value.split(": ");t[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(Q){n.e(Q)}finally{n.f()}return t}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),t}(tU),Fl=["retry","retryDelay","onRetryError","transformError"],Ql=function(){function e(U,t){hQ(this,e),this.promise=DQ(),this.alive=!!t.onProgress,!t.logger&&(t.logger=new xQ("Loader")),this._loaderType=U,this._loader=U===MQ&&window.fetch?new tl:new nl,this._config=t,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=t.retryCheckFunc,this._logger=t.logger}var U;return ZQ(e,[{key:"exec",value:function(){var e=this,U=this._config,t=U.retry,n=U.retryDelay,F=U.onRetryError,Q=U.transformError,l=yQ(U,Fl),i=function(){var U=VQ(sQ().mark((function U(){var d,r,a;return sQ().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return U.prev=0,U.next=3,e._loader.load(l);case 3:d=U.sent,e.promise.resolve(d),U.next=27;break;case 7:if(U.prev=7,U.t0=U.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",U.t0),!e._canceled){U.next=13;break}return U.abrupt("return");case 13:if(U.t0.loaderType=e._loaderType,U.t0.retryCount=e._retryCount,r=U.t0,Q&&(r=Q(r)||r),F&&e._retryCount>0&&F(r,e._retryCount,{index:l.index,vid:l.vid,range:l.range,priOptions:l.priOptions}),e._retryCount++,a=!0,e._retryCheckFunc&&(a=e._retryCheckFunc(U.t0)),!(a&&e._retryCount<=t)){U.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",l.range),e._retryTimer=setTimeout(i,n),U.abrupt("return");case 26:e.promise.reject(r);case 27:case"end":return U.stop()}}),U,null,[[0,7]])})));return function(){return U.apply(this,arguments)}}();return i(),this.promise}},{key:"cancel",value:(U=VQ(sQ().mark((function e(){return sQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,e.abrupt("return",this._loader.cancel());case 4:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function ll(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(U){return setTimeout(U,e)}))}var il=function(e){JQ(n,e);var U,t=bQ(n);function n(e){var U;return hQ(this,n),SQ(NQ(U=t.call(this,e)),"type",MQ),SQ(NQ(U),"_queue",[]),SQ(NQ(U),"_alive",[]),SQ(NQ(U),"_currentTask",null),SQ(NQ(U),"_config",void 0),U._config=function(e){return BQ({loaderType:MQ,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:KQ,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0},e)}(e),U._config.loaderType!==YQ&&tl.isSupported()||(U.type=YQ),U.log=e.logger,U}return ZQ(n,[{key:"isFetch",value:function(){return this.type===MQ}},{key:"load",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?t=e:t.url=e||t.url||this._config.url,(t=Object.assign({},this._config,t)).params&&(t.params=Object.assign({},t.params)),t.headers&&zQ(t.headers)&&(t.headers=Object.assign({},t.headers)),t.body&&zQ(t.body)&&(t.body=Object.assign({},t.body)),t.transformRequest&&(t=t.transformRequest(t)||t),t.logger=this.log;var n=new Ql(this.type,t);return n.loader.on(el,(function(e){U.emit(el,e)})),this._queue.push(n),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),n.promise}},{key:"cancel",value:(U=VQ(sQ().mark((function e(){var U;return sQ().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&U.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(U);case 6:return e.next=8,ll();case 8:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"_processTask",value:function(){var e=this;if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);var U=this._currentTask.exec().catch((function(e){}));U&&"function"==typeof U.finally&&U.finally((function(){var U,t;null!==(U=e._currentTask)&&void 0!==U&&U.alive&&(null===(t=e._alive)||void 0===t?void 0:t.length)>0&&(e._alive=e._alive.filter((function(U){return U&&U!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return tl.isSupported()}}]),n}(tU),dl=function(){function e(U,t,n,F){var Q=this;c(this,e),this.config=e.getDefaultConfig(),Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(Q.config[e]=F[e])})),this.duration=n,this.player=U,this.updateBitrate(t),this.curPCDNInBuffer=this.config.maxPCDNInBuffer,this.curPCDNOutBuffer=this.config.maxPCDNOutBuffer,this.PCDNChangeCnt=0}return h(e,[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getPCDNInBuffer",value:function(){var e=this.config,U=this.player,t=this.bitrate;if(!e.PCDNBufferControl)return null;var n=e.estPlayTime,F=n;e.estPTcontrol&&(F=Math.min(n,Math.max(0,this.duration-((null==U?void 0:U.currentTime)||0))));var Q=e.safePCDNInFactor,l=e.minBandwidth,i=e.maxPCDNInBuffer,d=e.minPCDNInBuffer,r=Q*Math.max(1024*(null==U?void 0:U.avgSpeedPCDN)||0,l),a=t>0?(1-r/t)*F:0;return this.curPCDNInBuffer=Math.min(i,Math.max(d,a)),this.curPCDNInBuffer}},{key:"getPCDNOutBuffer",value:function(){var e=this.config,U=this.player,t=this.bitrate;if(!e.PCDNBufferControl)return null;var n=e.estPlayTime,F=n;e.estPTcontrol&&(F=Math.min(n,Math.max(0,this.duration-((null==U?void 0:U.currentTime)||0))));var Q=e.safePCDNOutFactor,l=e.minBandwidth,i=e.maxPCDNOutBuffer,d=e.minPCDNOutBuffer,r=Q*Math.max(1024*(null==U?void 0:U.avgSpeedPCDN)||0,l),a=t>0?(1-r/t)*F:0;return this.curPCDNOutBuffer=Math.min(i,Math.max(d,a)),this.curPCDNOutBuffer}},{key:"getPCDNChangeCnt",value:function(){var e=this.config,U=e.PCDNCntControl,t=e.alpha,n=this.curPCDNInBuffer,F=this.player,Q=(null==F?void 0:F.bufferedPoint)||null,l=Q&&Q.end?Q.end-F.currentTime:0;U?l>n+(this.PCDNChangeCnt-1)*t&&this.PCDNChangeCnt++:l>=n&&this.PCDNChangeCnt<2&&this.PCDNChangeCnt++;return this.PCDNChangeCnt}}],[{key:"getDefaultConfig",value:function(){return{PCDNBufferControl:!1,PCDNCntControl:!1,estPTcontrol:!1,minPCDNInBuffer:8,maxPCDNInBuffer:12,minPCDNOutBuffer:3,maxPCDNOutBuffer:6,safePCDNInFactor:.1,safePCDNOutFactor:.4,alpha:.5,estPlayTime:12,minBandwidth:1e6}}}]),e}(),rl=new Map,al=function(){function e(U,t,n,F){var Q,l,i=this;c(this,e),this.options=e.getDefaultConfig(),Object.keys(U).map((function(e){void 0!==U[e]&&null!==U[e]&&(i.options[e]=U[e])})),this.options.productConfig&&this.options.productConfig.app_id||console.error("productConfig must has"),this.loader=new il(this.options),this.resetTrackeArgs(),this._lastFileInfo=null,this.lastfetchNodeTime=-1,this._lastRetFileKey=null,this._minUpdateNodeStep=this.options.ErrorTimeStep,null!==(Q=this.options)&&void 0!==Q&&null!==(l=Q.adaptPCDNConfig)&&void 0!==l&&l.PCDNBufferControl&&(this.pcdnAdapt=new dl(t,n,F,this.options.adaptPCDNConfig))}var U,t;return h(e,[{key:"isOpenAdaptPCDN",get:function(){return!!this.pcdnAdapt}},{key:"curPCDNInBuffer",get:function(){return this.pcdnAdapt.curPCDNInBuffer}},{key:"getPCDNInBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNInBuffer()}},{key:"curPCDNOutBuffer",get:function(){return this.pcdnAdapt.curPCDNOutBuffer}},{key:"getPCDNOutBuffer",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNOutBuffer()}},{key:"curPCDNChangeCnt",get:function(){return this.pcdnAdapt.PCDNChangeCnt}},{key:"getPCDNChangeCnt",value:function(){var e;return null===(e=this.pcdnAdapt)||void 0===e?void 0:e.getPCDNChangeCnt()}},{key:"resetTrackeArgs",value:function(e){this.trackeArgs={fid:null,trace_id:null,req_times:(null==e?void 0:e.req_times)||0,resp_times:(null==e?void 0:e.resp_times)||0,token:null,node_num:this.options.node_num,client_info:this.options.client_info}}},{key:"getPCDNNode",value:function(e,U,t){var n,F=Bl(U),Q=rl.get(ol(e,F)),l=new DQ;return null==Q||!Q.nodes||(null==Q||null===(n=Q.nodes)||void 0===n?void 0:n.length)<1?this.fetchPCDNNode(null,null,t).then((function(e){l.resolve(e)})).catch((function(e){l.reject(e)})):(Q.fromCache=!0,l.resolve(Q)),l}},{key:"removePCDNNode",value:function(e,U,t){var n=Bl(U),F=rl.get(ol(e,n)),Q=null==F?void 0:F.nodes;Q&&(t?F.nodes=Q.filter((function(e){return e&&t.indexOf(e.url)<0})):Q.shift(),rl.set(ol(e,n),F)),Q&&Q.length||this.fetchPCDNNode().then().catch((function(){}))}},{key:"fetchPCDNNode",value:(t=R(o().mark((function U(t,n,F){var Q,l,i,d,r,a,B,s,R,c,V,h,u,Z,S,J,p;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:if(Q=new DQ,n){U.next=5;break}n=this._lastFileInfo,U.next=13;break;case 5:if(n.byterate=Bl(n.bitrate),!((null==(i=rl.get(ol(n.vid,n.byterate)))||null===(l=i.nodes)||void 0===l?void 0:l.length)>0)){U.next=11;break}return i.fromCache=!0,Q.resolve(i),U.abrupt("return",Q);case 11:delete n.bitrate,this._lastFileInfo=n;case 13:if(n){U.next=16;break}return Q.resolve(null),U.abrupt("return",Q);case 16:if(d=!1,r=ol(n.vid,n.byterate),this._lastRetFileKey!==r&&(this.resetTrackeArgs(),d=!0),!(Date.now()-this.lastfetchNodeTime<this._minUpdateNodeStep)||d){U.next=22;break}return Q.resolve(null),U.abrupt("return",Q);case 22:if(this.lastfetchNodeTime=Date.now(),this._lastRetFileKey=r,n.sfid?n.version=1:n.vid&&(n.version=2),this.options.withReferer&&(n.with_referer=this.options.withReferer),a=Object.assign(this.options.productConfig,{file_info:n},this.trackeArgs,{req_id:F}),B=JSON.stringify(a),!(this.trackeArgs.req_times>=this.options.maxCnt)){U.next=31;break}return Q.resolve(null),U.abrupt("return",Q);case 31:return this.loader||(this.loader=new il(this.options)),this.trackeArgs.req_times+=1,U.prev=33,e.pcdn_tracker_request_cnt++,U.next=37,this.loader.load(t||this.options.trackerUrl,{body:B});case 37:s=U.sent,R=null,s&&(this.trackeArgs.resp_times+=1,V=8*n.byterate,s.done&&null!==(c=s.data)&&void 0!==c&&c.Result?(h=s.data.Result,(R=h.nodes)&&R.length>0?e.pcdn_tracker_success_cnt++:this._minUpdateNodeStep=this.options.NULLNodeTimeStep,R.map((function(e){e.vid=n.vid,e.bitrate=V})),u=h.fid,Z=h.trace_id,S=h.req_id,J={nodes:R,fid:u,vid:n.vid,trace_id:Z,req_id:S,bitrate:V},p=ol(n.vid,n.byterate),rl.set(p,J),this.trackeArgs.fid=h.fid,this.trackeArgs.trace_id=h.trace_id,this.trackeArgs.token=h.token,Q.resolve(J)):(this._minUpdateNodeStep=this.options.ErrorTimeStep,Q.reject(s))),U.next=47;break;case 42:U.prev=42,U.t0=U.catch(33),this._minUpdateNodeStep=this.options.ErrorTimeStep,console.warn("tracker catch ERR,",U.t0),Q.reject(U.t0);case 47:return U.abrupt("return",Q);case 48:case"end":return U.stop()}}),U,this,[[33,42]])}))),function(e,U,n){return t.apply(this,arguments)})}],[{key:"pluginName",get:function(){return"PCDN"}},{key:"pcdnReqCnt",get:function(){var U=e.pcdn_tracker_request_cnt,t=e.pcdn_tracker_success_cnt;return e.pcdn_tracker_request_cnt=0,e.pcdn_tracker_success_cnt=0,{pcdn_tracker_request_cnt:U,pcdn_tracker_failed_cnt:U-t}}},{key:"getDefaultConfig",value:function(){return{trackerUrl:"",loaderType:MQ,responseType:jQ,mode:"cors",method:"POST",retry:0,retryDelay:3e3,timeout:5e3,node_num:5,client_info:null,maxCnt:30,withReferer:0,NULLNodeTimeStep:6e4,ErrorTimeStep:15e3}}},{key:"gainPCDNNode",value:(U=R(o().mark((function U(t,n,F,Q){var l,i,d,r,a,B,s,R,c;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:return l=e.getDefaultConfig(),Object.keys(n).map((function(e){void 0!==n[e]&&null!==n[e]&&(l[e]=n[e])})),Q&&Q.app_id||console.error("productConfig must has"),i=new DQ,F?(F.byterate=Bl(F.bitrate),delete F.bitrate):i.reject("video fileInfo need set"),d=Object.assign(Q,{file_info:F},{node_num:(null==n?void 0:n.node_num)||3}),r=JSON.stringify(d),a=new il(l),U.prev=8,e.pcdn_tracker_request_cnt++,U.next=12,a.load(t,{body:r});case 12:(c=U.sent).done&&(null===(B=c.data)||void 0===B||null===(s=B.Result)||void 0===s||null===(R=s.nodes)||void 0===R?void 0:R.length)>0&&e.pcdn_tracker_success_cnt++,i.resolve(c),U.next=20;break;case 17:U.prev=17,U.t0=U.catch(8),i.reject((null===U.t0||void 0===U.t0?void 0:U.t0.message)||"get pcdnNode error");case 20:return U.abrupt("return",i);case 21:case"end":return U.stop()}}),U,null,[[8,17]])}))),function(e,t,n,F){return U.apply(this,arguments)})}]),e}();function ol(e,U){return"".concat(e,"-").concat(U)}function Bl(e){return Math.floor(e/8)}u(al,"pcdn_tracker_request_cnt",0),u(al,"pcdn_tracker_success_cnt",0);var sl=["app_id","trackerUrl","sid","task_type"],Rl="close",cl="open",Vl="forbidden",hl=1,ul=0,Zl=1;function Sl(e){return/^http(s)?:\/\/.+/.test(e)}var Jl=function(){function e(U,t,n,F){c(this,e),u(this,"_pcdn",null),u(this,"_pcdnConfig",null),u(this,"_pcdnTraceInfo",null),u(this,"_pcdnNodes",null),u(this,"_openPcdn",!1),u(this,"_cachedPcdn",{}),u(this,"_PCDNState",Rl),u(this,"_retryInfo",{}),u(this,"_bitrate2file",{}),u(this,"pcdn_download_request_cnt",0),u(this,"pcdn_download_failed_cnt",0),u(this,"_PCDNSwitchCnt",0),u(this,"pcdn_tracker_failed_cnt",0),u(this,"pcdn_tracker_request_cnt",0),u(this,"_pcdnVVStat",{try_req_node:0,req_node_succ:0,has_ret_node:0,conn_req_num:0,conn_fail_num:0,conn_jump_num:0,pSCCancelCnt:0}),this._pcdnConfig=U,this._isOpenPCDN=t,this._duration=n,this._vid=F}var U,t,n,F;return h(e,[{key:"getPCDNReqId",value:function(e){var U=e.uri||this._vid;return this._getPCDNReqIdBitrate(U,e.bitrate)}},{key:"_getPCDNReqIdBitrate",value:function(e,U){return e.slice(-20)+U}},{key:"checkPCND",value:(F=R(o().mark((function e(U){var t,n,F,Q,l,i,d,r,B,s,R,c,V,h,u,Z,S,J;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._vid){e.next=3;break}return console&&console.warn("PCDN service need vid, vid is undefiend, pass vid by dashplugin"),e.abrupt("return");case 3:if(!((null===(t=this._pcdnConfig)||void 0===t?void 0:t.openPCDN)&&this._isOpenPCDN&&this._duration>=this._pcdnConfig.minDuration&&U)){e.next=37;break}if(n=U.bitrate,!(F=this._cachedPcdn[n])){e.next=12;break}if(Q=F.pcdnNodeList,l=F.pcdnTraceInfo,!(Q&&Q.length>0&&l)){e.next=12;break}return this._pcdnTraceInfo=l,e.abrupt("return");case 12:return Sl(i=U.main_url)||(d=document.location.protocol,i=d+i),r=this._pcdnConfig,B=r.app_id,s=r.trackerUrl,R=r.sid,c=r.task_type,V=p(r,sl),h={vid:this._vid,cdn_url:i,file_type:"dash",sfid:U.file_id,bitrate:U.bitrate,duration:Math.floor(this._duration||0),size:U.size},this._bitrate2file[U.bitrate]=U.file_id,this._pcdn?(hU.log("resetTrackeArgs"),this._pcdn.resetTrackeArgs()):this._pcdn=new al(a({productConfig:{app_id:B,sid:R,task_type:c||Zl},trackerUrl:s},V)),e.prev=18,Z=this.getPCDNReqId(U),e.next=22,this._pcdn.fetchPCDNNode(null,h,Z);case 22:if(S=e.sent,J=this.getPCDNReqId(U),null==S||!S.req_id||J===S.req_id){e.next=27;break}return hU.log("fetchPCDNNode is not match curDefinition reqId",Z,", pcdnRet.req_id",S.req_id),e.abrupt("return");case 27:hU.log("checkPCND execute"),this._updateNodeList(S,n),this._pcdnVVStat.try_req_node+=1,this._pcdnVVStat.req_node_succ+=1,this._pcdnVVStat.has_ret_node+=(null==S||null===(u=S.nodes)||void 0===u?void 0:u.length)>0?1:0,e.next=37;break;case 34:e.prev=34,e.t0=e.catch(18),this._pcdnVVStat.try_req_node+=1;case 37:case"end":return e.stop()}}),e,this,[[18,34]])}))),function(e){return F.apply(this,arguments)})},{key:"setSetRetryInfo",value:function(e){var U=Ut.getHostFromUrl(e);this._retryInfo[U]=!0}},{key:"_updateNodeList",value:function(e,U){var t=this;if(e&&e.nodes){var n,F={pcdnNodeList:e.nodes.filter((function(e){if(!Object.prototype.hasOwnProperty.call(t._retryInfo,Ut.getHostFromUrl(null==e?void 0:e.url)))return e})),pcdnTraceInfo:{uri:e.vid,fid:e.fid,trace_id:e.trace_id}},Q=this._bitrate2file[U];null!==(n=e.fid)&&void 0!==n&&n.includes(Q)?(this._cachedPcdn[U]=F,this._pcdnTraceInfo=F.pcdnTraceInfo,hU.log("_updateNodeList",JSON.stringify(this._cachedPcdn))):hU.log("_updateNodeList not file not match cachedFileid",Q,"pcdnRet")}}},{key:"isUpdateNode",value:function(e){var U=this._getNodeListByBitrate(e);return!U||!U.length}},{key:"selectedPCDN",value:function(e,U){if(this._PCDNState!==Vl&&!e){var t;if(this.isUsePCDN(U)){this._isUseCDN=!1;var n=this._getNodeListByBitrate(U);n&&(t=n[0].url,this._lastPCDNUrl!==t&&(this._lastPCDNUrl=t,this._pcdnVVStat.conn_req_num+=1),this.pcdn_download_request_cnt++)}else this._isUseCDN||(this._PCDNSwitchCnt++,this._pcdnVVStat.conn_jump_num+=1,this._PCDNSwitchCnt>=this._pcdnConfig.switchPCDNMaxCnt&&this.updatePCDNState(Vl)),this._isUseCDN=!0;return t}this._isUseCDN=!0}},{key:"isUsePCDN",value:function(e){var U=this._getNodeListByBitrate(e);return this._PCDNState===cl&&U&&U.length>0}},{key:"_getNodeListByBitrate",value:function(e){var U=this._cachedPcdn[e];return U?U.pcdnNodeList:null}},{key:"isOpenPCDN",value:function(e,U,t){var n=this._pcdnConfig;n&&(e>=(n.enterMinBuffer||n.minBuffer)+2*(this._PCDNSwitchCnt||0)?(this.updatePCDNState(cl),this.isUpdateNode(U)&&this.getPCDNNode(U)):e<(n.outMaxBuffer||n.minBuffer-2)&&this.updatePCDNState(Rl,t))}},{key:"updatePCDNState",value:(n=R(o().mark((function e(U,t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U!==Vl){e.next=4;break}this._PCDNState=U,e.next=13;break;case 4:if(this._PCDNState===Vl||this._PCDNState===U){e.next=13;break}if(this._isUseCDN||U!==Rl||this._PCDNState===Rl){e.next=12;break}return this._PCDNState=U,e.next=9,t();case 9:this._pcdnVVStat.pSCCancelCnt++,e.next=13;break;case 12:this._PCDNState=U;case 13:case"end":return e.stop()}}),e,this)}))),function(e,U){return n.apply(this,arguments)})},{key:"getPCDNNode",value:(t=R(o().mark((function e(U){var t,n,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pcdn){e.next=2;break}return e.abrupt("return",null);case 2:return e.prev=2,t=this._getPCDNReqIdBitrate(this._vid,U),e.next=6,this._pcdn.getPCDNNode(this._vid,U);case 6:if(n=e.sent,F=this._getPCDNReqIdBitrate(this._vid,U),null==n||!n.req_id||F===n.req_id){e.next=11;break}return hU.log("getPCDNNode is not match curDefinition reqId",t,", pcdnRet.req_id",n.req_id),e.abrupt("return");case 11:n&&this._updateNodeList(n,U),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(2),console.log("err",e.t0);case 17:case"end":return e.stop()}}),e,this,[[2,14]])}))),function(e){return t.apply(this,arguments)})},{key:"removePCDNNode",value:(U=R(o().mark((function e(U,t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pcdn){e.next=2;break}return e.abrupt("return",null);case 2:this.pcdn_download_failed_cnt++,this._pcdnVVStat.conn_fail_num++,this._cachedPcdn[U]=null,this._pcdn.removePCDNNode(this._vid,U,t);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return U.apply(this,arguments)})},{key:"pcdnReqCnt",get:function(){var e=al.pcdnReqCnt;return{pcdn_download_request_cnt:this.pcdn_download_request_cnt,pcdn_download_failed_cnt:this.pcdn_download_failed_cnt,pcdn_tracker_request_cnt:e.pcdn_tracker_request_cnt,pcdn_tracker_failed_cnt:e.pcdn_tracker_failed_cnt}}},{key:"pcdnVVStat",get:function(){var e;return Object.assign({},this._pcdnVVStat,{is_try_open:1,trace_id:null===(e=this._pcdnTraceInfo)||void 0===e?void 0:e.trace_id})}}]),e}(),pl=function(){function e(U,t,n,F){c(this,e),F&&(this.adaptRange=new aQ(U,t,n,F),this.adaptRangeRes=[])}return h(e,[{key:"updateBitrate",value:function(e){var U;null===(U=this.adaptRange)||void 0===U||U.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){var U,t=null===(U=this.adaptRange)||void 0===U?void 0:U.getAdaptCacheBuffer();return!Number.isNaN(t)&&t||(t=e),t}}]),e}(),Wl=rQ.EVENT_EME.CDM_LICENSE_ERROR,ml=rQ.EVENT_EME.CDM_LICENSE_SUCCESS,El=function(){function e(U,t,n){var F,Q,l=this;c(this,e),In(this),this._pluginInst=t,this.__dash__=n;var i=t.config,d=t.player,r=t._kernal;this.kernal=r,this.mse=void 0,this.config=i,this.player=d,this.url=U,this.inited=!1,this.loadingTasks=[],this.keyValue=void 0,this.dynamic_video=this.config.dashOpts.dynamic_video,this.useEME=this.config.useEME,this.intertrustServerURL=this.config.intertrustServerURL,this.taskErrorList=[],this.defaultDefinition=this.config.defaultDefinition,this.selectedIdx=0,this.getLicenseUrl=this.config.getLicenseUrl,this.egleIds={},this.first_segment_request={video:{request:!1,ext:{fromCache:!1}},audio:{request:!1,ext:{fromCache:!1}}},this.segment_request={video:[],audio:[]};var a=this.config,o=a.loader,B=a.reqOptions;this.loader=new TF(Object.assign({openLog:aU},o,B),this._pluginInst.preloadManager),this.loader.on(qe,(function(e){l.player.emit(qe,e)})),this._vTrack=null,this._aTrack=null,this._onLoadingItems=[],this._videoEncryption=!1,this._audioEncryption=!1;var s=this.config.duration||this.config.dashOpts.video_duration,R="segment_base"===(null===(F=this.config.dashOpts)||void 0===F||null===(Q=F.dynamic_video)||void 0===Q?void 0:Q.dynamic_type);this._vid=i.vid,this._pcdnScv=new Jl(i.pcdnConfig,R,s,i.vid),this._dynamicBufferService=new pl(this.player,0,s,this.config.adaptRange)}var U,t,n,F,Q,l;return h(e,[{key:"updateDynamicBufferServiceBitrate",value:function(e){this._dynamicBufferService.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){return this._dynamicBufferService.getAdaptCacheBuffer(e)}},{key:"getData",value:(l=R(o().mark((function e(U){var t,n,F,Q,l,i,d,r,a,B,s,R,c,V,h,u,Z,S,J,p=this,W=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=W.length>1&&void 0!==W[1]?W[1]:[],n=W.length>2?W[2]:void 0,Q=W.length>4&&void 0!==W[4]&&W[4],l=W.length>5&&void 0!==W[5]?W[5]:null,i=W.length>6&&void 0!==W[6]?W[6]:null,d=W.length>7&&void 0!==W[7]?W[7]:null,r=W.length>8&&void 0!==W[8]?W[8]:null,a=(F=W.length>3&&void 0!==W[3]?W[3]:{}).isPCDN,B=a?hl:ul,e.next=12,this.loader.load(n,U,t,F,Q,l?function(e,U,Q,i){e&&e.byteLength&&p._emitPrfDataSizeEvent(B,e.byteLength,n,t,F),l(e,U,Q,i,F)}:null,i,d,r);case 12:if(!((s=e.sent)&&s.res instanceof ArrayBuffer)){e.next=19;break}return R=s.res,c=s.headers,V=s.status,h=s.fromCache,u=s.cacheKey,h?this.emitPreloadHit(u):this._emitPrfDataSizeEvent(B,s.res.byteLength,n,t,F),e.abrupt("return",{res:R,headers:c,status:V,fromCache:h});case 19:s&&"error"===s.res&&this.player&&this.player.emit("source_error",{host:Ut.getHostFromUrl(null==s?void 0:s.url),src:null==s?void 0:s.url,errorCode:(null==s?void 0:s.status)||"networkError",message:null==s||null===(Z=s.error)||void 0===Z?void 0:Z.message,range:t,headers:null==s?void 0:s.header,error:{msg:null==s||null===(S=s.error)||void 0===S?void 0:S.message,stack:null==s||null===(J=s.error)||void 0===J?void 0:J.stack}});case 20:return e.abrupt("return",s);case 21:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"_emitPrfDataSizeEvent",value:function(e,U,t,n,F){var Q,l;e===ul?null===(Q=this.player)||void 0===Q||Q.emit("prf_data_size",{vid:this._vid,task_type:1,cdn_size:U,mediaType:t,range:JSON.stringify(n),fileid:F.fileId,definition:F.definition}):null===(l=this.player)||void 0===l||l.emit("prf_data_size",{vid:this._vid,task_type:1,pcdn_size:U,mediaType:t,range:JSON.stringify(n),fileid:F.fileId,definition:F.definition})}},{key:"_getCryptInfos",value:function(){var e="",U="";if(this.dynamic_video.dynamic_video_list&&this.dynamic_video.dynamic_video_list.length>0){for(var t=0;t<this.dynamic_video.dynamic_video_list.length;t++)if(this.dynamic_video.dynamic_video_list[t].kid){e=this.dynamic_video.dynamic_video_list[t].kid,U=this.dynamic_video.dynamic_video_list[t].spade_a,this._videoEncryption=!0;break}}else if(this.dynamic_video.dynamic_audio_list)for(var n=0;n<this.dynamic_video.dynamic_audio_list.length;n++)if(this.dynamic_video.dynamic_audio_list[n].kid){e=this.dynamic_video.dynamic_audio_list[n].kid,U=this.dynamic_video.dynamic_audio_list[n].spade_a,this._audioEncryption=!0;break}return{keyId:e,spade_a:U}}},{key:"init",value:(Q=R(o().mark((function e(U){var t,n,F,Q,l,i,d,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._hasDestroyed){e.next=2;break}return e.abrupt("return");case 2:if(this._initStartMs=Date.now(),this.kernal.setNodeTime("initdash","newplayer_start"),t=this._getCryptInfos(),n=t.keyId,F=t.spade_a,(Q=this).config.usePlaySpade&&(Q.config.secretKey=F),l=Q.config,i=l.secretKey,d=l.drmKeyToken,r=l.playDomain,!(n||i||d&&r)){e.next=18;break}return e.prev=10,e.next=13,this._initSecret(n);case 13:e.next=18;break;case 15:e.prev=15,e.t0=e.catch(10),console.log("err",e.t0);case 18:return e.abrupt("return",Q.initDash(U));case 19:case"end":return e.stop()}}),e,this,[[10,15]])}))),function(e){return Q.apply(this,arguments)})},{key:"_handleIncompleSegment",value:function(e,U){var t=this;e.incomplete=!0,t.__dash__&&(t.__dash__._minDuration=Math.min(U,t.__dash__._minDuration))}},{key:"_initSecret",value:function(e){var U=this,t=new X,n=this.config,F=n.secretKey,Q=n.drmKeyToken,l=n.playDomain,i=n.useUnionInfoDRM,d=n.keyTokenExpiredDuration,r=n.sessionId,a=new rQ.XGSecretKey({kid:e,getLicenseUrl:this.getLicenseUrl,secretKey:F,vid:this.config.vid||"",useUnionInfoDRM:i,drmKeyToken:Q||this.config.keyToken,keyTokenExpiredDuration:d,playDomain:l,sessionId:r,useEME:this.useEME,intertrustServerURL:this.config.intertrustServerURL});return this._secret=a,a.getLicenseSecret().then((function(e){if(!U._pluginInst)return hU.log("getLicense callback destroy"),void t.reject("getLicense callback destroy");U.config.dashOpts&&U.useEME?(U._initEME(),null==a||a.setOptions(),null==a||a.setupEME(U.player.video)):(U.__dash__.crypto&&U.__dash__.crypto.updateValue(e),U.keyValue=!0),hU.encrypt("getLicense resolve"),t.resolve()})).catch((function(e){hU.log("DRM_ERROR",e),t.reject("catch error"),void 0!==e.status&&U.emit("error",new wn(Se,We.CUSTOM_LICENSE,{url:U.getLicenseUrl,httpCode:e.status,message:"CUSTOM_LICENSE_ERROR"}))})),t}},{key:"_initEME",value:function(){var e=this;if(!rQ.checkEMEValid())return this.player.errorHandler(new wn(Ze,We.EME_HIJACK,{message:"EME API被劫持"})),void this.__dash__.destroy();this._secret.on(Wl,(function(U){e.player&&e.player.emit("log",a({type:"oneevent",end_type:Wl,ua:navigator.userAgent},U)),hU.log("EME CDM_LICENSE_ERROR"),e.player.errorHandler(new wn(Se,We.LICENSE,{message:"DRM接口失败"}))})),this._secret.on(ml,(function(U){e.player&&e.player.emit("log",a({type:"oneevent",end_type:ml,ua:navigator.userAgent},U)),hU.log("EME CDM_LICENSE_SUCCESS")}))}},{key:"_initDefaultDefinition",value:function(){var e=this,U=this,t=this.mpd.mediaList.video,n=U.config?U.config.defaultDefinition:null,F=this._pluginInst.getPreloadStat(),Q=!1;if(F.video){var l=Object.keys(F.video)[0],i=Ut.getDefinition(l);i&&(n=i,Q=!0)}var d=this.player.config.userSelectDefinition&&this.config.focusUserDefinition;if(d&&(n!==this.player.config.userSelectDefinition&&Q&&(Q=!1),n=this.player.config.userSelectDefinition),this._pluginInst.bitRateAdapter&&!Q&&!d){var r=this.player?this.player.config.userSelectDefinition:null,a=Ut.getBitrateItem(U.config.dashOpts.dynamic_video,this._pluginInst.bitRateAdapter,U.config.duration,r);hU.log("[xgplayer-encrypt] onReady",U.config.vid,"item",a),a&&(n=a.definition)}hU.log("[xgplayer-encrypt] onReady",U.config.vid,"video definition",n);var o=!1;n&&t.forEach((function(U,F){U.definition===n&&(e.config.defaultDefinition=n,t.selectedIdx=F,o=!0)})),o||(t.selectedIdx=0)}},{key:"_initMSE",value:function(){var e,U,t=this,n=Date.now(),F=this.mpd.mediaList.audio,Q=this.mpd.mediaList.video,l={};if(this._hasAudio&&(l[xe.AUDIO]={mimeType:"audio/mp4",codec:'audio/mp4; codecs="'.concat(F[F.selectedIdx].codecs,'"')}),this._hasVideo&&(l[xe.VIDEO]={mimeType:"video/mp4",codec:'video/mp4; codecs="'.concat(Q[Q.selectedIdx].codecs,'"')}),this._hasVideo&&this._pluginInst.softVideo){var i=this.player.video;i.setPlayMode&&i.setPlayMode("VOD"),(e=i).url=URL.createObjectURL(new Blob),U=Promise.resolve()}else{if(this._secret&&!rQ.checkMSEValid())return void this.player.errorHandler(new wn(Ze,We.MSE_HIJACK,{message:"MSE被劫持"}));(U=(e=new xe(void 0,{openLog:aU})).bindMedia(this.player.video)).then((function(){if(t._pluginInst){t.kernal.setNodeTime("initmse_sbopendone"),t._pluginInst.info({msg:"mse init success",name:"mseInit",startMs:n,profile:!0});try{for(var U=Object.keys(l),F=0;F<U.length;F++){var Q=U[F];e.createSource(Q,l[Q].codec)}}catch(i){hU.log("MSE MSE_MEDIA_TYPES_NOT_SUPPORTED",JSON.stringify({msg:i.message})),t&&t.player&&t.player.errorHandler(new wn(Ze,We.MSE_ADD_SB,{line:329,message:"mse init fail"})),hU.log("mse init error",i,"player destroyed ? ",!(t&&t.player))}}else hU.log("open promise ready destroy")})).catch((function(e){console.log("openPromise catch",e)}))}return this.mse=e,U}},{key:"_addBuffer",value:function(e){var U=this,t=this,n=-1,F=this.mpd.mediaList.video,Q=this.mpd.mediaList.audio,l=[];(t.config&&t.config.dashOpts.audioOnly?["audio"]:["video","audio"]).forEach((function(F){var Q=U.mpd.mediaList[F];if(!(Q.length<1)&&Q[Q.selectedIdx]&&Q[Q.selectedIdx].mimeType){n++;var i=e[n];if(!i.initSegmentRes)return hU.log("initSegment null, task request error, stop"),void t.emit("error",new wn(pe,wn.SEG_PARSE_ERROR,{message:"wrapperData.initSegmentRes is null"}));t.__dash__&&l.push(t.__dash__._appendInitSegment(F,i,Q.selectedIdx))}})),Promise.all(l).then((function(){U.kernal.setNodeTime("metaready_initsegend"),t.inited=!0;var e=F.selectedIdx,n=Q.selectedIdx;(U._hasVideo&&(F[e].encrypted||F[e].kid)||U._hasAudio&&(Q[n].encrypted||Q[n].kid))&&t._secret&&t._secret.emit(rQ.EVENT_EME.ENCRYPTED),"vod"===t.type&&(t.seek(0,0),t.emit("start_play"))})).catch((function(e){t.player.errorHandler(new wn(Ze,We.MSE_APPEND_BUFFER,{line:329,message:"mse append error ".concat(e.message?e.message:e)}))}))}},{key:"initDash",value:(F=R(o().mark((function e(U){var t,n;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pluginInst){e.next=3;break}return hU.log("dash.js init dash destroy"),e.abrupt("return");case 3:return this._pluginInst.info({msg:"dash init",data:"dash init",startMs:this._initStartMs,profile:!0}),this.kernal.setNodeTime("initdashdone","initdash"),t=this,this.kernal.setNodeTime("initmpd"),n=new yF(U,t.config.dashOpts,t),t.mpd=n,n.init(),e.next=12,n.readyPromise;case 12:return this._onMPDReady(n),e.abrupt("return",this.mse);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"_onMPDReady",value:function(e){var U=this,t=Date.now();if(this._pluginInst){hU.log("mpd ready"),this.kernal.setNodeTime("initmpddone"),this._pluginInst.info({msg:"mpd ready",name:"mpd ready",startMs:t,profile:!0}),this.type=e.type;var n=e.mediaList.video,F=e.mediaList.audio;this._initDefaultDefinition(),this.kernal.setNodeTime("initmse_sbopen");var Q=!!(n.length>0&&n[n.selectedIdx])&&this.config&&!this.config.dashOpts.audioOnly,l=!!(F.length>0&&F[F.selectedIdx]);this._hasVideo=Q,this._hasAudio=l;var i=this._initMSE();if(i){var d=[],r=this.config?this.config.dashOpts.audioOnly:null;this.config&&!r&&n&&n.length>0&&n[n.selectedIdx]&&n[n.selectedIdx].initSegment&&d.push(this.__dash__._makeInitSegemntRequestWithRetry("video",n.selectedIdx,!0)),F[F.selectedIdx]&&F[F.selectedIdx].initSegment&&d.push(this.__dash__._makeInitSegemntRequestWithRetry("audio",F.selectedIdx,!0)),Promise.all(d).then((function(e){i.then((function(){U._addBuffer(e)}))})).catch((function(e){U&&U.player&&U.player.errorHandler(e),hU.log("appendInitPromise error",e,"player destroyed ? ",!(U&&U.player))}))}}else hU.log("mpd ready destroy")}},{key:"seek",value:(n=R(o().mark((function e(U,t){var n,F,Q,l,i,d,r,a,B,s=this,R=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=R.length>2&&void 0!==R[2]&&R[2],F=this,e.next=4,this.mpd.seek(U,t);case 4:if(Q=e.sent,l=F.mpd.mediaList.video,i=F.mpd.mediaList.audio,d=!!(l.length>0&&l[l.selectedIdx]),r=!!(i.length>0&&i[i.selectedIdx]),!(d&&r&&2*l[l.selectedIdx].mediaDuration<i[i.selectedIdx].mediaDuration)){e.next=12;break}return F.emit("error",new wn(pe,wn.DUR_PARSE_ERROR,{message:"the video.mediaDuration not match audio.mediaDuration"})),e.abrupt("return");case 12:a={},(B=["video","audio"]).forEach((function(e){Q[e]&&Q[e].length>0&&(a[e]=[],Q[e].forEach((function(U){var t=U.idx,n=U.start,F=U.end,Q=U.downloaded,l=U.range;a[e].push({idx:t,start:n,end:F,downloaded:Q,range:l})})))})),hU.log("seekResult: time",U,"currentTime",t,JSON.stringify(a)),(F.config.dashOpts&&F.config.dashOpts.audioOnly?["audio"]:B).forEach((function(e){Q[e]&&Q[e].length>0&&Q[e].every((function(U){if(U.downloaded===CU||U.downloaded===TU)return!0;U.downloaded=TU;var t=s._videoEncryption||s._audioEncryption,Q=!t||t&&s.useEME,l=F.config.useProgressiveAppend&&!s._pluginInst.softVideo&&Q&&s.loader.isSupportedProgress(),i=0===U.start||n;F._addToList(U);var d=function(){F.updateItemState(U,!1),hU.log("onCancel",U),F._removeFromList(U)},r=F.mpd.mediaList[e],a=r[r.selectedIdx],o=l&&i&&s.loader.checkProgressSatisfied(a.bandwidth||a.bitrate);return i&&hU.log("progressDownloaded match, config p ".concat(F.config.useProgressiveAppend,", \n progressDownloaded ").concat(l,", encEnableProgress :").concat(Q)),o&&0===U.start&&("video"===e?F._pluginInst.pvStartup=!0:F._pluginInst.paStartup=!0),o?(hU.log("progressDownloaded, mediaType:".concat(e,",\n start:").concat(U.start,", bitrate:").concat(a.bandwidth||a.bitrate)),F.makeSegmentRequest(e,U,(function(t,n,Q,l,i){var d=Q.range||[U.start,U.end];i.range=d,F.appendSegment(e,t,U,{},i,!1,n),n&&F._removeFromList(U)}),d).catch((function(e){F._onRequestFail(e,U)}))):F.makeSegmentRequest(e,U,null,d).then((function(t){var n=t.res,Q=t.headers,l=t.extData;hU.log("append ".concat(e," ").concat(U.start," ").concat(U.end)),F.appendSegment(e,n,U,Q||{},l,!0,!0),F._removeFromList(U)})).catch((function(e){F._onRequestFail(e,U)})),!0}))}));case 17:case"end":return e.stop()}}),e,this)}))),function(e,U){return n.apply(this,arguments)})},{key:"_onRequestFail",value:function(e,U){var t,n;(this.updateItemState(U),this._removeFromList(U),e.isPCDN)&&(null===(t=this._pcdnScv)||void 0===t||t.setSetRetryInfo(e.url),null===(n=this._pcdnScv)||void 0===n||n.removePCDNNode(e.bitrate,e.url))}},{key:"_addToList",value:function(e){this._onLoadingItems&&this._onLoadingItems.push(e)}},{key:"_removeFromList",value:function(e){if(this._onLoadingItems)for(var U=this._onLoadingItems.length-1;U>-1;U--)this._onLoadingItems[U]===e&&this._onLoadingItems.splice(U,1)}},{key:"makeSegmentRequest",value:function(e,U){var t=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,Q=this,l=new X;void 0===U.range&&(U.range=[]);var i=this.first_segment_request[e],d=!i.request;d&&(this.first_segment_request[e].request=!0);var r=this.segment_request[e];"video"===e&&hU.network("http get video start: ".concat(U.start,", end: ").concat(U.end," ,range: ").concat(U.range)),Q.player&&Q.__dash__._checkUrlRange(U.url);var a={limitSizeM:1/0,segment_resolution:"",isVideo:"video"===e,ratio:Q.config.segmentRatio||7.5,vid:Q.config.vid,mediaType:e,start:U.start,end:U.end,useUrlRange:Q.config.useUrlRange},o=1/0,B=Q.mpd.mediaList[e],s=B[B.selectedIdx],R=U.url,c=!1;if("video"===e){try{var V=s.definition||Q.__dash__.bandwidth2item[s.bandwidth].definition;if(o=pU[V.toLowerCase()],a.segment_resolution=V.toLowerCase(),a.definition=a.segment_resolution,U.definition=V,this._pcdnScv){var h=this._pcdnScv.selectedPCDN(!1,s.bandwidth),u=null==h?void 0:h.includes(s.fileId);h&&!u&&(this._pcdnScv.removePCDNNode(s.bandwidth),hU.log("PCDNURL remove, url,",h,"fileid",s.fileId)),u&&h&&(c=!0,(!this._cdnHost||R.indexOf(this._cdnHost)<0)&&(this._cdnHost=Ut.getHostFromUrl(R)),this._cdnHost||(this._cdnHost=Ut.getHostFromUrl(R)),a.cdnHost=this._cdnHost,R=h,hU.log("PCDNURL",R))}this.setCurrentHost(R)}catch(S){o=1/0}a.limitSizeM=o}a.bitrate=s.bandwidth||s.bitrate,a.idx=s.idx,a.isPCDN=c,a.fileId=s.fileId,d&&(i.task=Ut.nowTime());var Z=this.config.timeout;return this.getData(R,U.range,e,a,!1,n,F,Z,(function(){Q.updateItemState(U,!1),hU.log("onTimeout",U),Q._removeFromList(U)})).then((function(F){if(t._pluginInst)if(F){var o=F.res,B=F.fromCache,s=o instanceof ArrayBuffer;if(d&&(i.taskfinish=Ut.nowTime(),i.ext.fromCache=B,i.ext.mediaType=e,i.ext.definition=a.definition,s?i.ext.byteLength=o.byteLength:o.done||(i.ext.error=o)),!s)if(!(o&&o.done)){for(var R=!1,c=0;c<r.length;c++){var V=r[c];if(V.definition===U.definition&&V.start===U.start){R=!0,V.count++,t.player&&t.player.emit(gU,t.segment_request);break}}R||(r.push({mediaType:e,definition:U.definition,start:U.start,response:F,count:1,end:U.end}),t.player&&t.player.emit(gU,t.segment_request))}if(o instanceof ArrayBuffer)l.resolve({res:o,headers:null,extData:{status:F.status,segment_resolution:a.segment_resolution}}),Q.mseLog("task loadsucc",U,e);else if(!(206===F.status||200===F.status)){var h;if(Q.mseLog("task loaderror",U,e),n&&t.__dash__.abort("video"===e?xe.VIDEO:xe.AUDIO),403===F.status)null==Q||Q.__dash__.clearProgressTimer(),null==Q||null===(h=Q._pluginInst)||void 0===h||h.emitExpireEvent({url:U.url,response:F});l.reject(F)}}else console.log("response err"),l.reject(new Error("request error"))})),l}},{key:"setCurrentHost",value:function(e){this._pluginInst.loadURL=e}},{key:"reportMonitorEvent",value:function(e,U,t,n,F){var Q=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},l=this,i=l.getReportData(t,n,F,Q),d=F.eagleid;if(d){if(!this.egleIds||this.egleIds[d])return;this.egleIds[d]=1}l.player&&l.player.emit("log",{type:"oneevent",end_type:e,cdnUrl:U,ext:i})}},{key:"getReportData",value:function(e,U,t){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=Ut.transformHeaders(t,JU);return Object.assign({},{start:e||-1,end:U||-1},F,n)}},{key:"reportMenuEvent",value:function(e,U,t,n){var F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},Q=this._pluginInst.player,l=this.getReportData(U,t,n,F);l.url=e,Q.emit("menusegment",l)}},{key:"appendSegment",value:function(e,U,t,n,F){var Q=arguments.length>5&&void 0!==arguments[5]&&arguments[5],l=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],i=this;if(!this._hasDestroyed&&i.mpd&&U){var d,r=F.status,a=F.segment_resolution,o=i.mpd.mediaList[e],B=o.selectedIdx,s=0,R=-1,c=t.realUrl||t.url;if(Q&&(U instanceof ArrayBuffer||U instanceof Uint8Array))try{R=U.byteLength;var V=new Uint8Array(U,4,4),h=String.fromCharCode.apply(null,V);if("moof"!==h&&"styp"!==h&&(hU.media("segment content error",t,n),s=1,i.reportMonitorEvent(DU,c,t.range[0],t.range[1],n,{segment_size:U.byteLength,status:r,segment_resolution:a,box_type:h,step:s,segment_origin_size:R})),"ftyp"===h&&200===r&&2===t.range.length){s=2;var u=t.range[0];U=U.slice(u,t.range[1]+1),"moof"!==(h=String.fromCharCode.apply(null,U))&&"styp"!==h&&(i.emit("error",new wn(pe,wn.SEGMENT_CONTENT_ERROR,{message:"boxType is ".concat(h,", range:").concat(JSON.stringify(t.range),", url:").concat(c,", respHeaders:").concat(JSON.stringify(n),", isPCDN:").concat(F.isPCDN)})),i.reportMonitorEvent(DU,c,t.range[0],t.range[1],n,{segment_size:U.byteLength,status:r,segment_resolution:a,box_type:h,step:s,segment_origin_size:R}))}}catch(S){i.reportMonitorEvent(DU,c,t.range[0],t.range[1],n,{segment_size:U.byteLength,status:r,segment_resolution:a,step:s,box_type:"error",segment_origin_size:R}),hU.media("segment content catch",t,S)}i.reportMenuEvent(c,t.range[0],t.range[1],n,{segment_size:U.byteLength,status:r,segment_resolution:a});var Z=this._pluginInst.softVideo;if(i.keyValue||Z)(Z||i.__dash__.dashVideoEncrypted||i.__dash__.dashAudioEncrypted)&&!1===i.useEME&&i.__dash__.crypto?(d=performance.now(),i.mseLog("decryptBody start",t,e),i.__dash__.crypto.decryptBody(U,"video"===e,!Z).then((function(U){var n=U.data,F=U.id,Q=U.headerId;if(n.res||Z){var r=n.res,a=n.videoTrack,s=n.audioTrack,R=performance.now();if(i.encryptTotalAll||(i.encryptTotalAll=0),i.encryptTotalAll+=R-d,hU.encrypt("encryptTotalAll:".concat(i.encryptTotalAll)),"video"===e&&(i.encryptTotal||(i.encryptTotal=0),i.encryptTotal+=R-d,hU.encrypt("encryptVideo:".concat(i.encryptTotal)),F<Q))return i.updateItemState(t),void console.warn("decrytbody discard, id:".concat(F,", headerId:").concat(Q,",\n index:").concat(B,", url:").concat(t.url,", start:").concat(t.start));i.doAppendSegment(e,o,r,t,B,null,l,a,s)}else i.updateItemState(t)}))):i.doAppendSegment(e,o,U,t,B,F.range,l);else i.doAppendSegment(e,o,U,t,B,F.range,l)}}},{key:"doAppendSegment",value:function(e,U,t,n,F,Q,l,i,d){var r=this;if(!this._hasDestroyed){var o=this,B={start:n.start,end:n.end,index:F,bandwidth:U[U.selectedIdx].bandwidth,fps:U[U.selectedIdx].fps,mediaType:e,sequence:n.idx};if(e===xe.VIDEO&&-1!==this.__dash__.curVideoInitSegmentIdx&&F!==this.__dash__.curVideoInitSegmentIdx)return this.updateItemState(n),void hU.log("init 与 segment不匹配, curVideoInitSegmentIdx",this.__dash__.curVideoInitSegmentIdx,"selectedIdx",F);this.appendBuffer(e,new Uint8Array(t),JSON.stringify(a({range:Q},B)),i,d).then((function(){if(o.player)if(l&&0===t.byteLength)r.emptyAction(e,{}).then((function(){l&&o.updateItemState(n,!0),"video"===e&&o.player.emit("addVideoBufferEnd",B)}));else{if(r.mseLog("appendBuffer success",n,e,Q),l){o.updateItemState(n,!0);var U=o.mpd._getBuffered(e);hU.log("fixbuffer: mediaType",e,"buffered",JSON.stringify(U),"item.start",n.start,"item.end",n.end);for(var F=!0,i=0;i<U.length;i++){var d=U[i].start,a=U[i].end;n.start>=d-.5&&n.end<=a+.5&&(F=!1)}if(F){var s=o.mse.getSourceBuffer(e);hU.log("fixbuffer: buffer Miss",!!s),s&&(o.mse.abort(e),o.mse.remove(e,n.start,n.end),o.updateItemState(n,!1))}}"video"===e&&o.player.emit("addVideoBufferEnd",B);var R=o.mse,c=o.mpd;if(R&&B.start>=0&&l&&!r._pluginInst.softVideo){var V=R.buffered(e);if(0===V.length)return;var h=V.end(V.length-1),u=c.mediaList[e][B.index].mediaSegments[B.sequence-1];u.incomplete&&(o._handleIncompleSegment(u,h),hU.log("extData",B))}var Z=c.isLastSegmentAndAppend(e,n.idx),S=e===xe.AUDIO?xe.VIDEO:xe.AUDIO,J=c.isLastSegmentAndAppend(S,n.idx);Z&&J&&(hU.log("append check endofStream"),R.endOfStream());var p=c.isSegmentAppendFromIdx(xe.VIDEO,o.player.currentTime),W=c.isSegmentAppendFromIdx(xe.AUDIO,o.player.currentTime);p&&W&&(R.endOfStream(),hU.log("append all endofstream"));var m=o.player.buffered;if(m.length>0){var E=m.start(m.length-1),k=m.end(m.length-1);o.player.currentTime>E&&Math.abs(k-o.player.duration)<.5&&(hU.log("append buffer match endofstream"),R.endOfStream())}}else hU.log("appendBuffer destroy return")})).catch((function(e){hU.log("append buffer catch",e);var U=e&&e.errorCode===me[Ze][We.MSE_FULL];U||o.updateItemState(n,!1),U&&o.__dash__&&o.__dash__.clearBuffer(),e&&e.errorCode&&o.player&&o.player.emit(new wn(Ze,e.errorCode,{line:800,message:"append buffer".concat(e.message)}))}))}}},{key:"appendBuffer",value:function(e,U,t,n,F){var Q=this;return this._pluginInst.softVideo?(this._hasVideo&&"video"===e&&(this._vTrack=new dF,Object.keys(n).forEach((function(e){Q._vTrack[e]=n[e]}))),this._hasAudio&&"audio"===e&&(this._aTrack=new rF,Object.keys(F).forEach((function(e){Q._aTrack[e]=F[e]}))),this.mse.appendBuffer(this._vTrack,this._aTrack),Promise.resolve()):this.mse.append(e,new Uint8Array(U),t)}},{key:"changeType",value:function(e,U){var t="";t=e===xe.VIDEO?'video/mp4; codecs="'.concat(U,'"'):'audio/mp4; codecs="'.concat(U,'"'),this.mse.changeType&&this.mse.changeType(e,t)}},{key:"emptyAction",value:function(e,U){var t=this.mse;return t._enqueueOp(e,(function(){t._onSBUpdateEnd(e)}),"emptyAction",U)}},{key:"abortLoadingTasks",value:(t=R(o().mark((function e(){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.loader.cancel();case 2:if(this._onLoadingItems)for(U=0;U<this._onLoadingItems.length;U++)this.updateItemState(this._onLoadingItems[U],!1);hU.log("dash abortLoadingTasks"),this._onLoadingItems=[];case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"updateItemState",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=[];e.length>0?t=e:t.push(e),t.forEach((function(e){e.downloaded=U?CU:vU}))}},{key:"mseLog",value:function(e,U,t,n){hU.mse("type-".concat(t,"-start-").concat(U.start,"-end-").concat(U.end,"-").concat(e,",range:").concat(JSON.stringify(n||U.range)))}},{key:"emitPreloadHit",value:function(e){hU.preload("emit preloadhit",e),this.player&&this.player.emit("log",{type:"onetemp",action:"append",data:{preload_hit:"".concat(e,"|")}})}},{key:"destroy",value:function(){var e;this.loader.cancel(),iQ(this.loader),null===(e=this._secret)||void 0===e||e.destroy(),this._hasDestroyed=!0}},{key:"clearFailedSegment",value:function(){this.segment_request={video:[],audio:[]},this.player&&this.player.emit(gU,this.segment_request)}},{key:"checkPCND",value:(U=R(o().mark((function e(){var U,t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,U=this._pluginInst.currentDefitionFromPlayer,t=U.item,e.next=5,this._pcdnScv.checkPCND(t);case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("error",e.t0);case 10:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(){return U.apply(this,arguments)})},{key:"isOpenPCDN",value:function(e){var U=this;if(this._pcdnScv){var t=this._pluginInst.currentDefitionFromPlayer.item.bitrate,n=e-this.player.currentTime;this._pcdnScv.isOpenPCDN(n,t,R(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,U.abortLoadingTasks();case 2:case"end":return e.stop()}}),e)}))))}}},{key:"pcdnReqCnt",value:function(){return this._pcdnScv.pcdnReqCnt||{}}},{key:"pcdnVVStat",value:function(){return this._pcdnScv.pcdnVVStat||{}}}]),e}(),kl=El,yl="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBBPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sZz1mdW5jdGlvbihBKXt0cnl7cmV0dXJuISFBKCl9Y2F0Y2goZyl7cmV0dXJuITB9fSxJPXt9LnRvU3RyaW5nLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEkuY2FsbChBKS5zbGljZSg4LC0xKX0sUT1CLEM9IiIuc3BsaXQsRT1nKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09UShBKT9DLmNhbGwoQSwiIik6T2JqZWN0KEEpfTpPYmplY3QsaT1mdW5jdGlvbihBKXtpZihudWxsPT1BKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitBKTtyZXR1cm4gQX0sdD1FLG89aSxlPWZ1bmN0aW9uKEEpe3JldHVybiB0KG8oQSkpfSxuPWZ1bmN0aW9uKEEpe3JldHVybiBBJiZBLk1hdGg9PU1hdGgmJkF9LHI9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBBJiZBKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhPXtleHBvcnRzOnt9fSxzPSFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYz17fSxoPWZ1bmN0aW9uKEEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgQT9udWxsIT09QToiZnVuY3Rpb24iPT10eXBlb2YgQX0sRD1oLHk9ci5kb2N1bWVudCxmPUQoeSkmJkQoeS5jcmVhdGVFbGVtZW50KSx3PWZ1bmN0aW9uKEEpe3JldHVybiBmP3kuY3JlYXRlRWxlbWVudChBKTp7fX0sdT13LEY9IXMmJiFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkodSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLEc9aCxkPWZ1bmN0aW9uKEEpe2lmKCFHKEEpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoQSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIEF9LFI9aCxsPWZ1bmN0aW9uKEEsZyl7aWYoIVIoQSkpcmV0dXJuIEE7dmFyIEksQjtpZihnJiYiZnVuY3Rpb24iPT10eXBlb2YoST1BLnRvU3RyaW5nKSYmIVIoQj1JLmNhbGwoQSkpKXJldHVybiBCO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihJPUEudmFsdWVPZikmJiFSKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjtpZighZyYmImZ1bmN0aW9uIj09dHlwZW9mKEk9QS50b1N0cmluZykmJiFSKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxrPXMsVT1GLFM9ZCxOPWwsTT1PYmplY3QuZGVmaW5lUHJvcGVydHk7Yy5mPWs/TTpmdW5jdGlvbihBLGcsSSl7aWYoUyhBKSxnPU4oZywhMCksUyhJKSxVKXRyeXtyZXR1cm4gTShBLGcsSSl9Y2F0Y2goQil7fWlmKCJnZXQiaW4gSXx8InNldCJpbiBJKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSSYmKEFbZ109SS52YWx1ZSksQX07dmFyIFk9ZnVuY3Rpb24oQSxnKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmQSksY29uZmlndXJhYmxlOiEoMiZBKSx3cml0YWJsZTohKDQmQSksdmFsdWU6Z319LEg9YyxwPVksSj1zP2Z1bmN0aW9uKEEsZyxJKXtyZXR1cm4gSC5mKEEsZyxwKDEsSSkpfTpmdW5jdGlvbihBLGcsSSl7cmV0dXJuIEFbZ109SSxBfSxMPXIsdj1KLEs9ZnVuY3Rpb24oQSxnKXt0cnl7dihMLEEsZyl9Y2F0Y2goSSl7TFtBXT1nfXJldHVybiBnfSx4PUsscT0iX19jb3JlLWpzX3NoYXJlZF9fIixtPXJbcV18fHgocSx7fSksYj1tOyhhLmV4cG9ydHM9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYltBXXx8KGJbQV09dm9pZCAwIT09Zz9nOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMTIuMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSk7dmFyIFQsaixaPWEuZXhwb3J0cyxPPWksVz1mdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KE8oQSkpfSxWPVcsWD17fS5oYXNPd25Qcm9wZXJ0eSxQPWZ1bmN0aW9uKEEsZyl7cmV0dXJuIFguY2FsbChWKEEpLGcpfSx6PTAsXz1NYXRoLnJhbmRvbSgpLCQ9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiK1N0cmluZyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrKCsreitfKS50b1N0cmluZygzNil9LEFBPXIsZ0E9cixJQT1mdW5jdGlvbihBKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQT9BOnZvaWQgMH0sQkE9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0lBKEFBW0FdKXx8SUEoZ0FbQV0pOkFBW0FdJiZBQVtBXVtnXXx8Z0FbQV0mJmdBW0FdW2ddfSxRQT1CQSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLENBPVFBLEVBPXIucHJvY2VzcyxpQT1FQSYmRUEudmVyc2lvbnMsdEE9aUEmJmlBLnY4O3RBP2o9KFQ9dEEuc3BsaXQoIi4iKSlbMF08ND8xOlRbMF0rVFsxXTpDQSYmKCEoVD1DQS5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fFRbMV0+PTc0KSYmKFQ9Q0EubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihqPVRbMV0pO3ZhciBvQSxlQT1qJiYraixuQT1lQSxyQT1nLGFBPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXJBKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfHwhU3ltYm9sLnNoYW0mJm5BJiZuQTw0MX0pKSxzQT1hQSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixjQT1yLGhBPVAsREE9JCx5QT1hQSxmQT1zQSx3QT1aKCJ3a3MiKSx1QT1jQS5TeW1ib2wsRkE9ZkE/dUE6dUEmJnVBLndpdGhvdXRTZXR0ZXJ8fERBLEdBPWZ1bmN0aW9uKEEpe3JldHVybiBoQSh3QSxBKSYmKHlBfHwic3RyaW5nIj09dHlwZW9mIHdBW0FdKXx8KHlBJiZoQSh1QSxBKT93QVtBXT11QVtBXTp3QVtBXT1GQSgiU3ltYm9sLiIrQSkpLHdBW0FdfSxkQT1NYXRoLmNlaWwsUkE9TWF0aC5mbG9vcixsQT1mdW5jdGlvbihBKXtyZXR1cm4gaXNOYU4oQT0rQSk/MDooQT4wP1JBOmRBKShBKX0sa0E9bEEsVUE9TWF0aC5taW4sU0E9ZnVuY3Rpb24oQSl7cmV0dXJuIEE+MD9VQShrQShBKSw5MDA3MTk5MjU0NzQwOTkxKTowfSxOQT1sQSxNQT1NYXRoLm1heCxZQT1NYXRoLm1pbixIQT1mdW5jdGlvbihBLGcpe3ZhciBJPU5BKEEpO3JldHVybiBJPDA/TUEoSStnLDApOllBKEksZyl9LHBBPWUsSkE9U0EsTEE9SEEsdkE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPXBBKGcpLEU9SkEoQy5sZW5ndGgpLGk9TEEoQixFKTtpZihBJiZJIT1JKXtmb3IoO0U+aTspaWYoKFE9Q1tpKytdKSE9USlyZXR1cm4hMH1lbHNlIGZvcig7RT5pO2krKylpZigoQXx8aSBpbiBDKSYmQ1tpXT09PUkpcmV0dXJuIEF8fGl8fDA7cmV0dXJuIUEmJi0xfX0sS0E9e2luY2x1ZGVzOnZBKCEwKSxpbmRleE9mOnZBKCExKX0seEE9e30scUE9UCxtQT1lLGJBPUtBLmluZGV4T2YsVEE9eEEsakE9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPW1BKEEpLFE9MCxDPVtdO2ZvcihJIGluIEIpIXFBKFRBLEkpJiZxQShCLEkpJiZDLnB1c2goSSk7Zm9yKDtnLmxlbmd0aD5ROylxQShCLEk9Z1tRKytdKSYmKH5iQShDLEkpfHxDLnB1c2goSSkpO3JldHVybiBDfSxaQT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLE9BPWpBLFdBPVpBLFZBPU9iamVjdC5rZXlzfHxmdW5jdGlvbihBKXtyZXR1cm4gT0EoQSxXQSl9LFhBPWMsUEE9ZCx6QT1WQSxfQT1zP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZyl7UEEoQSk7Zm9yKHZhciBJLEI9ekEoZyksUT1CLmxlbmd0aCxDPTA7UT5DOylYQS5mKEEsST1CW0MrK10sZ1tJXSk7cmV0dXJuIEF9LCRBPUJBKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLEFnPSQsZ2c9Wigia2V5cyIpLElnPWZ1bmN0aW9uKEEpe3JldHVybiBnZ1tBXXx8KGdnW0FdPUFnKEEpKX0sQmc9ZCxRZz1fQSxDZz1aQSxFZz14QSxpZz0kQSx0Zz13LG9nPSJwcm90b3R5cGUiLGVnPSJzY3JpcHQiLG5nPUlnKCJJRV9QUk9UTyIpLHJnPWZ1bmN0aW9uKCl7fSxhZz1mdW5jdGlvbihBKXtyZXR1cm4iPCIrZWcrIj4iK0ErIjwvIitlZysiPiJ9LHNnPWZ1bmN0aW9uKCl7dHJ5e29BPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goUSl7fXZhciBBLGcsSTtzZz1vQT9mdW5jdGlvbihBKXtBLndyaXRlKGFnKCIiKSksQS5jbG9zZSgpO3ZhciBnPUEucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gQT1udWxsLGd9KG9BKTooZz10ZygiaWZyYW1lIiksST0iamF2YSIrZWcrIjoiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsaWcuYXBwZW5kQ2hpbGQoZyksZy5zcmM9U3RyaW5nKEkpLChBPWcuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEEud3JpdGUoYWcoImRvY3VtZW50LkY9T2JqZWN0IikpLEEuY2xvc2UoKSxBLkYpO2Zvcih2YXIgQj1DZy5sZW5ndGg7Qi0tOylkZWxldGUgc2dbb2ddW0NnW0JdXTtyZXR1cm4gc2coKX07RWdbbmddPSEwO3ZhciBjZz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihBLGcpe3ZhciBJO3JldHVybiBudWxsIT09QT8ocmdbb2ddPUJnKEEpLEk9bmV3IHJnLHJnW29nXT1udWxsLElbbmddPUEpOkk9c2coKSx2b2lkIDA9PT1nP0k6UWcoSSxnKX0saGc9Y2csRGc9Yyx5Zz1HQSgidW5zY29wYWJsZXMiKSxmZz1BcnJheS5wcm90b3R5cGU7bnVsbD09ZmdbeWddJiZEZy5mKGZnLHlnLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aGcobnVsbCl9KTt2YXIgd2c9ZnVuY3Rpb24oQSl7ZmdbeWddW0FdPSEwfSx1Zz17fSxGZz1tLEdnPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiBGZy5pbnNwZWN0U291cmNlJiYoRmcuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gR2cuY2FsbChBKX0pO3ZhciBkZyxSZyxsZyxrZz1GZy5pbnNwZWN0U291cmNlLFVnPWtnLFNnPXIuV2Vha01hcCxOZz0iZnVuY3Rpb24iPT10eXBlb2YgU2cmJi9uYXRpdmUgY29kZS8udGVzdChVZyhTZykpLE1nPWgsWWc9SixIZz1QLHBnPW0sSmc9SWcsTGc9eEEsdmc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixLZz1yLldlYWtNYXA7aWYoTmd8fHBnLnN0YXRlKXt2YXIgeGc9cGcuc3RhdGV8fChwZy5zdGF0ZT1uZXcgS2cpLHFnPXhnLmdldCxtZz14Zy5oYXMsYmc9eGcuc2V0O2RnPWZ1bmN0aW9uKEEsZyl7aWYobWcuY2FsbCh4ZyxBKSl0aHJvdyBuZXcgVHlwZUVycm9yKHZnKTtyZXR1cm4gZy5mYWNhZGU9QSxiZy5jYWxsKHhnLEEsZyksZ30sUmc9ZnVuY3Rpb24oQSl7cmV0dXJuIHFnLmNhbGwoeGcsQSl8fHt9fSxsZz1mdW5jdGlvbihBKXtyZXR1cm4gbWcuY2FsbCh4ZyxBKX19ZWxzZXt2YXIgVGc9SmcoInN0YXRlIik7TGdbVGddPSEwLGRnPWZ1bmN0aW9uKEEsZyl7aWYoSGcoQSxUZykpdGhyb3cgbmV3IFR5cGVFcnJvcih2Zyk7cmV0dXJuIGcuZmFjYWRlPUEsWWcoQSxUZyxnKSxnfSxSZz1mdW5jdGlvbihBKXtyZXR1cm4gSGcoQSxUZyk/QVtUZ106e319LGxnPWZ1bmN0aW9uKEEpe3JldHVybiBIZyhBLFRnKX19dmFyIGpnPXtzZXQ6ZGcsZ2V0OlJnLGhhczpsZyxlbmZvcmNlOmZ1bmN0aW9uKEEpe3JldHVybiBsZyhBKT9SZyhBKTpkZyhBLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgSTtpZighTWcoZyl8fChJPVJnKGcpKS50eXBlIT09QSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitBKyIgcmVxdWlyZWQiKTtyZXR1cm4gSX19fSxaZz17fSxPZz17fSxXZz17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxWZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFhnPVZnJiYhV2cuY2FsbCh7MToyfSwxKTtPZy5mPVhnP2Z1bmN0aW9uKEEpe3ZhciBnPVZnKHRoaXMsQSk7cmV0dXJuISFnJiZnLmVudW1lcmFibGV9OldnO3ZhciBQZz1zLHpnPU9nLF9nPVksJGc9ZSxBST1sLGdJPVAsSUk9RixCST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1pnLmY9UGc/Qkk6ZnVuY3Rpb24oQSxnKXtpZihBPSRnKEEpLGc9QUkoZywhMCksSUkpdHJ5e3JldHVybiBCSShBLGcpfWNhdGNoKEkpe31pZihnSShBLGcpKXJldHVybiBfZyghemcuZi5jYWxsKEEsZyksQVtnXSl9O3ZhciBRST17ZXhwb3J0czp7fX0sQ0k9cixFST1KLGlJPVAsdEk9SyxvST1rZyxlST1qZy5nZXQsbkk9amcuZW5mb3JjZSxyST1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFFJLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFEsQz0hIUImJiEhQi51bnNhZmUsRT0hIUImJiEhQi5lbnVtZXJhYmxlLGk9ISFCJiYhIUIubm9UYXJnZXRHZXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEkmJigic3RyaW5nIiE9dHlwZW9mIGd8fGlJKEksIm5hbWUiKXx8RUkoSSwibmFtZSIsZyksKFE9bkkoSSkpLnNvdXJjZXx8KFEuc291cmNlPXJJLmpvaW4oInN0cmluZyI9PXR5cGVvZiBnP2c6IiIpKSksQSE9PUNJPyhDPyFpJiZBW2ddJiYoRT0hMCk6ZGVsZXRlIEFbZ10sRT9BW2ddPUk6RUkoQSxnLEkpKTpFP0FbZ109STp0SShnLEkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJmVJKHRoaXMpLnNvdXJjZXx8b0kodGhpcyl9KSk7dmFyIGFJPVFJLmV4cG9ydHMsc0k9e30sY0k9akEsaEk9WkEuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtzSS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gY0koQSxoSSl9O3ZhciBEST17fTtESS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIHlJLGZJLHdJLHVJPXNJLEZJPURJLEdJPWQsZEk9QkEoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBnPXVJLmYoR0koQSkpLEk9RkkuZjtyZXR1cm4gST9nLmNvbmNhdChJKEEpKTpnfSxSST1QLGxJPWRJLGtJPVpnLFVJPWMsU0k9ZyxOST0vI3xcLnByb3RvdHlwZVwuLyxNST1mdW5jdGlvbihBLGcpe3ZhciBJPUhJW1lJKEEpXTtyZXR1cm4gST09Skl8fEkhPXBJJiYoImZ1bmN0aW9uIj09dHlwZW9mIGc/U0koZyk6ISFnKX0sWUk9TUkubm9ybWFsaXplPWZ1bmN0aW9uKEEpe3JldHVybiBTdHJpbmcoQSkucmVwbGFjZShOSSwiLiIpLnRvTG93ZXJDYXNlKCl9LEhJPU1JLmRhdGE9e30scEk9TUkuTkFUSVZFPSJOIixKST1NSS5QT0xZRklMTD0iUCIsTEk9TUksdkk9cixLST1aZy5mLHhJPUoscUk9YUksbUk9SyxiST1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1sSShnKSxCPVVJLmYsUT1rSS5mLEM9MDtDPEkubGVuZ3RoO0MrKyl7dmFyIEU9SVtDXTtSSShBLEUpfHxCKEEsRSxRKGcsRSkpfX0sVEk9TEksakk9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGk9QS50YXJnZXQsdD1BLmdsb2JhbCxvPUEuc3RhdDtpZihJPXQ/dkk6bz92SVtpXXx8bUkoaSx7fSk6KHZJW2ldfHx7fSkucHJvdG90eXBlKWZvcihCIGluIGcpe2lmKEM9Z1tCXSxRPUEubm9UYXJnZXRHZXQ/KEU9S0koSSxCKSkmJkUudmFsdWU6SVtCXSwhVEkodD9COmkrKG8/Ii4iOiIjIikrQixBLmZvcmNlZCkmJnZvaWQgMCE9PVEpe2lmKHR5cGVvZiBDPT10eXBlb2YgUSljb250aW51ZTtiSShDLFEpfShBLnNoYW18fFEmJlEuc2hhbSkmJnhJKEMsInNoYW0iLCEwKSxxSShJLEIsQyxBKX19LFpJPSFnKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpLE9JPVAsV0k9VyxWST1aSSxYST1JZygiSUVfUFJPVE8iKSxQST1PYmplY3QucHJvdG90eXBlLHpJPVZJP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gQT1XSShBKSxPSShBLFhJKT9BW1hJXToiZnVuY3Rpb24iPT10eXBlb2YgQS5jb25zdHJ1Y3RvciYmQSBpbnN0YW5jZW9mIEEuY29uc3RydWN0b3I/QS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6QSBpbnN0YW5jZW9mIE9iamVjdD9QSTpudWxsfSxfST1nLCRJPXpJLEFCPUosZ0I9UCxJQj1HQSgiaXRlcmF0b3IiKSxCQj0hMTtbXS5rZXlzJiYoIm5leHQiaW4od0k9W10ua2V5cygpKT8oZkk9JEkoJEkod0kpKSkhPT1PYmplY3QucHJvdG90eXBlJiYoeUk9ZkkpOkJCPSEwKSwobnVsbD09eUl8fF9JKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiB5SVtJQl0uY2FsbChBKSE9PUF9KSkpJiYoeUk9e30pLGdCKHlJLElCKXx8QUIoeUksSUIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFFCPXtJdGVyYXRvclByb3RvdHlwZTp5SSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOkJCfSxDQj1jLmYsRUI9UCxpQj1HQSgidG9TdHJpbmdUYWciKSx0Qj1mdW5jdGlvbihBLGcsSSl7QSYmIUVCKEE9ST9BOkEucHJvdG90eXBlLGlCKSYmQ0IoQSxpQix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmd9KX0sb0I9UUIuSXRlcmF0b3JQcm90b3R5cGUsZUI9Y2csbkI9WSxyQj10QixhQj11ZyxzQj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjQj1oLGhCPWQsREI9ZnVuY3Rpb24oQSl7aWYoIWNCKEEpJiZudWxsIT09QSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyhBKSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIEF9LHlCPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGc9ITEsST17fTt0cnl7KEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLmNhbGwoSSxbXSksZz1JIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQil7fXJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBoQihJKSxEQihCKSxnP0EuY2FsbChJLEIpOkkuX19wcm90b19fPUIsSX19KCk6dm9pZCAwKSxmQj1qSSx3Qj1mdW5jdGlvbihBLGcsSSl7dmFyIEI9ZysiIEl0ZXJhdG9yIjtyZXR1cm4gQS5wcm90b3R5cGU9ZUIob0Ise25leHQ6bkIoMSxJKX0pLHJCKEEsQiwhMSksYUJbQl09c0IsQX0sdUI9ekksRkI9eUIsR0I9dEIsZEI9SixSQj1hSSxsQj11ZyxrQj1RQi5JdGVyYXRvclByb3RvdHlwZSxVQj1RQi5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFNCPUdBKCJpdGVyYXRvciIpLE5CPSJrZXlzIixNQj0idmFsdWVzIixZQj0iZW50cmllcyIsSEI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scEI9ZSxKQj13ZyxMQj11Zyx2Qj1qZyxLQj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt3QihJLGcsQik7dmFyIGksdCxvLGU9ZnVuY3Rpb24oQSl7aWYoQT09PVEmJmMpcmV0dXJuIGM7aWYoIVVCJiZBIGluIGEpcmV0dXJuIGFbQV07c3dpdGNoKEEpe2Nhc2UgTkI6Y2FzZSBNQjpjYXNlIFlCOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLEEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcyl9fSxuPWcrIiBJdGVyYXRvciIscj0hMSxhPUEucHJvdG90eXBlLHM9YVtTQl18fGFbIkBAaXRlcmF0b3IiXXx8USYmYVtRXSxjPSFVQiYmc3x8ZShRKSxoPSJBcnJheSI9PWcmJmEuZW50cmllc3x8cztpZihoJiYoaT11QihoLmNhbGwobmV3IEEpKSxrQiE9PU9iamVjdC5wcm90b3R5cGUmJmkubmV4dCYmKHVCKGkpIT09a0ImJihGQj9GQihpLGtCKToiZnVuY3Rpb24iIT10eXBlb2YgaVtTQl0mJmRCKGksU0IsSEIpKSxHQihpLG4sITApKSksUT09TUImJnMmJnMubmFtZSE9PU1CJiYocj0hMCxjPWZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0pLGFbU0JdIT09YyYmZEIoYSxTQixjKSxsQltnXT1jLFEpaWYodD17dmFsdWVzOmUoTUIpLGtleXM6Qz9jOmUoTkIpLGVudHJpZXM6ZShZQil9LEUpZm9yKG8gaW4gdCkoVUJ8fHJ8fCEobyBpbiBhKSkmJlJCKGEsbyx0W29dKTtlbHNlIGZCKHt0YXJnZXQ6Zyxwcm90bzohMCxmb3JjZWQ6VUJ8fHJ9LHQpO3JldHVybiB0fSx4Qj0iQXJyYXkgSXRlcmF0b3IiLHFCPXZCLnNldCxtQj12Qi5nZXR0ZXJGb3IoeEIpLGJCPUtCKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKEEsZyl7cUIodGhpcyx7dHlwZTp4Qix0YXJnZXQ6cEIoQSksaW5kZXg6MCxraW5kOmd9KX0pLChmdW5jdGlvbigpe3ZhciBBPW1CKHRoaXMpLGc9QS50YXJnZXQsST1BLmtpbmQsQj1BLmluZGV4Kys7cmV0dXJuIWd8fEI+PWcubGVuZ3RoPyhBLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1JP3t2YWx1ZTpCLGRvbmU6ITF9OiJ2YWx1ZXMiPT1JP3t2YWx1ZTpnW0JdLGRvbmU6ITF9Ont2YWx1ZTpbQixnW0JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKTtMQi5Bcmd1bWVudHM9TEIuQXJyYXksSkIoImtleXMiKSxKQigidmFsdWVzIiksSkIoImVudHJpZXMiKTt2YXIgVEI9e307VEJbR0EoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgakI9IltvYmplY3Qgel0iPT09U3RyaW5nKFRCKSxaQj1qQixPQj1CLFdCPUdBKCJ0b1N0cmluZ1RhZyIpLFZCPSJBcmd1bWVudHMiPT1PQihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLFhCPVpCP09COmZ1bmN0aW9uKEEpe3ZhciBnLEksQjtyZXR1cm4gdm9pZCAwPT09QT8iVW5kZWZpbmVkIjpudWxsPT09QT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihJPWZ1bmN0aW9uKEEsZyl7dHJ5e3JldHVybiBBW2ddfWNhdGNoKEkpe319KGc9T2JqZWN0KEEpLFdCKSk/STpWQj9PQihnKToiT2JqZWN0Ij09KEI9T0IoZykpJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jYWxsZWU/IkFyZ3VtZW50cyI6Qn0sUEI9WEIsekI9akI/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK1BCKHRoaXMpKyJdIn07akJ8fGFJKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIix6Qix7dW5zYWZlOiEwfSk7dmFyIF9CPXtleHBvcnRzOnt9fSwkQj1HQSgiaXRlcmF0b3IiKSxBUT0hMTt0cnl7dmFyIGdRPTAsSVE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWdRKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtBUT0hMH19O0lRWyRCXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKElRLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2goQnkpe312YXIgQlEsUVE9ZnVuY3Rpb24oQSxnKXtpZighZyYmIUFRKXJldHVybiExO3ZhciBJPSExO3RyeXt2YXIgQj17fTtCWyRCXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ST0hMH19fX0sQShCKX1jYXRjaChCeSl7fXJldHVybiBJfSxDUT0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3LEVRPUNRLGlRPXMsdFE9cixvUT1oLGVRPVAsblE9WEIsclE9SixhUT1hSSxzUT1jLmYsY1E9ekksaFE9eUIsRFE9R0EseVE9JCxmUT10US5JbnQ4QXJyYXksd1E9ZlEmJmZRLnByb3RvdHlwZSx1UT10US5VaW50OENsYW1wZWRBcnJheSxGUT11USYmdVEucHJvdG90eXBlLEdRPWZRJiZjUShmUSksZFE9d1EmJmNRKHdRKSxSUT1PYmplY3QucHJvdG90eXBlLGxRPVJRLmlzUHJvdG90eXBlT2Ysa1E9RFEoInRvU3RyaW5nVGFnIiksVVE9eVEoIlRZUEVEX0FSUkFZX1RBRyIpLFNRPUVRJiYhIWhRJiYiT3BlcmEiIT09blEodFEub3BlcmEpLE5RPSExLE1RPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sWVE9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fSxIUT1mdW5jdGlvbihBKXtpZighb1EoQSkpcmV0dXJuITE7dmFyIGc9blEoQSk7cmV0dXJuIGVRKE1RLGcpfHxlUShZUSxnKX07Zm9yKEJRIGluIE1RKXRRW0JRXXx8KFNRPSExKTtpZigoIVNRfHwiZnVuY3Rpb24iIT10eXBlb2YgR1F8fEdRPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEdRPWZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxTUSkpZm9yKEJRIGluIE1RKXRRW0JRXSYmaFEodFFbQlFdLEdRKTtpZigoIVNRfHwhZFF8fGRRPT09UlEpJiYoZFE9R1EucHJvdG90eXBlLFNRKSlmb3IoQlEgaW4gTVEpdFFbQlFdJiZoUSh0UVtCUV0ucHJvdG90eXBlLGRRKTtpZihTUSYmY1EoRlEpIT09ZFEmJmhRKEZRLGRRKSxpUSYmIWVRKGRRLGtRKSlmb3IoQlEgaW4gTlE9ITAsc1EoZFEsa1Ese2dldDpmdW5jdGlvbigpe3JldHVybiBvUSh0aGlzKT90aGlzW1VRXTp2b2lkIDB9fSksTVEpdFFbQlFdJiZyUSh0UVtCUV0sVVEsQlEpO3ZhciBwUT17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpTUSxUWVBFRF9BUlJBWV9UQUc6TlEmJlVRLGFUeXBlZEFycmF5OmZ1bmN0aW9uKEEpe2lmKEhRKEEpKXJldHVybiBBO3Rocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGFUeXBlZEFycmF5Q29uc3RydWN0b3I6ZnVuY3Rpb24oQSl7aWYoaFEpe2lmKGxRLmNhbGwoR1EsQSkpcmV0dXJuIEF9ZWxzZSBmb3IodmFyIGcgaW4gTVEpaWYoZVEoTVEsQlEpKXt2YXIgST10UVtnXTtpZihJJiYoQT09PUl8fGxRLmNhbGwoSSxBKSkpcmV0dXJuIEF9dGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbihBLGcsSSl7aWYoaVEpe2lmKEkpZm9yKHZhciBCIGluIE1RKXt2YXIgUT10UVtCXTtpZihRJiZlUShRLnByb3RvdHlwZSxBKSl0cnl7ZGVsZXRlIFEucHJvdG90eXBlW0FdfWNhdGNoKEJ5KXt9fWRRW0FdJiYhSXx8YVEoZFEsQSxJP2c6U1EmJndRW0FdfHxnKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aWYoaVEpe2lmKGhRKXtpZihJKWZvcihCIGluIE1RKWlmKChRPXRRW0JdKSYmZVEoUSxBKSl0cnl7ZGVsZXRlIFFbQV19Y2F0Y2goQnkpe31pZihHUVtBXSYmIUkpcmV0dXJuO3RyeXtyZXR1cm4gYVEoR1EsQSxJP2c6U1EmJkdRW0FdfHxnKX1jYXRjaChCeSl7fX1mb3IoQiBpbiBNUSkhKFE9dFFbQl0pfHxRW0FdJiYhSXx8YVEoUSxBLGcpfX0saXNWaWV3OmZ1bmN0aW9uKEEpe2lmKCFvUShBKSlyZXR1cm4hMTt2YXIgZz1uUShBKTtyZXR1cm4iRGF0YVZpZXciPT09Z3x8ZVEoTVEsZyl8fGVRKFlRLGcpfSxpc1R5cGVkQXJyYXk6SFEsVHlwZWRBcnJheTpHUSxUeXBlZEFycmF5UHJvdG90eXBlOmRRfSxKUT1yLExRPWcsdlE9UVEsS1E9cFEuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyx4UT1KUS5BcnJheUJ1ZmZlcixxUT1KUS5JbnQ4QXJyYXksbVE9IUtRfHwhTFEoKGZ1bmN0aW9uKCl7cVEoMSl9KSl8fCFMUSgoZnVuY3Rpb24oKXtuZXcgcVEoLTEpfSkpfHwhdlEoKGZ1bmN0aW9uKEEpe25ldyBxUSxuZXcgcVEobnVsbCksbmV3IHFRKDEuNSksbmV3IHFRKEEpfSksITApfHxMUSgoZnVuY3Rpb24oKXtyZXR1cm4gMSE9PW5ldyBxUShuZXcgeFEoMiksMSx2b2lkIDApLmxlbmd0aH0pKSxiUT1hSSxUUT1mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCIGluIGcpYlEoQSxCLGdbQl0sSSk7cmV0dXJuIEF9LGpRPWZ1bmN0aW9uKEEsZyxJKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhJP0krIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiBBfSxaUT1sQSxPUT1TQSxXUT1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBnPVpRKEEpLEk9T1EoZyk7aWYoZyE9PUkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIG9yIGluZGV4Iik7cmV0dXJuIEl9LFZRPU1hdGguYWJzLFhRPU1hdGgucG93LFBRPU1hdGguZmxvb3IselE9TWF0aC5sb2csX1E9TWF0aC5MTjIsJFE9VyxBQz1IQSxnQz1TQSxJQz1mdW5jdGlvbihBKXtmb3IodmFyIGc9JFEodGhpcyksST1nQyhnLmxlbmd0aCksQj1hcmd1bWVudHMubGVuZ3RoLFE9QUMoQj4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsSSksQz1CPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxFPXZvaWQgMD09PUM/STpBQyhDLEkpO0U+UTspZ1tRKytdPUE7cmV0dXJuIGd9LEJDPXIsUUM9cyxDQz1DUSxFQz1KLGlDPVRRLHRDPWcsb0M9alEsZUM9bEEsbkM9U0EsckM9V1EsYUM9e3BhY2s6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFEsQyxFPW5ldyBBcnJheShJKSxpPTgqSS1nLTEsdD0oMTw8aSktMSxvPXQ+PjEsZT0yMz09PWc/WFEoMiwtMjQpLVhRKDIsLTc3KTowLG49QTwwfHwwPT09QSYmMS9BPDA/MTowLHI9MDtmb3IoKEE9VlEoQSkpIT1BfHxBPT09MS8wPyhRPUEhPUE/MTowLEI9dCk6KEI9UFEoelEoQSkvX1EpLEEqKEM9WFEoMiwtQikpPDEmJihCLS0sQyo9MiksKEErPUIrbz49MT9lL0M6ZSpYUSgyLDEtbykpKkM+PTImJihCKyssQy89MiksQitvPj10PyhRPTAsQj10KTpCK28+PTE/KFE9KEEqQy0xKSpYUSgyLGcpLEIrPW8pOihRPUEqWFEoMixvLTEpKlhRKDIsZyksQj0wKSk7Zz49ODtFW3IrK109MjU1JlEsUS89MjU2LGctPTgpO2ZvcihCPUI8PGd8USxpKz1nO2k+MDtFW3IrK109MjU1JkIsQi89MjU2LGktPTgpO3JldHVybiBFWy0tcl18PTEyOCpuLEV9LHVucGFjazpmdW5jdGlvbihBLGcpe3ZhciBJLEI9QS5sZW5ndGgsUT04KkItZy0xLEM9KDE8PFEpLTEsRT1DPj4xLGk9US03LHQ9Qi0xLG89QVt0LS1dLGU9MTI3Jm87Zm9yKG8+Pj03O2k+MDtlPTI1NiplK0FbdF0sdC0tLGktPTgpO2ZvcihJPWUmKDE8PC1pKS0xLGU+Pj0taSxpKz1nO2k+MDtJPTI1NipJK0FbdF0sdC0tLGktPTgpO2lmKDA9PT1lKWU9MS1FO2Vsc2V7aWYoZT09PUMpcmV0dXJuIEk/TmFOOm8/LTEvMDoxLzA7SSs9WFEoMixnKSxlLT1FfXJldHVybihvPy0xOjEpKkkqWFEoMixlLWcpfX0sc0M9ekksY0M9eUIsaEM9c0kuZixEQz1jLmYseUM9SUMsZkM9dEIsd0M9amcuZ2V0LHVDPWpnLnNldCxGQz0iQXJyYXlCdWZmZXIiLEdDPSJEYXRhVmlldyIsZEM9InByb3RvdHlwZSIsUkM9Ildyb25nIGluZGV4IixsQz1CQ1tGQ10sa0M9bEMsVUM9QkNbR0NdLFNDPVVDJiZVQ1tkQ10sTkM9T2JqZWN0LnByb3RvdHlwZSxNQz1CQy5SYW5nZUVycm9yLFlDPWFDLnBhY2ssSEM9YUMudW5wYWNrLHBDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQV19LEpDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NV19LExDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NSxBPj4xNiYyNTUsQT4+MjQmMjU1XX0sdkM9ZnVuY3Rpb24oQSl7cmV0dXJuIEFbM108PDI0fEFbMl08PDE2fEFbMV08PDh8QVswXX0sS0M9ZnVuY3Rpb24oQSl7cmV0dXJuIFlDKEEsMjMsNCl9LHhDPWZ1bmN0aW9uKEEpe3JldHVybiBZQyhBLDUyLDgpfSxxQz1mdW5jdGlvbihBLGcpe0RDKEFbZENdLGcse2dldDpmdW5jdGlvbigpe3JldHVybiB3Qyh0aGlzKVtnXX19KX0sbUM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ckMoSSksQz13QyhBKTtpZihRK2c+Qy5ieXRlTGVuZ3RoKXRocm93IE1DKFJDKTt2YXIgRT13QyhDLmJ1ZmZlcikuYnl0ZXMsaT1RK0MuYnl0ZU9mZnNldCx0PUUuc2xpY2UoaSxpK2cpO3JldHVybiBCP3Q6dC5yZXZlcnNlKCl9LGJDPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1yQyhJKSxpPXdDKEEpO2lmKEUrZz5pLmJ5dGVMZW5ndGgpdGhyb3cgTUMoUkMpO2Zvcih2YXIgdD13QyhpLmJ1ZmZlcikuYnl0ZXMsbz1FK2kuYnl0ZU9mZnNldCxlPUIoK1EpLG49MDtuPGc7bisrKXRbbytuXT1lW0M/bjpnLW4tMV19O2lmKENDKXtpZighdEMoKGZ1bmN0aW9uKCl7bEMoMSl9KSl8fCF0QygoZnVuY3Rpb24oKXtuZXcgbEMoLTEpfSkpfHx0QygoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGxDLG5ldyBsQygxLjUpLG5ldyBsQyhOYU4pLGxDLm5hbWUhPUZDfSkpKXtmb3IodmFyIFRDLGpDPShrQz1mdW5jdGlvbihBKXtyZXR1cm4gb0ModGhpcyxrQyksbmV3IGxDKHJDKEEpKX0pW2RDXT1sQ1tkQ10sWkM9aEMobEMpLE9DPTA7WkMubGVuZ3RoPk9DOykoVEM9WkNbT0MrK10paW4ga0N8fEVDKGtDLFRDLGxDW1RDXSk7akMuY29uc3RydWN0b3I9a0N9Y0MmJnNDKFNDKSE9PU5DJiZjQyhTQyxOQyk7dmFyIFdDPW5ldyBVQyhuZXcga0MoMikpLFZDPVNDLnNldEludDg7V0Muc2V0SW50OCgwLDIxNDc0ODM2NDgpLFdDLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhV0MuZ2V0SW50OCgwKSYmV0MuZ2V0SW50OCgxKXx8aUMoU0Mse3NldEludDg6ZnVuY3Rpb24oQSxnKXtWQy5jYWxsKHRoaXMsQSxnPDwyND4+MjQpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe1ZDLmNhbGwodGhpcyxBLGc8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBrQz1mdW5jdGlvbihBKXtvQyh0aGlzLGtDLEZDKTt2YXIgZz1yQyhBKTt1Qyh0aGlzLHtieXRlczp5Qy5jYWxsKG5ldyBBcnJheShnKSwwKSxieXRlTGVuZ3RoOmd9KSxRQ3x8KHRoaXMuYnl0ZUxlbmd0aD1nKX0sVUM9ZnVuY3Rpb24oQSxnLEkpe29DKHRoaXMsVUMsR0MpLG9DKEEsa0MsR0MpO3ZhciBCPXdDKEEpLmJ5dGVMZW5ndGgsUT1lQyhnKTtpZihRPDB8fFE+Qil0aHJvdyBNQygiV3Jvbmcgb2Zmc2V0Iik7aWYoUSsoST12b2lkIDA9PT1JP0ItUTpuQyhJKSk+Qil0aHJvdyBNQygiV3JvbmcgbGVuZ3RoIik7dUModGhpcyx7YnVmZmVyOkEsYnl0ZUxlbmd0aDpJLGJ5dGVPZmZzZXQ6UX0pLFFDfHwodGhpcy5idWZmZXI9QSx0aGlzLmJ5dGVMZW5ndGg9SSx0aGlzLmJ5dGVPZmZzZXQ9USl9LFFDJiYocUMoa0MsImJ5dGVMZW5ndGgiKSxxQyhVQywiYnVmZmVyIikscUMoVUMsImJ5dGVMZW5ndGgiKSxxQyhVQywiYnl0ZU9mZnNldCIpKSxpQyhVQ1tkQ10se2dldEludDg6ZnVuY3Rpb24oQSl7cmV0dXJuIG1DKHRoaXMsMSxBKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihBKXtyZXR1cm4gbUModGhpcywxLEEpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbihBKXt2YXIgZz1tQyh0aGlzLDIsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuKGdbMV08PDh8Z1swXSk8PDE2Pj4xNn0sZ2V0VWludDE2OmZ1bmN0aW9uKEEpe3ZhciBnPW1DKHRoaXMsMixBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZ1sxXTw8OHxnWzBdfSxnZXRJbnQzMjpmdW5jdGlvbihBKXtyZXR1cm4gdkMobUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKX0sZ2V0VWludDMyOmZ1bmN0aW9uKEEpe3JldHVybiB2QyhtQyh0aGlzLDQsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihBKXtyZXR1cm4gSEMobUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDIzKX0sZ2V0RmxvYXQ2NDpmdW5jdGlvbihBKXtyZXR1cm4gSEMobUModGhpcyw4LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDUyKX0sc2V0SW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRJbnQxNjpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMixBLEpDLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRVaW50MTY6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDIsQSxKQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxMQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDMyOmZ1bmN0aW9uKEEsZyl7YkModGhpcyw0LEEsTEMsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxLQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihBLGcpe2JDKHRoaXMsOCxBLHhDLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfX0pO2ZDKGtDLEZDKSxmQyhVQyxHQyk7dmFyIFhDPXtBcnJheUJ1ZmZlcjprQyxEYXRhVmlldzpVQ30sUEM9bEEsekM9ZnVuY3Rpb24oQSl7dmFyIGc9UEMoQSk7aWYoZzwwKXRocm93IFJhbmdlRXJyb3IoIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMCIpO3JldHVybiBnfSxfQz1mdW5jdGlvbihBLGcpe3ZhciBJPXpDKEEpO2lmKEklZyl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBvZmZzZXQiKTtyZXR1cm4gSX0sJEM9WEIsQUU9dWcsZ0U9R0EoIml0ZXJhdG9yIiksSUU9ZnVuY3Rpb24oQSl7aWYobnVsbCE9QSlyZXR1cm4gQVtnRV18fEFbIkBAaXRlcmF0b3IiXXx8QUVbJEMoQSldfSxCRT11ZyxRRT1HQSgiaXRlcmF0b3IiKSxDRT1BcnJheS5wcm90b3R5cGUsRUU9ZnVuY3Rpb24oQSl7cmV0dXJuIHZvaWQgMCE9PUEmJihCRS5BcnJheT09PUF8fENFW1FFXT09PUEpfSxpRT1mdW5jdGlvbihBKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKEEpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gQX0sdEU9aUUsb0U9ZnVuY3Rpb24oQSxnLEkpe2lmKHRFKEEpLHZvaWQgMD09PWcpcmV0dXJuIEE7c3dpdGNoKEkpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5jYWxsKGcpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBBLmNhbGwoZyxJKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBBLmNhbGwoZyxJLEIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKEksQixRKXtyZXR1cm4gQS5jYWxsKGcsSSxCLFEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShnLGFyZ3VtZW50cyl9fSxlRT1XLG5FPVNBLHJFPUlFLGFFPUVFLHNFPW9FLGNFPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsaEU9QixERT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihBKXtyZXR1cm4iQXJyYXkiPT1oRShBKX0seUU9aCxmRT1ERSx3RT1HQSgic3BlY2llcyIpLHVFPWZ1bmN0aW9uKEEsZyl7dmFyIEk7cmV0dXJuIGZFKEEpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKEk9QS5jb25zdHJ1Y3Rvcil8fEkhPT1BcnJheSYmIWZFKEkucHJvdG90eXBlKT95RShJKSYmbnVsbD09PShJPUlbd0VdKSYmKEk9dm9pZCAwKTpJPXZvaWQgMCksbmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoMD09PWc/MDpnKX0sRkU9b0UsR0U9RSxkRT1XLFJFPVNBLGxFPXVFLGtFPVtdLnB1c2gsVUU9ZnVuY3Rpb24oQSl7dmFyIGc9MT09QSxJPTI9PUEsQj0zPT1BLFE9ND09QSxDPTY9PUEsRT03PT1BLGk9NT09QXx8QztyZXR1cm4gZnVuY3Rpb24odCxvLGUsbil7Zm9yKHZhciByLGEscz1kRSh0KSxjPUdFKHMpLGg9RkUobyxlLDMpLEQ9UkUoYy5sZW5ndGgpLHk9MCxmPW58fGxFLHc9Zz9mKHQsRCk6SXx8RT9mKHQsMCk6dm9pZCAwO0Q+eTt5KyspaWYoKGl8fHkgaW4gYykmJihhPWgocj1jW3ldLHkscyksQSkpaWYoZyl3W3ldPWE7ZWxzZSBpZihhKXN3aXRjaChBKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiByO2Nhc2UgNjpyZXR1cm4geTtjYXNlIDI6a0UuY2FsbCh3LHIpfWVsc2Ugc3dpdGNoKEEpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6a0UuY2FsbCh3LHIpfXJldHVybiBDPy0xOkJ8fFE/UTp3fX0sU0U9e2ZvckVhY2g6VUUoMCksbWFwOlVFKDEpLGZpbHRlcjpVRSgyKSxzb21lOlVFKDMpLGV2ZXJ5OlVFKDQpLGZpbmQ6VUUoNSksZmluZEluZGV4OlVFKDYpLGZpbHRlck91dDpVRSg3KX0sTkU9QkEsTUU9YyxZRT1zLEhFPUdBKCJzcGVjaWVzIikscEU9ZnVuY3Rpb24oQSl7dmFyIGc9TkUoQSksST1NRS5mO1lFJiZnJiYhZ1tIRV0mJkkoZyxIRSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxKRT1oLExFPXlCLHZFPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRO3JldHVybiBMRSYmImZ1bmN0aW9uIj09dHlwZW9mKEI9Zy5jb25zdHJ1Y3RvcikmJkIhPT1JJiZKRShRPUIucHJvdG90eXBlKSYmUSE9PUkucHJvdG90eXBlJiZMRShBLFEpLEF9LEtFPWpJLHhFPXIscUU9cyxtRT1tUSxiRT1wUSxURT1YQyxqRT1qUSxaRT1ZLE9FPUosV0U9U0EsVkU9V1EsWEU9X0MsUEU9bCx6RT1QLF9FPVhCLCRFPWgsQWk9Y2csZ2k9eUIsSWk9c0kuZixCaT1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEUsaT1lRShBKSx0PWFyZ3VtZW50cy5sZW5ndGgsbz10PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxlPXZvaWQgMCE9PW8sbj1yRShpKTtpZihudWxsIT1uJiYhYUUobikpZm9yKEU9KEM9bi5jYWxsKGkpKS5uZXh0LGk9W107IShRPUUuY2FsbChDKSkuZG9uZTspaS5wdXNoKFEudmFsdWUpO2ZvcihlJiZ0PjImJihvPXNFKG8sYXJndW1lbnRzWzJdLDIpKSxJPW5FKGkubGVuZ3RoKSxCPW5ldyhjRSh0aGlzKSkoSSksZz0wO0k+ZztnKyspQltnXT1lP28oaVtnXSxnKTppW2ddO3JldHVybiBCfSxRaT1TRS5mb3JFYWNoLENpPXBFLEVpPWMsaWk9WmcsdGk9dkUsb2k9amcuZ2V0LGVpPWpnLnNldCxuaT1FaS5mLHJpPWlpLmYsYWk9TWF0aC5yb3VuZCxzaT14RS5SYW5nZUVycm9yLGNpPVRFLkFycmF5QnVmZmVyLGhpPVRFLkRhdGFWaWV3LERpPWJFLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MseWk9YkUuVFlQRURfQVJSQVlfVEFHLGZpPWJFLlR5cGVkQXJyYXksd2k9YkUuVHlwZWRBcnJheVByb3RvdHlwZSx1aT1iRS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLEZpPWJFLmlzVHlwZWRBcnJheSxHaT0iQllURVNfUEVSX0VMRU1FTlQiLGRpPSJXcm9uZyBsZW5ndGgiLFJpPWZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTAsQj1nLmxlbmd0aCxRPW5ldyh1aShBKSkoQik7Qj5JOylRW0ldPWdbSSsrXTtyZXR1cm4gUX0sbGk9ZnVuY3Rpb24oQSxnKXtuaShBLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBvaSh0aGlzKVtnXX19KX0sa2k9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuIEEgaW5zdGFuY2VvZiBjaXx8IkFycmF5QnVmZmVyIj09KGc9X0UoQSkpfHwiU2hhcmVkQXJyYXlCdWZmZXIiPT1nfSxVaT1mdW5jdGlvbihBLGcpe3JldHVybiBGaShBKSYmInN5bWJvbCIhPXR5cGVvZiBnJiZnIGluIEEmJlN0cmluZygrZyk9PVN0cmluZyhnKX0sU2k9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gVWkoQSxnPVBFKGcsITApKT9aRSgyLEFbZ10pOnJpKEEsZyl9LE5pPWZ1bmN0aW9uKEEsZyxJKXtyZXR1cm4hKFVpKEEsZz1QRShnLCEwKSkmJiRFKEkpJiZ6RShJLCJ2YWx1ZSIpKXx8ekUoSSwiZ2V0Iil8fHpFKEksInNldCIpfHxJLmNvbmZpZ3VyYWJsZXx8ekUoSSwid3JpdGFibGUiKSYmIUkud3JpdGFibGV8fHpFKEksImVudW1lcmFibGUiKSYmIUkuZW51bWVyYWJsZT9uaShBLGcsSSk6KEFbZ109SS52YWx1ZSxBKX07cUU/KERpfHwoaWkuZj1TaSxFaS5mPU5pLGxpKHdpLCJidWZmZXIiKSxsaSh3aSwiYnl0ZU9mZnNldCIpLGxpKHdpLCJieXRlTGVuZ3RoIiksbGkod2ksImxlbmd0aCIpKSxLRSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiFEaX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpTaSxkZWZpbmVQcm9wZXJ0eTpOaX0pLF9CLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPUEubWF0Y2goL1xkKyQvKVswXS84LFE9QSsoST8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsQz0iZ2V0IitBLEU9InNldCIrQSxpPXhFW1FdLHQ9aSxvPXQmJnQucHJvdG90eXBlLGU9e30sbj1mdW5jdGlvbihBLGcpe25pKEEsZyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKEEsZyl7dmFyIEk9b2koQSk7cmV0dXJuIEkudmlld1tDXShnKkIrSS5ieXRlT2Zmc2V0LCEwKX0odGhpcyxnKX0sc2V0OmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihBLGcsUSl7dmFyIEM9b2koQSk7SSYmKFE9KFE9YWkoUSkpPDA/MDpRPjI1NT8yNTU6MjU1JlEpLEMudmlld1tFXShnKkIrQy5ieXRlT2Zmc2V0LFEsITApfSh0aGlzLGcsQSl9LGVudW1lcmFibGU6ITB9KX07RGk/bUUmJih0PWcoKGZ1bmN0aW9uKEEsZyxJLEMpe3JldHVybiBqRShBLHQsUSksdGkoJEUoZyk/a2koZyk/dm9pZCAwIT09Qz9uZXcgaShnLFhFKEksQiksQyk6dm9pZCAwIT09ST9uZXcgaShnLFhFKEksQikpOm5ldyBpKGcpOkZpKGcpP1JpKHQsZyk6QmkuY2FsbCh0LGcpOm5ldyBpKFZFKGcpKSxBLHQpfSkpLGdpJiZnaSh0LGZpKSxRaShJaShpKSwoZnVuY3Rpb24oQSl7QSBpbiB0fHxPRSh0LEEsaVtBXSl9KSksdC5wcm90b3R5cGU9byk6KHQ9ZygoZnVuY3Rpb24oQSxnLEksQyl7akUoQSx0LFEpO3ZhciBFLGksbyxlPTAscj0wO2lmKCRFKGcpKXtpZigha2koZykpcmV0dXJuIEZpKGcpP1JpKHQsZyk6QmkuY2FsbCh0LGcpO0U9ZyxyPVhFKEksQik7dmFyIGE9Zy5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PUMpe2lmKGElQil0aHJvdyBzaShkaSk7aWYoKGk9YS1yKTwwKXRocm93IHNpKGRpKX1lbHNlIGlmKChpPVdFKEMpKkIpK3I+YSl0aHJvdyBzaShkaSk7bz1pL0J9ZWxzZSBvPVZFKGcpLEU9bmV3IGNpKGk9bypCKTtmb3IoZWkoQSx7YnVmZmVyOkUsYnl0ZU9mZnNldDpyLGJ5dGVMZW5ndGg6aSxsZW5ndGg6byx2aWV3Om5ldyBoaShFKX0pO2U8bzspbihBLGUrKyl9KSksZ2kmJmdpKHQsZmkpLG89dC5wcm90b3R5cGU9QWkod2kpKSxvLmNvbnN0cnVjdG9yIT09dCYmT0UobywiY29uc3RydWN0b3IiLHQpLHlpJiZPRShvLHlpLFEpLGVbUV09dCxLRSh7Z2xvYmFsOiEwLGZvcmNlZDp0IT1pLHNoYW06IURpfSxlKSxHaSBpbiB0fHxPRSh0LEdpLEIpLEdpIGluIG98fE9FKG8sR2ksQiksQ2koUSl9KTpfQi5leHBvcnRzPWZ1bmN0aW9uKCl7fTt2YXIgTWk9X0IuZXhwb3J0cztNaSgiVWludDgiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKTt2YXIgWWk9VyxIaT1IQSxwaT1TQSxKaT1NYXRoLm1pbixMaT1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbihBLGcpe3ZhciBJPVlpKHRoaXMpLEI9cGkoSS5sZW5ndGgpLFE9SGkoQSxCKSxDPUhpKGcsQiksRT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxpPUppKCh2b2lkIDA9PT1FP0I6SGkoRSxCKSktQyxCLVEpLHQ9MTtmb3IoQzxRJiZRPEMraSYmKHQ9LTEsQys9aS0xLFErPWktMSk7aS0tID4wOylDIGluIEk/SVtRXT1JW0NdOmRlbGV0ZSBJW1FdLFErPXQsQys9dDtyZXR1cm4gSX0sdmk9TGksS2k9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImNvcHlXaXRoaW4iLChmdW5jdGlvbihBLGcpe3JldHVybiB2aS5jYWxsKEtpKHRoaXMpLEEsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSk7dmFyIHhpPVNFLmV2ZXJ5LHFpPXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJldmVyeSIsKGZ1bmN0aW9uKEEpe3JldHVybiB4aShxaSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgbWk9SUMsYmk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbGwiLChmdW5jdGlvbihBKXtyZXR1cm4gbWkuYXBwbHkoYmkodGhpcyksYXJndW1lbnRzKX0pKTt2YXIgVGk9ZCxqaT1pRSxaaT1HQSgic3BlY2llcyIpLE9pPWZ1bmN0aW9uKEEsZyl7dmFyIEksQj1UaShBKS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09Qnx8bnVsbD09KEk9VGkoQilbWmldKT9nOmppKEkpfSxXaT1wUS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLFZpPU9pLFhpPVNFLmZpbHRlcixQaT1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1WaShBLEEuY29uc3RydWN0b3IpLEI9MCxRPWcubGVuZ3RoLEM9bmV3KFdpKEkpKShRKTtRPkI7KUNbQl09Z1tCKytdO3JldHVybiBDfSx6aT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsdGVyIiwoZnVuY3Rpb24oQSl7dmFyIGc9WGkoemkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIFBpKHRoaXMsZyl9KSk7dmFyIF9pPVNFLmZpbmQsJGk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbmQiLChmdW5jdGlvbihBKXtyZXR1cm4gX2koJGkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIEF0PVNFLmZpbmRJbmRleCxndD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZEluZGV4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIEF0KGd0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBJdD1TRS5mb3JFYWNoLEJ0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmb3JFYWNoIiwoZnVuY3Rpb24oQSl7SXQoQnQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIFF0PUtBLmluY2x1ZGVzLEN0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJpbmNsdWRlcyIsKGZ1bmN0aW9uKEEpe3JldHVybiBRdChDdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgRXQ9S0EuaW5kZXhPZixpdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiaW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBFdChpdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgdHQ9cixvdD1wUSxldD1iQixudD1HQSgiaXRlcmF0b3IiKSxydD10dC5VaW50OEFycmF5LGF0PWV0LnZhbHVlcyxzdD1ldC5rZXlzLGN0PWV0LmVudHJpZXMsaHQ9b3QuYVR5cGVkQXJyYXksRHQ9b3QuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCx5dD1ydCYmcnQucHJvdG90eXBlW250XSxmdD0hIXl0JiYoInZhbHVlcyI9PXl0Lm5hbWV8fG51bGw9PXl0Lm5hbWUpLHd0PWZ1bmN0aW9uKCl7cmV0dXJuIGF0LmNhbGwoaHQodGhpcykpfTtEdCgiZW50cmllcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN0LmNhbGwoaHQodGhpcykpfSkpLER0KCJrZXlzIiwoZnVuY3Rpb24oKXtyZXR1cm4gc3QuY2FsbChodCh0aGlzKSl9KSksRHQoInZhbHVlcyIsd3QsIWZ0KSxEdChudCx3dCwhZnQpO3ZhciB1dD1wUS5hVHlwZWRBcnJheSxGdD1bXS5qb2luOygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJqb2luIiwoZnVuY3Rpb24oQSl7cmV0dXJuIEZ0LmFwcGx5KHV0KHRoaXMpLGFyZ3VtZW50cyl9KSk7dmFyIEd0PWcsZHQ9ZnVuY3Rpb24oQSxnKXt2YXIgST1bXVtBXTtyZXR1cm4hIUkmJkd0KChmdW5jdGlvbigpe0kuY2FsbChudWxsLGd8fGZ1bmN0aW9uKCl7dGhyb3cgMX0sMSl9KSl9LFJ0PWUsbHQ9bEEsa3Q9U0EsVXQ9ZHQsU3Q9TWF0aC5taW4sTnQ9W10ubGFzdEluZGV4T2YsTXQ9ISFOdCYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxZdD1VdCgibGFzdEluZGV4T2YiKSxIdD1NdHx8IVl0P2Z1bmN0aW9uKEEpe2lmKE10KXJldHVybiBOdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGc9UnQodGhpcyksST1rdChnLmxlbmd0aCksQj1JLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKEI9U3QoQixsdChhcmd1bWVudHNbMV0pKSksQjwwJiYoQj1JK0IpO0I+PTA7Qi0tKWlmKEIgaW4gZyYmZ1tCXT09PUEpcmV0dXJuIEJ8fDA7cmV0dXJuLTF9Ok50LHB0PUh0LEp0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJsYXN0SW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBwdC5hcHBseShKdCh0aGlzKSxhcmd1bWVudHMpfSkpO3ZhciBMdD1TRS5tYXAsdnQ9T2ksS3Q9cFEuYVR5cGVkQXJyYXkseHQ9cFEuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgibWFwIiwoZnVuY3Rpb24oQSl7cmV0dXJuIEx0KEt0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyh4dCh2dChBLEEuY29uc3RydWN0b3IpKSkoZyl9KSl9KSk7dmFyIHF0PWlFLG10PVcsYnQ9RSxUdD1TQSxqdD1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIsUSl7cXQoSSk7dmFyIEM9bXQoZyksRT1idChDKSxpPVR0KEMubGVuZ3RoKSx0PUE/aS0xOjAsbz1BPy0xOjE7aWYoQjwyKWZvcig7Oyl7aWYodCBpbiBFKXtRPUVbdF0sdCs9bzticmVha31pZih0Kz1vLEE/dDwwOmk8PXQpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtBP3Q+PTA6aT50O3QrPW8pdCBpbiBFJiYoUT1JKFEsRVt0XSx0LEMpKTtyZXR1cm4gUX19LFp0PXtsZWZ0Omp0KCExKSxyaWdodDpqdCghMCl9LE90PVp0LmxlZnQsV3Q9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInJlZHVjZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBPdChXdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBWdD1adC5yaWdodCxYdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgicmVkdWNlUmlnaHQiLChmdW5jdGlvbihBKXtyZXR1cm4gVnQoWHQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgUHQ9cFEuYVR5cGVkQXJyYXksenQ9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxfdD1NYXRoLmZsb29yO3p0KCJyZXZlcnNlIiwoZnVuY3Rpb24oKXtmb3IodmFyIEEsZz10aGlzLEk9UHQoZykubGVuZ3RoLEI9X3QoSS8yKSxRPTA7UTxCOylBPWdbUV0sZ1tRKytdPWdbLS1JXSxnW0ldPUE7cmV0dXJuIGd9KSk7dmFyICR0PVNBLEFvPV9DLGdvPVcsSW89cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNldCIsKGZ1bmN0aW9uKEEpe0lvKHRoaXMpO3ZhciBnPUFvKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDEpLEk9dGhpcy5sZW5ndGgsQj1nbyhBKSxRPSR0KEIubGVuZ3RoKSxDPTA7aWYoUStnPkkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIik7Zm9yKDtDPFE7KXRoaXNbZytDXT1CW0MrK119KSxnKChmdW5jdGlvbigpe25ldyBJbnQ4QXJyYXkoMSkuc2V0KHt9KX0pKSk7dmFyIEJvPU9pLFFvPXBRLmFUeXBlZEFycmF5LENvPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsRW89W10uc2xpY2U7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNsaWNlIiwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9RW8uY2FsbChRbyh0aGlzKSxBLGcpLEI9Qm8odGhpcyx0aGlzLmNvbnN0cnVjdG9yKSxRPTAsQz1JLmxlbmd0aCxFPW5ldyhDbyhCKSkoQyk7Qz5ROylFW1FdPUlbUSsrXTtyZXR1cm4gRX0pLGcoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpKTt2YXIgaW89U0Uuc29tZSx0bz1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29tZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBpbyh0byh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgb289cFEuYVR5cGVkQXJyYXksZW89W10uc29ydDsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29ydCIsKGZ1bmN0aW9uKEEpe3JldHVybiBlby5jYWxsKG9vKHRoaXMpLEEpfSkpO3ZhciBubz1TQSxybz1IQSxhbz1PaSxzbz1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic3ViYXJyYXkiLChmdW5jdGlvbihBLGcpe3ZhciBJPXNvKHRoaXMpLEI9SS5sZW5ndGgsUT1ybyhBLEIpO3JldHVybiBuZXcoYW8oSSxJLmNvbnN0cnVjdG9yKSkoSS5idWZmZXIsSS5ieXRlT2Zmc2V0K1EqSS5CWVRFU19QRVJfRUxFTUVOVCxubygodm9pZCAwPT09Zz9COnJvKGcsQikpLVEpKX0pKTt2YXIgY289cFEsaG89ZyxEbz1yLkludDhBcnJheSx5bz1jby5hVHlwZWRBcnJheSxmbz1jby5leHBvcnRUeXBlZEFycmF5TWV0aG9kLHdvPVtdLnRvTG9jYWxlU3RyaW5nLHVvPVtdLnNsaWNlLEZvPSEhRG8mJmhvKChmdW5jdGlvbigpe3dvLmNhbGwobmV3IERvKDEpKX0pKTtmbygidG9Mb2NhbGVTdHJpbmciLChmdW5jdGlvbigpe3JldHVybiB3by5hcHBseShGbz91by5jYWxsKHlvKHRoaXMpKTp5byh0aGlzKSxhcmd1bWVudHMpfSksaG8oKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IERvKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhaG8oKGZ1bmN0aW9uKCl7RG8ucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpKTt2YXIgR289cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxSbz1nLGxvPXIuVWludDhBcnJheSxrbz1sbyYmbG8ucHJvdG90eXBlfHx7fSxVbz1bXS50b1N0cmluZyxTbz1bXS5qb2luO1JvKChmdW5jdGlvbigpe1VvLmNhbGwoe30pfSkpJiYoVW89ZnVuY3Rpb24oKXtyZXR1cm4gU28uY2FsbCh0aGlzKX0pO3ZhciBObz1rby50b1N0cmluZyE9VW87R28oInRvU3RyaW5nIixVbyxObyk7dmFyIE1vPVNFLmZvckVhY2gsWW89ZHQoImZvckVhY2giKT9bXS5mb3JFYWNoOmZ1bmN0aW9uKEEpe3JldHVybiBNbyh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSxIbz1yLHBvPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfSxKbz1ZbyxMbz1KO2Zvcih2YXIgdm8gaW4gcG8pe3ZhciBLbz1Ib1t2b10seG89S28mJktvLnByb3RvdHlwZTtpZih4byYmeG8uZm9yRWFjaCE9PUpvKXRyeXtMbyh4bywiZm9yRWFjaCIsSm8pfWNhdGNoKEJ5KXt4by5mb3JFYWNoPUpvfX12YXIgcW89cyxtbz1nLGJvPVZBLFRvPURJLGpvPU9nLFpvPVcsT289RSxXbz1PYmplY3QuYXNzaWduLFZvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxYbz0hV298fG1vKChmdW5jdGlvbigpe2lmKHFvJiYxIT09V28oe2I6MX0sV28oVm8oe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1ZvKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIEE9e30sZz17fSxJPVN5bWJvbCgpLEI9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gQVtJXT03LEIuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKEEpe2dbQV09QX0pKSw3IT1Xbyh7fSxBKVtJXXx8Ym8oV28oe30sZykpLmpvaW4oIiIpIT1CfSkpP2Z1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVpvKEEpLEI9YXJndW1lbnRzLmxlbmd0aCxRPTEsQz1Uby5mLEU9am8uZjtCPlE7KWZvcih2YXIgaSx0PU9vKGFyZ3VtZW50c1tRKytdKSxvPUM/Ym8odCkuY29uY2F0KEModCkpOmJvKHQpLGU9by5sZW5ndGgsbj0wO2U+bjspaT1vW24rK10scW8mJiFFLmNhbGwodCxpKXx8KElbaV09dFtpXSk7cmV0dXJuIEl9OldvLFBvPVhvO2pJKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PVBvfSx7YXNzaWduOlBvfSk7dmFyIHpvPWwsX289Yywkbz1ZLEFlPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQj16byhnKTtCIGluIEE/X28uZihBLEIsJG8oMCxJKSk6QVtCXT1JfSxnZT1nLEllPWVBLEJlPUdBKCJzcGVjaWVzIiksUWU9ZnVuY3Rpb24oQSl7cmV0dXJuIEllPj01MXx8IWdlKChmdW5jdGlvbigpe3ZhciBnPVtdO3JldHVybihnLmNvbnN0cnVjdG9yPXt9KVtCZV09ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09Z1tBXShCb29sZWFuKS5mb299KSl9LENlPWpJLEVlPWgsaWU9REUsdGU9SEEsb2U9U0EsZWU9ZSxuZT1BZSxyZT1HQSxhZT1RZSgic2xpY2UiKSxzZT1yZSgic3BlY2llcyIpLGNlPVtdLnNsaWNlLGhlPU1hdGgubWF4O2Z1bmN0aW9uIERlKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24geWUoQSxnKXtmb3IodmFyIEk9MDtJPGcubGVuZ3RoO0krKyl7dmFyIEI9Z1tJXTtCLmVudW1lcmFibGU9Qi5lbnVtZXJhYmxlfHwhMSxCLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gQiYmKEIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLFJlKEIua2V5KSxCKX19ZnVuY3Rpb24gZmUoQSxnLEkpe3JldHVybiBnJiZ5ZShBLnByb3RvdHlwZSxnKSxJJiZ5ZShBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gd2UoQSxnLEkpe3JldHVybihnPVJlKGcpKWluIEE/T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsZyx7dmFsdWU6SSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOkFbZ109SSxBfWZ1bmN0aW9uIHVlKEEsZyl7cmV0dXJuIGZ1bmN0aW9uKEEpe2lmKEFycmF5LmlzQXJyYXkoQSkpcmV0dXJuIEF9KEEpfHxmdW5jdGlvbihBLGcpe3ZhciBJPW51bGw9PUE/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmQVtTeW1ib2wuaXRlcmF0b3JdfHxBWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9SSl7dmFyIEIsUSxDLEUsaT1bXSx0PSEwLG89ITE7dHJ5e2lmKEM9KEk9SS5jYWxsKEEpKS5uZXh0LDA9PT1nKXtpZihPYmplY3QoSSkhPT1JKXJldHVybjt0PSExfWVsc2UgZm9yKDshKHQ9KEI9Qy5jYWxsKEkpKS5kb25lKSYmKGkucHVzaChCLnZhbHVlKSxpLmxlbmd0aCE9PWcpO3Q9ITApO31jYXRjaChlKXtvPSEwLFE9ZX1maW5hbGx5e3RyeXtpZighdCYmbnVsbCE9SS5yZXR1cm4mJihFPUkucmV0dXJuKCksT2JqZWN0KEUpIT09RSkpcmV0dXJufWZpbmFsbHl7aWYobyl0aHJvdyBRfX1yZXR1cm4gaX19KEEsZyl8fEdlKEEsZyl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBGZShBKXtyZXR1cm4gZnVuY3Rpb24oQSl7aWYoQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gZGUoQSl9KEEpfHxmdW5jdGlvbihBKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9QVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1BWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oQSl9KEEpfHxHZShBKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBHZShBLGcpe2lmKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgQSlyZXR1cm4gZGUoQSxnKTt2YXIgST1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1JJiZBLmNvbnN0cnVjdG9yJiYoST1BLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09SXx8IlNldCI9PT1JP0FycmF5LmZyb20oQSk6IkFyZ3VtZW50cyI9PT1JfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChJKT9kZShBLGcpOnZvaWQgMH19ZnVuY3Rpb24gZGUoQSxnKXsobnVsbD09Z3x8Zz5BLmxlbmd0aCkmJihnPUEubGVuZ3RoKTtmb3IodmFyIEk9MCxCPW5ldyBBcnJheShnKTtJPGc7SSsrKUJbSV09QVtJXTtyZXR1cm4gQn1mdW5jdGlvbiBSZShBKXt2YXIgZz1mdW5jdGlvbihBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpcmV0dXJuIEE7dmFyIEk9QVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PUkpe3ZhciBCPUkuY2FsbChBLGd8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXJldHVybiBCO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09Zz9TdHJpbmc6TnVtYmVyKShBKX0oQSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBnP2c6U3RyaW5nKGcpfUNlKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IWFlfSx7c2xpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQz1lZSh0aGlzKSxFPW9lKEMubGVuZ3RoKSxpPXRlKEEsRSksdD10ZSh2b2lkIDA9PT1nP0U6ZyxFKTtpZihpZShDKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihJPUMuY29uc3RydWN0b3IpfHxJIT09QXJyYXkmJiFpZShJLnByb3RvdHlwZSk/RWUoSSkmJm51bGw9PT0oST1JW3NlXSkmJihJPXZvaWQgMCk6ST12b2lkIDAsST09PUFycmF5fHx2b2lkIDA9PT1JKSlyZXR1cm4gY2UuY2FsbChDLGksdCk7Zm9yKEI9bmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoaGUodC1pLDApKSxRPTA7aTx0O2krKyxRKyspaSBpbiBDJiZuZShCLFEsQ1tpXSk7cmV0dXJuIEIubGVuZ3RoPVEsQn19KTt2YXIgbGU9InZpZGVvIixrZT0iYXVkaW8iLFVlPSJtZXRhZGF0YSIsU2U9ImF2YyIsTmU9ImhldmMiLE1lPSJhYWMiLFllPSJnNzExMGEiLEhlPSJnNzExMG0iLHBlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSksd2UodGhpcywiaWQiLDEpLHdlKHRoaXMsInR5cGUiLGxlKSx3ZSh0aGlzLCJjb2RlY1R5cGUiLFNlKSx3ZSh0aGlzLCJwaWQiLC0xKSx3ZSh0aGlzLCJodmNDIix2b2lkIDApLHdlKHRoaXMsImNvZGVjIiwiIiksd2UodGhpcywidGltZXNjYWxlIiwwKSx3ZSh0aGlzLCJmb3JtYXRUaW1lc2NhbGUiLDApLHdlKHRoaXMsInNlcXVlbmNlTnVtYmVyIiwwKSx3ZSh0aGlzLCJiYXNlTWVkaWFEZWNvZGVUaW1lIiwwKSx3ZSh0aGlzLCJiYXNlRHRzIiwwKSx3ZSh0aGlzLCJkdXJhdGlvbiIsMCksd2UodGhpcywid2FybmluZ3MiLFtdKSx3ZSh0aGlzLCJzYW1wbGVzIixbXSksd2UodGhpcywicHBzIixbXSksd2UodGhpcywic3BzIixbXSksd2UodGhpcywidnBzIixbXSksd2UodGhpcywiZnBzTnVtIiwwKSx3ZSh0aGlzLCJmcHNEZW4iLDApLHdlKHRoaXMsInNhclJhdGlvIixbXSksd2UodGhpcywid2lkdGgiLDApLHdlKHRoaXMsImhlaWdodCIsMCksd2UodGhpcywibmFsVW5pdFNpemUiLDQpLHdlKHRoaXMsInByZXNlbnQiLCExKSx3ZSh0aGlzLCJpc1ZpZGVvRW5jcnlwdGlvbiIsITEpLHdlKHRoaXMsImlzQXVkaW9FbmNyeXB0aW9uIiwhMSksd2UodGhpcywiaXNWaWRlbyIsITApLHdlKHRoaXMsImtpZCIsbnVsbCksd2UodGhpcywicHNzaCIsbnVsbCksd2UodGhpcywiZXh0Iix2b2lkIDApfXJldHVybiBmZShBLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlcXVlbmNlTnVtYmVyPXRoaXMud2lkdGg9dGhpcy5oZWlnaHQ9dGhpcy5mcHNEZW49dGhpcy5mcHNOdW09dGhpcy5kdXJhdGlvbj10aGlzLmJhc2VNZWRpYURlY29kZVRpbWU9dGhpcy50aW1lc2NhbGU9MCx0aGlzLmNvZGVjPSIiLHRoaXMucHJlc2VudD0hMSx0aGlzLnBpZD0tMSx0aGlzLnBwcz1bXSx0aGlzLnNwcz1bXSx0aGlzLnZwcz1bXSx0aGlzLnNhclJhdGlvPVtdLHRoaXMuc2FtcGxlcz1bXSx0aGlzLndhcm5pbmdzPVtdLHRoaXMuaHZjQz1udWxsfX0se2tleToiZXhpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5wcHMubGVuZ3RoJiZ0aGlzLnNwcy5sZW5ndGgmJnRoaXMuY29kZWMpfX0se2tleToiaGFzU2FtcGxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5zYW1wbGVzLmxlbmd0aH19LHtrZXk6ImlzRW5jcnlwdGlvbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWaWRlb0VuY3J5cHRpb259fV0pLEF9KCksSmU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7RGUodGhpcyxBKSx3ZSh0aGlzLCJpZCIsMiksd2UodGhpcywidHlwZSIsa2UpLHdlKHRoaXMsImNvZGVjVHlwZSIsTWUpLHdlKHRoaXMsInBpZCIsLTEpLHdlKHRoaXMsImNvZGVjIiwiIiksd2UodGhpcywic2VxdWVuY2VOdW1iZXIiLDApLHdlKHRoaXMsInNhbXBsZUR1cmF0aW9uIiwwKSx3ZSh0aGlzLCJ0aW1lc2NhbGUiLDApLHdlKHRoaXMsImZvcm1hdFRpbWVzY2FsZSIsMCksd2UodGhpcywiYmFzZU1lZGlhRGVjb2RlVGltZSIsMCksd2UodGhpcywiZHVyYXRpb24iLDApLHdlKHRoaXMsIndhcm5pbmdzIixbXSksd2UodGhpcywic2FtcGxlcyIsW10pLHdlKHRoaXMsImJhc2VEdHMiLDApLHdlKHRoaXMsInNhbXBsZVNpemUiLDE2KSx3ZSh0aGlzLCJzYW1wbGVSYXRlIiwwKSx3ZSh0aGlzLCJjaGFubmVsQ291bnQiLDApLHdlKHRoaXMsIm9iamVjdFR5cGUiLDApLHdlKHRoaXMsInNhbXBsZVJhdGVJbmRleCIsMCksd2UodGhpcywiY29uZmlnIixbXSksd2UodGhpcywicHJlc2VudCIsITEpLHdlKHRoaXMsImlzVmlkZW9FbmNyeXB0aW9uIiwhMSksd2UodGhpcywiaXNBdWRpb0VuY3J5cHRpb24iLCExKSx3ZSh0aGlzLCJraWQiLG51bGwpLHdlKHRoaXMsImV4dCIsdm9pZCAwKX1yZXR1cm4gZmUoQSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj0wLHRoaXMudGltZXNjYWxlPTAsdGhpcy5zYW1wbGVEdXJhdGlvbj0wLHRoaXMuc2FtcGxlUmF0ZT0wLHRoaXMuY2hhbm5lbENvdW50PTAsdGhpcy5iYXNlTWVkaWFEZWNvZGVUaW1lPTAsdGhpcy5wcmVzZW50PSExLHRoaXMucGlkPS0xLHRoaXMuY29kZWM9IiIsdGhpcy5zYW1wbGVzPVtdLHRoaXMuY29uZmlnPVtdLHRoaXMud2FybmluZ3M9W119fSx7a2V5OiJleGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hISh0aGlzLnNhbXBsZVJhdGUmJnRoaXMuY2hhbm5lbENvdW50JiZ0aGlzLmNvZGVjJiZ0aGlzLmNvZGVjVHlwZT09PU1lKX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2FtcGxlcy5sZW5ndGh9fSx7a2V5OiJpc0VuY3J5cHRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQXVkaW9FbmNyeXB0aW9ufX1dKSxBfSgpLExlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEksQil7RGUodGhpcyxBKSx3ZSh0aGlzLCJmbGFnIix7fSksd2UodGhpcywia2V5ZnJhbWUiLCExKSx3ZSh0aGlzLCJnb3BJZCIsMCksd2UodGhpcywiZHVyYXRpb24iLDApLHdlKHRoaXMsInNpemUiLDApLHdlKHRoaXMsInVuaXRzIixbXSksd2UodGhpcywiY2hyb21hRm9ybWF0Iiw0MjApLHRoaXMub3JpZ2luUHRzPXRoaXMucHRzPWcsdGhpcy5vcmlnaW5EdHM9dGhpcy5kdHM9SSxCJiYodGhpcy51bml0cz1CKX1yZXR1cm4gZmUoQSxbe2tleToiY3RzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdHMtdGhpcy5kdHN9fSx7a2V5OiJzZXRUb0tleWZyYW1lIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMua2V5ZnJhbWU9ITAsdGhpcy5mbGFnLmRlcGVuZHNPbj0yLHRoaXMuZmxhZy5pc05vblN5bmNTYW1wbGU9MH19XSksQX0oKSx2ZT1mZSgoZnVuY3Rpb24gQShnLEksQixRKXtEZSh0aGlzLEEpLHdlKHRoaXMsImR1cmF0aW9uIiwxMDI0KSx3ZSh0aGlzLCJmbGFnIix7ZGVwZW5kc09uOjIsaXNOb25TeW5jU2FtcGxlOjB9KSx3ZSh0aGlzLCJrZXlmcmFtZSIsITApLHRoaXMub3JpZ2luUHRzPXRoaXMucHRzPXRoaXMuZHRzPWcsdGhpcy5kYXRhPUksdGhpcy5zaXplPUkuYnl0ZUxlbmd0aCx0aGlzLnNhbXBsZU9mZnNldD1RLEImJih0aGlzLmR1cmF0aW9uPUIpfSkpLEtlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSksd2UodGhpcywiaWQiLDMpLHdlKHRoaXMsInR5cGUiLFVlKSx3ZSh0aGlzLCJ0aW1lc2NhbGUiLDApLHdlKHRoaXMsImZsdlNjcmlwdFNhbXBsZXMiLFtdKSx3ZSh0aGlzLCJzZWlTYW1wbGVzIixbXSl9cmV0dXJuIGZlKEEsW3trZXk6ImV4aXN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuZmx2U2NyaXB0U2FtcGxlcy5sZW5ndGgmJiF0aGlzLnNlaVNhbXBsZXMubGVuZ3RofHwhdGhpcy50aW1lc2NhbGUpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50aW1lc2NhbGU9MCx0aGlzLmZsdlNjcmlwdFNhbXBsZXM9W10sdGhpcy5zZWlTYW1wbGVzPVtdfX0se2tleToiaGFzU2FtcGxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEoIXRoaXMuZmx2U2NyaXB0U2FtcGxlcy5sZW5ndGgmJiF0aGlzLnNlaVNhbXBsZXMubGVuZ3RoKX19XSksQX0oKSx4ZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyxxZT14ZSYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvY2FsZUxvd2VyQ2FzZSgpLG1lPXhlJiZxZS5pbmNsdWRlcygiZmlyZWZveCIpLGJlPXhlJiZxZS5pbmNsdWRlcygiYW5kcm9pZCIpLFRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSl9cmV0dXJuIGZlKEEsbnVsbCxbe2tleToiZ2V0UmF0ZUluZGV4QnlSYXRlIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5GUkVRLmluZGV4T2YoZyl9fSx7a2V5OiJwYXJzZUFEVFMiLHZhbHVlOmZ1bmN0aW9uKGcsSSl7Zm9yKHZhciBCPWcubGVuZ3RoLFE9MDtRKzI8QiYmKDI1NSE9PWdbUV18fDI0MCE9KDI0NiZnW1ErMV0pKTspUSsrO2lmKCEoUT49Qikpe3ZhciBDPVEsRT1bXSxpPSg2MCZnW1ErMl0pPj4+Mix0PUEuRlJFUVtpXTtpZighdCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2FtcGxpbmcgaW5kZXg6ICIuY29uY2F0KGkpKTtmb3IodmFyIG8sZSxuPTErKCgxOTImZ1tRKzJdKT4+PjYpLHI9KDEmZ1tRKzJdKTw8MnwoMTkyJmdbUSszXSk+Pj42LGE9QS5fZ2V0Q29uZmlnKGkscixuKSxzPWEuY29uZmlnLGM9YS5jb2RlYyxoPTAsRD1BLmdldEZyYW1lRHVyYXRpb24odCk7USs3PEI7KWlmKDI1NT09PWdbUV0mJjI0MD09KDI0NiZnW1ErMV0pKXtpZihCLVE8KGU9KDMmZ1tRKzNdKTw8MTF8Z1tRKzRdPDwzfCgyMjQmZ1tRKzVdKT4+NSkpYnJlYWs7bz0yKigxJn5nW1ErMV0pLEUucHVzaCh7cHRzOkkraCpELGRhdGE6Zy5zdWJhcnJheShRKzcrbyxRK2UpfSksaCsrLFErPWV9ZWxzZSBRKys7cmV0dXJue3NraXA6QyxyZW1haW5pbmc6UT49Qj92b2lkIDA6Zy5zdWJhcnJheShRKSxmcmFtZXM6RSxzYW1wbGluZ0ZyZXF1ZW5jeUluZGV4Omksc2FtcGxlUmF0ZTp0LG9iamVjdFR5cGU6bixjaGFubmVsQ291bnQ6cixjb2RlYzpjLGNvbmZpZzpzLG9yaWdpbkNvZGVjOiJtcDRhLjQwLiIuY29uY2F0KG4pfX19fSx7a2V5OiJwYXJzZUF1ZGlvU3BlY2lmaWNDb25maWciLHZhbHVlOmZ1bmN0aW9uKGcpe2lmKGcubGVuZ3RoKXt2YXIgST1nWzBdPj4+MyxCPSg3JmdbMF0pPDwxfGdbMV0+Pj43LFE9KDEyMCZnWzFdKT4+PjMsQz1BLkZSRVFbQl07aWYoQyl7dmFyIEU9QS5fZ2V0Q29uZmlnKEIsUSxJKTtyZXR1cm57c2FtcGxpbmdGcmVxdWVuY3lJbmRleDpCLHNhbXBsZVJhdGU6QyxvYmplY3RUeXBlOkksY2hhbm5lbENvdW50OlEsY29uZmlnOkUuY29uZmlnLGNvZGVjOkUuY29kZWMsb3JpZ2luQ29kZWM6Im1wNGEuNDAuIi5jb25jYXQoSSl9fX19fSx7a2V5OiJnZXRGcmFtZUR1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gMTAyNCooYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNCkvQX19LHtrZXk6Il9nZXRDb25maWciLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEM9W107cmV0dXJuIG1lP0E+PTY/KEI9NSxRPUEtMyk6KEI9MixRPUEpOmJlPyhCPTIsUT1BKTooQj0yPT09SXx8NT09PUk/STo1LFE9QSxBPj02P1E9QS0zOjE9PT1nJiYoQj0yLFE9QSkpLENbMF09Qjw8MyxDWzBdfD0oMTQmQSk+PjEsQ1sxXT0oMSZBKTw8NyxDWzFdfD1nPDwzLDU9PT1CJiYoQ1sxXXw9KDE0JlEpPj4xLENbMl09KDEmUSk8PDcsQ1syXXw9OCxDWzNdPTApLHtjb25maWc6Qyxjb2RlYzoibXA0YS40MC4iLmNvbmNhdChCKX19fSx7a2V5OiJnZXRTaWxlbnRGcmFtZSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtpZigibXA0YS40MC4yIj09PUEpe2lmKDE9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzUsMTI4XSk7aWYoMj09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFszMywwLDczLDE0NCwyLDI1LDAsMzUsMTI4XSk7aWYoMz09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFswLDIwMCwwLDEyOCwzMiwxMzIsMSwzOCw2NCw4LDEwMCwwLDE0Ml0pO2lmKDQ9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMjgsNDQsMTI4LDgsMiw1Nl0pO2lmKDU9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMzAsNDgsNCwxNTMsMCwzMywxNDQsMiw1Nl0pO2lmKDY9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxMzAsNDgsNCwxNTMsMCwzMywxNDQsMiwwLDE3OCwwLDMyLDgsMjI0XSl9ZWxzZXtpZigxPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw3OCwyMzAsMTI4LDE4Niw4LDAsMCwwLDI4LDYsMjQxLDE5MywxMCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5NF0pO2lmKDI9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMSw2NCwzNCwxMjgsMTYzLDk0LDIzMCwxMjgsMTg2LDgsMCwwLDAsMCwxNDksMCw2LDI0MSwxNjEsMTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTRdKTtpZigzPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw5NCwyMzAsMTI4LDE4Niw4LDAsMCwwLDAsMTQ5LDAsNiwyNDEsMTYxLDEwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDk0XSl9fX1dKSxBfSgpO2Z1bmN0aW9uIGplKCl7Zm9yKHZhciBBPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoQSksST0wO0k8QTtJKyspZ1tJXT1hcmd1bWVudHNbSV07Zz1nLmZpbHRlcihCb29sZWFuKTt2YXIgQj1uZXcgVWludDhBcnJheShnLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KEEsUSksUSs9QS5ieXRlTGVuZ3RofSkpLEJ9d2UoVGUsIkZSRVEiLFs5NmUzLDg4MjAwLDY0ZTMsNDhlMyw0NDEwMCwzMmUzLDI0ZTMsMjIwNTAsMTZlMywxMmUzLDExMDI1LDhlMyw3MzUwXSk7dmFyIFplPU1hdGgucG93KDIsMzIpO2Z1bmN0aW9uIE9lKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDw4KSsoQVtnKzFdfHwwKX1mdW5jdGlvbiBXZShBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4oQVtnXTw8MjQ+Pj4wKSsoQVtnKzFdPDwxNikrKEFbZysyXTw8OCkrKEFbZyszXXx8MCl9ZnVuY3Rpb24gVmUoQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIFdlKEEsZykqWmUrV2UoQSxnKzQpfWZ1bmN0aW9uIFhlKEEpe3ZhciBnPSIiO2lmKEEuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zys9ZnVuY3Rpb24oQSl7cmV0dXJuKCIwIitOdW1iZXIoQSkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikudG9VcHBlckNhc2UoKX0oQSl9KSksZy5sZW5ndGg8PTMyKWZvcih2YXIgST0zMi1nLmxlbmd0aCxCPTA7QjxJO0IrKylnKz0iMCI7cmV0dXJuIGd9ZnVuY3Rpb24gUGUoQSl7aWYoIUFycmF5LmlzQXJyYXkoQSkpe2Zvcih2YXIgZz1bXSxJPSIiLEI9MDtCPEEubGVuZ3RoO0IrKylCJTImJihJPUFbQi0xXStBW0JdLGcucHVzaChwYXJzZUludChJLDE2KSksST0iIik7cmV0dXJuIGd9cmV0dXJuIEEubWFwKChmdW5jdGlvbihBKXtyZXR1cm4gcGFyc2VJbnQoQSwxNil9KSl9dmFyIHplPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSl9cmV0dXJuIGZlKEEsbnVsbCxbe2tleToiZmluZEJveCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPVtdO2lmKCFnKXJldHVybiBRO2Zvcih2YXIgQz0wLEU9IiIsaT0wO2cubGVuZ3RoPjc7KXtpZihDPVdlKGcpLEU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSksaT04LDE9PT1DPyhDPVZlKGcsOCksaSs9OCk6Q3x8KEM9Zy5sZW5ndGgpLCFJWzBdfHxFPT09SVswXSl7dmFyIHQ9Zy5zdWJhcnJheSgwLEMpO2lmKCEoSS5sZW5ndGg8MikpcmV0dXJuIEEuZmluZEJveCh0LnN1YmFycmF5KGkpLEkuc2xpY2UoMSksQitpKTtRLnB1c2goe3N0YXJ0OkIsc2l6ZTpDLGhlYWRlclNpemU6aSx0eXBlOkUsZGF0YTp0fSl9Qis9QyxnPWcuc3ViYXJyYXkoQyl9cmV0dXJuIFF9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLnRyYWNrSWQ9V2UoZyk7dmFyIEk9NCxCPTEmQS5mbGFncyxRPTImQS5mbGFncyxDPTgmQS5mbGFncyxFPTE2JkEuZmxhZ3MsaT0zMiZBLmZsYWdzO0ImJihJKz00LEEuYmFzZURhdGFPZmZzZXQ9V2UoZyxJKSxJKz00KSxRJiYoQS5zYW1wbGVEZXNjcmlwdGlvbkluZGV4PVdlKGcsSSksSSs9NCksQyYmKEEuZGVmYXVsdFNhbXBsZUR1cmF0aW9uPVdlKGcsSSksSSs9NCksRSYmKEEuZGVmYXVsdFNhbXBsZVNpemU9V2UoZyxJKSxJKz00KSxpJiYoQS5kZWZhdWx0U2FtcGxlRmxhZ3M9V2UoZyxJKSl9KSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wO0EucmVmZXJlbmNlX0lEPVdlKGcsSSksSSs9NCxBLnRpbWVzY2FsZT1XZShnLEkpLEkrPTQsMD09PUEudmVyc2lvbj8oQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1XZShnLEkpLEkrPTQsQS5maXJzdF9vZmZzZXQ9V2UoZyxJKSxJKz00KTooQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1WZShnLEkpLEkrPTgsQS5maXJzdF9vZmZzZXQ9VmUoZyxJKSxJKz04KSxJKz0yLEEucmVmZXJlbmNlcz1bXTt2YXIgQj1PZShnLEkpO0krPTI7Zm9yKHZhciBRPTA7UTxCO1ErKyl7dmFyIEM9e307QS5yZWZlcmVuY2VzLnB1c2goQyk7dmFyIEU9V2UoZyxJKTtJKz00LEMucmVmZXJlbmNlX3R5cGU9RT4+MzEmMSxDLnJlZmVyZW5jZWRfc2l6ZT0yMTQ3NDgzNjQ3JkUsQy5zdWJzZWdtZW50X2R1cmF0aW9uPVdlKGcsSSksRT1XZShnLEkrPTQpLEkrPTQsQy5zdGFydHNfd2l0aF9TQVA9RT4+MzEmMSxDLlNBUF90eXBlPUU+PjI4JjcsQy5TQVBfZGVsdGFfdGltZT0yNjg0MzU0NTUmRX19KSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZ24oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubXZoZD1BLm12aGQoQS5maW5kQm94KEksWyJtdmhkIl0sQilbMF0pLGcudHJhaz1BLmZpbmRCb3goSSxbInRyYWsiXSxCKS5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSksZy5wc3NoPUEucHNzaChBLmZpbmRCb3goSSxbInBzc2giXSxCKVswXSl9KSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudGltZXNjYWxlPVdlKGcsMTYpLEEuZHVyYXRpb249VmUoZywyMCksSSs9MjgpOihBLnRpbWVzY2FsZT1XZShnLDgpLEEuZHVyYXRpb249V2UoZywxMiksSSs9MTYpLEEubmV4dFRyYWNrSWQ9V2UoZyxJKzc2KX0pKX19LHtrZXk6InRyYWsiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7Zy50a2hkPUEudGtoZChBLmZpbmRCb3goSSxbInRraGQiXSxCKVswXSksZy5tZGlhPUEubWRpYShBLmZpbmRCb3goSSxbIm1kaWEiXSxCKVswXSl9KSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudHJhY2tJZD1XZShnLDE2KSxBLmR1cmF0aW9uPVZlKGcsMjQpLEkrPTMyKTooQS50cmFja0lkPVdlKGcsOCksQS5kdXJhdGlvbj1XZShnLDE2KSxJKz0yMCksQS53aWR0aD1XZShnLEkrNTIpLEEuaGVpZ2h0PVdlKGcsSSs1Nil9KSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZ24oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubWRoZD1BLm1kaGQoQS5maW5kQm94KEksWyJtZGhkIl0sQilbMF0pLGcuaGRscj1BLmhkbHIoQS5maW5kQm94KEksWyJoZGxyIl0sQilbMF0pLGcubWluZj1BLm1pbmYoQS5maW5kQm94KEksWyJtaW5mIl0sQilbMF0pfSkpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9MDsxPT09QS52ZXJzaW9uPyhBLnRpbWVzY2FsZT1XZShnLDE2KSxBLmR1cmF0aW9uPVZlKGcsMjApLEkrPTI4KTooQS50aW1lc2NhbGU9V2UoZyw4KSxBLmR1cmF0aW9uPVdlKGcsMTIpLEkrPTE2KTt2YXIgQj1PZShnLEkpO0EubGFuZ3VhZ2U9U3RyaW5nLmZyb21DaGFyQ29kZSg5NisoQj4+MTAmMzEpLDk2KyhCPj41JjMxKSw5NisoMzEmQikpfSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7MD09PUEudmVyc2lvbiYmKEEuaGFuZGxlclR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSkpfSkpfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnZtaGQ9QS52bWhkKEEuZmluZEJveChJLFsidm1oZCJdLEIpWzBdKSxnLnNtaGQ9QS5zbWhkKEEuZmluZEJveChJLFsic21oZCJdLEIpWzBdKSxnLnN0Ymw9QS5zdGJsKEEuZmluZEJveChJLFsic3RibCJdLEIpWzBdKX0pKX19LHtrZXk6InZtaGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBnbihBLCEwLChmdW5jdGlvbihBLGcpe0EuZ3JhcGhpY3Ntb2RlPU9lKGcpLEEub3Bjb2xvcj1bT2UoZywyKSxPZShnLDQpLE9lKGcsNildfSkpfX0se2tleToic21oZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5iYWxhbmNlPU9lKGcpfSkpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDLEU7Zy5zdHNkPUEuc3RzZChBLmZpbmRCb3goSSxbInN0c2QiXSxCKVswXSksZy5zdHRzPUEuc3R0cyhBLmZpbmRCb3goSSxbInN0dHMiXSxCKVswXSksZy5jdHRzPUEuY3R0cyhBLmZpbmRCb3goSSxbImN0dHMiXSxCKVswXSksZy5zdHNjPUEuc3RzYyhBLmZpbmRCb3goSSxbInN0c2MiXSxCKVswXSksZy5zdHN6PUEuc3RzeihBLmZpbmRCb3goSSxbInN0c3oiXSxCKVswXSksZy5zdGNvPUEuc3RjbyhBLmZpbmRCb3goSSxbInN0Y28iXSxCKVswXSksZy5zdGNvfHwoZy5jbzY0PUEuY282NChBLmZpbmRCb3goSSxbImNvNjQiXSxCKVswXSksZy5zdGNvPWcuY282NCk7dmFyIGk9bnVsbD09PShRPWcuc3RzZC5lbnRyaWVzWzBdKXx8dm9pZCAwPT09UXx8bnVsbD09PShDPVEuc2luZil8fHZvaWQgMD09PUN8fG51bGw9PT0oRT1DLnNjaGkpfHx2b2lkIDA9PT1FP3ZvaWQgMDpFLnRlbmMuZGVmYXVsdF9JVl9zaXplO2cuc3Rzcz1BLnN0c3MoQS5maW5kQm94KEksWyJzdHNzIl0sQilbMF0pLGcuc2VuYz1BLnNlbmMoQS5maW5kQm94KEksWyJzZW5jIl0sQilbMF0saSl9KSl9fSx7a2V5OiJzZW5jIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxJKXt2YXIgQj0wLFE9V2UoSSxCKTtCKz00LEEuc2FtcGxlcz1bXTtmb3IodmFyIEM9MDtDPFE7QysrKXtmb3IodmFyIEU9e0luaXRpYWxpemF0aW9uVmVjdG9yOltdfSxpPTA7aTxnO2krKylFLkluaXRpYWxpemF0aW9uVmVjdG9yW2ldPUlbQitpXTtpZihCKz1nLDImQS5mbGFncyl7RS5zdWJzYW1wbGVzPVtdO3ZhciB0PU9lKEksQik7Qis9Mjtmb3IodmFyIG89MDtvPHQ7bysrKXt2YXIgZT17fTtlLkJ5dGVzT2ZDbGVhckRhdGE9T2UoSSxCKSxCKz0yLGUuQnl0ZXNPZlByb3RlY3RlZERhdGE9V2UoSSxCKSxCKz00LEUuc3Vic2FtcGxlcy5wdXNoKGUpfX1BLnNhbXBsZXMucHVzaChFKX19KSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9W10sQj1bXSxRPTAsQz0wO0M8MTY7QysrKUIucHVzaChJbihnW1ErQ10pKTtpZihRKz0xNixBLnZlcnNpb24+MCl7dmFyIEU9V2UoZyxRKTtRKz00O2Zvcih2YXIgaT0wO2k8KCIiK0UpLmxlbmd0aDtpKyspZm9yKHZhciB0PTA7dDwxNjt0Kyspe3ZhciBvPWdbUV07USs9MSxJLnB1c2goSW4obykpfX12YXIgZT1XZShnLFEpO0EuZGF0YV9zaXplPWUsUSs9NCxBLmtpZD1JLEEuc3lzdGVtX2lkPUIsQS5idWZmZXI9Z30pKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCEwLChmdW5jdGlvbihnLEksQil7Zy5lbnRyeUNvdW50PVdlKEkpLGcuZW50cmllcz1BLmZpbmRCb3goSS5zdWJhcnJheSg0KSxbXSxCKzQpLm1hcCgoZnVuY3Rpb24oZyl7c3dpdGNoKGcudHlwZSl7Y2FzZSJhdmMxIjpjYXNlImF2YzIiOmNhc2UiYXZjMyI6Y2FzZSJhdmM0IjpyZXR1cm4gQS5hdmMxKGcpO2Nhc2UiaHZjMSI6Y2FzZSJoZXYxIjpyZXR1cm4gQS5odmMxKGcpO2Nhc2UibXA0YSI6cmV0dXJuIEEubXA0YShnKTtjYXNlImFsYXciOmNhc2UidWxhdyI6cmV0dXJuIEEuYWxhdyhnKTtjYXNlImVuY2EiOnJldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7Zy5jaGFubmVsQ291bnQ9T2UoSSwxNiksZy5zYW1wbGVzaXplPU9lKEksMTgpLGcuc2FtcGxlUmF0ZT1XZShJLDI0KS82NTUzNixJPUkuc3ViYXJyYXkoMjgpLGcuc2luZj1BLnNpbmYoQS5maW5kQm94KEksWyJzaW5mIl0sQilbMF0pLGcuZXNkcz1BLmVzZHMoQS5maW5kQm94KEksWyJlc2RzIl0sQilbMF0pfSkpO2Nhc2UiZW5jdiI6cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLndpZHRoPU9lKEksMjQpLGcuaGVpZ2h0PU9lKEksMjYpLGcuaG9yaXpyZXNvbHV0aW9uPVdlKEksMjgpLGcudmVydHJlc29sdXRpb249V2UoSSwzMiksST1JLnN1YmFycmF5KDc4KSxnLnNpbmY9QS5zaW5mKEEuZmluZEJveChJLFsic2luZiJdLEIpWzBdKSxnLmF2Y0M9QS5hdmNDKEEuZmluZEJveChJLFsiYXZjQyJdLEIpWzBdKSxnLmh2Y0M9QS5odmNDKEEuZmluZEJveChJLFsiaHZjQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChJLFsicGFzcCJdLEIpWzBdKX0pKX19KSkuZmlsdGVyKEJvb2xlYW4pfSkpfX0se2tleToidGVuYyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITEsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9NjtBLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9Z1tJXSxJKz0xLEEuZGVmYXVsdF9JVl9zaXplPWdbSV0sSSs9MSxBLmRlZmF1bHRfS0lEPVtdO2Zvcih2YXIgQj0wO0I8MTY7QisrKUEuZGVmYXVsdF9LSUQucHVzaChJbihnW0ldKSksSSs9MX0pKX19LHtrZXk6InNjaGkiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7Zy50ZW5jPUEudGVuYyhBLmZpbmRCb3goSSxbInRlbmMiXSxCKVswXSl9KSl9fSx7a2V5OiJzaW5mIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZ24oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cuc2NoaT1BLnNjaGkoQS5maW5kQm94KEksWyJzY2hpIl0sQilbMF0pLGcuZnJtYT1BLmZybWEoQS5maW5kQm94KEksWyJmcm1hIl0sQilbMF0pfSkpfX0se2tleToiZnJtYSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITEsKGZ1bmN0aW9uKEEsZyl7QS5kYXRhX2Zvcm1hdD0iIjtmb3IodmFyIEk9MDtJPDQ7SSsrKUEuZGF0YV9mb3JtYXQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZ1tJXSl9KSl9fSx7a2V5OiJhdmMxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gZ24oZywhMSwoZnVuY3Rpb24oZyxJLEIpe3ZhciBRPSRlKGcsSSksQz1JLnN1YmFycmF5KFEpO0IrPVEsZy5hdmNDPUEuYXZjQyhBLmZpbmRCb3goQyxbImF2Y0MiXSxCKVswXSksZy5wYXNwPUEucGFzcChBLmZpbmRCb3goQyxbInBhc3AiXSxCKVswXSl9KSl9fSx7a2V5OiJhdmNDIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmNvbmZpZ3VyYXRpb25WZXJzaW9uPWdbMF0sQS5BVkNQcm9maWxlSW5kaWNhdGlvbj1nWzFdLEEucHJvZmlsZUNvbXBhdGliaWxpdHk9Z1syXSxBLkFWQ0xldmVsSW5kaWNhdGlvbj1nWzNdLEEuY29kZWM9ZnVuY3Rpb24oQSl7Zm9yKHZhciBnLEk9ImF2YzEuIixCPTA7QjwzO0IrKykoZz1BW0JdLnRvU3RyaW5nKDE2KSkubGVuZ3RoPDImJihnPSIwIi5jb25jYXQoZykpLEkrPWc7cmV0dXJuIEl9KFtnWzFdLGdbMl0sZ1szXV0pLEEubGVuZ3RoU2l6ZU1pbnVzT25lPTMmZ1s0XSxBLnNwc0xlbmd0aD0zMSZnWzVdLEEuc3BzPVtdO2Zvcih2YXIgST02LEI9MDtCPEEuc3BzTGVuZ3RoO0IrKyl7dmFyIFE9T2UoZyxJKTtJKz0yLEEuc3BzLnB1c2goZy5zdWJhcnJheShJLEkrUSkpLEkrPVF9QS5wcHNMZW5ndGg9Z1tJXSxJKz0xLEEucHBzPVtdO2Zvcih2YXIgQz0wO0M8QS5wcHNMZW5ndGg7QysrKXt2YXIgRT1PZShnLEkpO0krPTIsQS5wcHMucHVzaChnLnN1YmFycmF5KEksSSs9RSkpLEkrPUV9fSkpfX0se2tleToiaHZjMSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUT0kZShnLEkpLEM9SS5zdWJhcnJheShRKTtCKz1RLGcuaHZjQz1BLmh2Y0MoQS5maW5kQm94KEMsWyJodmNDIl0sQilbMF0pLGcucGFzcD1BLnBhc3AoQS5maW5kQm94KEMsWyJwYXNwIl0sQilbMF0pfSkpfX0se2tleToiaHZjQyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITEsKGZ1bmN0aW9uKGcsSSl7Zy5kYXRhPUEuZGF0YSxnLmNvZGVjPSJoZXYxLjEuNi5MOTMuQjAiLGcuY29uZmlndXJhdGlvblZlcnNpb249SVswXTt2YXIgQj1JWzFdO2cuZ2VuZXJhbFByb2ZpbGVTcGFjZT1CPj42LGcuZ2VuZXJhbFRpZXJGbGFnPSgzMiZCKT4+NSxnLmdlbmVyYWxQcm9maWxlSWRjPTMxJkIsZy5nZW5lcmFsUHJvZmlsZUNvbXBhdGliaWxpdHk9V2UoSSwyKSxnLmdlbmVyYWxDb25zdHJhaW50SW5kaWNhdG9yRmxhZ3M9SS5zdWJhcnJheSg2LDEyKSxnLmdlbmVyYWxMZXZlbElkYz1JWzEyXSxnLmF2Z0ZyYW1lUmF0ZT1PZShJLDE5KSxnLm51bU9mQXJyYXlzPUlbMjJdLGcudnBzPVtdLGcuc3BzPVtdLGcucHBzPVtdO2Zvcih2YXIgUT0yMyxDPTAsRT0wLGk9MCx0PTA7dDxnLm51bU9mQXJyYXlzO3QrKyl7Qz02MyZJW1FdLEU9T2UoSSxRKzEpLFErPTM7Zm9yKHZhciBvLGU9W10sbj0wO248RTtuKyspaT1PZShJLFEpLFErPTIsZS5wdXNoKEkuc3ViYXJyYXkoUSxRK2kpKSxRKz1pO2lmKDMyPT09Qykobz1nLnZwcykucHVzaC5hcHBseShvLGUpO2Vsc2UgaWYoMzM9PT1DKXt2YXIgcjsocj1nLnNwcykucHVzaC5hcHBseShyLGUpfWVsc2UgaWYoMzQ9PT1DKXt2YXIgYTsoYT1nLnBwcykucHVzaC5hcHBseShhLGUpfX19KSl9fSx7a2V5OiJwYXNwIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmhTcGFjaW5nPVdlKGcpLEEudlNwYWNpbmc9V2UoZyw0KX0pKX19LHtrZXk6Im1wNGEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9QW4oZyxJKTtnLmVzZHM9QS5lc2RzKEEuZmluZEJveChJLnN1YmFycmF5KFEpLFsiZXNkcyJdLEIrUSlbMF0pfSkpfX0se2tleToiZXNkcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5jb2RlYz0ibXA0YS4iO2Zvcih2YXIgST0wLEI9MCxRPTAsQz0wO2cubGVuZ3RoOyl7Zm9yKEM9Z1tJPTBdLEI9Z1tJKzFdLEkrPTI7MTI4JkI7KVE9KDEyNyZCKTw8NyxCPWdbSV0sSSs9MTtpZihRKz0xMjcmQiwzPT09QylnPWcuc3ViYXJyYXkoSSszKTtlbHNle2lmKDQhPT1DKXtpZig1PT09Qyl7dmFyIEU9QS5jb25maWc9Zy5zdWJhcnJheShJLEkrUSksaT0oMjQ4JkVbMF0pPj4zO3JldHVybiAzMT09PWkmJkUubGVuZ3RoPj0yJiYoaT0zMisoKDcmRVswXSk8PDMpKygoMjI0JkVbMV0pPj41KSksQS5vYmplY3RUeXBlPWksQS5jb2RlYys9aS50b1N0cmluZygxNiksdm9pZCgiLiI9PT1BLmNvZGVjW0EuY29kZWMubGVuZ3RoLTFdJiYoQS5jb2RlYz1BLmNvZGVjLnN1YnN0cmluZygwLEEuY29kZWMubGVuZ3RoLTEpKSl9cmV0dXJuIHZvaWQoIi4iPT09QS5jb2RlY1tBLmNvZGVjLmxlbmd0aC0xXSYmKEEuY29kZWM9QS5jb2RlYy5zdWJzdHJpbmcoMCxBLmNvZGVjLmxlbmd0aC0xKSkpfUEuY29kZWMrPShnW0ldLnRvU3RyaW5nKDE2KSsiLiIpLnBhZFN0YXJ0KDMsIjAiKSxnPWcuc3ViYXJyYXkoSSsxMyl9fX0pKX19LHtrZXk6ImFsYXciLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBnbihBLCExLChmdW5jdGlvbihBLGcpe0FuKEEsZyl9KSl9fSx7a2V5OiJzdHRzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9V2UoZyksQj1bXSxRPTQsQz0wO0M8STtDKyspQi5wdXNoKHtjb3VudDpXZShnLFEpLGRlbHRhOldlKGcsUSs0KX0pLFErPTg7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJjdHRzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST1XZShnKSxCPVtdLFE9NDtpZigxPT09QS52ZXJzaW9uKWZvcih2YXIgQz0wO0M8STtDKyspQi5wdXNoKHtjb3VudDpXZShnLFEpLG9mZnNldDpXZShnLFErNCl9KSxRKz04O2Vsc2UgZm9yKHZhciBFPTA7RTxJO0UrKylCLnB1c2goe2NvdW50OldlKGcsUSksb2Zmc2V0Oi0oMSt+V2UoZyxRKzQpKX0pLFErPTg7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJzdHNjIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9V2UoZyksQj1bXSxRPTQsQz0wO0M8STtDKyspQi5wdXNoKHtmaXJzdENodW5rOldlKGcsUSksc2FtcGxlc1BlckNodW5rOldlKGcsUSs0KSxzYW1wbGVEZXNjcmlwdGlvbkluZGV4OldlKGcsUSs4KX0pLFErPTEyO0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9V2UoZyksQj1XZShnLDQpLFE9W107aWYoIUkpZm9yKHZhciBDPTgsRT0wO0U8QjtFKyspUS5wdXNoKFdlKGcsQykpLEMrPTQ7QS5zYW1wbGVTaXplPUksQS5zYW1wbGVDb3VudD1CLEEuZW50cnlTaXplcz1RfSkpfX0se2tleToic3RjbyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVdlKGcpLEI9W10sUT00LEM9MDtDPEk7QysrKUIucHVzaChXZShnLFEpKSxRKz00O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToiY282NCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVdlKGcpLEI9W10sUT00LEM9MDtDPEk7QysrKUIucHVzaChWZShnLFEpKSxRKz04O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVdlKGcpLEI9W10sUT00LEM9MDtDPEk7QysrKUIucHVzaChXZShnLFEpKSxRKz00O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToibW9vZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGduKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLm1maGQ9QS5tZmhkKEEuZmluZEJveChJLFsibWZoZCJdLEIpWzBdKSxnLnRyYWY9QS5maW5kQm94KEksWyJ0cmFmIl0sQikubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFmKGcpfSkpfSkpfX0se2tleToibWZoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5zZXF1ZW5jZU51bWJlcj1XZShnKX0pKX19LHtrZXk6InRyYWYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBnbihnLCExLChmdW5jdGlvbihnLEksQil7Zy50ZmhkPUEudGZoZChBLmZpbmRCb3goSSxbInRmaGQiXSxCKVswXSksZy50ZmR0PUEudGZkdChBLmZpbmRCb3goSSxbInRmZHQiXSxCKVswXSksZy50cnVuPUEudHJ1bihBLmZpbmRCb3goSSxbInRydW4iXSxCKVswXSl9KSl9fSx7a2V5OiJ0cnVuIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZ24oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST1BLnZlcnNpb24sQj1BLmZsYWdzLFE9Zy5sZW5ndGgsQz1BLnNhbXBsZUNvdW50PVdlKGcpLEU9NDtpZihRPkUmJjEmQiYmKEEuZGF0YU9mZnNldD0tKDErfldlKGcsRSkpLEUrPTQpLFE+RSYmNCZCJiYoQS5maXJzdFNhbXBsZUZsYWdzPVdlKGcsRSksRSs9NCksQS5zYW1wbGVzPVtdLFE+RSlmb3IodmFyIGksdD0wO3Q8Qzt0KyspaT17fSwyNTYmQiYmKGkuZHVyYXRpb249V2UoZyxFKSxFKz00KSw1MTImQiYmKGkuc2l6ZT1XZShnLEUpLEUrPTQpLDEwMjQmQiYmKGkuZmxhZ3M9V2UoZyxFKSxFKz00KSwyMDQ4JkImJihpLmN0cz1JPy0oMSt+V2UoZyxFKzQpKTpXZShnLEUpLEUrPTQpLEEuc2FtcGxlcy5wdXNoKGkpfSkpfX0se2tleToidGZkdCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGduKEEsITAsKGZ1bmN0aW9uKEEsZyl7MT09PUEudmVyc2lvbj9BLmJhc2VNZWRpYURlY29kZVRpbWU9VmUoZyk6QS5iYXNlTWVkaWFEZWNvZGVUaW1lPVdlKGcpfSkpfX0se2tleToicHJvYmUiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiEhQS5maW5kQm94KGcsWyJmdHlwIl0pfX0se2tleToicGFyc2VTYW1wbGVGbGFncyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJue2lzTGVhZGluZzooMTImQVswXSk+Pj4yLGRlcGVuZHNPbjozJkFbMF0saXNEZXBlbmRlZE9uOigxOTImQVsxXSk+Pj42LGhhc1JlZHVuZGFuY3k6KDQ4JkFbMV0pPj4+NCxwYWRkaW5nVmFsdWU6KDE0JkFbMV0pPj4+MSxpc05vblN5bmNTYW1wbGU6MSZBWzFdLGRlZ3JhZGF0aW9uUHJpb3JpdHk6QVsyXTw8OHxBWzNdfX19LHtrZXk6Im1vb3ZUb1RyYWNrIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDPUEudHJhaztpZihDJiZDLmxlbmd0aCl7dmFyIEU9Qy5maW5kKChmdW5jdGlvbihBKXt2YXIgZyxJO3JldHVybiJ2aWRlIj09PShudWxsPT09KGc9QS5tZGlhKXx8dm9pZCAwPT09Z3x8bnVsbD09PShJPWcuaGRscil8fHZvaWQgMD09PUk/dm9pZCAwOkkuaGFuZGxlclR5cGUpfSkpLGk9Qy5maW5kKChmdW5jdGlvbihBKXt2YXIgZyxJO3JldHVybiJzb3VuIj09PShudWxsPT09KGc9QS5tZGlhKXx8dm9pZCAwPT09Z3x8bnVsbD09PShJPWcuaGRscil8fHZvaWQgMD09PUk/dm9pZCAwOkkuaGFuZGxlclR5cGUpfSkpO2lmKEUmJmcpe3ZhciB0LG8sZSxuLHIsYSxzLGM9ZyxoPW51bGw9PT0odD1FLnRraGQpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnRyYWNrSWQ7bnVsbCE9aCYmKGMuaWQ9RS50a2hkLnRyYWNrSWQpLGMudGtoZER1cmF0aW9uPUUudGtoZC5kdXJhdGlvbixjLm12aGREdXJ0aW9uPUEubXZoZC5kdXJhdGlvbixjLm12aGRUaW1lY2FsZT1BLm12aGQudGltZXNjYWxlLGMudGltZXNjYWxlPWMuZm9ybWF0VGltZXNjYWxlPUUubWRpYS5tZGhkLnRpbWVzY2FsZSxjLmR1cmF0aW9uPUUubWRpYS5tZGhkLmR1cmF0aW9ufHxjLm12aGREdXJ0aW9uL2MubXZoZFRpbWVjYWxlKmMudGltZXNjYWxlO3ZhciBELHksZix3LHUsRixHLGQsUj1FLm1kaWEubWluZi5zdGJsLnN0c2QuZW50cmllc1swXTtpZihjLndpZHRoPVIud2lkdGgsYy5oZWlnaHQ9Ui5oZWlnaHQsUi5wYXNwJiYoYy5zYXJSYXRpbz1bUi5wYXNwLmhTcGFjaW5nLFIucGFzcC52U3BhY2luZ10pLFIuaHZjQyljLmNvZGVjVHlwZT1OZSxjLmNvZGVjPVIuaHZjQy5jb2RlYyxjLnZwcz1SLmh2Y0MudnBzLGMuc3BzPVIuaHZjQy5zcHMsYy5wcHM9Ui5odmNDLnBwcyxjLmh2Y0M9Ui5odmNDLmRhdGE7ZWxzZXtpZighUi5hdmNDKXRocm93IG5ldyBFcnJvcigidW5rbm93biB2aWRlbyBzdHNkIGVudHJ5Iik7Yy5jb2RlYz1SLmF2Y0MuY29kZWMsYy5zcHM9Ui5hdmNDLnNwcyxjLnBwcz1SLmF2Y0MucHBzfWlmKGMucHJlc2VudD0hMCxjLmV4dD17fSxjLmV4dC5zdHNzPW51bGw9PT0obz1FLm1kaWEpfHx2b2lkIDA9PT1vfHxudWxsPT09KGU9by5taW5mKXx8dm9pZCAwPT09ZXx8bnVsbD09PShuPWUuc3RibCl8fHZvaWQgMD09PW4/dm9pZCAwOm4uc3RzcyxjLmV4dC5jdHRzPW51bGw9PT0ocj1FLm1kaWEpfHx2b2lkIDA9PT1yfHxudWxsPT09KGE9ci5taW5mKXx8dm9pZCAwPT09YXx8bnVsbD09PShzPWEuc3RibCl8fHZvaWQgMD09PXM/dm9pZCAwOnMuY3R0cyxSJiYiZW5jdiI9PT1SLnR5cGUpYy5pc1ZpZGVvRW5jcnlwdGlvbj0hMCxSLmRlZmF1bHRfS0lEPW51bGw9PT0oRD1SLnNpbmYpfHx2b2lkIDA9PT1EfHxudWxsPT09KHk9RC5zY2hpKXx8dm9pZCAwPT09eT92b2lkIDA6eS50ZW5jLmRlZmF1bHRfS0lELFIuZGVmYXVsdF9Jc0VuY3J5cHRlZD1udWxsPT09KGY9Ui5zaW5mKXx8dm9pZCAwPT09Znx8bnVsbD09PSh3PWYuc2NoaSl8fHZvaWQgMD09PXc/dm9pZCAwOncudGVuYy5kZWZhdWx0X0lzRW5jcnlwdGVkLFIuZGVmYXVsdF9JVl9zaXplPW51bGw9PT0odT1SLnNpbmYpfHx2b2lkIDA9PT11fHxudWxsPT09KEY9dS5zY2hpKXx8dm9pZCAwPT09Rj92b2lkIDA6Ri50ZW5jLmRlZmF1bHRfSVZfc2l6ZSxjLnZpZGVvU2VuYz1FLm1kaWEubWluZi5zdGJsLnNlbmMmJkUubWRpYS5taW5mLnN0Ymwuc2VuYy5zYW1wbGVzLFIuZGF0YV9mb3JtYXQ9bnVsbD09PShHPVIuc2luZil8fHZvaWQgMD09PUd8fG51bGw9PT0oZD1HLmZybWEpfHx2b2lkIDA9PT1kP3ZvaWQgMDpkLmRhdGFfZm9ybWF0LGMudXNlRU1FPUEudXNlRU1FLGMua2lkVmFsdWU9QS5raWRWYWx1ZSxjLnBzc2g9QS5wc3NoLGMuZW5jdj1SfWlmKGkmJkkpe3ZhciBsLGssVSxTLE4sTSxZLEgscCxKPUksTD1udWxsPT09KGw9aS50a2hkKXx8dm9pZCAwPT09bD92b2lkIDA6bC50cmFja0lkO251bGwhPUwmJihKLmlkPWkudGtoZC50cmFja0lkKSxKLnRraGREdXJhdGlvbj1pLnRraGQuZHVyYXRpb24sSi5tdmhkRHVydGlvbj1BLm12aGQuZHVyYXRpb24sSi5tdmhkVGltZWNhbGU9QS5tdmhkLnRpbWVzY2FsZSxKLnRpbWVzY2FsZT1KLmZvcm1hdFRpbWVzY2FsZT1pLm1kaWEubWRoZC50aW1lc2NhbGUsSi5kdXJhdGlvbj1pLm1kaWEubWRoZC5kdXJhdGlvbnx8Si5tdmhkRHVydGlvbi9KLm12aGRUaW1lY2FsZSpKLnRpbWVzY2FsZTt2YXIgdixLLHgscSxtLGIsVCxqLFo9aS5tZGlhLm1pbmYuc3RibC5zdHNkLmVudHJpZXNbMF07c3dpdGNoKEouc2FtcGxlU2l6ZT1aLnNhbXBsZVNpemUsSi5zYW1wbGVSYXRlPVouc2FtcGxlUmF0ZSxKLmNoYW5uZWxDb3VudD1aLmNoYW5uZWxDb3VudCxKLnByZXNlbnQ9ITAsWi50eXBlKXtjYXNlImFsYXciOkouY29kZWNUeXBlPUouY29kZWM9WWUsSi5zYW1wbGVSYXRlPThlMzticmVhaztjYXNlInVsYXciOkouY29kZWNUeXBlPUouY29kZWM9SGUsSi5zYW1wbGVSYXRlPThlMzticmVhaztkZWZhdWx0Okouc2FtcGxlRHVyYXRpb249VGUuZ2V0RnJhbWVEdXJhdGlvbihKLnNhbXBsZVJhdGUsSi50aW1lc2NhbGUpLEouc2FtcGxlUmF0ZUluZGV4PVRlLmdldFJhdGVJbmRleEJ5UmF0ZShKLnNhbXBsZVJhdGUpLEoub2JqZWN0VHlwZT0obnVsbD09PShCPVouZXNkcyl8fHZvaWQgMD09PUI/dm9pZCAwOkIub2JqZWN0VHlwZSl8fDIsWi5lc2RzJiYoSi5jb25maWc9QXJyYXkuZnJvbShaLmVzZHMuY29uZmlnKSksSi5jb2RlYz0obnVsbD09PShRPVouZXNkcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEuY29kZWMpfHwibXA0YS40MC4yIn1pZihKLnNhbXBsZUR1cmF0aW9uPVRlLmdldEZyYW1lRHVyYXRpb24oSi5zYW1wbGVSYXRlLEoudGltZXNjYWxlKSxKLm9iamVjdFR5cGU9KG51bGw9PT0oaz1aLmVzZHMpfHx2b2lkIDA9PT1rP3ZvaWQgMDprLm9iamVjdFR5cGUpfHwyLFouZXNkcyYmKFouZXNkcy5jb25maWc/Si5jb25maWc9QXJyYXkuZnJvbShaLmVzZHMuY29uZmlnKTpjb25zb2xlLndhcm4oImVzZHMgY29uZmlnIGlzIG51bGwiKSksSi5jb2RlYz0obnVsbD09PShVPVouZXNkcyl8fHZvaWQgMD09PVU/dm9pZCAwOlUuY29kZWMpfHwibXA0YS40MC4yIixKLnNhbXBsZVJhdGVJbmRleD1UZS5nZXRSYXRlSW5kZXhCeVJhdGUoSi5zYW1wbGVSYXRlKSxKLmV4dD17fSxKLmV4dC5zdHNzPW51bGw9PT0oUz1pLm1kaWEpfHx2b2lkIDA9PT1TfHxudWxsPT09KE49Uy5taW5mKXx8dm9pZCAwPT09Tnx8bnVsbD09PShNPU4uc3RibCl8fHZvaWQgMD09PU0/dm9pZCAwOk0uc3RzcyxKLmV4dC5jdHRzPW51bGw9PT0oWT1pLm1kaWEpfHx2b2lkIDA9PT1ZfHxudWxsPT09KEg9WS5taW5mKXx8dm9pZCAwPT09SHx8bnVsbD09PShwPUguc3RibCl8fHZvaWQgMD09PXA/dm9pZCAwOnAuY3R0cyxKLnByZXNlbnQ9ITAsWiYmImVuY2EiPT09Wi50eXBlKUouaXNBdWRpb0VuY3J5cHRpb249ITAsWi5kYXRhX2Zvcm1hdD1udWxsPT09KHY9Wi5zaW5mKXx8dm9pZCAwPT09dnx8bnVsbD09PShLPXYuZnJtYSl8fHZvaWQgMD09PUs/dm9pZCAwOksuZGF0YV9mb3JtYXQsWi5kZWZhdWx0X0tJRD1udWxsPT09KHg9Wi5zaW5mKXx8dm9pZCAwPT09eHx8bnVsbD09PShxPXguc2NoaSl8fHZvaWQgMD09PXE/dm9pZCAwOnEudGVuYy5kZWZhdWx0X0tJRCxaLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9bnVsbD09PShtPVouc2luZil8fHZvaWQgMD09PW18fG51bGw9PT0oYj1tLnNjaGkpfHx2b2lkIDA9PT1iP3ZvaWQgMDpiLnRlbmMuZGVmYXVsdF9Jc0VuY3J5cHRlZCxaLmRlZmF1bHRfSVZfc2l6ZT1udWxsPT09KFQ9Wi5zaW5mKXx8dm9pZCAwPT09VHx8bnVsbD09PShqPVQuc2NoaSl8fHZvaWQgMD09PWo/dm9pZCAwOmoudGVuYy5kZWZhdWx0X0lWX3NpemUsSi5hdWRpb1NlbmM9aS5tZGlhLm1pbmYuc3RibC5zZW5jJiZpLm1kaWEubWluZi5zdGJsLnNlbmMuc2FtcGxlcyxKLnVzZUVNRT1BLnVzZUVNRSxKLmtpZFZhbHVlPUEua2lkVmFsdWUsSi5lbmNhPVp9aWYoSSYmKEkuaXNWaWRlb0VuY3J5cHRpb249ISFnJiZnLmlzVmlkZW9FbmNyeXB0aW9uKSxnJiYoZy5pc0F1ZGlvRW5jcnlwdGlvbj0hIUkmJkkuaXNBdWRpb0VuY3J5cHRpb24pLG51bGwhPWcmJmcuZW5jdnx8bnVsbCE9SSYmSS5lbmNhKXt2YXIgTyxXLFY9bnVsbD09Z3x8bnVsbD09PShPPWcuZW5jdil8fHZvaWQgMD09PU8/dm9pZCAwOk8uZGVmYXVsdF9LSUQsWD1udWxsPT1JfHxudWxsPT09KFc9SS5lbmNhKXx8dm9pZCAwPT09Vz92b2lkIDA6Vy5kZWZhdWx0X0tJRCxQPVZ8fFg/KFZ8fFgpLmpvaW4oIiIpOm51bGw7ZyYmKGcua2lkPVApLEkmJihJLmtpZD1QKX1yZXR1cm4gZyYmKGcuZmxhZ3M9Mzg0MSksSSYmKEkuZmxhZ3M9MTc5Mykse3ZpZGVvVHJhY2s6ZyxhdWRpb1RyYWNrOkl9fX19LHtrZXk6ImV2YWx1YXRlRGVmYXVsdER1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUT1udWxsPT1nfHxudWxsPT09KEI9Zy5zYW1wbGVzKXx8dm9pZCAwPT09Qj92b2lkIDA6Qi5sZW5ndGg7cmV0dXJuIFE/MTAyNCpRL2cudGltZXNjYWxlKkEudGltZXNjYWxlL0k6MTAyNH19LHtrZXk6Im1vb2ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUT17fTtyZXR1cm4gZy5tZmhkJiYoSSYmKEkuc2VxdWVuY2VOdW1iZXI9Zy5tZmhkLnNlcXVlbmNlTnVtYmVyKSxCJiYoQi5zZXF1ZW5jZU51bWJlcj1nLm1maGQuc2VxdWVuY2VOdW1iZXIpKSxnLnRyYWYuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEM9Zy50ZmhkLEU9Zy50ZmR0LGk9Zy50cnVuO2lmKEMmJmkpe0UmJihJJiZJLmlkPT09Qy50cmFja0lkJiYoSS5iYXNlTWVkaWFEZWNvZGVUaW1lPUUuYmFzZU1lZGlhRGVjb2RlVGltZSksQiYmQi5pZD09PUMudHJhY2tJZCYmKEIuYmFzZU1lZGlhRGVjb2RlVGltZT1FLmJhc2VNZWRpYURlY29kZVRpbWUpKTt2YXIgdD1DLmRlZmF1bHRTYW1wbGVTaXplfHwwLG89Qy5kZWZhdWx0U2FtcGxlRHVyYXRpb258fEEuZXZhbHVhdGVEZWZhdWx0RHVyYXRpb24oSSxCLGkuc2FtcGxlcy5sZW5ndGh8fGkuc2FtcGxlQ291bnQpLGU9aS5kYXRhT2Zmc2V0fHwwLG49MCxyPS0xO2lmKCFpLnNhbXBsZXMubGVuZ3RoJiZpLnNhbXBsZUNvdW50KXtRW0MudHJhY2tJZF09W107Zm9yKHZhciBhPTA7YTxpLnNhbXBsZUNvdW50O2ErKylRW0MudHJhY2tJZF0ucHVzaCh7b2Zmc2V0OmUsZHRzOm4sZHVyYXRpb246byxzaXplOnR9KSxuKz1vLGUrPXR9ZWxzZSBRW0MudHJhY2tJZF09aS5zYW1wbGVzLm1hcCgoZnVuY3Rpb24oQSxnKXtyZXR1cm4oQT17b2Zmc2V0OmUsZHRzOm4scHRzOm4rKEEuY3RzfHwwKSxkdXJhdGlvbjpBLmR1cmF0aW9ufHxvLHNpemU6QS5zaXplfHx0LGdvcElkOnIsa2V5ZnJhbWU6MD09PWd8fG51bGwhPT1BLmZsYWdzJiZ2b2lkIDAhPT1BLmZsYWdzJiYoNjU1MzYmQS5mbGFncyk+Pj4wIT02NTUzNn0pLmtleWZyYW1lJiYocisrLEEuZ29wSWQ9ciksbis9QS5kdXJhdGlvbixlKz1BLnNpemUsQX0pKX19KSksUX19LHtrZXk6Im1vb3ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPUEudHJhaztpZihnJiZnLmxlbmd0aCl7dmFyIEk9Zy5maW5kKChmdW5jdGlvbihBKXt2YXIgZyxJO3JldHVybiJ2aWRlIj09PShudWxsPT09KGc9QS5tZGlhKXx8dm9pZCAwPT09Z3x8bnVsbD09PShJPWcuaGRscil8fHZvaWQgMD09PUk/dm9pZCAwOkkuaGFuZGxlclR5cGUpfSkpLEI9Zy5maW5kKChmdW5jdGlvbihBKXt2YXIgZyxJO3JldHVybiJzb3VuIj09PShudWxsPT09KGc9QS5tZGlhKXx8dm9pZCAwPT09Z3x8bnVsbD09PShJPWcuaGRscil8fHZvaWQgMD09PUk/dm9pZCAwOkkuaGFuZGxlclR5cGUpfSkpO2lmKEl8fEIpe3ZhciBRLEM7aWYoSSl7dmFyIEUsaSx0PW51bGw9PT0oRT1JLm1kaWEpfHx2b2lkIDA9PT1FfHxudWxsPT09KGk9RS5taW5mKXx8dm9pZCAwPT09aT92b2lkIDA6aS5zdGJsO2lmKCF0KXJldHVybjt2YXIgbz10LnN0dHMsZT10LnN0c2Msbj10LnN0c3oscj10LnN0Y28sYT10LnN0c3Mscz10LmN0dHM7aWYoIShvJiZlJiZuJiZyJiZhKSlyZXR1cm47UT1fZShvLGUsbixyLHMsYSl9aWYoQil7dmFyIGMsaCxELHk9bnVsbD09PShjPUIubWRpYSl8fHZvaWQgMD09PWN8fG51bGw9PT0oaD1jLm1pbmYpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLnN0Ymw7aWYoIXkpcmV0dXJuO3ZhciBmPW51bGw9PT0oRD1CLm1kaWEubWRoZCl8fHZvaWQgMD09PUQ/dm9pZCAwOkQudGltZXNjYWxlLHc9eS5zdHRzLHU9eS5zdHNjLEY9eS5zdHN6LEc9eS5zdGNvO2lmKCEoZiYmdyYmdSYmRiYmRykpcmV0dXJuO0M9X2Uodyx1LEYsRyl9cmV0dXJue3ZpZGVvU2FtcGxlczpRLGF1ZGlvU2FtcGxlczpDfX19fX1dKSxBfSgpO2Z1bmN0aW9uIF9lKEEsZyxJLEIsUSxDKXt2YXIgRSxpLHQsbz1bXSxlPW51bGw9PVE/dm9pZCAwOlEuZW50cmllcyxuPWcuZW50cmllcyxyPUIuZW50cmllcyxhPUkuZW50cnlTaXplcyxzPW51bGw9PUM/dm9pZCAwOkMuZW50cmllcztzJiYoRT17fSxzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0VbQS0xXT0hMH0pKSksZSYmKGk9W10sZS5mb3JFYWNoKChmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5jb3VudCxJPUEub2Zmc2V0LEI9MDtCPGc7QisrKWkucHVzaChJKX0pKSk7dmFyIGM9LTEsaD0wLEQ9MCx5PTAsZj0wLHc9MCx1PW5bMF0uc2FtcGxlc1BlckNodW5rLEY9blsxXT9uWzFdLmZpcnN0Q2h1bmstMToxLzA7cmV0dXJuIEEuZW50cmllcy5mb3JFYWNoKChmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5jb3VudCxCPUEuZGVsdGEsUT0wO1E8ZztRKyspdD17ZHRzOmgsZHVyYXRpb246QixzaXplOmFbRF18fEkuc2FtcGxlU2l6ZSxvZmZzZXQ6clt5XSt3LGluZGV4OkR9LHMmJih0LmtleWZyYW1lPUVbRF0sdC5rZXlmcmFtZSYmYysrLHQuZ29wSWQ9YyksaSYmRDxpLmxlbmd0aCYmKHQucHRzPXQuZHRzK2lbRF0pLG8ucHVzaCh0KSxoKz1CLCsrRDx1P3crPXQuc2l6ZTooeSsrLHc9MCx5Pj1GJiYoZisrLEY9bltmKzFdP25bZisxXS5maXJzdENodW5rLTE6MS8wKSx1Kz1uW2ZdLnNhbXBsZXNQZXJDaHVuayl9KSksb31mdW5jdGlvbiAkZShBLGcpe3JldHVybiBBLmRhdGFSZWZlcmVuY2VJbmRleD1PZShnLDYpLEEud2lkdGg9T2UoZywyNCksQS5oZWlnaHQ9T2UoZywyNiksQS5ob3JpenJlc29sdXRpb249V2UoZywyOCksQS52ZXJ0cmVzb2x1dGlvbj1XZShnLDMyKSxBLmZyYW1lQ291bnQ9T2UoZyw0MCksQS5kZXB0aD1PZShnLDc0KSw3OH1mdW5jdGlvbiBBbihBLGcpe3JldHVybiBBLmRhdGFSZWZlcmVuY2VJbmRleD1PZShnLDYpLEEuY2hhbm5lbENvdW50PU9lKGcsMTYpLEEuc2FtcGxlU2l6ZT1PZShnLDE4KSxBLnNhbXBsZVJhdGU9V2UoZywyNCkvNjU1MzYsMjh9ZnVuY3Rpb24gZ24oQSxnLEkpe2lmKEEpe2lmKEEuc2l6ZSE9PUEuZGF0YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJib3ggIi5jb25jYXQoQS50eXBlLCIgc2l6ZSAhPT0gZGF0YS5sZW5ndGgiKSk7dmFyIEI9e3N0YXJ0OkEuc3RhcnQsc2l6ZTpBLnNpemUsaGVhZGVyU2l6ZTpBLmhlYWRlclNpemUsdHlwZTpBLnR5cGV9O3JldHVybiBnJiYoQi52ZXJzaW9uPUEuZGF0YVtBLmhlYWRlclNpemVdLEIuZmxhZ3M9ZnVuY3Rpb24oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuKEFbZ108PDE2KSsoQVtnKzFdPDw4KSsoQVtnKzJdfHwwKX0oQS5kYXRhLEEuaGVhZGVyU2l6ZSsxKSxCLmhlYWRlclNpemUrPTQpLEkoQixBLmRhdGEuc3ViYXJyYXkoQi5oZWFkZXJTaXplKSxCLnN0YXJ0K0IuaGVhZGVyU2l6ZSksQn19dmFyIEluPWZ1bmN0aW9uKCl7Zm9yKHZhciBBPVtdLGc9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShnKSxCPTA7QjxnO0IrKylJW0JdPWFyZ3VtZW50c1tCXTtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihnKXtBLnB1c2goZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1TdHJpbmcoSSksUT1nPj4wLEM9TWF0aC5jZWlsKFEvQi5sZW5ndGgpLEU9W10saT1TdHJpbmcoQSk7Qy0tOylFLnB1c2goQik7cmV0dXJuIEUuam9pbigiIikuc3Vic3RyaW5nKDAsUS1pLmxlbmd0aCkraX0oTnVtYmVyKGcpLnRvU3RyaW5nKDE2KSwyLDApKX0pKSxBWzBdfSxCbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe0RlKHRoaXMsQSksdGhpcy52aWRlb1RyYWNrPWd8fG5ldyBwZSx0aGlzLmF1ZGlvVHJhY2s9SXx8bmV3IEplLHRoaXMubWV0YWRhdGFUcmFjaz1CfHxuZXcgS2V9cmV0dXJuIGZlKEEsW3trZXk6ImRlbXV4Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMudmlkZW9UcmFjayxCPXRoaXMuYXVkaW9UcmFjayxRPUkuZXhpc3QoKSxDPUIuZXhpc3QoKTtpZihJLnNhbXBsZXM9W10sQi5zYW1wbGVzPVtdLGcpe2lmKCFDKXt2YXIgRT16ZS5maW5kQm94KGcsWyJtb292Il0pWzBdO2lmKCFFKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIG1vb3YgYm94Iik7emUubW9vdlRvVHJhY2soemUubW9vdihFKSxudWxsLEIpfXZhciBpPXplLmZpbmRCb3goZyxbIm1vb2YiXSlbMF07aWYoaSl7dmFyIHQ9emUubW9vZlRvU2FtcGxlcyh6ZS5tb29mKGkpLG51bGwsQilbQi5pZF0sbz1CLmJhc2VNZWRpYURlY29kZVRpbWU7aWYodCl7dmFyIGU9aS5zdGFydDt0Lm1hcCgoZnVuY3Rpb24oQSl7QS5vZmZzZXQrPWU7dmFyIEk9Zy5zdWJhcnJheShBLm9mZnNldCxBLm9mZnNldCtBLnNpemUpO0Iuc2FtcGxlcy5wdXNoKG5ldyB2ZShBLmR0cytvLEksQS5kdXJhdGlvbikpfSkpfX19aWYoQSl7aWYoIVEmJiFDKXt2YXIgbj16ZS5maW5kQm94KEEsWyJtb292Il0pWzBdO2lmKCFuKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGZvdW5kIG1vb3YgYm94Iik7emUubW9vdlRvVHJhY2soemUubW9vdihuKSxJLEIpfXZhciByPXplLmZpbmRCb3goQSxbIm1vb2YiXSlbMF07aWYocil7dmFyIGEscz16ZS5tb29mVG9TYW1wbGVzKHplLm1vb2YociksSSxCKSxjPUkuYmFzZU1lZGlhRGVjb2RlVGltZSxoPUIuYmFzZU1lZGlhRGVjb2RlVGltZSxEPXIuc3RhcnQ7T2JqZWN0LmtleXMocykuZm9yRWFjaCgoZnVuY3Rpb24oZyl7SS5pZD09Zz9zW2ddLm1hcCgoZnVuY3Rpb24oZyl7Zy5vZmZzZXQrPUQ7dmFyIEI9bmV3IExlKChnLnB0c3x8Zy5kdHMpK2MsZy5kdHMrYyk7Qi5kdXJhdGlvbj1nLmR1cmF0aW9uLEIuZ29wSWQ9Zy5nb3BJZCxnLmtleWZyYW1lJiZCLnNldFRvS2V5ZnJhbWUoKTt2YXIgUT1BLnN1YmFycmF5KGcub2Zmc2V0LGcub2Zmc2V0K2cuc2l6ZSk7Qi5kYXRhPVE7Zm9yKHZhciBDPTAsRT1RLmxlbmd0aC0xO0M8RTspYT1XZShRLEMpLEMrPTQsQi51bml0cy5wdXNoKFEuc3ViYXJyYXkoQyxDK2EpKSxDKz1hO0kuc2FtcGxlcy5wdXNoKEIpfSkpOkIuaWQ9PWcmJnNbZ10ubWFwKChmdW5jdGlvbihnKXtnLm9mZnNldCs9RDt2YXIgST1BLnN1YmFycmF5KGcub2Zmc2V0LGcub2Zmc2V0K2cuc2l6ZSk7Qi5zYW1wbGVzLnB1c2gobmV3IHZlKGcuZHRzK2gsSSxnLmR1cmF0aW9uKSl9KSl9KSl9fXJldHVybnt2aWRlb1RyYWNrOkksYXVkaW9UcmFjazpCLG1ldGFkYXRhVHJhY2s6dGhpcy5tZXRhZGF0YVRyYWNrfX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmlkZW9UcmFjay5yZXNldCgpLHRoaXMuYXVkaW9UcmFjay5yZXNldCgpLHRoaXMubWV0YWRhdGFUcmFjay5yZXNldCgpfX1dLFt7a2V5OiJwcm9iZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHplLnByb2JlKEEpfX1dKSxBfSgpO3ZhciBRbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtEZSh0aGlzLEEpLHRoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5KDApfXJldHVybiBmZShBLFt7a2V5OiJ3cml0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIEE9dGhpcyxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07SS5mb3JFYWNoKChmdW5jdGlvbihnKXtnP0EuYnVmZmVyPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZz0wLEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJPjE/SS0xOjApLFE9MTtRPEk7USsrKUJbUS0xXT1hcmd1bWVudHNbUV07Qi5mb3JFYWNoKChmdW5jdGlvbihBKXtnKz1BLmxlbmd0aH0pKTt2YXIgQz1uZXcgQShnKSxFPTA7cmV0dXJuIEIuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qy5zZXQoQSxFKSxFKz1BLmxlbmd0aH0pKSxDfShVaW50OEFycmF5LEEuYnVmZmVyLGcpOndpbmRvdy5jb25zb2xlLndhcm4oZyl9KSl9fV0sW3trZXk6IndyaXRlVWludDE2Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0E+PjgmMjU1LDI1NSZBXSl9fSx7a2V5OiJ3cml0ZVVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdKX19XSksQX0oKSxDbj1NYXRoLnBvdygyLDMyKS0xLEVuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe0RlKHRoaXMsQSl9cmV0dXJuIGZlKEEsbnVsbCxbe2tleToiYm94Iix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShnPjE/Zy0xOjApLEI9MTtCPGc7QisrKUlbQi0xXT1hcmd1bWVudHNbQl07dmFyIFE9OCsoST1JLmZpbHRlcihCb29sZWFuKSkucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBK2cuYnl0ZUxlbmd0aH0pLDApLEM9bmV3IFVpbnQ4QXJyYXkoUSk7Q1swXT1RPj4yNCYyNTUsQ1sxXT1RPj4xNiYyNTUsQ1syXT1RPj44JjI1NSxDWzNdPTI1NSZRLEMuc2V0KEEsNCk7dmFyIEU9ODtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihBKXtDLnNldChBLEUpLEUrPUEuYnl0ZUxlbmd0aH0pKSxDfX0se2tleToiZnR5cCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZmluZCgoZnVuY3Rpb24oQSl7cmV0dXJuIEEudHlwZT09PWxlJiZBLmNvZGVjVHlwZT09PU5lfSkpP0EuRlRZUEhFVjE6QS5GVFlQQVZDMX19LHtrZXk6ImluaXRTZWdtZW50Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gamUoQS5mdHlwKGcpLEEubW9vdihnKSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMSwwLDAsMF0uY29uY2F0KFsxNiwxMTksMjM5LDIzNiwxOTIsMTc4LDc3LDIsMTcyLDIyNyw2MCwzMCw4MiwyMjYsMjUxLDc1XSxbMCwwLDAsMV0sUGUoZy5raWQpLFswLDAsMCwwXSkpO3JldHVybiBBLmJveChBLnR5cGVzLnBzc2gsSSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtpZihnWzBdLnVzZUVNRSYmKGdbMF0uZW5jdnx8Z1swXS5lbmNhKSl7Z1swXS5wc3NofHwoZ1swXS5wc3NoPXtraWQ6Z1swXS5raWR9KTt2YXIgST10aGlzLnBzc2goZ1swXS5wc3NoKTtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLm12aGREdXJ0aW9ufHxnWzBdLmR1cmF0aW9uLGdbMF0ubXZoZFRpbWVjYWxlfHxnWzBdLnRpbWVzY2FsZSksQS5tdmV4KGcpXS5jb25jYXQoRmUoZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSkpLFtJXSkpfXJldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb3YsQS5tdmhkKGdbMF0ubXZoZER1cnRpb258fGdbMF0uZHVyYXRpb24sZ1swXS5tdmhkVGltZWNhbGV8fGdbMF0udGltZXNjYWxlKV0uY29uY2F0KEZlKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFrKGcpfSkpKSxbQS5tdmV4KGcpXSkpfX0se2tleToibXZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tdmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwxLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSkpfX0se2tleToidHJhayIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLnRraGREdXJhdGlvbnx8MCxnLndpZHRoLGcuaGVpZ2h0KSxBLm1kaWEoZykpfX0se2tleToidGtoZCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTowO3JldHVybiBBLmJveChBLnR5cGVzLnRraGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDcsMCwwLDAsMCwwLDAsMCwwLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMCxRPj44JjI1NSwyNTUmUSwwLDBdKSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmYoZykpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsODUsMTk2LDAsMF0pKX19LHtrZXk6ImhkbHIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLmhkbHIsQS5IRExSX1RZUEVTW2ddKX19LHtrZXk6Im1pbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1pbmYsZy50eXBlPT09bGU/QS5WTUhEOkEuU01IRCxBLkRJTkYsQS5zdGJsKGcpKX19LHtrZXk6InN0YmwiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPVtdO3JldHVybiBnJiZnLmV4dCYmZy5leHQuc3RzcyYmSS5wdXNoKEEuc3RzcyhnLmV4dC5zdHNzLmVudHJpZXMpKSxBLmJveChBLnR5cGVzLnN0YmwsQS5zdHNkKGcpLEEuU1RUUyxJWzBdLEEuU1RTQyxBLlNUU1osQS5TVENPKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJO3JldHVybiBJPSJhdWRpbyI9PT1nLnR5cGU/Zy51c2VFTUUmJmcuZW5jYT9BLmVuY2EoZyk6QS5tcDRhKGcpOmcudXNlRU1FJiZnLmVuY3Y/QS5lbmN2KGcpOkEuYXZjMWhldjEoZyksQS5ib3goQS50eXBlcy5zdHNkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDFdKSxJKX19LHtrZXk6ImVuY2EiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuZW5jYS5jaGFubmVsQ291bnQsQj1nLmVuY2Euc2FtcGxlUmF0ZSxRPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsSSwwLDE2LDAsMCwwLDAsQj4+OCYyNTUsMjU1JkIsMCwwXSksQz1BLmVzZHMoZy5jb25maWcpLEU9QS5zaW5mKGcuZW5jYSk7cmV0dXJuIEEuYm94KEEudHlwZXMuZW5jYSxRLEMsRSl9fSx7a2V5OiJlbmN2Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgSSxCLFE9Zy5zcHMubGVuZ3RoPjA/Zy5zcHNbMF06W10sQz1nLnBwcy5sZW5ndGg+MD9nLnBwc1swXTpbXSxFPWcud2lkdGgsaT1nLmhlaWdodCx0PWcuc2FyUmF0aW9bMF0sbz1nLnNhclJhdGlvWzFdLGU9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLEU+PjgmMjU1LDI1NSZFLGk+PjgmMjU1LDI1NSZpLDAsNzIsMCwwLDAsNzIsMCwwLDAsMCwwLDAsMCwxLDE4LDEwMCw5NywxMDUsMTA4LDEyMSwxMDksMTExLDExNiwxMDUsMTExLDExMCw0NywxMDQsMTA4LDExNSw0NiwxMDYsMTE1LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwxNywxN10pLG49bmV3IFVpbnQ4QXJyYXkoKEk9KEI9WzEsUVsxXSxRWzJdLFFbM10sMjU1LDIyNSxRLmxlbmd0aD4+PjgmMjU1LDI1NSZRLmxlbmd0aF0pLmNvbmNhdC5hcHBseShCLEZlKFEpKS5jb25jYXQoWzEsQy5sZW5ndGg+Pj44JjI1NSwyNTUmQy5sZW5ndGhdKSkuY29uY2F0LmFwcGx5KEksRmUoQykpKSxyPW5ldyBVaW50OEFycmF5KFswLDAsODgsNTcsMCwxNSwyMDAsMTkyLDAsNCw4Niw3Ml0pLGE9QS5zaW5mKGcuZW5jdikscz1uZXcgVWludDhBcnJheShbdD4+MjQsdD4+MTYmMjU1LHQ+PjgmMjU1LDI1NSZ0LG8+PjI0LG8+PjE2JjI1NSxvPj44JjI1NSwyNTUmb10pO3JldHVybiBBLmJveChBLnR5cGVzLmVuY3YsZSxBLmJveChBLnR5cGVzLmF2Y0MsbiksQS5ib3goQS50eXBlcy5idHJ0LHIpLGEsQS5ib3goQS50eXBlcy5wYXNwLHMpKX19LHtrZXk6InNjaGkiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBVaW50OEFycmF5KFtdKSxCPUEudGVuYyhnKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zY2hpLEksQil9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMjU1JmcuZGVmYXVsdF9Jc0VuY3J5cHRlZCwyNTUmZy5kZWZhdWx0X0lWX3NpemVdLmNvbmNhdChQZShnLmRlZmF1bHRfS0lEKSkpO3JldHVybiBBLmJveChBLnR5cGVzLnRlbmMsSSl9fSx7a2V5OiJzaW5mIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbXSksQj1uZXcgVWludDhBcnJheShbZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDApLGcuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgxKSxnLmRhdGFfZm9ybWF0LmNoYXJDb2RlQXQoMiksZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDMpXSksUT1uZXcgVWludDhBcnJheShbMCwwLDAsMCw5OSwxMDEsMTEwLDk5LDAsMSwwLDBdKSxDPUEuc2NoaShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zaW5mLEksQS5ib3goQS50eXBlcy5mcm1hLEIpLEEuYm94KEEudHlwZXMuc2NobSxRKSxDKX19LHtrZXk6ImF2YzFoZXYxIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmNvZGVjVHlwZT09PU5lLEI9ST9BLnR5cGVzLmh2YzE6QS50eXBlcy5hdmMxLFE9ST9BLmh2Y0MoZyk6QS5hdmNDKGcpLEM9W25ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxnLndpZHRoPj44JjI1NSwyNTUmZy53aWR0aCxnLmhlaWdodD4+OCYyNTUsMjU1JmcuaGVpZ2h0LDAsNzIsMCwwLDAsNzIsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDI0LDE3LDE3XSksUV07cmV0dXJuIEk/Qy5wdXNoKEEuYm94KEEudHlwZXMuZmllbCxuZXcgVWludDhBcnJheShbMSwwXSkpKTpnLnNhclJhdGlvJiZnLnNhclJhdGlvLmxlbmd0aD4xJiZDLnB1c2goQS5wYXNwKGcuc2FyUmF0aW8pKSxBLmJveC5hcHBseShBLFtCXS5jb25jYXQoQykpfX0se2tleToiYXZjQyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQixRLEM9W10sRT1bXTtyZXR1cm4gZy5zcHMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7UT1BLmJ5dGVMZW5ndGgsQy5wdXNoKFE+Pj44JjI1NSksQy5wdXNoKDI1NSZRKSxDLnB1c2guYXBwbHkoQyxGZShBKSl9KSksZy5wcHMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7UT1BLmJ5dGVMZW5ndGgsRS5wdXNoKFE+Pj44JjI1NSksRS5wdXNoKDI1NSZRKSxFLnB1c2guYXBwbHkoRSxGZShBKSl9KSksQS5ib3goQS50eXBlcy5hdmNDLG5ldyBVaW50OEFycmF5KChJPShCPVsxLENbM10sQ1s0XSxDWzVdLDI1NSwyMjR8Zy5zcHMubGVuZ3RoXSkuY29uY2F0LmFwcGx5KEIsQykuY29uY2F0KFtnLnBwcy5sZW5ndGhdKSkuY29uY2F0LmFwcGx5KEksRSkpKX19LHtrZXk6Imh2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuaHZjQztpZihJIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fEkgaW5zdGFuY2VvZiBVaW50OEFycmF5KXJldHVybiBJO3ZhciBCLFE9Zy52cHMsQz1nLnNwcyxFPWcucHBzO2lmKEkpe3ZhciBpPUkuZ2VuZXJhbFByb2ZpbGVDb21wYXRpYmlsaXR5RmxhZ3MsdD1JLmdlbmVyYWxDb25zdHJhaW50SW5kaWNhdG9yRmxhZ3Msbz0oUS5sZW5ndGgmJjEpKyhDLmxlbmd0aCYmMSkrKEUubGVuZ3RoJiYxKTtCPVsxLEkuZ2VuZXJhbFByb2ZpbGVTcGFjZTw8NnxJLmdlbmVyYWxUaWVyRmxhZzw8NXxJLmdlbmVyYWxQcm9maWxlSWRjLGk+Pj4yNCxpPj4+MTYsaT4+PjgsaSx0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSxJLmdlbmVyYWxMZXZlbElkYywyNDAsMCwyNTIsMjUyfEkuY2hyb21hRm9ybWF0SWRjLDI0OHxJLmJpdERlcHRoTHVtYU1pbnVzOCwyNDh8SS5iaXREZXB0aENocm9tYU1pbnVzOCwwLDAsSS5udW1UZW1wb3JhbExheWVyczw8M3xJLnRlbXBvcmFsSWROZXN0ZWQ8PDJ8MyxvXTt2YXIgZT1mdW5jdGlvbihBKXt2YXIgZztCLnB1c2goQS5sZW5ndGg+PjgsQS5sZW5ndGgpLChnPUIpLnB1c2guYXBwbHkoZyxGZShBKSl9O1EubGVuZ3RoJiYoQi5wdXNoKDE2MCwwLFEubGVuZ3RoKSxRLmZvckVhY2goZSkpLEMubGVuZ3RoJiYoQi5wdXNoKDE2MSwwLEMubGVuZ3RoKSxDLmZvckVhY2goZSkpLEUubGVuZ3RoJiYoQi5wdXNoKDE2MiwwLEUubGVuZ3RoKSxFLmZvckVhY2goZSkpfWVsc2UgQj1bMSwxLDk2LDAsMCwwLDE0NCwwLDAsMCwwLDAsOTMsMjQwLDAsMjUyLDI1MywyNDgsMjQ4LDAsMCwxNSwzLDE2MCwwLDEsMCwyNCw2NCwxLDEyLDEsMjU1LDI1NSwxLDk2LDAsMCwzLDAsMTQ0LDAsMCwzLDAsMCwzLDAsOTMsMTUzLDE1Miw5LDE2MSwwLDEsMCw0NSw2NiwxLDEsMSw5NiwwLDAsMywwLDE0NCwwLDAsMywwLDAsMywwLDkzLDE2MCwyLDEyOCwxMjgsNDUsMjIsODksMTUzLDE2NCwxNDcsNDMsMTU0LDEyOCwxMjgsMTI4LDEzMCwwLDAsMywwLDIsMCwwLDMsMCw1MCwxNiwxNjIsMCwxLDAsNyw2OCwxLDE5MywxMTQsMTgwLDk4LDY0XTtyZXR1cm4gQS5ib3goQS50eXBlcy5odmNDLG5ldyBVaW50OEFycmF5KEIpKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPXVlKGcsMiksQj1JWzBdLFE9SVsxXTtyZXR1cm4gQS5ib3goQS50eXBlcy5wYXNwLG5ldyBVaW50OEFycmF5KFtCPj4yNCxCPj4xNiYyNTUsQj4+OCYyNTUsMjU1JkIsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubXA0YSxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLGcuY2hhbm5lbENvdW50LDAsMTYsMCwwLDAsMCxnLnNhbXBsZVJhdGU+PjgmMjU1LDI1NSZnLnNhbXBsZVJhdGUsMCwwXSksZy5jb25maWcubGVuZ3RoP0EuZXNkcyhnLmNvbmZpZyk6dm9pZCAwKX19LHtrZXk6ImVzZHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoO3JldHVybiBBLmJveChBLnR5cGVzLmVzZHMsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMywyMytJLDAsMCwwLDQsMTUrSSw2NCwyMSwwLDYsMCwwLDAsMjE4LDE5MiwwLDAsMjE4LDE5Miw1XS5jb25jYXQoW0ldKS5jb25jYXQoZykuY29uY2F0KFs2LDEsMl0pKSl9fSx7a2V5OiJtdmV4Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tdmV4XS5jb25jYXQoRmUoZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyZXgoZy5pZCl9KSkpKSl9fSx7a2V5OiJ0cmV4Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmV4LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwxXSkpfX0se2tleToidHJleDEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLnRyZXgsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLDAsMCwwLDEsMCwwLDIsMCwwLDAsMCwwLDAsMSwwLDBdKSl9fSx7a2V5OiJ0cmV4MiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJleCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMSwwLDAsNCwwLDAsMCwwLDAsMiwwLDAsMF0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb2YsQS5tZmhkKGdbMF0uc2FtcGxlcz9nWzBdLnNhbXBsZXNbMF0uZ29wSWQ6MCldLmNvbmNhdChGZShnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKSkpKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1maGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSkpfX0se2tleToidHJhZiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9QS50ZmhkKGcuaWQpLEI9QS50ZmR0KGcsZy5iYXNlTWVkaWFEZWNvZGVUaW1lKSxRPTA7aWYoZy5pc1ZpZGVvJiZnLnZpZGVvU2VuYyYmZy52aWRlb1NlbmMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7USs9OCxBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihRKz0yLFErPTYqQS5zdWJzYW1wbGVzLmxlbmd0aCl9KSksZy52aWRlb1NlbmNMZW5ndGg9USxnLnVzZUVNRSYmKGcuaXNWaWRlb0VuY3J5cHRpb258fGcuaXNBdWRpb0VuY3J5cHRpb24pKXtpZihnLmlzVmlkZW9FbmNyeXB0aW9uKXtpZihnLmlzVmlkZW8pe3ZhciBDPUEuc2FpeihnKSxFPUEuc2FpbyhnKSxpPUEudHJ1bjEoZyksdD1BLnNlbmMoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsQyxFLGksdCl9aWYoZy5pc0F1ZGlvRW5jcnlwdGlvbil7dmFyIG89QS5zYmdwKCksZT1BLnNhaXooZyksbj1BLnNhaW8oZykscj1BLnNlbmMoZyksYT1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLG8sZSxuLHIsYSl9dmFyIHM9QS5zYmdwKCksYz1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLHMsYyl9aWYoZy5pc1ZpZGVvKXt2YXIgaD1BLnRydW4xKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLGgpfXZhciBEPUEuc2JncCgpLHk9QS5zYWl6KGcpLGY9QS5zYWlvKGcpLHc9QS5zZW5jKGcpLHU9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixELHksZix3LHUpfXZhciBGPUEuc2R0cChnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixGLEEudHJ1bihnLnNhbXBsZXMsRi5ieXRlTGVuZ3RoKzc2KSl9fSx7a2V5OiJzZHRwIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgUW47cmV0dXJuIGcuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKG5ldyBVaW50OEFycmF5KGcuaXNWaWRlbz9bQS5rZXlmcmFtZT8zMjoxNl06WzE2XSkpfSkpLEEuYm94KEEudHlwZXMuc2R0cCx0aGlzLmV4dGVuc2lvbigwLDApLEkuYnVmZmVyKX19LHtrZXk6InRydW4xIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgUW4sQj1Rbi53cml0ZVVpbnQzMihnLnNhbXBsZXMubGVuZ3RoKSxRPW51bGw7aWYoZy5pc1ZpZGVvKXt2YXIgQz1nLnZpZGVvU2VuY0xlbmd0aDtRPVFuLndyaXRlVWludDMyKDE2Kmcuc2FtcGxlcy5sZW5ndGgrQysxNDkpLCFnLmlzVmlkZW9FbmNyeXB0aW9uJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoUT1Rbi53cml0ZVVpbnQzMigxNipnLnNhbXBsZXMubGVuZ3RoKzkyKSl9ZWxzZXt2YXIgRT0xMipnLnNhbXBsZXMubGVuZ3RoKzEyNDtnLmlzQXVkaW9FbmNyeXB0aW9uJiYoRT0xMipnLnNhbXBsZXMubGVuZ3RoKzgqZy5hdWRpb1NlbmMubGVuZ3RoKzE3NyksUT1Rbi53cml0ZVVpbnQzMihFKX1yZXR1cm4gZy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0kud3JpdGUoUW4ud3JpdGVVaW50MzIoQS5kdXJhdGlvbikpLEkud3JpdGUoUW4ud3JpdGVVaW50MzIoQS5zaXplKSksSS53cml0ZShRbi53cml0ZVVpbnQzMihBLmtleWZyYW1lPzMzNTU0NDMyOjY1NTM2KSksZy5pc1ZpZGVvJiZJLndyaXRlKFFuLndyaXRlVWludDMyKEEuY3RzP0EuY3RzOjApKX0pKSxBLmJveChBLnR5cGVzLnRydW4sdGhpcy5leHRlbnNpb24oMCxnLmZsYWdzKSxCLFEsSS5idWZmZXIpfX0se2tleToic2VuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFFuLEI9Zy5zYW1wbGVzLmxlbmd0aCxRPWcuaXNWaWRlbz8xNjo4LEM9Zy5pc1ZpZGVvPzI6MCxFPVtdLGk9MDtyZXR1cm4gZy5pc1ZpZGVvPyhFPWcudmlkZW9TZW5jLGk9Zy52aWRlb1NlbmNMZW5ndGgpOkU9Zy5hdWRpb1NlbmMsaT1pfHxRKkIsSS53cml0ZShRbi53cml0ZVVpbnQzMigxNitpKSxBLnR5cGVzLnNlbmMsdGhpcy5leHRlbnNpb24oMCxDKSksSS53cml0ZShRbi53cml0ZVVpbnQzMihCKSksRS5mb3JFYWNoKChmdW5jdGlvbihBKXtmb3IodmFyIGc9MDtnPEEuSW5pdGlhbGl6YXRpb25WZWN0b3IubGVuZ3RoO2crKylJLndyaXRlKG5ldyBVaW50OEFycmF5KFtBLkluaXRpYWxpemF0aW9uVmVjdG9yW2ddXSkpO0Euc3Vic2FtcGxlcyYmQS5zdWJzYW1wbGVzLmxlbmd0aCYmKEkud3JpdGUoUW4ud3JpdGVVaW50MTYoQS5zdWJzYW1wbGVzLmxlbmd0aCkpLEEuc3Vic2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKFFuLndyaXRlVWludDE2KEEuQnl0ZXNPZkNsZWFyRGF0YSkpLEkud3JpdGUoUW4ud3JpdGVVaW50MzIoQS5CeXRlc09mUHJvdGVjdGVkRGF0YSkpfSkpKX0pKSxJLmJ1ZmZlcn19LHtrZXk6InNhaW8iLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPTEyKmcuc2FtcGxlcy5sZW5ndGgrMTQxOyFnLmlzVmlkZW8mJmcuaXNBdWRpb0VuY3J5cHRpb24mJihJPTE0OSk7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoWzEsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYWlvLEIpfX0se2tleToic2FpeiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5zYW1wbGVzLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDE2LEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYWl6LEIpfX0se2tleToic2JncCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZz1uZXcgVWludDhBcnJheShbMTE0LDExMSwxMDgsMTA4LDAsMCwwLDEsMCwwLDEsMjUsMCwwLDAsMV0pO3JldHVybiBBLmJveChBLnR5cGVzLnNiZ3AsdGhpcy5leHRlbnNpb24oMCwwKSxnKX19LHtrZXk6ImV4dGVuc2lvbiIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0EsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSl9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50ZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRmZHQiLHZhbHVlOmZ1bmN0aW9uKGcsSSl7dmFyIEI9TWF0aC5mbG9vcihJLyhDbisxKSksUT1NYXRoLmZsb29yKEklKENuKzEpKTtyZXR1cm4gZy51c2VFTUUmJihnLmlzVmlkZW9FbmNyeXB0aW9ufHxnLmlzQXVkaW9FbmNyeXB0aW9uKT9BLmJveChBLnR5cGVzLnRmZHQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpOkEuYm94KEEudHlwZXMudGZkdCxuZXcgVWludDhBcnJheShbMSwwLDAsMCxCPj4yNCxCPj4xNiYyNTUsQj4+OCYyNTUsMjU1JkIsUT4+MjQsUT4+MTYmMjU1LFE+PjgmMjU1LDI1NSZRXSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1nLmxlbmd0aCxRPTEyKzE2KkI7SSs9OCtRO3ZhciBDPW5ldyBVaW50OEFycmF5KFEpO0Muc2V0KFswLDAsMTUsMSxCPj4+MjQmMjU1LEI+Pj4xNiYyNTUsQj4+PjgmMjU1LDI1NSZCLEk+Pj4yNCYyNTUsST4+PjE2JjI1NSxJPj4+OCYyNTUsMjU1JkldLDApO2Zvcih2YXIgRT0wO0U8QjtFKyspe3ZhciBpPWdbRV0sdD1pLmR1cmF0aW9uLG89aS5zaXplLGU9aS5mbGFnLG49dm9pZCAwPT09ZT97fTplLHI9aS5jdHMsYT12b2lkIDA9PT1yPzA6cjtDLnNldChbdD4+PjI0JjI1NSx0Pj4+MTYmMjU1LHQ+Pj44JjI1NSwyNTUmdCxvPj4+MjQmMjU1LG8+Pj4xNiYyNTUsbz4+PjgmMjU1LDI1NSZvLG4uaXNMZWFkaW5nPDwyfChudWxsPT09bi5kZXBlbmRzT258fHZvaWQgMD09PW4uZGVwZW5kc09uPzE6bi5kZXBlbmRzT24pLG4uaXNEZXBlbmRlZE9uPDw2fG4uaGFzUmVkdW5kYW5jeTw8NHxuLnBhZGRpbmdWYWx1ZTw8MXwobnVsbD09PW4uaXNOb25TeW5jU2FtcGxlfHx2b2lkIDA9PT1uLmlzTm9uU3luY1NhbXBsZT8xOm4uaXNOb25TeW5jU2FtcGxlKSw2MTQ0MCZuLmRlZ3JhZGF0aW9uUHJpb3JpdHksMTUmbi5kZWdyYWRhdGlvblByaW9yaXR5LGE+Pj4yNCYyNTUsYT4+PjE2JjI1NSxhPj4+OCYyNTUsMjU1JmFdLDEyKzE2KkUpfXJldHVybiBBLmJveChBLnR5cGVzLnRydW4sQyl9fSx7a2V5OiJtb292TVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLmR1cmF0aW9uLGdbMF0udGltZXNjYWxlKV0uY29uY2F0KEZlKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFja01QNChnKX0pKSkpKX19LHtrZXk6InRyYWNrTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFrLEEudGtoZChnLmlkLGcuZHVyYXRpb24sZy53aWR0aCxnLmhlaWdodCksQS5tZGlhTVA0KGcpKX19LHtrZXk6Im1kaWFNUDQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kaWEsQS5tZGhkKGcuZHVyYXRpb24sZy50aW1lc2NhbGUpLEEuaGRscihnLnR5cGUpLEEubWluZk1QNChnKSl9fSx7a2V5OiJtaW5mTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5taW5mLGcudHlwZT09PWxlP0EuVk1IRDpBLlNNSEQsQS5ESU5GLEEuc3RibE1QNChnKSl9fSx7a2V5OiJzdGJsTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmV4dCxCPVtBLnN0c2QoZyksQS5zdHRzKEkuc3R0cyksQS5zdHNjKEkuc3RzYyksQS5zdHN6KEkuc3RzeiksQS5zdGNvKEkuc3RjbyldO3JldHVybiBJLnN0c3MubGVuZ3RoJiZCLnB1c2goQS5zdHNzKEkuc3RzcykpLEkuY3R0cy5sZW5ndGgmJkIucHVzaChBLmN0dHMoSS5jdHRzKSksQS5ib3guYXBwbHkoQSxbQS50eXBlcy5zdGJsXS5jb25jYXQoQikpfX0se2tleToic3R0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg4KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZz1BLnZhbHVlLEk9QS5jb3VudDtCLnNldChbST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10sUSksUSs9OH0pKSxBLmJveChBLnR5cGVzLnN0dHMsamUobmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSgxMipJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS5maXJzdENodW5rLEk9QS5zYW1wbGVzUGVyQ2h1bmssQz1BLnNhbXBsZURlc2NJbmRleDtCLnNldChbZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxDPj4yNCxDPj4xNiYyNTUsQz4+OCYyNTUsMjU1JkNdLFEpLFErPTEyfSkpLEEuYm94KEEudHlwZXMuc3RzYyxqZShuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHN6Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDQqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdLFEpLFErPTR9KSksQS5ib3goQS50eXBlcy5zdHN6LGplKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RjbyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RjbyxqZShuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHNzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDQqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Iuc2V0KFtBPj4yNCxBPj4xNiYyNTUsQT4+OCYyNTUsMjU1JkFdLFEpLFErPTR9KSksQS5ib3goQS50eXBlcy5zdHNzLGplKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoOCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS52YWx1ZSxJPUEuY291bnQ7Qi5zZXQoW0k+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddLFEpLFErPTh9KSksQS5ib3goQS50eXBlcy5jdHRzLGplKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0eXAiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEEuYm94KEEudHlwZXMuc3R5cCxuZXcgVWludDhBcnJheShbMTA5LDExNSwxMDAsMTA0LDAsMCwwLDAsMTA5LDExNSwxMDAsMTA0LDEwOSwxMTUsMTA1LDEyMF0pKX19LHtrZXk6InNpZHgiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcudGltZXNjYWxlLEI9Zy5zYW1wbGVzWzBdLmR1cmF0aW9uLFE9QipnLnNhbXBsZXMubGVuZ3RoLEM9Zy5zYW1wbGVzWzBdLnNhbXBsZU9mZnNldCpCLEU9ODtnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7RSs9QS5zaXplfSkpO3ZhciBpPTA7aWYoZy5pc1ZpZGVvKXt2YXIgdCxvPTA7Zy52aWRlb1NlbmMmJih0PWcudmlkZW9TZW5jKSxnLmlzVmlkZW8mJnQuZm9yRWFjaCgoZnVuY3Rpb24oQSl7bys9OCxBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihvKz0yLG8rPTYqQS5zdWJzYW1wbGVzLmxlbmd0aCl9KSksZy52aWRlb1NlbmNMZW5ndGg9byxpPUUrMTQxKzE2Kmcuc2FtcGxlcy5sZW5ndGgrbyxnLnVzZUVNRSYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmIWcuaXNWaWRlb0VuY3J5cHRpb24mJihpPUUrMTYqZy5zYW1wbGVzLmxlbmd0aCs4NCl9ZWxzZSBpPUUrMTE2KzEyKmcuc2FtcGxlcy5sZW5ndGgsZy51c2VFTUUmJmcuaXNBdWRpb0VuY3J5cHRpb24mJihpPUUrMTY5KzEyKmcuc2FtcGxlcy5sZW5ndGgrOCpnLmF1ZGlvU2VuYy5sZW5ndGgpO3ZhciBlPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDI1NSZnLmlkLEk+PjI0JjI1NSxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksQz4+MjQmMjU1LEM+PjE2JjI1NSxDPj44JjI1NSwyNTUmQywwLDAsMCwwLDAsMCwwLDEsMCxpPj4xNiYyNTUsaT4+OCYyNTUsMjU1JmksUT4+MjQmMjU1LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUSwxNDQsMCwwLDBdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zaWR4LGUpfX0se2tleToibWRhdCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWRhdCxnKX19XSksQX0oKTt3ZShFbiwidHlwZXMiLFsiYXZjMSIsImF2Y0MiLCJodmMxIiwiaHZjQyIsImRpbmYiLCJkcmVmIiwiZXNkcyIsImZ0eXAiLCJoZGxyIiwibWRhdCIsIm1kaGQiLCJtZGlhIiwibWZoZCIsIm1pbmYiLCJtb29mIiwibW9vdiIsIm1wNGEiLCJtdmV4IiwibXZoZCIsInBhc3AiLCJzdGJsIiwic3RjbyIsInN0c2MiLCJzdHNkIiwic3RzeiIsInN0dHMiLCJ0ZmR0IiwidGZoZCIsInRyYWYiLCJ0cmFrIiwidHJleCIsInRraGQiLCJ2bWhkIiwic21oZCIsImN0dHMiLCJzdHNzIiwic3R5cCIsInBzc2giLCJzaWR4Iiwic2JncCIsInNhaXoiLCJzYWlvIiwic2VuYyIsInRydW4iLCJlbmN2IiwiZW5jYSIsInNpbmYiLCJidHJ0IiwiZnJtYSIsInRlbmMiLCJzY2htIiwic2NoaSIsIm1laGQiLCJmaWVsIiwic2R0cCJdLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQVtnXT1bZy5jaGFyQ29kZUF0KDApLGcuY2hhckNvZGVBdCgxKSxnLmNoYXJDb2RlQXQoMiksZy5jaGFyQ29kZUF0KDMpXSxBfSksT2JqZWN0LmNyZWF0ZShudWxsKSkpLHdlKEVuLCJIRExSX1RZUEVTIix7dmlkZW86bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwxMTgsMTA1LDEwMCwxMDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODYsMTA1LDEwMCwxMDEsMTExLDcyLDk3LDExMCwxMDAsMTA4LDEwMSwxMTQsMF0pLGF1ZGlvOm5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMTE1LDExMSwxMTcsMTEwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDgzLDExMSwxMTcsMTEwLDEwMCw3Miw5NywxMTAsMTAwLDEwOCwxMDEsMTE0LDBdKX0pLHdlKEVuLCJGVFlQQVZDMSIsRW4uYm94KEVuLnR5cGVzLmZ0eXAsbmV3IFVpbnQ4QXJyYXkoWzEwNSwxMTUsMTExLDEwOSwwLDAsMCwxLDEwNSwxMTUsMTExLDEwOSw5NywxMTgsOTksNDldKSkpLHdlKEVuLCJGVFlQSEVWMSIsRW4uYm94KEVuLnR5cGVzLmZ0eXAsbmV3IFVpbnQ4QXJyYXkoWzEwNSwxMTUsMTExLDEwOSwwLDAsMCwxLDEwNSwxMTUsMTExLDEwOSwxMDQsMTAxLDExOCw0OV0pKSksd2UoRW4sIkRJTkYiLEVuLmJveChFbi50eXBlcy5kaW5mLEVuLmJveChFbi50eXBlcy5kcmVmLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMTIsMTE3LDExNCwxMDgsMzIsMCwwLDAsMV0pKSkpLHdlKEVuLCJWTUhEIixFbi5ib3goRW4udHlwZXMudm1oZCxuZXcgVWludDhBcnJheShbMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDBdKSkpLHdlKEVuLCJTTUhEIixFbi5ib3goRW4udHlwZXMuc21oZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwXSkpKSx3ZShFbiwiU3RibFRhYmxlIixuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwXSkpLHdlKEVuLCJTVFRTIixFbi5ib3goRW4udHlwZXMuc3R0cyxFbi5TdGJsVGFibGUpKSx3ZShFbiwiU1RTQyIsRW4uYm94KEVuLnR5cGVzLnN0c2MsRW4uU3RibFRhYmxlKSksd2UoRW4sIlNUU1oiLEVuLmJveChFbi50eXBlcy5zdHN6LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pKSksd2UoRW4sIlNUQ08iLEVuLmJveChFbi50eXBlcy5zdGNvLEVuLlN0YmxUYWJsZSkpO3ZhciB0bj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJKXtEZSh0aGlzLEEpLHRoaXMubmFtZT1nfHwiIix0aGlzLl9wcmVmaXg9IlsiLmNvbmNhdCh0aGlzLm5hbWUsIl0iKSxBLmRpc2FibGVkPUl9cmV0dXJuIGZlKEEsW3trZXk6ImRlYnVnIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO2lmKCFBLmRpc2FibGVkKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJKSxRPTA7UTxJO1ErKylCW1FdPWFyZ3VtZW50c1tRXTsoZz1jb25zb2xlKS5kZWJ1Zy5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToibG9nIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO2lmKCFBLmRpc2FibGVkKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJKSxRPTA7UTxJO1ErKylCW1FdPWFyZ3VtZW50c1tRXTsoZz1jb25zb2xlKS5sb2cuYXBwbHkoZyxbdGhpcy5fcHJlZml4XS5jb25jYXQoQikpfX19LHtrZXk6Indhcm4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLndhcm4uYXBwbHkoZyxbdGhpcy5fcHJlZml4XS5jb25jYXQoQikpfX19LHtrZXk6ImVycm9yIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBnO2lmKCFBLmRpc2FibGVkKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxCPW5ldyBBcnJheShJKSxRPTA7UTxJO1ErKylCW1FdPWFyZ3VtZW50c1tRXTsoZz1jb25zb2xlKS5lcnJvci5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToidGFibGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7QS5kaXNhYmxlZHx8KGNvbnNvbGUuZ3JvdXAodGhpcy5fcHJlZml4KSwoZz1jb25zb2xlKS50YWJsZS5hcHBseShnLGFyZ3VtZW50cyksY29uc29sZS5ncm91cEVuZCgpKX19XSxbe2tleToiZW5hYmxlIix2YWx1ZTpmdW5jdGlvbigpe0EuZGlzYWJsZWQ9ITF9fSx7a2V5OiJkaXNhYmxlIix2YWx1ZTpmdW5jdGlvbigpe0EuZGlzYWJsZWQ9ITB9fV0pLEF9KCk7d2UodG4sImRpc2FibGVkIiwhMCk7dmFyIG9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEksQil7RGUodGhpcyxBKSx0aGlzLnZpZGVvVHJhY2s9Zyx0aGlzLmF1ZGlvVHJhY2s9STt2YXIgUT0vQ2hyb21lXC8oW14uXSspLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQpO3RoaXMuZm9yY2VGaXJzdElEUj1RJiZOdW1iZXIoUVsxXSk8NTAsdGhpcy5sb2c9bmV3IHRuKCJGTVA0UmVtdXhlciIsIUJ8fCFCLm9wZW5Mb2d8fCFCLm9wZW5Mb2cpfXJldHVybiBmZShBLFt7a2V5OiJyZW11eCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQSxnLEksQixRLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSxFPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPXRoaXMudmlkZW9UcmFjayx0PXRoaXMuYXVkaW9UcmFjayxvPWkuZXhpc3QoKSxlPXQuZXhpc3QoKSxuPVtdO3JldHVybiBDJiYoRSYmRS5pbml0TWVyZ2U/KG8mJm4ucHVzaCh0aGlzLnZpZGVvVHJhY2spLGUmJm4ucHVzaCh0aGlzLmF1ZGlvVHJhY2spLEk9RW4uaW5pdFNlZ21lbnQobikpOihvJiYoQT1Fbi5pbml0U2VnbWVudChbdGhpcy52aWRlb1RyYWNrXSkpLGUmJihnPUVuLmluaXRTZWdtZW50KFt0aGlzLmF1ZGlvVHJhY2tdKSkpKSxvJiZpLmhhc1NhbXBsZSgpJiYoQj10aGlzLl9yZW11eFZpZGVvKCkpLGUmJnQuaGFzU2FtcGxlKCkmJihRPXRoaXMuX3JlbXV4QXVkaW8oKSksaS5zYW1wbGVzPVtdLHQuc2FtcGxlcz1bXSx7aW5pdFNlZ21lbnQ6SSx2aWRlb0luaXRTZWdtZW50OkEsYXVkaW9Jbml0U2VnbWVudDpnLHZpZGVvU2VnbWVudDpCLGF1ZGlvU2VnbWVudDpRfX19LHtrZXk6Il9yZW11eFZpZGVvIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMudmlkZW9UcmFjazt0aGlzLmZvcmNlRmlyc3RJRFImJihBLnNhbXBsZXNbMF0uZmxhZz17ZGVwZW5kc09uOjIsaXNOb25TeW5jU2FtcGxlOjB9KTt2YXIgZz1BLnNhbXBsZXMsST0wO2cuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SSs9QS51bml0cy5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCksSSs9NCpBLnVuaXRzLmxlbmd0aH0pKTtmb3IodmFyIEIsUT1uZXcgVWludDhBcnJheShJKSxDPW5ldyBEYXRhVmlldyhRLmJ1ZmZlciksRT1mdW5jdGlvbihBLEkpe0k9Z1tpXTt2YXIgRT0wO0kudW5pdHMuZm9yRWFjaCgoZnVuY3Rpb24oZyl7Qy5zZXRVaW50MzIoQSxnLmJ5dGVMZW5ndGgpLEErPTQsUS5zZXQoZyxBKSxBKz1nLmJ5dGVMZW5ndGgsRSs9NCtnLmJ5dGVMZW5ndGh9KSksSS5zaXplPUUsbz1BLEI9SX0saT0wLHQ9Zy5sZW5ndGgsbz0wO2k8dDtpKyspRShvLEIpO3ZhciBlPUVuLm1kYXQoUSk7cmV0dXJuIGplKEVuLm1vb2YoW0FdKSxlKX19LHtrZXk6Il9yZW11eEF1ZGlvIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuYXVkaW9UcmFjayxnPW5ldyBVaW50OEFycmF5KEEuc2FtcGxlcy5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5zaXplfSksMCkpO0Euc2FtcGxlcy5yZWR1Y2UoKGZ1bmN0aW9uKEEsSSl7cmV0dXJuIGcuc2V0KEkuZGF0YSxBKSxBK0kuc2l6ZX0pLDApO3ZhciBJPUVuLm1kYXQoZyk7cmV0dXJuIGplKEVuLm1vb2YoW0FdKSxJKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudmlkZW9UcmFjay5yZXNldCgpLHRoaXMuYXVkaW9UcmFjay5yZXNldCgpfX1dKSxBfSgpO2Z1bmN0aW9uIGVuKEEpe3JldHVybihlbj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIEF9OmZ1bmN0aW9uKEEpe3JldHVybiBBJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZBLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZBIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgQX0pKEEpfWZ1bmN0aW9uIG5uKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gcm4oQSxnKXtmb3IodmFyIEk9MDtJPGcubGVuZ3RoO0krKyl7dmFyIEI9Z1tJXTtCLmVudW1lcmFibGU9Qi5lbnVtZXJhYmxlfHwhMSxCLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gQiYmKEIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLChRPUIua2V5LEM9dm9pZCAwLCJzeW1ib2wiPT10eXBlb2YoQz1mdW5jdGlvbihBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpcmV0dXJuIEE7dmFyIEk9QVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PUkpe3ZhciBCPUkuY2FsbChBLGd8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXJldHVybiBCO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09Zz9TdHJpbmc6TnVtYmVyKShBKX0oUSwic3RyaW5nIikpP0M6U3RyaW5nKEMpKSxCKX12YXIgUSxDfWZ1bmN0aW9uIGFuKEEsZyxJKXtyZXR1cm4gZyYmcm4oQS5wcm90b3R5cGUsZyksSSYmcm4oQSxJKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxBfWZ1bmN0aW9uIHNuKEEsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7QS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOkEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmhuKEEsZyl9ZnVuY3Rpb24gY24oQSl7cmV0dXJuKGNuPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKEEpe3JldHVybiBBLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKEEpfSkoQSl9ZnVuY3Rpb24gaG4oQSxnKXtyZXR1cm4oaG49T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gQS5fX3Byb3RvX189ZyxBfSkoQSxnKX1mdW5jdGlvbiBEbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaChBKXtyZXR1cm4hMX19ZnVuY3Rpb24geW4oQSxnLEkpe3JldHVybih5bj1EbigpP1JlZmxlY3QuY29uc3RydWN0LmJpbmQoKTpmdW5jdGlvbihBLGcsSSl7dmFyIEI9W251bGxdO0IucHVzaC5hcHBseShCLGcpO3ZhciBRPW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KEEsQikpO3JldHVybiBJJiZobihRLEkucHJvdG90eXBlKSxRfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGZuKEEsZyl7aWYoZyYmKCJvYmplY3QiPT10eXBlb2YgZ3x8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24oQSl7aWYodm9pZCAwPT09QSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBBfShBKX1mdW5jdGlvbiB3bihBKXt2YXIgZz1EbigpO3JldHVybiBmdW5jdGlvbigpe3ZhciBJLEI9Y24oQSk7aWYoZyl7dmFyIFE9Y24odGhpcykuY29uc3RydWN0b3I7ST1SZWZsZWN0LmNvbnN0cnVjdChCLGFyZ3VtZW50cyxRKX1lbHNlIEk9Qi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGZuKHRoaXMsSSl9fWZ1bmN0aW9uIHVuKCl7cmV0dXJuIHVuPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1mdW5jdGlvbihBLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChBLGcpJiZudWxsIT09KEE9Y24oQSkpOyk7cmV0dXJuIEF9KEEsZyk7aWYoQil7dmFyIFE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihCLGcpO3JldHVybiBRLmdldD9RLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9BOkkpOlEudmFsdWV9fSx1bi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIEZuPXBFLEduPSJBcnJheUJ1ZmZlciIsZG49WENbR25dO2pJKHtnbG9iYWw6ITAsZm9yY2VkOnJbR25dIT09ZG59LHtBcnJheUJ1ZmZlcjpkbn0pLEZuKEduKSxNaSgiSW50OCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJVaW50OCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSksITApLE1pKCJJbnQxNiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJVaW50MTYiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiSW50MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiVWludDMyIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIkZsb2F0MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiRmxvYXQ2NCIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpO3ZhciBSbj1kLGxuPWZ1bmN0aW9uKCl7dmFyIEE9Um4odGhpcyksZz0iIjtyZXR1cm4gQS5nbG9iYWwmJihnKz0iZyIpLEEuaWdub3JlQ2FzZSYmKGcrPSJpIiksQS5tdWx0aWxpbmUmJihnKz0ibSIpLEEuZG90QWxsJiYoZys9InMiKSxBLnVuaWNvZGUmJihnKz0idSIpLEEuc3RpY2t5JiYoZys9InkiKSxnfSxrbj1hSSxVbj1kLFNuPWcsTm49bG4sTW49InRvU3RyaW5nIixZbj1SZWdFeHAucHJvdG90eXBlLEhuPVluW01uXSxwbj1TbigoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPUhuLmNhbGwoe3NvdXJjZToiYSIsZmxhZ3M6ImIifSl9KSksSm49SG4ubmFtZSE9TW47KHBufHxKbikmJmtuKFJlZ0V4cC5wcm90b3R5cGUsTW4sKGZ1bmN0aW9uKCl7dmFyIEE9VW4odGhpcyksZz1TdHJpbmcoQS5zb3VyY2UpLEk9QS5mbGFncztyZXR1cm4iLyIrZysiLyIrU3RyaW5nKHZvaWQgMD09PUkmJkEgaW5zdGFuY2VvZiBSZWdFeHAmJiEoImZsYWdzImluIFluKT9Obi5jYWxsKEEpOkkpfSkse3Vuc2FmZTohMH0pO3ZhciBMbj1qSSx2bj1lLEtuPVtdLmpvaW4seG49RSE9T2JqZWN0LHFuPWR0KCJqb2luIiwiLCIpO0xuKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6eG58fCFxbn0se2pvaW46ZnVuY3Rpb24oQSl7cmV0dXJuIEtuLmNhbGwodm4odGhpcyksdm9pZCAwPT09QT8iLCI6QSl9fSk7dmFyIG1uPWpJLGJuPWcsVG49REUsam49aCxabj1XLE9uPVNBLFduPUFlLFZuPXVFLFhuPVFlLFBuPWVBLHpuPUdBKCJpc0NvbmNhdFNwcmVhZGFibGUiKSxfbj05MDA3MTk5MjU0NzQwOTkxLCRuPSJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiLEFyPVBuPj01MXx8IWJuKChmdW5jdGlvbigpe3ZhciBBPVtdO3JldHVybiBBW3puXT0hMSxBLmNvbmNhdCgpWzBdIT09QX0pKSxncj1YbigiY29uY2F0IiksSXI9ZnVuY3Rpb24oQSl7aWYoIWpuKEEpKXJldHVybiExO3ZhciBnPUFbem5dO3JldHVybiB2b2lkIDAhPT1nPyEhZzpUbihBKX07bW4oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohQXJ8fCFncn0se2NvbmNhdDpmdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEU9Wm4odGhpcyksaT1WbihFLDApLHQ9MDtmb3IoZz0tMSxCPWFyZ3VtZW50cy5sZW5ndGg7ZzxCO2crKylpZihJcihDPS0xPT09Zz9FOmFyZ3VtZW50c1tnXSkpe2lmKHQrKFE9T24oQy5sZW5ndGgpKT5fbil0aHJvdyBUeXBlRXJyb3IoJG4pO2ZvcihJPTA7STxRO0krKyx0KyspSSBpbiBDJiZXbihpLHQsQ1tJXSl9ZWxzZXtpZih0Pj1fbil0aHJvdyBUeXBlRXJyb3IoJG4pO1duKGksdCsrLEMpfXJldHVybiBpLmxlbmd0aD10LGl9fSk7dmFyIEJyPWpJLFFyPUhBLENyPWxBLEVyPVNBLGlyPVcsdHI9dUUsb3I9QWUsZXI9UWUoInNwbGljZSIpLG5yPU1hdGgubWF4LHJyPU1hdGgubWluO0JyKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IWVyfSx7c3BsaWNlOmZ1bmN0aW9uKEEsZyl7dmFyIEksQixRLEMsRSxpLHQ9aXIodGhpcyksbz1Fcih0Lmxlbmd0aCksZT1RcihBLG8pLG49YXJndW1lbnRzLmxlbmd0aDtpZigwPT09bj9JPUI9MDoxPT09bj8oST0wLEI9by1lKTooST1uLTIsQj1ycihucihDcihnKSwwKSxvLWUpKSxvK0ktQj45MDA3MTk5MjU0NzQwOTkxKXRocm93IFR5cGVFcnJvcigiTWF4aW11bSBhbGxvd2VkIGxlbmd0aCBleGNlZWRlZCIpO2ZvcihRPXRyKHQsQiksQz0wO0M8QjtDKyspKEU9ZStDKWluIHQmJm9yKFEsQyx0W0VdKTtpZihRLmxlbmd0aD1CLEk8Qil7Zm9yKEM9ZTtDPG8tQjtDKyspaT1DK0ksKEU9QytCKWluIHQ/dFtpXT10W0VdOmRlbGV0ZSB0W2ldO2ZvcihDPW87Qz5vLUIrSTtDLS0pZGVsZXRlIHRbQy0xXX1lbHNlIGlmKEk+Qilmb3IoQz1vLUI7Qz5lO0MtLSlpPUMrSS0xLChFPUMrQi0xKWluIHQ/dFtpXT10W0VdOmRlbGV0ZSB0W2ldO2ZvcihDPTA7QzxJO0MrKyl0W0MrZV09YXJndW1lbnRzW0MrMl07cmV0dXJuIHQubGVuZ3RoPW8tQitJLFF9fSk7Zm9yKHZhciBhcj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtubih0aGlzLEEpfXJldHVybiBhbihBLFt7a2V5OiJtaXhJbiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIE9iamVjdC5hc3NpZ24odGhpcyxBKX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPW5ldyB0aGlzLmNvbnN0cnVjdG9yO3JldHVybiBPYmplY3QuYXNzaWduKEEsdGhpcyksQX19XSxbe2tleToiY3JlYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEEpLEk9MDtJPEE7SSsrKWdbSV09YXJndW1lbnRzW0ldO3JldHVybiB5bih0aGlzLGcpfX1dKSxBfSgpLHNyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3ZhciBBLEI9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdLFE9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjQqQi5sZW5ndGg7bm4odGhpcyxJKSxBPWcuY2FsbCh0aGlzKTt2YXIgQz1CO2lmKEMgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKEM9bmV3IFVpbnQ4QXJyYXkoQykpLChDIGluc3RhbmNlb2YgSW50OEFycmF5fHxDIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fEMgaW5zdGFuY2VvZiBJbnQxNkFycmF5fHxDIGluc3RhbmNlb2YgVWludDE2QXJyYXl8fEMgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHxDIGluc3RhbmNlb2YgVWludDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpJiYoQz1uZXcgVWludDhBcnJheShDLmJ1ZmZlcixDLmJ5dGVPZmZzZXQsQy5ieXRlTGVuZ3RoKSksQyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2Zvcih2YXIgRT1DLmJ5dGVMZW5ndGgsaT1bXSx0PTA7dDxFO3QrPTEpaVt0Pj4+Ml18PUNbdF08PDI0LXQlNCo4O0Eud29yZHM9aSxBLnNpZ0J5dGVzPUV9ZWxzZSBBLndvcmRzPUIsQS5zaWdCeXRlcz1RO3JldHVybiBBfXJldHVybiBhbihJLFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4oYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmNyKS5zdHJpbmdpZnkodGhpcyl9fSx7a2V5OiJjb25jYXQiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMud29yZHMsST1BLndvcmRzLEI9dGhpcy5zaWdCeXRlcyxRPUEuc2lnQnl0ZXM7aWYodGhpcy5jbGFtcCgpLEIlNClmb3IodmFyIEM9MDtDPFE7Qys9MSl7dmFyIEU9SVtDPj4+Ml0+Pj4yNC1DJTQqOCYyNTU7Z1tCK0M+Pj4yXXw9RTw8MjQtKEIrQyklNCo4fWVsc2UgZm9yKHZhciBpPTA7aTxRO2krPTQpZ1tCK2k+Pj4yXT1JW2k+Pj4yXTtyZXR1cm4gdGhpcy5zaWdCeXRlcys9USx0aGlzfX0se2tleToiY2xhbXAiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy53b3JkcyxnPXRoaXMuc2lnQnl0ZXM7QVtnPj4+Ml0mPTQyOTQ5NjcyOTU8PDMyLWclNCo4LEEubGVuZ3RoPU1hdGguY2VpbChnLzQpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dW4oY24oSS5wcm90b3R5cGUpLCJjbG9uZSIsdGhpcykuY2FsbCh0aGlzKTtyZXR1cm4gQS53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLEF9fV0sW3trZXk6InJhbmRvbSIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnLEI9W10sUT1mdW5jdGlvbihBKXt2YXIgZz1BLEk9OTg3NjU0MzIxLEI9NDI5NDk2NzI5NTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgQT0oKEk9MzY5NjkqKDY1NTM1JkkpKyhJPj4xNikmQik8PDE2KSsoZz0xOGUzKig2NTUzNSZnKSsoZz4+MTYpJkIpJkI7cmV0dXJuIEEvPTQyOTQ5NjcyOTYsKEErPS41KSooTWF0aC5yYW5kb20oKT4uNT8xOi0xKX19LEM9MDtDPEE7Qys9NCl7dmFyIEU9USg0Mjk0OTY3Mjk2KihnfHxNYXRoLnJhbmRvbSgpKSk7Zz05ODc2NTQwNzEqRSgpLEIucHVzaCg0Mjk0OTY3Mjk2KkUoKXwwKX1yZXR1cm4gbmV3IEkoQixBKX19XSksSX0oYXIpLGNyPXtzdHJpbmdpZnk6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEud29yZHMsST1BLnNpZ0J5dGVzLEI9W10sUT0wO1E8STtRKz0xKXt2YXIgQz1nW1E+Pj4yXT4+PjI0LVElNCo4JjI1NTtCLnB1c2goKEM+Pj40KS50b1N0cmluZygxNikpLEIucHVzaCgoMTUmQykudG9TdHJpbmcoMTYpKX1yZXR1cm4gQi5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEubGVuZ3RoLEk9W10sQj0wO0I8ZztCKz0yKUlbQj4+PjNdfD1wYXJzZUludChBLnN1YnN0cihCLDIpLDE2KTw8MjQtQiU4KjQ7cmV0dXJuIG5ldyBzcihJLGcvMil9fSxocj1mdW5jdGlvbihBKXtmb3IodmFyIGc9QS5sZW5ndGgsST1bXSxCPTA7QjxnO0IrPTEpSVtCPj4+Ml18PSgyNTUmQS5jaGFyQ29kZUF0KEIpKTw8MjQtQiU0Kjg7cmV0dXJuIG5ldyBzcihJLGcpfSxEcj1mdW5jdGlvbihBKXtyZXR1cm4gaHIodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEEpKSl9LHlyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3ZhciBBO3JldHVybiBubih0aGlzLEkpLChBPWcuY2FsbCh0aGlzKSkuX21pbkJ1ZmZlclNpemU9MCxBfXJldHVybiBhbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9kYXRhPW5ldyBzcix0aGlzLl9uRGF0YUJ5dGVzPTB9fSx7a2V5OiJfYXBwZW5kIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BOyJzdHJpbmciPT10eXBlb2YgZyYmKGc9RHIoZykpLHRoaXMuX2RhdGEuY29uY2F0KGcpLHRoaXMuX25EYXRhQnl0ZXMrPWcuc2lnQnl0ZXN9fSx7a2V5OiJfcHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGcsST10aGlzLl9kYXRhLEI9dGhpcy5ibG9ja1NpemUsUT1JLndvcmRzLEM9SS5zaWdCeXRlcyxFPUMvKDQqQiksaT0oRT1BP01hdGguY2VpbChFKTpNYXRoLm1heCgoMHxFKS10aGlzLl9taW5CdWZmZXJTaXplLDApKSpCLHQ9TWF0aC5taW4oNCppLEMpO2lmKGkpe2Zvcih2YXIgbz0wO288aTtvKz1CKXRoaXMuX2RvUHJvY2Vzc0Jsb2NrKFEsbyk7Zz1RLnNwbGljZSgwLGkpLEkuc2lnQnl0ZXMtPXR9cmV0dXJuIG5ldyBzcihnLHQpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dW4oY24oSS5wcm90b3R5cGUpLCJjbG9uZSIsdGhpcykuY2FsbCh0aGlzKTtyZXR1cm4gQS5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksQX19XSksSX0oYXIpLGZyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSShBKXt2YXIgQjtyZXR1cm4gbm4odGhpcyxJKSwoQj1nLmNhbGwodGhpcykpLmJsb2NrU2l6ZT0xNixCLmNmZz1PYmplY3QuYXNzaWduKG5ldyBhcixBKSxCLnJlc2V0KCksQn1yZXR1cm4gYW4oSSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dW4oY24oSS5wcm90b3R5cGUpLCJyZXNldCIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLl9hcHBlbmQoQSksdGhpcy5fcHJvY2VzcygpLHRoaXN9fSx7a2V5OiJmaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJnRoaXMuX2FwcGVuZChBKSx0aGlzLl9kb0ZpbmFsaXplKCl9fV0sW3trZXk6Il9jcmVhdGVIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEkpe3JldHVybiBuZXcgQShJKS5maW5hbGl6ZShnKX19fSx7a2V5OiJfY3JlYXRlSG1hY0hlbHBlciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7cmV0dXJuIG5ldyB3cihBLEkpLmZpbmFsaXplKGcpfX19XSksSX0oeXIpLHdyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSShBLEIpe3ZhciBRO25uKHRoaXMsSSksUT1nLmNhbGwodGhpcyk7dmFyIEM9bmV3IEE7US5faGFzaGVyPUM7dmFyIEU9Qjsic3RyaW5nIj09dHlwZW9mIEUmJihFPURyKEUpKTt2YXIgaT1DLmJsb2NrU2l6ZSx0PTQqaTtFLnNpZ0J5dGVzPnQmJihFPUMuZmluYWxpemUoQikpLEUuY2xhbXAoKTt2YXIgbz1FLmNsb25lKCk7US5fb0tleT1vO3ZhciBlPUUuY2xvbmUoKTtRLl9pS2V5PWU7Zm9yKHZhciBuPW8ud29yZHMscj1lLndvcmRzLGE9MDthPGk7YSs9MSluW2FdXj0xNTQ5NTU2ODI4LHJbYV1ePTkwOTUyMjQ4NjtyZXR1cm4gby5zaWdCeXRlcz10LGUuc2lnQnl0ZXM9dCxRLnJlc2V0KCksUX1yZXR1cm4gYW4oSSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5faGFzaGVyO0EucmVzZXQoKSxBLnVwZGF0ZSh0aGlzLl9pS2V5KX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2hhc2hlci51cGRhdGUoQSksdGhpc319LHtrZXk6ImZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz10aGlzLl9oYXNoZXIsST1nLmZpbmFsaXplKEEpO3JldHVybiBnLnJlc2V0KCksZy5maW5hbGl6ZSh0aGlzLl9vS2V5LmNsb25lKCkuY29uY2F0KEkpKX19XSksSX0oYXIpLHVyPXtzdHJpbmdpZnk6ZnVuY3Rpb24oQSl7dmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj10aGlzLl9tYXA7QS5jbGFtcCgpO2Zvcih2YXIgUT1bXSxDPTA7QzxJO0MrPTMpZm9yKHZhciBFPShnW0M+Pj4yXT4+PjI0LUMlNCo4JjI1NSk8PDE2fChnW0MrMT4+PjJdPj4+MjQtKEMrMSklNCo4JjI1NSk8PDh8Z1tDKzI+Pj4yXT4+PjI0LShDKzIpJTQqOCYyNTUsaT0wO2k8NCYmQysuNzUqaTxJO2krPTEpUS5wdXNoKEIuY2hhckF0KEU+Pj42KigzLWkpJjYzKSk7dmFyIHQ9Qi5jaGFyQXQoNjQpO2lmKHQpZm9yKDtRLmxlbmd0aCU0OylRLnB1c2godCk7cmV0dXJuIFEuam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKEEpe3ZhciBnPUEubGVuZ3RoLEk9dGhpcy5fbWFwLEI9dGhpcy5fcmV2ZXJzZU1hcDtpZighQil7dGhpcy5fcmV2ZXJzZU1hcD1bXSxCPXRoaXMuX3JldmVyc2VNYXA7Zm9yKHZhciBRPTA7UTxJLmxlbmd0aDtRKz0xKUJbSS5jaGFyQ29kZUF0KFEpXT1RfXZhciBDPUkuY2hhckF0KDY0KTtpZihDKXt2YXIgRT1BLmluZGV4T2YoQyk7LTEhPT1FJiYoZz1FKX1yZXR1cm4gZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1bXSxRPTAsQz0wO0M8ZztDKz0xKWlmKEMlNCl7dmFyIEU9SVtBLmNoYXJDb2RlQXQoQy0xKV08PEMlNCoyfElbQS5jaGFyQ29kZUF0KEMpXT4+PjYtQyU0KjI7QltRPj4+Ml18PUU8PDI0LVElNCo4LFErPTF9cmV0dXJuIHNyLmNyZWF0ZShCLFEpfShBLGcsQil9LF9tYXA6IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89In0sRnI9W10sR3I9MDtHcjw2NDtHcis9MSlGcltHcl09NDI5NDk2NzI5NipNYXRoLmFicyhNYXRoLnNpbihHcisxKSl8MDt2YXIgZHI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZyZJfH5nJkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sUnI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZyZCfEkmfkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sbHI9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoZ15JXkIpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sa3I9ZnVuY3Rpb24oQSxnLEksQixRLEMsRSl7dmFyIGk9QSsoSV4oZ3x+QikpK1ErRTtyZXR1cm4oaTw8Q3xpPj4+MzItQykrZ30sVXI9ZnVuY3Rpb24oQSl7c24oSSxBKTt2YXIgZz13bihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIG5uKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGFuKEksW3trZXk6Il9kb1Jlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IHNyKFsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzhdKX19LHtrZXk6Il9kb1Byb2Nlc3NCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9QSxCPTA7QjwxNjtCKz0xKXt2YXIgUT1nK0IsQz1BW1FdO0lbUV09MTY3MTE5MzUmKEM8PDh8Qz4+PjI0KXw0Mjc4MjU1MzYwJihDPDwyNHxDPj4+OCl9dmFyIEU9dGhpcy5faGFzaC53b3JkcyxpPUlbZyswXSx0PUlbZysxXSxvPUlbZysyXSxlPUlbZyszXSxuPUlbZys0XSxyPUlbZys1XSxhPUlbZys2XSxzPUlbZys3XSxjPUlbZys4XSxoPUlbZys5XSxEPUlbZysxMF0seT1JW2crMTFdLGY9SVtnKzEyXSx3PUlbZysxM10sdT1JW2crMTRdLEY9SVtnKzE1XSxHPUVbMF0sZD1FWzFdLFI9RVsyXSxsPUVbM107Rz1kcihHLGQsUixsLGksNyxGclswXSksbD1kcihsLEcsZCxSLHQsMTIsRnJbMV0pLFI9ZHIoUixsLEcsZCxvLDE3LEZyWzJdKSxkPWRyKGQsUixsLEcsZSwyMixGclszXSksRz1kcihHLGQsUixsLG4sNyxGcls0XSksbD1kcihsLEcsZCxSLHIsMTIsRnJbNV0pLFI9ZHIoUixsLEcsZCxhLDE3LEZyWzZdKSxkPWRyKGQsUixsLEcscywyMixGcls3XSksRz1kcihHLGQsUixsLGMsNyxGcls4XSksbD1kcihsLEcsZCxSLGgsMTIsRnJbOV0pLFI9ZHIoUixsLEcsZCxELDE3LEZyWzEwXSksZD1kcihkLFIsbCxHLHksMjIsRnJbMTFdKSxHPWRyKEcsZCxSLGwsZiw3LEZyWzEyXSksbD1kcihsLEcsZCxSLHcsMTIsRnJbMTNdKSxSPWRyKFIsbCxHLGQsdSwxNyxGclsxNF0pLGQ9ZHIoZCxSLGwsRyxGLDIyLEZyWzE1XSksRz1ScihHLGQsUixsLHQsNSxGclsxNl0pLGw9UnIobCxHLGQsUixhLDksRnJbMTddKSxSPVJyKFIsbCxHLGQseSwxNCxGclsxOF0pLGQ9UnIoZCxSLGwsRyxpLDIwLEZyWzE5XSksRz1ScihHLGQsUixsLHIsNSxGclsyMF0pLGw9UnIobCxHLGQsUixELDksRnJbMjFdKSxSPVJyKFIsbCxHLGQsRiwxNCxGclsyMl0pLGQ9UnIoZCxSLGwsRyxuLDIwLEZyWzIzXSksRz1ScihHLGQsUixsLGgsNSxGclsyNF0pLGw9UnIobCxHLGQsUix1LDksRnJbMjVdKSxSPVJyKFIsbCxHLGQsZSwxNCxGclsyNl0pLGQ9UnIoZCxSLGwsRyxjLDIwLEZyWzI3XSksRz1ScihHLGQsUixsLHcsNSxGclsyOF0pLGw9UnIobCxHLGQsUixvLDksRnJbMjldKSxSPVJyKFIsbCxHLGQscywxNCxGclszMF0pLGQ9UnIoZCxSLGwsRyxmLDIwLEZyWzMxXSksRz1scihHLGQsUixsLHIsNCxGclszMl0pLGw9bHIobCxHLGQsUixjLDExLEZyWzMzXSksUj1scihSLGwsRyxkLHksMTYsRnJbMzRdKSxkPWxyKGQsUixsLEcsdSwyMyxGclszNV0pLEc9bHIoRyxkLFIsbCx0LDQsRnJbMzZdKSxsPWxyKGwsRyxkLFIsbiwxMSxGclszN10pLFI9bHIoUixsLEcsZCxzLDE2LEZyWzM4XSksZD1scihkLFIsbCxHLEQsMjMsRnJbMzldKSxHPWxyKEcsZCxSLGwsdyw0LEZyWzQwXSksbD1scihsLEcsZCxSLGksMTEsRnJbNDFdKSxSPWxyKFIsbCxHLGQsZSwxNixGcls0Ml0pLGQ9bHIoZCxSLGwsRyxhLDIzLEZyWzQzXSksRz1scihHLGQsUixsLGgsNCxGcls0NF0pLGw9bHIobCxHLGQsUixmLDExLEZyWzQ1XSksUj1scihSLGwsRyxkLEYsMTYsRnJbNDZdKSxkPWxyKGQsUixsLEcsbywyMyxGcls0N10pLEc9a3IoRyxkLFIsbCxpLDYsRnJbNDhdKSxsPWtyKGwsRyxkLFIscywxMCxGcls0OV0pLFI9a3IoUixsLEcsZCx1LDE1LEZyWzUwXSksZD1rcihkLFIsbCxHLHIsMjEsRnJbNTFdKSxHPWtyKEcsZCxSLGwsZiw2LEZyWzUyXSksbD1rcihsLEcsZCxSLGUsMTAsRnJbNTNdKSxSPWtyKFIsbCxHLGQsRCwxNSxGcls1NF0pLGQ9a3IoZCxSLGwsRyx0LDIxLEZyWzU1XSksRz1rcihHLGQsUixsLGMsNixGcls1Nl0pLGw9a3IobCxHLGQsUixGLDEwLEZyWzU3XSksUj1rcihSLGwsRyxkLGEsMTUsRnJbNThdKSxkPWtyKGQsUixsLEcsdywyMSxGcls1OV0pLEc9a3IoRyxkLFIsbCxuLDYsRnJbNjBdKSxsPWtyKGwsRyxkLFIseSwxMCxGcls2MV0pLFI9a3IoUixsLEcsZCxvLDE1LEZyWzYyXSksZD1rcihkLFIsbCxHLGgsMjEsRnJbNjNdKSxFWzBdPUVbMF0rR3wwLEVbMV09RVsxXStkfDAsRVsyXT1FWzJdK1J8MCxFWzNdPUVbM10rbHwwfX0se2tleToiX2RvRmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5fZGF0YSxnPUEud29yZHMsST04KnRoaXMuX25EYXRhQnl0ZXMsQj04KkEuc2lnQnl0ZXM7Z1tCPj4+NV18PTEyODw8MjQtQiUzMjt2YXIgUT1NYXRoLmZsb29yKEkvNDI5NDk2NzI5NiksQz1JO2dbMTUrKEIrNjQ+Pj45PDw0KV09MTY3MTE5MzUmKFE8PDh8UT4+PjI0KXw0Mjc4MjU1MzYwJihRPDwyNHxRPj4+OCksZ1sxNCsoQis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoQzw8OHxDPj4+MjQpfDQyNzgyNTUzNjAmKEM8PDI0fEM+Pj44KSxBLnNpZ0J5dGVzPTQqKGcubGVuZ3RoKzEpLHRoaXMuX3Byb2Nlc3MoKTtmb3IodmFyIEU9dGhpcy5faGFzaCxpPUUud29yZHMsdD0wO3Q8NDt0Kz0xKXt2YXIgbz1pW3RdO2lbdF09MTY3MTE5MzUmKG88PDh8bz4+PjI0KXw0Mjc4MjU1MzYwJihvPDwyNHxvPj4+OCl9cmV0dXJuIEV9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT11bihjbihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLl9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSxBfX1dKSxJfShmcik7ZnIuX2NyZWF0ZUhlbHBlcihVciksZnIuX2NyZWF0ZUhtYWNIZWxwZXIoVXIpO3ZhciBTcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoQSl7dmFyIEI7cmV0dXJuIG5uKHRoaXMsSSksKEI9Zy5jYWxsKHRoaXMpKS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgYXIse2tleVNpemU6NCxoYXNoZXI6VXIsaXRlcmF0aW9uczoxfSxBKSxCfXJldHVybiBhbihJLFt7a2V5OiJjb21wdXRlIix2YWx1ZTpmdW5jdGlvbihBLGcpe2Zvcih2YXIgSSxCPXRoaXMuY2ZnLFE9Qi5oYXNoZXIuY3JlYXRlKCksQz1zci5jcmVhdGUoKSxFPUMud29yZHMsaT1CLmtleVNpemUsdD1CLml0ZXJhdGlvbnM7RS5sZW5ndGg8aTspe0kmJlEudXBkYXRlKEkpLEk9US51cGRhdGUoQSkuZmluYWxpemUoZyksUS5yZXNldCgpO2Zvcih2YXIgbz0xO288dDtvKz0xKUk9US5maW5hbGl6ZShJKSxRLnJlc2V0KCk7Qy5jb25jYXQoSSl9cmV0dXJuIEMuc2lnQnl0ZXM9NCppLEN9fV0pLEl9KGFyKSxOcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoQSxCLFEpe3ZhciBDO3JldHVybiBubih0aGlzLEkpLChDPWcuY2FsbCh0aGlzKSkuY2ZnPU9iamVjdC5hc3NpZ24obmV3IGFyLFEpLEMuX3hmb3JtTW9kZT1BLEMuX2tleT1CLEMucmVzZXQoKSxDfXJldHVybiBhbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt1bihjbihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX19LHtrZXk6InByb2Nlc3MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLl9hcHBlbmQoQSksdGhpcy5fcHJvY2VzcygpfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBBJiZ0aGlzLl9hcHBlbmQoQSksdGhpcy5fZG9GaW5hbGl6ZSgpfX1dLFt7a2V5OiJjcmVhdGVFbmNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0VOQ19YRk9STV9NT0RFLEEsZyl9fSx7a2V5OiJjcmVhdGVEZWNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0RFQ19YRk9STV9NT0RFLEEsZyl9fSx7a2V5OiJfY3JlYXRlSGVscGVyIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1mdW5jdGlvbihBKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEE/cXI6S3J9O3JldHVybntlbmNyeXB0OmZ1bmN0aW9uKEksQixRKXtyZXR1cm4gZyhCKS5lbmNyeXB0KEEsSSxCLFEpfSxkZWNyeXB0OmZ1bmN0aW9uKEksQixRKXtyZXR1cm4gZyhCKS5kZWNyeXB0KEEsSSxCLFEpfX19fV0pLEl9KHlyKTtOci5fRU5DX1hGT1JNX01PREU9MSxOci5fREVDX1hGT1JNX01PREU9MixOci5rZXlTaXplPTQsTnIuaXZTaXplPTQ7dmFyIE1yPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSShBLEIpe3ZhciBRO3JldHVybiBubih0aGlzLEkpLChRPWcuY2FsbCh0aGlzKSkuX2NpcGhlcj1BLFEuX2l2PUIsUX1yZXR1cm4gYW4oSSxudWxsLFt7a2V5OiJjcmVhdGVFbmNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuRW5jcnlwdG9yLmNyZWF0ZShBLGcpfX0se2tleToiY3JlYXRlRGVjcnlwdG9yIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiB0aGlzLkRlY3J5cHRvci5jcmVhdGUoQSxnKX19XSksSX0oYXIpO2Z1bmN0aW9uIFlyKEEsZyxJKXt2YXIgQixRPUEsQz10aGlzLl9pdjtDPyhCPUMsdGhpcy5faXY9dm9pZCAwKTpCPXRoaXMuX3ByZXZCbG9jaztmb3IodmFyIEU9MDtFPEk7RSs9MSlRW2crRV1ePUJbRV19dmFyIEhyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiBubih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBhbihJKX0oTXIpO0hyLkVuY3J5cHRvcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4gbm4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYW4oSSxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMuX2NpcGhlcixCPUkuYmxvY2tTaXplO1lyLmNhbGwodGhpcyxBLGcsQiksSS5lbmNyeXB0QmxvY2soQSxnKSx0aGlzLl9wcmV2QmxvY2s9QS5zbGljZShnLGcrQil9fV0pLEl9KEhyKSxIci5EZWNyeXB0b3I9ZnVuY3Rpb24oQSl7c24oSSxBKTt2YXIgZz13bihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIG5uKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGFuKEksW3trZXk6InByb2Nlc3NCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST10aGlzLl9jaXBoZXIsQj1JLmJsb2NrU2l6ZSxRPUEuc2xpY2UoZyxnK0IpO0kuZGVjcnlwdEJsb2NrKEEsZyksWXIuY2FsbCh0aGlzLEEsZyxCKSx0aGlzLl9wcmV2QmxvY2s9UX19XSksSX0oSHIpO3ZhciBwcj17cGFkOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTQqZyxCPUktQS5zaWdCeXRlcyVJLFE9Qjw8MjR8Qjw8MTZ8Qjw8OHxCLEM9W10sRT0wO0U8QjtFKz00KUMucHVzaChRKTt2YXIgaT1zci5jcmVhdGUoQyxCKTtBLmNvbmNhdChpKX0sdW5wYWQ6ZnVuY3Rpb24oQSl7dmFyIGc9QSxJPTI1NSZnLndvcmRzW2cuc2lnQnl0ZXMtMT4+PjJdO2cuc2lnQnl0ZXMtPUl9fSxKcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoQSxCLFEpe3ZhciBDO3JldHVybiBubih0aGlzLEkpLChDPWcuY2FsbCh0aGlzLEEsQixPYmplY3QuYXNzaWduKHttb2RlOkhyLHBhZGRpbmc6cHJ9LFEpKSkuYmxvY2tTaXplPTQsQ31yZXR1cm4gYW4oSSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7dW4oY24oSS5wcm90b3R5cGUpLCJyZXNldCIsdGhpcykuY2FsbCh0aGlzKTt2YXIgZz10aGlzLmNmZyxCPWcuaXYsUT1nLm1vZGU7dGhpcy5feGZvcm1Nb2RlPT09dGhpcy5jb25zdHJ1Y3Rvci5fRU5DX1hGT1JNX01PREU/QT1RLmNyZWF0ZUVuY3J5cHRvcjooQT1RLmNyZWF0ZURlY3J5cHRvcix0aGlzLl9taW5CdWZmZXJTaXplPTEpLHRoaXMuX21vZGU9QS5jYWxsKFEsdGhpcyxCJiZCLndvcmRzKSx0aGlzLl9tb2RlLl9fY3JlYXRvcj1BfX0se2tleToiX2RvUHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3RoaXMuX21vZGUucHJvY2Vzc0Jsb2NrKEEsZyl9fSx7a2V5OiJfZG9GaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQSxnPXRoaXMuY2ZnLnBhZGRpbmc7cmV0dXJuIHRoaXMuX3hmb3JtTW9kZT09PXRoaXMuY29uc3RydWN0b3IuX0VOQ19YRk9STV9NT0RFPyhnLnBhZCh0aGlzLl9kYXRhLHRoaXMuYmxvY2tTaXplKSxBPXRoaXMuX3Byb2Nlc3MoITApKTooQT10aGlzLl9wcm9jZXNzKCEwKSxnLnVucGFkKEEpKSxBfX1dKSxJfShOciksTHI9ZnVuY3Rpb24oQSl7c24oSSxBKTt2YXIgZz13bihJKTtmdW5jdGlvbiBJKEEpe3ZhciBCO3JldHVybiBubih0aGlzLEkpLChCPWcuY2FsbCh0aGlzKSkubWl4SW4oQSksQn1yZXR1cm4gYW4oSSxbe2tleToidG9TdHJpbmciLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybihBfHx0aGlzLmZvcm1hdHRlcikuc3RyaW5naWZ5KHRoaXMpfX1dKSxJfShhciksdnI9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXt2YXIgZz1BLmNpcGhlcnRleHQsST1BLnNhbHQ7cmV0dXJuKEk/c3IuY3JlYXRlKFsxMzk4ODkzNjg0LDE3MDEwNzY4MzFdKS5jb25jYXQoSSkuY29uY2F0KGcpOmcpLnRvU3RyaW5nKHVyKX0scGFyc2U6ZnVuY3Rpb24oQSl7dmFyIGcsST11ci5wYXJzZShBKSxCPUkud29yZHM7cmV0dXJuIDEzOTg4OTM2ODQ9PT1CWzBdJiYxNzAxMDc2ODMxPT09QlsxXSYmKGc9c3IuY3JlYXRlKEIuc2xpY2UoMiw0KSksQi5zcGxpY2UoMCw0KSxJLnNpZ0J5dGVzLT0xNiksTHIuY3JlYXRlKHtjaXBoZXJ0ZXh0Okksc2FsdDpnfSl9fSxLcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4gbm4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYW4oSSxudWxsLFt7a2V5OiJlbmNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1PYmplY3QuYXNzaWduKG5ldyBhcix0aGlzLmNmZyxCKSxDPUEuY3JlYXRlRW5jcnlwdG9yKEksUSksRT1DLmZpbmFsaXplKGcpLGk9Qy5jZmc7cmV0dXJuIExyLmNyZWF0ZSh7Y2lwaGVydGV4dDpFLGtleTpJLGl2OmkuaXYsYWxnb3JpdGhtOkEsbW9kZTppLm1vZGUscGFkZGluZzppLnBhZGRpbmcsYmxvY2tTaXplOkMuYmxvY2tTaXplLGZvcm1hdHRlcjpRLmZvcm1hdH0pfX0se2tleToiZGVjcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ZyxDPU9iamVjdC5hc3NpZ24obmV3IGFyLHRoaXMuY2ZnLEIpO3JldHVybiBRPXRoaXMuX3BhcnNlKFEsQy5mb3JtYXQpLEEuY3JlYXRlRGVjcnlwdG9yKEksQykuZmluYWxpemUoUS5jaXBoZXJ0ZXh0KX19LHtrZXk6Il9wYXJzZSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEE/Zy5wYXJzZShBLHRoaXMpOkF9fV0pLEl9KGFyKTtLci5jZmc9T2JqZWN0LmFzc2lnbihuZXcgYXIse2Zvcm1hdDp2cn0pO3ZhciB4cj17ZXhlY3V0ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1CO1F8fChRPXNyLnJhbmRvbSg4KSk7dmFyIEM9U3IuY3JlYXRlKHtrZXlTaXplOmcrSX0pLmNvbXB1dGUoQSxRKSxFPXNyLmNyZWF0ZShDLndvcmRzLnNsaWNlKGcpLDQqSSk7cmV0dXJuIEMuc2lnQnl0ZXM9NCpnLExyLmNyZWF0ZSh7a2V5OkMsaXY6RSxzYWx0OlF9KX19LHFyPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiBubih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBhbihJLG51bGwsW3trZXk6ImVuY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPU9iamVjdC5hc3NpZ24obmV3IGFyLHRoaXMuY2ZnLEIpLEM9US5rZGYuZXhlY3V0ZShJLEEua2V5U2l6ZSxBLml2U2l6ZSk7US5pdj1DLml2O3ZhciBFPUtyLmVuY3J5cHQuY2FsbCh0aGlzLEEsZyxDLmtleSxRKTtyZXR1cm4gRS5taXhJbihDKSxFfX0se2tleToiZGVjcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ZyxDPU9iamVjdC5hc3NpZ24obmV3IGFyLHRoaXMuY2ZnLEIpO1E9dGhpcy5fcGFyc2UoUSxDLmZvcm1hdCk7dmFyIEU9Qy5rZGYuZXhlY3V0ZShJLEEua2V5U2l6ZSxBLml2U2l6ZSxRLnNhbHQpO3JldHVybiBDLml2PUUuaXYsS3IuZGVjcnlwdC5jYWxsKHRoaXMsQSxRLEUua2V5LEMpfX1dKSxJfShLcik7cXIuY2ZnPU9iamVjdC5hc3NpZ24oS3IuY2ZnLHtrZGY6eHJ9KTtmb3IodmFyIG1yPVtdLGJyPVtdLFRyPVtdLGpyPVtdLFpyPVtdLE9yPVtdLFdyPVtdLFZyPVtdLFhyPVtdLFByPVtdLHpyPVtdLF9yPTA7X3I8MjU2O19yKz0xKXpyW19yXT1fcjwxMjg/X3I8PDE6X3I8PDFeMjgzO2Zvcih2YXIgJHI9MCxBYT0wLGdhPTA7Z2E8MjU2O2dhKz0xKXt2YXIgSWE9QWFeQWE8PDFeQWE8PDJeQWE8PDNeQWE8PDQ7SWE9SWE+Pj44XjI1NSZJYV45OSxtclskcl09SWEsYnJbSWFdPSRyO3ZhciBCYT16clskcl0sUWE9enJbQmFdLENhPXpyW1FhXSxFYT0yNTcqenJbSWFdXjE2ODQzMDA4KklhO1RyWyRyXT1FYTw8MjR8RWE+Pj44LGpyWyRyXT1FYTw8MTZ8RWE+Pj4xNixaclskcl09RWE8PDh8RWE+Pj4yNCxPclskcl09RWEsRWE9MTY4NDMwMDkqQ2FeNjU1MzcqUWFeMjU3KkJhXjE2ODQzMDA4KiRyLFdyW0lhXT1FYTw8MjR8RWE+Pj44LFZyW0lhXT1FYTw8MTZ8RWE+Pj4xNixYcltJYV09RWE8PDh8RWE+Pj4yNCxQcltJYV09RWEsJHI/KCRyPUJhXnpyW3pyW3pyW0NhXkJhXV1dLEFhXj16clt6cltBYV1dKTokcj1BYT0xfXZhciBpYT1bMCwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NF0sdGE9ZnVuY3Rpb24oQSl7c24oSSxBKTt2YXIgZz13bihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIG5uKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGFuKEksW3trZXk6Il9kb1Jlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBO2lmKCF0aGlzLl9uUm91bmRzfHx0aGlzLl9rZXlQcmlvclJlc2V0IT09dGhpcy5fa2V5KXt0aGlzLl9rZXlQcmlvclJlc2V0PXRoaXMuX2tleTt2YXIgZz10aGlzLl9rZXlQcmlvclJlc2V0LEk9Zy53b3JkcyxCPWcuc2lnQnl0ZXMvNDt0aGlzLl9uUm91bmRzPUIrNjt2YXIgUT00Kih0aGlzLl9uUm91bmRzKzEpO3RoaXMuX2tleVNjaGVkdWxlPVtdO2Zvcih2YXIgQz10aGlzLl9rZXlTY2hlZHVsZSxFPTA7RTxRO0UrPTEpRTxCP0NbRV09SVtFXTooQT1DW0UtMV0sRSVCP0I+NiYmRSVCPT00JiYoQT1tcltBPj4+MjRdPDwyNHxtcltBPj4+MTYmMjU1XTw8MTZ8bXJbQT4+PjgmMjU1XTw8OHxtclsyNTUmQV0pOihBPW1yWyhBPUE8PDh8QT4+PjI0KT4+PjI0XTw8MjR8bXJbQT4+PjE2JjI1NV08PDE2fG1yW0E+Pj44JjI1NV08PDh8bXJbMjU1JkFdLEFePWlhW0UvQnwwXTw8MjQpLENbRV09Q1tFLUJdXkEpO3RoaXMuX2ludktleVNjaGVkdWxlPVtdO2Zvcih2YXIgaT10aGlzLl9pbnZLZXlTY2hlZHVsZSx0PTA7dDxRO3QrPTEpe3ZhciBvPVEtdDtBPXQlND9DW29dOkNbby00XSxpW3RdPXQ8NHx8bzw9ND9BOldyW21yW0E+Pj4yNF1dXlZyW21yW0E+Pj4xNiYyNTVdXV5YclttcltBPj4+OCYyNTVdXV5QclttclsyNTUmQV1dfX19fSx7a2V5OiJlbmNyeXB0QmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dGhpcy5fZG9DcnlwdEJsb2NrKEEsZyx0aGlzLl9rZXlTY2hlZHVsZSxUcixqcixacixPcixtcil9fSx7a2V5OiJkZWNyeXB0QmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9QSxCPUlbZysxXTtJW2crMV09SVtnKzNdLElbZyszXT1CLHRoaXMuX2RvQ3J5cHRCbG9jayhJLGcsdGhpcy5faW52S2V5U2NoZWR1bGUsV3IsVnIsWHIsUHIsYnIpLEI9SVtnKzFdLElbZysxXT1JW2crM10sSVtnKzNdPUJ9fSx7a2V5OiJfZG9DcnlwdEJsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCLFEsQyxFLGkpe2Zvcih2YXIgdD1BLG89dGhpcy5fblJvdW5kcyxlPXRbZ11eSVswXSxuPXRbZysxXV5JWzFdLHI9dFtnKzJdXklbMl0sYT10W2crM11eSVszXSxzPTQsYz0xO2M8bztjKz0xKXt2YXIgaD1CW2U+Pj4yNF1eUVtuPj4+MTYmMjU1XV5DW3I+Pj44JjI1NV1eRVsyNTUmYV1eSVtzXTtzKz0xO3ZhciBEPUJbbj4+PjI0XV5RW3I+Pj4xNiYyNTVdXkNbYT4+PjgmMjU1XV5FWzI1NSZlXV5JW3NdO3MrPTE7dmFyIHk9QltyPj4+MjRdXlFbYT4+PjE2JjI1NV1eQ1tlPj4+OCYyNTVdXkVbMjU1Jm5dXklbc107cys9MTt2YXIgZj1CW2E+Pj4yNF1eUVtlPj4+MTYmMjU1XV5DW24+Pj44JjI1NV1eRVsyNTUmcl1eSVtzXTtzKz0xLGU9aCxuPUQscj15LGE9Zn12YXIgdz0oaVtlPj4+MjRdPDwyNHxpW24+Pj4xNiYyNTVdPDwxNnxpW3I+Pj44JjI1NV08PDh8aVsyNTUmYV0pXklbc107cys9MTt2YXIgdT0oaVtuPj4+MjRdPDwyNHxpW3I+Pj4xNiYyNTVdPDwxNnxpW2E+Pj44JjI1NV08PDh8aVsyNTUmZV0pXklbc107cys9MTt2YXIgRj0oaVtyPj4+MjRdPDwyNHxpW2E+Pj4xNiYyNTVdPDwxNnxpW2U+Pj44JjI1NV08PDh8aVsyNTUmbl0pXklbc107cys9MTt2YXIgRz0oaVthPj4+MjRdPDwyNHxpW2U+Pj4xNiYyNTVdPDwxNnxpW24+Pj44JjI1NV08PDh8aVsyNTUmcl0pXklbc107cys9MSx0W2ddPXcsdFtnKzFdPXUsdFtnKzJdPUYsdFtnKzNdPUd9fV0pLEl9KEpyKTt0YS5rZXlTaXplPTg7dmFyIG9hPUpyLl9jcmVhdGVIZWxwZXIodGEpLGVhPWZ1bmN0aW9uKEEpe3NuKEksQSk7dmFyIGc9d24oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiBubih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBhbihJKX0oTXIpO2VhLkVuY3J5cHRvcj1mdW5jdGlvbihBKXtzbihJLEEpO3ZhciBnPXduKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4gbm4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gYW4oSSxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPUEsQj10aGlzLl9jaXBoZXIsUT1CLmJsb2NrU2l6ZSxDPXRoaXMuX2l2LEU9dGhpcy5fY291bnRlcjtDJiYodGhpcy5fY291bnRlcj1DLnNsaWNlKDApLEU9dGhpcy5fY291bnRlcix0aGlzLl9pdj12b2lkIDApO3ZhciBpPUUuc2xpY2UoMCk7Qi5lbmNyeXB0QmxvY2soaSwwKSxFW1EtMV09RVtRLTFdKzF8MDtmb3IodmFyIHQ9MDt0PFE7dCs9MSlJW2crdF1ePWlbdF19fV0pLEl9KGVhKSxlYS5EZWNyeXB0b3I9ZWEuRW5jcnlwdG9yO3ZhciBuYT17cGFkOmZ1bmN0aW9uKCl7fSx1bnBhZDpmdW5jdGlvbigpe319LHJhPXtkZWNyeXB0V29yZEFycmF5OmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1jci5wYXJzZShnKSxRPWNyLnBhcnNlKFhlKEkpKSxDPXNyLmNyZWF0ZShuZXcgVWludDhBcnJheShBKSksRT1vYS5kZWNyeXB0KExyLmNyZWF0ZSh7Y2lwaGVydGV4dDpDfSksQix7aXY6USxtb2RlOmVhLHBhZGRpbmc6bmF9KTtyZXR1cm4gcmEud29yZEFycmF5VG9VaW50OEFycmF5KEUpfSx3b3JkQXJyYXlUb1VpbnQ4QXJyYXk6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuc2lnQnl0ZXMsST1BLndvcmRzLEI9bmV3IFVpbnQ4QXJyYXkoZyksUT0wLEM9MDtRIT09Zzspe3ZhciBFPUlbQysrXTtpZihCW1ErK109KDQyNzgxOTAwODAmRSk+Pj4yNCxRPT09ZylicmVhaztpZihCW1ErK109KDE2NzExNjgwJkUpPj4+MTYsUT09PWcpYnJlYWs7aWYoQltRKytdPSg2NTI4MCZFKT4+PjgsUT09PWcpYnJlYWs7QltRKytdPTI1NSZFfXJldHVybiBCfSxkZWNvZGVyQUVTQ1RSRGF0YTpmdW5jdGlvbihBLGcsSSl7aWYoQS52aWRlb1NlbmMpe3ZhciBCPUEua2lkVmFsdWUsUT1BLnZpZGVvU2VuYztBLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oZyxDKXt2YXIgRT1RW0NdLGk9Zy5kYXRhLHQ9W10sbz1bXSxlPUUuSW5pdGlhbGl6YXRpb25WZWN0b3I7aWYoRS5zdWJzYW1wbGVzJiZFLnN1YnNhbXBsZXMubGVuZ3RoKUUuc3Vic2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZz1BLkJ5dGVzT2ZDbGVhckRhdGErQS5CeXRlc09mUHJvdGVjdGVkRGF0YSxJPWkuc2xpY2UoMCxnKTt0LnB1c2goSS5zbGljZSgwLEEuQnl0ZXNPZkNsZWFyRGF0YSkpLG8ucHVzaChJLnNsaWNlKEEuQnl0ZXNPZkNsZWFyRGF0YSkpLGk9aS5zbGljZShnKX0pKTtlbHNle3ZhciBuPWcuc2l6ZTt0LnB1c2goaS5zbGljZSgwLDApKSxvLnB1c2goaS5zbGljZSgwLG4pKSxpPWkuc2xpY2Uobil9dmFyIHI9bmV3IFFuO3Iud3JpdGUuYXBwbHkocixvKTt2YXIgYT1JP0koci5idWZmZXIsQixlKTpyYS5kZWNyeXB0V29yZEFycmF5KHIuYnVmZmVyLEIsZSkscz1uZXcgUW47dC5mb3JFYWNoKChmdW5jdGlvbihBLGcpe3ZhciBJPW9bZ10ubGVuZ3RoLEI9YS5zbGljZSgwLEkpO3Mud3JpdGUoQSkscy53cml0ZShCKSxhPWEuc2xpY2UoSSl9KSksQS5zYW1wbGVzW0NdLmRhdGE9cy5idWZmZXJ9KSl9aWYoZy5hdWRpb1NlbmMpe3ZhciBDPWcua2lkVmFsdWUsRT1nLmF1ZGlvU2VuYztnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSxCKXt2YXIgUT1FW0JdLGk9ST9JKEEuZGF0YSxDLFEuSW5pdGlhbGl6YXRpb25WZWN0b3IpOnJhLmRlY3J5cHRXb3JkQXJyYXkoQS5kYXRhLEMsUS5Jbml0aWFsaXphdGlvblZlY3Rvcik7Zy5zYW1wbGVzW0JdLmRhdGE9aX0pKX19fSxhYT1pLHNhPSJbXHRcblx2XGZcciDCoOGagOKAgOKAgeKAguKAg+KAhOKAheKAhuKAh+KAiOKAieKAiuKAr+KBn+OAgFx1MjAyOFx1MjAyOVx1ZmVmZl0iLGNhPVJlZ0V4cCgiXiIrc2Erc2ErIioiKSxoYT1SZWdFeHAoc2Erc2ErIiokIiksRGE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcpe3ZhciBJPVN0cmluZyhhYShnKSk7cmV0dXJuIDEmQSYmKEk9SS5yZXBsYWNlKGNhLCIiKSksMiZBJiYoST1JLnJlcGxhY2UoaGEsIiIpKSxJfX0seWE9e3N0YXJ0OkRhKDEpLGVuZDpEYSgyKSx0cmltOkRhKDMpfSxmYT1zLHdhPXIsdWE9TEksRmE9YUksR2E9UCxkYT1CLFJhPXZFLGxhPWwsa2E9ZyxVYT1jZyxTYT1zSS5mLE5hPVpnLmYsTWE9Yy5mLFlhPXlhLnRyaW0sSGE9Ik51bWJlciIscGE9d2FbSGFdLEphPXBhLnByb3RvdHlwZSxMYT1kYShVYShKYSkpPT1IYSx2YT1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEUsaSx0LG89bGEoQSwhMSk7aWYoInN0cmluZyI9PXR5cGVvZiBvJiZvLmxlbmd0aD4yKWlmKDQzPT09KGc9KG89WWEobykpLmNoYXJDb2RlQXQoMCkpfHw0NT09PWcpe2lmKDg4PT09KEk9by5jaGFyQ29kZUF0KDIpKXx8MTIwPT09SSlyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1nKXtzd2l0Y2goby5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6Qj0yLFE9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpCPTgsUT01NTticmVhaztkZWZhdWx0OnJldHVybitvfWZvcihFPShDPW8uc2xpY2UoMikpLmxlbmd0aCxpPTA7aTxFO2krKylpZigodD1DLmNoYXJDb2RlQXQoaSkpPDQ4fHx0PlEpcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoQyxCKX1yZXR1cm4rb307aWYodWEoSGEsIXBhKCIgMG8xIil8fCFwYSgiMGIxIil8fHBhKCIrMHgxIikpKXtmb3IodmFyIEthLHhhPWZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg8MT8wOkEsST10aGlzO3JldHVybiBJIGluc3RhbmNlb2YgeGEmJihMYT9rYSgoZnVuY3Rpb24oKXtKYS52YWx1ZU9mLmNhbGwoSSl9KSk6ZGEoSSkhPUhhKT9SYShuZXcgcGEodmEoZykpLEkseGEpOnZhKGcpfSxxYT1mYT9TYShwYSk6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJbnQsaXNJbnRlZ2VyLGZyb21TdHJpbmcscmFuZ2UiLnNwbGl0KCIsIiksbWE9MDtxYS5sZW5ndGg+bWE7bWErKylHYShwYSxLYT1xYVttYV0pJiYhR2EoeGEsS2EpJiZNYSh4YSxLYSxOYShwYSxLYSkpO3hhLnByb3RvdHlwZT1KYSxKYS5jb25zdHJ1Y3Rvcj14YSxGYSh3YSxIYSx4YSl9dmFyIGJhLFRhLGphLFphPXIuUHJvbWlzZSxPYT1kLFdhPWQsVmE9RUUsWGE9U0EsUGE9b0UsemE9SUUsX2E9ZnVuY3Rpb24oQSl7dmFyIGc9QS5yZXR1cm47aWYodm9pZCAwIT09ZylyZXR1cm4gT2EoZy5jYWxsKEEpKS52YWx1ZX0sJGE9ZnVuY3Rpb24oQSxnKXt0aGlzLnN0b3BwZWQ9QSx0aGlzLnJlc3VsdD1nfSxBcz0vKD86aXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChRQSksZ3M9InByb2Nlc3MiPT1CKHIucHJvY2VzcyksSXM9cixCcz1nLFFzPW9FLENzPSRBLEVzPXcsaXM9QXMsdHM9Z3Msb3M9SXMubG9jYXRpb24sZXM9SXMuc2V0SW1tZWRpYXRlLG5zPUlzLmNsZWFySW1tZWRpYXRlLHJzPUlzLnByb2Nlc3MsYXM9SXMuTWVzc2FnZUNoYW5uZWwsc3M9SXMuRGlzcGF0Y2gsY3M9MCxocz17fSxEcz0ib25yZWFkeXN0YXRlY2hhbmdlIix5cz1mdW5jdGlvbihBKXtpZihocy5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIGc9aHNbQV07ZGVsZXRlIGhzW0FdLGcoKX19LGZzPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe3lzKEEpfX0sd3M9ZnVuY3Rpb24oQSl7eXMoQS5kYXRhKX0sdXM9ZnVuY3Rpb24oQSl7SXMucG9zdE1lc3NhZ2UoQSsiIixvcy5wcm90b2NvbCsiLy8iK29zLmhvc3QpfTtlcyYmbnN8fChlcz1mdW5jdGlvbihBKXtmb3IodmFyIGc9W10sST0xO2FyZ3VtZW50cy5sZW5ndGg+STspZy5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gaHNbKytjc109ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIEE/QTpGdW5jdGlvbihBKSkuYXBwbHkodm9pZCAwLGcpfSxiYShjcyksY3N9LG5zPWZ1bmN0aW9uKEEpe2RlbGV0ZSBoc1tBXX0sdHM/YmE9ZnVuY3Rpb24oQSl7cnMubmV4dFRpY2soZnMoQSkpfTpzcyYmc3Mubm93P2JhPWZ1bmN0aW9uKEEpe3NzLm5vdyhmcyhBKSl9OmFzJiYhaXM/KGphPShUYT1uZXcgYXMpLnBvcnQyLFRhLnBvcnQxLm9ubWVzc2FnZT13cyxiYT1RcyhqYS5wb3N0TWVzc2FnZSxqYSwxKSk6SXMuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBvc3RNZXNzYWdlJiYhSXMuaW1wb3J0U2NyaXB0cyYmb3MmJiJmaWxlOiIhPT1vcy5wcm90b2NvbCYmIUJzKHVzKT8oYmE9dXMsSXMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsd3MsITEpKTpiYT1EcyBpbiBFcygic2NyaXB0Iik/ZnVuY3Rpb24oQSl7Q3MuYXBwZW5kQ2hpbGQoRXMoInNjcmlwdCIpKVtEc109ZnVuY3Rpb24oKXtDcy5yZW1vdmVDaGlsZCh0aGlzKSx5cyhBKX19OmZ1bmN0aW9uKEEpe3NldFRpbWVvdXQoZnMoQSksMCl9KTt2YXIgRnMsR3MsZHMsUnMsbHMsa3MsVXMsU3MsTnM9e3NldDplcyxjbGVhcjpuc30sTXM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChRQSksWXM9cixIcz1aZy5mLHBzPU5zLnNldCxKcz1BcyxMcz1Ncyx2cz1ncyxLcz1Zcy5NdXRhdGlvbk9ic2VydmVyfHxZcy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLHhzPVlzLmRvY3VtZW50LHFzPVlzLnByb2Nlc3MsbXM9WXMuUHJvbWlzZSxicz1IcyhZcywicXVldWVNaWNyb3Rhc2siKSxUcz1icyYmYnMudmFsdWU7VHN8fChGcz1mdW5jdGlvbigpe3ZhciBBLGc7Zm9yKHZzJiYoQT1xcy5kb21haW4pJiZBLmV4aXQoKTtHczspe2c9R3MuZm4sR3M9R3MubmV4dDt0cnl7ZygpfWNhdGNoKEJ5KXt0aHJvdyBHcz9ScygpOmRzPXZvaWQgMCxCeX19ZHM9dm9pZCAwLEEmJkEuZW50ZXIoKX0sSnN8fHZzfHxMc3x8IUtzfHwheHM/bXMmJm1zLnJlc29sdmU/KChVcz1tcy5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPW1zLFNzPVVzLnRoZW4sUnM9ZnVuY3Rpb24oKXtTcy5jYWxsKFVzLEZzKX0pOlJzPXZzP2Z1bmN0aW9uKCl7cXMubmV4dFRpY2soRnMpfTpmdW5jdGlvbigpe3BzLmNhbGwoWXMsRnMpfToobHM9ITAsa3M9eHMuY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBLcyhGcykub2JzZXJ2ZShrcyx7Y2hhcmFjdGVyRGF0YTohMH0pLFJzPWZ1bmN0aW9uKCl7a3MuZGF0YT1scz0hbHN9KSk7dmFyIGpzPVRzfHxmdW5jdGlvbihBKXt2YXIgZz17Zm46QSxuZXh0OnZvaWQgMH07ZHMmJihkcy5uZXh0PWcpLEdzfHwoR3M9ZyxScygpKSxkcz1nfSxacz17fSxPcz1pRSxXcz1mdW5jdGlvbihBKXt2YXIgZyxJO3RoaXMucHJvbWlzZT1uZXcgQSgoZnVuY3Rpb24oQSxCKXtpZih2b2lkIDAhPT1nfHx2b2lkIDAhPT1JKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtnPUEsST1CfSkpLHRoaXMucmVzb2x2ZT1PcyhnKSx0aGlzLnJlamVjdD1PcyhJKX07WnMuZj1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IFdzKEEpfTt2YXIgVnMsWHMsUHMsenMsX3M9ZCwkcz1oLEFjPVpzLGdjPXIsSWM9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3csQmM9akksUWM9cixDYz1CQSxFYz1aYSxpYz1hSSx0Yz1UUSxvYz15QixlYz10QixuYz1wRSxyYz1oLGFjPWlFLHNjPWpRLGNjPWtnLGhjPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEMsRSxpLHQsbyxlPUkmJkkudGhhdCxuPSEoIUl8fCFJLkFTX0VOVFJJRVMpLHI9ISghSXx8IUkuSVNfSVRFUkFUT1IpLGE9ISghSXx8IUkuSU5URVJSVVBURUQpLHM9UGEoZyxlLDErbithKSxjPWZ1bmN0aW9uKEEpe3JldHVybiBCJiZfYShCKSxuZXcgJGEoITAsQSl9LGg9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/KFdhKEEpLGE/cyhBWzBdLEFbMV0sYyk6cyhBWzBdLEFbMV0pKTphP3MoQSxjKTpzKEEpfTtpZihyKUI9QTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihRPXphKEEpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihWYShRKSl7Zm9yKEM9MCxFPVhhKEEubGVuZ3RoKTtFPkM7QysrKWlmKChpPWgoQVtDXSkpJiZpIGluc3RhbmNlb2YgJGEpcmV0dXJuIGk7cmV0dXJuIG5ldyAkYSghMSl9Qj1RLmNhbGwoQSl9Zm9yKHQ9Qi5uZXh0OyEobz10LmNhbGwoQikpLmRvbmU7KXt0cnl7aT1oKG8udmFsdWUpfWNhdGNoKEJ5KXt0aHJvdyBfYShCKSxCeX1pZigib2JqZWN0Ij09dHlwZW9mIGkmJmkmJmkgaW5zdGFuY2VvZiAkYSlyZXR1cm4gaX1yZXR1cm4gbmV3ICRhKCExKX0sRGM9UVEseWM9T2ksZmM9TnMuc2V0LHdjPWpzLHVjPWZ1bmN0aW9uKEEsZyl7aWYoX3MoQSksJHMoZykmJmcuY29uc3RydWN0b3I9PT1BKXJldHVybiBnO3ZhciBJPUFjLmYoQSk7cmV0dXJuKDAsSS5yZXNvbHZlKShnKSxJLnByb21pc2V9LEZjPWZ1bmN0aW9uKEEsZyl7dmFyIEk9Z2MuY29uc29sZTtJJiZJLmVycm9yJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/SS5lcnJvcihBKTpJLmVycm9yKEEsZykpfSxHYz1acyxkYz1mdW5jdGlvbihBKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOkEoKX19Y2F0Y2goQnkpe3JldHVybntlcnJvcjohMCx2YWx1ZTpCeX19fSxSYz1qZyxsYz1MSSxrYz1JYyxVYz1ncyxTYz1lQSxOYz1HQSgic3BlY2llcyIpLE1jPSJQcm9taXNlIixZYz1SYy5nZXQsSGM9UmMuc2V0LHBjPVJjLmdldHRlckZvcihNYyksSmM9RWMmJkVjLnByb3RvdHlwZSxMYz1FYyx2Yz1KYyxLYz1RYy5UeXBlRXJyb3IseGM9UWMuZG9jdW1lbnQscWM9UWMucHJvY2VzcyxtYz1HYy5mLGJjPW1jLFRjPSEhKHhjJiZ4Yy5jcmVhdGVFdmVudCYmUWMuZGlzcGF0Y2hFdmVudCksamM9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxaYz0idW5oYW5kbGVkcmVqZWN0aW9uIixPYz0hMSxXYz1sYyhNYywoZnVuY3Rpb24oKXt2YXIgQT1jYyhMYykhPT1TdHJpbmcoTGMpO2lmKCFBJiY2Nj09PVNjKXJldHVybiEwO2lmKFNjPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KExjKSlyZXR1cm4hMTt2YXIgZz1uZXcgTGMoKGZ1bmN0aW9uKEEpe0EoMSl9KSksST1mdW5jdGlvbihBKXtBKChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pKX07cmV0dXJuKGcuY29uc3RydWN0b3I9e30pW05jXT1JLCEoT2M9Zy50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgSSl8fCFBJiZrYyYmIWpjfSkpLFZjPVdjfHwhRGMoKGZ1bmN0aW9uKEEpe0xjLmFsbChBKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksWGM9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuISghcmMoQSl8fCJmdW5jdGlvbiIhPXR5cGVvZihnPUEudGhlbikpJiZnfSxQYz1mdW5jdGlvbihBLGcpe2lmKCFBLm5vdGlmaWVkKXtBLm5vdGlmaWVkPSEwO3ZhciBJPUEucmVhY3Rpb25zO3djKChmdW5jdGlvbigpe2Zvcih2YXIgQj1BLnZhbHVlLFE9MT09QS5zdGF0ZSxDPTA7SS5sZW5ndGg+Qzspe3ZhciBFLGksdCxvPUlbQysrXSxlPVE/by5vazpvLmZhaWwsbj1vLnJlc29sdmUscj1vLnJlamVjdCxhPW8uZG9tYWluO3RyeXtlPyhRfHwoMj09PUEucmVqZWN0aW9uJiZBaChBKSxBLnJlamVjdGlvbj0xKSwhMD09PWU/RT1COihhJiZhLmVudGVyKCksRT1lKEIpLGEmJihhLmV4aXQoKSx0PSEwKSksRT09PW8ucHJvbWlzZT9yKEtjKCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOihpPVhjKEUpKT9pLmNhbGwoRSxuLHIpOm4oRSkpOnIoQil9Y2F0Y2goQnkpe2EmJiF0JiZhLmV4aXQoKSxyKEJ5KX19QS5yZWFjdGlvbnM9W10sQS5ub3RpZmllZD0hMSxnJiYhQS5yZWplY3Rpb24mJl9jKEEpfSkpfX0semM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7VGM/KChCPXhjLmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWcsQi5yZWFzb249SSxCLmluaXRFdmVudChBLCExLCEwKSxRYy5kaXNwYXRjaEV2ZW50KEIpKTpCPXtwcm9taXNlOmcscmVhc29uOkl9LCFqYyYmKFE9UWNbIm9uIitBXSk/UShCKTpBPT09WmMmJkZjKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLEkpfSxfYz1mdW5jdGlvbihBKXtmYy5jYWxsKFFjLChmdW5jdGlvbigpe3ZhciBnLEk9QS5mYWNhZGUsQj1BLnZhbHVlO2lmKCRjKEEpJiYoZz1kYygoZnVuY3Rpb24oKXtVYz9xYy5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLEIsSSk6emMoWmMsSSxCKX0pKSxBLnJlamVjdGlvbj1VY3x8JGMoQSk/MjoxLGcuZXJyb3IpKXRocm93IGcudmFsdWV9KSl9LCRjPWZ1bmN0aW9uKEEpe3JldHVybiAxIT09QS5yZWplY3Rpb24mJiFBLnBhcmVudH0sQWg9ZnVuY3Rpb24oQSl7ZmMuY2FsbChRYywoZnVuY3Rpb24oKXt2YXIgZz1BLmZhY2FkZTtVYz9xYy5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixnKTp6YygicmVqZWN0aW9uaGFuZGxlZCIsZyxBLnZhbHVlKX0pKX0sZ2g9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBmdW5jdGlvbihCKXtBKGcsQixJKX19LEloPWZ1bmN0aW9uKEEsZyxJKXtBLmRvbmV8fChBLmRvbmU9ITAsSSYmKEE9SSksQS52YWx1ZT1nLEEuc3RhdGU9MixQYyhBLCEwKSl9LEJoPWZ1bmN0aW9uKEEsZyxJKXtpZighQS5kb25lKXtBLmRvbmU9ITAsSSYmKEE9SSk7dHJ5e2lmKEEuZmFjYWRlPT09Zyl0aHJvdyBLYygiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgQj1YYyhnKTtCP3djKChmdW5jdGlvbigpe3ZhciBJPXtkb25lOiExfTt0cnl7Qi5jYWxsKGcsZ2goQmgsSSxBKSxnaChJaCxJLEEpKX1jYXRjaChCeSl7SWgoSSxCeSxBKX19KSk6KEEudmFsdWU9ZyxBLnN0YXRlPTEsUGMoQSwhMSkpfWNhdGNoKEJ5KXtJaCh7ZG9uZTohMX0sQnksQSl9fX07aWYoV2MmJih2Yz0oTGM9ZnVuY3Rpb24oQSl7c2ModGhpcyxMYyxNYyksYWMoQSksVnMuY2FsbCh0aGlzKTt2YXIgZz1ZYyh0aGlzKTt0cnl7QShnaChCaCxnKSxnaChJaCxnKSl9Y2F0Y2goQnkpe0loKGcsQnkpfX0pLnByb3RvdHlwZSwoVnM9ZnVuY3Rpb24oQSl7SGModGhpcyx7dHlwZTpNYyxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9dGModmMse3RoZW46ZnVuY3Rpb24oQSxnKXt2YXIgST1wYyh0aGlzKSxCPW1jKHljKHRoaXMsTGMpKTtyZXR1cm4gQi5vaz0iZnVuY3Rpb24iIT10eXBlb2YgQXx8QSxCLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcsQi5kb21haW49VWM/cWMuZG9tYWluOnZvaWQgMCxJLnBhcmVudD0hMCxJLnJlYWN0aW9ucy5wdXNoKEIpLDAhPUkuc3RhdGUmJlBjKEksITEpLEIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsQSl9fSksWHM9ZnVuY3Rpb24oKXt2YXIgQT1uZXcgVnMsZz1ZYyhBKTt0aGlzLnByb21pc2U9QSx0aGlzLnJlc29sdmU9Z2goQmgsZyksdGhpcy5yZWplY3Q9Z2goSWgsZyl9LEdjLmY9bWM9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT1MY3x8QT09PVBzP25ldyBYcyhBKTpiYyhBKX0sImZ1bmN0aW9uIj09dHlwZW9mIEVjJiZKYyE9PU9iamVjdC5wcm90b3R5cGUpKXt6cz1KYy50aGVuLE9jfHwoaWMoSmMsInRoZW4iLChmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXM7cmV0dXJuIG5ldyBMYygoZnVuY3Rpb24oQSxnKXt6cy5jYWxsKEksQSxnKX0pKS50aGVuKEEsZyl9KSx7dW5zYWZlOiEwfSksaWMoSmMsImNhdGNoIix2Yy5jYXRjaCx7dW5zYWZlOiEwfSkpO3RyeXtkZWxldGUgSmMuY29uc3RydWN0b3J9Y2F0Y2goQnkpe31vYyYmb2MoSmMsdmMpfUJjKHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6V2N9LHtQcm9taXNlOkxjfSksZWMoTGMsTWMsITEpLG5jKE1jKSxQcz1DYyhNYyksQmMoe3RhcmdldDpNYyxzdGF0OiEwLGZvcmNlZDpXY30se3JlamVjdDpmdW5jdGlvbihBKXt2YXIgZz1tYyh0aGlzKTtyZXR1cm4gZy5yZWplY3QuY2FsbCh2b2lkIDAsQSksZy5wcm9taXNlfX0pLEJjKHt0YXJnZXQ6TWMsc3RhdDohMCxmb3JjZWQ6V2N9LHtyZXNvbHZlOmZ1bmN0aW9uKEEpe3JldHVybiB1Yyh0aGlzLEEpfX0pLEJjKHt0YXJnZXQ6TWMsc3RhdDohMCxmb3JjZWQ6VmN9LHthbGw6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcyxJPW1jKGcpLEI9SS5yZXNvbHZlLFE9SS5yZWplY3QsQz1kYygoZnVuY3Rpb24oKXt2YXIgST1hYyhnLnJlc29sdmUpLEM9W10sRT0wLGk9MTtoYyhBLChmdW5jdGlvbihBKXt2YXIgdD1FKyssbz0hMTtDLnB1c2godm9pZCAwKSxpKyssSS5jYWxsKGcsQSkudGhlbigoZnVuY3Rpb24oQSl7b3x8KG89ITAsQ1t0XT1BLC0taXx8QihDKSl9KSxRKX0pKSwtLWl8fEIoQyl9KSk7cmV0dXJuIEMuZXJyb3ImJlEoQy52YWx1ZSksSS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMsST1tYyhnKSxCPUkucmVqZWN0LFE9ZGMoKGZ1bmN0aW9uKCl7dmFyIFE9YWMoZy5yZXNvbHZlKTtoYyhBLChmdW5jdGlvbihBKXtRLmNhbGwoZyxBKS50aGVuKEkucmVzb2x2ZSxCKX0pKX0pKTtyZXR1cm4gUS5lcnJvciYmQihRLnZhbHVlKSxJLnByb21pc2V9fSk7dmFyIFFoPXt9LENoPWc7ZnVuY3Rpb24gRWgoQSxnKXtyZXR1cm4gUmVnRXhwKEEsZyl9UWguVU5TVVBQT1JURURfWT1DaCgoZnVuY3Rpb24oKXt2YXIgQT1FaCgiYSIsInkiKTtyZXR1cm4gQS5sYXN0SW5kZXg9MixudWxsIT1BLmV4ZWMoImFiY2QiKX0pKSxRaC5CUk9LRU5fQ0FSRVQ9Q2goKGZ1bmN0aW9uKCl7dmFyIEE9RWgoIl5yIiwiZ3kiKTtyZXR1cm4gQS5sYXN0SW5kZXg9MixudWxsIT1BLmV4ZWMoInN0ciIpfSkpO3ZhciBpaCx0aCxvaD1sbixlaD1RaCxuaD1aLHJoPVJlZ0V4cC5wcm90b3R5cGUuZXhlYyxhaD1uaCgibmF0aXZlLXN0cmluZy1yZXBsYWNlIixTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLHNoPXJoLGNoPShpaD0vYS8sdGg9L2IqL2cscmguY2FsbChpaCwiYSIpLHJoLmNhbGwodGgsImEiKSwwIT09aWgubGFzdEluZGV4fHwwIT09dGgubGFzdEluZGV4KSxoaD1laC5VTlNVUFBPUlRFRF9ZfHxlaC5CUk9LRU5fQ0FSRVQsRGg9dm9pZCAwIT09LygpPz8vLmV4ZWMoIiIpWzFdOyhjaHx8RGh8fGhoKSYmKHNoPWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEM9dGhpcyxFPWhoJiZDLnN0aWNreSxpPW9oLmNhbGwoQyksdD1DLnNvdXJjZSxvPTAsZT1BO3JldHVybiBFJiYoLTE9PT0oaT1pLnJlcGxhY2UoInkiLCIiKSkuaW5kZXhPZigiZyIpJiYoaSs9ImciKSxlPVN0cmluZyhBKS5zbGljZShDLmxhc3RJbmRleCksQy5sYXN0SW5kZXg+MCYmKCFDLm11bHRpbGluZXx8Qy5tdWx0aWxpbmUmJiJcbiIhPT1BW0MubGFzdEluZGV4LTFdKSYmKHQ9Iig/OiAiK3QrIikiLGU9IiAiK2UsbysrKSxJPW5ldyBSZWdFeHAoIl4oPzoiK3QrIikiLGkpKSxEaCYmKEk9bmV3IFJlZ0V4cCgiXiIrdCsiJCg/IVxccykiLGkpKSxjaCYmKGc9Qy5sYXN0SW5kZXgpLEI9cmguY2FsbChFP0k6QyxlKSxFP0I/KEIuaW5wdXQ9Qi5pbnB1dC5zbGljZShvKSxCWzBdPUJbMF0uc2xpY2UobyksQi5pbmRleD1DLmxhc3RJbmRleCxDLmxhc3RJbmRleCs9QlswXS5sZW5ndGgpOkMubGFzdEluZGV4PTA6Y2gmJkImJihDLmxhc3RJbmRleD1DLmdsb2JhbD9CLmluZGV4K0JbMF0ubGVuZ3RoOmcpLERoJiZCJiZCLmxlbmd0aD4xJiZhaC5jYWxsKEJbMF0sSSwoZnVuY3Rpb24oKXtmb3IoUT0xO1E8YXJndW1lbnRzLmxlbmd0aC0yO1ErKyl2b2lkIDA9PT1hcmd1bWVudHNbUV0mJihCW1FdPXZvaWQgMCl9KSksQn0pO3ZhciB5aD1zaDtqSSh7dGFyZ2V0OiJSZWdFeHAiLHByb3RvOiEwLGZvcmNlZDovLi8uZXhlYyE9PXlofSx7ZXhlYzp5aH0pO3ZhciBmaD1hSSx3aD15aCx1aD1nLEZoPUdBLEdoPUosZGg9RmgoInNwZWNpZXMiKSxSaD1SZWdFeHAucHJvdG90eXBlLGxoPSF1aCgoZnVuY3Rpb24oKXt2YXIgQT0vLi87cmV0dXJuIEEuZXhlYz1mdW5jdGlvbigpe3ZhciBBPVtdO3JldHVybiBBLmdyb3Vwcz17YToiNyJ9LEF9LCI3IiE9PSIiLnJlcGxhY2UoQSwiJDxhPiIpfSkpLGtoPSIkMCI9PT0iYSIucmVwbGFjZSgvLi8sIiQwIiksVWg9RmgoInJlcGxhY2UiKSxTaD0hIS8uL1tVaF0mJiIiPT09Ly4vW1VoXSgiYSIsIiQwIiksTmg9IXVoKChmdW5jdGlvbigpe3ZhciBBPS8oPzopLyxnPUEuZXhlYztBLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBJPSJhYiIuc3BsaXQoQSk7cmV0dXJuIDIhPT1JLmxlbmd0aHx8ImEiIT09SVswXXx8ImIiIT09SVsxXX0pKSxNaD1sQSxZaD1pLEhoPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEkpe3ZhciBCLFEsQz1TdHJpbmcoWWgoZykpLEU9TWgoSSksaT1DLmxlbmd0aDtyZXR1cm4gRTwwfHxFPj1pP0E/IiI6dm9pZCAwOihCPUMuY2hhckNvZGVBdChFKSk8NTUyOTZ8fEI+NTYzMTl8fEUrMT09PWl8fChRPUMuY2hhckNvZGVBdChFKzEpKTw1NjMyMHx8UT41NzM0Mz9BP0MuY2hhckF0KEUpOkI6QT9DLnNsaWNlKEUsRSsyKTpRLTU2MzIwKyhCLTU1Mjk2PDwxMCkrNjU1MzZ9fSxwaD17Y29kZUF0OkhoKCExKSxjaGFyQXQ6SGgoITApfS5jaGFyQXQsSmg9VyxMaD1NYXRoLmZsb29yLHZoPSIiLnJlcGxhY2UsS2g9L1wkKFskJidgXXxcZHsxLDJ9fDxbXj5dKj4pL2cseGg9L1wkKFskJidgXXxcZHsxLDJ9KS9nLHFoPUIsbWg9eWgsYmg9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9RmgoQSksQz0hdWgoKGZ1bmN0aW9uKCl7dmFyIGc9e307cmV0dXJuIGdbUV09ZnVuY3Rpb24oKXtyZXR1cm4gN30sNyE9IiJbQV0oZyl9KSksRT1DJiYhdWgoKGZ1bmN0aW9uKCl7dmFyIGc9ITEsST0vYS87cmV0dXJuInNwbGl0Ij09PUEmJigoST17fSkuY29uc3RydWN0b3I9e30sSS5jb25zdHJ1Y3RvcltkaF09ZnVuY3Rpb24oKXtyZXR1cm4gSX0sSS5mbGFncz0iIixJW1FdPS8uL1tRXSksSS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGc9ITAsbnVsbH0sSVtRXSgiIiksIWd9KSk7aWYoIUN8fCFFfHwicmVwbGFjZSI9PT1BJiYoIWxofHwha2h8fFNoKXx8InNwbGl0Ij09PUEmJiFOaCl7dmFyIGk9Ly4vW1FdLHQ9SShRLCIiW0FdLChmdW5jdGlvbihBLGcsSSxCLFEpe3ZhciBFPWcuZXhlYztyZXR1cm4gRT09PXdofHxFPT09UmguZXhlYz9DJiYhUT97ZG9uZTohMCx2YWx1ZTppLmNhbGwoZyxJLEIpfTp7ZG9uZTohMCx2YWx1ZTpBLmNhbGwoSSxnLEIpfTp7ZG9uZTohMX19KSx7UkVQTEFDRV9LRUVQU18kMDpraCxSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRTpTaH0pLG89dFswXSxlPXRbMV07ZmgoU3RyaW5nLnByb3RvdHlwZSxBLG8pLGZoKFJoLFEsMj09Zz9mdW5jdGlvbihBLGcpe3JldHVybiBlLmNhbGwoQSx0aGlzLGcpfTpmdW5jdGlvbihBKXtyZXR1cm4gZS5jYWxsKEEsdGhpcyl9KX1CJiZHaChSaFtRXSwic2hhbSIsITApfSxUaD1kLGpoPVNBLFpoPWxBLE9oPWksV2g9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBnKyhJP3BoKEEsZykubGVuZ3RoOjEpfSxWaD1mdW5jdGlvbihBLGcsSSxCLFEsQyl7dmFyIEU9SStBLmxlbmd0aCxpPUIubGVuZ3RoLHQ9eGg7cmV0dXJuIHZvaWQgMCE9PVEmJihRPUpoKFEpLHQ9S2gpLHZoLmNhbGwoQyx0LChmdW5jdGlvbihDLHQpe3ZhciBvO3N3aXRjaCh0LmNoYXJBdCgwKSl7Y2FzZSIkIjpyZXR1cm4iJCI7Y2FzZSImIjpyZXR1cm4gQTtjYXNlImAiOnJldHVybiBnLnNsaWNlKDAsSSk7Y2FzZSInIjpyZXR1cm4gZy5zbGljZShFKTtjYXNlIjwiOm89UVt0LnNsaWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBlPSt0O2lmKDA9PT1lKXJldHVybiBDO2lmKGU+aSl7dmFyIG49TGgoZS8xMCk7cmV0dXJuIDA9PT1uP0M6bjw9aT92b2lkIDA9PT1CW24tMV0/dC5jaGFyQXQoMSk6QltuLTFdK3QuY2hhckF0KDEpOkN9bz1CW2UtMV19cmV0dXJuIHZvaWQgMD09PW8/IiI6b30pKX0sWGg9ZnVuY3Rpb24oQSxnKXt2YXIgST1BLmV4ZWM7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEkpe3ZhciBCPUkuY2FsbChBLGcpO2lmKCJvYmplY3QiIT10eXBlb2YgQil0aHJvdyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3JldHVybiBCfWlmKCJSZWdFeHAiIT09cWgoQSkpdGhyb3cgVHlwZUVycm9yKCJSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRpYmxlIHJlY2VpdmVyIik7cmV0dXJuIG1oLmNhbGwoQSxnKX0sUGg9TWF0aC5tYXgsemg9TWF0aC5taW47YmgoInJlcGxhY2UiLDIsKGZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPUIuUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUsQz1CLlJFUExBQ0VfS0VFUFNfJDAsRT1RPyIkIjoiJDAiO3JldHVybltmdW5jdGlvbihJLEIpe3ZhciBRPU9oKHRoaXMpLEM9bnVsbD09ST92b2lkIDA6SVtBXTtyZXR1cm4gdm9pZCAwIT09Qz9DLmNhbGwoSSxRLEIpOmcuY2FsbChTdHJpbmcoUSksSSxCKX0sZnVuY3Rpb24oQSxCKXtpZighUSYmQ3x8InN0cmluZyI9PXR5cGVvZiBCJiYtMT09PUIuaW5kZXhPZihFKSl7dmFyIGk9SShnLEEsdGhpcyxCKTtpZihpLmRvbmUpcmV0dXJuIGkudmFsdWV9dmFyIHQ9VGgoQSksbz1TdHJpbmcodGhpcyksZT0iZnVuY3Rpb24iPT10eXBlb2YgQjtlfHwoQj1TdHJpbmcoQikpO3ZhciBuPXQuZ2xvYmFsO2lmKG4pe3ZhciByPXQudW5pY29kZTt0Lmxhc3RJbmRleD0wfWZvcih2YXIgYT1bXTs7KXt2YXIgcz1YaCh0LG8pO2lmKG51bGw9PT1zKWJyZWFrO2lmKGEucHVzaChzKSwhbilicmVhazsiIj09PVN0cmluZyhzWzBdKSYmKHQubGFzdEluZGV4PVdoKG8samgodC5sYXN0SW5kZXgpLHIpKX1mb3IodmFyIGMsaD0iIixEPTAseT0wO3k8YS5sZW5ndGg7eSsrKXtzPWFbeV07Zm9yKHZhciBmPVN0cmluZyhzWzBdKSx3PVBoKHpoKFpoKHMuaW5kZXgpLG8ubGVuZ3RoKSwwKSx1PVtdLEY9MTtGPHMubGVuZ3RoO0YrKyl1LnB1c2godm9pZCAwPT09KGM9c1tGXSk/YzpTdHJpbmcoYykpO3ZhciBHPXMuZ3JvdXBzO2lmKGUpe3ZhciBkPVtmXS5jb25jYXQodSx3LG8pO3ZvaWQgMCE9PUcmJmQucHVzaChHKTt2YXIgUj1TdHJpbmcoQi5hcHBseSh2b2lkIDAsZCkpfWVsc2UgUj1WaChmLG8sdyx1LEcsQik7dz49RCYmKGgrPW8uc2xpY2UoRCx3KStSLEQ9dytmLmxlbmd0aCl9cmV0dXJuIGgrby5zbGljZShEKX1dfSkpO3ZhciBfaCwkaD1oLEFEPUIsZ0Q9R0EoIm1hdGNoIiksSUQ9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuICRoKEEpJiYodm9pZCAwIT09KGc9QVtnRF0pPyEhZzoiUmVnRXhwIj09QUQoQSkpfSxCRD1JRCxRRD1mdW5jdGlvbihBKXtpZihCRChBKSl0aHJvdyBUeXBlRXJyb3IoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3JldHVybiBBfSxDRD1HQSgibWF0Y2giKSxFRD1mdW5jdGlvbihBKXt2YXIgZz0vLi87dHJ5eyIvLi8iW0FdKGcpfWNhdGNoKEkpe3RyeXtyZXR1cm4gZ1tDRF09ITEsIi8uLyJbQV0oZyl9Y2F0Y2goQil7fX1yZXR1cm4hMX0saUQ9akksdEQ9WmcuZixvRD1TQSxlRD1RRCxuRD1pLHJEPUVELGFEPSIiLnN0YXJ0c1dpdGgsc0Q9TWF0aC5taW4sY0Q9ckQoInN0YXJ0c1dpdGgiKTtpRCh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohIShjRHx8KF9oPXREKFN0cmluZy5wcm90b3R5cGUsInN0YXJ0c1dpdGgiKSwhX2h8fF9oLndyaXRhYmxlKSkmJiFjRH0se3N0YXJ0c1dpdGg6ZnVuY3Rpb24oQSl7dmFyIGc9U3RyaW5nKG5EKHRoaXMpKTtlRChBKTt2YXIgST1vRChzRChhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnLmxlbmd0aCkpLEI9U3RyaW5nKEEpO3JldHVybiBhRD9hRC5jYWxsKGcsQixJKTpnLnNsaWNlKEksSStCLmxlbmd0aCk9PT1CfX0pO3ZhciBoRD13ZztqSSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITB9LHtjb3B5V2l0aGluOkxpfSksaEQoImNvcHlXaXRoaW4iKTt2YXIgREQ9cyx5RD1yLGZEPUxJLHdEPXZFLHVEPWMuZixGRD1zSS5mLEdEPUlELGREPWxuLFJEPVFoLGxEPWFJLGtEPWcsVUQ9amcuZW5mb3JjZSxTRD1wRSxORD1HQSgibWF0Y2giKSxNRD15RC5SZWdFeHAsWUQ9TUQucHJvdG90eXBlLEhEPS9hL2cscEQ9L2EvZyxKRD1uZXcgTUQoSEQpIT09SEQsTEQ9UkQuVU5TVVBQT1JURURfWTtpZihERCYmZkQoIlJlZ0V4cCIsIUpEfHxMRHx8a0QoKGZ1bmN0aW9uKCl7cmV0dXJuIHBEW05EXT0hMSxNRChIRCkhPUhEfHxNRChwRCk9PXBEfHwiL2EvaSIhPU1EKEhELCJpIil9KSkpKXtmb3IodmFyIHZEPWZ1bmN0aW9uKEEsZyl7dmFyIEksQj10aGlzIGluc3RhbmNlb2YgdkQsUT1HRChBKSxDPXZvaWQgMD09PWc7aWYoIUImJlEmJkEuY29uc3RydWN0b3I9PT12RCYmQylyZXR1cm4gQTtKRD9RJiYhQyYmKEE9QS5zb3VyY2UpOkEgaW5zdGFuY2VvZiB2RCYmKEMmJihnPWRELmNhbGwoQSkpLEE9QS5zb3VyY2UpLExEJiYoST0hIWcmJmcuaW5kZXhPZigieSIpPi0xKSYmKGc9Zy5yZXBsYWNlKC95L2csIiIpKTt2YXIgRT13RChKRD9uZXcgTUQoQSxnKTpNRChBLGcpLEI/dGhpczpZRCx2RCk7TEQmJkkmJihVRChFKS5zdGlja3k9ITApO3JldHVybiBFfSxLRD1mdW5jdGlvbihBKXtBIGluIHZEfHx1RCh2RCxBLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1EW0FdfSxzZXQ6ZnVuY3Rpb24oZyl7TURbQV09Z319KX0seEQ9RkQoTUQpLHFEPTA7eEQubGVuZ3RoPnFEOylLRCh4RFtxRCsrXSk7WUQuY29uc3RydWN0b3I9dkQsdkQucHJvdG90eXBlPVlELGxEKHlELCJSZWdFeHAiLHZEKX1TRCgiUmVnRXhwIik7dmFyIG1EPUtBLmluY2x1ZGVzLGJEPXdnO2pJKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2luY2x1ZGVzOmZ1bmN0aW9uKEEpe3JldHVybiBtRCh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLGJEKCJpbmNsdWRlcyIpO3ZhciBURD1RRCxqRD1pO2pJKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFFRCgiaW5jbHVkZXMiKX0se2luY2x1ZGVzOmZ1bmN0aW9uKEEpe3JldHVybiEhflN0cmluZyhqRCh0aGlzKSkuaW5kZXhPZihURChBKSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7dmFyIFpELE9EPUE9PmZ1bmN0aW9uKEEsZyl7aWYoZy5zdGFydHNXaXRoKCJkYXRhOiIpKXt2YXIgSSxCPWcucmVwbGFjZSgvXmRhdGE6Lio/YmFzZTY0LC8sIiIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBCdWZmZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBCdWZmZXIuZnJvbSlJPUJ1ZmZlci5mcm9tKEIsImJhc2U2NCIpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGF0b2IpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZGVjb2RlIGJhc2U2NC1lbmNvZGVkIGRhdGEgVVJMLCBCdWZmZXIgYW5kIGF0b2IgYXJlIG5vdCBzdXBwb3J0ZWQiKTt2YXIgUT1hdG9iKEIpO0k9bmV3IFVpbnQ4QXJyYXkoUS5sZW5ndGgpO2Zvcih2YXIgQz0wO0M8US5sZW5ndGg7QysrKUlbQ109US5jaGFyQ29kZUF0KEMpfXJldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShJLEEpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBLmluc3RhbmNlfSkpfXZhciBFPXZvaWQgMCxpPXZvaWQgMDtyZXR1cm4gZmV0Y2goZykudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIGk9KEU9ZykuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpfHwiIiwiaW5zdGFudGlhdGVTdHJlYW1pbmciaW4gV2ViQXNzZW1ibHkmJmkuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vd2FzbSIpP1dlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKEUsQSk6RS5hcnJheUJ1ZmZlcigpfSkpLnRoZW4oKGZ1bmN0aW9uKGcpe3JldHVybiBnIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/V2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoZyxBKTpnfSkpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBLmluc3RhbmNlfSkpfShBLCJkYXRhOmFwcGxpY2F0aW9uL3dhc207YmFzZTY0LEFHRnpiUUVBQUFBQi9BSXVZQUYvQVg5Z0FYOEFZQUovZndGL1lBSi9md0JnQTM5L2Z3Ri9ZQVovZjM5L2YzOEJmMkFGZjM5L2YzOEJmMkFEZjM5L0FHQUVmMzkvZndCZ0JuOS9mMzkvZndCZ0JYOS9mMzkvQUdBRWYzOS9md0YvWUFoL2YzOS9mMzkvZndGL1lBZC9mMzkvZjM5L0FYOWdCWDkrZm41K0FHQUFBR0FIZjM5L2YzOS9md0JnQkg5L2YzOEJmbUFGZjM5L2YzNEJmMkFFZjM1K2Z3QmdBbjkrQUdBRmYzOStmMzhBWUFBQmYyQUtmMzkvZjM5L2YzOS9md0YvWUF4L2YzOS9mMzkvZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUE5L2YzOS9mMzkvZjM5L2YzOS9mMzhBWUFwL2YzOS9mMzkvZjM5L0FHQUxmMzkvZjM5L2YzOS9mMzhCZjJBR2YzeC9mMzkvQVg5Z0IzOS9mMzkvZm40QmYyQUdmMzkvZjM1K0FYOWdCWDkvZjM5OEFYOWdBbjk4QUdBRWZuNStmZ0YvWUFKK2Z3Ri9ZQUorZmdGOFlBRi9BWHhnQTM1K2ZnRi9ZQU4vZjM4QmZHQURmMzkvQVgxZ0JIOS9mMzRCZm1BQ2ZIOEJmR0FEZjM5K0FHQUNmbjRCZldBQ2YzOEJmZ0l4Q0FGaEFXRUFEd0ZoQVdJQUJnRmhBV01BQWdGaEFXUUFBZ0ZoQVdVQUFBRmhBV1lBQkFGaEFXY0FCd0ZoQVdnQUFBUERCTUVFQWdBQUFnTUFBUU1CQUFBQUF3TVdEdzRBQUFFREFRUUFBUUFBQVFBQUFnTUNBZ2NPQmdnS0V3TUNBQU1EQUFJREFBTURBQTRDQkFRQUF3UUFCQUFFQUFBQUF3TURBd1FBQUFFQ0ZBSUhCUU1HQmdzQ0FDRUFBZ0FNREFVSUFnY0FBd01EQXdBQUNBQUlBQUFBQUFNQ0FnTURBaUlUQUFBRUF3SUFBd0FBQndJQ0FCY0FBQmNBSXdNQUF3QUJBQUVIQWdjSUFBTUNBQUlLQXdJQkJBTUhBQUlEQUFBREVBUVFBd0lOQWcwTEFnc0FBQUFDRkFBQUNBQUpCd2dDQndNQ0NnQUJCQVlCQUFNREFBUVlDZ1FZQ2dnUkFnQUVKQTRsSmdBQkFRQUtEd0lBQVFBSEF4UUJCQWdDQ2hrQUJ3Y1pBQUVEQndJREFRSVdBUUlLQUFBSUFBQUdEQWNBQVFFREFRQUFCd01CQVFBRUdoc2FHd0FDQUFBQ0F4d0RBZ0FBQVFjREhBTURBZ0lEQ1FvSkNRb0pDUUFRQkFjUUFnVUVDQ2NvRVFzRkN4RURDd2NDQUFjUktRQUxBQUVDQWdJQUJ3QUdLZ0lBQWdRckxDMElEZzRUQWc0QkFnSUFBQUFEQndNSEF3TUJBQUFDQXdJQUFBSUJBQUlBQVFFRUJBQUFCQWdWQkFFQkFBRUJBQWtKQ1FvS0NnZ0lDQVFQQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUF3TURBd01EQUFBQkFRWU1EQVlNREFBR0FBWU1EQUVHQmdRTEJBSUVBZ0VHQkFzRUFnUUNDd3NMQkFFQkFRRUpDUVVlQlI0TkRRME5EUTBNQlFVRkJRVU1CUVVGQlFVR0h5QVNCaElHQmdZZklBY1NCaElHQmdjRkJRVUZCUVVGQlFVSkJRVUZCUVVGQlFVRkJBZ0dCQWdHQUFRREhRa0VDQUVCQUFFQUNBRVZBZ0lBQUFFQkFBQUJBQUVCQUFRSEFYQUJ3UUxCQWdVR0FRRXdnSUFDQmdnQmZ3RkJrTmNCQ3djNURBRnBBZ0FCYWdEbUFRRnJBQmtCYkFBUUFXMEE1d0lCYmdDekJBRnZBTEVFQVhBQW5RUUJjUUNUQkFGeUFMQUJBWE1BalFRQmRBRUFDY2NFQVFCQkFRdkFBc1lFclFUQUFiMEJqQU93QVlzRGlnT0pBMDlQaUFPSEE0WUQ1d0dGQStjQnVnR0RBOGdFeHdUa0FmVUN4UVRFQkxnQjR3SERCTUVFd2dUQUJORUJ1Z1M3QkxrRXZnUzlCTHdFZm8wRGpBSGlBYmdFdHdTMkJMVUU0UUcwQkxJRXNBU3ZCSzRFRU1vQjZBUG1BN2tEdHdPMUE3TURzUU92QTYwRHF3T3BBNmNEcFFPakE2RURud09TQXVrRDV3T01BdG9EMlFQWUE5Y0QxZ092QXRVRDFBUFRBNWNDMFFQUUE4OER6Z1BOQTAvTUE4c0RoUUxFQThJRHdRUEFBNzREdkFPRUFzTUR2d1NPQTc4RHZRTzdBMndnSU9VRDVBUGpBK0lENFFQZ0E5OEQzZ092QXQwRDNBUGJBeUNLQW9vQ3pBRytBYjRCMGdPK0FTREtBOGtEekFGUFQ4Z0Rod0lneHdQR0E4d0JUMC9GQTRjQ2JDQ3NCS3NFcWdSc0lLa0VxQVNuQkNDbUJLVUVwQVNqQk1VQ3hRS2lCS0VFb0FTZkJKNEVJSndFbXdTYUJKa0V2Z0srQXBnRWx3U1dCSlVFbEFRZ2tnU1JCSkFFandTT0JJd0Vpd1NLQkNDSkJJZ0Vod1NHQklVRWhBU0RCSUlFYkNDNEFvRUVnQVQvQS80RC9RUDhBN29EdGdPeUE2WURvZ091QTZvRGJDQzRBdnNEK2dQNUEvZ0Q5d1AyQTdnRHRBT3dBNlFEb0FPc0E2Z0R5UUdCQXZVRHlRR0JBdlFESUtzQnF3RnJhMnV0QWs5cWFpQ3JBYXNCYTJ0cnJRSlBhbW9ncWdHcUFXdXBBYWtCckFKUGFtb2dxZ0dxQVd1cEFha0JyQUpQYW1vZzh3UHlBeUR4QS9BRElPOEQ3Z01nN1FQc0F5Q1lBdXNEc0FFZ21BTHFBN0FCYkowRG5BTnNJTW9CeWdHYkE1SURsUU9hQXlDVEE1WURtUU1nbEFPWEE1Z0RiQ0NSQTVBRG5nT1BBd3JpMWdmQkJBY0FJQUFnQVhnTEZBQWdBQkExQkVBZ0FDZ0NCQThMSUFBdEFBc0xIUUVCZnlBQUVEVUVRQ0FBS0FJQUlRRWdBQkI5R2lBQkVCQUxJQUFMQ1FBZ0FCQU5JQUZxQzlJQkFRUi9Ba0FnQVNBQUVBa2lBMHNFUUNNQVFSQnJJZ0lrQUNBQklBTnJJZ01FUUNBQUVCTWhCQ0FBRUFraUFTQURhaUVGSUFNZ0JDQUJhMHNFUUNBQUlBUWdCU0FFYXlBQklBRVF5QUVMSUFFZ0FCQU5JZ1JxSUFOQkFCRDJBU0FBSUFVUWVDQUNRUUE2QUE4Z0JDQUZhaUFDUVE5cUVEUUxEQUVMSXdCQkVHc2lBaVFBQWtBZ0FCQTFCRUFnQUNnQ0FDRURJQUpCQURvQUR5QUJJQU5xSUFKQkQyb1FOQ0FBSUFFUU9Rd0JDeUFDUVFBNkFBNGdBQ0FCYWlBQ1FRNXFFRFFnQUNBQkVEb0xDeUFDUVJCcUpBQUxFUUFnQUJBMUJFQWdBQ2dDQUE4TElBQUxDZ0FnQUNnQ0FCQ2pBUXNNQUNBQUlBRkJIR29RandJTHpBd0JCMzhDUUNBQVJRMEFJQUJCQ0dzaUF5QUFRUVJyS0FJQUlnRkJlSEVpQUdvaEJRSkFJQUZCQVhFTkFDQUJRUU54UlEwQklBTWdBeWdDQUNJQmF5SURRZGlCQVNnQ0FFa05BU0FBSUFGcUlRQWdBMEhjZ1FFb0FnQkhCRUFnQVVIL0FVMEVRQ0FES0FJSUlnSWdBVUVEZGlJRVFRTjBRZkNCQVdwR0dpQUNJQU1vQWd3aUFVWUVRRUhJZ1FGQnlJRUJLQUlBUVg0Z0JIZHhOZ0lBREFNTElBSWdBVFlDRENBQklBSTJBZ2dNQWdzZ0F5Z0NHQ0VHQWtBZ0F5QURLQUlNSWdGSEJFQWdBeWdDQ0NJQ0lBRTJBZ3dnQVNBQ05nSUlEQUVMQWtBZ0EwRVVhaUlDS0FJQUlnUU5BQ0FEUVJCcUlnSW9BZ0FpQkEwQVFRQWhBUXdCQ3dOQUlBSWhCeUFFSWdGQkZHb2lBaWdDQUNJRURRQWdBVUVRYWlFQ0lBRW9BaEFpQkEwQUN5QUhRUUEyQWdBTElBWkZEUUVDUUNBRElBTW9BaHdpQWtFQ2RFSDRnd0ZxSWdRb0FnQkdCRUFnQkNBQk5nSUFJQUVOQVVITWdRRkJ6SUVCS0FJQVFYNGdBbmR4TmdJQURBTUxJQVpCRUVFVUlBWW9BaEFnQTBZYmFpQUJOZ0lBSUFGRkRRSUxJQUVnQmpZQ0dDQURLQUlRSWdJRVFDQUJJQUkyQWhBZ0FpQUJOZ0lZQ3lBREtBSVVJZ0pGRFFFZ0FTQUNOZ0lVSUFJZ0FUWUNHQXdCQ3lBRktBSUVJZ0ZCQTNGQkEwY05BRUhRZ1FFZ0FEWUNBQ0FGSUFGQmZuRTJBZ1FnQXlBQVFRRnlOZ0lFSUFBZ0Eyb2dBRFlDQUE4TElBTWdCVThOQUNBRktBSUVJZ0ZCQVhGRkRRQUNRQ0FCUVFKeFJRUkFJQVZCNElFQktBSUFSZ1JBUWVDQkFTQUROZ0lBUWRTQkFVSFVnUUVvQWdBZ0FHb2lBRFlDQUNBRElBQkJBWEkyQWdRZ0EwSGNnUUVvQWdCSERRTkIwSUVCUVFBMkFnQkIzSUVCUVFBMkFnQVBDeUFGUWR5QkFTZ0NBRVlFUUVIY2dRRWdBellDQUVIUWdRRkIwSUVCS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBQWdBMm9nQURZQ0FBOExJQUZCZUhFZ0FHb2hBQUpBSUFGQi93Rk5CRUFnQlNnQ0NDSUNJQUZCQTNZaUJFRURkRUh3Z1FGcVJob2dBaUFGS0FJTUlnRkdCRUJCeUlFQlFjaUJBU2dDQUVGK0lBUjNjVFlDQUF3Q0N5QUNJQUUyQWd3Z0FTQUNOZ0lJREFFTElBVW9BaGdoQmdKQUlBVWdCU2dDRENJQlJ3UkFJQVVvQWdnaUFrSFlnUUVvQWdCSkdpQUNJQUUyQWd3Z0FTQUNOZ0lJREFFTEFrQWdCVUVVYWlJQ0tBSUFJZ1FOQUNBRlFSQnFJZ0lvQWdBaUJBMEFRUUFoQVF3QkN3TkFJQUloQnlBRUlnRkJGR29pQWlnQ0FDSUVEUUFnQVVFUWFpRUNJQUVvQWhBaUJBMEFDeUFIUVFBMkFnQUxJQVpGRFFBQ1FDQUZJQVVvQWh3aUFrRUNkRUg0Z3dGcUlnUW9BZ0JHQkVBZ0JDQUJOZ0lBSUFFTkFVSE1nUUZCeklFQktBSUFRWDRnQW5keE5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JVWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FGS0FJUUlnSUVRQ0FCSUFJMkFoQWdBaUFCTmdJWUN5QUZLQUlVSWdKRkRRQWdBU0FDTmdJVUlBSWdBVFlDR0FzZ0F5QUFRUUZ5TmdJRUlBQWdBMm9nQURZQ0FDQURRZHlCQVNnQ0FFY05BVUhRZ1FFZ0FEWUNBQThMSUFVZ0FVRitjVFlDQkNBRElBQkJBWEkyQWdRZ0FDQURhaUFBTmdJQUN5QUFRZjhCVFFSQUlBQkJBM1lpQVVFRGRFSHdnUUZxSVFBQ2YwSElnUUVvQWdBaUFrRUJJQUYwSWdGeFJRUkFRY2lCQVNBQklBSnlOZ0lBSUFBTUFRc2dBQ2dDQ0FzaEFpQUFJQU0yQWdnZ0FpQUROZ0lNSUFNZ0FEWUNEQ0FESUFJMkFnZ1BDMEVmSVFJZ0EwSUFOd0lRSUFCQi8vLy9CMDBFUUNBQVFRaDJJZ0VnQVVHQS9qOXFRUkIyUVFoeElnRjBJZ0lnQWtHQTRCOXFRUkIyUVFSeElnSjBJZ1FnQkVHQWdBOXFRUkIyUVFKeElnUjBRUTkySUFFZ0FuSWdCSEpySWdGQkFYUWdBQ0FCUVJWcWRrRUJjWEpCSEdvaEFnc2dBeUFDTmdJY0lBSkJBblJCK0lNQmFpRUJBa0FDUUFKQVFjeUJBU2dDQUNJRVFRRWdBblFpQjNGRkJFQkJ6SUVCSUFRZ0IzSTJBZ0FnQVNBRE5nSUFJQU1nQVRZQ0dBd0JDeUFBUVFCQkdTQUNRUUYyYXlBQ1FSOUdHM1FoQWlBQktBSUFJUUVEUUNBQklnUW9BZ1JCZUhFZ0FFWU5BaUFDUVIxMklRRWdBa0VCZENFQ0lBUWdBVUVFY1dvaUIwRVFhaWdDQUNJQkRRQUxJQWNnQXpZQ0VDQURJQVEyQWhnTElBTWdBellDRENBRElBTTJBZ2dNQVFzZ0JDZ0NDQ0lBSUFNMkFnd2dCQ0FETmdJSUlBTkJBRFlDR0NBRElBUTJBZ3dnQXlBQU5nSUlDMEhvZ1FGQjZJRUJLQUlBUVFGcklnQkJmeUFBR3pZQ0FBc0xKQUVCZnlNQVFSQnJJZ0VrQUNBQVFnQTNBZ0FnQUVFQU5nSUlJQUZCRUdva0FDQUFDNHNDQWdOL0FuNENRQ0FBS1FOd0lnUlFSU0FFSUFBcEEzZ2dBQ2dDQkNJQklBQW9BaXdpQW11c2ZDSUZWM0ZGQkVBakFFRVFheUlDSkFCQmZ5RUJBa0FnQUJEcUFRMEFJQUFnQWtFUGFrRUJJQUFvQWlBUkJBQkJBVWNOQUNBQ0xRQVBJUUVMSUFKQkVHb2tBQ0FCSWdOQkFFNE5BU0FBS0FJRUlRRWdBQ2dDTENFQ0N5QUFRbjgzQTNBZ0FDQUJOZ0pvSUFBZ0JTQUNJQUZyckh3M0EzaEJmdzhMSUFWQ0FYd2hCU0FBS0FJRUlRRWdBQ2dDQ0NFQ0FrQWdBQ2tEY0NJRVVBMEFJQVFnQlgwaUJDQUNJQUZyckZrTkFDQUJJQVNuYWlFQ0N5QUFJQUkyQW1nZ0FDQUZJQUFvQWl3aUFDQUJhNng4TndONElBQWdBVThFUUNBQlFRRnJJQU02QUFBTElBTUxHUUVCZjBFS0lRRWdBQkExQkg4Z0FCQjlRUUZyQlNBQkN3dmpBUUVHZnlBQkVOSUNJUU1qQUVFUWF5SUZKQUFDUUNBRElBQWlCQkRPQVNJQVRRUkFJQVFRRFNJR0lRSWdBeUlBQkg4Q1FDQUJJQUpHRFFBZ0FpQUJheUFBUVFKMFR3UkFJQUJGRFFFRFFDQUNJQUVvQWdBMkFnQWdBa0VFYWlFQ0lBRkJCR29oQVNBQVFRRnJJZ0FOQUFzTUFRc2dBRVVOQUFOQUlBSWdBRUVCYXlJQVFRSjBJZ2RxSUFFZ0Iyb29BZ0EyQWdBZ0FBMEFDd3RCQUFVZ0Fnc2FJQVZCQURZQ0RDQUdJQU5CQW5ScUlBVkJER29RTXlBRUlBTVFlQXdCQ3lBRUlBQWdBeUFBYXlBRUVBa2lBRUVBSUFBZ0F5QUJFUE1CQ3lBRlFSQnFKQUFMY3dFRGZ5QUJFSjRCSVFJakFFRVFheUlFSkFBQ1FDQUNJQUFRRXlJRFRRUkFJQUFRRFNFRElBSUVRQ0FESUFFZ0FoRHJBUXNnQkVFQU9nQVBJQUlnQTJvZ0JFRVBhaEEwSUFBZ0FoQjREQUVMSUFBZ0F5QUNJQU5ySUFBUUNTSUFRUUFnQUNBQ0lBRVE5d0VMSUFSQkVHb2tBQXZ0QWdFRWZ3SkFRY3lJQVMwQUFFRUJjUTBBUWN5SUFSQWtSUTBBSXdCQklHc2lBaVFBQWtBQ1FBTkFJQUpCQ0dvZ0FFRUNkR29DZjBFQklBQjBRZi8vLy84SGNTSURRUUZ5UlFSQUlBQkJBblFvQWdBTUFRc2dBRUdhSGtHV0h5QURHeERlQWdzaUF6WUNBQ0FEUVg5SEJFQWdBRUVCYWlJQVFRWkdEUUlNQVFzTERBRUxRUUFRM1FKRkJFQkJ1QzBoQVNBQ1FRaHFRYmd0RUo4QlJRMEJRZEF0SVFFZ0FrRUlha0hRTFJDZkFVVU5BVUVBSVFCQm9JY0JMUUFBUlFSQUEwQWdBRUVDZEVId2hnRnFJQUJCbGg4UTNnSTJBZ0FnQUVFQmFpSUFRUVpIRFFBTFFhQ0hBVUVCT2dBQVFZaUhBVUh3aGdFb0FnQTJBZ0FMUWZDR0FTRUJJQUpCQ0dwQjhJWUJFSjhCUlEwQlFZaUhBU0VCSUFKQkNHcEJpSWNCRUo4QlJRMEJRUmdRR1NJQlJRMEJDeUFCSUFJcEF3ZzNBZ0FnQVNBQ0tRTVlOd0lRSUFFZ0Fpa0RFRGNDQ0FzZ0FrRWdhaVFBUWNpSUFTQUJOZ0lBUWN5SUFSQWpDMEhJaUFFb0FnQUxCUUFRQUFBTDN3b0NCWDhQZmlNQVFlQUFheUlGSkFBZ0JFTC8vLy8vLy84L2d5SU5RZytHSUFOQ01ZaUVJUTRnQWlBRWhVS0FnSUNBZ0lDQWdJQi9neUVLSUFKQy8vLy8vLy8vUDRNaUMwSWdpQ0VQSUExQ0VZZ2hFQ0FFUWpDSXAwSC8vd0Z4SVFjQ1FBSkFJQUpDTUlpblFmLy9BWEVpQ1VFQmEwSDkvd0ZOQkVBZ0IwRUJhMEgrL3dGSkRRRUxJQUZRSUFKQy8vLy8vLy8vLy8vL0FJTWlERUtBZ0lDQWdJREEvLzhBVkNBTVFvQ0FnSUNBZ01ELy93QlJHMFVFUUNBQ1FvQ0FnSUNBZ0NDRUlRb01BZ3NnQTFBZ0JFTC8vLy8vLy8vLy8vOEFneUlDUW9DQWdJQ0FnTUQvL3dCVUlBSkNnSUNBZ0lDQXdQLy9BRkViUlFSQUlBUkNnSUNBZ0lDQUlJUWhDaUFESVFFTUFnc2dBU0FNUW9DQWdJQ0FnTUQvL3dDRmhGQUVRQ0FDSUFPRVVBUkFRb0NBZ0lDQWdPRC8vd0FoQ2tJQUlRRU1Bd3NnQ2tLQWdJQ0FnSURBLy84QWhDRUtRZ0FoQVF3Q0N5QURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFJQUVnRElRaEFrSUFJUUVnQWxBRVFFS0FnSUNBZ0lEZy8vOEFJUW9NQXdzZ0NrS0FnSUNBZ0lEQS8vOEFoQ0VLREFJTElBRWdESVJRQkVCQ0FDRUJEQUlMSUFJZ0E0UlFCRUJDQUNFQkRBSUxJQXhDLy8vLy8vLy9QMWdFUUNBRlFkQUFhaUFCSUFzZ0FTQUxJQXRRSWdZYmVTQUdRUVowclh5bklnWkJEMnNRTDBFUUlBWnJJUVlnQlNrRFdDSUxRaUNJSVE4Z0JTa0RVQ0VCQ3lBQ1F2Ly8vLy8vL3o5V0RRQWdCVUZBYXlBRElBMGdBeUFOSUExUUlnZ2JlU0FJUVFaMHJYeW5JZ2hCRDJzUUx5QUdJQWhyUVJCcUlRWWdCU2tEU0NJQ1FnK0dJQVVwQTBBaUEwSXhpSVFoRGlBQ1FoR0lJUkFMSUFOQ0Q0WkNnSUQrL3crRElnSWdBVUlnaUNJRWZpSVNJQU5DRVloQy8vLy8vdytESWd3Z0FVTC8vLy8vRDRNaUFYNThJaEZDSUlZaURTQUJJQUorZkNJRElBMVVyU0FDSUF0Qy8vLy8vdytESWd0K0loVWdCQ0FNZm53aUV5QU9Rdi8vLy84UGd5SU5JQUYrZkNJVUlCRWdFbFN0UWlDR0lCRkNJSWlFZkNJUklBSWdEMEtBZ0FTRUlnNStJaFlnQ3lBTWZud2lEeUFFSUExK2ZDSVNJQkJDLy8vLy93ZURRb0NBZ0lBSWhDSUNJQUYrZkNJUVFpQ0dmQ0lYZkNFQklBY2dDV29nQm1wQi8vOEFheUVHQWtBZ0N5QU5maUlZSUF3Z0RuNThJZ3dnR0ZTdElBd2dBaUFFZm53aUJDQU1WSzE4SUFJZ0RuNThJQVFnQkNBVElCVlVyU0FUSUJSV3JYeDhJZ1JXclh3Z0FpQUxmaUlMSUEwZ0RuNThJZ0lnQzFTdFFpQ0dJQUpDSUlpRWZDQUVJQUpDSUlaOElnSWdCRlN0ZkNBQ0lBSWdFQ0FTVkswZ0R5QVdWSzBnRHlBU1ZxMThmRUlnaGlBUVFpQ0loSHdpQWxhdGZDQUNJQUlnRVNBVVZLMGdFU0FYVnExOGZDSUNWcTE4SWdSQ2dJQ0FnSUNBd0FDRFVFVUVRQ0FHUVFGcUlRWU1BUXNnQTBJL2lDRUxJQVJDQVlZZ0FrSS9pSVFoQkNBQ1FnR0dJQUZDUDRpRUlRSWdBMElCaGlFRElBc2dBVUlCaG9RaEFRc2dCa0gvL3dGT0JFQWdDa0tBZ0lDQWdJREEvLzhBaENFS1FnQWhBUXdCQ3dKK0lBWkJBRXdFUUVFQklBWnJJZ2RCZ0FGUEJFQkNBQ0VCREFNTElBVkJNR29nQXlBQklBWkIvd0JxSWdZUUx5QUZRU0JxSUFJZ0JDQUdFQzhnQlVFUWFpQURJQUVnQnhCOElBVWdBaUFFSUFjUWZDQUZLUU13SUFVcEF6aUVRZ0JTclNBRktRTWdJQVVwQXhDRWhDRURJQVVwQXlnZ0JTa0RHSVFoQVNBRktRTUFJUUlnQlNrRENBd0JDeUFFUXYvLy8vLy8veitESUFhdFFqQ0doQXNnQ29RaENpQURVQ0FCUWdCWklBRkNnSUNBZ0lDQWdJQ0FmMUViUlFSQUlBb2dBa0lCZkNJQklBSlVyWHdoQ2d3QkN5QURJQUZDZ0lDQWdJQ0FnSUNBZjRXRVVFVUVRQ0FDSVFFTUFRc2dDaUFDSUFKQ0FZTjhJZ0VnQWxTdGZDRUtDeUFBSUFFM0F3QWdBQ0FLTndNSUlBVkI0QUJxSkFBTGdDNEJDMzhqQUVFUWF5SUxKQUFDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBQkI5QUZOQkVCQnlJRUJLQUlBSWdaQkVDQUFRUXRxUVhoeElBQkJDMGtiSWdkQkEzWWlBbllpQVVFRGNRUkFJQUZCZjNOQkFYRWdBbW9pQTBFRGRDSUJRZmlCQVdvb0FnQWlCRUVJYWlFQUFrQWdCQ2dDQ0NJQ0lBRkI4SUVCYWlJQlJnUkFRY2lCQVNBR1FYNGdBM2R4TmdJQURBRUxJQUlnQVRZQ0RDQUJJQUkyQWdnTElBUWdBMEVEZENJQlFRTnlOZ0lFSUFFZ0JHb2lBU0FCS0FJRVFRRnlOZ0lFREF3TElBZEIwSUVCS0FJQUlncE5EUUVnQVFSQUFrQkJBaUFDZENJQVFRQWdBR3R5SUFFZ0FuUnhJZ0JCQUNBQWEzRkJBV3NpQUNBQVFReDJRUkJ4SWdKMklnRkJCWFpCQ0hFaUFDQUNjaUFCSUFCMklnRkJBblpCQkhFaUFISWdBU0FBZGlJQlFRRjJRUUp4SWdCeUlBRWdBSFlpQVVFQmRrRUJjU0lBY2lBQklBQjJhaUlEUVFOMElnQkIrSUVCYWlnQ0FDSUVLQUlJSWdFZ0FFSHdnUUZxSWdCR0JFQkJ5SUVCSUFaQmZpQURkM0VpQmpZQ0FBd0JDeUFCSUFBMkFnd2dBQ0FCTmdJSUN5QUVRUWhxSVFBZ0JDQUhRUU55TmdJRUlBUWdCMm9pQWlBRFFRTjBJZ0VnQjJzaUEwRUJjallDQkNBQklBUnFJQU0yQWdBZ0NnUkFJQXBCQTNZaUFVRURkRUh3Z1FGcUlRVkIzSUVCS0FJQUlRUUNmeUFHUVFFZ0FYUWlBWEZGQkVCQnlJRUJJQUVnQm5JMkFnQWdCUXdCQ3lBRktBSUlDeUVCSUFVZ0JEWUNDQ0FCSUFRMkFnd2dCQ0FGTmdJTUlBUWdBVFlDQ0F0QjNJRUJJQUkyQWdCQjBJRUJJQU0yQWdBTURBdEJ6SUVCS0FJQUlnbEZEUUVnQ1VFQUlBbHJjVUVCYXlJQUlBQkJESFpCRUhFaUFuWWlBVUVGZGtFSWNTSUFJQUp5SUFFZ0FIWWlBVUVDZGtFRWNTSUFjaUFCSUFCMklnRkJBWFpCQW5FaUFISWdBU0FBZGlJQlFRRjJRUUZ4SWdCeUlBRWdBSFpxUVFKMFFmaURBV29vQWdBaUFTZ0NCRUY0Y1NBSGF5RURJQUVoQWdOQUFrQWdBaWdDRUNJQVJRUkFJQUlvQWhRaUFFVU5BUXNnQUNnQ0JFRjRjU0FIYXlJQ0lBTWdBaUFEU1NJQ0d5RURJQUFnQVNBQ0d5RUJJQUFoQWd3QkN3c2dBU2dDR0NFSUlBRWdBU2dDRENJRVJ3UkFJQUVvQWdnaUFFSFlnUUVvQWdCSkdpQUFJQVEyQWd3Z0JDQUFOZ0lJREFzTElBRkJGR29pQWlnQ0FDSUFSUVJBSUFFb0FoQWlBRVVOQXlBQlFSQnFJUUlMQTBBZ0FpRUZJQUFpQkVFVWFpSUNLQUlBSWdBTkFDQUVRUkJxSVFJZ0JDZ0NFQ0lBRFFBTElBVkJBRFlDQUF3S0MwRi9JUWNnQUVHL2Ywc05BQ0FBUVF0cUlnQkJlSEVoQjBITWdRRW9BZ0FpQ1VVTkFFRUFJQWRySVFNQ1FBSkFBa0FDZjBFQUlBZEJnQUpKRFFBYVFSOGdCMEgvLy84SFN3MEFHaUFBUVFoMklnQWdBRUdBL2o5cVFSQjJRUWh4SWdKMElnQWdBRUdBNEI5cVFSQjJRUVJ4SWdGMElnQWdBRUdBZ0E5cVFSQjJRUUp4SWdCMFFROTJJQUVnQW5JZ0FISnJJZ0JCQVhRZ0J5QUFRUlZxZGtFQmNYSkJIR29MSWdaQkFuUkIrSU1CYWlnQ0FDSUNSUVJBUVFBaEFBd0JDMEVBSVFBZ0IwRUFRUmtnQmtFQmRtc2dCa0VmUmh0MElRRURRQUpBSUFJb0FnUkJlSEVnQjJzaUJTQURUdzBBSUFJaEJDQUZJZ01OQUVFQUlRTWdBaUVBREFNTElBQWdBaWdDRkNJRklBVWdBaUFCUVIxMlFRUnhhaWdDRUNJQ1Joc2dBQ0FGR3lFQUlBRkJBWFFoQVNBQ0RRQUxDeUFBSUFSeVJRUkFRUUFoQkVFQ0lBWjBJZ0JCQUNBQWEzSWdDWEVpQUVVTkF5QUFRUUFnQUd0eFFRRnJJZ0FnQUVFTWRrRVFjU0lDZGlJQlFRVjJRUWh4SWdBZ0FuSWdBU0FBZGlJQlFRSjJRUVJ4SWdCeUlBRWdBSFlpQVVFQmRrRUNjU0lBY2lBQklBQjJJZ0ZCQVhaQkFYRWlBSElnQVNBQWRtcEJBblJCK0lNQmFpZ0NBQ0VBQ3lBQVJRMEJDd05BSUFBb0FnUkJlSEVnQjJzaUFTQURTU0VDSUFFZ0F5QUNHeUVESUFBZ0JDQUNHeUVFSUFBb0FoQWlBUVIvSUFFRklBQW9BaFFMSWdBTkFBc0xJQVJGRFFBZ0EwSFFnUUVvQWdBZ0IydFBEUUFnQkNnQ0dDRUdJQVFnQkNnQ0RDSUJSd1JBSUFRb0FnZ2lBRUhZZ1FFb0FnQkpHaUFBSUFFMkFnd2dBU0FBTmdJSURBa0xJQVJCRkdvaUFpZ0NBQ0lBUlFSQUlBUW9BaEFpQUVVTkF5QUVRUkJxSVFJTEEwQWdBaUVGSUFBaUFVRVVhaUlDS0FJQUlnQU5BQ0FCUVJCcUlRSWdBU2dDRUNJQURRQUxJQVZCQURZQ0FBd0lDeUFIUWRDQkFTZ0NBQ0lDVFFSQVFkeUJBU2dDQUNFREFrQWdBaUFIYXlJQlFSQlBCRUJCMElFQklBRTJBZ0JCM0lFQklBTWdCMm9pQURZQ0FDQUFJQUZCQVhJMkFnUWdBaUFEYWlBQk5nSUFJQU1nQjBFRGNqWUNCQXdCQzBIY2dRRkJBRFlDQUVIUWdRRkJBRFlDQUNBRElBSkJBM0kyQWdRZ0FpQURhaUlBSUFBb0FnUkJBWEkyQWdRTElBTkJDR29oQUF3S0N5QUhRZFNCQVNnQ0FDSUlTUVJBUWRTQkFTQUlJQWRySWdFMkFnQkI0SUVCUWVDQkFTZ0NBQ0lDSUFkcUlnQTJBZ0FnQUNBQlFRRnlOZ0lFSUFJZ0IwRURjallDQkNBQ1FRaHFJUUFNQ2d0QkFDRUFJQWRCTDJvaUNRSi9RYUNGQVNnQ0FBUkFRYWlGQVNnQ0FBd0JDMEdzaFFGQ2Z6Y0NBRUdraFFGQ2dLQ0FnSUNBQkRjQ0FFR2doUUVnQzBFTWFrRndjVUhZcXRXcUJYTTJBZ0JCdElVQlFRQTJBZ0JCaElVQlFRQTJBZ0JCZ0NBTElnRnFJZ1pCQUNBQmF5SUZjU0lDSUFkTkRRbEJnSVVCS0FJQUlnUUVRRUg0aEFFb0FnQWlBeUFDYWlJQklBTk5JQUVnQkV0eURRb0xRWVNGQVMwQUFFRUVjUTBFQWtBQ1FFSGdnUUVvQWdBaUF3UkFRWWlGQVNFQUEwQWdBeUFBS0FJQUlnRlBCRUFnQVNBQUtBSUVhaUFEU3cwREN5QUFLQUlJSWdBTkFBc0xRUUFRY2lJQlFYOUdEUVVnQWlFR1FhU0ZBU2dDQUNJRFFRRnJJZ0FnQVhFRVFDQUNJQUZySUFBZ0FXcEJBQ0FEYTNGcUlRWUxJQVlnQjAwZ0JrSCsvLy8vQjB0eURRVkJnSVVCS0FJQUlnUUVRRUg0aEFFb0FnQWlBeUFHYWlJQUlBTk5JQUFnQkV0eURRWUxJQVlRY2lJQUlBRkhEUUVNQndzZ0JpQUlheUFGY1NJR1FmNy8vLzhIU3cwRUlBWVFjaUlCSUFBb0FnQWdBQ2dDQkdwR0RRTWdBU0VBQ3lBQVFYOUdJQWRCTUdvZ0JrMXlSUVJBUWFpRkFTZ0NBQ0lCSUFrZ0JtdHFRUUFnQVd0eElnRkIvdi8vL3dkTEJFQWdBQ0VCREFjTElBRVFja0YvUndSQUlBRWdCbW9oQmlBQUlRRU1Cd3RCQUNBR2F4QnlHZ3dFQ3lBQUlnRkJmMGNOQlF3REMwRUFJUVFNQnd0QkFDRUJEQVVMSUFGQmYwY05BZ3RCaElVQlFZU0ZBU2dDQUVFRWNqWUNBQXNnQWtIKy8vLy9CMHNOQVNBQ0VISWlBVUYvUmtFQUVISWlBRUYvUm5JZ0FDQUJUWElOQVNBQUlBRnJJZ1lnQjBFb2FrME5BUXRCK0lRQlFmaUVBU2dDQUNBR2FpSUFOZ0lBUWZ5RUFTZ0NBQ0FBU1FSQVFmeUVBU0FBTmdJQUN3SkFBa0FDUUVIZ2dRRW9BZ0FpQlFSQVFZaUZBU0VBQTBBZ0FTQUFLQUlBSWdNZ0FDZ0NCQ0lDYWtZTkFpQUFLQUlJSWdBTkFBc01BZ3RCMklFQktBSUFJZ0JCQUNBQUlBRk5HMFVFUUVIWWdRRWdBVFlDQUF0QkFDRUFRWXlGQVNBR05nSUFRWWlGQVNBQk5nSUFRZWlCQVVGL05nSUFRZXlCQVVHZ2hRRW9BZ0EyQWdCQmxJVUJRUUEyQWdBRFFDQUFRUU4wSWdOQitJRUJhaUFEUWZDQkFXb2lBallDQUNBRFFmeUJBV29nQWpZQ0FDQUFRUUZxSWdCQklFY05BQXRCMUlFQklBWkJLR3NpQTBGNElBRnJRUWR4UVFBZ0FVRUlha0VIY1JzaUFHc2lBallDQUVIZ2dRRWdBQ0FCYWlJQU5nSUFJQUFnQWtFQmNqWUNCQ0FCSUFOcVFTZzJBZ1JCNUlFQlFiQ0ZBU2dDQURZQ0FBd0NDeUFBTFFBTVFRaHhJQU1nQlV0eUlBRWdCVTF5RFFBZ0FDQUNJQVpxTmdJRVFlQ0JBU0FGUVhnZ0JXdEJCM0ZCQUNBRlFRaHFRUWR4R3lJQWFpSUNOZ0lBUWRTQkFVSFVnUUVvQWdBZ0Jtb2lBU0FBYXlJQU5nSUFJQUlnQUVFQmNqWUNCQ0FCSUFWcVFTZzJBZ1JCNUlFQlFiQ0ZBU2dDQURZQ0FBd0JDMEhZZ1FFb0FnQWdBVXNFUUVIWWdRRWdBVFlDQUFzZ0FTQUdhaUVDUVlpRkFTRUFBa0FDUUFKQUFrQUNRQUpBQTBBZ0FpQUFLQUlBUndSQUlBQW9BZ2dpQUEwQkRBSUxDeUFBTFFBTVFRaHhSUTBCQzBHSWhRRWhBQU5BSUFVZ0FDZ0NBQ0lDVHdSQUlBSWdBQ2dDQkdvaUJDQUZTdzBEQ3lBQUtBSUlJUUFNQUFzQUN5QUFJQUUyQWdBZ0FDQUFLQUlFSUFacU5nSUVJQUZCZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViYWlJSklBZEJBM0kyQWdRZ0FrRjRJQUpyUVFkeFFRQWdBa0VJYWtFSGNSdHFJZ1lnQnlBSmFpSUlheUVDSUFVZ0JrWUVRRUhnZ1FFZ0NEWUNBRUhVZ1FGQjFJRUJLQUlBSUFKcUlnQTJBZ0FnQ0NBQVFRRnlOZ0lFREFNTElBWkIzSUVCS0FJQVJnUkFRZHlCQVNBSU5nSUFRZENCQVVIUWdRRW9BZ0FnQW1vaUFEWUNBQ0FJSUFCQkFYSTJBZ1FnQUNBSWFpQUFOZ0lBREFNTElBWW9BZ1FpQUVFRGNVRUJSZ1JBSUFCQmVIRWhCUUpBSUFCQi93Rk5CRUFnQmlnQ0NDSURJQUJCQTNZaUFFRURkRUh3Z1FGcVJob2dBeUFHS0FJTUlnRkdCRUJCeUlFQlFjaUJBU2dDQUVGK0lBQjNjVFlDQUF3Q0N5QURJQUUyQWd3Z0FTQUROZ0lJREFFTElBWW9BaGdoQndKQUlBWWdCaWdDRENJQlJ3UkFJQVlvQWdnaUFDQUJOZ0lNSUFFZ0FEWUNDQXdCQ3dKQUlBWkJGR29pQUNnQ0FDSUREUUFnQmtFUWFpSUFLQUlBSWdNTkFFRUFJUUVNQVFzRFFDQUFJUVFnQXlJQlFSUnFJZ0FvQWdBaUF3MEFJQUZCRUdvaEFDQUJLQUlRSWdNTkFBc2dCRUVBTmdJQUN5QUhSUTBBQWtBZ0JpQUdLQUljSWdOQkFuUkIrSU1CYWlJQUtBSUFSZ1JBSUFBZ0FUWUNBQ0FCRFFGQnpJRUJRY3lCQVNnQ0FFRitJQU4zY1RZQ0FBd0NDeUFIUVJCQkZDQUhLQUlRSUFaR0cyb2dBVFlDQUNBQlJRMEJDeUFCSUFjMkFoZ2dCaWdDRUNJQUJFQWdBU0FBTmdJUUlBQWdBVFlDR0FzZ0JpZ0NGQ0lBUlEwQUlBRWdBRFlDRkNBQUlBRTJBaGdMSUFVZ0Jtb2hCaUFDSUFWcUlRSUxJQVlnQmlnQ0JFRitjVFlDQkNBSUlBSkJBWEkyQWdRZ0FpQUlhaUFDTmdJQUlBSkIvd0ZOQkVBZ0FrRURkaUlBUVFOMFFmQ0JBV29oQWdKL1FjaUJBU2dDQUNJQlFRRWdBSFFpQUhGRkJFQkJ5SUVCSUFBZ0FYSTJBZ0FnQWd3QkN5QUNLQUlJQ3lFQUlBSWdDRFlDQ0NBQUlBZzJBZ3dnQ0NBQ05nSU1JQWdnQURZQ0NBd0RDMEVmSVFBZ0FrSC8vLzhIVFFSQUlBSkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBM1FpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQURjaUFBY21zaUFFRUJkQ0FDSUFCQkZXcDJRUUZ4Y2tFY2FpRUFDeUFJSUFBMkFod2dDRUlBTndJUUlBQkJBblJCK0lNQmFpRUVBa0JCeklFQktBSUFJZ05CQVNBQWRDSUJjVVVFUUVITWdRRWdBU0FEY2pZQ0FDQUVJQWcyQWdBZ0NDQUVOZ0lZREFFTElBSkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQVFvQWdBaEFRTkFJQUVpQXlnQ0JFRjRjU0FDUmcwRElBQkJIWFloQVNBQVFRRjBJUUFnQXlBQlFRUnhhaUlFS0FJUUlnRU5BQXNnQkNBSU5nSVFJQWdnQXpZQ0dBc2dDQ0FJTmdJTUlBZ2dDRFlDQ0F3Q0MwSFVnUUVnQmtFb2F5SURRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlBYXlJQ05nSUFRZUNCQVNBQUlBRnFJZ0EyQWdBZ0FDQUNRUUZ5TmdJRUlBRWdBMnBCS0RZQ0JFSGtnUUZCc0lVQktBSUFOZ0lBSUFVZ0JFRW5JQVJyUVFkeFFRQWdCRUVuYTBFSGNSdHFRUzlySWdBZ0FDQUZRUkJxU1JzaUFrRWJOZ0lFSUFKQmtJVUJLUUlBTndJUUlBSkJpSVVCS1FJQU53SUlRWkNGQVNBQ1FRaHFOZ0lBUVl5RkFTQUdOZ0lBUVlpRkFTQUJOZ0lBUVpTRkFVRUFOZ0lBSUFKQkdHb2hBQU5BSUFCQkJ6WUNCQ0FBUVFocUlRRWdBRUVFYWlFQUlBRWdCRWtOQUFzZ0FpQUZSZzBESUFJZ0FpZ0NCRUYrY1RZQ0JDQUZJQUlnQldzaUJFRUJjallDQkNBQ0lBUTJBZ0FnQkVIL0FVMEVRQ0FFUVFOMklnQkJBM1JCOElFQmFpRUNBbjlCeUlFQktBSUFJZ0ZCQVNBQWRDSUFjVVVFUUVISWdRRWdBQ0FCY2pZQ0FDQUNEQUVMSUFJb0FnZ0xJUUFnQWlBRk5nSUlJQUFnQlRZQ0RDQUZJQUkyQWd3Z0JTQUFOZ0lJREFRTFFSOGhBQ0FGUWdBM0FoQWdCRUgvLy84SFRRUkFJQVJCQ0hZaUFDQUFRWUQrUDJwQkVIWkJDSEVpQW5RaUFDQUFRWURnSDJwQkVIWkJCSEVpQVhRaUFDQUFRWUNBRDJwQkVIWkJBbkVpQUhSQkQzWWdBU0FDY2lBQWNtc2lBRUVCZENBRUlBQkJGV3AyUVFGeGNrRWNhaUVBQ3lBRklBQTJBaHdnQUVFQ2RFSDRnd0ZxSVFNQ1FFSE1nUUVvQWdBaUFrRUJJQUIwSWdGeFJRUkFRY3lCQVNBQklBSnlOZ0lBSUFNZ0JUWUNBQ0FGSUFNMkFoZ01BUXNnQkVFQVFSa2dBRUVCZG1zZ0FFRWZSaHQwSVFBZ0F5Z0NBQ0VCQTBBZ0FTSUNLQUlFUVhoeElBUkdEUVFnQUVFZGRpRUJJQUJCQVhRaEFDQUNJQUZCQkhGcUlnTW9BaEFpQVEwQUN5QURJQVUyQWhBZ0JTQUNOZ0lZQ3lBRklBVTJBZ3dnQlNBRk5nSUlEQU1MSUFNb0FnZ2lBQ0FJTmdJTUlBTWdDRFlDQ0NBSVFRQTJBaGdnQ0NBRE5nSU1JQWdnQURZQ0NBc2dDVUVJYWlFQURBVUxJQUlvQWdnaUFDQUZOZ0lNSUFJZ0JUWUNDQ0FGUVFBMkFoZ2dCU0FDTmdJTUlBVWdBRFlDQ0F0QjFJRUJLQUlBSWdBZ0IwME5BRUhVZ1FFZ0FDQUhheUlCTmdJQVFlQ0JBVUhnZ1FFb0FnQWlBaUFIYWlJQU5nSUFJQUFnQVVFQmNqWUNCQ0FDSUFkQkEzSTJBZ1FnQWtFSWFpRUFEQU1MUWNTQkFVRXdOZ0lBUVFBaEFBd0NDd0pBSUFaRkRRQUNRQ0FFS0FJY0lnSkJBblJCK0lNQmFpSUFLQUlBSUFSR0JFQWdBQ0FCTmdJQUlBRU5BVUhNZ1FFZ0NVRitJQUozY1NJSk5nSUFEQUlMSUFaQkVFRVVJQVlvQWhBZ0JFWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0JqWUNHQ0FFS0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QUVLQUlVSWdCRkRRQWdBU0FBTmdJVUlBQWdBVFlDR0FzQ1FDQURRUTlOQkVBZ0JDQURJQWRxSWdCQkEzSTJBZ1FnQUNBRWFpSUFJQUFvQWdSQkFYSTJBZ1FNQVFzZ0JDQUhRUU55TmdJRUlBUWdCMm9pQlNBRFFRRnlOZ0lFSUFNZ0JXb2dBellDQUNBRFFmOEJUUVJBSUFOQkEzWWlBRUVEZEVId2dRRnFJUUlDZjBISWdRRW9BZ0FpQVVFQklBQjBJZ0J4UlFSQVFjaUJBU0FBSUFGeU5nSUFJQUlNQVFzZ0FpZ0NDQXNoQUNBQ0lBVTJBZ2dnQUNBRk5nSU1JQVVnQWpZQ0RDQUZJQUEyQWdnTUFRdEJIeUVBSUFOQi8vLy9CMDBFUUNBRFFRaDJJZ0FnQUVHQS9qOXFRUkIyUVFoeElnSjBJZ0FnQUVHQTRCOXFRUkIyUVFSeElnRjBJZ0FnQUVHQWdBOXFRUkIyUVFKeElnQjBRUTkySUFFZ0FuSWdBSEpySWdCQkFYUWdBeUFBUVJWcWRrRUJjWEpCSEdvaEFBc2dCU0FBTmdJY0lBVkNBRGNDRUNBQVFRSjBRZmlEQVdvaEFRSkFBa0FnQ1VFQklBQjBJZ0p4UlFSQVFjeUJBU0FDSUFseU5nSUFJQUVnQlRZQ0FBd0JDeUFEUVFCQkdTQUFRUUYyYXlBQVFSOUdHM1FoQUNBQktBSUFJUWNEUUNBSElnRW9BZ1JCZUhFZ0EwWU5BaUFBUVIxMklRSWdBRUVCZENFQUlBRWdBa0VFY1dvaUFpZ0NFQ0lIRFFBTElBSWdCVFlDRUFzZ0JTQUJOZ0lZSUFVZ0JUWUNEQ0FGSUFVMkFnZ01BUXNnQVNnQ0NDSUFJQVUyQWd3Z0FTQUZOZ0lJSUFWQkFEWUNHQ0FGSUFFMkFnd2dCU0FBTmdJSUN5QUVRUWhxSVFBTUFRc0NRQ0FJUlEwQUFrQWdBU2dDSENJQ1FRSjBRZmlEQVdvaUFDZ0NBQ0FCUmdSQUlBQWdCRFlDQUNBRURRRkJ6SUVCSUFsQmZpQUNkM0UyQWdBTUFnc2dDRUVRUVJRZ0NDZ0NFQ0FCUmh0cUlBUTJBZ0FnQkVVTkFRc2dCQ0FJTmdJWUlBRW9BaEFpQUFSQUlBUWdBRFlDRUNBQUlBUTJBaGdMSUFFb0FoUWlBRVVOQUNBRUlBQTJBaFFnQUNBRU5nSVlDd0pBSUFOQkQwMEVRQ0FCSUFNZ0Iyb2lBRUVEY2pZQ0JDQUFJQUZxSWdBZ0FDZ0NCRUVCY2pZQ0JBd0JDeUFCSUFkQkEzSTJBZ1FnQVNBSGFpSUNJQU5CQVhJMkFnUWdBaUFEYWlBRE5nSUFJQW9FUUNBS1FRTjJJZ0JCQTNSQjhJRUJhaUVGUWR5QkFTZ0NBQ0VFQW45QkFTQUFkQ0lBSUFaeFJRUkFRY2lCQVNBQUlBWnlOZ0lBSUFVTUFRc2dCU2dDQ0FzaEFDQUZJQVEyQWdnZ0FDQUVOZ0lNSUFRZ0JUWUNEQ0FFSUFBMkFnZ0xRZHlCQVNBQ05nSUFRZENCQVNBRE5nSUFDeUFCUVFocUlRQUxJQXRCRUdva0FDQUFDNmNCQVFSL0l3QkJJR3NpQVNRQUlBRkJBRFlDRENBQlFUYzJBZ2dnQVNBQktRTUlOd01BSUFGQkVHb2lBeUFCS1FJQU53SUVJQU1nQURZQ0FDTUFRUkJySWdJa0FDQUFLQUlBUVg5SEJFQWdBa0VJYWlJRUlBTVFlaG9nQWlBRUVIb2FBMEFnQUNnQ0FFRUJSZzBBQ3lBQUtBSUFSUVJBSUFCQkFUWUNBQ0FDUVRnUkFRQWdBRUYvTmdJQUN3c2dBa0VRYWlRQUlBQW9BZ1FoQUNBQlFTQnFKQUFnQUVFQmF3c2JBQ0FBUVFBMkFnUWdBRUhJL0FBMkFnQWdBRUdJMWdBMkFnQUxtQVlCQ1g4akFFRVFheUlJSkFBZ0FCRE5BU01BUVJCcklnSWtBQ0FDSUFBMkFnd2dDRUVJYWlJRklBSkJER29RTXlBQ1FSQnFKQUJCb0pVQkVGQWdBVTBFUUFKQVFhQ1ZBUkJRSWdJZ0FVRUJhaUlBU1FSQUl3QkJJR3NpQ1NRQUFrQWdBQ0FDYXlJR1FhQ1ZBUkJES0FJQVFhU1ZBU2dDQUd0QkFuVk5CRUFnQmhDV0Fnd0JDMEdnbFFFUWRDRUhJQWxCQ0dvaEFnSi9RYUNWQVJCUUlBWnFJUVFqQUVFUWF5SUFKQUFnQUNBRU5nSU1JQVFRZ0FJaUEwMEVRRUdnbFFFUWN5SUVJQU5CQVhaSkJFQWdBQ0FFUVFGME5nSUlJQUJCQ0dvZ0FFRU1haEIyS0FJQUlRTUxJQUJCRUdva0FDQUREQUVMRUJjQUN5RUFRYUNWQVJCUUlRcEJBQ0VESXdCQkVHc2lCQ1FBSUFSQkFEWUNEQ0FDUVF4cUlBUkJER29nQnhDTEFpQUFCRUFnQWlnQ0VDQUFFUDhCSVFNTElBSWdBellDQUNBQ0lBTWdDa0VDZEdvaUJ6WUNDQ0FDSUFjMkFnUWdBaENFQVNBRElBQkJBblJxTmdJQUlBUkJFR29rQUNNQVFSQnJJZ0FrQUNBQUlBSW9BZ2cyQWdBZ0FpZ0NDQ0VESUFBZ0FrRUlhallDQ0NBQUlBTWdCa0VDZEdvMkFnUWdBQ2dDQUNFREEwQWdBQ2dDQkNBRFJ3UkFJQUlvQWhBZ0FDZ0NBQkQ5QVNBQUlBQW9BZ0JCQkdvaUF6WUNBQXdCQ3dzZ0FDZ0NDQ0FBS0FJQU5nSUFJQUJCRUdva0FFR2dsUUVRa0FKQm9KVUJFSFJCb0pVQktBSUFRYVNWQVNnQ0FDQUNRUVJxSWdBUWhnSkJvSlVCSUFBUWRVR2tsUUVnQWtFSWFoQjFRYUNWQVJCRElBSVFoQUVRZFNBQ0lBSW9BZ1EyQWdCQm9KVUJFRkFRL2dFZ0FpZ0NCQ0VBQTBBZ0FDQUNLQUlJUndSQUlBSW9BaEFhSUFJZ0FpZ0NDRUVFYXpZQ0NBd0JDd3NnQWlnQ0FBUkFJQUlvQWhBZ0FpZ0NBQ0FDRUlRQktBSUFJQUlvQWdCclFRSjFFUHNCQ3dzZ0NVRWdhaVFBREFFTElBQWdBa2tFUUVHZ2xRRW9BZ0FnQUVFQ2RHb2hBRUdnbFFFUVVDRUNRYUNWQVNBQUVQb0JRYUNWQVNBQ0VKUUNDd3NMUWFDVkFTQUJFSGNvQWdBRVFFR2dsUUVnQVJCM0tBSUFFS01CQ3lBRkVLY0JJUUJCb0pVQklBRVFkeUFBTmdJQUlBVW9BZ0FoQUNBRlFRQTJBZ0FnQUFSQUlBQVFvd0VMSUFoQkVHb2tBQXNJQUNBQVFRQVFKd3N2QVFGL0l3QkJFR3NpQXlRQUlBTWdBVFlDRENBQUlBTkJER29RTXlBQVFRUnFJQUlRTXlBRFFSQnFKQUFnQUFzUUFDQUFLQUlBRVB3Q1FSaDBRUmgxQ3dZQUlBQVFFQXNLQUNBQUtBSUFFUGNDQ3cwQUlBQW9BZ0FRK3dJYUlBQUxTd0VDZnlNQVFSQnJJZ0VrQUNBQklBQVE4UUVoQUNNQVFSQnJJZ0lrQUNBQ1FRaHFJQUFvQWdRUWVpZ0NBRUVCT2dBQUlBQW9BZ2hCQVRvQUFDQUNRUkJxSkFBZ0FVRVFhaVFBQzNjQkEzOGpBRUVRYXlJQ0pBQWdBaUFBRVBFQklRQWpBRUVRYXlJREpBQWdBMEVJYWlBQUtBSUVFSG9vQWdBdEFBQkZCRUFDZndKQUlBQW9BZ2dpQUMwQUFDSUJRUUZIQkg4Z0FVRUNjUTBCSUFCQkFqb0FBRUVCQlVFQUN3d0JDeEFYQUFzaEFRc2dBMEVRYWlRQUlBSkJFR29rQUNBQkN3MEFJQUFvQWdBUTlnSWFJQUFMQ1FBZ0FDQUJFUDBDQ3lRQkFYOGdBQ2dDQUNFQ0lBQWdBVFlDQUNBQ0JFQWdBaUFBRUpVQktBSUFFUUVBQ3dzSkFDQUFJQUVRK0FJTEVRQWdBQ0FCSUFBb0FnQW9BaHdSQWdBTHZ3RUJBMzhnQUMwQUFFRWdjVVVFUUFKQUlBRWhBd0pBSUFJZ0FDSUJLQUlRSWdBRWZ5QUFCU0FCRU9nQkRRRWdBU2dDRUFzZ0FTZ0NGQ0lGYTBzRVFDQUJJQU1nQWlBQktBSWtFUVFBR2d3Q0N3SkFJQUVvQWxCQkFFZ05BQ0FDSVFBRFFDQUFJZ1JGRFFFZ0F5QUVRUUZySWdCcUxRQUFRUXBIRFFBTElBRWdBeUFFSUFFb0FpUVJCQUFnQkVrTkFTQURJQVJxSVFNZ0FpQUVheUVDSUFFb0FoUWhCUXNnQlNBRElBSVFRaG9nQVNBQktBSVVJQUpxTmdJVUN3c0xDM1VCQVg0Z0FDQUJJQVIrSUFJZ0EzNThJQU5DSUlnaUFpQUJRaUNJSWdSK2ZDQURRdi8vLy84UGd5SURJQUZDLy8vLy93K0RJZ0YrSWdWQ0lJZ2dBeUFFZm53aUEwSWdpSHdnQVNBQ2ZpQURRdi8vLy84UGczd2lBVUlnaUh3M0F3Z2dBQ0FGUXYvLy8vOFBneUFCUWlDR2hEY0RBQXREQVFGL0l3QkJFR3NpQlNRQUlBVWdBallDRENBRklBUTJBZ2dnQlNBRlFReHFFRkloQWlBQUlBRWdBeUFGS0FJSUVMVUJJUUFnQWhCUklBVkJFR29rQUNBQUM2RUJBUUovQWtBZ0FCQUpSU0FDSUFGclFRVkljZzBBSUFFZ0FoQ3NBU0FDUVFScklRUWdBQkFOSWdJZ0FCQUphaUVGQWtBRFFBSkFJQUlzQUFBaEFDQUJJQVJQRFFBZ0FFRUFUQ0FBUWY4QVRuSkZCRUFnQVNnQ0FDQUNMQUFBUncwREN5QUJRUVJxSVFFZ0FpQUZJQUpyUVFGS2FpRUNEQUVMQ3lBQVFRQk1JQUJCL3dCT2NnMEJJQUlzQUFBZ0JDZ0NBRUVCYTBzTkFRc2dBMEVFTmdJQUN3dHRBUUYvSXdCQmdBSnJJZ1VrQUNBRVFZREFCSEVnQWlBRFRISkZCRUFnQlNBQlFmOEJjU0FDSUFOcklnSkJnQUlnQWtHQUFra2lBUnNRUmhvZ0FVVUVRQU5BSUFBZ0JVR0FBaEFxSUFKQmdBSnJJZ0pCL3dGTERRQUxDeUFBSUFVZ0FoQXFDeUFGUVlBQ2FpUUFDMUFCQVg0Q1FDQURRY0FBY1FSQUlBRWdBMEZBYXEyR0lRSkNBQ0VCREFFTElBTkZEUUFnQWlBRHJTSUVoaUFCUWNBQUlBTnJyWWlFSVFJZ0FTQUVoaUVCQ3lBQUlBRTNBd0FnQUNBQ053TUlDMVVCQW44akFFRVFheUlDSkFBZ0FCQTFCRUFnQUNnQ0FDRURJQUFRZlJvZ0F4QVFDeUFBSUFFb0FnZzJBZ2dnQUNBQktRSUFOd0lBSUFGQkFCQTZJQUpCQURvQUR5QUJJQUpCRDJvUU5DQUNRUkJxSkFBTERBQWdBQ0FCRVAwQ1FRRnpDd29BSUFCQjlJZ0JFR1VMREFBZ0FDQUJLQUlBTmdJQUN3d0FJQUFnQVMwQUFEb0FBQXNLQUNBQUxRQUxRUWQyQ3d3QUlBQWdBUkQ0QWtFQmN3c1JBQ0FBSUFFZ0FTZ0NBQ2dDRkJFREFBc1BBQ0FBSUFBb0FnQW9BaEFSQUFBTENRQWdBQ0FCTmdJRUN3a0FJQUFnQVRvQUN3c0tBQ0FBUWV5SUFSQmxDOUVKQWdSL0JINGpBRUh3QUdzaUJTUUFJQVJDLy8vLy8vLy8vLy8vQUlNaENnSkFBa0FnQVVJQmZTSUxRbjlSSUFKQy8vLy8vLy8vLy8vL0FJTWlDU0FCSUF0V3JYeENBWDBpQzBMLy8vLy8vLysvLy84QVZpQUxRdi8vLy8vLy83Ly8vd0JSRzBVRVFDQURRZ0Y5SWd0Q2YxSWdDaUFESUF0V3JYeENBWDBpQzBMLy8vLy8vLysvLy84QVZDQUxRdi8vLy8vLy83Ly8vd0JSR3cwQkN5QUJVQ0FKUW9DQWdJQ0FnTUQvL3dCVUlBbENnSUNBZ0lDQXdQLy9BRkViUlFSQUlBSkNnSUNBZ0lDQUlJUWhCQ0FCSVFNTUFnc2dBMUFnQ2tLQWdJQ0FnSURBLy84QVZDQUtRb0NBZ0lDQWdNRC8vd0JSRzBVRVFDQUVRb0NBZ0lDQWdDQ0VJUVFNQWdzZ0FTQUpRb0NBZ0lDQWdNRC8vd0NGaEZBRVFFS0FnSUNBZ0lEZy8vOEFJQUlnQVNBRGhTQUNJQVNGUW9DQWdJQ0FnSUNBZ0grRmhGQWlCaHNoQkVJQUlBRWdCaHNoQXd3Q0N5QURJQXBDZ0lDQWdJQ0F3UC8vQUlXRVVBMEJJQUVnQ1lSUUJFQWdBeUFLaEVJQVVnMENJQUVnQTRNaEF5QUNJQVNESVFRTUFnc2dBeUFLaEZCRkRRQWdBU0VESUFJaEJBd0JDeUFESUFFZ0FTQURWQ0FKSUFwVUlBa2dDbEViSWdjYklRb2dCQ0FDSUFjYklndEMvLy8vLy8vL1A0TWhDU0FDSUFRZ0J4c2lBa0l3aUtkQi8vOEJjU0VJSUF0Q01JaW5RZi8vQVhFaUJrVUVRQ0FGUWVBQWFpQUtJQWtnQ2lBSklBbFFJZ1liZVNBR1FRWjByWHluSWdaQkQyc1FMeUFGS1FOb0lRa2dCU2tEWUNFS1FSQWdCbXNoQmdzZ0FTQURJQWNiSVFNZ0FrTC8vLy8vLy84L2d5RUVJQWhGQkVBZ0JVSFFBR29nQXlBRUlBTWdCQ0FFVUNJSEcza2dCMEVHZEsxOHB5SUhRUTlyRUM5QkVDQUhheUVJSUFVcEExZ2hCQ0FGS1FOUUlRTUxJQVJDQTRZZ0EwSTlpSVJDZ0lDQWdJQ0FnQVNFSVFRZ0NVSURoaUFLUWoySWhDRUpJQUlnQzRVaERBSitJQU5DQTRZaUFTQUdJQWhySWdkRkRRQWFJQWRCL3dCTEJFQkNBQ0VFUWdFTUFRc2dCVUZBYXlBQklBUkJnQUVnQjJzUUx5QUZRVEJxSUFFZ0JDQUhFSHdnQlNrRE9DRUVJQVVwQXpBZ0JTa0RRQ0FGS1FOSWhFSUFVcTJFQ3lFQ0lBbENnSUNBZ0lDQWdBU0VJUWtnQ2tJRGhpRURBa0FnREVJQVV3UkFJQU1nQW4waUFTQUpJQVI5SUFJZ0ExYXRmU0lFaEZBRVFFSUFJUU5DQUNFRURBTUxJQVJDLy8vLy8vLy8vd05XRFFFZ0JVRWdhaUFCSUFRZ0FTQUVJQVJRSWdjYmVTQUhRUVowclh5blFReHJJZ2NRTHlBR0lBZHJJUVlnQlNrREtDRUVJQVVwQXlBaEFRd0JDeUFDSUFOOElnRWdBbFN0SUFRZ0NYeDhJZ1JDZ0lDQWdJQ0FnQWlEVUEwQUlBRkNBWU1nQkVJL2hpQUJRZ0dJaElRaEFTQUdRUUZxSVFZZ0JFSUJpQ0VFQ3lBTFFvQ0FnSUNBZ0lDQWdIK0RJUUlnQmtILy93Rk9CRUFnQWtLQWdJQ0FnSURBLy84QWhDRUVRZ0FoQXd3QkMwRUFJUWNDUUNBR1FRQktCRUFnQmlFSERBRUxJQVZCRUdvZ0FTQUVJQVpCL3dCcUVDOGdCU0FCSUFSQkFTQUdheEI4SUFVcEF3QWdCU2tERUNBRktRTVloRUlBVXEyRUlRRWdCU2tEQ0NFRUN5QUJwMEVIY1NJR1FRUkxyU0FFUWoyR0lBRkNBNGlFSWdGOElnTWdBVlN0SUFSQ0E0aEMvLy8vLy8vL1A0TWdCNjFDTUlhRUlBS0VmQ0VFQWtBZ0JrRUVSZ1JBSUFRZ0EwSUJneUlCSUFOOElnTWdBVlN0ZkNFRURBRUxJQVpGRFFFTEN5QUFJQU0zQXdBZ0FDQUVOd01JSUFWQjhBQnFKQUFMRVFBZ0FDQUJJQUFvQWdBb0Fpd1JBZ0FMTFFBZ0FrVUVRQ0FBS0FJRUlBRW9BZ1JHRHdzZ0FDQUJSZ1JBUVFFUEN5QUFLQUlFSUFFb0FnUVF0Z0ZGQzJNQUlBSW9BZ1JCc0FGeElnSkJJRVlFUUNBQkR3c0NRQ0FDUVJCSERRQUNRQUpBSUFBdEFBQWlBa0VyYXc0REFBRUFBUXNnQUVFQmFnOExJQUpCTUVjZ0FTQUFhMEVDU0hJTkFDQUFMUUFCUVNCeVFmZ0FSdzBBSUFCQkFtb2hBQXNnQUFzbUFRRi9Jd0JCRUdzaUFTUUFJQUZCQ0dvZ0FCQU5FSG9vQWdBaEFDQUJRUkJxSkFBZ0FBdCtBZ0ovQVg0akFFRVFheUlESkFBZ0FBSitJQUZGQkVCQ0FBd0JDeUFESUFFZ0FVRWZkU0lDYWlBQ2N5SUNyVUlBSUFKbklnSkIwUUJxRUM4Z0F5a0RDRUtBZ0lDQWdJREFBSVZCbm9BQklBSnJyVUl3aG53Z0FVR0FnSUNBZUhHdFFpQ0doQ0VFSUFNcEF3QUxOd01BSUFBZ0JEY0RDQ0FEUVJCcUpBQUxnd1FCQTM4Z0FrR0FCRThFUUNBQUlBRWdBaEFGR2lBQUR3c2dBQ0FDYWlFREFrQWdBQ0FCYzBFRGNVVUVRQUpBSUFCQkEzRkZCRUFnQUNFQ0RBRUxJQUpCQUV3RVFDQUFJUUlNQVFzZ0FDRUNBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSkJBM0ZGRFFFZ0FpQURTUTBBQ3dzQ1FDQURRWHh4SWdSQndBQkpEUUFnQWlBRVFVQnFJZ1ZMRFFBRFFDQUNJQUVvQWdBMkFnQWdBaUFCS0FJRU5nSUVJQUlnQVNnQ0NEWUNDQ0FDSUFFb0FndzJBZ3dnQWlBQktBSVFOZ0lRSUFJZ0FTZ0NGRFlDRkNBQ0lBRW9BaGcyQWhnZ0FpQUJLQUljTmdJY0lBSWdBU2dDSURZQ0lDQUNJQUVvQWlRMkFpUWdBaUFCS0FJb05nSW9JQUlnQVNnQ0xEWUNMQ0FDSUFFb0FqQTJBakFnQWlBQktBSTBOZ0kwSUFJZ0FTZ0NPRFlDT0NBQ0lBRW9BancyQWp3Z0FVRkFheUVCSUFKQlFHc2lBaUFGVFEwQUN3c2dBaUFFVHcwQkEwQWdBaUFCS0FJQU5nSUFJQUZCQkdvaEFTQUNRUVJxSWdJZ0JFa05BQXNNQVFzZ0EwRUVTUVJBSUFBaEFnd0JDeUFBSUFOQkJHc2lCRXNFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUlnQVMwQUFUb0FBU0FDSUFFdEFBSTZBQUlnQWlBQkxRQURPZ0FESUFGQkJHb2hBU0FDUVFScUlnSWdCRTBOQUFzTElBSWdBMGtFUUFOQUlBSWdBUzBBQURvQUFDQUJRUUZxSVFFZ0FrRUJhaUlDSUFOSERRQUxDeUFBQ3djQUlBQkJDR29MSndFQmZ5QUNRUUJPQkg4Z0FDZ0NDQ0FDUWY4QmNVRUJkR292QVFBZ0FYRkJBRWNGSUFNTEN3b0FJQUJCTUd0QkNra0w4Z0lDQW44QmZnSkFJQUpGRFFBZ0FDQUJPZ0FBSUFBZ0Ftb2lBMEVCYXlBQk9nQUFJQUpCQTBrTkFDQUFJQUU2QUFJZ0FDQUJPZ0FCSUFOQkEyc2dBVG9BQUNBRFFRSnJJQUU2QUFBZ0FrRUhTUTBBSUFBZ0FUb0FBeUFEUVFScklBRTZBQUFnQWtFSlNRMEFJQUJCQUNBQWEwRURjU0lFYWlJRElBRkIvd0Z4UVlHQ2hBaHNJZ0UyQWdBZ0F5QUNJQVJyUVh4eElnUnFJZ0pCQkdzZ0FUWUNBQ0FFUVFsSkRRQWdBeUFCTmdJSUlBTWdBVFlDQkNBQ1FRaHJJQUUyQWdBZ0FrRU1heUFCTmdJQUlBUkJHVWtOQUNBRElBRTJBaGdnQXlBQk5nSVVJQU1nQVRZQ0VDQURJQUUyQWd3Z0FrRVFheUFCTmdJQUlBSkJGR3NnQVRZQ0FDQUNRUmhySUFFMkFnQWdBa0VjYXlBQk5nSUFJQVFnQTBFRWNVRVljaUlFYXlJQ1FTQkpEUUFnQWExQ2dZQ0FnQkIrSVFVZ0F5QUVhaUVCQTBBZ0FTQUZOd01ZSUFFZ0JUY0RFQ0FCSUFVM0F3Z2dBU0FGTndNQUlBRkJJR29oQVNBQ1FTQnJJZ0pCSDBzTkFBc0xJQUFMTndFQ2Z5TUFRUkJySWdJa0FBTkFJQUZCQTBjRVFDQUFJQUZCQW5ScVFRQTJBZ0FnQVVFQmFpRUJEQUVMQ3lBQ1FSQnFKQUFnQUFzUEFDQUFJQUFvQWdBb0Fnd1JBQUFMQndBZ0FCQUpSUXNSQUNBQUlBRWdBU2dDQUNnQ0hCRURBQXNSQUNBQUlBRWdBU2dDQUNnQ0dCRURBQXNRQUNBQUlBRkJnSUNBZ0hoeU5nSUlDd2tBSUFBZ0FUWUNBQXNUQUNBQUlBRWdBaUFBS0FJQUtBSU1FUVFBQ3dRQVFRQUxFQUFnQUNnQ0JDQUFLQUlBYTBFQ2RRc1NBQ0FBS0FJQUlnQUVRQ0FBRU5BQ0dnc0xFUUFnQUNBQktBSUFFTkFDTmdJQUlBQUxRUUVCZnlBQUlBRTNBM0FnQUNBQUtBSXNJQUFvQWdRaUFtdXNOd040SUFBZ0FWQWdBQ2dDQ0NJQUlBSnJyQ0FCVjNJRWZ5QUFCU0FDSUFHbmFnczJBbWdMSWdFQmZ5TUFRUkJySWdJa0FDQUFJQUVnQVJDZUFSRDFBU0FDUVJCcUpBQWdBQXNRQUNBQ0JFQWdBQ0FCSUFJUVFob0xDNTBCQVFSL0l3QkJFR3NpQnlRQUFrQWdBRVVOQUNBRUtBSU1JUVlnQWlBQmF5SUlRUUJLQkVBZ0FDQUJJQWdRZnlBSVJ3MEJDeUFHSUFNZ0FXc2lBV3RCQUNBQklBWklHeUlCUVFCS0JFQWdBQ0FISUFFZ0JSRHZBU0lGRUEwZ0FSQi9JUVlnQlJBS0dpQUJJQVpIRFFFTElBTWdBbXNpQVVFQVNnUkFJQUFnQWlBQkVIOGdBVWNOQVFzZ0JCRHVBU0FBSVFrTElBZEJFR29rQUNBSkMxVUJBbjhqQUVFUWF5SUNKQUFnQUJBMUJFQWdBQ2dDQUNFRElBQVFmUm9nQXhBUUN5QUFJQUVvQWdnMkFnZ2dBQ0FCS1FJQU53SUFJQUZCQUJBNklBSkJBRFlDRENBQklBSkJER29RTXlBQ1FSQnFKQUFMdkFFQkEzOGpBRUVRYXlJRkpBQWdCU0FCTmdJSVFRQWhBVUVHSVFZQ1FBSkFJQUFnQlVFSWFoQW9EUUJCQkNFR0lBTkJnQkFnQUJBaElnY1FUa1VOQUNBRElBY1Fod0VoQVFOQUFrQWdBQkFsR2lBQlFUQnJJUUVnQUNBRlFRaHFFRFpGSUFSQkFraHlEUUFnQTBHQUVDQUFFQ0VpQmhCT1JRMERJQVJCQVdzaEJDQURJQVlRaHdFZ0FVRUtiR29oQVF3QkN3dEJBaUVHSUFBZ0JVRUlhaEFvUlEwQkN5QUNJQUlvQWdBZ0JuSTJBZ0FMSUFWQkVHb2tBQ0FCQzd3QkFRTi9Jd0JCRUdzaUJTUUFJQVVnQVRZQ0NFRUFJUUZCQmlFR0FrQUNRQ0FBSUFWQkNHb1FKZzBBUVFRaEJpQURRWUFRSUFBUUh5SUhFRVJGRFFBZ0F5QUhFSWdCSVFFRFFBSkFJQUFRSWhvZ0FVRXdheUVCSUFBZ0JVRUlhaEF4UlNBRVFRSkljZzBBSUFOQmdCQWdBQkFmSWdZUVJFVU5BeUFFUVFGcklRUWdBeUFHRUlnQklBRkJDbXhxSVFFTUFRc0xRUUloQmlBQUlBVkJDR29RSmtVTkFRc2dBaUFDS0FJQUlBWnlOZ0lBQ3lBRlFSQnFKQUFnQVF1YUFRRURmeU1BUVJCcklnUWtBQ0FFSUFFMkFnd2dCQ0FETmdJSUlBUWdCRUVNYWhCU0lRWWdCQ2dDQ0NFREl3QkJFR3NpQVNRQUlBRWdBellDRENBQklBTTJBZ2hCZnlFRkFrQkJBRUVBSUFJZ0F4QzFBU0lEUVFCSURRQWdBQ0FEUVFGcUlnTVFHU0lBTmdJQUlBQkZEUUFnQUNBRElBSWdBU2dDREJDMUFTRUZDeUFCUVJCcUpBQWdCU0VBSUFZUVVTQUVRUkJxSkFBZ0FBc05BQ0FBS0FJQUlBRW9BZ0JIQ3k0QUFrQWdBQ2dDQkVIS0FIRWlBQVJBSUFCQndBQkdCRUJCQ0E4TElBQkJDRWNOQVVFUUR3dEJBQThMUVFvTCtRRUNBMzRDZnlNQVFSQnJJZ1VrQUFKK0lBRzlJZ05DLy8vLy8vLy8vLy8vQUlNaUFrS0FnSUNBZ0lDQUNIMUMvLy8vLy8vLy8rLy9BRmdFUUNBQ1FqeUdJUVFnQWtJRWlFS0FnSUNBZ0lDQWdEeDhEQUVMSUFKQ2dJQ0FnSUNBZ1BqL0FGb0VRQ0FEUWp5R0lRUWdBMElFaUVLQWdJQ0FnSURBLy84QWhBd0JDeUFDVUFSQVFnQU1BUXNnQlNBQ1FnQWdBNmRuUVNCcUlBSkNJSWluWnlBQ1FvQ0FnSUFRVkJzaUJrRXhhaEF2SUFVcEF3QWhCQ0FGS1FNSVFvQ0FnSUNBZ01BQWhVR00rQUFnQm11dFFqQ0doQXNoQWlBQUlBUTNBd0FnQUNBQ0lBTkNnSUNBZ0lDQWdJQ0FmNE9FTndNSUlBVkJFR29rQUFzSUFDQUFRZjhCY1FzSEFDQUFJQUZHQ3pNQkFYOGdBRUVCSUFBYklRQUNRQU5BSUFBUUdTSUJEUUZCaUpjQktBSUFJZ0VFUUNBQkVROEFEQUVMQ3hBQUFBc2dBUXZFQXdFRGZ5TUFRU0JySWdna0FDQUlJQUkyQWhBZ0NDQUJOZ0lZSUFoQkNHb2lBU0FERUE4Z0FSQTdJUWtnQVJBT0lBUkJBRFlDQUVFQUlRSUNRQU5BSUFZZ0IwWWdBbklOQVFKQUlBaEJHR29nQ0VFUWFoQW9EUUFDUUNBSklBWW9BZ0FRaHdGQkpVWUVRQ0FHUVFScUlnSWdCMFlOQWtFQUlRb0NmeUFKSUFJb0FnQVFod0VpQVVIRkFFWWdBVUgvQVhGQk1FWnlSUVJBSUFZaEFpQUJEQUVMSUFaQkNHb2dCMFlOQXlBQklRb2dDU0FHS0FJSUVJY0JDeUVCSUFnZ0FDQUlLQUlZSUFnb0FoQWdBeUFFSUFVZ0FTQUtJQUFvQWdBb0FpUVJEQUEyQWhnZ0FrRUlhaUVHREFFTElBbEJnTUFBSUFZb0FnQVFUZ1JBQTBBQ1FDQUhJQVpCQkdvaUJrWUVRQ0FISVFZTUFRc2dDVUdBd0FBZ0JpZ0NBQkJPRFFFTEN3TkFJQWhCR0dvZ0NFRVFhaEEyUlEwQ0lBbEJnTUFBSUFoQkdHb1FJUkJPUlEwQ0lBaEJHR29RSlJvTUFBc0FDeUFKSUFoQkdHb1FJUkFwSUFrZ0JpZ0NBQkFwUmdSQUlBWkJCR29oQmlBSVFSaHFFQ1VhREFFTElBUkJCRFlDQUFzZ0JDZ0NBQ0VDREFFTEN5QUVRUVEyQWdBTElBaEJHR29nQ0VFUWFoQW9CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUlLQUlZSVFBZ0NFRWdhaVFBSUFBTHhnTUJBMzhqQUVFZ2F5SUlKQUFnQ0NBQ05nSVFJQWdnQVRZQ0dDQUlRUWhxSWdFZ0F4QVBJQUVRTWlFSklBRVFEaUFFUVFBMkFnQkJBQ0VDQWtBRFFDQUdJQWRHSUFKeURRRUNRQ0FJUVJocUlBaEJFR29RSmcwQUFrQWdDU0FHTEFBQUVJZ0JRU1ZHQkVBZ0JrRUJhaUlDSUFkR0RRSkJBQ0VLQW44Z0NTQUNMQUFBRUlnQklnRkJ4UUJHSUFGQi93RnhRVEJHY2tVRVFDQUdJUUlnQVF3QkN5QUdRUUpxSUFkR0RRTWdBU0VLSUFrZ0Jpd0FBaENJQVFzaEFTQUlJQUFnQ0NnQ0dDQUlLQUlRSUFNZ0JDQUZJQUVnQ2lBQUtBSUFLQUlrRVF3QU5nSVlJQUpCQW1vaEJnd0JDeUFKUVlEQUFDQUdMQUFBRUVRRVFBTkFBa0FnQnlBR1FRRnFJZ1pHQkVBZ0J5RUdEQUVMSUFsQmdNQUFJQVlzQUFBUVJBMEJDd3NEUUNBSVFSaHFJQWhCRUdvUU1VVU5BaUFKUVlEQUFDQUlRUmhxRUI4UVJFVU5BaUFJUVJocUVDSWFEQUFMQUFzZ0NTQUlRUmhxRUI4UXN3RWdDU0FHTEFBQUVMTUJSZ1JBSUFaQkFXb2hCaUFJUVJocUVDSWFEQUVMSUFSQkJEWUNBQXNnQkNnQ0FDRUNEQUVMQ3lBRVFRUTJBZ0FMSUFoQkdHb2dDRUVRYWhBbUJFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBSUtBSVlJUUFnQ0VFZ2FpUUFJQUFMcWdFQkJIOGpBRUVRYXlJSUpBQUNRQ0FBUlEwQUlBUW9BZ3doQmlBQ0lBRnJJZ2RCQUVvRVFDQUFJQUVnQjBFQ2RTSUhFSDhnQjBjTkFRc2dCaUFESUFGclFRSjFJZ0ZyUVFBZ0FTQUdTQnNpQVVFQVNnUkFJQUFnQ0NBQklBVVF1Z0lpQlJBTklBRVFmeUVHSUFVUUNob2dBU0FHUncwQkN5QURJQUpySWdGQkFFb0VRQ0FBSUFJZ0FVRUNkU0lCRUg4Z0FVY05BUXNnQkJEdUFTQUFJUWtMSUFoQkVHb2tBQ0FKQ3hZQUlBQWdBU0FDSUFNZ0FDZ0NBQ2dDTUJFTEFCb0xRZ0VCZnlBQUtBSUFJUUlnQVJBYUlRQWdBa0VJYWlJQkVGQWdBRXNFZnlBQklBQVFkeWdDQUVFQVJ3VkJBQXRGQkVBUUZ3QUxJQUpCQ0dvZ0FCQjNLQUlBQ3pZQUlBSUVmeUFDQkVBRFFDQUFJQUVvQWdBMkFnQWdBRUVFYWlFQUlBRkJCR29oQVNBQ1FRRnJJZ0lOQUFzTFFRQUZJQUFMR2dzUEFDQUFJQUFvQWdBb0FpUVJBQUFMRVFBZ0FDQUJJQUVvQWdBb0FpQVJBd0FMRVFBZ0FDQUJJQUVvQWdBb0Fpd1JBd0FMREFBZ0FFR0Nob0FnTmdBQUN3Y0FJQUFRRVJvTEJBQWdBQXN1QVFGL0l3QkJFR3NpQVNRQUlBRkJDR29nQUJBTklBQVFDVUVDZEdvUWVpZ0NBQ0VBSUFGQkVHb2tBQ0FBQzZvQkFRRi9Ba0FnQTBHQUVIRkZEUUFnQWtVZ0EwSEtBSEVpQkVFSVJpQUVRY0FBUm5KeURRQWdBRUVyT2dBQUlBQkJBV29oQUFzZ0EwR0FCSEVFUUNBQVFTTTZBQUFnQUVFQmFpRUFDd05BSUFFdEFBQWlCQVJBSUFBZ0JEb0FBQ0FBUVFGcUlRQWdBVUVCYWlFQkRBRUxDeUFBQW45Qjd3QWdBMEhLQUhFaUFVSEFBRVlOQUJwQjJBQkIrQUFnQTBHQWdBRnhHeUFCUVFoR0RRQWFRZVFBUWZVQUlBSWJDem9BQUFzckFRRi9Jd0JCRUdzaUFTUUFJQUZCQ0dvZ0FCQU5JQUFRQ1dvUWVpZ0NBQ0VBSUFGQkVHb2tBQ0FBQ3hZQUlBQWdBU0FDSUFNZ0FDZ0NBQ2dDSUJFTEFCb0xFQUFnQUVFZ1JpQUFRUWxyUVFWSmNndFNBUUovUWVDQUFTZ0NBQ0lCSUFCQkEycEJmSEVpQW1vaEFBSkFJQUpCQUNBQUlBRk5HdzBBSUFBL0FFRVFkRXNFUUNBQUVBUkZEUUVMUWVDQUFTQUFOZ0lBSUFFUEMwSEVnUUZCTURZQ0FFRi9DeElBSUFBUVF5Z0NBQ0FBS0FJQWEwRUNkUXNIQUNBQVFSQnFDelVCQVg4akFFRVFheUlDSkFBZ0FpQUFLQUlBTmdJTUlBQWdBU2dDQURZQ0FDQUJJQUpCREdvb0FnQTJBZ0FnQWtFUWFpUUFDeVFCQW44akFFRVFheUlDSkFBZ0FDQUJFSUlDSVFNZ0FrRVFhaVFBSUFFZ0FDQURHd3NOQUNBQUtBSUFJQUZCQW5ScUN4WUFJQUFRTlFSQUlBQWdBUkE1RHdzZ0FDQUJFRG9MTEFBQ1FDQUFJQUZHRFFBRFFDQUFJQUZCQVdzaUFVOE5BU0FBSUFFUXNBSWdBRUVCYWlFQURBQUxBQXNMQ3dBZ0FDQUJOZ0lBSUFBTDJ3RUNBWDhDZmtFQklRUUNRQ0FBUWdCU0lBRkMvLy8vLy8vLy8vLy9BSU1pQlVLQWdJQ0FnSURBLy84QVZpQUZRb0NBZ0lDQWdNRC8vd0JSR3cwQUlBSkNBRklnQTBMLy8vLy8vLy8vLy84QWd5SUdRb0NBZ0lDQWdNRC8vd0JXSUFaQ2dJQ0FnSUNBd1AvL0FGRWJEUUFnQUNBQ2hDQUZJQWFFaEZBRVFFRUFEd3NnQVNBRGcwSUFXUVJBUVg4aEJDQUFJQUpVSUFFZ0ExTWdBU0FEVVJzTkFTQUFJQUtGSUFFZ0E0V0VRZ0JTRHd0QmZ5RUVJQUFnQWxZZ0FTQURWU0FCSUFOUkd3MEFJQUFnQW9VZ0FTQURoWVJDQUZJaEJBc2dCQXRRQVFGK0FrQWdBMEhBQUhFRVFDQUNJQU5CUUdxdGlDRUJRZ0FoQWd3QkN5QURSUTBBSUFKQndBQWdBMnV0aGlBQklBT3RJZ1NJaENFQklBSWdCSWdoQWdzZ0FDQUJOd01BSUFBZ0FqY0RDQXNPQUNBQUtBSUlRZi8vLy84SGNRc0tBQ0FBRU9FQkdpQUFDeE1BSUFBZ0FTQUNJQUFvQWdBb0FqQVJCQUFMSmdBZ0FDQUFLQUlZUlNBQUtBSVFJQUZ5Y2lJQk5nSVFJQUFvQWhRZ0FYRUVRQkFYQUFzTENRQWdBQ0FCRVB3QkN5UUFJQUJCQWs4RWZ5QUFRUVJxUVh4eElnQWdBRUVCYXlJQUlBQkJBa1liQlVFQkN3dVZBUUVGZnlNQVFSQnJJZ1VrQUNBQkVOSUNJUUlqQUVFUWF5SURKQUFDUUNBQ1FlLy8vLzhEVFFSQUFrQWdBa0VCVFFSQUlBQWdBaEE2SUFBaEJBd0JDeUFBSUFBZ0FoQ0NBVUVCYWlJR0VJRUJJZ1FRVFNBQUlBWVFUQ0FBSUFJUU9Rc2dCQ0FCSUFJUVppQURRUUEyQWd3Z0JDQUNRUUowYWlBRFFReHFFRE1nQTBFUWFpUUFEQUVMRUJjQUN5QUZRUkJxSkFBTEJ3QWdBRUVNYWdzUEFDQUFFRU1vQWdBZ0FDZ0NBR3NMeEFFQkJuOGpBRUVRYXlJRUpBQWdBQkNWQVNnQ0FDRUZBbjhnQWlnQ0FDQUFLQUlBYXlJRFFmLy8vLzhIU1FSQUlBTkJBWFFNQVF0QmZ3c2lBMEVFSUFNYklRTWdBU2dDQUNFR0lBQW9BZ0FoQnlBRlFUWkdCSDlCQUFVZ0FDZ0NBQXNnQXhDZEFTSUlCRUFnQlVFMlJ3UkFJQUFRcHdFYUN5QUVRVFUyQWdRZ0FDQUVRUWhxSUFnZ0JFRUVhaEFlSWdVUXBBSWdCUkFkSUFFZ0FDZ0NBQ0FHSUFkcmFqWUNBQ0FDSUFBb0FnQWdBMEY4Y1dvMkFnQWdCRUVRYWlRQUR3c1FGd0FMRXdBZ0FDQUJRUUFnQUNnQ0FDZ0NOQkVFQUFzVEFDQUFJQUZCQUNBQUtBSUFLQUlrRVFRQUN3MEFJQUFvQWdRZ0FDZ0NBR3NMOGdJQkFuOGpBRUVRYXlJS0pBQWdDaUFBTmdJTUFrQUNRQUpBSUFNb0FnQWdBa2NOQUVFcklRc2dBQ0FKS0FKZ1J3UkFRUzBoQ3lBSktBSmtJQUJIRFFFTElBTWdBa0VCYWpZQ0FDQUNJQXM2QUFBTUFRc2dCaEFKUlNBQUlBVkhja1VFUUVFQUlRQWdDQ2dDQUNJQklBZHJRWjhCU2cwQ0lBUW9BZ0FoQUNBSUlBRkJCR28yQWdBZ0FTQUFOZ0lBREFFTFFYOGhBQ0FKSUFsQjZBQnFJQXBCREdvUTBnRWdDV3NpQmtIY0FFb05BU0FHUVFKMUlRVUNRQUpBQWtBZ0FVRUlhdzREQUFJQUFRc2dBU0FGU2cwQkRBTUxJQUZCRUVjZ0JrSFlBRWh5RFFBZ0F5Z0NBQ0lCSUFKR0lBRWdBbXRCQWtweURRSWdBVUVCYXkwQUFFRXdSdzBDUVFBaEFDQUVRUUEyQWdBZ0F5QUJRUUZxTmdJQUlBRWdCVUhRMEFCcUxRQUFPZ0FBREFJTElBTWdBeWdDQUNJQVFRRnFOZ0lBSUFBZ0JVSFEwQUJxTFFBQU9nQUFJQVFnQkNnQ0FFRUJhallDQUVFQUlRQU1BUXRCQUNFQUlBUkJBRFlDQUFzZ0NrRVFhaVFBSUFBTENnQWdBRUdraVFFUVpRdERBUUYvSUFCQm5DWW9BZ0FpQVRZQ0FDQUFJQUZCREdzb0FnQnFRYndtS0FJQU5nSUFJQUJCd0NZb0FnQTJBZ2dnQUVFTWFoRFJBUm9nQUVGQWF4QitHaUFBQys0Q0FRTi9Jd0JCRUdzaUNpUUFJQW9nQURvQUR3SkFBa0FDUUNBREtBSUFJQUpIRFFCQkt5RUxJQUJCL3dGeElnd2dDUzBBR0VjRVFFRXRJUXNnQ1MwQUdTQU1SdzBCQ3lBRElBSkJBV28yQWdBZ0FpQUxPZ0FBREFFTElBWVFDVVVnQUNBRlIzSkZCRUJCQUNFQUlBZ29BZ0FpQVNBSGEwR2ZBVW9OQWlBRUtBSUFJUUFnQ0NBQlFRUnFOZ0lBSUFFZ0FEWUNBQXdCQzBGL0lRQWdDU0FKUVJwcUlBcEJEMm9RMVFFZ0NXc2lCVUVYU2cwQkFrQUNRQUpBSUFGQkNHc09Bd0FDQUFFTElBRWdCVW9OQVF3REN5QUJRUkJISUFWQkZraHlEUUFnQXlnQ0FDSUJJQUpHSUFFZ0FtdEJBa3B5RFFJZ0FVRUJheTBBQUVFd1J3MENRUUFoQUNBRVFRQTJBZ0FnQXlBQlFRRnFOZ0lBSUFFZ0JVSFEwQUJxTFFBQU9nQUFEQUlMSUFNZ0F5Z0NBQ0lBUVFGcU5nSUFJQUFnQlVIUTBBQnFMUUFBT2dBQUlBUWdCQ2dDQUVFQmFqWUNBRUVBSVFBTUFRdEJBQ0VBSUFSQkFEWUNBQXNnQ2tFUWFpUUFJQUFMQ2dBZ0FFR2NpUUVRWlF1REFRSURmd0YrQWtBZ0FFS0FnSUNBRUZRRVFDQUFJUVVNQVFzRFFDQUJRUUZySWdFZ0FDQUFRZ3FBSWdWQ0NuNTlwMEV3Y2pvQUFDQUFRdi8vLy8rZkFWWWhBaUFGSVFBZ0FnMEFDd3NnQmFjaUFnUkFBMEFnQVVFQmF5SUJJQUlnQWtFS2JpSURRUXBzYTBFd2Nqb0FBQ0FDUVFsTElRUWdBeUVDSUFRTkFBc0xJQUVMWXdJQmZ3RitJd0JCRUdzaUFpUUFJQUFDZmlBQlJRUkFRZ0FNQVFzZ0FpQUJyVUlBSUFGbklnRkIwUUJxRUM4Z0Fpa0RDRUtBZ0lDQWdJREFBSVZCbm9BQklBRnJyVUl3aG53aEF5QUNLUU1BQ3pjREFDQUFJQU0zQXdnZ0FrRVFhaVFBQ3lRQUlBQkJDMDhFZnlBQVFSQnFRWEJ4SWdBZ0FFRUJheUlBSUFCQkMwWWJCVUVLQ3dzcEFDQUFJQUZCQ0hSQmdJRDhCM0VnQVVFWWRISWdBVUVJZGtHQS9nTnhJQUZCR0haeWNqWUFBQXNwQUNBQUtBQUFJZ0JCR0hRZ0FFRUlkRUdBZ1B3SGNYSWdBRUVJZGtHQS9nTnhJQUJCR0haeWNnc1BBQ0FBSUFBb0FnQkJCR28yQWdBTEJ3QWdBRUVFYWdzUEFDQUFJQUFvQWdCQkFXbzJBZ0FMTndFQ2Z5TUFRUkJySWdNa0FDQURRUWhxSWdRZ0FSQVBJQUlnQkJDTEFTSUJFRGcyQWdBZ0FDQUJFRGNnQkJBT0lBTkJFR29rQUFzMUFRSi9Jd0JCRUdzaUFpUUFJQUpCQ0dvaUF5QUFFQThnQXhBN1FkRFFBRUhxMEFBZ0FSQmtJQU1RRGlBQ1FSQnFKQUFnQVFzM0FRSi9Jd0JCRUdzaUF5UUFJQU5CQ0dvaUJDQUJFQThnQWlBRUVJNEJJZ0VRT0RvQUFDQUFJQUVRTnlBRUVBNGdBMEVRYWlRQUN4Y0FJQUFnQXpZQ0VDQUFJQUkyQWd3Z0FDQUJOZ0lJQ3dvQUlBQkJHSFJCR0hVTFFnQWdBQ0FBS0FJQUlBRW9BZ0J6TmdJQUlBQWdBQ2dDQkNBQktBSUVjellDQkNBQUlBQW9BZ2dnQVNnQ0NITTJBZ2dnQUNBQUtBSU1JQUVvQWd4ek5nSU1DNXdJQVF0L0lBQkZCRUFnQVJBWkR3c2dBVUZBVHdSQVFjU0JBVUV3TmdJQVFRQVBDd0ovUVJBZ0FVRUxha0Y0Y1NBQlFRdEpHeUVHSUFCQkNHc2lCU2dDQkNJSlFYaHhJUVFDUUNBSlFRTnhSUVJBUVFBZ0JrR0FBa2tOQWhvZ0JrRUVhaUFFVFFSQUlBVWhBaUFFSUFaclFhaUZBU2dDQUVFQmRFME5BZ3RCQUF3Q0N5QUVJQVZxSVFjQ1FDQUVJQVpQQkVBZ0JDQUdheUlEUVJCSkRRRWdCU0FKUVFGeElBWnlRUUp5TmdJRUlBVWdCbW9pQWlBRFFRTnlOZ0lFSUFjZ0J5Z0NCRUVCY2pZQ0JDQUNJQU1RN0FFTUFRc2dCMEhnZ1FFb0FnQkdCRUJCMUlFQktBSUFJQVJxSWdRZ0JrME5BaUFGSUFsQkFYRWdCbkpCQW5JMkFnUWdCU0FHYWlJRElBUWdCbXNpQWtFQmNqWUNCRUhVZ1FFZ0FqWUNBRUhnZ1FFZ0F6WUNBQXdCQ3lBSFFkeUJBU2dDQUVZRVFFSFFnUUVvQWdBZ0JHb2lBeUFHU1EwQ0FrQWdBeUFHYXlJQ1FSQlBCRUFnQlNBSlFRRnhJQVp5UVFKeU5nSUVJQVVnQm1vaUJDQUNRUUZ5TmdJRUlBTWdCV29pQXlBQ05nSUFJQU1nQXlnQ0JFRitjVFlDQkF3QkN5QUZJQWxCQVhFZ0EzSkJBbkkyQWdRZ0F5QUZhaUlDSUFJb0FnUkJBWEkyQWdSQkFDRUNRUUFoQkF0QjNJRUJJQVEyQWdCQjBJRUJJQUkyQWdBTUFRc2dCeWdDQkNJRFFRSnhEUUVnQTBGNGNTQUVhaUlLSUFaSkRRRWdDaUFHYXlFTUFrQWdBMEgvQVUwRVFDQUhLQUlJSWdRZ0EwRURkaUlDUVFOMFFmQ0JBV3BHR2lBRUlBY29BZ3dpQTBZRVFFSElnUUZCeUlFQktBSUFRWDRnQW5keE5nSUFEQUlMSUFRZ0F6WUNEQ0FESUFRMkFnZ01BUXNnQnlnQ0dDRUxBa0FnQnlBSEtBSU1JZ2hIQkVBZ0J5Z0NDQ0lDUWRpQkFTZ0NBRWthSUFJZ0NEWUNEQ0FJSUFJMkFnZ01BUXNDUUNBSFFSUnFJZ1FvQWdBaUFnMEFJQWRCRUdvaUJDZ0NBQ0lDRFFCQkFDRUlEQUVMQTBBZ0JDRURJQUlpQ0VFVWFpSUVLQUlBSWdJTkFDQUlRUkJxSVFRZ0NDZ0NFQ0lDRFFBTElBTkJBRFlDQUFzZ0MwVU5BQUpBSUFjZ0J5Z0NIQ0lEUVFKMFFmaURBV29pQWlnQ0FFWUVRQ0FDSUFnMkFnQWdDQTBCUWN5QkFVSE1nUUVvQWdCQmZpQURkM0UyQWdBTUFnc2dDMEVRUVJRZ0N5Z0NFQ0FIUmh0cUlBZzJBZ0FnQ0VVTkFRc2dDQ0FMTmdJWUlBY29BaEFpQWdSQUlBZ2dBallDRUNBQ0lBZzJBaGdMSUFjb0FoUWlBa1VOQUNBSUlBSTJBaFFnQWlBSU5nSVlDeUFNUVE5TkJFQWdCU0FKUVFGeElBcHlRUUp5TmdJRUlBVWdDbW9pQWlBQ0tBSUVRUUZ5TmdJRURBRUxJQVVnQ1VFQmNTQUdja0VDY2pZQ0JDQUZJQVpxSWdNZ0RFRURjallDQkNBRklBcHFJZ0lnQWlnQ0JFRUJjallDQkNBRElBd1E3QUVMSUFVaEFnc2dBZ3NpQWdSQUlBSkJDR29QQ3lBQkVCa2lCVVVFUUVFQUR3c2dCU0FBUVh4QmVDQUFRUVJyS0FJQUlnSkJBM0ViSUFKQmVIRnFJZ0lnQVNBQklBSkxHeEJDR2lBQUVCQWdCUXQvQVFOL0lBQWhBUUpBSUFCQkEzRUVRQU5BSUFFdEFBQkZEUUlnQVVFQmFpSUJRUU54RFFBTEN3TkFJQUVpQWtFRWFpRUJJQUlvQWdBaUEwRi9jeUFEUVlHQ2hBaHJjVUdBZ1lLRWVIRkZEUUFMSUFOQi93RnhSUVJBSUFJZ0FHc1BDd05BSUFJdEFBRWhBeUFDUVFGcUlnRWhBaUFERFFBTEN5QUJJQUJyQzMwQkEzOUJHQ0VDQWtBQ1FDQUFJQUZ5UVFOeERRQURRQ0FBS0FJQUlBRW9BZ0JIRFFFZ0FVRUVhaUVCSUFCQkJHb2hBQ0FDUVFScklnSkJBMHNOQUFzZ0FrVU5BUXNEUUNBQUxRQUFJZ01nQVMwQUFDSUVSZ1JBSUFGQkFXb2hBU0FBUVFGcUlRQWdBa0VCYXlJQ0RRRU1BZ3NMSUFNZ0JHc1BDMEVBQzBrQkFuOGdBQ2dDQkNJR1FRaDFJUVVnQmtFQmNRUkFJQUlvQWdBZ0JSREVBU0VGQ3lBQUtBSUFJZ0FnQVNBQ0lBVnFJQU5CQWlBR1FRSnhHeUFFSUFBb0FnQW9BaGdSQ2dBTHRnRUJBMzhqQUVFUWF5SURKQUFnQXlBQk9nQVBBa0FDUUFKQUFrQWdBQkExQkVBZ0FCQjlJUUVnQUNnQ0JDSUVJQUZCQVdzaUFrWU5BUXdEQzBFS0lRUkJDaUVDSUFBdEFBc2lBVUVLUncwQkN5QUFJQUpCQVNBQ0lBSVF5QUVnQkNFQklBQVFOUTBCQ3lBQUlRSWdBQ0FCUVFGcUVEb01BUXNnQUNnQ0FDRUNJQUFnQkVFQmFoQTVJQVFoQVFzZ0FTQUNhaUlBSUFOQkQyb1FOQ0FEUVFBNkFBNGdBRUVCYWlBRFFRNXFFRFFnQTBFUWFpUUFDeVFCQW44akFFRVFheUlDSkFBZ0FTQUFFSUlDSVFNZ0FrRVFhaVFBSUFFZ0FDQURHd3NkQUNBQVFRUnFFSkVDUVg5R0JFQWdBQ0FBS0FJQUtBSUlFUUVBQ3dza0FDQUFFUGdCSVFBZ0FSRDRBU0FBYXlJQkJFQWdBaUFBSUFFUTZ3RUxJQUVnQW1vTEVRQWdBQ0FCSUFFb0FnQW9BaWdSQXdBTHF5d0JFWDhnQUNnQzhBRWhFaUFBS0FJRUlBRW9BQVFpQkVFWWRDQUVRUWgwUVlDQS9BZHhjaUFFUVFoMlFZRCtBM0VnQkVFWWRuSnljeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFZZ0FDZ0NDQ0FCS0FBSUlnVkJHSFFnQlVFSWRFR0FnUHdIY1hJZ0JVRUlka0dBL2dOeElBVkJHSFp5Y25NaUJVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUlJQUFvQWd3Z0FTZ0FEQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSnpJZ05CL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQnlBRlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRa2dBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VLSUFBb0FnQWdBU2dBQUNJQlFSaDBJQUZCQ0hSQmdJRDhCM0Z5SUFGQkNIWkJnUDREY1NBQlFSaDJjbkp6SWdGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEN5QURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEaUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVE4Z0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVFJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRVNBQUtBSVVJQXNnQ2lBSklBUkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VKSUFBb0FoZ2dEaUFOSUF3Z0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUZRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUW9nQUNnQ0hDQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDeUFGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVF3Z0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU5JQUFvQWhBZ0J5QUlJQVlnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRWWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VJSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEJ5QUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NKQ0FHSUEwZ0RDQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1JCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBQUtBSW9JQTRnQnlBSUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VJSUFBb0Fpd2dFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFTUlBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hEU0FBS0FJZ0lBc2dDaUFKSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUFVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUpJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ2lBQlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRc2dCRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VPSUFGQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaER5QUVRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUkFnQlVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFUklBQW9BalFnQ1NBTklBd2dCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFrZ0FDZ0NPQ0FPSUFzZ0NpQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1ZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQUtBSThJQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQUNnQ01DQUhJQWdnQmlBQlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hCaUFEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFnZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUhJQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRGlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlROGdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VRSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEVTQUFLQUpFSUFZZ0RTQU1JQVJCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFR0lBQW9Ba2dnRGlBSElBZ2dCVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFnZ0FDZ0NUQ0FSSUJBZ0R5QURRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ05CL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQnlBRlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRd2dBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VOSUFBb0FrQWdDeUFLSUFrZ0FVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUJRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWtnQTBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFS0lBRkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDeUFFUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVE0Z0FVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRVBJQVJCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRUNBRlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlSRWdBQ2dDVkNBSklBMGdEQ0FFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdSQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaENTQUFLQUpZSUE0Z0N5QUtJQVZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQlVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFS0lBQW9BbHdnRVNBUUlBOGdBMEVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFzZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRU1JQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRFNBQUtBSlFJQWNnQ0NBR0lBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VHSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaENDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUWNnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQW1RZ0JpQU5JQXdnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRWWdBQ2dDYUNBT0lBY2dDQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENDQUFLQUpzSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFSElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0FDZ0NZQ0FMSUFvZ0NTQUJRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ0ZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ1NBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRb2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VMSUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FKMElBa2dEU0FNSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUpJQUFvQW5nZ0RpQUxJQW9nQlVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBQ2dDZkNBUklCQWdEeUFEUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdOQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEN5QUZRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBQW9BbkFnQnlBSUlBWWdBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlCUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFZZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUhJQUZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoRGlBRVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlROGdBVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VRSUFSQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEVTQUZRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUk1nQUNnQ2hBRWdCaUFOSUF3Z0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUdRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQUFvQW9BQklBc2dDaUFKSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUNFRVdka0g4QjNGQmdBaHFLQUlBY3lBQUtBS0lBU0FQSUE0Z0J5QUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ2RCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFBb0Fvd0JJQk1nRVNBUUlBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDSE1nQUNnQ2tBRnpJUUVnQjBFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NBR1FSWjJRZndIY1VHQUNHb29BZ0J6SUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBaEIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBaHpJQUFvQXBRQmN5RUVJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQjBFV2RrSDhCM0ZCZ0FocUtBSUFjeUFJUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJY3lBR1FmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUtZQVhNaEJRSi9JQWhCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjeUFHUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJY3lBSFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUtjQVhNaUF5QVNRUXRJRFFBYUlBUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDQ0FGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFjZ0EwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUpJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQXFRQklBc2dDaUFHSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJrRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUFLQUtnQVNBSklBY2dDQ0FCUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdoQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQUNnQ3FBRWdEaUFOSUF3Z0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUhRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUljeUFBS0FLc0FTQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBaHpJQUFvQXJBQmN5RUJJQWRCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdnQmtFV2RrSDhCM0ZCZ0FocUtBSUFjeUFEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJY3lBSVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUswQVhNaEJDQURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQWRCRm5aQi9BZHhRWUFJYWlnQ0FITWdDRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQmtIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0N1QUZ6SVFVZ0NFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQURRUloyUWZ3SGNVR0FDR29vQWdCeklBWkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWRCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0Fyd0JjeUlESUJKQkRVZ05BQm9nQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hCeUFEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0N4QUVnQ3lBS0lBWWdCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlHUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFBb0FzQUJJQWtnQnlBSUlBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlDRUVXZGtIOEIzRkJnQWhxS0FJQWN5QUFLQUxJQVNBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdkQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBQW9Bc3dCSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0MwQUZ6SVFFZ0IwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUdRUloyUWZ3SGNVR0FDR29vQWdCeklBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWhCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0F0UUJjeUVFSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0IwRVdka0g4QjNGQmdBaHFLQUlBY3lBSVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSWN5QUdRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FMWUFYTWhCU0FJUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQmtFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDM0FGekN5RURJQUlnQUNBU1FRUjBhaUlBS0FJQUlBTkIvd0Z4UVFKMFFZQUlhaTBBQVNBQlFSWjJRZndIY1VHQUNHb29BZ0JCQ0hSQmdJQ0FlSEVnQkVFT2RrSDhCM0ZCZ0FocUxRQUNRUkIwY2lBRlFRWjJRZndIY1VHQUNHb3RBQUZCQ0hSeWNuTWlFa0VZZENBU1FRaDBRWUNBL0FkeGNpQVNRUWgyUVlEK0EzRWdFa0VZZG5KeU5nQUFJQUlnQUNnQ0JDQUJRZjhCY1VFQ2RFR0FDR290QUFFZ0JFRVdka0g4QjNGQmdBaHFLQUlBUVFoMFFZQ0FnSGh4SUFWQkRuWkIvQWR4UVlBSWFpMEFBa0VRZEhJZ0EwRUdka0g4QjNGQmdBaHFMUUFCUVFoMGNuSnpJaEpCR0hRZ0VrRUlkRUdBZ1B3SGNYSWdFa0VJZGtHQS9nTnhJQkpCR0haeWNqWUFCQ0FDSUFBb0FnZ2dCRUgvQVhGQkFuUkJnQWhxTFFBQklBVkJGblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBRFFRNTJRZndIY1VHQUNHb3RBQUpCRUhSeUlBRkJCblpCL0FkeFFZQUlhaTBBQVVFSWRISnljeUlTUVJoMElCSkJDSFJCZ0lEOEIzRnlJQkpCQ0haQmdQNERjU0FTUVJoMmNuSTJBQWdnQWlBQUtBSU1JQVZCL3dGeFFRSjBRWUFJYWkwQUFTQURRUloyUWZ3SGNVR0FDR29vQWdCQkNIUkJnSUNBZUhFZ0FVRU9ka0g4QjNGQmdBaHFMUUFDUVJCMGNpQUVRUVoyUWZ3SGNVR0FDR290QUFGQkNIUnljbk1pQUVFWWRDQUFRUWgwUVlDQS9BZHhjaUFBUVFoMlFZRCtBM0VnQUVFWWRuSnlOZ0FNQ3hRQkFYOGdBQ2dDQUNFQklBQkJBRFlDQUNBQkN3NEFJQUFnQVNnQ0FEWUNBQ0FBQ3djQUlBQVFSeG9MQ0FCQi8vLy8vd2NMQlFCQi93QUxLd0FDUUNBQUlBRkdEUUFEUUNBQUlBRkJCR3NpQVU4TkFTQUFJQUVRZFNBQVFRUnFJUUFNQUFzQUN3dlVBd0VJZnlNQVFSQnJJZ29rQUNBR0VEc2hDeUFLSUFZUWl3RWlCaEEzQWtBZ0NoQkpCRUFnQ3lBQUlBSWdBeEJrSUFVZ0F5QUNJQUJyUVFKMGFpSUdOZ0lBREFFTElBVWdBellDQUFKQUFrQWdBQ0lJTFFBQUlnZEJLMnNPQXdBQkFBRUxJQXNnQjBFWWRFRVlkUkE5SVFnZ0JTQUZLQUlBSWdkQkJHbzJBZ0FnQnlBSU5nSUFJQUJCQVdvaENBc0NRQ0FDSUFoclFRSklEUUFnQ0MwQUFFRXdSdzBBSUFndEFBRkJJSEpCK0FCSERRQWdDMEV3RUQwaEJ5QUZJQVVvQWdBaUNVRUVhallDQUNBSklBYzJBZ0FnQ3lBSUxBQUJFRDBoQnlBRklBVW9BZ0FpQ1VFRWFqWUNBQ0FKSUFjMkFnQWdDRUVDYWlFSUN5QUlJQUlRZVVFQUlRa2dCaEE0SVF4QkFDRUhJQWdoQmdOL0lBSWdCazBFZnlBRElBZ2dBR3RCQW5ScUlBVW9BZ0FRckFFZ0JTZ0NBQVVDUUNBS0lBY1FDeTBBQUVVTkFDQUpJQW9nQnhBTExBQUFSdzBBSUFVZ0JTZ0NBQ0lKUVFScU5nSUFJQWtnRERZQ0FDQUhJQWNnQ2hBSlFRRnJTV29oQjBFQUlRa0xJQXNnQml3QUFCQTlJUTBnQlNBRktBSUFJZzVCQkdvMkFnQWdEaUFOTmdJQUlBWkJBV29oQmlBSlFRRnFJUWtNQVFzTElRWUxJQVFnQmlBRElBRWdBR3RCQW5ScUlBRWdBa1liTmdJQUlBb1FDaG9nQ2tFUWFpUUFDOUFCQVFKL0lBSkJnQkJ4QkVBZ0FFRXJPZ0FBSUFCQkFXb2hBQXNnQWtHQUNIRUVRQ0FBUVNNNkFBQWdBRUVCYWlFQUN5QUNRWVFDY1NJRFFZUUNSd1JBSUFCQnJ0UUFPd0FBSUFCQkFtb2hBQXNnQWtHQWdBRnhJUUlEUUNBQkxRQUFJZ1FFUUNBQUlBUTZBQUFnQUVFQmFpRUFJQUZCQVdvaEFRd0JDd3NnQUFKL0FrQWdBMEdBQWtjRVFDQURRUVJIRFFGQnhnQkI1Z0FnQWhzTUFndEJ4UUJCNVFBZ0Foc01BUXRCd1FCQjRRQWdBaHNnQTBHRUFrWU5BQnBCeHdCQjV3QWdBaHNMT2dBQUlBTkJoQUpIQzhvREFRaC9Jd0JCRUdzaUNpUUFJQVlRTWlFTElBb2dCaENPQVNJR0VEY0NRQ0FLRUVrRVFDQUxJQUFnQWlBREVIQWdCU0FESUFJZ0FHdHFJZ1kyQWdBTUFRc2dCU0FETmdJQUFrQUNRQ0FBSWdndEFBQWlCMEVyYXc0REFBRUFBUXNnQ3lBSFFSaDBRUmgxRUNraENDQUZJQVVvQWdBaUIwRUJhallDQUNBSElBZzZBQUFnQUVFQmFpRUlDd0pBSUFJZ0NHdEJBa2dOQUNBSUxRQUFRVEJIRFFBZ0NDMEFBVUVnY2tINEFFY05BQ0FMUVRBUUtTRUhJQVVnQlNnQ0FDSUpRUUZxTmdJQUlBa2dCem9BQUNBTElBZ3NBQUVRS1NFSElBVWdCU2dDQUNJSlFRRnFOZ0lBSUFrZ0J6b0FBQ0FJUVFKcUlRZ0xJQWdnQWhCNVFRQWhDU0FHRURnaERFRUFJUWNnQ0NFR0EzOGdBaUFHVFFSL0lBTWdDQ0FBYTJvZ0JTZ0NBQkI1SUFVb0FnQUZBa0FnQ2lBSEVBc3RBQUJGRFFBZ0NTQUtJQWNRQ3l3QUFFY05BQ0FGSUFVb0FnQWlDVUVCYWpZQ0FDQUpJQXc2QUFBZ0J5QUhJQW9RQ1VFQmEwbHFJUWRCQUNFSkN5QUxJQVlzQUFBUUtTRU5JQVVnQlNnQ0FDSU9RUUZxTmdJQUlBNGdEVG9BQUNBR1FRRnFJUVlnQ1VFQmFpRUpEQUVMQ3lFR0N5QUVJQVlnQXlBQklBQnJhaUFCSUFKR0d6WUNBQ0FLRUFvYUlBcEJFR29rQUFzREFBRUxEQUFnQUJBTklBRkJBblJxQzZvRUFRdC9Jd0JCZ0FGcklnb2tBQ0FLSUFFMkFuZ2dBaUFERU1zQ0lRZ2dDa0UxTmdJUUlBcEJDR3BCQUNBS1FSQnFJZ2tRSGlFUUFrQWdDRUhsQUU4RVFDQUlFQmtpQ1VVTkFTQVFJQWtRSndzZ0NTRUhJQUloQVFOQUlBRWdBMFlFUUFOQUFrQWdBQ0FLUWZnQWFoQTJRUUFnQ0J0RkJFQWdBQ0FLUWZnQWFoQW9CRUFnQlNBRktBSUFRUUp5TmdJQUN3d0JDeUFBRUNFaERpQUdSUVJBSUFRZ0RoQXBJUTRMSUF4QkFXb2hEVUVBSVE4Z0NTRUhJQUloQVFOQUlBRWdBMFlFUUNBTklRd2dEMFVOQXlBQUVDVWFJQWtoQnlBQ0lRRWdDQ0FMYWtFQ1NRMERBMEFnQVNBRFJnUkFEQVVGQWtBZ0J5MEFBRUVDUncwQUlBRVFDU0FOUmcwQUlBZEJBRG9BQUNBTFFRRnJJUXNMSUFkQkFXb2hCeUFCUVF4cUlRRU1BUXNBQ3dBRkFrQWdCeTBBQUVFQlJ3MEFJQUVnREJDeEFTZ0NBQ0VSQWtBZ0JnUi9JQkVGSUFRZ0VSQXBDeUFPUmdSQVFRRWhEeUFCRUFrZ0RVY05BaUFIUVFJNkFBQWdDMEVCYWlFTERBRUxJQWRCQURvQUFBc2dDRUVCYXlFSUN5QUhRUUZxSVFjZ0FVRU1haUVCREFFTEFBc0FDd3NDUUFKQUEwQWdBaUFEUmcwQklBa3RBQUJCQWtjRVFDQUpRUUZxSVFrZ0FrRU1haUVDREFFTEN5QUNJUU1NQVFzZ0JTQUZLQUlBUVFSeU5nSUFDeUFRRUIwZ0NrR0FBV29rQUNBRER3VUNRQ0FCRUVsRkJFQWdCMEVCT2dBQURBRUxJQWRCQWpvQUFDQUxRUUZxSVFzZ0NFRUJheUVJQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUN4QVhBQXNSQUNBQUlBRWdBQ2dDQUNnQ0RCRUNBQXV6QkFFTGZ5TUFRWUFCYXlJS0pBQWdDaUFCTmdKNElBSWdBeERMQWlFSUlBcEJOVFlDRUNBS1FRaHFRUUFnQ2tFUWFpSUpFQjRoRUFKQUlBaEI1UUJQQkVBZ0NCQVpJZ2xGRFFFZ0VDQUpFQ2NMSUFraEJ5QUNJUUVEUUNBQklBTkdCRUFEUUFKQUlBQWdDa0g0QUdvUU1VRUFJQWdiUlFSQUlBQWdDa0g0QUdvUUpnUkFJQVVnQlNnQ0FFRUNjallDQUFzTUFRc2dBQkFmSVE0Z0JrVUVRQ0FFSUE0UXN3RWhEZ3NnREVFQmFpRU5RUUFoRHlBSklRY2dBaUVCQTBBZ0FTQURSZ1JBSUEwaERDQVBSUTBESUFBUUlob2dDU0VISUFJaEFTQUlJQXRxUVFKSkRRTURRQ0FCSUFOR0JFQU1CUVVDUUNBSExRQUFRUUpIRFFBZ0FSQUpJQTFHRFFBZ0IwRUFPZ0FBSUF0QkFXc2hDd3NnQjBFQmFpRUhJQUZCREdvaEFRd0JDd0FMQUFVQ1FDQUhMUUFBUVFGSERRQWdBU0FNRUFzc0FBQWhFUUpBSUE1Qi93RnhJQVlFZnlBUkJTQUVJQkVRc3dFTFFmOEJjVVlFUUVFQklROGdBUkFKSUExSERRSWdCMEVDT2dBQUlBdEJBV29oQ3d3QkN5QUhRUUE2QUFBTElBaEJBV3NoQ0FzZ0IwRUJhaUVISUFGQkRHb2hBUXdCQ3dBTEFBc0xBa0FDUUFOQUlBSWdBMFlOQVNBSkxRQUFRUUpIQkVBZ0NVRUJhaUVKSUFKQkRHb2hBZ3dCQ3dzZ0FpRUREQUVMSUFVZ0JTZ0NBRUVFY2pZQ0FBc2dFQkFkSUFwQmdBRnFKQUFnQXc4RkFrQWdBUkJKUlFSQUlBZEJBVG9BQUF3QkN5QUhRUUk2QUFBZ0MwRUJhaUVMSUFoQkFXc2hDQXNnQjBFQmFpRUhJQUZCREdvaEFRd0JDd0FMQUFzUUZ3QUw1UU1CQTM4akFFR2dBV3NpQkNRQVFYOGhCU0FFSUFGQkFXdEJBQ0FCR3pZQ2xBRWdCQ0FBSUFSQm5nRnFJQUViSWdZMkFwQUJJQVJCQUVHUUFSQkdJZ0JCZnpZQ1RDQUFRVFEyQWlRZ0FFRi9OZ0pRSUFBZ0FFR2ZBV28yQWl3Z0FDQUFRWkFCYWpZQ1ZBSkFJQUZCQUVnRVFFSEVnUUZCUFRZQ0FBd0JDeUFHUVFBNkFBQkJBQ0VFSXdCQjBBRnJJZ0VrQUNBQklBTTJBc3dCSUFGQm9BRnFJZ05CQUVFb0VFWWFJQUVnQVNnQ3pBRTJBc2dCQWtCQkFDQUNJQUZCeUFGcUlBRkIwQUJxSUFNUTJnSkJBRWdFUUVGL0lRSU1BUXNnQUNnQ1RFRUFUaUVGSUFBb0FnQWhBeUFBS0FKSVFRQk1CRUFnQUNBRFFWOXhOZ0lBQ3dKL0FrQUNRQ0FBS0FJd1JRUkFJQUJCMEFBMkFqQWdBRUVBTmdJY0lBQkNBRGNERUNBQUtBSXNJUVFnQUNBQk5nSXNEQUVMSUFBb0FoQU5BUXRCZnlBQUVPZ0JEUUVhQ3lBQUlBSWdBVUhJQVdvZ0FVSFFBR29nQVVHZ0FXb1EyZ0lMSVFJZ0JBUkFJQUJCQUVFQUlBQW9BaVFSQkFBYUlBQkJBRFlDTUNBQUlBUTJBaXdnQUVFQU5nSWNJQUJCQURZQ0VDQUFLQUlVSVFRZ0FFRUFOZ0lVSUFKQmZ5QUVHeUVDQ3lBQUlBQW9BZ0FpQkNBRFFTQnhjallDQUVGL0lBSWdCRUVnY1JzaEFpQUZSUTBBQ3lBQlFkQUJhaVFBSUFJaEJRc2dBRUdnQVdva0FDQUZDMG9CQW44Q1FDQUFMUUFBSWdKRklBSWdBUzBBQUNJRFIzSU5BQU5BSUFFdEFBRWhBeUFBTFFBQklnSkZEUUVnQVVFQmFpRUJJQUJCQVdvaEFDQUNJQU5HRFFBTEN5QUNJQU5yQytRQ0FRWi9Jd0JCRUdzaUJ5UUFJQU5CNElZQklBTWJJZ1VvQWdBaEF3SkFBa0FDUUNBQlJRUkFJQU1OQVF3REMwRitJUVFnQWtVTkFpQUFJQWRCREdvZ0FCc2hCZ0pBSUFNRVFDQUNJUUFNQVFzZ0FTMEFBQ0lBUVJoMFFSaDFJZ05CQUU0RVFDQUdJQUEyQWdBZ0EwRUFSeUVFREFRTElBRXNBQUFoQUVISWhnRW9BZ0FvQWdCRkJFQWdCaUFBUWYrL0EzRTJBZ0JCQVNFRURBUUxJQUJCL3dGeFFjSUJheUlBUVRKTERRRWdBRUVDZEVHd0syb29BZ0FoQXlBQ1FRRnJJZ0JGRFFJZ0FVRUJhaUVCQ3lBQkxRQUFJZ2hCQTNZaUNVRVFheUFEUVJwMUlBbHFja0VIU3cwQUEwQWdBRUVCYXlFQUlBaEJnQUZySUFOQkJuUnlJZ05CQUU0RVFDQUZRUUEyQWdBZ0JpQUROZ0lBSUFJZ0FHc2hCQXdFQ3lBQVJRMENJQUZCQVdvaUFTMEFBQ0lJUWNBQmNVR0FBVVlOQUFzTElBVkJBRFlDQUVIRWdRRkJHVFlDQUVGL0lRUU1BUXNnQlNBRE5nSUFDeUFIUVJCcUpBQWdCQXNNQUNBQVFReHFFSDRhSUFBTENBQWdBQ2dDRUVVTERBQWdBRUVJYWhCK0dpQUFDeWdCQW44akFFRVFheUlDSkFBZ0FTZ0NBQ0FBS0FJQVNDRURJQUpCRUdva0FDQUJJQUFnQXhzTEVBQWdBQ0FCTndNSUlBQkNBRGNEQUFzVEFDQUFRYXdmTmdJQUlBQkJCR29RRGlBQUN3UUFRUUVMcmdFQkJIOGpBRUVRYXlJRkpBQWdBU0VFSUFKQkVFOEVRQ0FDUVFSMklRY0RRQ0FESUFRUW5BRWdBeUFBSUFVUXV3SWdBeUFGS1FNSU53QUlJQU1nQlNrREFEY0FBQ0FFUVJCcUlRUWdCa0VCYWlJR0lBZEhEUUFMQ3lBRUlBRWdBbW9pQVVrRVFDQUZJQVFnQVNBRWF5SUNFRUlpQVNBQ2FrRUFRUkFnQW1zUVJob2dBeUFCRUp3QklBTWdBQ0FCRUxzQ0lBTWdBU2tEQ0RjQUNDQURJQUVwQXdBM0FBQUxJQVZCRUdva0FBc3JBUUYvSUFCQjdQOEFOZ0lBQWtBZ0FDZ0NCRUVNYXlJQlFRaHFFSkVDUVFCT0RRQWdBUkFRQ3lBQUMwc0JBbjhnQUNnQ0JDSUhRUWgxSVFZZ0IwRUJjUVJBSUFNb0FnQWdCaERFQVNFR0N5QUFLQUlBSWdBZ0FTQUNJQU1nQm1vZ0JFRUNJQWRCQW5FYklBVWdBQ2dDQUNnQ0ZCRUpBQXNnQUFKQUlBQW9BZ1FnQVVjTkFDQUFLQUljUVFGR0RRQWdBQ0FDTmdJY0N3dWFBUUFnQUVFQk9nQTFBa0FnQUNnQ0JDQUNSdzBBSUFCQkFUb0FOQUpBSUFBb0FoQWlBa1VFUUNBQVFRRTJBaVFnQUNBRE5nSVlJQUFnQVRZQ0VDQUFLQUl3UVFGSERRSWdBMEVCUmcwQkRBSUxJQUVnQWtZRVFDQUFLQUlZSWdKQkFrWUVRQ0FBSUFNMkFoZ2dBeUVDQ3lBQUtBSXdRUUZIRFFJZ0FrRUJSZzBCREFJTElBQWdBQ2dDSkVFQmFqWUNKQXNnQUVFQk9nQTJDd3NLQUNBQUlBRnFLQUlBQzEwQkFYOGdBQ2dDRUNJRFJRUkFJQUJCQVRZQ0pDQUFJQUkyQWhnZ0FDQUJOZ0lRRHdzQ1FDQUJJQU5HQkVBZ0FDZ0NHRUVDUncwQklBQWdBallDR0E4TElBQkJBVG9BTmlBQVFRSTJBaGdnQUNBQUtBSWtRUUZxTmdJa0N3dTVBUUVEZnlNQVFSQnJJZ01rQUNBRElBRTJBZ3dDUUFKQUFrQUNRQ0FBRURVRVFDQUFFSDBoQVNBQUtBSUVJZ1FnQVVFQmF5SUNSZzBCREFNTFFRRWhCRUVCSVFJZ0FDMEFDeUlCUVFGSERRRUxJQUFnQWtFQklBSWdBaER5QVNBRUlRRWdBQkExRFFFTElBQWhBaUFBSUFGQkFXb1FPZ3dCQ3lBQUtBSUFJUUlnQUNBRVFRRnFFRGtnQkNFQkN5QUNJQUZCQW5ScUlnQWdBMEVNYWhBeklBTkJBRFlDQ0NBQVFRUnFJQU5CQ0dvUU15QURRUkJxSkFBTEdnQWdBQ0FCSUFFb0FnQkJER3NvQWdCcUtBSVlOZ0lBSUFBTHJ3RUJBMzhqQUVFUWF5SUZKQUFnQWtGdklnWWdBV3ROQkVBZ0FCQU5JUWNDZnlBQklBWkJBWFpCRUd0SkJFQWdCU0FCUVFGME5nSUlJQVVnQVNBQ2FqWUNEQ0FGUVF4cUlBVkJDR29RZGlnQ0FCQ1JBUXdCQ3lBR1FRRnJDMEVCYWlJR0VHQWhBaUFFQkVBZ0FpQUhJQVFRVlFzZ0F5QUVheUlEQkVBZ0FpQUVhaUFFSUFkcUlBTVFWUXNnQVVFS1J3UkFJQWNRRUFzZ0FDQUNFRTBnQUNBR0VFd2dCVUVRYWlRQUR3c1FGd0FMRndBZ0FDZ0NDQkFXUndSQUlBQW9BZ2dRMHdJTElBQUxBd0FCQ3pnQkFYOGpBRUVRYXlJREpBQWdBeUFDTmdJTUlBTkJDR29nQTBFTWFoQlNJUUlnQUNBQkVOb0JJUUFnQWhCUklBTkJFR29rQUNBQUN3c0FJQVFnQWpZQ0FFRURDdzhBSUFBZ0FDZ0NCRUVCYWpZQ0JBc1pBUUYvUVFFaEFTQUFFRFVFZnlBQUVIMUJBV3NGSUFFTEN3a0FJQUJCQURZQ0FBdVRBUUVFZnlNQVFSQnJJZ01rQUFKQUlBRVFOVVVFUUNBQUlBRW9BZ2cyQWdnZ0FDQUJLUUlBTndJQURBRUxJQUVvQWdBaEJBSkFBa0FDUUNBQktBSUVJZ0pCQ2swRVFDQUFJUUVnQUNBQ0VEb01BUXNnQWtGdlN3MEJJQUFnQWhDUkFVRUJhaUlGRUdBaUFSQk5JQUFnQlJCTUlBQWdBaEE1Q3lBQklBUWdBa0VCYWhCVkRBRUxFQmNBQ3dzZ0EwRVFhaVFBQ3hvQUlBQkJwQ0UyQWdBZ0FFRWdhaEFLR2lBQUVMMEJHaUFBQ3pFQUlBSW9BZ0FoQWdOQUFrQWdBQ0FCUndSL0lBQW9BZ0FnQWtjTkFTQUFCU0FCQ3c4TElBQkJCR29oQUF3QUN3QUwrUU1CQVg4akFFRVFheUlNSkFBZ0RDQUFOZ0lNQWtBQ1FDQUFJQVZHQkVBZ0FTMEFBRVVOQVVFQUlRQWdBVUVBT2dBQUlBUWdCQ2dDQUNJQlFRRnFOZ0lBSUFGQkxqb0FBQ0FIRUFsRkRRSWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQWlBSklBRkJCR28yQWdBZ0FTQUNOZ0lBREFJTEFrQWdBQ0FHUncwQUlBY1FDVVVOQUNBQkxRQUFSUTBCUVFBaEFDQUpLQUlBSWdFZ0NHdEJud0ZLRFFJZ0NpZ0NBQ0VBSUFrZ0FVRUVhallDQUNBQklBQTJBZ0JCQUNFQUlBcEJBRFlDQUF3Q0MwRi9JUUFnQ3lBTFFZQUJhaUFNUVF4cUVOSUJJQXRySWdWQi9BQktEUUVnQlVFQ2RVSFEwQUJxTFFBQUlRWUNRQUpBSUFWQmUzRWlBRUhZQUVjRVFDQUFRZUFBUncwQklBTWdCQ2dDQUNJQlJ3UkFRWDhoQUNBQlFRRnJMUUFBUWQ4QWNTQUNMUUFBUWY4QWNVY05CUXNnQkNBQlFRRnFOZ0lBSUFFZ0Jqb0FBRUVBSVFBTUJBc2dBa0hRQURvQUFBd0JDeUFDTEFBQUlnQWdCa0hmQUhGSERRQWdBaUFBUVlBQmNqb0FBQ0FCTFFBQVJRMEFJQUZCQURvQUFDQUhFQWxGRFFBZ0NTZ0NBQ0lBSUFoclFaOEJTZzBBSUFvb0FnQWhBU0FKSUFCQkJHbzJBZ0FnQUNBQk5nSUFDeUFFSUFRb0FnQWlBRUVCYWpZQ0FDQUFJQVk2QUFCQkFDRUFJQVZCMUFCS0RRRWdDaUFLS0FJQVFRRnFOZ0lBREFFTFFYOGhBQXNnREVFUWFpUUFJQUFMVUFFQ2Z5TUFRUkJySWdZa0FDQUdRUWhxSWdVZ0FSQVBJQVVRTzBIUTBBQkI4TkFBSUFJUVpDQURJQVVRaXdFaUFSQklOZ0lBSUFRZ0FSQTROZ0lBSUFBZ0FSQTNJQVVRRGlBR1FSQnFKQUFMTVFBZ0FpMEFBQ0VDQTBBQ1FDQUFJQUZIQkg4Z0FDMEFBQ0FDUncwQklBQUZJQUVMRHdzZ0FFRUJhaUVBREFBTEFBdnRBd0VCZnlNQVFSQnJJZ3drQUNBTUlBQTZBQThDUUFKQUlBQWdCVVlFUUNBQkxRQUFSUTBCUVFBaEFDQUJRUUE2QUFBZ0JDQUVLQUlBSWdGQkFXbzJBZ0FnQVVFdU9nQUFJQWNRQ1VVTkFpQUpLQUlBSWdFZ0NHdEJud0ZLRFFJZ0NpZ0NBQ0VDSUFrZ0FVRUVhallDQUNBQklBSTJBZ0FNQWdzQ1FDQUFJQVpIRFFBZ0J4QUpSUTBBSUFFdEFBQkZEUUZCQUNFQUlBa29BZ0FpQVNBSWEwR2ZBVW9OQWlBS0tBSUFJUUFnQ1NBQlFRUnFOZ0lBSUFFZ0FEWUNBRUVBSVFBZ0NrRUFOZ0lBREFJTFFYOGhBQ0FMSUF0QklHb2dERUVQYWhEVkFTQUxheUlGUVI5S0RRRWdCVUhRMEFCcUxRQUFJUVlDUUFKQUFrQUNRQ0FGUVg1eFFSWnJEZ01CQWdBQ0N5QURJQVFvQWdBaUFVY0VRQ0FCUVFGckxRQUFRZDhBY1NBQ0xRQUFRZjhBY1VjTkJRc2dCQ0FCUVFGcU5nSUFJQUVnQmpvQUFFRUFJUUFNQkFzZ0FrSFFBRG9BQUF3QkN5QUNMQUFBSWdBZ0JrSGZBSEZIRFFBZ0FpQUFRWUFCY2pvQUFDQUJMUUFBUlEwQUlBRkJBRG9BQUNBSEVBbEZEUUFnQ1NnQ0FDSUFJQWhyUVo4QlNnMEFJQW9vQWdBaEFTQUpJQUJCQkdvMkFnQWdBQ0FCTmdJQUN5QUVJQVFvQWdBaUFFRUJhallDQUNBQUlBWTZBQUJCQUNFQUlBVkJGVW9OQVNBS0lBb29BZ0JCQVdvMkFnQU1BUXRCZnlFQUN5QU1RUkJxSkFBZ0FBdFFBUUovSXdCQkVHc2lCaVFBSUFaQkNHb2lCU0FCRUE4Z0JSQXlRZERRQUVIdzBBQWdBaEJ3SUFNZ0JSQ09BU0lCRUVnNkFBQWdCQ0FCRURnNkFBQWdBQ0FCRURjZ0JSQU9JQVpCRUdva0FBdCtBZ0ovQW40akFFR2dBV3NpQkNRQUlBUWdBVFlDUENBRUlBRTJBaFFnQkVGL05nSVlJQVJCRUdvaUJVSUFFRk1nQkNBRklBTkJBUkRqQWlBRUtRTUlJUVlnQkNrREFDRUhJQUlFUUNBQ0lBRWdCQ2dDRkNBRUtBS0lBV29nQkNnQ1BHdHFOZ0lBQ3lBQUlBYzNBd0FnQUNBR053TUlJQVJCb0FGcUpBQUxEUUFnQUNBQklBSkNmeERQQWd1SkFnQUNRQ0FBQkg4Z0FVSC9BRTBOQVFKQVFjaUdBU2dDQUNnQ0FFVUVRQ0FCUVlCL2NVR0F2d05HRFFNTUFRc2dBVUgvRDAwRVFDQUFJQUZCUDNGQmdBRnlPZ0FCSUFBZ0FVRUdka0hBQVhJNkFBQkJBZzhMSUFGQmdFQnhRWURBQTBjZ0FVR0FzQU5QY1VVRVFDQUFJQUZCUDNGQmdBRnlPZ0FDSUFBZ0FVRU1ka0hnQVhJNkFBQWdBQ0FCUVFaMlFUOXhRWUFCY2pvQUFVRUREd3NnQVVHQWdBUnJRZi8vUDAwRVFDQUFJQUZCUDNGQmdBRnlPZ0FESUFBZ0FVRVNka0h3QVhJNkFBQWdBQ0FCUVFaMlFUOXhRWUFCY2pvQUFpQUFJQUZCREhaQlAzRkJnQUZ5T2dBQlFRUVBDd3RCeElFQlFSazJBZ0JCZndWQkFRc1BDeUFBSUFFNkFBQkJBUXVUQXdFSmZ3Si9Ba0FnQUNJQ1FRTnhCRUFEUUNBQ0xRQUFJZ0ZGSUFGQlBVWnlEUUlnQWtFQmFpSUNRUU54RFFBTEN3SkFJQUlvQWdBaUFVRi9jeUFCUVlHQ2hBaHJjVUdBZ1lLRWVIRU5BQU5BSUFGQnZmcjA2UU56SWdGQmYzTWdBVUdCZ29RSWEzRkJnSUdDaEhoeERRRWdBaWdDQkNFQklBSkJCR29oQWlBQlFZR0NoQWhySUFGQmYzTnhRWUNCZ29SNGNVVU5BQXNMQTBBZ0FpSUJMUUFBSWdNRVFDQUJRUUZxSVFJZ0EwRTlSdzBCQ3dzZ0FRd0JDeUFDQ3lBQWF5SUZSUVJBUVFBUEN3SkFJQUFnQldvdEFBQU5BRUhraGdFb0FnQWlCRVVOQUNBRUtBSUFJZ0ZGRFFBRFFBSkFBbjhnQUNFQ1FRQWhCa0VBSUFVaUIwVU5BQm9DUUNBQ0xRQUFJZ05GRFFBRFFBSkFJQUV0QUFBaUNFVU5BQ0FIUVFGcklnZEZJQU1nQ0VkeURRQWdBVUVCYWlFQklBSXRBQUVoQXlBQ1FRRnFJUUlnQXcwQkRBSUxDeUFESVFZTElBWkIvd0Z4SUFFdEFBQnJDMFVFUUNBRUtBSUFJQVZxSWdJdEFBQkJQVVlOQVFzZ0JDZ0NCQ0VCSUFSQkJHb2hCQ0FCRFFFTUFnc0xJQUpCQVdvaENRc2dDUXZoQVFFQ2Z5QUNRUUJISVFNQ1FBSkFBa0FnQUVFRGNVVWdBa1Z5RFFBZ0FVSC9BWEVoQkFOQUlBQXRBQUFnQkVZTkFpQUNRUUZySWdKQkFFY2hBeUFBUVFGcUlnQkJBM0ZGRFFFZ0FnMEFDd3NnQTBVTkFRc0NRQ0FBTFFBQUlBRkIvd0Z4UmlBQ1FRUkpjZzBBSUFGQi93RnhRWUdDaEFoc0lRTURRQ0FBS0FJQUlBTnpJZ1JCZjNNZ0JFR0Jnb1FJYTNGQmdJR0NoSGh4RFFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN3c2dBa1VOQUNBQlFmOEJjU0VCQTBBZ0FTQUFMUUFBUmdSQUlBQVBDeUFBUVFGcUlRQWdBa0VCYXlJQ0RRQUxDMEVBQzljREFnSitBbjhqQUVFZ2F5SUVKQUFDUUNBQlF2Ly8vLy8vLy8vLy93Q0RJZ05DZ0lDQWdJQ0F3SUE4ZlNBRFFvQ0FnSUNBZ01EL3d3QjlWQVJBSUFGQ0JJWWdBRUk4aUlRaEF5QUFRdi8vLy8vLy8vLy9ENE1pQUVLQmdJQ0FnSUNBZ0FoYUJFQWdBMEtCZ0lDQWdJQ0FnTUFBZkNFQ0RBSUxJQU5DZ0lDQWdJQ0FnSUJBZlNFQ0lBQkNnSUNBZ0lDQWdJQUloVUlBVWcwQklBSWdBMElCZzN3aEFnd0JDeUFBVUNBRFFvQ0FnSUNBZ01ELy93QlVJQU5DZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQUZDQklZZ0FFSThpSVJDLy8vLy8vLy8vd09EUW9DQWdJQ0FnSUQ4L3dDRUlRSU1BUXRDZ0lDQWdJQ0FnUGovQUNFQ0lBTkMvLy8vLy8vL3YvL0RBRllOQUVJQUlRSWdBMEl3aUtjaUJVR1I5d0JKRFFBZ0JFRVFhaUFBSUFGQy8vLy8vLy8vUDROQ2dJQ0FnSUNBd0FDRUlnSWdCVUdCOXdCckVDOGdCQ0FBSUFKQmdmZ0FJQVZyRUh3Z0JDa0RDRUlFaGlBRUtRTUFJZ0JDUElpRUlRSWdCQ2tERUNBRUtRTVloRUlBVXEwZ0FFTC8vLy8vLy8vLy93K0RoQ0lBUW9HQWdJQ0FnSUNBQ0ZvRVFDQUNRZ0Y4SVFJTUFRc2dBRUtBZ0lDQWdJQ0FnQWlGUWdCU0RRQWdBa0lCZ3lBQ2ZDRUNDeUFFUVNCcUpBQWdBaUFCUW9DQWdJQ0FnSUNBZ0grRGhMOExSQUVCZnlNQVFSQnJJZ1VrQUNBRklBRWdBaUFESUFSQ2dJQ0FnSUNBZ0lDQWY0VVFQQ0FGS1FNQUlRRWdBQ0FGS1FNSU53TUlJQUFnQVRjREFDQUZRUkJxSkFBTHFRRUJBWHhFQUFBQUFBQUE4RDhoQVFKQUlBQkJnQWhPQkVCRUFBQUFBQUFBNEg4aEFTQUFRZjhQU0FSQUlBQkIvd2RySVFBTUFndEVBQUFBQUFBQThIOGhBU0FBUWYwWElBQkIvUmRJRzBIK0Qyc2hBQXdCQ3lBQVFZRjRTZzBBUkFBQUFBQUFBR0FESVFFZ0FFRzRjRW9FUUNBQVFja0hhaUVBREFFTFJBQUFBQUFBQUFBQUlRRWdBRUh3YUNBQVFmQm9TaHRCa2c5cUlRQUxJQUVnQUVIL0IycXRRalNHdjZJTHhBRUNBWDhDZmtGL0lRTUNRQ0FBUWdCU0lBRkMvLy8vLy8vLy8vLy9BSU1pQkVLQWdJQ0FnSURBLy84QVZpQUVRb0NBZ0lDQWdNRC8vd0JSR3cwQVFRQWdBa0wvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBQ0FFSUFXRWhGQUVRRUVBRHdzZ0FTQUNnMElBV1FSQVFRQWdBU0FDVXlBQklBSlJHdzBCSUFBZ0FTQUNoWVJDQUZJUEN5QUFRZ0JTSUFFZ0FsVWdBU0FDVVJzTkFDQUFJQUVnQW9XRVFnQlNJUU1MSUFNTGFRRUNmeUFBUWF3b05nSUFJQUFvQWlnaEFRTkFJQUVFUUVFQUlBQWdBVUVCYXlJQlFRSjBJZ0lnQUNnQ0pHb29BZ0FnQUNnQ0lDQUNhaWdDQUJFSEFBd0JDd3NnQUVFY2FoQU9JQUFvQWlBUUVDQUFLQUlrRUJBZ0FDZ0NNQkFRSUFBb0Fqd1FFQ0FBQ3drQUlBQVFqQUVRRUFzSkFDQUFFTGdCRUJBTERBQWdBRUVFYWhCK0dpQUFDLzh2QVJGL0l3QkJJR3NpRXlRQUFuOUI5QUVRR1NJSUJIOENRQ0FJSWdZZ0FDQUJRUU4wRUlRRElnQkJBRXdOQUNBQVFRSjBJUThEUUNBR0lCRkJBblFpQjJvaUFTZ0NBQ0VLSUFFZ0JpQVBRUUowSWhCcUlnRW9BZ0EyQWdBZ0FTQUtOZ0lBSUFZZ0IwRUVjbW9pQVNnQ0FDRUtJQUVnQmlBUVFRUnlhaUlCS0FJQU5nSUFJQUVnQ2pZQ0FDQUdJQWRCQ0hKcUlnRW9BZ0FoQ2lBQklBWWdFRUVJY21vaUFTZ0NBRFlDQUNBQklBbzJBZ0FnQmlBSFFReHlhaUlCS0FJQUlRb2dBU0FHSUJCQkRISnFJZ0VvQWdBMkFnQWdBU0FLTmdJQUlCRkJCR29pRVNBUFFRUnJJZzlJRFFBTFFRRWhFU0FBUVFGTURRQURRQ0FHUVJCcUlRWkJBQ0VQQTBBZ0JpQVBRUUowYWlJQklBRW9BZ0FpQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUVoyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQUZCRm5aQi9BZHhRWUFJYWlnQ0FFRUdka0g4QjNGQmdCQnFLQUlBY3lBQlFRWjJRZndIY1VHQUNHb29BZ0JCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFGQi93RnhRUUowUVlBSWFpZ0NBRUVHZGtIOEIzRkJnQkJxS0FJQVFSZ1FDSE0yQWdBZ0QwRUJhaUlQUVFSSERRQUxJQkZCQVdvaUVTQUFSdzBBQ3dzZ0FFRUFTQVJBSUFnUUVFRUFEQUlMSUFnZ0FEWUM4QUVnQ0FWQkFBc0xJZ0FFZnlBVElBSXBBQUEzQXhBZ0V5QUNLUUFJTndNWUlBUkJFRThFUUNBRVFRUjJJUlZCQUNFQkEwQWdFeUFES1FBQU53TUFJQk1nQXlrQUNEY0RDQ0FBS0FMd0FTRVVJQUFvQWd3Z0F5Z0FEQ0lDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSnpJZzlCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRWlBQUtBSUlJQU1vQUFnaUFrRVlkQ0FDUVFoMFFZQ0EvQWR4Y2lBQ1FRaDJRWUQrQTNFZ0FrRVlkbkp5Y3lJUlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRNGdBQ2dDQkNBREtBQUVJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNuTWlCMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VKSUFBb0FnQWdBeWdBQUNJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkp6SWd0QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVDQVBRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUW9nRVVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFR0lBZEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hDQ0FMUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFRZ0QwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUNJQkZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnRDBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFIUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBTFFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUljY3lJTVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlROGdBQ2dDR0NBQ0lBUWdDQ0FSUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWcxQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQUFLQUlVSUFZZ0NpQVFJQWRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQlVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBQW9BaEFnQ1NBT0lCSWdDMEVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlMUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJBZ0RFRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUtJQTFCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQmlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlRZ2dDMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VFSUF4Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEFpQU5RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQXhCRm5aQi9BZHhRWUFRYWlnQ0FITWdCVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQzBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NMSE1pREVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFU0lBQW9BaWdnQWlBRUlBZ2dEVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlOUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVE0Z0FDZ0NKQ0FHSUFvZ0VDQUZRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1ZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQ1NBQUtBSWdJQWNnRVNBUElBdEJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlDMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUF4QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU5RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBdEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FNUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQU1RUloyUWZ3SGNVR0FFR29vQWdCeklBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQXRCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FqeHpJZ3hCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRHlBQUtBSTRJQUlnQkNBSUlBMUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlEVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VSSUFBb0FqUWdCaUFLSUJBZ0JVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQUNnQ01DQUpJQTRnRWlBTFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklndEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FNUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQVZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBTFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdERUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUExQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0RFRVdka0g4QjNGQmdCQnFLQUlBY3lBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUxRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FKTWN5SU1RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUklnQUNnQ1NDQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnMUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hEaUFBS0FKRUlBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUJVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUpJQUFvQWtBZ0J5QVJJQThnQzBFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdERUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUExQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQUZRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQzBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBeEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFOUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUF4QkZuWkIvQWR4UVlBUWFpZ0NBSE1nQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0MwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDWEhNaURFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQUFvQWxnZ0FpQUVJQWdnRFVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlSRWdBQ2dDVkNBR0lBb2dFQ0FGUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJ5QUFLQUpRSUFrZ0RpQVNJQXRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQzBFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBeEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFOUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQXRCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBTVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FNUVJaMlFmd0hjVUdBRUdvb0FnQnpJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUF0Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BbXh6SWd4QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVpQUFLQUpvSUFJZ0JDQUlJQTFCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pRFVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFT0lBQW9BbVFnQmlBS0lCQWdCVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlGUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFrZ0FDZ0NZQ0FISUJFZ0R5QUxRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ3RCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRUNBTVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRb2dEVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VHSUFWQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaENDQUxRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUVFnREVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFQ0lBMUJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dERUVXZGtIOEIzRkJnQkJxS0FJQWN5QUZRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFMUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBSjhjeUlNUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVE4Z0FDZ0NlQ0FDSUFRZ0NDQU5RUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZzFCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoRVNBQUtBSjBJQVlnQ2lBUUlBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VISUFBb0FuQWdDU0FPSUJJZ0MwRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SU9RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUkFnREVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFS0lBMUIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCaUFGUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVFnZ0RrRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUVJQXhCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQWlBTlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBeEJGblpCL0FkeFFZQVFhaWdDQUhNZ0JVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdEa0gvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ2pBRnpJZ2xCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnQUNnQ2dBRWdCeUFSSUE4Z0RrRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUhRUloyUWZ3SGNVR0FFR29vQWdCeklBQW9Bb2dCSUFJZ0JDQUlJQTFCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQkVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0FDZ0NoQUVnQmlBS0lCQWdCVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlDUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS1FBWE1oQlNBSFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBSkJGblpCL0FkeFFZQVFhaWdDQUhNZ0NVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdCRUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ2xBRnpJUklnQWtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBRVFSWjJRZndIY1VHQUVHb29BZ0J6SUFkQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBbEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXBnQmN5RU9BbjhnQkVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBSlFSWjJRZndIY1VHQUVHb29BZ0J6SUFKQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBZEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQXB3QmN5SUpJQlJCQzBnTkFCb2dDVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VQSUE1QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQVNRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBbEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFPUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0VrRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBSlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEa0VPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FKUVJaMlFmd0hjVUdBRUdvb0FnQnpJQkpCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcXdCY3lJSlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBQW9BcUFCSUFjZ0VTQVBJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQjBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFBS0FLb0FTQUNJQVFnQ0NBT1FSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnUkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQUFvQXFRQklBWWdDaUFRSUJKQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUFrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDc0FGeklRVWdCMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FDUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWxCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFSQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BclFCY3lFU0lBSkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dCRUVXZGtIOEIzRkJnQkJxS0FJQWN5QUhRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBSzRBWE1oRGlBRVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBbEJGblpCL0FkeFFZQVFhaWdDQUhNZ0FrRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdCMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ3ZBRnpJZ2tnRkVFTlNBMEFHaUFKUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVE4Z0RrRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRVJJQkpCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQnlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdDVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUE1Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQVNRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBbEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFPUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFsQkZuWkIvQWR4UVlBUWFpZ0NBSE1nRWtFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0JVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDekFGeklnbEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dBQ2dDd0FFZ0J5QVJJQThnQlVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJSFFSWjJRZndIY1VHQUVHb29BZ0J6SUFBb0FzZ0JJQUlnQkNBSUlBNUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCRUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQUNnQ3hBRWdCaUFLSUJBZ0VrRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUNRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FMUUFYTWhCU0FIUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFKQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQ1VFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0JFSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDMUFGeklSSWdBa0VPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FFUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWRCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFsQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BdGdCY3lFT0lBUkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dDVUVXZGtIOEIzRkJnQkJxS0FJQWN5QUNRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBTGNBWE1MSVFnZ0F5QUFJQlJCQkhScUlnUW9BZ0FnRWtIL0FYRkJnQmhxTFFBQUlBaEJFSFpCL3dGeFFZQVlhaTBBQUVFUWRDQUZRUmgyUVlBWWFpMEFBRUVZZEhJZ0RrRUlka0gvQVhGQmdCaHFMUUFBUVFoMGNuSnpJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNqWUFBQ0FESUFRb0FnUWdEa0gvQVhGQmdCaHFMUUFBSUFWQkVIWkIvd0Z4UVlBWWFpMEFBRUVRZENBU1FSaDJRWUFZYWkwQUFFRVlkSElnQ0VFSWRrSC9BWEZCZ0JocUxRQUFRUWgwY25KeklnSkJHSFFnQWtFSWRFR0FnUHdIY1hJZ0FrRUlka0dBL2dOeElBSkJHSFp5Y2pZQUJDQURJQVFvQWdnZ0NFSC9BWEZCZ0JocUxRQUFJQkpCRUhaQi93RnhRWUFZYWkwQUFFRVFkQ0FPUVJoMlFZQVlhaTBBQUVFWWRISWdCVUVJZGtIL0FYRkJnQmhxTFFBQVFRaDBjbkp6SWdKQkdIUWdBa0VJZEVHQWdQd0hjWElnQWtFSWRrR0EvZ054SUFKQkdIWnljallBQ0NBRElBUW9BZ3dnQlVIL0FYRkJnQmhxTFFBQUlBNUJFSFpCL3dGeFFZQVlhaTBBQUVFUWRDQUlRUmgyUVlBWWFpMEFBRUVZZEhJZ0VrRUlka0gvQVhGQmdCaHFMUUFBUVFoMGNuSnpJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNqWUFERUVBSVFJRFFDQUNJQU5xSWdRZ0JDMEFBQ0FUUVJCcUlBSnFMUUFBY3pvQUFDQUNRUUZxSWdKQkVFY05BQXNnRXlBVEtRTUlOd01ZSUJNZ0V5a0RBRGNERUNBRFFSQnFJUU1nQVVFQmFpSUJJQlZIRFFBTEN5QUFFQkJCQUFWQmZ3c2FJQk5CSUdva0FBdVdBUUVDZnlNQVFSQnJJZ0FrQUFKQUlBQkJER29nQUVFSWFoQUREUUJCNUlZQklBQW9BZ3hCQW5SQkJHb1FHU0lCTmdJQUlBRkZEUUFnQUNnQ0NCQVpJZ0VFUUVIa2hnRW9BZ0FnQUNnQ0RFRUNkR3BCQURZQ0FFSGtoZ0VvQWdBZ0FSQUNSUTBCQzBIa2hnRkJBRFlDQUFzZ0FFRVFhaVFBUWJpQkFVR3ZIaEJVR2tISWhnRkIySVVCTmdJQVFZQ0dBVUVxTmdJQUN3UUFRWDhMV1FFQmZ5QUFJQUFvQWtnaUFVRUJheUFCY2pZQ1NDQUFLQUlBSWdGQkNIRUVRQ0FBSUFGQklISTJBZ0JCZnc4TElBQkNBRGNDQkNBQUlBQW9BaXdpQVRZQ0hDQUFJQUUyQWhRZ0FDQUJJQUFvQWpCcU5nSVFRUUFMRkFBZ0FFRU1haUlBSUFBUWt3RkJBV29Ra2dFTGZBRUNmeUFBSUFBb0FrZ2lBVUVCYXlBQmNqWUNTQ0FBS0FJVUlBQW9BaHhIQkVBZ0FFRUFRUUFnQUNnQ0pCRUVBQm9MSUFCQkFEWUNIQ0FBUWdBM0F4QWdBQ2dDQUNJQlFRUnhCRUFnQUNBQlFTQnlOZ0lBUVg4UEN5QUFJQUFvQWl3Z0FDZ0NNR29pQWpZQ0NDQUFJQUkyQWdRZ0FVRWJkRUVmZFF2VkFnRUNmd0pBSUFBZ0FVWU5BQ0FCSUFBZ0Ftb2lCR3RCQUNBQ1FRRjBhMDBFUUNBQUlBRWdBaEJDR2c4TElBQWdBWE5CQTNFaEF3SkFBa0FnQUNBQlNRUkFJQU1OQWlBQVFRTnhSUTBCQTBBZ0FrVU5CQ0FBSUFFdEFBQTZBQUFnQVVFQmFpRUJJQUpCQVdzaEFpQUFRUUZxSWdCQkEzRU5BQXNNQVFzQ1FDQUREUUFnQkVFRGNRUkFBMEFnQWtVTkJTQUFJQUpCQVdzaUFtb2lBeUFCSUFKcUxRQUFPZ0FBSUFOQkEzRU5BQXNMSUFKQkEwME5BQU5BSUFBZ0FrRUVheUlDYWlBQklBSnFLQUlBTmdJQUlBSkJBMHNOQUFzTElBSkZEUUlEUUNBQUlBSkJBV3NpQW1vZ0FTQUNhaTBBQURvQUFDQUNEUUFMREFJTElBSkJBMDBOQUFOQUlBQWdBU2dDQURZQ0FDQUJRUVJxSVFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN3c2dBa1VOQUFOQUlBQWdBUzBBQURvQUFDQUFRUUZxSVFBZ0FVRUJhaUVCSUFKQkFXc2lBZzBBQ3dzTGl3d0JCbjhnQUNBQmFpRUZBa0FDUUNBQUtBSUVJZ0pCQVhFTkFDQUNRUU54UlEwQklBQW9BZ0FpQWlBQmFpRUJBa0FnQUNBQ2F5SUFRZHlCQVNnQ0FFY0VRQ0FDUWY4QlRRUkFJQUFvQWdnaUJDQUNRUU4ySWdKQkEzUkI4SUVCYWtZYUlBQW9BZ3dpQXlBRVJ3MENRY2lCQVVISWdRRW9BZ0JCZmlBQ2QzRTJBZ0FNQXdzZ0FDZ0NHQ0VHQWtBZ0FDQUFLQUlNSWdOSEJFQWdBQ2dDQ0NJQ1FkaUJBU2dDQUVrYUlBSWdBellDRENBRElBSTJBZ2dNQVFzQ1FDQUFRUlJxSWdJb0FnQWlCQTBBSUFCQkVHb2lBaWdDQUNJRURRQkJBQ0VEREFFTEEwQWdBaUVISUFRaUEwRVVhaUlDS0FJQUlnUU5BQ0FEUVJCcUlRSWdBeWdDRUNJRURRQUxJQWRCQURZQ0FBc2dCa1VOQWdKQUlBQWdBQ2dDSENJRVFRSjBRZmlEQVdvaUFpZ0NBRVlFUUNBQ0lBTTJBZ0FnQXcwQlFjeUJBVUhNZ1FFb0FnQkJmaUFFZDNFMkFnQU1CQXNnQmtFUVFSUWdCaWdDRUNBQVJodHFJQU0yQWdBZ0EwVU5Bd3NnQXlBR05nSVlJQUFvQWhBaUFnUkFJQU1nQWpZQ0VDQUNJQU0yQWhnTElBQW9BaFFpQWtVTkFpQURJQUkyQWhRZ0FpQUROZ0lZREFJTElBVW9BZ1FpQWtFRGNVRURSdzBCUWRDQkFTQUJOZ0lBSUFVZ0FrRitjVFlDQkNBQUlBRkJBWEkyQWdRZ0JTQUJOZ0lBRHdzZ0JDQUROZ0lNSUFNZ0JEWUNDQXNDUUNBRktBSUVJZ0pCQW5GRkJFQWdCVUhnZ1FFb0FnQkdCRUJCNElFQklBQTJBZ0JCMUlFQlFkU0JBU2dDQUNBQmFpSUJOZ0lBSUFBZ0FVRUJjallDQkNBQVFkeUJBU2dDQUVjTkEwSFFnUUZCQURZQ0FFSGNnUUZCQURZQ0FBOExJQVZCM0lFQktBSUFSZ1JBUWR5QkFTQUFOZ0lBUWRDQkFVSFFnUUVvQWdBZ0FXb2lBVFlDQUNBQUlBRkJBWEkyQWdRZ0FDQUJhaUFCTmdJQUR3c2dBa0Y0Y1NBQmFpRUJBa0FnQWtIL0FVMEVRQ0FGS0FJSUlnUWdBa0VEZGlJQ1FRTjBRZkNCQVdwR0dpQUVJQVVvQWd3aUEwWUVRRUhJZ1FGQnlJRUJLQUlBUVg0Z0FuZHhOZ0lBREFJTElBUWdBellDRENBRElBUTJBZ2dNQVFzZ0JTZ0NHQ0VHQWtBZ0JTQUZLQUlNSWdOSEJFQWdCU2dDQ0NJQ1FkaUJBU2dDQUVrYUlBSWdBellDRENBRElBSTJBZ2dNQVFzQ1FDQUZRUlJxSWdRb0FnQWlBZzBBSUFWQkVHb2lCQ2dDQUNJQ0RRQkJBQ0VEREFFTEEwQWdCQ0VISUFJaUEwRVVhaUlFS0FJQUlnSU5BQ0FEUVJCcUlRUWdBeWdDRUNJQ0RRQUxJQWRCQURZQ0FBc2dCa1VOQUFKQUlBVWdCU2dDSENJRVFRSjBRZmlEQVdvaUFpZ0NBRVlFUUNBQ0lBTTJBZ0FnQXcwQlFjeUJBVUhNZ1FFb0FnQkJmaUFFZDNFMkFnQU1BZ3NnQmtFUVFSUWdCaWdDRUNBRlJodHFJQU0yQWdBZ0EwVU5BUXNnQXlBR05nSVlJQVVvQWhBaUFnUkFJQU1nQWpZQ0VDQUNJQU0yQWhnTElBVW9BaFFpQWtVTkFDQURJQUkyQWhRZ0FpQUROZ0lZQ3lBQUlBRkJBWEkyQWdRZ0FDQUJhaUFCTmdJQUlBQkIzSUVCS0FJQVJ3MEJRZENCQVNBQk5nSUFEd3NnQlNBQ1FYNXhOZ0lFSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBTElBRkIvd0ZOQkVBZ0FVRURkaUlDUVFOMFFmQ0JBV29oQVFKL1FjaUJBU2dDQUNJRFFRRWdBblFpQW5GRkJFQkJ5SUVCSUFJZ0EzSTJBZ0FnQVF3QkN5QUJLQUlJQ3lFQ0lBRWdBRFlDQ0NBQ0lBQTJBZ3dnQUNBQk5nSU1JQUFnQWpZQ0NBOExRUjhoQWlBQVFnQTNBaEFnQVVILy8vOEhUUVJBSUFGQkNIWWlBaUFDUVlEK1AycEJFSFpCQ0hFaUJIUWlBaUFDUVlEZ0gycEJFSFpCQkhFaUEzUWlBaUFDUVlDQUQycEJFSFpCQW5FaUFuUkJEM1lnQXlBRWNpQUNjbXNpQWtFQmRDQUJJQUpCRldwMlFRRnhja0VjYWlFQ0N5QUFJQUkyQWh3Z0FrRUNkRUg0Z3dGcUlRY0NRQUpBUWN5QkFTZ0NBQ0lFUVFFZ0FuUWlBM0ZGQkVCQnpJRUJJQU1nQkhJMkFnQWdCeUFBTmdJQUlBQWdCellDR0F3QkN5QUJRUUJCR1NBQ1FRRjJheUFDUVI5R0czUWhBaUFIS0FJQUlRTURRQ0FESWdRb0FnUkJlSEVnQVVZTkFpQUNRUjEySVFNZ0FrRUJkQ0VDSUFRZ0EwRUVjV29pQjBFUWFpZ0NBQ0lERFFBTElBY2dBRFlDRUNBQUlBUTJBaGdMSUFBZ0FEWUNEQ0FBSUFBMkFnZ1BDeUFFS0FJSUlnRWdBRFlDRENBRUlBQTJBZ2dnQUVFQU5nSVlJQUFnQkRZQ0RDQUFJQUUyQWdnTEMyUUFJQUFnQVVJb2hrS0FnSUNBZ0lEQS93Q0RJQUZDT0lhRUlBRkNHSVpDZ0lDQWdJRGdQNE1nQVVJSWhrS0FnSUNBOEIrRGhJUWdBVUlJaUVLQWdJRDRENE1nQVVJWWlFS0FnUHdIZzRRZ0FVSW9pRUtBL2dPRElBRkNPSWlFaElRM0FBQUxEd0FnQUNnQ0RCb2dBRUVBTmdJTUM0Y0JBUVIvSXdCQkVHc2lCU1FBSXdCQkVHc2lBeVFBQWtBZ0FVRnZUUVJBQWtBZ0FVRUtUUVJBSUFBZ0FSQTZJQUFoQkF3QkN5QUFJQUVRa1FGQkFXb2lCaEJnSWdRUVRTQUFJQVlRVENBQUlBRVFPUXNnQkNBQklBSVE5Z0VnQTBFQU9nQVBJQUVnQkdvZ0EwRVBhaEEwSUFOQkVHb2tBQXdCQ3hBWEFBc2dCVUVRYWlRQUlBQUxWUUVDZnlBQUtBSUVJUVFDZjBFQUlBSkZEUUFhSUFSQkNIVWlCU0FFUVFGeFJRMEFHaUFDS0FJQUlBVVF4QUVMSVFVZ0FDZ0NBQ0lBSUFFZ0FpQUZhaUFEUVFJZ0JFRUNjUnNnQUNnQ0FDZ0NIQkVJQUFzakFDQUFRUUEyQWd3Z0FDQUJOZ0lFSUFBZ0FUWUNBQ0FBSUFGQkFXbzJBZ2dnQUF1N0FRRURmeU1BUVJCcklnVWtBQ0FDUWUvLy8vOERJZ1lnQVd0TkJFQWdBQkFOSVFjZ0FBSi9JQUVnQmtFQmRrRVFhMGtFUUNBRklBRkJBWFEyQWdnZ0JTQUJJQUpxTmdJTUlBVkJER29nQlVFSWFoQjJLQUlBRUlJQkRBRUxJQVpCQVdzTFFRRnFJZ1lRZ1FFaEFpQUVCRUFnQWlBSElBUVFaZ3NnQXlBRWF5SURCRUFnQkVFQ2RDSUVJQUpxSUFRZ0Iyb2dBeEJtQ3lBQlFRRkhCRUFnQnhBUUN5QUFJQUlRVFNBQUlBWVFUQ0FGUVJCcUpBQVBDeEFYQUF1RUFnRURmeU1BUVJCcklnZ2tBQ0FDUWUvLy8vOERJZ2tnQVVGL2MycE5CRUFnQUJBTklRb2dBQUovSUFFZ0NVRUJka0VRYTBrRVFDQUlJQUZCQVhRMkFnZ2dDQ0FCSUFKcU5nSU1JQWhCREdvZ0NFRUlhaEIyS0FJQUVJSUJEQUVMSUFsQkFXc0xRUUZxSWdrUWdRRWhBaUFFQkVBZ0FpQUtJQVFRWmdzZ0JnUkFJQVJCQW5RZ0Ftb2dCeUFHRUdZTElBTWdCQ0FGYW1zaUF3UkFJQVJCQW5RaUJ5QUNhaUFHUVFKMGFpQUhJQXBxSUFWQkFuUnFJQU1RWmdzZ0FVRUJSd1JBSUFvUUVBc2dBQ0FDRUUwZ0FDQUpFRXdnQUNBRUlBWnFJQU5xSWdBUU9TQUlRUUEyQWdRZ0FpQUFRUUowYWlBSVFRUnFFRE1nQ0VFUWFpUUFEd3NRRndBTFdBRURmMEc0Z1FFUURTRURRYmlCQVJBSklRRWpBRUVRYXlJQ0pBQWdBaUFBT2dBUFFYOGhBQ0FCQkVBZ0FRUi9JQU1nQWl3QUR4QmVJQUVRM0FFRlFRQUxJZ0FnQTJ0QmZ5QUFHeUVBQ3lBQ1FSQnFKQUFnQUF0d0FRTi9Jd0JCRUdzaUF5UUFJQUpCYjAwRVFBSkFJQUpCQ2swRVFDQUFJQUlRT2lBQUlRUU1BUXNnQUNBQ0VKRUJRUUZxSWdVUVlDSUVFRTBnQUNBRkVFd2dBQ0FDRURrTElBUWdBU0FDRUZVZ0EwRUFPZ0FQSUFJZ0JHb2dBMEVQYWhBMElBTkJFR29rQUE4TEVCY0FDeElBSUFFRVFDQUFJQUlRWGlBQkVFWWFDd3ZzQVFFRGZ5TUFRUkJySWdna0FDQUNRVzhpQ1NBQlFYOXphazBFUUNBQUVBMGhDZ0ovSUFFZ0NVRUJka0VRYTBrRVFDQUlJQUZCQVhRMkFnZ2dDQ0FCSUFKcU5nSU1JQWhCREdvZ0NFRUlhaEIyS0FJQUVKRUJEQUVMSUFsQkFXc0xRUUZxSWdrUVlDRUNJQVFFUUNBQ0lBb2dCQkJWQ3lBR0JFQWdBaUFFYWlBSElBWVFWUXNnQXlBRUlBVnFheUlEQkVBZ0FpQUVhaUFHYWlBRUlBcHFJQVZxSUFNUVZRc2dBVUVLUndSQUlBb1FFQXNnQUNBQ0VFMGdBQ0FKRUV3Z0FDQUVJQVpxSUFOcUlnQVFPU0FJUVFBNkFBY2dBQ0FDYWlBSVFRZHFFRFFnQ0VFUWFpUUFEd3NRRndBTEpBRUJmeU1BUVJCcklnRWtBQ0FCSUFBMkFnZ2dBU2dDQ0NFQUlBRkJFR29rQUNBQUN3a0FJQUFRRmpZQ0FBc3JBUUYvSUFBb0FnUWhBZ05BSUFFZ0FrY0VRQ0FBRUhRYUlBSkJCR3NoQWd3QkN3c2dBQ0FCTmdJRUN5b0FJd0JCRUdzaUFpUUFBa0FnQUNBQlJnUkFJQUJCQURvQWVBd0JDeUFCRUJBTElBSkJFR29rQUFzY0FDQUJRZi8vLy84RFN3UkFRZmdjRUtnQ0FBc2dBVUVDZEJCZ0N3a0FJQUZCQURZQ0FBczJBRUdnbFFFb0FnQWFRYUNWQVNnQ0FFR2dsUUVRYzBFQ2RHb2FRYUNWQVNnQ0FFR2dsUUVRYzBFQ2RHb2FRYUNWQVNnQ0FCb0xQUUVCZnlNQVFSQnJJZ0lrQUFKQUlBQXRBSGdnQVVFZVMzSkZCRUFnQUVFQk9nQjREQUVMSUFKQkNHb2dBUkQ4QVNFQUN5QUNRUkJxSkFBZ0FBdEZBUUovSXdCQkVHc2lBQ1FBUWFDVkFSQjBHaUFBUWYvLy8vOEROZ0lNSUFCQi8vLy8vd2MyQWdnZ0FFRU1haUFBUVFocUVLSUJLQUlBSVFFZ0FFRVFhaVFBSUFFTENRQWdBQkRKQVJBUUN3MEFJQUFvQWdBZ0FTZ0NBRWtMeUFFQkJIOGpBRUVnYXlJRkpBQWdCU0FCS1FBQU53TVFJQVVnQVNrQUNEY0RHQUpBSUFOQkVFa0VRQ0FDSVFFTUFRc2dBMEVFZGlFSElBSWhBUU5BSUFBZ0JVRVFhaUlJSUFRUXBnRWdCQ0FCRUp3QklBUkJFR29oQkNBQlFSQnFJUUVnQ0JEcEFTQUdRUUZxSWdZZ0IwY05BQXNMSUFJZ0Eyb2dBV3NpQWdSQUlBQWdCVUVRYWlBRkVLWUJRUUFoQmdOQUlBUWdCU0FHYWkwQUFDQUJMUUFBY3pvQUFDQUVRUUZxSVFRZ0FVRUJhaUVCSUFaQkFXb2lCaUFDUncwQUN3c2dCVUVnYWlRQUN4VUFJQUJCNk5NQU5nSUFJQUJCRUdvUUNob2dBQXNWQUNBQVFjRFRBRFlDQUNBQVFReHFFQW9hSUFBTEp3QWdBeUFES0FJQUlBSWdBV3NpQUdzaUFqWUNBQ0FBUVFCS0JFQWdBaUFCSUFBUVFob0xDd1FBUVFRTFFBRUNmeU1BUVJCcklnRWtBQ0FCSUFBMkFnd2dBVUVJYWlBQlFReHFFRkloQUVFRVFRRkJ5SVlCS0FJQUtBSUFHeUVDSUFBUVVTQUJRUkJxSkFBZ0FnczhBUUYvSXdCQkVHc2lCU1FBSUFVZ0JEWUNEQ0FGUVFocUlBVkJER29RVWlFRUlBQWdBU0FDSUFNUXR3RWhBQ0FFRUZFZ0JVRVFhaVFBSUFBTEVnQWdCQ0FDTmdJQUlBY2dCVFlDQUVFREN4QUFJQUFnQVJEUEFTQUFJQUkyQWdRTEtBRUJmeUFBUWR6U0FEWUNBQUpBSUFBb0FnZ2lBVVVOQUNBQUxRQU1SUTBBSUFFUUVBc2dBQXNQQUNBQUtBSUFJQUFvQWdRMkFnUUw1QWtCQVg4Q1FFSGtpQUV0QUFCQkFYRU5BRUhraUFFUUpFVU5BQUpBUWRpSUFTMEFBRUVCY1EwQVFkaUlBUkFrUlEwQVFaaVZBUkFiUVppVkFVSEkwZ0EyQWdBakFFRVFheUlCSkFCQm9KVUJRZ0EzQXdBZ0FVRUFOZ0lNUWFpVkFTQUJRUXhxRU04QlFhaVdBVUVBT2dBQUlBRkJFR29rQUJDQUFrRWVTUVJBRUJjQUMwR2dsUUZCb0pVQkVIUkJIaEQvQVNJQk5nSUFRYVNWQVNBQk5nSUFRYUNWQVJCRElBRkIrQUJxTmdJQVFRQVEvZ0ZCSGhDV0FrR3dsZ0ZCbWg0UVZCcEJvSlVCRUZBaEFVR2dsUUVRbFFKQm9KVUJJQUVRbEFKQjRKSUJFQnRCNEpJQlFmVGNBRFlDQUVIZ2tnRkJxSWNCRUJvUUhFSG9rZ0VRRzBIb2tnRkJsTjBBTmdJQVFlaVNBVUd3aHdFUUdoQWNRZkNTQVJBYlFmeVNBVUVBT2dBQVFmaVNBVUVBTmdJQVFmQ1NBVUhjMGdBMkFnQkIrSklCUWFBeUtBSUFOZ0lBUWZDU0FVSDBpQUVRR2hBY1FZQ1RBUkFiUVlDVEFVSEExZ0EyQWdCQmdKTUJRZXlJQVJBYUVCeEJpSk1CRUJ0QmlKTUJRZFRYQURZQ0FFR0lrd0ZCL0lnQkVCb1FIRUdRa3dFUUcwR1Frd0ZCa05NQU5nSUFRWmlUQVJBV05nSUFRWkNUQVVHRWlRRVFHaEFjUWFDVEFSQWJRYUNUQVVIbzJBQTJBZ0JCb0pNQlFZeUpBUkFhRUJ4QnFKTUJFQnRCcUpNQlFkelpBRFlDQUVHb2t3RkJsSWtCRUJvUUhFR3drd0VRRzBHNGt3RkJydGdBT3dFQVFiQ1RBVUhBMHdBMkFnQkJ2Sk1CRUJFYVFiQ1RBVUdjaVFFUUdoQWNRY2lUQVJBYlFkQ1RBVUt1Z0lDQXdBVTNBZ0JCeUpNQlFlalRBRFlDQUVIWWt3RVFFUnBCeUpNQlFhU0pBUkFhRUJ4QjZKTUJFQnRCNkpNQlFiVGRBRFlDQUVIb2t3RkJ1SWNCRUJvUUhFSHdrd0VRRzBId2t3RkJxTjhBTmdJQVFmQ1RBVUhBaHdFUUdoQWNRZmlUQVJBYlFmaVRBVUg4NEFBMkFnQkIrSk1CUWNpSEFSQWFFQnhCZ0pRQkVCdEJnSlFCUWVUaUFEWUNBRUdBbEFGQjBJY0JFQm9RSEVHSWxBRVFHMEdJbEFGQnZPb0FOZ0lBUVlpVUFVSDRod0VRR2hBY1FaQ1VBUkFiUVpDVUFVSFE2d0EyQWdCQmtKUUJRWUNJQVJBYUVCeEJtSlFCRUJ0Qm1KUUJRY1RzQURZQ0FFR1lsQUZCaUlnQkVCb1FIRUdnbEFFUUcwR2dsQUZCdU8wQU5nSUFRYUNVQVVHUWlBRVFHaEFjUWFpVUFSQWJRYWlVQVVHczdnQTJBZ0JCcUpRQlFaaUlBUkFhRUJ4QnNKUUJFQnRCc0pRQlFkRHZBRFlDQUVHd2xBRkJvSWdCRUJvUUhFRzRsQUVRRzBHNGxBRkI5UEFBTmdJQVFiaVVBVUdvaUFFUUdoQWNRY0NVQVJBYlFjQ1VBVUdZOGdBMkFnQkJ3SlFCUWJDSUFSQWFFQnhCeUpRQkVCdEIwSlFCUVlEOEFEWUNBRUhJbEFGQnJPUUFOZ0lBUWRDVUFVSGM1QUEyQWdCQnlKUUJRZGlIQVJBYUVCeEIySlFCRUJ0QjRKUUJRYVQ4QURZQ0FFSFlsQUZCdE9ZQU5nSUFRZUNVQVVIazVnQTJBZ0JCMkpRQlFlQ0hBUkFhRUJ4QjZKUUJFQnRCOEpRQkVQa0JRZWlVQVVHZzZBQTJBZ0JCNkpRQlFlaUhBUkFhRUJ4QitKUUJFQnRCZ0pVQkVQa0JRZmlVQVVHODZRQTJBZ0JCK0pRQlFmQ0hBUkFhRUJ4QmlKVUJFQnRCaUpVQlFienpBRFlDQUVHSWxRRkJ1SWdCRUJvUUhFR1FsUUVRRzBHUWxRRkJ0UFFBTmdJQVFaQ1ZBVUhBaUFFUUdoQWNRZENJQVVHWWxRRTJBZ0JCMUlnQlFkQ0lBVFlDQUVIWWlBRVFJd3RCM0lnQlFkU0lBU2dDQUJDUEFrSGdpQUZCM0lnQk5nSUFRZVNJQVJBakN5QUFRZUNJQVNnQ0FDZ0NBQ0lBTmdJQUlBQVF6UUVMRXdBZ0FDQUJLQUlBSWdBMkFnQWdBQkROQVFzeUFDQUFLQUlBR2lBQUtBSUFJQUFRYzBFQ2RHb2FJQUFvQWdBZ0FCQlFRUUowYWhvZ0FDZ0NBQ0FBRUhOQkFuUnFHZ3NUQUNBQUlBQW9BZ0JCQVdzaUFEWUNBQ0FBQzI4QkFuOGdBRUhJMGdBMkFnQWdBRUVJYWlFQkEwQWdBUkJRSUFKTEJFQWdBU0FDRUhjb0FnQUVRQ0FCSUFJUWR5Z0NBQkNqQVFzZ0FrRUJhaUVDREFFTEN5QUFRWmdCYWhBS0dpQUJFSkFDSUFFb0FnQUVRQ0FCRUpVQ0lBRVFkQ0FCS0FJQUlBRVFjeEQ3QVFzZ0FBc01BQ0FCSUFJdEFBQTZBQUFMS2dBZ0FDZ0NBQm9nQUNnQ0FDQUFFSE5CQW5ScUdpQUFLQUlBR2lBQUtBSUFJQUFRVUVFQ2RHb2FDd3dBSUFBZ0FDZ0NBQkQ2QVF0eUFRTi9Jd0JCRUdzaUFTUUFJQUZCb0pVQk5nSUFJQUZCcEpVQktBSUFJZ0kyQWdRZ0FTQUNJQUJCQW5ScU5nSUlJQUVpQXlnQ0JDRUFJQU1vQWdnaEFnTkFJQUFnQWtZRVFDQURFSTBDSUFGQkVHb2tBQVZCb0pVQkVIUWdBQkQ5QVNBRElBQkJCR29pQURZQ0JBd0JDd3NMSUFBZ0FFR1Ewd0EyQWdBZ0FDZ0NDQkFXUndSQUlBQW9BZ2dRMHdJTElBQUxCQUJCZnd2aUJRRUtmeU1BUVJCckloTWtBQ0FDSUFBMkFnQWdBMEdBQkhFaEZTQUhRUUowSVJZRFFDQVVRUVJHQkVBZ0RSQUpRUUZMQkVBZ0V5QU5FRUEyQWdnZ0FpQVRRUWhxUVFFUW5nSWdEUkJ0SUFJb0FnQVFwQUUyQWdBTElBTkJzQUZ4SWdOQkVFY0VRQ0FCSUFOQklFWUVmeUFDS0FJQUJTQUFDellDQUFzZ0UwRVFhaVFBQlFKQUFrQUNRQUpBQWtBQ1FDQUlJQlJxTEFBQURnVUFBUU1DQkFVTElBRWdBaWdDQURZQ0FBd0VDeUFCSUFJb0FnQTJBZ0FnQmtFZ0VEMGhCeUFDSUFJb0FnQWlEMEVFYWpZQ0FDQVBJQWMyQWdBTUF3c2dEUkJKRFFJZ0RVRUFFTEVCS0FJQUlRY2dBaUFDS0FJQUlnOUJCR28yQWdBZ0R5QUhOZ0lBREFJTElBd1FTU0FWUlhJTkFTQUNJQXdRUUNBTUVHMGdBaWdDQUJDa0FUWUNBQXdCQ3lBQ0tBSUFJUmNnQkNBV2FpSUVJUWNEUUFKQUlBVWdCMDBOQUNBR1FZQVFJQWNvQWdBUVRrVU5BQ0FIUVFScUlRY01BUXNMSUE0aUQwRUFTZ1JBQTBBZ0QwRUFUQ0FFSUFkUGNrVUVRQ0FIUVFScklnY29BZ0FoRUNBQ0lBSW9BZ0FpRVVFRWFqWUNBQ0FSSUJBMkFnQWdEMEVCYXlFUERBRUxDeUFQUVFCTUJIOUJBQVVnQmtFd0VEMExJUkVEUUNBQ0lBSW9BZ0FpRUVFRWFqWUNBQ0FQUVFCS0JFQWdFQ0FSTmdJQUlBOUJBV3NoRHd3QkN3c2dFQ0FKTmdJQUN3SkFJQVFnQjBZRVFDQUdRVEFRUFNFUElBSWdBaWdDQUNJUVFRUnFJZ2MyQWdBZ0VDQVBOZ0lBREFFTElBc1FTUVIvUVg4RklBdEJBQkFMTEFBQUN5RVFRUUFoRDBFQUlSSURRQ0FFSUFkSEJFQUNRQ0FQSUJCSEJFQWdEeUVSREFFTElBSWdBaWdDQUNJUVFRUnFOZ0lBSUJBZ0NqWUNBRUVBSVJFZ0N4QUpJQkpCQVdvaUVrMEVRQ0FQSVJBTUFRc2dDeUFTRUFzdEFBQkIvd0JHQkVCQmZ5RVFEQUVMSUFzZ0VoQUxMQUFBSVJBTElBZEJCR3NpQnlnQ0FDRVBJQUlnQWlnQ0FDSVlRUVJxTmdJQUlCZ2dEellDQUNBUlFRRnFJUThNQVFzTElBSW9BZ0FoQndzZ0Z5QUhFS3dCQ3lBVVFRRnFJUlFNQVFzTEM2VUNBUUYvSXdCQkVHc2lDaVFBSUFrQ2Z5QUFCRUFnQWhDZ0FpRUFBa0FnQVFSQUlBb2dBQkJwSUFNZ0NpZ0NBRFlBQUNBS0lBQVFhQXdCQ3lBS0lBQVFwUUVnQXlBS0tBSUFOZ0FBSUFvZ0FCQktDeUFJSUFvUVZ5QUtFQW9hSUFRZ0FCQklOZ0lBSUFVZ0FCQTROZ0lBSUFvZ0FCQTNJQVlnQ2hBd0lBb1FDaG9nQ2lBQUVFc2dCeUFLRUZjZ0NoQUtHaUFBRUdjTUFRc2dBaENmQWlFQUFrQWdBUVJBSUFvZ0FCQnBJQU1nQ2lnQ0FEWUFBQ0FLSUFBUWFBd0JDeUFLSUFBUXBRRWdBeUFLS0FJQU5nQUFJQW9nQUJCS0N5QUlJQW9RVnlBS0VBb2FJQVFnQUJCSU5nSUFJQVVnQUJBNE5nSUFJQW9nQUJBM0lBWWdDaEF3SUFvUUNob2dDaUFBRUVzZ0J5QUtFRmNnQ2hBS0dpQUFFR2NMTmdJQUlBcEJFR29rQUF2VUJRRUtmeU1BUVJCckloUWtBQ0FDSUFBMkFnQWdBMEdBQkhFaEZnTkFJQlZCQkVZRVFDQU5FQWxCQVVzRVFDQVVJQTBRUURZQ0NDQUNJQlJCQ0dwQkFSQ2xBaUFORUc4Z0FpZ0NBQkNrQVRZQ0FBc2dBMEd3QVhFaUEwRVFSd1JBSUFFZ0EwRWdSZ1IvSUFJb0FnQUZJQUFMTmdJQUN5QVVRUkJxSkFBUEN3SkFBa0FDUUFKQUFrQUNRQ0FJSUJWcUxBQUFEZ1VBQVFNQ0JBVUxJQUVnQWlnQ0FEWUNBQXdFQ3lBQklBSW9BZ0EyQWdBZ0JrRWdFQ2toRHlBQ0lBSW9BZ0FpRUVFQmFqWUNBQ0FRSUE4NkFBQU1Bd3NnRFJCSkRRSWdEVUVBRUFzdEFBQWhEeUFDSUFJb0FnQWlFRUVCYWpZQ0FDQVFJQTg2QUFBTUFnc2dEQkJKSUJaRmNnMEJJQUlnREJCQUlBd1FieUFDS0FJQUVLUUJOZ0lBREFFTElBSW9BZ0FoRnlBRUlBZHFJZ1FoRVFOQUFrQWdCU0FSVFEwQUlBWkJnQkFnRVN3QUFCQkVSUTBBSUJGQkFXb2hFUXdCQ3dzZ0RpSVBRUUJLQkVBRFFDQVBRUUJNSUFRZ0VVOXlSUVJBSUJGQkFXc2lFUzBBQUNFUUlBSWdBaWdDQUNJU1FRRnFOZ0lBSUJJZ0VEb0FBQ0FQUVFGcklROE1BUXNMSUE5QkFFd0VmMEVBQlNBR1FUQVFLUXNoRWdOQUlBSWdBaWdDQUNJUVFRRnFOZ0lBSUE5QkFFb0VRQ0FRSUJJNkFBQWdEMEVCYXlFUERBRUxDeUFRSUFrNkFBQUxBa0FnQkNBUlJnUkFJQVpCTUJBcElROGdBaUFDS0FJQUloQkJBV28yQWdBZ0VDQVBPZ0FBREFFTElBc1FTUVIvUVg4RklBdEJBQkFMTEFBQUN5RVFRUUFoRDBFQUlSTURRQ0FFSUJGR0RRRUNRQ0FQSUJCSEJFQWdEeUVTREFFTElBSWdBaWdDQUNJUVFRRnFOZ0lBSUJBZ0Nqb0FBRUVBSVJJZ0N4QUpJQk5CQVdvaUUwMEVRQ0FQSVJBTUFRc2dDeUFURUFzdEFBQkIvd0JHQkVCQmZ5RVFEQUVMSUFzZ0V4QUxMQUFBSVJBTElCRkJBV3NpRVMwQUFDRVBJQUlnQWlnQ0FDSVlRUUZxTmdJQUlCZ2dEem9BQUNBU1FRRnFJUThNQUFzQUN5QVhJQUlvQWdBUWVRc2dGVUVCYWlFVkRBQUxBQXVsQWdFQmZ5TUFRUkJySWdva0FDQUpBbjhnQUFSQUlBSVFwd0loQUFKQUlBRUVRQ0FLSUFBUWFTQURJQW9vQWdBMkFBQWdDaUFBRUdnTUFRc2dDaUFBRUtVQklBTWdDaWdDQURZQUFDQUtJQUFRU2dzZ0NDQUtFREFnQ2hBS0dpQUVJQUFRU0RvQUFDQUZJQUFRT0RvQUFDQUtJQUFRTnlBR0lBb1FNQ0FLRUFvYUlBb2dBQkJMSUFjZ0NoQXdJQW9RQ2hvZ0FCQm5EQUVMSUFJUXBnSWhBQUpBSUFFRVFDQUtJQUFRYVNBRElBb29BZ0EyQUFBZ0NpQUFFR2dNQVFzZ0NpQUFFS1VCSUFNZ0NpZ0NBRFlBQUNBS0lBQVFTZ3NnQ0NBS0VEQWdDaEFLR2lBRUlBQVFTRG9BQUNBRklBQVFPRG9BQUNBS0lBQVFOeUFHSUFvUU1DQUtFQW9hSUFvZ0FCQkxJQWNnQ2hBd0lBb1FDaG9nQUJCbkN6WUNBQ0FLUVJCcUpBQUxDQUFnQUNnQ0FFVUxOd0VCZnlNQVFSQnJJZ0lrQUNBQ0lBQW9BZ0EyQWdnZ0FpQUNLQUlJSUFGQkFuUnFOZ0lJSUFJb0FnZ2hBQ0FDUVJCcUpBQWdBQXNLQUNBQVFZaUlBUkJsQ3dvQUlBQkJrSWdCRUdVTENRQWdBQ0FCRUs0Q0N4OEJBWDhnQVNnQ0FCRDJBaUVDSUFBZ0FTZ0NBRFlDQkNBQUlBSTJBZ0FMOFE4QkNuOGpBRUd3QkdzaUN5UUFJQXNnQ2pZQ3BBUWdDeUFCTmdLb0JDQUxRVFkyQW1BZ0N5QUxRWWdCYWlBTFFaQUJhaUFMUWVBQWFpSUJFQjRpRHlnQ0FDSUtOZ0tFQVNBTElBcEJrQU5xTmdLQUFTQUJFQkVoRVNBTFFkQUFhaEJISVE0Z0MwRkFheEJISVF3Z0MwRXdhaEJISVEwZ0MwRWdhaEJISVJBakFFRVFheUlCSkFBZ0N3Si9JQUlFUUNBQklBTVFvQUlpQWhCcElBc2dBU2dDQURZQWVDQUJJQUlRYUNBTklBRVFWeUFCRUFvYUlBRWdBaEJLSUF3Z0FSQlhJQUVRQ2hvZ0N5QUNFRWcyQW5RZ0N5QUNFRGcyQW5BZ0FTQUNFRGNnRVNBQkVEQWdBUkFLR2lBQklBSVFTeUFPSUFFUVZ5QUJFQW9hSUFJUVp3d0JDeUFCSUFNUW53SWlBaEJwSUFzZ0FTZ0NBRFlBZUNBQklBSVFhQ0FOSUFFUVZ5QUJFQW9hSUFFZ0FoQktJQXdnQVJCWElBRVFDaG9nQ3lBQ0VFZzJBblFnQ3lBQ0VEZzJBbkFnQVNBQ0VEY2dFU0FCRURBZ0FSQUtHaUFCSUFJUVN5QU9JQUVRVnlBQkVBb2FJQUlRWndzMkFod2dBVUVRYWlRQUlBa2dDQ2dDQURZQ0FDQUVRWUFFY1NJU1FRbDJJUk5CQUNFQlFRQWhBZ05BSUFJaENnSkFBa0FDUUFKQUlBRkJCRVlOQUNBQUlBdEJxQVJxRURaRkRRQkJBQ0VFQWtBQ1FBSkFBa0FDUUFKQUlBdEIrQUJxSUFGcUxBQUFEZ1VCQUFRREJRa0xJQUZCQTBZTkJ5QUhRWURBQUNBQUVDRVFUZ1JBSUF0QkVHb2dBQkNpQWlBUUlBc29BaEFReGdFTUFnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0dDeUFCUVFOR0RRWUxBMEFnQUNBTFFhZ0VhaEEyUlEwR0lBZEJnTUFBSUFBUUlSQk9SUTBHSUF0QkVHb2dBQkNpQWlBUUlBc29BaEFReGdFTUFBc0FDeUFNRUFsQkFDQU5FQWxyUmcwRUFrQWdEQkFKQkVBZ0RSQUpEUUVMSUF3UUNTRURJQUFRSVNFQ0lBTUVRQ0FNRUEwb0FnQWdBa1lFUUNBQUVDVWFJQXdnQ2lBTUVBbEJBVXNiSVFJTUNBc2dCa0VCT2dBQURBWUxJQUlnRFJBTktBSUFSdzBGSUFBUUpSb2dCa0VCT2dBQUlBMGdDaUFORUFsQkFVc2JJUUlNQmdzZ0FCQWhJQXdRRFNnQ0FFWUVRQ0FBRUNVYUlBd2dDaUFNRUFsQkFVc2JJUUlNQmdzZ0FCQWhJQTBRRFNnQ0FFWUVRQ0FBRUNVYUlBWkJBVG9BQUNBTklBb2dEUkFKUVFGTEd5RUNEQVlMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQXdzZ0NpQUJRUUpKY2tVRVFFRUFJUUlnRXlBQlFRSkdJQXN0QUh0QkFFZHhja1VOQlFzZ0N5QU9FRUEyQWdnZ0MwRVFhaUFMUVFocUVLZ0JJUUlDUUNBQlJRMEFJQUVnQzJvdEFIZEJBVXNOQUFOQUFrQWdDeUFPRUcwMkFnZ2dBaUFMUVFocUVGdEZEUUFnQjBHQXdBQWdBaWdDQUNnQ0FCQk9SUTBBSUFJUWxBRU1BUXNMSUFzZ0RoQkFOZ0lJSUFJb0FnQWdDeWdDQ0d0QkFuVWlBaUFRRUFsTkJFQWdDeUFRRUcwMkFnZ2dDMEVJYWtFQUlBSnJFSjRDSVFNZ0VCQnRJUVFnRGhCQUlSUWpBRUVnYXlJQ0pBQWdBaUFFTmdJUUlBSWdBellDR0NBQ0lCUTJBZ2dEUUFKQUlBSkJHR29nQWtFUWFoQmJJZ05GRFFBZ0FpZ0NHQ2dDQUNBQ0tBSUlLQUlBUncwQUlBSkJHR29RbEFFZ0FrRUlhaENVQVF3QkN3c2dBa0VnYWlRQUlBTkJBWE1OQVFzZ0N5QU9FRUEyQWdBZ0MwRUlhaUFMRUtnQkdpQUxJQXNvQWdnMkFoQUxJQXNnQ3lnQ0VEWUNDQU5BQWtBZ0N5QU9FRzAyQWdBZ0MwRUlhaUFMRUZ0RkRRQWdBQ0FMUWFnRWFoQTJSUTBBSUFBUUlTQUxLQUlJS0FJQVJ3MEFJQUFRSlJvZ0MwRUlhaENVQVF3QkN3c2dFa1VOQXlBTElBNFFiVFlDQUNBTFFRaHFJQXNRVzBVTkF5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBSUxBMEFDUUNBQUlBdEJxQVJxRURaRkRRQUNmeUFIUVlBUUlBQVFJU0lDRUU0RVFDQUpLQUlBSWdNZ0N5Z0NwQVJHQkVBZ0NDQUpJQXRCcEFScUVJWUJJQWtvQWdBaEF3c2dDU0FEUVFScU5nSUFJQU1nQWpZQ0FDQUVRUUZxREFFTElCRVFDVVVnQkVWeURRRWdBaUFMS0FKd1J3MEJJQXNvQW9RQklnSWdDeWdDZ0FGR0JFQWdEeUFMUVlRQmFpQUxRWUFCYWhDR0FTQUxLQUtFQVNFQ0N5QUxJQUpCQkdvMkFvUUJJQUlnQkRZQ0FFRUFDeUVFSUFBUUpSb01BUXNMSUFSRklBc29Bb1FCSWdJZ0R5Z0NBRVp5UlFSQUlBc29Bb0FCSUFKR0JFQWdEeUFMUVlRQmFpQUxRWUFCYWhDR0FTQUxLQUtFQVNFQ0N5QUxJQUpCQkdvMkFvUUJJQUlnQkRZQ0FBc0NRQ0FMS0FJY1FRQk1EUUFDUUNBQUlBdEJxQVJxRUNoRkJFQWdBQkFoSUFzb0FuUkdEUUVMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQXdzRFFDQUFFQ1VhSUFzb0FoeEJBRXdOQVFKQUlBQWdDMEdvQkdvUUtFVUVRQ0FIUVlBUUlBQVFJUkJPRFFFTElBVWdCU2dDQUVFRWNqWUNBRUVBSVFBTUJBc2dDU2dDQUNBTEtBS2tCRVlFUUNBSUlBa2dDMEdrQkdvUWhnRUxJQUFRSVNFQ0lBa2dDU2dDQUNJRFFRUnFOZ0lBSUFNZ0FqWUNBQ0FMSUFzb0FoeEJBV3MyQWh3TUFBc0FDeUFLSVFJZ0NDZ0NBQ0FKS0FJQVJ3MERJQVVnQlNnQ0FFRUVjallDQUVFQUlRQU1BUXNDUUNBS1JRMEFRUUVoQkFOQUlBb1FDU0FFVFEwQkFrQWdBQ0FMUWFnRWFoQW9SUVJBSUFBUUlTQUtJQVFRc1FFb0FnQkdEUUVMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQXdzZ0FCQWxHaUFFUVFGcUlRUU1BQXNBQzBFQklRQWdEeWdDQUNBTEtBS0VBVVlOQUVFQUlRQWdDMEVBTmdJUUlCRWdEeWdDQUNBTEtBS0VBU0FMUVJCcUVDMGdDeWdDRUFSQUlBVWdCU2dDQUVFRWNqWUNBQXdCQzBFQklRQUxJQkFRQ2hvZ0RSQUtHaUFNRUFvYUlBNFFDaG9nRVJBS0dpQVBFQjBnQzBHd0JHb2tBQ0FBRHdzZ0NpRUNDeUFCUVFGcUlRRU1BQXNBQ3g4QUlBQWdBUkNuQVJBbklBRVFsUUVvQWdBaEFTQUFFSlVCSUFFMkFnQUxOQUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQW9BZ0EyQWdnZ0FpQUNLQUlJSUFGcU5nSUlJQUlvQWdnaEFDQUNRUkJxSkFBZ0FBc0tBQ0FBUWZpSEFSQmxDd29BSUFCQmdJZ0JFR1VMWWdFRGYwRUlFQWNpQVVIQS93QTJBZ0FnQVVIcy93QTJBZ0FnQUJDZUFTSUNRUTFxRUdBaUEwRUFOZ0lJSUFNZ0FqWUNCQ0FESUFJMkFnQWdBU0FEUVF4cUlBQWdBa0VCYWhCQ05nSUVJQUZCbklBQk5nSUFJQUZCdklBQlFRTVFCZ0FMd1FFQkJuOGpBRUVRYXlJRUpBQWdBQkNWQVNnQ0FDRUZBbjhnQWlnQ0FDQUFLQUlBYXlJRFFmLy8vLzhIU1FSQUlBTkJBWFFNQVF0QmZ3c2lBMEVCSUFNYklRTWdBU2dDQUNFR0lBQW9BZ0FoQnlBRlFUWkdCSDlCQUFVZ0FDZ0NBQXNnQXhDZEFTSUlCRUFnQlVFMlJ3UkFJQUFRcHdFYUN5QUVRVFUyQWdRZ0FDQUVRUWhxSUFnZ0JFRUVhaEFlSWdVUXBBSWdCUkFkSUFFZ0FDZ0NBQ0FHSUFkcmFqWUNBQ0FDSUFNZ0FDZ0NBR28yQWdBZ0JFRVFhaVFBRHdzUUZ3QUxKUUVCZnlBQktBSUFFUHNDUVJoMFFSaDFJUUlnQUNBQktBSUFOZ0lFSUFBZ0Fqb0FBQXVmRUFFS2Z5TUFRYkFFYXlJTEpBQWdDeUFLTmdLa0JDQUxJQUUyQXFnRUlBdEJOallDYUNBTElBdEJpQUZxSUF0QmtBRnFJQXRCNkFCcUlnRVFIaUlQS0FJQUlnbzJBb1FCSUFzZ0NrR1FBMm8yQW9BQklBRVFFU0VSSUF0QjJBQnFFQkVoRGlBTFFjZ0FhaEFSSVF3Z0MwRTRhaEFSSVEwZ0MwRW9haEFSSVJBakFFRVFheUlCSkFBZ0N3Si9JQUlFUUNBQklBTVFwd0lpQWhCcElBc2dBU2dDQURZQWVDQUJJQUlRYUNBTklBRVFNQ0FCRUFvYUlBRWdBaEJLSUF3Z0FSQXdJQUVRQ2hvZ0N5QUNFRWc2QUhjZ0N5QUNFRGc2QUhZZ0FTQUNFRGNnRVNBQkVEQWdBUkFLR2lBQklBSVFTeUFPSUFFUU1DQUJFQW9hSUFJUVp3d0JDeUFCSUFNUXBnSWlBaEJwSUFzZ0FTZ0NBRFlBZUNBQklBSVFhQ0FOSUFFUU1DQUJFQW9hSUFFZ0FoQktJQXdnQVJBd0lBRVFDaG9nQ3lBQ0VFZzZBSGNnQ3lBQ0VEZzZBSFlnQVNBQ0VEY2dFU0FCRURBZ0FSQUtHaUFCSUFJUVN5QU9JQUVRTUNBQkVBb2FJQUlRWndzMkFpUWdBVUVRYWlRQUlBa2dDQ2dDQURZQ0FDQUVRWUFFY1NJU1FRbDJJUk5CQUNFQlFRQWhBZ05BSUFJaENnSkFBa0FDUUFKQUlBRkJCRVlOQUNBQUlBdEJxQVJxRURGRkRRQkJBQ0VFQWtBQ1FBSkFBa0FDUUFKQUlBdEIrQUJxSUFGcUxBQUFEZ1VCQUFRREJRa0xJQUZCQTBZTkJ5QUhRWURBQUNBQUVCOFFSQVJBSUF0QkdHb2dBQkNxQWlBUUlBc3NBQmdRb1FFTUFnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0dDeUFCUVFOR0RRWUxBMEFnQUNBTFFhZ0VhaEF4UlEwR0lBZEJnTUFBSUFBUUh4QkVSUTBHSUF0QkdHb2dBQkNxQWlBUUlBc3NBQmdRb1FFTUFBc0FDeUFNRUFsQkFDQU5FQWxyUmcwRUFrQWdEQkFKQkVBZ0RSQUpEUUVMSUF3UUNTRURJQUFRSHlFQ0lBTUVRQ0FNUVFBUUN5MEFBQ0FDUWY4QmNVWUVRQ0FBRUNJYUlBd2dDaUFNRUFsQkFVc2JJUUlNQ0FzZ0JrRUJPZ0FBREFZTElBMUJBQkFMTFFBQUlBSkIvd0Z4UncwRklBQVFJaG9nQmtFQk9nQUFJQTBnQ2lBTkVBbEJBVXNiSVFJTUJnc2dBQkFmUWY4QmNTQU1RUUFRQ3kwQUFFWUVRQ0FBRUNJYUlBd2dDaUFNRUFsQkFVc2JJUUlNQmdzZ0FCQWZRZjhCY1NBTlFRQVFDeTBBQUVZRVFDQUFFQ0lhSUFaQkFUb0FBQ0FOSUFvZ0RSQUpRUUZMR3lFQ0RBWUxJQVVnQlNnQ0FFRUVjallDQUVFQUlRQU1Bd3NnQ2lBQlFRSkpja1VFUUVFQUlRSWdFeUFCUVFKR0lBc3RBSHRCQUVkeGNrVU5CUXNnQ3lBT0VFQTJBaEFnQzBFWWFpQUxRUkJxRUtnQklRSUNRQ0FCUlEwQUlBRWdDMm90QUhkQkFVc05BQU5BQWtBZ0N5QU9FRzgyQWhBZ0FpQUxRUkJxRUZ0RkRRQWdCMEdBd0FBZ0FpZ0NBQ3dBQUJCRVJRMEFJQUlRbGdFTUFRc0xJQXNnRGhCQU5nSVFJQUlvQWdBZ0N5Z0NFR3NpQWlBUUVBbE5CRUFnQ3lBUUVHODJBaEFnQzBFUWFrRUFJQUpyRUtVQ0lRTWdFQkJ2SVFRZ0RoQkFJUlFqQUVFZ2F5SUNKQUFnQWlBRU5nSVFJQUlnQXpZQ0dDQUNJQlEyQWdnRFFBSkFJQUpCR0dvZ0FrRVFhaEJiSWdORkRRQWdBaWdDR0MwQUFDQUNLQUlJTFFBQVJ3MEFJQUpCR0dvUWxnRWdBa0VJYWhDV0FRd0JDd3NnQWtFZ2FpUUFJQU5CQVhNTkFRc2dDeUFPRUVBMkFnZ2dDMEVRYWlBTFFRaHFFS2dCR2lBTElBc29BaEEyQWhnTElBc2dDeWdDR0RZQ0VBTkFBa0FnQ3lBT0VHODJBZ2dnQzBFUWFpQUxRUWhxRUZ0RkRRQWdBQ0FMUWFnRWFoQXhSUTBBSUFBUUgwSC9BWEVnQ3lnQ0VDMEFBRWNOQUNBQUVDSWFJQXRCRUdvUWxnRU1BUXNMSUJKRkRRTWdDeUFPRUc4MkFnZ2dDMEVRYWlBTFFRaHFFRnRGRFFNZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3Q0N3TkFBa0FnQUNBTFFhZ0VhaEF4UlEwQUFuOGdCMEdBRUNBQUVCOGlBaEJFQkVBZ0NTZ0NBQ0lESUFzb0FxUUVSZ1JBSUFnZ0NTQUxRYVFFYWhDcEFpQUpLQUlBSVFNTElBa2dBMEVCYWpZQ0FDQURJQUk2QUFBZ0JFRUJhZ3dCQ3lBUkVBbEZJQVJGY2cwQklBc3RBSFlnQWtIL0FYRkhEUUVnQ3lnQ2hBRWlBaUFMS0FLQUFVWUVRQ0FQSUF0QmhBRnFJQXRCZ0FGcUVJWUJJQXNvQW9RQklRSUxJQXNnQWtFRWFqWUNoQUVnQWlBRU5nSUFRUUFMSVFRZ0FCQWlHZ3dCQ3dzZ0JFVWdDeWdDaEFFaUFpQVBLQUlBUm5KRkJFQWdDeWdDZ0FFZ0FrWUVRQ0FQSUF0QmhBRnFJQXRCZ0FGcUVJWUJJQXNvQW9RQklRSUxJQXNnQWtFRWFqWUNoQUVnQWlBRU5nSUFDd0pBSUFzb0FpUkJBRXdOQUFKQUlBQWdDMEdvQkdvUUprVUVRQ0FBRUI5Qi93RnhJQXN0QUhkR0RRRUxJQVVnQlNnQ0FFRUVjallDQUVFQUlRQU1Bd3NEUUNBQUVDSWFJQXNvQWlSQkFFd05BUUpBSUFBZ0MwR29CR29RSmtVRVFDQUhRWUFRSUFBUUh4QkVEUUVMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQkFzZ0NTZ0NBQ0FMS0FLa0JFWUVRQ0FJSUFrZ0MwR2tCR29RcVFJTElBQVFIeUVDSUFrZ0NTZ0NBQ0lEUVFGcU5nSUFJQU1nQWpvQUFDQUxJQXNvQWlSQkFXczJBaVFNQUFzQUN5QUtJUUlnQ0NnQ0FDQUpLQUlBUncwRElBVWdCU2dDQUVFRWNqWUNBRUVBSVFBTUFRc0NRQ0FLUlEwQVFRRWhCQU5BSUFvUUNTQUVUUTBCQWtBZ0FDQUxRYWdFYWhBbVJRUkFJQUFRSDBIL0FYRWdDaUFFRUFzdEFBQkdEUUVMSUFVZ0JTZ0NBRUVFY2pZQ0FFRUFJUUFNQXdzZ0FCQWlHaUFFUVFGcUlRUU1BQXNBQzBFQklRQWdEeWdDQUNBTEtBS0VBVVlOQUVFQUlRQWdDMEVBTmdJWUlCRWdEeWdDQUNBTEtBS0VBU0FMUVJocUVDMGdDeWdDR0FSQUlBVWdCU2dDQUVFRWNqWUNBQXdCQzBFQklRQUxJQkFRQ2hvZ0RSQUtHaUFNRUFvYUlBNFFDaG9nRVJBS0dpQVBFQjBnQzBHd0JHb2tBQ0FBRHdzZ0NpRUNDeUFCUVFGcUlRRU1BQXNBQ3d3QUlBQkJBVUV0RUxvQ0dnc01BQ0FBUVFGQkxSRHZBUm9MQ2dBZ0FTQUFhMEVDZFFzRUFDQUJDelVCQVg4akFFRVFheUlDSkFBZ0FpQUFMUUFBT2dBUElBQWdBUzBBQURvQUFDQUJJQUpCRDJvdEFBQTZBQUFnQWtFUWFpUUFDMlFCQVg4akFFRVFheUlHSkFBZ0JrRUFPZ0FQSUFZZ0JUb0FEaUFHSUFRNkFBMGdCa0VsT2dBTUlBVUVRQ0FHUVExcUlBWkJEbW9Rc0FJTElBSWdBU0FCSUFJb0FnQVE2Z0lnQmtFTWFpQURJQUFvQWdBUUFTQUJhallDQUNBR1FSQnFKQUFMUVFBZ0FTQUNJQU1nQkVFRUVGZ2hBU0FETFFBQVFRUnhSUVJBSUFBZ0FVSFFEMm9nQVVIc0Rtb2dBU0FCUWVRQVNCc2dBVUhGQUVnYlFld09hellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0JCRUFBQ0lBSUFCQm9BSnFJQVVnQkVFQUVMSUJJQUJySWdCQm53Sk1CRUFnQVNBQVFReHRRUXh2TmdJQUN3dEFBQ0FDSUFNZ0FFRUlhaUFBS0FJSUtBSUFFUUFBSWdBZ0FFR29BV29nQlNBRVFRQVFzZ0VnQUdzaUFFR25BVXdFUUNBQklBQkJERzFCQjI4MkFnQUxDMEVBSUFFZ0FpQURJQVJCQkJCWklRRWdBeTBBQUVFRWNVVUVRQ0FBSUFGQjBBOXFJQUZCN0E1cUlBRWdBVUhrQUVnYklBRkJ4UUJJRzBIc0RtczJBZ0FMQzBBQUlBSWdBeUFBUVFocUlBQW9BZ2dvQWdRUkFBQWlBQ0FBUWFBQ2FpQUZJQVJCQUJDMEFTQUFheUlBUVo4Q1RBUkFJQUVnQUVFTWJVRU1iellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0FCRUFBQ0lBSUFCQnFBRnFJQVVnQkVFQUVMUUJJQUJySWdCQnB3Rk1CRUFnQVNBQVFReHRRUWR2TmdJQUN3c0VBRUVDQzY4RkFRcC9Jd0JCRUdzaUNTUUFJQVlRT3lFS0lBa2dCaENMQVNJTkVEY2dCU0FETmdJQUFrQUNRQ0FBSWdjdEFBQWlCa0VyYXc0REFBRUFBUXNnQ2lBR1FSaDBRUmgxRUQwaEJpQUZJQVVvQWdBaUIwRUVhallDQUNBSElBWTJBZ0FnQUVFQmFpRUhDd0pBQWtBZ0FpQUhJZ1pyUVFGTURRQWdCeTBBQUVFd1J3MEFJQWN0QUFGQklISkIrQUJIRFFBZ0NrRXdFRDBoQmlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFZMkFnQWdDaUFITEFBQkVEMGhCaUFGSUFVb0FnQWlDRUVFYWpZQ0FDQUlJQVkyQWdBZ0IwRUNhaUlISVFZRFFDQUNJQVpORFFJZ0Jpd0FBQkFXRU5ZQ1JRMENJQVpCQVdvaEJnd0FDd0FMQTBBZ0FpQUdUUTBCSUFZc0FBQWhDQkFXR2lBSUVFVkZEUUVnQmtFQmFpRUdEQUFMQUFzQ1FDQUpFRWtFUUNBS0lBY2dCaUFGS0FJQUVHUWdCU0FGS0FJQUlBWWdCMnRCQW5ScU5nSUFEQUVMSUFjZ0JoQjVJQTBRT0NFT0lBY2hDQU5BSUFZZ0NFMEVRQ0FESUFjZ0FHdEJBblJxSUFVb0FnQVFyQUVGQWtBZ0NTQUxFQXNzQUFCQkFFd05BQ0FNSUFrZ0N4QUxMQUFBUncwQUlBVWdCU2dDQUNJTVFRUnFOZ0lBSUF3Z0RqWUNBQ0FMSUFzZ0NSQUpRUUZyU1dvaEMwRUFJUXdMSUFvZ0NDd0FBQkE5SVE4Z0JTQUZLQUlBSWhCQkJHbzJBZ0FnRUNBUE5nSUFJQWhCQVdvaENDQU1RUUZxSVF3TUFRc0xDd0pBQWtBRFFDQUNJQVpORFFFZ0JpMEFBQ0lIUVM1SEJFQWdDaUFIUVJoMFFSaDFFRDBoQnlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFjMkFnQWdCa0VCYWlFR0RBRUxDeUFORUVnaEJ5QUZJQVVvQWdBaUMwRUVhaUlJTmdJQUlBc2dCellDQUNBR1FRRnFJUVlNQVFzZ0JTZ0NBQ0VJQ3lBS0lBWWdBaUFJRUdRZ0JTQUZLQUlBSUFJZ0JtdEJBblJxSWdVMkFnQWdCQ0FGSUFNZ0FTQUFhMEVDZEdvZ0FTQUNSaHMyQWdBZ0NSQUtHaUFKUVJCcUpBQUx1QUVCQlg4akFFRVFheUlISkFBakFFRVFheUlGSkFBQ1FDQUJRZS8vLy84RFRRUkFBa0FnQVVFQlRRUkFJQUFnQVJBNklBQWhCZ3dCQ3lBQUlBQWdBUkNDQVVFQmFpSURFSUVCSWdZUVRTQUFJQU1RVENBQUlBRVFPUXNnQmlFRUlBRWlBd1IvSUFNRVFBTkFJQVFnQWpZQ0FDQUVRUVJxSVFRZ0EwRUJheUlERFFBTEMwRUFCU0FFQ3hvZ0JVRUFOZ0lNSUFZZ0FVRUNkR29nQlVFTWFoQXpJQVZCRUdva0FBd0JDeEFYQUFzZ0IwRVFhaVFBSUFBTDhnRUJCWDhqQUVFUWF5SURKQUFnQWtJQU53QUFJQUpDQURjQUNDQURJQUVwQUFnM0F3Z2dBeUFCS1FBQU53TUFBMEFnQUNBRmFpRUdRUUFoQVFOQUlBWXRBQUJCQnlBQmEzWkJBWEVFUUNBQ0lBTVFuQUVMSUFNdEFBOGhCeUFEUVF4cUlnUWdBeTBBQzBFZmRDQUVFSk1CUVFGMmNoQ1NBU0FEUVFocUlnUWdBeTBBQjBFZmRDQUVFSk1CUVFGMmNoQ1NBU0FEUVFScUlnUWdBeTBBQTBFZmRDQUVFSk1CUVFGMmNoQ1NBU0FESUFNUWt3RkJBWFlRa2dFZ0IwRUJjUVJBSUFNZ0F5MEFBRUhoQVhNNkFBQUxJQUZCQVdvaUFVRUlSdzBBQ3lBRlFRRnFJZ1ZCRUVjTkFBc2dBMEVRYWlRQUM1a0ZBUXAvSXdCQkVHc2lDU1FBSUFZUU1pRUtJQWtnQmhDT0FTSU5FRGNnQlNBRE5nSUFBa0FDUUNBQUlnY3RBQUFpQmtFcmF3NERBQUVBQVFzZ0NpQUdRUmgwUVJoMUVDa2hCaUFGSUFVb0FnQWlCMEVCYWpZQ0FDQUhJQVk2QUFBZ0FFRUJhaUVIQ3dKQUFrQWdBaUFISWdaclFRRk1EUUFnQnkwQUFFRXdSdzBBSUFjdEFBRkJJSEpCK0FCSERRQWdDa0V3RUNraEJpQUZJQVVvQWdBaUNFRUJhallDQUNBSUlBWTZBQUFnQ2lBSExBQUJFQ2toQmlBRklBVW9BZ0FpQ0VFQmFqWUNBQ0FJSUFZNkFBQWdCMEVDYWlJSElRWURRQ0FDSUFaTkRRSWdCaXdBQUJBV0VOWUNSUTBDSUFaQkFXb2hCZ3dBQ3dBTEEwQWdBaUFHVFEwQklBWXNBQUFoQ0JBV0dpQUlFRVZGRFFFZ0JrRUJhaUVHREFBTEFBc0NRQ0FKRUVrRVFDQUtJQWNnQmlBRktBSUFFSEFnQlNBRktBSUFJQVlnQjJ0cU5nSUFEQUVMSUFjZ0JoQjVJQTBRT0NFT0lBY2hDQU5BSUFZZ0NFMEVRQ0FESUFjZ0FHdHFJQVVvQWdBUWVRVUNRQ0FKSUF3UUN5d0FBRUVBVEEwQUlBc2dDU0FNRUFzc0FBQkhEUUFnQlNBRktBSUFJZ3RCQVdvMkFnQWdDeUFPT2dBQUlBd2dEQ0FKRUFsQkFXdEphaUVNUVFBaEN3c2dDaUFJTEFBQUVDa2hEeUFGSUFVb0FnQWlFRUVCYWpZQ0FDQVFJQTg2QUFBZ0NFRUJhaUVJSUF0QkFXb2hDd3dCQ3dzTEEwQUNRQ0FDSUFaTEJFQWdCaTBBQUNJSFFTNUhEUUVnRFJCSUlRY2dCU0FGS0FJQUlnaEJBV28yQWdBZ0NDQUhPZ0FBSUFaQkFXb2hCZ3NnQ2lBR0lBSWdCU2dDQUJCd0lBVWdCU2dDQUNBQ0lBWnJhaUlGTmdJQUlBUWdCU0FESUFFZ0FHdHFJQUVnQWtZYk5nSUFJQWtRQ2hvZ0NVRVFhaVFBRHdzZ0NpQUhRUmgwUVJoMUVDa2hCeUFGSUFVb0FnQWlDRUVCYWpZQ0FDQUlJQWM2QUFBZ0JrRUJhaUVHREFBTEFBczJBUUovUWZRQkVCa2lBZ1IvSUFJZ0FDQUJRUU4wRUlRRElnQkJBRWdFUUNBQ0VCQkJBQThMSUFJZ0FEWUM4QUVnQWdVZ0F3c0xuUU1CQW44akFFSGdBbXNpQUNRQUlBQWdBallDMEFJZ0FDQUJOZ0xZQWlBREVGd2hCaUFESUFCQjRBRnFFSmdCSVFjZ0FFSFFBV29nQXlBQVFjd0NhaENYQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUWRnQ2FpQUFRZEFDYWhBMlJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFSFlBbW9RSVNBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBS0FMTUFpQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0J4Q0tBUTBBSUFCQjJBSnFFQ1VhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLOEFTQUVJQVlReEFJMkFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUWRnQ2FpQUFRZEFDYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBTFlBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUhnQW1va0FDQUNDMElCQVg4akFFRVFheUlESkFBZ0F5QUJOZ0lNSUFNZ0FqWUNDQ0FESUFOQkRHb1FVaUVCSUFCQjh4c2dBeWdDQ0JEZkFpRUFJQUVRVVNBRFFSQnFKQUFnQUF1eEFnSUVmZ1YvSXdCQklHc2lDQ1FBQWtBQ1FBSkFJQUVnQWtjRVFFSEVnUUVvQWdBaERFSEVnUUZCQURZQ0FDTUFRUkJySWdra0FCQVdHaU1BUVJCcklnb2tBQ01BUVJCcklnc2tBQ0FMSUFFZ0NFRWNha0VDRU5nQklBc3BBd0FoQkNBS0lBc3BBd2czQXdnZ0NpQUVOd01BSUF0QkVHb2tBQ0FLS1FNQUlRUWdDU0FLS1FNSU53TUlJQWtnQkRjREFDQUtRUkJxSkFBZ0NTa0RBQ0VFSUFnZ0NTa0RDRGNERUNBSUlBUTNBd2dnQ1VFUWFpUUFJQWdwQXhBaEJDQUlLUU1JSVFWQnhJRUJLQUlBSWdGRkRRRWdDQ2dDSENBQ1J3MENJQVVoQmlBRUlRY2dBVUhFQUVjTkF3d0NDeUFEUVFRMkFnQU1BZ3RCeElFQklBdzJBZ0FnQ0NnQ0hDQUNSZzBCQ3lBRFFRUTJBZ0FnQmlFRklBY2hCQXNnQUNBRk53TUFJQUFnQkRjRENDQUlRU0JxSkFBTHRnRUNBbndEZnlNQVFSQnJJZ1VrQUFKQUFrQUNRQ0FBSUFGSEJFQkJ4SUVCS0FJQUlRZEJ4SUVCUVFBMkFnQVFGaG9qQUVFUWF5SUdKQUFnQmlBQUlBVkJER3BCQVJEWUFTQUdLUU1BSUFZcEF3Z1EzUUVoQXlBR1FSQnFKQUJCeElFQktBSUFJZ0JGRFFFZ0JTZ0NEQ0FCUncwQ0lBTWhCQ0FBUWNRQVJ3MEREQUlMSUFKQkJEWUNBQXdDQzBIRWdRRWdCellDQUNBRktBSU1JQUZHRFFFTElBSkJCRFlDQUNBRUlRTUxJQVZCRUdva0FDQURDN1lCQWdKOUEzOGpBRUVRYXlJRkpBQUNRQUpBQWtBZ0FDQUJSd1JBUWNTQkFTZ0NBQ0VIUWNTQkFVRUFOZ0lBRUJZYUl3QkJFR3NpQmlRQUlBWWdBQ0FGUVF4cVFRQVEyQUVnQmlrREFDQUdLUU1JRU9FQ0lRTWdCa0VRYWlRQVFjU0JBU2dDQUNJQVJRMEJJQVVvQWd3Z0FVY05BaUFESVFRZ0FFSEVBRWNOQXd3Q0N5QUNRUVEyQWdBTUFndEJ4SUVCSUFjMkFnQWdCU2dDRENBQlJnMEJDeUFDUVFRMkFnQWdCQ0VEQ3lBRlFSQnFKQUFnQXd2R0FRSURmd0YrSXdCQkVHc2lCQ1FBQW40Q1FBSkFJQUFnQVVjRVFBSkFBa0FnQUMwQUFDSUZRUzFIRFFBZ0FFRUJhaUlBSUFGSERRQU1BUXRCeElFQktBSUFJUVpCeElFQlFRQTJBZ0FnQUNBRVFReHFJQU1RRmhEWkFTRUhBa0JCeElFQktBSUFJZ0FFUUNBRUtBSU1JQUZIRFFFZ0FFSEVBRVlOQkF3RkMwSEVnUUVnQmpZQ0FDQUVLQUlNSUFGR0RRUUxDd3NnQWtFRU5nSUFRZ0FNQWdzZ0FrRUVOZ0lBUW44TUFRdENBQ0FIZlNBSElBVkJMVVliQ3lFSElBUkJFR29rQUNBSEM5Y0JBZ04vQVg0akFFRVFheUlFSkFBQ2Z3SkFBa0FDUUNBQUlBRkhCRUFDUUFKQUlBQXRBQUFpQlVFdFJ3MEFJQUJCQVdvaUFDQUJSdzBBREFFTFFjU0JBU2dDQUNFR1FjU0JBVUVBTmdJQUlBQWdCRUVNYWlBREVCWVEyUUVoQndKQVFjU0JBU2dDQUNJQUJFQWdCQ2dDRENBQlJ3MEJJQUJCeEFCR0RRVU1CQXRCeElFQklBWTJBZ0FnQkNnQ0RDQUJSZzBEQ3dzTElBSkJCRFlDQUVFQURBTUxJQWRDLy8vLy93OVlEUUVMSUFKQkJEWUNBRUYvREFFTFFRQWdCNmNpQUdzZ0FDQUZRUzFHR3dzaEFDQUVRUkJxSkFBZ0FBdVNBd0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFNUVhDRUdJQUJCMEFGcUlBTWdBRUgvQVdvUW1RRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFR0lBbW9nQUVHQUFtb1FNVVVOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCaUFKcUVCOGdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDd0Evd0VnQUVIUUFXb2dBRUVRYWlBQVFReHFRZERRQUJDTkFRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4QUkyQWdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M5d0JBZ04vQVg0akFFRVFheUlFSkFBQ2Z3SkFBa0FDUUNBQUlBRkhCRUFDUUFKQUlBQXRBQUFpQlVFdFJ3MEFJQUJCQVdvaUFDQUJSdzBBREFFTFFjU0JBU2dDQUNFR1FjU0JBVUVBTmdJQUlBQWdCRUVNYWlBREVCWVEyUUVoQndKQVFjU0JBU2dDQUNJQUJFQWdCQ2dDRENBQlJ3MEJJQUJCeEFCR0RRVU1CQXRCeElFQklBWTJBZ0FnQkNnQ0RDQUJSZzBEQ3dzTElBSkJCRFlDQUVFQURBTUxJQWRDLy84RFdBMEJDeUFDUVFRMkFnQkIvLzhEREFFTFFRQWdCNmNpQUdzZ0FDQUZRUzFHR3dzaEFDQUVRUkJxSkFBZ0FFSC8vd054QzdZQkFnRitBbjhqQUVFUWF5SUZKQUFDUUFKQUlBQWdBVWNFUUVIRWdRRW9BZ0FoQmtIRWdRRkJBRFlDQUNBQUlBVkJER29nQXhBV0VNNENJUVFDUUVIRWdRRW9BZ0FpQUFSQUlBVW9BZ3dnQVVjTkFTQUFRY1FBUmcwRERBUUxRY1NCQVNBR05nSUFJQVVvQWd3Z0FVWU5Bd3NMSUFKQkJEWUNBRUlBSVFRTUFRc2dBa0VFTmdJQUlBUkNBRlVFUUVMLy8vLy8vLy8vLy84QUlRUU1BUXRDZ0lDQWdJQ0FnSUNBZnlFRUN5QUZRUkJxSkFBZ0JBdjBBUUVKZnlBQkVBMGhCQ0FCRUFraEJ5TUFRU0JySWdFa0FBSkFJQUZCR0dvZ0FCQ0FBeUlJTFFBQVJRMEFJQUZCQ0dvZ0FCREhBU0VKSUFBZ0FDZ0NBRUVNYXlnQ0FHb2lCU2dDQkNFS0FrQkJmeUFGSWdJb0Frd1FYMFVFUUNBQ0tBSk1JUUlNQVFzZ0FnSi9Jd0JCRUdzaUF5UUFJQU5CQ0dvaUJpQUNFQThnQmhBeVFTQVFLU0VDSUFZUURpQURRUkJxSkFBZ0FnczJBa3dMSUFKQkdIUkJHSFVoQWlBQklBa29BZ0FnQkNBRUlBZHFJZ01nQkNBS1FiQUJjVUVnUmhzZ0F5QUZJQUlRVmpZQ0VDQUJLQUlRRFFBZ0FDQUFLQUlBUVF4cktBSUFha0VGRUlBQkN5QUlFUDRDSUFGQklHb2tBQXZEQVFJQ2Z3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUlBQWdBVWNFUUVIRWdRRW9BZ0FoQlVIRWdRRkJBRFlDQUNBQUlBUkJER29nQXhBV0VNNENJUVlDUUVIRWdRRW9BZ0FpQUFSQUlBUW9BZ3dnQVVjTkFTQUFRY1FBUmcwRURBTUxRY1NCQVNBRk5nSUFJQVFvQWd3Z0FVWU5BZ3NMSUFKQkJEWUNBRUVBREFJTElBWkNnSUNBZ0hoVElBWkMvLy8vL3dkVmNnMEFJQWFuREFFTElBSkJCRFlDQUVILy8vLy9CeUFHUWdCVkRRQWFRWUNBZ0lCNEN5RUFJQVJCRUdva0FDQUFDMVFCQW44akFFRVFheUlESkFBZ0EwRUNOZ0lNSUFJZ0FSQUpJZ1JMQkVBUUZ3QUxJQUVRRFNFQklBTWdCQ0FDYXpZQ0JDQUFJQUVnQW1vZ0EwRU1haUFEUVFScUVLSUJLQUlBRVBVQklBTkJFR29rQUFzS0FDQUJJQUJyUVF4dEN4Z0FJQUFnQUNnQ0FFRU1heWdDQUdwQkFoRUFBQm9nQUF1VUFRRUVmeU1BUVJCcklnVWtBQ0FCSUFJUW9RSWlCRUh2Ly8vL0EwMEVRQUpBSUFSQkFVMEVRQ0FBSUFRUU9pQUFJUU1NQVFzZ0FDQUFJQVFRZ2dGQkFXb2lCaENCQVNJREVFMGdBQ0FHRUV3Z0FDQUVFRGtMQTBBZ0FTQUNSd1JBSUFNZ0FSQXpJQU5CQkdvaEF5QUJRUVJxSVFFTUFRc0xJQVZCQURZQ0RDQURJQVZCREdvUU15QUZRUkJxSkFBUEN4QVhBQXNXQUNBQUlBRWdBa0tBZ0lDQWdJQ0FnSUIvRU04Q0M1SUVBZ2QvQkg0akFFRVFheUlJSkFBQ1FBSkFBa0FnQWtFa1RBUkFJQUF0QUFBaUJRMEJJQUFoQkF3Q0MwSEVnUUZCSERZQ0FFSUFJUU1NQWdzZ0FDRUVBa0FEUUNBRlFSaDBRUmgxRUhGRkRRRWdCQzBBQVNFRklBUkJBV29oQkNBRkRRQUxEQUVMQWtBZ0JDMEFBQ0lGUVN0ckRnTUFBUUFCQzBGL1FRQWdCVUV0UmhzaEJ5QUVRUUZxSVFRTEFuOENRQ0FDUVc5eERRQWdCQzBBQUVFd1J3MEFRUUVoQ1NBRUxRQUJRZDhCY1VIWUFFWUVRQ0FFUVFKcUlRUkJFQXdDQ3lBRVFRRnFJUVFnQWtFSUlBSWJEQUVMSUFKQkNpQUNHd3NpQ3F3aERFRUFJUUlEUUFKQVFWQWhCUUpBSUFRc0FBQWlCa0V3YTBIL0FYRkJDa2tOQUVHcGZ5RUZJQVpCNFFCclFmOEJjVUVhU1EwQVFVa2hCU0FHUWNFQWEwSC9BWEZCR1VzTkFRc2dCU0FHYWlJR0lBcE9EUUFnQ0NBTVFnQWdDMElBRUN0QkFTRUZBa0FnQ0NrRENFSUFVZzBBSUFzZ0RINGlEU0FHckNJT1FuK0ZWZzBBSUEwZ0Rud2hDMEVCSVFrZ0FpRUZDeUFFUVFGcUlRUWdCU0VDREFFTEN5QUJCRUFnQVNBRUlBQWdDUnMyQWdBTEFrQUNRQ0FDQkVCQnhJRUJRY1FBTmdJQUlBZEJBQ0FEUWdHRElneFFHeUVISUFNaEN3d0JDeUFESUF0V0RRRWdBMElCZ3lFTUN5QU1weUFIY2tVRVFFSEVnUUZCeEFBMkFnQWdBMElCZlNFRERBSUxJQU1nQzFvTkFFSEVnUUZCeEFBMkFnQU1BUXNnQ3lBSHJDSURoU0FEZlNFREN5QUlRUkJxSkFBZ0F3c3hBUUYvUWNpR0FTZ0NBQ0VCSUFBRVFFSEloZ0ZCMklVQklBQWdBRUYvUmhzMkFnQUxRWDhnQVNBQlFkaUZBVVliQzYwSUFRVi9JQUVvQWdBaEJBSkFBa0FDUUFKQUFrQUNRQUpBQW44Q1FBSkFBa0FDUUNBRFJRMEFJQU1vQWdBaUJrVU5BQ0FBUlFSQUlBSWhBd3dEQ3lBRFFRQTJBZ0FnQWlFRERBRUxBa0JCeUlZQktBSUFLQUlBUlFSQUlBQkZEUUVnQWtVTkRDQUNJUVlEUUNBRUxBQUFJZ01FUUNBQUlBTkIvNzhEY1RZQ0FDQUFRUVJxSVFBZ0JFRUJhaUVFSUFaQkFXc2lCZzBCREE0TEN5QUFRUUEyQWdBZ0FVRUFOZ0lBSUFJZ0Jtc1BDeUFDSVFNZ0FFVU5Bd3dGQ3lBRUVKNEJEd3RCQVNFRkRBTUxRUUFNQVF0QkFRc2hCUU5BSUFWRkJFQWdCQzBBQUVFRGRpSUZRUkJySUFaQkduVWdCV3B5UVFkTERRTUNmeUFFUVFGcUlnVWdCa0dBZ0lBUWNVVU5BQm9nQlMwQUFFSEFBWEZCZ0FGSEJFQWdCRUVCYXlFRURBY0xJQVJCQW1vaUJTQUdRWUNBSUhGRkRRQWFJQVV0QUFCQndBRnhRWUFCUndSQUlBUkJBV3NoQkF3SEN5QUVRUU5xQ3lFRUlBTkJBV3NoQTBFQklRVU1BUXNEUUFKQUlBUkJBM0VnQkMwQUFDSUdRUUZyUWY0QVMzSU5BQ0FFS0FJQUlnWkJnWUtFQ0dzZ0JuSkJnSUdDaEhoeERRQURRQ0FEUVFScklRTWdCQ2dDQkNFR0lBUkJCR29oQkNBR0lBWkJnWUtFQ0d0eVFZQ0Jnb1I0Y1VVTkFBc0xJQVpCL3dGeElnVkJBV3RCL2dCTkJFQWdBMEVCYXlFRElBUkJBV29oQkF3QkN3c2dCVUhDQVdzaUJVRXlTdzBESUFSQkFXb2hCQ0FGUVFKMFFiQXJhaWdDQUNFR1FRQWhCUXdBQ3dBTEEwQWdCVVVFUUNBRFJRMEhBMEFDUUFKQUFrQWdCQzBBQUNJRlFRRnJJZ2RCL2dCTEJFQWdCU0VHREFFTElBUkJBM0VnQTBFRlNYSU5BUUpBQTBBZ0JDZ0NBQ0lHUVlHQ2hBaHJJQVp5UVlDQmdvUjRjUTBCSUFBZ0JrSC9BWEUyQWdBZ0FDQUVMUUFCTmdJRUlBQWdCQzBBQWpZQ0NDQUFJQVF0QUFNMkFnd2dBRUVRYWlFQUlBUkJCR29oQkNBRFFRUnJJZ05CQkVzTkFBc2dCQzBBQUNFR0N5QUdRZjhCY1NJRlFRRnJJUWNMSUFkQi9nQkxEUUVMSUFBZ0JUWUNBQ0FBUVFScUlRQWdCRUVCYWlFRUlBTkJBV3NpQXcwQkRBa0xDeUFGUWNJQmF5SUZRVEpMRFFNZ0JFRUJhaUVFSUFWQkFuUkJzQ3RxS0FJQUlRWkJBU0VGREFFTElBUXRBQUFpQlVFRGRpSUhRUkJySUFjZ0JrRWFkV3B5UVFkTERRRUNRQUpBQW44Z0JFRUJhaUlISUFWQmdBRnJJQVpCQm5SeUlnVkJBRTROQUJvZ0J5MEFBRUdBQVdzaUIwRS9TdzBCSUFSQkFtb2lDQ0FISUFWQkJuUnlJZ1ZCQUU0TkFCb2dDQzBBQUVHQUFXc2lCMEUvU3cwQklBY2dCVUVHZEhJaEJTQUVRUU5xQ3lFRUlBQWdCVFlDQUNBRFFRRnJJUU1nQUVFRWFpRUFEQUVMUWNTQkFVRVpOZ0lBSUFSQkFXc2hCQXdGQzBFQUlRVU1BQXNBQ3lBRVFRRnJJUVFnQmcwQklBUXRBQUFoQmdzZ0JrSC9BWEVOQUNBQUJFQWdBRUVBTmdJQUlBRkJBRFlDQUFzZ0FpQURhdzhMUWNTQkFVRVpOZ0lBSUFCRkRRRUxJQUVnQkRZQ0FBdEJmdzhMSUFFZ0JEWUNBQ0FDQ3lNQkFuOGdBQ0VCQTBBZ0FTSUNRUVJxSVFFZ0FpZ0NBQTBBQ3lBQ0lBQnJRUUoxQ3c0QUlBQVEzUUlFUUNBQUVCQUxDeXdCQVg4akFFRVFheUlDSkFBZ0FpQUJOZ0lNSUFCQjVBQkI3aHdnQVJDMUFTRUFJQUpCRUdva0FDQUFDeWtCQVg4akFFRVFheUlDSkFBZ0FpQUJOZ0lNSUFCQjlCd2dBUkRmQWlFQUlBSkJFR29rQUNBQUN4WUFJQUFRUlVFQVJ5QUFRU0J5UWVFQWEwRUdTWElMNWdJQkJIOGdBRUZBYXlJRFFhd29OZ0lBSUFOQjVDRTJBZ0FnQUVIc0pUWUNBQ0FEUVpRbU5nSUFJQUJCZ0NZMkFnZ2dBRUdrSmlnQ0FDSUJOZ0lBSUFBZ0FVRU1heWdDQUdwQnFDWW9BZ0EyQWdBZ0FFRUFOZ0lFSUFBZ0FDZ0NBRUVNYXlnQ0FHb2lBa0VBTmdJVUlBSWdBRUVNYWlJQk5nSVlJQUpCQURZQ0RDQUNRb0tnZ0lEZ0FEY0NCQ0FDSUFGRk5nSVFJQUpCSUdwQkFFRW9FRVlhSUFKQkhHb1FqZ0lnQWtFQU5nSklJQUpCZnpZQ1RDQUFRUWhxSWdKQnJDWW9BZ0FpQkRZQ0FDQUNJQVJCREdzb0FnQnFRYkFtS0FJQU5nSUFJQUJCb0NZb0FnQWlBallDQUNBQUlBSkJER3NvQWdCcVFiUW1LQUlBTmdJQUlBQkJ1Q1lvQWdBMkFnZ2dBRUhzSlRZQ0FDQURRWlFtTmdJQUlBQkJnQ1kyQWdnZ0FVR3NIellDQUNBQlFRUnFFSTRDSUFGQ0FEY0NHQ0FCUWdBM0FoQWdBVUlBTndJSUlBRkJwQ0UyQWdBZ0FVRWdhaEFSR2lBQlFSZzJBakFnQVVFQU5nSXNJQUFMdkFJQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FCUVFsckRoSUFDQWtLQ0FrQkFnTUVDZ2tLQ2dnSkJRWUhDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUVvQWdBMkFnQVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUV5QVFBM0F3QVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUV6QVFBM0F3QVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUV3QUFBM0F3QVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUV4QUFBM0F3QVBDeUFDSUFJb0FnQkJCMnBCZUhFaUFVRUlhallDQUNBQUlBRXJBd0E1QXdBUEN5QUFJQUpCTXhFREFBc1BDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUUwQWdBM0F3QVBDeUFDSUFJb0FnQWlBVUVFYWpZQ0FDQUFJQUUxQWdBM0F3QVBDeUFDSUFJb0FnQkJCMnBCZUhFaUFVRUlhallDQUNBQUlBRXBBd0EzQXdBTGF3RUVmeUFBS0FJQUxBQUFFRVZGQkVCQkFBOExBMEFnQUNnQ0FDRURRWDhoQVNBQ1FjeVpzK1lBVFFSQVFYOGdBeXdBQUVFd2F5SUVJQUpCQ213aUFXb2dCRUgvLy8vL0J5QUJhMG9iSVFFTElBQWdBMEVCYWpZQ0FDQUJJUUlnQXl3QUFSQkZEUUFMSUFFTDlCSUNFWDhCZmlNQVFkQUFheUlGSkFBZ0JTQUJOZ0pNSUFWQk4yb2hGQ0FGUVRocUlSQkJBQ0VCQWtBQ1FBSkFBa0FEUUNBQlFmLy8vLzhISUF0clNnMEJJQUVnQzJvaEN5QUZLQUpNSWdvaEFRSkFBa0FDUUNBS0xRQUFJZ2tFUUFOQUFrQUNRQ0FKUWY4QmNTSUdSUVJBSUFFaENRd0JDeUFHUVNWSERRRWdBU0VKQTBBZ0FTMEFBVUVsUncwQklBVWdBVUVDYWlJR05nSk1JQWxCQVdvaENTQUJMUUFDSVFnZ0JpRUJJQWhCSlVZTkFBc0xJQWtnQ21zaUFVSC8vLy8vQnlBTGF5SVZTZzBISUFBRVFDQUFJQW9nQVJBcUN5QUJEUVpCZnlFT1FRRWhCaUFGS0FKTUxBQUJFRVVoQVNBRktBSk1JUWdDUUNBQlJRMEFJQWd0QUFKQkpFY05BQ0FJTEFBQlFUQnJJUTVCQVNFU1FRTWhCZ3NnQlNBR0lBaHFJZ0UyQWt4QkFDRU1Ba0FnQVN3QUFDSVJRU0JySWdoQkgwc0VRQ0FCSVFZTUFRc2dBU0VHUVFFZ0NIUWlCMEdKMFFSeFJRMEFBMEFnQlNBQlFRRnFJZ1kyQWt3Z0J5QU1jaUVNSUFFc0FBRWlFVUVnYXlJSVFTQlBEUUVnQmlFQlFRRWdDSFFpQjBHSjBRUnhEUUFMQ3dKQUlCRkJLa1lFUUNBRkFuOENRQ0FHTEFBQkVFVkZEUUFnQlNnQ1RDSUJMUUFDUVNSSERRQWdBU3dBQVVFQ2RDQUVha0hBQVd0QkNqWUNBQ0FCTEFBQlFRTjBJQU5xUVlBRGF5Z0NBQ0VOUVFFaEVpQUJRUU5xREFFTElCSU5Ca0VBSVJKQkFDRU5JQUFFUUNBQ0lBSW9BZ0FpQVVFRWFqWUNBQ0FCS0FJQUlRMExJQVVvQWt4QkFXb0xJZ0UyQWt3Z0RVRUFUZzBCUVFBZ0RXc2hEU0FNUVlEQUFISWhEQXdCQ3lBRlFjd0FhaERaQWlJTlFRQklEUWdnQlNnQ1RDRUJDMEVBSVFaQmZ5RUhBbjlCQUNBQkxRQUFRUzVIRFFBYUlBRXRBQUZCS2tZRVFDQUZBbjhDUUNBQkxBQUNFRVZGRFFBZ0JTZ0NUQ0lCTFFBRFFTUkhEUUFnQVN3QUFrRUNkQ0FFYWtIQUFXdEJDallDQUNBQkxBQUNRUU4wSUFOcVFZQURheWdDQUNFSElBRkJCR29NQVFzZ0VnMEdJQUFFZnlBQ0lBSW9BZ0FpQVVFRWFqWUNBQ0FCS0FJQUJVRUFDeUVISUFVb0FreEJBbW9MSWdFMkFrd2dCMEYvYzBFZmRnd0JDeUFGSUFGQkFXbzJBa3dnQlVITUFHb1EyUUloQnlBRktBSk1JUUZCQVFzaEV3TkFJQVloRDBFY0lRa2dBU3dBQUVIQkFHdEJPVXNOQ1NBRklBRkJBV29pRVRZQ1RDQUJMQUFBSVFZZ0VTRUJJQVlnRDBFNmJHcEIveTFxTFFBQUlnWkJBV3RCQ0VrTkFBc0NRQUpBSUFaQkcwY0VRQ0FHUlEwTElBNUJBRTRFUUNBRUlBNUJBblJxSUFZMkFnQWdCU0FESUE1QkEzUnFLUU1BTndOQURBSUxJQUJGRFFnZ0JVRkFheUFHSUFJUTJBSWdCU2dDVENFUkRBSUxJQTVCQUU0TkNndEJBQ0VCSUFCRkRRY0xJQXhCLy85N2NTSUlJQXdnREVHQXdBQnhHeUVHUVFBaERFSHZHaUVPSUJBaENRSkFBa0FDUUFKL0FrQUNRQUpBQWtBQ2Z3SkFBa0FDUUFKQUFrQUNRQUpBSUJGQkFXc3NBQUFpQVVGZmNTQUJJQUZCRDNGQkEwWWJJQUVnRHhzaUFVSFlBR3NPSVFRVUZCUVVGQlFVRkE0VUR3WU9EZzRVQmhRVUZCUUNCUU1VRkFrVUFSUVVCQUFMQWtBZ0FVSEJBR3NPQnc0VUN4UU9EZzRBQ3lBQlFkTUFSZzBKREJNTElBVXBBMEFoRmtIdkdnd0ZDMEVBSVFFQ1FBSkFBa0FDUUFKQUFrQUNRQ0FQUWY4QmNRNElBQUVDQXdRYUJRWWFDeUFGS0FKQUlBczJBZ0FNR1FzZ0JTZ0NRQ0FMTmdJQURCZ0xJQVVvQWtBZ0M2dzNBd0FNRndzZ0JTZ0NRQ0FMT3dFQURCWUxJQVVvQWtBZ0N6b0FBQXdWQ3lBRktBSkFJQXMyQWdBTUZBc2dCU2dDUUNBTHJEY0RBQXdUQ3lBSFFRZ2dCMEVJU3hzaEJ5QUdRUWh5SVFaQitBQWhBUXNnRUNFSUlBRkJJSEVoRHlBRktRTkFJaFpRUlFSQUEwQWdDRUVCYXlJSUlCYW5RUTl4UVpBeWFpMEFBQ0FQY2pvQUFDQVdRZzlXSVFvZ0ZrSUVpQ0VXSUFvTkFBc0xJQWdoQ2lBR1FRaHhSU0FGS1FOQVVISU5BeUFCUVFSMlFlOGFhaUVPUVFJaERBd0RDeUFRSVFFZ0JTa0RRQ0lXVUVVRVFBTkFJQUZCQVdzaUFTQVdwMEVIY1VFd2Nqb0FBQ0FXUWdkV0lRZ2dGa0lEaUNFV0lBZ05BQXNMSUFFaENpQUdRUWh4UlEwQ0lBY2dFQ0FLYXlJQlFRRnFJQUVnQjBnYklRY01BZ3NnQlNrRFFDSVdRZ0JUQkVBZ0JVSUFJQlo5SWhZM0EwQkJBU0VNUWU4YURBRUxJQVpCZ0JCeEJFQkJBU0VNUWZBYURBRUxRZkVhUWU4YUlBWkJBWEVpREJzTElRNGdGaUFRRUk4QklRb0xJQk5CQUNBSFFRQklHdzBPSUFaQi8vOTdjU0FHSUJNYklRWWdCU2tEUUNJV1FnQlNJQWR5UlFSQUlCQWhDa0VBSVFjTURBc2dCeUFXVUNBUUlBcHJhaUlCSUFFZ0IwZ2JJUWNNQ3dzZ0JTZ0NRQ0lCUWZJZUlBRWJJZ29pQ1VFQVFmLy8vLzhISUFjZ0IwRUFTQnNpQmhEY0FTSUJJQWxySUFZZ0FSc2lBU0FLYWlFSklBZEJBRTRFUUNBSUlRWWdBU0VIREFzTElBZ2hCaUFCSVFjZ0NTMEFBQTBOREFvTElBY0VRQ0FGS0FKQURBSUxRUUFoQVNBQVFTQWdEVUVBSUFZUUxnd0NDeUFGUVFBMkFnd2dCU0FGS1FOQVBnSUlJQVVnQlVFSWFpSUJOZ0pBUVg4aEJ5QUJDeUVKUVFBaEFRSkFBMEFnQ1NnQ0FDSUlSUTBCSUFWQkJHb2dDQkRjQWlJS1FRQklJZ2dnQ2lBSElBRnJTM0pGQkVBZ0NVRUVhaUVKSUFjZ0FTQUthaUlCU3cwQkRBSUxDeUFJRFEwTFFUMGhDU0FCUVFCSURRc2dBRUVnSUEwZ0FTQUdFQzRnQVVVRVFFRUFJUUVNQVF0QkFDRUhJQVVvQWtBaENRTkFJQWtvQWdBaUNFVU5BU0FGUVFScUlBZ1EzQUlpQ0NBSGFpSUhJQUZMRFFFZ0FDQUZRUVJxSUFnUUtpQUpRUVJxSVFrZ0FTQUhTdzBBQ3dzZ0FFRWdJQTBnQVNBR1FZREFBSE1RTGlBTklBRWdBU0FOU0JzaEFRd0lDeUFUUVFBZ0IwRUFTQnNOQ0VFOUlRa2dBQ0FGS3dOQUlBMGdCeUFHSUFGQk1oRWRBQ0lCUVFCT0RRY01DUXNnQlNBRktRTkFQQUEzUVFFaEJ5QVVJUW9nQ0NFR0RBUUxJQVVnQVVFQmFpSUdOZ0pNSUFFdEFBRWhDU0FHSVFFTUFBc0FDeUFBRFFjZ0VrVU5Ba0VCSVFFRFFDQUVJQUZCQW5ScUtBSUFJZ0FFUUNBRElBRkJBM1JxSUFBZ0FoRFlBa0VCSVFzZ0FVRUJhaUlCUVFwSERRRU1DUXNMUVFFaEN5QUJRUXBQRFFjRFFDQUVJQUZCQW5ScUtBSUFEUUVnQVVFQmFpSUJRUXBIRFFBTERBY0xRUndoQ1F3RUN5QUpJQXBySWc4Z0J5QUhJQTlJR3lJSVFmLy8vLzhISUF4clNnMENRVDBoQ1NBSUlBeHFJZ2NnRFNBSElBMUtHeUlCSUJWS0RRTWdBRUVnSUFFZ0J5QUdFQzRnQUNBT0lBd1FLaUFBUVRBZ0FTQUhJQVpCZ0lBRWN4QXVJQUJCTUNBSUlBOUJBQkF1SUFBZ0NpQVBFQ29nQUVFZ0lBRWdCeUFHUVlEQUFITVFMZ3dCQ3d0QkFDRUxEQU1MUVQwaENRdEJ4SUVCSUFrMkFnQUxRWDhoQ3dzZ0JVSFFBR29rQUNBTEMzOENBWDhCZmlBQXZTSURRalNJcDBIL0QzRWlBa0gvRDBjRWZDQUNSUVJBSUFFZ0FFUUFBQUFBQUFBQUFHRUVmMEVBQlNBQVJBQUFBQUFBQVBCRG9pQUJFTnNDSVFBZ0FTZ0NBRUZBYWdzMkFnQWdBQThMSUFFZ0FrSCtCMnMyQWdBZ0EwTC8vLy8vLy8vL2g0Qi9nMEtBZ0lDQWdJQ0E4RCtFdndVZ0FBc0xFZ0FnQUVVRVFFRUFEd3NnQUNBQkVOb0JDeVVBSUFCQkFFY2dBRUc0TFVkeElBQkIwQzFIY1NBQVFmQ0dBVWR4SUFCQmlJY0JSM0VMNkFJQkEzOENRQ0FCTFFBQURRQkJpaDRRMndFaUFRUkFJQUV0QUFBTkFRc2dBRUVNYkVId0xXb1Eyd0VpQVFSQUlBRXRBQUFOQVF0QmtSNFEyd0VpQVFSQUlBRXRBQUFOQVF0QnB4NGhBUXNDUUFOQUlBRWdBbW90QUFBaUJFVWdCRUV2Um5KRkJFQkJGeUVFSUFKQkFXb2lBa0VYUncwQkRBSUxDeUFDSVFRTFFhY2VJUU1DUUFKQUFrQUNRQUpBSUFFdEFBQWlBa0V1UmcwQUlBRWdCR290QUFBTkFDQUJJUU1nQWtIREFFY05BUXNnQXkwQUFVVU5BUXNnQTBHbkhoQzJBVVVOQUNBRFFmRWRFTFlCRFFFTElBQkZCRUJCbEMwaEFpQURMUUFCUVM1R0RRSUxRUUFQQzBFQUlRRkI3SVlCS0FJQUlnSUVRQU5BSUFNZ0FrRUlhaEMyQVVVTkFpQUNLQUlnSWdJTkFBc0xRU1FRR1NJQ0JFQWdBa0dVTFNrQ0FEY0NBQ0FDUVFocUlnRWdBeUFFRUVJYUlBRWdCR3BCQURvQUFDQUNRZXlHQVNnQ0FEWUNJRUhzaGdFZ0FqWUNBQ0FDSVFFTElBRkJsQzBnQUNBQmNoc2hBZ3NnQWd1TkhnSVBmd1YrSXdCQmtBRnJJZ1FrQUNBRVFRQkJrQUVRUmlJRFFYODJBa3dnQXlBQU5nSXNJQU5CTVRZQ0lDQURJQUEyQWxRZ0FTRUVJQUloRGlNQVFiQUNheUlHSkFBZ0F5Z0NUQm9DUUFKQUFrQUNRQ0FES0FJRURRQWdBeERxQVJvZ0F5Z0NCQTBBREFFTElBUXRBQUFpQUVVTkFnSkFBMEFDUUFKQUlBQkIvd0Z4RUhFRVFBTkFJQVFpQUVFQmFpRUVJQUF0QUFFUWNRMEFDeUFEUWdBUVV3TkFBbjhnQXlnQ0JDSUJJQU1vQW1oSEJFQWdBeUFCUVFGcU5nSUVJQUV0QUFBTUFRc2dBeEFTQ3hCeERRQUxJQU1vQWdRaEJDQURLUU53UWdCWkJFQWdBeUFFUVFGcklnUTJBZ1FMSUFRZ0F5Z0NMR3VzSUFNcEEzZ2dGSHg4SVJRTUFRc0Nmd0pBQWtBZ0JDMEFBRUVsUmdSQUlBUXRBQUVpQUVFcVJnMEJJQUJCSlVjTkFnc2dBMElBRUZNQ1FDQUVMUUFBUVNWR0JFQURRQUovSUFNb0FnUWlBQ0FES0FKb1J3UkFJQU1nQUVFQmFqWUNCQ0FBTFFBQURBRUxJQU1RRWdzaUFCQnhEUUFMSUFSQkFXb2hCQXdCQ3lBREtBSUVJZ0FnQXlnQ2FFY0VRQ0FESUFCQkFXbzJBZ1FnQUMwQUFDRUFEQUVMSUFNUUVpRUFDeUFFTFFBQUlBQkhCRUFnQXlrRGNFSUFXUVJBSUFNZ0F5Z0NCRUVCYXpZQ0JBc2dBRUVBVGcwS1FRQWhEQ0FOUlEwSURBb0xJQU1vQWdRZ0F5Z0NMR3VzSUFNcEEzZ2dGSHg4SVJRZ0JDRUFEQU1MUVFBaEFpQUVRUUpxREFFTEFrQWdBQkJGUlEwQUlBUXRBQUpCSkVjTkFDQUVMUUFCUVRCcklRQWpBRUVRYXlJQklBNDJBZ3dnQVNBT0lBQkJBblJCQkd0QkFDQUFRUUZMRzJvaUFFRUVhallDQ0NBQUtBSUFJUUlnQkVFRGFnd0JDeUFPS0FJQUlRSWdEa0VFYWlFT0lBUkJBV29MSVFCQkFDRU1RUUFoQkNBQUxRQUFFRVVFUUFOQUlBQXRBQUFnQkVFS2JHcEJNR3NoQkNBQUxRQUJJUUVnQUVFQmFpRUFJQUVRUlEwQUN3c2dBQzBBQUNJRlFlMEFSd1IvSUFBRlFRQWhDU0FDUVFCSElRd2dBQzBBQVNFRlFRQWhDaUFBUVFGcUN5SUJRUUZxSVFCQkF5RUhBa0FDUUFKQUFrQUNRQUpBSUFWQndRQnJEam9FQ1FRSkJBUUVDUWtKQ1FNSkNRa0pDUWtFQ1FrSkNRUUpDUVFKQ1FrSkNRUUpCQVFFQkFRQUJBVUpBUWtFQkFRSkNRUUNCQWtKQkFrQ0NRc2dBVUVDYWlBQUlBRXRBQUZCNkFCR0lnRWJJUUJCZmtGL0lBRWJJUWNNQkFzZ0FVRUNhaUFBSUFFdEFBRkI3QUJHSWdFYklRQkJBMEVCSUFFYklRY01Bd3RCQVNFSERBSUxRUUloQnd3QkMwRUFJUWNnQVNFQUMwRUJJQWNnQUMwQUFDSUJRUzl4UVFOR0lnVWJJUThDUUNBQlFTQnlJQUVnQlJzaUMwSGJBRVlOQUFKQUlBdEI3Z0JIQkVBZ0MwSGpBRWNOQVNBRVFRRWdCRUVCU2hzaEJBd0NDeUFDSUE4Z0ZCRGdBZ3dDQ3lBRFFnQVFVd05BQW44Z0F5Z0NCQ0lCSUFNb0FtaEhCRUFnQXlBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQXhBU0N4QnhEUUFMSUFNb0FnUWhBU0FES1FOd1FnQlpCRUFnQXlBQlFRRnJJZ0UyQWdRTElBRWdBeWdDTEd1c0lBTXBBM2dnRkh4OElSUUxJQU1nQkt3aUVoQlRBa0FnQXlnQ0JDSUJJQU1vQW1oSEJFQWdBeUFCUVFGcU5nSUVEQUVMSUFNUUVrRUFTQTBFQ3lBREtRTndRZ0JaQkVBZ0F5QURLQUlFUVFGck5nSUVDMEVRSVFFQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQzBIWUFHc09JUVlMQ3dJTEN3c0xDd0VMQWdRQkFRRUxCUXNMQ3dzTEF3WUxDd0lMQkFzTEJnQUxJQXRCd1FCcklnRkJCa3RCQVNBQmRFSHhBSEZGY2cwS0N5QUdRUWhxSUFNZ0QwRUFFT01DSUFNcEEzaENBQ0FES0FJRUlBTW9BaXhyckgxUkRROGdBa1VOQ1NBR0tRTVFJUklnQmlrRENDRVRJQThPQXdVR0J3a0xJQXRCN3dGeFFlTUFSZ1JBSUFaQklHcEJmMEdCQWhCR0dpQUdRUUE2QUNBZ0MwSHpBRWNOQ0NBR1FRQTZBRUVnQmtFQU9nQXVJQVpCQURZQktnd0lDeUFHUVNCcUlBQXRBQUVpQVVIZUFFWWlCVUdCQWhCR0dpQUdRUUE2QUNBZ0FFRUNhaUFBUVFGcUlBVWJJUWdDZndKQUFrQWdBRUVDUVFFZ0JSdHFMUUFBSWdCQkxVY0VRQ0FBUWQwQVJnMEJJQUZCM2dCSElRY2dDQXdEQ3lBR0lBRkIzZ0JISWdjNkFFNE1BUXNnQmlBQlFkNEFSeUlIT2dCK0N5QUlRUUZxQ3lFQUEwQUNRQ0FBTFFBQUlnRkJMVWNFUUNBQlJRMFBJQUZCM1FCSERRRU1DZ3RCTFNFQklBQXRBQUVpQlVVZ0JVSGRBRVp5RFFBZ0FFRUJhaUVJQWtBZ0JTQUFRUUZyTFFBQUlnQk5CRUFnQlNFQkRBRUxBMEFnQUVFQmFpSUFJQVpCSUdwcUlBYzZBQUFnQUNBSUxRQUFJZ0ZKRFFBTEN5QUlJUUFMSUFFZ0Jtb2dCem9BSVNBQVFRRnFJUUFNQUFzQUMwRUlJUUVNQWd0QkNpRUJEQUVMUVFBaEFRdENBQ0VTUVFBaEJVRUFJUWhCQUNFSEl3QkJFR3NpRUNRQUFrQWdBVUVCUnlBQlFTUk5jVVVFUUVIRWdRRkJIRFlDQUF3QkN3TkFBbjhnQXlnQ0JDSUVJQU1vQW1oSEJFQWdBeUFFUVFGcU5nSUVJQVF0QUFBTUFRc2dBeEFTQ3lJRUVIRU5BQXNDUUFKQUlBUkJLMnNPQXdBQkFBRUxRWDlCQUNBRVFTMUdHeUVISUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQUlRUU1BUXNnQXhBU0lRUUxBa0FDUUFKQUFrQWdBVUZ2Y1NBRVFUQkhja1VFUUFKL0lBTW9BZ1FpQkNBREtBSm9Sd1JBSUFNZ0JFRUJhallDQkNBRUxRQUFEQUVMSUFNUUVnc2lCRUZmY1VIWUFFWUVRRUVRSVFFQ2Z5QURLQUlFSWdRZ0F5Z0NhRWNFUUNBRElBUkJBV28yQWdRZ0JDMEFBQXdCQ3lBREVCSUxJZ1JCb1NscUxRQUFRUkJKRFFNZ0F5a0RjRUlBV1FSQUlBTWdBeWdDQkVFQmF6WUNCQXNnQTBJQUVGTU1CZ3NnQVEwQlFRZ2hBUXdDQ3lBQlFRb2dBUnNpQVNBRVFhRXBhaTBBQUVzTkFDQURLUU53UWdCWkJFQWdBeUFES0FJRVFRRnJOZ0lFQ3lBRFFnQVFVMEhFZ1FGQkhEWUNBQXdFQ3lBQlFRcEhEUUFnQkVFd2F5SUZRUWxOQkVCQkFDRUJBMEFnQVVFS2JDQUZhaUlCUVptejVzd0JTUUovSUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQURBRUxJQU1RRWdzaUJFRXdheUlGUVFsTmNRMEFDeUFCclNFU0N3SkFJQVZCQ1VzTkFDQVNRZ3ArSVJNZ0JhMGhGUU5BQW44Z0F5Z0NCQ0lCSUFNb0FtaEhCRUFnQXlBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQXhBU0N5SUVRVEJySWdWQkNVc2dFeUFWZkNJU1FwcXo1c3lacytiTUdWcHlEUUVnRWtJS2ZpSVRJQVd0SWhWQ2Y0VllEUUFMUVFvaEFRd0NDMEVLSVFFZ0JVRUpUUTBCREFJTElBRWdBVUVCYTNFRVFDQUVRYUVwYWkwQUFDSUlJQUZKQkVBRFFDQUJJQVZzSUFocUlnVkJ4K1B4T0VrQ2Z5QURLQUlFSWdRZ0F5Z0NhRWNFUUNBRElBUkJBV28yQWdRZ0JDMEFBQXdCQ3lBREVCSUxJZ1JCb1NscUxRQUFJZ2dnQVVseERRQUxJQVd0SVJJTElBRWdDRTBOQVNBQnJTRVRBMEFnRWlBVGZpSVZJQWl0UXY4Qmd5SVdRbitGVmcwQ0lCVWdGbndoRWlBQkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUWFFcGFpMEFBQ0lJVFEwQ0lCQWdFMElBSUJKQ0FCQXJJQkFwQXdoUURRQUxEQUVMSUFGQkYyeEJCWFpCQjNGQm9TdHFMQUFBSVJFZ0JFR2hLV290QUFBaUJTQUJTUVJBQTBBZ0NDQVJkQ0FGY2lJSVFZQ0FnTUFBU1FKL0lBTW9BZ1FpQkNBREtBSm9Sd1JBSUFNZ0JFRUJhallDQkNBRUxRQUFEQUVMSUFNUUVnc2lCRUdoS1dvdEFBQWlCU0FCU1hFTkFBc2dDSzBoRWdzZ0FTQUZUUTBBUW44Z0VhMGlFNGdpRlNBU1ZBMEFBMEFnQmExQy93R0RJQklnRTRhRUlSSWdBUUovSUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQURBRUxJQU1RRWdzaUJFR2hLV290QUFBaUJVME5BU0FTSUJWWURRQUxDeUFCSUFSQm9TbHFMUUFBVFEwQUEwQWdBUUovSUFNb0FnUWlCQ0FES0FKb1J3UkFJQU1nQkVFQmFqWUNCQ0FFTFFBQURBRUxJQU1RRWd0Qm9TbHFMUUFBU3cwQUMwSEVnUUZCeEFBMkFnQkJBQ0VIUW44aEVnc2dBeWtEY0VJQVdRUkFJQU1nQXlnQ0JFRUJhellDQkF0QkFDQVNRbjlSSUFkQkFYSWJCRUJCeElFQlFjUUFOZ0lBUW40aEVnd0JDeUFTSUFlc0loT0ZJQk45SVJJTElCQkJFR29rQUNBREtRTjRRZ0FnQXlnQ0JDQURLQUlzYTZ4OVVRMEtJQUpGSUF0QjhBQkhja1VFUUNBQ0lCSStBZ0FNQlFzZ0FpQVBJQklRNEFJTUJBc2dBaUFUSUJJUTRRSTRBZ0FNQXdzZ0FpQVRJQklRM1FFNUF3QU1BZ3NnQWlBVE53TUFJQUlnRWpjRENBd0JDeUFFUVFGcVFSOGdDMEhqQUVZaUJSc2hCd0pBQWtBZ0QwRUJSeUlJUlFSQUlBSWhBU0FNQkVBZ0IwRUNkQkFaSWdGRkRRWUxJQVpDQURjRHFBSkJBQ0VFQTBBZ0FTRUtBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTElnRWdCbW90QUNGRkRRTWdCaUFCT2dBYklBWkJIR29nQmtFYmFrRUJJQVpCcUFKcUVMY0JJZ0ZCZmtZTkFFRUFJUWtnQVVGL1JnMEpJQW9FUUNBS0lBUkJBblJxSUFZb0FodzJBZ0FnQkVFQmFpRUVDeUFNSUFRZ0IwWnhSUTBBQ3lBS0lBZEJBWFJCQVhJaUIwRUNkQkNkQVNJQkRRQUxEQWNMSUF3RVFFRUFJUVFnQnhBWklnRkZEUVVEUUNBQklRa0RRQUovSUFNb0FnUWlBU0FES0FKb1J3UkFJQU1nQVVFQmFqWUNCQ0FCTFFBQURBRUxJQU1RRWdzaUFTQUdhaTBBSVVVRVFFRUFJUW9NQlFzZ0JDQUphaUFCT2dBQUlBUkJBV29pQkNBSFJ3MEFDMEVBSVFvZ0NTQUhRUUYwUVFGeUlnY1FuUUVpQVEwQUN3d0hDMEVBSVFRZ0FnUkFBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTElnRWdCbW90QUNFRVFDQUNJQVJxSUFFNkFBQWdCRUVCYWlFRURBRUZRUUFoQ2lBQ0lRa01CQXNBQ3dBTEEwQUNmeUFES0FJRUlnRWdBeWdDYUVjRVFDQURJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QURFQklMSUFacUxRQWhEUUFMUVFBaENVRUFJUW9NQVF0QkFDRUpJQVpCcUFKcUJIOGdCaWdDcUFJRlFRQUxEUVVMSUFNb0FnUWhBU0FES1FOd1FnQlpCRUFnQXlBQlFRRnJJZ0UyQWdRTElBTXBBM2dnQVNBREtBSXNhNng4SWhOUUlBdEI0d0JHSUJJZ0UxSnhjZzBHQWtBZ0RFVU5BQ0FJUlFSQUlBSWdDallDQUF3QkN5QUNJQWsyQWdBTElBVU5BQ0FLQkVBZ0NpQUVRUUowYWtFQU5nSUFDeUFKUlFSQVFRQWhDUXdCQ3lBRUlBbHFRUUE2QUFBTElBTW9BZ1FnQXlnQ0xHdXNJQU1wQTNnZ0ZIeDhJUlFnRFNBQ1FRQkhhaUVOQ3lBQVFRRnFJUVFnQUMwQUFTSUFEUUVNQlFzTFFRQWhDVUVBSVFvTElBME5BUXRCZnlFTkN5QU1SUTBBSUFrUUVDQUtFQkFMSUFaQnNBSnFKQUFnRFNFQUlBTkJrQUZxSkFBZ0FBdERBQUpBSUFCRkRRQUNRQUpBQWtBQ1FDQUJRUUpxRGdZQUFRSUNCQU1FQ3lBQUlBSThBQUFQQ3lBQUlBSTlBUUFQQ3lBQUlBSStBZ0FQQ3lBQUlBSTNBd0FMQzdRREFnTi9BWDRqQUVFZ2F5SURKQUFDUUNBQlF2Ly8vLy8vLy8vLy93Q0RJZ1ZDZ0lDQWdJQ0F3TUEvZlNBRlFvQ0FnSUNBZ01DL3dBQjlWQVJBSUFGQ0dZaW5JUVFnQUZBZ0FVTC8vLzhQZ3lJRlFvQ0FnQWhVSUFWQ2dJQ0FDRkViUlFSQUlBUkJnWUNBZ0FScUlRSU1BZ3NnQkVHQWdJQ0FCR29oQWlBQUlBVkNnSUNBQ0lXRVFnQlNEUUVnQWlBRVFRRnhhaUVDREFFTElBQlFJQVZDZ0lDQWdJQ0F3UC8vQUZRZ0JVS0FnSUNBZ0lEQS8vOEFVUnRGQkVBZ0FVSVppS2RCLy8vL0FYRkJnSUNBL2dkeUlRSU1BUXRCZ0lDQS9BY2hBaUFGUXYvLy8vLy8vNysvd0FCV0RRQkJBQ0VDSUFWQ01JaW5JZ1JCa2Y0QVNRMEFJQU5CRUdvZ0FDQUJRdi8vLy8vLy96K0RRb0NBZ0lDQWdNQUFoQ0lGSUFSQmdmNEFheEF2SUFNZ0FDQUZRWUgvQUNBRWF4QjhJQU1wQXdnaUFFSVppS2NoQWlBREtRTUFJQU1wQXhBZ0F5a0RHSVJDQUZLdGhDSUZVQ0FBUXYvLy93K0RJZ0JDZ0lDQUNGUWdBRUtBZ0lBSVVSdEZCRUFnQWtFQmFpRUNEQUVMSUFVZ0FFS0FnSUFJaFlSQ0FGSU5BQ0FDUVFGeElBSnFJUUlMSUFOQklHb2tBQ0FDSUFGQ0lJaW5RWUNBZ0lCNGNYSytDNEVFQWdOL0FYNENRQUpBQWtBQ2Z5QUFLQUlFSWdJZ0FDZ0NhRWNFUUNBQUlBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQUVCSUxJZ05CSzJzT0F3RUFBUUFMSUFOQk1Hc2hBUXdCQ3lBRFFTMUdJUVFDUUNBQlJRSi9JQUFvQWdRaUFpQUFLQUpvUndSQUlBQWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBQVFFZ3NpQWtFd2F5SUJRUXBKY2cwQUlBQXBBM0JDQUZNTkFDQUFJQUFvQWdSQkFXczJBZ1FMSUFJaEF3c0NRQ0FCUVFwSkJFQkJBQ0VDQTBBZ0F5QUNRUXBzYWlFQkFuOGdBQ2dDQkNJQ0lBQW9BbWhIQkVBZ0FDQUNRUUZxTmdJRUlBSXRBQUFNQVFzZ0FCQVNDeUVESUFGQk1Hc2hBaUFDUWN5WnMrWUFTQ0FEUVRCcklnRkJDVTF4RFFBTElBS3NJUVVDUUNBQlFRcFBEUUFEUUNBRHJTQUZRZ3ArZkVJd2ZTRUZBbjhnQUNnQ0JDSUJJQUFvQW1oSEJFQWdBQ0FCUVFGcU5nSUVJQUV0QUFBTUFRc2dBQkFTQ3lJRFFUQnJJZ0ZCQ1VzTkFTQUZRcTZQaGRmSHd1dWpBVk1OQUFzTElBRkJDa2tFUUFOQUFuOGdBQ2dDQkNJQklBQW9BbWhIQkVBZ0FDQUJRUUZxTmdJRUlBRXRBQUFNQVFzZ0FCQVNDMEV3YTBFS1NRMEFDd3NnQUNrRGNFSUFXUVJBSUFBZ0FDZ0NCRUVCYXpZQ0JBdENBQ0FGZlNBRklBUWJJUVVNQVF0Q2dJQ0FnSUNBZ0lDQWZ5RUZJQUFwQTNCQ0FGTU5BQ0FBSUFBb0FnUkJBV3MyQWdSQ2dJQ0FnSUNBZ0lDQWZ3OExJQVVMb0RJREVIOEhmZ0Y4SXdCQk1Hc2lEQ1FBQWtBZ0FrRUNUUVJBSUFKQkFuUWlBa0dNS1dvb0FnQWhEeUFDUVlBcGFpZ0NBQ0VPQTBBQ2Z5QUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQkVCSUxJZ0lRY1EwQUMwRUJJUVlDUUFKQUlBSkJLMnNPQXdBQkFBRUxRWDlCQVNBQ1FTMUdHeUVHSUFFb0FnUWlBaUFCS0FKb1J3UkFJQUVnQWtFQmFqWUNCQ0FDTFFBQUlRSU1BUXNnQVJBU0lRSUxBa0FDUUFOQUlBVkJpaHBxTEFBQUlBSkJJSEpHQkVBQ1FDQUZRUVpMRFFBZ0FTZ0NCQ0lDSUFFb0FtaEhCRUFnQVNBQ1FRRnFOZ0lFSUFJdEFBQWhBZ3dCQ3lBQkVCSWhBZ3NnQlVFQmFpSUZRUWhIRFFFTUFnc0xJQVZCQTBjRVFDQUZRUWhHRFFFZ0EwVWdCVUVFU1hJTkFpQUZRUWhHRFFFTElBRXBBM0FpRkVJQVdRUkFJQUVnQVNnQ0JFRUJhellDQkFzZ0EwVWdCVUVFU1hJTkFDQVVRZ0JUSVFJRFFDQUNSUVJBSUFFZ0FTZ0NCRUVCYXpZQ0JBc2dCVUVCYXlJRlFRTkxEUUFMQzBJQUlSUWpBRUVRYXlJQ0pBQUNmaUFHc2tNQUFJQi9sTHdpQTBILy8vLy9CM0VpQVVHQWdJQUVhMEgvLy8vM0IwMEVRQ0FCclVJWmhrS0FnSUNBZ0lDQXdEOThEQUVMSUFPdFFobUdRb0NBZ0lDQWdNRC8vd0NFSUFGQmdJQ0EvQWRQRFFBYVFnQWdBVVVOQUJvZ0FpQUJyVUlBSUFGbklnRkIwUUJxRUM4Z0Fpa0RBQ0VVSUFJcEF3aENnSUNBZ0lDQXdBQ0ZRWW4vQUNBQmE2MUNNSWFFQ3lFVklBd2dGRGNEQUNBTUlCVWdBMEdBZ0lDQWVIR3RRaUNHaERjRENDQUNRUkJxSkFBZ0RDa0RDQ0VVSUF3cEF3QWhGUXdDQ3dKQUFrQUNRQ0FGRFFCQkFDRUZBMEFnQlVISEhHb3NBQUFnQWtFZ2NrY05BUUpBSUFWQkFVc05BQ0FCS0FJRUlnSWdBU2dDYUVjRVFDQUJJQUpCQVdvMkFnUWdBaTBBQUNFQ0RBRUxJQUVRRWlFQ0N5QUZRUUZxSWdWQkEwY05BQXNNQVFzQ1FBSkFJQVVPQkFBQkFRSUJDd0pBSUFKQk1FY05BQUovSUFFb0FnUWlCU0FCS0FKb1J3UkFJQUVnQlVFQmFqWUNCQ0FGTFFBQURBRUxJQUVRRWd0QlgzRkIyQUJHQkVBakFFR3dBMnNpQWlRQUFuOGdBU2dDQkNJRklBRW9BbWhIQkVBZ0FTQUZRUUZxTmdJRUlBVXRBQUFNQVFzZ0FSQVNDeUVGQWtBQ2Z3TkFJQVZCTUVjRVFBSkFJQVZCTGtjTkJDQUJLQUlFSWdVZ0FTZ0NhRVlOQUNBQklBVkJBV28yQWdRZ0JTMEFBQXdEQ3dVZ0FTZ0NCQ0lGSUFFb0FtaEhCSDlCQVNFS0lBRWdCVUVCYWpZQ0JDQUZMUUFBQlVFQklRb2dBUkFTQ3lFRkRBRUxDeUFCRUJJTElRVkJBU0VFSUFWQk1FY05BQU5BSUJkQ0FYMGhGd0ovSUFFb0FnUWlCU0FCS0FKb1J3UkFJQUVnQlVFQmFqWUNCQ0FGTFFBQURBRUxJQUVRRWdzaUJVRXdSZzBBQzBFQklRb0xRb0NBZ0lDQWdNRC9QeUVWQWtBRFFBSkFJQVZCSUhJaEN3SkFBa0FnQlVFd2F5SUlRUXBKRFFBZ0JVRXVSeUFMUWVFQWEwRUdUM0VOQkNBRlFTNUhEUUFnQkEwQ1FRRWhCQ0FVSVJjTUFRc2dDMEhYQUdzZ0NDQUZRVGxLR3lFRkFrQWdGRUlIVndSQUlBVWdDVUVFZEdvaENRd0JDeUFVUWh4WEJFQWdBa0V3YWlBRkVFRWdBa0VnYWlBWklCVkNBRUtBZ0lDQWdJREEvVDhRR0NBQ1FSQnFJQUlwQXlBaUdTQUNLUU1vSWhVZ0Fpa0RNQ0FDS1FNNEVCZ2dBaUFXSUJnZ0Fpa0RFQ0FDS1FNWUVEd2dBaWtEQ0NFWUlBSXBBd0FoRmd3QkN5QUZSU0FIY2cwQUlBSkIwQUJxSUJrZ0ZVSUFRb0NBZ0lDQWdJRC9QeEFZSUFKQlFHc2dGaUFZSUFJcEExQWdBaWtEV0JBOElBSXBBMGdoR0VFQklRY2dBaWtEUUNFV0N5QVVRZ0Y4SVJSQkFTRUtDeUFCS0FJRUlnVWdBU2dDYUVjRWZ5QUJJQVZCQVdvMkFnUWdCUzBBQUFVZ0FSQVNDeUVGREFFTEMwRXVJUVVMQW40Z0NrVUVRQUpBQWtBZ0FTa0RjRUlBV1FSQUlBRWdBU2dDQkNJRlFRRnJOZ0lFSUFORkRRRWdBU0FGUVFKck5nSUVJQVJGRFFJZ0FTQUZRUU5yTmdJRURBSUxJQU1OQVFzZ0FVSUFFRk1MSUFKQjRBQnFJQWEzUkFBQUFBQUFBQUFBb2hCZElBSXBBMkFoRmlBQ0tRTm9EQUVMSUJSQ0IxY0VRQ0FVSVJVRFFDQUpRUVIwSVFrZ0ZVSUJmQ0lWUWdoU0RRQUxDd0pBQWtBQ1FDQUZRVjl4UWRBQVJnUkFJQUVnQXhEaUFpSVZRb0NBZ0lDQWdJQ0FnSDlTRFFNZ0F3UkFJQUVwQTNCQ0FGa05BZ3dEQzBJQUlSWWdBVUlBRUZOQ0FBd0VDMElBSVJVZ0FTa0RjRUlBVXcwQ0N5QUJJQUVvQWdSQkFXczJBZ1FMUWdBaEZRc2dDVVVFUUNBQ1FmQUFhaUFHdDBRQUFBQUFBQUFBQUtJUVhTQUNLUU53SVJZZ0Fpa0RlQXdCQ3lBWElCUWdCQnRDQW9ZZ0ZYeENJSDBpRkVFQUlBOXJyVlVFUUVIRWdRRkJ4QUEyQWdBZ0FrR2dBV29nQmhCQklBSkJrQUZxSUFJcEE2QUJJQUlwQTZnQlFuOUMvLy8vLy8vL3YvLy9BQkFZSUFKQmdBRnFJQUlwQTVBQklBSXBBNWdCUW45Qy8vLy8vLy8vdi8vL0FCQVlJQUlwQTRBQklSWWdBaWtEaUFFTUFRc2dEMEhpQVd1c0lCUlhCRUFnQ1VFQVRnUkFBMEFnQWtHZ0Eyb2dGaUFZUWdCQ2dJQ0FnSUNBd1ArL2Z4QThJQllnR0VLQWdJQ0FnSUNBL3o4UTRBRWhBU0FDUVpBRGFpQVdJQmdnRmlBQ0tRT2dBeUFCUVFCSUlnTWJJQmdnQWlrRHFBTWdBeHNRUENBVVFnRjlJUlFnQWlrRG1BTWhHQ0FDS1FPUUF5RVdJQWxCQVhRZ0FVRUFUbklpQ1VFQVRnMEFDd3NDZmlBVUlBK3NmVUlnZkNJVnB5SUJRUUFnQVVFQVNoc2dEaUFWSUE2dFV4c2lBVUh4QUU0RVFDQUNRWUFEYWlBR0VFRWdBaWtEaUFNaEZ5QUNLUU9BQXlFWlFnQU1BUXNnQWtIZ0FtcEJrQUVnQVdzUTN3RVFYU0FDUWRBQ2FpQUdFRUVnQWtId0Ftb2dBaWtENEFJZ0Fpa0Q2QUlnQWlrRDBBSWlHU0FDS1FQWUFpSVhFT2dDSUFJcEEvZ0NJUm9nQWlrRDhBSUxJUlVnQWtIQUFtb2dDU0FKUVFGeFJTQVdJQmhDQUVJQUVIdEJBRWNnQVVFZ1NIRnhJZ0ZxRUpBQklBSkJzQUpxSUJrZ0Z5QUNLUVBBQWlBQ0tRUElBaEFZSUFKQmtBSnFJQUlwQTdBQ0lBSXBBN2dDSUJVZ0doQThJQUpCb0FKcVFnQWdGaUFCRzBJQUlCZ2dBUnNnR1NBWEVCZ2dBa0dBQW1vZ0Fpa0RvQUlnQWlrRHFBSWdBaWtEa0FJZ0Fpa0RtQUlRUENBQ1FmQUJhaUFDS1FPQUFpQUNLUU9JQWlBVklCb1EzZ0VnQWlrRDhBRWlGU0FDS1FQNEFTSVhRZ0JDQUJCN1JRUkFRY1NCQVVIRUFEWUNBQXNnQWtIZ0FXb2dGU0FYSUJTbkVPWUNJQUlwQStBQklSWWdBaWtENkFFTUFRdEJ4SUVCUWNRQU5nSUFJQUpCMEFGcUlBWVFRU0FDUWNBQmFpQUNLUVBRQVNBQ0tRUFlBVUlBUW9DQWdJQ0FnTUFBRUJnZ0FrR3dBV29nQWlrRHdBRWdBaWtEeUFGQ0FFS0FnSUNBZ0lEQUFCQVlJQUlwQTdBQklSWWdBaWtEdUFFTElSUWdEQ0FXTndNUUlBd2dGRGNER0NBQ1FiQURhaVFBSUF3cEF4Z2hGQ0FNS1FNUUlSVU1CZ3NnQVNrRGNFSUFVdzBBSUFFZ0FTZ0NCRUVCYXpZQ0JBc2dBU0VGSUFZaENTQURJUXBCQUNFR1FRQWhBeU1BUVpER0FHc2lCQ1FBUVFBZ0RpQVBhaUlTYXlFVEFrQUNmd05BSUFKQk1FY0VRQUpBSUFKQkxrY05CQ0FGS0FJRUlnRWdCU2dDYUVZTkFDQUZJQUZCQVdvMkFnUWdBUzBBQUF3REN3VWdCU2dDQkNJQklBVW9BbWhIQkg5QkFTRUdJQVVnQVVFQmFqWUNCQ0FCTFFBQUJVRUJJUVlnQlJBU0N5RUNEQUVMQ3lBRkVCSUxJUUpCQVNFSElBSkJNRWNOQUFOQUlCUkNBWDBoRkFKL0lBVW9BZ1FpQVNBRktBSm9Sd1JBSUFVZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFVUUVnc2lBa0V3UmcwQUMwRUJJUVlMSUFSQkFEWUNrQVlDZmdKQUFrQUNRQUpBQWtBZ0FrRXVSaUlCUlNBQ1FUQnJJZ2hCQ1V0eFJRUkFBMEFDUUNBQlFRRnhCRUFnQjBVRVFDQVZJUlJCQVNFSERBSUxJQVpGSVFFTUJBc2dGVUlCZkNFVklBTkIvQTlNQkVBZ0RTQVZweUFDUVRCR0d5RU5JQVJCa0FacUlBTkJBblJxSWdFZ0N3Ui9JQUlnQVNnQ0FFRUtiR3BCTUdzRklBZ0xOZ0lBUVFFaEJrRUFJQXRCQVdvaUFTQUJRUWxHSWdFYklRc2dBU0FEYWlFRERBRUxJQUpCTUVZTkFDQUVJQVFvQW9CR1FRRnlOZ0tBUmtIY2p3RWhEUXNDZnlBRktBSUVJZ0VnQlNnQ2FFY0VRQ0FGSUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFGRUJJTElnSkJMa1lpQVNBQ1FUQnJJZ2hCQ2tseURRQUxDeUFVSUJVZ0J4c2hGQ0FHUlNBQ1FWOXhRY1VBUjNKRkJFQUNRQ0FGSUFvUTRnSWlGa0tBZ0lDQWdJQ0FnSUIvVWcwQUlBcEZEUVZDQUNFV0lBVXBBM0JDQUZNTkFDQUZJQVVvQWdSQkFXczJBZ1FMSUFaRkRRTWdGQ0FXZkNFVURBVUxJQVpGSVFFZ0FrRUFTQTBCQ3lBRktRTndRZ0JURFFBZ0JTQUZLQUlFUVFGck5nSUVDeUFCUlEwQ0MwSEVnUUZCSERZQ0FBdENBQ0VWSUFWQ0FCQlRRZ0FNQVFzZ0JDZ0NrQVlpQVVVRVFDQUVJQW0zUkFBQUFBQUFBQUFBb2hCZElBUXBBd0FoRlNBRUtRTUlEQUVMSUJRZ0ZWSWdGVUlKVlhJZ0RrRWVURUVBSUFFZ0RuWWJja1VFUUNBRVFUQnFJQWtRUVNBRVFTQnFJQUVRa0FFZ0JFRVFhaUFFS1FNd0lBUXBBemdnQkNrRElDQUVLUU1vRUJnZ0JDa0RFQ0VWSUFRcEF4Z01BUXNnRDBGK2JhMGdGRk1FUUVIRWdRRkJ4QUEyQWdBZ0JFSGdBR29nQ1JCQklBUkIwQUJxSUFRcEEyQWdCQ2tEYUVKL1F2Ly8vLy8vLzcvLy93QVFHQ0FFUVVCcklBUXBBMUFnQkNrRFdFSi9Rdi8vLy8vLy83Ly8vd0FRR0NBRUtRTkFJUlVnQkNrRFNBd0JDeUFQUWVJQmE2d2dGRlVFUUVIRWdRRkJ4QUEyQWdBZ0JFR1FBV29nQ1JCQklBUkJnQUZxSUFRcEE1QUJJQVFwQTVnQlFnQkNnSUNBZ0lDQXdBQVFHQ0FFUWZBQWFpQUVLUU9BQVNBRUtRT0lBVUlBUW9DQWdJQ0FnTUFBRUJnZ0JDa0RjQ0VWSUFRcEEzZ01BUXNnQ3dSQUlBdEJDRXdFUUNBRVFaQUdhaUFEUVFKMGFpSUJLQUlBSVFVRFFDQUZRUXBzSVFVZ0MwRUJhaUlMUVFsSERRQUxJQUVnQlRZQ0FBc2dBMEVCYWlFREN3SkFJQTBnRktjaUIwb2dEVUVKVG5JZ0IwRVJTbklOQUNBSFFRbEdCRUFnQkVIQUFXb2dDUkJCSUFSQnNBRnFJQVFvQXBBR0VKQUJJQVJCb0FGcUlBUXBBOEFCSUFRcEE4Z0JJQVFwQTdBQklBUXBBN2dCRUJnZ0JDa0RvQUVoRlNBRUtRT29BUXdDQ3lBSFFRaE1CRUFnQkVHUUFtb2dDUkJCSUFSQmdBSnFJQVFvQXBBR0VKQUJJQVJCOEFGcUlBUXBBNUFDSUFRcEE1Z0NJQVFwQTRBQ0lBUXBBNGdDRUJnZ0JFSGdBV3BCQUNBSGEwRUNkRUdBS1dvb0FnQVFRU0FFUWRBQmFpQUVLUVB3QVNBRUtRUDRBU0FFS1FQZ0FTQUVLUVBvQVJEbEFpQUVLUVBRQVNFVklBUXBBOWdCREFJTElBNGdCMEY5YkdwQkcyb2lBVUVlVEVFQUlBUW9BcEFHSWdJZ0FYWWJEUUFnQkVIZ0Ftb2dDUkJCSUFSQjBBSnFJQUlRa0FFZ0JFSEFBbW9nQkNrRDRBSWdCQ2tENkFJZ0JDa0QwQUlnQkNrRDJBSVFHQ0FFUWJBQ2FpQUhRUUowUWJnb2FpZ0NBQkJCSUFSQm9BSnFJQVFwQThBQ0lBUXBBOGdDSUFRcEE3QUNJQVFwQTdnQ0VCZ2dCQ2tEb0FJaEZTQUVLUU9vQWd3QkN3TkFJQVJCa0FacUlBTWlBa0VCYXlJRFFRSjBhaWdDQUVVTkFBdEJBQ0VMQWtBZ0IwRUpieUlCUlFSQVFRQWhBUXdCQ3lBQklBRkJDV29nQjBFQVRoc2hBd0pBSUFKRkJFQkJBQ0VCUVFBaEFnd0JDMEdBbE92Y0EwRUFJQU5yUVFKMFFZQXBhaWdDQUNJR2JTRUtRUUFoQ0VFQUlRVkJBQ0VCQTBBZ0JFR1FCbW9nQlVFQ2RHb2lEU0FJSUEwb0FnQWlEU0FHYmlJUWFpSUlOZ0lBSUFGQkFXcEIvdzl4SUFFZ0NFVWdBU0FGUm5FaUNCc2hBU0FIUVFscklBY2dDQnNoQnlBS0lBMGdCaUFRYkd0c0lRZ2dCVUVCYWlJRklBSkhEUUFMSUFoRkRRQWdCRUdRQm1vZ0FrRUNkR29nQ0RZQ0FDQUNRUUZxSVFJTElBY2dBMnRCQ1dvaEJ3c0RRQUpBSUFkQkpFNEVRQ0FIUVNSSERRRWdCRUdRQm1vZ0FVRUNkR29vQWdCQjBlbjVCRThOQVFzZ0FrSC9EMm9oQmtFQUlRZ0RRQ0FJclNBRVFaQUdhaUFHUWY4UGNTSURRUUowYWlJR05RSUFRaDJHZkNJVVFvR1U2OXdEVkFSL1FRQUZJQlFnRkVLQWxPdmNBNEFpRlVLQWxPdmNBMzU5SVJRZ0ZhY0xJUWdnQmlBVXB5SUdOZ0lBSUFJZ0FpQUNJQU1nQmhzZ0FTQURSaHNnQXlBQ1FRRnJRZjhQY1VjYklRSWdBMEVCYXlFR0lBRWdBMGNOQUFzZ0MwRWRheUVMSUFoRkRRRWdBaUFCUVFGclFmOFBjU0lCUmdSQUlBUkJrQVpxSWdNZ0FrSCtEMnBCL3c5eFFRSjBhaUlHSUFZb0FnQWdBa0VCYTBIL0QzRWlBa0VDZENBRGFpZ0NBSEkyQWdBTElBZEJDV29oQnlBRVFaQUdhaUFCUVFKMGFpQUlOZ0lBREFFTEN3SkFBMEFnQWtFQmFrSC9EM0VoQXlBRVFaQUdhaUFDUVFGclFmOFBjVUVDZEdvaENBTkFJQUVoQmtFQUlRVUNRQUpBQTBBQ1FDQUZJQVpxUWY4UGNTSUJJQUpHRFFBZ0JFR1FCbW9nQVVFQ2RHb29BZ0FpQVNBRlFRSjBRZEFvYWlnQ0FDSUtTUTBBSUFFZ0Nrc05BaUFGUVFGcUlnVkJCRWNOQVFzTElBZEJKRWNOQUVJQUlSUkJBQ0VGUWdBaEZRTkFJQUlnQlNBR2FrSC9EM0VpQVVZRVFDQUNRUUZxUWY4UGNTSUNRUUowSUFScVFRQTJBb3dHQ3lBRVFZQUdhaUFVSUJWQ0FFS0FnSUNBNVpxM2pzQUFFQmdnQkVId0JXb2dCRUdRQm1vZ0FVRUNkR29vQWdBUWtBRWdCRUhnQldvZ0JDa0RnQVlnQkNrRGlBWWdCQ2tEOEFVZ0JDa0QrQVVRUENBRUtRUG9CU0VWSUFRcEErQUZJUlFnQlVFQmFpSUZRUVJIRFFBTElBUkIwQVZxSUFrUVFTQUVRY0FGYWlBVUlCVWdCQ2tEMEFVZ0JDa0QyQVVRR0NBRUtRUElCU0VWUWdBaEZDQUVLUVBBQlNFV0lBdEI4UUJxSWdjZ0Qyc2lBMEVBSUFOQkFFb2JJQTRnQXlBT1NDSUZHeUlCUWZBQVRBMEJEQVFMUVFsQkFTQUhRUzFLR3lJS0lBdHFJUXNnQmlBQ0lnRkdEUUZCZ0pUcjNBTWdDblloRFVGL0lBcDBRWDl6SVJCQkFDRUZJQVloQVFOQUlBUkJrQVpxSUFaQkFuUnFJaEVnQlNBUktBSUFJaEVnQ25acUlnVTJBZ0FnQVVFQmFrSC9EM0VnQVNBRlJTQUJJQVpHY1NJRkd5RUJJQWRCQ1dzZ0J5QUZHeUVISUJBZ0VYRWdEV3doQlNBR1FRRnFRZjhQY1NJR0lBSkhEUUFMSUFWRkRRRWdBU0FEUndSQUlBUkJrQVpxSUFKQkFuUnFJQVUyQWdBZ0F5RUNEQU1MSUFnZ0NDZ0NBRUVCY2pZQ0FDQURJUUVNQVFzTEN5QUVRWkFGYWtIaEFTQUJheERmQVJCZElBUkJzQVZxSUFRcEE1QUZJQVFwQTVnRklCWWdGUkRvQWlBRUtRTzRCU0VaSUFRcEE3QUZJUmdnQkVHQUJXcEI4UUFnQVdzUTN3RVFYU0FFUWFBRmFpQVdJQlVnQkNrRGdBVWdCQ2tEaUFVUTVBSWdCRUh3QkdvZ0ZpQVZJQVFwQTZBRkloUWdCQ2tEcUFVaUZ4RGVBU0FFUWVBRWFpQVlJQmtnQkNrRDhBUWdCQ2tEK0FRUVBDQUVLUVBvQkNFVklBUXBBK0FFSVJZTEFrQWdCa0VFYWtIL0QzRWlDaUFDUmcwQUFrQWdCRUdRQm1vZ0NrRUNkR29vQWdBaUNrSC95Ylh1QVUwRVFDQUtSU0FHUVFWcVFmOFBjU0FDUm5FTkFTQUVRZkFEYWlBSnQwUUFBQUFBQUFEUVA2SVFYU0FFUWVBRGFpQVVJQmNnQkNrRDhBTWdCQ2tEK0FNUVBDQUVLUVBvQXlFWElBUXBBK0FESVJRTUFRc2dDa0dBeXJYdUFVY0VRQ0FFUWRBRWFpQUp0MFFBQUFBQUFBRG9QNklRWFNBRVFjQUVhaUFVSUJjZ0JDa0QwQVFnQkNrRDJBUVFQQ0FFS1FQSUJDRVhJQVFwQThBRUlSUU1BUXNnQ2JjaEd5QUNJQVpCQldwQi93OXhSZ1JBSUFSQmtBUnFJQnRFQUFBQUFBQUE0RCtpRUYwZ0JFR0FCR29nRkNBWElBUXBBNUFFSUFRcEE1Z0VFRHdnQkNrRGlBUWhGeUFFS1FPQUJDRVVEQUVMSUFSQnNBUnFJQnRFQUFBQUFBQUE2RCtpRUYwZ0JFR2dCR29nRkNBWElBUXBBN0FFSUFRcEE3Z0VFRHdnQkNrRHFBUWhGeUFFS1FPZ0JDRVVDeUFCUWU4QVNnMEFJQVJCMEFOcUlCUWdGMElBUW9DQWdJQ0FnTUQvUHhEa0FpQUVLUVBRQXlBRUtRUFlBMElBUWdBUWV3MEFJQVJCd0FOcUlCUWdGMElBUW9DQWdJQ0FnTUQvUHhBOElBUXBBOGdESVJjZ0JDa0R3QU1oRkFzZ0JFR3dBMm9nRmlBVklCUWdGeEE4SUFSQm9BTnFJQVFwQTdBRElBUXBBN2dESUJnZ0dSRGVBU0FFS1FPb0F5RVZJQVFwQTZBRElSWUNRRUYrSUJKcklBZEIvLy8vL3dkeFRnMEFJQVFnRlVMLy8vLy8vLy8vLy84QWd6Y0RtQU1nQkNBV053T1FBeUFFUVlBRGFpQVdJQlZDQUVLQWdJQ0FnSUNBL3o4UUdDQUVLUU9RQXlJWUlBUXBBNWdESWhsQ2dJQ0FnSUNBZ0xqQUFCRGdBU0VDSUJVZ0JDa0RpQU1nQWtFQVNDSUdHeUVWSUJZZ0JDa0RnQU1nQmhzaEZpQVRJQXNnQWtFQVRtb2lDMEh1QUdwT0JFQWdCU0FGSUFFZ0EwZHhJQmdnR1VLQWdJQ0FnSUNBdU1BQUVPQUJRUUJJRzBFQlJ3MEJJQlFnRjBJQVFnQVFlMFVOQVF0QnhJRUJRY1FBTmdJQUN5QUVRZkFDYWlBV0lCVWdDeERtQWlBRUtRUHdBaUVWSUFRcEEvZ0NDeUVVSUF3Z0ZUY0RJQ0FNSUJRM0F5Z2dCRUdReGdCcUpBQWdEQ2tES0NFVUlBd3BBeUFoRlF3RUN5QUJLUU53UWdCWkJFQWdBU0FCS0FJRVFRRnJOZ0lFQ3d3QkN3SkFBbjhnQVNnQ0JDSUNJQUVvQW1oSEJFQWdBU0FDUVFGcU5nSUVJQUl0QUFBTUFRc2dBUkFTQzBFb1JnUkFRUUVoQlF3QkMwS0FnSUNBZ0lEZy8vOEFJUlFnQVNrRGNFSUFVdzBESUFFZ0FTZ0NCRUVCYXpZQ0JBd0RDd05BQW44Z0FTZ0NCQ0lDSUFFb0FtaEhCRUFnQVNBQ1FRRnFOZ0lFSUFJdEFBQU1BUXNnQVJBU0N5SUNRVEJyUVFwSklBSkJ3UUJyUVJwSmNpQUNRZDhBUm5KRklBSkI0UUJyUVJwUGNVVUVRQ0FGUVFGcUlRVU1BUXNMUW9DQWdJQ0FnT0QvL3dBaEZDQUNRU2xHRFFJZ0FTa0RjQ0lYUWdCWkJFQWdBU0FCS0FJRVFRRnJOZ0lFQ3dKQUlBTUVRQ0FGRFFFTUJBc01BUXNEUUNBRlFRRnJJUVVnRjBJQVdRUkFJQUVnQVNnQ0JFRUJhellDQkFzZ0JRMEFDd3dDQzBIRWdRRkJIRFlDQUNBQlFnQVFVd3RDQUNFVUN5QUFJQlUzQXdBZ0FDQVVOd01JSUF4Qk1Hb2tBQXZLQmdJRWZ3TitJd0JCZ0FGcklnVWtBQUpBQWtBQ1FDQURJQVJDQUVJQUVIdEZEUUFDZnlBRVF2Ly8vLy8vL3orRElRa0NmeUFFUWpDSXAwSC8vd0Z4SWdaQi8vOEJSd1JBUVFRZ0JnMEJHa0VDUVFNZ0F5QUpoRkFiREFJTElBTWdDWVJRQ3d0RkRRQWdBa0l3aUtjaUNFSC8vd0Z4SWdaQi8vOEJSdzBCQ3lBRlFSQnFJQUVnQWlBRElBUVFHQ0FGSUFVcEF4QWlBU0FGS1FNWUlnSWdBU0FDRU9VQ0lBVXBBd2doQWlBRktRTUFJUVFNQVFzZ0FTQUNRdi8vLy8vLy96K0RJQWF0UWpDR2hDSUtJQU1nQkVMLy8vLy8vLzgvZ3lBRVFqQ0lwMEgvL3dGeElnZXRRakNHaENJSkVIdEJBRXdFUUNBQklBb2dBeUFKRUhzRVFDQUJJUVFNQWdzZ0JVSHdBR29nQVNBQ1FnQkNBQkFZSUFVcEEzZ2hBaUFGS1FOd0lRUU1BUXNnQmdSK0lBRUZJQVZCNEFCcUlBRWdDa0lBUW9DQWdJQ0FnTUM3d0FBUUdDQUZLUU5vSWdwQ01JaW5RZmdBYXlFR0lBVXBBMkFMSVFRZ0IwVUVRQ0FGUWRBQWFpQURJQWxDQUVLQWdJQ0FnSURBdThBQUVCZ2dCU2tEV0NJSlFqQ0lwMEg0QUdzaEJ5QUZLUU5RSVFNTElBbEMvLy8vLy8vL1A0TkNnSUNBZ0lDQXdBQ0VJUWtnQ2tMLy8vLy8vLzgvZzBLQWdJQ0FnSURBQUlRaENpQUdJQWRLQkVBRFFBSitJQW9nQ1gwZ0F5QUVWcTE5SWd0Q0FGa0VRQ0FMSUFRZ0EzMGlCSVJRQkVBZ0JVRWdhaUFCSUFKQ0FFSUFFQmdnQlNrREtDRUNJQVVwQXlBaEJBd0ZDeUFMUWdHR0lBUkNQNGlFREFFTElBcENBWVlnQkVJL2lJUUxJUW9nQkVJQmhpRUVJQVpCQVdzaUJpQUhTZzBBQ3lBSElRWUxBa0FnQ2lBSmZTQURJQVJXclgwaUNVSUFVd1JBSUFvaENRd0JDeUFKSUFRZ0EzMGlCSVJDQUZJTkFDQUZRVEJxSUFFZ0FrSUFRZ0FRR0NBRktRTTRJUUlnQlNrRE1DRUVEQUVMSUFsQy8vLy8vLy8vUDFnRVFBTkFJQVJDUDRnaEFTQUdRUUZySVFZZ0JFSUJoaUVFSUFFZ0NVSUJob1FpQ1VLQWdJQ0FnSURBQUZRTkFBc0xJQWhCZ0lBQ2NTRUhJQVpCQUV3RVFDQUZRVUJySUFRZ0NVTC8vLy8vLy84L2d5QUdRZmdBYWlBSGNxMUNNSWFFUWdCQ2dJQ0FnSUNBd01NL0VCZ2dCU2tEU0NFQ0lBVXBBMEFoQkF3QkN5QUpRdi8vLy8vLy96K0RJQVlnQjNLdFFqQ0doQ0VDQ3lBQUlBUTNBd0FnQUNBQ053TUlJQVZCZ0FGcUpBQUxxZzhDQlg4T2ZpTUFRZEFDYXlJRkpBQWdCRUwvLy8vLy8vOC9neUVMSUFKQy8vLy8vLy8vUDRNaENpQUNJQVNGUW9DQWdJQ0FnSUNBZ0grRElRMGdCRUl3aUtkQi8vOEJjU0VJQWtBQ1FDQUNRakNJcDBILy93RnhJZ2xCQVd0Qi9mOEJUUVJBSUFoQkFXdEIvdjhCU1EwQkN5QUJVQ0FDUXYvLy8vLy8vLy8vL3dDRElneENnSUNBZ0lDQXdQLy9BRlFnREVLQWdJQ0FnSURBLy84QVVSdEZCRUFnQWtLQWdJQ0FnSUFnaENFTkRBSUxJQU5RSUFSQy8vLy8vLy8vLy8vL0FJTWlBa0tBZ0lDQWdJREEvLzhBVkNBQ1FvQ0FnSUNBZ01ELy93QlJHMFVFUUNBRVFvQ0FnSUNBZ0NDRUlRMGdBeUVCREFJTElBRWdERUtBZ0lDQWdJREEvLzhBaFlSUUJFQWdBeUFDUW9DQWdJQ0FnTUQvL3dDRmhGQUVRRUlBSVFGQ2dJQ0FnSUNBNFAvL0FDRU5EQU1MSUExQ2dJQ0FnSUNBd1AvL0FJUWhEVUlBSVFFTUFnc2dBeUFDUW9DQWdJQ0FnTUQvL3dDRmhGQUVRRUlBSVFFTUFnc2dBU0FNaEZBRVFFS0FnSUNBZ0lEZy8vOEFJQTBnQWlBRGhGQWJJUTFDQUNFQkRBSUxJQUlnQTRSUUJFQWdEVUtBZ0lDQWdJREEvLzhBaENFTlFnQWhBUXdDQ3lBTVF2Ly8vLy8vL3o5WUJFQWdCVUhBQW1vZ0FTQUtJQUVnQ2lBS1VDSUdHM2tnQmtFR2RLMThweUlHUVE5ckVDOUJFQ0FHYXlFR0lBVXBBOGdDSVFvZ0JTa0R3QUloQVFzZ0FrTC8vLy8vLy84L1ZnMEFJQVZCc0FKcUlBTWdDeUFESUFzZ0MxQWlCeHQ1SUFkQkJuU3RmS2NpQjBFUGF4QXZJQVlnQjJwQkVHc2hCaUFGS1FPNEFpRUxJQVVwQTdBQ0lRTUxJQVZCb0FKcUlBdENnSUNBZ0lDQXdBQ0VJaEpDRDRZZ0EwSXhpSVFpQWtJQVFvQ0FnSUN3NXJ5QzlRQWdBbjBpQkVJQUVDc2dCVUdRQW1wQ0FDQUZLUU9vQW4xQ0FDQUVRZ0FRS3lBRlFZQUNhaUFGS1FPWUFrSUJoaUFGS1FPUUFrSS9pSVFpQkVJQUlBSkNBQkFySUFWQjhBRnFJQVJDQUVJQUlBVXBBNGdDZlVJQUVDc2dCVUhnQVdvZ0JTa0QrQUZDQVlZZ0JTa0Q4QUZDUDRpRUlnUkNBQ0FDUWdBUUt5QUZRZEFCYWlBRVFnQkNBQ0FGS1FQb0FYMUNBQkFySUFWQndBRnFJQVVwQTlnQlFnR0dJQVVwQTlBQlFqK0loQ0lFUWdBZ0FrSUFFQ3NnQlVHd0FXb2dCRUlBUWdBZ0JTa0R5QUY5UWdBUUt5QUZRYUFCYWlBQ1FnQWdCU2tEdUFGQ0FZWWdCU2tEc0FGQ1A0aUVRZ0Y5SWdKQ0FCQXJJQVZCa0FGcUlBTkNENFpDQUNBQ1FnQVFLeUFGUWZBQWFpQUNRZ0JDQUNBRktRT29BU0FGS1FPZ0FTSU1JQVVwQTVnQmZDSUVJQXhVclh3Z0JFSUJWcTE4ZlVJQUVDc2dCVUdBQVdwQ0FTQUVmVUlBSUFKQ0FCQXJJQVlnQ1NBSWEyb2hCZ0ovSUFVcEEzQWlFMElCaGlJT0lBVXBBNGdCSWc5Q0FZWWdCU2tEZ0FGQ1A0aUVmQ0lRUXVmc0FIMGlGRUlnaUNJQ0lBcENnSUNBZ0lDQXdBQ0VJaFZDSDRoQy8vLy8vdytESWdSK0loRWdBVUlCaGlJTVFpQ0lJZ3NnRUNBVVZxMGdEaUFRVnEwZ0JTa0RlRUlCaGlBVFFqK0loQ0FQUWorSWZIeDhRZ0Y5SWhOQ0lJZ2lFSDU4SWc0Z0VWU3RJQTRnRGlBVFF2Ly8vLzhQZ3lJVElBRkNQNGdpRmlBS1FnR0doRUwvLy8vL0Q0TWlDbjU4SWc1V3JYd2dCQ0FRZm53Z0JDQVRmaUlSSUFvZ0VINThJZzhnRVZTdFFpQ0dJQTlDSUlpRWZDQU9JQTRnRDBJZ2hud2lEbGF0ZkNBT0lBNGdGRUwvLy8vL0Q0TWlGQ0FLZmlJUklBSWdDMzU4SWc4Z0VWU3RJQThnRHlBVElBeEMvdi8vL3crREloRitmQ0lQVnExOGZDSU9WcTE4SUE0Z0JDQVVmaUlYSUJBZ0VYNThJZ1FnQWlBS2Zud2lDaUFMSUJOK2ZDSVFRaUNJSUFvZ0VGYXRJQVFnRjFTdElBUWdDbGF0Zkh4Q0lJYUVmQ0lFSUE1VXJYd2dCQ0FQSUFJZ0VYNGlBaUFMSUJSK2ZDSUxRaUNJSUFJZ0MxYXRRaUNHaEh3aUFpQVBWSzBnQWlBUVFpQ0dmQ0FDVksxOGZDSUNJQVJVclh3aUJFTC8vLy8vLy8vL0FGZ0VRQ0FWUWdHR0lCYUVJUlVnQlVIUUFHb2dBaUFFSUFNZ0VoQXJJQUZDTVlZZ0JTa0RXSDBnQlNrRFVDSUJRZ0JTclgwaENrSUFJQUY5SVFzZ0JrSCsvd0JxREFFTElBVkI0QUJxSUFSQ1A0WWdBa0lCaUlRaUFpQUVRZ0dJSWdRZ0F5QVNFQ3NnQVVJd2hpQUZLUU5vZlNBRktRTmdJZ3hDQUZLdGZTRUtRZ0FnREgwaEN5QUJJUXdnQmtILy93QnFDeUlHUWYvL0FVNEVRQ0FOUW9DQWdJQ0FnTUQvL3dDRUlRMUNBQ0VCREFFTEFuNGdCa0VBU2dSQUlBcENBWVlnQzBJL2lJUWhDaUFFUXYvLy8vLy8veitESUFhdFFqQ0doQ0VNSUF0Q0FZWU1BUXNnQmtHUGYwd0VRRUlBSVFFTUFnc2dCVUZBYXlBQ0lBUkJBU0FHYXhCOElBVkJNR29nRENBVklBWkI4QUJxRUM4Z0JVRWdhaUFESUJJZ0JTa0RRQ0lDSUFVcEEwZ2lEQkFySUFVcEF6Z2dCU2tES0VJQmhpQUZLUU1nSWdGQ1A0aUVmU0FGS1FNd0lnUWdBVUlCaGlJQlZLMTlJUW9nQkNBQmZRc2hCQ0FGUVJCcUlBTWdFa0lEUWdBUUt5QUZJQU1nRWtJRlFnQVFLeUFNSUFJZ0FpQURJQUpDQVlNaUFTQUVmQ0lEVkNBS0lBRWdBMWF0ZkNJQklCSldJQUVnRWxFYnJYd2lBbGF0ZkNJRUlBSWdBaUFFUW9DQWdJQ0FnTUQvL3dCVUlBTWdCU2tERUZZZ0FTQUZLUU1ZSWdSV0lBRWdCRkViY2ExOElnSldyWHdpQkNBQ0lBUkNnSUNBZ0lDQXdQLy9BRlFnQXlBRktRTUFWaUFCSUFVcEF3Z2lBMVlnQVNBRFVSdHhyWHdpQVNBQ1ZLMThJQTJFSVEwTElBQWdBVGNEQUNBQUlBMDNBd2dnQlVIUUFtb2tBQXUvQWdFQmZ5TUFRZEFBYXlJRUpBQUNRQ0FEUVlDQUFVNEVRQ0FFUVNCcUlBRWdBa0lBUW9DQWdJQ0FnSUQvL3dBUUdDQUVLUU1vSVFJZ0JDa0RJQ0VCSUFOQi8vOEJTQVJBSUFOQi8vOEFheUVEREFJTElBUkJFR29nQVNBQ1FnQkNnSUNBZ0lDQWdQLy9BQkFZSUFOQi9mOENJQU5CL2Y4Q1NCdEIvdjhCYXlFRElBUXBBeGdoQWlBRUtRTVFJUUVNQVFzZ0EwR0JnSDlLRFFBZ0JFRkFheUFCSUFKQ0FFS0FnSUNBZ0lDQU9SQVlJQVFwQTBnaEFpQUVLUU5BSVFFZ0EwSDBnSDVLQkVBZ0EwR04vd0JxSVFNTUFRc2dCRUV3YWlBQklBSkNBRUtBZ0lDQWdJQ0FPUkFZSUFOQjZJRjlJQU5CNklGOVNodEJtdjRCYWlFRElBUXBBemdoQWlBRUtRTXdJUUVMSUFRZ0FTQUNRZ0FnQTBILy93QnFyVUl3aGhBWUlBQWdCQ2tEQ0RjRENDQUFJQVFwQXdBM0F3QWdCRUhRQUdva0FBdXBEd0VNZnlNQVFVQnFJZ0lrQUNBQ1FRQTJBaFFnQWtFQU5nSVFJQUpCQURZQ0RDQUNRUUEyQWdnZ0FpQUNRUlJxTmdJWUlBSWdBa0VRYWpZQ0hDQUNLQUlZR2lBQ0lBSkJER28yQWlBZ0FpZ0NIQm9nQWlBQ1FRaHFOZ0lrSUFJb0FpQWFJQUlvQWlRYUl3QkJFR3NpQlNRQUlBSWdBQzBBQWlBQUxRQUJJQUF0QUFCemMwRVlkRUVZZFNJRFFUQnJJZ2MyQWdnZ0FrRXZJQU5ySUFGeFFRRjBJQUVnQjNOcklnTkJmbk1nQTBFQmRFRjhjV3BCQVdvaUF6WUNEQ0FDSUFNUUdUWUNGQ0FDSUFJb0FnZ2lCQkFaTmdJUUlBRkJmM01oQmdOQVFadVI0UDBISVFNRFFBSkFBa0FDUUNBRFFaeVZ1NWNFVEFSQUlBTkJscEhIaDN0R0RRRWdBMEhObjZuSWUwWU5BeUFEUWREYzZ1QitSdzBFSUFJb0FoUWdCU2dDREdvZ0FDQUZLQUlNSWdOQkFYUkJBbkVnQTBFQmMyb2lCMm90QUFBNkFBQkJuWlc3bHdRaEF3d0VDeUFEUVoyVnU1Y0VSZzBCSUFOQjllL2c0QVpHQkVCQkFDRUhRWjJWdTVjRUlRTU1CQXNnQTBHYmtlRDlCMGNOQXlBRklBUTJBZ2hCbHBISGgzdEI5ZS9nNEFZZ0JTZ0NDRUVBU2hzaEF3d0RDeUFCSUFJb0FnZ2lBMnNpQkVGOWN5QUVRUUYwSWdoQmVuRnFJQUJxTFFBQklRa2dBaWdDRUNBRElBVW9BZ2dpQ2tGL2MzRkJBWFFnQXlBS2MydHFJQUFnQlNnQ0NDSURRWDl6SUFGeElBTWdCbkZyYWkwQUFDQUlRWDF5SUFSQkFYTnFJQUJxTFFBQklBbHpjem9BQUNBRktBSUlRUUZySVFRTUF3c2dCU0FITmdJTVFkRGM2dUIrUWMyZnFjaDdJQUlvQWd3Z0JTZ0NERW9iSVFNTUFRc0xDeUFGUVJCcUpBQWdBaWdDRkNFSUlBSW9BZ3doQ2tFQUlRZEJBQ0VBUVFBaENVRUFJUUVqQUVFUWF5SUVKQUJCMVFBaEEwSDZBU0VGUWNtSnE0a0RJUVlEUUFKQUFrQUNRQUpBSUFaQnc5cTZtSDlNQkVBZ0JrR2trcmZLZWtZTkFTQUdRWnZjN0o5N1JnMENJQVpCNllpaHpudEhEUVVnQkVFUWFpUUFEQVFMSUFaQnhOcTZtSDlHRFFJZ0JrRzByS2F4QlVjRVFDQUdRY21KcTRrRFJ3MEZJQVFnQnpZQ0NDQUVJQVU2QUE0Z0JDQURPZ0FQUWJTc3ByRUZRZW1Jb2M1N0lBUW9BZ2dnQ2tnYklRWU1CUXRCcEpLM3lucEJtOXpzbjNzZ0JDZ0NDRUVDYjBFQlJoc2hCZ3dFQ3lBSUlBUW9BZ2hxTFFBQUlnQWdCQzBBRDNNaENVSEUycnFZZnlFR0lBUXRBQTRoQVF3REN5QUlJQVFvQWdocUxRQUFJZ0VnQkMwQURuTWhDVUhFMnJxWWZ5RUdJQVF0QUE4aEFBd0NDeUFKUVJoMFFSaDFJUXdnQkNnQ0NDRUdRUUFoQnlNQVFSQnJJUU1EUUVISHFQaVdmQ0VGQWtBRFFDQUZRY0d4KzRON1JnMEJJQVZCb3MvNjRRRkhCRUFnQlVISHFQaVdmRWNOQVNBRElBWTJBZ3dnQXlBSE5nSUlRYUxQK3VFQlFjR3grNE43SUFNb0Fnd2JJUVVNQVFzTElBTW9BZ3dnQXlnQ0RFRUJhM0VoQmlBREtBSUlRUUZxSVFjTUFRc0xJQU1vQWdnaUF5QU1RZjhCY1NJRmNrRUJkQ0FESUFWemF5SURRUlZ5UVFGMElBTkJGWE5yUVJoMFFSaDFJUU1nQ0NBRUtBSUlhaUFET2dBQUlBUW9BZ2hCQVdvaEIwSEppYXVKQXlFR0lBRWhCU0FBSVFNTUFRc0xRUUFoQXlNQVFSQnJJZ0VnQWlnQ0ZDd0FBRFlDQ0NBQklBRW9BZ2hCTDBvNkFBNGdBU0FCS0FJSVFUcElPZ0FQUWNESjlaUi9JUUFEUUFKQUFrQUNRQ0FBUWIvSjlaUi9UQVJBSUFCQnM2dnUwSGxHRFFJZ0FFR2d5cTczZmtZTkFTQUFRYjdrOFlKL1J3MEVJQUVvQWdnaUFFRXdjeUFBUVFGMFFaOEJjbXBCQVdvaEEwR0FrY2lQQkNFQURBUUxJQUJCZ0pISWp3UkdEUUlnQUVHRXVaWHBBVVlFUUVIL0FTRURRWUNSeUk4RUlRQU1CQXNnQUVIQXlmV1VmMGNOQTBHKzVQR0NmMEdneXE3M2ZpQUJMUUFQUVFGeEcwR2d5cTczZmlBQkxRQU9RUUZ4R3lFQURBTUxRYk9yN3RCNVFZUzVsZWtCSUFFb0FnaEIrd0JJRzBHRXVaWHBBU0FCS0FJSVFlQUFTaHNoQUF3Q0N5QUJLQUlJSWdCQm5nRnpJQUJCQVhSQlBIRnFRUXRxSVFOQmdKSElqd1FoQUF3QkN3c2dBaUFEUVJoMFFSaDFJZ0EyQWdnZ0FpQUNLQUlNSWdFZ0FFRi9jM0VnQUNBQlFYOXpjV3NpQVVGK2NpQUJRWDV4YWtFQmFqWUNLQ0FDSUFFUUdUWUNMQ0FDSUFCQkFYUkJBbkVnQUVFQmMyb1FHVFlDTUNBQ0tBSW9JQUlvQWl4cVFRQTZBQUFnQWlnQ0NDQUNLQUl3YWtFQU9nQUFBMEJCd3VUNTkzc2hBQU5BSUFJb0FnZ2hBUUpBQWtBRFFDQUFRY0hrK2ZkN1RBUkFJQUJCNVlhcW5YaEdEUU1nQUVHYnJkdkFlVVlOQWlBQVFjR1h1SjU2UncwQklBSWdBVFlDTkNBQ0lBczJBanhCbTYzYndIbEI1WWFxblhnZ0FpZ0NOQ0FDS0FJOFNoc2hBQXdCQ3lBQVFkYlU5TjhEUmdSQVFRQWhDMEhCbDdpZWVpRUFEQVFMSUFCQnhOYmJ1UUpIQkVBZ0FFSEM1UG4zZTBjTkFTQUNJQTAyQWpoQnhOYmJ1UUpCMXRUMDN3TWdBaWdDS0NBQ0tBSTRTaHNoQUF3QkN3c2dBaWdDTENBQ0tBSTRhaUFDS0FJNElnQkJBWFJCQW5FZ0FFRUJjMm9pRFNBQ0tBSVVhaTBBQURvQUFBd0RDeUFDS0FJd0lBSW9BanhxSUFJb0FoUWdBaWdDRENJQUlBSW9BalFpQVVGL2MzRWdBU0FBUVg5emNXc2lBQ0FDS0FJOElnRnlRUUYwSUFBZ0FYTnJhaTBBQURvQUFDQUNLQUk4SWdCQmZuTWdBRUVCZEVFQ2NtcEJBV29oQzBIQmw3aWVlaUVBREFFTEN3c2dBaWdDRkJBUUlBSW9BaEFRRUNBQ0tBSWtHaUFDS0FJZ0dpQUNLQUljR2lBQ0tBSVlHaUFDS0FJc0lRQWdBa0ZBYXlRQUlBQUxOUUFnQUNBQk53TUFJQUFnQWtMLy8vLy8vLzgvZ3lBRVFqQ0lwMEdBZ0FKeElBSkNNSWluUWYvL0FYRnlyVUl3aG9RM0F3Z0xMQUFnQUNnQ0FCb2dBQ2dDQUNBQUVJVUJhaG9nQUNnQ0FDQUFFSWtCYWhvZ0FDZ0NBQ0FBRUlVQmFob0xCd0FnQVNBQWF3c0pBQ0FBSUFFUTZnSUxLd0VCZnlBQUtBSUFJZ0VFUUNBQkVQY0NRWDhRWDBVRVFDQUFLQUlBUlE4TElBQkJBRFlDQUF0QkFRc3JBUUYvSUFBb0FnQWlBUVJBSUFFUS9BSkJmeEJmUlFSQUlBQW9BZ0JGRHdzZ0FFRUFOZ0lBQzBFQkN3MEFRUUFnQUNBQVFYOFFYeHNMNVFRQkIzOGdBQ2dDQkNBQUVFTW9BZ0JIQkVBakFFRVFheUlDSkFBZ0FpQUFOZ0lBSUFJZ0FDZ0NCQ0lETmdJRUlBSWdBMEVCYWpZQ0NDQUFFRU1nQWlnQ0JDQUJFSk1DSUFJZ0FpZ0NCRUVCYWpZQ0JDQUNFSTBDSUFKQkVHb2tBQThMSXdCQklHc2lCeVFBSUFBUVF5SUlBbjhnQjBFSWFpRUNBbjhnQUJDSkFVRUJhaUVHSXdCQkVHc2lCU1FBSUFVZ0JqWUNEQ01BUVJCcklnUWtBQ0FBRUVNYUlBUkJmellDRENBRVFmLy8vLzhITmdJSUlBUkJER29nQkVFSWFoQ2lBU2dDQUNFRElBUkJFR29rQUNBRElBWlBCRUFnQUJDRkFTSUVJQU5CQVhaSkJFQWdCU0FFUVFGME5nSUlJQVZCQ0dvZ0JVRU1haEIyS0FJQUlRTUxJQVZCRUdva0FDQUREQUVMUWFjYkVLZ0NBQXNoQlNBQUVJa0JJUVpCQUNFREl3QkJFR3NpQkNRQUlBUkJBRFlDRENBQ1FReHFJQVJCREdvZ0NCQ0xBaUFGQkVBZ0FpZ0NFQm9nQlJCZ0lRTUxJQUlnQXpZQ0FDQUNJQU1nQm1vaUJqWUNDQ0FDSUFZMkFnUWdBaENFQVNBRElBVnFOZ0lBSUFSQkVHb2tBQ0FDS0FJSUN5QUJFSk1DSUFJZ0FpZ0NDRUVCYWpZQ0NDQUFFT2tDSUFBUVF5QUFLQUlBSUFBb0FnUWdBa0VFYWlJQkVJWUNJQUFnQVJCMUlBQkJCR29nQWtFSWFoQjFJQUFRUXlBQ0VJUUJFSFVnQWlBQ0tBSUVOZ0lBSUFBUWlRRWFJQUFvQWdBYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBZ0FCQ0ZBV29hSUFBb0FnQWFJQUlvQWdRaUFDQUNLQUlJUndSQUEwQWdBaWdDRUJvZ0FpQUNLQUlJUVFGck5nSUlJQUlvQWdnZ0FFY05BQXNMSUFJb0FnQUVRQ0FDS0FJUUdpQUNLQUlBSVFBZ0FoQ0VBU2dDQUNBQ0tBSUFheG9nQUJBUUN5QUhRU0JxSkFBTGpRRUJCSDhqQUVFUWF5SUZKQUFnQVNBQ0VPc0NJZ1JCYjAwRVFBSkFJQVJCQ2swRVFDQUFJQVFRT2lBQUlRTU1BUXNnQUNBRUVKRUJRUUZxSWdZUVlDSURFRTBnQUNBR0VFd2dBQ0FFRURrTEEwQWdBU0FDUndSQUlBTWdBUkEwSUFOQkFXb2hBeUFCUVFGcUlRRU1BUXNMSUFWQkFEb0FEeUFESUFWQkQyb1FOQ0FGUVJCcUpBQVBDeEFYQUFzUEFDQUFJQUFvQWhnZ0FXbzJBaGdMRndBZ0FDQUNOZ0ljSUFBZ0FUWUNGQ0FBSUFFMkFoZ0xWZ0VDZndKQUlBQW9BZ0FpQWtVTkFBSi9JQUlvQWhnaUF5QUNLQUljUmdSQUlBSWdBU0FDS0FJQUtBSTBFUUlBREFFTElBSWdBMEVFYWpZQ0dDQURJQUUyQWdBZ0FRdEJmeEJmUlEwQUlBQkJBRFlDQUFzTEpnRUJmd0pBSUFBb0FnQWlBa1VOQUNBQ0lBRVErZ0pCZnhCZlJRMEFJQUJCQURZQ0FBc0xDUUFnQUJEa0FSQVFDekVCQVg4Z0FDZ0NEQ0lCSUFBb0FoQkdCRUFnQUNBQUtBSUFLQUlvRVFBQUR3c2dBQ0FCUVFScU5nSU1JQUVvQWdBTEp3RUJmeUFBS0FJTUlnRWdBQ2dDRUVZRVFDQUFJQUFvQWdBb0FpUVJBQUFQQ3lBQktBSUFDeEFBSUFBUTdBSWdBUkRzQW5OQkFYTUxpd1FCQm44akFFRWdheUlDSkFBZ0FrRUFOZ0ljSXdCQklHc2lCQ1FBSUFKQkdHb2lCa0VBT2dBQUlBQWdBQ2dDQUVFTWF5Z0NBR29RdVFFaEJTQUFJQUFvQWdCQkRHc29BZ0JxSVFNQ1FDQUZCRUFnQXlnQ1NBUkFJQUFnQUNnQ0FFRU1heWdDQUdvb0FrZ1FnZ01MQWtBZ0FDQUFLQUlBUVF4cktBSUFhaWdDQkVHQUlIRkZEUUFnQkVFWWFpSURJQUFnQUNnQ0FFRU1heWdDQUdvUUR5QURFREloQnlBREVBNGdCRUVRYWlBQUVNY0JJUU1nQkVFSWFoQ0JBeUVGQTBBQ1FDQURJQVVRTVVVTkFDQUhRWURBQUNBREVCOFFSRVVOQUNBREVDSWFEQUVMQ3lBRElBVVFKa1VOQUNBQUlBQW9BZ0JCREdzb0FnQnFRUVlRZ0FFTElBWWdBQ0FBS0FJQVFReHJLQUlBYWhDNUFUb0FBQXdCQ3lBRFFRUVFnQUVMSUFSQklHb2tBQ0FHTFFBQUJFQWdBa0VRYWlJRUlBQWdBQ2dDQUVFTWF5Z0NBR29RRHlBRVFiaUhBUkJsSVFNZ0FrRUlhaUFBRU1jQklRWWdBaENCQXlFRklBTWdCaWdDQUNBRktBSUFJQUFnQUNnQ0FFRU1heWdDQUdvZ0FrRWNhaUFDUVJScUlBTW9BZ0FvQWhBUkJRQWFJQVFRRGlBQkFuOGdBaWdDRkVHQWdJQ0FlRWdFUUNBQ0lBSW9BaHhCQkhJMkFoeEJnSUNBZ0hnTUFRc2dBaWdDRkVILy8vLy9CMG9FUUNBQ0lBSW9BaHhCQkhJMkFoeEIvLy8vL3djTUFRc2dBaWdDRkFzMkFnQWdBQ0FBS0FJQVFReHJLQUlBYWlBQ0tBSWNFSUFCQ3lBQ1FTQnFKQUFMT3dFQmZ5QUFLQUlZSWdJZ0FDZ0NIRVlFUUNBQUlBRVFYaUFBS0FJQUtBSTBFUUlBRHdzZ0FDQUNRUUZxTmdJWUlBSWdBVG9BQUNBQkVGNExNd0VCZnlBQUtBSU1JZ0VnQUNnQ0VFWUVRQ0FBSUFBb0FnQW9BaWdSQUFBUEN5QUFJQUZCQVdvMkFnd2dBU3dBQUJCZUN5a0JBWDhnQUNnQ0RDSUJJQUFvQWhCR0JFQWdBQ0FBS0FJQUtBSWtFUUFBRHdzZ0FTd0FBQkJlQ3hBQUlBQVE3UUlnQVJEdEFuTkJBWE1MalFFQkFYOENRQ0FBS0FJRUlnRWdBU2dDQUVFTWF5Z0NBR29vQWhoRkRRQWdBQ2dDQkNJQklBRW9BZ0JCREdzb0FnQnFFTGtCUlEwQUlBQW9BZ1FpQVNBQktBSUFRUXhyS0FJQWFpZ0NCRUdBd0FCeFJRMEFJQUFvQWdRaUFTQUJLQUlBUVF4cktBSUFhaWdDR0JEL0FrRi9SdzBBSUFBb0FnUWlBQ0FBS0FJQVFReHJLQUlBYWtFQkVJQUJDd3NQQUNBQUlBQW9BZ0FvQWhnUkFBQUxWUUFnQUNBQk5nSUVJQUJCQURvQUFDQUJJQUVvQWdCQkRHc29BZ0JxRUxrQkJFQWdBU0FCS0FJQVFReHJLQUlBYWlnQ1NBUkFJQUVnQVNnQ0FFRU1heWdDQUdvb0FrZ1FnZ01MSUFCQkFUb0FBQXNnQUFzTEFDQUFRUUEyQWdBZ0FBdHVBUUovSXdCQkVHc2lBU1FBSUFBZ0FDZ0NBRUVNYXlnQ0FHb29BaGdFUUFKQUlBRkJDR29nQUJDQUF5SUNMUUFBUlEwQUlBQWdBQ2dDQUVFTWF5Z0NBR29vQWhnUS93SkJmMGNOQUNBQUlBQW9BZ0JCREdzb0FnQnFRUUVRZ0FFTElBSVEvZ0lMSUFGQkVHb2tBQXNKQUNBQUVMb0JFQkFMeGdnQkJuOGdBQ0FCS0FBQUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y2lJRk5nSUFJQUFnQVNnQUJDSURRUmgwSUFOQkNIUkJnSUQ4QjNGeUlBTkJDSFpCZ1A0RGNTQURRUmgyY25JaUJqWUNCQ0FBSUFFb0FBZ2lBMEVZZENBRFFRaDBRWUNBL0FkeGNpQURRUWgyUVlEK0EzRWdBMEVZZG5KeUlnYzJBZ2dnQUNBQktBQU1JZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNpSUVOZ0lNQWtBZ0FrR0FBVVlFUUVFQUlRTURRQ0FBSUFSQkZuWkIvQWR4UVlBSWFpMEFBU0FFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDSFJCZ0lDQWVIRWdCWE1nQkVFR2RrSDhCM0ZCZ0FocUxRQUNRUkIwY3lBRVFmOEJjVUVDZEVHQUNHb3RBQUZCQ0hSemN5QURRWUFhYWkwQUFFRVlkSE1pQlRZQ0VDQUFJQVVnQm5NaUJqWUNGQ0FBSUFZZ0IzTWlCellDR0NBQUlBUWdCM01pQkRZQ0hDQUFRUkJxSVFCQkNpRUJJQU5CQVdvaUEwRUtSdzBBQ3d3QkN5QUFJQUVvQUJBaUEwRVlkQ0FEUVFoMFFZQ0EvQWR4Y2lBRFFRaDJRWUQrQTNFZ0EwRVlkbkp5TmdJUUlBQWdBU2dBRkNJRFFSaDBJQU5CQ0hSQmdJRDhCM0Z5SUFOQkNIWkJnUDREY1NBRFFSaDJjbklpQXpZQ0ZDQUNRY0FCUmdSQVFRQWhBUU5BSUFBZ0EwRVdka0g4QjNGQmdBaHFMUUFCSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FGY3lBRFFRWjJRZndIY1VHQUNHb3RBQUpCRUhSeklBTkIvd0Z4UVFKMFFZQUlhaTBBQVVFSWRITnpJQUZCZ0JwcUxRQUFRUmgwY3lJRk5nSVlJQUFnQlNBR2N5SUdOZ0ljSUFBZ0JpQUhjeUlITmdJZ0lBQWdCQ0FIY3lJRU5nSWtJQUZCQjBZRVFFRU1Ed1VnQUNBQUtBSVFJQVJ6SWdJMkFpZ2dBQ0FDSUFOeklnTTJBaXdnQVVFQmFpRUJJQUJCR0dvaEFBd0JDd0FMQUFzZ0FDQUJLQUFZSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljallDR0NBQUlBRW9BQndpQVVFWWRDQUJRUWgwUVlDQS9BZHhjaUFCUVFoMlFZRCtBM0VnQVVFWWRuSnlJZ00yQWh4QmZ5RUJJQUpCZ0FKSERRQkJBQ0VDUVE0aEFRTkFJQUFnQTBFV2RrSDhCM0ZCZ0FocUxRQUJJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUZjeUFEUVFaMlFmd0hjVUdBQ0dvdEFBSkJFSFJ6SUFOQi93RnhRUUowUVlBSWFpMEFBVUVJZEhOeklBSkJnQnBxTFFBQVFSaDBjeUlGTmdJZ0lBQWdCU0FHY3lJR05nSWtJQUFnQmlBSGN5SUhOZ0lvSUFBZ0JDQUhjeUlFTmdJc0lBSkJCa1lOQVNBQUlBUkIvd0Z4UVFKMFFZQUlhaTBBQVNBQUtBSVFJQVJCRm5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNYTWdCRUVPZGtIOEIzRkJnQWhxTFFBQ1FSQjBjeUFFUVFaMlFmd0hjVUdBQ0dvdEFBRkJDSFJ6Y3lJSU5nSXdJQUFnQ0NBQUtBSVVjeUlJTmdJMElBQWdBQ2dDR0NBSWN5SUlOZ0k0SUFBZ0F5QUljeUlETmdJOElBSkJBV29oQWlBQVFTQnFJUUFNQUFzQUN5QUJDNjBCQVFSL0l3QkJFR3NpQlNRQUEwQUNRQ0FDSUFSTURRQWdBQ2dDR0NJRElBQW9BaHdpQms4RVFDQUFJQUVzQUFBUVhpQUFLQUlBS0FJMEVRSUFRWDlHRFFFZ0JFRUJhaUVFSUFGQkFXb2hBUVVnQlNBR0lBTnJOZ0lNSUFVZ0FpQUVhellDQ0NBRlFReHFJQVZCQ0dvUXV3RWhBeUFBS0FJWUlBRWdBeWdDQUNJREVGVWdBQ0FESUFBb0FoaHFOZ0lZSUFNZ0JHb2hCQ0FCSUFOcUlRRUxEQUVMQ3lBRlFSQnFKQUFnQkFzdUFDQUFJQUFvQWdBb0FpUVJBQUJCZjBZRVFFRi9Ed3NnQUNBQUtBSU1JZ0JCQVdvMkFnd2dBQ3dBQUJCZUN3UUFRWDhMdndFQkJIOGpBRUVRYXlJRUpBQURRQUpBSUFJZ0JVd05BQUpBSUFBb0Fnd2lBeUFBS0FJUUlnWkpCRUFnQkVILy8vLy9CellDRENBRUlBWWdBMnMyQWdnZ0JDQUNJQVZyTmdJRUlBUkJER29nQkVFSWFpQUVRUVJxRUxzQkVMc0JJUU1nQVNBQUtBSU1JQU1vQWdBaUF4QlZJQUFnQUNnQ0RDQURhallDREF3QkN5QUFJQUFvQWdBb0FpZ1JBQUFpQTBGL1JnMEJJQUVnQXhDYkFUb0FBRUVCSVFNTElBRWdBMm9oQVNBRElBVnFJUVVNQVFzTElBUkJFR29rQUNBRkN3a0FJQUJDZnhDOEFRc0pBQ0FBUW44UXZBRUxCQUFnQUFzSkFDQUFFTDBCRUJBTENBQWdBQkIrRUJBTEJ3QWdBQ2dDREFzTUFDQUFFTUFCR2lBQUVCQUxDUUFnQUJEQUFSQVFDd1VBUWY0YkN4c0FJQUFnQVNnQ0NDQUZFRDRFUUNBQklBSWdBeUFFRU1NQkN3czRBQ0FBSUFFb0FnZ2dCUkErQkVBZ0FTQUNJQU1nQkJEREFROExJQUFvQWdnaUFDQUJJQUlnQXlBRUlBVWdBQ2dDQUNnQ0ZCRUpBQXVXQWdFR2Z5QUFJQUVvQWdnZ0JSQStCRUFnQVNBQ0lBTWdCQkREQVE4TElBRXRBRFVoQnlBQUtBSU1JUVlnQVVFQU9nQTFJQUV0QURRaENDQUJRUUE2QURRZ0FFRVFhaUlKSUFFZ0FpQURJQVFnQlJEQkFTQUhJQUV0QURVaUNuSWhCeUFJSUFFdEFEUWlDM0loQ0FKQUlBWkJBa2dOQUNBSklBWkJBM1JxSVFrZ0FFRVlhaUVHQTBBZ0FTMEFOZzBCQWtBZ0N3UkFJQUVvQWhoQkFVWU5BeUFBTFFBSVFRSnhEUUVNQXdzZ0NrVU5BQ0FBTFFBSVFRRnhSUTBDQ3lBQlFRQTdBVFFnQmlBQklBSWdBeUFFSUFVUXdRRWdBUzBBTlNJS0lBZHlJUWNnQVMwQU5DSUxJQWh5SVFnZ0JrRUlhaUlHSUFsSkRRQUxDeUFCSUFkQi93RnhRUUJIT2dBMUlBRWdDRUgvQVhGQkFFYzZBRFFMa2dFQUlBQWdBU2dDQ0NBRUVENEVRQ0FCSUFJZ0F4RENBUThMQWtBZ0FDQUJLQUlBSUFRUVBrVU5BQUpBSUFJZ0FTZ0NFRWNFUUNBQktBSVVJQUpIRFFFTElBTkJBVWNOQVNBQlFRRTJBaUFQQ3lBQklBSTJBaFFnQVNBRE5nSWdJQUVnQVNnQ0tFRUJhallDS0FKQUlBRW9BaVJCQVVjTkFDQUJLQUlZUVFKSERRQWdBVUVCT2dBMkN5QUJRUVEyQWl3TEMvTUJBQ0FBSUFFb0FnZ2dCQkErQkVBZ0FTQUNJQU1Rd2dFUEN3SkFJQUFnQVNnQ0FDQUVFRDRFUUFKQUlBSWdBU2dDRUVjRVFDQUJLQUlVSUFKSERRRUxJQU5CQVVjTkFpQUJRUUUyQWlBUEN5QUJJQU0yQWlBQ1FDQUJLQUlzUVFSR0RRQWdBVUVBT3dFMElBQW9BZ2dpQUNBQklBSWdBa0VCSUFRZ0FDZ0NBQ2dDRkJFSkFDQUJMUUExQkVBZ0FVRUROZ0lzSUFFdEFEUkZEUUVNQXdzZ0FVRUVOZ0lzQ3lBQklBSTJBaFFnQVNBQktBSW9RUUZxTmdJb0lBRW9BaVJCQVVjTkFTQUJLQUlZUVFKSERRRWdBVUVCT2dBMkR3c2dBQ2dDQ0NJQUlBRWdBaUFESUFRZ0FDZ0NBQ2dDR0JFS0FBc0xuUVFCQTM4Z0FDQUJLQUlJSUFRUVBnUkFJQUVnQWlBREVNSUJEd3NDUUNBQUlBRW9BZ0FnQkJBK0JFQUNRQ0FDSUFFb0FoQkhCRUFnQVNnQ0ZDQUNSdzBCQ3lBRFFRRkhEUUlnQVVFQk5nSWdEd3NnQVNBRE5nSWdJQUVvQWl4QkJFY0VRQ0FBUVJCcUlnVWdBQ2dDREVFRGRHb2hCMEVBSVFNZ0FRSi9Ba0FEUUFKQUlBVWdCMDhOQUNBQlFRQTdBVFFnQlNBQklBSWdBa0VCSUFRUXdRRWdBUzBBTmcwQUFrQWdBUzBBTlVVTkFDQUJMUUEwQkVCQkFTRURJQUVvQWhoQkFVWU5CRUVCSVFZZ0FDMEFDRUVDY1EwQkRBUUxRUUVoQmlBQUxRQUlRUUZ4UlEwREN5QUZRUWhxSVFVTUFRc0xRUVFnQmtVTkFSb0xRUU1MTmdJc0lBTkJBWEVOQWdzZ0FTQUNOZ0lVSUFFZ0FTZ0NLRUVCYWpZQ0tDQUJLQUlrUVFGSERRRWdBU2dDR0VFQ1J3MEJJQUZCQVRvQU5nOExJQUFvQWd3aEJTQUFRUkJxSWdZZ0FTQUNJQU1nQkJDZ0FTQUZRUUpJRFFBZ0JpQUZRUU4wYWlFR0lBQkJHR29oQlFKQUlBQW9BZ2dpQUVFQ2NVVUVRQ0FCS0FJa1FRRkhEUUVMQTBBZ0FTMEFOZzBDSUFVZ0FTQUNJQU1nQkJDZ0FTQUZRUWhxSWdVZ0Jra05BQXNNQVFzZ0FFRUJjVVVFUUFOQUlBRXRBRFlOQWlBQktBSWtRUUZHRFFJZ0JTQUJJQUlnQXlBRUVLQUJJQVZCQ0dvaUJTQUdTUTBBREFJTEFBc0RRQ0FCTFFBMkRRRWdBU2dDSkVFQlJnUkFJQUVvQWhoQkFVWU5BZ3NnQlNBQklBSWdBeUFFRUtBQklBVkJDR29pQlNBR1NRMEFDd3NMYndFQ2Z5QUFJQUVvQWdoQkFCQStCRUFnQVNBQ0lBTVF4UUVQQ3lBQUtBSU1JUVFnQUVFUWFpSUZJQUVnQWlBREVQQUJBa0FnQkVFQ1NBMEFJQVVnQkVFRGRHb2hCQ0FBUVJocUlRQURRQ0FBSUFFZ0FpQURFUEFCSUFFdEFEWU5BU0FBUVFocUlnQWdCRWtOQUFzTEN6SUFJQUFnQVNnQ0NFRUFFRDRFUUNBQklBSWdBeERGQVE4TElBQW9BZ2dpQUNBQklBSWdBeUFBS0FJQUtBSWNFUWdBQ3hrQUlBQWdBU2dDQ0VFQUVENEVRQ0FCSUFJZ0F4REZBUXNMdWdNQkJYOGpBRUZBYWlJRUpBQUNmMEVCSUFBZ0FVRUFFRDROQUJwQkFDQUJSUTBBR2lNQVFVQnFJZ01rQUNBQktBSUFJZ1ZCQkdzb0FnQWhCaUFGUVFocktBSUFJUWNnQTBFQU5nSVVJQU5CblAwQU5nSVFJQU1nQVRZQ0RDQURRY3o5QURZQ0NFRUFJUVVnQTBFWWFrRUFRU2NRUmhvZ0FTQUhhaUVCQWtBZ0JrSE0vUUJCQUJBK0JFQWdBMEVCTmdJNElBWWdBMEVJYWlBQklBRkJBVUVBSUFZb0FnQW9BaFFSQ1FBZ0FVRUFJQU1vQWlCQkFVWWJJUVVNQVFzZ0JpQURRUWhxSUFGQkFVRUFJQVlvQWdBb0FoZ1JDZ0FDUUFKQUlBTW9BaXdPQWdBQkFnc2dBeWdDSEVFQUlBTW9BaWhCQVVZYlFRQWdBeWdDSkVFQlJodEJBQ0FES0FJd1FRRkdHeUVGREFFTElBTW9BaUJCQVVjRVFDQURLQUl3RFFFZ0F5Z0NKRUVCUncwQklBTW9BaWhCQVVjTkFRc2dBeWdDR0NFRkN5QURRVUJySkFCQkFDQUZJZ0ZGRFFBYUlBUkJDR29pQTBFRWNrRUFRVFFRUmhvZ0JFRUJOZ0k0SUFSQmZ6WUNGQ0FFSUFBMkFoQWdCQ0FCTmdJSUlBRWdBeUFDS0FJQVFRRWdBU2dDQUNnQ0hCRUlBQ0FFS0FJZ0lnQkJBVVlFUUNBQ0lBUW9BaGcyQWdBTElBQkJBVVlMSVFBZ0JFRkFheVFBSUFBTEJRQVFGd0FMQXdBQUN3Y0FJQUFvQWdRTENRQkJ6SW9CRUFvYUN5OEFBa0JCMklvQkxRQUFRUUZ4RFFCQjJJb0JFQ1JGRFFCQnpJb0JRZERWQUJDREFVSFlpZ0VRSXd0QnpJb0JDd2tBUWJ5S0FSQUtHZ3N1QUFKQVFjaUtBUzBBQUVFQmNRMEFRY2lLQVJBa1JRMEFRYnlLQVVIcUd4QlVHa0hJaWdFUUl3dEJ2SW9CQ3drQVFheUtBUkFLR2dzdkFBSkFRYmlLQVMwQUFFRUJjUTBBUWJpS0FSQWtSUTBBUWF5S0FVSDgxQUFRZ3dGQnVJb0JFQ01MUWF5S0FRc0pBRUdjaWdFUUNob0xMZ0FDUUVHb2lnRXRBQUJCQVhFTkFFR29pZ0VRSkVVTkFFR2NpZ0ZCM0IwUVZCcEJxSW9CRUNNTFFaeUtBUXNKQUVHTWlnRVFDaG9MTHdBQ1FFR1lpZ0V0QUFCQkFYRU5BRUdZaWdFUUpFVU5BRUdNaWdGQjJOUUFFSU1CUVppS0FSQWpDMEdNaWdFTENRQkIvSWtCRUFvYUN5NEFBa0JCaUlvQkxRQUFRUUZ4RFFCQmlJb0JFQ1JGRFFCQi9Ja0JRZmNkRUZRYVFZaUtBUkFqQzBIOGlRRUxDUUJCN0lrQkVBb2FDeThBQWtCQitJa0JMUUFBUVFGeERRQkIrSWtCRUNSRkRRQkI3SWtCUWJUVUFCQ0RBVUg0aVFFUUl3dEI3SWtCQ3drQVFkeUpBUkFLR2dzdUFBSkFRZWlKQVMwQUFFRUJjUTBBUWVpSkFSQWtSUTBBUWR5SkFVSG1HaEJVR2tIb2lRRVFJd3RCM0lrQkN4c0FRZGlTQVNFQUEwQWdBRUVNYXhBS0lnQkJ3SklCUncwQUN3dDlBQUpBUWRpSkFTMEFBRUVCY1EwQVFkaUpBUkFrUlEwQUFrQkIySklCTFFBQVFRRnhEUUJCMkpJQkVDUkZEUUJCd0pJQklRQURRQ0FBRUVkQkRHb2lBRUhZa2dGSERRQUxRZGlTQVJBakMwSEFrZ0ZCNFBzQUVCUkJ6SklCUWV6N0FCQVVRZFNKQVVIQWtnRTJBZ0JCMklrQkVDTUxRZFNKQVNnQ0FBc2JBRUc0a2dFaEFBTkFJQUJCREdzUUNpSUFRYUNTQVVjTkFBc0xld0FDUUVIUWlRRXRBQUJCQVhFTkFFSFFpUUVRSkVVTkFBSkFRYmlTQVMwQUFFRUJjUTBBUWJpU0FSQWtSUTBBUWFDU0FTRUFBMEFnQUJBUlFReHFJZ0JCdUpJQlJ3MEFDMEc0a2dFUUl3dEJvSklCUVljZUVCVkJySklCUVlRZUVCVkJ6SWtCUWFDU0FUWUNBRUhRaVFFUUl3dEJ6SWtCS0FJQUN4c0FRWkNTQVNFQUEwQWdBRUVNYXhBS0lnQkI4SThCUncwQUN3dlpBZ0FDUUVISWlRRXRBQUJCQVhFTkFFSElpUUVRSkVVTkFBSkFRWkNTQVMwQUFFRUJjUTBBUVpDU0FSQWtSUTBBUWZDUEFTRUFBMEFnQUJCSFFReHFJZ0JCa0pJQlJ3MEFDMEdRa2dFUUl3dEI4SThCUWRqM0FCQVVRZnlQQVVINDl3QVFGRUdJa0FGQm5QZ0FFQlJCbEpBQlFiVDRBQkFVUWFDUUFVSE0rQUFRRkVHc2tBRkIzUGdBRUJSQnVKQUJRZkQ0QUJBVVFjU1FBVUdFK1FBUUZFSFFrQUZCb1BrQUVCUkIzSkFCUWNqNUFCQVVRZWlRQVVIbytRQVFGRUgwa0FGQmpQb0FFQlJCZ0pFQlFiRDZBQkFVUVl5UkFVSEErZ0FRRkVHWWtRRkIwUG9BRUJSQnBKRUJRZUQ2QUJBVVFiQ1JBVUhNK0FBUUZFRzhrUUZCOFBvQUVCUkJ5SkVCUVlEN0FCQVVRZFNSQVVHUSt3QVFGRUhna1FGQm9Qc0FFQlJCN0pFQlFiRDdBQkFVUWZpUkFVSEErd0FRRkVHRWtnRkIwUHNBRUJSQnhJa0JRZkNQQVRZQ0FFSElpUUVRSXd0QnhJa0JLQUlBQ3hzQVFlQ1BBU0VBQTBBZ0FFRU1heEFLSWdCQndJMEJSdzBBQ3d2QkFnQUNRRUhBaVFFdEFBQkJBWEVOQUVIQWlRRVFKRVVOQUFKQVFlQ1BBUzBBQUVFQmNRMEFRZUNQQVJBa1JRMEFRY0NOQVNFQUEwQWdBQkFSUVF4cUlnQkI0SThCUncwQUMwSGdqd0VRSXd0QndJMEJRWndhRUJWQnpJMEJRWk1hRUJWQjJJMEJRZUFjRUJWQjVJMEJRZFljRUJWQjhJMEJRZUlhRUJWQi9JMEJRY3NkRUJWQmlJNEJRYVFhRUJWQmxJNEJRWlFiRUJWQm9JNEJRYjhiRUJWQnJJNEJRYTRiRUJWQnVJNEJRYlliRUJWQnhJNEJRY2tiRUJWQjBJNEJRY3NjRUJWQjNJNEJRZGdkRUJWQjZJNEJRZUliRUJWQjlJNEJRYU1iRUJWQmdJOEJRZUlhRUJWQmpJOEJRZm9iRUJWQm1JOEJRYzhjRUJWQnBJOEJRZVljRUJWQnNJOEJRZVliRUJWQnZJOEJRWnNiRUJWQnlJOEJRWXdiRUJWQjFJOEJRZFFkRUJWQnZJa0JRY0NOQVRZQ0FFSEFpUUVRSXd0QnZJa0JLQUlBQ3hzQVFiaU5BU0VBQTBBZ0FFRU1heEFLSWdCQmtJd0JSdzBBQ3d2MUFRQUNRRUc0aVFFdEFBQkJBWEVOQUVHNGlRRVFKRVVOQUFKQVFiaU5BUzBBQUVFQmNRMEFRYmlOQVJBa1JRMEFRWkNNQVNFQUEwQWdBQkJIUVF4cUlnQkJ1STBCUncwQUMwRzRqUUVRSXd0QmtJd0JRWVQxQUJBVVFaeU1BVUdnOVFBUUZFR29qQUZCdlBVQUVCUkJ0SXdCUWR6MUFCQVVRY0NNQVVHRTlnQVFGRUhNakFGQnFQWUFFQlJCMkl3QlFjVDJBQkFVUWVTTUFVSG85Z0FRRkVId2pBRkIrUFlBRUJSQi9Jd0JRWWozQUJBVVFZaU5BVUdZOXdBUUZFR1VqUUZCcVBjQUVCUkJvSTBCUWJqM0FCQVVRYXlOQVVISTl3QVFGRUcwaVFGQmtJd0JOZ0lBUWJpSkFSQWpDMEcwaVFFb0FnQUxHd0JCaUl3QklRQURRQ0FBUVF4ckVBb2lBRUhnaWdGSERRQUxDK2NCQUFKQVFiQ0pBUzBBQUVFQmNRMEFRYkNKQVJBa1JRMEFBa0JCaUl3QkxRQUFRUUZ4RFFCQmlJd0JFQ1JGRFFCQjRJb0JJUUFEUUNBQUVCRkJER29pQUVHSWpBRkhEUUFMUVlpTUFSQWpDMEhnaWdGQnpSb1FGVUhzaWdGQjFCb1FGVUg0aWdGQnNob1FGVUdFaXdGQnVob1FGVUdRaXdGQnFSb1FGVUdjaXdGQjJ4b1FGVUdvaXdGQnhCb1FGVUcwaXdGQjloc1FGVUhBaXdGQnd4d1FGVUhNaXdGQndSMFFGVUhZaXdGQjBCMFFGVUhraXdGQmtCc1FGVUh3aXdGQjNCd1FGVUg4aXdGQm54c1FGVUdzaVFGQjRJb0JOZ0lBUWJDSkFSQWpDMEdzaVFFb0FnQUxDd0FnQUVHYzFBQVFnd0VMQ2dBZ0FFSEZIUkJVR2dzTEFDQUFRWWpVQUJDREFRc0tBQ0FBUWJ3ZEVGUWFDd3dBSUFBZ0FVRVFhaERRQVFzTUFDQUFJQUZCREdvUTBBRUxCd0FnQUN3QUNRc0hBQ0FBTEFBSUN3a0FJQUFRaEFJUUVBc0pBQ0FBRUlVQ0VCQUw1Z01CQlg4Z0FpRUFBMEFDUUNBRUlBaE5JQUFnQTA5eURRQWdBQ3dBQUNJR1FmOEJjU0VCQWtBZ0JrRUFUZ1JBUVFFaEJpQUJRZi8vd3dCTkRRRU1BZ3NnQVVIQ0FVa05BU0FCUWQ4QlRRUkFJQU1nQUd0QkFrZ05BaUFBTFFBQklnVkJ3QUZ4UVlBQlJ3MENRUUloQmlBRlFUOXhJQUZCQm5SQndBOXhja0gvLzhNQVRRMEJEQUlMQWtBQ1FDQUJRZThCVFFSQUlBTWdBR3RCQTBnTkJDQUFMUUFDSVFjZ0FDMEFBU0VGSUFGQjdRRkdEUUVnQVVIZ0FVWUVRQ0FGUWVBQmNVR2dBVVlOQXd3RkN5QUZRY0FCY1VHQUFVY05CQXdDQ3lBRElBQnJRUVJJSUFGQjlBRkxjZzBESUFBdEFBTWhCeUFBTFFBQ0lRa2dBQzBBQVNFRkFrQUNRQUpBQWtBZ0FVSHdBV3NPQlFBQ0FnSUJBZ3NnQlVId0FHcEIvd0Z4UVRCSkRRSU1CZ3NnQlVId0FYRkJnQUZHRFFFTUJRc2dCVUhBQVhGQmdBRkhEUVFMSUFsQndBRnhRWUFCUnlBSFFjQUJjVUdBQVVkeURRTkJCQ0VHSUFkQlAzRWdDVUVHZEVIQUgzRWdBVUVTZEVHQWdQQUFjU0FGUVQ5eFFReDBjbkp5UWYvL3d3QkxEUU1NQWdzZ0JVSGdBWEZCZ0FGSERRSUxJQWRCd0FGeFFZQUJSdzBCUVFNaEJpQUhRVDl4SUFGQkRIUkJnT0FEY1NBRlFUOXhRUVowY25KQi8vL0RBRXNOQVFzZ0NFRUJhaUVJSUFBZ0Jtb2hBQXdCQ3dzZ0FDQUNhd3ZpQkFFRmZ5TUFRUkJySWdBa0FDQUFJQUkyQWd3Z0FDQUZOZ0lJQW44Z0FDQUNOZ0lNSUFBZ0JUWUNDQUpBQWtBRFFBSkFJQUFvQWd3aUFpQURUdzBBSUFBb0FnZ2lEQ0FHVHcwQUlBSXNBQUFpQlVIL0FYRWhBUUpBSUFWQkFFNEVRQ0FCUWYvL3d3Qk5CRUJCQVNFRkRBSUxRUUlNQmd0QkFpRUtJQUZCd2dGSkRRTWdBVUhmQVUwRVFDQURJQUpyUVFKSURRVWdBaTBBQVNJSVFjQUJjVUdBQVVjTkJFRUNJUVVnQ0VFL2NTQUJRUVowUWNBUGNYSWlBVUgvLzhNQVRRMEJEQVFMSUFGQjd3Rk5CRUFnQXlBQ2EwRURTQTBGSUFJdEFBSWhDU0FDTFFBQklRZ0NRQUpBSUFGQjdRRkhCRUFnQVVIZ0FVY05BU0FJUWVBQmNVR2dBVVlOQWd3SEN5QUlRZUFCY1VHQUFVWU5BUXdHQ3lBSVFjQUJjVUdBQVVjTkJRc2dDVUhBQVhGQmdBRkhEUVJCQXlFRklBbEJQM0VnQVVFTWRFR0E0QU54SUFoQlAzRkJCblJ5Y2lJQlFmLy93d0JORFFFTUJBc2dBVUgwQVVzTkF5QURJQUpyUVFSSURRUWdBaTBBQXlFSklBSXRBQUloQ3lBQ0xRQUJJUWdDUUFKQUFrQUNRQ0FCUWZBQmF3NEZBQUlDQWdFQ0N5QUlRZkFBYWtIL0FYRkJNRWtOQWd3R0N5QUlRZkFCY1VHQUFVWU5BUXdGQ3lBSVFjQUJjVUdBQVVjTkJBc2dDMEhBQVhGQmdBRkhJQWxCd0FGeFFZQUJSM0lOQTBFRUlRVWdDVUUvY1NBTFFRWjBRY0FmY1NBQlFSSjBRWUNBOEFCeElBaEJQM0ZCREhSeWNuSWlBVUgvLzhNQVN3MERDeUFNSUFFMkFnQWdBQ0FDSUFWcU5nSU1JQUFnQUNnQ0NFRUVhallDQ0F3QkN3c2dBaUFEU1NFS0N5QUtEQUVMUVFFTElRRWdCQ0FBS0FJTU5nSUFJQWNnQUNnQ0NEWUNBQ0FBUVJCcUpBQWdBUXVPQkFBakFFRVFheUlBSkFBZ0FDQUNOZ0lNSUFBZ0JUWUNDQUovSUFBZ0FqWUNEQ0FBSUFVMkFnZ2dBQ2dDRENFQkFrQURRQ0FCSUFOUEJFQkJBQ0VDREFJTFFRSWhBaUFCS0FJQUlnRkJnSEJ4UVlDd0EwWWdBVUgvLzhNQVMzSU5BUUpBQWtBZ0FVSC9BRTBFUUVFQklRSWdCaUFBS0FJSUlnVnJRUUJNRFFRZ0FDQUZRUUZxTmdJSUlBVWdBVG9BQUF3QkN5QUJRZjhQVFFSQUlBWWdBQ2dDQ0NJQ2EwRUNTQTBDSUFBZ0FrRUJhallDQ0NBQ0lBRkJCblpCd0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0JpQUFLQUlJSWdKcklRVWdBVUgvL3dOTkJFQWdCVUVEU0EwQ0lBQWdBa0VCYWpZQ0NDQUNJQUZCREhaQjRBRnlPZ0FBSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQVVFR2RrRS9jVUdBQVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRVDl4UVlBQmNqb0FBQXdCQ3lBRlFRUklEUUVnQUNBQ1FRRnFOZ0lJSUFJZ0FVRVNka0h3QVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRUXgyUVQ5eFFZQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFMSUFBZ0FDZ0NERUVFYWlJQk5nSU1EQUVMQzBFQkRBRUxJQUlMSVFFZ0JDQUFLQUlNTmdJQUlBY2dBQ2dDQ0RZQ0FDQUFRUkJxSkFBZ0FRdnVBd0VFZnlBQ0lRQURRQUpBSUFRZ0JrMGdBQ0FEVDNJTkFDQUFMUUFBSWdGQi8vL0RBRXNOQUFKL0lBQkJBV29nQVVFWWRFRVlkVUVBVGcwQUdpQUJRY0lCU1EwQklBRkIzd0ZOQkVBZ0F5QUFhMEVDU0EwQ0lBQXRBQUVpQlVIQUFYRkJnQUZISUFWQlAzRWdBVUVHZEVIQUQzRnlRZi8vd3dCTGNnMENJQUJCQW1vTUFRc0NRQUpBSUFGQjd3Rk5CRUFnQXlBQWEwRURTQTBFSUFBdEFBSWhCeUFBTFFBQklRVWdBVUh0QVVZTkFTQUJRZUFCUmdSQUlBVkI0QUZ4UWFBQlJnMEREQVVMSUFWQndBRnhRWUFCUncwRURBSUxJQU1nQUd0QkJFZ2dBVUgwQVV0eUlBUWdCbXRCQWtseURRTWdBQzBBQXlFSElBQXRBQUloQ0NBQUxRQUJJUVVDUUFKQUFrQUNRQ0FCUWZBQmF3NEZBQUlDQWdFQ0N5QUZRZkFBYWtIL0FYRkJNRWtOQWd3R0N5QUZRZkFCY1VHQUFVWU5BUXdGQ3lBRlFjQUJjVUdBQVVjTkJBc2dDRUhBQVhGQmdBRkhJQWRCd0FGeFFZQUJSM0lnQjBFL2NTQUlRUVowUWNBZmNTQUJRUkowUVlDQThBQnhJQVZCUDNGQkRIUnljbkpCLy8vREFFdHlEUU1nQmtFQmFpRUdJQUJCQkdvTUFnc2dCVUhnQVhGQmdBRkhEUUlMSUFkQndBRnhRWUFCUnlBSFFUOXhJQUZCREhSQmdPQURjU0FGUVQ5eFFRWjBjbkpCLy8vREFFdHlEUUVnQUVFRGFnc2hBQ0FHUVFGcUlRWU1BUXNMSUFBZ0Ftc0wwd1VCQkg4akFFRVFheUlBSkFBZ0FDQUNOZ0lNSUFBZ0JUWUNDQUovSUFBZ0FqWUNEQ0FBSUFVMkFnZ0NRQUpBQWtBRFFBSkFJQUFvQWd3aUFTQURUdzBBSUFBb0FnZ2lCU0FHVHcwQVFRSWhDaUFCTFFBQUlnSkIvLy9EQUVzTkJDQUFBbjhnQWtFWWRFRVlkVUVBVGdSQUlBVWdBanNCQUNBQlFRRnFEQUVMSUFKQndnRkpEUVVnQWtIZkFVMEVRQ0FESUFGclFRSklEUVVnQVMwQUFTSUlRY0FCY1VHQUFVY05CQ0FJUVQ5eElBSkJCblJCd0E5eGNpSUNRZi8vd3dCTERRUWdCU0FDT3dFQUlBRkJBbW9NQVFzZ0FrSHZBVTBFUUNBRElBRnJRUU5JRFFVZ0FTMEFBaUVKSUFFdEFBRWhDQUpBQWtBZ0FrSHRBVWNFUUNBQ1FlQUJSdzBCSUFoQjRBRnhRYUFCUmcwQ0RBY0xJQWhCNEFGeFFZQUJSZzBCREFZTElBaEJ3QUZ4UVlBQlJ3MEZDeUFKUWNBQmNVR0FBVWNOQkNBSlFUOXhJQWhCUDNGQkJuUWdBa0VNZEhKeUlnSkIvLzhEY1VILy84TUFTdzBFSUFVZ0Fqc0JBQ0FCUVFOcURBRUxJQUpCOUFGTERRVkJBU0VLSUFNZ0FXdEJCRWdOQXlBQkxRQURJUWtnQVMwQUFpRUlJQUV0QUFFaEFRSkFBa0FDUUFKQUlBSkI4QUZyRGdVQUFnSUNBUUlMSUFGQjhBQnFRZjhCY1VFd1R3MElEQUlMSUFGQjhBRnhRWUFCUncwSERBRUxJQUZCd0FGeFFZQUJSdzBHQ3lBSVFjQUJjVUdBQVVjZ0NVSEFBWEZCZ0FGSGNnMEZJQVlnQld0QkJFZ05BMEVDSVFvZ0NVRS9jU0lKSUFoQkJuUWlDMEhBSDNFZ0FVRU1kRUdBNEE5eElBSkJCM0VpQWtFU2RISnlja0gvLzhNQVN3MERJQVVnQ0VFRWRrRURjU0FCUVFKMElnRkJ3QUZ4SUFKQkNIUnlJQUZCUEhGeWNrSEEvd0JxUVlDd0EzSTdBUUFnQUNBRlFRSnFOZ0lJSUFVZ0MwSEFCM0VnQ1hKQmdMZ0RjanNCQWlBQUtBSU1RUVJxQ3pZQ0RDQUFJQUFvQWdoQkFtbzJBZ2dNQVFzTElBRWdBMGtoQ2dzZ0Nnd0NDMEVCREFFTFFRSUxJUUVnQkNBQUtBSU1OZ0lBSUFjZ0FDZ0NDRFlDQUNBQVFSQnFKQUFnQVF2NkJRRUJmeU1BUVJCcklnQWtBQ0FBSUFJMkFnd2dBQ0FGTmdJSUFuOGdBQ0FDTmdJTUlBQWdCVFlDQ0NBQUtBSU1JUUlDUUFKQUEwQWdBaUFEVHdSQVFRQWhCUXdEQzBFQ0lRVWdBaThCQUNJQlFmLy93d0JMRFFJQ1FBSkFJQUZCL3dCTkJFQkJBU0VGSUFZZ0FDZ0NDQ0lDYTBFQVRBMEZJQUFnQWtFQmFqWUNDQ0FDSUFFNkFBQU1BUXNnQVVIL0QwMEVRQ0FHSUFBb0FnZ2lBbXRCQWtnTkJDQUFJQUpCQVdvMkFnZ2dBaUFCUVFaMlFjQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQlAzRkJnQUZ5T2dBQURBRUxJQUZCLzY4RFRRUkFJQVlnQUNnQ0NDSUNhMEVEU0EwRUlBQWdBa0VCYWpZQ0NDQUNJQUZCREhaQjRBRnlPZ0FBSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQVVFR2RrRS9jVUdBQVhJNkFBQWdBQ0FBS0FJSUlnSkJBV28yQWdnZ0FpQUJRVDl4UVlBQmNqb0FBQXdCQ3lBQlFmKzNBMDBFUUVFQklRVWdBeUFDYTBFRVNBMEZJQUl2QVFJaUNFR0ErQU54UVlDNEEwY05BaUFHSUFBb0FnaHJRUVJJRFFVZ0NFSC9CM0VnQVVFS2RFR0ErQU54SUFGQndBZHhJZ1ZCQ25SeWNrR0FnQVJxUWYvL3d3QkxEUUlnQUNBQ1FRSnFOZ0lNSUFBZ0FDZ0NDQ0lDUVFGcU5nSUlJQUlnQlVFR2RrRUJhaUlDUVFKMlFmQUJjam9BQUNBQUlBQW9BZ2dpQlVFQmFqWUNDQ0FGSUFKQkJIUkJNSEVnQVVFQ2RrRVBjWEpCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdDRUVHZGtFUGNTQUJRUVIwUVRCeGNrR0FBWEk2QUFBZ0FDQUFLQUlJSWdGQkFXbzJBZ2dnQVNBSVFUOXhRWUFCY2pvQUFBd0JDeUFCUVlEQUEwa05CQ0FHSUFBb0FnZ2lBbXRCQTBnTkF5QUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFMSUFBZ0FDZ0NERUVDYWlJQ05nSU1EQUVMQzBFQ0RBSUxRUUVNQVFzZ0JRc2hBU0FFSUFBb0FndzJBZ0FnQnlBQUtBSUlOZ0lBSUFCQkVHb2tBQ0FCQ3hVQUlBQW9BZ2dpQUVVRVFFRUJEd3NnQUJDSUFndVFBUUVHZndOQUFrQWdBaUFEUmlBRUlBaE5jZzBBUVFFaEJ5QUFLQUlJSVFVakFFRVFheUlHSkFBZ0JpQUZOZ0lNSUFaQkNHb2dCa0VNYWhCU0lRcEJBQ0FDSUFNZ0Ftc2dBVUdraHdFZ0FSc1F0d0VoQlNBS0VGRWdCa0VRYWlRQUFrQUNRQ0FGUVFKcURnTUNBZ0VBQ3lBRklRY0xJQWhCQVdvaENDQUhJQWxxSVFrZ0FpQUhhaUVDREFFTEN5QUpDMllCQTM4Z0FDZ0NDQ0VDSXdCQkVHc2lBU1FBSUFFZ0FqWUNEQ0FCUVFocUlBRkJER29RVWlFQ0l3QkJFR3NpQXlRQUlBTkJFR29rQUVFQUlRTWdBaEJSSUFGQkVHb2tBQ0FEQkg5QmZ3VWdBQ2dDQ0NJQVJRUkFRUUVQQ3lBQUVJZ0NRUUZHQ3d1U0FRRUJmeU1BUVJCcklnVWtBQ0FFSUFJMkFnQUNmMEVDSUFWQkRHcEJBQ0FBS0FJSUVNc0JJZ0JCQVdwQkFra05BQnBCQVNBQVFRRnJJZ0VnQXlBRUtBSUFhMHNOQUJvZ0JVRU1haUVDQTM4Z0FRUi9JQUl0QUFBaEFDQUVJQVFvQWdBaUEwRUJhallDQUNBRElBQTZBQUFnQVVFQmF5RUJJQUpCQVdvaEFnd0JCVUVBQ3dzTElRSWdCVUVRYWlRQUlBSUx5d1lCREg4akFFRVFheUlSSkFBZ0FpRUlBMEFDUUNBRElBaEdCRUFnQXlFSURBRUxJQWd0QUFCRkRRQWdDRUVCYWlFSURBRUxDeUFISUFVMkFnQWdCQ0FDTmdJQUEwQUNRQUovQWtBZ0FpQURSaUFGSUFaR2NnMEFJQkVnQVNrQ0FEY0RDQ0FBS0FJSUlRa2pBRUVRYXlJUUpBQWdFQ0FKTmdJTUlCQkJDR29nRUVFTWFoQlNJUk1nQ0NBQ2F5RU5RUUFoQ2lNQVFaQUlheUlMSkFBZ0N5QUVLQUlBSWc0MkFnd2dCU0FMUVJCcUlBVWJJUThDUUFKQUFrQWdEa1VnQmlBRmEwRUNkVUdBQWlBRkd5SU1SWElOQUFOQUlBMUJBbllpQ1NBTVNTQU5RWU1CVFhFTkFpQVBJQXRCREdvZ0RDQUpJQWtnREU4YklBRVEwUUlpRWtGL1JnUkFRWDhoQ2tFQUlRd2dDeWdDRENFT0RBSUxJQXhCQUNBU0lBOGdDMEVRYWtZYklnbHJJUXdnRHlBSlFRSjBhaUVQSUEwZ0Rtb2dDeWdDRENJT2EwRUFJQTRiSVEwZ0NpQVNhaUVLSUE1RkRRRWdEQTBBQ3dzZ0RrVU5BUXNnREVVZ0RVVnlEUUFnQ2lFSkEwQUNRQUpBSUE4Z0RpQU5JQUVRdHdFaUNrRUNha0VDVFFSQUFrQUNRQ0FLUVFGcURnSUdBQUVMSUF0QkFEWUNEQXdDQ3lBQlFRQTJBZ0FNQVFzZ0N5QUxLQUlNSUFwcUlnNDJBZ3dnQ1VFQmFpRUpJQXhCQVdzaURBMEJDeUFKSVFvTUFnc2dEMEVFYWlFUElBMGdDbXNoRFNBSklRb2dEUTBBQ3dzZ0JRUkFJQVFnQ3lnQ0REWUNBQXNnQzBHUUNHb2tBQ0FLSVFrZ0V4QlJJQkJCRUdva0FBSkFBa0FDUUFKQUlBbEJmMFlFUUFOQUFrQWdCeUFGTmdJQUlBSWdCQ2dDQUVZTkFFRUJJUVlDUUFKQUFrQWdCU0FDSUFnZ0Ftc2dFVUVJYWlBQUtBSUlFSWtDSWdGQkFtb09Bd2dBQWdFTElBUWdBallDQUF3RkN5QUJJUVlMSUFJZ0Jtb2hBaUFIS0FJQVFRUnFJUVVNQVFzTElBUWdBallDQUF3RkN5QUhJQWNvQWdBZ0NVRUNkR29pQlRZQ0FDQUZJQVpHRFFNZ0JDZ0NBQ0VDSUFNZ0NFWUVRQ0FESVFnTUNBc2dCU0FDUVFFZ0FTQUFLQUlJRUlrQ1JRMEJDMEVDREFRTElBY2dCeWdDQUVFRWFqWUNBQ0FFSUFRb0FnQkJBV29pQWpZQ0FDQUNJUWdEUUNBRElBaEdCRUFnQXlFSURBWUxJQWd0QUFCRkRRVWdDRUVCYWlFSURBQUxBQXNnQkNBQ05nSUFRUUVNQWdzZ0JDZ0NBQ0VDQ3lBQ0lBTkhDeUVBSUJGQkVHb2tBQ0FBRHdzZ0J5Z0NBQ0VGREFBTEFBdXpCUUVNZnlNQVFSQnJJZzBrQUNBQ0lRZ0RRQUpBSUFNZ0NFWUVRQ0FESVFnTUFRc2dDQ2dDQUVVTkFDQUlRUVJxSVFnTUFRc0xJQWNnQlRZQ0FDQUVJQUkyQWdBRFFBSkFBa0FnQWlBRFJpQUZJQVpHY2dSL0lBSUZJQTBnQVNrQ0FEY0RDRUVCSVJBZ0FDZ0NDQ0VKSXdCQkVHc2lEaVFBSUE0Z0NUWUNEQ0FPUVFocUlBNUJER29RVWlFVElBWWdCU0lKYXlFS1FRQWhEeU1BUVJCckloRWtBQUpBSUFRb0FnQWlDMFVnQ0NBQ2EwRUNkU0lTUlhJTkFDQUtRUUFnQ1JzaENnTkFJQkZCREdvZ0NTQUtRUVJKR3lBTEtBSUFFTm9CSWd4QmYwWUVRRUYvSVE4TUFnc2dDUVIvSUFwQkEwMEVRQ0FLSUF4SkRRTWdDU0FSUVF4cUlBd1FRaG9MSUFvZ0RHc2hDaUFKSUF4cUJVRUFDeUVKSUFzb0FnQkZCRUJCQUNFTERBSUxJQXdnRDJvaER5QUxRUVJxSVFzZ0VrRUJheUlTRFFBTEN5QUpCRUFnQkNBTE5nSUFDeUFSUVJCcUpBQWdEeUVKSUJNUVVTQU9RUkJxSkFBQ1FBSkFBa0FDUUFKQUlBbEJBV29PQWdBR0FRc2dCeUFGTmdJQUEwQUNRQ0FDSUFRb0FnQkdEUUFnQlNBQ0tBSUFJQUFvQWdnUXl3RWlBVUYvUmcwQUlBY2dCeWdDQUNBQmFpSUZOZ0lBSUFKQkJHb2hBZ3dCQ3dzZ0JDQUNOZ0lBREFFTElBY2dCeWdDQUNBSmFpSUZOZ0lBSUFVZ0JrWU5BaUFESUFoR0JFQWdCQ2dDQUNFQ0lBTWhDQXdIQ3lBTlFRUnFRUUFnQUNnQ0NCRExBU0lJUVg5SERRRUxRUUloRUF3REN5QU5RUVJxSVFJZ0JpQUhLQUlBYXlBSVNRMENBMEFnQ0FSQUlBSXRBQUFoQlNBSElBY29BZ0FpQ1VFQmFqWUNBQ0FKSUFVNkFBQWdDRUVCYXlFSUlBSkJBV29oQWd3QkN3c2dCQ0FFS0FJQVFRUnFJZ0kyQWdBZ0FpRUlBMEFnQXlBSVJnUkFJQU1oQ0F3RkN5QUlLQUlBUlEwRUlBaEJCR29oQ0F3QUN3QUxJQVFvQWdBTElBTkhJUkFMSUExQkVHb2tBQ0FRRHdzZ0J5Z0NBQ0VGREFBTEFBc0pBQ0FBRUpjQ0VCQUxOd0FqQUVFUWF5SUFKQUFnQUNBRU5nSU1JQUFnQXlBQ2F6WUNDQ0FBUVF4cUlBQkJDR29Rb2dFb0FnQWhBU0FBUVJCcUpBQWdBUXMwQUFOQUlBRWdBa1pGQkVBZ0JDQUJMQUFBSWdBZ0F5QUFRUUJPR3pvQUFDQUVRUUZxSVFRZ0FVRUJhaUVCREFFTEN5QUNDd3dBSUFFZ0FpQUJRUUJPR3dzcUFBTkFJQUVnQWtaRkJFQWdBeUFCTFFBQU9nQUFJQU5CQVdvaEF5QUJRUUZxSVFFTUFRc0xJQUlMUUFBRFFDQUJJQUpIQkVBZ0FTQUJMQUFBSWdCQkFFNEVmMEhBeEFBb0FnQWdBU3dBQUVFQ2RHb29BZ0FGSUFBTE9nQUFJQUZCQVdvaEFRd0JDd3NnQWdzbkFDQUJRUUJPQkg5QndNUUFLQUlBSUFGQi93RnhRUUowYWlnQ0FBVWdBUXRCR0hSQkdIVUxQd0FEUUNBQklBSkhCRUFnQVNBQkxBQUFJZ0JCQUU0RWYwR3dPQ2dDQUNBQkxBQUFRUUowYWlnQ0FBVWdBQXM2QUFBZ0FVRUJhaUVCREFFTEN5QUNDeVlBSUFGQkFFNEVmMEd3T0NnQ0FDQUJRZjhCY1VFQ2RHb29BZ0FGSUFFTFFSaDBRUmgxQ3drQUlBQVFqQUlRRUFzMUFBTkFJQUVnQWtaRkJFQWdCQ0FCS0FJQUlnQWdBeUFBUVlBQlNSczZBQUFnQkVFQmFpRUVJQUZCQkdvaEFRd0JDd3NnQWdzVEFDQUJJQUlnQVVHQUFVa2JRUmgwUVJoMUN5b0FBMEFnQVNBQ1JrVUVRQ0FESUFFc0FBQTJBZ0FnQTBFRWFpRURJQUZCQVdvaEFRd0JDd3NnQWd0QkFBTkFJQUVnQWtjRVFDQUJJQUVvQWdBaUFFSC9BRTBFZjBIQXhBQW9BZ0FnQVNnQ0FFRUNkR29vQWdBRklBQUxOZ0lBSUFGQkJHb2hBUXdCQ3dzZ0Fnc2VBQ0FCUWY4QVRRUi9RY0RFQUNnQ0FDQUJRUUowYWlnQ0FBVWdBUXNMUUFBRFFDQUJJQUpIQkVBZ0FTQUJLQUlBSWdCQi93Qk5CSDlCc0Rnb0FnQWdBU2dDQUVFQ2RHb29BZ0FGSUFBTE5nSUFJQUZCQkdvaEFRd0JDd3NnQWdzZEFDQUJRZjhBVFFSL1FiQTRLQUlBSUFGQkFuUnFLQUlBQlNBQkN3dEVBQUpBQTBBZ0FpQURSZzBCQWtBZ0FpZ0NBRUgvQUVzTkFFR2dNaWdDQUNBQ0tBSUFRUUYwYWk4QkFDQUJjVVVOQUNBQ1FRUnFJUUlNQVFzTElBSWhBd3NnQXd0REFBTkFBa0FnQWlBRFJ3Ui9JQUlvQWdCQi93QkxEUUZCb0RJb0FnQWdBaWdDQUVFQmRHb3ZBUUFnQVhGRkRRRWdBZ1VnQXdzUEN5QUNRUVJxSVFJTUFBc0FDMFVBQTBBZ0FTQUNSd1JBSUFNZ0FTZ0NBRUgvQUUwRWYwR2dNaWdDQUNBQktBSUFRUUYwYWk4QkFBVkJBQXM3QVFBZ0EwRUNhaUVESUFGQkJHb2hBUXdCQ3dzZ0Fnc2pBQ0FDUWY4QVRRUi9RYUF5S0FJQUlBSkJBWFJxTHdFQUlBRnhRUUJIQlVFQUN3dEFBUUovSUFBb0FnQW9BZ0FpQUNnQ0FDQUFLQUlJSWdKQkFYVnFJUUVnQUNnQ0JDRUFJQUVnQWtFQmNRUi9JQUVvQWdBZ0FHb29BZ0FGSUFBTEVRRUFDdzhBSUFBZ0FDZ0NBQ2dDQkJFQkFBc2ZBQ0FBQW45QjZJZ0JRZWlJQVNnQ0FFRUJhaUlBTmdJQUlBQUxOZ0lFQ3drQUlBQVFrZ0lRRUF1WUFRQWpBRUVRYXlJREpBQUNRQ0FGRURWRkJFQWdBQ0FGS0FJSU5nSUlJQUFnQlNrQ0FEY0NBQXdCQ3lBRktBSUFJUVFDUUFKQUFrQWdCU2dDQkNJQ1FRRk5CRUFnQUNFQklBQWdBaEE2REFFTElBSkI3Ly8vL3dOTERRRWdBQ0FBSUFJUWdnRkJBV29pQlJDQkFTSUJFRTBnQUNBRkVFd2dBQ0FDRURrTElBRWdCQ0FDUVFGcUVHWU1BUXNRRndBTEN5QURRUkJxSkFBTENRQWdBQ0FGRU5BQkM0WURBUWgvSXdCQjhBTnJJZ0FrQUNBQVFlZ0RhaUlHSUFNUUR5QUdFRHNoQ2lBRkVBa0VRQ0FGUVFBUXNRRW9BZ0FnQ2tFdEVEMUdJUXNMSUFJZ0N5QUFRZWdEYWlBQVFlQURhaUFBUWR3RGFpQUFRZGdEYWlBQVFjZ0RhaEFSSWd3Z0FFRzRBMm9RUnlJR0lBQkJxQU5xRUVjaUJ5QUFRYVFEYWhDYUFpQUFRVFUyQWhBZ0FFRUlha0VBSUFCQkVHb2lBaEFlSVFnQ1FBSi9JQVVRQ1NBQUtBS2tBMG9FUUNBRkVBa2hDU0FBS0FLa0F5RU5JQWNRQ1NBSklBMXJRUUYwYWlBR0VBbHFJQUFvQXFRRGFrRUJhZ3dCQ3lBSEVBa2dCaEFKYWlBQUtBS2tBMnBCQW1vTElnbEI1UUJKRFFBZ0NDQUpRUUowRUJrUUp5QUlLQUlBSWdJTkFCQVhBQXNnQWlBQVFRUnFJQUFnQXlnQ0JDQUZFQTBnQlJBTklBVVFDVUVDZEdvZ0NpQUxJQUJCNEFOcUlBQW9BdHdESUFBb0F0Z0RJQXdnQmlBSElBQW9BcVFERUprQ0lBRWdBaUFBS0FJRUlBQW9BZ0FnQXlBRUVHTWhBU0FJRUIwZ0J4QUtHaUFHRUFvYUlBd1FDaG9nQUVIb0Eyb1FEaUFBUWZBRGFpUUFJQUVMdXdRQkMzOGpBRUd3Q0dzaUFDUUFJQUFnQlRjREVDQUFJQVkzQXhnZ0FDQUFRY0FIYWlJSE5nSzhCeUFISUFCQkVHb1ExQUloQnlBQVFUVTJBcUFFSUFCQm1BUnFRUUFnQUVHZ0JHb2lDUkFlSVE0Z0FFRTFOZ0tnQkNBQVFaQUVha0VBSUFrUUhpRUtBa0FnQjBIa0FFOEVRQkFXSVFjZ0FDQUZOd01BSUFBZ0JqY0RDQ0FBUWJ3SGFpQUhRZTRjSUFBUVdpSUhRWDlHRFFFZ0RpQUFLQUs4QnhBbklBb2dCMEVDZEJBWkVDY2dDaENkQWcwQklBb29BZ0FoQ1FzZ0FFR0lCR29pQ0NBREVBOGdDQkE3SWhFZ0FDZ0N2QWNpQ0NBSElBaHFJQWtRWkNBSFFRQktCRUFnQUNnQ3ZBY3RBQUJCTFVZaER3c2dBaUFQSUFCQmlBUnFJQUJCZ0FScUlBQkIvQU5xSUFCQitBTnFJQUJCNkFOcUVCRWlFQ0FBUWRnRGFoQkhJZ2dnQUVISUEyb1FSeUlMSUFCQnhBTnFFSm9DSUFCQk5UWUNNQ0FBUVNocVFRQWdBRUV3YWlJQ0VCNGhEQUovSUFBb0FzUURJZzBnQjBnRVFDQUxFQWtnQnlBTmEwRUJkR29nQ0JBSmFpQUFLQUxFQTJwQkFXb01BUXNnQ3hBSklBZ1FDV29nQUNnQ3hBTnFRUUpxQ3lJTlFlVUFUd1JBSUF3Z0RVRUNkQkFaRUNjZ0RDZ0NBQ0lDUlEwQkN5QUNJQUJCSkdvZ0FFRWdhaUFES0FJRUlBa2dDU0FIUVFKMGFpQVJJQThnQUVHQUJHb2dBQ2dDL0FNZ0FDZ0MrQU1nRUNBSUlBc2dBQ2dDeEFNUW1RSWdBU0FDSUFBb0FpUWdBQ2dDSUNBRElBUVFZeUVCSUF3UUhTQUxFQW9hSUFnUUNob2dFQkFLR2lBQVFZZ0VhaEFPSUFvUUhTQU9FQjBnQUVHd0NHb2tBQ0FCRHdzUUZ3QUwvZ0lCQ0g4akFFSEFBV3NpQUNRQUlBQkJ1QUZxSWdZZ0F4QVBJQVlRTWlFS0lBVVFDUVJBSUFWQkFCQUxMUUFBSUFwQkxSQXBRZjhCY1VZaEN3c2dBaUFMSUFCQnVBRnFJQUJCc0FGcUlBQkJyd0ZxSUFCQnJnRnFJQUJCb0FGcUVCRWlEQ0FBUVpBQmFoQVJJZ1lnQUVHQUFXb1FFU0lISUFCQi9BQnFFSndDSUFCQk5UWUNFQ0FBUVFocVFRQWdBRUVRYWlJQ0VCNGhDQUpBQW44Z0JSQUpJQUFvQW54S0JFQWdCUkFKSVFrZ0FDZ0NmQ0VOSUFjUUNTQUpJQTFyUVFGMGFpQUdFQWxxSUFBb0FueHFRUUZxREFFTElBY1FDU0FHRUFscUlBQW9BbnhxUVFKcUN5SUpRZVVBU1EwQUlBZ2dDUkFaRUNjZ0NDZ0NBQ0lDRFFBUUZ3QUxJQUlnQUVFRWFpQUFJQU1vQWdRZ0JSQU5JQVVRRFNBRkVBbHFJQW9nQ3lBQVFiQUJhaUFBTEFDdkFTQUFMQUN1QVNBTUlBWWdCeUFBS0FKOEVKc0NJQUVnQWlBQUtBSUVJQUFvQWdBZ0F5QUVFRlloQVNBSUVCMGdCeEFLR2lBR0VBb2FJQXdRQ2hvZ0FFRzRBV29RRGlBQVFjQUJhaVFBSUFFTHNnUUJDMzhqQUVIUUEyc2lBQ1FBSUFBZ0JUY0RFQ0FBSUFZM0F4Z2dBQ0FBUWVBQ2FpSUhOZ0xjQWlBSElBQkJFR29RMUFJaEJ5QUFRVFUyQXZBQklBQkI2QUZxUVFBZ0FFSHdBV29pQ1JBZUlRNGdBRUUxTmdMd0FTQUFRZUFCYWtFQUlBa1FIaUVLQWtBZ0IwSGtBRThFUUJBV0lRY2dBQ0FGTndNQUlBQWdCamNEQ0NBQVFkd0NhaUFIUWU0Y0lBQVFXaUlIUVg5R0RRRWdEaUFBS0FMY0FoQW5JQW9nQnhBWkVDY2dDaENkQWcwQklBb29BZ0FoQ1FzZ0FFSFlBV29pQ0NBREVBOGdDQkF5SWhFZ0FDZ0MzQUlpQ0NBSElBaHFJQWtRY0NBSFFRQktCRUFnQUNnQzNBSXRBQUJCTFVZaER3c2dBaUFQSUFCQjJBRnFJQUJCMEFGcUlBQkJ6d0ZxSUFCQnpnRnFJQUJCd0FGcUVCRWlFQ0FBUWJBQmFoQVJJZ2dnQUVHZ0FXb1FFU0lMSUFCQm5BRnFFSndDSUFCQk5UWUNNQ0FBUVNocVFRQWdBRUV3YWlJQ0VCNGhEQUovSUFBb0Fwd0JJZzBnQjBnRVFDQUxFQWtnQnlBTmEwRUJkR29nQ0JBSmFpQUFLQUtjQVdwQkFXb01BUXNnQ3hBSklBZ1FDV29nQUNnQ25BRnFRUUpxQ3lJTlFlVUFUd1JBSUF3Z0RSQVpFQ2NnRENnQ0FDSUNSUTBCQ3lBQ0lBQkJKR29nQUVFZ2FpQURLQUlFSUFrZ0J5QUphaUFSSUE4Z0FFSFFBV29nQUN3QXp3RWdBQ3dBemdFZ0VDQUlJQXNnQUNnQ25BRVFtd0lnQVNBQ0lBQW9BaVFnQUNnQ0lDQURJQVFRVmlFQklBd1FIU0FMRUFvYUlBZ1FDaG9nRUJBS0dpQUFRZGdCYWhBT0lBb1FIU0FPRUIwZ0FFSFFBMm9rQUNBQkR3c1FGd0FMcHdVQkEzOGpBRUhBQTJzaUFDUUFJQUFnQWpZQ3NBTWdBQ0FCTmdLNEF5QUFRVFkyQWhRZ0FFRVlhaUFBUVNCcUlBQkJGR29pQnhBZUlRa2dBRUVRYWlJQklBUVFEeUFCRURzaENDQUFRUUE2QUE4Z0FFRzRBMm9nQWlBRElBRWdCQ2dDQkNBRklBQkJEMm9nQ0NBSklBY2dBRUd3QTJvUW93SUVRQ01BUVJCcklnRWtBQUpBSUFZUU5RUkFJQVlvQWdBaEFpQUJRUUEyQWd3Z0FpQUJRUXhxRURNZ0JrRUFFRGtNQVFzZ0FVRUFOZ0lJSUFZZ0FVRUlhaEF6SUFaQkFCQTZDeUFCUVJCcUpBQWdBQzBBRHdSQUlBWWdDRUV0RUQwUXhnRUxJQWhCTUJBOUlRRWdDU2dDQUNFRUlBQW9BaFFpQ0VFRWF5RUNBMEFDUUNBQ0lBUk5EUUFnQkNnQ0FDQUJSdzBBSUFSQkJHb2hCQXdCQ3dzakFFRVFheUlCSkFBZ0JoQUpJUUlnQmhET0FTRURBa0FnQkNBSUVLRUNJZ2RGRFFBZ0JoQU5JQVJOQkg4Z0JDQUdFQTBnQmhBSlFRSjBhazBGUVFBTFJRUkFJQWNnQXlBQ2Ewc0VRQ0FHSUFNZ0FpQUhhaUFEYXlBQ0lBSVE4Z0VMSUFZUURTQUNRUUowYWlFREEwQWdCQ0FJUndSQUlBTWdCQkF6SUFSQkJHb2hCQ0FEUVFScUlRTU1BUXNMSUFGQkFEWUNBQ0FESUFFUU15QUdJQUlnQjJvUWVBd0JDeU1BUVJCcklnSWtBQ0FCSUFRZ0NCRE5BaUFDUVJCcUpBQWdBUkFOSVFnZ0FSQUpJUUlqQUVFUWF5SUVKQUFDUUNBQ0lBWVF6Z0VpQnlBR0VBa2lBMnROQkVBZ0FrVU5BU0FHRUEwaUJ5QURRUUowYWlBSUlBSVFaaUFHSUFJZ0Eyb2lBaEI0SUFSQkFEWUNEQ0FISUFKQkFuUnFJQVJCREdvUU13d0JDeUFHSUFjZ0FpQURhaUFIYXlBRElBTkJBQ0FDSUFnUTh3RUxJQVJCRUdva0FDQUJFQW9hQ3lBQlFSQnFKQUFMSUFCQnVBTnFJQUJCc0FOcUVDZ0VRQ0FGSUFVb0FnQkJBbkkyQWdBTElBQW9BcmdESVFFZ0FFRVFhaEFPSUFrUUhTQUFRY0FEYWlRQUlBRUwxd01CQW44akFFSHdCR3NpQUNRQUlBQWdBallDNEFRZ0FDQUJOZ0xvQkNBQVFUWTJBaEFnQUVISUFXb2dBRUhRQVdvZ0FFRVFhaEFlSVFFZ0FFSEFBV29pQnlBRUVBOGdCeEE3SVFnZ0FFRUFPZ0MvQVFKQUlBQkI2QVJxSUFJZ0F5QUhJQVFvQWdRZ0JTQUFRYjhCYWlBSUlBRWdBRUhFQVdvZ0FFSGdCR29Rb3dKRkRRQWdBRUdqSGlnQUFEWUF0d0VnQUVHY0hpa0FBRGNEc0FFZ0NDQUFRYkFCYWlBQVFib0JhaUFBUVlBQmFoQmtJQUJCTlRZQ0VDQUFRUWhxUVFBZ0FFRVFhaUlDRUI0aEF3SkFJQUFvQXNRQklBRW9BZ0JyUVlrRFRnUkFJQU1nQUNnQ3hBRWdBU2dDQUd0QkFuVkJBbW9RR1JBbklBTW9BZ0JGRFFFZ0F5Z0NBQ0VDQ3lBQUxRQy9BUVJBSUFKQkxUb0FBQ0FDUVFGcUlRSUxJQUVvQWdBaEJBTkFJQUFvQXNRQklBUk5CRUFDUUNBQ1FRQTZBQUFnQUNBR05nSUFJQUJCRUdvZ0FCRFZBa0VCUncwQUlBTVFIUXdFQ3dVZ0FpQUFRYkFCYWlBQVFZQUJhaUlISUFkQktHb2dCQkRTQVNBSGEwRUNkV290QUFBNkFBQWdBa0VCYWlFQ0lBUkJCR29oQkF3QkN3c1FGd0FMRUJjQUN5QUFRZWdFYWlBQVFlQUVhaEFvQkVBZ0JTQUZLQUlBUVFKeU5nSUFDeUFBS0FMb0JDRUNJQUJCd0FGcUVBNGdBUkFkSUFCQjhBUnFKQUFnQWd1a0JRRURmeU1BUWFBQmF5SUFKQUFnQUNBQ05nS1FBU0FBSUFFMkFwZ0JJQUJCTmpZQ0ZDQUFRUmhxSUFCQklHb2dBRUVVYWlJSEVCNGhDU0FBUVJCcUlnRWdCQkFQSUFFUU1pRUlJQUJCQURvQUR5QUFRWmdCYWlBQ0lBTWdBU0FFS0FJRUlBVWdBRUVQYWlBSUlBa2dCeUFBUVlRQmFoQ3JBZ1JBSXdCQkVHc2lBU1FBQWtBZ0JoQTFCRUFnQmlnQ0FDRUNJQUZCQURvQUR5QUNJQUZCRDJvUU5DQUdRUUFRT1F3QkN5QUJRUUE2QUE0Z0JpQUJRUTVxRURRZ0JrRUFFRG9MSUFGQkVHb2tBQ0FBTFFBUEJFQWdCaUFJUVMwUUtSQ2hBUXNnQ0VFd0VDa2hBU0FKS0FJQUlRUWdBQ2dDRkNJSVFRRnJJUUlnQVVIL0FYRWhBUU5BQWtBZ0FpQUVUUTBBSUFRdEFBQWdBVWNOQUNBRVFRRnFJUVFNQVFzTEl3QkJFR3NpQVNRQUlBWVFDU0VDSUFZUUV5RURBa0FnQkNBSUVPc0NJZ2RGRFFBZ0JoQU5JQVJOQkg4Z0JDQUdFQTBnQmhBSmFrMEZRUUFMUlFSQUlBY2dBeUFDYTBzRVFDQUdJQU1nQWlBSGFpQURheUFDSUFJUXlBRUxJQVlRRFNBQ2FpRURBMEFnQkNBSVJ3UkFJQU1nQkJBMElBUkJBV29oQkNBRFFRRnFJUU1NQVFzTElBRkJBRG9BRHlBRElBRkJEMm9RTkNBR0lBSWdCMm9RZUF3QkN5TUFRUkJySWdJa0FDQUJJQVFnQ0JEd0FpQUNRUkJxSkFBZ0FSQU5JUWdnQVJBSklRSWpBRUVRYXlJRUpBQUNRQ0FDSUFZUUV5SUhJQVlRQ1NJRGEwMEVRQ0FDUlEwQklBWVFEU0lISUFOcUlBZ2dBaEJWSUFZZ0FpQURhaUlDRUhnZ0JFRUFPZ0FQSUFJZ0Iyb2dCRUVQYWhBMERBRUxJQVlnQnlBQ0lBTnFJQWRySUFNZ0EwRUFJQUlnQ0JEM0FRc2dCRUVRYWlRQUlBRVFDaG9MSUFGQkVHb2tBQXNnQUVHWUFXb2dBRUdRQVdvUUpnUkFJQVVnQlNnQ0FFRUNjallDQUFzZ0FDZ0NtQUVoQVNBQVFSQnFFQTRnQ1JBZElBQkJvQUZxSkFBZ0FRdk5Bd0VDZnlNQVFhQUNheUlBSkFBZ0FDQUNOZ0tRQWlBQUlBRTJBcGdDSUFCQk5qWUNFQ0FBUVpnQmFpQUFRYUFCYWlBQVFSQnFFQjRoQVNBQVFaQUJhaUlISUFRUUR5QUhFREloQ0NBQVFRQTZBSThCQWtBZ0FFR1lBbW9nQWlBRElBY2dCQ2dDQkNBRklBQkJqd0ZxSUFnZ0FTQUFRWlFCYWlBQVFZUUNhaENyQWtVTkFDQUFRYU1lS0FBQU5nQ0hBU0FBUVp3ZUtRQUFOd09BQVNBSUlBQkJnQUZxSUFCQmlnRnFJQUJCOWdCcUVIQWdBRUUxTmdJUUlBQkJDR3BCQUNBQVFSQnFJZ0lRSGlFREFrQWdBQ2dDbEFFZ0FTZ0NBR3RCNHdCT0JFQWdBeUFBS0FLVUFTQUJLQUlBYTBFQ2FoQVpFQ2NnQXlnQ0FFVU5BU0FES0FJQUlRSUxJQUF0QUk4QkJFQWdBa0V0T2dBQUlBSkJBV29oQWdzZ0FTZ0NBQ0VFQTBBZ0FDZ0NsQUVnQkUwRVFBSkFJQUpCQURvQUFDQUFJQVkyQWdBZ0FFRVFhaUFBRU5VQ1FRRkhEUUFnQXhBZERBUUxCU0FDSUFCQjlnQnFJZ2NnQjBFS2FpQUVFTlVCSUFCcklBQnFMUUFLT2dBQUlBSkJBV29oQWlBRVFRRnFJUVFNQVFzTEVCY0FDeEFYQUFzZ0FFR1lBbW9nQUVHUUFtb1FKZ1JBSUFVZ0JTZ0NBRUVDY2pZQ0FBc2dBQ2dDbUFJaEFpQUFRWkFCYWhBT0lBRVFIU0FBUWFBQ2FpUUFJQUlMbUFJQkFuOGpBRUdnQTJzaUNDUUFJQWdnQ0VHZ0Eyb2lBellDRENNQVFaQUJheUlISkFBZ0J5QUhRWVFCYWpZQ0hDQUFRUWhxSUFkQklHb2lBaUFIUVJ4cUlBUWdCU0FHRUxFQ0lBZENBRGNERUNBSElBSTJBZ3dnQ0VFUWFpSUNJQWdvQWd3UXJnSWhCQ0FBS0FJSUlRVWpBRUVRYXlJQUpBQWdBQ0FGTmdJTUlBQkJDR29nQUVFTWFoQlNJUVVnQWlBSFFReHFJQVFnQjBFUWFoRFJBaUVFSUFVUVVTQUFRUkJxSkFBZ0JFRi9SZ1JBRUJjQUN5QUlJQUlnQkVFQ2RHbzJBZ3dnQjBHUUFXb2tBQ0FJS0FJTUlRUWpBRUVRYXlJQUpBQWdBQ0FCTmdJSUEwQWdBaUFFUndSQUlBQkJDR29nQWlnQ0FCRHpBaUFDUVFScUlRSU1BUXNMSUFBb0FnZ2hBU0FBUVJCcUpBQWdBeVFBSUFFTGhRRUFJd0JCZ0FGcklnSWtBQ0FDSUFKQjlBQnFOZ0lNSUFCQkNHb2dBa0VRYWlJQUlBSkJER29nQkNBRklBWVFzUUlnQUNFRUlBSW9BZ3doQXlNQVFSQnJJZ0FrQUNBQUlBRTJBZ2dEUUNBRElBUkhCRUFnQUVFSWFpQUVMQUFBRVBRQ0lBUkJBV29oQkF3QkN3c2dBQ2dDQ0NFQklBQkJFR29rQUNBQ1FZQUJhaVFBSUFFTDRBd0JBWDhqQUVGQWFpSUhKQUFnQnlBQk5nSTRJQVJCQURZQ0FDQUhJQU1RRHlBSEVEc2hDQ0FIRUE0Q2Z3SkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0JrSEJBR3NPT1FBQkZ3UVhCUmNHQnhjWEZ3b1hGeGNYRGc4UUZ4Y1hFeFVYRnhjWEZ4Y1hBQUVDQXdNWEZ3RVhDQmNYQ1FzWERCY05Gd3NYRnhFU0ZCWUxJQUFnQlVFWWFpQUhRVGhxSUFJZ0JDQUlFTFFDREJnTElBQWdCVUVRYWlBSFFUaHFJQUlnQkNBSUVMTUNEQmNMSUFjZ0FDQUJJQUlnQXlBRUlBVWdBRUVJYWlBQUtBSUlLQUlNRVFBQUlnQVFEU0FBRUEwZ0FCQUpRUUowYWhCaE5nSTREQllMSUFkQk9Hb2dBaUFFSUFoQkFoQllJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFRUFUSElnQUVFZlNuSkZCRUFnQlNBQU5nSU1EQUVMSUFRZ0FVRUVjallDQUFzTUZRc2dCMEdvMFFBcEF3QTNBeGdnQjBHZzBRQXBBd0EzQXhBZ0IwR1kwUUFwQXdBM0F3Z2dCMEdRMFFBcEF3QTNBd0FnQnlBQUlBRWdBaUFESUFRZ0JTQUhJQWRCSUdvUVlUWUNPQXdVQ3lBSFFjalJBQ2tEQURjREdDQUhRY0RSQUNrREFEY0RFQ0FIUWJqUkFDa0RBRGNEQ0NBSFFiRFJBQ2tEQURjREFDQUhJQUFnQVNBQ0lBTWdCQ0FGSUFjZ0IwRWdhaEJoTmdJNERCTUxJQWRCT0dvZ0FpQUVJQWhCQWhCWUlRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFWFNuSkZCRUFnQlNBQU5nSUlEQUVMSUFRZ0FVRUVjallDQUFzTUVnc2dCMEU0YWlBQ0lBUWdDRUVDRUZnaEFBSkFJQVFvQWdBaUFVRUVjU0FBUVFCTWNpQUFRUXhLY2tVRVFDQUZJQUEyQWdnTUFRc2dCQ0FCUVFSeU5nSUFDd3dSQ3lBSFFUaHFJQUlnQkNBSVFRTVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkI3UUpLY2tVRVFDQUZJQUEyQWh3TUFRc2dCQ0FCUVFSeU5nSUFDd3dRQ3lBSFFUaHFJQUlnQkNBSVFRSVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJERXB5UlFSQUlBVWdBRUVCYXpZQ0VBd0JDeUFFSUFGQkJISTJBZ0FMREE4TElBZEJPR29nQWlBRUlBaEJBaEJZSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUU3U25KRkJFQWdCU0FBTmdJRURBRUxJQVFnQVVFRWNqWUNBQXNNRGdzZ0IwRTRhaUVBSXdCQkVHc2lBU1FBSUFFZ0FqWUNDQU5BQWtBZ0FDQUJRUWhxRURaRkRRQWdDRUdBd0FBZ0FCQWhFRTVGRFFBZ0FCQWxHZ3dCQ3dzZ0FDQUJRUWhxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFGQkVHb2tBQXdOQ3lBSFFUaHFJUUVDUUNBQVFRaHFJQUFvQWdnb0FnZ1JBQUFpQUJBSlFRQWdBRUVNYWhBSmEwWUVRQ0FFSUFRb0FnQkJCSEkyQWdBTUFRc2dBU0FDSUFBZ0FFRVlhaUFJSUFSQkFCQ3lBU0FBYXlJQklBVW9BZ2dpQUVFTVIzSkZCRUFnQlVFQU5nSUlEQUVMSUFGQkRFY2dBRUVMU25KRkJFQWdCU0FBUVF4cU5nSUlDd3NNREFzZ0IwSFEwUUJCTEJCQ0lnWWdBQ0FCSUFJZ0F5QUVJQVVnQmlBR1FTeHFFR0UyQWpnTUN3c2dCMEdRMGdBb0FnQTJBaEFnQjBHSTBnQXBBd0EzQXdnZ0IwR0EwZ0FwQXdBM0F3QWdCeUFBSUFFZ0FpQURJQVFnQlNBSElBZEJGR29RWVRZQ09Bd0tDeUFIUVRocUlBSWdCQ0FJUVFJUVdDRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQlBFcHlSUVJBSUFVZ0FEWUNBQXdCQ3lBRUlBRkJCSEkyQWdBTERBa0xJQWRCdU5JQUtRTUFOd01ZSUFkQnNOSUFLUU1BTndNUUlBZEJxTklBS1FNQU53TUlJQWRCb05JQUtRTUFOd01BSUFjZ0FDQUJJQUlnQXlBRUlBVWdCeUFIUVNCcUVHRTJBamdNQ0FzZ0IwRTRhaUFDSUFRZ0NFRUJFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUVpLY2tVRVFDQUZJQUEyQWhnTUFRc2dCQ0FCUVFSeU5nSUFDd3dIQ3lBQUlBRWdBaUFESUFRZ0JTQUFLQUlBS0FJVUVRVUFEQWNMSUFjZ0FDQUJJQUlnQXlBRUlBVWdBRUVJYWlBQUtBSUlLQUlZRVFBQUlnQVFEU0FBRUEwZ0FCQUpRUUowYWhCaE5nSTREQVVMSUFWQkZHb2dCMEU0YWlBQ0lBUWdDQkN5QWd3RUN5QUhRVGhxSUFJZ0JDQUlRUVFRV0NFQUlBUXRBQUJCQkhGRkJFQWdCU0FBUWV3T2F6WUNGQXNNQXdzZ0JrRWxSZzBCQ3lBRUlBUW9BZ0JCQkhJMkFnQU1BUXNqQUVFUWF5SUFKQUFnQUNBQ05nSUlRUVloQVFKQUFrQWdCMEU0YWlJQ0lBQkJDR29RS0EwQVFRUWhBU0FJSUFJUUlSQ0hBVUVsUncwQVFRSWhBU0FDRUNVZ0FFRUlhaEFvUlEwQkN5QUVJQVFvQWdBZ0FYSTJBZ0FMSUFCQkVHb2tBQXNnQnlnQ09Bc2hBQ0FIUVVCckpBQWdBQXRIQVFGL0l3QkJFR3NpQmlRQUlBWWdBVFlDQ0NBR0lBTVFEeUFHRURzaEFTQUdFQTRnQlVFVWFpQUdRUWhxSUFJZ0JDQUJFTElDSUFZb0FnZ2hBQ0FHUVJCcUpBQWdBQXRKQVFGL0l3QkJFR3NpQmlRQUlBWWdBVFlDQ0NBR0lBTVFEeUFHRURzaEFTQUdFQTRnQUNBRlFSQnFJQVpCQ0dvZ0FpQUVJQUVRc3dJZ0JpZ0NDQ0VBSUFaQkVHb2tBQ0FBQzBrQkFYOGpBRUVRYXlJR0pBQWdCaUFCTmdJSUlBWWdBeEFQSUFZUU95RUJJQVlRRGlBQUlBVkJHR29nQmtFSWFpQUNJQVFnQVJDMEFpQUdLQUlJSVFBZ0JrRVFhaVFBSUFBTE1BQWdBQ0FCSUFJZ0F5QUVJQVVnQUVFSWFpQUFLQUlJS0FJVUVRQUFJZ0FRRFNBQUVBMGdBQkFKUVFKMGFoQmhDMXdCQVg4akFFRWdheUlHSkFBZ0JrRzQwZ0FwQXdBM0F4Z2dCa0d3MGdBcEF3QTNBeEFnQmtHbzBnQXBBd0EzQXdnZ0JrR2cwZ0FwQXdBM0F3QWdBQ0FCSUFJZ0F5QUVJQVVnQmlBR1FTQnFJZ0VRWVNFQUlBRWtBQ0FBQzVBTUFRSi9Jd0JCSUdzaUJ5UUFJQWNnQVRZQ0dDQUVRUUEyQWdBZ0IwRUlhaUlKSUFNUUR5QUpFREloQ0NBSkVBNENmd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdCa0hCQUdzT09RQUJGd1FYQlJjR0J4Y1hGd29YRnhjWERnOFFGeGNYRXhVWEZ4Y1hGeGNYQUFFQ0F3TVhGd0VYQ0JjWENRc1hEQmNORndzWEZ4RVNGQllMSUFBZ0JVRVlhaUFIUVJocUlBSWdCQ0FJRUxjQ0RCZ0xJQUFnQlVFUWFpQUhRUmhxSUFJZ0JDQUlFTFlDREJjTElBY2dBQ0FCSUFJZ0F5QUVJQVVnQUVFSWFpQUFLQUlJS0FJTUVRQUFJZ0FRRFNBQUVBMGdBQkFKYWhCaU5nSVlEQllMSUFkQkdHb2dBaUFFSUFoQkFoQlpJUUFDUUNBRUtBSUFJZ0ZCQkhFZ0FFRUFUSElnQUVFZlNuSkZCRUFnQlNBQU5nSU1EQUVMSUFRZ0FVRUVjallDQUFzTUZRc2dCMEtsMnIycHd1ekxrdmtBTndNSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUkJxRUdJMkFoZ01GQXNnQjBLbHNyV3AwcTNMa3VRQU53TUlJQWNnQUNBQklBSWdBeUFFSUFVZ0IwRUlhaUFIUVJCcUVHSTJBaGdNRXdzZ0IwRVlhaUFDSUFRZ0NFRUNFRmtoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUmRLY2tVRVFDQUZJQUEyQWdnTUFRc2dCQ0FCUVFSeU5nSUFDd3dTQ3lBSFFSaHFJQUlnQkNBSVFRSVFXU0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJBRXh5SUFCQkRFcHlSUVJBSUFVZ0FEWUNDQXdCQ3lBRUlBRkJCSEkyQWdBTERCRUxJQWRCR0dvZ0FpQUVJQWhCQXhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVIdEFrcHlSUVJBSUFVZ0FEWUNIQXdCQ3lBRUlBRkJCSEkyQWdBTERCQUxJQWRCR0dvZ0FpQUVJQWhCQWhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFTVNuSkZCRUFnQlNBQVFRRnJOZ0lRREFFTElBUWdBVUVFY2pZQ0FBc01Ed3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUdEtja1VFUUNBRklBQTJBZ1FNQVFzZ0JDQUJRUVJ5TmdJQUN3d09DeUFIUVJocUlRQWpBRUVRYXlJQkpBQWdBU0FDTmdJSUEwQUNRQ0FBSUFGQkNHb1FNVVVOQUNBSVFZREFBQ0FBRUI4UVJFVU5BQ0FBRUNJYURBRUxDeUFBSUFGQkNHb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBVUVRYWlRQURBMExJQWRCR0dvaEFRSkFJQUJCQ0dvZ0FDZ0NDQ2dDQ0JFQUFDSUFFQWxCQUNBQVFReHFFQWxyUmdSQUlBUWdCQ2dDQUVFRWNqWUNBQXdCQ3lBQklBSWdBQ0FBUVJocUlBZ2dCRUVBRUxRQklBQnJJZ0VnQlNnQ0NDSUFRUXhIY2tVRVFDQUZRUUEyQWdnTUFRc2dBVUVNUnlBQVFRdEtja1VFUUNBRklBQkJER28yQWdnTEN3d01DeUFIUVlUUkFDZ0FBRFlBRHlBSFFmM1FBQ2tBQURjRENDQUhJQUFnQVNBQ0lBTWdCQ0FGSUFkQkNHb2dCMEVUYWhCaU5nSVlEQXNMSUFkQmpORUFMUUFBT2dBTUlBZEJpTkVBS0FBQU5nSUlJQWNnQUNBQklBSWdBeUFFSUFVZ0IwRUlhaUFIUVExcUVHSTJBaGdNQ2dzZ0IwRVlhaUFDSUFRZ0NFRUNFRmtoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRVHhLY2tVRVFDQUZJQUEyQWdBTUFRc2dCQ0FCUVFSeU5nSUFDd3dKQ3lBSFFxV1E2YW5TeWM2UzB3QTNBd2dnQnlBQUlBRWdBaUFESUFRZ0JTQUhRUWhxSUFkQkVHb1FZallDR0F3SUN5QUhRUmhxSUFJZ0JDQUlRUUVRV1NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCQmtweVJRUkFJQVVnQURZQ0dBd0JDeUFFSUFGQkJISTJBZ0FMREFjTElBQWdBU0FDSUFNZ0JDQUZJQUFvQWdBb0FoUVJCUUFNQndzZ0J5QUFJQUVnQWlBRElBUWdCU0FBUVFocUlBQW9BZ2dvQWhnUkFBQWlBQkFOSUFBUURTQUFFQWxxRUdJMkFoZ01CUXNnQlVFVWFpQUhRUmhxSUFJZ0JDQUlFTFVDREFRTElBZEJHR29nQWlBRUlBaEJCQkJaSVFBZ0JDMEFBRUVFY1VVRVFDQUZJQUJCN0E1ck5nSVVDd3dEQ3lBR1FTVkdEUUVMSUFRZ0JDZ0NBRUVFY2pZQ0FBd0JDeU1BUVJCcklnQWtBQ0FBSUFJMkFnaEJCaUVCQWtBQ1FDQUhRUmhxSWdJZ0FFRUlhaEFtRFFCQkJDRUJJQWdnQWhBZkVJZ0JRU1ZIRFFCQkFpRUJJQUlRSWlBQVFRaHFFQ1pGRFFFTElBUWdCQ2dDQUNBQmNqWUNBQXNnQUVFUWFpUUFDeUFIS0FJWUN5RUFJQWRCSUdva0FDQUFDMGNCQVg4akFFRVFheUlHSkFBZ0JpQUJOZ0lJSUFZZ0F4QVBJQVlRTWlFQklBWVFEaUFGUVJScUlBWkJDR29nQWlBRUlBRVF0UUlnQmlnQ0NDRUFJQVpCRUdva0FDQUFDMGtCQVg4akFFRVFheUlHSkFBZ0JpQUJOZ0lJSUFZZ0F4QVBJQVlRTWlFQklBWVFEaUFBSUFWQkVHb2dCa0VJYWlBQ0lBUWdBUkMyQWlBR0tBSUlJUUFnQmtFUWFpUUFJQUFMU1FFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBeUlRRWdCaEFPSUFBZ0JVRVlhaUFHUVFocUlBSWdCQ0FCRUxjQ0lBWW9BZ2doQUNBR1FSQnFKQUFnQUFzdEFDQUFJQUVnQWlBRElBUWdCU0FBUVFocUlBQW9BZ2dvQWhRUkFBQWlBQkFOSUFBUURTQUFFQWxxRUdJTFB3RUJmeU1BUVJCcklnWWtBQ0FHUXFXUTZhblN5YzZTMHdBM0F3Z2dBQ0FCSUFJZ0F5QUVJQVVnQmtFSWFpQUdRUkJxSWdFUVlpRUFJQUVrQUNBQUM2NEJBUVYvSXdCQjBBRnJJZ0FrQUNBQVFmdlFBQzhBQURzQnpBRWdBRUgzMEFBb0FBQTJBc2dCRUJZaEJpQUFJQVEyQWdBZ0FFR3dBV29pQnlBSElBZEJGQ0FHSUFCQnlBRnFJQUFRTENJSWFpSUVJQUlRUHlFR0lBQkJFR29pQlNBQ0VBOGdCUkE3SVFrZ0JSQU9JQWtnQnlBRUlBVVFaQ0FCSUFVZ0NFRUNkQ0FGYWlJQklBWWdBR3RCQW5RZ0FHcEJzQVZySUFRZ0JrWWJJQUVnQWlBREVHTWhBU0FBUWRBQmFpUUFJQUVMZ0FRQkIzOGpBRUd3QTJzaUFDUUFJQUJDSlRjRHFBTWdBRUdvQTJwQkFYSkJqeDRnQWlnQ0JCQ3VBU0VJSUFBZ0FFR0FBMm8yQXZ3Q0VCWWhCZ0ovSUFnRVFDQUNLQUlJSVFjZ0FFRkFheUFGTndNQUlBQWdCRGNET0NBQUlBYzJBakFnQUVHQUEycEJIaUFHSUFCQnFBTnFJQUJCTUdvUUxBd0JDeUFBSUFRM0ExQWdBQ0FGTndOWUlBQkJnQU5xUVI0Z0JpQUFRYWdEYWlBQVFkQUFhaEFzQ3lFR0lBQkJOVFlDZ0FFZ0FFSHdBbXBCQUNBQVFZQUJhaEFlSVFrZ0FFR0FBMm9pQ2lFSEFrQWdCa0VlVGdSQUVCWWhCZ0ovSUFnRVFDQUNLQUlJSVFjZ0FDQUZOd01RSUFBZ0JEY0RDQ0FBSUFjMkFnQWdBRUg4QW1vZ0JpQUFRYWdEYWlBQUVGb01BUXNnQUNBRU53TWdJQUFnQlRjREtDQUFRZndDYWlBR0lBQkJxQU5xSUFCQklHb1FXZ3NpQmtGL1JnMEJJQWtnQUNnQy9BSVFKeUFBS0FMOEFpRUhDeUFISUFZZ0Iyb2lDeUFDRUQ4aERDQUFRVFUyQW9BQklBQkIrQUJxUVFBZ0FFR0FBV29RSGlFSEFrQWdBQ2dDL0FJZ0FFR0FBMnBHQkVBZ0FFR0FBV29oQmd3QkN5QUdRUU4wRUJraUJrVU5BU0FISUFZUUp5QUFLQUw4QWlFS0N5QUFRZWdBYWlJSUlBSVFEeUFLSUF3Z0N5QUdJQUJCOUFCcUlBQkI4QUJxSUFnUXVRSWdDQkFPSUFFZ0JpQUFLQUowSUFBb0FuQWdBaUFERUdNaEFTQUhFQjBnQ1JBZElBQkJzQU5xSkFBZ0FROExFQmNBQzl3REFRZC9Jd0JCZ0FOcklnQWtBQ0FBUWlVM0EvZ0NJQUJCK0FKcVFRRnlRWllmSUFJb0FnUVFyZ0VoQnlBQUlBQkIwQUpxTmdMTUFoQVdJUVVDZnlBSEJFQWdBaWdDQ0NFR0lBQWdCRGtES0NBQUlBWTJBaUFnQUVIUUFtcEJIaUFGSUFCQitBSnFJQUJCSUdvUUxBd0JDeUFBSUFRNUF6QWdBRUhRQW1wQkhpQUZJQUJCK0FKcUlBQkJNR29RTEFzaEJTQUFRVFUyQWxBZ0FFSEFBbXBCQUNBQVFkQUFhaEFlSVFnZ0FFSFFBbW9pQ1NFR0FrQWdCVUVlVGdSQUVCWWhCUUovSUFjRVFDQUNLQUlJSVFZZ0FDQUVPUU1JSUFBZ0JqWUNBQ0FBUWN3Q2FpQUZJQUJCK0FKcUlBQVFXZ3dCQ3lBQUlBUTVBeEFnQUVITUFtb2dCU0FBUWZnQ2FpQUFRUkJxRUZvTElnVkJmMFlOQVNBSUlBQW9Bc3dDRUNjZ0FDZ0N6QUloQmdzZ0JpQUZJQVpxSWdvZ0FoQS9JUXNnQUVFMU5nSlFJQUJCeUFCcVFRQWdBRUhRQUdvUUhpRUdBa0FnQUNnQ3pBSWdBRUhRQW1wR0JFQWdBRUhRQUdvaEJRd0JDeUFGUVFOMEVCa2lCVVVOQVNBR0lBVVFKeUFBS0FMTUFpRUpDeUFBUVRocUlnY2dBaEFQSUFrZ0N5QUtJQVVnQUVIRUFHb2dBRUZBYXlBSEVMa0NJQWNRRGlBQklBVWdBQ2dDUkNBQUtBSkFJQUlnQXhCaklRRWdCaEFkSUFnUUhTQUFRWUFEYWlRQUlBRVBDeEFYQUF1aUFRRUVmeU1BUVlBQ2F5SUFKQUFnQUVJbE53UDRBU0FBUWZnQmFpSUdRUUZ5UWRNY1FRQWdBaWdDQkJCdUVCWWhCeUFBSUFRM0F3QWdBRUhnQVdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUswQklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJqSVFFZ0FFR0FBbW9rQUNBQkM3UUJBUU4vSXdCQm9BRnJJZ0FrQUNBQVFmWFFBQzhBQURzQm5BRWdBRUh4MEFBb0FBQTJBcGdCSUFCQm1BRnFJZ1ZCQVhKQjJoeEJBQ0FDS0FJRUVHNFFGaUVHSUFBZ0JEWUNBQ0FBUVlzQmFpSUVJQVJCRFNBR0lBVWdBQkFzSUFScUlnWWdBaEEvSVFjZ0FFRVFhaUlGSUFJUUR5QUVJQWNnQmlBQVFTQnFJZ1FnQUVFY2FpQUFRUmhxSUFVUXJRRWdCUkFPSUFFZ0JDQUFLQUljSUFBb0FoZ2dBaUFERUdNaEFTQUFRYUFCYWlRQUlBRUxvZ0VCQkg4akFFR0FBbXNpQUNRQUlBQkNKVGNEK0FFZ0FFSDRBV29pQmtFQmNrSFRIRUVCSUFJb0FnUVFiaEFXSVFjZ0FDQUVOd01BSUFCQjRBRnFJZ1VnQlVFWUlBY2dCaUFBRUN3Z0JXb2lCeUFDRUQ4aENDQUFRUkJxSWdZZ0FoQVBJQVVnQ0NBSElBQkJJR29pQlNBQVFSeHFJQUJCR0dvZ0JoQ3RBU0FHRUE0Z0FTQUZJQUFvQWh3Z0FDZ0NHQ0FDSUFNUVl5RUJJQUJCZ0FKcUpBQWdBUXUwQVFFRGZ5TUFRYUFCYXlJQUpBQWdBRUgxMEFBdkFBQTdBWndCSUFCQjhkQUFLQUFBTmdLWUFTQUFRWmdCYWlJRlFRRnlRZG9jUVFFZ0FpZ0NCQkJ1RUJZaEJpQUFJQVEyQWdBZ0FFR0xBV29pQkNBRVFRMGdCaUFGSUFBUUxDQUVhaUlHSUFJUVB5RUhJQUJCRUdvaUJTQUNFQThnQkNBSElBWWdBRUVnYWlJRUlBQkJIR29nQUVFWWFpQUZFSzBCSUFVUURpQUJJQVFnQUNnQ0hDQUFLQUlZSUFJZ0F4QmpJUUVnQUVHZ0FXb2tBQ0FCQzgwQkFRRi9Jd0JCTUdzaUJTUUFJQVVnQVRZQ0tBSkFJQUlvQWdSQkFYRkZCRUFnQUNBQklBSWdBeUFFSUFBb0FnQW9BaGdSQmdBaEFnd0JDeUFGUVJocUlnQWdBaEFQSUFBUWl3RWhBU0FBRUE0Q1FDQUVCRUFnQlVFWWFpQUJFRXNNQVFzZ0JVRVlhaUFCRUVvTElBVWdCVUVZYWhCQU5nSVFBMEFnQlNBRlFSaHFFRzAyQWdnZ0JVRVFhaUFGUVFocUVGc0VRQ0FGUVNocUlBVkJFR29pQUNnQ0FDZ0NBQkR6QWlBQUVKUUJEQUVGSUFVb0FpZ2hBaUFGUVJocUVBb2FDd3NMSUFWQk1Hb2tBQ0FDQzZRQkFRVi9Jd0JCNEFCcklnQWtBQ0FBUWZ2UUFDOEFBRHNCWENBQVFmZlFBQ2dBQURZQ1dCQVdJUVlnQUNBRU5nSUFJQUJCUUdzaUJ5QUhJQWRCRkNBR0lBQkIyQUJxSUFBUUxDSUlhaUlFSUFJUVB5RUdJQUJCRUdvaUJTQUNFQThnQlJBeUlRa2dCUkFPSUFrZ0J5QUVJQVVRY0NBQklBVWdCU0FJYWlJQklBWWdBR3NnQUdwQk1Hc2dCQ0FHUmhzZ0FTQUNJQU1RVmlFQklBQkI0QUJxSkFBZ0FRdUFCQUVIZnlNQVFZQUNheUlBSkFBZ0FFSWxOd1A0QVNBQVFmZ0Jha0VCY2tHUEhpQUNLQUlFRUs0QklRZ2dBQ0FBUWRBQmFqWUN6QUVRRmlFR0FuOGdDQVJBSUFJb0FnZ2hCeUFBUVVCcklBVTNBd0FnQUNBRU53TTRJQUFnQnpZQ01DQUFRZEFCYWtFZUlBWWdBRUg0QVdvZ0FFRXdhaEFzREFFTElBQWdCRGNEVUNBQUlBVTNBMWdnQUVIUUFXcEJIaUFHSUFCQitBRnFJQUJCMEFCcUVDd0xJUVlnQUVFMU5nS0FBU0FBUWNBQmFrRUFJQUJCZ0FGcUVCNGhDU0FBUWRBQmFpSUtJUWNDUUNBR1FSNU9CRUFRRmlFR0FuOGdDQVJBSUFJb0FnZ2hCeUFBSUFVM0F4QWdBQ0FFTndNSUlBQWdCellDQUNBQVFjd0JhaUFHSUFCQitBRnFJQUFRV2d3QkN5QUFJQVEzQXlBZ0FDQUZOd01vSUFCQnpBRnFJQVlnQUVINEFXb2dBRUVnYWhCYUN5SUdRWDlHRFFFZ0NTQUFLQUxNQVJBbklBQW9Bc3dCSVFjTElBY2dCaUFIYWlJTElBSVFQeUVNSUFCQk5UWUNnQUVnQUVINEFHcEJBQ0FBUVlBQmFoQWVJUWNDUUNBQUtBTE1BU0FBUWRBQmFrWUVRQ0FBUVlBQmFpRUdEQUVMSUFaQkFYUVFHU0lHUlEwQklBY2dCaEFuSUFBb0Fzd0JJUW9MSUFCQjZBQnFJZ2dnQWhBUElBb2dEQ0FMSUFZZ0FFSDBBR29nQUVId0FHb2dDQkM4QWlBSUVBNGdBU0FHSUFBb0FuUWdBQ2dDY0NBQ0lBTVFWaUVCSUFjUUhTQUpFQjBnQUVHQUFtb2tBQ0FCRHdzUUZ3QUwzQU1CQjM4akFFSFFBV3NpQUNRQUlBQkNKVGNEeUFFZ0FFSElBV3BCQVhKQmxoOGdBaWdDQkJDdUFTRUhJQUFnQUVHZ0FXbzJBcHdCRUJZaEJRSi9JQWNFUUNBQ0tBSUlJUVlnQUNBRU9RTW9JQUFnQmpZQ0lDQUFRYUFCYWtFZUlBVWdBRUhJQVdvZ0FFRWdhaEFzREFFTElBQWdCRGtETUNBQVFhQUJha0VlSUFVZ0FFSElBV29nQUVFd2FoQXNDeUVGSUFCQk5UWUNVQ0FBUVpBQmFrRUFJQUJCMEFCcUVCNGhDQ0FBUWFBQmFpSUpJUVlDUUNBRlFSNU9CRUFRRmlFRkFuOGdCd1JBSUFJb0FnZ2hCaUFBSUFRNUF3Z2dBQ0FHTmdJQUlBQkJuQUZxSUFVZ0FFSElBV29nQUJCYURBRUxJQUFnQkRrREVDQUFRWndCYWlBRklBQkJ5QUZxSUFCQkVHb1FXZ3NpQlVGL1JnMEJJQWdnQUNnQ25BRVFKeUFBS0FLY0FTRUdDeUFHSUFVZ0Jtb2lDaUFDRUQ4aEN5QUFRVFUyQWxBZ0FFSElBR3BCQUNBQVFkQUFhaEFlSVFZQ1FDQUFLQUtjQVNBQVFhQUJha1lFUUNBQVFkQUFhaUVGREFFTElBVkJBWFFRR1NJRlJRMEJJQVlnQlJBbklBQW9BcHdCSVFrTElBQkJPR29pQnlBQ0VBOGdDU0FMSUFvZ0JTQUFRY1FBYWlBQVFVQnJJQWNRdkFJZ0J4QU9JQUVnQlNBQUtBSkVJQUFvQWtBZ0FpQURFRlloQVNBR0VCMGdDQkFkSUFCQjBBRnFKQUFnQVE4TEVCY0FDMHdCQVg5QnRJRUJRYkNCQVNBQ0d5QUJOZ0lBSUFGQkFFb0VRRUdRZ1FGQjhJQUJJQUliSVFOQkFDRUNBMEFnQWlBRGFpQUFJQUpxTFFBQU9nQUFJQUpCQVdvaUFpQUJSdzBBQ3dzTG9RRUJCSDhqQUVId0FHc2lBQ1FBSUFCQ0pUY0RhQ0FBUWVnQWFpSUdRUUZ5UWRNY1FRQWdBaWdDQkJCdUVCWWhCeUFBSUFRM0F3QWdBRUhRQUdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUs4QklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJXSVFFZ0FFSHdBR29rQUNBQkM3RUJBUU4vSXdCQjBBQnJJZ0FrQUNBQVFmWFFBQzhBQURzQlRDQUFRZkhRQUNnQUFEWUNTQ0FBUWNnQWFpSUZRUUZ5UWRvY1FRQWdBaWdDQkJCdUVCWWhCaUFBSUFRMkFnQWdBRUU3YWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcndFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFRlloQVNBQVFkQUFhaVFBSUFFTG9RRUJCSDhqQUVId0FHc2lBQ1FBSUFCQ0pUY0RhQ0FBUWVnQWFpSUdRUUZ5UWRNY1FRRWdBaWdDQkJCdUVCWWhCeUFBSUFRM0F3QWdBRUhRQUdvaUJTQUZRUmdnQnlBR0lBQVFMQ0FGYWlJSElBSVFQeUVJSUFCQkVHb2lCaUFDRUE4Z0JTQUlJQWNnQUVFZ2FpSUZJQUJCSEdvZ0FFRVlhaUFHRUs4QklBWVFEaUFCSUFVZ0FDZ0NIQ0FBS0FJWUlBSWdBeEJXSVFFZ0FFSHdBR29rQUNBQkM3RUJBUU4vSXdCQjBBQnJJZ0FrQUNBQVFmWFFBQzhBQURzQlRDQUFRZkhRQUNnQUFEWUNTQ0FBUWNnQWFpSUZRUUZ5UWRvY1FRRWdBaWdDQkJCdUVCWWhCaUFBSUFRMkFnQWdBRUU3YWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcndFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFRlloQVNBQVFkQUFhaVFBSUFFTHpRRUJBWDhqQUVFd2F5SUZKQUFnQlNBQk5nSW9Ba0FnQWlnQ0JFRUJjVVVFUUNBQUlBRWdBaUFESUFRZ0FDZ0NBQ2dDR0JFR0FDRUNEQUVMSUFWQkdHb2lBQ0FDRUE4Z0FCQ09BU0VCSUFBUURnSkFJQVFFUUNBRlFSaHFJQUVRU3d3QkN5QUZRUmhxSUFFUVNnc2dCU0FGUVJocUVFQTJBaEFEUUNBRklBVkJHR29RYnpZQ0NDQUZRUkJxSUFWQkNHb1FXd1JBSUFWQktHb2dCVUVRYWlJQUtBSUFMQUFBRVBRQ0lBQVFsZ0VNQVFVZ0JTZ0NLQ0VDSUFWQkdHb1FDaG9MQ3dzZ0JVRXdhaVFBSUFJTEZnQkJrSUVCUWJTQkFTZ0NBQ0FDSUFBZ0FSRGxBUXZ5QWdFQmZ5TUFRZUFDYXlJQUpBQWdBQ0FDTmdMUUFpQUFJQUUyQXRnQ0lBQkIwQUZxRUJFaEJpQUFRUkJxSWdJZ0F4QVBJQUlRTzBIUTBBQkI2dEFBSUFCQjRBRnFFR1FnQWhBT0lBQkJ3QUZxRUJFaUF5QURFQk1RRENBQUlBTkJBQkFMSWdFMkFyd0JJQUFnQWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCMkFKcUlBQkIwQUpxRURaRkRRQWdBQ2dDdkFFZ0F4QUpJQUZxUmdSQUlBTVFDU0VDSUFNZ0F4QUpRUUYwRUF3Z0F5QURFQk1RRENBQUlBSWdBMEVBRUFzaUFXbzJBcndCQ3lBQVFkZ0NhaEFoUVJBZ0FTQUFRYndCYWlBQVFRaHFRUUFnQmlBQVFSQnFJQUJCREdvZ0FFSGdBV29RaWdFTkFDQUFRZGdDYWhBbEdnd0JDd3NnQXlBQUtBSzhBU0FCYXhBTUlBTVFEU0VDRUJZaEFTQUFJQVUyQWdBZ0FpQUJJQUFRdndKQkFVY0VRQ0FFUVFRMkFnQUxJQUJCMkFKcUlBQkIwQUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F0Z0NJUUVnQXhBS0dpQUdFQW9hSUFCQjRBSnFKQUFnQVF2U0F3RUJmaU1BUVlBRGF5SUFKQUFnQUNBQ05nTHdBaUFBSUFFMkF2Z0NJQUJCMkFGcUlBTWdBRUh3QVdvZ0FFSHNBV29nQUVIb0FXb1ExQUVnQUVISUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDeEFFZ0FDQUFRU0JxTmdJY0lBQkJBRFlDR0NBQVFRRTZBQmNnQUVIRkFEb0FGZ05BQWtBZ0FFSDRBbW9nQUVId0Ftb1FOa1VOQUNBQUtBTEVBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3hBRUxJQUJCK0FKcUVDRWdBRUVYYWlBQVFSWnFJQUlnQUVIRUFXb2dBQ2dDN0FFZ0FDZ0M2QUVnQUVIWUFXb2dBRUVnYWlBQVFSeHFJQUJCR0dvZ0FFSHdBV29RMHdFTkFDQUFRZmdDYWhBbEdnd0JDd3NDUUNBQVFkZ0JhaEFKUlEwQUlBQXRBQmRGRFFBZ0FDZ0NIQ0lESUFCQklHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0hDQURJQUFvQWhnMkFnQUxJQUFnQWlBQUtBTEVBU0FFRU1BQ0lBQXBBd0FoQmlBRklBQXBBd2czQXdnZ0JTQUdOd01BSUFCQjJBRnFJQUJCSUdvZ0FDZ0NIQ0FFRUMwZ0FFSDRBbW9nQUVId0Ftb1FLQVJBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDK0FJaEFpQUJFQW9hSUFCQjJBRnFFQW9hSUFCQmdBTnFKQUFnQWd1N0F3QWpBRUh3QW1zaUFDUUFJQUFnQWpZQzRBSWdBQ0FCTmdMb0FpQUFRY2dCYWlBRElBQkI0QUZxSUFCQjNBRnFJQUJCMkFGcUVOUUJJQUJCdUFGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBclFCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dnQUVFQk9nQUhJQUJCeFFBNkFBWURRQUpBSUFCQjZBSnFJQUJCNEFKcUVEWkZEUUFnQUNnQ3RBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJRQkN5QUFRZWdDYWhBaElBQkJCMm9nQUVFR2FpQUNJQUJCdEFGcUlBQW9BdHdCSUFBb0F0Z0JJQUJCeUFGcUlBQkJFR29nQUVFTWFpQUFRUWhxSUFCQjRBRnFFTk1CRFFBZ0FFSG9BbW9RSlJvTUFRc0xBa0FnQUVISUFXb1FDVVVOQUNBQUxRQUhSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3RBRWdCQkRCQWprREFDQUFRY2dCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCNkFKcUlBQkI0QUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F1Z0NJUUlnQVJBS0dpQUFRY2dCYWhBS0dpQUFRZkFDYWlRQUlBSUx1d01BSXdCQjhBSnJJZ0FrQUNBQUlBSTJBdUFDSUFBZ0FUWUM2QUlnQUVISUFXb2dBeUFBUWVBQmFpQUFRZHdCYWlBQVFkZ0JhaERVQVNBQVFiZ0JhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLMEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUlBQkJBVG9BQnlBQVFjVUFPZ0FHQTBBQ1FDQUFRZWdDYWlBQVFlQUNhaEEyUlEwQUlBQW9BclFCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzBBUXNnQUVIb0Ftb1FJU0FBUVFkcUlBQkJCbW9nQWlBQVFiUUJhaUFBS0FMY0FTQUFLQUxZQVNBQVFjZ0JhaUFBUVJCcUlBQkJER29nQUVFSWFpQUFRZUFCYWhEVEFRMEFJQUJCNkFKcUVDVWFEQUVMQ3dKQUlBQkJ5QUZxRUFsRkRRQWdBQzBBQjBVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BclFCSUFRUXdnSTRBZ0FnQUVISUFXb2dBRUVRYWlBQUtBSU1JQVFRTFNBQVFlZ0NhaUFBUWVBQ2FoQW9CRUFnQkNBRUtBSUFRUUp5TmdJQUN5QUFLQUxvQWlFQ0lBRVFDaG9nQUVISUFXb1FDaG9nQUVId0Ftb2tBQ0FDQzUwREFRSi9Jd0JCNEFKcklnQWtBQ0FBSUFJMkF0QUNJQUFnQVRZQzJBSWdBeEJjSVFZZ0F5QUFRZUFCYWhDWUFTRUhJQUJCMEFGcUlBTWdBRUhNQW1vUWx3RWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFSFlBbW9nQUVIUUFtb1FOa1VOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCMkFKcUVDRWdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDZ0N6QUlnQUVIUUFXb2dBRUVRYWlBQVFReHFJQWNRaWdFTkFDQUFRZGdDYWhBbEdnd0JDd3NDUUNBQVFkQUJhaEFKUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkNBR0VNTUNOd01BSUFCQjBBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFSFlBbW9nQUVIUUFtb1FLQVJBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDMkFJaEFpQUJFQW9hSUFCQjBBRnFFQW9hSUFCQjRBSnFKQUFnQWd1ZEF3RUNmeU1BUWVBQ2F5SUFKQUFnQUNBQ05nTFFBaUFBSUFFMkF0Z0NJQU1RWENFR0lBTWdBRUhnQVdvUW1BRWhCeUFBUWRBQmFpQURJQUJCekFKcUVKY0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dEUUFKQUlBQkIyQUpxSUFCQjBBSnFFRFpGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUWRnQ2FoQWhJQVlnQWlBQVFid0JhaUFBUVFocUlBQW9Bc3dDSUFCQjBBRnFJQUJCRUdvZ0FFRU1haUFIRUlvQkRRQWdBRUhZQW1vUUpSb01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREdBanNCQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkIyQUpxSUFCQjBBSnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQXRnQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFlQUNhaVFBSUFJTG5RTUJBbjhqQUVIZ0Ftc2lBQ1FBSUFBZ0FqWUMwQUlnQUNBQk5nTFlBaUFERUZ3aEJpQURJQUJCNEFGcUVKZ0JJUWNnQUVIUUFXb2dBeUFBUWN3Q2FoQ1hBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRZGdDYWlBQVFkQUNhaEEyUlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVIWUFtb1FJU0FHSUFJZ0FFRzhBV29nQUVFSWFpQUFLQUxNQWlBQVFkQUJhaUFBUVJCcUlBQkJER29nQnhDS0FRMEFJQUJCMkFKcUVDVWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4d0kzQXdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRZGdDYWlBQVFkQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMWUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFSGdBbW9rQUNBQ0M1MERBUUovSXdCQjRBSnJJZ0FrQUNBQUlBSTJBdEFDSUFBZ0FUWUMyQUlnQXhCY0lRWWdBeUFBUWVBQmFoQ1lBU0VISUFCQjBBRnFJQU1nQUVITUFtb1Fsd0VnQUVIQUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdkFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0FOQUFrQWdBRUhZQW1vZ0FFSFFBbW9RTmtVTkFDQUFLQUs4QVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN2QUVMSUFCQjJBSnFFQ0VnQmlBQ0lBQkJ2QUZxSUFCQkNHb2dBQ2dDekFJZ0FFSFFBV29nQUVFUWFpQUFRUXhxSUFjUWlnRU5BQ0FBUWRnQ2FoQWxHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTWtDTmdJQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUhZQW1vZ0FFSFFBbW9RS0FSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQzJBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkI0QUpxSkFBZ0FndnNBUUVCZnlNQVFTQnJJZ1lrQUNBR0lBRTJBaGdDUUNBREtBSUVRUUZ4UlFSQUlBWkJmellDQUNBR0lBQWdBU0FDSUFNZ0JDQUdJQUFvQWdBb0FoQVJCUUFpQVRZQ0dBSkFBa0FDUUNBR0tBSUFEZ0lBQVFJTElBVkJBRG9BQUF3REN5QUZRUUU2QUFBTUFnc2dCVUVCT2dBQUlBUkJCRFlDQUF3QkN5QUdJQU1RRHlBR0VEc2hBU0FHRUE0Z0JpQURFQThnQmhDTEFTRUFJQVlRRGlBR0lBQVFTeUFHUVF4eUlBQVFTaUFGSUFaQkdHb2lBeUFDSUFZZ0F5QUJJQVJCQVJDeUFTQUdSam9BQUNBR0tBSVlJUUVEUUNBRFFReHJFQW9pQXlBR1J3MEFDd3NnQmtFZ2FpUUFJQUVMMWhFQkQzOGpBRUhBQW1zaUJpUUFJQVlnQVNBQ0VPY0NOZ0tZQWtIUTlhblNmRUc5OVlyS2ZTQUVHeUVQUWVTUWwvTjRRZEQxcWRKOElBSkJBWFJCZFhJZ0FrRUZjMnBCRDBZYklRSWdBRVVoRUVHdHRxRFNmU0VBQTBBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFJQUFpQVVHc3RxRFNmVXdFUUNBQlFkNnp0dFI3VEFSQUlBRkI2b25QbjNsTUJFQWdBVUdNa2FYdGVFWU5CeUFCUWVTUWwvTjRSdzBPUWNURStMSURJUUJCQUNFTkRBNExJQUZCNjRuUG4zbEdEUXNnQVVHQ3hPV2hlVVlOQWlBQlFlRGV2NjE2UncwTklBWW9BclFDUVpDQkFXb2dCaTBBbndJNkFBQkJqSkdsN1hnaEFBd05DeUFCUWNHSnZOMThUQVJBSUFGQjM3TzIxSHRHRFFrZ0FVR2NzZUdtZkVZTkNDQUJRZEQxcWRKOFJ3ME5RZVNRbC9ONFFjN1R4S29GSUFZb0FyQUNRUkJHRzBITzA4U3FCU0FHTFFDZEFrRUJjUnNoQUF3TkN5QUJRY0tKdk4xOFJnMEdJQUZCaU1EeTZueEdEUWtnQVVHOTlZcktmVWNORENBQ0lRQU1EQXNDUUFKQUFrQWdBVUhoeXR2NkEwd0VRQ0FCUWRMTXpjd0FUQVJBSUFGQnJiYWcwbjFHRFFJZ0FVSEJnT2FnZjBZTkNDQUJRZE9PMGgxSERSQWdCaUFRT2dDZUFpQUdJQWMyQXJBQ0lBWWdDallDckFKQjA4ek56QUJCZ3NUbG9Ya2dCaTBBbmdKQkFYRWJJUUFNRUFzZ0FVSFR6TTNNQUVZTkF5QUJRY1RFK0xJRFJnMEZJQUZCc3M2c3h3SkhEUThnQmtIQUFtb2tBQThMSUFGQnQvbml0UVpNQkVBZ0R5RUFJQUZCNHNyYitnTkdEUThnQVVHRmhKYldCRVlOQmlBQklRQWdBVUhPMDhTcUJVY05EeUFHSUFaQm9BRnFJZ0EyQXFBQ0lBWW9BcUFDR2lBQUlBWW9BcXdDRUZRYVFjS0p2TjE4SVFCQkFDRU9EQThMSUFGQnVQbml0UVpHRFEwZ0FVRzh4cFhYQmtZTkFTQUJRZVNwbytvSFJ3ME9JQVlvQXJnQ1FmQ0FBV29nQmlnQ0REb0FBRUc0K2VLMUJpRUFEQTRMUVFBaEJ5QUdJQVJCQUVvNkFKMENRYnpHbGRjR1FkT08waDBnQmkwQW5RSkJBWEViSVFBZ0JpZ0NtQUloQ2d3TkN5QUdRWWdDYWlBR0tBS1lBaEJVSWhFaENrRUFJUWhCQUNFSkl3QkJFR3NpQVNRQUlBb1FDU0VMSXdCQkVHc2lCeVFBSUFaQitBRnFJZ0JDQURjQ0FDQUhRUUEyQWd3Z0FFRUlhaUFIUVF4cUVNOEJJQWRCRUdva0FBSkFJQXRGRFFBRFFBSkFJQW9nQ1JBTExRQUFRVDFHRFFBZ0NpQUpFQXN0QUFBaUIwRXJSaUFIUVNCeVFlRUFhMEVhU1FSL1FRRUZJQWNRUlVFQVJ3dEJBRWR5SUFkQkwwWnlSUTBBSUF0QkFXc2hDeUFCUVF4cUlBaHFJQW9nQ1JBTExRQUFPZ0FBUVFBaEJ5QUlRUUZxSWdoQkJFWUVRQU5BSUFGQkRHb2dCMm9pQ0NBSUxBQUFFUFFCT2dBQUlBZEJBV29pQjBFRVJ3MEFDeUFCSUFFdEFBOGdBUzBBRGlJSFFRWjBham9BQ3lBQklBRXRBQTBpQ0VFRWRrRURjU0FCTFFBTVFRSjBjam9BQ1NBQklBZEJBblpCRDNFZ0NFRUVkSEk2QUFwQkFDRUlRUUFoQndOQUlBQWdBVUVKYWlBSGFoRHZBaUFIUVFGcUlnZEJBMGNOQUFzTElBbEJBV29oQ1NBTERRRUxDeUFJUlEwQUlBaEJBMHdFUUNBQlFReHFJQWhxUVFCQkJDQUlheEJHR2d0QkFDRUhBMEFnQVVFTWFpQUhhaUlKSUFrc0FBQVE5QUU2QUFBZ0IwRUJhaUlIUVFSSERRQUxJQUVnQVMwQUR5QUJMUUFPSWdkQkJuUnFPZ0FMSUFFZ0FTMEFEU0lKUVFSMlFRTnhJQUV0QUF4QkFuUnlPZ0FKSUFFZ0IwRUNka0VQY1NBSlFRUjBjam9BQ2lBSVFRSklEUUFnQ0VFQmF5RUlRUUFoQndOQUlBQWdBVUVKYWlBSGFoRHZBaUFIUVFGcUlnY2dDRWNOQUFzTElBRkJFR29rQUNBQUVJa0JJUklnQUNnQ0FDRU1JQVpCbng4b0FBQTJBdkFCSUFaQmx4OHBBQUEzQStnQklBWkNBRGNEMkFFZ0JrSUFOd1BRQVNBR1FnQTNBOGdCSUFaQ0FEY0R3QUVnQmtJQU53TzRBU0FHUWdBM0E3QUJJQUFRaVFFaEN5QUdRYkFCYWlFS0l3QkJNR3NpQVNRQUlBRkJJR29oQ0NBRklBUVF2UUlpQndSQUlBaENBRGNBQUNBSVFnQTNBQWdnQnlBSUlBZ1FwZ0VMSUFaQnZ3SnFJUk1nQmtIUUFXb2hGQ0FIQkg4akFFRVFheUlKSkFBZ0FVRVFhaUlJSUFZcEFPZ0JOd0FBSUFnZ0JpZ0E4QUUyQUFnZ0NFR0FnSUFJTmdBTUlBbEJFR29rQUNNQVFSQnJJZ2trQUNBTEJFQWdDU0FJS1FBQU53TUFJQWtnQ0NrQUNEY0RDQ0FKRU9rQklBY2dDU0FNSUFzZ0NoQ0RBZ3NnQ1VFUWFpUUFJd0JCRUdzaUNTUUFJQUZDQURjQUFDQUJRZ0EzQUFnZ0FVRWdhaUlNSUJOQkFDQUJFTDhCSUF3Z0NpQUxJQUVRdndFZ0NVSUFFTzBCSUFsQkNISWdDMEVEZEswUTdRRWdEQ0FKUVJBZ0FSQy9BU0FKUVJCcUpBQWdCeUFJSUFGQkVDQVVFSU1DSUFjUUVFRUFCVUYvQ3hvZ0FVRXdhaVFBSUFBUTZRSWdBQ2dDQUFSQUlBQW9BZ1FpQVNBQUtBSUFJZ2RIQkVBRFFDQUFFRU1hSUFjZ0FVRUJheUlCUncwQUN3c2dBQ0FITmdJRUlBQVFReG9nQUNnQ0FDRUJJQUFRaFFFYUlBRVFFQXNnRVJBS0drRWdRUkFnRWtFd1Joc2hCMEhUanRJZElRQU1EQXRCc0lFQklBTTJBZ0JCNHNyYitnTWhBQXdMQzBHMGdRRWdBellDQUVIaXl0djZBeUVBREFvTElBWWdEVFlDdEFKQmhZU1cxZ1JCMzdPMjFIc2dCaWdDdEFJZ0EwZ2JJUUFNQ1FzZ0JpQUdLQUtzQWlBR0tBSzBBbW90QUFBNkFKOENJQVl0QUo4Q0drSEJnT2FnZjBIZzNyK3RlaUFHTFFDZUFrRUJjUnNoQUF3SUN5QUdLQUswQWtId2dBRnFJQVl0QUo4Q09nQUFRWXlScGUxNElRQU1Cd3NnQmlnQ3RBSkJBV29oRFVIRXhQaXlBeUVBREFZTElBWWdEallDdUFKQmlNRHk2bnhCbkxIaHBud2dCaWdDdUFJZ0EwZ2JJUUFNQlFzZ0JrR2dBV29RQ2hvZ0JpZ0NvQUlhQzBHeXpxekhBaUVBREFNTElBWWdCa0VRYWlJQU5nS2tBaUFHS0FLa0Fob2dBQkRYQWhvZ0JpQUdRUXhxSWdnMkFxZ0NJQVlvQXFnQ0dpQUdLQUtrQWtFSWFoRE1BaUVKSUFaQnNBRnFJZ0VnQmtHZ0FXb2dCaWdDdUFKQkFYUVF5Z0lnQ1NBQkVNZ0NJQUVRQ2hvZ0FDQUlFUGtDUWVTcG8rb0hRZXVKejU5NUlBWXRBSjRDUVFGeEd5RUFEQUlMSUFZb0FyZ0NRWkNCQVdvZ0JpZ0NERG9BQUVHNCtlSzFCaUVBREFFTElBWW9BcWdDR2lBR1FSQnFFSXdCR2lBR0tBS2tBaG9nQmlnQ3VBSkJBV29oRGtIQ2liemRmQ0VBREFBTEFBdnlBZ0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFCQjBBRnFFQkVoQmlBQVFSQnFJZ0lnQXhBUElBSVFNa0hRMEFCQjZ0QUFJQUJCNEFGcUVIQWdBaEFPSUFCQndBRnFFQkVpQXlBREVCTVFEQ0FBSUFOQkFCQUxJZ0UyQXJ3QklBQWdBallDRENBQVFRQTJBZ2dEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQXhBSklBRnFSZ1JBSUFNUUNTRUNJQU1nQXhBSlFRRjBFQXdnQXlBREVCTVFEQ0FBSUFJZ0EwRUFFQXNpQVdvMkFyd0JDeUFBUVlnQ2FoQWZRUkFnQVNBQVFid0JhaUFBUVFocVFRQWdCaUFBUVJCcUlBQkJER29nQUVIZ0FXb1FqUUVOQUNBQVFZZ0NhaEFpR2d3QkN3c2dBeUFBS0FLOEFTQUJheEFNSUFNUURTRUNFQlloQVNBQUlBVTJBZ0FnQWlBQklBQVF2d0pCQVVjRVFDQUVRUVEyQWdBTElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRRWdBeEFLR2lBR0VBb2FJQUJCa0FKcUpBQWdBUXZTQXdFQmZpTUFRYUFDYXlJQUpBQWdBQ0FDTmdLUUFpQUFJQUUyQXBnQ0lBQkI0QUZxSUFNZ0FFSHdBV29nQUVIdkFXb2dBRUh1QVdvUTF3RWdBRUhRQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN6QUVnQUNBQVFTQnFOZ0ljSUFCQkFEWUNHQ0FBUVFFNkFCY2dBRUhGQURvQUZnTkFBa0FnQUVHWUFtb2dBRUdRQW1vUU1VVU5BQ0FBS0FMTUFTQUJFQWtnQW1wR0JFQWdBUkFKSVFNZ0FTQUJFQWxCQVhRUURDQUJJQUVRRXhBTUlBQWdBeUFCUVFBUUN5SUNhallDekFFTElBQkJtQUpxRUI4Z0FFRVhhaUFBUVJacUlBSWdBRUhNQVdvZ0FDd0E3d0VnQUN3QTdnRWdBRUhnQVdvZ0FFRWdhaUFBUVJ4cUlBQkJHR29nQUVId0FXb1ExZ0VOQUNBQVFaZ0NhaEFpR2d3QkN3c0NRQ0FBUWVBQmFoQUpSUTBBSUFBdEFCZEZEUUFnQUNnQ0hDSURJQUJCSUdwclFaOEJTZzBBSUFBZ0EwRUVhallDSENBRElBQW9BaGcyQWdBTElBQWdBaUFBS0FMTUFTQUVFTUFDSUFBcEF3QWhCaUFGSUFBcEF3ZzNBd2dnQlNBR053TUFJQUJCNEFGcUlBQkJJR29nQUNnQ0hDQUVFQzBnQUVHWUFtb2dBRUdRQW1vUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0NtQUloQWlBQkVBb2FJQUJCNEFGcUVBb2FJQUJCb0FKcUpBQWdBZ3U3QXdBakFFR1FBbXNpQUNRQUlBQWdBallDZ0FJZ0FDQUJOZ0tJQWlBQVFkQUJhaUFESUFCQjRBRnFJQUJCM3dGcUlBQkIzZ0ZxRU5jQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ2dBRUVCT2dBSElBQkJ4UUE2QUFZRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFZZ0NhaEFmSUFCQkIyb2dBRUVHYWlBQ0lBQkJ2QUZxSUFBc0FOOEJJQUFzQU40QklBQkIwQUZxSUFCQkVHb2dBRUVNYWlBQVFRaHFJQUJCNEFGcUVOWUJEUUFnQUVHSUFtb1FJaG9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBTFFBSFJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JCREJBamtEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTHV3TUFJd0JCa0FKcklnQWtBQ0FBSUFJMkFvQUNJQUFnQVRZQ2lBSWdBRUhRQVdvZ0F5QUFRZUFCYWlBQVFkOEJhaUFBUWQ0QmFoRFhBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJSUFCQkFUb0FCeUFBUWNVQU9nQUdBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUFRUWRxSUFCQkJtb2dBaUFBUWJ3QmFpQUFMQURmQVNBQUxBRGVBU0FBUWRBQmFpQUFRUkJxSUFCQkRHb2dBRUVJYWlBQVFlQUJhaERXQVEwQUlBQkJpQUpxRUNJYURBRUxDd0pBSUFCQjBBRnFFQWxGRFFBZ0FDMEFCMFVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFRd2dJNEFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUVlnQ2FpQUFRWUFDYWhBbUJFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBS0lBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUdRQW1va0FDQUNDNUlEQVFGL0l3QkJrQUpySWdBa0FDQUFJQUkyQW9BQ0lBQWdBVFlDaUFJZ0F4QmNJUVlnQUVIUUFXb2dBeUFBUWY4QmFoQ1pBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRWWdDYWlBQVFZQUNhaEF4UlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVHSUFtb1FIeUFHSUFJZ0FFRzhBV29nQUVFSWFpQUFMQUQvQVNBQVFkQUJhaUFBUVJCcUlBQkJER3BCME5BQUVJMEJEUUFnQUVHSUFtb1FJaG9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaEREQWpjREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCaUFKcUlBQkJnQUpxRUNZRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0FvZ0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRWkFDYWlRQUlBSUxrZ01CQVg4akFFR1FBbXNpQUNRQUlBQWdBallDZ0FJZ0FDQUJOZ0tJQWlBREVGd2hCaUFBUWRBQmFpQURJQUJCL3dGcUVKa0JJQUJCd0FGcUVCRWlBU0FCRUJNUURDQUFJQUZCQUJBTElnSTJBcndCSUFBZ0FFRVFhallDRENBQVFRQTJBZ2dEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUVlnQ2FoQWZJQVlnQWlBQVFid0JhaUFBUVFocUlBQXNBUDhCSUFCQjBBRnFJQUJCRUdvZ0FFRU1ha0hRMEFBUWpRRU5BQ0FBUVlnQ2FoQWlHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTVlDT3dFQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUdJQW1vZ0FFR0FBbW9RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQ2lBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkJrQUpxSkFBZ0FndVNBd0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFNUVhDRUdJQUJCMEFGcUlBTWdBRUgvQVdvUW1RRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFR0lBbW9nQUVHQUFtb1FNVVVOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCaUFKcUVCOGdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDd0Evd0VnQUVIUUFXb2dBRUVRYWlBQVFReHFRZERRQUJDTkFRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4d0kzQXdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDWkFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEIwTkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREpBallDQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTDdBRUJBWDhqQUVFZ2F5SUdKQUFnQmlBQk5nSVlBa0FnQXlnQ0JFRUJjVVVFUUNBR1FYODJBZ0FnQmlBQUlBRWdBaUFESUFRZ0JpQUFLQUlBS0FJUUVRVUFJZ0UyQWhnQ1FBSkFBa0FnQmlnQ0FBNENBQUVDQ3lBRlFRQTZBQUFNQXdzZ0JVRUJPZ0FBREFJTElBVkJBVG9BQUNBRVFRUTJBZ0FNQVFzZ0JpQURFQThnQmhBeUlRRWdCaEFPSUFZZ0F4QVBJQVlRamdFaEFDQUdFQTRnQmlBQUVFc2dCa0VNY2lBQUVFb2dCU0FHUVJocUlnTWdBaUFHSUFNZ0FTQUVRUUVRdEFFZ0JrWTZBQUFnQmlnQ0dDRUJBMEFnQTBFTWF4QUtJZ01nQmtjTkFBc0xJQVpCSUdva0FDQUJDMEFCQVg5QkFDRUFBMzhnQVNBQ1JnUi9JQUFGSUFFb0FnQWdBRUVFZEdvaUFFR0FnSUNBZjNFaUEwRVlkaUFEY2lBQWN5RUFJQUZCQkdvaEFRd0JDd3NMR3dBakFFRVFheUlCSkFBZ0FDQUNJQU1RelFJZ0FVRVFhaVFBQzFRQkFuOENRQU5BSUFNZ0JFY0VRRUYvSVFBZ0FTQUNSZzBDSUFFb0FnQWlCU0FES0FJQUlnWklEUUlnQlNBR1NnUkFRUUVQQlNBRFFRUnFJUU1nQVVFRWFpRUJEQUlMQUFzTElBRWdBa2NoQUFzZ0FBdEFBUUYvUVFBaEFBTi9JQUVnQWtZRWZ5QUFCU0FCTEFBQUlBQkJCSFJxSWdCQmdJQ0FnSDl4SWdOQkdIWWdBM0lnQUhNaEFDQUJRUUZxSVFFTUFRc0xDeHNBSXdCQkVHc2lBU1FBSUFBZ0FpQURFUEFDSUFGQkVHb2tBQXRlQVFOL0lBRWdCQ0FEYTJvaEJRSkFBMEFnQXlBRVJ3UkFRWDhoQUNBQklBSkdEUUlnQVN3QUFDSUdJQU1zQUFBaUIwZ05BaUFHSUFkS0JFQkJBUThGSUFOQkFXb2hBeUFCUVFGcUlRRU1BZ3NBQ3dzZ0FpQUZSeUVBQ3lBQUN5VUFJQUFvQWdRYUlBQWdBQ2dDQkVHMWYzRTJBZ1FnQUNBQUtBSUVRUWh5TmdJRUlBQUxxUUVCQkg4Z0FDZ0NWQ0lES0FJRUlnVWdBQ2dDRkNBQUtBSWNJZ1pySWdRZ0JDQUZTeHNpQkFSQUlBTW9BZ0FnQmlBRUVFSWFJQU1nQXlnQ0FDQUVhallDQUNBRElBTW9BZ1FnQkdzaUJUWUNCQXNnQXlnQ0FDRUVJQVVnQWlBQ0lBVkxHeUlGQkVBZ0JDQUJJQVVRUWhvZ0F5QURLQUlBSUFWcUlnUTJBZ0FnQXlBREtBSUVJQVZyTmdJRUN5QUVRUUE2QUFBZ0FDQUFLQUlzSWdFMkFod2dBQ0FCTmdJVUlBSUxLUUFnQVNBQktBSUFRUWRxUVhoeElnRkJFR28yQWdBZ0FDQUJLUU1BSUFFcEF3Z1EzUUU1QXdBTHRCZ0RFbjhCZkFKK0l3QkJzQVJySWdza0FDQUxRUUEyQWl3Q1FDQUJ2U0laUWdCVEJFQkJBU0VRUWZrYUlSTWdBWm9pQWIwaEdRd0JDeUFFUVlBUWNRUkFRUUVoRUVIOEdpRVREQUVMUWY4YVFmb2FJQVJCQVhFaUVCc2hFeUFRUlNFVUN3SkFJQmxDZ0lDQWdJQ0FnUGovQUlOQ2dJQ0FnSUNBZ1BqL0FGRUVRQ0FBUVNBZ0FpQVFRUU5xSWdNZ0JFSC8vM3R4RUM0Z0FDQVRJQkFRS2lBQVFjY2NRWUFlSUFWQklIRWlCUnRCNmh4QmxoNGdCUnNnQVNBQllodEJBeEFxSUFCQklDQUNJQU1nQkVHQXdBQnpFQzRnQWlBRElBSWdBMG9iSVFrTUFRc2dDMEVRYWlFUkFrQUNmd0pBSUFFZ0MwRXNhaERiQWlJQklBR2dJZ0ZFQUFBQUFBQUFBQUJpQkVBZ0N5QUxLQUlzSWdaQkFXczJBaXdnQlVFZ2NpSU9RZUVBUncwQkRBTUxJQVZCSUhJaURrSGhBRVlOQWlBTEtBSXNJUXBCQmlBRElBTkJBRWdiREFFTElBc2dCa0VkYXlJS05nSXNJQUZFQUFBQUFBQUFzRUdpSVFGQkJpQURJQU5CQUVnYkN5RU1JQXRCTUdvZ0MwSFFBbW9nQ2tFQVNCc2lEU0VIQTBBZ0J3Si9JQUZFQUFBQUFBQUE4RUZqSUFGRUFBQUFBQUFBQUFCbWNRUkFJQUdyREFFTFFRQUxJZ00yQWdBZ0IwRUVhaUVISUFFZ0E3aWhSQUFBQUFCbHpjMUJvaUlCUkFBQUFBQUFBQUFBWWcwQUN3SkFJQXBCQUV3RVFDQUtJUU1nQnlFR0lBMGhDQXdCQ3lBTklRZ2dDaUVEQTBBZ0EwRWRJQU5CSFVnYklRTUNRQ0FIUVFScklnWWdDRWtOQUNBRHJTRWFRZ0FoR1FOQUlBWWdHVUwvLy8vL0Q0TWdCalVDQUNBYWhud2lHU0FaUW9DVTY5d0RnQ0laUW9DVTY5d0RmbjArQWdBZ0JrRUVheUlHSUFoUERRQUxJQm1uSWdaRkRRQWdDRUVFYXlJSUlBWTJBZ0FMQTBBZ0NDQUhJZ1pKQkVBZ0JrRUVheUlIS0FJQVJRMEJDd3NnQ3lBTEtBSXNJQU5ySWdNMkFpd2dCaUVISUFOQkFFb05BQXNMSUF4QkdXcEJDVzRoQnlBRFFRQklCRUFnQjBFQmFpRVNJQTVCNWdCR0lSVURRRUVBSUFOcklnTkJDU0FEUVFsSUd5RUpBa0FnQmlBSVN3UkFRWUNVNjl3RElBbDJJUlpCZnlBSmRFRi9jeUVQUVFBaEF5QUlJUWNEUUNBSElBTWdCeWdDQUNJWElBbDJhallDQUNBUElCZHhJQlpzSVFNZ0IwRUVhaUlISUFaSkRRQUxJQWdvQWdBaEJ5QURSUTBCSUFZZ0F6WUNBQ0FHUVFScUlRWU1BUXNnQ0NnQ0FDRUhDeUFMSUFzb0Fpd2dDV29pQXpZQ0xDQU5JQWdnQjBWQkFuUnFJZ2dnRlJzaUJ5QVNRUUowYWlBR0lBWWdCMnRCQW5VZ0Vrb2JJUVlnQTBFQVNBMEFDd3RCQUNFREFrQWdCaUFJVFEwQUlBMGdDR3RCQW5WQkNXd2hBMEVLSVFjZ0NDZ0NBQ0lKUVFwSkRRQURRQ0FEUVFGcUlRTWdDU0FIUVFwc0lnZFBEUUFMQ3lBTVFRQWdBeUFPUWVZQVJodHJJQTVCNXdCR0lBeEJBRWR4YXlJSElBWWdEV3RCQW5WQkNXeEJDV3RJQkVCQkJFR2tBaUFLUVFCSUd5QUxhaUFIUVlESUFHb2lDVUVKYlNJUFFRSjBha0hRSDJzaENrRUtJUWNnQ1NBUFFRbHNheUlKUVFkTUJFQURRQ0FIUVFwc0lRY2dDVUVCYWlJSlFRaEhEUUFMQ3dKQUlBb29BZ0FpRWlBU0lBZHVJaFVnQjJ4cklnbEZJQXBCQkdvaUR5QUdSbkVOQUFKQUlCVkJBWEZGQkVCRUFBQUFBQUFBUUVNaEFTQUhRWUNVNjl3RFJ5QUlJQXBQY2cwQklBcEJCR3N0QUFCQkFYRkZEUUVMUkFFQUFBQUFBRUJESVFFTFJBQUFBQUFBQU9BL1JBQUFBQUFBQVBBL1JBQUFBQUFBQVBnL0lBWWdEMFliUkFBQUFBQUFBUGcvSUFrZ0IwRUJkaUlQUmhzZ0NTQVBTUnNoR0FKQUlCUU5BQ0FUTFFBQVFTMUhEUUFnR0pvaEdDQUJtaUVCQ3lBS0lCSWdDV3NpQ1RZQ0FDQUJJQmlnSUFGaERRQWdDaUFISUFscUlnTTJBZ0FnQTBHQWxPdmNBMDhFUUFOQUlBcEJBRFlDQUNBSUlBcEJCR3NpQ2tzRVFDQUlRUVJySWdoQkFEWUNBQXNnQ2lBS0tBSUFRUUZxSWdNMkFnQWdBMEgvayt2Y0Ewc05BQXNMSUEwZ0NHdEJBblZCQ1d3aEEwRUtJUWNnQ0NnQ0FDSUpRUXBKRFFBRFFDQURRUUZxSVFNZ0NTQUhRUXBzSWdkUERRQUxDeUFLUVFScUlnY2dCaUFHSUFkTEd5RUdDd05BSUFZaUJ5QUlUU0lKUlFSQUlBZEJCR3NpQmlnQ0FFVU5BUXNMQWtBZ0RrSG5BRWNFUUNBRVFRaHhJUW9NQVFzZ0EwRi9jMEYvSUF4QkFTQU1HeUlHSUFOS0lBTkJlMHB4SWdvYklBWnFJUXhCZjBGK0lBb2JJQVZxSVFVZ0JFRUljU0lLRFFCQmR5RUdBa0FnQ1EwQUlBZEJCR3NvQWdBaURrVU5BRUVLSVFsQkFDRUdJQTVCQ25BTkFBTkFJQVlpQ2tFQmFpRUdJQTRnQ1VFS2JDSUpjRVVOQUFzZ0NrRi9jeUVHQ3lBSElBMXJRUUoxUVFsc0lRa2dCVUZmY1VIR0FFWUVRRUVBSVFvZ0RDQUdJQWxxUVFscklnWkJBQ0FHUVFCS0d5SUdJQVlnREVvYklRd01BUXRCQUNFS0lBd2dBeUFKYWlBR2FrRUpheUlHUVFBZ0JrRUFTaHNpQmlBR0lBeEtHeUVNQzBGL0lRa2dERUg5Ly8vL0IwSCsvLy8vQnlBS0lBeHlJZ1liU2cwQklBd2dCa0VBUnlJU2FrRUJhaUVPQWtBZ0JVRmZjU0lVUWNZQVJnUkFJQU5CLy8vLy93Y2dEbXRLRFFNZ0EwRUFJQU5CQUVvYklRWU1BUXNnRVNBRElBTkJIM1VpQm1vZ0JuT3RJQkVRandFaUJtdEJBVXdFUUFOQUlBWkJBV3NpQmtFd09nQUFJQkVnQm10QkFrZ05BQXNMSUFaQkFtc2lEeUFGT2dBQUlBWkJBV3RCTFVFcklBTkJBRWdiT2dBQUlCRWdEMnNpQmtILy8vLy9CeUFPYTBvTkFnc2dCaUFPYWlJRElCQkIvLy8vL3dkelNnMEJJQUJCSUNBQ0lBTWdFR29pQlNBRUVDNGdBQ0FUSUJBUUtpQUFRVEFnQWlBRklBUkJnSUFFY3hBdUFrQUNRQUpBSUJSQnhnQkdCRUFnQzBFUWFpSUdRUWh5SVFNZ0JrRUpjaUVLSUEwZ0NDQUlJQTFMR3lJSklRZ0RRQ0FJTlFJQUlBb1Fqd0VoQmdKQUlBZ2dDVWNFUUNBR0lBdEJFR3BORFFFRFFDQUdRUUZySWdaQk1Eb0FBQ0FHSUF0QkVHcExEUUFMREFFTElBWWdDa2NOQUNBTFFUQTZBQmdnQXlFR0N5QUFJQVlnQ2lBR2F4QXFJQWhCQkdvaUNDQU5UUTBBQzBFQUlRWWdFa1VOQWlBQVFmQWVRUUVRS2lBTVFRQk1JQWNnQ0UxeURRRURRQ0FJTlFJQUlBb1Fqd0VpQmlBTFFSQnFTd1JBQTBBZ0JrRUJheUlHUVRBNkFBQWdCaUFMUVJCcVN3MEFDd3NnQUNBR0lBeEJDU0FNUVFsSUd4QXFJQXhCQ1dzaEJpQUlRUVJxSWdnZ0IwOE5BeUFNUVFsS0lRTWdCaUVNSUFNTkFBc01BZ3NDUUNBTVFRQklEUUFnQnlBSVFRUnFJQWNnQ0VzYklRa2dDMEVRYWlJRFFRbHlJUTBnQTBFSWNpRURJQWdoQndOQUlBMGdCelVDQUNBTkVJOEJJZ1pHQkVBZ0MwRXdPZ0FZSUFNaEJnc0NRQ0FISUFoSEJFQWdCaUFMUVJCcVRRMEJBMEFnQmtFQmF5SUdRVEE2QUFBZ0JpQUxRUkJxU3cwQUN3d0JDeUFBSUFaQkFSQXFJQVpCQVdvaEJrRUFJQXhCQUV3Z0Noc05BQ0FBUWZBZVFRRVFLZ3NnQUNBR0lBMGdCbXNpQmlBTUlBWWdERWdiRUNvZ0RDQUdheUVNSUFkQkJHb2lCeUFKVHcwQklBeEJBRTROQUFzTElBQkJNQ0FNUVJKcVFSSkJBQkF1SUFBZ0R5QVJJQTlyRUNvTUFnc2dEQ0VHQ3lBQVFUQWdCa0VKYWtFSlFRQVFMZ3NnQUVFZ0lBSWdCU0FFUVlEQUFITVFMaUFDSUFVZ0FpQUZTaHNoQ1F3QkN5QVRJQVZCR25SQkgzVkJDWEZxSVF3Q1FDQURRUXRMRFFCQkRDQURheUVHUkFBQUFBQUFBREJBSVJnRFFDQVlSQUFBQUFBQUFEQkFvaUVZSUFaQkFXc2lCZzBBQ3lBTUxRQUFRUzFHQkVBZ0dDQUJtaUFZb2FDYUlRRU1BUXNnQVNBWW9DQVlvU0VCQ3lBUklBc29BaXdpQmlBR1FSOTFJZ1pxSUFaenJTQVJFSThCSWdaR0JFQWdDMEV3T2dBUElBdEJEMm9oQmdzZ0VFRUNjaUVLSUFWQklIRWhDQ0FMS0FJc0lRY2dCa0VDYXlJTklBVkJEMm82QUFBZ0JrRUJhMEV0UVNzZ0IwRUFTQnM2QUFBZ0JFRUljU0VHSUF0QkVHb2hCd05BSUFjaUJRSi9JQUdaUkFBQUFBQUFBT0JCWXdSQUlBR3FEQUVMUVlDQWdJQjRDeUlIUVpBeWFpMEFBQ0FJY2pvQUFFRUJJQU5CQUVvZ0FTQUh0NkZFQUFBQUFBQUFNRUNpSWdGRUFBQUFBQUFBQUFCaWNpQUdHMFVnQlVFQmFpSUhJQXRCRUdwclFRRkhja1VFUUNBRlFTNDZBQUVnQlVFQ2FpRUhDeUFCUkFBQUFBQUFBQUFBWWcwQUMwRi9JUWxCL2YvLy93Y2dDaUFSSUExcklnVnFJZ1pySUFOSURRQWdBRUVnSUFJZ0JnSi9Ba0FnQTBVTkFDQUhJQXRCRUdwcklnaEJBbXNnQTA0TkFDQURRUUpxREFFTElBY2dDMEVRYW1zaUNBc2lCMm9pQXlBRUVDNGdBQ0FNSUFvUUtpQUFRVEFnQWlBRElBUkJnSUFFY3hBdUlBQWdDMEVRYWlBSUVDb2dBRUV3SUFjZ0NHdEJBRUVBRUM0Z0FDQU5JQVVRS2lBQVFTQWdBaUFESUFSQmdNQUFjeEF1SUFJZ0F5QUNJQU5LR3lFSkN5QUxRYkFFYWlRQUlBa0w1UVVCQ0g4akFFSFFBV3NpQmlRQUlBTVFHU0VISUFZZ0FqWUN2QUVnQmlBSE5nSzRBVUhUOHJDc0EwSFBrKzJMQVNBRlFSQkdHMEhQaysyTEFTQURRU0JHR3lFTElBWkJJR29oREFOQVFhaUVuTlI2SVFJRFFBSkFBa0FDUUFKQUFrQUNRQUpBSUFKQnpwUHRpd0ZNQkVBZ0FrR1Bwc3pxZlV3RVFDQUNRZGZRaGFSNlJnMERJQUpCeHFXUnQzcEdEUVFnQWtHb2hKelVla2NOQ1NBR0lBbzJBc1FCUVpDbXpPcDlRWU9POFljRklBWW9Bc1FCSUFOSUd5RUNEQWtMSUFKQmtLYk02bjFHRFFFZ0FrSEw5OWhSUmcwSElBSkJyc3ZhZTBjTkNDQUdLQUxNQVVHUWdRRnFJQVlvQXJnQklBWW9Bc3dCYWkwQUFEb0FBQ0FHS0FMTUFVRUJhaUVIUWNINStOTUJJUUlNQ0FzZ0FrR0NqdkdIQlV3RVFDQUNRYytUN1lzQlJnMEVJQUpCd2ZuNDB3RkdEUVVnQWtIVDhyQ3NBMGNOQ0NBR0lBWkJxQUZxSWdJMkFzQUJJQVlvQXNBQkdpQUNJQVlvQXJnQkVGUWFRZGZRaGFSNklRSkJBQ0VJREFnTElBSkJnNDd4aHdWSEJFQWdBa0dEeHZlWkJVWU5CaUFDUWRPeHl2NEhSdzBJSUFZb0FyZ0JFQkFnQmtIUUFXb2tBQThMUWJTQkFTQUZOZ0lBSUFBZ0FTQUVJQVlvQXJnQklBTVE1UUVnQ3lFQ0RBY0xJQVlvQXJnQklBWW9Bc1FCYWlBR0tBSzhBU0FHS0FMRUFXb3RBQUE2QUFBZ0JpZ0N4QUVpQWtFQmRFRUNjU0FDUVFGemFpRUtEQWNMSUFZZ0NEWUN5QUZCeHFXUnQzcEJnOGIzbVFVZ0JpZ0N5QUVnQlVnYklRSU1CUXNnQmtFWWFpSU5FTmNDSVFJZ0RCRE1BaUVJSUFaQkNHb2lDU0FHUWFnQmFpQUdLQUxJQVVFQmRCREtBaUFJSUFrUXlBSWdDUkFLR2lBTklBa1ErUUlnQmlnQ3lBRkJrSUVCYWlBR0tBSUlPZ0FBSUFJUWpBRWFJQVlvQXNnQklnSkJBWFJCQW5FZ0FrRUJjMm9oQ0VIWDBJV2tlaUVDREFRTFFjSDUrTk1CSVFKQkFDRUhEQU1MSUFZZ0J6WUN6QUZCcnN2YWUwSEw5OWhSSUFZb0Fzd0JJQVZJR3lFQ0RBSUxJQVpCcUFGcUVBb2FJQVlvQXNBQkdndEIwN0hLL2djaEFnd0FDd0FMQUF0VUFRSi9JQUVnQUNnQ1ZDSUJJQUZCQUNBQ1FZQUNhaUlERU53QklnUWdBV3NnQXlBRUd5SURJQUlnQWlBRFN4c2lBaEJDR2lBQUlBRWdBMm9pQXpZQ1ZDQUFJQU0yQWdnZ0FDQUJJQUpxTmdJRUlBSUw5d0VCQTM4Z0FFVUVRRUd3Z1FFb0FnQWhBQ01BUVNCcklnUWtBRUh3Z0FFZ0FCQzlBaUlGQkg4Z0JDQURLUUFBTndNUUlBUWdBeWtBQ0RjREdDQUNCRUFEUUNBRklBUkJFR29nQkJDbUFTQUNRUkFnQWtFUVNSc2hBMEVBSVFBRFFDQUFJQUZxSWdZZ0JpMEFBQ0FBSUFScUxRQUFjem9BQUNBQVFRRnFJZ0FnQTBjTkFBc2dBaUFEYXlFQ0lBRWdBMm9oQVVFUElRQURRQUpBSUFBaUF5QUVRUkJxYWlJQUlBQXRBQUJCQVdvaUFEb0FBQ0FBUWY4QmNRMEFJQU5CQVdzaEFDQUREUUVMQ3lBQ0RRQUxDeUFGRUJCQkFBVkJmd3NhSUFSQklHb2tBQThMUVpDQkFVRzBnUUVvQWdBZ0F5QUJJQUlRNVFFTENRQWdBQkRoQVJBUUN4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUTRnRUxFd0FnQUNBQUtBSUFRUXhyS0FJQWFoQ01BUXNLQUNBQVFRaHJFT0lCQ3dvQUlBQkJDR3NRakFFTEdnQWdBQ0FCSUFJcEF3aEJBQ0FESUFFb0FnQW9BaEFSRlFBTENRQWdBQkRSQVJBUUM1UUNBZ0YvQTM0Z0FTZ0NHQ0FCS0FJc1N3UkFJQUVnQVNnQ0dEWUNMQXRDZnlFSUFrQWdCRUVZY1NJRlJTQUZRUmhHSUFOQkFVWnhjZzBBSUFFb0Fpd2lCUVJBSUFVZ0FVRWdhaEFOYTZ3aEJnc0NRQUpBQWtBZ0F3NERBZ0FCQXdzZ0JFRUljUVJBSUFFb0Fnd2dBU2dDQ0d1c0lRY01BZ3NnQVNnQ0dDQUJLQUlVYTZ3aEJ3d0JDeUFHSVFjTElBSWdCM3dpQWtJQVV5QUNJQVpWY2cwQUlBUkJDSEVoQXdKQUlBSlFEUUFnQXdSQUlBRW9BZ3hGRFFJTElBUkJFSEZGRFFBZ0FTZ0NHRVVOQVFzZ0F3UkFJQUVnQVNnQ0NDQUJLQUlJSUFLbmFpQUJLQUlzRUpvQkN5QUVRUkJ4QkVBZ0FTQUJLQUlVSUFFb0Fod1E4Z0lnQVNBQ3B4RHhBZ3NnQWlFSUN5QUFJQWdRdkFFTGd3SUJDWDhqQUVFUWF5SURKQUFDZnlBQlFYOFFYMFVFUUNBQUtBSU1JUVFnQUNnQ0NDRUZJQUFvQWhnZ0FDZ0NIRVlFUUVGL0lBQXRBREJCRUhGRkRRSWFJQUFvQWhnaEJpQUFLQUlVSVFjZ0FDZ0NMQ0VJSUFBb0FoUWhDU0FBUVNCcUlnSkJBQkNoQVNBQ0lBSVFFeEFNSUFBZ0FoQU5JZ29nQWhBSklBcHFFUElDSUFBZ0JpQUhheER4QWlBQUlBQW9BaFFnQ0NBSmEybzJBaXdMSUFNZ0FDZ0NHRUVCYWpZQ0RDQUFJQU5CREdvZ0FFRXNhaEIyS0FJQU5nSXNJQUF0QURCQkNIRUVRQ0FBSUFCQklHb1FEU0lDSUFJZ0JDQUZhMm9nQUNnQ0xCQ2FBUXNnQUNBQkVKc0JFUG9DREFFTElBRVE3Z0lMSVFBZ0EwRVFhaVFBSUFBTG9BRUJBWDhnQUNnQ0dDQUFLQUlzU3dSQUlBQWdBQ2dDR0RZQ0xBc0NRQ0FBS0FJSUlBQW9BZ3hQRFFBZ0FVRi9FRjhFUUNBQUlBQW9BZ2dnQUNnQ0RFRUJheUFBS0FJc0VKb0JJQUVRN2dJUEN5QUFMUUF3UVJCeFJRUkFJQUVRbXdFZ0FDZ0NERUVCYXl3QUFCQmZSUTBCQ3lBQUlBQW9BZ2dnQUNnQ0RFRUJheUFBS0FJc0VKb0JJQUVRbXdFaEFpQUFLQUlNSUFJNkFBQWdBUThMUVg4TFpBQWdBQ2dDR0NBQUtBSXNTd1JBSUFBZ0FDZ0NHRFlDTEFzQ1FDQUFMUUF3UVFoeFJRMEFJQUFvQWhBZ0FDZ0NMRWtFUUNBQUlBQW9BZ2dnQUNnQ0RDQUFLQUlzRUpvQkN5QUFLQUlNSUFBb0FoQlBEUUFnQUNnQ0RDd0FBQkJlRHd0QmZ3c0hBQ0FBS0FJSUN4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUTR3RUxDZ0FnQUVFSWF4RGpBUXNUQUNBQUlBQW9BZ0JCREdzb0FnQnFFTGdCQ3dvQUlBQkJDR3NRdUFFTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEMUFnc1RBQ0FBSUFBb0FnQkJER3NvQWdCcUVPUUJDd2tBUWJpQkFSQUtHZ3NUQUNBQUlBQW9BZ0JCREdzb0FnQnFFSU1EQ3hNQUlBQWdBQ2dDQUVFTWF5Z0NBR29RdWdFTEMrTmlJZ0JCZ0FnTG95V2xZMlBHaEh4OCtKbDNkKzZOZTN2MkRmTHkvNzFyYTlheGIyL2VWTVhGa1ZBd01HQURBUUVDcVdkbnpuMHJLMVlaL3Y3bll0Zlh0ZWFycTAyYWRuYnNSY3JLajUyQ2doOUF5Y21KaDMxOStoWDYrdS9yV1ZteXlVZEhqZ3Z3OFB2c3JhMUJaOVRVcy8yaW9sL3FyNjlGdjV5Y0kvZWtwRk9XY25Ma1c4REFtOEszdDNVYy9mM2hycE9UUFdvbUpreGFOalpzUVQ4L2ZnTDM5L1ZQek15RFhEUTBhUFNscFZFMDVlWFJDUEh4K1pOeGNlSnoyTmlyVXpFeFlqOFZGU29NQkFRSVVzZkhsV1VqSTBaZXc4T2RLQmdZTUtHV2xqY1BCUVVLdFpxYUx3a0hCdzQyRWhJa200Q0FHejNpNHQ4bTYrdk5hU2NuVHMyeXNuK2ZkWFhxR3drSkVwNkRneDEwTEN4WUxob2FOQzBiR3pheWJtN2M3bHBhdFB1Z29GdjJVbEtrVFRzN2RtSFcxcmZPczdOOWV5a3BVajdqNDkxeEx5OWVsNFNFRS9WVFU2Wm8wZEc1QUFBQUFDenQ3Y0ZnSUNCQUgvejg0OGl4c1hudFcxdTJ2bXBxMUViTHk0M1p2cjVuU3prNWN0NUtTcFRVVEV5WTZGaFlzRXJQejRWcjBOQzdLdS92eGVXcXFrOFcrL3Z0eFVORGh0ZE5UWnBWTXpObWxJV0ZFYzlGUllvUStmbnBCZ0lDQklGL2YvN3dVRkNnUkR3OGVMcWZueVhqcUtoTDgxRlJvdjZqbzEzQVFFQ0FpbytQQmEyU2tqKzhuWjBoU0RnNGNBVDE5Zkhmdkx4andiYTJkM1hhMnE5aklTRkNNQkFRSUJyLy8rVU84L1A5YmRMU3Ywek56WUVVREF3WU5STVRKaS9zN01QaFgxKytvcGVYTmN4RVJJZzVGeGN1VjhURWsvS25wMVdDZm43OFJ6MDllcXhrWk1qblhWMjZLeGtaTXBWemMrYWdZR0RBbUlHQkdkRlBUNTUvM055alppSWlSSDRxS2xTcmtKQTdnNGlJQzhwR1Jvd3A3dTdIMDdpNGF6d1VGQ2g1M3Q2bjRsNWV2QjBMQ3haMjI5dXRPK0RnMjFZeU1tUk9PanAwSGdvS0ZOdEpTWklLQmdZTWJDUWtTT1JjWExoZHdzS2ZidFBUdmUrc3JFT21ZbUxFcUpHUk9hU1ZsVEUzNU9UVGkzbDU4akxuNTlWRHlNaUxXVGMzYnJkdGJkcU1qWTBCWk5YVnNkSk9UcHpncWFsSnRHeHMyUHBXVnF3SDlQVHpKZXJxejY5bFpjcU9lbnIwNmE2dVJ4Z0lDQkRWdXJwdmlIaDQ4RzhsSlVweUxpNWNKQndjT1BHbXBsZkh0TFJ6VWNiR2x5UG82TXQ4M2QyaG5IUjA2Q0VmSHo3ZFMwdVczTDI5WVlhTGl3MkZpb29Qa0hCdzRFSStQbnpFdGJWeHFtWm16TmhJU0pBRkF3TUdBZmIyOXhJT0RoeWpZV0hDWHpVMWF2bFhWNjdRdWJscGtZYUdGMWpCd1prbkhSMDZ1WjZlSnpqaDRka1QrUGpyczVpWUt6TVJFU0s3YVduU2NOblpxWW1PamdlbmxKUXp0cHViTFNJZUhqeVNoNGNWSU9ucHlVbk96b2YvVlZXcWVDZ29VSHJmMzZXUGpJd0QrS0doV1lDSmlRa1hEUTBhMnIrL1pUSG01dGZHUWtLRXVHaG8wTU5CUVlLd21aa3BkeTB0V2hFUER4N0xzTEI3L0ZSVXFOYTd1MjA2RmhZc1VLZjBVVk5sUVg3RHBCY2FsbDRuT3N0cnF6dnhSWjBmcTFqNnJKTUQ0MHRWK2pBZzltMTJyWkYyeklnbFRBTDEvTmZsVDlmTEtzV0FSRFVtajZOaXRVbGFzZDVuRzdvbG1BN3FSZUhBL2wwQ2RTL0RFdkJNZ2FPWFJvM0crZE5yNTErUEE1V2NraFhyZW0yLzJsbFNsUzJEdnRUVElYUllLV25nU1VUSXlZNXFpY0oxZUhtTzlHcytXSm5kY2JrbnRrL2h2aGV0aVBCbXJDREp0RHJPZlJoSzMyT0NNUnJsWUROUmwwVi9VMkxnZDJTeGhLNXJ1eHlnZ2Y2VUt3ajVXR2hJY0JuOVJZK0hiTjZVdC9oN1VpUFRjNnZpQWt0eVY0OGY0eXFyVldZSEtPdXlBOEsxTDVwN3hZYWxDRGZUOG9jb01MS2x2eU82YWdNQ1hJSVc3U3NjejRxU3RIbW44UElIODZIaWFVN045TnBsMWI0RkJoOWlOTkdLL3FiRW5WTXVOS0JWODZJeTRZb0ZkZXYycERuc2d3dXE3MkJBQnA5eFhsRVFicjM1aWlFK1BRYmRscTRGUHQxR3ZlWk50WTFVa1FWZHhIRnYxQVlFL3hWUVlDVDdtQm1YNmIzV3pFTkFpWGVlMldlOVF1aXdpSXVKQnpoYkdlZmI3c2g1UndwOG9la1BRbnpKSG9UNEFBQUFBSU9HZ0FsSTdTc3lySEFSSGs1eVdtejcvdzc5VmppRkR4N1ZyajBuT1MwMlpOa1BDaUdtWEdqUlZGdWJPaTQySkxGbkNnd1A1MWVUMHBidXRKNlJteHRQeGNDQW9pRGNZV2xMZDFvV0doSWNDcnFUNHVVcW9NQkQ0Q0k4SFJjYkVnc05DUTZ0eDR2eXVhaTJMY2lwSGhTRkdmRlhUQWQxcjd2ZG1lNzlZSCtqbnlZQjk3ejFjbHpGTzJaRU5INzdXM1lwUTR2Y3hpUExhUHp0dG1QeDVMakszREhYRUlWalFrQWlseE1nRWNhRWZTUktoZmc5dTlJUk12bXViYUVweDBzdm5oM3pNTExjN0ZLR0RkRGp3WGRzRnJNcm1ibHdxZnBJbEJFaVpPbEh4SXo4cUJvLzhLRFlMSDFXNzVBeklzZE9TWWZCMFRqWi9xTEtqRFlMMUpqUGdmV21LTjU2cFNhT3Q5cWt2NjAvNUowNkxBMlNlRkNiekY5cVlrWitWTUlUamZib3VOaVFYdmM1THZXdnc0SytnRjJmZkpQUWFha3QxVyt6RWlYUE81bXN5S2Q5R0JCdVk1em9lN3M3MndsNEpzMzBHRmx1QWJlYTdLaWFUNE5sYnBYbWZ1Yi9xZ2pQdkNIbTZCWHYyWnZudXM0MmIwclVDWi9xMW55d0thK3lwREV4SXo4cU1KU2x4c0Jtb2pVM3ZFNTBwc3FDL0xEUWtPQVYyS2N6U3BnRThmZmE3RUVPVU0xL0wvYVJGNDNXVFhaTnNPOURWRTJxek44RWx1VGp0ZEdlRzRocVRMZ2ZMTUYvVVdWR0JPcGVuVjAxakFGemRJZjZMa0VMKzFvZFo3TlMwdHVTTTFZUTZSTkgxbTJNWWRlYWVneWhONDRVK0ZtSlBCUHI3aWVwempYSlliZnQ1UnpoUExGSGVsbmYwcHcvYy9KVmVjNFVHTDgzeDNQcXpmZFRXNnI5WHhSdlBkK0cyMFI0Z2ZPdnlqN0VhTGtzTkNRNFgwQ2p3bkxESFJZTUplSzhpMGs4S0VHVkRmOXhBYWc1M3JNTUNKemt0TmlRd1Zaa1lZVExlM0MyTXRWMFhHeElRbGU0MEZJSmF0VXdOcVU0djBDam5vSHoxL3Q4NHptQ215Ly9oelNPUTBURTN1bkxWSHVVTXFiQ0l6M3VUSlVMUXZyRFRnZ3VvV1lvMlNTeWRsdWlTVzJMMFNWeStQWmtobWlZRnRTa1hNeGRaYmFTYkhCSVVQM3R1ZHBlRlVaWHA0MmRoSkRZcXdDTXZOTUs5K1JZQmJpelJRYlFMQjZQeWo4UEFzR3Z2UU1CRTRwck9wRVJRVTluM09xWDhzL084TFRtYzVhc2RDTG5yVFdGNHZrMzZCeDEzMjVIOFJweEhTbkZpVyszWWc2cUdMNGIvRlkrUzhiU2VTQ2EyOEQrZU0xYTlCL2RxRE9JQjhjeHNSSVFXU2VBN0Y5Z1VYK3BHYlZLRFMzbGVwK1R5Wnp2b09BN1RhNHE5YkRJNjdzOGcxT1pZUmNyQkg2NmQ5WW00V2tVWTFVaERIMEJBZ1FJRUNCQWdCczJhVzVtYVc1cGRIa0FSbVZpY25WaGNua0FTbUZ1ZFdGeWVRQktkV3g1QUZSb2RYSnpaR0Y1QUZSMVpYTmtZWGtBVjJWa2JtVnpaR0Y1QUZOaGRIVnlaR0Y1QUZOMWJtUmhlUUJOYjI1a1lYa0FSbkpwWkdGNUFFMWhlUUFsYlM4bFpDOGxlUUF0S3lBZ0lEQllNSGdBTFRCWUt6QllJREJZTFRCNEt6QjRJREI0QUU1dmRnQlVhSFVBUVhWbmRYTjBBRTlqZEFCVFlYUUFRWEJ5QUhabFkzUnZjZ0JQWTNSdlltVnlBRTV2ZG1WdFltVnlBRk5sY0hSbGJXSmxjZ0JFWldObGJXSmxjZ0JwYjNOZlltRnpaVG82WTJ4bFlYSUFUV0Z5QUZObGNBQWxTVG9sVFRvbFV5QWxjQUJUZFc0QVNuVnVBSE4wWkRvNlpYaGpaWEIwYVc5dUFGOWZZM2hoWDJkMVlYSmtYMkZqY1hWcGNtVWdaR1YwWldOMFpXUWdjbVZqZFhKemFYWmxJR2x1YVhScFlXeHBlbUYwYVc5dUFFMXZiZ0J1WVc0QVNtRnVBRXAxYkFCc2JBQkJjSEpwYkFCR2Nta0FUV0Z5WTJnQVFYVm5BR2x1WmdBbExqQk1aZ0FsVEdZQVlXeHNiMk5oZEc5eVBGUStPanBoYkd4dlkyRjBaU2h6YVhwbFgzUWdiaWtnSjI0bklHVjRZMlZsWkhNZ2JXRjRhVzExYlNCemRYQndiM0owWldRZ2MybDZaUUIwY25WbEFGUjFaUUJtWVd4elpRQktkVzVsQUZkbFpBQkVaV01BUm1WaUFDVmhJQ1ZpSUNWa0lDVklPaVZOT2lWVElDVlpBRkJQVTBsWUFDVklPaVZOT2lWVEFFNUJUZ0JRVFFCQlRRQk1RMTlCVEV3QVRFRk9Sd0JKVGtZQVF3QXdNVEl6TkRVMk56ZzVBRU11VlZSR0xUZ0FRVUpEUkVWR1IwaEpTa3RNVFU1UFVGRlNVMVJWVmxkWVdWcGhZbU5rWldabmFHbHFhMnh0Ym05d2NYSnpkSFYyZDNoNWVqQXhNak0wTlRZM09Ea3JMd0F1QUNodWRXeHNLUUJRZFhKbElIWnBjblIxWVd3Z1puVnVZM1JwYjI0Z1kyRnNiR1ZrSVFCYmFFVkxuS3Z1UjhvRTlBVUFBQUFBQUZnUkFBQUVBQUFBQlFBQUFBWUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDd0FBQUF3QUFBQU5BQUFBRGdBQUFBOEFBQUFRQUFBQUVRQUFBQWdBQUFBQUFBQUFrQkVBQUJJQUFBQVRBQUFBK1AvLy8vai8vLytRRVFBQUZBQUFBQlVBQUFEd0R3QUFCQkFBQUFRQUFBQUFBQUFBMkJFQUFCWUFBQUFYQUFBQS9QLy8vL3ovLy8vWUVRQUFHQUFBQUJrQUFBQWdFQUFBTkJBQUFBd0FBQUFBQUFBQWNCSUFBQm9BQUFBYkFBQUFCQUFBQVBqLy8vOXdFZ0FBSEFBQUFCMEFBQUQwLy8vLzlQLy8vM0FTQUFBZUFBQUFId0FBQUZBUUFBRDhFUUFBRUJJQUFDUVNBQUE0RWdBQWVCQUFBR1FRQUFBQUFBQUExQklBQUNBQUFBQWhBQUFBQmdBQUFBY0FBQUFpQUFBQUl3QUFBQW9BQUFBTEFBQUFEQUFBQUNRQUFBQU9BQUFBSlFBQUFCQUFBQUFtQUFBQUFBQUFBQmdSQUFBbkFBQUFLQUFBQUU1VGRETmZYekk1WW1GemFXTmZhVzl6U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZBQUFBQ0Q4QUFPd1FBQUJJRkFBQVRsTjBNMTlmTWpFMVltRnphV05mYzNSeVpXRnRZblZtU1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZBQUFBQU9BK0FBQWtFUUFBVGxOME0xOWZNakV6WW1GemFXTmZhWE4wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlFBQVpEOEFBR0FSQUFBQUFBQUFBUUFBQUJnUkFBQUQ5UC8vVGxOME0xOWZNakV6WW1GemFXTmZiM04wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlFBQVpEOEFBS2dSQUFBQUFBQUFBUUFBQUJnUkFBQUQ5UC8vREFBQUFBQUFBQUNRRVFBQUVnQUFBQk1BQUFEMC8vLy85UC8vLzVBUkFBQVVBQUFBRlFBQUFBUUFBQUFBQUFBQTJCRUFBQllBQUFBWEFBQUEvUC8vLy96Ly8vL1lFUUFBR0FBQUFCa0FBQUJPVTNRelgxOHlNVFJpWVhOcFkxOXBiM04wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZGUlFCa1B3QUFRQklBQUFNQUFBQUNBQUFBa0JFQUFBSUFBQURZRVFBQUFnZ0FBRTVUZEROZlh6SXhOV0poYzJsalgzTjBjbWx1WjJKMVprbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZPVTE4NVlXeHNiMk5oZEc5eVNXTkZSVVZGQUFBQUNEOEFBSkFTQUFCWUVRQUFRQUFBQUFBQUFBQVlGQUFBS1FBQUFDb0FBQUE0QUFBQStQLy8veGdVQUFBckFBQUFMQUFBQU1ELy8vL0EvLy8vR0JRQUFDMEFBQUF1QUFBQTdCSUFBRkFUQUFDTUV3QUFvQk1BQUxRVEFBRElFd0FBZUJNQUFHUVRBQUFVRXdBQUFCTUFBRUFBQUFBQUFBQUFjQklBQUJvQUFBQWJBQUFBT0FBQUFQai8vLzl3RWdBQUhBQUFBQjBBQUFEQS8vLy93UC8vLzNBU0FBQWVBQUFBSHdBQUFFQUFBQUFBQUFBQWtCRUFBQklBQUFBVEFBQUF3UC8vLzhELy8vK1FFUUFBRkFBQUFCVUFBQUE0QUFBQUFBQUFBTmdSQUFBV0FBQUFGd0FBQU1qLy8vL0kvLy8vMkJFQUFCZ0FBQUFaQUFBQVRsTjBNMTlmTWpFNFltRnphV05mYzNSeWFXNW5jM1J5WldGdFNXTk9VMTh4TVdOb1lYSmZkSEpoYVhSelNXTkZSVTVUWHpsaGJHeHZZMkYwYjNKSlkwVkZSVVVBQUFBQUNEOEFBTkFUQUFCd0VnQUFBQUFBQUVnVUFBQXZBQUFBTUFBQUFFNVRkRE5mWHpJNGFXOXpYMkpoYzJWRkFBQUE0RDRBQURRVUFBRFJkSjRBVjUyOUtvQndVZy8vL3o0bkNnQUFBR1FBQUFEb0F3QUFFQ2NBQUtDR0FRQkFRZzhBZ0phWUFBRGg5UVVZQUFBQU5RQUFBSEVBQUFCci8vLy96dnYvLzVLLy8vOEFBQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzhBQVFJREJBVUdCd2dKLy8vLy8vLy8vd29MREEwT0R4QVJFaE1VRlJZWEdCa2FHeHdkSGg4Z0lTSWovLy8vLy8vL0Nnc01EUTRQRUJFU0V4UVZGaGNZR1JvYkhCMGVIeUFoSWlQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFFQ0JBY0RCZ1VBQUFBQUFBQUFBZ0FBd0FNQUFNQUVBQURBQlFBQXdBWUFBTUFIQUFEQUNBQUF3QWtBQU1BS0FBREFDd0FBd0F3QUFNQU5BQURBRGdBQXdBOEFBTUFRQUFEQUVRQUF3QklBQU1BVEFBREFGQUFBd0JVQUFNQVdBQURBRndBQXdCZ0FBTUFaQUFEQUdnQUF3QnNBQU1BY0FBREFIUUFBd0I0QUFNQWZBQURBQUFBQXN3RUFBTU1DQUFEREF3QUF3d1FBQU1NRkFBRERCZ0FBd3djQUFNTUlBQUREQ1FBQXd3b0FBTU1MQUFERERBQUF3dzBBQU5NT0FBREREd0FBd3dBQURMc0JBQXpEQWdBTXd3TUFETU1FQUF6YkFBQUFBTjRTQkpVQUFBQUEvLy8vLy8vLy8vLy8vLy8vZ0JZQUFCUUFBQUJETGxWVVJpMDRBRUhRTFFzQ2xCWUFRZkF0QzBkTVExOURWRmxRUlFBQUFBQk1RMTlPVlUxRlVrbERBQUJNUTE5VVNVMUZBQUFBQUFCTVExOURUMHhNUVZSRkFBQk1RMTlOVDA1RlZFRlNXUUJNUTE5TlJWTlRRVWRGVXdCQndDNExRUmtBQ2dBWkdSa0FBQUFBQlFBQUFBQUFBQWtBQUFBQUN3QUFBQUFBQUFBQUdRQVJDaGtaR1FNS0J3QUJBQWtMR0FBQUNRWUxBQUFMQUFZWkFBQUFHUmtaQUVHUkx3c2hEZ0FBQUFBQUFBQUFHUUFLRFJrWkdRQU5BQUFDQUFrT0FBQUFDUUFPQUFBT0FFSExMd3NCREFCQjF5OExGUk1BQUFBQUV3QUFBQUFKREFBQUFBQUFEQUFBREFCQmhUQUxBUkFBUVpFd0N4VVBBQUFBQkE4QUFBQUFDUkFBQUFBQUFCQUFBQkFBUWI4d0N3RVNBRUhMTUFzZUVRQUFBQUFSQUFBQUFBa1NBQUFBQUFBU0FBQVNBQUFhQUFBQUdob2FBRUdDTVFzT0dnQUFBQm9hR2dBQUFBQUFBQWtBUWJNeEN3RVVBRUcvTVFzVkZ3QUFBQUFYQUFBQUFBa1VBQUFBQUFBVUFBQVVBRUh0TVFzQkZnQkIrVEVMS1JVQUFBQUFGUUFBQUFBSkZnQUFBQUFBRmdBQUZnQUFNREV5TXpRMU5qYzRPVUZDUTBSRlJqQWFBRUd3TkF2L0FRSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBTWdBaUFDSUFJZ0FpQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUJZQVRBQk1BRXdBVEFCTUFFd0FUQUJNQUV3QVRBQk1BRXdBVEFCTUFFd0FqWUNOZ0kyQWpZQ05nSTJBallDTmdJMkFqWUJNQUV3QVRBQk1BRXdBVEFCTUFJMVFqVkNOVUkxUWpWQ05VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZCTUFFd0FUQUJNQUV3QVRBQ05ZSTFnaldDTllJMWdqV0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z1RBQk1BRXdBVEFBZ0JCc0RnTEFrQWVBRUhFUEF2NUF3RUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQWpBQUFBSkFBQUFDVUFBQUFtQUFBQUp3QUFBQ2dBQUFBcEFBQUFLZ0FBQUNzQUFBQXNBQUFBTFFBQUFDNEFBQUF2QUFBQU1BQUFBREVBQUFBeUFBQUFNd0FBQURRQUFBQTFBQUFBTmdBQUFEY0FBQUE0QUFBQU9RQUFBRG9BQUFBN0FBQUFQQUFBQUQwQUFBQStBQUFBUHdBQUFFQUFBQUJCQUFBQVFnQUFBRU1BQUFCRUFBQUFSUUFBQUVZQUFBQkhBQUFBU0FBQUFFa0FBQUJLQUFBQVN3QUFBRXdBQUFCTkFBQUFUZ0FBQUU4QUFBQlFBQUFBVVFBQUFGSUFBQUJUQUFBQVZBQUFBRlVBQUFCV0FBQUFWd0FBQUZnQUFBQlpBQUFBV2dBQUFGc0FBQUJjQUFBQVhRQUFBRjRBQUFCZkFBQUFZQUFBQUVFQUFBQkNBQUFBUXdBQUFFUUFBQUJGQUFBQVJnQUFBRWNBQUFCSUFBQUFTUUFBQUVvQUFBQkxBQUFBVEFBQUFFMEFBQUJPQUFBQVR3QUFBRkFBQUFCUkFBQUFVZ0FBQUZNQUFBQlVBQUFBVlFBQUFGWUFBQUJYQUFBQVdBQUFBRmtBQUFCYUFBQUFld0FBQUh3QUFBQjlBQUFBZmdBQUFIOEFRY0RFQUFzQ1VDUUFRZFRJQUF2NUF3RUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhnQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQWpBQUFBSkFBQUFDVUFBQUFtQUFBQUp3QUFBQ2dBQUFBcEFBQUFLZ0FBQUNzQUFBQXNBQUFBTFFBQUFDNEFBQUF2QUFBQU1BQUFBREVBQUFBeUFBQUFNd0FBQURRQUFBQTFBQUFBTmdBQUFEY0FBQUE0QUFBQU9RQUFBRG9BQUFBN0FBQUFQQUFBQUQwQUFBQStBQUFBUHdBQUFFQUFBQUJoQUFBQVlnQUFBR01BQUFCa0FBQUFaUUFBQUdZQUFBQm5BQUFBYUFBQUFHa0FBQUJxQUFBQWF3QUFBR3dBQUFCdEFBQUFiZ0FBQUc4QUFBQndBQUFBY1FBQUFISUFBQUJ6QUFBQWRBQUFBSFVBQUFCMkFBQUFkd0FBQUhnQUFBQjVBQUFBZWdBQUFGc0FBQUJjQUFBQVhRQUFBRjRBQUFCZkFBQUFZQUFBQUdFQUFBQmlBQUFBWXdBQUFHUUFBQUJsQUFBQVpnQUFBR2NBQUFCb0FBQUFhUUFBQUdvQUFBQnJBQUFBYkFBQUFHMEFBQUJ1QUFBQWJ3QUFBSEFBQUFCeEFBQUFjZ0FBQUhNQUFBQjBBQUFBZFFBQUFIWUFBQUIzQUFBQWVBQUFBSGtBQUFCNkFBQUFld0FBQUh3QUFBQjlBQUFBZmdBQUFIOEFRZERRQUF2QkFUQXhNak0wTlRZM09EbGhZbU5rWldaQlFrTkVSVVo0V0NzdGNGQnBTVzVPQUNVQUFBQUFBQ1Z3QUFBQUFDVkpPaVZOT2lWVElDVndKVWc2SlUwQUFBQWxBQUFBYlFBQUFDOEFBQUFsQUFBQVpBQUFBQzhBQUFBbEFBQUFlUUFBQUNVQUFBQlpBQUFBTFFBQUFDVUFBQUJ0QUFBQUxRQUFBQ1VBQUFCa0FBQUFKUUFBQUVrQUFBQTZBQUFBSlFBQUFFMEFBQUE2QUFBQUpRQUFBRk1BQUFBZ0FBQUFKUUFBQUhBQUFBQUFBQUFBSlFBQUFFZ0FBQUE2QUFBQUpRQUFBRTBBUWFEU0FBdlpBeVVBQUFCSUFBQUFPZ0FBQUNVQUFBQk5BQUFBT2dBQUFDVUFBQUJUQUFBQUFBQUFBS1F0QUFCSEFBQUFTQUFBQUVrQUFBQUFBQUFBQkM0QUFFb0FBQUJMQUFBQVNRQUFBRXdBQUFCTkFBQUFUZ0FBQUU4QUFBQlFBQUFBVVFBQUFGSUFBQUJUQUFBQUFBQUFBR3d0QUFCVUFBQUFWUUFBQUVrQUFBQldBQUFBVndBQUFGZ0FBQUJaQUFBQVdnQUFBRnNBQUFCY0FBQUFBQUFBQUR3dUFBQmRBQUFBWGdBQUFFa0FBQUJmQUFBQVlBQUFBR0VBQUFCaUFBQUFZd0FBQUFBQUFBQmdMZ0FBWkFBQUFHVUFBQUJKQUFBQVpnQUFBR2NBQUFCb0FBQUFhUUFBQUdvQUFBQjBBQUFBY2dBQUFIVUFBQUJsQUFBQUFBQUFBR1lBQUFCaEFBQUFiQUFBQUhNQUFBQmxBQUFBQUFBQUFDVUFBQUJ0QUFBQUx3QUFBQ1VBQUFCa0FBQUFMd0FBQUNVQUFBQjVBQUFBQUFBQUFDVUFBQUJJQUFBQU9nQUFBQ1VBQUFCTkFBQUFPZ0FBQUNVQUFBQlRBQUFBQUFBQUFDVUFBQUJoQUFBQUlBQUFBQ1VBQUFCaUFBQUFJQUFBQUNVQUFBQmtBQUFBSUFBQUFDVUFBQUJJQUFBQU9nQUFBQ1VBQUFCTkFBQUFPZ0FBQUNVQUFBQlRBQUFBSUFBQUFDVUFBQUJaQUFBQUFBQUFBQ1VBQUFCSkFBQUFPZ0FBQUNVQUFBQk5BQUFBT2dBQUFDVUFBQUJUQUFBQUlBQUFBQ1VBQUFCd0FFR0UxZ0FMbGdrc0t3QUFhd0FBQUd3QUFBQkpBQUFBVGxOME0xOWZNalpzYjJOaGJHVTFabUZqWlhSRkFBQUFDRDhBQUJRckFBQndQZ0FBQUFBQUFLd3JBQUJyQUFBQWJRQUFBRWtBQUFCdUFBQUFid0FBQUhBQUFBQnhBQUFBY2dBQUFITUFBQUIwQUFBQWRRQUFBSFlBQUFCM0FBQUFlQUFBQUhrQUFBQk9VM1F6WDE4eU5XTjBlWEJsU1hkRlJRQk9VM1F6WDE4eU1UQmpkSGx3WlY5aVlYTmxSUUFBNEQ0QUFJNHJBQUJrUHdBQWZDc0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQ2tLd0FBQWdBQUFBQUFBQUJBTEFBQWF3QUFBSG9BQUFCSkFBQUFld0FBQUh3QUFBQjlBQUFBZmdBQUFIOEFBQUNBQUFBQWdRQUFBRTVUZEROZlh6STNZMjlrWldOMmRFbGpZekV4WDE5dFluTjBZWFJsWDNSRlJRQk9VM1F6WDE4eU1USmpiMlJsWTNaMFgySmhjMlZGQUFBQUFPQStBQUFlTEFBQVpEOEFBUHdyQUFBQUFBQUFBZ0FBQUN3ckFBQUNBQUFBT0N3QUFBSUFBQUFBQUFBQXRDd0FBR3NBQUFDQ0FBQUFTUUFBQUlNQUFBQ0VBQUFBaFFBQUFJWUFBQUNIQUFBQWlBQUFBSWtBQUFCT1UzUXpYMTh5TjJOdlpHVmpkblJKUkhOak1URmZYMjFpYzNSaGRHVmZkRVZGQUFCa1B3QUFrQ3dBQUFBQUFBQUNBQUFBTENzQUFBSUFBQUE0TEFBQUFnQUFBQUFBQUFBb0xRQUFhd0FBQUlvQUFBQkpBQUFBaXdBQUFJd0FBQUNOQUFBQWpnQUFBSThBQUFDUUFBQUFrUUFBQUU1VGRETmZYekkzWTI5a1pXTjJkRWxFYVdNeE1WOWZiV0p6ZEdGMFpWOTBSVVVBQUdRL0FBQUVMUUFBQUFBQUFBSUFBQUFzS3dBQUFnQUFBRGdzQUFBQ0FBQUFUbE4wTTE5Zk1qZGpiMlJsWTNaMFNYZGpNVEZmWDIxaWMzUmhkR1ZmZEVWRkFBQUFaRDhBQUVndEFBQUFBQUFBQWdBQUFDd3JBQUFDQUFBQU9Dd0FBQUlBQUFCT1UzUXpYMTh5Tm14dlkyRnNaVFZmWDJsdGNFVUFBQUFJUHdBQWpDMEFBQ3dyQUFCT1UzUXpYMTh5TjJOdmJHeGhkR1ZKWTBWRkFBZy9BQUN3TFFBQUxDc0FBRTVUZEROZlh6STNZMjlzYkdGMFpVbDNSVVVBQ0Q4QUFOQXRBQUFzS3dBQVRsTjBNMTlmTWpWamRIbHdaVWxqUlVVQUFBQmtQd0FBOEMwQUFBQUFBQUFDQUFBQUxDc0FBQUlBQUFDa0t3QUFBZ0FBQUU1VGRETmZYekk0Ym5WdGNIVnVZM1JKWTBWRkFBQUFBQWcvQUFBa0xnQUFMQ3NBQUU1VGRETmZYekk0Ym5WdGNIVnVZM1JKZDBWRkFBQUFBQWcvQUFCSUxnQUFMQ3NBQUFBQUFBREVMUUFBa2dBQUFKTUFBQUJKQUFBQWxBQUFBSlVBQUFDV0FBQUFBQUFBQU9RdEFBQ1hBQUFBbUFBQUFFa0FBQUNaQUFBQW1nQUFBSnNBQUFBQUFBQUFnQzhBQUdzQUFBQ2NBQUFBU1FBQUFKMEFBQUNlQUFBQW53QUFBS0FBQUFDaEFBQUFvZ0FBQUtNQUFBQ2tBQUFBcFFBQUFLWUFBQUNuQUFBQVRsTjBNMTlmTWpkdWRXMWZaMlYwU1dOT1UxOHhPV2x6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgyZGxkRWxqUlVVQVRsTjBNMTlmTWpFMFgxOXVkVzFmWjJWMFgySmhjMlZGQUFEZ1BnQUFSaThBQUdRL0FBQXdMd0FBQUFBQUFBRUFBQUJnTHdBQUFBQUFBR1EvQUFEc0xnQUFBQUFBQUFJQUFBQXNLd0FBQWdBQUFHZ3ZBRUdrM3dBTHlnRlVNQUFBYXdBQUFLZ0FBQUJKQUFBQXFRQUFBS29BQUFDckFBQUFyQUFBQUswQUFBQ3VBQUFBcndBQUFMQUFBQUN4QUFBQXNnQUFBTE1BQUFCT1UzUXpYMTh5TjI1MWJWOW5aWFJKZDA1VFh6RTVhWE4wY21WaGJXSjFabDlwZEdWeVlYUnZja2wzVGxOZk1URmphR0Z5WDNSeVlXbDBjMGwzUlVWRlJVVkZBRTVUZEROZlh6STVYMTl1ZFcxZloyVjBTWGRGUlFBQUFHUS9BQUFrTUFBQUFBQUFBQUVBQUFCZ0x3QUFBQUFBQUdRL0FBRGdMd0FBQUFBQUFBSUFBQUFzS3dBQUFnQUFBRHd3QUVINDRBQUwzZ0U4TVFBQWF3QUFBTFFBQUFCSkFBQUF0UUFBQUxZQUFBQzNBQUFBdUFBQUFMa0FBQUM2QUFBQXV3QUFBTHdBQUFCT1UzUXpYMTh5TjI1MWJWOXdkWFJKWTA1VFh6RTViM04wY21WaGJXSjFabDlwZEdWeVlYUnZja2xqVGxOZk1URmphR0Z5WDNSeVlXbDBjMGxqUlVWRlJVVkZBRTVUZEROZlh6STVYMTl1ZFcxZmNIVjBTV05GUlFCT1UzUXpYMTh5TVRSZlgyNTFiVjl3ZFhSZlltRnpaVVVBQU9BK0FBQUNNUUFBWkQ4QUFPd3dBQUFBQUFBQUFRQUFBQnd4QUFBQUFBQUFaRDhBQUtnd0FBQUFBQUFBQWdBQUFDd3JBQUFDQUFBQUpERUFRZURpQUF1K0FRUXlBQUJyQUFBQXZRQUFBRWtBQUFDK0FBQUF2d0FBQU1BQUFBREJBQUFBd2dBQUFNTUFBQURFQUFBQXhRQUFBRTVUZEROZlh6STNiblZ0WDNCMWRFbDNUbE5mTVRsdmMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVVZGUlVVQVRsTjBNMTlmTWpsZlgyNTFiVjl3ZFhSSmQwVkZBQUFBWkQ4QUFOUXhBQUFBQUFBQUFRQUFBQnd4QUFBQUFBQUFaRDhBQUpBeEFBQUFBQUFBQWdBQUFDd3JBQUFDQUFBQTdERUFRYWprQUF1YUN3UXpBQURHQUFBQXh3QUFBRWtBQUFESUFBQUF5UUFBQU1vQUFBRExBQUFBekFBQUFNMEFBQURPQUFBQStQLy8vd1F6QUFEUEFBQUEwQUFBQU5FQUFBRFNBQUFBMHdBQUFOUUFBQURWQUFBQVRsTjBNMTlmTWpoMGFXMWxYMmRsZEVsalRsTmZNVGxwYzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNamwwYVcxbFgySmhjMlZGQU9BK0FBQzlNZ0FBVGxOME0xOWZNakl3WDE5MGFXMWxYMmRsZEY5algzTjBiM0poWjJWSlkwVkZBQUFBNEQ0QUFOZ3lBQUJrUHdBQWVESUFBQUFBQUFBREFBQUFMQ3NBQUFJQUFBRFFNZ0FBQWdBQUFQd3lBQUFBQ0FBQUFBQUFBUEF6QUFEV0FBQUExd0FBQUVrQUFBRFlBQUFBMlFBQUFOb0FBQURiQUFBQTNBQUFBTjBBQUFEZUFBQUErUC8vLy9BekFBRGZBQUFBNEFBQUFPRUFBQURpQUFBQTR3QUFBT1FBQUFEbEFBQUFUbE4wTTE5Zk1qaDBhVzFsWDJkbGRFbDNUbE5mTVRscGMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVVZGUlVVQVRsTjBNMTlmTWpJd1gxOTBhVzFsWDJkbGRGOWpYM04wYjNKaFoyVkpkMFZGQUFEZ1BnQUF4VE1BQUdRL0FBQ0FNd0FBQUFBQUFBTUFBQUFzS3dBQUFnQUFBTkF5QUFBQ0FBQUE2RE1BQUFBSUFBQUFBQUFBbERRQUFPWUFBQURuQUFBQVNRQUFBT2dBQUFCT1UzUXpYMTh5T0hScGJXVmZjSFYwU1dOT1UxOHhPVzl6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlNVEJmWDNScGJXVmZjSFYwUlFBQUFPQStBQUIxTkFBQVpEOEFBREEwQUFBQUFBQUFBZ0FBQUN3ckFBQUNBQUFBakRRQUFBQUlBQUFBQUFBQUZEVUFBT2tBQUFEcUFBQUFTUUFBQU9zQUFBQk9VM1F6WDE4eU9IUnBiV1ZmY0hWMFNYZE9VMTh4T1c5emRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSmQwNVRYekV4WTJoaGNsOTBjbUZwZEhOSmQwVkZSVVZGUlFBQUFBQmtQd0FBekRRQUFBQUFBQUFDQUFBQUxDc0FBQUlBQUFDTU5BQUFBQWdBQUFBQUFBQ29OUUFBYXdBQUFPd0FBQUJKQUFBQTdRQUFBTzRBQUFEdkFBQUE4QUFBQVBFQUFBRHlBQUFBOHdBQUFQUUFBQUQxQUFBQVRsTjBNMTlmTWpFd2JXOXVaWGx3ZFc1amRFbGpUR0l3UlVWRkFFNVRkRE5mWHpJeE1HMXZibVY1WDJKaGMyVkZBQUFBQU9BK0FBQ0lOUUFBWkQ4QUFHdzFBQUFBQUFBQUFnQUFBQ3dyQUFBQ0FBQUFvRFVBQUFJQUFBQUFBQUFBSERZQUFHc0FBQUQyQUFBQVNRQUFBUGNBQUFENEFBQUErUUFBQVBvQUFBRDdBQUFBL0FBQUFQMEFBQUQrQUFBQS93QUFBRTVUZEROZlh6SXhNRzF2Ym1WNWNIVnVZM1JKWTB4aU1VVkZSUUJrUHdBQUFEWUFBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQ2dOUUFBQWdBQUFBQUFBQUNRTmdBQWF3QUFBQUFCQUFCSkFBQUFBUUVBQUFJQkFBQURBUUFBQkFFQUFBVUJBQUFHQVFBQUJ3RUFBQWdCQUFBSkFRQUFUbE4wTTE5Zk1qRXdiVzl1Wlhsd2RXNWpkRWwzVEdJd1JVVkZBR1EvQUFCME5nQUFBQUFBQUFJQUFBQXNLd0FBQWdBQUFLQTFBQUFDQUFBQUFBQUFBQVEzQUFCckFBQUFDZ0VBQUVrQUFBQUxBUUFBREFFQUFBMEJBQUFPQVFBQUR3RUFBQkFCQUFBUkFRQUFFZ0VBQUJNQkFBQk9VM1F6WDE4eU1UQnRiMjVsZVhCMWJtTjBTWGRNWWpGRlJVVUFaRDhBQU9nMkFBQUFBQUFBQWdBQUFDd3JBQUFDQUFBQW9EVUFBQUlBQUFBQUFBQUFxRGNBQUdzQUFBQVVBUUFBU1FBQUFCVUJBQUFXQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjluWlhSSlkwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmWjJWMFNXTkZSUUFBNEQ0QUFJWTNBQUJrUHdBQVFEY0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQ2dOd0JCek84QUM1b0JURGdBQUdzQUFBQVhBUUFBU1FBQUFCZ0JBQUFaQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjluWlhSSmQwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmWjJWMFNYZEZSUUFBNEQ0QUFDbzRBQUJrUHdBQTVEY0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQkVPQUJCOFBBQUM1b0I4RGdBQUdzQUFBQWFBUUFBU1FBQUFCc0JBQUFjQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSlkwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNXTkZSUUFBNEQ0QUFNNDRBQUJrUHdBQWlEZ0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBRG9PQUJCbFBJQUM1b0JsRGtBQUdzQUFBQWRBUUFBU1FBQUFCNEJBQUFmQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSmQwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNYZEZSUUFBNEQ0QUFISTVBQUJrUHdBQUxEa0FBQUFBQUFBQ0FBQUFMQ3NBQUFJQUFBQ01PUUJCdVBNQUM3a0lERG9BQUdzQUFBQWdBUUFBU1FBQUFDRUJBQUFpQVFBQUl3RUFBRTVUZEROZlh6STRiV1Z6YzJGblpYTkpZMFZGQUU1VGRETmZYekl4TTIxbGMzTmhaMlZ6WDJKaGMyVkZBQUFBQU9BK0FBRHBPUUFBWkQ4QUFOUTVBQUFBQUFBQUFnQUFBQ3dyQUFBQ0FBQUFCRG9BQUFJQUFBQUFBQUFBWkRvQUFHc0FBQUFrQVFBQVNRQUFBQ1VCQUFBbUFRQUFKd0VBQUU1VGRETmZYekk0YldWemMyRm5aWE5KZDBWRkFBQUFBR1EvQUFCTU9nQUFBQUFBQUFJQUFBQXNLd0FBQWdBQUFBUTZBQUFDQUFBQVV3QUFBSFVBQUFCdUFBQUFaQUFBQUdFQUFBQjVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBZFFBQUFHVUFBQUJ6QUFBQVpBQUFBR0VBQUFCNUFBQUFBQUFBQUZjQUFBQmxBQUFBWkFBQUFHNEFBQUJsQUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBYUFBQUFIVUFBQUJ5QUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUdFQUFBQjBBQUFBZFFBQUFISUFBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUhVQUFBQnVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBQUFBQUFCVUFBQUFkUUFBQUdVQUFBQUFBQUFBVndBQUFHVUFBQUJrQUFBQUFBQUFBRlFBQUFCb0FBQUFkUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUFBQUFBQVV3QUFBR0VBQUFCMEFBQUFBQUFBQUVvQUFBQmhBQUFBYmdBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFSZ0FBQUdVQUFBQmlBQUFBY2dBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFUUUFBQUdFQUFBQnlBQUFBWXdBQUFHZ0FBQUFBQUFBQVFRQUFBSEFBQUFCeUFBQUFhUUFBQUd3QUFBQUFBQUFBVFFBQUFHRUFBQUI1QUFBQUFBQUFBRW9BQUFCMUFBQUFiZ0FBQUdVQUFBQUFBQUFBU2dBQUFIVUFBQUJzQUFBQWVRQUFBQUFBQUFCQkFBQUFkUUFBQUdjQUFBQjFBQUFBY3dBQUFIUUFBQUFBQUFBQVV3QUFBR1VBQUFCd0FBQUFkQUFBQUdVQUFBQnRBQUFBWWdBQUFHVUFBQUJ5QUFBQUFBQUFBRThBQUFCakFBQUFkQUFBQUc4QUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVJBQUFBR1VBQUFCakFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVNnQUFBR0VBQUFCdUFBQUFBQUFBQUVZQUFBQmxBQUFBWWdBQUFBQUFBQUJOQUFBQVlRQUFBSElBQUFBQUFBQUFRUUFBQUhBQUFBQnlBQUFBQUFBQUFFb0FBQUIxQUFBQWJnQUFBQUFBQUFCS0FBQUFkUUFBQUd3QUFBQUFBQUFBUVFBQUFIVUFBQUJuQUFBQUFBQUFBRk1BQUFCbEFBQUFjQUFBQUFBQUFBQlBBQUFBWXdBQUFIUUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFBQUFBQUVRQUFBQmxBQUFBWXdBQUFBQUFBQUJCQUFBQVRRQUFBQUFBQUFCUUFBQUFUUUJCL1BzQUMrSUUvRElBQU04QUFBRFFBQUFBMFFBQUFOSUFBQURUQUFBQTFBQUFBTlVBQUFBQUFBQUE2RE1BQU44QUFBRGdBQUFBNFFBQUFPSUFBQURqQUFBQTVBQUFBT1VBQUFBQUFBQUFjRDRBQUNnQkFBQXBBUUFBS2dFQUFFNVRkRE5mWHpJeE5GOWZjMmhoY21Wa1gyTnZkVzUwUlFBQUFBRGdQZ0FBVkQ0QUFFNHhNRjlmWTNoNFlXSnBkakV4Tmw5ZmMyaHBiVjkwZVhCbFgybHVabTlGQUFBQUFBZy9BQUI0UGdBQVdFQUFBRTR4TUY5ZlkzaDRZV0pwZGpFeE4xOWZZMnhoYzNOZmRIbHdaVjlwYm1adlJRQUFBQWcvQUFDb1BnQUFuRDRBQUFBQUFBRE1QZ0FBS3dFQUFDd0JBQUF0QVFBQUxnRUFBQzhCQUFBd0FRQUFNUUVBQURJQkFBQUFBQUFBVUQ4QUFDc0JBQUF6QVFBQUxRRUFBQzRCQUFBdkFRQUFOQUVBQURVQkFBQTJBUUFBVGpFd1gxOWplSGhoWW1sMk1USXdYMTl6YVY5amJHRnpjMTkwZVhCbFgybHVabTlGQUFBQUFBZy9BQUFvUHdBQXpENEFBQUFBQUFDc1B3QUFLd0VBQURjQkFBQXRBUUFBTGdFQUFDOEJBQUE0QVFBQU9RRUFBRG9CQUFCT01UQmZYMk40ZUdGaWFYWXhNakZmWDNadGFWOWpiR0Z6YzE5MGVYQmxYMmx1Wm05RkFBQUFDRDhBQUlRL0FBRE1QZ0FBQUFBQUFOdy9BQUE3QVFBQVBBRUFBRDBCQUFCVGREbGxlR05sY0hScGIyNEFBQUFBNEQ0QUFNdy9BQUFBQUFBQUNFQUFBQU1BQUFBK0FRQUFQd0VBQUZOME1URnNiMmRwWTE5bGNuSnZjZ0FJUHdBQStEOEFBTncvQUFBQUFBQUFQRUFBQUFNQUFBQkFBUUFBUHdFQUFGTjBNVEpzWlc1bmRHaGZaWEp5YjNJQUFBQUFDRDhBQUNoQUFBQUlRQUFBVTNRNWRIbHdaVjlwYm1adkFBQUFBT0ErQUFCSVFBQkI0SUFCQ3dLUWF3PT0iKSxXRD0oWkQ9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQuY3VycmVudFNjcmlwdD9kb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYzp2b2lkIDAsZnVuY3Rpb24oQSl7KEE9QXx8e30pLmluc3RhbnRpYXRlV2FzbT1mdW5jdGlvbihBLGcpe09EKEEpLnRoZW4oKGZ1bmN0aW9uKEEpe2coe2V4cG9ydHM6QS5leHBvcnRzfSl9KSl9O3ZhciBnLEksQj12b2lkIDAhPT1BP0E6e307Qi5yZWFkeT1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oQSxCKXtnPUEsST1CfSkpO3ZhciBRLEM9T2JqZWN0LmFzc2lnbih7fSxCKSxFPSIuL3RoaXMucHJvZ3JhbSIsaT0hMCx0PSIiO3Q9c2VsZi5sb2NhdGlvbi5ocmVmLFpEJiYodD1aRCksdD0wIT09dC5pbmRleE9mKCJibG9iOiIpP3Quc3Vic3RyKDAsdC5yZXBsYWNlKC9bPyNdLiovLCIiKS5sYXN0SW5kZXhPZigiLyIpKzEpOiIiLFE9ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBnLm9wZW4oIkdFVCIsQSwhMSksZy5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixnLnNlbmQobnVsbCksbmV3IFVpbnQ4QXJyYXkoZy5yZXNwb25zZSl9LEIucHJpbnR8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7dmFyIG8sZSxuPUIucHJpbnRFcnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24oQixDKSxDPW51bGwsQi5hcmd1bWVudHMmJkIuYXJndW1lbnRzLEIudGhpc1Byb2dyYW0mJihFPUIudGhpc1Byb2dyYW0pLEIucXVpdCYmQi5xdWl0LEIud2FzbUJpbmFyeSYmKG89Qi53YXNtQmluYXJ5KSxCLm5vRXhpdFJ1bnRpbWUsIm9iamVjdCIhPSgidW5kZWZpbmVkIj09dHlwZW9mIFdlYkFzc2VtYmx5PyJ1bmRlZmluZWQiOmVuKFdlYkFzc2VtYmx5KSkmJlUoIm5vIG5hdGl2ZSB3YXNtIHN1cHBvcnQgZGV0ZWN0ZWQiKTt2YXIgcixhLHMsYyxoLEQ9ITEseT0idW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVyP25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMDtmdW5jdGlvbiBmKEEsZyl7cmV0dXJuIEE/ZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj1nK0ksUT1nO0FbUV0mJiEoUT49Qik7KSsrUTtpZihRLWc+MTYmJkEuc3ViYXJyYXkmJnkpcmV0dXJuIHkuZGVjb2RlKEEuc3ViYXJyYXkoZyxRKSk7Zm9yKHZhciBDPSIiO2c8UTspe3ZhciBFPUFbZysrXTtpZigxMjgmRSl7dmFyIGk9NjMmQVtnKytdO2lmKDE5MiE9KDIyNCZFKSl7dmFyIHQ9NjMmQVtnKytdO2lmKChFPTIyND09KDI0MCZFKT8oMTUmRSk8PDEyfGk8PDZ8dDooNyZFKTw8MTh8aTw8MTJ8dDw8Nnw2MyZBW2crK10pPDY1NTM2KUMrPVN0cmluZy5mcm9tQ2hhckNvZGUoRSk7ZWxzZXt2YXIgbz1FLTY1NTM2O0MrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8bz4+MTAsNTYzMjB8MTAyMyZvKX19ZWxzZSBDKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZFKTw8NnxpKX1lbHNlIEMrPVN0cmluZy5mcm9tQ2hhckNvZGUoRSl9cmV0dXJuIEN9KHMsQSxnKToiIn1mdW5jdGlvbiB3KEEsZyxJLEIpe2lmKCEoQj4wKSlyZXR1cm4gMDtmb3IodmFyIFE9SSxDPUkrQi0xLEU9MDtFPEEubGVuZ3RoOysrRSl7dmFyIGk9QS5jaGFyQ29kZUF0KEUpO2lmKGk+PTU1Mjk2JiZpPD01NzM0MyYmKGk9NjU1MzYrKCgxMDIzJmkpPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytFKSksaTw9MTI3KXtpZihJPj1DKWJyZWFrO2dbSSsrXT1pfWVsc2UgaWYoaTw9MjA0Nyl7aWYoSSsxPj1DKWJyZWFrO2dbSSsrXT0xOTJ8aT4+NixnW0krK109MTI4fDYzJml9ZWxzZSBpZihpPD02NTUzNSl7aWYoSSsyPj1DKWJyZWFrO2dbSSsrXT0yMjR8aT4+MTIsZ1tJKytdPTEyOHxpPj42JjYzLGdbSSsrXT0xMjh8NjMmaX1lbHNle2lmKEkrMz49QylicmVhaztnW0krK109MjQwfGk+PjE4LGdbSSsrXT0xMjh8aT4+MTImNjMsZ1tJKytdPTEyOHxpPj42JjYzLGdbSSsrXT0xMjh8NjMmaX19cmV0dXJuIGdbSV09MCxJLVF9ZnVuY3Rpb24gdShBKXtmb3IodmFyIGc9MCxJPTA7STxBLmxlbmd0aDsrK0kpe3ZhciBCPUEuY2hhckNvZGVBdChJKTtCPj01NTI5NiYmQjw9NTczNDMmJihCPTY1NTM2KygoMTAyMyZCKTw8MTApfDEwMjMmQS5jaGFyQ29kZUF0KCsrSSkpLEI8PTEyNz8rK2c6Zys9Qjw9MjA0Nz8yOkI8PTY1NTM1PzM6NH1yZXR1cm4gZ31mdW5jdGlvbiBGKEEpe3I9QSxCLkhFQVA4PWE9bmV3IEludDhBcnJheShBKSxCLkhFQVAxNj1uZXcgSW50MTZBcnJheShBKSxCLkhFQVAzMj1jPW5ldyBJbnQzMkFycmF5KEEpLEIuSEVBUFU4PXM9bmV3IFVpbnQ4QXJyYXkoQSksQi5IRUFQVTE2PW5ldyBVaW50MTZBcnJheShBKSxCLkhFQVBVMzI9bmV3IFVpbnQzMkFycmF5KEEpLEIuSEVBUEYzMj1uZXcgRmxvYXQzMkFycmF5KEEpLEIuSEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KEEpfUIuSU5JVElBTF9NRU1PUlk7dmFyIEc9W10sZD1bXSxSPVtdLGw9MCxrPW51bGw7ZnVuY3Rpb24gVShBKXtCLm9uQWJvcnQmJkIub25BYm9ydChBKSxuKEE9IkFib3J0ZWQoIitBKyIpIiksRD0hMCxBKz0iLiBCdWlsZCB3aXRoIC1zIEFTU0VSVElPTlM9MSBmb3IgbW9yZSBpbmZvLiI7dmFyIGc9bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcihBKTt0aHJvdyBJKGcpLGd9Qi5wcmVsb2FkZWRJbWFnZXM9e30sQi5wcmVsb2FkZWRBdWRpb3M9e307dmFyIFMsTixNPSJkYXRhOmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtiYXNlNjQsIjtmdW5jdGlvbiBZKEEpe3JldHVybiBBLnN0YXJ0c1dpdGgoTSl9ZnVuY3Rpb24gSChBKXt0cnl7aWYoQT09UyYmbylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkobyk7aWYoUSlyZXR1cm4gUShBKTt0aHJvdyJib3RoIGFzeW5jIGFuZCBzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZCJ9Y2F0Y2goZyl7VShnKX19ZnVuY3Rpb24gcChBKXtmb3IoO0EubGVuZ3RoPjA7KXt2YXIgZz1BLnNoaWZ0KCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcpe3ZhciBJPWcuZnVuYzsibnVtYmVyIj09dHlwZW9mIEk/dm9pZCAwPT09Zy5hcmc/SihJKSgpOkooSSkoZy5hcmcpOkkodm9pZCAwPT09Zy5hcmc/bnVsbDpnLmFyZyl9ZWxzZSBnKEIpfX1mdW5jdGlvbiBKKEEpe3JldHVybiBoLmdldChBKX1mdW5jdGlvbiBMKEEpe3RoaXMuZXhjUHRyPUEsdGhpcy5wdHI9QS0xNix0aGlzLnNldF90eXBlPWZ1bmN0aW9uKEEpe2NbdGhpcy5wdHIrND4+Ml09QX0sdGhpcy5nZXRfdHlwZT1mdW5jdGlvbigpe3JldHVybiBjW3RoaXMucHRyKzQ+PjJdfSx0aGlzLnNldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKEEpe2NbdGhpcy5wdHIrOD4+Ml09QX0sdGhpcy5nZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbigpe3JldHVybiBjW3RoaXMucHRyKzg+PjJdfSx0aGlzLnNldF9yZWZjb3VudD1mdW5jdGlvbihBKXtjW3RoaXMucHRyPj4yXT1BfSx0aGlzLnNldF9jYXVnaHQ9ZnVuY3Rpb24oQSl7QT1BPzE6MCxhW3RoaXMucHRyKzEyPj4wXT1BfSx0aGlzLmdldF9jYXVnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9YVt0aGlzLnB0cisxMj4+MF19LHRoaXMuc2V0X3JldGhyb3duPWZ1bmN0aW9uKEEpe0E9QT8xOjAsYVt0aGlzLnB0cisxMz4+MF09QX0sdGhpcy5nZXRfcmV0aHJvd249ZnVuY3Rpb24oKXtyZXR1cm4gMCE9YVt0aGlzLnB0cisxMz4+MF19LHRoaXMuaW5pdD1mdW5jdGlvbihBLGcpe3RoaXMuc2V0X3R5cGUoQSksdGhpcy5zZXRfZGVzdHJ1Y3RvcihnKSx0aGlzLnNldF9yZWZjb3VudCgwKSx0aGlzLnNldF9jYXVnaHQoITEpLHRoaXMuc2V0X3JldGhyb3duKCExKX0sdGhpcy5hZGRfcmVmPWZ1bmN0aW9uKCl7dmFyIEE9Y1t0aGlzLnB0cj4+Ml07Y1t0aGlzLnB0cj4+Ml09QSsxfSx0aGlzLnJlbGVhc2VfcmVmPWZ1bmN0aW9uKCl7dmFyIEE9Y1t0aGlzLnB0cj4+Ml07cmV0dXJuIGNbdGhpcy5wdHI+PjJdPUEtMSwxPT09QX19ZnVuY3Rpb24gdihBKXt0cnl7cmV0dXJuIGUuZ3JvdyhBLXIuYnl0ZUxlbmd0aCs2NTUzNT4+PjE2KSxGKGUuYnVmZmVyKSwxfWNhdGNoKGcpe319WShTPSJhdy53YXNtIil8fChOPVMsUz1CLmxvY2F0ZUZpbGU/Qi5sb2NhdGVGaWxlKE4sdCk6dCtOKTt2YXIgSz17fTtmdW5jdGlvbiB4KCl7aWYoIXguc3RyaW5ncyl7dmFyIEE9e1VTRVI6IndlYl91c2VyIixMT0dOQU1FOiJ3ZWJfdXNlciIsUEFUSDoiLyIsUFdEOiIvIixIT01FOiIvaG9tZS93ZWJfdXNlciIsTEFORzooIm9iamVjdCI9PSgidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcj8idW5kZWZpbmVkIjplbihuYXZpZ2F0b3IpKSYmbmF2aWdhdG9yLmxhbmd1YWdlcyYmbmF2aWdhdG9yLmxhbmd1YWdlc1swXXx8IkMiKS5yZXBsYWNlKCItIiwiXyIpKyIuVVRGLTgiLF86RXx8Ii4vdGhpcy5wcm9ncmFtIn07Zm9yKHZhciBnIGluIEspdm9pZCAwPT09S1tnXT9kZWxldGUgQVtnXTpBW2ddPUtbZ107dmFyIEk9W107Zm9yKHZhciBnIGluIEEpSS5wdXNoKGcrIj0iK0FbZ10pO3guc3RyaW5ncz1JfXJldHVybiB4LnN0cmluZ3N9ZnVuY3Rpb24gcShBKXtyZXR1cm4gQSU0PT0wJiYoQSUxMDAhPTB8fEElNDAwPT0wKX1mdW5jdGlvbiBtKEEsZyl7Zm9yKHZhciBJPTAsQj0wO0I8PWc7SSs9QVtCKytdKTtyZXR1cm4gSX12YXIgYj1bMzEsMjksMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLFQ9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtmdW5jdGlvbiBqKEEsZyl7Zm9yKHZhciBJPW5ldyBEYXRlKEEuZ2V0VGltZSgpKTtnPjA7KXt2YXIgQj1xKEkuZ2V0RnVsbFllYXIoKSksUT1JLmdldE1vbnRoKCksQz0oQj9iOlQpW1FdO2lmKCEoZz5DLUkuZ2V0RGF0ZSgpKSlyZXR1cm4gSS5zZXREYXRlKEkuZ2V0RGF0ZSgpK2cpLEk7Zy09Qy1JLmdldERhdGUoKSsxLEkuc2V0RGF0ZSgxKSxRPDExP0kuc2V0TW9udGgoUSsxKTooSS5zZXRNb250aCgwKSxJLnNldEZ1bGxZZWFyKEkuZ2V0RnVsbFllYXIoKSsxKSl9cmV0dXJuIEl9ZnVuY3Rpb24gWihBLGcsSSxCKXt2YXIgUT1jW0IrNDA+PjJdLEM9e3RtX3NlYzpjW0I+PjJdLHRtX21pbjpjW0IrND4+Ml0sdG1faG91cjpjW0IrOD4+Ml0sdG1fbWRheTpjW0IrMTI+PjJdLHRtX21vbjpjW0IrMTY+PjJdLHRtX3llYXI6Y1tCKzIwPj4yXSx0bV93ZGF5OmNbQisyND4+Ml0sdG1feWRheTpjW0IrMjg+PjJdLHRtX2lzZHN0OmNbQiszMj4+Ml0sdG1fZ210b2ZmOmNbQiszNj4+Ml0sdG1fem9uZTpRP2YoUSk6IiJ9LEU9ZihJKSxpPXsiJWMiOiIlYSAlYiAlZCAlSDolTTolUyAlWSIsIiVEIjoiJW0vJWQvJXkiLCIlRiI6IiVZLSVtLSVkIiwiJWgiOiIlYiIsIiVyIjoiJUk6JU06JVMgJXAiLCIlUiI6IiVIOiVNIiwiJVQiOiIlSDolTTolUyIsIiV4IjoiJW0vJWQvJXkiLCIlWCI6IiVIOiVNOiVTIiwiJUVjIjoiJWMiLCIlRUMiOiIlQyIsIiVFeCI6IiVtLyVkLyV5IiwiJUVYIjoiJUg6JU06JVMiLCIlRXkiOiIleSIsIiVFWSI6IiVZIiwiJU9kIjoiJWQiLCIlT2UiOiIlZSIsIiVPSCI6IiVIIiwiJU9JIjoiJUkiLCIlT20iOiIlbSIsIiVPTSI6IiVNIiwiJU9TIjoiJVMiLCIlT3UiOiIldSIsIiVPVSI6IiVVIiwiJU9WIjoiJVYiLCIlT3ciOiIldyIsIiVPVyI6IiVXIiwiJU95IjoiJXkifTtmb3IodmFyIHQgaW4gaSlFPUUucmVwbGFjZShuZXcgUmVnRXhwKHQsImciKSxpW3RdKTt2YXIgbz1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sZT1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07ZnVuY3Rpb24gbihBLGcsSSl7Zm9yKHZhciBCPSJudW1iZXIiPT10eXBlb2YgQT9BLnRvU3RyaW5nKCk6QXx8IiI7Qi5sZW5ndGg8ZzspQj1JWzBdK0I7cmV0dXJuIEJ9ZnVuY3Rpb24gcihBLGcpe3JldHVybiBuKEEsZywiMCIpfWZ1bmN0aW9uIHMoQSxnKXtmdW5jdGlvbiBJKEEpe3JldHVybiBBPDA/LTE6QT4wPzE6MH12YXIgQjtyZXR1cm4gMD09PShCPUkoQS5nZXRGdWxsWWVhcigpLWcuZ2V0RnVsbFllYXIoKSkpJiYwPT09KEI9SShBLmdldE1vbnRoKCktZy5nZXRNb250aCgpKSkmJihCPUkoQS5nZXREYXRlKCktZy5nZXREYXRlKCkpKSxCfWZ1bmN0aW9uIGgoQSl7c3dpdGNoKEEuZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLTEsMTEsMjkpO2Nhc2UgMTpyZXR1cm4gQTtjYXNlIDI6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLDAsMik7Y2FzZSA0OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksMCwxKTtjYXNlIDU6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMwKX19ZnVuY3Rpb24gRChBKXt2YXIgZz1qKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KSxJPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSwwLDQpLEI9bmV3IERhdGUoZy5nZXRGdWxsWWVhcigpKzEsMCw0KSxRPWgoSSksQz1oKEIpO3JldHVybiBzKFEsZyk8PTA/cyhDLGcpPD0wP2cuZ2V0RnVsbFllYXIoKSsxOmcuZ2V0RnVsbFllYXIoKTpnLmdldEZ1bGxZZWFyKCktMX12YXIgeT17IiVhIjpmdW5jdGlvbihBKXtyZXR1cm4gb1tBLnRtX3dkYXldLnN1YnN0cmluZygwLDMpfSwiJUEiOmZ1bmN0aW9uKEEpe3JldHVybiBvW0EudG1fd2RheV19LCIlYiI6ZnVuY3Rpb24oQSl7cmV0dXJuIGVbQS50bV9tb25dLnN1YnN0cmluZygwLDMpfSwiJUIiOmZ1bmN0aW9uKEEpe3JldHVybiBlW0EudG1fbW9uXX0sIiVDIjpmdW5jdGlvbihBKXtyZXR1cm4gcigoQS50bV95ZWFyKzE5MDApLzEwMHwwLDIpfSwiJWQiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1fbWRheSwyKX0sIiVlIjpmdW5jdGlvbihBKXtyZXR1cm4gbihBLnRtX21kYXksMiwiICIpfSwiJWciOmZ1bmN0aW9uKEEpe3JldHVybiBEKEEpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJUciOmZ1bmN0aW9uKEEpe3JldHVybiBEKEEpfSwiJUgiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1faG91ciwyKX0sIiVJIjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2hvdXI7cmV0dXJuIDA9PWc/Zz0xMjpnPjEyJiYoZy09MTIpLHIoZywyKX0sIiVqIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21kYXkrbShxKEEudG1feWVhcisxOTAwKT9iOlQsQS50bV9tb24tMSksMyl9LCIlbSI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9tb24rMSwyKX0sIiVNIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21pbiwyKX0sIiVuIjpmdW5jdGlvbigpe3JldHVybiJcbiJ9LCIlcCI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1faG91cj49MCYmQS50bV9ob3VyPDEyPyJBTSI6IlBNIn0sIiVTIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX3NlYywyKX0sIiV0IjpmdW5jdGlvbigpe3JldHVybiJcdCJ9LCIldSI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1fd2RheXx8N30sIiVVIjpmdW5jdGlvbihBKXt2YXIgZz1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEk9MD09PWcuZ2V0RGF5KCk/ZzpqKGcsNy1nLmdldERheSgpKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYocyhJLEIpPDApe3ZhciBRPW0ocShCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09cyhJLGcpPyIwMSI6IjAwIn0sIiVWIjpmdW5jdGlvbihBKXt2YXIgZyxJPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsNCksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMSwwLDQpLFE9aChJKSxDPWgoQiksRT1qKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KTtyZXR1cm4gcyhFLFEpPDA/IjUzIjpzKEMsRSk8PTA/IjAxIjooZz1RLmdldEZ1bGxZZWFyKCk8QS50bV95ZWFyKzE5MDA/QS50bV95ZGF5KzMyLVEuZ2V0RGF0ZSgpOkEudG1feWRheSsxLVEuZ2V0RGF0ZSgpLHIoTWF0aC5jZWlsKGcvNyksMikpfSwiJXciOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3dkYXl9LCIlVyI6ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IERhdGUoQS50bV95ZWFyLDAsMSksST0xPT09Zy5nZXREYXkoKT9nOmooZywwPT09Zy5nZXREYXkoKT8xOjctZy5nZXREYXkoKSsxKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYocyhJLEIpPDApe3ZhciBRPW0ocShCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09cyhJLGcpPyIwMSI6IjAwIn0sIiV5IjpmdW5jdGlvbihBKXtyZXR1cm4oQS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJVkiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3llYXIrMTkwMH0sIiV6IjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2dtdG9mZixJPWc+PTA7cmV0dXJuIGc9KGc9TWF0aC5hYnMoZykvNjApLzYwKjEwMCtnJTYwLChJPyIrIjoiLSIpK1N0cmluZygiMDAwMCIrZykuc2xpY2UoLTQpfSwiJVoiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3pvbmV9LCIlJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fTtmb3IodmFyIHQgaW4gRT1FLnJlcGxhY2UoLyUlL2csIlwwXDAiKSx5KUUuaW5jbHVkZXModCkmJihFPUUucmVwbGFjZShuZXcgUmVnRXhwKHQsImciKSx5W3RdKEMpKSk7dmFyIHcsdSxGPU8oRT1FLnJlcGxhY2UoL1wwXDAvZywiJSIpLCExKTtyZXR1cm4gRi5sZW5ndGg+Zz8wOih3PUYsdT1BLGEuc2V0KHcsdSksRi5sZW5ndGgtMSl9ZnVuY3Rpb24gTyhBLGcsSSl7dmFyIEI9ST4wP0k6dShBKSsxLFE9bmV3IEFycmF5KEIpLEM9dyhBLFEsMCxRLmxlbmd0aCk7cmV0dXJuIGcmJihRLmxlbmd0aD1DKSxRfXZhciBXPXtoOmZ1bmN0aW9uKEEpe3JldHVybiBYKEErMTYpKzE2fSxnOmZ1bmN0aW9uKEEsZyxJKXt0aHJvdyBuZXcgTChBKS5pbml0KGcsSSksQX0sYTpmdW5jdGlvbigpe1UoIiIpfSxmOmZ1bmN0aW9uKEEsZyxJKXtzLmNvcHlXaXRoaW4oQSxnLGcrSSl9LGU6ZnVuY3Rpb24oQSl7dmFyIGc9cy5sZW5ndGgsST0yMTQ3NDgzNjQ4O2lmKChBPj4+PTApPkkpcmV0dXJuITE7Zm9yKHZhciBCLFEsQz0xO0M8PTQ7Qyo9Mil7dmFyIEU9ZyooMSsuMi9DKTtpZihFPU1hdGgubWluKEUsQSsxMDA2NjMyOTYpLHYoTWF0aC5taW4oSSwoQj1NYXRoLm1heChBLEUpKSsoKFE9NjU1MzYpLUIlUSklUSkpKXJldHVybiEwfXJldHVybiExfSxjOmZ1bmN0aW9uKEEsZyl7dmFyIEk9MDtyZXR1cm4geCgpLmZvckVhY2goKGZ1bmN0aW9uKEIsUSl7dmFyIEM9ZytJO2NbQSs0KlE+PjJdPUMsZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKWFbZysrPj4wXT1BLmNoYXJDb2RlQXQoQik7SXx8KGFbZz4+MF09MCl9KEIsQyksSSs9Qi5sZW5ndGgrMX0pKSwwfSxkOmZ1bmN0aW9uKEEsZyl7dmFyIEk9eCgpO2NbQT4+Ml09SS5sZW5ndGg7dmFyIEI9MDtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihBKXtCKz1BLmxlbmd0aCsxfSkpLGNbZz4+Ml09QiwwfSxiOmZ1bmN0aW9uKEEsZyxJLEIpe3JldHVybiBaKEEsZyxJLEIpfX07IWZ1bmN0aW9uKCl7dmFyIEE9e2E6V307ZnVuY3Rpb24gZyhBLGcpe3ZhciBJLFE9QS5leHBvcnRzO0IuYXNtPVEsRigoZT1CLmFzbS5pKS5idWZmZXIpLGg9Qi5hc20udCxJPUIuYXNtLmosZC51bnNoaWZ0KEkpLGZ1bmN0aW9uKEEpe2lmKGwtLSxCLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkIubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhsKSwwPT1sJiZrKXt2YXIgZz1rO2s9bnVsbCxnKCl9fSgpfWZ1bmN0aW9uIFEoQSl7ZyhBLmluc3RhbmNlKX1mdW5jdGlvbiBDKGcpe3JldHVybighbyYmaSYmImZ1bmN0aW9uIj09dHlwZW9mIGZldGNoP2ZldGNoKFMse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKChmdW5jdGlvbihBKXtpZighQS5vayl0aHJvdyJmYWlsZWQgdG8gbG9hZCB3YXNtIGJpbmFyeSBmaWxlIGF0ICciK1MrIiciO3JldHVybiBBLmFycmF5QnVmZmVyKCl9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7cmV0dXJuIEgoUyl9KSk6UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gSChTKX0pKSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKGcsQSl9KSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEF9KSkudGhlbihnLChmdW5jdGlvbihBKXtuKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAiK0EpLFUoQSl9KSl9aWYobCsrLEIubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmQi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKGwpLEIuaW5zdGFudGlhdGVXYXNtKXRyeXtyZXR1cm4gQi5pbnN0YW50aWF0ZVdhc20oQSxnKX1jYXRjaChFKXtyZXR1cm4gbigiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitFKSwhMX0ob3x8ImZ1bmN0aW9uIiE9dHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nfHxZKFMpfHwiZnVuY3Rpb24iIT10eXBlb2YgZmV0Y2g/QyhRKTpmZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGcsQSkudGhlbihRLChmdW5jdGlvbihBKXtyZXR1cm4gbigid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrQSksbigiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSxDKFEpfSkpfSkpKS5jYXRjaChJKX0oKSxCLl9fX3dhc21fY2FsbF9jdG9ycz1mdW5jdGlvbigpe3JldHVybihCLl9fX3dhc21fY2FsbF9jdG9ycz1CLmFzbS5qKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBWLFg9Qi5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKFg9Qi5fbWFsbG9jPUIuYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZnVuY3Rpb24gUChBKXtmdW5jdGlvbiBJKCl7Vnx8KFY9ITAsQi5jYWxsZWRSdW49ITAsRHx8KHAoZCksZyhCKSxCLm9uUnVudGltZUluaXRpYWxpemVkJiZCLm9uUnVudGltZUluaXRpYWxpemVkKCksZnVuY3Rpb24oKXtpZihCLnBvc3RSdW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBCLnBvc3RSdW4mJihCLnBvc3RSdW49W0IucG9zdFJ1bl0pO0IucG9zdFJ1bi5sZW5ndGg7KUE9Qi5wb3N0UnVuLnNoaWZ0KCksUi51bnNoaWZ0KEEpO3ZhciBBO3AoUil9KCkpKX1sPjB8fChmdW5jdGlvbigpe2lmKEIucHJlUnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgQi5wcmVSdW4mJihCLnByZVJ1bj1bQi5wcmVSdW5dKTtCLnByZVJ1bi5sZW5ndGg7KUE9Qi5wcmVSdW4uc2hpZnQoKSxHLnVuc2hpZnQoQSk7dmFyIEE7cChHKX0oKSxsPjB8fChCLnNldFN0YXR1cz8oQi5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7Qi5zZXRTdGF0dXMoIiIpfSksMSksSSgpfSksMSkpOkkoKSkpfWlmKEIuX2ZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4oQi5fZnJlZT1CLmFzbS5sKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEIuX29wZW5Cb3g9ZnVuY3Rpb24oKXtyZXR1cm4oQi5fb3BlbkJveD1CLmFzbS5tKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEIuX2Rlc2NyeXB0PWZ1bmN0aW9uKCl7cmV0dXJuKEIuX2Rlc2NyeXB0PUIuYXNtLm4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQi5fZGVzY3J5cHRLZHNLZXk9ZnVuY3Rpb24oKXtyZXR1cm4oQi5fZGVzY3J5cHRLZHNLZXk9Qi5hc20ubykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxCLl9kZXNjcnlwdEtleT1mdW5jdGlvbigpe3JldHVybihCLl9kZXNjcnlwdEtleT1CLmFzbS5wKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEIuX2Rlc2NyeXB0Q0JDPWZ1bmN0aW9uKCl7cmV0dXJuKEIuX2Rlc2NyeXB0Q0JDPUIuYXNtLnEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQi5fcmVsZWFzZT1mdW5jdGlvbigpe3JldHVybihCLl9yZWxlYXNlPUIuYXNtLnIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQi5fc2V0UmF3PWZ1bmN0aW9uKCl7cmV0dXJuKEIuX3NldFJhdz1CLmFzbS5zKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEIuaW50QXJyYXlGcm9tU3RyaW5nPU8sQi5VVEY4VG9TdHJpbmc9ZixCLmFsbG9jYXRlVVRGOD1mdW5jdGlvbihBKXt2YXIgZz11KEEpKzEsST1YKGcpO3JldHVybiBJJiZ3KEEsYSxJLGcpLEl9LGs9ZnVuY3Rpb24gQSgpe1Z8fFAoKSxWfHwoaz1BKX0sQi5ydW49UCxCLnByZUluaXQpZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBCLnByZUluaXQmJihCLnByZUluaXQ9W0IucHJlSW5pdF0pO0IucHJlSW5pdC5sZW5ndGg+MDspQi5wcmVJbml0LnBvcCgpKCk7cmV0dXJuIFAoKSxBLnJlYWR5fSksVkQ9V0QsWEQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7dmFyIGcsSTtubih0aGlzLEEpO3ZhciBCPW5ldyBQcm9taXNlKChmdW5jdGlvbihBLEIpe2c9QSxJPUJ9KSk7cmV0dXJuIEIucmVzb2x2ZT1nLEIucmVqZWN0PUksQn1yZXR1cm4gYW4oQSxbe2tleToicmVzb2x2ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7fX0se2tleToicmVqZWN0Iix2YWx1ZTpmdW5jdGlvbihBKXt9fV0pLEF9KCk7dmFyIFBELHpELF9EPTAsJEQ9MSxBeT1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtubih0aGlzLEEpfXJldHVybiBhbihBLFt7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPW5ldyBYRDtyZXR1cm4gdGhpcy5tb2R1bGU9e29uUnVudGltZUluaXRpYWxpemVkOmZ1bmN0aW9uKCl7QS5yZXNvbHZlKCl9LG9uQWJvcnQ6ZnVuY3Rpb24oZyl7QS5yZWplY3QoZyl9fSxWRCh0aGlzLm1vZHVsZSksQX19LHtrZXk6ImRlc2NyeXB0S2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MTYsQz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106X0Q7dHJ5e3ZhciBFPWZ1bmN0aW9uKEEpe2lmKCIiPT09QSlyZXR1cm4iIjtmb3IodmFyIGc9W10sST0wO0k8QS5sZW5ndGg7SSsrKWcucHVzaChBLmNoYXJDb2RlQXQoSSkpO3JldHVybiBnfShzZWxmLmF0b2IoQSkpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhOdW1iZXIoRS5sZW5ndGgpKSx0aGlzLm1vZHVsZS5IRUFQOC5zZXQoRSxJKSxnPWd8fG5ldyBVaW50OEFycmF5LGc9bmV3IFVpbnQ4QXJyYXkoZyksQj10aGlzLm1vZHVsZS5fbWFsbG9jKGcuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KGcsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0S2V5KEMsSSxFLmxlbmd0aCxRLGcuYnl0ZUxlbmd0aCxCKX1jYXRjaChpKXtjb25zb2xlLmxvZyhpKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06X0Q7dHJ5e3ZhciBDPW5ldyBVaW50OEFycmF5KGcpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLEkpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhDLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChDLEIpLHRoaXMubW9kdWxlLl9kZXNjcnlwdChRLEksQS5ieXRlTGVuZ3RoLEIpO3ZhciBFPXRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRSl9Y2F0Y2goQnkpe2NvbnNvbGUubG9nKEJ5KX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0S2RzS2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDLEU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjE2O3RyeXt2YXIgaT1uZXcgVWludDhBcnJheShnKSx0PW5ldyBVaW50OEFycmF5KEkpO0I9dGhpcy5tb2R1bGUuX21hbGxvYyhpLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChpLEIpLFE9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLFEpLEM9dGhpcy5tb2R1bGUuX21hbGxvYyh0LmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldCh0LEMpLHRoaXMubW9kdWxlLl9kZXNjcnlwdEtkc0tleShCLGkuYnl0ZUxlbmd0aCxRLEEuYnl0ZUxlbmd0aCxDLEUpfWNhdGNoKEJ5KXtjb25zb2xlLmxvZyhCeSl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShRKSx0aGlzLm1vZHVsZS5fZnJlZShDKSx0aGlzLm1vZHVsZS5fZnJlZShCKX19fSx7a2V5OiJkZXNjcnlwdENCQyIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCO3RyeXt2YXIgUT1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gST10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsSSksQj10aGlzLm1vZHVsZS5fbWFsbG9jKFEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KFEsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0Q0JDKEksQS5ieXRlTGVuZ3RoLEIpLHRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKX1jYXRjaChCeSl7Y29uc29sZS5sb2coQnkpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToic2V0UmF3Iix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTokRDt0cnl7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoQSk7Zz10aGlzLm1vZHVsZS5fbWFsbG9jKEIuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEIsZyksdGhpcy5tb2R1bGUuX3NldFJhdyhnLEIuYnl0ZUxlbmd0aCxJKX1jYXRjaChCeSl7Y29uc29sZS5sb2coQnkpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoZyl9fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vZHVsZSYmKHRoaXMubW9kdWxlPW51bGwpfX1dKSxBfSgpO2Z1bmN0aW9uIGd5KEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwyND4+PjApKyhBW2crMV08PDE2KSsoQVtnKzJdPDw4KSsoQVtnKzNdfHwwKX12YXIgSXk9e2RlY3J5cHRIZWFkZXI6ZnVuY3Rpb24oQSxnKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO1BEPW5ldyBCbix6RD1uZXcgb24oUEQudmlkZW9UcmFjayxQRC5hdWRpb1RyYWNrKTt2YXIgQj1uZXcgVWludDhBcnJheShBKSxRPVBELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPXtyZXM6bnVsbCx2aWRlb1RyYWNrOlEudmlkZW9UcmFjayxhdWRpb1RyYWNrOlEuYXVkaW9UcmFja307aWYoSSl7dmFyIEU9ekQucmVtdXgoITApLGk9RS52aWRlb0luaXRTZWdtZW50LHQ9RS5hdWRpb0luaXRTZWdtZW50O0MucmVzPWc/aTp0fXJldHVybiBDfSxkZWNyeXB0Qm9keTpmdW5jdGlvbihBLGcpe3ZhciBJPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sQj1uZXcgVWludDhBcnJheShBKSxRPVBELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPVEudmlkZW9UcmFjayxFPVEuYXVkaW9UcmFjayxpPXplLmZpbmRCb3goQixbIm1vb2YiLCJ0cmFmIiwic2VuYyJdKVswXTtpZihpKXt2YXIgdCxvLGU9Zz9udWxsPT1DfHxudWxsPT09KHQ9Qy5lbmN2KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0X0lWX3NpemU6bnVsbD09RXx8bnVsbD09PShvPUUuZW5jYSl8fHZvaWQgMD09PW8/dm9pZCAwOm8uZGVmYXVsdF9JVl9zaXplLG49emUuc2VuYyhpLGUpO2c/Qy52aWRlb1NlbmM9bi5zYW1wbGVzOkUuYXVkaW9TZW5jPW4uc2FtcGxlcyxJeS5kZWNvZGVyRGF0YShDLEUpLGcmJkMuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZyxJPUEuZGF0YTtBLnVuaXRzPVtdO2Zvcih2YXIgQj0wLFE9SS5sZW5ndGgtMTtCPFE7KWc9Z3koSSxCKSxCKz00LEEudW5pdHMucHVzaChJLnN1YmFycmF5KEIsQitnKSksQis9Z30pKX12YXIgcj17cmVzOm51bGwsdmlkZW9UcmFjazpDLGF1ZGlvVHJhY2s6RX07aWYoSSl7dmFyIGE9ekQucmVtdXgoKSxzPWEudmlkZW9TZWdtZW50LGM9YS5hdWRpb1NlZ21lbnQ7ci5yZXM9Zz9zOmN9cmV0dXJuIHJ9LGRlY29kZXJEYXRhOmZ1bmN0aW9uKEEsZyl7cmEuZGVjb2RlckFFU0NUUkRhdGEoQSxnLChmdW5jdGlvbihBLGcsSSl7cmV0dXJuIHNlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0KEEsSSl9KSl9fTtvbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcztpZigiZGVjcnlwdEJvZHkiPT09QS5kYXRhLm1ldGhvZClzZWxmLnAudGhlbigoZnVuY3Rpb24oKXt2YXIgST1BLmRhdGEuYXJncyxCPUl5LmRlY3J5cHRCb2R5KEkuYnVmLEkuaXNWaWRlbyxJLm5lZWRSZW11eCk7Zy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0Qm9keSIsaWQ6QS5kYXRhLmlkLGFyZ3M6e2RhdGE6Qn19KX0pKTtlbHNlIGlmKCJkZWNyeXB0SGVhZGVyIj09PUEuZGF0YS5tZXRob2Qpe3ZhciBJPUl5LmRlY3J5cHRIZWFkZXIoQS5kYXRhLmJ1ZixBLmRhdGEuaXNWaWRlbyk7dGhpcy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0SGVhZGVyIixpZDpBLmRhdGEuaWQsYXJnczp7ZGF0YTpJfX0pfWVsc2UgaWYoInVwZGF0ZVZhbHVlIj09PUEuZGF0YS5tZXRob2Qpe3RoaXMuY2FjaGVEYXRhPUEuZGF0YS52YWx1ZSxzZWxmLmF3TWFuYWdlcj1uZXcgQXk7dmFyIEI9c2VsZi5hd01hbmFnZXIuaW5pdCh0aGlzLmNhY2hlRGF0YS53YXNtQmluYXJ5RmlsZSk7c2VsZi5wPUIsQi50aGVuKChmdW5jdGlvbigpe3NlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0S2V5KGcuY2FjaGVEYXRhLnNlY3JldEtleSxnLmNhY2hlRGF0YS5kZWNyeXB0S2V5KX0pKX1lbHNlImRlc3Ryb3kiPT09QS5kYXRhLm1ldGhvZCYmc2VsZi5hd01hbmFnZXImJihzZWxmLmF3TWFuYWdlci5kZXN0cm95KCksc2VsZi5hd01hbmFnZXI9bnVsbCl9fSgpOwo=",Nl="undefined"!=typeof window&&window.Blob&&new Blob([atob(yl)],{type:"text/javascript;charset=utf-8"});function bl(){var e;try{if(!(e=Nl&&(window.URL||window.webkitURL).createObjectURL(Nl)))throw"";return new Worker(e)}catch(U){return new Worker("data:application/javascript;base64,"+yl)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var fl=function(){function e(){c(this,e),In(this),this.bodyId=0,this.isSwitchHeader=!1,this.workers={audio:null,video:null},this.init(),this.headerId=0,this.crypto=window.crypto||window.msCrypto}return h(e,[{key:"init",value:function(){for(var e=this,U=Object.keys(this.workers),t=0;t<U.length;t++){var n=U[t],F=new bl;F.onmessage=function(U){e.emit(U.data.method,U.data)},this.workers[n]=F}}},{key:"updateHeaderId",value:function(){var e=this.bodyId+1;this.headerId=e,this.bodyId=e}},{key:"destroy",value:function(){for(var e=Object.keys(this.workers),U=0;U<e.length;U++){var t=e[U];this.workers[t].postMessage({method:"destroy"}),this.workers[t].terminate()}this.workers={}}},{key:"getWorker",value:function(e){return this.workers[e?"video":"audio"]}},{key:"decryptHeader",value:function(e,U){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this;return this.updateHeaderId(),new Promise((function(F){var Q=Math.floor(1e3*Math.random()),l=n.getWorker(U);l&&l.postMessage({method:"decryptHeader",id:Q,buf:e,isVideo:U,needRemux:t});n.on("decryptHeader",(function e(U){U.id===Q&&(n.off("decryptHeader",e),F({data:U.args.data,vid:U.args.vid}))}))}))}},{key:"updateValue",value:function(e){for(var U=Object.keys(this.workers),t=0;t<U.length;t++){var n=U[t];this.workers[n].postMessage({method:"updateValue",value:e})}}},{key:"decryptBody",value:function(e,U){var t=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=this,F=n.bodyId+1;return n.bodyId=F,new Promise((function(Q){n.on("decryptBody",(function e(U){U.id===F&&(n.off("decryptBody",e),Q({data:U.args.data,id:F,headerId:n.headerId}))}));var l=n.getWorker(U);l&&l.postMessage({method:"decryptBody",id:F,args:{isVideo:U,id:n.workerIndex,aeskey:n.aeskey,buf:e,needRemux:t}},[e])}))}}]),e}(),vl=fl,Tl=function(){function e(U){c(this,e),this.onTick_=U,this.cancelPending_=null}return h(e,[{key:"tickAfter",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.stop();var n=!0,F=null;this.cancelPending_=function(){window.clearTimeout(F),n=!1};return F=window.setTimeout((function(){n&&(U.onTick_(),t&&t())}),1e3*e),this}},{key:"tickEvery",value:function(e){var U=this;this.tickAfter(e,(function(){U.tickEvery(e)}))}},{key:"stop",value:function(){this.cancelPending_&&(this.cancelPending_(),this.cancelPending_=null)}}]),e}(),Cl={stallSkip:.1,stallCount:3,stallTimer:1,failCount:2},Dl=function(){function e(U,t){var n=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;c(this,e),this.player=U,this.mediaElem=U.video,this.config=Object.assign({},t,Cl),this.timer=new Tl((function(){n.onGapJump()})),this.inBufferTimer=new Tl((function(){n._onBufferStallCheck()})),this.prevReadyState=this.mediaElem.readyState,this.didFireLargeGap=!1,this.seekingEventReceived=!1,this.segmentAppended=!1,this.onWaitFunc=this._onWaiting.bind(this),this.onPlayFunc=this._onPlay.bind(this),this.onPlayingFunc=this._onPlaying.bind(this),this.onPausedFunc=this._onPaused.bind(this),this.isSafari=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),this.hasPlayed=!1,this.lastVideoTime=-1,this.hasPaused=!1,this.resumeFromPaused=!1,this.stallSkip=this.config.stallSkip,this.stallCount=this.config.stallCount,this.stallTimer=this.config.stallTimer,this.reset(),this.requests=F,this.player.on(gU,(function(e){n.requests=e})),!1!==this.config.useGapJump&&this._start()}return h(e,[{key:"reset",value:function(){this.stallPoints={}}},{key:"_onWaiting",value:function(){this.onGapJump();var e=this.player.currentTime;this.onRequestFail(e)}},{key:"onRequestFail",value:function(e){if(this.requests){var U=this.requests.video,t=this.requests.audio,n=this._checkIfNextRequestFailed(e,U),F=this._checkIfNextRequestFailed(e,t);if(n.result||F.result){var Q=n.result?n.end:F.end;Q=Q<this.player.duration-.5?Q+.5:this.player.duration,this.player.currentTime=Q,this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap_req",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*Q)}})}}}},{key:"_checkIfNextRequestFailed",value:function(e,U){for(var t=0;t<U.length;t++){var n=U[t],F=n.start-e<1.5,Q=n.start<=e&&e<=n.end,l=403!==(null==n?void 0:n.response.status);if(F&&Q&&n.count>=this.config.failCount&&l)return{end:n.end,result:!0}}return{result:!1}}},{key:"_onPlay",value:function(){this.hasPlayed=!0}},{key:"_onPaused",value:function(){this.hasPaused=!0}},{key:"_onPlaying",value:function(){this.hasPaused&&(this.hasPaused=!1,this.resumeFromPaused=!0)}},{key:"_start",value:function(){this.mediaElem.addEventListener("waiting",this.onWaitFunc),this.mediaElem.addEventListener("play",this.onPlayFunc),this.mediaElem.addEventListener("playing",this.onPlayingFunc),this.mediaElem.addEventListener("pause",this.onPausedFunc),this.timer.tickEvery(.25),this.inBufferTimer.tickEvery(this.stallTimer)}},{key:"onSegmentAppend",value:function(){this.segmentAppended=!0,this.onGapJump()}},{key:"onSeeking",value:function(){this.seekingEventReceived=!0,this.segmentAppended=!1,this.didFireLargeGap=!1}},{key:"onGapJump",value:function(){if(this.mediaElem.readyState!==HTMLMediaElement.HAVE_NOTHING){if(this.mediaElem.seeking){if(!this.seekingEventReceived)return}else this.seekingEventReceived=!1;if(!this.mediaElem.paused||0===this.mediaElem.currentTime||!this.hasPlayed){this.mediaElem.readyState!==this.prevReadyState&&(this.didFireLargeGap=!1,this.prevReadyState=this.mediaElem.readyState);var U=this.mediaElem.buffered,t=this.config.smallGapLimit||.5,n=this.config.gapDetectionThreshold||.1,F=this.mediaElem.currentTime,Q=this._getIndex(U,F,n);if(null!==Q&&(0!==Q||this.segmentAppended)){var l=U.start(Q);if(!(l>this.mediaElem.duration)){var i=l-F,d=i<=t;i<e.BROWSER_GAP_TOLERANCE||d&&(this.mediaElem.currentTime=this.isSafari?l+.1:l,hU.gap("gapJump gapIndex",Q,"isGapSamll",d,"jumpLargeGap",!1,"currentTime",this.mediaElem.currentTime),.08!==l&&this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*l)}}))}}}}}},{key:"_onBufferStallCheck",value:function(){if(this.mediaElem&&!this.mediaElem.paused&&!this.mediaElem.ended&&0!==this.mediaElem.playbackRate&&0!==this.mediaElem.buffered.length){for(var e=this.mediaElem.currentTime,U=this.mediaElem.buffered,t=!1,n=[],F=0;F<U.length;F++){var Q=U.start(F),l=U.end(F);n.push({start:Q,end:l}),e<Q-.1||(e>l-.5||(t=!0))}var i=this.mediaElem.buffered,d=i.length;d>0&&this.mediaElem.duration===i.end(d-1)&&(t=!0);var r=this.mediaElem.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA;if(t&&r&&this.lastVideoTime===e&&!this.resumeFromPaused&&this.mediaElem.currentTime<this.mediaElem.duration)try{void 0===this.stallPoints[e]&&(this.stallPoints[e]=0),this.stallPoints[e]++,this.stallPoints[e]>this.stallCount&&(this.mediaElem.currentTime<this.mediaElem.duration-this.stallSkip?this.mediaElem.currentTime+=this.stallSkip:this.mediaElem.currentTime=this.mediaElem.duration,console.warn("in buffer stall, small seek",this.lastVideoTime,e,n))}catch(a){}this.lastVideoTime=e,this.resumeFromPaused=!1}}},{key:"_getIndex",value:function(e,U,t){if(!e||!e.length)return null;if(1===e.length&&e.end(0)-e.start(0)<1e-6)return null;for(var n=this._getBuffered(e),F=null,Q=0;Q<n.length;Q++){if(n[Q].start>U&&(0===Q||n[Q-1].end-U<=t)){F=Q;break}}return F}},{key:"_getBuffered",value:function(e){if(!e)return[];for(var U=[],t=0;t<e.length;t++)U.push({start:e.start(t),end:e.end(t)});return U}},{key:"destroy",value:function(){this.mediaElem.removeEventListener("waiting",this.onWaitFunc),this.mediaElem.removeEventListener("play",this.onPlayFunc),this.mediaElem.removeEventListener("playing",this.onPlayingFunc),this.mediaElem.removeEventListener("pause",this.onPausedFunc),this.timer.stop(),this.timer=null,this.inBufferTimer.stop(),this.inBufferTimer=null}}]),e}();Dl.BROWSER_GAP_TOLERANCE=.001;var gl=tt,Xl=LU,xl=function(){function e(U){var t=this;c(this,e),u(this,"startProgressTimer",(function(){t._pluginInst.info({msg:"startProgressTimer"});var e=t,U=t.player,n=t.config;if(U&&e&&e.isDashCanUse&&e.dash.mse){var F=0;e.dash.mse.progressTimer=new T,e.dash.mse.progressTimer.repeat((function(){e&&e.isDashCanUse&&e.dash.mse&&e.dash.mse.progressTimer&&(e.handleUrlExpire(),++F*(n.progressTimer||uU)/1e3>10&&(hU.log("startProgressTimer clearBuffer"),e.clearBuffer&&e.clearBuffer(),F=0),n.disableBufferBreakCheck||(U.currentTime-(e.lastCurrentTime||0)>.1||U.paused?1!==e.dashBufferBreak&&2!==e.dashBufferBreak||(hU.log("视频没有卡死,重置卡死标记"),e.dashBufferBreak=0,clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null):e.dashBufferBreak||(e.dashBufferBreak=1,hU.log("卡死计时开始!持续".concat(2e4,"毫秒则确认卡死")),e.dashBufferBreakTimer=setTimeout((function(){if(1===e.dashBufferBreak){e.dashBufferBreak=2,hU.log("确认卡死!!!");var U=document.hidden||"hidden"===document.visibilityState?We.WAITING_TIMEOUT_ERROR:We.BUFFERBREAK_ERROR;e.dash.emit("error",new wn(pe,U))}e.dashBufferBreakTimer=null}),2e4)),e.lastCurrentTime=U.currentTime),e.loadData(void 0),e.isEnded())}),n.progressTimer||uU)}})),u(this,"_onAutoDescChange",(function(e){var U=e.definition,n=e.reset,F=e.fps,Q=e.item;t.updateAutoDefiDesc(U,n,F,Q)})),this._pluginInst=U.pluginInst;var n=this._pluginInst,F=n.player,Q=n.config;this._minDuration=1/0,this.player=F,this.config=Q,this.startTimestamp=(new Date).getTime(),this.lastDefiIdx=void 0,this.__isDashCanUse=!1,this.preloadBufferThreshold=this.config.preloadBufferThreshold||.5,this.abrInstance=null,this.definitions=[];var l=this.config.autoBitrateOpts||{};this.isPlayAutoDefi=HF.getIsPlayAutoDefi(l),this.isOpenAutoDefi=!!l.isOpenAutoDefi,this.isCurrentAutoDefi=this.isOpenAutoDefi&&this.isPlayAutoDefi,this.bitrateMap={},this.curBitrate=0,this.defiIdMap={},this.definition2item={},this.bandwidth2item={},(this.preloadBufferThreshold<=0||this.preloadBufferThreshold>1)&&(this.preloadBufferThreshold=.5),this.curVideoInitSegmentIdx=-1,this.getPlayInfoTimestamp=this.startTimestamp/1e3;var i=Q.dashOpts.dynamic_video.dynamic_video_list,d=Q.dashOpts.dynamic_video.dynamic_audio_list;i&&i.length>0?this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_video_list[0].url_expire||0:d&&d.length>0&&(this.urlExpireTimestamp=Q.dashOpts.dynamic_video.dynamic_audio_list[0].url_expire||0),this.gapJumpInst=new Dl(F,Q),Ut.on(F,"addVideoBufferEnd",(function(){t.gapJumpInst.onSegmentAppend()}),"dashDestroy")}var U,t,n,F;return h(e,[{key:"initDash",value:function(e){var U=this;this.dash=e;var t=this.config;t.dashOpts.dynamic_video.dynamic_video_list.length>0&&(this.initAbr(),t.dashOpts.dynamic_video.dynamic_video_list.sort((function(e,U){return U.vheight-e.vheight})),t.dashOpts.dynamic_video.dynamic_video_list.forEach((function(e,n){e.definition===t.defaultDefinition&&(U.dash.selectedIdx=n)})),this.dashVideoEncrypted=t.dashOpts.dynamic_video.dynamic_video_list.some((function(e){return!!e.kid}))),t.dashOpts.dynamic_video.dynamic_audio_list.length>0&&(this.dashAudioEncrypted=t.dashOpts.dynamic_video.dynamic_audio_list.some((function(e){return!!e.kid})))}},{key:"isDashCanUse",get:function(){return this.__isDashCanUse},set:function(e){this.__isDashCanUse=e}},{key:"encryptedType",get:function(){return this.dashVideoEncrypted||this.dashAudioEncrypted?this.config.useEME?1:2:0}},{key:"isEnded",value:function(){var e=this.dash,U=this.player,t=this.mse,n=this.config;if("vod"===e.type)if(U.ended)hU.log("player.ended === true"),"safari"===d.Sniffer.browser&&(U.pause(),U.emit("ended"));else{var F=n.duration||U.duration||e.mpd.duration;if(U.duration&&(F=Math.min(F,U.duration)),e.mpd.duration&&(F=Math.min(F,e.mpd.duration)),F-this._minDuration<10&&(F=Math.min(F,this._minDuration)),F>0&&F-U.currentTime<1){var Q=this._findRangeForPlaybackTime(U.currentTime)||{start:0,end:0};hU.log("range",Q,"current",U.currentTime,"duration",F);var l=Math.min(Q.end,U.duration),i=U.currentTime-l>=0&&Q.end>0,r=l-U.currentTime<1&&Q.end>0;(i||r)&&(hU.log("isEnded execute, isOver",i,"isClosed",r),console.log("isEnded execute, isOver",i,"isClosed",r),t.endOfStream(),this.clearProgressTimer())}}}},{key:"dashDestroy",value:function(){var e=this.player,U=this.dash;for(var t in U&&U.mse&&U.mse.unbindMedia&&U.mse.unbindMedia(),U&&U.eme&&(U.eme.emit("destroy"),U.eme.destroy()),U&&e.errorHandler&&(U.abortLoadingTasks(),U.emit("destroy")),U&&U.mpd&&U.mpd.timer&&(clearTimeout(U.mpd.timer),U.mpd.timer=null),this.crypto&&this.crypto.destroy(),U&&U.destroy(),this.clearCheckCanplayTimer(),this.clearProgressTimer(),this.destroyAbr(),this.gapJumpInst&&this.gapJumpInst.destroy(),e&&(e.__dash__=null,this._pluginInst.unloadVideo(),"function"==typeof e.video.setMediaKeys&&e.video.setMediaKeys(null).catch((function(){}))),U)delete U[t];for(var n in this)delete this[n]}},{key:"bindComEvent",value:function(){var e=this;this._lastSeekTime=null;var U=this.player,t=this.config;Ut.on(U,"error",e.clearProgressTimer.bind(e),"dashDestroy"),Ut.on(U,"ended",e.clearProgressTimer.bind(e),"dashDestroy");Ut.on(U,"timeupdate",(function(){e.isDashCanUse&&t.dashOpts&&e.mse&&e.isEnded()}),"dashDestroy"),Ut.on(U,"ended",(function(){e.ended=!0}),"dashDestroy");var n=function(){var n=R(o().mark((function n(){var F,Q,l,i,d,r,a;return o().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(hU.log("dash onSeeking",U.currentTime,"duration",U.duration),e.isDashCanUse&&t.dashOpts){n.next=3;break}return n.abrupt("return");case 3:if(Q=e.ended,e.ended=U.ended,!Q){n.next=8;break}return this.isOpenAutoDefi?this._pluginInst.next(U.currentTime,"NEXT",U.config.DASHPlugin,!0):e.startProgressTimer(),n.abrupt("return");case 8:if(l=U.getBufferedRange(U.buffered)[1],i=0===l,hU.log("dash onseeking, bufferEnd:".concat(l,", outBuffer:").concat(i,", \n switching:").concat(e.switching,", isFull:").concat(null===(F=e.mse)||void 0===F?void 0:F.isFull(xe.VIDEO))),!i||e.switching){n.next=18;break}return e.abortLoading=!0,n.next=15,e.dash.abortLoadingTasks();case 15:hU.log("dash cancel loading task execute"),e.abort(xe.VIDEO),e.abort(xe.AUDIO);case 18:e.mse.isFull&&e.mse.isFull(xe.VIDEO)?i?e.clearBufferByTime(0,U.duration):e.clearBuffer(!0):i||e.clearBufferByTime(l,U.duration),e.abortLoading=!1,i&&e.loadData(U.currentTime,!0),d=t.useDurationBackoff||!1,r=Date.now()/1e3,a=U.duration-U.currentTime<1,d&&a&&(!this._lastSeekTime||this._lastSeekTime<r-1)&&(this._lastSeekTime=r,U.currentTime=U.duration-1),e.gapJumpInst&&e.gapJumpInst.onSeeking(),i&&e.dash.clearFailedSegment();case 27:case"end":return n.stop()}}),n,this)})));return function(){return n.apply(this,arguments)}}();Ut.on(U,"seeking",n,"dashDestroy");Ut.on(U,"seeked",(function(){hU.log("dash onSeeked",U.currentTime),e.seeking=!1,e.isEnded();var t=e.dash.mpd.isSegmentAppendFromIdx(xe.VIDEO,U.currentTime),n=e.dash.mpd.isSegmentAppendFromIdx(xe.AUDIO,U.currentTime);t&&n&&(e.mse.endOfStream(),hU.log("dash seeked endofstream"))}),"dashDestroy"),Ut.on(U,"dashDestroy",e.dashDestroy.bind(this))}},{key:"destroy",value:function(){this.player.emit("dashDestroy")}},{key:"getMetaData",value:function(){var e=this,U={};return["video","audio"].forEach((function(t){var n=e.dash.mpd.mediaList[t],F=n[n.selectedIdx];U[t]={bandwidth:F.bandwidth,mimeType:F.mimeType,codecs:F.codecs,definition:F.definition,width:F.width,height:F.height,mediaDuration:F.mediaDuration,timescale:F.timescale}})),U}},{key:"_findRangeForPlaybackTime",value:function(e){var U=this.player.buffered;if(U)for(var t=0;t<U.length;t++)if(Ut.round(U.start(t))<=Ut.round(e)&&Ut.round(U.end(t))>=Ut.round(e))return{start:Ut.round(U.start(t)),end:Ut.round(U.end(t)),rawStart:U.start(t),rawEnd:U.end(t)}}},{key:"loadData",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=this,n=this.player,F=this.config;if(!t.switching&&!t.abortLoading&&t.dash){var Q,l=F.maxBufferLength||F.preloadTime||50,i=t.dash.mpd.mediaList.video;if(i&&i.length>0&&i[i.selectedIdx]){var d=i[i.selectedIdx].bandwidth;Q=i[i.selectedIdx].definition||this.bandwidth2item[d].definition}if(F.dynamicPreloadTimeOpts&&Q){var r=F.dynamicPreloadTimeOpts[Q];r&&(l=r)}var a=!1;if(n.paused&&(a=!0),a)l=F.minBufferLength;else{var o=l;o!==(l=t.dash.getAdaptCacheBuffer(l))&&hU.log("getAdaptCacheBuffer, newTime",l,"old",o)}t.preloadTime!==l&&(t.preloadTime=l,hU.log("maxCacheTimeAudio change",l),n.emit(LF,{videoCacheTime:l,audioCacheTime:l})),e||(e=n.currentTime);var B=this._findRangeForPlaybackTime(e),s=B&&Math.ceil(Math.max(B.end,B.rawEnd))||Math.floor(e);t.dash.isOpenPCDN((null==B?void 0:B.end)||0);var R=n.duration<F.minBufferLength,c=n.currentTime+(R?n.duration/3:F.minBufferLength);F.preloadTime&&(c=n.currentTime+F.preloadTime*F.preloadBufferThreshold);var V=!1;if(this._pluginInst.preloadManager){var h=this._pluginInst.preloadManager;V=h._preloadDataList.length>0||null!==h._currentPreloadInst}s>c&&V&&n.emit(gl),s<e+F.preloadCancelTime&&V&&n.emit("PRELOAD_CANCEL"),s>e+l||t.dash.seek(s,n.currentTime,U)}}},{key:"startCheckCanplayTimer",value:function(){var e=this,U=this.player,t=this.config;if(U&&e&&!t.disableCanplayCheck){e.checkCanplayTimer=new T,e.checkCanplayTimer.repeat((function(){U&&e&&e.isDashCanUse&&e.checkCanplayTimer&&U.errorHandler&&(U.enterIsHide?(hU.log("视频已起播,重置标记"),e.dashNoCanplay=0,e.clearCheckCanplayTimer()):e.dashNoCanplay||"visible"!==document.visibilityState||(e.dashNoCanplay=1,hU.log("未起播计时开始!持续".concat(ZU,"毫秒没有获取到init分片则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===U.enterIsHide&&(U.dashState!==NU?(e.dashNoCanplay=2,hU.log("确认未获取到init分片,没有起播!!!"),e.clearCheckCanplayTimer(),U.errorHandler(new wn(pe,We.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"}))):t.disableDashNoCanplayCheck||(hU.log("未起播计时开始!持续".concat(1e4,"毫秒则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===U.enterIsHide&&(e.dashNoCanplay=2,hU.log("确认没有起播!!!"),e.clearCheckCanplayTimer(),U.errorHandler(new wn(pe,We.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"})))}),1e4)))}),ZU)))}),t.progressTimer||uU)}}},{key:"clearCheckCanplayTimer",value:function(){var e=this;e&&(e&&e.checkCanplayTimer&&(e.checkCanplayTimer.clear(),e.checkCanplayTimer=null),e.dashNoCanplayTimer&&(clearTimeout(e.dashNoCanplayTimer),e.dashNoCanplayTimer=null,e.dashNoCanplay=void 0))}},{key:"handleUrlExpire",value:function(){this._pluginInst.handleUrlExpire(this)}},{key:"clearBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],U=this,t=this.player;if(U.isDashCanUse&&U.mse){var n=t.currentTime,F=this._findClosetGop(n,!1);if(F&&U.clearBufferByTime(0,F),e){var Q=this._findClosetGop(n,!0);U.clearBufferByTime(Q,t.duration)}}}},{key:"_findClosetGop",value:function(e,U){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,n=this.dash.mpd.mediaList.video;n[n.selectedIdx]||(n=this.dash.mpd.mediaList.audio);var F=n[n.selectedIdx].mediaSegments;if(U){for(var Q=0,l=0;l<F.length;l++)if(F[l].start>e&&++Q>t)return F[l].start}else for(var i=0,d=F.length-1;d>-1;d--)if(F[d].end<e&&++i>t)return F[d].end}},{key:"clearBufferByTime",value:function(e,U){hU.log("clearBufferByTime start: ".concat(e," end: ").concat(U)),this.dash.mpd.mediaList.video.length>0&&this.removeBuffer(xe.VIDEO,e,U),this.dash.mpd.mediaList.audio.length>0&&this.removeBuffer(xe.AUDIO,e,U)}},{key:"removeBuffer",value:function(e,U,t){if(this.dash.mpd.clearBuffer(U,t,e),this.mse.remove&&!this._pluginInst.softVideo){var n=this.mse.remove(e,U,t);n&&n.catch((function(){}))}}},{key:"abort",value:function(e){this.mse&&this.mse.abort&&this.dash.mpd.mediaList[e].length>0&&this.mse.abort(e,{mediaType:e})}},{key:"clearProgressTimer",value:function(){var e=this;e&&(e.isDashCanUse&&e.dash.mse&&e.dash.mse.progressTimer&&(e.dash.mse.progressTimer.clear(),e.dash.mse.progressTimer=null),e.dashBufferBreakTimer&&(clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null,e.dashBufferBreak=void 0))}},{key:"emitMenuResolutionChange",value:function(){var e=this.player;try{var U=this.dash.mpd.mediaList.video;if(U){var t=U[U.selectedIdx],n={width:t.width,height:t.height};e.emit("RESOLUTION_UPDATE",n)}else e.emit("RESOLUTION_UPDATE")}catch(F){e.emit("RESOLUTION_UPDATE")}}},{key:"updateDashType",value:function(){var e,U=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=g.getItem(GU),n=xU;e=U||t===n.BACK?n.MAIN:n.BACK,g.setItem(GU,e)}},{key:"changeMainBackUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Xl.INIT;if(!(arguments.length>1&&void 0!==arguments[1]&&arguments[1])&&this._pluginInst){var U=this._pluginInst.config,t=g.getItem(GU),n=!1;if((e===Xl.INIT&&t===xU.BACK||e===Xl.ERR)&&(n=!0),hU.log("curDashType",t,"changeState",e,"needChange",n),n){var F=U.dashOpts.dynamic_video.main_url,Q=U.dashOpts.dynamic_video.backup_url_1;U.dashOpts.dynamic_video.main_url=Q,U.dashOpts.dynamic_video.backup_url_1=F,Ut.exchangeListUrl(U.dashOpts.dynamic_video.dynamic_video_list),Ut.exchangeListUrl(U.dashOpts.dynamic_video.dynamic_audio_list)}var l=U.dashOpts.dynamic_video.main_url;return this._checkUrlRange(l),U}}},{key:"_checkUrlRange",value:function(e){var U=this._pluginInst.config,t=U.url_range_domains||[],n=Ut.validateUrlRange(t,e);U.useUrlRange=n}},{key:"updateAutoDefiDesc",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=this.player,Q=(this.config.autoBitrateOpts||{}).autoDefiText||"auto";F.emit("ABR_AUTO_DESC_CHANGE",Q,U?void 0:e,t,n),U||this._pluginInst.setCurrentDefitionInfos("自动 ".concat(e),n)}},{key:"_abrLoadMetaSuccess",value:function(e,U,t){var n=this,F=this.dash,Q=this.config,l=F.mpd.mediaList.video;this.abrInstance&&this.abrInstance.updateBitrate(n.defiIdMap[e].bitrate),t&&(this.lastDefiIdx=e),n.selectedIdx=U,Q.defaultDefinition=l[n.selectedIdx].definition}},{key:"_startLoadInitSegment",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=new X,F=this,Q=this.dash,l=this.config,i=Q.mpd.mediaList.video,d=i.selectedIdx;return i.every((function(Q,r){if(Q.id===e){d=r,F.switching=!0;var a=i[d].wrapperData;if(a)(F.dashVideoEncrypted||F.dashAudioEncrypted)&&!1===l.useEME&&F.crypto&&F.crypto.updateHeaderId(),U._abrLoadMetaSuccess(e,d,t),n.resolve(a);else{F._makeInitSegemntRequestWithRetry("video",d,!1,(function(){F.switching=!1})).then((function(F){U._abrLoadMetaSuccess(e,d,t),n.resolve(F)})).catch((function(e){F.switching=!1,hU.log("_makeInitSegemntRequestWithRetry",JSON.stringify({msg:e.message}))}))}return!1}return!0})),n}},{key:"setCurrentDefinition",value:function(){try{var e=this.dash,U=e.mpd.mediaList.video,t=U[U.selectedIdx],n=t.definition,F=t.bandwidth;this._pluginInst.setCurrentDefitionInfos(n,this.definition2item[n]),e.updateDynamicBufferServiceBitrate(F),e.checkPCND()}catch(Q){console.log("setCurrentDefinition error",Q)}}},{key:"_emitDefinitionChangeDetailEvent",value:function(e){this.player.emit("definitionChangeDetail",e)}},{key:"switchURL",value:(F=R(o().mark((function e(U){var t,n,F,Q,l=this,i=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=!(i.length>1&&void 0!==i[1])||i[1],n=this,F=this._pluginInst.player,U=U.split("/")[U.split("/").length-1],F.curDefinition=n.definitions.filter((function(e){return e.url===U}))[0],Q=U===IF,hU.log("switchURL",U,t),!Q){e.next=13;break}return n.abrInstance.start(),n.isCurrentAutoDefi=!0,n.abrInstance.isCurrentInAbr=!0,setTimeout((function(){n.abrInstance._onTimeUpdate(null,!0)})),e.abrupt("return");case 13:n.isCurrentAutoDefi&&(n.updateAutoDefiDesc("",!0),n.isCurrentAutoDefi=!1,n.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi),t&&n.abrInstance.stop(!0),n._startLoadInitSegment(U,!0).then(function(){var e=R(o().mark((function e(U){var t,Q,i,r,a,B,s,R,c,V;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.selectedIdx===U.newIdx){e.next=3;break}return hU.log("definitionSwitchTime cancel, current:",n.selectedIdx,"self",U.newIdx),e.abrupt("return");case 3:return Q=n.dash,i=Q.mpd.mediaList.video,e.next=7,n._switch(U.newIdx);case 7:r=e.sent,a=F.currentTime,B=null,B=i[r||0].mediaSegments.find((function(e){return e.start-a>2.5})),s=!1,B||(R=i[r||0].mediaSegments,B=R[R.length-1],s=!0),c=Ut.round(B.start),V=Ut.round(F.getBufferedRange(F.buffered)[1]),hU.log("切换清晰度 curTime: ".concat(a," start: ").concat(c," end: ").concat(V)),n.setCurrentDefinition(),n.isCurrentInAbr()||(hU.log("definitionSwitchTime emit, current",n.selectedIdx),F.emit("definitionSwitchTime",c)),l._emitDefinitionChangeDetailEvent({start:c,bitrate:null===(t=i[U.newIdx])||void 0===t?void 0:t.bandwidth,mediaType:xe.VIDEO,definition:U.definition,url:U.url,fileid:U.fileId}),V-c>0&&"safari"!==d.Sniffer.browser&&!s&&(hU.log("removeBuffer: ".concat(c," ").concat(V)),n.removeBuffer(xe.VIDEO,c,V)),n._appendInitSegment("video",U,U.newIdx).then((function(){hU.log("switchURL appendInitSegment",U.newIdx),n.switching=!1,n.loadData((B.start+B.end)/2,XU),n.emitMenuResolutionChange(),n.dash.clearFailedSegment()}));case 21:case"end":return e.stop()}}),e)})));return function(U){return e.apply(this,arguments)}}());case 16:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"abrSwitchURL",value:function(e){var U=this,t=this.dash,n=this.player;e=e.split("/")[e.split("/").length-1],hU.log("abrSwitchURL",e),this._startLoadInitSegment(e).then(function(){var e=R(o().mark((function e(F){var Q,l,i,d,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=t.mpd.mediaList.video,e.next=3,U._switch(F.newIdx);case 3:if(l=e.sent,i=n.getBufferedRange(n.buffered)[1],d=Q[l].mediaSegments.find((function(e){return e.start-i>=0}))){e.next=8;break}return e.abrupt("return");case 8:r=0===i?n.currentTime:(d.start+d.end)/2,U._pluginInst.info({msg:"abr switch",data:{bd:Q[l].definition,d:Q[F.newIdx].definition,start:0===i?n.currentTime:d.start},add:!0}),U.setCurrentDefinition(),U._appendInitSegment("video",F,F.newIdx).then((function(){hU.log("abrSwitchURL appendInitSegment",F.newIdx),U.switching=!1,U.loadData(r,XU)})).catch((function(e){hU.log("appendInitSegment",e)}));case 12:case"end":return e.stop()}}),e)})));return function(U){return e.apply(this,arguments)}}()).catch((function(e){hU.log("startLoadInitSegemnt",e)}))}},{key:"_switch",value:(n=R(o().mark((function e(U){var t,n,F,Q;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.dash,n=t.mpd.mediaList.video,F=n.selectedIdx,n.selectedIdx=U,this.abort(xe.VIDEO),e.next=7,t.abortLoadingTasks();case 7:return n[F].mediaSegments.every((function(e){return e.downloaded=vU,!0})),(Q=t.mpd.mediaList.audio)[Q.selectedIdx]&&Q[Q.selectedIdx].mediaSegments&&Q[Q.selectedIdx].mediaSegments.forEach((function(e){e.downloaded===TU&&(e.downloaded=vU)})),t.mpd.syncAV(),e.abrupt("return",F);case 12:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_handleInitData",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=arguments.length>4?arguments[4]:void 0,Q=this.dash,l=new X;if(e instanceof ArrayBuffer){var i=0===U.length?e:e.slice(U[0],U[1]+1),d=null===t?null:e.slice(t[0],t[1]+1);!1===Q.useEME&&this.crypto?this.crypto.decryptHeader(i,"video"===F,!this._pluginInst.softVideo).then((function(U){var t=U.data,F=t.res,Q=t.videoTrack,i=t.audioTrack,r=F;l.resolve({initSegmentRes:r,data:e,sidxSegmentRes:d,headers:n,videoTrack:Q,audioTrack:i})})):l.resolve({initSegmentRes:i,data:e,sidxSegmentRes:d,vid:null,headers:n})}else;return l}},{key:"_appendInitSegment",value:function(e,U,t){var n=this,F=this.player,Q=this.config.duration;this.dash.mpd.duration>0&&(Q=this.dash.mpd.duration);var l=new X,i=this.dash.mpd.mediaList[e],d=U.initSegmentRes,r=U.sidxSegmentRes;if(!U.fromCache&&(U.fromCache=!0,i[i.selectedIdx].wrapperData=U,r))try{this.dash.mpd.getSidx(r,e,t,Q)}catch(o){F.errorHandler(o)}if(e===xe.VIDEO){var a=function(e){for(var U=Object.keys(On),t=0;t<U.length;t++){var n=U[t];if(On[n].codecs===e)return n}return null}(i[i.selectedIdx].codecs);this._pluginInst.setCodeInfo(a)}return hU.log("appendInitSegment mediaType:".concat(e,", index: ").concat(t)),this.dash.changeType(e,i[i.selectedIdx].codecs),this.dash.appendBuffer(e,d,{mediaType:e,index:t,initSegment:!0,allSegment:!0},U.videoTrack,U.audioTrack).then((function(){if(n._pluginInst.info({msg:"appendBuffer",data:{mediaType:e,index:t}}),hU.log("appendInitSegment success mediaType:".concat(e,", index: ").concat(t,", \n curVideoInitSegment:").concat(n.curVideoInitSegmentIdx)),i[i.selectedIdx].inited=!0,l.resolve(),"video"===e&&n.curVideoInitSegmentIdx!==t){n.curVideoInitSegmentIdx=t;var U=n._findClosetGop(F.currentTime,!0,0);n.dash.mpd.clearBuffer(U,F.duration,"video")}})).catch((function(U){hU.log("appendInitSegment type-".concat(e,"-appendCatch,range:").concat(JSON.stringify(d),",\n message:").concat(U.message)),U&&U.errorCode&&F&&F.emit(new wn(Ze,U.errorCode,{message:"appendInit ".concat(U.message)}))})),l}},{key:"_makeInitSegemntRequest",value:(t=R(o().mark((function e(){var U,t,n,F,Q,l,i,d,r,a,B,s,R,c,V,h,u,Z,S,J,p=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=p.length>0&&void 0!==p[0]?p[0]:"video",n=p.length>1&&void 0!==p[1]?p[1]:0,F=p.length>2&&void 0!==p[2]?p[2]:null,Q=this.dash,l=this.config,i=new X,d=Q.mpd&&Q.mpd.mediaList[t][n],r=[],a="",d){e.next=12;break}return i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0,msg:"list is null"}),hU.log("initSegmentRequest error"),e.abrupt("return",i);case 12:return r=(d.initSegmentRange||[]).concat(),(B="segment_base"===Q.mpd.dashType)&&(r[1]=d.sidxRange[1]),a=d.initSegment,s="video"===t&&(d.definition||this.bandwidth2item[d.bandwidth].definition),this._checkUrlRange(a),R={mediaType:t,vid:l.vid,definition:"video"===t?s:void 0,useUrlRange:l.useUrlRange,timeout:-1,bitrate:d.avg_bitrate||d.bandwidth||d.bitrate,initSegment:!0,codecType:(null===(U=Q.mpd)||void 0===U?void 0:U.videoCodecType)||"h264",fileId:d.fileId},e.next=21,Q.getData(a,r,t,R,!1,null,F);case 21:return c=e.sent,V=c.res,h=c.headers,u=c.status,Z=c.readyState,S=c.fromCache,J=c.error,V&&"error"!==V?this._handleInitData(V,d.initSegmentRange,B?d.sidxRange:null,h,t).then((function(e){e.newIdx=n,e.mediaType=t,e.initSegmentRange=r,e.cache=S,e.definition=R.definition,e.bitrate=R.bitrate,e.url=a,e.fileId=R.fileId,i.resolve(e)})):i.reject({mediaType:t,index:n,initSegmentRange:r,url:a,rejected:!0,reason:V,status:u,readyState:Z,ext:J instanceof Error?{msg:J.message}:J}),e.abrupt("return",i);case 30:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_makeInitSegemntRequestWithRetry",value:function(){var e=this,U=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"video",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.handleUrlExpire();var Q=new X;return n&&this._pluginInst._kernal.setNodeTime("init".concat(U,"_metastart")),this._makeInitSegemntRequest(U,t,F).then((function(F){e._pluginInst.info({msg:"initSegmentRequest succ"}),n&&(e._pluginInst._kernal.setNodeTime("init".concat(U,"_metadone"),"init".concat(U,"_metastart"),{fromCache:F.cache,byteLength:F.data.byteLength,mediaType:U,index:t,definition:F.definition}),e._emitDefinitionChangeDetailEvent({start:0,bitrate:F.bitrate,mediaType:U,definition:F.definition,url:F.url,fileid:F.fileId})),Q.resolve(F)})).catch((function(e){var n,F=e.message?e.message:e;Q.reject(new wn(pe,wn.INIT_SEGMENT_ERROR,{line:329,mediaType:U,index:t,error:F,message:"reason ".concat((null==e||null===(n=e.ext)||void 0===n?void 0:n.msg)||(null==F?void 0:F.reason)," status ").concat(null==F?void 0:F.status)}))})),Q}},{key:"updateAbrCacheData",value:function(e,U,t){var n=this.dash,F=this.config,Q=F.autoBitrateOpts||{},l=n.mpd.mediaList.video,i=t.definition,d=F.definitionText&&F.definitionText[i]||i,r=l[e],a=t.bitrate;this.bitrateMap[a]={url:r.id,definition:i,definitionName:d},this.defiIdMap[r.id]={bitrate:a,definition:i},e===l.length-1&&this.isOpenAutoDefi&&this.definitions.push({name:Q.autoDefiText||"auto",url:IF,selected:U,definition:"自动",fps:void 0})}},{key:"destroyAbr",value:function(){var e=this,U=this.player;e.abrInstance&&(U&&U.off(XF,this._onAutoDescChange),e.abrInstance.destroy(),e.abrInstance=null)}},{key:"initAbr",value:(U=R(o().mark((function e(){var U,t,n,F,Q=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:U=this,t=this.player,n=this.config,Ut.on(t,XF,this._onAutoDescChange,"dashDestroy"),this.bitrateMap={},this.defiIdMap={},F=aU,U.abrInstance=new HF(t,n,0,n.dashOpts.dynamic_video,5e3,{logger:hU.abr,openLog:F}),Ut.once(t,xF,this.startProgressTimer,"dashDestroy"),U.abrInstance.onAbrChange=function(e,n,F,Q){var l=U.bitrateMap[e],i=U.bitrateMap[n],d=l.definition,r=i.definition;hU.abr("abr change prevD:",d,"curDef:".concat(r)),d!==r&&(U.abrSwitchURL(i.url),t.emit("ABR_CHANGE",{prev:d,cur:r,prevName:l.definitionName,curName:i.definitionName,abrInfo:Q}))},Ut.on(t,gF,U.abrInstance.onAbrChange,"dashDestroy"),Ut.on(t,GF,(function(){if(U.isCurrentInAbr()){var e=5*Math.floor(t.currentTime/5)+5;hU.log("ABR_LIMIT_BITRATE, currentTime",t.currentTime,"removeStart",e),Q.removeBuffer(xe.VIDEO,e,t.duration)}}),"dashDestroy"),U.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi;case 12:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"isCurrentInAbr",value:function(){return!!this.abrInstance&&this.abrInstance.isCurrentInAbr}}]),e}(),Ll=xl,Gl=LU,Il=function(){function e(U){var t=this;c(this,e),u(this,"start",function(){var e=R(o().mark((function e(U){var n,F,Q,l,i,d,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t._checkHasDestroy("start")){e.next=2;break}return e.abrupt("return");case 2:if(t._hasStart&&(t.__dash__&&(t.__dash__.destroy(),t.__dash__=null),t._initProfile(),t._initialize(),t._hasStart=!1),t.setNodeTime("newplayer_start"),n=Date.now(),F=t.__dash__,Q=t._pluginInst,l=Q.player,i=Q.config,l.dashState=WU,l.emit("dashStateChange",WU),U||(U=l.config.url="anytext"),d=new kl(U,t._pluginInst,F),F){e.next=14;break}return t._info({msg:"__dash__ is null, dashOpts",startMs:n,name:"start __dash__"}),e.abrupt("return");case 14:return F.initDash(d),F.dashVideoEncrypted||F.dashAudioEncrypted||t._pluginInst.softVideo?(hU.log("加密视频"),r=!1===i.useEME,i.useEME=AU(),(r||t._pluginInst.softVideo)&&(i.useEME=!1),i.intertrustServerURL&&(i.useEME=!0),i.useEME||(F.crypto=new vl),d.useEME=i.useEME,t._info({msg:"encrypt video ready useEME ".concat(d.useEME)})):(hU.log("非加密视频"),t._info({msg:" no encrypt video ready"})),l.dashState=mU,l.emit("dashStateChange",mU),e.next=20,t._onWasmReady({url:U});case 20:t._info({msg:"info player start execute",startMs:n,name:"start",profile:!0}),t._hasStart=!0;case 22:case"end":return e.stop()}}),e)})));return function(U){return e.apply(this,arguments)}}()),u(this,"_errorHandler",(function(e){var U,n;if(!t._checkHasDestroy("errorHandler")){var F=t._pluginInst,Q=F.player,l=F.config;if(l.codecType===On[Hn].logCodeType&&(null===(U=Q.video.error)||void 0===U||null===(n=U.message)||void 0===n?void 0:n.indexOf("video decoder initialization failed"))>=0&&(hU.log("ErrorHandler DECODER_FAILED"),Q.emit("DECODER_FAILED",{codecType:l.codecType,vid:l.vid})),e instanceof wn)e=new d.Errors(Q,e);else{if(Q.video.error)e=new d.Errors(Q,{errorType:Ze,errorCode:5100+Q.video.error.code});else{var i=e;if("string"!=typeof e)try{i=JSON.stringify(e)}catch(s){i="other"}e=new d.Errors(Q,{errorType:Je,errorCode:0,errorMessage:i})}}if(t._errors.push({time:(new Date).getTime(),err:e}),hU.log(e),Q.emit("xglog_cache"),e&&Q.dashState!==bU){Q.dashState=bU,e.vid=l.vid,e.url=Q.src;var r=t.__dash__,a=r&&r.isCurrentAutoDefi;if(e.errd&&"object"===B(e.errd)&&r&&r.dash&&(e.errd.url=r.dash.url,e.url=r.dash.url),e.url&&e.url.indexOf("blob:")>-1&&l.dashOpts&&l.dashOpts.dynamic_video&&(e.url=l.dashOpts.dynamic_video.main_url),!e||e.errorCode!==t._getCode(Ze,We.MSE_HIJACK)&&e.errorCode!==t._getCode(Ze,We.EME_HIJACK)){if(Q.emit("DATA_REPORT",e),e&&e.errorCode===t._getCode(Se,We.LICENSE))return t._pluginInst.destroyKernal(),void Q.emit("error",e);if(!e||e.errorCode!==t._getCode(Ze,We.MSE_ADD_SB)&&e.errorCode!==t._getCode(he,We.SIDX)){if(e.segmentExpired||"task_request_expired"===e.msg)return r&&r.abrInstance&&"function"==typeof r.abrInstance._stop&&(r.abrInstance._stop(),hU.abr("error stop","expired",e.segmentExpired,e.ex)),void t._pluginInst.emitExpireEvent(e);if(!e.curReqVideoSegInfo&&r&&(e.curReqVideoSegInfo=JSON.parse(JSON.stringify(r.curReqVideoSegInfo||{}))),e.headers||(e.headers=e.curReqVideoSegInfo.headers||{}),!!l.useBackUrl&&!t._pluginInst._hasUsedBackUrl&&l.dashOpts&&l.dashOpts.dynamic_video&&r){hU.log("backup replay");var o=r.changeMainBackUrl(Gl.ERR,t._pluginInst._hasUsedBackUrl);return r.updateDashType(),a?o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!0):(t.currentDefitionFromPlayer&&(o.defaultDefinition=t.currentDefitionFromPlayer.definition),o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!1)),t._pluginInst._hasUsedBackUrl=!0,t._pluginInst.next(Q.currentTime,"REPLAY",o,!0),Q.emit("playCatch","dash",e),void hU.log("playCatch dash",JSON.stringify(e))}r&&r.updateDashType(!0),t._handleDegradeToMp4(e)}else t._handleDegradeToMp4(e)}else Q.emit("error",e)}}})),this._pluginInst=U,this._errors=[],this._initProfile(),this._proxyPlayer(),this._initialize()}var U,t;return h(e,[{key:"_initProfile",value:function(){this.firstFrameTime={newplayer_initkernel:{now:Ut.nowTime(),cost:0,t:1,alias:"a1"},newplayer_start:{now:-1,cost:-1,t:2,alias:"a2"},initmpd:{now:-1,cost:-1,t:3,alias:"a3"},initmpddone:{now:-1,cost:-1,t:4,alias:"a4"},initmse_sbopen:{now:-1,cost:-1,t:5,alias:"a5"},initmse_sbopendone:{now:-1,cost:-1,t:6,alias:"a6"},initvideo_metastart:{now:-1,cost:-1,t:7,i:!0,alias:"a7"},initvideo_metadone:{now:-1,cost:-1,t:8,i:!0,alias:"a8"},initaudio_metastart:{now:-1,cost:-1,t:7,i:!0,alias:"a9"},initaudio_metadone:{now:-1,cost:-1,t:8,i:!0,alias:"b1"},metaready_initsegend:{now:-1,cost:-1,t:7,alias:"b2"},initvideo_segstart:{now:-1,cost:-1,t:8,i:!0,alias:"b3"},initvideo_segdone:{now:-1,cost:-1,t:9,i:!0,alias:"b4"},initaudio_segstart:{now:-1,cost:-1,t:8,i:!0,alias:"b5"},initaudio_segdone:{now:-1,cost:-1,t:9,i:!0,alias:"b6"},initdash:{now:-1,cost:-1,t:9,i:!0,alias:"b7"},initdashdone:{now:-1,cost:-1,t:9,i:!0,alias:"b8"}},this.firstFrameTimeTypeMap={};for(var e=Object.keys(this.firstFrameTime),U=0;U<e.length;U++){var t=this.firstFrameTime[e[U]];t.key=e[U],t.i||(this.firstFrameTimeTypeMap[t.t]=t)}}},{key:"setNodeTime",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=this.firstFrameTime[e];if(n&&(n.now=Ut.nowTime(),t&&(n.extData=t),n.t>1)){var F=U?this.firstFrameTime[U]:this.firstFrameTimeTypeMap[n.t-1];n.cost=n.now-F.now}}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst.player;this._originSwitchURL=e.switchURL,this._originErrorHandler=e.errorHandler,e.switchURL=this._switchURL.bind(this),e._startInit=this.start,e.dash=!0,e.errorHandler=this._errorHandler}},{key:"_info",value:function(e){this._pluginInst&&this._pluginInst.info(e)}},{key:"_onWasmReady",value:(t=R(o().mark((function e(U){var t,n,F,Q,l,i,r,B,s,c,V,h,u,Z,S=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._checkHasDestroy("_onWasmReady")){e.next=2;break}return e.abrupt("return");case 2:return t=U.url,n=this._pluginInst,F=n.player,Q=n.config,l=this.__dash__,i=l.dash,F.dashState=EU,F.emit("dashStateChange",EU),hU.log("监听到wasm_ready"),this._info({msg:"wasm_ready"}),Ut.on(i,"error",this._errorHandler,"destroy"),l.bindComEvent(),e.prev=12,e.next=15,i.init(t);case 15:if(r=e.sent){e.next=19;break}return this._info({msg:"isDestroy ".concat(!F,", isMseNull ").concat(!r)}),e.abrupt("return");case 19:if(hU.time("initReady cost",(new Date).getTime()-l.startTimestamp),F.dashState=kU,F.emit("dashStateChange",kU),hU.log("dash init完成"),i.mpd.mediaList.video.length>0){for(Q.defaultDefinition||(Q.defaultDefinition=Q.dashOpts.dynamic_video.dynamic_video_list[0].definition,l.lastDefiIdx=0),l.isOpenAutoDefi||(l.isCurrentAutoDefi=!1,l.abrInstance.isCurrentInAbr=!1),B=Q.dashOpts.dynamic_video.dynamic_video_list,s=0;s<B.length;s++)c=B[s],l.bandwidth2item[c.bitrate]=c,l.definition2item[c.definition]=c;i.mpd.mediaList.video.sort((function(e,U){return U.height-e.height})),i.mpd.mediaList.video.forEach((function(e,U){var t=l.bandwidth2item[e.bandwidth];if(t){var n=t.definition,d=!(n!==Q.defaultDefinition||l.isOpenAutoDefi&&l.isPlayAutoDefi);l.definitions.push(a({name:Q.definitionText&&Q.definitionText[n]||n,url:e.id,selected:d,definition:t.definition,fps:t.fps},t)),e.frameRate=e.frameRate||t.fps||25;var r=t.bitrate;l.updateAbrCacheData(U,l.isPlayAutoDefi,t),n===Q.defaultDefinition&&(F.emit("initialUrl",i.mpd.mediaList.video[U].baseURL),l.curBitrate=r,l.lastDefiIdx=U),d&&S._pluginInst.setCurrentDefitionInfos(t.definition,t)}})),(V=l.definitions.some((function(e){return e.selected})))&&void 0!==l.lastDefiIdx||(V||(l.definitions[0].selected=!0,h=l.definitions[0].definition,this._pluginInst.setCurrentDefitionInfos(h,l.definition2item[h])),F.emit("initialUrl",i.mpd.mediaList.video[0].baseURL),l.curBitrate=Q.dashOpts.dynamic_video.dynamic_video_list[0].bitrate,l.lastDefiIdx=0),F.emit("resourceReady",l.definitions,Q.dashOpts.dynamic_video.dynamic_video_list),l.abrInstance.updateBitrate(l.curBitrate),F.curDefinition=l.definitions.filter((function(e){return e.selected}))[0]}this._pluginInst.originStartInit.call(F,r.url),hU.time("start call cost",(new Date).getTime()-l.startTimestamp),F.dashState=yU,F.emit("dashStateChange",yU),l.startCheckCanplayTimer(),l.isDashCanUse=!0,l.mse=r,l.emitMenuResolutionChange(),"safari"===d.Sniffer.browser&&(d.Util.addClass(F.root,"canplay"),u=function(){d.Util.removeClass(F.root,"xgplayer-is-enter")},Ut.once(F,"waiting",u)),Z=function(){var e=R(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!S._checkHasDestroy("onStartPlay")){e.next=2;break}return e.abrupt("return");case 2:if(F.emit("dash_start_play"),S._info({msg:"dash_start_play"}),F.dashState=NU,S._info({msg:"START_PLAY ready"}),F.emit("dashStateChange",NU),F.emit("playInterfaceInfo",Q.dashOpts||{}),!l.abrInstance){e.next=12;break}return e.next=11,l.abrInstance.init(i.mpd.mediaList);case 11:l.abrInstance.execute();case 12:l.isCurrentAutoDefi||hU.time("onStartPlay cost not abr",(new Date).getTime()-l.startTimestamp),l.startProgressTimer(),hU.time("onStartPlay cost",(new Date).getTime()-l.startTimestamp),l.setCurrentDefinition();case 16:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Ut.once(i,"start_play",Z),this._info({msg:"START_PLAY dashready"}),F.emit("dashready"),e.next=42;break;case 39:e.prev=39,e.t0=e.catch(12),F.errorHandler(e.t0);case 42:case"end":return e.stop()}}),e,this,[[12,39]])}))),function(e){return t.apply(this,arguments)})},{key:"_initialize",value:function(){this.setNodeTime("newplayer_initkernel"),hU.log("执行dashKernal");var e=this._pluginInst,U=e.player,t=e.config;if(!t.dashOpts)return console.error("dashOpts in plugin config miss"),void this._info({msg:"dashOpts is null",startMs:Date.now(),name:"_initialize",add:!0});(t.dashOpts.Data&&"TOP"===t.playInfoType&&this._playInfoInit(),t.dashOpts.dynamic_video)&&(t.dashOpts.dynamic_video.dynamic_video_list=t.dashOpts.dynamic_video.dynamic_video_list||[],t.dashOpts.dynamic_video.dynamic_audio_list=t.dashOpts.dynamic_video.dynamic_audio_list||[],[t.dashOpts.dynamic_video.dynamic_video_list,t.dashOpts.dynamic_video.dynamic_audio_list].forEach((function(e){e.forEach((function(e){e.bitrate=parseInt(e.real_bitrate||e.bitrate)}))})));var n=LU,F=new Ll({pluginInst:this._pluginInst});this.__dash__=F;var Q=xe.isSupported('video/mp4; codecs="avc1.64001E, mp4a.40.5"');Q?F.changeMainBackUrl(n.INIT,this._hasUsedBackUrl):(this._info({msg:"isCodecSupported ".concat(Q),add:!0}),U.errorHandler(new wn(Ze,We.MEDIA_ERR_CODEC_NOT_SUPPORTED,{message:"init"})))}},{key:"_switchURL",value:(U=R(o().mark((function e(U){var t,n=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=!(n.length>1&&void 0!==n[1])||n[1],this.__dash__.switchURL(U,t);case 3:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"_playInfoInit",value:function(){var e=this._pluginInst,U=e.config,t=e.playerConfig;U.vid=U.dashOpts.Data.VideoID||U.dashOpts.Data.Vid,t.vid=U.vid,qF(U)}},{key:"_getCode",value:function(e,U){return me[e][U]}},{key:"_handleDegradeToMp4",value:function(e){var U=this;if(!this._checkHasDestroy("_handleDegradeToMp4")){var t=this._pluginInst,n=t.player,F=t.config;if(F.mp4Opts&&!this._hasDegradeMp4){hU.log("_handleDegradeToMp4"),this._hasDegradeMp4=!0,n.dashState="error_catching";var Q=F.startTime||n.currentTime||0;setTimeout((function(){U._checkHasDestroy("degrademp4")||(U._pluginInst._setStartTime("destroy",Q,!0,!1),n.emit("playertypechange"),n.dashState="error_catch_finished",n.emit("playCatch","dash_mp4_2",e),hU.log("playCatch dash_mp4_2",JSON.stringify(e)),F.defaultFormat="mp4",U._pluginInst.changeKernal(),n.once("canplay",(function(){if(n.config.autoplay){var e=n.video.play();e&&e.catch((function(){}))}})))}),0)}else n.dashState="error_no_mp4opts",n.emit("error",e),hU.log("_handleDegradeToMp4 throw error")}}},{key:"abrInstance",get:function(){return this.__dash__.abrInstance}},{key:"destroy",value:function(){var e=this._pluginInst.player;this.__dash__&&(this.__dash__.destroy(),this.__dash__=null),e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,e.switchURL=this._originSwitchURL,this._pluginInst=null,this._hasStart=!1,hU.log("dashKernal destroy")}},{key:"_checkHasDestroy",value:function(e){return!this._pluginInst&&(this._info({msg:"dashKernal destroy ".concat(e),add:!0}),hU.log("checkHasDestroy",e),!0)}},{key:"executeReady",value:function(){if(!this._checkHasDestroy("executeReady")){var e=this._pluginInst.player;Ut.once(e,"dash_start_play",(function(){e.dashState=fU,e.emit("nextEnded")}))}}},{key:"getStat",value:function(){var e=this;if(!this._checkHasDestroy("getStat")){var U={};if(U.dvps=!!this._pluginInst.pvStartup,U.daps=!!this._pluginInst.paStartup,this.__dash__&&this.__dash__.dash){U.segments=this.__dash__.dash.segment_request;var t=this.__dash__.dash.first_segment_request;this._setSegmentCost("video",t),this._setSegmentCost("audio",t)}var n={},F={};Object.keys(this.firstFrameTime).forEach((function(U){var t=e.firstFrameTime[U];n[U]=t.cost,F[[t.alias]]={c:t.cost,ex:t.extData}})),U.preLoadData=this.getPreloadStat();var Q={},l={};if(this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mse){var i=this.__dash__.dash.mse;if(i._sourceBuffer)for(var d=Object.keys(i._sourceBuffer),r=0;r<d.length;r++){var a=d[r],o=(i._queue[a]||[]).map((function(e){return{opName:e.opName,context:e.context}}));l[a]={updating:i._sourceBuffer[a].updating,queue:o.slice(0,Math.max(5,o.length)),queueEmpty:!i._queue[a]}}}U.mseStat=l,this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mpd&&(Q.video=this.__dash__.dash.mpd._getBuffered("video"),Q.audio=this.__dash__.dash.mpd._getBuffered("audio")),U.bfs=Q;var B=this._pluginInst.player;U.currentTime=B.currentTime;var s=B.video.error;return U.dVideoError=s?{code:s.code,message:s.message}:null,U.errors=this._errors,U.performance=n,U.sfft=F,U}}},{key:"_setSegmentCost",value:function(e,U){var t=U[e],n=t.task,F=t.taskfinish,Q=t.ext,l=t.fromCache,i=t.request,d=this.firstFrameTime["init".concat(e,"_segstart")],r=this.firstFrameTime["init".concat(e,"_segdone")],a=this.firstFrameTime.metaready_initsegend;d.now=i?n:-1,d.cost=i?n-a.now:-1,r.now=i?F:-1,r.cost=i?F-n:-1,r.extData=Q,r.fromCache=l}},{key:"getPreloadStat",value:function(){for(var e=["initaudio_metadone","initvideo_metadone","initaudio_segdone","initvideo_segdone"],U={length:0,byteLength:0,load:[],preload:this._pluginInst.getPreloadStat()},t=0;t<e.length;t++){var n=this.firstFrameTime[e[t]].extData;n&&n.fromCache&&n.byteLength&&(U.length+=n.byteLength,U.byteLength+=n.byteLength,U.load.push(n))}return U}},{key:"pcdnReq",get:function(){var e,U=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==U?void 0:U.pcdnReqCnt()}},{key:"pcdnVVStat",value:function(){var e,U=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==U?void 0:U.pcdnVVStat()}},{key:"encryptedType",get:function(){return this.__dash__.encryptedType}}]),e}(),Ml=function(){function e(U){var t=this;c(this,e),u(this,"start",(function(){var e=t._pluginInst.player;t._pluginInst.originStartInit.call(e,t._url),t._pluginInst.info({msg:"dash mp4 kernal start"})})),u(this,"_errorHandler",(function(e){var U=t._pluginInst.player;if(U.video.error){e=new d.Errors(U,{errorType:Ze,errorCode:5100+U.video.error.code})}else{var n=e;if("string"!=typeof e)try{n=JSON.stringify(e)}catch(Q){n="other"}e=new d.Errors(U,{errorType:Je,errorCode:0,errorMessage:n})}t._stat.error.push({err:e}),hU.log("mp4 error",e);var F=(new Date).getTime()/1e3>=t.urlExpireTimestamp&&t.urlExpireTimestamp>0;t._pluginInst.info({msg:"dash mp4 kernal error happend, url expired ".concat(F),err:e}),!F||!U.video.error||4!==U.video.error.code&&2!==U.video.error.code?U.emit("error",e):t._urlExpiredWhenInit||t._mp4CheckExpire()})),u(this,"_updateMp4Auto",(function(){setTimeout((function(){t._updateMp4AutoDesc()}),0)})),this._url=null,this._pluginInst=U,this._urlExpiredWhenInit=!1,this._initialize(),this._proxyPlayer(),this._stat={type:"mp4",error:[]}}return h(e,[{key:"executeReady",value:function(){var e=this._pluginInst.player;e.dashState=fU,e.emit("nextEnded")}},{key:"_initialize",value:function(){var e=this;this._handleMp4Definitions(),this._getMp4Opts();var U=this._pluginInst.player;U.dash=!1,setTimeout((function(){U.emit("resourceReady",e._mp4Definitions||[],[].concat(e._RawMp4Definitions)),e._updateMp4Auto()})),this.urlExpireTimestamp&&(this._urlExpiredWhenInit=(new Date).getTime()/1e3>=this.urlExpireTimestamp&&this.urlExpireTimestamp>0,this._mp4CheckExpire())}},{key:"_handleMp4Definitions",value:function(){var e=this,U=this._pluginInst,t=U.player,n=U.config;if(n.mp4Opts){var F;this.mp4AutoItem=null;var Q=[].concat(n.mp4Opts.mp4List||[]);Q.every((function(e){return!!e.bitrate}))&&Q.sort((function(e,U){return U.bitrate-e.bitrate}));var l=n.mp4Opts.isOpenAutoDefi,i=n.mp4Opts.isPlayAutoDefi,r=!1;if(l){var a={};Q.forEach((function(e){a[(e.definition||"").toLowerCase()]=e}));for(var o=["720p","480p","360p"],B=null,s=0;s<o.length;s++){var R=a[o[s]];if(R){B=R;break}}if(B){this.mp4AutoItem=B;var c=n.mp4Opts.autoDefiText||"自动",V="".concat(c,"(").concat(B.definition,")");Q.push({definition:c,url:IF,name:V,url_expire:B.url_expire||0,selected:!!i}),r=i}}if(Q.length>0){var h=Q[0].url,u=Q[0].url;Q.forEach((function(e){e.definition===n.defaultDefinition&&(h=e.url,u=e.url)})),l&&i&&this.mp4AutoItem&&(h=this.mp4AutoItem.url,u=IF),this._mp4Url=u,this._url=h,this._pluginInst.loadURL=h}if(!r){for(var Z=0;Z<Q.length;Z++){var S=Q[Z];if(n.defaultDefinition===S.definition){S.selected=!0,r=!0;break}}if(!r){if(!(Q.length>0))return void setTimeout((function(){var e=me[Ze][We.MEDIA_ERR_URL_EMPTY],U=new d.Errors(t,{errorType:Ze,errorCode:e});t.emit(Ae,U),console&&console.error("empty mp4 definitions")}));Q[0].selected=!0}}this._mp4Definitions=Q.map((function(U){n.defaultDefinition===U.definition&&(e._url=U.url,i||(U.selected=!0));var t=JSON.parse(JSON.stringify(U));return t.name=n.definitionText&&n.definitionText[U.definition]||U.definition,t.url_expire=U.url_expire||0,t})),this._backup_url=this._mp4Definitions[0].backup_url,this._RawMp4Definitions=Q;var J=!1;this._pluginInst.setCodeInfo(null===(F=Q[0])||void 0===F?void 0:F.codec_type);for(var p=0;p<Q.length;p++){var W=Q[p];W.codec_type&&W.vtype&&("h264"===W.codec_type&&"mp4"===W.vtype||(J=!0))}J&&t.emit("log",{type:"oneevent",end_type:"mp4_source_exception"})}}},{key:"_getMp4Opts",value:function(){var e=this._pluginInst.player,U={url:this._mp4Url,realUrl:this._url,mp4Definitions:[].concat(this._mp4Definitions)};return this._getPlayInfoTimestamp=(new Date).getTime()/1e3,U.mp4Definitions&&U.mp4Definitions.length>0&&U.mp4Definitions[0]&&(this.urlExpireTimestamp=U.mp4Definitions[0].url_expire||0),this._destroyMp4AutoHandler(),e.on("canplay",this._updateMp4Auto),this.urlExpireTimestamp&&(this.mp4CheckExpire=this._mp4CheckExpire.bind(this),e.on("timeupdate",this.mp4CheckExpire)),U}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst,U=e.player,t=e.config;this._originSwitchURL=U.switchURL,this._originErrorHandler=U.errorHandler,t.defaultFormat="mp4",U._startInit=this.start,U.errorHandler=this._errorHandler,U.switchURL=this._switchURLMp4.bind(this),U.config.url=this._url}},{key:"_switchURLMp4",value:function(e){var U=this,t=this._pluginInst.player,n=e.split("/")[e.split("/").length-1]===IF,F=n?this.mp4AutoItem.url:e;this._pluginInst.loadURL=F,t.curTime=t.currentTime;var Q=t.paused;this._url=n?IF:e,t.ended||(t.src=F,Ut.once(t,"canplay",(function(){if(t.currentTime=t.curTime,!Q){var e=t.play();void 0!==e&&e&&e.catch((function(){}))}}))),n?this._setCurrentDefitionInfos("自动 ".concat(this.mp4AutoItem.definition),this.mp4AutoItem):Ut.once(t,"definitionChange",(function(e){for(var t=e.to,n=null,F=U._pluginInst.cnofig,Q=0;Q<F.mp4Opts.mp4List.length;Q++){var l=F.mp4Opts.mp4List[Q];if(l.definition===t){n=l;break}}U._setCurrentDefitionInfos("".concat(t),n)}))}},{key:"_mp4CheckExpire",value:function(){this._pluginInst.handleUrlExpire(this,!0)}},{key:"_updateMp4AutoDesc",value:function(){var e=this._pluginInst.player,U=this._url!==IF||void 0;this.mp4AutoItem&&(e.emit("MP4_AUTO_DESC_CHANGE",JSON.parse(JSON.stringify(this.mp4AutoItem)),!!U||void 0),U||this._setCurrentDefitionInfos(this.mp4AutoItem.definition,this.mp4AutoItem))}},{key:"_setCurrentDefitionInfos",value:function(e,U){this._pluginInst.setCurrentDefitionInfos(e,U)}},{key:"_destroyMp4AutoHandler",value:function(){var e=this._pluginInst.player;e.off("canplay",this._updateMp4Auto),e.off("timeupdate",this._mp4CheckExpire)}},{key:"destroy",value:function(){var e=this._pluginInst.player;e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,this._destroyMp4AutoHandler(),this._pluginInst.unloadVideo(),e.switchURL=this._originSwitchURL}},{key:"getStat",value:function(){var e=this._pluginInst.player;this._stat.currentTime=e.currentTime;var U=e.video.error;return this._stat.videoError=U?{code:U.code,message:U.message}:null,this._stat}}]),e}(),Yl=tt,wl=it,Kl=d.Events.STATS_EVENTS,jl="mp4",_l="dash",Hl="void";function zl(e){return{playerVersion:{get:function(){return"3.5.23"},configurable:!0},downloadSpeed:{get:function(){return TF.currentSpeed/8},configurable:!0},historyAvspeed:{get:function(){return TF.historyAvspeed/8},configurable:!0},abrInstance:{get:function(){return e.abrInstance},configurable:!0},menuCodeType:{get:function(){return e.menuCodeType},configurable:!0},playerType:{get:function(){return e.playerType},configurable:!0},supportMenus:{get:function(){return e.supportMenus},configurable:!0},domain:{get:function(){return e.domain},configurable:!0},loadURL:{get:function(){return e.loadURL},configurable:!0},performance:{get:function(){var U=e.stat;return U&&U.performance},configurable:!0},stat:{get:function(){return e.stat},configurable:!0},preLoadData:{get:function(){var U=e.stat;return U&&U.preLoadData?U.preLoadData:{byteLength:0}},configurable:!0},ext:{get:function(){var U=Math.max(0,TF.historySpeed.length-10),t=TF.historySpeed.slice(U,U+10);return a(a({},e.stat),{},{speed:t.map((function(e){return"".concat(e/8)})),vtype:"DASH",format:e._kernalType,performance:void 0,preLoadData:void 0})},configurable:!0},getLogCache:{get:function(){var e=VU();return e.getLogCache&&e.getLogCache()},configurable:!0},pcdnReq:{get:function(){return e._kernalType===_l?e._kernal.pcdnReq:null},configurable:!0},currentDefitionFromPlayer:{get:function(){return e.currentDefitionFromPlayer},configurable:!0},encryptedInfo:{get:function(){return{encryptedType:e._kernal.encryptedType||0}},configurable:!0},pcdnVVStat:{get:function(){return e._kernalType===_l?e._kernal.pcdnVVStat():null},configurable:!0}}}var Ol=null,Pl=function(e){Z(t,e);var U=m(t);function t(){var e;c(this,t);for(var n=arguments.length,F=new Array(n),Q=0;Q<n;Q++)F[Q]=arguments[Q];return u(W(e=U.call.apply(U,[this].concat(F))),"_hasUsedBackUrl",!1),u(W(e),"_pendingPreloaders",[]),e}return h(t,[{key:"initDashPlayer",value:function(e){var U=this;this._checkVideoSwitch();var t=this.config;this._hasTriggerBufferThreshold=!1,this._setArgsFromConfig(),this.lastBuffer="0,0",this._menuCodeType=null,this._setConfigDashType(),Ut.promisePolyfill(),(window.location.href.indexOf("playerInstance=true")>-1||g.getItem("playerInstance"))&&(void 0===window.dashPlayerInstanceList&&(window.dashPlayerInstanceList=[]),window.dashPlayerInstanceList.push(e)),this.dashPreloader=new eQ(e,t,hU.preload,this.bitRateAdapter),e.preloader=this.dashPreloader;this._pendingPreloaders.length>0&&(this.addPreloaderList(this._pendingPreloaders),this._pendingPreloaders=[]),this._startBufferCheck(),Ut.on(e,Yl,(function(){U.dashPreloader.preloadNext()}),"destroy"),this.changeKernal(!1),window.addEventListener("beforeunload",this.cacheSpeed)}},{key:"_checkVideoSwitch",value:function(){var e=this.player,U=this.playerConfig.mediaType;if(this.softVideo="xg-video"===U,!(e.video instanceof HTMLVideoElement||this.softVideo)){var t=d.Util.createDom("video","",this.getVideoConfig(this.playerConfig));this.removeVideo=e.video,t.muted=e.video.muted,t.volume=e.video.volume,e.video=t,e.attachVideoEvents(e.video);var n=this.removeVideo.parentNode;n&&n.removeChild(this.removeVideo),this.removeVideo=null}}},{key:"getVideoConfig",value:function(e){var U=Object.assign({},{controls:!1,autoplay:e.autoplay,playsinline:e.playsinline,"x5-playsinline":e.playsinline,"webkit-playsinline":e.playsinline,"x5-video-player-fullscreen":e["x5-video-player-fullscreen"]||e.x5VideoPlayerFullscreen,"x5-video-orientation":e["x5-video-orientation"]||e.x5VideoOrientation,airplay:e.airplay,"webkit-airplay":e.airplay,tabindex:2,mediaType:e.mediaType||"video"},e.videoConfig,e.videoAttributes);return e.loop&&(U.loop="loop"),U}},{key:"bitRateAdapter",get:function(){var e=this.player,U=this.config;return e&&e.plugins&&U.needAutoBitrate?e.plugins.bitrateselector:null}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NEXT",t=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0;hU.log("next currentTime: ".concat(e,", nextType: ").concat(U,", autoplay:").concat(n));var F=this.player,Q=this.config;this._pendingPreloaders=[],this._pausedWhenExpiredRestart=!1,"MEDIA_EXPIRED"===U&&F.paused&&(this._pausedWhenExpiredRestart=!0),F.dashState="next_start";var l=!1;if(F.isSrcVoid||!Q.dashOpts&&!Q.mp4Opts||F.ended||"MEDIA_EXPIRED"===U||"REPLAY"===U||F.duration&&F.currentTime<F.duration-1&&(F.emit("logger_next",U),l=!0),this._hasTriggerBufferThreshold=!1,F.emit("next",U),F.emit("playertypechange"),t)for(var i in t)Q[i]=t[i];this._setArgsFromConfig(),l&&this._setConfigDashType(),"NEXT"===U&&F.resetState&&F.resetState(),F.config.startTime=e,F.config.startTimeCache=e,t&&(F.config.DASHPlugin=t);var d=F.config.autoplay;this._pausedWhenExpiredRestart&&d&&(F.config.autoplay=!1,F.once("canplay",(function(){setTimeout((function(){F.config.autoplay=d,F.pause()}))}))),this._syncParameters(),this.changeKernal(!0,!0),!n&&!F.config.autoplay||this._pausedWhenExpiredRestart||F.once("canplay",(function(){if(F.video&&(F.config.autoplay||n)){var e=F.video.play();e&&e.catch((function(){}))}})),this._pausedWhenExpiredRestart&&(this._pausedWhenExpiredRestart=!1)}},{key:"_replay",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.next(e,"REPLAY",void 0,!0)}},{key:"startPlayHandler",value:function(e,U,t){var n=this.config;if(n.dashOpts||n.mp4Opts){var F="NEXT"===U||"REPLAY"===U;this._setStartTime(t,e,F,!0)}}},{key:"beforePlayerInit",value:function(){if(!this._hasExecuteBeforeInit){var e=this.player;d.BasePlugin.defineGetterOrSetter(e,zl(this)),this._hasExecuteBeforeInit=!0,e.isReady=!0,this._kernalType===_l&&(e.vtype="DASH")}}},{key:"afterCreate",value:function(){var e=this;this.steps=[];var U=this.player,t=this.config;this._syncParameters(),U.config.nullUrlStart=!0,VU().logMaxSize=t.logMaxSize,this._proxyPlayer(),this.initDashPlayer(U),this.on("xglog",(function(t){"firstFrame"===t.eventType&&hU.log("[xgplayer-encrypt]>>>>firstFrame ",e.playerConfig.vid,t.fvt,"stat",U.stat)}))}},{key:"info",value:function(e){var U=this.player;Kl&&U.emit(Kl.STATS_INFO,e),e.add&&this.steps.push(e)}},{key:"resetStat",value:function(){var e=this.player;Kl&&e.emit(Kl.STATS_RESET)}},{key:"_syncParameters",value:function(){var e=this.config,U=this.playerConfig,t=e.vid||U.vid;e.vid=U.vid=t,U.autoBitrateOpts=e.autoBitrateOpts}},{key:"_proxyPlayer",value:function(){var e=this,U=this.player;this._originStartInit=U._startInit,U.getPreloadInfos=this.getPreloadInfos.bind(this),U.useHooks("replay",(function(U){e._replay()})),"function"==typeof this.player.playNext&&(Ol=this.player.playNext),this.player.playNext=function(){e.playNext.apply(e,arguments)}}},{key:"playNext",value:function(){for(var e=this.player,U=arguments.length,t=new Array(U),n=0;n<U;n++)t[n]=arguments[n];var F=t[0],Q=t[1],l=t[2],i=t[3];e.setConfig(F),this.next(Q,l,F.DASHPlugin,i)}},{key:"_setKernalType",value:function(){var e=this.config;e.dashOpts||e.mp4Opts?e.dashOpts&&e.mp4Opts?this._kernalType=e.defaultFormat:e.dashOpts?this._kernalType=_l:this._kernalType=jl:this._kernalType=Hl}},{key:"changeKernal",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],U=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._setKernalType();var t=this.player;this.destroyKernal();var n=this._kernalType;n===Hl?(t.isSrcVoid=!0,t.emit("playOptsVoid"),U&&t.emit("nextEnded")):(t.isSrcVoid=!1,this._setStartTime("destroy",t.config.startTime,!0,!1),n===jl?(this._kernal=new Ml(this),t.vtype="dash_mp4"):n===_l&&(this._kernal=new Il(this))),e&&this._kernal&&(this._kernal.start(),U&&this._kernal.executeReady())}},{key:"destroyKernal",value:function(){this._kernal&&(hU.log("destroyKernal type ".concat(this._kernalType)),this._kernal.destroy(),this._kernal=null)}},{key:"originStartInit",get:function(){return this._originStartInit}},{key:"_setArgsFromConfig",value:function(){var e=this.config;this._bufferThreshold=e.bufferThreshold}},{key:"setCurrentDefitionInfos",value:function(e,U){var t=U?U.fps:void 0;this._currentDefinition={definition:e,fps:t,item:U}}},{key:"handleUrlExpire",value:function(e){var U=this,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.config,F=this.player,Q=F.paused,l=(new Date).getTime()/1e3>=e.urlExpireTimestamp&&e.urlExpireTimestamp>0;if(l&&(t||!Q)&&n.getServerTime)F.serverTimeDiffPromise=F.serverTimeDiffPromise||n.getServerTime().catch((function(){return 0})),F.serverTimeDiffPromise.then((function(t){if(t&&(F.serverTimeDiff=(new Date).getTime()/1e3-t),(new Date).getTime()/1e3>=e.urlExpireTimestamp+F.serverTimeDiff){e.urlExpireTimestamp=5e9;var n=new wn(Re);U.emitExpireEvent(n)}}));else if(l){var i=new wn(Re);this.emitExpireEvent(i)}}},{key:"emitExpireEvent",value:function(e){var U=this.player,t=(new Date).getTime()/1e3;this.emitExpireTimestamp?t-this.emitExpireTimestamp>300&&(this.emitExpireTimestamp=t,U.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"})):(this.emitExpireTimestamp=t,U.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"}))}},{key:"_getCurDashType",value:function(){var e=g.getItem(GU);return e===xU.BACK?e:xU.MAIN}},{key:"_setCurDashType",value:function(){this._initDashType=this._getCurDashType()}},{key:"_setConfigDashType",value:function(){this._setCurDashType();var e=this.playerConfig.vodLogOpts;e&&(e.currentDashType=this._initDashType)}},{key:"addDashPreloader",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.dashPreloader?(this._setPreloaderLoadMode(!1),this.dashPreloader.addPreloader(e,this.config.vid||this.player.config.vid)):(console&&console.warn("dashPreloader has destroyed"),this._pendingPreloaders.push(e))}},{key:"addPreloader",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.addDashPreloader(e)}},{key:"_setPreloaderLoadMode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.dashPreloader&&(this.dashPreloader.preloadManager.autoPreload=e)}},{key:"addDashPreloaderList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.dashPreloader?(this._setPreloaderLoadMode(!1),this.dashPreloader.addPreloaderList(e,this.config.vid||this.player.config.vid)):(console&&console.warn("dashPreloader has destroyed"),this._pendingPreloaders=this._pendingPreloaders.concat(e))}},{key:"addPreloaderList",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.addDashPreloaderList(e)}},{key:"setCodeInfo",value:function(e){var U=this.playerConfig.vodLogOpts,t=On[e],n=On[jn],F=n.logCodeType,Q=n.codecs;t&&(F=t.logCodeType,Q=t.codecs),U&&(U.codec_type=F),this.menuCodeType=Q,this.config.codecType=F}},{key:"cacheSpeed",value:function(){try{var e=TF.historyAvspeed;e>0&&e!==1/0&&g.setItem(SU,e)}catch(U){}window.removeEventListener("beforeunload",this.cacheSpeed)}},{key:"unloadVideo",value:function(){var e=this.player;try{e.video&&e.video.src&&(e.video.removeAttribute("src"),e.video.load())}catch(U){}}},{key:"destroy",value:function(){var e=this.player;clearInterval(this._bufferCheckTimer),this.cacheSpeed(),this.destroyKernal(),this.bitRateAdapter&&this.bitRateAdapter.destroy();var U=zl(this);Object.keys(U).forEach((function(U){delete e[U]})),this.player.playNext=Ol,this.player.removeHooks("replay")}},{key:"_processPreloadProgress",value:function(e,U){for(var t=this.config,n=["video"],F=0;F<n.length;F++){var Q=n[F],l=this.preloadManager.preloadCacheProgress({vid:t.vid,format:"dash",mediaType:Q,prelaodType:e.preloadType,bitrate:e.bitrate,set_duration:e.pduration,set_size:e.size,media_type:"video"===Q?wl.VIDEO:wl.AUDIO});l&&U.push(l)}}},{key:"getPreloadInfos",value:function(){var e=this.config;if(this.preloadManager&&this.preloadManager.preloadCacheProgress){var U=this.preloadManager.cachedDatas[e.vid],t=[];if(this._processPreloadProgress(U||{},t),t.length>0){var n={item_num:t.length,items:t},F={preloadInfo:n};return U&&(F.abr=1),hU.preload("updatePreloadCacheInfo",n),F}}return null}},{key:"getPreloadStat",value:function(){var e=this.playerConfig.vid||this.config.vid;if(this.preloadManager&&this.preloadManager._preloadCacheProgress){var U={},t=this.preloadManager.getProgressCacheKey(e,"dash","video"),n=this.preloadManager.getProgressCacheKey(e,"dash","audio");return U.video=this.preloadManager._preloadCacheProgress[t],U.audio=this.preloadManager._preloadCacheProgress[n],U}return{}}},{key:"_onBufferReachThreshold",value:function(){var e=this.player;if(e.video){for(var U=e.video.buffered,t=0,n=0,F=0;F<U.length&&(t=U.start(F),n=U.end(F),!(t<=e.video.currentTime&&e.video.currentTime<=n));F++);n-e.video.currentTime>=this._bufferThreshold&&!this._hasTriggerBufferThreshold&&(this._hasTriggerBufferThreshold=!0,e.emit("BUFFER_THRESHOLD",n-e.video.currentTime))}}},{key:"_startBufferCheck",value:function(){var e=this,U=this.player;this._bufferCheckTimer=setInterval((function(){if(U.video){for(var t=[],n=0,F=U.video.buffered.length;n<F;n++)t.push([U.video.buffered.start(n),U.video.buffered.end(n)]);t.toString()!==e.lastBuffer&&(e.lastBuffer=t.toString(),e._onBufferReachThreshold())}}),200)}},{key:"_setStartTime",value:function(e,U,t,n){var F=this,Q=this.player,l=this.playerConfig,i=this.config;if(U>0||n){var d=!1,r=function(){d||(d=!0,Q.currentTime=U,l.startTime=0,t&&U>0&&Q.emit("setStartTime"),"mp4"===i.defaultFormat&&F.setCodeInfo(jn))};Ut.once(Q,"canplay",r,e),Ut.once(Q,"playing",r,e)}}},{key:"preloadManager",get:function(){return this.dashPreloader?this.dashPreloader.preloadManager:null}},{key:"domain",get:function(){return this._cdnHost?this._cdnHost:null}},{key:"playerType",get:function(){return this.config.defaultFormat}},{key:"supportMenus",get:function(){var e="dash"===this.config.defaultFormat;return{speed:e,cdn:e,resolution:e}}},{key:"currentDefitionFromPlayer",get:function(){return this._currentDefinition}},{key:"abrInstance",get:function(){return this._kernal&&this._kernal.abrInstance?this._kernal.abrInstance:null}},{key:"menuCodeType",get:function(){return this._menuCodeType},set:function(e){var U=this.player;this._menuCodeType=e,U.emit("codecsupdate",e)}},{key:"stat",get:function(){var e=this.player;if(this._kernal&&!e.isSrcVoid){var U=this._kernal.getStat();return U.steps=this.steps.slice(0,Math.max(10,this.steps.length)),this.steps=[],e.video&&e.video.error&&(U.media={readyState:e.video.readyState,error:e.video.error.code,errorMsg:e.video.error.message}),U}return null}},{key:"loadURL",get:function(){return this._loadURL},set:function(e){this._loadURL=e;var U=Ut.getHostFromUrl(e);this._cdnHost!==U&&(this._cdnHost=U,this.player&&this.player.emit("changeHost",U))}}],[{key:"registerPreloader",value:function(e){var U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e.vtype=xt.DASH,eQ.BitRateAdapter=U,new eQ(null,e,console.log)}},{key:"pluginName",get:function(){return"DASHPlugin"}},{key:"defaultConfig",get:function(){return{bufferThreshold:10,defaultFormat:"dash",useEME:null,getLicenseUrl:"",intertrustServerURL:null,defaultDefinition:null,useGapJump:!0,useDurationBackoff:!1,preloadTime:void 0,maxBufferLength:void 0,minBufferLength:10,dynamicPreloadTimeOpts:null,preloadCancelTime:5,progressTimer:1e3,disableCanplayCheck:!0,disableDashNoCanplayCheck:!0,disableBufferBreakCheck:!0,definitionText:null,useUnionInfoDRM:!1,keyTokenExpiredDuration:null,keyToken:null,playDomain:null,usePlaySpade:!1,preloadBufferThreshold:.5,vtype:xt.DASH,focusUserDefinition:!1,useProgressiveAppend:!1,loader:bF,logMaxSize:204800,timeout:5e3,reqOptions:{}}}},{key:"isEMESupported",value:function(){return AU()}},{key:"encryptUtils",get:function(){return qU}},{key:"DashPreloader",get:function(){return eQ}}]),t}(d.BasePlugin);return Pl.updateUnionInfo=rQ.XGSecretKey.updateUnionInfo,Pl}));
|