@volcengine/veplayer 1.11.1-rc.1 → 1.12.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/plugin/dash.js ADDED
@@ -0,0 +1,2 @@
1
+ // Built @Thu, 14 Nov 2024 07:42:09 GMT
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(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.promise.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.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.object.values.js"),require("core-js/modules/es.array.sort.js"),require("core-js/modules/es.array.filter.js"),require("core-js/modules/es.number.is-finite.js"),require("core-js/modules/es.string.iterator.js"),require("core-js/modules/web.dom-collections.iterator.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.array.splice.js"),require("core-js/modules/es.function.name.js"),require("core-js/modules/es.array.fill.js"),require("core-js/modules/es.string.split.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.number.is-nan.js"),require("core-js/modules/es.typed-array.int32-array.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.promise.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.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.object.values.js","core-js/modules/es.array.sort.js","core-js/modules/es.array.filter.js","core-js/modules/es.number.is-finite.js","core-js/modules/es.string.iterator.js","core-js/modules/web.dom-collections.iterator.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.array.splice.js","core-js/modules/es.function.name.js","core-js/modules/es.array.fill.js","core-js/modules/es.string.split.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.number.is-nan.js","core-js/modules/es.typed-array.int32-array.js","core-js/modules/es.string.repeat.js","core-js/modules/es.array.find.js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).DashPlugin=t(null,null,null,null,null,null,null,null,e.Player)}(this,(function(e,t,n,U,F,a,i,Q,l){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(){o=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},a=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",Q=F.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(f){l=function(e,t,n){return e[t]=n}}function r(e,t,n,F){var a=t&&t.prototype instanceof B?t:B,i=Object.create(a.prototype),Q=new k(F||[]);return U(i,"_invoke",{value:J(e,n,Q)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(f){return{type:"throw",arg:f}}}e.wrap=r;var s={};function B(){}function c(){}function R(){}var u={};l(u,a,(function(){return this}));var V=Object.getPrototypeOf,h=V&&V(V(E([])));h&&h!==t&&n.call(h,a)&&(u=h);var Z=R.prototype=B.prototype=Object.create(u);function S(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function p(e,t){function F(U,a,i,Q){var l=d(e[U],e,a);if("throw"!==l.type){var r=l.arg,o=r.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,Q)}),(function(e){F("throw",e,i,Q)})):t.resolve(o).then((function(e){r.value=e,i(r)}),(function(e){return F("throw",e,i,Q)}))}Q(l.arg)}var a;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return a=a?a.then(U,U):U()}})}function J(e,t,n){var U="suspendedStart";return function(F,a){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw a;return{value:void 0,done:!0}}for(n.method=F,n.arg=a;;){var i=n.delegate;if(i){var Q=m(i,n);if(Q){if(Q===s)continue;return Q}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var l=d(e,t,n);if("normal"===l.type){if(U=n.done?"completed":"suspendedYield",l.arg===s)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(U="completed",n.method="throw",n.arg=l.arg)}}}function m(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,m(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),s;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,s;var a=F.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}function b(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function W(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(b,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:y}}function y(){return{value:void 0,done:!0}}return c.prototype=R,U(Z,"constructor",{value:R,configurable:!0}),U(R,"constructor",{value:c,configurable:!0}),c.displayName=l(R,Q,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===c||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,R):(e.__proto__=R,l(e,Q,"GeneratorFunction")),e.prototype=Object.create(Z),e},e.awrap=function(e){return{__await:e}},S(p.prototype),l(p.prototype,i,(function(){return this})),e.AsyncIterator=p,e.async=function(t,n,U,F,a){void 0===a&&(a=Promise);var i=new p(r(t,n,U,F),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},S(Z),l(Z,Q,"Generator"),l(Z,a,(function(){return this})),l(Z,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=E,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(W),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=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 t=this;function U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var a=this.tryEntries[F],i=a.completion;if("root"===a.tryLoc)return U("end");if(a.tryLoc<=this.prev){var Q=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(Q&&l){if(this.prev<a.catchLoc)return U(a.catchLoc,!0);if(this.prev<a.finallyLoc)return U(a.finallyLoc)}else if(Q){if(this.prev<a.catchLoc)return U(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return U(a.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var a=F;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,s):this.complete(i)},complete:function(e,t){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&&t&&(this.next=t),s},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),W(n),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;W(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:E(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),s}},e}function s(e){return(s="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 B(e,t,n,U,F,a,i){try{var Q=e[a](i),l=Q.value}catch(r){return void n(r)}Q.done?t(l):Promise.resolve(l).then(U,F)}function c(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var a=e.apply(t,n);function i(e){B(a,U,F,i,Q,"next",e)}function Q(e){B(a,U,F,i,Q,"throw",e)}i(void 0)}))}}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,N(U.key),U)}}function V(e,t,n){return t&&u(e.prototype,t),n&&u(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function h(e,t,n){return(t=N(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Z(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&p(e,t)}function S(e){return(S=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function p(e,t){return(p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function J(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},a=Object.keys(e);for(U=0;U<a.length;U++)n=a[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(U=0;U<a.length;U++)n=a[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(e){var t=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 n,U=S(e);if(t){var F=S(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}(this,n)}}function W(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var U,F,a,i,Q=[],l=!0,r=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(U=a.call(n)).done)&&(Q.push(U.value),Q.length!==t);l=!0);}catch(d){r=!0,F=d}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(r)throw F}}return Q}}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(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)||E(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 E(e,t){if(e){if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function f(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=E(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},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 a,i=!0,Q=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){Q=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(Q)throw a}}}}function N(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var v=function(){function e(){R(this,e)}return V(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(t){var n=Date.now(),U=Math.max(16.7-(n-e),0),F=setTimeout(t,U);return e=n+U,F}}window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})}}]),e}(),T=function(){function e(){R(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 V(e,[{key:"_step",value:function(e){var t=this.ticks;if(t.unshift(e),t.length>10){var n=t.pop();n&&(this.fps=Math.floor(1e4/(e-n)),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(){v.install()}}]),e}(),C=function(){function e(){R(this,e),this.timeID=null,this.func=null}return V(e,[{key:"repeat",value:function(e,t){this.timeID=1,this.repeatInterval(e,t)}},{key:"repeatInterval",value:function(e,t){var n=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(),n.repeatInterval(e,t)}),t)))}},{key:"clear",value:function(){clearTimeout(this.timeID),this.timeID=null}}]),e}(),g=D&&!function(){var e="_localstorage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(t){return!0}}();function D(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}var X={length:g?localStorage.length:0,clear:function(e){try{for(var t=localStorage.length-1;t>=0;t--){var n=localStorage.key(t);0===n.indexOf(e)&&localStorage.removeItem(n)}}catch(U){}},getItem:function(e){try{return localStorage.getItem(e)}catch(t){return null}},key:function(e){try{return localStorage.key(e)}catch(t){return null}},setItem:function(e,t){try{localStorage.setItem(e,t)}catch(n){}},removeItem:function(e){try{localStorage.removeItem(e)}catch(t){}},isSupport:g},x=function(){function e(){var t,n;R(this,e);var U=new Promise((function(e,U){t=e,n=U}));return U.resolve=t,U.reject=n,U}return V(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}(),L=function(){function e(){R(this,e)}return V(e,null,[{key:"parse",value:function(t){var n=e.parseXmlString(t);return null!==n?e.parseDOMChildren(n):null}},{key:"parseXmlString",value:function(e){if(void 0===e)return null;var t,n=new window.DOMParser;try{(t=n.parseFromString(e,"text/xml")).getElementsByTagNameNS("*","parsererror").length>0&&(t=null)}catch(U){t=null}return t}},{key:"parseDOMChildren",value:function(t,n){if(t.nodeType===Node.DOCUMENT_NODE){for(var U={},F=t.childNodes,a=0;a<F.length;a++){var i=F[a];i.nodeType===Node.ELEMENT_NODE&&(U=e.parseDOMChildren(i))}return U}if(t.nodeType===Node.ELEMENT_NODE){for(var Q={__cnt:0},l=[],r=t.childNodes,d=0;d<r.length;d++){var o=r[d],s=e.getNodeLocalName(o);if(o.nodeType!==Node.COMMENT_NODE){var B="".concat(n,".").concat(s);if(Q.__cnt++,null==Q[s]){var c=e.parseDOMChildren(o,B);if("#text"!==s||/[^\s]/.test(c)){var R={};R[s]=c,l.push(R)}Q[s]=c,e.toArrayAccessForm(Q,s)}else{null!=Q[s]&&(Q[s]instanceof Array||(Q[s]=[Q[s]],e.toArrayAccessForm(Q,s,B)));var u=e.parseDOMChildren(o,B);if("#text"!==s||/[^\s]/.test(u)){var V={};V[s]=u,l.push(V)}Q[s][Q[s].length]=u}}}for(var h=0;h<t.attributes.length;h++){var Z=t.attributes[h];Q.__cnt++;var S=Z.value;Q[Z.name]=S}var p=t.prefix;return null!=p&&""!==p&&(Q.__cnt++,Q.__prefix=p),null!=Q["#text"]&&(Q.__text=Q["#text"],Q.__text instanceof Array&&(Q.__text=Q.__text.join("\n")),delete Q["#text"],delete Q["#text_asArray"]),null!=Q["#cdata-section"]&&(Q.__cdata=Q["#cdata-section"],delete Q["#cdata-section"],delete Q["#cdata-section_asArray"]),1===Q.__cnt&&null!=Q.__text?Q=Q.__text:1===Q.__cnt&&null!=Q.__cdata&&(Q=Q.__cdata),delete Q.__cnt,Q}if(t.nodeType===Node.TEXT_NODE||t.nodeType===Node.CDATA_SECTION_NODE)return t.nodeValue}},{key:"getNodeLocalName",value:function(e){var t=e.localName;return null==t&&(t=e.baseName),null!=t&&""!==t||(t=e.nodeName),t}},{key:"toArrayAccessForm",value:function(e,t){e[t]instanceof Array||(e[t]=[e[t]])}}]),e}();function I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function G(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?I(Object(n),!0).forEach((function(t){P(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function M(){M=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},a=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",Q=F.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(y){l=function(e,t,n){return e[t]=n}}function r(e,t,n,F){var a=t&&t.prototype instanceof s?t:s,i=Object.create(a.prototype),Q=new W(F||[]);return U(i,"_invoke",{value:p(e,n,Q)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(y){return{type:"throw",arg:y}}}e.wrap=r;var o={};function s(){}function B(){}function c(){}var R={};l(R,a,(function(){return this}));var u=Object.getPrototypeOf,V=u&&u(u(k([])));V&&V!==t&&n.call(V,a)&&(R=V);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,a,i,Q){var l=d(e[U],e,a);if("throw"!==l.type){var r=l.arg,o=r.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,Q)}),(function(e){F("throw",e,i,Q)})):t.resolve(o).then((function(e){r.value=e,i(r)}),(function(e){return F("throw",e,i,Q)}))}Q(l.arg)}var a;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return a=a?a.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,a){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw a;return{value:void 0,done:!0}}for(n.method=F,n.arg=a;;){var i=n.delegate;if(i){var Q=J(i,n);if(Q){if(Q===o)continue;return Q}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var l=d(e,t,n);if("normal"===l.type){if(U=n.done?"completed":"suspendedYield",l.arg===o)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(U="completed",n.method="throw",n.arg=l.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var a=F.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function b(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function W(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function k(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:E}}function E(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=l(c,Q,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,l(e,Q,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),l(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,a){void 0===a&&(a=Promise);var i=new S(r(t,n,U,F),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),l(h,Q,"Generator"),l(h,a,(function(){return this})),l(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=k,W.prototype={constructor:W,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(b),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=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 t=this;function U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var a=this.tryEntries[F],i=a.completion;if("root"===a.tryLoc)return U("end");if(a.tryLoc<=this.prev){var Q=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(Q&&l){if(this.prev<a.catchLoc)return U(a.catchLoc,!0);if(this.prev<a.finallyLoc)return U(a.finallyLoc)}else if(Q){if(this.prev<a.catchLoc)return U(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return U(a.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var a=F;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,o):this.complete(i)},complete:function(e,t){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&&t&&(this.next=t),o},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),b(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;b(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:k(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function Y(e){return(Y="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 w(e,t,n,U,F,a,i){try{var Q=e[a](i),l=Q.value}catch(r){return void n(r)}Q.done?t(l):Promise.resolve(l).then(U,F)}function K(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var a=e.apply(t,n);function i(e){w(a,U,F,i,Q,"next",e)}function Q(e){w(a,U,F,i,Q,"throw",e)}i(void 0)}))}}function _(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function j(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,Qe(U.key),U)}}function H(e,t,n){return t&&j(e.prototype,t),n&&j(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function P(e,t,n){return(t=Qe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&A(e,t)}function O(e){return(O=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function A(e,t){return(A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function q(){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 $(e,t,n){return($=q()?Reflect.construct.bind():function(e,t,n){var U=[null];U.push.apply(U,t);var F=new(Function.bind.apply(e,U));return n&&A(F,n.prototype),F}).apply(null,arguments)}function ee(e){var t="function"==typeof Map?new Map:void 0;return ee=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,U)}function U(){return $(e,arguments,O(this).constructor)}return U.prototype=Object.create(e.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),A(U,e)},ee(e)}function te(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},a=Object.keys(e);for(U=0;U<a.length;U++)n=a[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(U=0;U<a.length;U++)n=a[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function ne(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ue(e){var t=q();return function(){var n,U=O(e);if(t){var F=O(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return ne(e)}(this,n)}}function Fe(){return Fe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var U=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=O(e)););return e}(e,t);if(U){var F=Object.getOwnPropertyDescriptor(U,t);return F.get?F.get.call(arguments.length<3?e:n):F.value}},Fe.apply(this,arguments)}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function ie(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ae(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ae(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},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 a,i=!0,Q=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){Q=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(Q)throw a}}}}function Qe(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}Promise.withResolvers||(Promise.withResolvers=function(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e});var le,re=function(){function e(){_(this,e)}return H(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(t){}}},{key:"buffers",value:function(e,t){if(!e||!e.length)return[];for(var n=[],U=0,F=e.length;U<F;U++){var a=n.length;if(a&&t){var i=n[a-1],Q=i[1];if(e.start(U)-Q<=t){var l=e.end(U);l>Q&&(i[1]=l)}else n.push([e.start(U),e.end(U)])}else n.push([e.start(U),e.end(U)])}return n}},{key:"totalLength",value:function(e){return e&&e.length?e.reduce((function(e,t){return e+(t[1]-t[0])}),0):0}},{key:"info",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(!t||!t.length)return{start:0,end:0,buffers:[]};for(var F=0,a=0,i=0,Q=0,l=0,r=0,d=0,o=e.buffers(t,U),s=0,B=o.length;s<B;s++){var c=o[s];if(n+U>=c[0]&&n<=c[1])F=c[0],a=c[1],i=s;else{if(n+U<c[0]){Q=c[0],l=c[1];break}n+U>c[1]&&(r=c[0],d=c[1])}}return{start:F,end:a,index:i,buffers:o,nextStart:Q,nextEnd:l,prevStart:r,prevEnd:d,currentTime:n,behind:n-F,remaining:a?a-n:0,length:e.totalLength&&e.totalLength(o)}}}]),e}(),de="undefined"!=typeof window,oe="manifest",se="network",Be="network_timeout",ce="network_forbidden",Re="network_notfound",ue="network_range_not_satisfiable",Ve="demux",he="remux",Ze="media",Se="drm",pe="other",Je="runtime",me={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",MSE_CHANGE_TYPE:"MSE_CHANGE_TYPE",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"},be=(P(le={},oe,{HLS:1100,DASH:1200}),P(le,se,2100),P(le,Be,2101),P(le,ce,2103),P(le,Re,2104),P(le,ue,2116),P(le,Ve,{FLV:3100,HLS:3200,MP4:3300,FMP4:3400,SIDX:3410}),P(le,he,{FMP4:4100,MP4:4200}),P(le,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,MSE_CHANGE_TYPE:5205,EME_HIJACK:5301}),P(le,Se,{LICENSE:7100,CUSTOM_LICENSE:7200}),P(le,pe,8e3),P(le,Je,{NO_CANPLAY_ERROR:9001,BUFFERBREAK_ERROR:9002,WAITING_TIMEOUT_ERROR:9003}),le),We=function(e){z(n,e);var t=Ue(n);function n(e,U,F,a,i){var Q;return _(this,n),(Q=t.call(this,i||(null==F?void 0:F.message))).errorType=e===Be?se:e,Q.originError=F,Q.ext=a,Q.errorCode=be[e][U]||be[e],Q.errorMessage=Q.message,Q.errorCode||(Q.errorType=pe,Q.errorCode=be[Q.errorType]),Q}return H(n,null,[{key:"create",value:function(e,t,U,F,a){return e instanceof n?e:(e instanceof Error&&(U=e,e=""),e||(e=pe),new n(e,t,U,F,a))}},{key:"network",value:function(e){var t;return new n(null!=e&&e.isTimeout?Be:se,null,e instanceof Error?e:null,{url:null==e?void 0:e.url,response:null==e?void 0:e.response,httpCode:null==e||null===(t=e.response)||void 0===t?void 0:t.status})}}]),n}(ee(Error)),ke={DEBUG:1,LOG:2,WARN:3,ERROR:4},Ee=["Boolean","Number","String","Undefined","Null","Date","Object"],ye=function(){function e(t,n){_(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return H(e,[{key:"debug",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[ke.DEBUG].concat(U)),e.disabled||(t=console).debug.apply(t,[this._prefix,fe()].concat(U))}},{key:"log",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[ke.LOG].concat(U)),e.disabled||(t=console).log.apply(t,[this._prefix,fe()].concat(U))}},{key:"warn",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[ke.WARN].concat(U)),e.disabled||(t=console).warn.apply(t,[this._prefix,fe()].concat(U))}},{key:"error",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[ke.ERROR].concat(U)),e.disabled||(t=console).error.apply(t,[this._prefix,fe()].concat(U))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];var a=U.map((function(e){return ve(e)}));t=this._prefix+fe()+JSON.stringify(a)}catch(Q){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var i=this.logTextArray.shift();this.logSize-=i.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 t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,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 Ne(e){if("object"!==Y(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function ve(e,t,n){n||(n=1),t||(t=2);var U={};if(!e||"object"!==Y(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!Ee.includes(F))return F;if(!(n>t)){for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n===t?U[a]=Ne(e[a]):"object"===Y(e[a])?U[a]=ve(e[a],t,n+1):U[a]=e[a]);return U}}function Te(){var e,t,n=new Promise((function(n,U){e=n,t=U}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}function Ce(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}}P(ye,"disabled",!0);var ge=function(e){try{return JSON.stringify(e)}catch(t){return""}};function De(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];try{return de?e&&"undefined"!=typeof ManagedMediaSource?ManagedMediaSource:window.MediaSource:null}catch(t){}}function Xe(e){return/ManagedMediaSource/gi.test(Object.prototype.toString.call(e))}var xe="appendBuffer",Le="removeBuffer",Ie="updateDuration",Ge=function(){function e(t,n){var U=this;_(this,e),P(this,"media",null),P(this,"mediaSource",null),P(this,"_openPromise",Te()),P(this,"_queue",Object.create(null)),P(this,"_sourceBuffer",Object.create(null)),P(this,"_mseFullFlag",{}),P(this,"_st",0),P(this,"_opst",0),P(this,"_logger",null),P(this,"_config",null),P(this,"_url",null),P(this,"_onStartStreaming",(function(){U._logger.debug("startstreaming")})),P(this,"_onEndStreaming",(function(){U._logger.debug("endstreaming")})),P(this,"_onSBUpdateEnd",(function(e){var t=U._queue[e];if(t){var n=t[0];if((null==n?void 0:n.opName)!==Ie&&t.shift(),n){var F,a,i=Ce()-U._opst;U._logger.debug("UpdateEnd(".concat(e,"/").concat(n.opName,")"),ge(function(e){var t=[];if(e instanceof TimeRanges)for(var n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}(null===(F=U._sourceBuffer[e])||void 0===F?void 0:F.buffered)),i,n.context),n.promise.resolve({name:n.opName,context:n.context,costtime:i});var Q=null===(a=n.context)||void 0===a?void 0:a.callback;Q&&"function"==typeof Q&&Q(n.context),U._startQueue(e)}}})),P(this,"_onSBUpdateError",(function(e,t){var n=U._queue[e];if(n){var F=n[0];F&&(U._logger.error("UpdateError",e,F.opName,F.context),F.promise.reject(new We(Ze,me.MSE_APPEND_BUFFER,t)))}})),this._config=Object.assign(e.getDefaultConfig(),n),t&&this.bindMedia(t),this._logger=new ye("MSE"),this._config.openLog&&ye.enable()}var t,n,U;return H(e,[{key:"isOpened",get:function(){var e;return"open"===(null===(e=this.mediaSource)||void 0===e?void 0:e.readyState)}},{key:"hasOpTasks",get:function(){var e=this,t=!1;return Object.keys(this._queue).forEach((function(n){var U=e._queue[n];Array.isArray(U)&&(t||(t=U.length>0))})),t}},{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:"streaming",get:function(){return!Xe(this.mediaSource)||this.mediaSource.streaming}},{key:"isFull",value:function(t){return t?this._mseFullFlag[t]:this._mseFullFlag[e.VIDEO]}},{key:"updateDuration",value:function(e){var t=this,n=this.mediaSource&&this.mediaSource.duration>e;if(this.mediaSource&&this.mediaSource.duration>e){var U=0;if(Object.keys(this._sourceBuffer).forEach((function(e){try{U=Math.max(t.bufferEnd(e)||0,U)}catch(n){}})),e<U)return Promise.resolve()}return this._enqueueBlockingOp((function(){t.isEnded?t._logger.debug("setDuration but ended"):t.mediaSource&&(t.mediaSource.duration=e,t._logger.debug("setDuration",e))}),Ie,{isReduceDuration:n})}},{key:"open",value:function(){var e=this;if(this._openPromise.used&&!this.isOpened&&this.mediaSource){var t=this.mediaSource;t.addEventListener("sourceopen",(function n(){var U=Ce()-e._st;e._logger.debug("sourceopen",U),t.removeEventListener("sourceopen",n),e._openPromise.resolve({costtime:U})})),this._openPromise=Te()}return this._openPromise}},{key:"bindMedia",value:(U=K(M().mark((function e(t){var n,U,F,a,i=this;return M().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(n=De(this._config.preferMMS),t&&n){e.next=6;break}throw new Error("Param media or MediaSource does not exist");case 6:return this.media=t,U=this.mediaSource=new n,F=Xe(U),this._st=Ce(),a=function e(){var n=Ce()-i._st;i._logger.debug("sourceopen"),U.removeEventListener("sourceopen",e),URL.revokeObjectURL(t.src),i._openPromise.resolve({costtime:n})},U.addEventListener("sourceopen",a),F&&(U.addEventListener("startstreaming",this._onStartStreaming),U.addEventListener("endstreaming",this._onEndStreaming)),this._url=URL.createObjectURL(U),t.src=this._url,t.disableRemotePlayback=F,e.abrupt("return",this._openPromise);case 17:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"unbindMedia",value:(n=K(M().mark((function e(){var t,n,U,F=this;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._openPromise.used||this._openPromise.resolve(),t=this.mediaSource){if(Object.keys(this._queue).forEach((function(e){var t=F._queue[e];t&&t.forEach((function(e){var t,n;return null===(t=e.promise)||void 0===t||null===(n=t.resolve)||void 0===n?void 0:n.call(t)}))})),n=!!this.media&&this.media.readyState>=1,U="open"===t.readyState,n&&U)try{t.endOfStream()}catch(a){}Object.keys(this._sourceBuffer).forEach((function(e){try{t.removeSourceBuffer(F._sourceBuffer[e])}catch(a){}})),Xe(t)&&(t.removeEventListener("startstreaming",this._onStartStreaming),t.removeEventListener("endstreaming",this._onEndStreaming))}if(this.media){this.media.disableRemotePlayback=!1,this.media.removeAttribute("src");try{this.media.load()}catch(a){}this.media=null}this.mediaSource=null,this._openPromise=Te(),this._queue=Object.create(null),this._sourceBuffer=Object.create(null);case 8:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"createSource",value:function(e,t){if(!this._sourceBuffer[e]&&this.mediaSource){var n;try{n=this._sourceBuffer[e]=this.mediaSource.addSourceBuffer(t)}catch(U){throw new We(Ze,me.MSE_ADD_SB,U)}n.mimeType=t,n.addEventListener("updateend",this._onSBUpdateEnd.bind(this,e)),n.addEventListener("error",this._onSBUpdateError.bind(this,e))}}},{key:"changeType",value:function(e,t){var n=this,U=this._sourceBuffer[e];return this.mediaSource&&U&&U.mimeType!==t?"function"!=typeof U.changeType?Promise.reject(new We(Ze,me.MSE_CHANGE_TYPE,new Error("changeType is not a function"))):this._enqueueOp(e,(function(){try{U.changeType(t)}catch(F){throw new We(Ze,me.MSE_CHANGE_TYPE,F)}U.mimeType=t,n._onSBUpdateEnd(e)}),"changeType",{mimeType:t}):Promise.resolve()}},{key:"createOrChangeSource",value:function(e,t){return this.createSource(e,t),this.changeType(e,t)}},{key:"append",value:function(e,t,n){var U=this;return t&&t.byteLength&&this._sourceBuffer[e]?this._enqueueOp(e,(function(){var F;U.mediaSource&&!U.media.error&&(U._logger.debug("MSE APPEND START",n),U._opst=Ce(),null===(F=U._sourceBuffer[e])||void 0===F||F.appendBuffer(t))}),xe,n):Promise.resolve()}},{key:"remove",value:function(e,t,n,U){var F=this,a=!1;return this._mseFullFlag[e]&&(a=!0),this._enqueueOp(e,(function(){if(F.mediaSource&&!F.media.error){var a=F._sourceBuffer[e];t>=n||!a?F._onSBUpdateEnd(e):(F._opst=Ce(),F._logger.debug("MSE REMOVE START",e,t,n,U),a.remove(t,n))}}),Le,U,a)}},{key:"clearBuffer",value:function(e,t){var n,U=this;return Object.keys(this._sourceBuffer).forEach((function(F){n=U.remove(F,e,t)})),n||Promise.resolve()}},{key:"clearAllBuffer",value:function(){var e,t=this;return Object.keys(this._sourceBuffer).forEach((function(n){var U=t._sourceBuffer[n];e=t.remove(n,0,re.end(re.get(U)))})),e}},{key:"clearOpQueues",value:function(e,t){var n;this._logger.debug("MSE clearOpQueue START");var U=this._queue[e];if(t&&U)this._queue[e]=[];else if(U&&U[e]&&!(U.length<5)){var F=[];U.forEach((function(e){e.context&&e.context.isinit&&F.push(e)})),this._queue[e]=U.slice(0,2),F.length>0&&(n=this._queue[e]).push.apply(n,F)}}},{key:"endOfStream",value:function(e){var t=this;return this.mediaSource&&"open"===this.mediaSource.readyState?this._enqueueBlockingOp((function(){var n=t.mediaSource;n&&"open"===n.readyState&&(t._logger.debug("MSE endOfStream START"),e?n.endOfStream(e):n.endOfStream())}),"endOfStream"):Promise.resolve()}},{key:"setLiveSeekableRange",value:function(e,t){var n=this.mediaSource;e<0||t<e||null==n||!n.setLiveSeekableRange||"open"!==n.readyState||n.setLiveSeekableRange(e,t)}},{key:"getSourceBuffer",value:function(e){return this._sourceBuffer[e]}},{key:"buffered",value:function(e){return re.get(this._sourceBuffer[e])}},{key:"bufferStart",value:function(e){return re.start(this.buffered(e))}},{key:"bufferEnd",value:function(e){return re.end(this.buffered(e))}},{key:"_enqueueOp",value:function(e,t,n,U,F){var a=this;if(!this.mediaSource)return Promise.resolve();var i=this._queue[e]=this._queue[e]||[],Q={exec:t,promise:Te(),opName:n,context:U};return F?(i.splice(0,0,Q),this._mseFullFlag[e]=!1,this._startQueue(e)):i.push(Q),this.isOpened||this.isEnded?1===i.length&&this._startQueue(e):this._openPromise.then((function(){1===i.length&&a._startQueue(e)})),Q.promise}},{key:"_enqueueBlockingOp",value:(t=K(M().mark((function e(t,n,U){var F,a,i=this;return M().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",t());case 5:return a=[],F.forEach((function(e){var t=i._queue[e],F=Te();a.push(F),t.push({exec:function(){F.resolve()},promise:F,opName:n,context:U}),1===t.length&&i._startQueue(e)})),e.abrupt("return",Promise.all(a).then((function(){try{return t()}finally{F.forEach((function(e){var t=i._queue[e],n=i._sourceBuffer[e];null==t||t.shift(),n&&n.updating||i._startQueue(e)}))}})));case 8:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.apply(this,arguments)})},{key:"_startQueue",value:function(e){var t=this._queue[e];if(t){var n=t[0];if(n&&!this._mseFullFlag[e])try{n.exec()}catch(U){U&&U.message&&U.message.indexOf("SourceBuffer is full")>=0?(this._mseFullFlag[e]=!0,n.context&&"object"===Y(n.context)&&(n.context.isFull=!0),this._logger.error("[MSE error], context,",n.context," ,name,",n.opName,",err,SourceBuffer is full"),n.promise.reject(new We(Ze,me.MSE_FULL,U))):(this._logger.error(U),n.promise.reject(U.constructor===We?U:new We(Ze,me.MSE_OTHER,U)),t.shift(),this._startQueue(e))}}}},{key:"setTimeoffset",value:function(e,t,n){var U=this;return this._enqueueOp(e,(function(){t<0&&(t+=.001),U._sourceBuffer[e].timestampOffset=t,U._onSBUpdateEnd(e)}),"setTimeoffset",n)}},{key:"abort",value:function(e,t){var n=this;return this.isOpened?this._enqueueOp(e,(function(){n._sourceBuffer[e].abort(),n._onSBUpdateEnd(e)}),"abort",t):Promise.resolve()}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"',t=De();if(!t)return!1;try{return t.isTypeSupported(e)}catch(n){return this._logger.error(e,n),!1}}},{key:"isMMSOnly",value:function(){return"undefined"!=typeof ManagedMediaSource&&"undefined"==typeof MediaSource}},{key:"getDefaultConfig",value:function(){return{openLog:!1,preferMMS:!1}}}]),e}();P(Ge,"VIDEO","video"),P(Ge,"AUDIO","audio");var Me="fetch",Ye="xhr",we="arraybuffer",Ke="text",_e="json",je=function(e){z(n,e);var t=Ue(n);function n(e,U,F,a){var i;return _(this,n),P(ne(i=t.call(this,a)),"retryCount",0),P(ne(i),"isTimeout",!1),P(ne(i),"loaderType",Me),P(ne(i),"startTime",0),P(ne(i),"endTime",0),P(ne(i),"options",{}),i.url=e,i.request=U,i.response=F,i}return H(n)}(ee(Error)),He=Object.prototype.toString;function Pe(e){if("[object Object]"!==He.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function ze(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function Oe(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ae(e,t){if(e){if(!t)return e;var n,U=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){var n;return n=t,"[object Date]"===He.call(n)?t=t.toISOString():function(e){return null!==e&&"object"===Y(e)}(t)&&(t=JSON.stringify(t)),"".concat(Oe(e),"=").concat(Oe(t))})).join("&")})).filter(Boolean).join("&");if(U){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+U}return e}}function qe(e,t,n,U,F,a,i,Q,l,r,d){return F=null!=F?parseFloat(F):null,U=parseInt(U||"0",10),Number.isNaN(U)&&(U=0),{data:e,done:t,options:{range:l,vid:r,index:Q,contentLength:U,age:F,startTime:a,firstByteTime:i,endTime:Date.now(),priOptions:d},response:n}}function $e(e,t){return Math.round(8*e*1e3/t/1024)}var et="error",tt="real_time_speed",nt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Ut(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ft={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function U(){}function F(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,U,a,i){if("function"!=typeof U)throw new TypeError("The listener must be a function");var Q=new F(U,a||e,i),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],Q]:e._events[l].push(Q):(e._events[l]=Q,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new U:delete e._events[t]}function Q(){this._events=new U,this._eventsCount=0}Object.create&&(U.prototype=Object.create(null),(new U).__proto__||(n=!1)),Q.prototype.eventNames=function(){var e,U,F=[];if(0===this._eventsCount)return F;for(U in e=this._events)t.call(e,U)&&F.push(n?U.slice(1):U);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},Q.prototype.listeners=function(e){var t=n?n+e:e,U=this._events[t];if(!U)return[];if(U.fn)return[U.fn];for(var F=0,a=U.length,i=new Array(a);F<a;F++)i[F]=U[F].fn;return i},Q.prototype.listenerCount=function(e){var t=n?n+e:e,U=this._events[t];return U?U.fn?1:U.length:0},Q.prototype.emit=function(e,t,U,F,a,i){var Q=n?n+e:e;if(!this._events[Q])return!1;var l,r,d=this._events[Q],o=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),o){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,U),!0;case 4:return d.fn.call(d.context,t,U,F),!0;case 5:return d.fn.call(d.context,t,U,F,a),!0;case 6:return d.fn.call(d.context,t,U,F,a,i),!0}for(r=1,l=new Array(o-1);r<o;r++)l[r-1]=arguments[r];d.fn.apply(d.context,l)}else{var s,B=d.length;for(r=0;r<B;r++)switch(d[r].once&&this.removeListener(e,d[r].fn,void 0,!0),o){case 1:d[r].fn.call(d[r].context);break;case 2:d[r].fn.call(d[r].context,t);break;case 3:d[r].fn.call(d[r].context,t,U);break;case 4:d[r].fn.call(d[r].context,t,U,F);break;default:if(!l)for(s=1,l=new Array(o-1);s<o;s++)l[s-1]=arguments[s];d[r].fn.apply(d[r].context,l)}}return!0},Q.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},Q.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},Q.prototype.removeListener=function(e,t,U,F){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return i(this,a),this;var Q=this._events[a];if(Q.fn)Q.fn!==t||F&&!Q.once||U&&Q.context!==U||i(this,a);else{for(var l=0,r=[],d=Q.length;l<d;l++)(Q[l].fn!==t||F&&!Q[l].once||U&&Q[l].context!==U)&&r.push(Q[l]);r.length?this._events[a]=1===r.length?r[0]:r:i(this,a)}return this},Q.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new U,this._eventsCount=0),this},Q.prototype.off=Q.prototype.removeListener,Q.prototype.addListener=Q.prototype.on,Q.prefixed=n,Q.EventEmitter=Q,e.exports=Q}(Ft);var at=Ut(Ft.exports),it=2097152,Qt=function(e){z(U,e);var t,n=Ue(U);function U(){var e;return _(this,U),P(ne(e=n.call(this)),"_abortController",null),P(ne(e),"_timeoutTimer",null),P(ne(e),"_reader",null),P(ne(e),"_response",null),P(ne(e),"_aborted",!1),P(ne(e),"_index",-1),P(ne(e),"_range",null),P(ne(e),"_receivedLength",0),P(ne(e),"_running",!1),P(ne(e),"_logger",null),P(ne(e),"_vid",""),P(ne(e),"_onProcessMinLen",0),P(ne(e),"_onCancel",null),P(ne(e),"_priOptions",null),e}return H(U,[{key:"load",value:function(e){var t,n=this,U=e.url,F=e.vid,a=e.timeout,i=e.responseType,Q=e.onProgress,l=e.index,r=e.onTimeout,d=e.onCancel,o=e.range,s=e.transformResponse,B=e.request,c=e.params,R=e.logger,u=e.method,V=e.headers,h=e.body,Z=e.mode,S=e.credentials,p=e.cache,J=e.redirect,m=e.referrer,b=e.referrerPolicy,W=e.onProcessMinLen,k=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=W,this._onCancel=d,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=l,this._range=o||[0,0],this._vid=F||U,this._priOptions=k||{};var E={method:u,headers:V,body:h,mode:Z,credentials:S,cache:p,redirect:J,referrer:m,referrerPolicy:b,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},y=!1;clearTimeout(this._timeoutTimer),U=Ae(U,c);var f=ze(o);f&&(V=B?B.headers:E.headers=E.headers||(Headers?new Headers:{}),Headers&&V instanceof Headers?V.append("Range",f):V.Range=f),a&&(this._timeoutTimer=setTimeout((function(){if(y=!0,n.cancel(),r){var e=new je(U,E,null,"timeout");e.isTimeout=!0,r(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),a));var N=Date.now();return this._logger.debug("[fetch load start], index,",l,",range,",o),new Promise((function(e,t){fetch(B||U,B?void 0:E).then(function(){var F=K(M().mark((function F(a){var r,d,B,c;return M().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=a,!n._aborted&&n._running){F.next=4;break}return F.abrupt("return");case 4:if(s&&(a=s(a,U)||a),a.ok){F.next=7;break}throw new je(U,E,a,"bad network response");case 7:if(r=Date.now(),i!==Ke){F.next=15;break}return F.next=11,a.text();case 11:d=F.sent,n._running=!1,F.next=37;break;case 15:if(i!==_e){F.next=22;break}return F.next=18,a.json();case 18:d=F.sent,n._running=!1,F.next=37;break;case 22:if(!Q){F.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(a,Q,N,r),F.abrupt("return");case 29:return F.next=31,a.arrayBuffer();case 31:d=F.sent,d=new Uint8Array(d),n._running=!1,B=Date.now()-N,c=$e(d.byteLength,B),n.emit(tt,{speed:c,len:d.byteLength,time:B,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",l,",range,",o),e(qe(d,!0,a,a.headers.get("Content-Length"),a.headers.get("age"),N,r,l,o,n._vid,n._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!y||((e=e instanceof je?e:new je(U,E,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=N,e.endTime=Date.now(),e.isTimeout=y,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=K(M().mark((function e(){return M().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(t){}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 t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,U){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var a=new je(e.url,"",e,"onProgress of bad response.body.getReader");return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(a)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(it),this._writeIdx=0);var i,Q,l,r=this._reader=e.body.getReader(),d=function(){var a=K(M().mark((function a(){var o,s,B,c,R,u,V,h;return M().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return Q=Date.now(),a.prev=1,a.next=4,r.read();case 4:i=a.sent,l=Date.now(),a.next=13;break;case 8:return a.prev=8,a.t0=a.catch(1),l=Date.now(),F._aborted||(F._running=!1,a.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(a.t0)),a.abrupt("return");case 13:if(s=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,B=s+F._receivedLength,!F._aborted){a.next=19;break}return F._running=!1,t(void 0,!1,{range:[B,B],vid:F._vid,index:F._index,startTime:Q,endTime:l,st:n,firstByteTime:U,priOptions:F._priOptions},e),a.abrupt("return");case 19:c=i.value?i.value.byteLength:0,F._receivedLength+=c,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",B,", end,",s+F._receivedLength,", done,",i.done),F._onProcessMinLen>0?F._writeIdx+c>=F._onProcessMinLen||i.done?((R=new Uint8Array(F._writeIdx+c)).set(F._cache.slice(0,F._writeIdx),0),c>0&&R.set(i.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",i.done,",len,",R.byteLength,", writeIdx,",F._writeIdx)):c>0&&F._writeIdx+c<it?(F._cache.set(i.value,F._writeIdx),F._writeIdx+=c,F._logger.debug("【fetchLoader,onProgress cache】,len,",c,", writeIdx,",F._writeIdx)):c>0&&(u=new Uint8Array(F._writeIdx+c+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+c+2048,", datalen,",c,", writeIdx,",F._writeIdx),u.set(F._cache.slice(0,F._writeIdx),0),c>0&&u.set(i.value,F._writeIdx),F._writeIdx+=c,delete F._cache,F._cache=u,F._logger.debug("【fetchLoader,onProgress extra end】,len,",c,", writeIdx,",F._writeIdx)):R=i.value,(R&&R.byteLength>0||i.done)&&t(R,i.done,{range:[F._range[0]+F._receivedLength-(R?R.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:Q,endTime:l,st:n,firstByteTime:U,priOptions:F._priOptions},e),i.done?(V=Date.now()-n,h=$e(F._receivedLength,V),F.emit(tt,{speed:h,len:F._receivedLength,time:V,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,",i.done),F.resolve(qe(i,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,U,F._index,F._range,F._vid,F._priOptions))):d();case 25:case"end":return a.stop()}}),a,null,[[1,8]])})));return function(){return a.apply(this,arguments)}}();d()}},{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)}}]),U}(at);var lt=function(e){z(n,e);var t=Ue(n);function n(){var e;return _(this,n),P(ne(e=t.call(this)),"_xhr",null),P(ne(e),"_aborted",!1),P(ne(e),"_timeoutTimer",null),P(ne(e),"_range",null),P(ne(e),"_receivedLength",0),P(ne(e),"_url",null),P(ne(e),"_onProgress",null),P(ne(e),"_index",-1),P(ne(e),"_headers",null),P(ne(e),"_currentChunkSizeKB",384),P(ne(e),"_timeout",null),P(ne(e),"_xhr",null),P(ne(e),"_withCredentials",null),P(ne(e),"_startTime",-1),P(ne(e),"_loadCompleteResolve",null),P(ne(e),"_loadCompleteReject",null),P(ne(e),"_runing",!1),P(ne(e),"_logger",!1),P(ne(e),"_vid",""),P(ne(e),"_responseType",void 0),P(ne(e),"_credentials",void 0),P(ne(e),"_method",void 0),P(ne(e),"_transformResponse",void 0),P(ne(e),"_firstRtt",void 0),P(ne(e),"_onCancel",null),P(ne(e),"_priOptions",null),e}return H(n,[{key:"load",value:function(e){var t=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=Ae(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof je?e:new je(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===we&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,U=this._range[1];t<this._range[1]-n&&(U=n+t),e=[n,U],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 t=this;try{this._startTime=Date.now();var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,U,F;t._running=!1;var a=new je(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(U=e.currentTarget)||void 0===U?void 0:U.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));a.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(a)},n.ontimeout=function(e){t.cancel();var n=new je(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var U=this._headers||{},F=ze(e);F&&(U.Range=F),U&&Object.keys(U).forEach((function(e){n.setRequestHeader(e,U[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(a){a.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(a)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var U=new je(this._url,null,G(G({},e.target.response),{},{status:n}),"bad response,status:"+n);return U.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(U)}var F,a=null,i=!1,Q=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===we){var l,r=new Uint8Array(e.target.response);if(F=Q+this._receivedLength,r&&r.byteLength>0){this._receivedLength+=r.byteLength;var d=Date.now()-this._startTime,o=$e(this._receivedLength,d);this.emit(tt,{speed:o,len:this._receivedLength,time:d,vid:this._vid,index:this._index,range:[F,Q+this._receivedLength],priOptions:this._priOptions})}a=r,i=!((null===(l=this._range)||void 0===l?void 0:l.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 ",Q+this._receivedLength,",dataLen,",r?r.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",i)}else i=!0,a=e.target.response;var s={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(s=this._transformResponse(s,this._url)||s),this._onProgress&&this._onProgress(a,i,{index:this._index,vid:this._vid,range:[F,Q+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),i?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(qe(this._onProgress?null:a,i,s,s.headers["content-length"],s.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,Fe(O(n.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 t,n={},U=ie(e.getAllResponseHeaders().trim().split("\r\n"));try{for(U.s();!(t=U.n()).done;){var F=t.value.split(": ");n[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(a){U.e(a)}finally{U.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(at),rt=["retry","retryDelay","onRetryError","transformError"],dt=function(){function e(t,n){_(this,e),this.promise=Te(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new ye("Loader")),this._loaderType=t,this._loader=t===Me&&"undefined"!=typeof fetch?new Qt:new lt,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return H(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,U=t.retryDelay,F=t.onRetryError,a=t.transformError,i=te(t,rt),Q=function(){var t=K(M().mark((function t(){var l,r,d;return M().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(i);case 3:l=t.sent,e.promise.resolve(l),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,r=t.t0,a&&(r=a(r)||r),F&&e._retryCount>0&&F(r,e._retryCount,{index:i.index,vid:i.vid,range:i.range,priOptions:i.priOptions}),e._retryCount++,d=!0,e._retryCheckFunc&&(d=e._retryCheckFunc(t.t0)),!(d&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",i.range),e._retryTimer=setTimeout(Q,U),t.abrupt("return");case 26:e.promise.reject(r);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return Q(),this.promise}},{key:"cancel",value:(t=K(M().mark((function e(){return M().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 t.apply(this,arguments)})},{key:"running",get:function(){return this._loader&&this._loader.running}},{key:"loader",get:function(){return this._loader}}]),e}();function ot(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if((t=t.filter(Boolean)).length<2)return t[0];var U=new Uint8Array(t.reduce((function(e,t){return e+t.byteLength}),0)),F=0;return t.forEach((function(e){U.set(e,F),F+=e.byteLength})),U}function st(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}var Bt=function(e){z(U,e);var t,n=Ue(U);function U(e){var t;return _(this,U),P(ne(t=n.call(this,e)),"type",Me),P(ne(t),"_queue",[]),P(ne(t),"_alive",[]),P(ne(t),"_currentTask",null),P(ne(t),"_finnalUrl",""),P(ne(t),"_config",void 0),t._config=function(e){return G({loaderType:Me,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:Ke,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),t._config.loaderType!==Ye&&Qt.isSupported()||(t.type=Ye),t.log=e.logger,t}return H(U,[{key:"isFetch",value:function(){return this.type===Me}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&Pe(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&Pe(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var U=new dt(this.type,n);return U.loader.on(tt,(function(e){t.emit(tt,e)})),this._queue.push(U),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),U.promise}},{key:"cancel",value:(t=K(M().mark((function e(){var t;return M().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,st();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.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 t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return Qt.isSupported()}}]),U}(at),ct="undefined"!=typeof window&&(window.location.search.indexOf("log=true")>-1||!!X.getItem("abrdebug")||!!X.getItem("playerlog"));var Rt=new ye("Logger",{logCacheLevel:ke.DEBUG});ct&&ye.enable();var ut={},Vt=["abr"],ht=function(e){Vt.includes(e)?ut[e]=ct?function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];(t=console).log.apply(t,["[".concat(e,"]"),(new Date).toLocaleString()].concat(U))}:function(){}:ut[e]=function(){for(var t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];Rt.log.apply(Rt,["[".concat(e,"]")].concat(n))}};for(var Zt 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"})ht(Zt);function St(){return Rt}var pt=ut,Jt=1e3,mt=6e3,bt="danger_d_speed",Wt={"x-cache":"x_cache","x-response-sinfo":"server_ip"},kt={"360p":.45,"480p":.75,"720p":1.6,"1080p":5,"2k":7.5,"4k":12.5},Et="player_start",yt="wasm_start",ft="wasm_ready",Nt="init_finished",vt="core_start",Tt="start_play",Ct="error_handler",gt="next_finished",Dt=0,Xt=1,xt=2,Lt="media_exception",It={MAIN:"0",BACK:"1"},Gt={INIT:"init",ERR:"error"},Mt="currentDashType",Yt="cdn",wt="pcdn",Kt="buffer_control",_t="waiting",jt="playing",Ht={BUFFER_CONTROLS:"buffer_control"};function Pt(){var e=window.navigator.userAgent,t=e.indexOf("MSIE "),n=e.indexOf("Trident/");return t>0||n>0}function zt(){return window.navigator.userAgent.toLowerCase().indexOf("qqbrowser")>-1}function Ot(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function At(){return navigator.userAgent.indexOf("Edge")>0}function qt(){var e,t=Ot(),n=Pt(),U=(e=window.navigator.userAgent,!(window.location.search.indexOf("firefox_dash=true")>-1||X.getItem("firefox_dash"))&&e.toLowerCase().indexOf("firefox")>-1),F=At();return t||n||U||F}function $t(){try{if("object"===("undefined"==typeof WebAssembly?"undefined":s(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(t){console.log(t)}return!1}function en(){var e=window.MediaSource=window.MediaSource||window.WebKitMediaSource;return e&&"function"==typeof e.isTypeSupported}var tn=['video/mp4; codecs="av01.0.01M.08,mp4a.40.5"'];function nn(e){if(!en())return!1;for(var t=0;t<e.length;t++){var n=e[t];if(MediaSource.isTypeSupported(n))return!0}return!1}function Un(){return!!navigator.requestMediaKeySystemAccess&&!qt()}var Fn,an=Object.freeze({__proto__:null,AV1MimeTypes:tn,checkWebAssemblySupport:$t,getDrmServerUrl:function(e){return new Promise((function(t){$t()&&en()&&navigator.requestMediaKeySystemAccess||t(void 0);Ot();var n=navigator.userAgent.toLowerCase().indexOf("chrome")>-1,U=At();n&&!zt()?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(){t("https://".concat(e,"/video/drm/v1/widevine?aid=32&kid="))}),(function(){t(void 0)})):t(U?"https://".concat(e,"/video/drm/v1/playready?aid=32&kid="):void 0)}))},isAV1Supported:function(){return nn(tn)},isCodecSupported:nn,isEMESupported:Un,isEncryptSupported:function(){return $t()&&en()&&!Pt()&&!zt()},isSupported:function(){return $t()&&en()&&!Pt()}}),Qn=function(){function e(t,n,U,F){var a=this;R(this,e),this.config=e.getDefaultConfig(),this.bitrate=0,F&&Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(a.config[e]=F[e])})),this.duration=U,this.player=t,this.updateBitrate(n)}return V(e,[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getAdaptLoadDuration",value:function(){var e=this.player,t=this.config;if(!t.rangeControl)return-1;var n=(null==e?void 0:e.bufferedPoint)||null,U=e&&null!=n&&n.end?n.end-e.currentTime:0;return Math.max(t.rangeMaxDuration-U,t.rangeMinDuration)}},{key:"getAdaptCacheBuffer",value:function(){var e=this.player,t=this.config,n=this.bitrate;if(!t.targetCacheControl)return-1;var U=t.estPlayTime,F=U;if(t.estPTcontrol){var a=this.duration||(null==e?void 0:e.duration)||0,i=(null==e?void 0:e.currentTime)||0;F=Math.min(U,a-i)}var Q=e&&1024*e.avgSpeed||0,l=Math.max(t.safeFactor*Q,t.minBandwidth);null!=e&&e.avgSpeed&&(l=t.safeFactor*Q);var r=n>0?Math.floor((1-l/n)*F):0;return r=t.minDangerThreshold+Math.max(r,0),Math.min(Math.max(t.cacheSafeFactor*r,t.minTargetCacheDur),t.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}(),ln=function(e){return e.MP4="MP4",e.MP4_MSE_SOFT="MP4_MSE_SOFT",e.MP4_MSE="MP4_MSE",e.MP4_0="MP4_0",e.MP4_1="MP4_1",e.MP4_2="MP4_2",e.DASH="DASH",e.HLS="HLS",e}(ln||{}),rn=function(e){return e[e.Normal=0]="Normal",e[e.Ad=1]="Ad",e}(rn||{}),dn=function(e){return e[e.AVC=0]="AVC",e[e.HEVC=1]="HEVC",e[e.VVC=2]="VVC",e.H264="h264",e.H265="h265",e.H266="h266",e}(dn||{}),on="real_time_speed",sn="cdn",Bn=function(e){return e.CHANGE_FLYING_PLUGIN_CONFIG="CHANGE_FLYING_PLUGIN_CONFIG",e}(Bn||{}),cn=function(e){Z(n,e);var t=b(n);function n(e){var U;R(this,n);var F=m(U=t.call(this,e)),a=F.player,i=F.playerConfig;return U.playerId=a.playerId,U.codecType=i.codecType?i.codecType.toLowerCase():dn.H264,U.bizType=a.bizType="number"==typeof i.bizType?i.bizType:rn.Normal,i.vtype&&(U.vtype=i.vtype.toUpperCase()),Fn&&(a.preloader=Fn),U}return V(n,[{key:"softDecode",get:function(){var e;return"xg-video"===(null===(e=this.playerConfig)||void 0===e?void 0:e.mediaType)}}],[{key:"registerPreloader",value:function(e){Fn=e}}]),n}(l.BasePlugin);function Rn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var U=Object.getOwnPropertySymbols(e);t&&(U=U.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,U)}return n}function un(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rn(Object(n),!0).forEach((function(t){bn(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Vn(){Vn=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},a=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",Q=F.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(y){l=function(e,t,n){return e[t]=n}}function r(e,t,n,F){var a=t&&t.prototype instanceof s?t:s,i=Object.create(a.prototype),Q=new W(F||[]);return U(i,"_invoke",{value:p(e,n,Q)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(y){return{type:"throw",arg:y}}}e.wrap=r;var o={};function s(){}function B(){}function c(){}var R={};l(R,a,(function(){return this}));var u=Object.getPrototypeOf,V=u&&u(u(k([])));V&&V!==t&&n.call(V,a)&&(R=V);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,a,i,Q){var l=d(e[U],e,a);if("throw"!==l.type){var r=l.arg,o=r.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,Q)}),(function(e){F("throw",e,i,Q)})):t.resolve(o).then((function(e){r.value=e,i(r)}),(function(e){return F("throw",e,i,Q)}))}Q(l.arg)}var a;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return a=a?a.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,a){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw a;return{value:void 0,done:!0}}for(n.method=F,n.arg=a;;){var i=n.delegate;if(i){var Q=J(i,n);if(Q){if(Q===o)continue;return Q}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var l=d(e,t,n);if("normal"===l.type){if(U=n.done?"completed":"suspendedYield",l.arg===o)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(U="completed",n.method="throw",n.arg=l.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var a=F.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function b(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function W(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function k(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:E}}function E(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=l(c,Q,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,l(e,Q,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),l(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,a){void 0===a&&(a=Promise);var i=new S(r(t,n,U,F),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),l(h,Q,"Generator"),l(h,a,(function(){return this})),l(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=k,W.prototype={constructor:W,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(b),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=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 t=this;function U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var a=this.tryEntries[F],i=a.completion;if("root"===a.tryLoc)return U("end");if(a.tryLoc<=this.prev){var Q=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(Q&&l){if(this.prev<a.catchLoc)return U(a.catchLoc,!0);if(this.prev<a.finallyLoc)return U(a.finallyLoc)}else if(Q){if(this.prev<a.catchLoc)return U(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return U(a.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var a=F;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,o):this.complete(i)},complete:function(e,t){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&&t&&(this.next=t),o},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),b(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;b(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:k(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function hn(e){return(hn="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 Zn(e,t,n,U,F,a,i){try{var Q=e[a](i),l=Q.value}catch(r){return void n(r)}Q.done?t(l):Promise.resolve(l).then(U,F)}function Sn(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var a=e.apply(t,n);function i(e){Zn(a,U,F,i,Q,"next",e)}function Q(e){Zn(a,U,F,i,Q,"throw",e)}i(void 0)}))}}function pn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Jn(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,xn(U.key),U)}}function mn(e,t,n){return t&&Jn(e.prototype,t),n&&Jn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function bn(e,t,n){return(t=xn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Wn(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&En(e,t)}function kn(e){return(kn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function En(e,t){return(En=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function yn(){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 fn(e,t,n){return(fn=yn()?Reflect.construct.bind():function(e,t,n){var U=[null];U.push.apply(U,t);var F=new(Function.bind.apply(e,U));return n&&En(F,n.prototype),F}).apply(null,arguments)}function Nn(e){var t="function"==typeof Map?new Map:void 0;return Nn=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,U)}function U(){return fn(e,arguments,kn(this).constructor)}return U.prototype=Object.create(e.prototype,{constructor:{value:U,enumerable:!1,writable:!0,configurable:!0}}),En(U,e)},Nn(e)}function vn(e,t){if(null==e)return{};var n,U,F=function(e,t){if(null==e)return{};var n,U,F={},a=Object.keys(e);for(U=0;U<a.length;U++)n=a[U],t.indexOf(n)>=0||(F[n]=e[n]);return F}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(U=0;U<a.length;U++)n=a[U],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(F[n]=e[n])}return F}function Tn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Cn(e){var t=yn();return function(){var n,U=kn(e);if(t){var F=kn(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Tn(e)}(this,n)}}function gn(){return gn="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var U=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=kn(e)););return e}(e,t);if(U){var F=Object.getOwnPropertyDescriptor(U,t);return F.get?F.get.call(arguments.length<3?e:n):F.value}},gn.apply(this,arguments)}function Dn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,U=new Array(t);n<t;n++)U[n]=e[n];return U}function Xn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Dn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Dn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var U=0,F=function(){};return{s:F,n:function(){return U>=e.length?{done:!0}:{done:!1,value:e[U++]}},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 a,i=!0,Q=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){Q=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(Q)throw a}}}}function xn(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function Ln(){var e,t,n=new Promise((function(n,U){e=n,t=U}));return n.used=!1,n.resolve=function(){return n.used=!0,e.apply(void 0,arguments)},n.reject=function(){return n.used=!0,t.apply(void 0,arguments)},n}var In={DEBUG:1,LOG:2,WARN:3,ERROR:4},Gn=["Boolean","Number","String","Undefined","Null","Date","Object"],Mn=function(){function e(t,n){pn(this,e),this.name=t||"",this._prefix="[".concat(this.name,"]"),this.logCacheLevel=(null==n?void 0:n.logCacheLevel)||3,this.logMaxSize=(null==n?void 0:n.logMaxSize)||204800,this.logSize=0,this.logTextArray=[]}return mn(e,[{key:"debug",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[In.DEBUG].concat(U)),e.disabled||(t=console).debug.apply(t,[this._prefix,Yn()].concat(U))}},{key:"log",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[In.LOG].concat(U)),e.disabled||(t=console).log.apply(t,[this._prefix,Yn()].concat(U))}},{key:"warn",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[In.WARN].concat(U)),e.disabled||(t=console).warn.apply(t,[this._prefix,Yn()].concat(U))}},{key:"error",value:function(){for(var t,n=arguments.length,U=new Array(n),F=0;F<n;F++)U[F]=arguments[F];this.logCache.apply(this,[In.ERROR].concat(U)),e.disabled||(t=console).error.apply(t,[this._prefix,Yn()].concat(U))}},{key:"logCache",value:function(e){if(!(e<this.logCacheLevel)){var t="";try{for(var n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];var a=U.map((function(e){return Kn(e)}));t=this._prefix+Yn()+JSON.stringify(a)}catch(Q){return}if(e>=this.logCacheLevel&&(this.logSize+=t.length,this.logTextArray.push(t)),this.logSize>this.logMaxSize){var i=this.logTextArray.shift();this.logSize-=i.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 t;e.disabled||(console.group(this._prefix),(t=console).table.apply(t,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 Yn(){return(new Date).toLocaleString()}function wn(e){if("object"!==hn(e))return e;var t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function Kn(e,t,n){n||(n=1),t||(t=2);var U={};if(!e||"object"!==hn(e))return e;var F=Object.prototype.toString.call(e).slice(8,-1);if(!Gn.includes(F))return F;if(!(n>t)){for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(n===t?U[a]=wn(e[a]):"object"===hn(e[a])?U[a]=Kn(e[a],t,n+1):U[a]=e[a]);return U}}bn(Mn,"disabled",!0);var _n="fetch",jn="xhr",Hn="arraybuffer",Pn="text",zn="json",On=function(e){Wn(n,e);var t=Cn(n);function n(e,U,F,a){var i;return pn(this,n),bn(Tn(i=t.call(this,a)),"retryCount",0),bn(Tn(i),"isTimeout",!1),bn(Tn(i),"loaderType",_n),bn(Tn(i),"startTime",0),bn(Tn(i),"endTime",0),bn(Tn(i),"options",{}),i.url=e,i.request=U,i.response=F,i}return mn(n)}(Nn(Error)),An=Object.prototype.toString;function qn(e){if("[object Object]"!==An.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function $n(e){if(e&&null!==e[0]&&void 0!==e[0]&&(0!==e[0]||null!==e[1]&&void 0!==e[1])){var t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}}function eU(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function tU(e,t){if(e){if(!t)return e;var n,U=Object.keys(t).map((function(e){if(null!=(n=t[e]))return Array.isArray(n)?e+="[]":n=[n],n.map((function(t){var n;return n=t,"[object Date]"===An.call(n)?t=t.toISOString():function(e){return null!==e&&"object"===hn(e)}(t)&&(t=JSON.stringify(t)),"".concat(eU(e),"=").concat(eU(t))})).join("&")})).filter(Boolean).join("&");if(U){var F=e.indexOf("#");-1!==F&&(e=e.slice(0,F)),e+=(-1===e.indexOf("?")?"?":"&")+U}return e}}function nU(e,t,n,U,F,a,i,Q,l,r,d){return F=null!=F?parseFloat(F):null,U=parseInt(U||"0",10),Number.isNaN(U)&&(U=0),{data:e,done:t,options:{range:l,vid:r,index:Q,contentLength:U,age:F,startTime:a,firstByteTime:i,endTime:Date.now(),priOptions:d},response:n}}function UU(e,t){return Math.round(8*e*1e3/t/1024)}var FU="real_time_speed",aU=2097152,iU=function(e){Wn(U,e);var t,n=Cn(U);function U(){var e;return pn(this,U),bn(Tn(e=n.call(this)),"_abortController",null),bn(Tn(e),"_timeoutTimer",null),bn(Tn(e),"_reader",null),bn(Tn(e),"_response",null),bn(Tn(e),"_aborted",!1),bn(Tn(e),"_index",-1),bn(Tn(e),"_range",null),bn(Tn(e),"_receivedLength",0),bn(Tn(e),"_running",!1),bn(Tn(e),"_logger",null),bn(Tn(e),"_vid",""),bn(Tn(e),"_onProcessMinLen",0),bn(Tn(e),"_onCancel",null),bn(Tn(e),"_priOptions",null),e}return mn(U,[{key:"load",value:function(e){var t,n=this,U=e.url,F=e.vid,a=e.timeout,i=e.responseType,Q=e.onProgress,l=e.index,r=e.onTimeout,d=e.onCancel,o=e.range,s=e.transformResponse,B=e.request,c=e.params,R=e.logger,u=e.method,V=e.headers,h=e.body,Z=e.mode,S=e.credentials,p=e.cache,J=e.redirect,m=e.referrer,b=e.referrerPolicy,W=e.onProcessMinLen,k=e.priOptions;this._logger=R,this._aborted=!1,this._onProcessMinLen=W,this._onCancel=d,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=l,this._range=o||[0,0],this._vid=F||U,this._priOptions=k||{};var E={method:u,headers:V,body:h,mode:Z,credentials:S,cache:p,redirect:J,referrer:m,referrerPolicy:b,signal:null===(t=this._abortController)||void 0===t?void 0:t.signal},y=!1;clearTimeout(this._timeoutTimer),U=tU(U,c);var f=$n(o);f&&(V=B?B.headers:E.headers=E.headers||(Headers?new Headers:{}),Headers&&V instanceof Headers?V.append("Range",f):V.Range=f),a&&(this._timeoutTimer=setTimeout((function(){if(y=!0,n.cancel(),r){var e=new On(U,E,null,"timeout");e.isTimeout=!0,r(e,{index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions})}}),a));var N=Date.now();return this._logger.debug("[fetch load start], index,",l,",range,",o),new Promise((function(e,t){fetch(B||U,B?void 0:E).then(function(){var F=Sn(Vn().mark((function F(a){var r,d,B,c;return Vn().wrap((function(F){for(;;)switch(F.prev=F.next){case 0:if(clearTimeout(n._timeoutTimer),n._response=a,!n._aborted&&n._running){F.next=4;break}return F.abrupt("return");case 4:if(s&&(a=s(a,U)||a),a.ok){F.next=7;break}throw new On(U,E,a,"bad network response");case 7:if(r=Date.now(),i!==Pn){F.next=15;break}return F.next=11,a.text();case 11:d=F.sent,n._running=!1,F.next=37;break;case 15:if(i!==zn){F.next=22;break}return F.next=18,a.json();case 18:d=F.sent,n._running=!1,F.next=37;break;case 22:if(!Q){F.next=29;break}return n.resolve=e,n.reject=t,n._loadChunk(a,Q,N,r),F.abrupt("return");case 29:return F.next=31,a.arrayBuffer();case 31:d=F.sent,d=new Uint8Array(d),n._running=!1,B=Date.now()-N,c=UU(d.byteLength,B),n.emit(FU,{speed:c,len:d.byteLength,time:B,vid:n._vid,index:n._index,range:n._range,priOptions:n._priOptions});case 37:n._logger.debug("[fetch load end], index,",l,",range,",o),e(nU(d,!0,a,a.headers.get("Content-Length"),a.headers.get("age"),N,r,l,o,n._vid,n._priOptions));case 39:case"end":return F.stop()}}),F)})));return function(e){return F.apply(this,arguments)}}()).catch((function(e){var F;clearTimeout(n._timeoutTimer),n._running=!1,n._aborted&&!y||((e=e instanceof On?e:new On(U,E,null,null===(F=e)||void 0===F?void 0:F.message)).startTime=N,e.endTime=Date.now(),e.isTimeout=y,e.options={index:n._index,range:n._range,vid:n._vid,priOptions:n._priOptions},t(e))}))}))}},{key:"cancel",value:(t=Sn(Vn().mark((function e(){return Vn().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(t){}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 t.apply(this,arguments)})},{key:"_loadChunk",value:function(e,t,n,U){var F=this;if(!e.body||!e.body.getReader){this._running=!1;var a=new On(e.url,"",e,"onProgress of bad response.body.getReader");return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(a)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(aU),this._writeIdx=0);var i,Q,l,r=this._reader=e.body.getReader(),d=function(){var a=Sn(Vn().mark((function a(){var o,s,B,c,R,u,V,h;return Vn().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return Q=Date.now(),a.prev=1,a.next=4,r.read();case 4:i=a.sent,l=Date.now(),a.next=13;break;case 8:return a.prev=8,a.t0=a.catch(1),l=Date.now(),F._aborted||(F._running=!1,a.t0.options={index:F._index,range:F._range,vid:F._vid,priOptions:F._priOptions},F.reject(a.t0)),a.abrupt("return");case 13:if(s=(null===(o=F._range)||void 0===o?void 0:o.length)>0?F._range[0]:0,B=s+F._receivedLength,!F._aborted){a.next=19;break}return F._running=!1,t(void 0,!1,{range:[B,B],vid:F._vid,index:F._index,startTime:Q,endTime:l,st:n,firstByteTime:U,priOptions:F._priOptions},e),a.abrupt("return");case 19:c=i.value?i.value.byteLength:0,F._receivedLength+=c,F._logger.debug("【fetchLoader,onProgress call】,task,",F._range,", start,",B,", end,",s+F._receivedLength,", done,",i.done),F._onProcessMinLen>0?F._writeIdx+c>=F._onProcessMinLen||i.done?((R=new Uint8Array(F._writeIdx+c)).set(F._cache.slice(0,F._writeIdx),0),c>0&&R.set(i.value,F._writeIdx),F._writeIdx=0,F._logger.debug("【fetchLoader,onProgress enough】,done,",i.done,",len,",R.byteLength,", writeIdx,",F._writeIdx)):c>0&&F._writeIdx+c<aU?(F._cache.set(i.value,F._writeIdx),F._writeIdx+=c,F._logger.debug("【fetchLoader,onProgress cache】,len,",c,", writeIdx,",F._writeIdx)):c>0&&(u=new Uint8Array(F._writeIdx+c+2048),F._logger.debug("【fetchLoader,onProgress extra start】,size,",F._writeIdx+c+2048,", datalen,",c,", writeIdx,",F._writeIdx),u.set(F._cache.slice(0,F._writeIdx),0),c>0&&u.set(i.value,F._writeIdx),F._writeIdx+=c,delete F._cache,F._cache=u,F._logger.debug("【fetchLoader,onProgress extra end】,len,",c,", writeIdx,",F._writeIdx)):R=i.value,(R&&R.byteLength>0||i.done)&&t(R,i.done,{range:[F._range[0]+F._receivedLength-(R?R.byteLength:0),F._range[0]+F._receivedLength],vid:F._vid,index:F._index,startTime:Q,endTime:l,st:n,firstByteTime:U,priOptions:F._priOptions},e),i.done?(V=Date.now()-n,h=UU(F._receivedLength,V),F.emit(FU,{speed:h,len:F._receivedLength,time:V,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,",i.done),F.resolve(nU(i,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),n,U,F._index,F._range,F._vid,F._priOptions))):d();case 25:case"end":return a.stop()}}),a,null,[[1,8]])})));return function(){return a.apply(this,arguments)}}();d()}},{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)}}]),U}(at);var QU=function(e){Wn(n,e);var t=Cn(n);function n(){var e;return pn(this,n),bn(Tn(e=t.call(this)),"_xhr",null),bn(Tn(e),"_aborted",!1),bn(Tn(e),"_timeoutTimer",null),bn(Tn(e),"_range",null),bn(Tn(e),"_receivedLength",0),bn(Tn(e),"_url",null),bn(Tn(e),"_onProgress",null),bn(Tn(e),"_index",-1),bn(Tn(e),"_headers",null),bn(Tn(e),"_currentChunkSizeKB",384),bn(Tn(e),"_timeout",null),bn(Tn(e),"_xhr",null),bn(Tn(e),"_withCredentials",null),bn(Tn(e),"_startTime",-1),bn(Tn(e),"_loadCompleteResolve",null),bn(Tn(e),"_loadCompleteReject",null),bn(Tn(e),"_runing",!1),bn(Tn(e),"_logger",!1),bn(Tn(e),"_vid",""),bn(Tn(e),"_responseType",void 0),bn(Tn(e),"_credentials",void 0),bn(Tn(e),"_method",void 0),bn(Tn(e),"_transformResponse",void 0),bn(Tn(e),"_firstRtt",void 0),bn(Tn(e),"_onCancel",null),bn(Tn(e),"_priOptions",null),e}return mn(n,[{key:"load",value:function(e){var t=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=tU(e.url,e.params);var n=Date.now();return new Promise((function(e,n){t._loadCompleteResolve=e,t._loadCompleteReject=n,t._startLoad()})).catch((function(e){if(clearTimeout(t._timeoutTimer),t._runing=!1,!t._aborted)throw(e=e instanceof On?e:new On(t._url,t._request)).startTime=n,e.endTime=Date.now(),e.options={index:t._index,vid:t._vid,priOptions:t._priOptions},e}))}},{key:"_startLoad",value:function(){var e=null;if(this._responseType===Hn&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;var t=1024*this._currentChunkSizeKB,n=this._range[0]+this._receivedLength,U=this._range[1];t<this._range[1]-n&&(U=n+t),e=[n,U],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 t=this;try{this._startTime=Date.now();var n=this._xhr=new XMLHttpRequest;n.open(this._method||"GET",this._url,!0),n.responseType=this._responseType,this._timeout&&(n.timeout=this._timeout),n.withCredentials=this._withCredentials,n.onload=this._onLoad.bind(this),n.onreadystatechange=this._onReadyStatechange.bind(this),n.onerror=function(e){var n,U,F;t._running=!1;var a=new On(t._url,t._request,null==e||null===(n=e.currentTarget)||void 0===n?void 0:n.response,"xhr.onerror.status:"+(null==e||null===(U=e.currentTarget)||void 0===U?void 0:U.status)+",statusText,"+(null==e||null===(F=e.currentTarget)||void 0===F?void 0:F.statusText));a.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(a)},n.ontimeout=function(e){t.cancel();var n=new On(t._url,t._request,{status:408},"timeout");t._onTimeout&&(n.isTimeout=!0,t._onTimeout(n,{index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions})),n.options={index:t._index,range:t._range,vid:t._vid,priOptions:t._priOptions},t._loadCompleteReject(n)};var U=this._headers||{},F=$n(e);F&&(U.Range=F),U&&Object.keys(U).forEach((function(e){n.setRequestHeader(e,U[e])})),this._logger.debug("[xhr.send->] tast,",this._range,",load sub range, ",e),n.send(this._body)}catch(a){a.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(a)}}},{key:"_onReadyStatechange",value:function(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}},{key:"_onLoad",value:function(e){var t,n=e.target.status;if(n<200||n>299){var U=new On(this._url,null,un(un({},e.target.response),{},{status:n}),"bad response,status:"+n);return U.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(U)}var F,a=null,i=!1,Q=(null===(t=this._range)||void 0===t?void 0:t.length)>0?this._range[0]:0;if(this._responseType===Hn){var l,r=new Uint8Array(e.target.response);if(F=Q+this._receivedLength,r&&r.byteLength>0){this._receivedLength+=r.byteLength;var d=Date.now()-this._startTime,o=UU(this._receivedLength,d);this.emit(FU,{speed:o,len:this._receivedLength,time:d,vid:this._vid,index:this._index,range:[F,Q+this._receivedLength],priOptions:this._priOptions})}a=r,i=!((null===(l=this._range)||void 0===l?void 0:l.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 ",Q+this._receivedLength,",dataLen,",r?r.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",i)}else i=!0,a=e.target.response;var s={ok:n>=200&&n<300,status:n,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(s=this._transformResponse(s,this._url)||s),this._onProgress&&this._onProgress(a,i,{index:this._index,vid:this._vid,range:[F,Q+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},s),i?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(nU(this._onProgress?null:a,i,s,s.headers["content-length"],s.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,gn(kn(n.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 t,n={},U=Xn(e.getAllResponseHeaders().trim().split("\r\n"));try{for(U.s();!(t=U.n()).done;){var F=t.value.split(": ");n[F[0].toLowerCase()]=F.slice(1).join(": ")}}catch(a){U.e(a)}finally{U.f()}return n}}],[{key:"isSupported",value:function(){return"undefined"!=typeof XMLHttpRequest}}]),n}(at),lU=["retry","retryDelay","onRetryError","transformError"],rU=function(){function e(t,n){pn(this,e),this.promise=Ln(),this.alive=!!n.onProgress,!n.logger&&(n.logger=new Mn("Loader")),this._loaderType=t,this._loader=t===_n&&"undefined"!=typeof fetch?new iU:new QU,this._config=n,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=n.retryCheckFunc,this._logger=n.logger}var t;return mn(e,[{key:"exec",value:function(){var e=this,t=this._config,n=t.retry,U=t.retryDelay,F=t.onRetryError,a=t.transformError,i=vn(t,lU),Q=function(){var t=Sn(Vn().mark((function t(){var l,r,d;return Vn().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,e._loader.load(i);case 3:l=t.sent,e.promise.resolve(l),t.next=27;break;case 7:if(t.prev=7,t.t0=t.catch(0),e._loader.running=!1,e._logger.debug("[task request catch err]",t.t0),!e._canceled){t.next=13;break}return t.abrupt("return");case 13:if(t.t0.loaderType=e._loaderType,t.t0.retryCount=e._retryCount,r=t.t0,a&&(r=a(r)||r),F&&e._retryCount>0&&F(r,e._retryCount,{index:i.index,vid:i.vid,range:i.range,priOptions:i.priOptions}),e._retryCount++,d=!0,e._retryCheckFunc&&(d=e._retryCheckFunc(t.t0)),!(d&&e._retryCount<=n)){t.next=26;break}return clearTimeout(e._retryTimer),e._logger.debug("[task request setTimeout],retry",e._retryCount,",retry range,",i.range),e._retryTimer=setTimeout(Q,U),t.abrupt("return");case 26:e.promise.reject(r);case 27:case"end":return t.stop()}}),t,null,[[0,7]])})));return function(){return t.apply(this,arguments)}}();return Q(),this.promise}},{key:"cancel",value:(t=Sn(Vn().mark((function e(){return Vn().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 t.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(t){return setTimeout(t,e)}))}var oU=function(e){Wn(U,e);var t,n=Cn(U);function U(e){var t;return pn(this,U),bn(Tn(t=n.call(this,e)),"type",_n),bn(Tn(t),"_queue",[]),bn(Tn(t),"_alive",[]),bn(Tn(t),"_currentTask",null),bn(Tn(t),"_finnalUrl",""),bn(Tn(t),"_config",void 0),t._config=function(e){return un({loaderType:_n,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:Pn,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),t._config.loaderType!==jn&&iU.isSupported()||(t.type=jn),t.log=e.logger,t}return mn(U,[{key:"isFetch",value:function(){return this.type===_n}},{key:"load",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?n=e:n.url=e||n.url||this._config.url,(n=Object.assign({},this._config,n)).params&&(n.params=Object.assign({},n.params)),n.headers&&qn(n.headers)&&(n.headers=Object.assign({},n.headers)),n.body&&qn(n.body)&&(n.body=Object.assign({},n.body)),n.transformRequest&&(n=n.transformRequest(n)||n),n.logger=this.log;var U=new rU(this.type,n);return U.loader.on(FU,(function(e){t.emit(FU,e)})),this._queue.push(U),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),U.promise}},{key:"cancel",value:(t=Sn(Vn().mark((function e(){var t;return Vn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this._queue.map((function(e){return e.cancel()})).concat(this._alive.map((function(e){return e.cancel()}))),this._currentTask&&t.push(this._currentTask.cancel()),this._queue=[],this._alive=[],e.next=6,Promise.all(t);case 6:return e.next=8,dU();case 8:case"end":return e.stop()}}),e,this)}))),function(){return t.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 t=this._currentTask.exec().catch((function(e){}));t&&"function"==typeof t.finally&&t.finally((function(){var t,n;null!==(t=e._currentTask)&&void 0!==t&&t.alive&&(null===(n=e._alive)||void 0===n?void 0:n.length)>0&&(e._alive=e._alive.filter((function(t){return t&&t!==e._currentTask}))),e._processTask()}))}}}],[{key:"isFetchSupport",value:function(){return iU.isSupported()}}]),U}(at),sU=function(){function e(t,n,U,F){var a=this;R(this,e),this.config=e.getDefaultConfig(),Object.keys(F).map((function(e){void 0!==F[e]&&null!==F[e]&&(a.config[e]=F[e])})),this.duration=U,this.player=t,this.updateBitrate(n),this.curPCDNInBuffer=this.config.maxPCDNInBuffer,this.curPCDNOutBuffer=this.config.maxPCDNOutBuffer,this.PCDNChangeCnt=0}return V(e,[{key:"updateBitrate",value:function(e){this.bitrate=e,this.bitrate||(this.bitrate=this.config.minBandwidth)}},{key:"getPCDNInBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var U=e.estPlayTime,F=U;e.estPTcontrol&&(F=Math.min(U,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var a=e.safePCDNInFactor,i=e.minBandwidth,Q=e.maxPCDNInBuffer,l=e.minPCDNInBuffer,r=a*Math.max(1024*(null==t?void 0:t.avgSpeedPCDN)||0,i),d=n>0?(1-r/n)*F:0;return this.curPCDNInBuffer=Math.min(Q,Math.max(l,d)),this.curPCDNInBuffer}},{key:"getPCDNOutBuffer",value:function(){var e=this.config,t=this.player,n=this.bitrate;if(!e.PCDNBufferControl)return null;var U=e.estPlayTime,F=U;e.estPTcontrol&&(F=Math.min(U,Math.max(0,this.duration-((null==t?void 0:t.currentTime)||0))));var a=e.safePCDNOutFactor,i=e.minBandwidth,Q=e.maxPCDNOutBuffer,l=e.minPCDNOutBuffer,r=a*Math.max(1024*(null==t?void 0:t.avgSpeedPCDN)||0,i),d=n>0?(1-r/n)*F:0;return this.curPCDNOutBuffer=Math.min(Q,Math.max(l,d)),this.curPCDNOutBuffer}},{key:"getPCDNChangeCnt",value:function(){var e=this.config,t=e.PCDNCntControl,n=e.alpha,U=this.curPCDNInBuffer,F=this.player,a=(null==F?void 0:F.bufferedPoint)||null,i=a&&a.end?a.end-F.currentTime:0;t?i>U+(this.PCDNChangeCnt-1)*n&&this.PCDNChangeCnt++:i>=U&&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}(),BU=new Map,cU=function(){function e(t,n,U,F){var a,i,Q=this;R(this,e),this.options=e.getDefaultConfig(),Object.keys(t).map((function(e){void 0!==t[e]&&null!==t[e]&&(Q.options[e]=t[e])})),this.options.productConfig&&this.options.productConfig.app_id||console.error("productConfig must has"),this.loader=new oU(this.options),this.resetTrackeArgs(),this._lastFileInfo=null,this.lastfetchNodeTime=-1,this._lastRetFileKey=null,this._minUpdateNodeStep=this.options.ErrorTimeStep,null!==(a=this.options)&&void 0!==a&&null!==(i=a.adaptPCDNConfig)&&void 0!==i&&i.PCDNBufferControl&&(this.pcdnAdapt=new sU(n,U,F,this.options.adaptPCDNConfig))}var t,n;return V(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:"updatePCDNBitrate",value:function(e){var t;return null===(t=this.pcdnAdapt)||void 0===t?void 0:t.updateBitrate(e)}},{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,t,n){var U,F=uU(t),a=BU.get(RU(e,F)),i=new Ln;return null==a||!a.nodes||(null==a||null===(U=a.nodes)||void 0===U?void 0:U.length)<1?this.fetchPCDNNode(null,null,n).then((function(e){i.resolve(e)})).catch((function(e){i.reject(e)})):(a.fromCache=!0,i.resolve(a)),i}},{key:"removePCDNNode",value:function(e,t,n){var U=uU(t),F=BU.get(RU(e,U)),a=null==F?void 0:F.nodes;a&&(n?F.nodes=a.filter((function(e){return e&&n.indexOf(e.url)<0})):a.shift(),BU.set(RU(e,U),F)),a&&a.length||this.fetchPCDNNode().then().catch((function(){}))}},{key:"fetchPCDNNode",value:(n=c(o().mark((function t(n,U,F){var a,i,Q,l,r,d,s,B,c,R,u,V,h,Z,S,p,J;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=new Ln,U){t.next=5;break}U=this._lastFileInfo,t.next=15;break;case 5:if(U.byterate=uU(U.bitrate),this.options.trackerOptions&&Object.assign(U,this.options.trackerOptions),this._lastFileInfo=Object.assign({},U,{byterate:U.byterate}),!((null==(Q=BU.get(RU(U.vid,U.byterate)))||null===(i=Q.nodes)||void 0===i?void 0:i.length)>0)){t.next=13;break}return Q.fromCache=!0,a.resolve(Q),t.abrupt("return",a);case 13:delete U.bitrate,this._lastFileInfo=U;case 15:if(U){t.next=18;break}return a.resolve(null),t.abrupt("return",a);case 18:if(l=!1,r=RU(U.vid,U.byterate),this._lastRetFileKey!==r&&(this.resetTrackeArgs(),l=!0),!(Date.now()-this.lastfetchNodeTime<this._minUpdateNodeStep)||l){t.next=24;break}return a.resolve(null),t.abrupt("return",a);case 24:if(this.lastfetchNodeTime=Date.now(),this._lastRetFileKey=r,U.sfid?U.version=1:U.vid&&(U.version=2),this.options.withReferer&&(U.with_referer=this.options.withReferer),d=Object.assign(this.options.productConfig,{file_info:U},this.trackeArgs,{req_id:F}),s=JSON.stringify(d),!(this.trackeArgs.req_times>=this.options.maxCnt)){t.next=33;break}return a.resolve(null),t.abrupt("return",a);case 33:return this.loader||(this.loader=new oU(this.options)),this.trackeArgs.req_times+=1,t.prev=35,e.pcdn_tracker_request_cnt++,t.next=39,this.loader.load(n||this.options.trackerUrl,{body:s});case 39:B=t.sent,c=null,B&&(this.trackeArgs.resp_times+=1,u=8*U.byterate,B.done&&null!==(R=B.data)&&void 0!==R&&R.Result?(V=B.data.Result,(c=V.nodes)&&c.length>0?e.pcdn_tracker_success_cnt++:this._minUpdateNodeStep=this.options.NULLNodeTimeStep,c.map((function(e){e.vid=U.vid,e.bitrate=u})),h=V.fid,Z=V.trace_id,S=V.req_id,p={nodes:c,fid:h,vid:U.vid,trace_id:Z,req_id:S,bitrate:u},J=RU(U.vid,U.byterate),BU.set(J,p),this.trackeArgs.fid=V.fid,this.trackeArgs.trace_id=V.trace_id,this.trackeArgs.token=V.token,a.resolve(p)):(this._minUpdateNodeStep=this.options.ErrorTimeStep,a.reject(B))),t.next=49;break;case 44:t.prev=44,t.t0=t.catch(35),this._minUpdateNodeStep=this.options.ErrorTimeStep,console.warn("tracker catch ERR,",t.t0),a.reject(t.t0);case 49:return t.abrupt("return",a);case 50:case"end":return t.stop()}}),t,this,[[35,44]])}))),function(e,t,U){return n.apply(this,arguments)})}],[{key:"pluginName",get:function(){return"PCDN"}},{key:"pcdnReqCnt",get:function(){var t=e.pcdn_tracker_request_cnt,n=e.pcdn_tracker_success_cnt;return e.pcdn_tracker_request_cnt=0,e.pcdn_tracker_success_cnt=0,{pcdn_tracker_request_cnt:t,pcdn_tracker_failed_cnt:t-n}}},{key:"getDefaultConfig",value:function(){return{trackerUrl:"",loaderType:_n,responseType:zn,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:(t=c(o().mark((function t(n,U,F,a){var i,Q,l,r,d,s,B,c,R;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=e.getDefaultConfig(),Object.keys(U).map((function(e){void 0!==U[e]&&null!==U[e]&&(i[e]=U[e])})),a&&a.app_id||console.error("productConfig must has"),Q=new Ln,F?(F.byterate=uU(F.bitrate),this.options.trackerOptions&&Object.assign(F,this.options.trackerOptions),delete F.bitrate):Q.reject("video fileInfo need set"),l=Object.assign(a,{file_info:F},{node_num:(null==U?void 0:U.node_num)||3}),r=JSON.stringify(l),d=new oU(i),t.prev=8,e.pcdn_tracker_request_cnt++,t.next=12,d.load(n,{body:r});case 12:(R=t.sent).done&&(null===(s=R.data)||void 0===s||null===(B=s.Result)||void 0===B||null===(c=B.nodes)||void 0===c?void 0:c.length)>0&&e.pcdn_tracker_success_cnt++,Q.resolve(R),t.next=20;break;case 17:t.prev=17,t.t0=t.catch(8),Q.reject((null===t.t0||void 0===t.t0?void 0:t.t0.message)||"get pcdnNode error");case 20:return t.abrupt("return",Q);case 21:case"end":return t.stop()}}),t,this,[[8,17]])}))),function(e,n,U,F){return t.apply(this,arguments)})}]),e}();function RU(e,t){return"".concat(e,"-").concat(t)}function uU(e){return Math.floor(e/8)}h(cU,"pcdn_tracker_request_cnt",0),h(cU,"pcdn_tracker_success_cnt",0);var VU=["bitrate","definition"],hU={};function ZU(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]}function SU(e){var t=Object.values(e);if(t.sort((function(e,t){return e.range[0]-t.range[0]})),0===t.length)return{};for(var n,U=0,F=0,a=new Uint8Array,i=0,Q=t;i<Q.length;i++){var l=Q[i],r=l.range[0],o=l.range[1];if(U>0){if(F+1!==r)break;a=ot(a,new Uint8Array(l.res))}else a=ot(a,new Uint8Array(l.res));U=r,F=o,n=l}var s=W(n.cacheKey.split("#"),9),B=s[0],c=s[1],R=s[2],u=s[3],V=s[4],Z=s[5],S=s[6],p=s[7],J=s[8],m=t[0].range[0],b={vid:B,mediaType:c,codecType:R,vtype:u,definition:V,start:Z,end:S,fileId:"video"===c?p:J,range:[m,F],bitrate:p},k=hU.generateRequestUniqueKey(b);return delete n.cacheKey,h({},k,d(d({},n),{},{res:a.buffer,range:[m,F],memory:a.buffer.byteLength}))}function pU(e){for(var t={},n=0,U=Object.keys(e);n<U.length;n++){var F=U[n],a=e[F],i=F.split("#"),Q=i[1],l=i[4],r=i[7],d="video"===Q?l:r;t[d]||(t[d]={}),t[d][F]=a}return t}hU.ArrayBufferToString=function(e){for(var t="",n=new Uint8Array(e),U=0;U<n.length;U++)t+=String.fromCharCode(n[U]);return t},hU.StringToArrayBuffer=function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),U=0;U<e.length;U++)n[U]=e.charCodeAt(U);return t},hU.Base64ToHex=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t){for(var U=[],F=0;F<n.length;F++)U.push(n.charCodeAt(F));return new Uint8Array(U).buffer}for(var a="",i=0;i<n.length;i++)a+="0".concat(n.charCodeAt(i).toString(16)).substr(-2);return a},hU.HexToBase64=function(e){for(var t="",n=0;n<e.length;n+=2)t+=String.fromCharCode(parseInt(e.substr(n,2),16));return window.btoa(t).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")},hU.padStart=function(e,t,n){for(var U=String(n),F=t>>0,a=Math.ceil(F/U.length),i=[],Q=String(e);a--;)i.push(U);return i.join("").substring(0,F-Q.length)+Q},hU.durationConvert=function(e){var t=0,n=0,U=0;return(e=e.slice(e.indexOf("PT")+2)).indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(t=parseFloat(e.slice(0,e.indexOf("H"))),n=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M"))),U=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")>-1&&e.indexOf("S")<0?(t=parseFloat(e.slice(0,e.indexOf("H"))),n=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("M")))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")>-1?(n=parseFloat(e.slice(0,e.indexOf("M"))),U=parseFloat(e.slice(e.indexOf("M")+1,e.indexOf("S")))):e.indexOf("H")>-1&&e.indexOf("M")<0&&e.indexOf("S")>-1?(t=parseFloat(e.slice(0,e.indexOf("H"))),U=parseFloat(e.slice(e.indexOf("H")+1,e.indexOf("S")))):e.indexOf("H")<0&&e.indexOf("M")<0&&e.indexOf("S")>-1?U=parseFloat(e.slice(0,e.indexOf("S"))):e.indexOf("H")<0&&e.indexOf("M")>-1&&e.indexOf("S")<0&&(n=parseFloat(e.slice(0,e.indexOf("M")))),3600*t+60*n+U},hU.preFixInterge=function(e,t){return(Array(t).join(0)+e).slice(-t)},hU.toHex=function(){for(var e=[],t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e.push(hU.padStart(Number(t).toString(16),2,0))})),e},hU.sum=function(){for(var e=0,t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e+=t})),e},hU.toUTF8=function(e){for(var t=encodeURIComponent(e),n=unescape(t),U=new Uint8Array(n.length),F=0;F<n.length;++F)U[F]=n.charCodeAt(F);return U.buffer},hU.fromHex=function(e){for(var t=new Uint8Array(e.length/2),n=0;n<e.length;n+=2)t[n/2]=parseInt(e.substr(n,2),16);return t},hU.fromCharCode=function(e){for(var t="",n=0;n<e.length;n+=16e3){var U=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,U)}return t},hU.toBase64=function(e,t){var n=hU.fromCharCode(e);t=void 0===t||t;var U=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?U:U.replace(/=*$/,"")},hU.str2hex=function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},hU.bufferToString=function(e){return"0".concat(Number(e).toString(16)).slice(-2).toUpperCase()},hU.stringToBuffer=function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e[n]+e[n+1],16));return new Uint8Array(t)},hU.round=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Number(e.toFixed(t))},hU.isEdge=function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("edge")>-1||e.indexOf("edg/")>-1},hU.offInDestroy=function(e,t,n,U){e.once(U,(function F(){e.off(t,n),e.off(U,F)}))},hU.on=function(e,t,n,U){if(U)e.on(t,n),hU.offInDestroy(e,t,n,U);else{e.on(t,(function U(F){n(F),e.off(t,U)}))}},hU.once=function(e,t,n,U){if(U)e.once(t,n),hU.offInDestroy(e,t,n,U);else{e.once(t,(function U(F){n(F),e.off(t,U)}))}},hU.promisePolyfill=function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var t=function(t){return Promise.resolve(e()).then(t)};return this.then((function(e){return t((function(){return e}))}),(function(e){return t((function(){return Promise.reject(e)}))}))}}.finally)},hU.transformHeaders=function(e,t){var n=Object.assign({},e);return Object.keys(t).forEach((function(U){var F=t[U];e&&e[U]&&(n[F]=e[U],delete n[U])})),n},hU.generateRequestUniqueKey=function(e){var t=e.vid,n=e.start,U=e.end,F=e.mediaType,a=e.definition,i=e.codecType,Q=e.vtype,l=e.bitrate,r=e.fileId,d=e.range;if(d&&d.length>0?(n=d[0],U=d[1]):(n=n||0,U=U||0),i="hevc"===i?"h265":i||"h264",Q=Q||ln.DASH,!t||!F)return null;var o=a?"".concat(t,"#").concat(F,"#").concat(i,"#").concat(Q,"#").concat(a,"#").concat(n,"#").concat(U):"".concat(t,"#").concat(F,"#").concat(i,"#").concat(Q,"##").concat(n,"#").concat(U,"#").concat(l);return r?"".concat(o,"#").concat(r):o},hU.getDefinition=function(e){if(!e)return null;var t=e.split("#");return t.length>2?t[2]:null},hU.exchangeListUrl=function(e){if(e&&0!==e.length)for(var t=0;t<e.length;t++)hU.exchangeUrl(e[t])},hU.exchangeUrl=function(e){if(e&&e.main_url&&e.backup_url_1){var t=e.main_url,n=e.backup_url_1,U=t.split("?");2===U.length&&-1===n.indexOf("?")?(e.main_url="".concat(n,"?").concat(U[1]),e.backup_url_1=U[0]):(e.main_url=n,e.backup_url_1=t)}},hU.validateFragment=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(e instanceof ArrayBuffer){try{var n=new Uint8Array(e,4,4),U=String.fromCharCode.apply(null,n);if(2===t.length){var F=t[1]-t[0]+1;if(!(e.byteLength===F))return}if("moof"!==U&&"styp"!==U&&"ftyp"!==U)return!1}catch(a){return!1}return!0}return!1},hU.validateUrlRange=function(e,t){if((e=e||[]).length>0&&t)for(var n=0;n<e.length;n++){var U=e[n];if(/([0-9.\-A-Za-z]+)/.test(U)&&t.indexOf(U)>-1)return!0}return!1},hU.nowTime=function(){try{return parseInt(performance.now(),10)}catch(e){return(new Date).getTime()}},hU.getBitrateItem=function(e,t,n){var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=t,a=hU.getSelectorList(e,n);return F.getSuitableBitrate?F.getSuitableBitrate(a,U):F.bitRateAdapter.select(a)},hU.getSelectorList=function(e,t){for(var n=e.dynamic_video_list,U=[],F=0;F<n.length;F++){var a=n[F],i=a.bitrate,Q=a.definition,l=J(a,VU);U.push(d({bitrate:i,definition:Q,duration:t,mediaType:"video"},l))}return U},hU.typeof=ZU,hU.getHostFromUrl=function(e){if("String"!==ZU(e)||!e)return"";var t=e.split("/"),n="";return t.length>3&&t[2]&&(n=t[2]),n},hU.checkValidTopBox=function(e){var t=hU.getTopBoxType(e);return"moof"===t||"styp"===t},hU.getTopBoxType=function(e){if(hU.isArrayBuffer(e)){var t=e.subarray(4,8);return String.fromCharCode.apply(null,t)}return null},hU.isArrayBuffer=function(e){return e instanceof ArrayBuffer||e instanceof Uint8Array},hU.getBufferData=function(e,t){var n=0,U=0,F=0,a=0,i=0;if(!e||0===e.length)return{beforeBufLen:n,afterBufLen:U,beforeLastBuffEnd:F,afterFirstBuffEnd:a,afterFirstBuffStart:i};a=1/0,i=1/0;for(var Q=0,l=e.length;Q<l;Q++){var r=e.end(Q),d=e.start(Q),o=r-d;r<t?(n+=o,F=r):d<=t&&t<=r?(n+=t-d,U+=r-t):(i=Math.min(d,i),a=Math.min(r,a),U+=o)}return{beforeBufLen:n,afterBufLen:U,beforeLastBuffEnd:F,afterFirstBuffEnd:a}},hU.combinePreloadData=function(e){for(var t={},n={},U={},F=0,a=Object.keys(e);F<a.length;F++){var i,Q,l=a[F],r=e[l];if(r.isInitSegment)U[l]=r;else r.rangeEnd===(null===(i=r.range)||void 0===i?void 0:i[1])&&r.rangeStart===(null===(Q=r.range)||void 0===Q?void 0:Q[0])?U[l]=r:"audio"===r.mediaType?t[l]=r:"video"===r.mediaType&&(n[l]=r),r.cacheKey=l}for(var d=pU(t),o=0,s=Object.keys(d);o<s.length;o++){var B=s[o];Object.assign(U,SU(d[B]))}for(var c=pU(n),R=0,u=Object.keys(c);R<u.length;R++){var V=u[R];Object.assign(U,SU(c[V]))}return U};var JU,mU,bU=hU,WU={exports:{}},kU={exports:{}},EU=function(e){return null!=e},yU=EU,fU={object:!0,function:!0,undefined:!0},NU=function(e){return!!yU(e)&&hasOwnProperty.call(fU,typeof e)},vU=function(e){if(!NU(e))return!1;try{return!!e.constructor&&e.constructor.prototype===e}catch(t){return!1}},TU=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(t){return!1}return!vU(e)},CU=/^\s*class[\s{/}]/,gU=Function.prototype.toString;var DU,XU,xU,LU,IU,GU,MU,YU,wU=function(e){return null!=e};function KU(){return LU?xU:(LU=1,xU=(mU?JU:(mU=1,JU=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}))()?Object.keys:function(){if(XU)return DU;XU=1;var e=wU,t=Object.keys;return DU=function(n){return t(e(n)?Object(n):n)}}())}var _U,jU,HU,PU,zU="function"==typeof(jU=Object.assign)&&(jU(_U={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),_U.foo+_U.bar+_U.trzy==="razdwatrzy")?Object.assign:function(){if(YU)return MU;YU=1;var e=KU(),t=function(){if(GU)return IU;GU=1;var e=wU;return IU=function(t){if(!e(t))throw new TypeError("Cannot use null or undefined");return t}}(),n=Math.max;return MU=function(U,F){var a,i,Q,l=n(arguments.length,2);for(U=Object(t(U)),Q=function(e){try{U[e]=F[e]}catch(t){a||(a=t)}},i=1;i<l;++i)e(F=arguments[i]).forEach(Q);if(void 0!==a)throw a;return U},MU}(),OU=wU,AU=Array.prototype.forEach,qU=Object.create,$U="razdwatrzy";var eF="function"==typeof $U.contains&&!0===$U.contains("dwa")&&!1===$U.contains("foo")?String.prototype.contains:function(){if(PU)return HU;PU=1;var e=String.prototype.indexOf;return HU=function(t){return e.call(this,t,arguments[1])>-1},HU}(),tF=EU,nF=function(e){return!!TU(e)&&!CU.test(gU.call(e))},UF=zU,FF=function(e){var t=qU(null);return AU.call(arguments,(function(e){OU(e)&&function(e,t){var n;for(n in e)t[n]=e[n]}(Object(e),t)})),t},aF=eF,iF=kU.exports=function(e,t){var n,U,F,a,i;return arguments.length<2||"string"!=typeof e?(a=t,t=e,e=null):a=arguments[2],tF(e)?(n=aF.call(e,"c"),U=aF.call(e,"e"),F=aF.call(e,"w")):(n=F=!0,U=!1),i={value:t,configurable:n,enumerable:U,writable:F},a?UF(FF(a),i):i};iF.gs=function(e,t,n){var U,F,a,i;return"string"!=typeof e?(a=n,n=t,t=e,e=null):a=arguments[3],tF(t)?nF(t)?tF(n)?nF(n)||(a=n,n=void 0):n=void 0:(a=t,t=n=void 0):t=void 0,tF(e)?(U=aF.call(e,"c"),F=aF.call(e,"e")):(U=!0,F=!1),i={get:t,set:n,configurable:U,enumerable:F},a?UF(FF(a),i):i};var QF,lF,rF,dF,oF,sF,BF,cF,RF,uF,VF,hF,ZF,SF,pF,JF,mF,bF,WF=kU.exports;QF=WU,lF=WU.exports,uF=WF,VF=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},hF=Function.prototype.apply,ZF=Function.prototype.call,SF=Object.create,pF=Object.defineProperty,JF=Object.defineProperties,mF=Object.prototype.hasOwnProperty,bF={configurable:!0,enumerable:!1,writable:!0},dF=function(e,t){var n,U;return VF(t),U=this,rF.call(this,e,n=function(){oF.call(U,e,n),hF.call(t,this,arguments)}),n.__eeOnceListener__=t,this},sF=function(e){var t,n,U,F,a;if(mF.call(this,"__ee__")&&(F=this.__ee__[e]))if("object"==typeof F){for(n=arguments.length,a=new Array(n-1),t=1;t<n;++t)a[t-1]=arguments[t];for(F=F.slice(),t=0;U=F[t];++t)hF.call(U,this,a)}else switch(arguments.length){case 1:ZF.call(F,this);break;case 2:ZF.call(F,this,arguments[1]);break;case 3:ZF.call(F,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,a=new Array(n-1),t=1;t<n;++t)a[t-1]=arguments[t];hF.call(F,this,a)}},BF={on:rF=function(e,t){var n;return VF(t),mF.call(this,"__ee__")?n=this.__ee__:(n=bF.value=SF(null),pF(this,"__ee__",bF),bF.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:dF,off:oF=function(e,t){var n,U,F,a;if(VF(t),!mF.call(this,"__ee__"))return this;if(!(n=this.__ee__)[e])return this;if("object"==typeof(U=n[e]))for(a=0;F=U[a];++a)F!==t&&F.__eeOnceListener__!==t||(2===U.length?n[e]=U[a?0:1]:U.splice(a,1));else U!==t&&U.__eeOnceListener__!==t||delete n[e];return this},emit:sF},cF={on:uF(rF),once:uF(dF),off:uF(oF),emit:uF(sF)},RF=JF({},cF),QF.exports=lF=function(e){return null==e?SF(RF):JF(Object(e),cF)},lF.methods=BF;var kF=Ut(WU.exports),EF=wU,yF={function:!0,object:!0},fF=function(e){return EF(e)&&yF[typeof e]||!1},NF=function(e){if(!fF(e))throw new TypeError(e+" is not an Object");return e},vF=Object.prototype.hasOwnProperty,TF=function(e){var t,n=arguments[1];if(NF(e),void 0===n)vF.call(e,"__ee__")&&delete e.__ee__;else{if(!(t=vF.call(e,"__ee__")&&e.__ee__))return;t[n]&&delete t[n]}},CF=Ut(TF),gF={exports:{}};!function(e,t){!function(e){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==nt?nt:"undefined"!=typeof self?self:{};function n(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var U=function(e){return e&&e.Math==Math&&e},F=U("object"==typeof globalThis&&globalThis)||U("object"==typeof window&&window)||U("object"==typeof self&&self)||U("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a={},i=function(e){try{return!!e()}catch(ER){return!0}},Q=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),l={},r={}.propertyIsEnumerable,d=Object.getOwnPropertyDescriptor,o=d&&!r.call({1:2},1);l.f=o?function(e){var t=d(this,e);return!!t&&t.enumerable}:r;var s=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},B={}.toString,c=function(e){return B.call(e).slice(8,-1)},R=c,u="".split,V=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==R(e)?u.call(e,""):Object(e)}:Object,h=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e},Z=V,S=h,p=function(e){return Z(S(e))},J=function(e){return"object"==typeof e?null!==e:"function"==typeof e},m=J,b=function(e,t){if(!m(e))return e;var n,U;if(t&&"function"==typeof(n=e.toString)&&!m(U=n.call(e)))return U;if("function"==typeof(n=e.valueOf)&&!m(U=n.call(e)))return U;if(!t&&"function"==typeof(n=e.toString)&&!m(U=n.call(e)))return U;throw TypeError("Can't convert object to primitive value")},W=h,k=function(e){return Object(W(e))},E=k,y={}.hasOwnProperty,f=function(e,t){return y.call(E(e),t)},N=J,v=F.document,T=N(v)&&N(v.createElement),C=function(e){return T?v.createElement(e):{}},g=C,D=!Q&&!i((function(){return 7!=Object.defineProperty(g("div"),"a",{get:function(){return 7}}).a})),X=Q,x=l,L=s,I=p,G=b,M=f,Y=D,w=Object.getOwnPropertyDescriptor;a.f=X?w:function(e,t){if(e=I(e),t=G(t,!0),Y)try{return w(e,t)}catch(n){}if(M(e,t))return L(!x.f.call(e,t),e[t])};var K={},_=J,j=function(e){if(!_(e))throw TypeError(String(e)+" is not an object");return e},H=Q,P=D,z=j,O=b,A=Object.defineProperty;K.f=H?A:function(e,t,n){if(z(e),t=O(t,!0),z(n),P)try{return A(e,t,n)}catch(U){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var q=K,$=s,ee=Q?function(e,t,n){return q.f(e,t,$(1,n))}:function(e,t,n){return e[t]=n,e},te={exports:{}},ne=F,Ue=ee,Fe=function(e,t){try{Ue(ne,e,t)}catch(n){ne[e]=t}return t},ae=Fe,ie="__core-js_shared__",Qe=F[ie]||ae(ie,{}),le=Qe,re=Function.toString;"function"!=typeof le.inspectSource&&(le.inspectSource=function(e){return re.call(e)});var de=le.inspectSource,oe=de,se=F.WeakMap,Be="function"==typeof se&&/native code/.test(oe(se)),ce={exports:{}},Re=Qe;(ce.exports=function(e,t){return Re[e]||(Re[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.12.1",mode:"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"});var ue,Ve,he,Ze=ce.exports,Se=0,pe=Math.random(),Je=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++Se+pe).toString(36)},me=Je,be=Ze("keys"),We=function(e){return be[e]||(be[e]=me(e))},ke={},Ee=Be,ye=J,fe=ee,Ne=f,ve=Qe,Te=We,Ce=ke,ge="Object already initialized",De=F.WeakMap;if(Ee||ve.state){var Xe=ve.state||(ve.state=new De),xe=Xe.get,Le=Xe.has,Ie=Xe.set;ue=function(e,t){if(Le.call(Xe,e))throw new TypeError(ge);return t.facade=e,Ie.call(Xe,e,t),t},Ve=function(e){return xe.call(Xe,e)||{}},he=function(e){return Le.call(Xe,e)}}else{var Ge=Te("state");Ce[Ge]=!0,ue=function(e,t){if(Ne(e,Ge))throw new TypeError(ge);return t.facade=e,fe(e,Ge,t),t},Ve=function(e){return Ne(e,Ge)?e[Ge]:{}},he=function(e){return Ne(e,Ge)}}var Me={set:ue,get:Ve,has:he,enforce:function(e){return he(e)?Ve(e):ue(e,{})},getterFor:function(e){return function(t){var n;if(!ye(t)||(n=Ve(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}},Ye=F,we=ee,Ke=f,_e=Fe,je=de,He=Me.get,Pe=Me.enforce,ze=String(String).split("String");(te.exports=function(e,t,n,U){var F,a=!!U&&!!U.unsafe,i=!!U&&!!U.enumerable,Q=!!U&&!!U.noTargetGet;"function"==typeof n&&("string"!=typeof t||Ke(n,"name")||we(n,"name",t),(F=Pe(n)).source||(F.source=ze.join("string"==typeof t?t:""))),e!==Ye?(a?!Q&&e[t]&&(i=!0):delete e[t],i?e[t]=n:we(e,t,n)):i?e[t]=n:_e(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&He(this).source||je(this)}));var Oe=te.exports,Ae=F,qe=F,$e=function(e){return"function"==typeof e?e:void 0},et=function(e,t){return arguments.length<2?$e(Ae[e])||$e(qe[e]):Ae[e]&&Ae[e][t]||qe[e]&&qe[e][t]},tt={},Ut=Math.ceil,Ft=Math.floor,at=function(e){return isNaN(e=+e)?0:(e>0?Ft:Ut)(e)},it=at,Qt=Math.min,lt=function(e){return e>0?Qt(it(e),9007199254740991):0},rt=at,dt=Math.max,ot=Math.min,st=function(e,t){var n=rt(e);return n<0?dt(n+t,0):ot(n,t)},Bt=p,ct=lt,Rt=st,ut=function(e){return function(t,n,U){var F,a=Bt(t),i=ct(a.length),Q=Rt(U,i);if(e&&n!=n){for(;i>Q;)if((F=a[Q++])!=F)return!0}else for(;i>Q;Q++)if((e||Q in a)&&a[Q]===n)return e||Q||0;return!e&&-1}},Vt={includes:ut(!0),indexOf:ut(!1)},ht=f,Zt=p,St=Vt.indexOf,pt=ke,Jt=function(e,t){var n,U=Zt(e),F=0,a=[];for(n in U)!ht(pt,n)&&ht(U,n)&&a.push(n);for(;t.length>F;)ht(U,n=t[F++])&&(~St(a,n)||a.push(n));return a},mt=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],bt=Jt,Wt=mt.concat("length","prototype");tt.f=Object.getOwnPropertyNames||function(e){return bt(e,Wt)};var kt={};kt.f=Object.getOwnPropertySymbols;var Et=tt,yt=kt,ft=j,Nt=et("Reflect","ownKeys")||function(e){var t=Et.f(ft(e)),n=yt.f;return n?t.concat(n(e)):t},vt=f,Tt=Nt,Ct=a,gt=K,Dt=i,Xt=/#|\.prototype\./,xt=function(e,t){var n=It[Lt(e)];return n==Mt||n!=Gt&&("function"==typeof t?Dt(t):!!t)},Lt=xt.normalize=function(e){return String(e).replace(Xt,".").toLowerCase()},It=xt.data={},Gt=xt.NATIVE="N",Mt=xt.POLYFILL="P",Yt=xt,wt=F,Kt=a.f,_t=ee,jt=Oe,Ht=Fe,Pt=function(e,t){for(var n=Tt(t),U=gt.f,F=Ct.f,a=0;a<n.length;a++){var i=n[a];vt(e,i)||U(e,i,F(t,i))}},zt=Yt,Ot=function(e,t){var n,U,F,a,i,Q=e.target,l=e.global,r=e.stat;if(n=l?wt:r?wt[Q]||Ht(Q,{}):(wt[Q]||{}).prototype)for(U in t){if(a=t[U],F=e.noTargetGet?(i=Kt(n,U))&&i.value:n[U],!zt(l?U:Q+(r?".":"#")+U,e.forced)&&void 0!==F){if(typeof a==typeof F)continue;Pt(a,F)}(e.sham||F&&F.sham)&&_t(a,"sham",!0),jt(n,U,a,e)}};function At(){At=function(){return e};var e={},t=Object.prototype,n=t.hasOwnProperty,U=Object.defineProperty||function(e,t,n){e[t]=n.value},F="function"==typeof Symbol?Symbol:{},a=F.iterator||"@@iterator",i=F.asyncIterator||"@@asyncIterator",Q=F.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(y){l=function(e,t,n){return e[t]=n}}function r(e,t,n,F){var a=t&&t.prototype instanceof s?t:s,i=Object.create(a.prototype),Q=new W(F||[]);return U(i,"_invoke",{value:p(e,n,Q)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(y){return{type:"throw",arg:y}}}e.wrap=r;var o={};function s(){}function B(){}function c(){}var R={};l(R,a,(function(){return this}));var u=Object.getPrototypeOf,V=u&&u(u(k([])));V&&V!==t&&n.call(V,a)&&(R=V);var h=c.prototype=s.prototype=Object.create(R);function Z(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function S(e,t){function F(U,a,i,Q){var l=d(e[U],e,a);if("throw"!==l.type){var r=l.arg,o=r.value;return o&&"object"==typeof o&&n.call(o,"__await")?t.resolve(o.__await).then((function(e){F("next",e,i,Q)}),(function(e){F("throw",e,i,Q)})):t.resolve(o).then((function(e){r.value=e,i(r)}),(function(e){return F("throw",e,i,Q)}))}Q(l.arg)}var a;U(this,"_invoke",{value:function(e,n){function U(){return new t((function(t,U){F(e,n,t,U)}))}return a=a?a.then(U,U):U()}})}function p(e,t,n){var U="suspendedStart";return function(F,a){if("executing"===U)throw new Error("Generator is already running");if("completed"===U){if("throw"===F)throw a;return{value:void 0,done:!0}}for(n.method=F,n.arg=a;;){var i=n.delegate;if(i){var Q=J(i,n);if(Q){if(Q===o)continue;return Q}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===U)throw U="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);U="executing";var l=d(e,t,n);if("normal"===l.type){if(U=n.done?"completed":"suspendedYield",l.arg===o)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(U="completed",n.method="throw",n.arg=l.arg)}}}function J(e,t){var n=t.method,U=e.iterator[n];if(void 0===U)return t.delegate=null,"throw"===n&&e.iterator.return&&(t.method="return",t.arg=void 0,J(e,t),"throw"===t.method)||"return"!==n&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+n+"' method")),o;var F=d(U,e.iterator,t.arg);if("throw"===F.type)return t.method="throw",t.arg=F.arg,t.delegate=null,o;var a=F.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,o):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,o)}function m(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function b(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function W(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(m,this),this.reset(!0)}function k(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var U=-1,F=function t(){for(;++U<e.length;)if(n.call(e,U))return t.value=e[U],t.done=!1,t;return t.value=void 0,t.done=!0,t};return F.next=F}}return{next:E}}function E(){return{value:void 0,done:!0}}return B.prototype=c,U(h,"constructor",{value:c,configurable:!0}),U(c,"constructor",{value:B,configurable:!0}),B.displayName=l(c,Q,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===B||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,l(e,Q,"GeneratorFunction")),e.prototype=Object.create(h),e},e.awrap=function(e){return{__await:e}},Z(S.prototype),l(S.prototype,i,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,U,F,a){void 0===a&&(a=Promise);var i=new S(r(t,n,U,F),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},Z(h),l(h,Q,"Generator"),l(h,a,(function(){return this})),l(h,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),n=[];for(var U in t)n.push(U);return n.reverse(),function e(){for(;n.length;){var U=n.pop();if(U in t)return e.value=U,e.done=!1,e}return e.done=!0,e}},e.values=k,W.prototype={constructor:W,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(b),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=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 t=this;function U(n,U){return i.type="throw",i.arg=e,t.next=n,U&&(t.method="next",t.arg=void 0),!!U}for(var F=this.tryEntries.length-1;F>=0;--F){var a=this.tryEntries[F],i=a.completion;if("root"===a.tryLoc)return U("end");if(a.tryLoc<=this.prev){var Q=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(Q&&l){if(this.prev<a.catchLoc)return U(a.catchLoc,!0);if(this.prev<a.finallyLoc)return U(a.finallyLoc)}else if(Q){if(this.prev<a.catchLoc)return U(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return U(a.finallyLoc)}}}},abrupt:function(e,t){for(var U=this.tryEntries.length-1;U>=0;--U){var F=this.tryEntries[U];if(F.tryLoc<=this.prev&&n.call(F,"finallyLoc")&&this.prev<F.finallyLoc){var a=F;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,o):this.complete(i)},complete:function(e,t){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&&t&&(this.next=t),o},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),b(n),o}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var U=n.completion;if("throw"===U.type){var F=U.arg;b(n)}return F}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:k(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),o}},e}function qt(e){return(qt="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 $t(e,t,n,U,F,a,i){try{var Q=e[a](i),l=Q.value}catch(r){return void n(r)}Q.done?t(l):Promise.resolve(l).then(U,F)}function en(e){return function(){var t=this,n=arguments;return new Promise((function(U,F){var a=e.apply(t,n);function i(e){$t(a,U,F,i,Q,"next",e)}function Q(e){$t(a,U,F,i,Q,"throw",e)}i(void 0)}))}}function tn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nn(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,on(U.key),U)}}function Un(e,t,n){return t&&nn(e.prototype,t),n&&nn(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Fn(e,t,n){return(t=on(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function an(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ln(e,t)}function Qn(e){return(Qn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ln(e,t){return(ln=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function rn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function dn(e){var t=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 n,U=Qn(e);if(t){var F=Qn(this).constructor;n=Reflect.construct(U,arguments,F)}else n=U.apply(this,arguments);return function(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return rn(e)}(this,n)}}function on(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}Ot({global:!0},{globalThis:F});var sn,Bn,cn=et("navigator","userAgent")||"",Rn=cn,un=F.process,Vn=un&&un.versions,hn=Vn&&Vn.v8;hn?Bn=(sn=hn.split("."))[0]<4?1:sn[0]+sn[1]:Rn&&(!(sn=Rn.match(/Edge\/(\d+)/))||sn[1]>=74)&&(sn=Rn.match(/Chrome\/(\d+)/))&&(Bn=sn[1]);var Zn,Sn=Bn&&+Bn,pn=Sn,Jn=i,mn=!!Object.getOwnPropertySymbols&&!Jn((function(){return!String(Symbol())||!Symbol.sham&&pn&&pn<41})),bn=mn&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Wn=F,kn=f,En=Je,yn=mn,fn=bn,Nn=Ze("wks"),vn=Wn.Symbol,Tn=fn?vn:vn&&vn.withoutSetter||En,Cn=function(e){return kn(Nn,e)&&(yn||"string"==typeof Nn[e])||(yn&&kn(vn,e)?Nn[e]=vn[e]:Nn[e]=Tn("Symbol."+e)),Nn[e]},gn=Jt,Dn=mt,Xn=Object.keys||function(e){return gn(e,Dn)},xn=K,Ln=j,In=Xn,Gn=Q?Object.defineProperties:function(e,t){Ln(e);for(var n,U=In(t),F=U.length,a=0;F>a;)xn.f(e,n=U[a++],t[n]);return e},Mn=et("document","documentElement"),Yn=j,wn=Gn,Kn=mt,_n=ke,jn=Mn,Hn=C,Pn="prototype",zn="script",On=We("IE_PROTO"),An=function(){},qn=function(e){return"<"+zn+">"+e+"</"+zn+">"},$n=function(){try{Zn=document.domain&&new ActiveXObject("htmlfile")}catch(F){}var e,t,n;$n=Zn?function(e){e.write(qn("")),e.close();var t=e.parentWindow.Object;return e=null,t}(Zn):(t=Hn("iframe"),n="java"+zn+":",t.style.display="none",jn.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(qn("document.F=Object")),e.close(),e.F);for(var U=Kn.length;U--;)delete $n[Pn][Kn[U]];return $n()};_n[On]=!0;var eU=Object.create||function(e,t){var n;return null!==e?(An[Pn]=Yn(e),n=new An,An[Pn]=null,n[On]=e):n=$n(),void 0===t?n:wn(n,t)},tU=eU,nU=K,UU=Cn("unscopables"),FU=Array.prototype;null==FU[UU]&&nU.f(FU,UU,{configurable:!0,value:tU(null)});var aU,iU,QU,lU={},rU=!i((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),dU=f,oU=k,sU=rU,BU=We("IE_PROTO"),cU=Object.prototype,RU=sU?Object.getPrototypeOf:function(e){return e=oU(e),dU(e,BU)?e[BU]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?cU:null},uU=i,VU=RU,hU=ee,ZU=f,SU=Cn("iterator"),pU=!1;[].keys&&("next"in(QU=[].keys())?(iU=VU(VU(QU)))!==Object.prototype&&(aU=iU):pU=!0),(null==aU||uU((function(){var e={};return aU[SU].call(e)!==e})))&&(aU={}),ZU(aU,SU)||hU(aU,SU,(function(){return this}));var JU={IteratorPrototype:aU,BUGGY_SAFARI_ITERATORS:pU},mU=K.f,bU=f,WU=Cn("toStringTag"),kU=function(e,t,n){e&&!bU(e=n?e:e.prototype,WU)&&mU(e,WU,{configurable:!0,value:t})},EU=JU.IteratorPrototype,yU=eU,fU=s,NU=kU,vU=lU,TU=function(){return this},CU=J,gU=j,DU=function(e){if(!CU(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e},XU=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(U){}return function(n,U){return gU(n),DU(U),t?e.call(n,U):n.__proto__=U,n}}():void 0),xU=Ot,LU=function(e,t,n){var U=t+" Iterator";return e.prototype=yU(EU,{next:fU(1,n)}),NU(e,U,!1),vU[U]=TU,e},IU=RU,GU=XU,MU=kU,YU=ee,wU=Oe,KU=lU,_U=JU.IteratorPrototype,jU=JU.BUGGY_SAFARI_ITERATORS,HU=Cn("iterator"),PU="keys",zU="values",OU="entries",AU=function(){return this},qU=function(e,t,n,U,F,a,i){LU(n,t,U);var Q,l,r,d=function(e){if(e===F&&R)return R;if(!jU&&e in B)return B[e];switch(e){case PU:case zU:case OU:return function(){return new n(this,e)}}return function(){return new n(this)}},o=t+" Iterator",s=!1,B=e.prototype,c=B[HU]||B["@@iterator"]||F&&B[F],R=!jU&&c||d(F),u="Array"==t&&B.entries||c;if(u&&(Q=IU(u.call(new e)),_U!==Object.prototype&&Q.next&&(IU(Q)!==_U&&(GU?GU(Q,_U):"function"!=typeof Q[HU]&&YU(Q,HU,AU)),MU(Q,o,!0))),F==zU&&c&&c.name!==zU&&(s=!0,R=function(){return c.call(this)}),B[HU]!==R&&YU(B,HU,R),KU[t]=R,F)if(l={values:d(zU),keys:a?R:d(PU),entries:d(OU)},i)for(r in l)(jU||s||!(r in B))&&wU(B,r,l[r]);else xU({target:t,proto:!0,forced:jU||s},l);return l},$U=p,eF=function(e){FU[UU][e]=!0},tF=lU,nF=Me,UF=qU,FF="Array Iterator",aF=nF.set,iF=nF.getterFor(FF),QF=UF(Array,"Array",(function(e,t){aF(this,{type:FF,target:$U(e),index:0,kind:t})}),(function(){var e=iF(this),t=e.target,n=e.kind,U=e.index++;return!t||U>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:U,done:!1}:"values"==n?{value:t[U],done:!1}:{value:[U,t[U]],done:!1}}),"values");tF.Arguments=tF.Array,eF("keys"),eF("values"),eF("entries");var lF={};lF[Cn("toStringTag")]="z";var rF="[object z]"===String(lF),dF=rF,oF=c,sF=Cn("toStringTag"),BF="Arguments"==oF(function(){return arguments}()),cF=dF?oF:function(e){var t,n,U;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),sF))?n:BF?oF(t):"Object"==(U=oF(t))&&"function"==typeof t.callee?"Arguments":U},RF=cF,uF=rF?{}.toString:function(){return"[object "+RF(this)+"]"};rF||Oe(Object.prototype,"toString",uF,{unsafe:!0});var VF={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},hF=F,ZF=VF,SF=QF,pF=ee,JF=Cn,mF=JF("iterator"),bF=JF("toStringTag"),WF=SF.values;for(var kF in ZF){var EF=hF[kF],yF=EF&&EF.prototype;if(yF){if(yF[mF]!==WF)try{pF(yF,mF,WF)}catch(Jh){yF[mF]=WF}if(yF[bF]||pF(yF,bF,kF),ZF[kF])for(var fF in SF)if(yF[fF]!==SF[fF])try{pF(yF,fF,SF[fF])}catch(Jh){yF[fF]=SF[fF]}}}var NF={exports:{}},vF=Cn("iterator"),TF=!1;try{var CF=0,gF={next:function(){return{done:!!CF++}},return:function(){TF=!0}};gF[vF]=function(){return this},Array.from(gF,(function(){throw 2}))}catch(Jh){}var DF,XF=function(e,t){if(!t&&!TF)return!1;var n=!1;try{var U={};U[vF]=function(){return{next:function(){return{done:n=!0}}}},e(U)}catch(Jh){}return n},xF="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView,LF=xF,IF=Q,GF=F,MF=J,YF=f,wF=cF,KF=ee,_F=Oe,jF=K.f,HF=RU,PF=XU,zF=Cn,OF=Je,AF=GF.Int8Array,qF=AF&&AF.prototype,$F=GF.Uint8ClampedArray,ea=$F&&$F.prototype,ta=AF&&HF(AF),na=qF&&HF(qF),Ua=Object.prototype,Fa=Ua.isPrototypeOf,aa=zF("toStringTag"),ia=OF("TYPED_ARRAY_TAG"),Qa=LF&&!!PF&&"Opera"!==wF(GF.opera),la=!1,ra={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},da={BigInt64Array:8,BigUint64Array:8},oa=function(e){if(!MF(e))return!1;var t=wF(e);return YF(ra,t)||YF(da,t)};for(DF in ra)GF[DF]||(Qa=!1);if((!Qa||"function"!=typeof ta||ta===Function.prototype)&&(ta=function(){throw TypeError("Incorrect invocation")},Qa))for(DF in ra)GF[DF]&&PF(GF[DF],ta);if((!Qa||!na||na===Ua)&&(na=ta.prototype,Qa))for(DF in ra)GF[DF]&&PF(GF[DF].prototype,na);if(Qa&&HF(ea)!==na&&PF(ea,na),IF&&!YF(na,aa))for(DF in la=!0,jF(na,aa,{get:function(){return MF(this)?this[ia]:void 0}}),ra)GF[DF]&&KF(GF[DF],ia,DF);var sa={NATIVE_ARRAY_BUFFER_VIEWS:Qa,TYPED_ARRAY_TAG:la&&ia,aTypedArray:function(e){if(oa(e))return e;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(e){if(PF){if(Fa.call(ta,e))return e}else for(var t in ra)if(YF(ra,DF)){var n=GF[t];if(n&&(e===n||Fa.call(n,e)))return e}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(e,t,n){if(IF){if(n)for(var U in ra){var F=GF[U];if(F&&YF(F.prototype,e))try{delete F.prototype[e]}catch(Jh){}}na[e]&&!n||_F(na,e,n?t:Qa&&qF[e]||t)}},exportTypedArrayStaticMethod:function(e,t,n){var U,F;if(IF){if(PF){if(n)for(U in ra)if((F=GF[U])&&YF(F,e))try{delete F[e]}catch(Jh){}if(ta[e]&&!n)return;try{return _F(ta,e,n?t:Qa&&ta[e]||t)}catch(Jh){}}for(U in ra)!(F=GF[U])||F[e]&&!n||_F(F,e,t)}},isView:function(e){if(!MF(e))return!1;var t=wF(e);return"DataView"===t||YF(ra,t)||YF(da,t)},isTypedArray:oa,TypedArray:ta,TypedArrayPrototype:na},Ba=F,ca=i,Ra=XF,ua=sa.NATIVE_ARRAY_BUFFER_VIEWS,Va=Ba.ArrayBuffer,ha=Ba.Int8Array,Za=!ua||!ca((function(){ha(1)}))||!ca((function(){new ha(-1)}))||!Ra((function(e){new ha,new ha(null),new ha(1.5),new ha(e)}),!0)||ca((function(){return 1!==new ha(new Va(2),1,void 0).length})),Sa=Oe,pa=function(e,t,n){for(var U in t)Sa(e,U,t[U],n);return e},Ja=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e},ma=at,ba=lt,Wa=function(e){if(void 0===e)return 0;var t=ma(e),n=ba(t);if(t!==n)throw RangeError("Wrong length or index");return n},ka=Math.abs,Ea=Math.pow,ya=Math.floor,fa=Math.log,Na=Math.LN2,va=k,Ta=st,Ca=lt,ga=function(e){for(var t=va(this),n=Ca(t.length),U=arguments.length,F=Ta(U>1?arguments[1]:void 0,n),a=U>2?arguments[2]:void 0,i=void 0===a?n:Ta(a,n);i>F;)t[F++]=e;return t},Da=F,Xa=Q,xa=xF,La=ee,Ia=pa,Ga=i,Ma=Ja,Ya=at,wa=lt,Ka=Wa,_a={pack:function(e,t,n){var U,F,a,i=new Array(n),Q=8*n-t-1,l=(1<<Q)-1,r=l>>1,d=23===t?Ea(2,-24)-Ea(2,-77):0,o=e<0||0===e&&1/e<0?1:0,s=0;for((e=ka(e))!=e||e===1/0?(F=e!=e?1:0,U=l):(U=ya(fa(e)/Na),e*(a=Ea(2,-U))<1&&(U--,a*=2),(e+=U+r>=1?d/a:d*Ea(2,1-r))*a>=2&&(U++,a/=2),U+r>=l?(F=0,U=l):U+r>=1?(F=(e*a-1)*Ea(2,t),U+=r):(F=e*Ea(2,r-1)*Ea(2,t),U=0));t>=8;i[s++]=255&F,F/=256,t-=8);for(U=U<<t|F,Q+=t;Q>0;i[s++]=255&U,U/=256,Q-=8);return i[--s]|=128*o,i},unpack:function(e,t){var n,U=e.length,F=8*U-t-1,a=(1<<F)-1,i=a>>1,Q=F-7,l=U-1,r=e[l--],d=127&r;for(r>>=7;Q>0;d=256*d+e[l],l--,Q-=8);for(n=d&(1<<-Q)-1,d>>=-Q,Q+=t;Q>0;n=256*n+e[l],l--,Q-=8);if(0===d)d=1-i;else{if(d===a)return n?NaN:r?-1/0:1/0;n+=Ea(2,t),d-=i}return(r?-1:1)*n*Ea(2,d-t)}},ja=RU,Ha=XU,Pa=tt.f,za=K.f,Oa=ga,Aa=kU,qa=Me.get,$a=Me.set,ei="ArrayBuffer",ti="DataView",ni="prototype",Ui="Wrong index",Fi=Da[ei],ai=Fi,ii=Da[ti],Qi=ii&&ii[ni],li=Object.prototype,ri=Da.RangeError,di=_a.pack,oi=_a.unpack,si=function(e){return[255&e]},Bi=function(e){return[255&e,e>>8&255]},ci=function(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]},Ri=function(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]},ui=function(e){return di(e,23,4)},Vi=function(e){return di(e,52,8)},hi=function(e,t){za(e[ni],t,{get:function(){return qa(this)[t]}})},Zi=function(e,t,n,U){var F=Ka(n),a=qa(e);if(F+t>a.byteLength)throw ri(Ui);var i=qa(a.buffer).bytes,Q=F+a.byteOffset,l=i.slice(Q,Q+t);return U?l:l.reverse()},Si=function(e,t,n,U,F,a){var i=Ka(n),Q=qa(e);if(i+t>Q.byteLength)throw ri(Ui);for(var l=qa(Q.buffer).bytes,r=i+Q.byteOffset,d=U(+F),o=0;o<t;o++)l[r+o]=d[a?o:t-o-1]};if(xa){if(!Ga((function(){Fi(1)}))||!Ga((function(){new Fi(-1)}))||Ga((function(){return new Fi,new Fi(1.5),new Fi(NaN),Fi.name!=ei}))){for(var pi,Ji=(ai=function(e){return Ma(this,ai),new Fi(Ka(e))})[ni]=Fi[ni],mi=Pa(Fi),bi=0;mi.length>bi;)(pi=mi[bi++])in ai||La(ai,pi,Fi[pi]);Ji.constructor=ai}Ha&&ja(Qi)!==li&&Ha(Qi,li);var Wi=new ii(new ai(2)),ki=Qi.setInt8;Wi.setInt8(0,2147483648),Wi.setInt8(1,2147483649),!Wi.getInt8(0)&&Wi.getInt8(1)||Ia(Qi,{setInt8:function(e,t){ki.call(this,e,t<<24>>24)},setUint8:function(e,t){ki.call(this,e,t<<24>>24)}},{unsafe:!0})}else ai=function(e){Ma(this,ai,ei);var t=Ka(e);$a(this,{bytes:Oa.call(new Array(t),0),byteLength:t}),Xa||(this.byteLength=t)},ii=function(e,t,n){Ma(this,ii,ti),Ma(e,ai,ti);var U=qa(e).byteLength,F=Ya(t);if(F<0||F>U)throw ri("Wrong offset");if(F+(n=void 0===n?U-F:wa(n))>U)throw ri("Wrong length");$a(this,{buffer:e,byteLength:n,byteOffset:F}),Xa||(this.buffer=e,this.byteLength=n,this.byteOffset=F)},Xa&&(hi(ai,"byteLength"),hi(ii,"buffer"),hi(ii,"byteLength"),hi(ii,"byteOffset")),Ia(ii[ni],{getInt8:function(e){return Zi(this,1,e)[0]<<24>>24},getUint8:function(e){return Zi(this,1,e)[0]},getInt16:function(e){var t=Zi(this,2,e,arguments.length>1?arguments[1]:void 0);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=Zi(this,2,e,arguments.length>1?arguments[1]:void 0);return t[1]<<8|t[0]},getInt32:function(e){return Ri(Zi(this,4,e,arguments.length>1?arguments[1]:void 0))},getUint32:function(e){return Ri(Zi(this,4,e,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(e){return oi(Zi(this,4,e,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(e){return oi(Zi(this,8,e,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(e,t){Si(this,1,e,si,t)},setUint8:function(e,t){Si(this,1,e,si,t)},setInt16:function(e,t){Si(this,2,e,Bi,t,arguments.length>2?arguments[2]:void 0)},setUint16:function(e,t){Si(this,2,e,Bi,t,arguments.length>2?arguments[2]:void 0)},setInt32:function(e,t){Si(this,4,e,ci,t,arguments.length>2?arguments[2]:void 0)},setUint32:function(e,t){Si(this,4,e,ci,t,arguments.length>2?arguments[2]:void 0)},setFloat32:function(e,t){Si(this,4,e,ui,t,arguments.length>2?arguments[2]:void 0)},setFloat64:function(e,t){Si(this,8,e,Vi,t,arguments.length>2?arguments[2]:void 0)}});Aa(ai,ei),Aa(ii,ti);var Ei={ArrayBuffer:ai,DataView:ii},yi=at,fi=function(e){var t=yi(e);if(t<0)throw RangeError("The argument can't be less than 0");return t},Ni=function(e,t){var n=fi(e);if(n%t)throw RangeError("Wrong offset");return n},vi=cF,Ti=lU,Ci=Cn("iterator"),gi=function(e){if(null!=e)return e[Ci]||e["@@iterator"]||Ti[vi(e)]},Di=lU,Xi=Cn("iterator"),xi=Array.prototype,Li=function(e){return void 0!==e&&(Di.Array===e||xi[Xi]===e)},Ii=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e},Gi=Ii,Mi=function(e,t,n){if(Gi(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,U){return e.call(t,n,U)};case 3:return function(n,U,F){return e.call(t,n,U,F)}}return function(){return e.apply(t,arguments)}},Yi=k,wi=lt,Ki=gi,_i=Li,ji=Mi,Hi=sa.aTypedArrayConstructor,Pi=c,zi=Array.isArray||function(e){return"Array"==Pi(e)},Oi=J,Ai=zi,qi=Cn("species"),$i=function(e,t){var n;return Ai(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!Ai(n.prototype)?Oi(n)&&null===(n=n[qi])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)},eQ=Mi,tQ=V,nQ=k,UQ=lt,FQ=$i,aQ=[].push,iQ=function(e){var t=1==e,n=2==e,U=3==e,F=4==e,a=6==e,i=7==e,Q=5==e||a;return function(l,r,d,o){for(var s,B,c=nQ(l),R=tQ(c),u=eQ(r,d,3),V=UQ(R.length),h=0,Z=o||FQ,S=t?Z(l,V):n||i?Z(l,0):void 0;V>h;h++)if((Q||h in R)&&(B=u(s=R[h],h,c),e))if(t)S[h]=B;else if(B)switch(e){case 3:return!0;case 5:return s;case 6:return h;case 2:aQ.call(S,s)}else switch(e){case 4:return!1;case 7:aQ.call(S,s)}return a?-1:U||F?F:S}},QQ={forEach:iQ(0),map:iQ(1),filter:iQ(2),some:iQ(3),every:iQ(4),find:iQ(5),findIndex:iQ(6),filterOut:iQ(7)},lQ=et,rQ=K,dQ=Q,oQ=Cn("species"),sQ=function(e){var t=lQ(e),n=rQ.f;dQ&&t&&!t[oQ]&&n(t,oQ,{configurable:!0,get:function(){return this}})},BQ=J,cQ=XU,RQ=function(e,t,n){var U,F;return cQ&&"function"==typeof(U=t.constructor)&&U!==n&&BQ(F=U.prototype)&&F!==n.prototype&&cQ(e,F),e},uQ=Ot,VQ=F,hQ=Q,ZQ=Za,SQ=sa,pQ=Ei,JQ=Ja,mQ=s,bQ=ee,WQ=lt,kQ=Wa,EQ=Ni,yQ=b,fQ=f,NQ=cF,vQ=J,TQ=eU,CQ=XU,gQ=tt.f,DQ=function(e){var t,n,U,F,a,i,Q=Yi(e),l=arguments.length,r=l>1?arguments[1]:void 0,d=void 0!==r,o=Ki(Q);if(null!=o&&!_i(o))for(i=(a=o.call(Q)).next,Q=[];!(F=i.call(a)).done;)Q.push(F.value);for(d&&l>2&&(r=ji(r,arguments[2],2)),n=wi(Q.length),U=new(Hi(this))(n),t=0;n>t;t++)U[t]=d?r(Q[t],t):Q[t];return U},XQ=QQ.forEach,xQ=sQ,LQ=K,IQ=a,GQ=RQ,MQ=Me.get,YQ=Me.set,wQ=LQ.f,KQ=IQ.f,_Q=Math.round,jQ=VQ.RangeError,HQ=pQ.ArrayBuffer,PQ=pQ.DataView,zQ=SQ.NATIVE_ARRAY_BUFFER_VIEWS,OQ=SQ.TYPED_ARRAY_TAG,AQ=SQ.TypedArray,qQ=SQ.TypedArrayPrototype,$Q=SQ.aTypedArrayConstructor,el=SQ.isTypedArray,tl="BYTES_PER_ELEMENT",nl="Wrong length",Ul=function(e,t){for(var n=0,U=t.length,F=new($Q(e))(U);U>n;)F[n]=t[n++];return F},Fl=function(e,t){wQ(e,t,{get:function(){return MQ(this)[t]}})},al=function(e){var t;return e instanceof HQ||"ArrayBuffer"==(t=NQ(e))||"SharedArrayBuffer"==t},il=function(e,t){return el(e)&&"symbol"!=typeof t&&t in e&&String(+t)==String(t)},Ql=function(e,t){return il(e,t=yQ(t,!0))?mQ(2,e[t]):KQ(e,t)},ll=function(e,t,n){return!(il(e,t=yQ(t,!0))&&vQ(n)&&fQ(n,"value"))||fQ(n,"get")||fQ(n,"set")||n.configurable||fQ(n,"writable")&&!n.writable||fQ(n,"enumerable")&&!n.enumerable?wQ(e,t,n):(e[t]=n.value,e)};hQ?(zQ||(IQ.f=Ql,LQ.f=ll,Fl(qQ,"buffer"),Fl(qQ,"byteOffset"),Fl(qQ,"byteLength"),Fl(qQ,"length")),uQ({target:"Object",stat:!0,forced:!zQ},{getOwnPropertyDescriptor:Ql,defineProperty:ll}),NF.exports=function(e,t,n){var U=e.match(/\d+$/)[0]/8,F=e+(n?"Clamped":"")+"Array",a="get"+e,i="set"+e,Q=VQ[F],l=Q,r=l&&l.prototype,d={},o=function(e,t){wQ(e,t,{get:function(){return e=t,(n=MQ(this)).view[a](e*U+n.byteOffset,!0);var e,n},set:function(e){return F=t,a=e,Q=MQ(this),n&&(a=(a=_Q(a))<0?0:a>255?255:255&a),void Q.view[i](F*U+Q.byteOffset,a,!0);var F,a,Q},enumerable:!0})};zQ?ZQ&&(l=t((function(e,t,n,a){return JQ(e,l,F),GQ(vQ(t)?al(t)?void 0!==a?new Q(t,EQ(n,U),a):void 0!==n?new Q(t,EQ(n,U)):new Q(t):el(t)?Ul(l,t):DQ.call(l,t):new Q(kQ(t)),e,l)})),CQ&&CQ(l,AQ),XQ(gQ(Q),(function(e){e in l||bQ(l,e,Q[e])})),l.prototype=r):(l=t((function(e,t,n,a){JQ(e,l,F);var i,Q,r,d=0,s=0;if(vQ(t)){if(!al(t))return el(t)?Ul(l,t):DQ.call(l,t);i=t,s=EQ(n,U);var B=t.byteLength;if(void 0===a){if(B%U)throw jQ(nl);if((Q=B-s)<0)throw jQ(nl)}else if((Q=WQ(a)*U)+s>B)throw jQ(nl);r=Q/U}else r=kQ(t),i=new HQ(Q=r*U);for(YQ(e,{buffer:i,byteOffset:s,byteLength:Q,length:r,view:new PQ(i)});d<r;)o(e,d++)})),CQ&&CQ(l,AQ),r=l.prototype=TQ(qQ)),r.constructor!==l&&bQ(r,"constructor",l),OQ&&bQ(r,OQ,F),d[F]=l,uQ({global:!0,forced:l!=Q,sham:!zQ},d),tl in l||bQ(l,tl,U),tl in r||bQ(r,tl,U),xQ(F)}):NF.exports=function(){};var rl=NF.exports;rl("Uint8",(function(e){return function(t,n,U){return e(this,t,n,U)}}));var dl=k,ol=st,sl=lt,Bl=Math.min,cl=[].copyWithin||function(e,t){var n=dl(this),U=sl(n.length),F=ol(e,U),a=ol(t,U),i=arguments.length>2?arguments[2]:void 0,Q=Bl((void 0===i?U:ol(i,U))-a,U-F),l=1;for(a<F&&F<a+Q&&(l=-1,a+=Q-1,F+=Q-1);Q-- >0;)a in n?n[F]=n[a]:delete n[F],F+=l,a+=l;return n},Rl=cl,ul=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("copyWithin",(function(e,t){return Rl.call(ul(this),e,t,arguments.length>2?arguments[2]:void 0)}));var Vl=QQ.every,hl=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("every",(function(e){return Vl(hl(this),e,arguments.length>1?arguments[1]:void 0)}));var Zl=ga,Sl=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("fill",(function(e){return Zl.apply(Sl(this),arguments)}));var pl=j,Jl=Ii,ml=Cn("species"),bl=function(e,t){var n,U=pl(e).constructor;return void 0===U||null==(n=pl(U)[ml])?t:Jl(n)},Wl=sa.aTypedArrayConstructor,kl=bl,El=QQ.filter,yl=function(e,t){for(var n=kl(e,e.constructor),U=0,F=t.length,a=new(Wl(n))(F);F>U;)a[U]=t[U++];return a},fl=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("filter",(function(e){var t=El(fl(this),e,arguments.length>1?arguments[1]:void 0);return yl(this,t)}));var Nl=QQ.find,vl=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("find",(function(e){return Nl(vl(this),e,arguments.length>1?arguments[1]:void 0)}));var Tl=QQ.findIndex,Cl=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("findIndex",(function(e){return Tl(Cl(this),e,arguments.length>1?arguments[1]:void 0)}));var gl=QQ.forEach,Dl=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("forEach",(function(e){gl(Dl(this),e,arguments.length>1?arguments[1]:void 0)}));var Xl=Vt.includes,xl=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("includes",(function(e){return Xl(xl(this),e,arguments.length>1?arguments[1]:void 0)}));var Ll=Vt.indexOf,Il=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("indexOf",(function(e){return Ll(Il(this),e,arguments.length>1?arguments[1]:void 0)}));var Gl=F,Ml=sa,Yl=QF,wl=Cn("iterator"),Kl=Gl.Uint8Array,_l=Yl.values,jl=Yl.keys,Hl=Yl.entries,Pl=Ml.aTypedArray,zl=Ml.exportTypedArrayMethod,Ol=Kl&&Kl.prototype[wl],Al=!!Ol&&("values"==Ol.name||null==Ol.name),ql=function(){return _l.call(Pl(this))};zl("entries",(function(){return Hl.call(Pl(this))})),zl("keys",(function(){return jl.call(Pl(this))})),zl("values",ql,!Al),zl(wl,ql,!Al);var $l=sa.aTypedArray,er=[].join;(0,sa.exportTypedArrayMethod)("join",(function(e){return er.apply($l(this),arguments)}));var tr=i,nr=function(e,t){var n=[][e];return!!n&&tr((function(){n.call(null,t||function(){throw 1},1)}))},Ur=p,Fr=at,ar=lt,ir=nr,Qr=Math.min,lr=[].lastIndexOf,rr=!!lr&&1/[1].lastIndexOf(1,-0)<0,dr=ir("lastIndexOf"),or=rr||!dr?function(e){if(rr)return lr.apply(this,arguments)||0;var t=Ur(this),n=ar(t.length),U=n-1;for(arguments.length>1&&(U=Qr(U,Fr(arguments[1]))),U<0&&(U=n+U);U>=0;U--)if(U in t&&t[U]===e)return U||0;return-1}:lr,sr=or,Br=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("lastIndexOf",(function(e){return sr.apply(Br(this),arguments)}));var cr=QQ.map,Rr=bl,ur=sa.aTypedArray,Vr=sa.aTypedArrayConstructor;(0,sa.exportTypedArrayMethod)("map",(function(e){return cr(ur(this),e,arguments.length>1?arguments[1]:void 0,(function(e,t){return new(Vr(Rr(e,e.constructor)))(t)}))}));var hr=Ii,Zr=k,Sr=V,pr=lt,Jr=function(e){return function(t,n,U,F){hr(n);var a=Zr(t),i=Sr(a),Q=pr(a.length),l=e?Q-1:0,r=e?-1:1;if(U<2)for(;;){if(l in i){F=i[l],l+=r;break}if(l+=r,e?l<0:Q<=l)throw TypeError("Reduce of empty array with no initial value")}for(;e?l>=0:Q>l;l+=r)l in i&&(F=n(F,i[l],l,a));return F}},mr={left:Jr(!1),right:Jr(!0)},br=mr.left,Wr=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("reduce",(function(e){return br(Wr(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var kr=mr.right,Er=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("reduceRight",(function(e){return kr(Er(this),e,arguments.length,arguments.length>1?arguments[1]:void 0)}));var yr=sa.aTypedArray,fr=sa.exportTypedArrayMethod,Nr=Math.floor;fr("reverse",(function(){for(var e,t=this,n=yr(t).length,U=Nr(n/2),F=0;F<U;)e=t[F],t[F++]=t[--n],t[n]=e;return t}));var vr=lt,Tr=Ni,Cr=k,gr=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("set",(function(e){gr(this);var t=Tr(arguments.length>1?arguments[1]:void 0,1),n=this.length,U=Cr(e),F=vr(U.length),a=0;if(F+t>n)throw RangeError("Wrong length");for(;a<F;)this[t+a]=U[a++]}),i((function(){new Int8Array(1).set({})})));var Dr=bl,Xr=sa.aTypedArray,xr=sa.aTypedArrayConstructor,Lr=[].slice;(0,sa.exportTypedArrayMethod)("slice",(function(e,t){for(var n=Lr.call(Xr(this),e,t),U=Dr(this,this.constructor),F=0,a=n.length,i=new(xr(U))(a);a>F;)i[F]=n[F++];return i}),i((function(){new Int8Array(1).slice()})));var Ir=QQ.some,Gr=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("some",(function(e){return Ir(Gr(this),e,arguments.length>1?arguments[1]:void 0)}));var Mr=sa.aTypedArray,Yr=[].sort;(0,sa.exportTypedArrayMethod)("sort",(function(e){return Yr.call(Mr(this),e)}));var wr=lt,Kr=st,_r=bl,jr=sa.aTypedArray;(0,sa.exportTypedArrayMethod)("subarray",(function(e,t){var n=jr(this),U=n.length,F=Kr(e,U);return new(_r(n,n.constructor))(n.buffer,n.byteOffset+F*n.BYTES_PER_ELEMENT,wr((void 0===t?U:Kr(t,U))-F))}));var Hr=sa,Pr=i,zr=F.Int8Array,Or=Hr.aTypedArray,Ar=Hr.exportTypedArrayMethod,qr=[].toLocaleString,$r=[].slice,ed=!!zr&&Pr((function(){qr.call(new zr(1))}));Ar("toLocaleString",(function(){return qr.apply(ed?$r.call(Or(this)):Or(this),arguments)}),Pr((function(){return[1,2].toLocaleString()!=new zr([1,2]).toLocaleString()}))||!Pr((function(){zr.prototype.toLocaleString.call([1,2])})));var td=sa.exportTypedArrayMethod,nd=i,Ud=F.Uint8Array,Fd=Ud&&Ud.prototype||{},ad=[].toString,id=[].join;nd((function(){ad.call({})}))&&(ad=function(){return id.call(this)});var Qd=Fd.toString!=ad;td("toString",ad,Qd);var ld=QQ.forEach,rd=nr("forEach")?[].forEach:function(e){return ld(this,e,arguments.length>1?arguments[1]:void 0)},dd=F,od=VF,sd=rd,Bd=ee;for(var cd in od){var Rd=dd[cd],ud=Rd&&Rd.prototype;if(ud&&ud.forEach!==sd)try{Bd(ud,"forEach",sd)}catch(Jh){ud.forEach=sd}}var Vd=k,hd=Xn;Ot({target:"Object",stat:!0,forced:i((function(){hd(1)}))},{keys:function(e){return hd(Vd(e))}});var Zd,Sd,pd,Jd=F.Promise,md=j,bd=j,Wd=Li,kd=lt,Ed=Mi,yd=gi,fd=function(e){var t=e.return;if(void 0!==t)return md(t.call(e)).value},Nd=function(e,t){this.stopped=e,this.result=t},vd=function(e,t,n){var U,F,a,i,Q,l,r,d=n&&n.that,o=!(!n||!n.AS_ENTRIES),s=!(!n||!n.IS_ITERATOR),B=!(!n||!n.INTERRUPTED),c=Ed(t,d,1+o+B),R=function(e){return U&&fd(U),new Nd(!0,e)},u=function(e){return o?(bd(e),B?c(e[0],e[1],R):c(e[0],e[1])):B?c(e,R):c(e)};if(s)U=e;else{if("function"!=typeof(F=yd(e)))throw TypeError("Target is not iterable");if(Wd(F)){for(a=0,i=kd(e.length);i>a;a++)if((Q=u(e[a]))&&Q instanceof Nd)return Q;return new Nd(!1)}U=F.call(e)}for(l=U.next;!(r=l.call(U)).done;){try{Q=u(r.value)}catch(Jh){throw fd(U),Jh}if("object"==typeof Q&&Q&&Q instanceof Nd)return Q}return new Nd(!1)},Td=/(?:iphone|ipod|ipad).*applewebkit/i.test(cn),Cd="process"==c(F.process),gd=F,Dd=i,Xd=Mi,xd=Mn,Ld=C,Id=Td,Gd=Cd,Md=gd.location,Yd=gd.setImmediate,wd=gd.clearImmediate,Kd=gd.process,_d=gd.MessageChannel,jd=gd.Dispatch,Hd=0,Pd={},zd="onreadystatechange",Od=function(e){if(Pd.hasOwnProperty(e)){var t=Pd[e];delete Pd[e],t()}},Ad=function(e){return function(){Od(e)}},qd=function(e){Od(e.data)},$d=function(e){gd.postMessage(e+"",Md.protocol+"//"+Md.host)};Yd&&wd||(Yd=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return Pd[++Hd]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},Zd(Hd),Hd},wd=function(e){delete Pd[e]},Gd?Zd=function(e){Kd.nextTick(Ad(e))}:jd&&jd.now?Zd=function(e){jd.now(Ad(e))}:_d&&!Id?(pd=(Sd=new _d).port2,Sd.port1.onmessage=qd,Zd=Xd(pd.postMessage,pd,1)):gd.addEventListener&&"function"==typeof postMessage&&!gd.importScripts&&Md&&"file:"!==Md.protocol&&!Dd($d)?(Zd=$d,gd.addEventListener("message",qd,!1)):Zd=zd in Ld("script")?function(e){xd.appendChild(Ld("script"))[zd]=function(){xd.removeChild(this),Od(e)}}:function(e){setTimeout(Ad(e),0)});var eo,to,no,Uo,Fo,ao,io,Qo,lo={set:Yd,clear:wd},ro=/web0s(?!.*chrome)/i.test(cn),oo=F,so=a.f,Bo=lo.set,co=Td,Ro=ro,uo=Cd,Vo=oo.MutationObserver||oo.WebKitMutationObserver,ho=oo.document,Zo=oo.process,So=oo.Promise,po=so(oo,"queueMicrotask"),Jo=po&&po.value;Jo||(eo=function(){var e,t;for(uo&&(e=Zo.domain)&&e.exit();to;){t=to.fn,to=to.next;try{t()}catch(Jh){throw to?Uo():no=void 0,Jh}}no=void 0,e&&e.enter()},co||uo||Ro||!Vo||!ho?So&&So.resolve?((io=So.resolve(void 0)).constructor=So,Qo=io.then,Uo=function(){Qo.call(io,eo)}):Uo=uo?function(){Zo.nextTick(eo)}:function(){Bo.call(oo,eo)}:(Fo=!0,ao=ho.createTextNode(""),new Vo(eo).observe(ao,{characterData:!0}),Uo=function(){ao.data=Fo=!Fo}));var mo=Jo||function(e){var t={fn:e,next:void 0};no&&(no.next=t),to||(to=t,Uo()),no=t},bo={},Wo=Ii,ko=function(e){var t,n;this.promise=new e((function(e,U){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=U})),this.resolve=Wo(t),this.reject=Wo(n)};bo.f=function(e){return new ko(e)};var Eo,yo,fo,No,vo=j,To=J,Co=bo,go=F,Do="object"==typeof window,Xo=Ot,xo=F,Lo=et,Io=Jd,Go=Oe,Mo=pa,Yo=XU,wo=kU,Ko=sQ,_o=J,jo=Ii,Ho=Ja,Po=de,zo=vd,Oo=XF,Ao=bl,qo=lo.set,$o=mo,es=function(e,t){if(vo(e),To(t)&&t.constructor===e)return t;var n=Co.f(e);return(0,n.resolve)(t),n.promise},ts=function(e,t){var n=go.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))},ns=bo,Us=function(e){try{return{error:!1,value:e()}}catch(Jh){return{error:!0,value:Jh}}},Fs=Me,as=Yt,is=Do,Qs=Cd,ls=Sn,rs=Cn("species"),ds="Promise",os=Fs.get,ss=Fs.set,Bs=Fs.getterFor(ds),cs=Io&&Io.prototype,Rs=Io,us=cs,Vs=xo.TypeError,hs=xo.document,Zs=xo.process,Ss=ns.f,ps=Ss,Js=!!(hs&&hs.createEvent&&xo.dispatchEvent),ms="function"==typeof PromiseRejectionEvent,bs="unhandledrejection",Ws=!1,ks=as(ds,(function(){var e=Po(Rs)!==String(Rs);if(!e&&66===ls)return!0;if(ls>=51&&/native code/.test(Rs))return!1;var t=new Rs((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(t.constructor={})[rs]=n,!(Ws=t.then((function(){}))instanceof n)||!e&&is&&!ms})),Es=ks||!Oo((function(e){Rs.all(e).catch((function(){}))})),ys=function(e){var t;return!(!_o(e)||"function"!=typeof(t=e.then))&&t},fs=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;$o((function(){for(var U=e.value,F=1==e.state,a=0;n.length>a;){var i,Q,l,r=n[a++],d=F?r.ok:r.fail,o=r.resolve,s=r.reject,B=r.domain;try{d?(F||(2===e.rejection&&Cs(e),e.rejection=1),!0===d?i=U:(B&&B.enter(),i=d(U),B&&(B.exit(),l=!0)),i===r.promise?s(Vs("Promise-chain cycle")):(Q=ys(i))?Q.call(i,o,s):o(i)):s(U)}catch(Jh){B&&!l&&B.exit(),s(Jh)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&vs(e)}))}},Ns=function(e,t,n){var U,F;Js?((U=hs.createEvent("Event")).promise=t,U.reason=n,U.initEvent(e,!1,!0),xo.dispatchEvent(U)):U={promise:t,reason:n},!ms&&(F=xo["on"+e])?F(U):e===bs&&ts("Unhandled promise rejection",n)},vs=function(e){qo.call(xo,(function(){var t,n=e.facade,U=e.value;if(Ts(e)&&(t=Us((function(){Qs?Zs.emit("unhandledRejection",U,n):Ns(bs,n,U)})),e.rejection=Qs||Ts(e)?2:1,t.error))throw t.value}))},Ts=function(e){return 1!==e.rejection&&!e.parent},Cs=function(e){qo.call(xo,(function(){var t=e.facade;Qs?Zs.emit("rejectionHandled",t):Ns("rejectionhandled",t,e.value)}))},gs=function(e,t,n){return function(U){e(t,U,n)}},Ds=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,fs(e,!0))},Xs=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw Vs("Promise can't be resolved itself");var U=ys(t);U?$o((function(){var n={done:!1};try{U.call(t,gs(Xs,n,e),gs(Ds,n,e))}catch(Jh){Ds(n,Jh,e)}})):(e.value=t,e.state=1,fs(e,!1))}catch(Jh){Ds({done:!1},Jh,e)}}};if(ks&&(us=(Rs=function(e){Ho(this,Rs,ds),jo(e),Eo.call(this);var t=os(this);try{e(gs(Xs,t),gs(Ds,t))}catch(Jh){Ds(t,Jh)}}).prototype,(Eo=function(e){ss(this,{type:ds,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=Mo(us,{then:function(e,t){var n=Bs(this),U=Ss(Ao(this,Rs));return U.ok="function"!=typeof e||e,U.fail="function"==typeof t&&t,U.domain=Qs?Zs.domain:void 0,n.parent=!0,n.reactions.push(U),0!=n.state&&fs(n,!1),U.promise},catch:function(e){return this.then(void 0,e)}}),yo=function(){var e=new Eo,t=os(e);this.promise=e,this.resolve=gs(Xs,t),this.reject=gs(Ds,t)},ns.f=Ss=function(e){return e===Rs||e===fo?new yo(e):ps(e)},"function"==typeof Io&&cs!==Object.prototype)){No=cs.then,Ws||(Go(cs,"then",(function(e,t){var n=this;return new Rs((function(e,t){No.call(n,e,t)})).then(e,t)}),{unsafe:!0}),Go(cs,"catch",us.catch,{unsafe:!0}));try{delete cs.constructor}catch(Jh){}Yo&&Yo(cs,us)}Xo({global:!0,wrap:!0,forced:ks},{Promise:Rs}),wo(Rs,ds,!1),Ko(ds),fo=Lo(ds),Xo({target:ds,stat:!0,forced:ks},{reject:function(e){var t=Ss(this);return t.reject.call(void 0,e),t.promise}}),Xo({target:ds,stat:!0,forced:ks},{resolve:function(e){return es(this,e)}}),Xo({target:ds,stat:!0,forced:Es},{all:function(e){var t=this,n=Ss(t),U=n.resolve,F=n.reject,a=Us((function(){var n=jo(t.resolve),a=[],i=0,Q=1;zo(e,(function(e){var l=i++,r=!1;a.push(void 0),Q++,n.call(t,e).then((function(e){r||(r=!0,a[l]=e,--Q||U(a))}),F)})),--Q||U(a)}));return a.error&&F(a.value),n.promise},race:function(e){var t=this,n=Ss(t),U=n.reject,F=Us((function(){var F=jo(t.resolve);zo(e,(function(e){F.call(t,e).then(n.resolve,U)}))}));return F.error&&U(F.value),n.promise}});var xs=b,Ls=K,Is=s,Gs=function(e,t,n){var U=xs(t);U in e?Ls.f(e,U,Is(0,n)):e[U]=n},Ms=i,Ys=Sn,ws=Cn("species"),Ks=function(e){return Ys>=51||!Ms((function(){var t=[];return(t.constructor={})[ws]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},_s=Ot,js=i,Hs=zi,Ps=J,zs=k,Os=lt,As=Gs,qs=$i,$s=Ks,eB=Sn,tB=Cn("isConcatSpreadable"),nB=9007199254740991,UB="Maximum allowed index exceeded",FB=eB>=51||!js((function(){var e=[];return e[tB]=!1,e.concat()[0]!==e})),aB=$s("concat"),iB=function(e){if(!Ps(e))return!1;var t=e[tB];return void 0!==t?!!t:Hs(e)};_s({target:"Array",proto:!0,forced:!FB||!aB},{concat:function(e){var t,n,U,F,a,i=zs(this),Q=qs(i,0),l=0;for(t=-1,U=arguments.length;t<U;t++)if(iB(a=-1===t?i:arguments[t])){if(l+(F=Os(a.length))>nB)throw TypeError(UB);for(n=0;n<F;n++,l++)n in a&&As(Q,l,a[n])}else{if(l>=nB)throw TypeError(UB);As(Q,l++,a)}return Q.length=l,Q}}),rl("Uint16",(function(e){return function(t,n,U){return e(this,t,n,U)}}));var QB={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function U(){}function F(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function a(e,t,U,a,i){if("function"!=typeof U)throw new TypeError("The listener must be a function");var Q=new F(U,a||e,i),l=n?n+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],Q]:e._events[l].push(Q):(e._events[l]=Q,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new U:delete e._events[t]}function Q(){this._events=new U,this._eventsCount=0}Object.create&&(U.prototype=Object.create(null),(new U).__proto__||(n=!1)),Q.prototype.eventNames=function(){var e,U,F=[];if(0===this._eventsCount)return F;for(U in e=this._events)t.call(e,U)&&F.push(n?U.slice(1):U);return Object.getOwnPropertySymbols?F.concat(Object.getOwnPropertySymbols(e)):F},Q.prototype.listeners=function(e){var t=n?n+e:e,U=this._events[t];if(!U)return[];if(U.fn)return[U.fn];for(var F=0,a=U.length,i=new Array(a);F<a;F++)i[F]=U[F].fn;return i},Q.prototype.listenerCount=function(e){var t=n?n+e:e,U=this._events[t];return U?U.fn?1:U.length:0},Q.prototype.emit=function(e,t,U,F,a,i){var Q=n?n+e:e;if(!this._events[Q])return!1;var l,r,d=this._events[Q],o=arguments.length;if(d.fn){switch(d.once&&this.removeListener(e,d.fn,void 0,!0),o){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,t),!0;case 3:return d.fn.call(d.context,t,U),!0;case 4:return d.fn.call(d.context,t,U,F),!0;case 5:return d.fn.call(d.context,t,U,F,a),!0;case 6:return d.fn.call(d.context,t,U,F,a,i),!0}for(r=1,l=new Array(o-1);r<o;r++)l[r-1]=arguments[r];d.fn.apply(d.context,l)}else{var s,B=d.length;for(r=0;r<B;r++)switch(d[r].once&&this.removeListener(e,d[r].fn,void 0,!0),o){case 1:d[r].fn.call(d[r].context);break;case 2:d[r].fn.call(d[r].context,t);break;case 3:d[r].fn.call(d[r].context,t,U);break;case 4:d[r].fn.call(d[r].context,t,U,F);break;default:if(!l)for(s=1,l=new Array(o-1);s<o;s++)l[s-1]=arguments[s];d[r].fn.apply(d[r].context,l)}}return!0},Q.prototype.on=function(e,t,n){return a(this,e,t,n,!1)},Q.prototype.once=function(e,t,n){return a(this,e,t,n,!0)},Q.prototype.removeListener=function(e,t,U,F){var a=n?n+e:e;if(!this._events[a])return this;if(!t)return i(this,a),this;var Q=this._events[a];if(Q.fn)Q.fn!==t||F&&!Q.once||U&&Q.context!==U||i(this,a);else{for(var l=0,r=[],d=Q.length;l<d;l++)(Q[l].fn!==t||F&&!Q[l].once||U&&Q[l].context!==U)&&r.push(Q[l]);r.length?this._events[a]=1===r.length?r[0]:r:i(this,a)}return this},Q.prototype.removeAllListeners=function(e){var t;return e?(t=n?n+e:e,this._events[t]&&i(this,t)):(this._events=new U,this._eventsCount=0),this},Q.prototype.off=Q.prototype.removeListener,Q.prototype.addListener=Q.prototype.on,Q.prefixed=n,Q.EventEmitter=Q,e.exports=Q}(QB);var lB=n(QB.exports),rB=j,dB=function(){var e=rB(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t},oB={},sB=i;function BB(e,t){return RegExp(e,t)}oB.UNSUPPORTED_Y=sB((function(){var e=BB("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),oB.BROKEN_CARET=sB((function(){var e=BB("^r","gy");return e.lastIndex=2,null!=e.exec("str")}));var cB,RB,uB=dB,VB=oB,hB=Ze,ZB=RegExp.prototype.exec,SB=hB("native-string-replace",String.prototype.replace),pB=ZB,JB=(cB=/a/,RB=/b*/g,ZB.call(cB,"a"),ZB.call(RB,"a"),0!==cB.lastIndex||0!==RB.lastIndex),mB=VB.UNSUPPORTED_Y||VB.BROKEN_CARET,bB=void 0!==/()??/.exec("")[1];(JB||bB||mB)&&(pB=function(e){var t,n,U,F,a=this,i=mB&&a.sticky,Q=uB.call(a),l=a.source,r=0,d=e;return i&&(-1===(Q=Q.replace("y","")).indexOf("g")&&(Q+="g"),d=String(e).slice(a.lastIndex),a.lastIndex>0&&(!a.multiline||a.multiline&&"\n"!==e[a.lastIndex-1])&&(l="(?: "+l+")",d=" "+d,r++),n=new RegExp("^(?:"+l+")",Q)),bB&&(n=new RegExp("^"+l+"$(?!\\s)",Q)),JB&&(t=a.lastIndex),U=ZB.call(i?n:a,d),i?U?(U.input=U.input.slice(r),U[0]=U[0].slice(r),U.index=a.lastIndex,a.lastIndex+=U[0].length):a.lastIndex=0:JB&&U&&(a.lastIndex=a.global?U.index+U[0].length:t),bB&&U&&U.length>1&&SB.call(U[0],n,(function(){for(F=1;F<arguments.length-2;F++)void 0===arguments[F]&&(U[F]=void 0)})),U});var WB=pB;Ot({target:"RegExp",proto:!0,forced:/./.exec!==WB},{exec:WB});var kB=Oe,EB=WB,yB=i,fB=Cn,NB=ee,vB=fB("species"),TB=RegExp.prototype,CB=!yB((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")})),gB="$0"==="a".replace(/./,"$0"),DB=fB("replace"),XB=!!/./[DB]&&""===/./[DB]("a","$0"),xB=!yB((function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),LB=function(e,t,n,U){var F=fB(e),a=!yB((function(){var t={};return t[F]=function(){return 7},7!=""[e](t)})),i=a&&!yB((function(){var t=!1,n=/a/;return"split"===e&&((n={}).constructor={},n.constructor[vB]=function(){return n},n.flags="",n[F]=/./[F]),n.exec=function(){return t=!0,null},n[F](""),!t}));if(!a||!i||"replace"===e&&(!CB||!gB||XB)||"split"===e&&!xB){var Q=/./[F],l=n(F,""[e],(function(e,t,n,U,F){var i=t.exec;return i===EB||i===TB.exec?a&&!F?{done:!0,value:Q.call(t,n,U)}:{done:!0,value:e.call(n,t,U)}:{done:!1}}),{REPLACE_KEEPS_$0:gB,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:XB}),r=l[0],d=l[1];kB(String.prototype,e,r),kB(TB,F,2==t?function(e,t){return d.call(e,this,t)}:function(e){return d.call(e,this)})}U&&NB(TB[F],"sham",!0)},IB=at,GB=h,MB=function(e){return function(t,n){var U,F,a=String(GB(t)),i=IB(n),Q=a.length;return i<0||i>=Q?e?"":void 0:(U=a.charCodeAt(i))<55296||U>56319||i+1===Q||(F=a.charCodeAt(i+1))<56320||F>57343?e?a.charAt(i):U:e?a.slice(i,i+2):F-56320+(U-55296<<10)+65536}},YB={codeAt:MB(!1),charAt:MB(!0)},wB=YB.charAt,KB=function(e,t,n){return t+(n?wB(e,t).length:1)},_B=k,jB=Math.floor,HB="".replace,PB=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,zB=/\$([$&'`]|\d{1,2})/g,OB=c,AB=WB,qB=function(e,t){var n=e.exec;if("function"==typeof n){var U=n.call(e,t);if("object"!=typeof U)throw TypeError("RegExp exec method returned something other than an Object or null");return U}if("RegExp"!==OB(e))throw TypeError("RegExp#exec called on incompatible receiver");return AB.call(e,t)},$B=LB,ec=j,tc=lt,nc=at,Uc=h,Fc=KB,ac=function(e,t,n,U,F,a){var i=n+e.length,Q=U.length,l=zB;return void 0!==F&&(F=_B(F),l=PB),HB.call(a,l,(function(a,l){var r;switch(l.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(i);case"<":r=F[l.slice(1,-1)];break;default:var d=+l;if(0===d)return a;if(d>Q){var o=jB(d/10);return 0===o?a:o<=Q?void 0===U[o-1]?l.charAt(1):U[o-1]+l.charAt(1):a}r=U[d-1]}return void 0===r?"":r}))},ic=qB,Qc=Math.max,lc=Math.min;$B("replace",2,(function(e,t,n,U){var F=U.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,a=U.REPLACE_KEEPS_$0,i=F?"$":"$0";return[function(n,U){var F=Uc(this),a=null==n?void 0:n[e];return void 0!==a?a.call(n,F,U):t.call(String(F),n,U)},function(e,U){if(!F&&a||"string"==typeof U&&-1===U.indexOf(i)){var Q=n(t,e,this,U);if(Q.done)return Q.value}var l=ec(e),r=String(this),d="function"==typeof U;d||(U=String(U));var o=l.global;if(o){var s=l.unicode;l.lastIndex=0}for(var B=[];;){var c=ic(l,r);if(null===c)break;if(B.push(c),!o)break;""===String(c[0])&&(l.lastIndex=Fc(r,tc(l.lastIndex),s))}for(var R,u="",V=0,h=0;h<B.length;h++){c=B[h];for(var Z=String(c[0]),S=Qc(lc(nc(c.index),r.length),0),p=[],J=1;J<c.length;J++)p.push(void 0===(R=c[J])?R:String(R));var m=c.groups;if(d){var b=[Z].concat(p,S,r);void 0!==m&&b.push(m);var W=String(U.apply(void 0,b))}else W=ac(Z,r,S,p,m,U);S>=V&&(u+=r.slice(V,S)+W,V=S+Z.length)}return u+r.slice(V)}]}));var rc=Oe,dc=j,oc=i,sc=dB,Bc="toString",cc=RegExp.prototype,Rc=cc[Bc],uc=oc((function(){return"/a/b"!=Rc.call({source:"a",flags:"b"})})),Vc=Rc.name!=Bc;(uc||Vc)&&rc(RegExp.prototype,Bc,(function(){var e=dc(this),t=String(e.source),n=e.flags;return"/"+t+"/"+String(void 0===n&&e instanceof RegExp&&!("flags"in cc)?sc.call(e):n)}),{unsafe:!0});var hc=Ot,Zc=J,Sc=zi,pc=st,Jc=lt,mc=p,bc=Gs,Wc=Cn,kc=Ks("slice"),Ec=Wc("species"),yc=[].slice,fc=Math.max;hc({target:"Array",proto:!0,forced:!kc},{slice:function(e,t){var n,U,F,a=mc(this),i=Jc(a.length),Q=pc(e,i),l=pc(void 0===t?i:t,i);if(Sc(a)&&("function"!=typeof(n=a.constructor)||n!==Array&&!Sc(n.prototype)?Zc(n)&&null===(n=n[Ec])&&(n=void 0):n=void 0,n===Array||void 0===n))return yc.call(a,Q,l);for(U=new(void 0===n?Array:n)(fc(l-Q,0)),F=0;Q<l;Q++,F++)Q in a&&bc(U,F,a[Q]);return U.length=F,U}});var Nc=sQ,vc="ArrayBuffer",Tc=Ei[vc];Ot({global:!0,forced:F[vc]!==Tc},{ArrayBuffer:Tc}),Nc(vc);var Cc=Ot,gc=p,Dc=[].join,Xc=V!=Object,xc=nr("join",",");Cc({target:"Array",proto:!0,forced:Xc||!xc},{join:function(e){return Dc.call(gc(this),void 0===e?",":e)}});var Lc=QQ.map;Ot({target:"Array",proto:!0,forced:!Ks("map")},{map:function(e){return Lc(this,e,arguments.length>1?arguments[1]:void 0)}});var Ic=h,Gc="[\t\n\v\f\r                 \u2028\u2029\ufeff]",Mc=RegExp("^"+Gc+Gc+"*"),Yc=RegExp(Gc+Gc+"*$"),wc=function(e){return function(t){var n=String(Ic(t));return 1&e&&(n=n.replace(Mc,"")),2&e&&(n=n.replace(Yc,"")),n}},Kc={start:wc(1),end:wc(2),trim:wc(3)},_c=Q,jc=F,Hc=Yt,Pc=Oe,zc=f,Oc=c,Ac=RQ,qc=b,$c=i,eR=eU,tR=tt.f,nR=a.f,UR=K.f,FR=Kc.trim,aR="Number",iR=jc[aR],QR=iR.prototype,lR=Oc(eR(QR))==aR,rR=function(e){var t,n,U,F,a,i,Q,l,r=qc(e,!1);if("string"==typeof r&&r.length>2)if(43===(t=(r=FR(r)).charCodeAt(0))||45===t){if(88===(n=r.charCodeAt(2))||120===n)return NaN}else if(48===t){switch(r.charCodeAt(1)){case 66:case 98:U=2,F=49;break;case 79:case 111:U=8,F=55;break;default:return+r}for(i=(a=r.slice(2)).length,Q=0;Q<i;Q++)if((l=a.charCodeAt(Q))<48||l>F)return NaN;return parseInt(a,U)}return+r};if(Hc(aR,!iR(" 0o1")||!iR("0b1")||iR("+0x1"))){for(var dR,oR=function(e){var t=arguments.length<1?0:e,n=this;return n instanceof oR&&(lR?$c((function(){QR.valueOf.call(n)})):Oc(n)!=aR)?Ac(new iR(rR(t)),n,oR):rR(t)},sR=_c?tR(iR):"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(","),BR=0;sR.length>BR;BR++)zc(iR,dR=sR[BR])&&!zc(oR,dR)&&UR(oR,dR,nR(iR,dR));oR.prototype=QR,QR.constructor=oR,Pc(jc,aR,oR)}var cR=j,RR=lt,uR=h,VR=KB,hR=qB;function ZR(e){for(var t="",n=0;n<e.length;n+=16e3){var U=e.subarray(n,n+16e3);t+=String.fromCharCode.apply(null,U)}return t}LB("match",1,(function(e,t,n){return[function(t){var n=uR(this),U=null==t?void 0:t[e];return void 0!==U?U.call(t,n):new RegExp(t)[e](String(n))},function(e){var U=n(t,e,this);if(U.done)return U.value;var F=cR(e),a=String(this);if(!F.global)return hR(F,a);var i=F.unicode;F.lastIndex=0;for(var Q,l=[],r=0;null!==(Q=hR(F,a));){var d=String(Q[0]);l[r]=d,""===d&&(F.lastIndex=VR(a,RR(F.lastIndex),i)),r++}return 0===r?null:l}]}));var SR,pR,JR,mR,bR,WR,kR,ER,yR=(SR="vodTimestampSalt",pR=function(e){return e.split("").map((function(e){return e.charCodeAt(0)}))},JR=function(e){return"0".concat(Number(e).toString(16)).substr(-2)},mR=function(e){return pR(SR).reduce((function(e,t){return e^t}),e)},function(e){return e.split("").map(pR).map(mR).map(JR).join("")}),fR=(kR="vodTimestampSalt",ER=function(e){return(t=kR,t.split("").map((function(e){return e.charCodeAt(0)}))).reduce((function(e,t){return e^t}),e);var t},function(e){return e.match(/.{1,2}/g).map((function(e){return parseInt(e,16)})).map(ER).map((function(e){return String.fromCharCode(e)})).join("")}),NR={str2hex:function(e){if(""===e)return"";for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t},Base64ToHex:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=window.atob(e.replace(/-/g,"+").replace(/_/g,"/"));if(t){for(var U=[],F=0;F<n.length;F++)U.push(n.charCodeAt(F));return new Uint8Array(U).buffer}for(var a="",i=0;i<n.length;i++)a+="0".concat(n.charCodeAt(i).toString(16)).substr(-2);return a},checkUnionInfoExpired:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30;if(0===t.indexOf(e)){var U=parseInt(fR(t.slice(e.length))),F=(new Date).getTime()-U;if(F>0&&F<=1e3*n)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(yR((new Date).getTime().toString()))},StringToArrayBuffer:function(e){for(var t=new ArrayBuffer(e.length),n=new Uint8Array(t),U=0;U<e.length;U++)n[U]=e.charCodeAt(U);return t},ArrayBufferToString:function(e){var t=[];e=ArrayBuffer.isView(e)?e:new Uint8Array(e);for(var n,U=0;U<e.length;U++)n=e[U],t.push(String.fromCharCode(n));return t.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)},fromCharCode:ZR,fromHex:function(e){for(var t=new Uint8Array(e.length/2),n=0;n<e.length;n+=2)t[n/2]=window.parseInt(e.substr(n,2),16);return t},toUTF8:function(e){for(var t=encodeURIComponent(e),n=unescape(t),U=new Uint8Array(n.length),F=0;F<n.length;++F)U[F]=n.charCodeAt(F);return U.buffer},toBase64:function(e,t){var n=ZR(e);t=void 0===t||t;var U=window.btoa(n).replace(/\+/g,"-").replace(/\//g,"_");return t?U:U.replace(/=*$/,"")}};e.EVENT_EME=void 0,function(e,t,n){function U(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var F,a=0,i=[],Q=[];for(F=0;F<4;++F)a+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var l=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=r+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(a^R[1]),d+=2*R[0]}Q.push(B)}t.p=null,function e(t,n,U,F,a){var l,r,d,o,s,B=-1,c=[],R=null,u=[n];for(r=Math.min(n.length,U),d=0;d<r;++d)u.push(n[d]);u.p=F;for(var V=[];;)try{switch(i[t++]){case 45:c[++B]=!1;break;case 46:c[++B]=null;break;case 32:l=i[t++],c[++B]=l<<24>>24;break;case 63:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=l<<16>>16;break;case 73:l=((l=((l=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(l<<8)+i[t++];break;case 37:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=Q[l];break;case 8:c[++B]=void 0;break;case 15:c[++B]=a;break;case 44:l=(i[t]<<8)+i[t+1],t+=2,B=B-l+1,r=c.slice(B,B+l),c[B]=r;break;case 20:c[++B]={};break;case 22:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],d=c[B--],c[B][r]=d;break;case 75:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;c[++B]=o[d];break;case 40:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],c[B]=c[B][r];break;case 51:r=c[B--],c[B]=c[B][r];break;case 76:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;o[d]=c[B--];break;case 0:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],d=c[B--],o=c[B--],d[r]=o;break;case 58:r=c[B--],d=c[B--],o=c[B--],d[r]=o;break;case 69:for(r=i[t++],d=i[t++],o=u,o=u;r>0;--r)o=o.p;c[++B]=o,c[++B]=d;break;case 71:r=c[B--],o=(d=c[B--])[r]++,c[++B]=o;break;case 43:r=c[B--],c[B]=c[B]===r;break;case 26:r=c[B--],c[B]=c[B]!==r;break;case 50:c[B]=!c[B];break;case 52:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?--B:t+=l;break;case 6:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?t+=l:--B;break;case 31:r=c[B--],(d=c[B--])[r]=c[B];break;case 19:c[B]=void 0;break;case 33:r=c[B--],o=delete(d=c[B--])[r],c[++B]=o;break;case 59:l=i[t++],r=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[r,l,u],d._u=e,c[++B]=d;break;case 30:l=i[t++],r=c[B--],(o=[d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=u,d._v=[r,l,o],d._u=e,c[++B]=d;break;case 5:throw r=c[B--];case 7:for(r=c[B--],d=null;o=V.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)t=d[2],d[0]=0,V.push(d);else{if(!R)return r;t=R[1],a=R[2],u=R[3],V=R[4],c[++B]=r,R=R[0]}break;case 35:B-=l=i[t++],d=c.slice(B+1,B+l+1),r=c[B--],o=c[B--],r._u===e?(r=r._v,R=[R,t,a,u,V],t=r[0],null==o&&(o=function(){return this}()),a=o,(u=[d].concat(d)).length=Math.min(r[1],l)+1,u.p=r[2],V=[]):(s=r.apply(o,d),c[++B]=s);break;case 41:for(l=i[t++],o=[void 0],s=l;s>0;--s)o[s]=c[B--];d=c[B--],s=new(r=Function.bind.apply(d,o)),c[++B]=s;break;case 17:t+=2+(l=(l=(i[t]<<8)+i[t+1])<<16>>16);break;case 14:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(r=c[B--])||(t+=l);break;case 57:--B;break;case 11:r=c[B],c[++B]=r;break;default:throw new Error("ioe")}}catch(h){for(;(l=V.pop())&&!l[0];);if(!l){e:for(;R;){for(r=R[4];l=r.pop();)if(l[0])break e;R=R[0]}if(!R)throw h;t=R[1],a=R[2],u=R[3],V=R[4],R=R[0]}1===(r=l[0])?(t=l[2],l[0]=0,V.push(l),c[++B]=h):2===r?(t=l[2],l[0]=0,V.push(l)):(t=l[3],l[0]=2,V.push(l),c[++B]=h)}}(l,[],0,t,n)}("504B01018643d82f00000f582fd8408700000f8a2500014b00012500023a2500034b00012500043a2500054b00012500053a2500064b00012500063a4b000107490000013d3b014c00032e4b02114b00034b00012302392e4b02124b000323014c00022e4b020f4b00031425002b16002d49000008b71e021600311425003216002d49000009741e011600311425003316002d49000009ae1e001600311425002716002d49000009ec1e011600311425002216002d4900000a0c1e011600311425004916002d4900000b061e001600311425001816002d4900000b081e031600311425005016002d4900000b9e1e011600311425005116002d4900000bb01e011600311425005416002d4900000c521e011600311425002316002d4900000c801e011600311425007816002d4900000eac1e011600311425008016002d4900000f491e001600312c000d2302394b0003072e4b030e0f4b01032302394b01020b2800070f23014c00022500084b0002000009144b000200000a2000134b000200000b4b03154b00020000002e4b000200000c20004b000200000d49000001c03b014b000200002a2c00004b00020000194b00020b28002b4b00012301394b00020b28002c2500034b000228002a2302394b0002072e4b04104b010223014c00024b000228000c4c00032e4b04104b010223014c00044b0003320e000208074b010228000925000e2b0e003325000f4c00054b04000b280010142500112c000116001223014c00064b04014b04140b2800134b0006230129014c000711054f4b01022800092500142b0e00b92500154c00054b000134000b4b04014b000128001629010600994b04012000200020002043207020732073206820002000200020003f00ed3f00ef3f008b3f00a920793f00d6204a3f00ce3f00a33f00c820273f00dc3f00d5201d20213f00ed200020002000202320082001201220102033203320332033203320332033203320332033203320332000200020002000201a200a2069206e2074206520722074207220752073207420222001202a2c004329014c00071104894b01022800092500172b0e047c2500154c00054b000134000b4b04014b0001280016290106045f4b04012000200020022026207020732073206820002000200020003f009a20043f00f020793f0098204020423f00863f00ab3f00923f00e6205b3f00e03f0088205f3f00952000200020022006200620022000200020012000200120003f00fc2001203c20002057200020522000204d20002048200020452000204120002044200020452000205220002020200020782000206d2000206c2000206e200020732000203d20002022200020682000207420002074200020702000203a2000202f2000202f200020732000206320002068200020652000206d20002061200020732000202e2000206d2000206920002063200020722000206f200020732000206f20002066200020742000202e200020632000206f2000206d2000202f20002044200020522000204d2000202f200020322000203020002030200020372000202f20002030200020332000202f200020502000206c20002061200020792000205220002065200020612000206420002079200020482000206520002061200020642000206520002072200020222000202020002076200020652000207220002073200020692000206f2000206e2000203d20002022200020342000202e200020302000202e200020302000202e20002030200020222000203e2000203c200020442000204120002054200020412000203e2000203c20002050200020522000204f20002054200020452000204320002054200020492000204e200020462000204f2000203e2000203c2000204b20002045200020592000204c200020452000204e2000203e20002031200020362000203c2000202f2000204b20002045200020592000204c200020452000204e2000203e2000203c200020412000204c2000204720002049200020442000203e2000204120002045200020532000204320002054200020522000203c2000202f200020412000204c2000204720002049200020442000203e2000203c2000202f20002050200020522000204f20002054200020452000204320002054200020492000204e200020462000204f2000203e2000203c2000204b20002049200020442000203e2000204d2000207a2000204d2000207a2000204d2000207a2000204d2000207a2000204d2000207a2000204d2000207a2000204d2000207a2000204d2000207a2000204120002041200020412000204120002041200020412000203d2000203d2000203c2000202f2000204b20002049200020442000203e2000203c200020432000204820002045200020432000204b20002053200020552000204d2000203e20002041200020312000203520002042200020592000205720002044200020342000207120002073200020492000203d2000203c2000202f200020432000204820002045200020432000204b20002053200020552000204d2000203e2000203c2000202f200020442000204120002054200020412000203e2000203c2000202f20002057200020522000204d2000204820002045200020412000204420002045200020522000203e20002c022629014c00074b00040b2800184b00034b00042800094b000428001923030b28001a49000007bc3b00490000089b3b0023020b28001a49000008a83b0049000008aa3b0023023908074b010328001b4500011f2e2b0600074b00012000132b0e00062000131100094b00010b28001c23004c00024b0002320e00094b050225001d2901054b010328001e0b28001f4b00022301394b010428000925000e2b0e001f4b00020b2800202500214b01040b2800224b010428000a23012302391100554b01042800092500142b0e001f4b00020b2800202500214b01042800230b2800244b010423012302391100294b01042800092500172b0e001c4b00020b2800202500214b01042800230b2800244b010423012302394b00020b2800254b01054b01072800262302074b01040b28002725002823010708074b01040b2800272500292301074b00012e1a3400074b00012000131a3400064b000128002e0e001125000e0f0000094b000128002e0f00000a4b00012e1a3400074b00012000131a3400064b000128002e0e000a25000e0f00000911005b4b00012e1a3400074b00012000131a3400064b000128002f0e00142500140f0000094b000128002f0f00000a11002c4b00012e1a3400074b00012000131a3400064b00012800300e00112500170f0000094b00012800300f00000a4b00023400084b00020f2500001f3908070f2800004b04152b3400090f28000a0f280000330e001a0f28000a0f280000330f28000a4b00013a0f28000a4b041521394b00010f00000008071425000f2500342c0002160035142500361600372c0001160038142500391600371425003a1600371425003b1600372c000316003c2c00010f00001908074b04030b28000125003d4b00012302390f0b28003e2500014b000123023908070f4c00024900000a183b01072c00004c00022c00004c00034b05040b28000a4b010123010b28003f4900000a863b01230139144b000216000a4c00044b05000b2800104b000423014c00054b00012800450b2800464b05140b2800474b0005230123010b28001a4900000af73b004900000af93b0023023908074b02014b0001334c00024b06140b2800404b000123014c00034b06140b2800404b000223014c0004142500411600424b06140b2800434b00032d23021600004b06140b2800434b00042d23021600444c00054b01020b28001f4b00052301394b01030b28001f4b0005280000230139080708074b02020b28002725004823010708070f4c00040f28000b0600064b000128001b0e00110f28000b0600094b04050b28004a2300074b04060b28004b4b00024b000323020b28001a4900000b6d3b014900000b773b0023020b28001a4900000b843b014900000b913b0023020f00000b0f28000b074b00010b28004c2300074b01040b28002725004d2301074b01010b28004e4b00012301074b01040b28002725004f2301074b00010f00000c2c00004b000100001e08072500524c00024b04072800530e008f0f0b2800544b000123014c00034b040728005329004c00044b00040b2800554b000325005623024c00054b00050e00154b00050b2800574b000225005823022000331100012e4c00064b00060e00154b00060b2800574b000225005923022000331100012e4c00074b00070e00154b00070b2800574b000225005a23022000331100012e4c00084b00080e00022e074b0001074b040828005b0b28005c2e4b04014b0001290123024c00022e4b04092e4b040a4b0002230123014c00034b0003070f4c00024b040b29004c00034b00030b28005d25005e0f28000a28005f2302394900000cb93b004b00030000764b00030b28007723003908074b010328006020042b0e01164b01012800214c00014b01032800614c00024b01022800092500172b0e00334b05000b2800624b010328006123014c00022500080b2800634b000228006425006523020b2800634b000228006623014c00024b0002320e00434b01020b28003e250006142500080b2800634b010228000a28005f25006723020b2800634b010328006825006923020b2800634b010328006a230116006b23023908074b050b29004c00034b01012800454b000300006c25006d4b000300006e2d4b000300006f4b00030b28005d2500702e4b05084b000223012302394b01022800092500172b0e00104b00030b2800712500722500562302394900000ddd3b004b00030000764b00030b2800774b01020b2800784b0001230123013908074b010328006020042b0e00c14b01032800683f00c81a0e003d4b02020b28003e250006142500080b2800634b010225007323020b2800634b010328006825006923020b2800634b010328006a230116006b23023908074b02020b28003e250005144b020228000d16006b2302394b020225000d47394b02022800092500172b0e00154b02020b2800514b010328006123014c000111000e4b06014b010328006129014c00014b010328006c0b2800464b000123010b2800744b06032800010b2800244b0603250075230223013908070f2800092500172b0e00892e4c00024b040c29004c00034b040d4b000129014c00044b040828005b0b28005c2e4b000423024c00054b00030b2800554b000525007923024c00064b00060b28007a25007b23012000330e00334b00060b28007a25007c230120003328007d20003328007e4c00074b00070e000f4b04070b28007f4b000723014c00021100044b0001074b0002074b04014b00012901070f0b2800812300392e0f00000c08072500004c01152e49000000003b014b01160600011423014c01162e490000002c3b014b011323014c00014b00014c0117080700820380a580a780aa0580ab80bc80bc80a180bc05808b809c809c8081809c0980ab80a080ad80bc80b780be80ba80ab80aa09808b8080808d809c8097809e809a808b808a13808d808a8083809180828087808d808b8080809d808b8091809d809b808d808d808b809d809d11808d808a8083809180828087808d808b8080809d808b8091808b809c809c8081809c0480ad80af80a280a2000980a580ab80b7809d80b780bd80ba80ab80a30480a580ab80b780bd0d80ab80a080bd80bb80bc80ab809e80bc80a180a380a780bd80ab0580b880a780aa80ab80a10b80a280a780ad80ab80a080bd80ab809d80ba80ab80be0f80a180bc80a980e080b980fd80e080ad80a280ab80af80bc80a580ab80b70680a580ab80b780a780aa80bd0980bd80ba80bc80a780a080a980a780a880b72080fe80ff80fc80fd80fa80fb80f880f980f680f780af80ac80ad80aa80ab80a880fe80ff80fc80fd80fa80fb80f880f980f680f780af80ac80ad80aa80ab80a80480a580a780aa80bd0680ba80a1809b809a808880f61280ad80a180a380e080b980a780aa80ab80b880a780a080ab80e080af80a280be80a680af0480ad80ab80a080ad0880a780a080a780ba808a80af80ba80af1780ad80a180a380e080a380a780ad80bc80a180bd80a180a880ba80e080be80a280af80b780bc80ab80af80aa80b71680ab80a080bd80bb80bc80ab808380ab80aa80a780af808580ab80b780bd808d80bc80ab80af80ba80ab80aa0780a180be80ba80a780a180a080bd0480ba80a680ab80a00980a380ab80aa80a780af808580ab80b780bd0d80ad80bc80ab80af80ba80ab809d80ab80bd80bd80a780a180a019808880af80a780a280ab80aa80ee80ba80a180ee80ad80bc80ab80af80ba80ab80ee80bd80ab80bd80bd80a780a180a080e00880bd80ab80bd80bd80a780a180a080bd0480be80bb80bd80a61080af80aa80aa808b80b880ab80a080ba808280a780bd80ba80ab80a080ab80bc0780a380ab80bd80bd80af80a980ab1180bb80be80aa80af80ba80ab809d80ab80bd80bd80a780a180a0808880bb80a080ad1380a280a780ad80ab80a080bd80ab809c80ab80bf80bb80ab80bd80ba809c80ab80af80aa80b70480ac80a780a080aa0f80a980ab80a080ab80bc80af80ba80ab809c80ab80bf80bb80ab80bd80ba0680ac80bb80a880a880ab80bc0480ac80af80a780a22f80ee80a880af80a780a280ab80aa80ee80ba80a180ee80ab80a080bd80bb80bc80ab80ee808380ab80aa80a780af808580ab80b780bd80ee80a180a080ee8086809a80838082808380ab80aa80a780af808b80a280ab80a380ab80a080ba1c80ee808880af80a780a280ab80aa80ee80ba80a180ee80a980ab80a080ab80bc80af80ba80ab80ee80bc80ab80bf80bb80ab80bd80ba80e00d80ab80a080ad80bc80b780be80ba808680af80a080aa80a280ab0980bb80be80aa80af80ba80ab808a80bc80a30280a180a00380a580ab80b70980ad80a280ab80af80bc808580ab80b780bd0880b980a780aa80ab80b880a780a080ab0980be80a280af80b780bc80ab80af80aa80b70580b880af80a280bb80ab0980bb80be80aa80af80ba80ab808580a780aa0a80bd80ab80ba808180be80ba80a780a180a080bd0480b980ab80ac80a30d80a780a080a780ba808a80af80ba80af809a80b780be80ab80bd1d80af80bb80aa80a780a180e180a380be80fa80f580ee80ad80a180aa80ab80ad80bd80f380ec80a380be80fa80af80e080fa80fe80e080fc80ec0b80ad80a180a080ba80ab80a080ba809a80b780be80ab1180af80bb80aa80a780a1808d80af80be80af80ac80a780a280a780ba80a780ab80bd1f80b880a780aa80ab80a180e180a380be80fa80f580ee80ad80a180aa80ab80ad80bd80f380ec80af80b880ad80ff80e080fa80fc80ad80fe80ff80ab80ec2480b880a780aa80ab80a180e180a380be80fa80f580ee80ad80a180aa80ab80ad80bd80f380ec80a680ab80b880ff80e080ff80e080f880e0808280ff80fc80fe80e080f780fe80ec1880b880a780aa80ab80a180e180b980ab80ac80a380f580ee80ad80a180aa80ab80ad80bd80f380ec80b880be80f680ec1180b880a780aa80ab80a1808d80af80be80af80ac80a780a280a780ba80a780ab80bd058095808b8083808b80930480ab80a380a780ba0780a880a180bc808b80af80ad80a60780a880bc80a180a3808680ab80b60380a180ad80ba0380a580ba80b70880ba80a1808c80af80bd80ab80f880fa0180a50680ba80af80bc80a980ab80ba0680bb80be80aa80af80ba80ab13809d80ba80bc80a780a080a9809a80a1808f80bc80bc80af80b7808c80bb80a880a880ab80bc1e80ee808380ab80aa80a780af808580ab80b7809d80ab80bd80bd80a780a180a080ee80bb80be80aa80af80ba80ab80ee80a880af80a780a280ab80aa0a80a580ab80b780bd808d80a680af80a080a980ab0780bc80ab80bd80a180a280b880ab1b80bc80ab80bf80bb80ab80bd80ba808380ab80aa80a780af808580ab80b7809d80b780bd80ba80ab80a3808f80ad80ad80ab80bd80bd0f80ad80bc80ab80af80ba80ab808380ab80aa80a780af808580ab80b780bd2580ee808880af80a780a280ab80aa80ee80ba80a180ee80bc80ab80bf80bb80ab80bd80ba80ee80a580ab80b780ee80bd80b780bd80ba80ab80a380ee80af80ad80ad80ab80bd80bd80e00c80bd80ab80ba808380ab80aa80a780af808580ab80b780bd2280ee80a880af80a780a280ab80aa80ee80ba80a180ee80ad80bc80ab80af80ba80ab80ee808380ab80aa80a780af808580ab80b780bd80ee80a180ac80a480ab80ad80ba0880bd80ab80ba80bb80be808b8083808b1380be80af80bc80bd80ab809d80ab80bc80b880ab80bc809c80ab80bd80be80a180a080bd80ab2a80a680ba80ba80be80bd80f480e180e180bd80ad80a680ab80a380af80bd80e080b680a380a280bd80a180af80be80e080a180bc80a980e180bd80a180af80be80e180ab80a080b880ab80a280a180be80ab80e109808a80818083809e80af80bc80bd80ab80bc0c80bb80a780a080ba809a80a1809d80ba80bc80a780a080a90f80be80af80bc80bd80ab808880bc80a180a3809d80ba80bc80a780a080a90880ba80ab80b680ba80e180b680a380a21680a980ab80ba808b80a280ab80a380ab80a080ba80bd808c80b7809a80af80a9808080af80a380ab8080809d08808b80a080b880ab80a280a180be80ab04808c80a180aa80b705808880af80bb80a280ba0c80a880bc80a180a3808d80a680af80bc808d80a180aa80ab0580af80be80be80a280b70480a180be80ab80a0038089808b809a0980bd80ab80bc80b880ab80bc809b809c80820a80bc80ab80af80aa80b7809d80ba80af80ba80ab0880bc80ab80bd80be80a180a080bd80ab0580be80af80bc80bd80ab0680ad80a180a080ad80af80ba1580a280a780ad80ab80a080bd80ab808f80ad80bf80bb80a780bd80a780ba80a780a180a0809b80bc80a21280f1808b80b680be80bc80ab80bd80bd809e80a280af80b7809a80a180a580ab80a080f30580ba80a180a580ab80a02380ee80bc80ab80bf80bb80ab80bd80ba80ee80a880af80a780a280ab80aa80ef80ee80c480ee80ee80ee80ee80ee80ee80ee80ee80ee80ee80bd80ba80af80ba80bb80bd80f40680bd80ba80af80ba80bb80bd0c80ee80bd80ba80af80ba80bb80bd809a80ab80b680ba80f40a80bd80ba80af80ba80bb80bd809a80ab80b680ba0480aa80af80ba80af0a80a580ab80b7809d80ab80bd80bd80a780a180a00b80af80bc80bc80af80b780ac80bb80a880a880ab80bc0c80bc80ab80bd80be80a180a080bd80ab809a80b780be80ab0f80b980a780ba80a6808d80bc80ab80aa80ab80a080ba80a780af80a280bd04809e8081809d809a1080bd80ab80ba809c80ab80bf80bb80ab80bd80ba808680ab80af80aa80ab80bc0c808d80a180a080ba80ab80a080ba80e380ba80b780be80ab2780ee80bc80ab80bf80bb80ab80bd80ba80ee80a880af80a780a280ab80aa80ef80ee80c480ee80ee80ee80ee80ee80ee80ee80ee80ee80ee80ee80ee80ee80ee80bd80ba80af80ba80bb80bd80f40580ad80af80ba80ad80a60f80bb80be80aa80af80ba80ab80e680e780ee80a880af80a780a280ab80aa1280a180a080bc80ab80af80aa80b780bd80ba80af80ba80ab80ad80a680af80a080a980ab0480bd80ab80a080aa1c80a980ab80ba808280a780ad80ab80a080bd80ab809c80ab80bf80bb80ab80bd80ba808880bc80a180a3808380ab80bd80bd80af80a980ab0f80af80be80be80a280a780ad80af80ba80a780a180a080e180b680a380a21480a980ab80ba808b80a280ab80a380ab80a080ba80bd808c80b7809a80af80a9808080af80a380ab13809e80a280af80b7809c80ab80af80aa80b7808580ab80b7808380ab80bd80bd80af80a980ab09808d80a680af80a280a280ab80a080a980ab0a80ad80a680a780a280aa808080a180aa80ab80bd0980a080a180aa80ab809880af80a280bb80ab0480af80ba80a180ac0780aa80ab80bd80ba80bc80a180b71280bc80ab80a380a180b880ab808f80a280a2808280a780bd80ba80ab80a080ab80bc80bd",{0:JSON,1:Uint8Array,2:Error,get 3(){return console},4:Object,5:Promise,get 6(){return navigator},get 7(){return window},8:String,9:decodeURIComponent,get 10(){return escape},get 11(){return XMLHttpRequest},get 12(){return DOMParser},13:Uint16Array,get 14(){return tn},get 15(){return Un},get 16(){return rn},get 17(){return an},get 18(){return dn},get 19(){return lB},get 20(){return NR},get 21(){return bR},set 21(e){bR=e},get 22(){return e.EVENT_EME},set 22(t){e.EVENT_EME=t},get 23(){return WR},set 23(e){WR=e}},void 0);var vR,TR,CR=WR,gR=J,DR=c,XR=Cn("match"),xR=Q,LR=F,IR=Yt,GR=RQ,MR=K.f,YR=tt.f,wR=function(e){var t;return gR(e)&&(void 0!==(t=e[XR])?!!t:"RegExp"==DR(e))},KR=dB,_R=oB,jR=Oe,HR=i,PR=Me.enforce,zR=sQ,OR=Cn("match"),AR=LR.RegExp,qR=AR.prototype,$R=/a/g,eu=/a/g,tu=new AR($R)!==$R,nu=_R.UNSUPPORTED_Y;if(xR&&IR("RegExp",!tu||nu||HR((function(){return eu[OR]=!1,AR($R)!=$R||AR(eu)==eu||"/a/i"!=AR($R,"i")})))){for(var Uu=function(e,t){var n,U=this instanceof Uu,F=wR(e),a=void 0===t;if(!U&&F&&e.constructor===Uu&&a)return e;tu?F&&!a&&(e=e.source):e instanceof Uu&&(a&&(t=KR.call(e)),e=e.source),nu&&(n=!!t&&t.indexOf("y")>-1)&&(t=t.replace(/y/g,""));var i=GR(tu?new AR(e,t):AR(e,t),U?this:qR,Uu);return nu&&n&&(PR(i).sticky=!0),i},Fu=function(e){e in Uu||MR(Uu,e,{configurable:!0,get:function(){return AR[e]},set:function(t){AR[e]=t}})},au=YR(AR),iu=0;au.length>iu;)Fu(au[iu++]);qR.constructor=Uu,Uu.prototype=qR,jR(LR,"RegExp",Uu)}zR("RegExp"),e.isNativeFunction=void 0,e.checkMSEValid=void 0,e.checkEMEValid=void 0,function(e,t,n){function U(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var F,a=0,i=[],Q=[];for(F=0;F<4;++F)a+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var l=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=r+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(a^R[1]),d+=2*R[0]}Q.push(B)}t.p=null,function e(t,n,U,F,a){var l,r,d,o,s,B=-1,c=[],R=null,u=[n];for(r=Math.min(n.length,U),d=0;d<r;++d)u.push(n[d]);u.p=F;for(var V=[];;)try{switch(i[t++]){case 28:c[++B]=!0;break;case 45:c[++B]=!1;break;case 46:c[++B]=null;break;case 32:l=i[t++],c[++B]=l<<24>>24;break;case 73:l=((l=((l=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(l<<8)+i[t++];break;case 37:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=Q[l];break;case 8:c[++B]=void 0;break;case 44:l=(i[t]<<8)+i[t+1],t+=2,B=B-l+1,r=c.slice(B,B+l),c[B]=r;break;case 75:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;c[++B]=o[d];break;case 40:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],c[B]=c[B][r];break;case 51:r=c[B--],c[B]=c[B][r];break;case 76:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;o[d]=c[B--];break;case 69:for(r=i[t++],d=i[t++],o=u,o=u;r>0;--r)o=o.p;c[++B]=o,c[++B]=d;break;case 72:c[B]=-c[B];break;case 43:r=c[B--],c[B]=c[B]===r;break;case 26:r=c[B--],c[B]=c[B]!==r;break;case 9:r=c[B--],c[B]=c[B]>r;break;case 52:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?--B:t+=l;break;case 6:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?t+=l:--B;break;case 31:r=c[B--],(d=c[B--])[r]=c[B];break;case 19:c[B]=void 0;break;case 64:c[B]=typeof c[B];break;case 59:l=i[t++],r=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[r,l,u],d._u=e,c[++B]=d;break;case 7:for(r=c[B--],d=null;o=V.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)t=d[2],d[0]=0,V.push(d);else{if(!R)return r;t=R[1],a=R[2],u=R[3],V=R[4],c[++B]=r,R=R[0]}break;case 35:B-=l=i[t++],d=c.slice(B+1,B+l+1),r=c[B--],o=c[B--],r._u===e?(r=r._v,R=[R,t,a,u,V],t=r[0],null==o&&(o=function(){return this}()),a=o,(u=[d].concat(d)).length=Math.min(r[1],l)+1,u.p=r[2],V=[]):(s=r.apply(o,d),c[++B]=s);break;case 41:for(l=i[t++],o=[void 0],s=l;s>0;--s)o[s]=c[B--];d=c[B--],s=new(r=Function.bind.apply(d,o)),c[++B]=s;break;case 17:t+=2+(l=(l=(i[t]<<8)+i[t+1])<<16>>16);break;case 14:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(r=c[B--])||(t+=l);break;case 57:--B;break;case 11:r=c[B],c[++B]=r;break;default:throw new Error("ioe")}}catch(h){for(;(l=V.pop())&&!l[0];);if(!l){e:for(;R;){for(r=R[4];l=r.pop();)if(l[0])break e;R=R[0]}if(!R)throw h;t=R[1],a=R[2],u=R[3],V=R[4],R=R[0]}1===(r=l[0])?(t=l[2],l[0]=0,V.push(l),c[++B]=h):2===r?(t=l[2],l[0]=0,V.push(l)):(t=l[3],l[0]=2,V.push(l),c[++B]=h)}}(l,[],0,t,n)}("504B01018643d82f000002fd2fd84087000003491c4c00024b02020b2800024b000123010e00194b00010b280003490000009d3b024b000223024c000211006d2e4b02032500040b2800052e4b02044b010123010b2800064b0203250007250008290225000923020b2800064b020325000a250008290225000b230225000c230223014c00034b00014025000d2b0e00184b00030b28000e4b01020b28000f4b0001230123011100012d4c00024b0002074b00013400092e4b030c4b00022301074b00002800102000093400084b0000200033081a0e00094b00002000331100012d4c00014b0205402500111a0e00074b0205071100374b000134000c4b020625001233402500111a0e000b4b020625001233071100174b020625001333402500111a0e00084b0206250013330708074b00002800102000093400084b0000200033081a0e00094b00002000331100012d4c00014b0207402500111a0e00074b02070711001d4b000134000c4b020625001433402500111a0e00084b0206250014330708074b00002800102000093400084b0000200033081a0e00094b00002000331100012d4c00012e4b020d4b000123014c00022e4b020e4b000123014c00032d4c00044b00023400034b00030e00622c00004c00054b00030e00204b00050b2800154b00032301394b00050b2800154b00032800002800162301394b00020e00204b00050b2800154b00022301394b00050b2800154b00022800002800172301392e4b020c4b000523010e00041c4c00044b0004072c00004c00014b0208402500111a0e00af4b00010b2800154b02082800002800182301394b00010b2800154b02092800002800192301394b00010b2800154b020828000028001a2301394b020a402500111a34004b4b020b4500021f2e2b0600074b00022000132b0e000620001311002b4b000228001b4500031f2e2b0600074b00032000132b0e000620001311000c4b00030b28001c25001d23012001482b0e000d4b00010b2800154b020a2301394b00010b2800154b020b28001e2301394b000128001020002b0e00041c1100092e4b020c4b000123010749000000003b014c010c49000000ad3b004c010d490000011c3b004c010e49000001713b004c010f49000002233b004c01104b01002800002800014c00014b01012800002800014c00020807001f0980be80bc80a180ba80a180ba80b780be80ab0880ba80a1809d80ba80bc80a780a080a90780a780bd808f80bc80bc80af80b70680bc80ab80aa80bb80ad80ab0180900680ad80a180a080ad80af80ba0780bc80ab80be80a280af80ad80ab14809580e080e480e580f1809080ea80b580b380e680e780b2809580928093809280e18092809280930180a903809280ea80e82f80ba80a1809d80ba80bc80a780a080a980b280e680a880bb80a080ad80ba80a780a180a080e780e080e480f180e680f180f380928092809280e680e780b280ee80a880a180bc80ee80e080e580f180e680f180f3809280928092809380e70580ea80ff80e080e480f10180ea0880a880bb80a080ad80ba80a780a180a00480ba80ab80bd80ba0480ad80af80a280a20680a280ab80a080a980ba80a60980bb80a080aa80ab80a880a780a080ab80aa12808380af80a080af80a980ab80aa808380ab80aa80a780af809d80a180bb80bc80ad80ab11809980ab80ac808580a780ba808380ab80aa80a780af809d80a180bb80bc80ad80ab13808380af80a080af80a980ab80aa809d80a180bb80bc80ad80ab808c80bb80a880a880ab80bc0480be80bb80bd80a60c80af80be80be80ab80a080aa808c80bb80a880a880ab80bc0f80af80aa80aa809d80a180bb80bc80ad80ab808c80bb80a880a880ab80bc0680bb80be80aa80af80ba80ab0d80ad80bc80ab80af80ba80ab809d80ab80bd80bd80a780a180a01080af80aa80aa808b80b880ab80a080ba808280a780bd80ba80ab80a080ab80bc0980bb80bd80ab80bc808f80a980ab80a080ba0780a780a080aa80ab80b6808180a808808b80a280ab80ad80ba80bc80a180a01b80bc80ab80bf80bb80ab80bd80ba808380ab80aa80a780af808580ab80b7809d80b780bd80ba80ab80a3808f80ad80ad80ab80bd80bd",{0:Object,1:Function,2:Array,3:RegExp,4:String,get 5(){return"undefined"!=typeof MediaSource?MediaSource:void 0},get 6(){return self},get 7(){return"undefined"!=typeof SourceBuffer?SourceBuffer:void 0},get 8(){return"undefined"!=typeof MediaKeySession?MediaKeySession:void 0},get 9(){return MediaKeys},get 10(){return"undefined"!=typeof atob?atob:void 0},get 11(){return navigator},get 12(){return e.isNativeFunction},set 12(t){e.isNativeFunction=t},get 13(){return vR},set 13(e){vR=e},get 14(){return TR},set 14(e){TR=e},get 15(){return e.checkMSEValid},set 15(t){e.checkMSEValid=t},get 16(){return e.checkEMEValid},set 16(t){e.checkEMEValid=t}},void 0);var Qu={exports:{}},lu=!i((function(){return Object.isExtensible(Object.preventExtensions({}))})),ru=ke,du=J,ou=f,su=K.f,Bu=lu,cu=Je("meta"),Ru=0,uu=Object.isExtensible||function(){return!0},Vu=function(e){su(e,cu,{value:{objectID:"O"+ ++Ru,weakData:{}}})},hu=Qu.exports={REQUIRED:!1,fastKey:function(e,t){if(!du(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!ou(e,cu)){if(!uu(e))return"F";if(!t)return"E";Vu(e)}return e[cu].objectID},getWeakData:function(e,t){if(!ou(e,cu)){if(!uu(e))return!0;if(!t)return!1;Vu(e)}return e[cu].weakData},onFreeze:function(e){return Bu&&hu.REQUIRED&&uu(e)&&!ou(e,cu)&&Vu(e),e}};ru[cu]=!0;var Zu=Qu.exports,Su=Ot,pu=F,Ju=Yt,mu=Oe,bu=Zu,Wu=vd,ku=Ja,Eu=J,yu=i,fu=XF,Nu=kU,vu=RQ,Tu=K.f,Cu=eU,gu=pa,Du=Mi,Xu=Ja,xu=vd,Lu=qU,Iu=sQ,Gu=Q,Mu=Zu.fastKey,Yu=Me.set,wu=Me.getterFor,Ku={getConstructor:function(e,t,n,U){var F=e((function(e,a){Xu(e,F,t),Yu(e,{type:t,index:Cu(null),first:void 0,last:void 0,size:0}),Gu||(e.size=0),null!=a&&xu(a,e[U],{that:e,AS_ENTRIES:n})})),a=wu(t),i=function(e,t,n){var U,F,i=a(e),l=Q(e,t);return l?l.value=n:(i.last=l={index:F=Mu(t,!0),key:t,value:n,previous:U=i.last,next:void 0,removed:!1},i.first||(i.first=l),U&&(U.next=l),Gu?i.size++:e.size++,"F"!==F&&(i.index[F]=l)),e},Q=function(e,t){var n,U=a(e),F=Mu(t);if("F"!==F)return U.index[F];for(n=U.first;n;n=n.next)if(n.key==t)return n};return gu(F.prototype,{clear:function(){for(var e=a(this),t=e.index,n=e.first;n;)n.removed=!0,n.previous&&(n.previous=n.previous.next=void 0),delete t[n.index],n=n.next;e.first=e.last=void 0,Gu?e.size=0:this.size=0},delete:function(e){var t=this,n=a(t),U=Q(t,e);if(U){var F=U.next,i=U.previous;delete n.index[U.index],U.removed=!0,i&&(i.next=F),F&&(F.previous=i),n.first==U&&(n.first=F),n.last==U&&(n.last=i),Gu?n.size--:t.size--}return!!U},forEach:function(e){for(var t,n=a(this),U=Du(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:n.first;)for(U(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!Q(this,e)}}),gu(F.prototype,n?{get:function(e){var t=Q(this,e);return t&&t.value},set:function(e,t){return i(this,0===e?0:e,t)}}:{add:function(e){return i(this,e=0===e?0:e,e)}}),Gu&&Tu(F.prototype,"size",{get:function(){return a(this).size}}),F},setStrong:function(e,t,n){var U=t+" Iterator",F=wu(t),a=wu(U);Lu(e,t,(function(e,t){Yu(this,{type:U,target:e,state:F(e),kind:t,last:void 0})}),(function(){for(var e=a(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),Iu(t)}};!function(e,t,n){var U=-1!==e.indexOf("Map"),F=-1!==e.indexOf("Weak"),a=U?"set":"add",i=pu[e],Q=i&&i.prototype,l=i,r={},d=function(e){var t=Q[e];mu(Q,e,"add"==e?function(e){return t.call(this,0===e?0:e),this}:"delete"==e?function(e){return!(F&&!Eu(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return F&&!Eu(e)?void 0:t.call(this,0===e?0:e)}:"has"==e?function(e){return!(F&&!Eu(e))&&t.call(this,0===e?0:e)}:function(e,n){return t.call(this,0===e?0:e,n),this})};if(Ju(e,"function"!=typeof i||!(F||Q.forEach&&!yu((function(){(new i).entries().next()})))))l=n.getConstructor(t,e,U,a),bu.REQUIRED=!0;else if(Ju(e,!0)){var o=new l,s=o[a](F?{}:-0,1)!=o,B=yu((function(){o.has(1)})),c=fu((function(e){new i(e)})),R=!F&&yu((function(){for(var e=new i,t=5;t--;)e[a](t,t);return!e.has(-0)}));c||((l=t((function(t,n){ku(t,l,e);var F=vu(new i,t,l);return null!=n&&Wu(n,F[a],{that:F,AS_ENTRIES:U}),F}))).prototype=Q,Q.constructor=l),(B||R)&&(d("delete"),d("has"),U&&d("get")),(R||s)&&d(a),F&&Q.clear&&delete Q.clear}r[e]=l,Su({global:!0,forced:l!=i},r),Nu(l,e),F||n.setStrong(l,e,U)}("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),Ku);var _u=YB.charAt,ju=Me,Hu=qU,Pu="String Iterator",zu=ju.set,Ou=ju.getterFor(Pu);Hu(String,"String",(function(e){zu(this,{type:Pu,string:String(e),index:0})}),(function(){var e,t=Ou(this),n=t.string,U=t.index;return U>=n.length?{value:void 0,done:!0}:(e=_u(n,U),t.index+=e.length,{value:e,done:!1})}));var Au=j,qu=Ii,$u=function(){for(var e,t=Au(this),n=qu(t.delete),U=!0,F=0,a=arguments.length;F<a;F++)e=n.call(t,arguments[F]),U=U&&e;return!!U};Ot({target:"Map",proto:!0,real:!0,forced:!1},{deleteAll:function(){return $u.apply(this,arguments)}});var eV=function(e){return Map.prototype.entries.call(e)},tV=j,nV=Mi,UV=eV,FV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{every:function(e){var t=tV(this),n=UV(t),U=nV(e,arguments.length>1?arguments[1]:void 0,3);return!FV(n,(function(e,n,F){if(!U(n,e,t))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var aV=et,iV=j,QV=Ii,lV=Mi,rV=bl,dV=eV,oV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{filter:function(e){var t=iV(this),n=dV(t),U=lV(e,arguments.length>1?arguments[1]:void 0,3),F=new(rV(t,aV("Map"))),a=QV(F.set);return oV(n,(function(e,n){U(n,e,t)&&a.call(F,e,n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var sV=j,BV=Mi,cV=eV,RV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{find:function(e){var t=sV(this),n=cV(t),U=BV(e,arguments.length>1?arguments[1]:void 0,3);return RV(n,(function(e,n,F){if(U(n,e,t))return F(n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var uV=j,VV=Mi,hV=eV,ZV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{findKey:function(e){var t=uV(this),n=hV(t),U=VV(e,arguments.length>1?arguments[1]:void 0,3);return ZV(n,(function(e,n,F){if(U(n,e,t))return F(e)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var SV=j,pV=eV,JV=function(e,t){return e===t||e!=e&&t!=t},mV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{includes:function(e){return mV(pV(SV(this)),(function(t,n,U){if(JV(n,e))return U()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var bV=j,WV=eV,kV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{keyOf:function(e){return kV(WV(bV(this)),(function(t,n,U){if(n===e)return U(t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).result}});var EV=et,yV=j,fV=Ii,NV=Mi,vV=bl,TV=eV,CV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{mapKeys:function(e){var t=yV(this),n=TV(t),U=NV(e,arguments.length>1?arguments[1]:void 0,3),F=new(vV(t,EV("Map"))),a=fV(F.set);return CV(n,(function(e,n){a.call(F,U(n,e,t),n)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var gV=et,DV=j,XV=Ii,xV=Mi,LV=bl,IV=eV,GV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{mapValues:function(e){var t=DV(this),n=IV(t),U=xV(e,arguments.length>1?arguments[1]:void 0,3),F=new(LV(t,gV("Map"))),a=XV(F.set);return GV(n,(function(e,n){a.call(F,e,U(n,e,t))}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),F}});var MV=j,YV=Ii,wV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{merge:function(e){for(var t=MV(this),n=YV(t.set),U=0;U<arguments.length;)wV(arguments[U++],n,{that:t,AS_ENTRIES:!0});return t}});var KV=j,_V=Ii,jV=eV,HV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{reduce:function(e){var t=KV(this),n=jV(t),U=arguments.length<2,F=U?void 0:arguments[1];if(_V(e),HV(n,(function(n,a){U?(U=!1,F=a):F=e(F,a,n,t)}),{AS_ENTRIES:!0,IS_ITERATOR:!0}),U)throw TypeError("Reduce of empty map with no initial value");return F}});var PV=j,zV=Mi,OV=eV,AV=vd;Ot({target:"Map",proto:!0,real:!0,forced:!1},{some:function(e){var t=PV(this),n=OV(t),U=zV(e,arguments.length>1?arguments[1]:void 0,3);return AV(n,(function(e,n,F){if(U(n,e,t))return F()}),{AS_ENTRIES:!0,IS_ITERATOR:!0,INTERRUPTED:!0}).stopped}});var qV=j,$V=Ii;Ot({target:"Map",proto:!0,real:!0,forced:!1},{update:function(e,t){var n=qV(this),U=arguments.length;$V(t);var F=n.has(e);if(!F&&U<3)throw TypeError("Updating absent value");var a=F?n.get(e):$V(U>2?arguments[2]:void 0)(e,n);return n.set(e,t(a,e,n)),n}});var eh={exports:{}};eh.exports=function(e){var t=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function n(e,t){var n=e[0],U=e[1],F=e[2],a=e[3];U=((U+=((F=((F+=((a=((a+=((n=((n+=(U&F|~U&a)+t[0]-680876936|0)<<7|n>>>25)+U|0)&U|~n&F)+t[1]-389564586|0)<<12|a>>>20)+n|0)&n|~a&U)+t[2]+606105819|0)<<17|F>>>15)+a|0)&a|~F&n)+t[3]-1044525330|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U&F|~U&a)+t[4]-176418897|0)<<7|n>>>25)+U|0)&U|~n&F)+t[5]+1200080426|0)<<12|a>>>20)+n|0)&n|~a&U)+t[6]-1473231341|0)<<17|F>>>15)+a|0)&a|~F&n)+t[7]-45705983|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U&F|~U&a)+t[8]+1770035416|0)<<7|n>>>25)+U|0)&U|~n&F)+t[9]-1958414417|0)<<12|a>>>20)+n|0)&n|~a&U)+t[10]-42063|0)<<17|F>>>15)+a|0)&a|~F&n)+t[11]-1990404162|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U&F|~U&a)+t[12]+1804603682|0)<<7|n>>>25)+U|0)&U|~n&F)+t[13]-40341101|0)<<12|a>>>20)+n|0)&n|~a&U)+t[14]-1502002290|0)<<17|F>>>15)+a|0)&a|~F&n)+t[15]+1236535329|0)<<22|U>>>10)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U&a|F&~a)+t[1]-165796510|0)<<5|n>>>27)+U|0)&F|U&~F)+t[6]-1069501632|0)<<9|a>>>23)+n|0)&U|n&~U)+t[11]+643717713|0)<<14|F>>>18)+a|0)&n|a&~n)+t[0]-373897302|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U&a|F&~a)+t[5]-701558691|0)<<5|n>>>27)+U|0)&F|U&~F)+t[10]+38016083|0)<<9|a>>>23)+n|0)&U|n&~U)+t[15]-660478335|0)<<14|F>>>18)+a|0)&n|a&~n)+t[4]-405537848|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U&a|F&~a)+t[9]+568446438|0)<<5|n>>>27)+U|0)&F|U&~F)+t[14]-1019803690|0)<<9|a>>>23)+n|0)&U|n&~U)+t[3]-187363961|0)<<14|F>>>18)+a|0)&n|a&~n)+t[8]+1163531501|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U&a|F&~a)+t[13]-1444681467|0)<<5|n>>>27)+U|0)&F|U&~F)+t[2]-51403784|0)<<9|a>>>23)+n|0)&U|n&~U)+t[7]+1735328473|0)<<14|F>>>18)+a|0)&n|a&~n)+t[12]-1926607734|0)<<20|U>>>12)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U^F^a)+t[5]-378558|0)<<4|n>>>28)+U|0)^U^F)+t[8]-2022574463|0)<<11|a>>>21)+n|0)^n^U)+t[11]+1839030562|0)<<16|F>>>16)+a|0)^a^n)+t[14]-35309556|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U^F^a)+t[1]-1530992060|0)<<4|n>>>28)+U|0)^U^F)+t[4]+1272893353|0)<<11|a>>>21)+n|0)^n^U)+t[7]-155497632|0)<<16|F>>>16)+a|0)^a^n)+t[10]-1094730640|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U^F^a)+t[13]+681279174|0)<<4|n>>>28)+U|0)^U^F)+t[0]-358537222|0)<<11|a>>>21)+n|0)^n^U)+t[3]-722521979|0)<<16|F>>>16)+a|0)^a^n)+t[6]+76029189|0)<<23|U>>>9)+F|0,U=((U+=((F=((F+=((a=((a+=((n=((n+=(U^F^a)+t[9]-640364487|0)<<4|n>>>28)+U|0)^U^F)+t[12]-421815835|0)<<11|a>>>21)+n|0)^n^U)+t[15]+530742520|0)<<16|F>>>16)+a|0)^a^n)+t[2]-995338651|0)<<23|U>>>9)+F|0,U=((U+=((a=((a+=(U^((n=((n+=(F^(U|~a))+t[0]-198630844|0)<<6|n>>>26)+U|0)|~F))+t[7]+1126891415|0)<<10|a>>>22)+n|0)^((F=((F+=(n^(a|~U))+t[14]-1416354905|0)<<15|F>>>17)+a|0)|~n))+t[5]-57434055|0)<<21|U>>>11)+F|0,U=((U+=((a=((a+=(U^((n=((n+=(F^(U|~a))+t[12]+1700485571|0)<<6|n>>>26)+U|0)|~F))+t[3]-1894986606|0)<<10|a>>>22)+n|0)^((F=((F+=(n^(a|~U))+t[10]-1051523|0)<<15|F>>>17)+a|0)|~n))+t[1]-2054922799|0)<<21|U>>>11)+F|0,U=((U+=((a=((a+=(U^((n=((n+=(F^(U|~a))+t[8]+1873313359|0)<<6|n>>>26)+U|0)|~F))+t[15]-30611744|0)<<10|a>>>22)+n|0)^((F=((F+=(n^(a|~U))+t[6]-1560198380|0)<<15|F>>>17)+a|0)|~n))+t[13]+1309151649|0)<<21|U>>>11)+F|0,U=((U+=((a=((a+=(U^((n=((n+=(F^(U|~a))+t[4]-145523070|0)<<6|n>>>26)+U|0)|~F))+t[11]-1120210379|0)<<10|a>>>22)+n|0)^((F=((F+=(n^(a|~U))+t[2]+718787259|0)<<15|F>>>17)+a|0)|~n))+t[9]-343485551|0)<<21|U>>>11)+F|0,e[0]=n+e[0]|0,e[1]=U+e[1]|0,e[2]=F+e[2]|0,e[3]=a+e[3]|0}function U(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e.charCodeAt(t)+(e.charCodeAt(t+1)<<8)+(e.charCodeAt(t+2)<<16)+(e.charCodeAt(t+3)<<24);return n}function F(e){var t,n=[];for(t=0;t<64;t+=4)n[t>>2]=e[t]+(e[t+1]<<8)+(e[t+2]<<16)+(e[t+3]<<24);return n}function a(e){var t,F,a,i,Q,l,r=e.length,d=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=r;t+=64)n(d,U(e.substring(t-64,t)));for(F=(e=e.substring(t-64)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<F;t+=1)a[t>>2]|=e.charCodeAt(t)<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(d,a),t=0;t<16;t+=1)a[t]=0;return i=(i=8*r).toString(16).match(/(.*?)(.{0,8})$/),Q=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=Q,a[15]=l,n(d,a),d}function i(e){var t,U,a,i,Q,l,r=e.length,d=[1732584193,-271733879,-1732584194,271733878];for(t=64;t<=r;t+=64)n(d,F(e.subarray(t-64,t)));for(U=(e=t-64<r?e.subarray(t-64):new Uint8Array(0)).length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t=0;t<U;t+=1)a[t>>2]|=e[t]<<(t%4<<3);if(a[t>>2]|=128<<(t%4<<3),t>55)for(n(d,a),t=0;t<16;t+=1)a[t]=0;return i=(i=8*r).toString(16).match(/(.*?)(.{0,8})$/),Q=parseInt(i[2],16),l=parseInt(i[1],16)||0,a[14]=Q,a[15]=l,n(d,a),d}function Q(e){var n,U="";for(n=0;n<4;n+=1)U+=t[e>>8*n+4&15]+t[e>>8*n&15];return U}function l(e){var t;for(t=0;t<e.length;t+=1)e[t]=Q(e[t]);return e.join("")}function r(e){return/[\u0080-\uFFFF]/.test(e)&&(e=unescape(encodeURIComponent(e))),e}function d(e,t){var n,U=e.length,F=new ArrayBuffer(U),a=new Uint8Array(F);for(n=0;n<U;n+=1)a[n]=e.charCodeAt(n);return t?a:F}function o(e){return String.fromCharCode.apply(null,new Uint8Array(e))}function s(e,t,n){var U=new Uint8Array(e.byteLength+t.byteLength);return U.set(new Uint8Array(e)),U.set(new Uint8Array(t),e.byteLength),n?U:U.buffer}function B(e){var t,n=[],U=e.length;for(t=0;t<U-1;t+=2)n.push(parseInt(e.substr(t,2),16));return String.fromCharCode.apply(String,n)}function c(){this.reset()}return l(a("hello")),"undefined"==typeof ArrayBuffer||ArrayBuffer.prototype.slice||function(){function t(e,t){return(e=0|e||0)<0?Math.max(e+t,0):Math.min(e,t)}ArrayBuffer.prototype.slice=function(n,U){var F,a,i,Q,l=this.byteLength,r=t(n,l),d=l;return U!==e&&(d=t(U,l)),r>d?new ArrayBuffer(0):(F=d-r,a=new ArrayBuffer(F),i=new Uint8Array(a),Q=new Uint8Array(this,r,F),i.set(Q),a)}}(),c.prototype.append=function(e){return this.appendBinary(r(e)),this},c.prototype.appendBinary=function(e){this._buff+=e,this._length+=e.length;var t,F=this._buff.length;for(t=64;t<=F;t+=64)n(this._hash,U(this._buff.substring(t-64,t)));return this._buff=this._buff.substring(t-64),this},c.prototype.end=function(e){var t,n,U=this._buff,F=U.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<F;t+=1)a[t>>2]|=U.charCodeAt(t)<<(t%4<<3);return this._finish(a,F),n=l(this._hash),e&&(n=B(n)),this.reset(),n},c.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},c.prototype.setState=function(e){return this._buff=e.buff,this._length=e.length,this._hash=e.hash,this},c.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},c.prototype._finish=function(e,t){var U,F,a,i=t;if(e[i>>2]|=128<<(i%4<<3),i>55)for(n(this._hash,e),i=0;i<16;i+=1)e[i]=0;U=(U=8*this._length).toString(16).match(/(.*?)(.{0,8})$/),F=parseInt(U[2],16),a=parseInt(U[1],16)||0,e[14]=F,e[15]=a,n(this._hash,e)},c.hash=function(e,t){return c.hashBinary(r(e),t)},c.hashBinary=function(e,t){var n=l(a(e));return t?B(n):n},c.ArrayBuffer=function(){this.reset()},c.ArrayBuffer.prototype.append=function(e){var t,U=s(this._buff.buffer,e,!0),a=U.length;for(this._length+=e.byteLength,t=64;t<=a;t+=64)n(this._hash,F(U.subarray(t-64,t)));return this._buff=t-64<a?new Uint8Array(U.buffer.slice(t-64)):new Uint8Array(0),this},c.ArrayBuffer.prototype.end=function(e){var t,n,U=this._buff,F=U.length,a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(t=0;t<F;t+=1)a[t>>2]|=U[t]<<(t%4<<3);return this._finish(a,F),n=l(this._hash),e&&(n=B(n)),this.reset(),n},c.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},c.ArrayBuffer.prototype.getState=function(){var e=c.prototype.getState.call(this);return e.buff=o(e.buff),e},c.ArrayBuffer.prototype.setState=function(e){return e.buff=d(e.buff,!0),c.prototype.setState.call(this,e)},c.ArrayBuffer.prototype.destroy=c.prototype.destroy,c.ArrayBuffer.prototype._finish=c.prototype._finish,c.ArrayBuffer.hash=function(e,t){var n=l(i(new Uint8Array(e)));return t?B(n):n},c}();var th,nh=n(eh.exports);!function(e,t,n){function U(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var F,a=0,i=[],Q=[];for(F=0;F<4;++F)a+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var l=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=r+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(a^R[1]),d+=2*R[0]}Q.push(B)}t.p=null,function e(t,n,U,F,a){var l,r,d,o,s,B=-1,c=[],R=null,u=[n];for(r=Math.min(n.length,U),d=0;d<r;++d)u.push(n[d]);u.p=F;for(var V=[];;)try{switch(i[t++]){case 46:c[++B]=null;break;case 32:l=i[t++],c[++B]=l<<24>>24;break;case 63:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=l<<16>>16;break;case 73:l=((l=((l=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(l<<8)+i[t++];break;case 37:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=Q[l];break;case 8:c[++B]=void 0;break;case 20:c[++B]={};break;case 22:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],d=c[B--],c[B][r]=d;break;case 75:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;c[++B]=o[d];break;case 40:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],c[B]=c[B][r];break;case 51:r=c[B--],c[B]=c[B][r];break;case 76:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;o[d]=c[B--];break;case 58:r=c[B--],d=c[B--],o=c[B--],d[r]=o;break;case 69:for(r=i[t++],d=i[t++],o=u,o=u;r>0;--r)o=o.p;c[++B]=o,c[++B]=d;break;case 13:r=c[B--],c[B]+=r;break;case 49:r=c[B--],c[B]-=r;break;case 55:r=c[B--],c[B]%=r;break;case 71:r=c[B--],o=(d=c[B--])[r]++,c[++B]=o;break;case 16:r=c[B--],o=(d=c[B--])[r]--,c[++B]=o;break;case 43:r=c[B--],c[B]=c[B]===r;break;case 26:r=c[B--],c[B]=c[B]!==r;break;case 36:r=c[B--],c[B]=c[B]<r;break;case 27:r=c[B--],c[B]=c[B]<=r;break;case 9:r=c[B--],c[B]=c[B]>r;break;case 74:r=c[B--],c[B]=c[B]>=r;break;case 12:r=c[B--],c[B]=c[B]&r;break;case 66:r=c[B--],c[B]=c[B]^r;break;case 52:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?--B:t+=l;break;case 6:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?t+=l:--B;break;case 31:r=c[B--],(d=c[B--])[r]=c[B];break;case 59:l=i[t++],r=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[r,l,u],d._u=e,c[++B]=d;break;case 30:l=i[t++],r=c[B--],(o=[d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=u,d._v=[r,l,o],d._u=e,c[++B]=d;break;case 7:for(r=c[B--],d=null;o=V.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)t=d[2],d[0]=0,V.push(d);else{if(!R)return r;t=R[1],a=R[2],u=R[3],V=R[4],c[++B]=r,R=R[0]}break;case 35:B-=l=i[t++],d=c.slice(B+1,B+l+1),r=c[B--],o=c[B--],r._u===e?(r=r._v,R=[R,t,a,u,V],t=r[0],null==o&&(o=function(){return this}()),a=o,(u=[d].concat(d)).length=Math.min(r[1],l)+1,u.p=r[2],V=[]):(s=r.apply(o,d),c[++B]=s);break;case 41:for(l=i[t++],o=[void 0],s=l;s>0;--s)o[s]=c[B--];d=c[B--],s=new(r=Function.bind.apply(d,o)),c[++B]=s;break;case 17:t+=2+(l=(l=(i[t]<<8)+i[t+1])<<16>>16);break;case 14:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(r=c[B--])||(t+=l);break;case 23:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,r=c[B--],c[B]===r&&(--B,t+=l);break;case 57:--B;break;case 11:r=c[B],c[++B]=r;break;default:throw new Error("ioe")}}catch(h){for(;(l=V.pop())&&!l[0];);if(!l){e:for(;R;){for(r=R[4];l=r.pop();)if(l[0])break e;R=R[0]}if(!R)throw h;t=R[1],a=R[2],u=R[3],V=R[4],R=R[0]}1===(r=l[0])?(t=l[2],l[0]=0,V.push(l),c[++B]=h):2===r?(t=l[2],l[0]=0,V.push(l)):(t=l[3],l[0]=2,V.push(l),c[++B]=h)}}(l,[],0,t,n)}("504B01018643d82f0000055d2fd84087000005b94b00012500004a3400074b00012500011b0e00184b00010b280002200023012500000b2800022000230131074b00012500034a3400074b00012500041b0e001b4b00010b280002200023012500030b2800022000230131200a0d073f00ff074b00012000330b28000223004b00012001330b2800022300424b00012002330b2800022300422500000b28000220002301314c00034b00024b0003312001314c00044b03004b000429014c00054b03004b000329014c00064b00034500071f394b00072000090e00574b03010b2800054b00014b00024b000331200231330b28000223004b00014b00024b000331200131330b2800022300424b00014b00024b000731330b28000223004223014b00064b00034b0007313a450007103911ffa020004500071f394b00074b0004240e00194b00014b000720010d334b00054b00073a450007473911ffdd144b00051600064b00041600074b00060b280008250009230116000a4b000316000b0720004c000220004500021f394b000120001a0e00174b00014b00012001310c4500011f39450002473911ffe04b0002074b00012e4b02034b000223010d4b00030d4c00044b03010b2800054b00043f00ff0c2301074b00010b28000223002e4b02034b00022301314b0003314c00044b03010b2800054b00043f00ff0c23010720554c00043f00fa4c000520004c00074b00074b0002240e008e4b000720023720012b0e00274b00044b00014b0007330b2800022300424c00064b00014b0007330b28000223004c00041100244b00054b00014b0007330b2800022300424c00064b00014b0007330b28000223004c00054b000320002b0e00112e4b02054b00064b00072015230311000e2e4b02044b00064b0007201523034b00014b00073a450007473911ff684b00010720554c00043f00fa4c00052e4b02084b000123013920004c00064b00064b0002240e00f94b00014b0006330b280002200023014c00094b0009207f090e000c4b00093f0100314500091f394b000620023720012b0e00194b00044b0009424c00074b00094c00044b00054c00081100164b00054b0009424c00074b00094c00054b00044c00084b0007207f090e000c4b00073f0100314500071f394b000320002b0e00112e4b02054b00074b00062015230311000e2e4b02044b00074b0006201523030b280002200023014c000a4b000a207f090e000c4b000a3f01003145000a1f394b000a4b0008314c000b4b000b2000240e000c4b000b3f01000d45000b1f394b03010b2800054b000b23014b00014b00063a450006473911fefd2e4b02084b00012301394b0001074b000128000c4c000220004c00034b00034b0002240e00494b00034b00022001312b0e00061100391100284b00014b0003334c00044b00014b000320010d334b00014b00033a4b00044b00014b000320010d3a4b000320020d4500031f3911ffad4b0001074b000028000c2002093400084b0000200233081a0e00094b000020023311000220014c00034b00014c00044b00020600064b000428000c4c00022e4b01024b00044b000223024c00054b00052800064c00064b00052800074c00074b000528000b4c00084b000528000a4c00094b000925000d17002225000e17001c25000f17001625001017001025001117001f2500121700193911002a2e4b01064b00064b00074b000323034c00061100182e4b01074b00064b00074b000323034c00061100031100002e4b01014b000620003323014c00084b00074b0008312001314c000a4b02004b000a20010d29014c000b2500094b000b4b000a3a20004c000c200045000c1f394b000c4b000a240e00194b00064b000c20010d334b000b4b000c3a45000c473911ffdd4b000b0b28000825000923010749000003c33b014c000849000004283b024c010249000000001e014c0001490000005f1e024c0002490000016c1e014c0003490000019c1e034c000449000001c11e034c000549000001ec1e034c000649000002981e034c0007080700130180fe0180f70a80ad80a680af80bc808d80a180aa80ab808f80ba0180af0180b40c80a880bc80a180a3808d80a680af80bc808d80a180aa80ab0a80ad80a180a080b880ab80bc80ba808580ab80b70a80ad80a180a080b880ab80bc80ba808280ab80a00480a480a180a780a0000680a380ab80ba80a680a180aa0980a380ab80ba80a680a180aa808280ab80a00680a280ab80a080a980ba80a60280ff80ff0280fc80fc0980af80be80be80aa80ab80b880a780ad80ab0980b980ab80ac80aa80ab80b880a780ad80ab0680af80be80be809180b880fc0680b980ab80ac809180b880fc",{0:Array,1:String,get 2(){return th},set 2(e){th=e}},void 0);var Uh=sa.aTypedArrayConstructor;(0,sa.exportTypedArrayStaticMethod)("of",(function(){for(var e=0,t=arguments.length,n=new(Uh(this))(t);t>e;)n[e]=arguments[e++];return n}),Za);var Fh,ah,ih,Qh,lh=function(){function e(){var t,n;tn(this,e);var U=new Promise((function(e,U){t=e,n=U}));return U.resolve=function(e){t(e),U.state="fulfilled"},U.reject=function(e){n(e),U.state="rejected",U.isBreak="DESTROYED"===e},U.state="pending",U}return Un(e,[{key:"resolve",value:function(e){}},{key:"reject",value:function(e){}}]),e}();function rh(e){var t=e||{},n=t.url,U=t.method,F=void 0===U?"GET":U,a=t.type,i=void 0===a?"arraybuffer":a,Q=t.data,l=void 0===Q?{}:Q;return new Promise((function(e,t){var U=new window.XMLHttpRequest,a=F.toUpperCase(),Q=[];if(Object.keys(l).map((function(e){Q.push("k=".concat(l[e]))})),"GET"===a){var r="";r=n.indexOf("?")<0?"".concat(n,"?").concat(Q.join("&")):(null==Q?void 0:Q.length)>0?"".concat(n,"&").concat(Q.join("&")):n,U.open(a,r),i&&(U.responseType=i),U.send()}else{if("POST"!==a)throw new Error("xhr ".concat(a," is not supported"));U.open(a,n,!0),i&&(U.responseType=i),U.setRequestHeader("Content-Type","application/json"),U.send(JSON.stringify(l))}U.onload=function(){200===U.status||206===U.status?e(U):t(U)},U.onerror=function(){t(U)}}))}!function(e,t,n){function U(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var F,a=0,i=[],Q=[];for(F=0;F<4;++F)a+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var l=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=r+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(a^R[1]),d+=2*R[0]}Q.push(B)}t.p=null,function e(t,n,U,F,a){var l,r,d,o,s,B=-1,c=[],R=[0,null],u=null,V=[n];for(r=Math.min(n.length,U),d=0;d<r;++d)V.push(n[d]);V.p=F;for(var h=[];;)try{switch(i[t++]){case 45:c[++B]=!1;break;case 46:c[++B]=null;break;case 32:l=i[t++],c[++B]=l<<24>>24;break;case 73:l=((l=((l=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(l<<8)+i[t++];break;case 37:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=Q[l];break;case 8:c[++B]=void 0;break;case 44:l=(i[t]<<8)+i[t+1],t+=2,B=B-l+1,r=c.slice(B,B+l),c[B]=r;break;case 20:c[++B]={};break;case 22:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],d=c[B--],c[B][r]=d;break;case 75:for(r=i[t++],d=i[t++],o=V;r>0;--r)o=o.p;c[++B]=o[d];break;case 40:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],c[B]=c[B][r];break;case 51:r=c[B--],c[B]=c[B][r];break;case 76:for(r=i[t++],d=i[t++],o=V;r>0;--r)o=o.p;o[d]=c[B--];break;case 58:r=c[B--],d=c[B--],o=c[B--],d[r]=o;break;case 69:for(r=i[t++],d=i[t++],o=V,o=V;r>0;--r)o=o.p;c[++B]=o,c[++B]=d;break;case 49:r=c[B--],c[B]-=r;break;case 71:r=c[B--],o=(d=c[B--])[r]++,c[++B]=o;break;case 43:r=c[B--],c[B]=c[B]===r;break;case 36:r=c[B--],c[B]=c[B]<r;break;case 9:r=c[B--],c[B]=c[B]>r;break;case 50:c[B]=!c[B];break;case 52:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?--B:t+=l;break;case 6:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?t+=l:--B;break;case 31:r=c[B--],(d=c[B--])[r]=c[B];break;case 62:r=c[B--],c[B]=c[B]instanceof r;break;case 19:c[B]=void 0;break;case 64:c[B]=typeof c[B];break;case 59:l=i[t++],r=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[r,l,V],d._u=e,c[++B]=d;break;case 2:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(r=h[h.length-1])[1]=t+l;break;case 42:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(r=h[h.length-1])&&!r[1]?(r[0]=3,r.push(t)):h.push([1,0,t]),t+=l;break;case 65:if(d=(r=h.pop())[0],o=R[0],1===d)t=r[1];else if(0===d)if(0===o)t=r[1];else{if(1!==o)throw R[1];if(!u)return R[1];t=u[1],a=u[2],V=u[3],h=u[4],c[++B]=R[1],R=[0,null],u=u[0]}else t=r[2],r[0]=0,h.push(r);break;case 7:for(r=c[B--],d=null;o=h.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)R=[1,r],t=d[2],d[0]=0,h.push(d);else{if(!u)return r;t=u[1],a=u[2],V=u[3],h=u[4],c[++B]=r,R=[0,null],u=u[0]}break;case 35:B-=l=i[t++],d=c.slice(B+1,B+l+1),r=c[B--],o=c[B--],r._u===e?(r=r._v,u=[u,t,a,V,h],t=r[0],null==o&&(o=function(){return this}()),a=o,(V=[d].concat(d)).length=Math.min(r[1],l)+1,V.p=r[2],h=[]):(s=r.apply(o,d),c[++B]=s);break;case 41:for(l=i[t++],o=[void 0],s=l;s>0;--s)o[s]=c[B--];d=c[B--],s=new(r=Function.bind.apply(d,o)),c[++B]=s;break;case 17:t+=2+(l=(l=(i[t]<<8)+i[t+1])<<16>>16);break;case 14:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(r=c[B--])||(t+=l);break;case 57:--B;break;case 11:r=c[B],c[++B]=r;break;default:throw new Error("ioe")}}catch(Z){for(R=[0,null];(l=h.pop())&&!l[0];);if(!l){e:for(;u;){for(r=u[4];l=r.pop();)if(l[0])break e;u=u[0]}if(!u)throw Z;t=u[1],a=u[2],V=u[3],h=u[4],u=u[0]}1===(r=l[0])?(t=l[2],l[0]=0,h.push(l),c[++B]=Z):2===r?(t=l[2],l[0]=0,h.push(l),R=[3,Z]):(t=l[3],l[0]=2,h.push(l),c[++B]=Z)}}(l,[],0,t,n)}("504B01018643d82f000003522fd84087000003804b020929004c00042e4b020a142500001600012500021600034b000316000414250005160006250007160008144b00011600092c00000b28000a4b0002230116000b2c000116000c16000d23010b28000e490000006c3b0123010b28001949000000f33b002301394b0004074b00012e2b0600074b00012000132b0e00062000131100064b000128000f4c00024b0002402500102b0e000f4b03000b2800114b000223014c00024b00020e00214b00022800124b0101334b0102334c00034b01040b2800134b00032301391100234b03010b2800142500154b01012500164b01022500172305394b01040b28001823003908074b03010b2800142500154b01012500164b01022500192305394b01040b28001823003908074b020929004c00054b000106000325001a4c00014b00020e004d2e4b02082e4b02024b0002230123014c00064b00030e0025141416001b4c00074b00064b000728001b4b00033a4b00050b2800134b000723013911000d4b00050b2800134b000623013911005c4b00013400034b00033400034b00040e003d2e4b020b4b00014b00034b000423034c000825001c4b000825001d3a4b00080b28000e49000001df3b0123010b28001949000002153b0123013911000d4b00050b28001825001e2301394b0005072e4b03082e4b03024b0001230123014c0002141416001b4c00034b00024b000328001b4b01033a4b01050b2800134b000323013908074b01050b2800184b000123013908072a00044c0002410200744b02034025001f2b0e000625001f1100092e4b02074b020323012500202b34000b4b0203280021402500222b0e00444b02032800234b02040b280024200020612073206d2001200020002000230829014c00014b00014b02032800233e0e00134b02032800254b000129014b02032800253e07412d074b01012e2b0e00222a00044c0006410200184b020534000e4b02050b280026250027230132324c0101414b00002800284c00034b02064b00032001090e00094b0003200131110002200029014c000420014c00054b00054b0003240e00194b00004b0005334b00044b00052001313a450005473911ffdd4b01013400064b02012800293400254b02014500021f2800290b28002a4b000225002b4b00012c00020b28000a4b00042301230239080749000000003b034c010b49000001183b044c010c49000002243b004c010d49000002a43b014c010e2e4c00010807002c0480a480bd80a180a00480ba80b780be80ab04809e8081809d809a0680a380ab80ba80a680a180aa0380bb80bc80a20280fc80fc0880aa80bc80a3809180ba80b780be80ab0380fc80e080fe0780b880ab80bc80bd80a780a180a00380b880a780aa0680ad80a180a080ad80af80ba0480a580a780aa80bd0f80a280a780ad80ab80a080bd80ab809180bc80ab80bf80bb80ab80bd80ba0480aa80af80ba80af0480ba80a680ab80a00880bc80ab80bd80be80a180a080bd80ab0680bd80ba80bc80a780a080a90580be80af80bc80bd80ab0d80be80a280af80b7809180a280a780ad80ab80a080bd80ab80bd0780bc80ab80bd80a180a280b880ab0580ab80bc80bc80a180bc1b80a980ab80ba809d80ab80ad80bc80ab80ba808580ab80b7808c80b7808580a780aa80ee80ab80a080aa80e280ee80b880a780aa80e20580e280ee80a580a780aa0d80bc80ab80bd80be80a180a080bd80ab80ee80a080bb80a280a20680bc80ab80a480ab80ad80ba0580ad80af80ba80ad80a6000980ad80a280ab80af80bc808580ab80b780bd0e80bc80ab80bf80bb80ab80bd80ba809e80bc80a180a380a780bd80ab0280a780aa3580bd80a680a180bb80a280aa80ee80be80bc80a180b880a780aa80ab80ee80bd80ab80ad80bc80ab80ba808580ab80b780ee80a180bc80ee80b880a780aa80e280ee80a580ab80b7808780aa80ee80af80a080aa80ee80a280a780ad80ab80a080bd80ab809b80bc80a20980bb80a080aa80ab80a880a780a080ab80aa0680a180ac80a480ab80ad80ba0b80a780a080bd80ba80af80a080ba80a780af80ba80ab0880a880bb80a080ad80ba80a780a180a006808380a180aa80bb80a280ab0280a180a808808780a080bd80ba80af80a080ad80ab0780a980ab80ba808780ba80ab80a30c80bd80ab80ad80bc80ab80ba80a580ab80b780a280a180a90680a280ab80a080a980ba80a60380a280a180a90580af80be80be80a280b70d809580968089809d80ab80ad80bc80ab80ba80a580ab80b78093",{0:JSON,get 1(){return console},get 2(){return atob},3:WebAssembly,4:Uint8Array,get 5(){return localStorage},6:Array,get 7(){return qt},get 8(){return th},get 9(){return lh},get 10(){return rh},get 11(){return Fh},set 11(e){Fh=e},get 12(){return ah},set 12(e){ah=e},get 13(){return ih},set 13(e){ih=e},get 14(){return Qh},set 14(e){Qh=e}},void 0);var dh={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}}};function oh(e,t){return sh.apply(this,arguments)}function sh(){return(sh=en(At().mark((function e(t,n){var U,F,a,i,Q;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=n.iv,F=n.tagLength,a=n.data,i=null,t=NR.StringToArrayBuffer(t),a=NR.Base64ToHex(a,!0),e.prev=4,e.next=7,crypto.subtle.importKey("raw",t,"AES-GCM",!0,["encrypt","decrypt"]);case 7:Q=e.sent,e.next=13;break;case 10:throw e.prev=10,e.t0=e.catch(4),"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(U),tagLength:F},Q,a);case 16:i=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"Wrong Password.";case 25:if("InvalidAccessError"!==String(e.t1)){e.next=29;break}throw"Invalid Key";case 29:throw e.t1;case 30:return e.abrupt("return",new TextDecoder("utf-8").decode(i));case 31:case"end":return e.stop()}}),e,null,[[4,10],[13,19]])})))).apply(this,arguments)}function Bh(e,t){return ch.apply(this,arguments)}function ch(){return(ch=en(At().mark((function e(t,n){var U,F,a,i,Q,l,r;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=n.iv,F=n.tagLength,a=n.data,i=btoa(NR.ArrayBufferToString(U)),Q=dh.codec.base64.toBits(i),l=dh.codec.utf8String.toBits(t),r=new dh.cipher.aes(l),e.abrupt("return",dh.codec.utf8String.fromBits(dh.mode.gcm.decrypt(r,dh.codec.base64.toBits(a),Q,[],F)));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}dh.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var t,n,U,F,a,i=this._tables[0][4],Q=this._tables[1],l=e.length,r=1;if(4!==l&&6!==l&&8!==l)throw new dh.exception.invalid("invalid aes key size");for(this._key=[F=e.slice(0),a=[]],t=l;t<4*l+28;t++)U=F[t-1],(t%l==0||8===l&&t%l==4)&&(U=i[U>>>24]<<24^i[U>>16&255]<<16^i[U>>8&255]<<8^i[255&U],t%l==0&&(U=U<<8^U>>>24^r<<24,r=r<<1^283*(r>>7))),F[t]=F[t-l]^U;for(n=0;t;n++,t--)U=F[3&n?t:t-4],a[n]=t<=4||n<4?U:Q[0][i[U>>>24]]^Q[1][i[U>>16&255]]^Q[2][i[U>>8&255]]^Q[3][i[255&U]]},dh.cipher.aes.prototype={encrypt:function(e){return this._crypt(e,0)},decrypt:function(e){return this._crypt(e,1)},_tables:[[[],[],[],[],[]],[[],[],[],[],[]]],_precompute:function(){var e,t,n,U,F,a,i,Q,l=this._tables[0],r=this._tables[1],d=l[4],o=r[4],s=[],B=[];for(e=0;e<256;e++)B[(s[e]=e<<1^283*(e>>7))^e]=e;for(t=n=0;!d[t];t^=U||1,n=B[n]||1)for(a=(a=n^n<<1^n<<2^n<<3^n<<4)>>8^255&a^99,d[t]=a,o[a]=t,Q=16843009*s[F=s[U=s[t]]]^65537*F^257*U^16843008*t,i=257*s[a]^16843008*a,e=0;e<4;e++)l[e][t]=i=i<<24^i>>>8,r[e][a]=Q=Q<<24^Q>>>8;for(e=0;e<5;e++)l[e]=l[e].slice(0),r[e]=r[e].slice(0)},_crypt:function(e,t){if(4!==e.length)throw new dh.exception.invalid("invalid aes block size");var n,U,F,a,i=this._key[t],Q=e[0]^i[0],l=e[t?3:1]^i[1],r=e[2]^i[2],d=e[t?1:3]^i[3],o=i.length/4-2,s=4,B=[0,0,0,0],c=this._tables[t],R=c[0],u=c[1],V=c[2],h=c[3],Z=c[4];for(a=0;a<o;a++)n=R[Q>>>24]^u[l>>16&255]^V[r>>8&255]^h[255&d]^i[s],U=R[l>>>24]^u[r>>16&255]^V[d>>8&255]^h[255&Q]^i[s+1],F=R[r>>>24]^u[d>>16&255]^V[Q>>8&255]^h[255&l]^i[s+2],d=R[d>>>24]^u[Q>>16&255]^V[l>>8&255]^h[255&r]^i[s+3],s+=4,Q=n,l=U,r=F;for(a=0;a<4;a++)B[t?3&-a:a]=Z[Q>>>24]<<24^Z[l>>16&255]<<16^Z[r>>8&255]<<8^Z[255&d]^i[s++],n=Q,Q=l,l=r,r=d,d=n;return B}},dh.bitArray={bitSlice:function(e,t,n){return e=dh.bitArray._shiftRight(e.slice(t/32),32-(31&t)).slice(1),void 0===n?e:dh.bitArray.clamp(e,n-t)},extract:function(e,t,n){var U=Math.floor(-t-n&31);return(-32&(t+n-1^t)?e[t/32|0]<<32-U^e[t/32+1|0]>>>U:e[t/32|0]>>>U)&(1<<n)-1},concat:function(e,t){if(0===e.length||0===t.length)return e.concat(t);var n=e[e.length-1],U=dh.bitArray.getPartial(n);return 32===U?e.concat(t):dh.bitArray._shiftRight(t,U,0|n,e.slice(0,e.length-1))},bitLength:function(e){var t,n=e.length;return 0===n?0:(t=e[n-1],32*(n-1)+dh.bitArray.getPartial(t))},clamp:function(e,t){if(32*e.length<t)return e;var n=(e=e.slice(0,Math.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=dh.bitArray.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:function(e,t,n){return 32===e?t:(n?0|t:t<<32-e)+1099511627776*e},getPartial:function(e){return Math.round(e/1099511627776)||32},equal:function(e,t){if(dh.bitArray.bitLength(e)!==dh.bitArray.bitLength(t))return!1;var n,U=0;for(n=0;n<e.length;n++)U|=e[n]^t[n];return 0===U},_shiftRight:function(e,t,n,U){var F,a,i;for(void 0===U&&(U=[]);t>=32;t-=32)U.push(n),n=0;if(0===t)return U.concat(e);for(F=0;F<e.length;F++)U.push(n|e[F]>>>t),n=e[F]<<32-t;return a=e.length?e[e.length-1]:0,i=dh.bitArray.getPartial(a),U.push(dh.bitArray.partial(t+i&31,t+i>32?n:U.pop(),1)),U},_xor4:function(e,t){return[e[0]^t[0],e[1]^t[1],e[2]^t[2],e[3]^t[3]]},byteswapM:function(e){var t,n;for(t=0;t<e.length;++t)n=e[t],e[t]=n>>>24|n>>>8&65280|(65280&n)<<8|n<<24;return e}},dh.codec.utf8String={fromBits:function(e){var t,n,U="",F=dh.bitArray.bitLength(e);for(t=0;t<F/8;t++)0==(3&t)&&(n=e[t/4]),U+=String.fromCharCode(n>>>8>>>8>>>8),n<<=8;return decodeURIComponent(escape(U))},toBits:function(e){e=unescape(encodeURIComponent(e));var t,n=[],U=0;for(t=0;t<e.length;t++)U=U<<8|e.charCodeAt(t),3==(3&t)&&(n.push(U),U=0);return 3&t&&n.push(dh.bitArray.partial(8*(3&t),U)),n}},dh.codec.base64={_chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(e,t,n){var U,F="",a=0,i=dh.codec.base64._chars,Q=0,l=dh.bitArray.bitLength(e);for(n&&(i=i.substr(0,62)+"-_"),U=0;6*F.length<l;)F+=i.charAt((Q^e[U]>>>a)>>>26),a<6?(Q=e[U]<<6-a,a+=26,U++):(Q<<=6,a-=6);for(;3&F.length&&!t;)F+="=";return F},toBits:function(e,t){e=e.replace(/\s|=/g,"");var n,U,F=[],a=0,i=dh.codec.base64._chars,Q=0;for(t&&(i=i.substr(0,62)+"-_"),n=0;n<e.length;n++){if((U=i.indexOf(e.charAt(n)))<0)throw new dh.exception.invalid("this isn't base64!");a>26?(a-=26,F.push(Q^U>>>a),Q=U<<32-a):Q^=U<<32-(a+=6)}return 56&a&&F.push(dh.bitArray.partial(56&a,Q,1)),F}},dh.codec.base64url={fromBits:function(e){return dh.codec.base64.fromBits(e,1,1)},toBits:function(e){return dh.codec.base64.toBits(e,1)}},dh.mode.gcm={name:"gcm",encrypt:function(e,t,n,U,F){var a,i=t.slice(0),Q=dh.bitArray;return F=F||128,U=U||[],a=dh.mode.gcm._ctrMode(!0,e,i,U,n,F),Q.concat(a.data,a.tag)},decrypt:function(e,t,n,U,F){var a,i,Q=t.slice(0),l=dh.bitArray,r=l.bitLength(Q);if(U=U||[],(F=F||128)<=r?(i=l.bitSlice(Q,r-F),Q=l.bitSlice(Q,0,r-F)):(i=Q,Q=[]),a=dh.mode.gcm._ctrMode(!1,e,Q,U,n,F),!l.equal(a.tag,i))throw new dh.exception.corrupt("gcm: tag doesn't match");return a.data},_galoisMultiply:function(e,t){var n,U,F,a,i,Q=dh.bitArray._xor4;for(F=[0,0,0,0],a=t.slice(0),n=0;n<128;n++){for(0!=(e[Math.floor(n/32)]&1<<31-n%32)&&(F=Q(F,a)),i=0!=(1&a[3]),U=3;U>0;U--)a[U]=a[U]>>>1|(1&a[U-1])<<31;a[0]=a[0]>>>1,i&&(a[0]=a[0]^225<<24)}return F},_ghash:function(e,t,n){var U,F,a=n.length;for(U=t.slice(0),F=0;F<a;F+=4)U[0]^=4294967295&n[F],U[1]^=4294967295&n[F+1],U[2]^=4294967295&n[F+2],U[3]^=4294967295&n[F+3],U=dh.mode.gcm._galoisMultiply(U,e);return U},_ctrMode:function(e,t,n,U,F,a){var i,Q,l,r,d,o,s,B,c,R,u,V,h=dh.bitArray;for(c=n.length,R=h.bitLength(n),u=h.bitLength(U),V=h.bitLength(F),i=t.encrypt([0,0,0,0]),96===V?(Q=F.slice(0),Q=h.concat(Q,[1])):(Q=dh.mode.gcm._ghash(i,[0,0,0,0],F),Q=dh.mode.gcm._ghash(i,Q,[0,0,Math.floor(V/4294967296),4294967295&V])),l=dh.mode.gcm._ghash(i,[0,0,0,0],U),o=Q.slice(0),s=l.slice(0),e||(s=dh.mode.gcm._ghash(i,l,n)),d=0;d<c;d+=4)o[3]++,r=t.encrypt(o),n[d]^=r[0],n[d+1]^=r[1],n[d+2]^=r[2],n[d+3]^=r[3];return n=h.clamp(n,R),e&&(s=dh.mode.gcm._ghash(i,l,n)),B=[Math.floor(u/4294967296),4294967295&u,Math.floor(R/4294967296),4294967295&R],s=dh.mode.gcm._ghash(i,s,B),r=t.encrypt(Q),s[0]^=r[0],s[1]^=r[1],s[2]^=r[2],s[3]^=r[3],{tag:h.bitSlice(s,0,a),data:n}}};var Rh,uh={webCryptoDecrypt:oh,decrypt:(Rh=en(At().mark((function e(t,n){var U,F;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof n&&(n=JSON.parse(n)),!n.enableSoftwareAES&&null!==(U=crypto)&&void 0!==U&&U.subtle){e.next=7;break}return e.next=4,Bh(t,n);case 4:F=e.sent,e.next=18;break;case 7:return e.prev=7,e.next=10,oh(t,n);case 10:F=e.sent,e.next=18;break;case 13:return e.prev=13,e.t0=e.catch(7),e.next=17,Bh(t,n);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,t){return Rh.apply(this,arguments)})};function Vh(e,t,n){function U(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var F,a=0,i=[],Q=[];for(F=0;F<4;++F)a+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var l=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=r+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(a^R[1]),d+=2*R[0]}Q.push(B)}return t.p=null,function e(t,n,U,F,a){var l,r,d,o,s,B=-1,c=[],R=null,u=[n];for(r=Math.min(n.length,U),d=0;d<r;++d)u.push(n[d]);u.p=F;for(var V=[];;)try{switch(i[t++]){case 28:c[++B]=!0;break;case 45:c[++B]=!1;break;case 46:c[++B]=null;break;case 32:l=i[t++],c[++B]=l<<24>>24;break;case 73:l=((l=((l=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(l<<8)+i[t++];break;case 37:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=Q[l];break;case 8:c[++B]=void 0;break;case 15:c[++B]=a;break;case 44:l=(i[t]<<8)+i[t+1],t+=2,B=B-l+1,r=c.slice(B,B+l),c[B]=r;break;case 20:c[++B]={};break;case 22:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],d=c[B--],c[B][r]=d;break;case 75:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;c[++B]=o[d];break;case 40:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],c[B]=c[B][r];break;case 51:r=c[B--],c[B]=c[B][r];break;case 76:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;o[d]=c[B--];break;case 0:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],d=c[B--],o=c[B--],d[r]=o;break;case 58:r=c[B--],d=c[B--],o=c[B--],d[r]=o;break;case 69:for(r=i[t++],d=i[t++],o=u,o=u;r>0;--r)o=o.p;c[++B]=o,c[++B]=d;break;case 13:r=c[B--],c[B]+=r;break;case 72:c[B]=-c[B];break;case 43:r=c[B--],c[B]=c[B]===r;break;case 9:r=c[B--],c[B]=c[B]>r;break;case 50:c[B]=!c[B];break;case 52:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?--B:t+=l;break;case 6:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,c[B]?t+=l:--B;break;case 31:r=c[B--],(d=c[B--])[r]=c[B];break;case 19:c[B]=void 0;break;case 64:c[B]=typeof c[B];break;case 59:l=i[t++],r=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[r,l,u],d._u=e,c[++B]=d;break;case 30:l=i[t++],r=c[B--],(o=[d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=u,d._v=[r,l,o],d._u=e,c[++B]=d;break;case 5:throw r=c[B--];case 7:for(r=c[B--],d=null;o=V.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)t=d[2],d[0]=0,V.push(d);else{if(!R)return r;t=R[1],a=R[2],u=R[3],V=R[4],c[++B]=r,R=R[0]}break;case 35:B-=l=i[t++],d=c.slice(B+1,B+l+1),r=c[B--],o=c[B--],r._u===e?(r=r._v,R=[R,t,a,u,V],t=r[0],null==o&&(o=function(){return this}()),a=o,(u=[d].concat(d)).length=Math.min(r[1],l)+1,u.p=r[2],V=[]):(s=r.apply(o,d),c[++B]=s);break;case 41:for(l=i[t++],o=[void 0],s=l;s>0;--s)o[s]=c[B--];d=c[B--],s=new(r=Function.bind.apply(d,o)),c[++B]=s;break;case 17:t+=2+(l=(l=(i[t]<<8)+i[t+1])<<16>>16);break;case 14:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(r=c[B--])||(t+=l);break;case 23:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,r=c[B--],c[B]===r&&(--B,t+=l);break;case 57:--B;break;case 11:r=c[B],c[++B]=r;break;default:throw new Error("ioe")}}catch(h){for(;(l=V.pop())&&!l[0];);if(!l){e:for(;R;){for(r=R[4];l=r.pop();)if(l[0])break e;R=R[0]}if(!R)throw h;t=R[1],a=R[2],u=R[3],V=R[4],R=R[0]}1===(r=l[0])?(t=l[2],l[0]=0,V.push(l),c[++B]=h):2===r?(t=l[2],l[0]=0,V.push(l)):(t=l[3],l[0]=2,V.push(l),c[++B]=h)}}(l,[],0,t,n)}e.TRANSFORM_IV=void 0,e.transformUnionKey=void 0,function(e,t,n){function U(e,t){var n=parseInt(e.slice(t,t+2),16);return n>>>7==0?[1,n]:n>>>6==2?(n=(63&n)<<8,[2,n+=parseInt(e.slice(t+2,t+4),16)]):(n=(63&n)<<16,[3,n+=parseInt(e.slice(t+2,t+6),16)])}var F,a=0,i=[],Q=[];for(F=0;F<4;++F)a+=(3&parseInt(e.slice(8+2*F,10+2*F),16))<<2*F;var l=parseInt(e.slice(16,24),16),r=2*parseInt(e.slice(32,40),16);for(F=40;F<r+40;F+=2)i.push(parseInt(e.slice(F,F+2),16));var d=r+40,o=parseInt(e.slice(d,d+4),16);for(d+=4,F=0;F<o;++F){var s=U(e,d);d+=2*s[0];for(var B="",c=0;c<s[1];++c){var R=U(e,d);B+=String.fromCharCode(a^R[1]),d+=2*R[0]}Q.push(B)}t.p=null,function e(t,n,U,F,a){var l,r,d,o,s,B=-1,c=[],R=null,u=[n];for(r=Math.min(n.length,U),d=0;d<r;++d)u.push(n[d]);u.p=F;for(var V=[];;)try{switch(i[t++]){case 46:c[++B]=null;break;case 32:l=i[t++],c[++B]=l<<24>>24;break;case 63:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=l<<16>>16;break;case 73:l=((l=((l=i[t++])<<8)+i[t++])<<8)+i[t++],c[++B]=(l<<8)+i[t++];break;case 37:l=(i[t]<<8)+i[t+1],t+=2,c[++B]=Q[l];break;case 8:c[++B]=void 0;break;case 15:c[++B]=a;break;case 44:l=(i[t]<<8)+i[t+1],t+=2,B=B-l+1,r=c.slice(B,B+l),c[B]=r;break;case 20:c[++B]={};break;case 22:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],d=c[B--],c[B][r]=d;break;case 75:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;c[++B]=o[d];break;case 40:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],c[B]=c[B][r];break;case 76:for(r=i[t++],d=i[t++],o=u;r>0;--r)o=o.p;o[d]=c[B--];break;case 0:l=(i[t]<<8)+i[t+1],t+=2,r=Q[l],d=c[B--],o=c[B--],d[r]=o;break;case 31:r=c[B--],(d=c[B--])[r]=c[B];break;case 59:l=i[t++],r=c[B--],(d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)})._v=[r,l,u],d._u=e,c[++B]=d;break;case 30:l=i[t++],r=c[B--],(o=[d=function e(){var t=e._v;return(0,e._u)(t[0],arguments,t[1],t[2],this)}]).p=u,d._v=[r,l,o],d._u=e,c[++B]=d;break;case 7:for(r=c[B--],d=null;o=V.pop();)if(2===o[0]||3===o[0]){d=o;break}if(d)t=d[2],d[0]=0,V.push(d);else{if(!R)return r;t=R[1],a=R[2],u=R[3],V=R[4],c[++B]=r,R=R[0]}break;case 35:B-=l=i[t++],d=c.slice(B+1,B+l+1),r=c[B--],o=c[B--],r._u===e?(r=r._v,R=[R,t,a,u,V],t=r[0],null==o&&(o=function(){return this}()),a=o,(u=[d].concat(d)).length=Math.min(r[1],l)+1,u.p=r[2],V=[]):(s=r.apply(o,d),c[++B]=s);break;case 41:for(l=i[t++],o=[void 0],s=l;s>0;--s)o[s]=c[B--];d=c[B--],s=new(r=Function.bind.apply(d,o)),c[++B]=s;break;case 17:t+=2+(l=(l=(i[t]<<8)+i[t+1])<<16>>16);break;case 14:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,(r=c[B--])||(t+=l);break;case 23:l=(l=(i[t]<<8)+i[t+1])<<16>>16,t+=2,r=c[B--],c[B]===r&&(--B,t+=l);break;case 57:--B;break;case 11:r=c[B],c[++B]=r;break;default:throw new Error("ioe")}}catch(h){for(;(l=V.pop())&&!l[0];);if(!l){e:for(;R;){for(r=R[4];l=r.pop();)if(l[0])break e;R=R[0]}if(!R)throw h;t=R[1],a=R[2],u=R[3],V=R[4],R=R[0]}1===(r=l[0])?(t=l[2],l[0]=0,V.push(l),c[++B]=h):2===r?(t=l[2],l[0]=0,V.push(l)):(t=l[3],l[0]=2,V.push(l),c[++B]=h)}}(l,[],0,t,n)}("504B01018643d82f000000d92fd840870000011a4b01010b2800010f4b00002302072e4b02022e4b020123000b28000249000000381e02230123014c01014b01010b2800010f4b00002302072e4b040123000b280003490000004f1e014b010023020720010e00834b00012800044b00012500051f20001700142003170046200517005a2500061700543911005a4b06040b2800074b020223014c020320034b00010000044b06030b2800084b0203144b02011600094b060516000a3f008016000b2302074b000128000c4c02044b00010b28000d25000e4b02042302074b00010b28000f23000711ff78080749000000003b024c0106490000000e3b004c00014b0100205b20682045204b3f009c3f00ab3f00ee20473f00ca20043f00f420052c000c29012800004c0105080700100680ac80bb80a880a880ab80bc0580af80be80be80a280b70480a380af80bc80a50480b980bc80af80be0480a080ab80b680ba0480be80bc80ab80b80380ab80a080aa0480a680af80bd80a60780aa80ab80ad80bc80b780be80ba0480aa80af80ba80af0280a780b80980ba80af80a9808280ab80a080a980ba80a60480bd80ab80a080ba0680af80ac80bc80bb80be80ba0680bc80ab80ba80bb80bc80a00480bd80ba80a180be",{0:Uint8Array,get 1(){return At},get 2(){return en},get 3(){return uh},get 4(){return nh},get 5(){return e.TRANSFORM_IV},set 5(t){e.TRANSFORM_IV=t},get 6(){return e.transformUnionKey},set 6(t){e.transformUnionKey=t}},void 0);var hh="volcvui",Zh=new Map,Sh=function(t){an(F,lB);var n,U=dn(F);function F(t){var n;return tn(this,F),(n=U.call(this)).EMEError=function(t){n.emit(e.EVENT_EME.ERROR,t)},n.encryptHandle=function(){var t;null===(t=n.eme)||void 0===t||t.emit(e.EVENT_EME.ENCRYPTED)},n.config=F.defaultConfig,n.updateConfig(t),n.config.isEncrypt=!!(n.config.kid||n.config.drm||n.config.secretKey||n.config.drmKeyToken||n.config.keyValue||n.config.drm),n.on(e.EVENT_EME.ENCRYPTED,n.encryptHandle),n}return Un(F,[{key:"updateConfig",value:function(e){var t=this;Object.keys(e).map((function(n){void 0!==e[n]&&null!==e[n]&&void 0!==t.config[n]&&(t.config[n]=e[n])})),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,t,n){var U=this,F=this.config,a=e||F.kid,i=t||F.playDomain;i.indexOf("//")<0&&(i="//".concat(i));var Q=n||F.drmKeyToken,l=NR.isBase64(Q)?window.atob(Q):Q,r="".concat(i,"?").concat(l,"&PlayAuthIds=").concat(a,"&ssl=true");l.indexOf("DrmType=")<0&&(r+="&DrmType=".concat(F.useUnionInfoDRM?"webdevice":"22")),this.log("getSecretKeyByToken start, vid,",F.vid,r);var d=Promise.withResolvers(),o=d.promise,s=d.resolve,B=d.reject;return rh({type:"json",method:"GET",url:r}).then((function(e){var t,n,a=e.response;if("string"==typeof a&&(a=JSON.parse(a)),a&&null!==(t=a)&&void 0!==t&&t.Result&&(null===(n=a.Result.PlayAuthInfoList)||void 0===n?void 0:n.length)>0){var i=a.Result.PlayAuthInfoList[0].PlayAuthContent;U.log("getSecretKeyByToken end, vid,",F.vid,",res,",JSON.stringify(a)),s(i)}})).catch((function(e){B(e)})),o}},{key:"getLicense",value:function t(){return Vh("504B01018643d82f000002f42fd840870000036e2e4b030323000b28000a49000000221e014b01002e200520202c00022c000123040720010e02cb4b000128000b4b000125000c1f20001700462003170067200a170100200b17010420131701cd20161701dc20171701e020191701e6201a1701e7202017022c202517025e2027170264202917027025000d17026a391102701425000e16000f2d1600104c020120034b000100000b4b04010b2800114b02014b04092302074b04012800004502021f394b02022800124502031f394b02022800134502041f394b04040600034b02030600034b02040600094b0401280000280014320e000b20274b000100000b1101ff20054b000100000c4b04012800002800140600034b02044c02054b02030600094b04043400034b0405320e000b200b4b000100000b1101c7200a4b000100000b2e4b05044b04034b02034b04044b04052304074b00012800154c02054b02053400064b02052800160e000d4b02052800164b0404331100034b02054c02064b04012800004502081f394b02082800174502091f394b020828001845020a1f394b020828001945020b1f394b05050b28001a4b020923014c020c4b02063234000d4b04012800002800134502061f394b020a3400184b05060b28001b4b020c28001c4b020c28001d4b020b2303320e000b20194b000100000b1101044b05074025001e2b320e000b20164b000100000b1100ed20134b000100000b2e4b05074b02064b020c28001d2302074b00012800154c020720174b000100000b1100c14b050825001f290105201a4b000100000b1100ad4b02064c02074b02053400064b02052800160e00164b02074b02052800164b04043a4b02054b02010000144b02074b02010000131c4b02010000102e4b04084b020123013920254b000100000b11005d20204b000100000c4b00010b25002033200523014b00010000212d4b02010000104b00012800214b02010000222e4b04094b020123013920294b000100000b11001b1c4b02010000102e4b04084b02012301394b00010b28002323000711fd3008070f4c00010f2800004c00024b00022800014c00034b00022800024c00044b00022800034c00054b01010b28000423004c00064b00062800054c00074b00062800064c00084b00062800074c00094b01010b28000623000b2800082e4b01022e4b010323000b28000949000000001e00230123012301394b00070700240680ad80a180a080a880a780a90380b880a780aa0380a580a780aa0d80a980ab80ba808280a780ad80ab80a080bd80ab809b80bc80a20d80b980a780ba80a6809c80ab80bd80a180a280b880ab80bc80bd0780be80bc80a180a380a780bd80ab0780bc80ab80bd80a180a280b880ab0680bc80ab80a480ab80ad80ba0480ba80a680ab80a00480a380af80bc80a50480b980bc80af80be0480a080ab80b680ba0480be80bc80ab80b80380ab80a080aa0a80a980ab80ba808280a780ad80ab80a080bd80ab0680a380ab80ba80a680a180aa0780bd80bb80ad80ad80ab80bd80bd17809180ba80bc80b7808980ab80ba809d80ab80ad80bc80ab80ba808580ab80b7808c80b7809a80a180a580ab80a00980bd80ab80ad80bc80ab80ba808580ab80b70880a580ab80b7809880af80a280bb80ab0380aa80bc80a30480bd80ab80a080ba0980ad80a280ab80af80bc808580ab80b780bd0980bd80ab80bd80bd80a780a180a0808780aa0f80bb80bd80ab809b80a080a780a180a0808780a080a880a1808a809c80831780a580ab80b7809a80a180a580ab80a0808b80b680be80a780bc80ab80aa808a80bb80bc80af80ba80a780a180a00380a980ab80ba1580ad80a680ab80ad80a5809b80a080a780a180a0808780a080a880a1808b80b680be80a780bc80ab80aa0780bb80a080a780a180a08087808a0980bb80a080a780a180a0808780a080a880a10880a880bb80a080ad80ba80a780a180a049809a80a680ab80ee80ec80ba80bc80af80a080bd80a880a180bc80a3809b80a080a780a180a0808580ab80b780ec80ee80bd80a680a180bb80a280aa80ee80ac80ab80ee80be80bc80a180b880a780aa80ab80aa80ee80a780a080ee80ad80a180a080a880a780a980bb80bc80af80ba80a780a180a080ee80af80bd80ee80af80ee80a880bb80a080ad80ba80a780a180a00580ad80af80ba80ad80a60280ba80fe0580ab80bc80bc80a180bc0480bd80ba80a180be",{get 0(){return t},1:Promise,get 2(){return en},get 3(){return At},get 4(){return ah},get 5(){return Zh},get 6(){return NR},get 7(){return void 0!==e.transformUnionKey?e.transformUnionKey:void 0},8:Error,9:arguments},this)}},{key:"_tryGetSecretKeyByToken",value:(n=en(At().mark((function e(t,n){var U,F,a,i;return At().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(U=this.config,F=U.kid,a=U.drmKeyToken,i=U.playDomain,!(F&&a&&i)){e.next=13;break}return e.prev=2,e.next=5,this.getSecretKeyByToken(F,i,a);case 5:this.config.secretKey=e.sent,e.next=13;break;case 8:e.prev=8,e.t0=e.catch(2),t.success=!1,t.error=e.t0,n(t);case 13:case"end":return e.stop()}}),e,this,[[2,8]])}))),function(e,t){return n.apply(this,arguments)})},{key:"updateKid",value:function e(t){return Vh("504B01018643d82f000000002fd84087000000170f28000034000d0f2800000b2800014b0102230139080700020380ab80a380ab0980bb80be80aa80af80ba80ab808580a780aa",{get 0(){return e},1:arguments,2:t},this)}},{key:"getLicenseSecret",value:function t(){return Vh("504B01018643d82f0000029f2fd84087000003f44b01010b28000b4b020228000a4b000123023908074b01010b28000b4b020228000c4b000123023908072e4b030723000b28001d490000004c1e014b01002e200920172c00022c000123040720010e024c4b000128001e4b000125001f1f20001700322003170053200717008c200817009020101701532011170157201217017020171701d3201c1702052500201701ff39110205142500211600222d1600234c020120034b000100001e4b04010b2800244b02014b040e2302074b04012800002800254c02024b0202323400044b040732320e000b20084b000100001e1101b920074b000100001e2e4b05084b04034b04044b04052303074b00012800264c02024b04060e00284b02023400132e4b05092e4b050a4b0202230123014502021f394b04073400074b04074502021f3920094b000100001f4b04012800004502031f394b02032800274502041f394b02032800284502051f394b02032800294502061f394b050b0b28002a4b020423014c02074b02053400184b050c0b28002b4b020728002c4b020728002d4b02062303320e000b20124b000100001e1100fa4b0406320e000b20114b000100001e1100e820104b000100001e2e4b050d4b02024b020728002d2302074b00012800264c02024b050c0b28002e4b050e0b28002f4b020728002d230123014b02010000304b04060e003d14141600314c02084b04040600034b050f4c02094b02024b02082800314b02093a4b04012800060b2800164b02082301392000134b02010000251100094b02024b02010000251c4b02010000232e4b040d4b0201230139201c4b000100001e11004120174b000100001f4b00010b25003233200923014b00010000332d4b02010000234b00012800334b02010000342e4b040e4b02012301394b00010b28003523000711fdaf08070f4c00010f2800004c00024b00022800014c00034b00022800024c00044b00022800034c00054b00022800044c00064b00022800054c00070f2800002800040e00bf4b010129000f0000060f2800060b2800074b01022800080f2800092302390f2800060b2800074b010228000a49000000003b012302390f2800060b2800074b010228000c49000000153b012302390f28000028000d4c00084b00043400034b00080e005b4b010328000e28000f0b28001023000b2800112500122301200148090e00062500131100032500144c00092e4b0104144b0009144b00084b00040d16001523034c000a0f2800060b2800164b000a2301394b01050b2800172300074b01050b28001823004c000b4b000b2800194c000c4b000b2800174c000d4b000b28001a4c000e4b01050b28001723000b28001b2e4b01062e4b010723000b28001c490000002a1e00230123012301394b000c0700360680ad80a180a080a880a780a90380b880a780aa0380a580a780aa0d80a980ab80ba808280a780ad80ab80a080bd80ab809b80bc80a20680bb80bd80ab808b8083808b0880a580ab80b7809880af80a280bb80ab0380ab80a380ab0280a180a005808b809c809c8081809c08808b8083808b808b80bc80bc80a180bc13808d808a8083809180828087808d808b8080809d808b8091809d809b808d808d808b809d809d0480ab80a380a780ba11808d808a8083809180828087808d808b8080809d808b8091808b809c809c8081809c1380a780a080ba80ab80bc80ba80bc80bb80bd80ba809d80ab80bc80b880ab80bc809b809c80820980a080af80b880a780a980af80ba80a180bc0980bb80bd80ab80bc808f80a980ab80a080ba1180ba80a1808280a180ad80af80a280ab808280a180b980ab80bc808d80af80bd80ab0780a780a080aa80ab80b6808180a80680ad80a680bc80a180a380ab0880b980a780aa80ab80b880a780a080ab0980be80a280af80b780bc80ab80af80aa80b70980bd80ab80bc80b880ab80bc809b809c80820980bb80be80aa80af80ba80ab808a80bc80a30780bc80ab80bd80a180a280b880ab0d80b980a780ba80a6809c80ab80bd80a180a280b880ab80bc80bd0780be80bc80a180a380a780bd80ab0680bc80ab80a480ab80ad80ba0480ba80a680ab80a00480a380af80bc80a50480b980bc80af80be0480a080ab80b680ba0480be80bc80ab80b80380ab80a080aa0a80a980ab80ba808280a780ad80ab80a080bd80ab0680a380ab80ba80a680a180aa0780bd80bb80ad80ad80ab80bd80bd17809180ba80bc80b7808980ab80ba809d80ab80ad80bc80ab80ba808580ab80b7808c80b7809a80a180a580ab80a00980bd80ab80ad80bc80ab80ba808580ab80b70480bd80ab80a080ba0980bd80ab80bd80bd80a780a180a0808780aa0f80bb80bd80ab809b80a080a780a180a0808780a080a880a1808a809c80831780a580ab80b7809a80a180a580ab80a0808b80b680be80a780bc80ab80aa808a80bb80bc80af80ba80a780a180a00380a980ab80ba1580ad80a680ab80ad80a5809b80a080a780a180a0808780a080a880a1808b80b680be80a780bc80ab80aa0780bb80a080a780a180a08087808a0980bb80a080a780a180a0808780a080a880a113809d80ba80bc80a780a080a9809a80a1808f80bc80bc80af80b7808c80bb80a880a880ab80bc0480a680af80bd80a60a80aa80ab80ad80bc80b780be80ba808580ab80b70980ad80a280ab80af80bc808580ab80b780bd0580ad80af80ba80ad80a60280ba80fe0580ab80bc80bc80a180bc0480bd80ba80a180be",{get 0(){return t},get 1(){return CR},get 2(){return e.EVENT_EME},get 3(){return window},get 4(){return Fn},5:Promise,get 6(){return en},get 7(){return At},get 8(){return Fh},get 9(){return th},get 10(){return atob},get 11(){return Zh},get 12(){return NR},get 13(){return e.transformUnionKey},get 14(){return nh},get 15(){return bR},16:arguments},this)}},{key:"destroy",value:function(){this.removeAllListeners(),this.eme&&(this.eme.destroy(),this.eme=null)}},{key:"log",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),U=1;U<t;U++)n[U-1]=arguments[U];Qh.apply(void 0,[e].concat(n))}},{key:"getSecretKey",value:function(){var e=this.config,t=e.vid,n=e.kid,U=e.getLicenseUrl,F=e.drmKeyToken,a=e.playDomain,i=e.secretKey;return U&&n?Fh(t,n,U):F&&n&&a?this.getSecretKeyByToken(n,a,F):i||(console.error("[DRM]DRM,getSecretKey args is invalid"),null)}},{key:"getKeyValue",value:function e(){return Vh("504B01018643d82f000000002fd840870000003e0f2800004c00014b00012800014c00024b00012800024c00034b00012800034c00044b00012800044c00052e4b01014b00024b00054b00034b000423040700050680ad80a180a080a880a780a90380b880a780aa0380a580a780aa0d80a980ab80ba808280a780ad80ab80a080bd80ab809b80bc80a20980bd80ab80ad80bc80ab80ba808580ab80b7",{get 0(){return e},get 1(){return ah},2:arguments},this)}}],[{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:hh,useEME:!0,intertrustServerURL:null}}},{key:"updateUnionInfo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:hh,n=NR.getUnionInfo(e);return Zh.set(t,{unionID:e,unionInfo:n}),n}}]),F}(),ph=Sh;ph.isWebAssemblySupported=ih,e.XGSecretKey=ph,e.aes4js=uh,e.util=NR}(t)}(0,gF.exports);var DF=gF.exports,XF=V((function e(t,n){var U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};R(this,e);var F="number"==typeof n?n:void 0;U.playerVersion="3.5.27-alpha.30",this.errorType=t,this.errorCode=F||be[t][n]||be[t],this.ext=U}));XF.DUR_PARSE_ERROR=9201,XF.SEG_PARSE_ERROR=9202,XF.INIT_SEGMENT_ERROR=9203,XF.MPD_INIT_ERROR=9204,XF.SEGMENT_CONTENT_ERROR=9205,XF.BACK_URL_FAIL=9206;var xF,LF=XF,IF=V((function e(t,n,U,F,a,i){R(this,e),this.type=t,this.codecs=n,this.visualEntryBox=U,this.configurationBox=F,this.types=a,this.logCodeType=i})),GF="avc",MF="av1",YF="hevc",wF="bytevc1",KF=(h(xF={},GF,new IF("avc","avc1.64001E","avc1","avcC",["h264"],"h264")),h(xF,MF,new IF("av1","av01.0.08M.08","av01","av1C",["av1"],"av1")),h(xF,YF,new IF("hevc","hev1.1.6.L120.90","hvc1","hvcC",["h265"],"h265")),h(xF,wF,new IF("hevc","hev1.1.6.L120.90","hvc1","hvcC",["bytevc1","h265"],"h265")),xF);function _F(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jF(e,t){for(var n=0;n<t.length;n++){var U=t[n];U.enumerable=U.enumerable||!1,U.configurable=!0,"value"in U&&(U.writable=!0),Object.defineProperty(e,zF(U.key),U)}}function HF(e,t,n){return t&&jF(e.prototype,t),n&&jF(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function PF(e,t,n){return(t=zF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zF(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var U=n.call(e,t||"default");if("object"!=typeof U)return U;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}var OF="video",AF="audio",qF="avc",$F="hevc",ea="vvcC",ta="aac",na="g7110a",Ua="g7110m",Fa=function(){function e(){_F(this,e),PF(this,"id",1),PF(this,"type",OF),PF(this,"codecType",qF),PF(this,"pid",-1),PF(this,"hvcC",void 0),PF(this,"codec",""),PF(this,"timescale",0),PF(this,"formatTimescale",0),PF(this,"sequenceNumber",0),PF(this,"baseMediaDecodeTime",0),PF(this,"baseDts",0),PF(this,"duration",0),PF(this,"warnings",[]),PF(this,"samples",[]),PF(this,"pps",[]),PF(this,"sps",[]),PF(this,"vps",[]),PF(this,"fpsNum",0),PF(this,"fpsDen",0),PF(this,"sarRatio",[]),PF(this,"width",0),PF(this,"height",0),PF(this,"nalUnitSize",4),PF(this,"present",!1),PF(this,"isVideoEncryption",!1),PF(this,"isAudioEncryption",!1),PF(this,"isVideo",!0),PF(this,"kid",null),PF(this,"pssh",null),PF(this,"ext",void 0)}return HF(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}(),aa=function(){function e(){_F(this,e),PF(this,"id",2),PF(this,"type",AF),PF(this,"codecType",ta),PF(this,"pid",-1),PF(this,"codec",""),PF(this,"sequenceNumber",0),PF(this,"sampleDuration",0),PF(this,"timescale",0),PF(this,"formatTimescale",0),PF(this,"baseMediaDecodeTime",0),PF(this,"duration",0),PF(this,"warnings",[]),PF(this,"samples",[]),PF(this,"baseDts",0),PF(this,"sampleSize",16),PF(this,"sampleRate",0),PF(this,"channelCount",0),PF(this,"objectType",0),PF(this,"sampleRateIndex",0),PF(this,"config",[]),PF(this,"present",!1),PF(this,"isVideoEncryption",!1),PF(this,"isAudioEncryption",!1),PF(this,"kid",null),PF(this,"ext",void 0)}return HF(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===ta)}},{key:"hasSample",value:function(){return!!this.samples.length}},{key:"isEncryption",get:function(){return this.isAudioEncryption}}]),e}(),ia="undefined"!=typeof window,Qa=ia&&navigator.userAgent.toLocaleLowerCase(),la=ia&&Qa.includes("firefox"),ra=ia&&Qa.includes("android"),da=function(){function e(){_F(this,e)}return HF(e,null,[{key:"getRateIndexByRate",value:function(t){return e.FREQ.indexOf(t)}},{key:"parseADTS",value:function(t,n){for(var U=t.length,F=0;F+2<U&&(255!==t[F]||240!=(246&t[F+1]));)F++;if(!(F>=U)){var a=F,i=[],Q=(60&t[F+2])>>>2,l=e.FREQ[Q];if(!l)throw new Error("Invalid sampling index: ".concat(Q));for(var r,d,o=1+((192&t[F+2])>>>6),s=(1&t[F+2])<<2|(192&t[F+3])>>>6,B=e._getConfig(Q,s,o),c=B.config,R=B.codec,u=0,V=e.getFrameDuration(l);F+7<U;)if(255===t[F]&&240==(246&t[F+1])){if(U-F<(d=(3&t[F+3])<<11|t[F+4]<<3|(224&t[F+5])>>5))break;r=2*(1&~t[F+1]),i.push({pts:n+u*V,data:t.subarray(F+7+r,F+d)}),u++,F+=d}else F++;return{skip:a,remaining:F>=U?void 0:t.subarray(F),frames:i,samplingFrequencyIndex:Q,sampleRate:l,objectType:o,channelCount:s,codec:R,config:c,originCodec:"mp4a.40.".concat(o)}}}},{key:"parseAudioSpecificConfig",value:function(t){if(t.length){var n=t[0]>>>3,U=(7&t[0])<<1|t[1]>>>7,F=(120&t[1])>>>3,a=e.FREQ[U];if(a){var i=e._getConfig(U,F,n);return{samplingFrequencyIndex:U,sampleRate:a,objectType:n,channelCount:F,config:i.config,codec:i.codec,originCodec:"mp4a.40.".concat(n)}}}}},{key:"getFrameDuration",value:function(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}},{key:"_getConfig",value:function(e,t,n){var U,F,a=[];return la?e>=6?(U=5,F=e-3):(U=2,F=e):ra?(U=2,F=e):(U=2===n||5===n?n:5,F=e,e>=6?F=e-3:1===t&&(U=2,F=e)),a[0]=U<<3,a[0]|=(14&e)>>1,a[1]=(1&e)<<7,a[1]|=t<<3,5===U&&(a[1]|=(14&F)>>1,a[2]=(1&F)<<7,a[2]|=8,a[3]=0),{config:a,codec:"mp4a.40.".concat(U)}}},{key:"getSilentFrame",value:function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)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===t)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===t)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===t)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===t)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}();PF(da,"FREQ",[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350]);var oa=Math.pow(2,32);function sa(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<8)+(e[t+1]||0)}function Ba(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<24>>>0)+(e[t+1]<<16)+(e[t+2]<<8)+(e[t+3]||0)}function ca(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt32(t)}function Ra(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Ba(e,t)*oa+Ba(e,t+4)}function ua(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=new DataView(e.buffer,e.byteOffset,e.byteLength);return n.getUint32(t)<<32|n.getUint32(t+4)}var Va=function(){function e(t){if(_F(this,e),PF(this,"_bytesAvailable",void 0),PF(this,"_bitsAvailable",0),PF(this,"_word",0),!t)throw new Error("ExpGolomb data params is required");this._data=t,this._bytesAvailable=t.byteLength,this._bytesAvailable&&this._loadWord()}return HF(e,[{key:"_loadWord",value:function(){var e=this._data.byteLength-this._bytesAvailable,t=Math.min(4,this._bytesAvailable);if(0===t)throw new Error("No bytes available");var n=new Uint8Array(4);n.set(this._data.subarray(e,e+t)),this._word=new DataView(n.buffer).getUint32(0),this._bitsAvailable=8*t,this._bytesAvailable-=t}},{key:"bitsPos",value:function(){return 8*this._bytesAvailable-this._bitsAvailable}},{key:"bitsLeft",value:function(){return 8*this._data.length-this.bitsPos()}},{key:"byteAligned",value:function(){return 0===this.bitsPos()||this.bitsPos()%8==0}},{key:"skipBits",value:function(e){if(this._bitsAvailable>e)this._word<<=e,this._bitsAvailable-=e;else{e-=this._bitsAvailable;var t=Math.floor(e/8);e-=8*t,this._bytesAvailable-=t,this._loadWord(),this._word<<=e,this._bitsAvailable-=e}}},{key:"readBits",value:function(e){if(e>32)throw new Error("Cannot read more than 32 bits");var t=Math.min(this._bitsAvailable,e),n=this._word>>>32-t;return this._bitsAvailable-=t,this._bitsAvailable>0?this._word<<=t:this._bytesAvailable>0&&this._loadWord(),(t=e-t)>0&&this._bitsAvailable?n<<t|this.readBits(t):n}},{key:"skipLZ",value:function(){var e;for(e=0;e<this._bitsAvailable;++e)if(0!=(this._word&2147483648>>>e))return this._word<<=e,this._bitsAvailable-=e,e;return this._loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBool",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"skipScalingList",value:function(e){for(var t=8,n=8,U=0;U<e;U++)0!==n&&(n=(t+this.readEG()+256)%256),t=0===n?t:n}}]),e}(),ha=function(){function e(t){_F(this,e),this._buffer=t,this._offset=0,this._heldBits=0,this._numHeldBits=0}return HF(e,[{key:"readUint8",value:function(){return this._buffer[this._offset++]}},{key:"readUint16",value:function(){return this._buffer[this._offset++]<<8|this._buffer[this._offset++]}},{key:"readUint32",value:function(){return this._buffer[this._offset++]<<24|this._buffer[this._offset++]<<16|this._buffer[this._offset++]<<8|this._buffer[this._offset++]}},{key:"readUint8Array",value:function(e){var t=this._buffer.slice(this._offset,this._offset+e);return this._offset+=e,t}},{key:"streamRead1Bytes",value:function(){this._heldBits=this.readUint8(),this._numHeldBits=8}},{key:"streamRead2Bytes",value:function(){this._heldBits=this.readUint16(),this._numHeldBits=16}},{key:"extractBits",value:function(e){var t=this._heldBits>>this._numHeldBits-e&(1<<e)-1;return this._numHeldBits-=e,t}}]),e}(),Za=function(){function e(){_F(this,e)}return HF(e,null,[{key:"parseVVCDecoderConfigurationRecord",value:function(t){var n=new ha(t),U=n.readUint8();n.streamRead1Bytes(),n.extractBits(5);var F,a,i,Q,l,r,d,o,s=n.extractBits(2)+1,B=n.extractBits(1),c={};B&&(n.streamRead2Bytes(),Q=n.extractBits(2),l=n.extractBits(3),a=n.extractBits(3),i=n.extractBits(2),n.extractBits(6),c=e.parseVVCPTLRecord(n,a),F=n.readUint16(),r=n.readUint16(),d=n.readUint16(),o=n.readUint16());for(var R=n.readUint8(),u=[],V=[],h=[],Z=null,S=0;S<R;S++){n.streamRead1Bytes(),n.extractBits(1),n.extractBits(2);var p=n.extractBits(5),J=1;13!==p&&12!==p&&(J=n.readUint16());for(var m=0;m<J;m++){var b=n.readUint16();switch(p){case 14:u.push(n.readUint8Array(b));break;case 15:var W=n.readUint8Array(b);Z||(Z=e.parseSPS(e.removeEPB(W))),V.push(W);break;case 16:h.push(n.readUint8Array(b))}}}return{data:t,configurationVersion:U,codec:"bvc2.1.6.L93.B0",nalUnitSize:s,ptlPresentFlag:B,olsIdx:F,numSublayers:a,constantFrameRate:i,chromaFormatIdc:Q,bitDepthLumaMinus8:l,ptlRecord:c,width:r,height:d,sampleRate:o,numOfArrays:R,vps:u,sps:V,pps:h,spsParsed:Z}}},{key:"parseVVCPTLRecord",value:function(e,t){e.streamRead2Bytes(),e.extractBits(2);var n=e.extractBits(6),U=e.extractBits(7),F=e.extractBits(1),a=e.readUint8();e.streamRead1Bytes();var i=e.extractBits(1),Q=e.extractBits(1),l=new Uint8Array(n);if(n){for(var r=0;r<n-1;r++){var d=e.extractBits(6);e.streamRead1Bytes();var o=e.extractBits(2);l[r]=d<<2|o}l[n-1]=e.extractBits(6)}else e.extractBits(6);var s=[];if(t>1){e.streamRead1Bytes();for(var B=0,c=t-2;c>=0;--c){B|=e.extractBits(1)<<c}for(var R=t;R<=8&&t>1;++R)e.extractBits(1);for(var u=t-2;u>=0;--u)B&1<<u&&(s[u]=e.readUint8())}var V=e.readUint8(),h=[];if(V)for(var Z=0;Z<V;Z++)h.push(e.readUint32());return{generalProfileIdc:U,generalTierFlag:F,generalLevelIdc:a,ptlFrameOnlyConstraintFlag:i,ptlMultilayerEnabledFlag:Q,generalConstraintInfo:l,subLayerLevelIdc:s,generalSubProfileIdc:h,ptlNumSubProfiles:V,numBytesConstraintInfo:n}}},{key:"getAvccNals",value:function(e){for(var t=[];e.position<e.length-4;){var n=e.dataview.getInt32(e.dataview.position);if(!(e.length-e.position>=n))break;var U=e.buffer.slice(e.position,e.position+4);e.skip(4);var F=new Uint8Array(e.buffer.slice(e.position,e.position+n));e.skip(n),t.push({header:U,body:F})}return t}},{key:"analyseNal",value:function(e){var t=(248&e.body[1])>>3;switch(e.type=t,t){case 23:case 24:break;case 7:case 8:e.key=!0;break;case 14:e.vps=!0;break;case 15:e.sps=!0;break;case 16:e.pps=!0;break;case 17:e.aps=!0}}},{key:"removeEPB",value:function(e){for(var t=e.byteLength,n=[],U=1;U<t-2;)0===e[U]&&0===e[U+1]&&3===e[U+2]?(n.push(U+2),U+=2):U++;if(!n.length)return e;var F=t-n.length,a=new Uint8Array(F),i=0;for(U=0;U<F;i++,U++)i===n[0]&&(i++,n.shift()),a[U]=e[i];return a}},{key:"parseVps",value:function(){}},{key:"parseSPS",value:function(t){var n=new Va(t);n.readUByte(),n.readUByte(),n.skipBits(4);var U=n.readBits(4),F=n.readBits(3),a=n.readBits(2),i=420;a<=3&&(i=[0,420,422,444][a]),n.readBits(2),n.readBits(1);var Q=e._parseProfileTierLevel(n,1,F);return n.readBits(1),n.readBits(1)&&n.readBits(1),{width:n.readUEG(),height:n.readUEG(),spsMaxSubLayerMinus1:F,spsVideoParameterSetId:U,chromaFormatIdc:a,chromaFormat:i,ptlInfo:Q}}},{key:"_parseProfileTierLevel",value:function(t,n,U){var F,a=t.readBits(7),i=t.readBits(1),Q=t.readBits(8),l=t.readBits(1),r=t.readBits(1);n&&(F=e._parseGeneralConstraintsInfo(t));for(var d=U-1,o=[],s=[],B=[],c=d;c>=0;--c)o[c]=t.readBits(1);for(;!t.byteAligned();)t.readBits(1);for(var R=d;R>=0;--R)o[R]&&(s[R]=t.readUByte());if(n)for(var u=t.readUByte(),V=0;V<u;V++)B[V]=t.readBits(32);return{generalProfileIdc:a,generalTierFlag:i,generalLevelIdc:Q,ptlFrameOnlyConstraintFlag:l,ptlMultilayerEnabledFlag:r,ptlSublayerLevelPresentFlags:o,ptlSublayerLevelIdcs:s,ptlSubProfileIdcs:B,gciInfo:F}}},{key:"_parseGeneralConstraintsInfo",value:function(e){var t=e.readBits(1);if(t){e.skipBits(71);var n=e.readBits(8);n&&e.skipBits(n)}var U=8-e.bitsPos()%8;return e.skipBits(U),{gciPresentFlag:t}}}]),e}(),Sa=function(){function e(){_F(this,e)}return HF(e,null,[{key:"findBox",value:function(t,n){var U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,F=[];if(!t)return F;for(var a=0,i="",Q=0;t.length>7;){if(a=Ba(t),i=String.fromCharCode.apply(null,t.subarray(4,8)),Q=8,1===a?(a=Ra(t,8),Q+=8):a||(a=t.length),!n[0]||i===n[0]){var l=t.subarray(0,a);if(!(n.length<2))return e.findBox(l.subarray(Q),n.slice(1),U+Q);F.push({start:U,size:a,headerSize:Q,type:i,data:l})}U+=a,t=t.subarray(a)}return F}},{key:"tfhd",value:function(e){return ba(e,!0,(function(e,t){e.trackId=Ba(t);var n=4,U=1&e.flags,F=2&e.flags,a=8&e.flags,i=16&e.flags,Q=32&e.flags;U&&(n+=4,e.baseDataOffset=Ba(t,n),n+=4),F&&(e.sampleDescriptionIndex=Ba(t,n),n+=4),a&&(e.defaultSampleDuration=Ba(t,n),n+=4),i&&(e.defaultSampleSize=Ba(t,n),n+=4),Q&&(e.defaultSampleFlags=Ba(t,n))}))}},{key:"sidx",value:function(e){return ba(e,!0,(function(e,t){var n=0;e.reference_ID=Ba(t,n),n+=4,e.timescale=Ba(t,n),n+=4,0===e.version?(e.earliest_presentation_time=Ba(t,n),n+=4,e.first_offset=Ba(t,n),n+=4):(e.earliest_presentation_time=Ra(t,n),n+=8,e.first_offset=Ra(t,n),n+=8),n+=2,e.references=[];var U=sa(t,n);n+=2;for(var F=0;F<U;F++){var a={};e.references.push(a);var i=Ba(t,n);n+=4,a.reference_type=i>>31&1,a.referenced_size=2147483647&i,a.subsegment_duration=Ba(t,n),i=Ba(t,n+=4),n+=4,a.starts_with_SAP=i>>31&1,a.SAP_type=i>>28&7,a.SAP_delta_time=268435455&i}}))}},{key:"moov",value:function(t){return ba(t,!1,(function(t,n,U){t.mvhd=e.mvhd(e.findBox(n,["mvhd"],U)[0]),t.trak=e.findBox(n,["trak"],U).map((function(t){return e.trak(t)})),t.pssh=e.pssh(e.findBox(n,["pssh"],U)[0])}))}},{key:"mvhd",value:function(e){return ba(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=Ba(t,16),e.duration=Ra(t,20),n+=28):(e.timescale=Ba(t,8),e.duration=Ba(t,12),n+=16),e.nextTrackId=Ba(t,n+76)}))}},{key:"trak",value:function(t){return ba(t,!1,(function(t,n,U){t.tkhd=e.tkhd(e.findBox(n,["tkhd"],U)[0]),t.mdia=e.mdia(e.findBox(n,["mdia"],U)[0]),t.edts=e.edts(e.findBox(n,["edts"],U)[0])}))}},{key:"tkhd",value:function(e){return ba(e,!0,(function(e,t){var n=0;1===e.version?(e.trackId=Ba(t,16),e.duration=Ra(t,24),n+=32):(e.trackId=Ba(t,8),e.duration=Ba(t,16),n+=20),e.width=Ba(t,n+52),e.height=Ba(t,n+56)}))}},{key:"mdia",value:function(t){return ba(t,!1,(function(t,n,U){t.mdhd=e.mdhd(e.findBox(n,["mdhd"],U)[0]),t.hdlr=e.hdlr(e.findBox(n,["hdlr"],U)[0]),t.minf=e.minf(e.findBox(n,["minf"],U)[0])}))}},{key:"edts",value:function(t){return ba(t,!1,(function(t,n,U){t.elst=e.elst(e.findBox(n,["elst"],U)[0])}))}},{key:"elst",value:function(e){return ba(e,!0,(function(e,t,n){e.entries=[],e.entriesData=t;var U=0,F=Ba(t,U);U+=4;for(var a=0;a<F;a++){var i={};e.entries.push(i),1===e.version?(i.segment_duration=Ra(t,U),U+=8,i.media_time=ua(t,U),U+=8):(i.segment_duration=Ba(t,U),U+=4,i.media_time=ca(t,U),U+=4),i.media_rate_integer=sa(t,U),U+=2,i.media_rate_fraction=sa(t,n),U+=2}}))}},{key:"mdhd",value:function(e){return ba(e,!0,(function(e,t){var n=0;1===e.version?(e.timescale=Ba(t,16),e.duration=Ra(t,20),n+=28):(e.timescale=Ba(t,8),e.duration=Ba(t,12),n+=16);var U=sa(t,n);e.language=String.fromCharCode(96+(U>>10&31),96+(U>>5&31),96+(31&U))}))}},{key:"hdlr",value:function(e){return ba(e,!0,(function(e,t){0===e.version&&(e.handlerType=String.fromCharCode.apply(null,t.subarray(4,8)))}))}},{key:"minf",value:function(t){return ba(t,!1,(function(t,n,U){t.vmhd=e.vmhd(e.findBox(n,["vmhd"],U)[0]),t.smhd=e.smhd(e.findBox(n,["smhd"],U)[0]),t.stbl=e.stbl(e.findBox(n,["stbl"],U)[0])}))}},{key:"vmhd",value:function(e){return ba(e,!0,(function(e,t){e.graphicsmode=sa(t),e.opcolor=[sa(t,2),sa(t,4),sa(t,6)]}))}},{key:"smhd",value:function(e){return ba(e,!0,(function(e,t){e.balance=sa(t)}))}},{key:"stbl",value:function(t){return ba(t,!1,(function(t,n,U){var F,a,i;t.stsd=e.stsd(e.findBox(n,["stsd"],U)[0]),t.stts=e.stts(e.findBox(n,["stts"],U)[0]),t.ctts=e.ctts(e.findBox(n,["ctts"],U)[0]),t.stsc=e.stsc(e.findBox(n,["stsc"],U)[0]),t.stsz=e.stsz(e.findBox(n,["stsz"],U)[0]),t.stco=e.stco(e.findBox(n,["stco"],U)[0]),t.stco||(t.co64=e.co64(e.findBox(n,["co64"],U)[0]),t.stco=t.co64);var Q=null===(F=t.stsd.entries[0])||void 0===F||null===(a=F.sinf)||void 0===a||null===(i=a.schi)||void 0===i?void 0:i.tenc.default_IV_size;t.stss=e.stss(e.findBox(n,["stss"],U)[0]),t.senc=e.senc(e.findBox(n,["senc"],U)[0],Q)}))}},{key:"senc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return ba(e,!0,(function(e,n){var U=0,F=Ba(n,U);U+=4,e.samples=[];for(var a=0;a<F;a++){for(var i={InitializationVector:[]},Q=0;Q<t;Q++)i.InitializationVector[Q]=n[U+Q];if(U+=t,2&e.flags){i.subsamples=[];var l=sa(n,U);U+=2;for(var r=0;r<l;r++){var d={};d.BytesOfClearData=sa(n,U),U+=2,d.BytesOfProtectedData=Ba(n,U),U+=4,i.subsamples.push(d)}}e.samples.push(i)}}))}},{key:"pssh",value:function(e){return ba(e,!0,(function(e,t){for(var n=[],U=[],F=0,a=0;a<16;a++)U.push(Wa(t[F+a]));if(F+=16,e.version>0){var i=Ba(t,F);F+=4;for(var Q=0;Q<(""+i).length;Q++)for(var l=0;l<16;l++){var r=t[F];F+=1,n.push(Wa(r))}}var d=Ba(t,F);e.data_size=d,F+=4,e.kid=n,e.system_id=U,e.buffer=t}))}},{key:"bvc2",value:function(t){return ba(t,!1,(function(t,n,U){var F=Ja(t,n),a=n.subarray(F);U+=F,t.vvcC=e.bv2C(e.findBox(a,["bv2C"],U)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],U)[0])}))}},{key:"bv2C",value:function(e){return ba(e,!1,(function(e,t,n){var U=Za.parseVVCDecoderConfigurationRecord(t);for(var F in U)Object.prototype.hasOwnProperty.call(U,F)&&(e[F]=U[F])}))}},{key:"stsd",value:function(t){return ba(t,!0,(function(t,n,U){t.entryCount=Ba(n),t.entries=e.findBox(n.subarray(4),[],U+4).map((function(t){switch(t.type){case"avc1":case"avc2":case"avc3":case"avc4":return e.avc1(t);case"hvc1":case"hev1":return e.hvc1(t);case"bvc2":return e.bvc2(t);case"mp4a":return e.mp4a(t);case"alaw":case"ulaw":return e.alaw(t);case"enca":return ba(t,!1,(function(t,n,U){t.channelCount=sa(n,16),t.samplesize=sa(n,18),t.sampleRate=Ba(n,24)/65536,n=n.subarray(28),t.sinf=e.sinf(e.findBox(n,["sinf"],U)[0]),t.esds=e.esds(e.findBox(n,["esds"],U)[0])}));case"encv":return ba(t,!1,(function(t,n,U){t.width=sa(n,24),t.height=sa(n,26),t.horizresolution=Ba(n,28),t.vertresolution=Ba(n,32),n=n.subarray(78),t.sinf=e.sinf(e.findBox(n,["sinf"],U)[0]),t.avcC=e.avcC(e.findBox(n,["avcC"],U)[0]),t.hvcC=e.hvcC(e.findBox(n,["hvcC"],U)[0]),t.pasp=e.pasp(e.findBox(n,["pasp"],U)[0])}))}})).filter(Boolean)}))}},{key:"tenc",value:function(e){return ba(e,!1,(function(e,t){var n=6;e.default_IsEncrypted=t[n],n+=1,e.default_IV_size=t[n],n+=1,e.default_KID=[];for(var U=0;U<16;U++)e.default_KID.push(Wa(t[n])),n+=1}))}},{key:"schi",value:function(t){return ba(t,!1,(function(t,n,U){t.tenc=e.tenc(e.findBox(n,["tenc"],U)[0])}))}},{key:"sinf",value:function(t){return ba(t,!1,(function(t,n,U){t.schi=e.schi(e.findBox(n,["schi"],U)[0]),t.frma=e.frma(e.findBox(n,["frma"],U)[0])}))}},{key:"frma",value:function(e){return ba(e,!1,(function(e,t){e.data_format="";for(var n=0;n<4;n++)e.data_format+=String.fromCharCode(t[n])}))}},{key:"avc1",value:function(t){return ba(t,!1,(function(t,n,U){var F=Ja(t,n),a=n.subarray(F);U+=F,t.avcC=e.avcC(e.findBox(a,["avcC"],U)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],U)[0])}))}},{key:"avcC",value:function(e){return ba(e,!1,(function(e,t){e.configurationVersion=t[0],e.AVCProfileIndication=t[1],e.profileCompatibility=t[2],e.AVCLevelIndication=t[3],e.codec=function(e){for(var t,n="avc1.",U=0;U<3;U++)(t=e[U].toString(16)).length<2&&(t="0".concat(t)),n+=t;return n}([t[1],t[2],t[3]]),e.lengthSizeMinusOne=3&t[4],e.spsLength=31&t[5],e.sps=[];for(var n=6,U=0;U<e.spsLength;U++){var F=sa(t,n);n+=2,e.sps.push(t.subarray(n,n+F)),n+=F}e.ppsLength=t[n],n+=1,e.pps=[];for(var a=0;a<e.ppsLength;a++){var i=sa(t,n);n+=2,e.pps.push(t.subarray(n,n+=i)),n+=i}}))}},{key:"hvc1",value:function(t){return ba(t,!1,(function(t,n,U){var F=Ja(t,n),a=n.subarray(F);U+=F,t.hvcC=e.hvcC(e.findBox(a,["hvcC"],U)[0]),t.pasp=e.pasp(e.findBox(a,["pasp"],U)[0])}))}},{key:"hvcC",value:function(e){return ba(e,!1,(function(t,n){t.data=e.data,t.codec="hev1.1.6.L93.B0",t.configurationVersion=n[0];var U=n[1];t.generalProfileSpace=U>>6,t.generalTierFlag=(32&U)>>5,t.generalProfileIdc=31&U,t.generalProfileCompatibility=Ba(n,2),t.generalConstraintIndicatorFlags=n.subarray(6,12),t.generalLevelIdc=n[12],t.avgFrameRate=sa(n,19),t.numOfArrays=n[22],t.vps=[],t.sps=[],t.pps=[];for(var F=23,a=0,i=0,Q=0,l=0;l<t.numOfArrays;l++){a=63&n[F],i=sa(n,F+1),F+=3;for(var r,d=[],o=0;o<i;o++)Q=sa(n,F),F+=2,d.push(n.subarray(F,F+Q)),F+=Q;if(32===a)(r=t.vps).push.apply(r,d);else if(33===a){var s;(s=t.sps).push.apply(s,d)}else if(34===a){var B;(B=t.pps).push.apply(B,d)}}}))}},{key:"pasp",value:function(e){return ba(e,!1,(function(e,t){e.hSpacing=Ba(t),e.vSpacing=Ba(t,4)}))}},{key:"mp4a",value:function(t){return ba(t,!1,(function(t,n,U){var F=ma(t,n);t.esds=e.esds(e.findBox(n.subarray(F),["esds"],U+F)[0])}))}},{key:"esds",value:function(e){return ba(e,!0,(function(e,t){e.codec="mp4a.";for(var n=0,U=0,F=0,a=0;t.length;){for(a=t[n=0],U=t[n+1],n+=2;128&U;)F=(127&U)<<7,U=t[n],n+=1;if(F+=127&U,3===a)t=t.subarray(n+3);else{if(4!==a){if(5===a){var i=e.config=t.subarray(n,n+F),Q=(248&i[0])>>3;return 31===Q&&i.length>=2&&(Q=32+((7&i[0])<<3)+((224&i[1])>>5)),e.objectType=Q,e.codec+=Q.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+=(t[n].toString(16)+".").padStart(3,"0"),t=t.subarray(n+13)}}}))}},{key:"alaw",value:function(e){return ba(e,!1,(function(e,t){ma(e,t)}))}},{key:"stts",value:function(e){return ba(e,!0,(function(e,t){for(var n=Ba(t),U=[],F=4,a=0;a<n;a++)U.push({count:Ba(t,F),delta:Ba(t,F+4)}),F+=8;e.entryCount=n,e.entries=U}))}},{key:"ctts",value:function(e){return ba(e,!0,(function(e,t){var n=Ba(t),U=[],F=4;if(1===e.version)for(var a=0;a<n;a++)U.push({count:Ba(t,F),offset:Ba(t,F+4)}),F+=8;else for(var i=0;i<n;i++)U.push({count:Ba(t,F),offset:-(1+~Ba(t,F+4))}),F+=8;e.entryCount=n,e.entries=U}))}},{key:"stsc",value:function(e){return ba(e,!0,(function(e,t){for(var n=Ba(t),U=new Array(n),F=4,a=0;a<n;a++)U[a]={firstChunk:Ba(t,F),samplesPerChunk:Ba(t,F+4),sampleDescriptionIndex:Ba(t,F+8)},F+=12;e.entryCount=n,e.entries=U}))}},{key:"stsz",value:function(e){return ba(e,!0,(function(e,t){var n=Ba(t),U=Ba(t,4),F=new Array(U);if(!n)for(var a=8,i=0;i<U;i++)F[i]=Ba(t,a),a+=4;e.sampleSize=n,e.sampleCount=U,e.entrySizes=F}))}},{key:"stco",value:function(e){return ba(e,!0,(function(e,t){for(var n=Ba(t),U=new Array(n),F=4,a=0;a<n;a++)U[a]=Ba(t,F),F+=4;e.entryCount=n,e.entries=U}))}},{key:"co64",value:function(e){return ba(e,!0,(function(e,t){for(var n=Ba(t),U=new Array(n),F=4,a=0;a<n;a++)U[a]=Ra(t,F),F+=8;e.entryCount=n,e.entries=U}))}},{key:"stss",value:function(e){return ba(e,!0,(function(e,t){for(var n=Ba(t),U=new Array(n),F=4,a=0;a<n;a++)U[a]=Ba(t,F),F+=4;e.entryCount=n,e.entries=U}))}},{key:"moof",value:function(t){return ba(t,!1,(function(t,n,U){t.mfhd=e.mfhd(e.findBox(n,["mfhd"],U)[0]),t.traf=e.findBox(n,["traf"],U).map((function(t){return e.traf(t)}))}))}},{key:"mfhd",value:function(e){return ba(e,!0,(function(e,t){e.sequenceNumber=Ba(t)}))}},{key:"traf",value:function(t){return ba(t,!1,(function(t,n,U){t.tfhd=e.tfhd(e.findBox(n,["tfhd"],U)[0]),t.tfdt=e.tfdt(e.findBox(n,["tfdt"],U)[0]),t.trun=e.trun(e.findBox(n,["trun"],U)[0])}))}},{key:"trun",value:function(e){return ba(e,!0,(function(e,t){var n=e.version,U=e.flags,F=t.length,a=e.sampleCount=Ba(t),i=4;if(F>i&&1&U&&(e.dataOffset=-(1+~Ba(t,i)),i+=4),F>i&&4&U&&(e.firstSampleFlags=Ba(t,i),i+=4),F>i){var Q;e.samples=new Array(a);for(var l=0;l<a;l++)Q={},256&U&&(Q.duration=Ba(t,i),i+=4),512&U&&(Q.size=Ba(t,i),i+=4),1024&U&&(Q.flags=Ba(t,i),i+=4),2048&U&&(Q.cts=n?-(1+~Ba(t,i+4)):Ba(t,i),i+=4),e.samples[l]=Q}}))}},{key:"tfdt",value:function(e){return ba(e,!0,(function(e,t){1===e.version?e.baseMediaDecodeTime=Ra(t):e.baseMediaDecodeTime=Ba(t)}))}},{key:"probe",value:function(t){return!!e.findBox(t,["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,t,n){var U,F,a=e.trak;if(a&&a.length){var i=a.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),Q=a.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(i&&t){var l,r,d,o,s,B,c,R,u=t,V=null===(l=i.tkhd)||void 0===l?void 0:l.trackId;null!=V&&(u.id=i.tkhd.trackId),u.tkhdDuration=i.tkhd.duration,u.mvhdDurtion=e.mvhd.duration,u.mvhdTimecale=e.mvhd.timescale,u.timescale=u.formatTimescale=i.mdia.mdhd.timescale,u.duration=i.mdia.mdhd.duration||u.mvhdDurtion/u.mvhdTimecale*u.timescale,null!==(r=i.edts)&&void 0!==r&&r.elst&&(u.editList=i.edts.elst,u.editListApplied=i.editListApplied);var h,Z,S,p,J,m,b,W,k=i.mdia.minf.stbl.stsd.entries[0];if(u.width=k.width,u.height=k.height,k.pasp&&(u.sarRatio=[k.pasp.hSpacing,k.pasp.vSpacing]),k.hvcC)u.codecType=$F,u.codec=k.hvcC.codec,u.vps=k.hvcC.vps,u.sps=k.hvcC.sps,u.pps=k.hvcC.pps,u.hvcC=k.hvcC.data;else if(k.avcC)u.codec=k.avcC.codec,u.sps=k.avcC.sps,u.pps=k.avcC.pps;else{if(!k.vvcC)throw new Error("unknown video stsd entry");u.codecType=ea,u.codec=k.vvcC.codec,u.sps=k.vvcC.sps,u.pps=k.vvcC.pps,u.vps=k.vvcC.vps,u.vvcC=k.vvcC.data}if(u.present=!0,u.ext={},u.ext.stss=null===(d=i.mdia)||void 0===d||null===(o=d.minf)||void 0===o||null===(s=o.stbl)||void 0===s?void 0:s.stss,u.ext.ctts=null===(B=i.mdia)||void 0===B||null===(c=B.minf)||void 0===c||null===(R=c.stbl)||void 0===R?void 0:R.ctts,k&&"encv"===k.type)u.isVideoEncryption=!0,k.default_KID=null===(h=k.sinf)||void 0===h||null===(Z=h.schi)||void 0===Z?void 0:Z.tenc.default_KID,k.default_IsEncrypted=null===(S=k.sinf)||void 0===S||null===(p=S.schi)||void 0===p?void 0:p.tenc.default_IsEncrypted,k.default_IV_size=null===(J=k.sinf)||void 0===J||null===(m=J.schi)||void 0===m?void 0:m.tenc.default_IV_size,u.videoSenc=i.mdia.minf.stbl.senc&&i.mdia.minf.stbl.senc.samples,k.data_format=null===(b=k.sinf)||void 0===b||null===(W=b.frma)||void 0===W?void 0:W.data_format,u.useEME=e.useEME,u.kidValue=e.kidValue,u.pssh=e.pssh,u.encv=k}if(Q&&n){var E,y,f,N,v,T,C,g,D,X,x=n,L=null===(E=Q.tkhd)||void 0===E?void 0:E.trackId;null!=L&&(x.id=Q.tkhd.trackId),x.tkhdDuration=Q.tkhd.duration,x.mvhdDurtion=e.mvhd.duration,x.mvhdTimecale=e.mvhd.timescale,x.timescale=x.formatTimescale=Q.mdia.mdhd.timescale,x.duration=Q.mdia.mdhd.duration||x.mvhdDurtion/x.mvhdTimecale*x.timescale,null!==(y=Q.edts)&&void 0!==y&&y.elst&&(x.editList=Q.edts.elst,x.editListApplied=Q.editListApplied);var I,G,M,Y,w,K,_,j,H=Q.mdia.minf.stbl.stsd.entries[0];switch(x.sampleSize=H.sampleSize,x.sampleRate=H.sampleRate,x.channelCount=H.channelCount,x.present=!0,H.type){case"alaw":x.codecType=x.codec=na,x.sampleRate=8e3;break;case"ulaw":x.codecType=x.codec=Ua,x.sampleRate=8e3;break;default:x.sampleDuration=da.getFrameDuration(x.sampleRate,x.timescale),x.sampleRateIndex=da.getRateIndexByRate(x.sampleRate),x.objectType=(null===(U=H.esds)||void 0===U?void 0:U.objectType)||2,H.esds&&(x.config=Array.from(H.esds.config)),x.codec=(null===(F=H.esds)||void 0===F?void 0:F.codec)||"mp4a.40.2"}if(x.sampleDuration=da.getFrameDuration(x.sampleRate,x.timescale),x.objectType=(null===(f=H.esds)||void 0===f?void 0:f.objectType)||2,H.esds&&(H.esds.config?x.config=Array.from(H.esds.config):console.warn("esds config is null")),x.codec=(null===(N=H.esds)||void 0===N?void 0:N.codec)||"mp4a.40.2",x.sampleRateIndex=da.getRateIndexByRate(x.sampleRate),x.ext={},x.ext.stss=null===(v=Q.mdia)||void 0===v||null===(T=v.minf)||void 0===T||null===(C=T.stbl)||void 0===C?void 0:C.stss,x.ext.ctts=null===(g=Q.mdia)||void 0===g||null===(D=g.minf)||void 0===D||null===(X=D.stbl)||void 0===X?void 0:X.ctts,x.present=!0,H&&"enca"===H.type)x.isAudioEncryption=!0,H.data_format=null===(I=H.sinf)||void 0===I||null===(G=I.frma)||void 0===G?void 0:G.data_format,H.default_KID=null===(M=H.sinf)||void 0===M||null===(Y=M.schi)||void 0===Y?void 0:Y.tenc.default_KID,H.default_IsEncrypted=null===(w=H.sinf)||void 0===w||null===(K=w.schi)||void 0===K?void 0:K.tenc.default_IsEncrypted,H.default_IV_size=null===(_=H.sinf)||void 0===_||null===(j=_.schi)||void 0===j?void 0:j.tenc.default_IV_size,x.audioSenc=Q.mdia.minf.stbl.senc&&Q.mdia.minf.stbl.senc.samples,x.useEME=e.useEME,x.kidValue=e.kidValue,x.enca=H}if(n&&(n.isVideoEncryption=!!t&&t.isVideoEncryption),t&&(t.isAudioEncryption=!!n&&n.isAudioEncryption),null!=t&&t.encv||null!=n&&n.enca){var P,z,O=null==t||null===(P=t.encv)||void 0===P?void 0:P.default_KID,A=null==n||null===(z=n.enca)||void 0===z?void 0:z.default_KID,q=O||A?(O||A).join(""):null;t&&(t.kid=q),n&&(n.kid=q)}return t&&(t.flags=3841),n&&(n.flags=1793),{videoTrack:t,audioTrack:n}}}},{key:"evaluateDefaultDuration",value:function(e,t,n){var U,F=null==t||null===(U=t.samples)||void 0===U?void 0:U.length;return F?1024*F/t.timescale*e.timescale/n:1024}},{key:"moofToSamples",value:function(t,n,U){var F={};return t.mfhd&&(n&&(n.sequenceNumber=t.mfhd.sequenceNumber),U&&(U.sequenceNumber=t.mfhd.sequenceNumber)),t.traf.forEach((function(t){var a=t.tfhd,i=t.tfdt,Q=t.trun;if(a&&Q){i&&(n&&n.id===a.trackId&&(n.baseMediaDecodeTime=i.baseMediaDecodeTime),U&&U.id===a.trackId&&(U.baseMediaDecodeTime=i.baseMediaDecodeTime));var l=a.defaultSampleSize||0,r=a.defaultSampleDuration||e.evaluateDefaultDuration(n,U,Q.samples.length||Q.sampleCount),d=Q.dataOffset||0,o=0,s=-1;if(!Q.samples.length&&Q.sampleCount){F[a.trackId]=new Array(Q.sampleCount);for(var B=0;B<Q.sampleCount;B++)F[a.trackId][B]={offset:d,dts:o,duration:r,size:l},o+=r,d+=l}else F[a.trackId]=Q.samples.map((function(e,t){return(e={offset:d,dts:o,pts:o+(e.cts||0),duration:e.duration||r,size:e.size||l,gopId:s,keyframe:0===t||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(s++,e.gopId=s),o+=e.duration,d+=e.size,e}))}})),F}},{key:"moovToSamples",value:function(e){var t=e.trak;if(t&&t.length){var n=t.find((function(e){var t,n;return"vide"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)})),U=t.find((function(e){var t,n;return"soun"===(null===(t=e.mdia)||void 0===t||null===(n=t.hdlr)||void 0===n?void 0:n.handlerType)}));if(n||U){var F,a;if(n){var i,Q,l=null===(i=n.mdia)||void 0===i||null===(Q=i.minf)||void 0===Q?void 0:Q.stbl;if(!l)return;var r=l.stts,d=l.stsc,o=l.stsz,s=l.stco,B=l.stss,c=l.ctts;if(!(r&&d&&o&&s&&B))return;F=pa(r,d,o,s,c,B)}if(U){var R,u,V,h=null===(R=U.mdia)||void 0===R||null===(u=R.minf)||void 0===u?void 0:u.stbl;if(!h)return;var Z=null===(V=U.mdia.mdhd)||void 0===V?void 0:V.timescale,S=h.stts,p=h.stsc,J=h.stsz,m=h.stco;if(!(Z&&S&&p&&J&&m))return;a=pa(S,p,J,m)}return{videoSamples:F,audioSamples:a}}}}}]),e}();function pa(e,t,n,U,F,a){var i,Q,l,r=[],d=null==F?void 0:F.entries,o=t.entries,s=U.entries,B=n.entrySizes,c=null==a?void 0:a.entries;c&&(i={},c.forEach((function(e){i[e-1]=!0}))),d&&(Q=[],d.forEach((function(e){for(var t=e.count,n=e.offset,U=0;U<t;U++)Q.push(n)})));var R=-1,u=0,V=0,h=0,Z=0,S=0,p=o[0].samplesPerChunk,J=o[1]?o[1].firstChunk-1:1/0;return e.entries.forEach((function(e){for(var t=e.count,U=e.delta,F=0;F<t;F++)l={dts:u,duration:U,size:B[V]||n.sampleSize,offset:s[h]+S,index:V},c&&(l.keyframe=i[V],l.keyframe&&R++,l.gopId=R),Q&&V<Q.length&&(l.pts=l.dts+Q[V]),r.push(l),u+=U,++V<p?S+=l.size:(h++,S=0,h>=J&&(Z++,J=o[Z+1]?o[Z+1].firstChunk-1:1/0),p+=o[Z].samplesPerChunk)})),r}function Ja(e,t){return e.dataReferenceIndex=sa(t,6),e.width=sa(t,24),e.height=sa(t,26),e.horizresolution=Ba(t,28),e.vertresolution=Ba(t,32),e.frameCount=sa(t,40),e.depth=sa(t,74),78}function ma(e,t){return e.dataReferenceIndex=sa(t,6),e.channelCount=sa(t,16),e.sampleSize=sa(t,18),e.sampleRate=Ba(t,24)/65536,28}function ba(e,t,n){if(e){if(e.size!==e.data.length)throw new Error("box ".concat(e.type," size !== data.length"));var U={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return t&&(U.version=e.data[e.headerSize],U.flags=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<16)+(e[t+1]<<8)+(e[t+2]||0)}(e.data,e.headerSize+1),U.headerSize+=4),n(U,e.data.subarray(U.headerSize),U.start+U.headerSize),U}}var Wa=function(){for(var e=[],t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];return n.forEach((function(t){e.push(function(e,t,n){for(var U=String(n),F=t>>0,a=Math.ceil(F/U.length),i=[],Q=String(e);a--;)i.push(U);return i.join("").substring(0,F-Q.length)+Q}(Number(t).toString(16),2,0))})),e[0]};function ka(e,t,n,U){return e[t]?U?U(e[t]):e[t]:n}var Ea=function(){function e(t){var n,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},F=arguments.length>2?arguments[2]:void 0;R(this,e),kF(this),this.url=t,this.options=U,this.dash=F,this.useSeparationMode=null===(n=this.dash.config)||void 0===n?void 0:n.useSeparationMode,this.mediaList={video:[],audio:[]},this.mediaList.audio.selectedIdx=0,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,this._loadStates={video:this._createLoadingState(),audio:this._createLoadingState()}}var t;return V(e,[{key:"_createLoadingState",value:function(){return{currentIndex:0,isLoading:!1}}},{key:"readyPromise",get:function(){return this._readyPromise}},{key:"setLoadingState",value:function(e,t){this._loadStates[e].isLoading=t}},{key:"calcVideoCodeType",value:function(e,t){if(e||t){var n=null;t?n=t.split(".")[0]:e&&(n=e.split(".")[0]);for(var U=Object.keys(KF),F=0;F<U.length;F++){var a=U[F],i=KF[a];if(i.types.concat(i.visualEntryBox).indexOf(n)>-1){this.videoCodecType="hevc"===a?"h265":a,this.videoCodecs=i.codecs;break}}pt.log("mpd dataType:",e,"codecs:",t,"cal type:",this.videoCodecType,"videoCodecs",this.videoCodecs),this.videoCodecType||(this.videoCodecType=GF,this.videoCodecs=KF[GF].codecs,console.warn("calcVideoCodeType default")),this.dash&&this.dash._pluginInst&&this.dash._pluginInst.setCodeInfo(this.videoCodecType)}}},{key:"fetch",value:(t=c(o().mark((function t(n){var U,F,a,i,Q,l,r,d,s;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return U=this,F={TYPE:"LIVE",ENDLIST:""},a=[],t.prev=3,i=new Bt({}),t.next=7,i.load(n);case 7:if(Q=t.sent,!(l=Q.data)){t.next=21;break}if(r=e.parseMPD(l)){t.next=13;break}throw new Error("parse mpd error");case 13:return this._parseMeta(F,r),this._parseSegments(r,n),["video","audio"].forEach((function(e){U.mediaList[e].length>0&&(U.mediaList[e].selectedIdx="video"===e&&U.dash.selectedIdx||0,U.mediaList[e].sort((function(t,n){return"video"===e?n.height-t.height:n.bandwidth-t.bandwidth})))})),0===U.mediaList.video.length&&0===U.mediaList.audio.length&&(null===(d=U.dash)||void 0===d||d.emit("error",new LF(oe,me.DASH,{url:n,message:"NO_MEDIALIST fetch"}))),t.abrupt("return",{meta:F,segments:a});case 21:throw U.dash.emit("error",new LF(oe,me.DASH,{url:n,message:"mpd parse error"})),new Error("MPD_PARSE_ERROR");case 23:t.next=29;break;case 25:throw t.prev=25,t.t0=t.catch(3),U.dash.emit("error",new LF(Je,LF.MPD_INIT_ERROR,{httpCode:null===(s=t.t0.response)||void 0===s?void 0:s.status,url:n,message:null===t.t0||void 0===t.t0?void 0:t.t0.message})),new Error(t.t0);case 29:case"end":return t.stop()}}),t,this,[[3,25]])}))),function(e){return t.apply(this,arguments)})},{key:"_parseMeta",value:function(e,t){"static"===t.type&&(e.TYPE="VOD"),t.minBufferTime&&(e.minBufferTime=bU.durationConvert(t.minBufferTime)),t.maxSegmentDuration&&(e.maxSegmentDuration=bU.durationConvert(t.maxSegmentDuration)),t.mediaPresentationDuration&&(this.duration=bU.durationConvert(t.mediaPresentationDuration));var n=t.Period[0];!this.duration&&n&&n.duration&&(this.duration=bU.durationConvert(n.duration)),e.duration=this.duration}},{key:"_parseST",value:function(e,t,n,U,F){for(var a=parseFloat(e.timescale),i=parseFloat(e.duration),Q=Math.round(i/a),l=parseInt(e.startNumber,10),r=l+Math.ceil(this.duration/Q)-1,d=l;d<=r;d++){var o=Q*(d-l),s=Q*(d-l+1);d===r&&(Q=this.duration-Q*(r-l),s=this.duration),t.push({idx:d,start:Math.round(o),end:Math.round(s),url:U+e.media.replace("$RepresentationID$",n).replace("$Number%04d$",bU.preFixInterge(d,4)),downloaded:0,segmentDuration:Q,height:F})}}},{key:"_getVideoSegments",value:function(e){var t,n,U,F,a=e.bandwidth,i=e.id,Q=e.baseURL,l=e.initSegment,r=e.mediaSegments,d=e.mimeType,o=e.codecs,s=e.width,B=e.height,c=e.frameRate,R=e.sar,u=e.startWithSAP,V=e.timescale,h=e.duration,Z=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_video_list)for(var S=0;S<this.options.dynamic_video.dynamic_video_list.length;S++){var p=this.options.dynamic_video.dynamic_video_list[S];p.bitrate===a&&(t=p.size,n=p.definition,U=p.file_id,F=p.audio_file_id)}this.mediaList.video.push({id:i,baseURL:Q,initSegment:Q+l.replace("$RepresentationID$",i),inited:!1,mediaSegments:r,mimeType:d,codecs:o,width:s,height:B,size:t,frameRate:c,sar:R,startWithSAP:u,bandwidth:a,timescale:V,duration:h,encrypted:Z,definition:n,fileId:U,audioFileId:F})}},{key:"_getAudioSegments",value:function(e){var t,n=e.bandwidth,U=e.id,F=e.baseURL,a=e.initSegment,i=e.mediaSegments,Q=e.mimeType,l=e.codecs,r=e.startWithSAP,d=e.timescale,o=e.duration,s=e.encrypted;if(this.options.dynamic_video&&this.options.dynamic_video.dynamic_audio_list)for(var B=0;B<this.options.dynamic_video.dynamic_audio_list.length;B++)this.options.dynamic_video.dynamic_audio_list[B].bitrate===n&&(t=this.options.dynamic_video.dynamic_audio_list[B].size);this.mediaList.audio.push({id:U,baseURL:F,initSegment:F+a.replace("$RepresentationID$",U),inited:!1,mediaSegments:i,mimeType:Q,codecs:l,startWithSAP:r,bandwidth:n,size:t,timescale:d,duration:o,encrypted:s})}},{key:"_parseSegments",value:function(e,t){var n=this,U=[],F="";e.BaseURL&&(F=e.BaseURL[0]);var a=e.Period[0];a.AdaptationSet&&a.AdaptationSet.length>1&&a.AdaptationSet.forEach((function(e){var a="video/mp4",i="avc1.64001E",Q="640",l="360",r="25",d="1:1",o="1",s="588633";e.mimeType&&("video/mp4"===(a=e.mimeType)?(i=e.codecs,Q=parseFloat(e.width),l=parseFloat(e.height),r=parseFloat(e.frameRate),d=e.sar,o=e.startWithSAP,s=parseFloat(e.bandwidth),n.calcVideoCodeType(null,i)):"audio/mp4"===a&&(i=e.codecs,o=e.startWithSAP,s=parseFloat(e.bandwidth))),e.Representation.forEach((function(B){U.indexOf(B.id)>-1&&(B.id=(parseInt(U[U.length-1],10)+1).toString()),U.push(B.id);var c,R="",u=[],V=0,h=t.slice(0,t.lastIndexOf("/")+1)+F;"video/mp4"===(a=ka(B,"mimeType",a))?(B.codecs&&(i=B.codecs,n.calcVideoCodeType(null,i)),Q=ka(B,"width",Q,parseFloat),l=ka(B,"height",l,parseFloat),r=ka(B,"frameRate",r,parseFloat),d=ka(B,"sar",d)):"audio/mp4"===a&&(i=ka(B,"codecs",i)),o=ka(B,"startWithSAP",o),s=ka(B,"bandwidth",s,parseFloat),B.BaseURL&&B.BaseURL.length>0&&(h+=B.BaseURL[0]),e.SegmentTemplate&&e.SegmentTemplate.length>0&&(c=e.SegmentTemplate[0]),B.SegmentTemplate&&B.SegmentTemplate.length>0&&(c=B.SegmentTemplate[0]);var Z=!1;(e.ContentProtection||B.ContentProtection)&&(Z=!0),c&&(R=c.initialization,V=parseFloat(c.duration),n._parseST(c,u,B.id,h,l)),s=parseInt(s),"video/mp4"===a?n._getVideoSegments({id:B.id,bandwidth:s,baseURL:h,initSegment:R,mediaSegments:u,mimeType:a,codecs:i,width:Q,height:l,frameRate:r,sar:d,startWithSAP:o,timescale:0,duration:V,encrypted:Z}):"audio/mp4"===a&&n._getAudioSegments({id:B.id,baseURL:h,bandwidth:s,initSegment:R,mediaSegments:u,mimeType:a,codecs:i,startWithSAP:o,timescale:0,duration:V,encrypted:Z})}))}))}},{key:"getCurrDefition",value:function(){var e,t=this.mediaList,n=t.video,U=t.audio,F={all:{},videoFileId:n[n.selectedIdx].fileId,audioFileId:U[U.selectedIdx].fileId},a=f(n);try{for(a.s();!(e=a.n()).done;){var i=e.value;F.all[i.fileId]=i}}catch(d){a.e(d)}finally{a.f()}var Q,l=f(U);try{for(l.s();!(Q=l.n()).done;){var r=Q.value;F.all[r.fileId]=r}}catch(d){l.e(d)}finally{l.f()}return F}},{key:"init",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this;this.mediaList={video:[],audio:[]};var U=n.options;if(U.dynamic_video.dynamic_type&&"segment_template"!==U.dynamic_video.dynamic_type){n.dashType="segment_base";U.duration;var F,a=U.dynamic_video;if(["dynamic_video_list","dynamic_audio_list"].forEach((function(e){var F="dynamic_audio_list"===e,i=0;a[e].forEach((function(a,Q){var l=parseInt(a.init_range.split("-")[0],10),r=parseInt(a.init_range.split("-")[1],10),d=parseInt(a.index_range.split("-")[0],10),o=parseInt(a.index_range.split("-")[1],10),s=a.first_segment_range,B=s?[parseInt(s.split("-")[0],10),parseInt(s.split("-")[1],10)]:null;F||n.calcVideoCodeType(a.codec_type);var c=a.fileId||a.file_id,R="dynamic_audio_list"===e?"audio":"video",u="video"===R?t&&t.videoFileId:t&&t.audioFileId,V=t&&t.all,h=V&&V[c];c===u&&(n.mediaList[R].selectedIdx=Q,h.wrapperData&&(h.wrapperData.newIdx=Q),h.mediaSegments&&h.mediaSegments.forEach((function(e){e.selectedIdx=Q}))),n.mediaList[R].push({id:(i++).toString(),baseURL:a.main_url,initSegment:a.main_url,initSegmentRange:[l,r],sidxRange:[d,o],firstMoofMdatRange:B,inited:!1,hasSidx:!1,mediaSegments:h?h.mediaSegments:[],mimeType:F?"audio/mp4":"video/mp4",codecs:F?"mp4a.40.2":a.codec_type&&a.codec_type.indexOf("h265")>-1?"hev1.1.6.L93.B0":n.videoCodecs,width:a.vwidth,height:a.vheight,bandwidth:parseInt(a.bitrate),avg_bitrate:a.avg_bitrate,size:a.size,timescale:-1,duration:U.duration,encrypted:a.encrypt,kid:a.kid,definition:a.definition,sidxRes:void 0,fileId:a.file_id,audioFileId:a.audio_file_id,fallbackUrl:a.fallback_url,hasFallback:!1,backupUrl:a.backup_url_1,hasBackup:!1,wrapperData:h?h.wrapperData:null})}))})),n.type="vod",["video","audio"].forEach((function(e){n.mediaList[e].length>0&&(t||(n.mediaList[e].selectedIdx="video"===e&&n.dash.selectedIdx||0),"video"===e&&n.mediaList[e].sort((function(t,n){return"video"===e?n.height-t.height:n.bandwidth-t.bandwidth})))})),0===n.mediaList.video.length&&0===n.mediaList.audio.length)pt.log("medaiList is null",JSON.stringify(n.options.dynamic_video)),null===(F=n.dash)||void 0===F||F.emit("error",new LF(oe,me.DASH,{message:"NO_MEDIALIST"}));e&&n.emit("ready"),n._readyPromise.resolve()}else n.dashType="segment_template",n.fetch(U.dynamic_video.main_url).then((function(e){n.type=e.meta.TYPE.toLocaleLowerCase(),n.emit("ready"),n._readyPromise.resolve()}),(function(){["video","audio"].forEach((function(e){n.mediaList[e]=[]})),n.retry++,n.retry,n.retryMax}))}},{key:"getSidx",value:function(e){var t,n=this,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"video",F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3?arguments[3]:void 0,i=this,Q=i.mediaList[U][F],l=Q.sidxRange[1];try{var r=e instanceof ArrayBuffer?e:e.buffer,d=new Uint8Array(r),o=String.fromCharCode.apply(null,d.subarray(4,8));if("sidx"!==o)throw pt.log("mpd sdix parse err"),new Error("topLevel ".concat(o,", index:").concat(F,", res:").concat(e.byteLength,", range:").concat(JSON.stringify(Q.sidxRange)));var s=(t=Sa.sidx(Sa.findBox(new Uint8Array(r),[])[0])).timescale,B=[],c=0,R=0,u=l+1,V=u-1;t.references.forEach((function(e,t){R+=e.subsegment_duration,V+=e.referenced_size,B.push({idx:t+1,url:Q.initSegment,start:Math.round(c/s),end:Math.round(R/s),startRaw:c/s,endRaw:R/s,range:[u,V],downloaded:Q.firstMoofMdatRange&&0===c?1:0,segmentDuration:Math.round(e.subsegment_duration/s),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:n.getCodecType(),mediaType:U,selectedIdx:F,fileId:Q.fileId}),c=R+1,u=V+1})),B[0].startTime_=0,Q.mediaDuration=0,B.forEach((function(e,t){Q.mediaDuration+=e.segmentDuration,t>0&&(e.startTime_=B[t-1].startTime_+B[t-1].segmentDuration),t===B.length-1&&a&&(e.end=a)})),Q.hasSidx=!0,Q.mediaSegments=B,Q.timescale=s,Q.sidxRes=e}catch(h){if(i.sidxHanded)return;throw i.sidxHanded=!0,new LF(Ve,me.SIDX,{line:398,handle:"[MPD] getSidx",message:"mpd segment base Parse getSidx error ".concat(U," err: ").concat(h.message)})}}},{key:"getCodecType",value:function(){return("hevc"===this.videoCodecType?"h265":this.videoCodecType)||"h264"}},{key:"checkInBuffered",value:function(e,t,n){return 0!==e.length&&this._inBufferd(t,n,e)}},{key:"_inBufferd",value:function(e,t,n){for(var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5,F=0;F<n.length;F++){var a=n[F].start,i=n[F].end;if(!(t<a||e>i)&&(a-U<e&&t<i+U))return!0}return!1}},{key:"getBuffered",value:function(e){return this._getBuffered(e)}},{key:"_getBuffered",value:function(e){var t=this._getMseBuffered(e);if(!t||0===t.length)return[];for(var n=[],U=0;U<t.length;U++)n.push({start:t.start(U),end:t.end(U)});return n}},{key:"_getMseBuffered",value:function(e){var t,n,U,F,a,i=this.dash.mse;if(!i)return[];"[object Function]"===Object.prototype.toString.call(i.buffered)?t=this.dash.mse.buffered(e):t="video"===e?null===(n=i.timeline)||void 0===n||null===(U=n.videoRender)||void 0===U?void 0:U.buffered:null===(F=i.timeline)||void 0===F||null===(a=F.audioRender)||void 0===a?void 0:a.buffered;return t}},{key:"seek",value:function(e,t,n){return this._getMediaResultsSeparate(e,t,["video","audio"],n)}},{key:"setSegmentIndexByTime",value:function(e){this._setSegmentBySeek(e,"video"),this._setSegmentBySeek(e,"audio")}},{key:"getCurSegment",value:function(){for(var e=["video","audio"],t={},n=0;n<e.length;n++){var U,F=e[n],a=null===(U=this.mediaList[F][this.mediaList[F].selectedIdx])||void 0===U?void 0:U.mediaSegments;if(a){var i,Q,l,r=this._loadStates[F].currentIndex;t[F]=a[r],pt.log("getCurSegment",F,null===(i=t[F])||void 0===i?void 0:i.idx,null===(Q=t[F])||void 0===Q?void 0:Q.start,null===(l=t[F])||void 0===l?void 0:l.end,"idx",r,"len",a.length)}}return t}},{key:"getVideoFirstGop",value:function(){var e,t="video",n=null===(e=this.mediaList[t][this.mediaList[t].selectedIdx])||void 0===e?void 0:e.mediaSegments;return null==n?void 0:n[0]}},{key:"checkRemovedSegment",value:function(e){for(var t=["video","audio"],n={},U=0;U<t.length;U++){var F=t[U],a=e[F];if(a){var i=this._getBuffered(F);!this.checkInBuffered(i,a.startRaw,a.endRaw)&&(n[F]={remove:!0,start:a.startRaw,end:a.endRaw})}}return n}},{key:"_setSegmentBySeek",value:function(e,t){var n=this._findSegmentIndexByTime(t,e),U=n;n=this._adjustSegIndex(n,t),pt.log("_setSegmentBySeek",t,U,"newSeg",n),this.setNextSegmentIndex(t,n),this.setLoadingState(t,!1)}},{key:"_adjustSegIndex",value:function(e,t){var n=this.mediaList[t][this.mediaList[t].selectedIdx].mediaSegments;if(n.length>0)for(var U=this._getBuffered(t),F=e;F<n.length;F++){var a=n[F];if(this._isItemBufferRemoved(t,U,a),0===(null==a?void 0:a.downloaded)){e=F;break}}return e}},{key:"setNextSegmentIndex",value:function(e,t){this._loadStates[e].currentIndex=t}},{key:"moveNextSegmentIndex",value:function(e,t){if(t-1===this._loadStates[e].currentIndex){var n=this._loadStates[e].currentIndex,U=this._adjustSegIndex(n+1,e);this._loadStates[e].currentIndex=U,n+1!==U&&pt.log("seekResult moveNextSegmentIndex mediaType",e,"segIdx",n+1,"segIdx",U)}}},{key:"_getMediaResultsSeparate",value:function(e,t,n,U){for(var F={},a=0;a<n.length;a++){var i=n[a];F[i]=[];var Q=this._getCurBuffered(i),l=this._getBuffered(i),r=this._loadStates[i];if(!r.isLoading&&!(e+t<(null==Q?void 0:Q[1]))){var d=this.mediaList[i][this.mediaList[i].selectedIdx].mediaSegments;if(0!==d.length&&!(r.currentIndex>=d.length)){var o=r.currentIndex,s=d[o];if(s){var B=s.end-s.start;if(0===(null==Q?void 0:Q[1])||(null==Q?void 0:Q[1])>0&&s.start-Q[1]>B+1){var c=this._findSegmentIndexByTime(i,e);if(c!==o-1||U){var R,u,V=c;(null==Q?void 0:Q[1])>0&&(V=this._adjustSegIndex(c,i),pt.log("getMediaResults adjust1",i,o,"new",c,"adjustIdx",V,"buf",null==Q?void 0:Q[1])),this.setNextSegmentIndex(i,V),s=d[r.currentIndex],pt.log("getMediaResults",i,o,"new",c,"adjustIdx",V,"buf",null==Q?void 0:Q[1],"gap",(null===(R=s)||void 0===R?void 0:R.start)-Q[1],"mediaBuffers",JSON.stringify(l),"seg downloaded",null===(u=s)||void 0===u?void 0:u.downloaded)}else pt.log("getMediaResults seq",i,"nsegIndex",c)}if(s)if(s.start-e>t)console.log("outof time");else{var h=this.checkInBuffered(l,s.startRaw,s.endRaw);if(0===(null==Q?void 0:Q[1])&&h&&(pt.log("_getMediaResults buffer gap fix",i),r.currentIndex<d.length-1&&(r.currentIndex++,s=d[r.currentIndex])),(null==Q?void 0:Q[1])>0&&s.end<e){var Z=s.end;this._setSegmentBySeek(Q[1],i),s=d[r.currentIndex],pt.log("getMediaResults low",i,"curBuffers",Q,"orgEnd",Z,"newend",s.end,"currentTime",e)}s&&s.downloaded===Dt&&F[i].push(s)}}}}}return F}},{key:"_findSegmentIndexByTime",value:function(e,t){var n=this.mediaList[e][this.mediaList[e].selectedIdx].mediaSegments;if(n&&n.length>0){for(var U=0;U<n.length;U++){var F=n[U];if(t>=F.start&&t<F.end)return U}var a=n[n.length-1];if(Math.abs(t-(null==a?void 0:a.end))<.2)return n.length-1}return-1}},{key:"_getCurBuffered",value:function(e){var t,n=this._getMseBuffered(e);return Array.isArray(n)?[0,0]:null===(t=this.dash.player)||void 0===t?void 0:t.getBufferedRange(n)}},{key:"_isItemBufferRemoved",value:function(e,t,n){if(n&&n.downloaded===xt)return!this.checkInBuffered(t,n.startRaw,n.endRaw)&&(pt.log("".concat(e," start:").concat(n.start," end:").concat(n.end," segment downloaded to set false")),n.downloaded=Dt,!0);if(n&&n.downloaded===Dt&&this.checkInBuffered(t,n.startRaw,n.endRaw))return n.downloaded=xt,pt.log("".concat(e," start:").concat(n.start," end:").concat(n.end," segment downloaded to append")),!1;return!1}},{key:"clearBuffer",value:function(e,t,n){if(!(e>t)){pt.log("mpd clearBuffer ".concat(n," start:").concat(e," end:").concat(t));var U=this,F=n?[n]:["video","audio"];"vod"===U.type&&F.forEach((function(n){if(U.mediaList[n].length>0){var F=U.mediaList[n][U.mediaList[n].selectedIdx],a=[];F.mediaSegments.forEach((function(n,U){n.end<e||n.start>t||(n.downloaded=Dt,n.extRange=void 0,a.push(U))}));var i=a.length>0?a[0]:void 0,Q=a.length>1?a[a.length-1]:i;pt.log("".concat(n," start:").concat(e," end:").concat(t,",\n startId:").concat(i," , endId:").concat(Q,", segment downloaded set false"))}}))}}},{key:"isLastSegmentAndAppend",value:function(e,t){if(!this.mediaList[e])return!0;var n=t-1,U=this.mediaList[e].selectedIdx,F=this.mediaList[e][U].mediaSegments;return!!F&&(!F[n]||this._isSegmentAppend(F[n])&&F.length-1===n)}},{key:"_isSegmentAppend",value:function(e){return e.downloaded===xt}},{key:"isSegmentAppendFromIdx",value:function(e,t){if(!this.mediaList[e])return{res:!0,emptyTrack:!0};var n=0,U=this.mediaList[e].selectedIdx,F=this.mediaList[e][U].mediaSegments||[];if(0===F.length)return{res:!0,emptySegments:!0};for(var a=0;a<F.length;a++)if(F[a].start<=t&&t<=F[a].end){n=a;break}F&&t>=F[F.length-1].end&&(n=F.length-1);var i=!0;if(F){for(var Q=n;n<F.length&&F[Q];Q++)if(!this._isSegmentAppend(F[Q])){i=!1;break}}else i=!1;return{res:i}}}],[{key:"parseMPD",value:function(e){var t;if("string"==typeof e&&(t=e),e instanceof ArrayBuffer){var n=new Uint8Array(e);t=String.fromCharCode.apply(null,n)}if(!t)return null;var U=performance.now();return t=t.replace(/<(\/)?(\w+:)+(\w+)/g,"<$1$3"),pt.log("MPD cost",performance.now()-U),L.parse(t)}}]),e}(),ya=Ea,fa=function(e){return e[e.INDEXDB=0]="INDEXDB",e[e.MEMORY=1]="MEMORY",e}(fa||{}),Na=function(e){return e.PRELOAD_NEXT="PRELOAD_NEXT",e.PRELOAD_START="PRELOAD_START",e.PRELOAD_CANCEL="PRELOAD_CANCEL",e}(Na||{});var va=function(){try{if("undefined"!=typeof indexedDB)return indexedDB}catch(e){}}();function Ta(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function Ca(e){return"string"!=typeof e&&(console.warn("".concat(e," used as a key, but it is not a string.")),e=String(e)),e}var ga={},Da="readonly",Xa="readwrite";function xa(e){var t=ga[e.name],n={};n.promise=new Promise((function(e,t){n.resolve=e,n.reject=t})),t.deferredOperations.push(n),t.dbReady?t.dbReady=t.dbReady.then((function(){return n.promise})):t.dbReady=n.promise}function La(e,t){return new Promise((function(n,U){if(ga[e.name]=ga[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return n(e.db);xa(e),e.db.close()}var F=[e.name];t&&F.push(e.version);var a=null==va?void 0:va.open.apply(va,F);t&&(a.onupgradeneeded=function(t){var n=a.result;try{n.createObjectStore(e.storeName)}catch(U){if("ConstraintError"!==U.name)throw U;console.warn('The database "'.concat(e.name,'" has been upgraded from version ').concat(t.oldVersion," to\n version ").concat(t.newVersion,', but the storage "').concat(e.storeName,'" already exists.'))}}),a.onerror=function(e){e.preventDefault(),U(a.error)},a.onsuccess=function(){n(a.result),function(e){var t=ga[e.name].deferredOperations.pop();if(t)t.resolve(),t.promise}(e)}}))}function Ia(e){return La(e,!1)}function Ga(e){return La(e,!0)}function Ma(e,t){if(!e.db)return!0;var n=!e.db.objectStoreNames.contains(e.storeName),U=e.version<e.db.version,F=e.version>e.db.version;if(U&&(e.version!==t&&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||n){if(n){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function Ya(e){xa(e);for(var t=ga[e.name],n=t.forages,U=0;U<n.length;U++){var F=n[U];F._dbInfo.db&&(F._dbInfo.db.close(),F._dbInfo.db=null)}return e.db=null,Ia(e).then((function(t){return e.db=t,Ma(e)?Ga(e):t})).then((function(U){e.db=t.db=U;for(var F=0;F<n.length;F++)n[F]._dbInfo.db=U})).catch((function(t){throw function(e,t){var n=ga[e.name].deferredOperations.pop();if(n)n.reject(t),n.promise}(e,t),t}))}function wa(e,t,n,U){void 0===U&&(U=1);try{var F=e.db.transaction(e.storeName,t);n(null,F)}catch(a){if(U>0&&(!e.db||"InvalidStateError"===a.name||"NotFoundError"===a.name))return Promise.resolve().then((function(){if(!e.db||"NotFoundError"===a.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),Ga(e)})).then((function(){return Ya(e).then((function(){wa(e,t,n,U-1)}))})).catch(n);n(a)}}var Ka=function(){function e(){R(this,e)}return V(e,[{key:"ready",value:function(){return this._ready}},{key:"_initStorage",value:function(e){var t=this;t._defaultConfig=e;var n={db:null,name:"",version:""};if(e)for(var U in e)n[U]=e[U];var F=ga[n.name];F||(F={forages:[],db:null,dbReady:null,deferredOperations:[]},ga[n.name]=F),F.forages.push(t),t._initReady||(t._initReady=t.ready,t._ready=t._fullyReady);var a=[];function i(){return Promise.resolve()}for(var Q=0;Q<F.forages.length;Q++){var l=F.forages[Q];l!==t&&a.push(l._initReady().catch(i))}var r=F.forages.slice(0);return t._ready=Promise.all(a).then((function(){return n.db=F.db,Ia(n)})).then((function(e){return n.db=e,Ma(n,t._defaultConfig.version)?Ga(n):e})).then((function(e){n.db=F.db=e,t._dbInfo=n;for(var U=0;U<r.length;U++){var a=r[U];a!==t&&(a._dbInfo.db=n.db,a._dbInfo.version=n.version)}})),t._ready}},{key:"probeSupport",get:function(){return function(){try{if(null==va||!va.open)return!1;var e=/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(n){return!1}}()}},{key:"getItem",value:function(e,t){var n=this;e=Ca(e);var U=new Promise((function(t,U){n.ready().then((function(){wa(n._dbInfo,Da,(function(F,a){if(F)return U(F);try{var i=a.objectStore(n._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),t(e)},i.onerror=function(){U(i.error)}}catch(Q){U(Q)}}))})).catch(U)}));return Ta(U,t),U}},{key:"setItem",value:function(e,t,n){var U=this;e=Ca(e);var F=new Promise((function(n,F){U.ready().then((function(){return U._dbInfo,t})).then((function(t){wa(U._dbInfo,Xa,(function(a,i){if(a)return F(a);try{var Q=i.objectStore(U._dbInfo.storeName);null===t&&(t=void 0);var l=Q.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),n(t)},i.onabort=i.onerror=function(){var e=l.error?l.error:l.transaction.error;F(e)}}catch(r){F(r)}}))})).catch(F)}));return Ta(F,n),F}},{key:"removeItem",value:function(e,t){var n=this;e=Ca(e);var U=new Promise((function(t,U){n.ready().then((function(){wa(n._dbInfo,Xa,(function(F,a){if(F)return U(F);try{var i=a.objectStore(n._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){U(i.error)},a.onabort=function(){var e=i.error?i.error:i.transaction.error;U(e)}}catch(Q){U(Q)}}))})).catch(U)}));return Ta(U,t),U}},{key:"clear",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wa(t._dbInfo,Xa,(function(U,F){if(U)return n(U);try{var a=F.objectStore(t._dbInfo.storeName).clear();F.oncomplete=function(){e()},F.onabort=F.onerror=function(){var e=a.error?a.error:a.transaction.error;n(e)}}catch(i){n(i)}}))})).catch(n)}));return Ta(n,e),n}},{key:"length",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wa(t._dbInfo,Da,(function(U,F){if(U)return n(U);try{var a=F.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){n(a.error)}}catch(i){n(i)}}))})).catch(n)}));return Ta(n,e),n}},{key:"all",value:function(e){var t=this,n=new Promise((function(e,n){t.ready().then((function(){wa(t._dbInfo,Da,(function(U,F){if(U)return n(U);try{var a=F.objectStore(t._dbInfo.storeName).openCursor(),i=[];a.onsuccess=function(){var t=a.result;t?(i.push({key:t.key,value:t.value}),t.continue()):e(i)},a.onerror=function(){n(a.error)}}catch(Q){n(Q)}}))})).catch(n)}));return Ta(n,e),n}},{key:"_fullyReady",value:function(e){var t=this,n=t._initReady().then((function(){var e=ga[t._dbInfo.name];if(null!=e&&e.dbReady)return e.dbReady}));return function(e,t,n){"function"==typeof t&&e.then(t),"function"==typeof n&&e.catch(n)}(n,e,e),n}},{key:"getItemSync",value:function(){throw new Error("NotSupported")}}]),e}(),_a=function(){function e(){R(this,e)}return V(e,[{key:"_initStorage",value:function(e){var t=e.name,n=e.storeName,U="".concat(t,"_").concat(n);return this.key=U,window[U]&&"object"===s(window[U])||(window[U]={}),this.store=window[U],Promise.resolve()}},{key:"getItem",value:function(e,t){var n=this.store[e];return void 0===n&&(n=null),this._internalPromise(t,n)}},{key:"getItemSync",value:function(e,t){var n=this.store[e];return void 0===n&&(n=null),t&&t(n),n}},{key:"setItem",value:function(e,t,n){return this.store[e]=t,this._internalPromise(n)}},{key:"removeItem",value:function(e,t){return delete this.store[e],this._internalPromise(t)}},{key:"clear",value:function(e){return this.store={},window[this.key]={},this._internalPromise(e)}},{key:"length",value:function(e){var t=Object.keys(this.store).length;return this._internalPromise(e,t)}},{key:"_internalPromise",value:function(e,t){var n=t?Promise.resolve(t):Promise.resolve();return Ta(n,e),n}},{key:"all",value:function(e){for(var t=[],n=Object.keys(this.store),U=0;U<n.length;U++){var F=n[U];t.push({key:F,value:this.store[F]})}return this._internalPromise(e,t)}},{key:"probeSupport",value:function(){return!0}}]),e}(),ja={description:"",name:"__PRE_CACHE__",storeName:"keyvaluepairs",version:1},Ha="__PRE_CACHE__KEYS",Pa=function(){function e(t,n){R(this,e),this._allCachedKeyMap={},this._memory=0,this._cnt=0;var U=n===fa.MEMORY?_a:Ka;this._cacheType=n,this._driver=new U,this._driver._initStorage(ja).catch((function(){})),this._hasIdbForbidden=!1,this._maxCache=!t||t<=0?200:t,this.setMaxCache(this._maxCache),this._allCachedKeys={},this._allCachedTimeKeys={},this.getCachedKeysFromLocal(),this._readyPromise=new x,this.init()}var t;return V(e,[{key:"supportSync",value:function(){return this._cacheType===fa.MEMORY}},{key:"getCachedKeysFromLocal",value:function(){var e=X.getItem(Ha);if(e)for(var t=e.split("|"),n=0;n<t.length;n++){var U=t[n],F=this._getCacheKeyInfos(U),a=F.time,i=F.cachedKey;this._allCachedKeys[i]=1,this._allCachedTimeKeys[i]=a}}},{key:"_getCacheKeyInfos",value:function(e){var t,n=e.split("$");return 2===n.length&&(t=n[0],e=n[1]),{time:t,cachedKey:e}}},{key:"writeCachedKeysToLocal",value:function(e){var t=[];this._allCachedKeys={},this._allCachedTimeKeys={};for(var n=0;n<e.length;n++){var U=e[n].key,F=this._getCacheKeyInfos(U),a=F.time,i=F.cachedKey;this._allCachedKeys[i]=1,this._allCachedTimeKeys[i]=a,t.push(U)}var Q=t.join("|");X.setItem(Ha,Q)}},{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 _a,e._driver._initStorage(ja)),e._getAll(),e._readyPromise.resolve()}))}},{key:"_getAll",value:function(){var e=this;this._memory=0,this._cnt=0,this._driver.all().then((function(t){e._cachedLength=t.length;var n=t.length-e._maxCache,U=t;if(n>0){var F=t.slice(0,n);U=t.slice(n);for(var a=0;a<F.length;a++)e.removeItem(F[a].key).then((function(){}))}e._cnt=U.length;for(var i=0;i<U.length;i++){var Q=U[i];if("object"===s(Q.value)){Object.values(Q.value).forEach((function(t){e._memory+=(null==t?void 0:t.memory)||0}));var l=e._getCacheKeyInfos(Q.key).cachedKey;e._allCachedKeyMap[l]=Object.keys(Q.value)}}e.writeCachedKeysToLocal(U)})).catch((function(){}))}},{key:"getAllCachedDataKeys",value:function(){var e=[];return Object.values(this._allCachedKeyMap).forEach((function(t){e.push.apply(e,k(t))})),e}},{key:"getItem",value:(t=c(o().mark((function e(t,n,U){var F,a,i,Q,l;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((F=this.hasItem(t))&&U&&(a=this._allCachedKeyMap[t],F=(null==a?void 0:a.includes(U))||!1),F){e.next=4;break}return e.abrupt("return",Promise.resolve(!1));case 4:return i=this._getTimeKey(t),Q=i.timeKey,e.next=7,this._driver.getItem(Q,n);case 7:if(l=e.sent,!U){e.next=10;break}return e.abrupt("return",l[U]);case 10:return e.abrupt("return",l);case 11:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.apply(this,arguments)})},{key:"getItemSync",value:function(e,t,n){var U=this.hasItem(e);if(U&&n){var F=this._allCachedKeyMap[e];U=(null==F?void 0:F.includes(n))||!1}if(!U)return!1;var a=this._getTimeKey(e).timeKey,i=this._driver.getItemSync(a,t);return n?i[n]:i}},{key:"setItem",value:function(e,t,n){var U=this;this._getTimeKey(e).timeKey&&this.removeItem(e);var F=(new Date).getTime();this._allCachedKeys[e]=1,this._allCachedTimeKeys[e]=F;var a=this._genTimeKey(e,F);return n=n?function(){U._getAll(),n()}:function(){U._getAll()},this._driver.setItem(a,t,n)}},{key:"_getTimeKey",value:function(e){var t=this._allCachedTimeKeys[e],n=e;return t&&(n=this._genTimeKey(e,t)),{timeKey:n,time:t}}},{key:"_genTimeKey",value:function(e,t){return"".concat(t).concat("$").concat(e)}},{key:"removeItem",value:function(e,t){var n=this._getTimeKey(e).timeKey,U=this._driver.removeItem(n,t);return delete this._allCachedKeys[e],delete this._allCachedTimeKeys[e],delete this._allCachedKeyMap[e],U}},{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)}},{key:"getMemoryInfo",value:function(){return{memory:this._memory,cnt:this._cnt}}}]),e}(),za=Pa,Oa=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],Aa=0,qa=function(){function e(t){var n=this;R(this,e),this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._updateRealTimeSpeed=function(e){Aa=e.speed,n.emit(on,e)},this._manager=t}return V(e,[{key:"setPreloadBandwidth",value:function(e,t){this._preload_bandwith_map.set(e,t)}},{key:"getPreloadBandwidth",value:function(e){return this._preload_bandwith_map.get(e)}},{key:"_updateLoadInfo",value:function(e,t,n){var U=this._pcdn_info_map.get(e);!U&&(U={}),U[t]||(U[t]={},U[t].loadLen=0),U[t].loadLen=U[t].loadLen+n,this._pcdn_info_map.set(e,U)}},{key:"getLoadInfoAndDelete",value:function(e){var t=this._pcdn_info_map.get(e);return this._pcdn_info_map.delete(e),t}},{key:"getPreloadUnuseInfo",value:function(){var e,t={},n=f(this._preload_bandwith_map);try{for(n.s();!(e=n.n()).done;){var U=W(e.value,2),F=U[0],a=U[1];if(this._usepreload_info.get(F))this._preload_bandwith_map.delete(F);else{var i=F.split("#"),Q=i.length>0?i[0]:F;t[Q]?(t[Q].bw+=a.bw||0,t[Q].pbw+=a.pbw||0):t[Q]={vid:Q,bw:a.bw||0,pbw:a.pbw||0,bitrate:a.bitrate||0,duration:a.duration||0}}}}catch(l){n.e(l)}finally{n.f()}return Object.values(t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,U=e.size,F=e.speed,a=e.cacheKey,i=e.vtype,Q=e.duration,l=e.bitrate,r=J(e,Oa),o=this.getPreloadBandwidth(a)||{bw:0,pbw:0,vid:t,duration:Q,bitrate:l};n&&n!==sn?(o.pbw=o.pbw+U,this.emit("prf_data_size",d({vid:t,task_type:2,pcdn_size:U,pcdn_speed:F,vtype:i,bitrate:l,duration:Q},r))):(o.bw=o.bw+U,this.emit("prf_data_size",d({vid:t,task_type:2,cdn_size:U,cdn_speed:F,vtype:i,duration:Q,bitrate:l},r))),this.setPreloadBandwidth(a,o),this._updateRealTimeSpeed({speed:F,type:n||sn}),this._updateLoadInfo(a,n,U)}},{key:"setUsePreloadInfo",value:function(e,t){this._usepreload_info.set(e,t)}},{key:"realTimeSpeed",get:function(){return Aa}},{key:"emit",value:function(e,t){var n;null===(n=this._manager)||void 0===n||n.emit(e,t)}},{key:"destroy",value:function(){this._preload_bandwith_map=new Map,this._usepreload_info=new Map,this._pcdn_info_map=new Map,this._manager=null}}]),e}();function $a(e,t){var n=[0,0];if(e)for(var U=0,F=e.length;U<F&&(n[0]=e.start(U),n[1]=e.end(U),!(n[0]<=t&&t<=n[1]));U++);return n[0]-t<=0&&t-n[1]<=0?n:[0,0]}function ei(e,t,n){for(var U=0;U<e.length;U++)if(n===e[U][t])return U;return-1}var ti=["vid","loadType","size","speed","cacheKey","vtype","duration","bitrate"],ni=!1,Ui=function(e){Z(l,e);var t,n,U,F,a,i,Q=b(l);function l(){var e;return R(this,l),(e=Q.call(this))._loaders={},e._loaderInsts={},e._taskIntervalId=0,e._currentPreloadInst=null,e._preloadDataList=[],e._player=null,e._stepwise=!1,e._playingVids=[],e._isOpen=!0,e._userDefinition=null,e._startDefinition=null,e.onPreloadNext=c(o().mark((function t(){var n,U,F,a,i,Q,l,r,d,s,B,c,R,u;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(F=m(e),a=F._preloadDataList,i=F._config,!(!e._isOpen||e._currentPreloadInst||e._preloadDataList.length<1)){t.next=3;break}return t.abrupt("return",!1);case 3:if(Q=e.findPreloadItem(a,!1),l=null==Q?void 0:Q.data,Q&&null!=l&&l.payload){t.next=7;break}return t.abrupt("return",!1);case 7:if(null,r=e.selectBeforeStart(l),e._filterMixPayload(l,r),e.setStartDefinition(null===(n=r)||void 0===n?void 0:n.definition),e.log("log","selectBeforeStart",null===(U=r)||void 0===U?void 0:U.vtype,r),d=e._getPreloaderKey(r||l)){t.next=17;break}return e.log("warn","need to set vtype, no preloader",l),i.autoPreload&&e.emit(Na.PRELOAD_NEXT),t.abrupt("return",!1);case 17:if(s=e._getLoaderInst(d)){t.next=23;break}if(B=e._getLoader(d)){t.next=22;break}return t.abrupt("return",!1);case 22:s=new B(m(e),e._config);case 23:return e._currentPreloadInst=s,e._currentPreloadInst.setData(l),e._emitEvtByStart(l),t.prev=26,e.log("log","loaderInst.start",d,e.getStartDefinition(),l),t.next=30,s.start(l,e.getStartDefinition());case 30:(c=t.sent)&&c.remove&&(R=a.indexOf(Q))>-1&&a.splice(R,1),t.next=37;break;case 34:t.prev=34,t.t0=t.catch(26),e.log("error","preload data error!",t.t0);case 37:return t.prev=37,null===(u=e._currentPreloadInst)||void 0===u||u.setData(null),e._currentPreloadInst=null,e._config.autoPreload&&e.emit(Na.PRELOAD_NEXT),t.finish(37);case 42:return t.abrupt("return",!0);case 43:case"end":return t.stop()}}),t,null,[[26,34,37,42]])}))),e._stats=new qa(m(e)),e}return V(l,[{key:"VTYPES",get:function(){return ln}},{key:"player",get:function(){return this._player}},{key:"stepwise",get:function(){return this._stepwise}},{key:"realTimeSpeed",get:function(){return this._stats.realTimeSpeed}},{key:"currentPreloadInst",get:function(){return this._currentPreloadInst}},{key:"cacheInst",get:function(){return this._cacheInst}},{key:"preloadDataList",get:function(){return this._preloadDataList}},{key:"log",value:function(e){for(var t,n=arguments.length,U=new Array(n>1?n-1:0),F=1;F<n;F++)U[F-1]=arguments[F];ni&&(t=console)[e].apply(t,["[PreloaderManager]"].concat(U))}},{key:"register",value:function(e){try{if("undefined"==typeof window)return void this.log("preloader in ssr");var t=l.getDefaultConfig();this._config=Object.assign({},t,e.config),this._options=e;var n=this._config,U=n.preloadMaxCacheCount,F=n.preloadCacheType;this._stepwise=!!this._config.stepwise,this._cacheInst=new za(U,F),this._selector=e.BitrateSelector,this.on(Na.PRELOAD_NEXT,this.onPreloadNext);for(var a=e.loaders,i=0;i<a.length;i++)this.registerLoader(a[i].vtype,a[i])}catch(Q){this.log("register error",Q)}}},{key:"registerLoader",value:function(e,t){e&&(this._loaders[e]&&this.log("warn","vtype:".concat(e," Preloader already exist")),this._loaders[e]=t,this._loaderInsts[e]=new t(this,this._config))}},{key:"_checkIfCanPreload",value:function(){if(null===this._currentPreloadInst&&this._preloadDataList.length>0){var e=this.findPreloadItem(this._preloadDataList),t=null==e?void 0:e.data;if(this._wipPreloadTask=e,e&&null!=t&&t.payload){if(!this._getPreloaderKey(t))return this.log("warn","need to set vtype"),this.stopCheckTask(),!1;var n=this._config.checkIfCanPreload;return n&&"function"==typeof n?n(t):this._config.autoCheckPreload?this._autoCheckPreload(t,e):(this.stopCheckTask(),!1)}}return!1}},{key:"_autoCheckPreload",value:function(e,t){return this._media?function(e,t,n){if(!e)return!1;var U=$a(e.buffered,e.currentTime),F=t.startPreloadControl,a=t.startPreloadMinBuffer,i=t.startPreloadMinPosTime,Q=t.minBufferLength;if(F){var l=Math.max(U[1]-e.currentTime,0);if(l>a){if(e.currentTime>i||e.currentTime>e.duration/2)return null==n||n("log","[checkIfStartPreload] hit buffer",l,"startPreloadMinBuffer",a),!0}else if(e.currentTime+a+1>e.duration&&e.currentTime+l>e.duration-1)return null==n||n("log","[checkIfStartPreload] hit end"),!0}else{var r=e.duration>Q+5?Q:e.duration/2,d=Math.min(e.currentTime+Q,e.duration),o=U[1]-d;if(e.currentTime>r&&o>-1)return null==n||n("log","[checkIfStartPreload] hit minPos",r,"minCacheTime",d),!0}return!1}(this._media,this._config,this.log):(this.log("warn","need set video"),!1)}},{key:"_getPreloaderKey",value:function(e){return e.vtype?e.vtype.toUpperCase():""}},{key:"_sort",value:function(e){e.sort((function(e,t){return void 0===e.order&&void 0===t.order||"number"==typeof e.order&&"number"==typeof t.order&&e.order<t.order?-1:1}))}},{key:"_addPlayingVid",value:function(e,t){var n=this._playingVids,U=ei(this._playingVids,"playerId",e);U>-1?n[U].vid=t:n.push({vid:t,playerId:e})}},{key:"selectBeforeStart",value:function(e){var t=e.targetDefinition,n=e.defaultDefinition;if(t)return d({},t);var U=this.getUserSelectDefinition(),F=this.selectBitrate(null==e?void 0:e.payload,n,U),a=(null==F?void 0:F.vtype)||e.vtype,i=d(d({},F),{},{vtype:a});return e.targetDefinition=i,this.log("log","selectBeforeStart",null==e?void 0:e.vid,a,null==F?void 0:F.definition,null==e?void 0:e.payload,F),i}},{key:"selectBitrate",value:function(e,t,n){if(e.length<1)return null;var U=null;if(this._selector){var F,a,i;U=this._selector.getSuitableBitrate(e,n),this.log("log","BitRateAdapter result",null===(F=U)||void 0===F?void 0:F.vtype,null===(a=U)||void 0===a?void 0:a.definition,null===(i=U)||void 0===i?void 0:i.bitrate)}else{for(var Q=-1,l=-1,r=0;r<e.length;r++){var o=e[r];n&&o.definition===n?Q=r:t&&o.definition===t&&(l=r)}U=e[Q>=0?Q:l>=0?l:0]}return d({},U)}},{key:"startCheckTask",value:function(){var e=this,t=this._preloadDataList,n=this._currentPreloadInst,U=this._config.autoCheck;(this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=0),null!=n&&n.taskInProgress&&function(e,t,n){var U=t.endPreloadControl,F=t.endPreloadMinBuffer,a=t.startPreloadMinBuffer;if(!e)return!1;if(U){if(e.currentTime+a>=e.duration)return!1;var i=$a(e.buffered,e.currentTime),Q=Math.max(i[1]-e.currentTime,0);if(Q<=F)return null==n||n("log","[checkIfCancelPreload] hit buffer:",Q,"endPreloadMinBuffer:",F,"video:","".concat(e.currentTime,"/").concat(e.duration)),!0}return!1}(this._media,this._config,this.log))?this.cancelPreloadingTask():0!==t.length&&(this._checkIfCanPreload()&&this.onPreloadNext(),this._taskIntervalId=setTimeout((function(){e.startCheckTask()}),U.interval))}},{key:"cancelPreloadingTask",value:function(){var e=this._preloadDataList,t=this._wipPreloadTask,n=this._config.endPreloadTaskStrategy;if(this.cancel(),t){var U;if(this.stepwise)"number"==typeof(null===(U=t.data)||void 0===U?void 0:U.stepIdx)&&t.data.stepIdx>-1&&t.data.stepIdx--;else 0!==n&&e.unshift(t);this._emitEvtByCancel(t.data),this._wipPreloadTask=void 0}}},{key:"stopCheckTask",value:function(){this._taskIntervalId&&(clearTimeout(this._taskIntervalId),this._taskIntervalId=-1)}},{key:"getPreloadMetaByVid",value:function(e){for(var t=this.getAllCachedDataKeys(),n=[],U="",F=0;F<t.length;F++){var a=t[F],i=l.parseKey(a);i.vid===e&&(U=i.vtype,n.push(a))}if(0===n.length)return null;var Q=this._getLoaderInst(U);return Q?Q.parseKey(n):null}},{key:"preloadNext",value:function(){this.onPreloadNext()}},{key:"_filterMixPayload",value:function(e,t){var n=t.vtype;if(n&&Array.isArray(e.payload)){var U=e.vtype===n;e.vtype=n,e.payload=e.payload.filter((function(e){return e.vtype===n||U}))}}},{key:"_emitEvtByStart",value:function(e){var t=this._player;if(e&&t)try{this.emit(Na.PRELOAD_START,this._getEventPayload(e,t))}catch(n){this.log("warn","preload emit start error",null==n?void 0:n.stack)}}},{key:"_emitEvtByCancel",value:function(e){var t=this._player;if(e&&t)try{this.emit(Na.PRELOAD_CANCEL,this._getEventPayload(e,t))}catch(n){this.log("warn","preload emit cancel error",null==n?void 0:n.stack)}}},{key:"_getEventPayload",value:function(e,t){var n=t.config.vid,U=this._config,F=U.minBufferLength,a=U.startPreloadControl,i=U.startPreloadMinBuffer,Q=U.startPreloadMinPosTime,l=U.endPreloadMinBuffer,r=U.endPreloadControl,d=$a(t.video.buffered,t.currentTime),o=d[1]?d[1]-t.currentTime:0;return{vid:n,pid:e.vid,buffer:d,bufferHead:o,currentTime:t.currentTime,minBufferLength:F,startPreloadControl:a,startPreloadMinBuffer:i,startPreloadMinPosTime:Q,endPreloadControl:r,endPreloadMinBuffer:l}}},{key:"addPreloadList",value:(i=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._sort(t),n=f(t),e.prev=2,n.s();case 4:if((U=n.n()).done){e.next=10;break}return F=U.value,e.next=8,this._addData(F);case 8:e.next=4;break;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),n.e(e.t0);case 15:return e.prev=15,n.f(),e.finish(15);case 18:this._checkAutoTask();case 19:case"end":return e.stop()}}),e,this,[[2,12,15,18]])}))),function(e){return i.apply(this,arguments)})},{key:"addPlayingId",value:function(e,t){for(var n=this._preloadDataList,U=-1,F=0;F<n.length;F++){if(e===n[F].data.vid){U=F;break}}if(U>-1){var a=n.splice(U,1);this.log("log","cancelPreloadByVid remove from list",a.length>0&&a[0].data.vid)}var i=this._currentPreloadInst,Q=i?i.getData():null;this.log("log","_currentPreloadInst",Q),Q&&Q.vid===e&&this.cancel(),t&&this._addPlayingVid(t,e)}},{key:"removePlayingId",value:function(e){var t=this._playingVids,n=ei(t,"playerId",e);if(n>-1){var U=t.splice(n,1);this.log("log","removePlayingId",U.length>0&&U[0].playerId)}}},{key:"addPreload",value:(a=c(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._addData(t);case 2:if(e.sent){e.next=5;break}return e.abrupt("return");case 5:this._sort(this._preloadDataList),this._checkAutoTask();case 7:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"_addData",value:(F=c(o().mark((function e(t){var n,U,F,a,i,Q,l,r,d,s=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.data.vtype){e.next=3;break}return this.log("warn","vtype is null, can·t select loader"),e.abrupt("return",!1);case 3:if(n=t.data,U=this._getLoader(n.vtype)){e.next=8;break}return this.log("warn","the loader for ".concat(n.vtype," not registered")),e.abrupt("return",!1);case 8:if(F=this._playingVids,!((a=ei(F,"vid",t.data.vid))>=0)){e.next=14;break}return i=F[a],this.log("log","vid:".concat(i.vid," is already instantiated and loaded, playerId is ").concat(i.playerId)),e.abrupt("return");case 14:return Q=this._getUniqueKey(t),e.next=17,this.getItem(t.data,!0);case 17:if(!(l=e.sent)){e.next=22;break}if(!U.isUniqueCache(l)){e.next=22;break}return this.log("log","".concat(Q," already exist in cache")),e.abrupt("return",!1);case 22:if(!this._currentPreloadInst){e.next=29;break}if(!(r=this._currentPreloadInst.getData())){e.next=29;break}if(this._getUniqueKey({data:r,order:0})!==Q){e.next=29;break}return this.log("log","currentKey repeat"),e.abrupt("return");case 29:if(d=this._preloadDataList.filter((function(e){return s._getUniqueKey(e)===Q})),this.log("log","addedItems",Q,d),0!==d.length){e.next=35;break}return this._stepwise&&void 0===t.data.steps&&(t.data.steps=[0]),this._preloadDataList.push(t),e.abrupt("return",!0);case 35:return this.log("log","".concat(Q," already exist in preloadList")),e.abrupt("return",!1);case 37:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"_getUniqueKey",value:function(e){return e.data.vtype?l.generateUniqueCacheKey(e.data):e.data.vid}},{key:"_checkAutoTask",value:function(){var e=this,t=this._config,n=t.autoCheck,U=t.autoPreload;Promise.resolve().then((function(){U&&e.emit(Na.PRELOAD_NEXT),null!=n&&n.enable&&!e._taskIntervalId&&e.startCheckTask()}))}},{key:"setItem",value:function(e,t,n,U){var F=l.generateUniqueCacheKey(e);if(!n){var a=this._getLoader(e.vtype);if(!a)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);t=h({},a.generateUniqueKey(e),t)}return this._cacheInst.setItem(F,t,U)}},{key:"getItem",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,U=l.generateUniqueCacheKey(e),F=this._getLoader(e.vtype);if(!F)return this.log("warn","no ".concat(e.vtype," preloader, register")),Promise.resolve(!1);var a=t?"":F.generateUniqueKey(e);return this._cacheInst.getItem(U,n,a)}},{key:"getItemSync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,U=l.generateUniqueCacheKey(e),F=this._getLoader(e.vtype);if(!F)return this.log("warn","no ".concat(e.vtype," preloader, register")),!1;var a=t?"":F.generateUniqueKey(e);return this._cacheInst.getItemSync(U,n,a)}},{key:"supportSync",value:function(){return this._cacheInst.supportSync()}},{key:"removeItem",value:function(e,t){var n=l.generateUniqueCacheKey(e);return this._cacheInst.removeItem(n,t)}},{key:"getPreLoadData",value:(U=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.vtype,!(U=this._getLoaderInst(n))){e.next=7;break}return e.next=5,U.getPreLoadData(t);case 5:return F=e.sent,e.abrupt("return",F);case 7:return e.abrupt("return",null);case 8:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=e.vtype,n=this._getLoaderInst(t);return n?n.getPreLoadDataSync(e):null}},{key:"removeAll",value:function(){var e=this;this.getAllCachedDataKeys().forEach((function(t){var n=e.getPreloadMetaByVid(t.split("#")[0]);n&&e.removeItem(n,null)}))}},{key:"removeAllPreloadTask",value:function(){this.cancel(),this._preloadDataList=[],this._playingVids=[]}},{key:"disable",value:function(){this._isOpen=!1,this.stopCheckTask()}},{key:"enable",value:function(){this._isOpen=!0,this._config.autoCheck.enable&&!this._taskIntervalId&&this._preloadDataList.length>0&&this.startCheckTask()}},{key:"setUserSelectDefinition",value:function(e){this._userDefinition=e}},{key:"getUserSelectDefinition",value:function(){return this._userDefinition||null}},{key:"getStartDefinition",value:function(){return this._startDefinition}},{key:"setStartDefinition",value:function(e){this._startDefinition=e}},{key:"destroy",value:(n=c(o().mark((function e(){var t,n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this._stats.destroy(),t=Object.keys(this._loaderInsts),n=0;case 3:if(!(n<t.length)){e.next=12;break}if(U=t[n],!(F=this._getLoaderInst(U))){e.next=9;break}return e.next=9,F.destroy();case 9:n++,e.next=3;break;case 12:this.removeAllListeners(),this._loaderInsts={},this._loaders={},this._playingVids=[],this.detachPlayer();case 17:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"cancel",value:(t=c(o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._currentPreloadInst){e.next=4;break}return e.next=3,this._currentPreloadInst.cancel();case 3:null===(t=this._currentPreloadInst)||void 0===t||t.setData(null);case 4:this._currentPreloadInst=null;case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"removeByPlayInst",value:function(e,t){for(var n=this._preloadDataList.length-1;n>-1;n--){var U=this._preloadDataList[n];if(U.data.vid===e&&U.playerId===t){this._preloadDataList.splice(n,1);break}}}},{key:"getAllCachedDataKeys",value:function(){var e;return(null===(e=this._cacheInst)||void 0===e?void 0:e.getAllCachedDataKeys())||[]}},{key:"getDataUniqueKey",value:function(e){var t=this._getLoader(e.vtype);return!!t&&t.generateUniqueKey(e)}},{key:"hasItemSameVid",value:function(e){var t=this._getLoader(e.vtype),n=this._getLoaderInst(e.vtype);if(t&&n){var U=t.generateUniqueKey(e);return n.hasItemSameVid(U)}return!1}},{key:"_getLoader",value:function(e){e=e||"";var t=this._loaders[e]||this._loaders[e.toLocaleLowerCase()];return t||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"_getLoaderInst",value:function(e){e=e||"";var t=this._loaderInsts[e]||this._loaderInsts[e.toLocaleLowerCase()];return t||(this.log("warn","no ".concat(e," preloader, register")),null)}},{key:"getPreloadMemoryInfo",value:function(){return this._cacheInst.getMemoryInfo()}},{key:"attachPlayer",value:function(e){this._player=e,this._media=e.video||e.media}},{key:"detachPlayer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e&&this._player!==e||(this._player=null,this._media=null)}},{key:"setPreloadBandwidth",value:function(e,t){this._stats.setPreloadBandwidth(e,t)}},{key:"getPreloadBandwidth",value:function(e){return this._stats.getPreloadBandwidth(e)}},{key:"getLoadInfoAndDelete",value:function(e){return this._stats.getLoadInfoAndDelete(e)}},{key:"getPreloadUnuseInfo",value:function(){return this._stats.getPreloadUnuseInfo()}},{key:"setUsePreloadInfo",value:function(e,t){this._stats.setUsePreloadInfo(e,t)}},{key:"bwEventEmit",value:function(e){var t=e.vid,n=e.loadType,U=e.size,F=e.speed,a=e.cacheKey,i=e.vtype,Q=e.duration,l=e.bitrate,r=J(e,ti);this._stats.bwEventEmit(d({vid:t,loadType:n,size:U,speed:F,cacheKey:a,vtype:i,duration:Q,bitrate:l},r))}},{key:"findPreloadItem",value:function(e){var t,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this._stepwise){var U=e.reduce((function(e,t){return void 0===t.data.stepIdx||"number"==typeof t.data.stepIdx&&"number"==typeof e.data.stepIdx&&t.data.stepIdx<e.data.stepIdx?t:e})),F=e.filter((function(e){return e.data.stepIdx===U.data.stepIdx}));if(F.length>1&&this._sort(F),t=F[0],!n){if("number"!=typeof t.data.stepIdx&&(t.data.stepIdx=-1),t.data.stepIdx++,Array.isArray(t.data.steps)&&t.data.stepIdx>=t.data.steps.length-1){var a=e.indexOf(t);e.splice(a,1)}t.data.stepIdx===1/0&&(t=void 0)}}else t=n?e[0]:e.shift();return t}},{key:"updateConfig",value:function(e){arguments.length>1&&void 0!==arguments[1]&&arguments[1]?this._config=Object.assign({},l.getDefaultConfig(),e):Object.assign(this._config,e);var t=this._config.autoCheck;t&&!t.enable&&this.stopCheckTask(),t&&t.enable&&this.startCheckTask()}},{key:"preProcessUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this._config,U=n.preProcessUrl,F=n.preProcessUrlOptions;return"function"==typeof U?U(e,Object.assign({},F,t)):{url:e}}}],[{key:"getDefaultConfig",value:function(){return{autoPreload:!1,autoCheck:{enable:!1,interval:1e3},preloadMaxCacheCount:5,preloadCacheType:fa.MEMORY,autoCheckPreload:!0,startPreloadControl:!1,startPreloadMinBuffer:5,startPreloadMinPosTime:5,minBufferLength:5,endPreloadControl:!1,endPreloadTaskStrategy:0}}},{key:"generateUniqueCacheKey",value:function(e){var t=e.vid,n=e.codecType,U=e.vtype;return"".concat(t,"#").concat(n,"#").concat(U.toUpperCase())}},{key:"parseKey",value:function(e){if(!e)throw new Error("key ".concat(e," is empty"));var t=e.split("#");if(t.length<5)throw new Error("key ".concat(e," is not right format"));return{vid:t[0],mediaType:t[1],codecType:t[2],vtype:t[3],definition:t[4]}}},{key:"debugger",set:function(e){ni=!!e}}]),l}(at),Fi=function(e){Z(i,e);var t,n,U,F,a=b(i);function i(e,t){var n;return R(this,i),(n=a.call(this))._data=null,n.preloadManager=e,n._config=t,n.promisePolyfill(),n}return V(i,[{key:"taskInProgress",get:function(){return!1}},{key:"stepwise",get:function(){return this.preloadManager.stepwise}},{key:"getRequestOption",value:function(e){var t=this._config,n=t.getRequestOptionsCallback,U=t.reqOptions,F={};return e?F=e.reqOptions?e.reqOptions:"function"==typeof n?n(e):U||{}:F}},{key:"getUserSelectDefinition",value:function(){return this.preloadManager.getUserSelectDefinition()}},{key:"selectBitrate",value:function(e,t,n){return this.preloadManager.selectBitrate(e,t,n)}},{key:"promisePolyfill",value:function(){Promise.prototype.finally||(Promise.prototype.finally={finally:function(e){var t=function(t){return Promise.resolve(e()).then(t)};return this.then((function(e){return t((function(){return e}))}),(function(e){return t((function(){return Promise.reject(e)}))}))}}.finally)}},{key:"getData",value:function(){return this._data}},{key:"setData",value:function(e){this._data=e}},{key:"start",value:(F=c(o().mark((function e(t,n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("start need implement, return Promise");case 1:case"end":return e.stop()}}),e)}))),function(e,t){return F.apply(this,arguments)})},{key:"cancel",value:(U=c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("cancel need implement, cancel current preload request");case 1:case"end":return e.stop()}}),e)}))),function(){return U.apply(this,arguments)})},{key:"getPreLoadData",value:(n=c(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("getPreLoadData not implement");case 1:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){return null}},{key:"hasItemSameVid",value:function(e){return!0}},{key:"destroy",value:(t=c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.resolve());case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"parseKey",value:function(e){return Ui.parseKey(e[0])}}],[{key:"generateUniqueKey",value:function(e){throw new Error("generateUniqueCacheKey need implement, return string")}},{key:"vtype",get:function(){throw new Error("need vtype")}},{key:"isUniqueCache",value:function(e){return!0}}]),i}(at),ai="TOP",ii="FEED";function Qi(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 t=0;t<e.dashOpts.Data.PlayInfoList.length;t++){var n=e.dashOpts.Data.PlayInfoList[t],U={backup_url_1:n.BackupPlayUrl,bitrate:e.dashOpts.Data.VideoID?n.Bitrate:1e3*n.Bitrate,check_info:n.CheckInfo,codec_type:n.Codec,definition:n.Definition,encrypt:!(!n.PlayAuth||!n.PlayAuthID&&!n.PlayAuthId),file_hash:n.FileHash||n.Md5,file_id:n.FileID,index_range:n.IndexRange,init_range:n.InitRange,first_segment_range:n.FirstSegmentRange,kid:n.PlayAuthID||n.PlayAuthId,logo_type:n.Logo||n.LogoType,main_url:n.MainPlayUrl,preload_interval:n.PreloadInterval,preload_max_step:n.PreloadMaxStep,preload_min_step:n.PreloadMinStep,preload_size:n.PreloadSize,quality:n.Quality,size:n.Size,spade_a:n.PlayAuth,vheight:n.Height,vtype:n.Format,vwidth:n.Width};"video"===n.MediaType||"video"===n.FileType?e.dashOpts.dynamic_video.dynamic_video_list.push(U):"audio"!==n.MediaType&&"audio"!==n.FileType||e.dashOpts.dynamic_video.dynamic_audio_list.push(U)}}function li(e){var t=e.dashOpts.dynamic_video=e.dashOpts.Data;t.video_duration=t.duration,t.dynamic_video_list=[],t.dynamic_audio_list=[],e.dashOpts.dynamic_video.dynamic_type="segment_base";for(var n=t.playInfoList||t.payload,U=0;U<n.length;U++){var F,a,i,Q=n[U];if(Q.vtype.toUpperCase()===ln.DASH)Q.main_url=(null===(F=Q.url[0])||void 0===F?void 0:F.src)||Q.main_url,Q.backup_url_1=(null===(a=Q.url[1])||void 0===a?void 0:a.src)||Q.backup_url_1,Q.fallback_url=(null===(i=Q.url[2])||void 0===i?void 0:i.src)||Q.fallback_url,Q.codec_type="bytevc1"===Q.codecType?"h265":Q.codecType,"video"===Q.mediaType&&t.dynamic_video_list.push(JSON.parse(JSON.stringify(Q))),"audio"===Q.mediaType&&t.dynamic_audio_list.push(Q)}}function ri(e,t,n){var U,F=e.selectedIdx;n>-1&&(F=n);var a=null===(U=e[F])||void 0===U?void 0:U.audioFileId;if(!a)return-1;for(var i=0;i<t.length;i++)if(t[i].fileId===a)return i;return 0}var di=["app_id","trackerUrl","sid","task_type"],oi="close",si="open",Bi="forbidden",ci=1,Ri=0,ui=1;var Vi={enterMinBuffer:10,minDuration:25,openPreloadPCDN:!1,outMaxBuffer:5,openPCDN:!1,trackerUrl:"https://vc-gate.ndcpp.com/sdk/get_peer",withReferer:1},hi=function(){function e(t,n,U,F,a,i){R(this,e),this._pcdnNodes=null,this._cachedPcdn={},this._PCDNState=oi,this._retryInfo={},this._bitrate2file={},this._isOpenPCDN=!1,this._duration=0,this._vid="",this._tag="",this._isUseCDN=!1,this._lastPCDNUrl="",this.pcdn_download_request_cnt=0,this.pcdn_download_failed_cnt=0,this._PCDNSwitchCnt=0,this.pcdn_tracker_failed_cnt=0,this.pcdn_tracker_request_cnt=0,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=Object.assign({},Vi,t),this._isOpenPCDN=n,this.updateConfig({vid:F,duration:U}),this._player=a,this._tag=i}var t,n,U,F,a,i;return V(e,[{key:"getPCDNReqId",value:function(e){var t=e.uri||this._vid;return this._getPCDNReqIdBitrate(t,e.bitrate)}},{key:"_getPCDNReqIdBitrate",value:function(e,t){return e.slice(-20)+t}},{key:"_createFileInfo",value:function(e){var t=e.file_id||e.fileId,n=e.main_url||e.baseURL;(function(e){return/^http(s)?:\/\/.+/.test(e)})(n)||(n=document.location.protocol+n);return{vid:this._vid,cdn_url:n,file_type:"dash",sfid:t,bitrate:e.bitrate,duration:Math.floor(this._duration||0),size:e.size}}},{key:"checkPCDN",value:(i=c(o().mark((function e(t){var n,U,F,a,i,Q,l,r,s,B,c,R,u;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===(n=this._pcdnConfig)||void 0===n?void 0:n.openPCDN)&&this._isOpenPCDN&&this._duration>=this._pcdnConfig.minDuration&&t)){e.next=24;break}if(U=t.bitrate,!(F=this._cachedPcdn[U])){e.next=12;break}if(a=F.pcdnNodeList,i=F.pcdnTraceInfo,!(a&&a.length>0&&i)){e.next=12;break}return this._pcdnTraceInfo=i,e.abrupt("return");case 12:return Q=this._pcdnConfig,l=Q.app_id,r=Q.trackerUrl,s=Q.sid,B=Q.task_type,c=J(Q,di),R=t.file_id||t.fileId,u=this._createFileInfo(t),this._bitrate2file[t.bitrate]=R,this._pcdn?(pt.log(this._tag,"resetTrackeArgs"),this._pcdn.resetTrackeArgs()):this._pcdn=new cU(d({productConfig:{app_id:l,sid:s,task_type:B||ui},trackerUrl:r},c),this._player,u.bitrate,u.duration),e.prev=17,e.next=20,this.getPCDNNode(t.bitrate,t);case 20:e.next=24;break;case 22:e.prev=22,e.t0=e.catch(17);case 24:case"end":return e.stop()}}),e,this,[[17,22]])}))),function(e){return i.apply(this,arguments)})},{key:"setSetRetryInfo",value:function(e){var t=bU.getHostFromUrl(e);this._retryInfo[t]=!0}},{key:"_updateNodeList",value:function(e,t){var n=this;if(e&&e.nodes){var U,F={pcdnNodeList:e.nodes.filter((function(e){if(!Object.prototype.hasOwnProperty.call(n._retryInfo,bU.getHostFromUrl(null==e?void 0:e.url)))return e})),pcdnTraceInfo:{uri:e.vid,fid:e.fid,trace_id:e.trace_id}},a=this._bitrate2file[t];if(null!==(U=e.fid)&&void 0!==U&&U.includes(a))this._cachedPcdn[t]=F,this._pcdnTraceInfo=F.pcdnTraceInfo,pt.log(this._tag,"_updateNodeList",JSON.stringify(this._cachedPcdn));else{var i=8*function(e){return Math.floor(e/8)}(t);i===e.bitrate&&(this._cachedPcdn[t]=F,pt.log(this._tag,"_updateNodeList not file not match cachedFileid",a,"pcdnRet"))}}}},{key:"isUpdateNode",value:function(e){var t=this._getNodeListByBitrate(e);return!t||!t.length}},{key:"selectedPCDN",value:function(e,t){var n;if(null===(n=this._pcdnConfig)||void 0===n?void 0:n.openPCDN){if(this._PCDNState!==Bi&&!e){var U;if(this.isUsePCDN(t)){this._isUseCDN=!1;var F=this._getNodeListByBitrate(t);F&&(U=F[0].url,this._lastPCDNUrl!==U&&(this._lastPCDNUrl=U,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(Bi,(function(){}))),this._isUseCDN=!0;return U}this._isUseCDN=!0}}},{key:"isUsePCDN",value:function(e){var t=this._getNodeListByBitrate(e);return this._PCDNState===si&&t&&t.length>0}},{key:"_getNodeListByBitrate",value:function(e){var t=this._cachedPcdn[e];return t?t.pcdnNodeList:null}},{key:"getPCDNInOUtBuffer",value:function(){var e,t,n,U=null===(e=this._pcdnConfig)||void 0===e?void 0:e.openPCDN,F=this._pcdnConfig,a=null===(t=this._pcdn)||void 0===t?void 0:t.getPCDNInBuffer(),i=null===(n=this._pcdn)||void 0===n?void 0:n.getPCDNOutBuffer(),Q=a||(null==F?void 0:F.enterMinBuffer)||(null==F?void 0:F.minBuffer)||-1,l=i||(null==F?void 0:F.outMaxBuffer)||-1;return{PCDNInBuffer:U?Q:-1,PCDNOutBuffer:U?l:-1}}},{key:"isOpenPCDN",value:function(e,t,n,U){var F;if(null===(F=this._pcdnConfig)||void 0===F?void 0:F.openPCDN){var a=this.getPCDNInOUtBuffer(),i=a.PCDNInBuffer,Q=a.PCDNOutBuffer;e>=i?this._doOpenPCDN(t,U):e<Q&&this.updatePCDNState(oi,n)}}},{key:"_emptyCancel",value:function(){}},{key:"_doOpenPCDN",value:(a=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.updatePCDNState(si,this._emptyCancel),null===(U=this._pcdn)||void 0===U||U.updatePCDNBitrate(t),!this.isUpdateNode(t)){e.next=5;break}return e.next=5,this.getPCDNNode(t,n);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return a.apply(this,arguments)})},{key:"openPCDNForce",value:(F=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(U=this._pcdnConfig)||void 0===U?void 0:U.openPCDN){e.next=3;break}return e.abrupt("return");case 3:return this._PCDNState=si,e.next=6,this.checkPCDN(n);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return F.apply(this,arguments)})},{key:"updatePCDNState",value:(U=c(o().mark((function e(t,n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==Bi){e.next=5;break}this._PCDNState=t,pt.log(this._tag,"updatePCDNState",Bi),e.next=16;break;case 5:if(this._PCDNState===Bi||this._PCDNState===t){e.next=16;break}if(this._isUseCDN||t!==oi||this._PCDNState===oi){e.next=14;break}return this._PCDNState=t,pt.log(this._tag,"updatePCDNState",oi),e.next=11,n();case 11:this._pcdnVVStat.pSCCancelCnt++,e.next=16;break;case 14:this._PCDNState=t,pt.log(this._tag,"updatePCDNState",t);case 16:case"end":return e.stop()}}),e,this)}))),function(e,t){return U.apply(this,arguments)})},{key:"getPCDNNode",value:(n=c(o().mark((function e(t,n){var U,F,a,i,Q,l,r,d;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:if(e.prev=2,F=n.mediaType,a=this._lastfetchNodeTime[F]||0,!((i=Date.now())-a<this._pcdn.options.NULLNodeTimeStep)){e.next=8;break}return e.abrupt("return");case 8:return this._lastfetchNodeTime[F]=i,Q=this._getPCDNReqIdBitrate(this._vid,t),l=this._createFileInfo(n),e.next=13,this._pcdn.fetchPCDNNode(null,l,Q);case 13:if(r=e.sent,d=this._getPCDNReqIdBitrate(this._vid,t),null==r||!r.req_id||d===r.req_id){e.next=18;break}return pt.log("getPCDNNode is not match curDefinition reqId",Q,", pcdnRet.req_id",r.req_id),e.abrupt("return");case 18:r&&this._updateNodeList(r,t),this._pcdnVVStat.try_req_node+=1,this._pcdnVVStat.req_node_succ+=1,this._pcdnVVStat.has_ret_node+=(null==r||null===(U=r.nodes)||void 0===U?void 0:U.length)>0?1:0,e.next=28;break;case 24:e.prev=24,e.t0=e.catch(2),this._pcdnVVStat.try_req_node+=1,console.log("err",e.t0);case 28:case"end":return e.stop()}}),e,this,[[2,24]])}))),function(e,t){return n.apply(this,arguments)})},{key:"removePCDNNode",value:(t=c(o().mark((function e(t,n){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 pt.log(this._tag,"removePCDNNode",t,n),this.pcdn_download_failed_cnt++,this._pcdnVVStat.conn_fail_num++,this._cachedPcdn[t]=null,e.next=8,this._pcdn.removePCDNNode(this._vid,t,n);case 8:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"pcdnReqCnt",get:function(){var e=cU.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})}},{key:"updateConfig",value:function(e){var t=e.vid,n=e.duration;this._vid=t,this._duration=n,this._lastfetchNodeTime={audio:0,video:0}}}]),e}();var Zi=function(){function e(t,n){R(this,e),this._mediaTypeToServiceType={audio:null,video:null},this._useSeparationMode=!1;var U=t.config,F=t.isOpenPCDN,a=t.videoDuration,i=t.uri,Q=U.pcdnConfig,l=U.useSeparationMode;this._useSeparationMode=l,l?(this._mediaTypeToServiceType.video=this._createPCDNService(Q,F,a,i,n,"video_PCDN"),this._mediaTypeToServiceType.audio=this._createPCDNService(Q,F,a,i,n,"audio_PCDN")):this._pcdn=this._createPCDNService(Q,F,a,i,n,"all_PCDN")}var t,n;return V(e,[{key:"openPCDNForce",value:(n=c(o().mark((function e(t,n){var U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this._getPCDNService(n.mediaType),e.next=3,U.openPCDNForce(t,n);case 3:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"_getPCDNService",value:function(e){return this._useSeparationMode?this._mediaTypeToServiceType[e]:this._pcdn}},{key:"checkPCDN",value:function(e){var t=this._getPCDNService(e.mediaType);null==t||t.checkPCDN(e)}},{key:"_createPCDNService",value:function(e,t,n,U,F,a){return new hi(e,t,n,U,F,a)}},{key:"selectedPCDN",value:function(e,t,n){var U=this._getPCDNService(e);return null==U?void 0:U.selectedPCDN(t,n)}},{key:"isOpenPCDN",value:function(e,t,n,U,F){var a=this._getPCDNService(e);null==a||a.isOpenPCDN(t,n,U,F)}},{key:"setSetRetryInfo",value:function(e,t){var n=this._getPCDNService(e);null==n||n.setSetRetryInfo(t)}},{key:"removePCDNNode",value:(t=c(o().mark((function e(t,n,U){var F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return F=this._getPCDNService(t),e.next=3,null==F?void 0:F.removePCDNNode(n,U);case 3:case"end":return e.stop()}}),e,this)}))),function(e,n,U){return t.apply(this,arguments)})},{key:"getPCDNInOUtBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"video",t=this._getPCDNService(e);return null==t?void 0:t.getPCDNInOUtBuffer()}},{key:"pcdnVVStat",get:function(){var e=this;if(!this._useSeparationMode)return this._pcdn.pcdnReqCnt;var t,n,U={};if(!this._mediaTypeToServiceType.video||!this._mediaTypeToServiceType.audio)return(null===(t=this._mediaTypeToServiceType.video)||void 0===t?void 0:t.pcdnReqCnt)||(null===(n=this._mediaTypeToServiceType.audio)||void 0===n?void 0:n.pcdnReqCnt)||{};var F=this._mediaTypeToServiceType.video.pcdnReqCnt,a=this._mediaTypeToServiceType.audio.pcdnReqCnt;return Object.keys(F).forEach((function(t){U[t]=e._getValue(t,F)+e._getValue(t,a)})),U}},{key:"pcdnReqCnt",get:function(){var e,t,n,U,F=this;if(!this._useSeparationMode)return this._pcdn.pcdnVVStat;if(!this._mediaTypeToServiceType.video||!this._mediaTypeToServiceType.audio)return(null===(n=this._mediaTypeToServiceType.video)||void 0===n?void 0:n.pcdnVVStat)||(null===(U=this._mediaTypeToServiceType.audio)||void 0===U?void 0:U.pcdnVVStat)||{};var a={},i=["is_try_open","trace_id"],Q=null===(e=this._mediaTypeToServiceType.video)||void 0===e?void 0:e.pcdnVVStat,l=null===(t=this._mediaTypeToServiceType.audio)||void 0===t?void 0:t.pcdnVVStat;return Object.keys(Q).forEach((function(e){i.includes(e)?a[e]=Q[e]||l[e]:a[e]=F._getValue(e,Q)+F._getValue(e,l)})),a}},{key:"_getValue",value:function(e,t){return t[e]||0}},{key:"updateConfig",value:function(e,t){this._getPCDNService(e).updateConfig(t)}}]),e}(),Si=function(e){Z(r,e);var t,n,U,F,a,i,Q,l=b(r);function r(e,t){var n;return R(this,r),(n=l.call(this,e,t))._loader=new Wi({loaderCount:1,loaderType:Ye},e,"preloader"),n._loader.on(on,(function(t){if((null==t?void 0:t.len)>0){var U,F,a=(null==t||null===(U=t.priOptions)||void 0===U?void 0:U.type)||sn,i=Math.round(8*t.len*1e3/t.time/1024),Q=null==t?void 0:t.priOptions.extData,l=Q.cacheKey,r=null===(F=n._pendingItem)||void 0===F?void 0:F.duration,d={vid:Q.vid,loadType:a,size:t.len,speed:i,cacheKey:l,vtype:ln.DASH,duration:r,bitrate:Q.bitrate,range:t.range,mediaType:Q.mediaType,format:ln.DASH,segmentDuration:null==Q?void 0:Q.segmentDuration};e.bwEventEmit(d)}})),n.options=t,n._pendingTask=null,n}return V(r,[{key:"_setItem",value:(Q=c(o().mark((function e(t,n){var U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.vtype=ln.DASH,e.next=3,this.preloadManager.getItem(t,!0);case 3:(U=e.sent)?(F=Object.assign({},U,n),F=bU.combinePreloadData(F),this.preloadManager.setItem(t,F,!0)):this.preloadManager.setItem(t,n,!0);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return Q.apply(this,arguments)})},{key:"_processItemUrl",value:function(e){this.preloadManager.preProcessUrl&&(e.main_url=this.preloadManager.preProcessUrl(e.main_url).url,e.backup_url_1=this.preloadManager.preProcessUrl(e.backup_url_1).url,e.fallback_url=this.preloadManager.preProcessUrl(e.fallback_url).url)}},{key:"_getDashContext",value:function(e){var t=this,n=e.payload;if("TOP"===e.playInfoType){var U={dashOpts:e.payload};Qi(U),n=U.dashOpts.dynamic_video}if(Array.isArray(n)){var F={dashOpts:{Data:e,dynamic_video:e}};li(F),n=F.dashOpts.dynamic_video}return n.dynamic_video_list&&n.dynamic_video_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate,t._processItemUrl(e)})),n.dynamic_audio_list&&n.dynamic_audio_list.forEach((function(e){e.bitrate=e.real_bitrate||e.bitrate,t._processItemUrl(e)})),{dynamic_video:n}}},{key:"_getStartContext",value:function(){return{mediaInfos:{dynamic_video_list:[],dynamic_audio_list:[]},vtype:"",video:{segments:[]},audio:{segments:[]}}}},{key:"_cacheInitSegments",value:(i=c(o().mark((function e(t,n,U,F){var a,i,Q,l,r,d,s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.mediaList.video||[],i=t.mediaList.audio||[],Q=[],i&&i.length>0&&(l=this.makeInitBaseSegemntRequest(t,n.duration,"audio",i.selectedIdx,void 0,n.vid),Q.push(l)),a&&a.length>0&&(r=this._calVideoItemIdx(a,F.bandwidth)||0,d=a[r].definition,s=this.makeInitBaseSegemntRequest(t,n.duration,"video",r,d,n.vid),Q.push(s)),e.next=7,Promise.all(Q);case 7:e.sent.forEach((function(e){"video"===e.data.mediaType&&(e.data.orgDefinition=F.orgDefinition),U[e.key]=e.data}));case 9:case"end":return e.stop()}}),e,this)}))),function(e,t,n,U){return i.apply(this,arguments)})},{key:"start",value:(a=c(o().mark((function e(t,n){var U,F,a,i,Q,l,r,s,B,c,R,u,V,h,Z,S,p,J,m,b,W,E,y,N,v,T,C,g,D,X,L,I,G,M,Y,w,K,_,j,H,P,z,O,A,q,$,ee,te=this;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return Q=Promise.withResolvers(),l=Q.resolve,r=Q.promise,s={},this._pendingTask={resolve:l,data:t,map:s},B=new x,c=this._getDashContext(t),R=new ya("anytext",c,this),u=this._getStartContext(),V=function(){u.mediaInfos.dynamic_video_list=R.mediaList.video||[],u.mediaInfos.dynamic_audio_list=R.mediaList.audio||[],B.resolve(u)},R.once("ready",V),R.init(),e.next=12,B;case 12:if(this._pendingTask){e.next=16;break}return h=this.isStepWise(),l({remove:!h}),e.abrupt("return",r);case 16:if(Z=new x,S=u.mediaInfos,p=this._getIdx(S.dynamic_video_list,n||t.defaultDefinition),J=S.dynamic_video_list[p]||S.dynamic_video_list[0],S.dynamic_video_list[p]&&R.mediaList.audio&&S.dynamic_audio_list.length>0&&(R.mediaList.video.selectedIdx=p,-1===(m=ri(R.mediaList.video,R.mediaList.audio))&&(m=0),pt.log("audio definition preload",m),R.mediaList.audio.selectedIdx=m),t.dashType=R.dashType,null===(U=this.options)||void 0===U||null===(F=U.pcdnConfig)||void 0===F||!F.openPreloadPCDN||null===(a=this.options)||void 0===a||null===(i=a.pcdnConfig)||void 0===i||!i.openDASHPreloadPCDN||"segment_template"===R.dashType){e.next=38;break}if(b=this.options.pcdnConfig,!((W=c.dynamic_video.dynamic_video_list.filter((function(e){return e.definition===J.definition})))&&W.length>0)){e.next=38;break}if(E=W[0],y=E.duration,N=E.uri,this._pcdn?this._pcdn.updateConfig("video",{vid:N,duration:y}):(v={pcdnConfig:b},this._pcdn=new Zi({config:v,isOpenPCDN:!0,videoDuration:y,uri:N},null)),!S.dynamic_video_list[p]){e.next=32;break}return J.bitrate||(J.bitrate=J.bandwidth),e.next=32,this._pcdn.openPCDNForce(J.bitrate||J.bandwidth,d({mediaType:"video"},J));case 32:if(!(R.mediaList.audio&&S.dynamic_audio_list.length>0)){e.next=38;break}return T=R.mediaList.audio,(C=T[T.selectedIdx]).bitrate||(C.bitrate=C.bandwidth),e.next=38,this._pcdn.openPCDNForce(C.bitrate||C.bandwidth,d({mediaType:"audio"},C));case 38:if(this._pendingItem=J,this._pendingItem.duration||(this._pendingItem.duration=t.duration),g={bandwidth:J.bitrate||J.bandwidth,time:t.startTime||0,orgDefinition:J.orgDefinition},D=[],X=this.isStepWise(),e.prev=43,M=void 0===t.video||0===(null===(L=t.video.segments)||void 0===L?void 0:L.length),void 0===t.stepIdx&&(t.stepIdx=0),void 0===t.steps&&(t.steps=[0]),X||(t.steps=[0]),0!==t.stepIdx&&!M){e.next=63;break}if("segment_template"!==R.dashType){e.next=54;break}this._calRequests(R,g,Z,t,!0),Z.resolve(),e.next=61;break;case 54:if(0!==t.stepIdx){e.next=60;break}return e.next=57,this._cacheInitSegments(R,t,s,g);case 57:this._calRequests(R,g,Z,t),e.next=61;break;case 60:Z.resolve([]);case 61:e.next=64;break;case 63:Z.resolve([]);case 64:return e.next=66,Z;case 66:if(D=e.sent,0===(Y=X?t.stepIdx:0)&&this._setItem(t,s),this._pendingTask){e.next=72;break}return l({remove:!X}),e.abrupt("return",r);case 72:X&&(_=t.steps.length,j=Math.max(null===(w=t.video)||void 0===w?void 0:w.segments.length,null===(K=t.audio)||void 0===K?void 0:K.segments.length),_<j&&(P=new Array(j-_).fill(1),(H=t.steps).push.apply(H,k(P)))),z=[null===(I=t.video)||void 0===I?void 0:I.segments[Y],null===(G=t.audio)||void 0===G?void 0:G.segments[Y]],O=(D||[]).concat(z).filter((function(e){return Boolean(e)})),A=[],q=f(O),e.prev=77,ee=o().mark((function e(){var n,U,F,a,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=$.value,U=n.url,F=n.range,a=n.extData,i=te._getData(U,F,a).then((function(e){if("video"===e.mediaType&&(e.orgDefinition=g.orgDefinition),!e.fromCache){var n=a.cacheKey;s[n]=e,te._setItem(t,s)}})),A.push(i);case 4:case"end":return e.stop()}}),e)})),q.s();case 80:if(($=q.n()).done){e.next=84;break}return e.delegateYield(ee(),"t0",82);case 82:e.next=80;break;case 84:e.next=89;break;case 86:e.prev=86,e.t1=e.catch(77),q.e(e.t1);case 89:return e.prev=89,q.f(),e.finish(89);case 92:return e.next=94,Promise.all(A);case 94:e.next=99;break;case 96:e.prev=96,e.t2=e.catch(43),console.warn&&console.warn("catch no reqeuset",e.t2);case 99:return e.prev=99,l({remove:!X}),e.finish(99);case 102:return this._pendingTask=null,e.abrupt("return",r);case 104:case"end":return e.stop()}}),e,this,[[43,96,99,102],[77,86,89,92]])}))),function(e,t){return a.apply(this,arguments)})},{key:"isStepWise",value:function(){var e=this.options.openStepwiseType;return this.stepwise&&(void 0===e||e.toUpperCase()===ln.DASH)}},{key:"_getIdx",value:function(e,t){var n=0;return e.forEach((function(e,U){e.definition===t&&(n=U)})),n}},{key:"_calRequests",value:function(e,t,n,U){var F=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=[],i=t.bandwidth,Q=e.mediaList.video||[],l=e.mediaList.audio||[],r=U.vid,d=e.videoCodecType;if(l&&l.length>0){var o=l.selectedIdx;l[o].codec_type=d;var s=this._calUrls(l[o],"audio",r,null,F,U);a=a.concat(s)}if(Q&&Q.length>0){var B=Q[this._calVideoItemIdx(Q,i)||0];B.codec_type=d;var c=this._calUrls(B,"video",r,B.definition,F,U);a=a.concat(c)}a.length,n.resolve(a)}},{key:"_getSplitGopRange",value:function(e,t,n){var U=e.segment,F=U.range;if(!e.isStep){var a=U.range[1],i=U.range[0];return{allRangeItems:[{item:U,range:F,segmentDuration:U.endRaw-U.startRaw,rangeEnd:a,rangeStart:i}],newSteps:t}}var Q,l=[],r=[],d=f(t);try{for(d.s();!(Q=d.n()).done;){var o=Q.value;if(o>=U.endRaw){r.push(U.endRaw);break}r.push(o)}}catch(k){d.e(k)}finally{d.f()}var s=void 0===this.options.needfixSizeSegment||this.options.needfixSizeSegment;s&&r.length>0&&r[r.length-1]<U.endRaw&&(r.push(U.endRaw),pt.log("repload change steps"));for(var B=F[0],c=0,R=r.length,u=U.range[1],V=0,h=r;V<h.length;V++){var Z,S=h[V],p=B,J=s?c===r.length-1:S>=U.endRaw,m=Math.floor(S*n/8)+F[0]+1,b=J?null===(Z=U.range)||void 0===Z?void 0:Z[1]:m-1;B=b+1;var W=b>=u;if(F=[p,W?u:b],p>=b)break;l.push({item:U,range:F,segmentDuration:W?U.endRaw:S,rangeEnd:U.range[1],rangeStart:U.range[0]}),c++}return c<R&&r.splice(c,R-c),{allRangeItems:l,newSteps:r}}},{key:"_recalcSteps",value:function(e,t){var n,U=0,F=!1,a=[],i=f(t);try{for(i.s();!(n=i.n()).done;){var Q=n.value,l=e[U],r=e[e.length-1],d=Q.endRaw;if(Q.startRaw<=l&&r<d&&!F)for(;U<e.length;)a.push({stepTime:e[U],segment:Q,isStep:!0}),U++;else for(;U<e.length;){var o=e[U],s=e[U+1];if(!(o<Q.endRaw&&s<Q.endRaw)){U++,a.push({stepTime:Q.endRaw,isStep:!1,segment:Q}),F=!0;break}U++}if(U>=e.length)break}}catch(B){i.e(B)}finally{i.f()}return a}},{key:"_getRange",value:function(e,t){var n,U,F=e.mediaSegments,a=t.steps.map((function(e){return e+0})),i=this._recalcSteps(a,F),Q=[],l="segment_template"===t.dashType;if((null===(n=t.steps)||void 0===n?void 0:n.length)>0&&(null===(U=t.steps)||void 0===U?void 0:U[0])>0&&!l)if(i[0].isStep){var r=this._getSplitGopRange(i[0],t.steps,e.bandwidth).allRangeItems;Q.push.apply(Q,k(r))}else{var d,o=f(i);try{for(o.s();!(d=o.n()).done;){var s=d.value,B=this._getSplitGopRange(s,t.steps,e.bandwidth).allRangeItems;Q.push.apply(Q,k(B))}}catch(h){o.e(h)}finally{o.f()}}else{var c=i[0].segment,R=c.range,u=c.range[0],V=c.range[1];Q.push({item:c,range:R,segmentDuration:c.endRaw-c.startRaw,rangeEnd:V,rangeStart:u})}return Q}},{key:"_calUrls",value:function(e,t,n,U,F,a){var i=[];if(e){var Q=e,l=Q.avg_bitrate||Q.bandwidth||Q.bitrate,d=r.vtype;a[t]||(a[t]={initSegment:null,segments:[]});var o=a[t];if(F){var s=Q.initSegmentRange||[],B={url:Q.initSegment,range:s,extData:{cacheKey:bU.generateRequestUniqueKey({vid:n,mediaType:t,codecType:Q.codec_type,vtype:d,bitrate:l,fileId:Q.fileId,range:s}),vid:n,vtype:d,isInitSegment:!0,mediaType:t,useUrlRange:bU.validateUrlRange(this.options.url_range_domains,Q.initSegment),codecType:Q.codec_type,range:s,bitrate:l,segmentDuration:0,checkPreload:!0}};i.push(B),o.initSegment=B}var c,R=f(this._getRange(e,a));try{for(R.s();!(c=R.n()).done;){var u=c.value,V=u.item,h=u.range,Z=u.segmentDuration,S=u.rangeEnd,p=u.rangeStart,J=bU.generateRequestUniqueKey({vid:n,mediaType:t,codecType:Q.codec_type,vtype:d,start:V.start,end:V.end,definition:U,bitrate:l,fileId:Q.fileId,range:h});o.segments.push({url:V.url,range:h,extData:{cacheKey:J,vid:n,vtype:d,isInitSegment:!1,mediaType:t,useUrlRange:bU.validateUrlRange(this.options.url_range_domains,V.url),codecType:Q.codec_type,range:h,bitrate:l,segmentDuration:Z,checkPreload:!0,rangeEnd:S,rangeStart:p,fileId:Q.fileId}})}}catch(m){R.e(m)}finally{R.f()}}return i}},{key:"_calStartEnd",value:function(e,t){for(var n=-1,U=0;U<e.length;U++){var F=e[U],a=t||0;if(F.start>=a&&a<F.end){n=U;break}}return-1===n&&(n=0),n}},{key:"_calVideoItemIdx",value:function(e,t){for(var n=0;n<e.length;n++){var U=e[n];if(U&&U.bandwidth===t)return n}return null}},{key:"_getData",value:(F=c(o().mark((function e(t,n,U){var F,a,i,Q,l,d,s,B,c,R,u,V;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,a=t,this._pcdn&&(i=U.mediaType,Q=U.bitrate,(l=this._pcdn.selectedPCDN(i,!1,Q))&&(t=l,U.isPCDN=!0,pt.log("preload _pcdn",l,U.mediaType,U.bitrate))),U.reqOptions=this.getRequestOption(null===(F=this._pendingTask)||void 0===F?void 0:F.data.reqOptions),e.next=6,this._loader.load(U.mediaType,t,n,U,!0);case 6:if(d=e.sent,!U.isPCDN||"error"!==d.res){e.next=13;break}return U.isPCDN=!1,e.next=11,this._loader.load(U.mediaType,a,n,U,!0);case 11:s=e.sent,d=s;case 13:return c=(B=d).res,R=B.headers,u=B.status,V=B.fromCache,e.abrupt("return",{res:c,headers:R,status:u,fromCache:V,memory:c.byteLength,vtype:r.vtype,mediaType:U.mediaType,duration:U.segmentDuration,orgDefinition:void 0,range:n,rangeEnd:U.rangeEnd,rangeStart:U.rangeStart,fileId:U.fileId});case 17:return e.prev=17,e.t0=e.catch(0),console.log("preload get data error",e.t0),e.abrupt("return",{res:null});case 21:case"end":return e.stop()}}),e,this,[[0,17]])}))),function(e,t,n){return F.apply(this,arguments)})},{key:"makeInitBaseSegemntRequest",value:function(e,t,n,U,F,a){var i=this,Q=new x,l=e.mediaList[n][U],d=[l.initSegmentRange[0],l.sidxRange[1]],o=l.initSegment,s=e.videoCodecType,B=l.avg_bitrate||l.bandwidth||l.bitrate,c=r.vtype,R={checkPreload:!0,mediaType:n,vid:a,definition:F,useUrlRange:!1,timeout:-1,isInitSegment:!0,bitrate:B,codecType:s,fileId:l.fileId,cacheKey:bU.generateRequestUniqueKey({vid:a,codecType:s,mediaType:n,definition:F,vtype:c,bitrate:B,fileId:l.fileId,range:d})};return this._getData(o,d,R).then((function(F){var r=F.res;r&&"error"!==r?i.handleInitData(r,d,l.sidxRange).then((function(i){if(i.sidxSegmentRes&&e.getSidx(i.sidxSegmentRes,n,U,t),bU.validateFragment(i.initSegmentRes,d)){var l=Object.assign({},F,{vid:a,mediaType:n,isInitSegment:!0,vtype:c});Q.resolve({key:R.cacheKey,data:l})}else Q.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})).catch((function(){Q.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})):Q.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})).catch((function(){Q.reject({mediaType:n,index:U,initSegmentRange:d,url:o,rejected:!0})})),Q}},{key:"handleInitData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,U=new x;if(e instanceof ArrayBuffer){var F=0===t.length?e:e.slice(t[0],t[1]+1),a=null===n?null:e.slice(n[0],n[1]+1);U.resolve({initSegmentRes:F,sidxSegmentRes:a})}else;return U}},{key:"cancel",value:(U=c(o().mark((function e(){var t,n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this._loader){e.next=3;break}return e.next=3,this._loader.cancel();case 3:this._pendingTask&&(t=this._pendingTask,n=t.data,U=t.map,F=this.isStepWise(),this._pendingTask.resolve({remove:!F}),Object.values(U).length>0&&this._setItem(n,U),this._pendingTask=null);case 4:case"end":return e.stop()}}),e,this)}))),function(){return U.apply(this,arguments)})},{key:"getPreLoadDataSync",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=bU.generateRequestUniqueKey(e),U=this.preloadManager.getItemSync(e,t),F=this.preloadManager.getLoadInfoAndDelete(n);return d(d({cacheKey:n},U),{},{loadInfo:F})}},{key:"getPreLoadData",value:(n=c(o().mark((function e(t){var n,U,F,a,i=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>1&&void 0!==i[1]&&i[1],U=bU.generateRequestUniqueKey(t),e.next=4,this.preloadManager.getItem(t,n);case 4:return F=e.sent,a=this.preloadManager.getLoadInfoAndDelete(U),e.abrupt("return",d(d({cacheKey:U},F),{},{loadInfo:a}));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"destroy",value:(t=c(o().mark((function e(){var t;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null===(t=this._loader)||void 0===t||t.destroy(),this._loader=null,this._pcdn&&(this._pcdn=null);case 3:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"parseKey",value:function(e){var t,n,U=f(e);try{for(U.s();!(n=U.n()).done;){var F=n.value,a=Ui.parseKey(F);"audio"===a.mediaType?a.hasAudio=!0:(a.hasVideo=!0,t=Object.assign({},t,a))}}catch(i){U.e(i)}finally{U.f()}return t}},{key:"taskInProgress",get:function(){return!!this._pendingTask.resolve&&!!this._pendingTask.data}}],[{key:"vtype",get:function(){return ln.DASH}},{key:"isUniqueCache",value:function(e){return!!e&&4===Object.keys(e).length}},{key:"generateUniqueKey",value:function(e){return bU.generateRequestUniqueKey(e)}}]),r}(Fi);function pi(e){if(window.Headers&&e instanceof Headers){var t,n={},U=f(e);try{for(U.s();!(t=U.n()).done;){var F=t.value;n[F[0]]=F[1]}}catch(a){U.e(a)}finally{U.f()}return n}return e}Si.encryptUtils=an;var Ji={loaderCount:1,loaderType:Me,onProcessMinLen:5120,enableDynamicMinLen:!0};function mi(e,t){if(e.length>0)for(var n=0,U=!0,F=0;F<e.length;F++){var a=e[F];if(a>t){U=!1;break}if((n+=a)/e.length>t&&(U=!1),!U)return!1}return!0}var bi=0,Wi=function(){function e(t,n){var U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";R(this,e),kF(this),this._config=Object.assign({},Ji,d({responseType:"arraybuffer"},t)),this._loaderCount=1,this._config.loaderCount>1&&console&&console.warn("only support loaderCount 1"),this._loaderType=this._config.loaderType||Me,this._enableDynamicMinLen=this._config.enableDynamicMinLen,this._preloadManager=n,t.openLog&&ye.enable(),this._videoLoaders=[],this._audioLoaders=[],this._videoIdx=0,this._audioIdx=0;for(var a=0;a<this._loaderCount;a++){var i=new ye("".concat(F,"VideoLoader_").concat(a,"_").concat(this._config.vid),this._config.vid),Q=new ye("".concat(F,"AudioLoader_").concat(a,"_").concat(this._config.vid),this._config.vid),l=new Bt(d(d({},this._config),{},{logger:i,loaderType:this._loaderType})),r=new Bt(d(d({},this._config),{},{logger:Q,loaderType:this._loaderType}));this._videoLoaders.push(l),this._audioLoaders.push(r),this._videoSpeeds=[],l.on(tt,(function(e){bi=e.speed,U._cacheSpeed(e)})),r.on(tt,(function(e){bi=e.speed,U._cacheSpeed(e)})),this._videoReqCosts=[]}this._moofVideoLoader=new Bt(d(d({},this._config),{},{loaderType:this._loaderType})),this._moofAudioLoader=new Bt(d(d({},this._config),{},{loaderType:this._loaderType})),this._isSupportUrlRange="fetch"===this._loaderType,this._preloadCacheDatas={},this._reqCost={cdn:{count:0,avg:0},pcdn:{count:0,avg:0}}}var t,n,U,F,a,i;return V(e,[{key:"_cacheProgress",value:function(e,t){var n=t[e];if(n&&n.range&&n.done){var U=bU.generateRequestUniqueKey(d(d({},n.extData),{},{range:n.range}));if(!U)return;this._preloadCacheDatas[U]={duration:n.extData.segmentDuration,vtype:ln.DASH,res:n.data.buffer,mediaType:e,memory:n.data.byteLength,range:n.range,fileId:n.extData.fileId,rangeEnd:n.extData.rangeEnd,rangeStart:n.extData.rangeStart},pt.log("cacheProgress",U,JSON.stringify(this._preloadCacheDatas[U]))}}},{key:"cachePreloadData",value:(i=c(o().mark((function e(t,n){var U,F,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.vid){e.next=2;break}return e.abrupt("return");case 2:if(this._cacheProgress("video",n),this._cacheProgress("audio",n),t.vtype=Si.vtype,U=Object.keys(this._preloadCacheDatas).length,!(this._preloadManager&&U>0)){e.next=11;break}return e.next=9,this._preloadManager.getItem(t,!0);case 9:(F=e.sent)?(a=Object.assign({},F,this._preloadCacheDatas),a=bU.combinePreloadData(a),this._preloadManager.setItem(t,a,!0)):this._preloadManager.setItem(t,this._preloadCacheDatas,!0);case 11:this._preloadCacheDatas={};case 12:case"end":return e.stop()}}),e,this)}))),function(e,t){return i.apply(this,arguments)})},{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 t=!1;if(navigator.connection&&navigator.connection.downlink){t=!0;var n=1e6*navigator.connection.downlink;return!(5*e/n>4)}if(!mi(this._videoReqCosts,4))return!1;var U=this._videoSpeeds.map((function(t){return 1e3*t*5/e}));if(!mi(U,4))return!1;if(!t&&0===U.length)try{try{var F=parseFloat(X.getItem(bt))||0;if(0===F||1e3*F*5/e>4)return!1}catch(a){}}catch(a){}return!0}},{key:"_cacheSpeed",value:function(t){var n,U=t.speed;e.historySpeed.length>=20&&e.historySpeed.shift(),e.historySpeed.push(U),this.emit(tt,d({speed:U,type:(null==t||null===(n=t.priOptions)||void 0===n?void 0:n.type)||Yt},t))}},{key:"_calCostTime",value:function(e,t){var n=this._reqCost[e?"pcdn":"cdn"];t<3*n.avg&&(n.count++,n.avg=(n.avg*(n.count-1)+t)/n.count)}},{key:"getReqCost",value:function(e){var t=this._reqCost[e];return(null==t?void 0:t.avg)||0}},{key:"load",value:(a=c(o().mark((function e(t,n,U,F){var a,i,Q,l,r,s,B,c,R,u,V,h,Z,S,p,J,m,b,W,k,E,y,f,N,v,T,C,g=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=g.length>4&&void 0!==g[4]&&g[4],i=g.length>5&&void 0!==g[5]?g[5]:null,Q=g.length>6&&void 0!==g[6]?g[6]:null,l=g.length>7&&void 0!==g[7]?g[7]:null,r=g.length>8&&void 0!==g[8]?g[8]:null,F.vtype=ln.DASH,F.isPreload=a,F.range=U,s={start:F.start,end:F.end,bandwidth:F.bandwidth||F.bitrate,sequence:F.idx,fps:F.fps,mediaType:t,selectedIdx:F.selectedIdx,definition:F.definition,range:U.concat()},B=this._config.onProcessMinLen,this._enableDynamicMinLen&&s.bandwidth&&i&&(c=0===F.start?.5:1,B=Math.floor(s.bandwidth*c/8)),!this._preloadManager||!F.checkPreload){e.next=25;break}if(R=bU.nowTime(),u=null,!this._preloadManager.supportSync()){e.next=18;break}u=this._preloadManager.getPreLoadDataSync(F),e.next=21;break;case 18:return e.next=20,this._preloadManager.getPreLoadData(F);case 20:u=e.sent;case 21:if(!(u&&u.res instanceof ArrayBuffer)){e.next=25;break}return pt.log("changeState preload hit cache",u.cacheKey,"cost",bU.nowTime()-R,"ms"),i&&i(u.res,!0,{range:U,fromCache:!0},null,F),e.abrupt("return",{res:u.res,headers:u.headers,status:u.status,fromCache:!0,selectedIdx:F.selectedIdx,extData:s,orgDefinition:u.orgDefinition,cacheKey:u.cacheKey,duration:u.duration});case 25:if(V=F.isPCDN,h=!i||this._isSupportUrlRange,Z=h&&(this._config.useUrlRange||F.useUrlRange||!1)&&!V,S=n,Z&&U&&U.length>1&&(S="".concat(n+(n.split("?")[1]?"&":"?"),"range=").concat(U[0],"-").concat(U[1])),U&&0!==U.length&&!Z||(U=void 0),p=performance.now(),pt.log(this._config.vid,"load res start:",JSON.stringify(F),"startTime",p,"userUrlRange",Z,"onProgress",!!i,"onProcessMinLen",B),e.prev=33,m=this._getLoader(t,F)){e.next=37;break}return e.abrupt("return");case 37:return b=this._config.headers||{},W=F.reqOptions||{},e.next=41,m.load(S,d({range:U,onProgress:i,selectedIdx:F.selectedIdx,sequence:F.idx,initSegment:F.initSegment,onProcessMinLen:B,onCancel:Q,timeout:l,onTimeout:r,headers:V?Object.assign({},b,{"X-Origin-Server-Host":F.cdnHost}):b,priOptions:{type:V?wt:Yt,extData:F}},W));case 41:if(k=e.sent){e.next=44;break}return e.abrupt("return",null);case 44:return"video"===t&&this._addCost((performance.now()-p)/1e3),E=k.data,y=k.response,f={res:E instanceof Uint8Array?E.buffer:E,headers:pi(y.headers),status:y.status,duration:F.end-F.start||0,memory:E.byteLength,vtype:Si.vtype,mediaType:t,costTime:0,range:U,isInitSegment:F.initSegment,fileId:F.fileId},N=performance.now()-p,pt.log("load res finish: ",JSON.stringify(F),"cost time",N,"ms","range",null===(J=f.headers)||void 0===J?void 0:J["content-range"]),this._calCostTime(V,N),F.checkPreload&&!E.done&&(v=bU.generateRequestUniqueKey(F),this._preloadCacheDatas[v]=f),e.abrupt("return",d(d({},f),{},{extData:s,selectedIdx:F.selectedIdx,isPCDN:V,costTime:N,url:n}));case 54:return e.prev=54,e.t0=e.catch(33),pt.log("loader error",{msg:e.t0.message}),e.abrupt("return",{res:"error",status:null===(T=e.t0.response)||void 0===T?void 0:T.status,header:pi(null===(C=e.t0.response)||void 0===C?void 0:C.headers),error:e.t0,isPCDN:V,url:S,bitrate:F.bandwidth||s.bandwidth,costTime:-1});case 58:case"end":return e.stop()}}),e,this,[[33,54]])}))),function(e,t,n,U){return a.apply(this,arguments)})},{key:"_getLoader",value:function(e,t){var n="video"===e;if(t.moof)return n?this._moofVideoLoader:this._moofAudioLoader;if(t.initSegment){var U=n?this._moofVideoLoader:this._moofAudioLoader;if(U&&null!==U._currentTask)return U}if(n){var F=this._videoLoaders[this._videoIdx];return this._videoIdx++,this._videoIdx>=this._videoLoaders.length&&(this._videoIdx=0),F}var a=this._audioLoaders[this._audioIdx];return this._audioIdx++,this._audioIdx>=this._audioLoaders.length&&(this._audioIdx=0),a}},{key:"cancel",value:(F=c(o().mark((function e(t){var n;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=6;break}return n="video"===t?this._videoLoaders:this._audioLoaders,e.next=4,this.cancelLoaders(n);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:if(!this._moofVideoLoader){e.next=13;break}return e.next=13,this._moofVideoLoader.cancel();case 13:if(!this._moofAudioLoader){e.next=16;break}return e.next=16,this._moofVideoLoader.cancel();case 16:case"end":return e.stop()}}),e,this)}))),function(e){return F.apply(this,arguments)})},{key:"cancelLoaders",value:(U=c(o().mark((function e(t){var n,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=f(t),e.prev=1,n.s();case 3:if((U=n.n()).done){e.next=9;break}return F=U.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),n.e(e.t0);case 14:return e.prev=14,n.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:"getCurrentTask",value:function(e){var t="video"===e,n=t?this._moofVideoLoader:this._moofAudioLoader,U=t?this._videoLoaders[0]:this._audioLoaders[0];return(null==n?void 0:n._currentTask)||(null==U?void 0:U._currentTask)}},{key:"cancelTasks",value:(n=c(o().mark((function e(t){var n,U,F,a,i=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=i.length>1&&void 0!==i[1]&&i[1],F=(U="video"===t)?this._moofVideoLoader:this._moofAudioLoader,a=U?this._videoLoaders[0]:this._audioLoaders[0],!F){e.next=7;break}return e.next=7,this._filterTask(F,n);case 7:if(!a){e.next=10;break}return e.next=10,this._filterTask(a,n);case 10:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_filterTask",value:(t=c(o().mark((function e(t,n){var U,F,a,i,Q,l,r,d,s,B;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(U=[],F=t._queue,n&&t._currentTask&&U.push(t._currentTask.cancel()),a=F.length-1;a>-1;a--)d=F[a],s=null===(i=d.priOptions)||void 0===i||null===(Q=i.extData)||void 0===Q?void 0:Q.isInitSegment,B=null===(l=d.priOptions)||void 0===l||null===(r=l.extData)||void 0===r?void 0:r.isSlice,s||B||(U.push(d.cancel()),F.splice(a,1));return e.next=6,Promise.all(U);case 6:case"end":return e.stop()}}),e)}))),function(e,n){return t.apply(this,arguments)})},{key:"destroy",value:function(){this.cancel();for(var e=0;e<this._videoLoaders.length;e++){var t=this._videoLoaders[e];t&&t.removeAllListeners();var n=this._audioLoaders[e];n&&n.removeAllListeners()}this._moofAudioLoader&&this._moofAudioLoader.removeAllListeners(),this._moofVideoLoader&&this._moofVideoLoader.removeAllListeners(),this._audioLoaders=[],this._videoLoaders=[]}}],[{key:"currentSpeed",get:function(){return bi}},{key:"historyAvspeed",get:function(){var t=e.historySpeed.reduce((function(e,t){return e+t}),0);return 0===e.historySpeed.length?0:t/e.historySpeed.length}}]),e}();Wi.historySpeed=[];var ki=function(){function e(t,n,U,F){R(this,e),this.adaptRangeRes=[],F&&(this.adaptRange=new Qn(t,n,U,F))}return V(e,[{key:"push",value:function(e){var t;null===(t=this.adaptRangeRes)||void 0===t||t.push(e)}},{key:"pop",value:function(){var e;return null===(e=this.adaptRangeRes)||void 0===e?void 0:e.shift()}},{key:"updateBitrate",value:function(e){var t;null===(t=this.adaptRange)||void 0===t||t.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){var t,n=null===(t=this.adaptRange)||void 0===t?void 0:t.getAdaptCacheBuffer();return!Number.isNaN(n)&&n||(n=e),n}},{key:"destroy",value:function(){this.adaptRange=null,this.adaptRangeRes=[]}}]),e}(),Ei=["module"],yi="danger_d_speed";var fi=function(){function e(t,n,U,F){var a=this,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{logger:function(){},openLog:!1};R(this,e),this._wasmPromise=new x,this._hasDeviceInfoChanged=!0,this.uuid=(new Date).getTime().toString(36).slice(4),this.config=t,this.segment_duration=F||5e3,this.logger=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];i.logger.apply(i,["abr(".concat(a.uuid,")::")].concat(t))},this.openLog=i.openLog,this.cdnHost=t.cdnHost||"",this.autoBitrateOpts=t.autoBitrateOpts||{},this.stall_penalty=this.autoBitrateOpts.stall_penalty||11,this.switch_penalty=this.autoBitrateOpts.switch_penalty||4,this.interval=this.autoBitrateOpts.interval||1e3;var Q=t.progressTimer||1e3,l=this.autoBitrateOpts.startInterval||Q;this.initInterval=.8*l,this._preloadMethod=t.preloadmethod||0,this._videoWidth=0,this._videoHeight=0,this.updateBitrate(n),this.updateMediaInfos(U,!1)}return V(e,[{key:"_onLoadWasm",value:function(){var e=this,t=this.autoBitrateOpts.module,n=this.autoBitrateOpts;n.module;var U=J(n,Ei),F=this.autoBitrateOpts.isClassic||!1;t&&(F?this.module=new t(d({promise:this._wasmPromise},U)):t(this.module={onRuntimeInitialized:function(){e._wasmPromise.resolve()}}));return this._wasmPromise}},{key:"updateMediaInfos",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this._heightToDefinitionConfig=new Map,this._bitrateToDefinitionConfig=new Map,e?(e.dynamic_video_list.forEach((function(e){var n,U;null===(n=t._heightToDefinitionConfig)||void 0===n||n.set(e.height||e.vheight,e),null===(U=t._bitrateToDefinitionConfig)||void 0===U||U.set(e.bandwidth||e.bitrate,e)})),this.mediaInfos=e):n&&console.error("baseAbr mediaInfos null")}},{key:"transformMediaInfo",value:function(){if(this.setDebugModel(this.openLog),this.mediaInfos){this.logger("mediaInfos",this.mediaInfos);try{for(var e,t=[],n=this.mediaInfos.dynamic_video_list,U=0;U<n.length;U++){var F=n[U];t.push({stream_id:"s".concat(U),bandwidth:F.bitrate||F.bandwidth,width:F.vwidth||F.width,height:F.vheight||F.height,codec:F.codecs||F.codec_type||"h264",frame_rate:Number(F.fps)||-1,segment_duration:this.segment_duration})}var a={v_adaptation:t},i=JSON.stringify(a);null===(e=this.module)||void 0===e||e.ccall("parseMPD","null",["string"],[i])}catch(Q){}}else console.warn("mediaInfos is null")}},{key:"_getDefaultSpeed",value:function(e){var t=0,n=navigator.connection;if(n&&n.downlink)t=1024*n.downlink/8,this.logger("initSpeed connect",t);else try{t=parseFloat(X.getItem(yi)||"")||0,this.logger("initSpeed connect",t)}catch(U){}return 0===t&&(t=e&&e.historyAvspeed||0,this.logger("initSpeed history",t)),t}},{key:"setDebugModel",value:function(e){var t,n;null===(t=this.module)||void 0===t||null===(n=t._setDebugModel)||void 0===n||n.call(t,e)}},{key:"updateBitrate",value:function(e){this.bitrate=e}},{key:"getPreloadBitrate",value:function(){return null}},{key:"_updateDeviceInfo",value:function(e){try{if(this._hasDeviceInfoChanged){var t,n=window.devicePixelRatio||1;null===(t=this.module)||void 0===t||t._updateDeviceInfo(this._videoWidth||Number(this.config.width),this._videoHeight||Number(this.config.height),n,e||-1)}this._hasDeviceInfoChanged=!1}catch(U){console.log("_updateDeviceInfo")}}}]),e}();fi.SPPED_CACHE=yi;var Ni=function(e){return e.ABR_CHANGE="ABR_CHANGE_A",e.ABR_UPDATE_SPEC="ABR_UPDATE_SPEC",e.START_ABR="START_ABR",e.UPDATE_AUTO_DESC="UPDATE_AUTO_DESC",e.ABR_START_PROGRESS="ABR_START_PROGRESS",e.MAX_BUFFER_CHANGE="MAX_BUFFER_CHANGE",e.NEXT_SEGMENT_PREDICT="NEXT_SEGMENT_PREDICT",e.ABR_STAT="ABR_STAT",e}(Ni||{}),vi="__auto__",Ti={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"},Ci=function(e){Z(n,e);var t=b(n);function n(e,U,F,a,i){var Q,l,r,d,o,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{logger:function(){},openLog:!1};R(this,n),(Q=t.call(this,U,F,a,i,s))._bufferRange=new Map,Q._sortedBufferRange=[],Q._lastCheckResolutionStamp=0,Q._currentDefinition=null,Q._isSeeking=!1,Q._waitingStartTime=0,Q._stallCount=0,Q._seekState=0,Q._stallState=0,Q._videoCurrentTime=0,Q._hasStart=!1,Q._isPaused=!1,Q._hasAddFragment=!1,Q._eventInfo={local_time_ms:0,internet_speed:0,buffer_length:0,last_bitrate:0,now_bitrate:0,play_speed:1},Q._bitrateSet=[],Q._generalInfo={},Q._currentInAbr=!1,Q._hasCalcTimelineLog=!1,Q._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:[]}},Q._tickCount=0,Q._fps=30,Q.startTime=performance.now(),Q._prevDefinitionItem=null,Q._currentItem=null,Q._switchCount=0,Q._switchBitrate=0,Q._avgStatItems={},Q._qoeArgs=[0,0,0,0],Q._abrUsed=-1,Q._abrAlwaysOn=1,Q._preloadInfo=null,Q._hasLogStartInfo=!1,Q._hasExecuteAbrAlgo=!1,Q._lastExecuteTimeInMs=0,Q._isSegmentDrive=!1,Q._onSegmentPredict=function(e){if(Q.isCurrentInAbr&&Q._isSegmentDrive){var t=Math.floor(Q.player.downloadSpeed);e.isInitSegment||"video"!==e.mediaType||Q._loopAbr(t,e.start,e.fix?e.end:0)}},Q._onPlay=function(){Q._hasStart=!0,Q.logger("onplay")},Q._onSeeking=function(){var e,t;Q._isSeeking=!0,Q.player.currentTime<Q._videoCurrentTime?Q._seekState=-1:Q._seekState=1,null===(e=Q.module)||void 0===e||null===(t=e._updateSeekInfo)||void 0===t||t.call(e,Q._seekState),Q.logger("seekState",Q._seekState)},Q._onSeekEnd=function(){Q._isSeeking=!1,Q.checkRestart()},Q._onWaiting=function(){Q._isSeeking||Q._waitingStartTime>0||(Q._waitingStartTime=(new Date).getTime(),Q._stallId=setTimeout((function(){clearTimeout(Q._stallId),Q._stallCount++,Q._stallState=1}),200))},Q._onPlaying=function(){Q._waitingStartTime=0,Q._stallState=0,clearTimeout(Q._stallId),Q.checkRestart()},Q._onTimeUpdate=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(Q._sortedBufferRange&&0!==Q._sortedBufferRange.length&&Q._currentInAbr&&Q.player){Q._videoCurrentTime=Q.player.currentTime;var n=Date.now();if(!(n-Q._lastCheckResolutionStamp<1e3&&0!==Q._lastCheckResolutionStamp)||t){Q._lastCheckResolutionStamp=n;for(var U=Q.player.currentTime,F=0,a=Q._sortedBufferRange.length-1,i=null;F<=a;){var l=Math.floor(F+(a-F)/2),r=Q._sortedBufferRange[l];if(U<r.start)a=l-1;else{if(!(U>=r.end)){i=r;break}F=l+1}}if(i){var d,o=null===(d=Q._bitrateToDefinitionConfig)||void 0===d?void 0:d.get(i.bandwidth),s=null==o?void 0:o.definition;if(Q._currentDefinition===s&&!t||!s)return void(s||Q.logger("error definition, mpd配置与接口配置不一致"));Q._currentDefinition=s,Q._prevDefinitionItem=Q._currentItem,Q._currentFps=o.fps,Q._currentItem=o,Q._emitAutoDescChange(s,!1,Q._currentFps,o)}}}},Q._onCanPlay=function(){Q._currentInAbr&&Q._currentDefinition&&(Q._updateId=setTimeout((function(){clearTimeout(Q._updateId),Q._emitAutoDescChange(Q._currentDefinition,!1,Q._currentFps,Q._currentItem)}),0))},Q._onBufferRangeUpdate=function(e){if(void 0!==e.start){null===Q._currentItem&&Q._onTimeUpdate(null,!0);var t=e.start;Q._hasAddFragment=!0,Q._bufferRange.set(t,e);var n=k(Q._bufferRange.values());Q._sortedBufferRange=n.sort((function(e,t){return e.start-t.start})),Q.avgStat(Ti.DOWNLOAD_BITRATE,e.bandwidth)}},Q._onReplay=function(){Q.checkRestart()},Q._onEnded=function(){Q.stop()},Q._onError=function(){Q.stop()},Q.start=function(){if(Q.logger("start"),Q._isPaused=!1,!Q._hasCalcTimelineLog){var e=1===Math.floor(100*Math.random());Q._abr_play_info.is_hint=e?1:0}Q._hasCalcTimelineLog=!0,Q._loop()},Q.stop=function(){!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&(Q._abrAlwaysOn=-1),clearTimeout(Q.timerId),Q._isPaused=!0,Q.logger("stop")},Q.logger("constructor",U,F,a,i,Q.bitrate),Q.player=e,Q.isOpenAutoDefi=!!Q.autoBitrateOpts.isOpenAutoDefi,Q._isSegmentDrive=1===Q.autoBitrateOpts.abrDriveMode,Q.onPlayRateChange=Q._onPlayrateChange.bind(m(Q)),Q._onWinSizeChange=(l=Q.onWinElemSizeChange.bind(m(Q)),r=1e3,d=!1,function(){for(var e=this,t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];var F=n,a=d&&!o;clearTimeout(o),o=setTimeout((function(){o=null,d||l.apply(e,F)}),r),a&&l.apply(e,F)}),Q.listeners=[{evt:"MAX_BUFFER_CHANGE",handler:Q._onMaxBufferChange.bind(m(Q))},{evt:"playbackrateChange",handler:Q.onPlayRateChange},{evt:"replay",handler:Q._onReplay},{evt:"ended",handler:Q._onEnded},{evt:"error",handler:Q._onError},{evt:"timeupdate",handler:Q._onTimeUpdate},{evt:"addVideoBufferEnd",handler:Q._onBufferRangeUpdate},{evt:"canplay",handler:Q._onCanPlay},{evt:"play",handler:Q._onPlay},{evt:"seeking",handler:Q._onSeeking},{evt:"seeked",handler:Q._onSeekEnd},{evt:"waiting",handler:Q._onWaiting},{evt:"playing",handler:Q._onPlaying},{evt:"video_resize",handler:Q._onWinSizeChange},{evt:"NEXT_SEGMENT_PREDICT",handler:Q._onSegmentPredict}],Q.listeners.forEach((function(e){var t=e.evt,n=e.handler;Q.player.on(t,n)})),Q._abrMethod=Q.autoBitrateOpts.method||0,Q._loopInterval=Q.initInterval,T.install(),Q._maxCacheTimeVideo=Q.config.preloadTime||5,Q._maxCacheTimeAudio=Q._maxCacheTimeVideo;for(var B=Object.keys(Ti),c=0;c<B.length;c++){var u=B[c],V=Ti[u];Q._avgStatItems[V]=new gi}return Q}return V(n,[{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._execDecision()}},{key:"initFps",value:function(){this.fpsDetection=new T,this.fpsDetection.start(),this._fps=this.fpsDetection.fps,this._hasDeviceInfoChanged=!0}},{key:"listenSize",value:function(){window.removeEventListener("resize",this._onWinSizeChange),window.addEventListener("resize",this._onWinSizeChange)}},{key:"onWinElemSizeChange",value:function(){var e,t,n=(null===(e=this.player)||void 0===e?void 0:e.media)||(null===(t=this.player)||void 0===t?void 0:t.video);if(n){var U=n.getBoundingClientRect();this._videoWidth=Math.floor(U.width),this._videoHeight=Math.floor(U.height),this._hasDeviceInfoChanged=!0}}},{key:"execTimeUpdate",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._onTimeUpdate(null,e)}},{key:"_onMaxBufferChange",value:function(e){var t=e.videoCacheTime,n=e.audioCacheTime;this._maxCacheTimeAudio=n,this._maxCacheTimeVideo=t}},{key:"_emitAutoDescChange",value:function(e,t,n,U){var F;this.logger("[ABR],emitAutoDescChange, definition, ",e,",item,",U,",pre_item,",this._prevDefinitionItem),null===(F=this.player)||void 0===F||F.emit("UPDATE_AUTO_DESC",{definition:e,reset:t,fps:n,item:U,pre_item:this._prevDefinitionItem})}},{key:"_onPlayrateChange",value:function(){this.module&&this.updateBufferInfo()}},{key:"_execDecision",value:function(){if(!this.isOpenAutoDefi)return 0;var e=0;try{this.logger("exec decision"),this.updateSwitchInfo(),this.transformMediaInfo(),this.updateDeviceInfo();var t=!!this.autoBitrateOpts.isPlayAutoDefi;if(this.isOpenAutoDefi&&t){this._abrUsed=1;var n=this._getDefaultSpeed(this.player);e=this._loopAbr(n),this.start(),this._changeLoopInterval(),this.logger("time start progress",(new Date).getTime()),this.logger("time costTime",performance.now()-this.startTime)}}catch(U){this.logger("decision error",U),this.logger("time costTime err",performance.now()-this.startTime)}return e}},{key:"_changeLoopInterval",value:function(){var e=this;this.startTimer&&(clearTimeout(this.startTimer),this.startTimer=null),this.startTimer=setTimeout((function(){e._loopInterval=e.interval,e.startTimer&&clearTimeout(e.startTimer),e.logger("interval change")}),5e3)}},{key:"_loop",value:function(){var e=this;this._isPaused||this._isSegmentDrive||(clearTimeout(this.timerId),this.timerId=setTimeout((function(){var t,n=e.player,U=e.config;if(e._hasStart&&null!==(t=U.autoBitrateOpts)&&void 0!==t&&t.stillRunWhenPaused||!n.paused||!n.config.autoplay&&!e._hasStart){var F=e._hasAddFragment?void 0:e._getDefaultSpeed(n);e._loopAbr(F)}e._loop()}),this._loopInterval))}},{key:"checkRestart",value:function(){var e;null!==(e=this.config.autoBitrateOpts)&&void 0!==e&&e.autoRestartAbr&&this._currentInAbr&&this._isPaused&&this.start()}},{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(t){}}},{key:"updateBufferInfo",value:function(e){var t,n,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=this.player.playbackRate,i=this.bufferLength;if(F>0&&this.player)for(var Q=this.player.video,l=Q.buffered,r=Q.currentTime,d=0;d<l.length;d++){var o=l.end(d);l.start(d)<=r&&r<=o&&o&&(o>=U&&o<=F)&&(i=F-r)}var s=e||Math.floor(this.player.downloadSpeed);return this._tickCount<5&&0===s&&(s=this._getDefaultSpeed(this.player),this.logger("initSpeed fix")),this.logger("downloadSpeed:",s,"buffer:",i,"maxCacheTimeAudio:",this._maxCacheTimeAudio,"maxCacheVideoTime",this._maxCacheTimeVideo,"seekState",this._seekState,"stallState",this._stallState),null===(t=this.module)||void 0===t||t._updateBufferInfo(a,this._maxCacheTimeAudio,this._maxCacheTimeVideo,i,i,s,this._seekState,null===(n=this.player)||void 0===n?void 0:n.currentTime,this._stallState),this._seekState=0,this._eventInfo={internet_speed:s,buffer_length:i,last_bitrate:this.bitrate,play_speed:a},this.logger("playRate:",a,"buff:",i,"downloadSpeed:",s),{buffer:i,downloadSpeed:s}}},{key:"updateSwitchInfo",value:function(){var e,t,n=(new Date).getTime();this._openTimeMs=n,this._abr_play_info.start_play_time_ms=n;var U,F,a=(null===(e=this.player)||void 0===e?void 0:e.config.preloadTime)||50,i=(F=(U=n).toString(16)).length<=8?{high:0,low:U}:{high:parseInt(F.substr(0,F.length-8),16),low:parseInt(F.substr(F.length-8),16)},Q=this.autoBitrateOpts.noStallCheckTime||5,l=this.openLog;this.logger("openTime:",n,"this.logger",l),null===(t=this.module)||void 0===t||t._updateSwitchInfo(i.low,i.high,Q,l,this.stall_penalty,this.switch_penalty);var r=this._mediaList.video,d=r.map((function(e){var t=e.bandwidth,n=e.bitrate;return t||n}));this._bitrateSet=d.map((function(e,t){return{bitrate:e,codecs:r[t].codecs||r[t].codec_type||""}})),this._generalInfo={max_cache_time:a,bitrate_set:this._bitrateSet,segment_duration:this.segment_duration,preload_info:{},startup_info:{}}}},{key:"updatePreloadCacheInfo",value:function(e){try{this._preloadInfo=e,this.logger("update preloadInfo",e),e&&e.item_num!==e.items.length&&(this.logger("preloadInfo invalid"),this._preloadInfo=null)}catch(t){this.logger("updatePreloadCacheInfo",t),this._preloadInfo=null}}},{key:"updatePreloadLogInfo",value:function(e){this._generalInfo.preload_info=e||{}}},{key:"_loopAbr",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this._tickCount++;var U=-1,F=[];if(!this.module||!this.player)return this.bitrate;try{var a,i=(new Date).getTime(),Q=this.player;this.updateDeviceInfo();var l=this.updateBufferInfo(e,t,n),r=l.downloadSpeed,o=l.buffer;U=this.module._getPredictedBitrate(this.bitrate,this._abrMethod);for(var s=0;s<7;s++)F.push(this.module.HEAP32[U/Int32Array.BYTES_PER_ELEMENT+s]);var B=F[0],c=1===F[1];this._eventInfo.now_bitrate=B,this._eventInfo.local_time_ms=(new Date).getTime();var R=0;if(B!==this.bitrate&&0!==B){var u=this.bitrate;R=Math.abs(u-B);for(var V=[],h=(Q.media||Q.video).buffered,Z=0;Z<h.length;Z++)V.push({start:h.start(Z),end:h.end(Z)});var S=this._videoWidth||Number(this.config.width),p=this._videoHeight||Number(this.config.height),J=(new Date).getTime(),m={speed:"".concat(r," KB/s"),buffer_length:"".concat(o," s"),video_pos:Q.currentTime,all_buffers:V,seek_state:this._seekState,stall_state:this._stallState,screen_width:S,screen_height:p,dpr:window&&window.devicePixelRatio,playbackRate:Q.playbackRate,bitrateSet:this._bitrateSet,abrMethod:this._abrMethod,delta:this._hasExecuteAbrAlgo?J-this._lastExecuteTimeInMs:0};if(this._lastExecuteTimeInMs=J,this._hasExecuteAbrAlgo=!0,this.logger("abr predicate: ".concat(B,", prevBitrate: ").concat(u,","),"willStall: ".concat(c,", switchBitrate: ").concat(R)),this.module.getStat){var b=this.module.getStat();Q.emit("ABR_STAT",d({v_time:this.player.currentTime,net_speed:8*r,costTime:(new Date).getTime()-i},b))}this.updateBitrate(B),Q.emit("ABR_CHANGE_A",u,B,c,JSON.stringify(m))}this._hasLogStartInfo||(this._hasLogStartInfo=!0,this._generalInfo.startup_info={predict_bitrate:B,download_speed:r,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}),null===(a=this.player)||void 0===a||a.emit("ABR_LOOP"),this.onAbrLoop(r,F[2],R,F.slice(3))}catch(W){this.logger("abr error",W),console.error("loopAbr error",W)}finally{U>-1&&this.module._free(U)}return this.bitrate}},{key:"destroy",value:function(){var e,t=this;this.stop(),this.listeners.forEach((function(e){var n,U=e.evt,F=e.handler;null===(n=t.player)||void 0===n||n.off(U,F)})),this.player=null,this._heightToDefinitionConfig=null,this._bitrateToDefinitionConfig=null,this._bufferRange.clear(),this._sortedBufferRange=[],this.module=null,clearTimeout(this._stallId),clearTimeout(this._updateId),this.startTimer&&clearTimeout(this.startTimer),window.removeEventListener("resize",this._onWinSizeChange),null===(e=this.fpsDetection)||void 0===e||e.stop()}},{key:"eventInfo",get:function(){return this._eventInfo}},{key:"generalInfo",get:function(){return this._generalInfo}},{key:"bufferLength",get:function(){var e,t,n=(null===(e=this.player)||void 0===e?void 0:e.getBufferedRange())||[],U=((null===(t=this.player)||void 0===t?void 0:t.video)||{currentTime:0}).currentTime,F=n[1]-Math.max(n[0],U),a=Math.max(0,F).toFixed(2);return parseFloat(a)}},{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 t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(this._qoeArgs=F,this._currentItem&&this.avgStat(Ti.PLAYBACK_BITRATE,this._currentItem.bitrate),this.avgStat(Ti.DOWNLOAD_NETWORK_SPEED,1e3*e*8),this.avgStat(Ti.PREDICT_NETWORK_SPEED,n),this.avgStat(Ti.BUFFER_LENGTH,this.bufferLength),this.avgStat(Ti.QOE,this.getQoeRelValue(0)),U>0&&(this._switchCount++,this._switchBitrate+=U),this._abr_play_info.is_hint){var a=((new Date).getTime()-this.openTimeMs)/1e3;a=parseFloat(a.toFixed(2)),this._abr_play_info.playback_info.internet_speed_record.push([a,this.downloadSpeed]),this._abr_play_info.playback_info.play_bitrate_record.push([a,this.nowBitrate]),this._abr_play_info.playback_info.buffer_length_record.push([a,this.bufferLength]),this._abr_play_info.playback_info.play_speed_record.push([a,(null===(t=this.player)||void 0===t?void 0:t.playbackRate)||-1]),this._abr_play_info.playback_info.qoe_record.push([a,this.getQoeRelValue(0)]),this._abr_play_info.playback_info.qoe_a_record.push([a,this.getQoeRelValue(1)]),this._abr_play_info.playback_info.qoe_b_record.push([a,this.getQoeRelValue(2)]),this._abr_play_info.playback_info.qoe_c_record.push([a,this.getQoeRelValue(3)])}}},{key:"getQoeRelValue",value:function(e){return this._qoeArgs[e]/100}},{key:"avgStat",value:function(e,t){var n=this._avgStatItems[e];n&&n.add(t)}},{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={},t=Object.keys(Ti),n=0;n<t.length;n++){var U=t[n],F=Ti[U],a=this._avgStatItems[F];e[F]=a.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}}]),n}(fi),gi=function(){function e(){R(this,e),this.total=0,this.count=0}return V(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}(),Di=DF.EVENT_EME.CDM_LICENSE_ERROR,Xi=DF.EVENT_EME.CDM_LICENSE_SUCCESS,xi=function(){function e(t,n,U){var F,a,i=this;R(this,e),kF(this),this._pluginInst=n,this.__dash__=U;var Q=n.config,l=n.player,r=n._kernal;this.kernal=r,this.mse=void 0,this.config=Q,this.player=l,this.url=t,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._resetOptionDataLenInfo(),this._initStates={emitEncrypt:!1};var d=this.config,o=d.loader,s=d.reqOptions,B=d.vid;this.loader=new Wi(Object.assign({openLog:ct,vid:B},o,s),this._pluginInst.preloadManager),this.loader.on(tt,(function(e){i.player.emit(tt,e)})),this._vTrack=null,this._aTrack=null,this._onLoadingItems=[],this._videoEncryption=!1,this._audioEncryption=!1;var c=this.config.duration||this.config.dashOpts.video_duration||this.config.dashOpts.dynamic_video.video_duration;this.config.duration=c;var u="segment_base"===(null===(F=this.config.dashOpts)||void 0===F||null===(a=F.dynamic_video)||void 0===a?void 0:a.dynamic_type);this._vid=Q.vid;var V=this.player.config.uri||Q.vid;this._pcdnScv=new Zi({config:Q,isOpenPCDN:u,videoDuration:c,uri:V},this.player),this._dynamicBufferService=new ki(this.player,0,c,this.config.adaptRange),this._audioMetaReadyPromise=null,this._videoMetaReadyPromise=null,this._resetProgressInfos(),this._appendBufferDelta={video:this._genEmptyBufferDelta(),audio:this._genEmptyBufferDelta()},this._lastAppendBufferEnd={video:{prevRangeEnd:0,prevItem:null},audio:{prevRangeEnd:0,prevItem:null}},this._preloadSegDatas={video:[],audio:[]},this._allCacheKeys=[]}var t,n,U,F,a,i,Q,l;return V(e,[{key:"_genEmptyBufferDelta",value:function(){return{delta:0,item:null,requestDelta:0,isPCDN:!1}}},{key:"_resetProgressInfos",value:function(){this._progressInfos={video:this._genEmptyProgressInfo(),audio:this._genEmptyProgressInfo()}}},{key:"_genEmptyProgressInfo",value:function(){return{data:new Uint8Array(0),range:null,extData:null,done:!1}}},{key:"cachePreloadData",value:function(){var e;null===(e=this.loader)||void 0===e||e.cachePreloadData({vid:this._vid,codecType:this.mpd.getCodecType()},this._progressInfos),this._progressInfos.video.done&&(this._progressInfos.video=this._genEmptyProgressInfo()),this._progressInfos.audio.done&&(this._progressInfos.audio=this._genEmptyProgressInfo())}},{key:"_updateLoadInfo",value:function(e,t){this.loadInfo||(this.loadInfo={}),this.loadInfo[e]||(this.loadInfo[e]={},this.loadInfo[e].size=0),this.loadInfo[e].size+=t}},{key:"_resetOptionDataLenInfo",value:function(){var e,t;this._optionDataLenInfo={video:(e={},h(e,ci,{size:0}),h(e,Ri,{size:0}),e),audio:(t={},h(t,ci,{size:0}),h(t,Ri,{size:0}),t)}}},{key:"getPCDNInOutBuffer",value:function(){var e;return null===(e=this._pcdnScv)||void 0===e?void 0:e.getPCDNInOUtBuffer()}},{key:"updateDynamicBufferServiceBitrate",value:function(e){this._dynamicBufferService.updateBitrate(e)}},{key:"getAdaptCacheBuffer",value:function(e){return this._dynamicBufferService.getAdaptCacheBuffer(e)}},{key:"pushDynamicBufferServiceRes",value:function(e){this._dynamicBufferService.push(e)}},{key:"popDynamicBufferServiceRes",value:function(){var e;return(null===(e=this._dynamicBufferService)||void 0===e?void 0:e.pop())||{}}},{key:"getPCDNTraceInfo",value:function(){var e;return null===(e=this._pcdnScv)||void 0===e?void 0:e.getPCDNTraceInfo()}},{key:"_abortAndRemove",value:(l=c(o().mark((function e(t,n,U){var F,a,i,Q,l,r,d,s,B=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=!(B.length>3&&void 0!==B[3])||B[3],i=(null===(F=this.player)||void 0===F?void 0:F.currentTime)||-1,Q=n.startRaw<i&&i<n.endRaw,!a){e.next=6;break}return e.next=6,null===(l=this.loader)||void 0===l?void 0:l.cancelTasks(t,!0);case 6:Q?this._appendBufferDelta&&((s=this._appendBufferDelta[t]).range&&n.range&&n.range[0]<s.range[1]&&s.range[1]<n.range[1]&&(n.extRange=[s.range[1],n.range[1]]),pt.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"extRange",JSON.stringify(n.extRange),"range",JSON.stringify(n.range),U),this._appendBufferDelta[t]=this._genEmptyBufferDelta()):(n.isSatisfied&&(pt.log("_abortAndRemove isSatisfied abort and clear"),null===(r=this.__dash__)||void 0===r||r.abort(t),null===(d=this.__dash__)||void 0===d||d.clearBufferDirect(t,n)),this.updateItemState(n),pt.log("_abortAndRemove",t,"start",n.startRaw,"end",n.endRaw,"from",U));case 7:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return l.apply(this,arguments)})},{key:"onTimeUpdate",value:function(){if(this._appendBufferDelta){var e=this.config,t=e.usePCDNProgressiveCheck,n=e.progressiveTimeout;if(t)for(var U=Object.keys(this._appendBufferDelta),F=bU.nowTime(),a=0;a<U.length;a++){var i=U[a],Q=this._appendBufferDelta[i],l=Q.delta,r=Q.requestDelta,d=Q.item;if(Q.isPCDN&&d){var o=this.player.playbackRate,s=l>0&&F-l>n,B=r>0&&F-r>1e3*(d.end-d.start)/o;(s||B)&&(pt.log("_abortAndRemove PCDN request cancel, progressiveTimeout",s,"requestTimeout",B,"segDuration",d.end-d.start,"s"),this.player&&this.player.emit("log",{type:"oneevent",end_type:s?"progressive_timeout":"pcdn_request_timeout"}),this._abortAndRemove(i,d,"pcdn onTimeUpdate",!0))}}}}},{key:"_emitAbrNextSegmentPredictEvt",value:function(e){var t;null===(t=this.player)||void 0===t||t.emit(Ni.NEXT_SEGMENT_PREDICT,e)}},{key:"getData",value:(Q=c(o().mark((function e(t){var n,U,F,a,i,Q,l,r,s,B,c,R,u,V,h,Z,S,p,J,m,b,W=this,k=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=k.length>1&&void 0!==k[1]?k[1]:[],U=k.length>2?k[2]:void 0,a=k.length>4&&void 0!==k[4]&&k[4],i=k.length>5&&void 0!==k[5]?k[5]:null,Q=k.length>6&&void 0!==k[6]?k[6]:null,l=k.length>7&&void 0!==k[7]?k[7]:null,r=k.length>8&&void 0!==k[8]?k[8]:null,s=(F=k.length>3&&void 0!==k[3]?k[3]:{}).isPCDN,B=s?ci:Ri,F.url=t,e.next=13,this.loader.load(U,t,n,F,a,i?function(e,t,a,Q){var l=B;if(W._optionDataLenInfo){var r=W._optionDataLenInfo[U][l];if(e&&e.byteLength&&(r.size+=e.byteLength,r.range=n,r.extData=F),t&&!a.fromCache){var o=n[1]-n[0]+1,s=Date.now()-a.st;W._emitPrfDataSizeEvent(B,o,U,n,F,0,s),r.size=0,r.range=null,r.extData=null}if(F.checkPreload&&!a.fromCache){var c=W._progressInfos[U];c.data=ot(c.data,e),c.extData=F,null===c.range?c.range=a.range:c.range[1]=Math.min((null==n?void 0:n[1])||1/0,a.range[1]),c.done=t,t&&W.cachePreloadData()}t&&W._emitAbrNextSegmentPredictEvt(d(d({},F),{},{fix:!0})),i(e,t,a,Q,F)}}:null,Q,l,r);case 13:if(!((c=e.sent)&&c.res instanceof ArrayBuffer)){e.next=21;break}return R=c.res,u=c.headers,V=c.status,h=c.fromCache,Z=c.cacheKey,S=c.orgDefinition,p=c.duration,h?this.emitPreloadHit(Z):this._emitPrfDataSizeEvent(B,c.res.byteLength,U,n,F,0,c.costTime),this._emitAbrNextSegmentPredictEvt(d({},F)),e.abrupt("return",{res:R,headers:u,status:V,fromCache:h,orgDefinition:S,duration:p});case 21:c&&"error"===c.res&&!this._isAbort(null==c?void 0:c.error)&&this.player&&this.player.emit("source_error",{host:bU.getHostFromUrl(null==c?void 0:c.url),src:null==c?void 0:c.url,errorCode:(null==c?void 0:c.status)||"networkError",message:null==c||null===(J=c.error)||void 0===J?void 0:J.message,range:n,headers:null==c?void 0:c.header,error:{msg:null==c||null===(m=c.error)||void 0===m?void 0:m.message,stack:null==c||null===(b=c.error)||void 0===b?void 0:b.stack}});case 22:return e.abrupt("return",c);case 23:case"end":return e.stop()}}),e,this)}))),function(e){return Q.apply(this,arguments)})},{key:"_emitPrfDataSizeEvent",value:function(e,t,n,U,F){var a,i,Q,l,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:-1,s=Wi.currentSpeed,B=F.fileId,c=F.definition,R=F.adaptItemParam,u=F.bitrate,V=F.first_gop,h=F.segmentDuration,Z=F.start,S=F.end,p=F.url,J=(null===(a=this.player)||void 0===a?void 0:a.config.uri)||(null===(i=this.config)||void 0===i?void 0:i.vid),m="cdn";e===Ri?null===(Q=this.player)||void 0===Q||Q.emit("prf_data_size",d(d({vid:this._vid,task_type:1,cdn_size:t,mediaType:n,range:JSON.stringify(U),fileid:B,definition:c,cdn_speed:s},R),{},{emitType:r,bitrate:u,format:"DASH",uri:J,first_gop:V,segmentDuration:h,costTime:o,start:Z,end:S,url:p})):(m="pcdn",null===(l=this.player)||void 0===l||l.emit("prf_data_size",d(d({vid:this._vid,task_type:1,pcdn_size:t,mediaType:n,range:JSON.stringify(U),fileid:B,definition:c,pcdn_speed:s},R),{},{emitType:r,bitrate:u,format:"DASH",uri:J,first_gop:V,segmentDuration:h,costTime:o,start:Z,end:S,url:p})));this._updateLoadInfo(m,t)}},{key:"_getCryptInfos",value:function(){var e="",t="";if(this.dynamic_video.dynamic_video_list&&this.dynamic_video.dynamic_video_list.length>0){for(var n=0;n<this.dynamic_video.dynamic_video_list.length;n++)if(this.dynamic_video.dynamic_video_list[n].kid){e=this.dynamic_video.dynamic_video_list[n].kid,t=this.dynamic_video.dynamic_video_list[n].spade_a,this._videoEncryption=!0;break}}else if(this.dynamic_video.dynamic_audio_list)for(var U=0;U<this.dynamic_video.dynamic_audio_list.length;U++)if(this.dynamic_video.dynamic_audio_list[U].kid){e=this.dynamic_video.dynamic_audio_list[U].kid,t=this.dynamic_video.dynamic_audio_list[U].spade_a,this._audioEncryption=!0;break}return{keyId:e,spade_a:t}}},{key:"init",value:(i=c(o().mark((function e(t){var n,U,F,a,i,Q,l,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"),n=this._getCryptInfos(),U=n.keyId,F=n.spade_a,(a=this).config.usePlaySpade&&(a.config.secretKey=F),i=a.config,Q=i.secretKey,l=i.drmKeyToken,r=i.playDomain,!(U||Q||l&&r)){e.next=18;break}return e.prev=10,e.next=13,this._initSecret(U);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",a.initDash(t));case 19:case"end":return e.stop()}}),e,this,[[10,15]])}))),function(e){return i.apply(this,arguments)})},{key:"_initSecret",value:function(e){var t=this,n=new x,U=this.config,F=U.secretKey,a=U.drmKeyToken,i=U.playDomain,Q=U.useUnionInfoDRM,l=U.keyTokenExpiredDuration,r=U.sessionId;if(this.player.plugins.drm)return n.resolve(),n;var d=new DF.XGSecretKey({kid:e,getLicenseUrl:this.getLicenseUrl,secretKey:F,vid:this.config.vid||"",useUnionInfoDRM:Q,drmKeyToken:a||this.config.keyToken,keyTokenExpiredDuration:l,playDomain:i,sessionId:r,useEME:this.useEME,intertrustServerURL:this.config.intertrustServerURL});return this._secret=d,d.getLicenseSecret().then((function(e){if(!t._pluginInst)return pt.log("getLicense callback destroy"),void n.reject("getLicense callback destroy");t.config.dashOpts&&t.useEME?(t._initEME(),null==d||d.setOptions(),null==d||d.setupEME(t.player.video)):(t.__dash__.crypto&&t.__dash__.crypto.updateValue(e),t.keyValue=!0),pt.encrypt("getLicense resolve"),n.resolve()})).catch((function(e){pt.log("DRM_ERROR",e),n.reject("catch error"),void 0!==e.status&&t.emit("error",new LF(Se,me.CUSTOM_LICENSE,{url:t.getLicenseUrl,httpCode:e.status,message:"CUSTOM_LICENSE_ERROR"}))})),n}},{key:"_initEME",value:function(){var e=this;if(!DF.checkEMEValid())return this.player.errorHandler(new LF(Ze,me.EME_HIJACK,{message:"EME API被劫持"})),void this.__dash__.destroy();this._secret.on(Di,(function(t){e.player&&e.player.emit("log",d({type:"oneevent",end_type:Di,ua:navigator.userAgent},t)),pt.log("EME CDM_LICENSE_ERROR"),e.player.errorHandler(new LF(Se,me.LICENSE,{message:"DRM接口失败".concat(t.data)}))})),this._secret.on(Xi,(function(t){e.player&&e.player.emit("log",d({type:"oneevent",end_type:Xi,ua:navigator.userAgent},t)),pt.log("EME CDM_LICENSE_SUCCESS")}))}},{key:"_initDefaultDefinition",value:function(){var e=this,t=this,n=t.config,U=this.mpd.mediaList.video,F=n.defaultDefinition?n.defaultDefinition.toString():null,a=this.player.preloader&&this.player.preloader.getPreloadMetaByVid(t.config.vid),i=!1;if(a&&a.definition){F=a.definition,i=!0;var Q=this._pluginInst.preloadManager;if(Q&&Q.supportSync()){var l=this.mpd.getCodecType(),r=Q.getPreLoadDataSync({vid:this._vid,codecType:l,vtype:ln.DASH});delete r.cacheKey,delete r.loadInfo,this._allCacheKeys=Object.keys(r),this._allCacheKeys.forEach((function(t){var n,U,F,a=r[t];a&&!a.isInitSegment&&(null===(n=a.range)||void 0===n?void 0:n.length)>0&&(null===(U=a.range)||void 0===U?void 0:U[1])<a.rangeEnd&&(null===(F=e._preloadSegDatas[a.mediaType])||void 0===F||F.push(a))}))}pt.log("dashDefinition",t.config.vid,"hasPreload",F)}var d=this.player.config;if(!!d.userSelectDefinition&&d.focusUserDefinition&&(F!==d.userSelectDefinition.toString()&&i&&(i=!1,pt.log("dashDefinition",t.config.vid,"hasPreload",F,"change to userSelectDefinition",d.userSelectDefinition)),F=d.userSelectDefinition.toString()),this._pluginInst.bitRateAdapter&&!i){var o=this.player?d.userSelectDefinition:null,s=bU.getBitrateItem(t.config.dashOpts.dynamic_video,this._pluginInst.bitRateAdapter,t.config.dashOpts.dynamic_video.duration,o);if(pt.log("[dashDefinition] onReady BitRateAdapter",t.config.vid,"item",s),s){F=s.definition.toString();var B=t.config.dashOpts.dynamic_video.dynamic_video_list,c=null==B?void 0:B.filter((function(e){return e.definition===s.definition}))[0];c&&(c.fromType=s.fromType,c.orgDefinition=s.orgDefinition,c.type=s.type)}}pt.log("[dashDefinition] onReady",t.config.vid,"video definition",F);var R=!1;F&&U.forEach((function(t,n){t.definition.toString()===F.toString()&&(e.config.defaultDefinition=F.toString(),U.selectedIdx=n,R=!0)})),R||(U.selectedIdx=0),this.selectAudio()}},{key:"selectAudio",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.mpd.mediaList.video,U=this.mpd.mediaList.audio,F=ri(n,U,e),a=F;return-1===a&&(a=0),t&&(U.selectedIdx=a),pt.log(this._vid,"audio definition",U.selectedIdx),F}},{key:"_initMSE",value:function(){var e=this;this.kernal.setNodeTime("initmse_sbopen");var t,n,U=Date.now(),F=this.mpd.mediaList.audio,a=this.mpd.mediaList.video,i={};if(this._hasAudio&&(i[Ge.AUDIO]={mimeType:"audio/mp4",codec:'audio/mp4; codecs="'.concat(F[F.selectedIdx].codecs,'"')}),this._hasVideo&&(i[Ge.VIDEO]={mimeType:"video/mp4",codec:'video/mp4; codecs="'.concat(a[a.selectedIdx].codecs,'"')}),this._hasVideo&&this._pluginInst.softVideo){var Q=this.player.video;Q.setPlayMode&&Q.setPlayMode("VOD"),(t=Q).url=URL.createObjectURL(new Blob),n=Promise.resolve()}else{if(this._secret&&!DF.checkMSEValid())return void this.player.errorHandler(new LF(Ze,me.MSE_HIJACK,{message:"MSE被劫持"}));(n=(t=new Ge(void 0,{openLog:ct})).bindMedia(this.player.video)).then((function(){if(e._pluginInst){e.kernal.setNodeTime("initmse_sbopendone"),e._pluginInst.info({msg:"mse init success",name:"mseInit",startMs:U,profile:!0});try{for(var n=Object.keys(i),F=0;F<n.length;F++){var a=n[F];t.createSource(a,i[a].codec)}}catch(Q){pt.log("MSE MSE_MEDIA_TYPES_NOT_SUPPORTED",JSON.stringify({msg:Q.message})),e&&e.player&&e.player.errorHandler(new LF(Ze,me.MSE_ADD_SB,{line:329,message:"mse init fail"})),pt.log("mse init error",Q,"player destroyed ? ",!(e&&e.player))}}else pt.log("open promise ready destroy")})).catch((function(e){console.log("openPromise catch",e)}))}return this.mse=t,n}},{key:"_addBuffer",value:function(e,t){var n=this,U=this;if(this._hasDestroyed)pt.log("addBuffer destroy");else if(this.mpd){var F=this.mpd.mediaList[t],a=this.mpd.mediaList[t];if(!(a.length<1)&&a[a.selectedIdx]&&a[a.selectedIdx].mimeType){var i=e;if(!i.initSegmentRes)return pt.log("initSegment null, task request error, stop"),void U.emit("error",new LF(Je,LF.SEG_PARSE_ERROR,{message:"wrapperData.initSegmentRes is null"}));U.__dash__&&U.__dash__._appendInitSegment(t,i,a.selectedIdx).then((function(){var e="video"===t?n._videoMetaReadyPromise:n._audioMetaReadyPromise;e&&(n.kernal.setNodeTime("initSegment ".concat(t," append")),e.resolve()),U.inited=!0;var a,i,Q=F.selectedIdx;F.length>0&&(F[Q].encrypted||F[Q].kid)&&(n._hasEmitEncrypt||(n._hasEmitEncrypt=!0,U._secret&&U._secret.emit(DF.EVENT_EME.ENCRYPTED),null===(a=U.player)||void 0===a||a.emit(DF.EVENT_EME.ENCRYPTED)));"vod"===U.type&&(null===(i=U.__dash__)||void 0===i||i.loadData(0),U.emit("start_play"))})).catch((function(e){var t;n._hasCatchAppendError||(n._hasCatchAppendError=!0,null===(t=U.player)||void 0===t||t.errorHandler(new LF(Ze,me.MSE_APPEND_BUFFER,{line:329,message:"mse append error ".concat(e.message?e.message:e)})))}))}}else pt.log("addBuffer mpd empty")}},{key:"initDash",value:(a=c(o().mark((function e(t){var n,U;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._pluginInst){e.next=3;break}return pt.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"),n=this,this.kernal.setNodeTime("initmpd"),U=new ya(t,n.config.dashOpts,n),n.mpd=U,U.init(),e.next=12,U.readyPromise;case 12:return this._onMPDReady(U),e.abrupt("return",this.mse);case 14:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})},{key:"_createMoofSegment",value:function(e,t){var n=t.mediaList[e],U=n[n.selectedIdx].firstMoofMdatRange;if(U){var F;pt.log(null===(F=this.config)||void 0===F?void 0:F.vid,"createMoofSegment, mediaType",e);var a=new x;e===Ge.VIDEO?this._videoMetaReadyPromise=a:this._audioMetaReadyPromise=a;var i={codecType:this.mpd.getCodecType(),range:U,url:n[n.selectedIdx].initSegment,idx:1,start:0,moof:!0,checkPreload:!0,mediaType:e,selectedIdx:n.selectedIdx};this._makeSegmentRequestByItem(i,e,{},!1,a)}}},{key:"_onMPDReady",value:function(e){var t=this,n=Date.now();if(this._pluginInst){pt.log("mpd ready"),this.kernal.setNodeTime("initmpddone"),this._pluginInst.info({msg:"mpd ready",name:"mpd ready",startMs:n,profile:!0}),this.type=e.type;var U=e.mediaList.video,F=e.mediaList.audio;this._initDefaultDefinition();var a=!!(U.length>0&&U[U.selectedIdx])&&this.config&&!this.config.dashOpts.audioOnly,i=!!(F.length>0&&F[F.selectedIdx]);this._hasVideo=a,this._hasAudio=i;var Q=this._initMSE();if(Q){var l=[],r=this.config?this.config.dashOpts.audioOnly:null;if(this.config&&!r&&U&&U.length>0&&U[U.selectedIdx]&&U[U.selectedIdx].initSegment){var d=this.__dash__._makeInitSegemntRequestWithRetry("video",U.selectedIdx,!0);d.then((function(e){t._addBufferSafe(e,Ge.VIDEO,Q)})),l.push(d),this._createMoofSegment(Ge.VIDEO,e)}if(F[F.selectedIdx]&&F[F.selectedIdx].initSegment){var o=this.__dash__._makeInitSegemntRequestWithRetry("audio",F.selectedIdx,!0);o.then((function(e){t._addBufferSafe(e,Ge.AUDIO,Q)})),l.push(o),this._createMoofSegment(Ge.AUDIO,e)}Promise.all(l).catch((function(e){t&&t.player&&t.player.errorHandler(e),pt.log("appendInitPromise error",e,"player destroyed ? ",!(t&&t.player))}))}}else pt.log("mpd ready destroy")}},{key:"_addBufferSafe",value:function(e,t,n){var U=this;this.mse.isOpened?this._addBuffer(e,t):n.then((function(){U._addBuffer(e,t)}))}},{key:"seek",value:function(e,t){var n,U,F,a,i,Q=this,l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,d=this,o=this.mpd.seek(t,r,e),s=this.popDynamicBufferServiceRes(),B=null===(n=d.mpd)||void 0===n||null===(U=n.mediaList)||void 0===U?void 0:U.video,c=null===(F=d.mpd)||void 0===F||null===(a=F.mediaList)||void 0===a?void 0:a.audio;if(d.mpd){var R=!!(B.length>0&&B[B.selectedIdx]),u=!!(c.length>0&&c[c.selectedIdx]);if(R&&u&&2*B[B.selectedIdx].mediaDuration<c[c.selectedIdx].mediaDuration)d._hastEmitDurErr||(d._hastEmitDurErr=!0,d.emit("error",new LF(Je,LF.DUR_PARSE_ERROR,{message:"the video.mediaDuration not match audio.mediaDuration"})));else{var V={},h=["video","audio"];h.forEach((function(e){o[e]&&o[e].length>0&&(V[e]=[],o[e].forEach((function(t){var n=t.idx,U=t.start,F=t.end,a=t.downloaded,i=t.range;V[e].push({idx:n,start:U,end:F,downloaded:a,range:i})})))})),pt.log(null===(i=this.config)||void 0===i?void 0:i.vid,"currentTime",t,JSON.stringify(V)),(d.config.dashOpts&&d.config.dashOpts.audioOnly?["audio"]:h).forEach((function(e){o[e]&&o[e].length>0&&o[e].every((function(t){return Q._makeSegmentRequestByItem(t,e,s,l)}))}))}}else pt.log("dash seek destroy")}},{key:"loadFirstVideoGop",value:function(){var e=this.mpd.getVideoFirstGop();e&&(pt.log("loadFirstVideoGop"),this._makeSegmentRequestByItem(e,Ge.VIDEO,{},!1,null,!1))}},{key:"_makeSegmentRequestByItem",value:function(e,t,n,U){var F=this,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],Q=this;if(e.downloaded===xt||e.downloaded===Xt)return!0;e.downloaded=Xt;var l=Object.assign({},n,{load_tar_dur:e.end-e.start,load_dur:e.end-e.start});e.adaptItemParam=l;var r=this._videoEncryption||this._audioEncryption,d=!r||r&&this.useEME,s=Q.config.useProgressiveAppend&&!this._pluginInst.softVideo&&d&&this.loader.isSupportedProgress(),B=0===e.start||U,R=Q.mpd.mediaList[t],u=R[R.selectedIdx],V=B&&this.loader.checkProgressSatisfied(u.bandwidth||u.bitrate),h=Q.config.useProgressiveAppendAll,Z=s&&(V||h);B&&pt.log("progressDownloaded match, config p ".concat(Q.config.useProgressiveAppend,", \n progressDownloaded ").concat(s,", encEnableProgress :").concat(d,",\n useProgressiveAppendAll:").concat(h)),Z&&0===e.start&&("video"===t?Q._pluginInst.pvStartup=!0:Q._pluginInst.paStartup=!0);var S=function(){Q.updateItemState(e,!1),pt.log("onCancel",e),Q._removeFromList(e),Q._setLoading(t,!1),Z&&(null==Q||Q._abortAndRemove(t,e,"oncancel",!1))};e.isSatisfied=Z,Q._addToList(e),this._setLoading(t,!0,!1),Z?(pt.log("progressDownloaded, mediaType:".concat(t,",\n start:").concat(e.start,", bitrate:").concat(u.bandwidth||u.bitrate)),Q.makeSegmentRequest(t,e,function(){var n=c(o().mark((function n(U,l,r,d,s){var B,c,R;return o().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,null!==(B=F._appendBufferDelta)&&void 0!==B&&B[t]&&((c=F._appendBufferDelta[t]).delta=bU.nowTime(),c.item=e,c.requestDelta||(c.requestDelta=bU.nowTime())),R=r.range||e.range,s.range=R,s.status=null==d?void 0:d.status,200!==s.status||"ftyp"!==bU.getTopBoxType(U)){n.next=10;break}return n.next=8,F.loader.cancel(t);case 8:return Q._onRequestFail({message:"response 200, cancel"},e,t),n.abrupt("return");case 10:Q.appendSegment(t,U,e,{},s,!1,l,a),l&&(e.extRange=void 0,Q._removeFromList(e),F._setLoading(t,!1,i,e.idx),F._appendBufferDelta&&(F._appendBufferDelta[t]=F._genEmptyBufferDelta()),pt.log("mediaType",t,"item",e.idx,"done")),n.next=17;break;case 14:n.prev=14,n.t0=n.catch(0),F.__dash__?(F._abortAndRemove(t,e,"errorCatch"),Q._onRequestFail(n.t0,e,t)):pt.log("__dash__ null, destroy");case 17:case"end":return n.stop()}}),n,null,[[0,14]])})));return function(e,t,U,F,a){return n.apply(this,arguments)}}(),S,a).catch((function(n){Q._onRequestFail(n,e,t)}))):Q.makeSegmentRequest(t,e,null,S).then((function(n){var U=n.res,F=n.headers,i=n.extData;pt.log("append ".concat(t," ").concat(e.start," ").concat(e.end)),Q._setLoading(t,!1,!0,e.idx),Q.appendSegment(t,U,e,F||{},i,!0,!0,a),Q._removeFromList(e)}),null,a).catch((function(n){Q._onRequestFail(n,e,t)})).finally((function(){Q._setLoading(t,!1)}))}},{key:"_onRequestFail",value:function(e,t,n){var U,F;(this._setLoading(n,!1),this.updateItemState(t),this._removeFromList(t),e.isPCDN)&&(null===(U=this._pcdnScv)||void 0===U||U.setSetRetryInfo(n,e.url),null===(F=this._pcdnScv)||void 0===F||F.removePCDNNode(n,e.bitrate,e.url));if(this.mpd){var a=this.mpd.mediaList;pt.log("_onRequestFail",null==e?void 0:e.message,JSON.stringify(t));var i="video"===n?a.video:a.audio,Q=i[i.selectedIdx],l=!this._isAbort(e.error)&&!e.isPCDN;!Q.hasBackup&&Q.backupUrl&&l?Q.hasBackup=!0:Q.fallbackUrl&&l&&(Q.hasFallback=!0)}else pt.log("_onRequestFail destroy")}},{key:"_setLoading",value:function(e,t){var n,U,F=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;(pt.log("setLoading",e,"isLoading",t,"addNext",F,"prevIdx",a),null===(n=this.mpd)||void 0===n||n.setLoadingState(e,t),F)&&(null===(U=this.mpd)||void 0===U||U.moveNextSegmentIndex(e,a))}},{key:"_isAbort",value:function(e){var t=null==e?void 0:e.message;return(null==t?void 0:t.includes("The user aborted a request"))||(null==t?void 0:t.includes("Fetch is aborted"))||(null==t?void 0:t.includes("signal is aborted without reason"))}},{key:"_addToList",value:function(e){this._onLoadingItems&&this._onLoadingItems.push(e)}},{key:"_removeFromList",value:function(e){if(this._onLoadingItems)for(var t=this._onLoadingItems.length-1;t>-1;t--)this._onLoadingItems[t]===e&&this._onLoadingItems.splice(t,1)}},{key:"_doSizePreloadCheck",value:function(e){if((this._pluginInst.softVideo||this.__dash__.dashVideoEncrypted||this.__dash__.dashAudioEncrypted)&&!1===this.useEME&&this.__dash__.crypto)return{isSlice:!1};if("segment_template"===this.mpd.dashType)return{isSlice:!1};var t=e.mediaType,n=e.range,U=this._preloadSegDatas[t];if(!U||0===(null==U?void 0:U.length))return{isSlice:!1};var F,a=f(U);try{for(a.s();!(F=a.n()).done;){var i=F.value;if(i.range[0]===n[0]&&e.fileId===i.fileId){var Q=i.res,l=i.duration;return{isSlice:!0,range:[i.range[1]+1,n[1]],res:Q,duration:l}}}}catch(r){a.e(r)}finally{a.f()}return{isSlice:!1}}},{key:"makeSegmentRequest",value:function(e,t){var n,U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,Q=this,l=new x;void 0===t.range&&(t.range=[]),"video"===e&&pt.network("http get video start: ".concat(t.start,", end: ").concat(t.end," ,range: ").concat(t.range)),Q.player&&Q.__dash__._checkUrlRange(t.url);var r={limitSizeM:1/0,segment_resolution:"",isVideo:"video"===e,ratio:Q.config.segmentRatio||7.5,vid:Q.config.vid,mediaType:e,start:t.start,end:t.end,useUrlRange:Q.config.useUrlRange},o=1/0,s=Q.mpd.mediaList[e],B=s[s.selectedIdx],c=t.url;B.hasFallback?c=B.fallbackUrl:B.hasBackup&&(c=B.backupUrl);var R=(null===(n=t.extRange)||void 0===n?void 0:n.length)>0,u=!1;if(this._pcdnScv){var V=this._pcdnScv.selectedPCDN(e,!1,B.bandwidth),h="audio"===e||(null==V?void 0:V.includes(B.fileId));V&&!h&&(this._pcdnScv.removePCDNNode(e,B.bandwidth),pt.log("PCDNURL remove, url,",V,"fileid",B.fileId)),h&&V&&!R&&(u=!0,(!this._cdnHost||c.indexOf(this._cdnHost)<0)&&(this._cdnHost=bU.getHostFromUrl(c)),this._cdnHost||(this._cdnHost=bU.getHostFromUrl(c)),r.cdnHost=this._cdnHost,c=V,pt.log("PCDNURL",c))}if("video"===e){try{var Z=B.definition||Q.__dash__.bandwidth2item[B.bandwidth].definition;Z=Z.toString(),o=kt[Z.toLowerCase()],r.segment_resolution=Z.toLowerCase(),r.definition=r.segment_resolution,t.definition=Z,this.setCurrentHost(c)}catch(N){o=1/0}r.limitSizeM=o}var S=t.range;r.bitrate=B.avg_bitrate||B.bandwidth||B.bitrate,r.bandwidth=B.bandwidth||B.bitrate,r.idx=B.idx,r.first_gop=0===t.start?1:0,r.isPCDN=u,r.fileId=B.fileId,r.codecType=this.mpd.videoCodecType,r.adaptItemParam=t.adaptItemParam,r.segmentDuration=t.end-t.start,delete t.adaptItemParam,r.moof=t.moof;var p=bU.generateRequestUniqueKey(d(d({},r),{},{range:S})),J=this._allCacheKeys.includes(p);r.checkPreload=t.checkPreload||r.first_gop||J,r.isSatisfied=t.isSatisfied;var m=this.config.timeout;if(r.first_gop&&this.kernal.setNodeTime("init".concat(e,"_segstart")),this._appendBufferDelta[e].isPCDN=u,t.extRange&&(pt.log("_PCDN extRange",t.extRange,"medaiType",e,"isPCDNTimeout",R),t.extRange[0]<t.extRange[1]&&(S=t.extRange)),r.checkPreload){var b=this._doSizePreloadCheck(t),W=b.isSlice,k=b.range,E=b.res,y=b.duration;if(W){S=k,r.isSlice=!0,pt.log("hit preload size",e),r.rangeEnd=t.range[1],r.rangeStart=t.range[0];var f=d(d({},t),{},{range:[t.range[0],k[0]-1]});this.appendSegment(e,E,f,{},r,!1,!1,i),this.kernal.setPreloadData("init".concat(e,"_segcache"),{fromCache:!0,mediaType:e,definition:r.definition,duration:y,byteLength:E.byteLength})}}return this.getData(c,S,e,r,!1,F,a,m,(function(){Q.updateItemState(t,!1),pt.log("onTimeout",t),Q._removeFromList(t),Q._onRequestFail(Object.assign({url:c,error:{message:"Timeout"}},r),t,e)})).then((function(n){if(U._pluginInst)if(n){var a=n.res,i=n.fromCache,d=n.duration,o=a instanceof ArrayBuffer;if(r.first_gop){var s="init".concat(e,"_segdone");U.kernal.setNodeTime(s)}if(i&&U.kernal.setPreloadData("".concat(e,"-").concat(r.bitrate,"-").concat(S[0],"-").concat(S[1]),{fromCache:i,mediaType:e,definition:r.definition,duration:d,byteLength:o?a.byteLength:0,error:o||a.done?null:a}),a instanceof ArrayBuffer)l.resolve({res:a,headers:null,extData:{status:n.status,segment_resolution:r.segment_resolution}}),Q.mseLog("task loadsucc",t,e);else if(!(206===n.status||200===n.status)){if(Q.mseLog("task loaderror",t,e),F&&U._abortAndRemove(e,t,"onProgress task loaderror",!1),403===n.status){var c;B.fallbackUrl||null==Q||Q.__dash__.clearProgressTimer(),null==Q||null===(c=Q._pluginInst)||void 0===c||c.emitExpireEvent({url:t.url,response:n})}else{var R=U._isAbort(null==n?void 0:n.error);if(B.hasFallback&&!R){var u,V;pt.log("fallUrl fail",null==n||null===(u=n.error)||void 0===u?void 0:u.message),null==Q||Q.__dash__.clearProgressTimer();var h=new LF(Je,LF.BACK_URL_FAIL,{message:"fall url fail ".concat(null==n||null===(V=n.error)||void 0===V?void 0:V.message)});U.player.errorHandler(h)}}l.reject(n)}}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,t,n,U,F){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=this,Q=i.getReportData(n,U,F,a),l=F.eagleid;if(l){if(!this.egleIds||this.egleIds[l])return;this.egleIds[l]=1}i.player&&i.player.emit("log",{type:"oneevent",end_type:e,cdnUrl:t,ext:Q})}},{key:"getReportData",value:function(e,t,n){var U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=bU.transformHeaders(n,Wt);return Object.assign({},{start:e||-1,end:t||-1},F,U)}},{key:"reportMenuEvent",value:function(e,t,n,U){var F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=this._pluginInst.player,i=this.getReportData(t,n,U,F);i.url=e,a.emit("menusegment",i)}},{key:"_reportInvalidEvent",value:function(e,t,n,U){var F=this,a=0,i=e.byteLength,Q=n.status,l=n.segment_resolution,r=t.realUrl||t.url;try{var d=bU.getTopBoxType(e);if("moof"!==d&&"styp"!==d&&(pt.media("segment content error",t,U),a=1,F.reportMonitorEvent(Lt,r,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:Q,segment_resolution:l,box_type:d,step:a,segment_origin_size:i})),"ftyp"===d&&200===Q&&2===t.range.length){this.player&&this.player.emit("source_error",{host:bU.getHostFromUrl(r),src:r,errorCode:Q,message:"boxType error",range:t.range,headers:U}),a=2;var o=t.range[0];return e=e.subarray(o,t.range[1]+1),"moof"!==(d=bU.getTopBoxType(e))&&"styp"!==d?(F.emit("error",new LF(Je,LF.SEGMENT_CONTENT_ERROR,{message:"boxType is ".concat(d,", range:").concat(JSON.stringify(t.range),", url:").concat(r,", respHeaders:").concat(JSON.stringify(U),", isPCDN:").concat(n.isPCDN)})),F.reportMonitorEvent(Lt,r,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:Q,segment_resolution:l,box_type:d,step:a,segment_origin_size:i}),null):e}}catch(s){F.reportMonitorEvent(Lt,r,t.range[0],t.range[1],U,{segment_size:e.byteLength,status:Q,segment_resolution:l,step:a,box_type:"error",segment_origin_size:i}),pt.media("segment content catch",t,s)}return null}},{key:"appendSegment",value:function(e,t,n,U,F){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5],i=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],Q=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=this;if(!this._hasDestroyed&&l.mpd&&t)if(bU.isArrayBuffer(t)){var r=t instanceof ArrayBuffer?t:t.buffer,d=new Uint8Array(r),o=bU.checkValidTopBox(d),s=F.status,B=F.segment_resolution,c=l.mpd.mediaList[e],R=n.selectedIdx,u=n.realUrl||n.url;if(a&&!o){if(null===(d=l._reportInvalidEvent(d,n,F,U)))return pt.log("segment content response 200, res is null"),void l.updateItemState(n);pt.log("segment content response 200, subrange is ok, go ahead")}l.reportMenuEvent(u,n.range[0],n.range[1],U,{segment_size:d.byteLength,status:s,segment_resolution:B});var V=this._pluginInst.softVideo;if(l.keyValue||V){var h=0;(V||l.__dash__.dashVideoEncrypted||l.__dash__.dashAudioEncrypted)&&!1===l.useEME&&l.__dash__.crypto?(h=performance.now(),l.mseLog("decryptBody start",n,e),l.__dash__.crypto.decryptBody(d,"video"===e,!V).then((function(t){var U=t.data,F=t.id,a=t.headerId;if(U.res||V){var r=U.res,d=U.videoTrack,o=U.audioTrack,s=performance.now();if(l.encryptTotalAll||(l.encryptTotalAll=0),l.encryptTotalAll+=s-h,pt.encrypt("encryptTotalAll:".concat(l.encryptTotalAll)),"video"===e&&(l.encryptTotal||(l.encryptTotal=0),l.encryptTotal+=s-h,pt.encrypt("encryptVideo:".concat(l.encryptTotal)),F<a&&!Q))return l.updateItemState(n),void console.warn("decrytbody discard, id:".concat(F,", headerId:").concat(a,",\n index:").concat(R,", url:").concat(n.url,", start:").concat(n.start));l.doAppendSegment(e,c,r,n,R,null,i,d,o,Q)}else l.updateItemState(n)}))):l.doAppendSegment(e,c,d,n,R,F.range,i,null,null,Q)}else l.doAppendSegment(e,c,d,n,R,F.range,i,null,null,Q)}else pt.log("appendSegment return done",i)}},{key:"isAllAppend",value:function(){var e=this.mpd;if(!e)return!1;var t=this.player.currentTime,n=e.isSegmentAppendFromIdx(Ge.VIDEO,t),U=n.res,F=n.emptySegments,a=e.isSegmentAppendFromIdx(Ge.AUDIO,t),i=a.res,Q=a.emptySegments,l=this._hasVideo&&F,r=this._hasAudio&&Q;return!l&&!r&&!(!U||!i)}},{key:"doAppendSegment",value:function(e,t,n,U,F,a,i,Q,l,r){var o=this;if(!this._hasDestroyed){var s=this,B={start:U.start,end:U.end,index:F,bandwidth:t[t.selectedIdx].bandwidth,fps:t[t.selectedIdx].fps,mediaType:e,sequence:U.idx,definition:t[t.selectedIdx].definition};if(e===Ge.VIDEO&&-1!==this.__dash__.curVideoInitSegmentIdx&&F!==this.__dash__.curVideoInitSegmentIdx&&this.__dash__.curVideoFileId!==t[F].fileId)return this.updateItemState(U),void pt.log("init 与 segment不匹配, curVideoInitSegmentIdx",this.__dash__.curVideoInitSegmentIdx,"selectedIdx",F);var c=t.switchTag;t.switchTag=!1;var R=function(t){var n;if(!(null!=t&&t.used||null!=t&&null!==(n=t.context)&&void 0!==n&&n.used))if(c&&U.start<s.player.currentTime&&e===Ge.VIDEO&&(s.player._invalidSeekTag=!0,s.player.currentTime+=1e-4,pt.log("appendSuccess seek 0.001")),0===U.start&&o.kernal.setNodeTime("init".concat(e,"SegmentAppend"),t),t&&(t.used=!0),s.player){if(U.range[1]<=(null==a?void 0:a[1])||i){var F;if(s.updateItemState(U,!0),"video"===e)null===(F=s.player)||void 0===F||F.emit("addVideoBufferEnd",B);if(r){var Q,l,d=null===(Q=o.mpd)||void 0===Q?void 0:Q.mediaList[e],R=d&&(null===(l=d[d.selectedIdx])||void 0===l?void 0:l.mediaSegments);R.length>0&&s.updateItemState(R[0],!0)}}if(o.mseLog("appendBuffer success",U,e,a),i){s.updateItemState(U,!0);var u=s.mpd._getBuffered(e);pt.log("fixbuffer: mediaType",e,"buffered",JSON.stringify(u),"item.start",U.start,"item.end",U.end);for(var V=!0,h=0;h<u.length;h++){var Z=u[h].start,S=u[h].end;U.start>=Z-1&&U.end<=S+1&&(V=!1)}if(V&&U.end>U.start){var p=s.mse.getSourceBuffer(e);pt.log("fixbuffer: buffer Miss",!!p),p&&o._abortAndRemove(e,U,"fixbuffer")}}"video"===e&&s.player.emit("addVideoBufferEnd",B);var J=s.mse,m=s.mpd,b=m.isLastSegmentAndAppend(e,U.idx),W=e===Ge.AUDIO?Ge.VIDEO:Ge.AUDIO,k=m.isLastSegmentAndAppend(W,U.idx);b&&k&&(pt.log("append check endofStream"),J.endOfStream()),o.isAllAppend()&&(J.endOfStream(),console.log("append all endofstream"))}else pt.log("appendBuffer destroy return")},u=d(d({range:a},B),{},{callback:R,item:U});this.appendBuffer(e,new Uint8Array(n),u,Q,l,r).then(R).catch((function(e){pt.log("append buffer catch",e);var t=e&&e.errorCode===be[Ze][me.MSE_FULL];t||s.updateItemState(U,!1),t&&s.__dash__&&s.__dash__.checkRemoveBuffer(!0),e&&e.errorCode&&s.player&&s.player.emit(new LF(Ze,e.errorCode,{line:800,message:"append buffer".concat(e.message)}))}))}}},{key:"appendBuffer",value:function(e,t,n,U,F,a){var i=this;if(this._appendBufferDelta&&(this._appendBufferDelta[e].range=n.range),this._lastAppendBufferEnd){var Q=this._lastAppendBufferEnd[e],l=Q.prevRangeEnd,r=Q.prevItem;if(n.range&&n.range.length>0){var d,o,s=l===(null==r?void 0:r.range[1]),B=l>0&&(l===(null==r?void 0:r.range[1])+1||s);if(l>0&&!B&&l!==n.range[0])if(n.range[1]<n.item.range[1])pt.log("appendBuffer seek remove",e,l,"now",n.range[0],"start",r.startRaw,"endRaw",r.endRaw),null===(d=this.__dash__)||void 0===d||d.abort(e),null===(o=this.__dash__)||void 0===o||o.clearBufferDirect(e,r),n.item.extRange=void 0;this._lastAppendBufferEnd[e]={prevRangeEnd:n.range[1],prevItem:n.item}}}var c=function(){return i._pluginInst.softVideo?(i._hasVideo&&"video"===e&&(i._vTrack=new Fa,Object.keys(U).forEach((function(e){i._vTrack[e]=U[e]}))),i._hasAudio&&"audio"===e&&(i._aTrack=new aa,Object.keys(F).forEach((function(e){i._aTrack[e]=F[e]}))),i.mse.appendBuffer(i._vTrack,i._aTrack),Promise.resolve()):i.mse.append(e,new Uint8Array(t),n)};return a?a.then((function(){return c()})):c()}},{key:"changeType",value:function(e,t){var n="";n=e===Ge.VIDEO?'video/mp4; codecs="'.concat(t,'"'):'audio/mp4; codecs="'.concat(t,'"'),this.mse.changeType&&this.mse.changeType(e,n)}},{key:"emptyAction",value:function(e,t){var n=this.mse;return n._enqueueOp(e,(function(){n._onSBUpdateEnd(e)}),"emptyAction",t)}},{key:"isProgressiveLoading",value:function(e){var t=this.loader.getCurrentTask(e);return this._isLoadingTaskCancellable(t)}},{key:"_isLoadingTaskCancellable",value:function(e){var t;if(!e||!e._config.priOptions)return{isCancellable:!0,data:null};var n=null===(t=this.player)||void 0===t?void 0:t.currentTime,U=e._config.priOptions.extData;return{isCancellable:!(U.start<=n&&n<=U.end&&U.isSatisfied),data:U}}},{key:"_cancelTasks",value:(F=c(o().mark((function e(t,n){var U,F,a,i,Q,l,r,d,s,B,c,R;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.loader){e.next=2;break}return e.abrupt("return",[]);case 2:F=this.isProgressiveLoading(t),a=F.isCancellable,i=F.data,pt.log("_cancelTasks",t,"isCancellable",a,"data",!!i),Q=[],l=null===(U=this.player)||void 0===U?void 0:U.currentTime,r=f(n);try{for(r.s();!(d=r.n()).done;)(s=d.value).mediaType===t&&(a||(B=s.start<=l&&l<=s.end&&s.isSatisfied,(s.isInitSegment||B)&&Q.push(s)))}catch(o){r.e(o)}finally{r.f()}return e.next=10,this.loader.cancelTasks(t,a);case 10:return a&&i&&i.isSatisfied&&(pt.log("isCancellable abort"),null===(c=this.__dash__)||void 0===c||c.abort(t),null===(R=this.__dash__)||void 0===R||R.clearBufferDirect(t,i)),e.abrupt("return",Q);case 12:case"end":return e.stop()}}),e,this)}))),function(e,t){return F.apply(this,arguments)})},{key:"abortLoadingTasks",value:(U=c(o().mark((function e(t){var n,U,F,a,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=[],U=!t,!this._onLoadingItems){e.next=18;break}if(!U){e.next=14;break}return e.next=6,this._cancelTasks(Ge.VIDEO,this._onLoadingItems);case 6:return F=e.sent,e.next=9,this._cancelTasks(Ge.AUDIO,this._onLoadingItems);case 9:a=e.sent,n.push.apply(n,k(F)),n.push.apply(n,k(a)),e.next=18;break;case 14:return e.next=16,this._cancelTasks(t,this._onLoadingItems);case 16:i=e.sent,n.push.apply(n,k(i));case 18:this._onLoadingItems=n;case 19:case"end":return e.stop()}}),e,this)}))),function(e){return U.apply(this,arguments)})},{key:"_doCancel",value:(n=c(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.loader.cancel(t);case 2:this._emitCancel();case 3:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"_emitCancel",value:function(){var e=this;try{Object.keys(this._optionDataLenInfo).forEach((function(t){var n=e._optionDataLenInfo[t];Object.keys(n).forEach((function(U){var F=n[U]||{},a=F.size,i=F.range,Q=F.extData;a>0&&e._emitPrfDataSizeEvent(Number(U),a,t,i,Q,1)}))}))}catch(t){}this._resetOptionDataLenInfo()}},{key:"updateItemState",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=[];e.length>0?n=e:n.push(e),n.forEach((function(e){e.downloaded=t?xt:Dt}))}},{key:"mseLog",value:function(e,t,n,U){var F;pt.mse(null===(F=this.config)||void 0===F?void 0:F.vid,"type-".concat(n,"-start-").concat(t.start,"-end-").concat(t.end,"-").concat(e,",range:").concat(JSON.stringify(U||t.range)))}},{key:"emitPreloadHit",value:function(e){pt.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,t;this._doCancel(),CF(this.loader),null===(e=this._secret)||void 0===e||e.destroy(),this._hasDestroyed=!0,null===(t=this._dynamicBufferService)||void 0===t||t.destroy()}},{key:"checkPCDN",value:(t=c(o().mark((function e(){var t,n,U,F,a,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.player&&this.player.readyState<=HTMLVideoElement.HAVE_CURRENT_DATA)){e.next=2;break}return e.abrupt("return");case 2:return e.prev=2,t=this._pluginInst.currentDefitionFromPlayer,n=t.item,e.next=7,this._pcdnScv.checkPCDN(d(d({},n),{},{mediaType:"video"}));case 7:e.next=12;break;case 9:e.prev=9,e.t0=e.catch(2),console.log("error",e.t0);case 12:return e.prev=12,U=this.mpd.mediaList.audio,F=U[U.selectedIdx],a=F.bandwidth,i=F.baseURL,e.next=17,this._pcdnScv.checkPCDN(d(d({},U[U.selectedIdx]),{},{bitrate:a,main_url:i,mediaType:"audio"}));case 17:e.next=22;break;case 19:e.prev=19,e.t1=e.catch(12),console.log("error",e.t1);case 22:case"end":return e.stop()}}),e,this,[[2,9],[12,19]])}))),function(){return t.apply(this,arguments)})},{key:"isOpenPCDN",value:function(e){var t=this;if(this._pcdnScv){var n,U,F=this._pluginInst.currentDefitionFromPlayer;if(!F)return void pt.log("isOpenCPDN curDef is null");var a=F.item,i=a.bitrate,Q=null===(n=this.mpd)||void 0===n?void 0:n._getCurBuffered(Ge.VIDEO),l=null===(U=this.mpd)||void 0===U?void 0:U._getCurBuffered(Ge.AUDIO),r=(e=Math.max(e,null==Q?void 0:Q[1],null==l?void 0:l[1]))-this.player.currentTime,d=r,s=r,B=this.player.currentTime;this.config.useSeparationMode&&(s=Math.max(0,(null==l?void 0:l[1])-B),d=Math.max(0,(null==Q?void 0:Q[1])-B)),this._pcdnScv.isOpenPCDN("video",d,i,c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.abortLoadingTasks("video");case 2:case"end":return e.stop()}}),e)}))),a);var R=this.__dash__.dash.mpd.mediaList;if(R.audio.length>0){var u=R.audio[R.audio.selectedIdx],V=this.config.dashOpts.dynamic_video.dynamic_audio_list.filter((function(e){return e.bitrate===u.bandwidth}))[0];this._pcdnScv.isOpenPCDN("audio",s,u.bandwidth,c(o().mark((function e(){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.abortLoadingTasks("audio");case 2:case"end":return e.stop()}}),e)}))),V)}}}},{key:"pcdnReqCnt",value:function(){return this._pcdnScv.pcdnReqCnt||{}}},{key:"pcdnVVStat",value:function(){return this._pcdnScv.pcdnVVStat||{}}}]),e}(),Li=xi,Ii="IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBBPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sZz1mdW5jdGlvbihBKXt0cnl7cmV0dXJuISFBKCl9Y2F0Y2goZyl7cmV0dXJuITB9fSxJPXt9LnRvU3RyaW5nLEI9ZnVuY3Rpb24oQSl7cmV0dXJuIEkuY2FsbChBKS5zbGljZSg4LC0xKX0sUT1CLEM9IiIuc3BsaXQsRT1nKChmdW5jdGlvbigpe3JldHVybiFPYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbihBKXtyZXR1cm4iU3RyaW5nIj09UShBKT9DLmNhbGwoQSwiIik6T2JqZWN0KEEpfTpPYmplY3QsaT1mdW5jdGlvbihBKXtpZihudWxsPT1BKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIitBKTtyZXR1cm4gQX0sdD1FLGU9aSxvPWZ1bmN0aW9uKEEpe3JldHVybiB0KGUoQSkpfSxuPWZ1bmN0aW9uKEEpe3JldHVybiBBJiZBLk1hdGg9PU1hdGgmJkF9LHI9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBBJiZBKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxhPXtleHBvcnRzOnt9fSxzPSFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sMSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSlbMV19KSksYz17fSxoPWZ1bmN0aW9uKEEpe3JldHVybiJvYmplY3QiPT10eXBlb2YgQT9udWxsIT09QToiZnVuY3Rpb24iPT10eXBlb2YgQX0seT1oLEQ9ci5kb2N1bWVudCxmPXkoRCkmJnkoRC5jcmVhdGVFbGVtZW50KSx1PWZ1bmN0aW9uKEEpe3JldHVybiBmP0QuY3JlYXRlRWxlbWVudChBKTp7fX0sdz11LGQ9IXMmJiFnKChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkodygiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLEY9aCxsPWZ1bmN0aW9uKEEpe2lmKCFGKEEpKXRocm93IFR5cGVFcnJvcihTdHJpbmcoQSkrIiBpcyBub3QgYW4gb2JqZWN0Iik7cmV0dXJuIEF9LEc9aCxSPWZ1bmN0aW9uKEEsZyl7aWYoIUcoQSkpcmV0dXJuIEE7dmFyIEksQjtpZihnJiYiZnVuY3Rpb24iPT10eXBlb2YoST1BLnRvU3RyaW5nKSYmIUcoQj1JLmNhbGwoQSkpKXJldHVybiBCO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihJPUEudmFsdWVPZikmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjtpZighZyYmImZ1bmN0aW9uIj09dHlwZW9mKEk9QS50b1N0cmluZykmJiFHKEI9SS5jYWxsKEEpKSlyZXR1cm4gQjt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfSxVPXMsaz1kLFM9bCxOPVIsTT1PYmplY3QuZGVmaW5lUHJvcGVydHk7Yy5mPVU/TTpmdW5jdGlvbihBLGcsSSl7aWYoUyhBKSxnPU4oZywhMCksUyhJKSxrKXRyeXtyZXR1cm4gTShBLGcsSSl9Y2F0Y2goQil7fWlmKCJnZXQiaW4gSXx8InNldCJpbiBJKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSSYmKEFbZ109SS52YWx1ZSksQX07dmFyIFk9ZnVuY3Rpb24oQSxnKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmQSksY29uZmlndXJhYmxlOiEoMiZBKSx3cml0YWJsZTohKDQmQSksdmFsdWU6Z319LEg9YyxwPVksSj1zP2Z1bmN0aW9uKEEsZyxJKXtyZXR1cm4gSC5mKEEsZyxwKDEsSSkpfTpmdW5jdGlvbihBLGcsSSl7cmV0dXJuIEFbZ109SSxBfSxMPXIsdj1KLEs9ZnVuY3Rpb24oQSxnKXt0cnl7dihMLEEsZyl9Y2F0Y2goSSl7TFtBXT1nfXJldHVybiBnfSxtPUsseD0iX19jb3JlLWpzX3NoYXJlZF9fIixxPXJbeF18fG0oeCx7fSksYj1xOyhhLmV4cG9ydHM9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYltBXXx8KGJbQV09dm9pZCAwIT09Zz9nOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMTIuMSIsbW9kZToiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMjEgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSk7dmFyIFQsTyxXPWEuZXhwb3J0cyxaPWksaj1mdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0KFooQSkpfSxQPWosWD17fS5oYXNPd25Qcm9wZXJ0eSxWPWZ1bmN0aW9uKEEsZyl7cmV0dXJuIFguY2FsbChQKEEpLGcpfSx6PTAsXz1NYXRoLnJhbmRvbSgpLCQ9ZnVuY3Rpb24oQSl7cmV0dXJuIlN5bWJvbCgiK1N0cmluZyh2b2lkIDA9PT1BPyIiOkEpKyIpXyIrKCsreitfKS50b1N0cmluZygzNil9LEFBPXIsZ0E9cixJQT1mdW5jdGlvbihBKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQT9BOnZvaWQgMH0sQkE9ZnVuY3Rpb24oQSxnKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0lBKEFBW0FdKXx8SUEoZ0FbQV0pOkFBW0FdJiZBQVtBXVtnXXx8Z0FbQV0mJmdBW0FdW2ddfSxRQT1CQSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLENBPVFBLEVBPXIucHJvY2VzcyxpQT1FQSYmRUEudmVyc2lvbnMsdEE9aUEmJmlBLnY4O3RBP089KFQ9dEEuc3BsaXQoIi4iKSlbMF08ND8xOlRbMF0rVFsxXTpDQSYmKCEoVD1DQS5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fFRbMV0+PTc0KSYmKFQ9Q0EubWF0Y2goL0Nocm9tZVwvKFxkKykvKSkmJihPPVRbMV0pO3ZhciBlQSxvQT1PJiYrTyxuQT1vQSxyQT1nLGFBPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIXJBKChmdW5jdGlvbigpe3JldHVybiFTdHJpbmcoU3ltYm9sKCkpfHwhU3ltYm9sLnNoYW0mJm5BJiZuQTw0MX0pKSxzQT1hQSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcixjQT1yLGhBPVYseUE9JCxEQT1hQSxmQT1zQSx1QT1XKCJ3a3MiKSx3QT1jQS5TeW1ib2wsZEE9ZkE/d0E6d0EmJndBLndpdGhvdXRTZXR0ZXJ8fHlBLEZBPWZ1bmN0aW9uKEEpe3JldHVybiBoQSh1QSxBKSYmKERBfHwic3RyaW5nIj09dHlwZW9mIHVBW0FdKXx8KERBJiZoQSh3QSxBKT91QVtBXT13QVtBXTp1QVtBXT1kQSgiU3ltYm9sLiIrQSkpLHVBW0FdfSxsQT1NYXRoLmNlaWwsR0E9TWF0aC5mbG9vcixSQT1mdW5jdGlvbihBKXtyZXR1cm4gaXNOYU4oQT0rQSk/MDooQT4wP0dBOmxBKShBKX0sVUE9UkEsa0E9TWF0aC5taW4sU0E9ZnVuY3Rpb24oQSl7cmV0dXJuIEE+MD9rQShVQShBKSw5MDA3MTk5MjU0NzQwOTkxKTowfSxOQT1SQSxNQT1NYXRoLm1heCxZQT1NYXRoLm1pbixIQT1mdW5jdGlvbihBLGcpe3ZhciBJPU5BKEEpO3JldHVybiBJPDA/TUEoSStnLDApOllBKEksZyl9LHBBPW8sSkE9U0EsTEE9SEEsdkE9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPXBBKGcpLEU9SkEoQy5sZW5ndGgpLGk9TEEoQixFKTtpZihBJiZJIT1JKXtmb3IoO0U+aTspaWYoKFE9Q1tpKytdKSE9USlyZXR1cm4hMH1lbHNlIGZvcig7RT5pO2krKylpZigoQXx8aSBpbiBDKSYmQ1tpXT09PUkpcmV0dXJuIEF8fGl8fDA7cmV0dXJuIUEmJi0xfX0sS0E9e2luY2x1ZGVzOnZBKCEwKSxpbmRleE9mOnZBKCExKX0sbUE9e30seEE9VixxQT1vLGJBPUtBLmluZGV4T2YsVEE9bUEsT0E9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXFBKEEpLFE9MCxDPVtdO2ZvcihJIGluIEIpIXhBKFRBLEkpJiZ4QShCLEkpJiZDLnB1c2goSSk7Zm9yKDtnLmxlbmd0aD5ROyl4QShCLEk9Z1tRKytdKSYmKH5iQShDLEkpfHxDLnB1c2goSSkpO3JldHVybiBDfSxXQT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLFpBPU9BLGpBPVdBLFBBPU9iamVjdC5rZXlzfHxmdW5jdGlvbihBKXtyZXR1cm4gWkEoQSxqQSl9LFhBPWMsVkE9bCx6QT1QQSxfQT1zP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uKEEsZyl7VkEoQSk7Zm9yKHZhciBJLEI9ekEoZyksUT1CLmxlbmd0aCxDPTA7UT5DOylYQS5mKEEsST1CW0MrK10sZ1tJXSk7cmV0dXJuIEF9LCRBPUJBKCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIpLEFnPSQsZ2c9Vygia2V5cyIpLElnPWZ1bmN0aW9uKEEpe3JldHVybiBnZ1tBXXx8KGdnW0FdPUFnKEEpKX0sQmc9bCxRZz1fQSxDZz1XQSxFZz1tQSxpZz0kQSx0Zz11LGVnPSJwcm90b3R5cGUiLG9nPSJzY3JpcHQiLG5nPUlnKCJJRV9QUk9UTyIpLHJnPWZ1bmN0aW9uKCl7fSxhZz1mdW5jdGlvbihBKXtyZXR1cm4iPCIrb2crIj4iK0ErIjwvIitvZysiPiJ9LHNnPWZ1bmN0aW9uKCl7dHJ5e2VBPWRvY3VtZW50LmRvbWFpbiYmbmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIil9Y2F0Y2goUSl7fXZhciBBLGcsSTtzZz1lQT9mdW5jdGlvbihBKXtBLndyaXRlKGFnKCIiKSksQS5jbG9zZSgpO3ZhciBnPUEucGFyZW50V2luZG93Lk9iamVjdDtyZXR1cm4gQT1udWxsLGd9KGVBKTooZz10ZygiaWZyYW1lIiksST0iamF2YSIrb2crIjoiLGcuc3R5bGUuZGlzcGxheT0ibm9uZSIsaWcuYXBwZW5kQ2hpbGQoZyksZy5zcmM9U3RyaW5nKEkpLChBPWcuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLEEud3JpdGUoYWcoImRvY3VtZW50LkY9T2JqZWN0IikpLEEuY2xvc2UoKSxBLkYpO2Zvcih2YXIgQj1DZy5sZW5ndGg7Qi0tOylkZWxldGUgc2dbZWddW0NnW0JdXTtyZXR1cm4gc2coKX07RWdbbmddPSEwO3ZhciBjZz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbihBLGcpe3ZhciBJO3JldHVybiBudWxsIT09QT8ocmdbZWddPUJnKEEpLEk9bmV3IHJnLHJnW2VnXT1udWxsLElbbmddPUEpOkk9c2coKSx2b2lkIDA9PT1nP0k6UWcoSSxnKX0saGc9Y2cseWc9YyxEZz1GQSgidW5zY29wYWJsZXMiKSxmZz1BcnJheS5wcm90b3R5cGU7bnVsbD09ZmdbRGddJiZ5Zy5mKGZnLERnLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aGcobnVsbCl9KTt2YXIgdWc9ZnVuY3Rpb24oQSl7ZmdbRGddW0FdPSEwfSx3Zz17fSxkZz1xLEZnPUZ1bmN0aW9uLnRvU3RyaW5nOyJmdW5jdGlvbiIhPXR5cGVvZiBkZy5pbnNwZWN0U291cmNlJiYoZGcuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihBKXtyZXR1cm4gRmcuY2FsbChBKX0pO3ZhciBsZyxHZyxSZyxVZz1kZy5pbnNwZWN0U291cmNlLGtnPVVnLFNnPXIuV2Vha01hcCxOZz0iZnVuY3Rpb24iPT10eXBlb2YgU2cmJi9uYXRpdmUgY29kZS8udGVzdChrZyhTZykpLE1nPWgsWWc9SixIZz1WLHBnPXEsSmc9SWcsTGc9bUEsdmc9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixLZz1yLldlYWtNYXA7aWYoTmd8fHBnLnN0YXRlKXt2YXIgbWc9cGcuc3RhdGV8fChwZy5zdGF0ZT1uZXcgS2cpLHhnPW1nLmdldCxxZz1tZy5oYXMsYmc9bWcuc2V0O2xnPWZ1bmN0aW9uKEEsZyl7aWYocWcuY2FsbChtZyxBKSl0aHJvdyBuZXcgVHlwZUVycm9yKHZnKTtyZXR1cm4gZy5mYWNhZGU9QSxiZy5jYWxsKG1nLEEsZyksZ30sR2c9ZnVuY3Rpb24oQSl7cmV0dXJuIHhnLmNhbGwobWcsQSl8fHt9fSxSZz1mdW5jdGlvbihBKXtyZXR1cm4gcWcuY2FsbChtZyxBKX19ZWxzZXt2YXIgVGc9SmcoInN0YXRlIik7TGdbVGddPSEwLGxnPWZ1bmN0aW9uKEEsZyl7aWYoSGcoQSxUZykpdGhyb3cgbmV3IFR5cGVFcnJvcih2Zyk7cmV0dXJuIGcuZmFjYWRlPUEsWWcoQSxUZyxnKSxnfSxHZz1mdW5jdGlvbihBKXtyZXR1cm4gSGcoQSxUZyk/QVtUZ106e319LFJnPWZ1bmN0aW9uKEEpe3JldHVybiBIZyhBLFRnKX19dmFyIE9nPXtzZXQ6bGcsZ2V0OkdnLGhhczpSZyxlbmZvcmNlOmZ1bmN0aW9uKEEpe3JldHVybiBSZyhBKT9HZyhBKTpsZyhBLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnKXt2YXIgSTtpZighTWcoZyl8fChJPUdnKGcpKS50eXBlIT09QSl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitBKyIgcmVxdWlyZWQiKTtyZXR1cm4gSX19fSxXZz17fSxaZz17fSxqZz17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxQZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFhnPVBnJiYhamcuY2FsbCh7MToyfSwxKTtaZy5mPVhnP2Z1bmN0aW9uKEEpe3ZhciBnPVBnKHRoaXMsQSk7cmV0dXJuISFnJiZnLmVudW1lcmFibGV9OmpnO3ZhciBWZz1zLHpnPVpnLF9nPVksJGc9byxBST1SLGdJPVYsSUk9ZCxCST1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1dnLmY9Vmc/Qkk6ZnVuY3Rpb24oQSxnKXtpZihBPSRnKEEpLGc9QUkoZywhMCksSUkpdHJ5e3JldHVybiBCSShBLGcpfWNhdGNoKEkpe31pZihnSShBLGcpKXJldHVybiBfZyghemcuZi5jYWxsKEEsZyksQVtnXSl9O3ZhciBRST17ZXhwb3J0czp7fX0sQ0k9cixFST1KLGlJPVYsdEk9SyxlST1VZyxvST1PZy5nZXQsbkk9T2cuZW5mb3JjZSxyST1TdHJpbmcoU3RyaW5nKS5zcGxpdCgiU3RyaW5nIik7KFFJLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFEsQz0hIUImJiEhQi51bnNhZmUsRT0hIUImJiEhQi5lbnVtZXJhYmxlLGk9ISFCJiYhIUIubm9UYXJnZXRHZXQ7ImZ1bmN0aW9uIj09dHlwZW9mIEkmJigic3RyaW5nIiE9dHlwZW9mIGd8fGlJKEksIm5hbWUiKXx8RUkoSSwibmFtZSIsZyksKFE9bkkoSSkpLnNvdXJjZXx8KFEuc291cmNlPXJJLmpvaW4oInN0cmluZyI9PXR5cGVvZiBnP2c6IiIpKSksQSE9PUNJPyhDPyFpJiZBW2ddJiYoRT0hMCk6ZGVsZXRlIEFbZ10sRT9BW2ddPUk6RUkoQSxnLEkpKTpFP0FbZ109STp0SShnLEkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLCJ0b1N0cmluZyIsKGZ1bmN0aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMmJm9JKHRoaXMpLnNvdXJjZXx8ZUkodGhpcyl9KSk7dmFyIGFJPVFJLmV4cG9ydHMsc0k9e30sY0k9T0EsaEk9V0EuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtzSS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihBKXtyZXR1cm4gY0koQSxoSSl9O3ZhciB5ST17fTt5SS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIERJLGZJLHVJLHdJPXNJLGRJPXlJLEZJPWwsbEk9QkEoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKEEpe3ZhciBnPXdJLmYoRkkoQSkpLEk9ZEkuZjtyZXR1cm4gST9nLmNvbmNhdChJKEEpKTpnfSxHST1WLFJJPWxJLFVJPVdnLGtJPWMsU0k9ZyxOST0vI3xcLnByb3RvdHlwZVwuLyxNST1mdW5jdGlvbihBLGcpe3ZhciBJPUhJW1lJKEEpXTtyZXR1cm4gST09Skl8fEkhPXBJJiYoImZ1bmN0aW9uIj09dHlwZW9mIGc/U0koZyk6ISFnKX0sWUk9TUkubm9ybWFsaXplPWZ1bmN0aW9uKEEpe3JldHVybiBTdHJpbmcoQSkucmVwbGFjZShOSSwiLiIpLnRvTG93ZXJDYXNlKCl9LEhJPU1JLmRhdGE9e30scEk9TUkuTkFUSVZFPSJOIixKST1NSS5QT0xZRklMTD0iUCIsTEk9TUksdkk9cixLST1XZy5mLG1JPUoseEk9YUkscUk9SyxiST1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1SSShnKSxCPWtJLmYsUT1VSS5mLEM9MDtDPEkubGVuZ3RoO0MrKyl7dmFyIEU9SVtDXTtHSShBLEUpfHxCKEEsRSxRKGcsRSkpfX0sVEk9TEksT0k9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGk9QS50YXJnZXQsdD1BLmdsb2JhbCxlPUEuc3RhdDtpZihJPXQ/dkk6ZT92SVtpXXx8cUkoaSx7fSk6KHZJW2ldfHx7fSkucHJvdG90eXBlKWZvcihCIGluIGcpe2lmKEM9Z1tCXSxRPUEubm9UYXJnZXRHZXQ/KEU9S0koSSxCKSkmJkUudmFsdWU6SVtCXSwhVEkodD9COmkrKGU/Ii4iOiIjIikrQixBLmZvcmNlZCkmJnZvaWQgMCE9PVEpe2lmKHR5cGVvZiBDPT10eXBlb2YgUSljb250aW51ZTtiSShDLFEpfShBLnNoYW18fFEmJlEuc2hhbSkmJm1JKEMsInNoYW0iLCEwKSx4SShJLEIsQyxBKX19LFdJPSFnKChmdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt9cmV0dXJuIEEucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBBKSE9PUEucHJvdG90eXBlfSkpLFpJPVYsakk9aixQST1XSSxYST1JZygiSUVfUFJPVE8iKSxWST1PYmplY3QucHJvdG90eXBlLHpJPVBJP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbihBKXtyZXR1cm4gQT1qSShBKSxaSShBLFhJKT9BW1hJXToiZnVuY3Rpb24iPT10eXBlb2YgQS5jb25zdHJ1Y3RvciYmQSBpbnN0YW5jZW9mIEEuY29uc3RydWN0b3I/QS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6QSBpbnN0YW5jZW9mIE9iamVjdD9WSTpudWxsfSxfST1nLCRJPXpJLEFCPUosZ0I9VixJQj1GQSgiaXRlcmF0b3IiKSxCQj0hMTtbXS5rZXlzJiYoIm5leHQiaW4odUk9W10ua2V5cygpKT8oZkk9JEkoJEkodUkpKSkhPT1PYmplY3QucHJvdG90eXBlJiYoREk9ZkkpOkJCPSEwKSwobnVsbD09REl8fF9JKChmdW5jdGlvbigpe3ZhciBBPXt9O3JldHVybiBESVtJQl0uY2FsbChBKSE9PUF9KSkpJiYoREk9e30pLGdCKERJLElCKXx8QUIoREksSUIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSk7dmFyIFFCPXtJdGVyYXRvclByb3RvdHlwZTpESSxCVUdHWV9TQUZBUklfSVRFUkFUT1JTOkJCfSxDQj1jLmYsRUI9VixpQj1GQSgidG9TdHJpbmdUYWciKSx0Qj1mdW5jdGlvbihBLGcsSSl7QSYmIUVCKEE9ST9BOkEucHJvdG90eXBlLGlCKSYmQ0IoQSxpQix7Y29uZmlndXJhYmxlOiEwLHZhbHVlOmd9KX0sZUI9UUIuSXRlcmF0b3JQcm90b3R5cGUsb0I9Y2csbkI9WSxyQj10QixhQj13ZyxzQj1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxjQj1oLGhCPWwseUI9ZnVuY3Rpb24oQSl7aWYoIWNCKEEpJiZudWxsIT09QSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IHNldCAiK1N0cmluZyhBKSsiIGFzIGEgcHJvdG90eXBlIik7cmV0dXJuIEF9LERCPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8KCJfX3Byb3RvX18iaW57fT9mdW5jdGlvbigpe3ZhciBBLGc9ITEsST17fTt0cnl7KEE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQpLmNhbGwoSSxbXSksZz1JIGluc3RhbmNlb2YgQXJyYXl9Y2F0Y2goQil7fXJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBoQihJKSx5QihCKSxnP0EuY2FsbChJLEIpOkkuX19wcm90b19fPUIsSX19KCk6dm9pZCAwKSxmQj1PSSx1Qj1mdW5jdGlvbihBLGcsSSl7dmFyIEI9ZysiIEl0ZXJhdG9yIjtyZXR1cm4gQS5wcm90b3R5cGU9b0IoZUIse25leHQ6bkIoMSxJKX0pLHJCKEEsQiwhMSksYUJbQl09c0IsQX0sd0I9ekksZEI9REIsRkI9dEIsbEI9SixHQj1hSSxSQj13ZyxVQj1RQi5JdGVyYXRvclByb3RvdHlwZSxrQj1RQi5CVUdHWV9TQUZBUklfSVRFUkFUT1JTLFNCPUZBKCJpdGVyYXRvciIpLE5CPSJrZXlzIixNQj0idmFsdWVzIixZQj0iZW50cmllcyIsSEI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30scEI9byxKQj11ZyxMQj13Zyx2Qj1PZyxLQj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt1QihJLGcsQik7dmFyIGksdCxlLG89ZnVuY3Rpb24oQSl7aWYoQT09PVEmJmMpcmV0dXJuIGM7aWYoIWtCJiZBIGluIGEpcmV0dXJuIGFbQV07c3dpdGNoKEEpe2Nhc2UgTkI6Y2FzZSBNQjpjYXNlIFlCOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgSSh0aGlzLEEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcyl9fSxuPWcrIiBJdGVyYXRvciIscj0hMSxhPUEucHJvdG90eXBlLHM9YVtTQl18fGFbIkBAaXRlcmF0b3IiXXx8USYmYVtRXSxjPSFrQiYmc3x8byhRKSxoPSJBcnJheSI9PWcmJmEuZW50cmllc3x8cztpZihoJiYoaT13QihoLmNhbGwobmV3IEEpKSxVQiE9PU9iamVjdC5wcm90b3R5cGUmJmkubmV4dCYmKHdCKGkpIT09VUImJihkQj9kQihpLFVCKToiZnVuY3Rpb24iIT10eXBlb2YgaVtTQl0mJmxCKGksU0IsSEIpKSxGQihpLG4sITApKSksUT09TUImJnMmJnMubmFtZSE9PU1CJiYocj0hMCxjPWZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0pLGFbU0JdIT09YyYmbEIoYSxTQixjKSxSQltnXT1jLFEpaWYodD17dmFsdWVzOm8oTUIpLGtleXM6Qz9jOm8oTkIpLGVudHJpZXM6byhZQil9LEUpZm9yKGUgaW4gdCkoa0J8fHJ8fCEoZSBpbiBhKSkmJkdCKGEsZSx0W2VdKTtlbHNlIGZCKHt0YXJnZXQ6Zyxwcm90bzohMCxmb3JjZWQ6a0J8fHJ9LHQpO3JldHVybiB0fSxtQj0iQXJyYXkgSXRlcmF0b3IiLHhCPXZCLnNldCxxQj12Qi5nZXR0ZXJGb3IobUIpLGJCPUtCKEFycmF5LCJBcnJheSIsKGZ1bmN0aW9uKEEsZyl7eEIodGhpcyx7dHlwZTptQix0YXJnZXQ6cEIoQSksaW5kZXg6MCxraW5kOmd9KX0pLChmdW5jdGlvbigpe3ZhciBBPXFCKHRoaXMpLGc9QS50YXJnZXQsST1BLmtpbmQsQj1BLmluZGV4Kys7cmV0dXJuIWd8fEI+PWcubGVuZ3RoPyhBLnRhcmdldD12b2lkIDAse3ZhbHVlOnZvaWQgMCxkb25lOiEwfSk6ImtleXMiPT1JP3t2YWx1ZTpCLGRvbmU6ITF9OiJ2YWx1ZXMiPT1JP3t2YWx1ZTpnW0JdLGRvbmU6ITF9Ont2YWx1ZTpbQixnW0JdXSxkb25lOiExfX0pLCJ2YWx1ZXMiKTtMQi5Bcmd1bWVudHM9TEIuQXJyYXksSkIoImtleXMiKSxKQigidmFsdWVzIiksSkIoImVudHJpZXMiKTt2YXIgVEI9e307VEJbRkEoInRvU3RyaW5nVGFnIildPSJ6Ijt2YXIgT0I9IltvYmplY3Qgel0iPT09U3RyaW5nKFRCKSxXQj1PQixaQj1CLGpCPUZBKCJ0b1N0cmluZ1RhZyIpLFBCPSJBcmd1bWVudHMiPT1aQihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLFhCPVdCP1pCOmZ1bmN0aW9uKEEpe3ZhciBnLEksQjtyZXR1cm4gdm9pZCAwPT09QT8iVW5kZWZpbmVkIjpudWxsPT09QT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihJPWZ1bmN0aW9uKEEsZyl7dHJ5e3JldHVybiBBW2ddfWNhdGNoKEkpe319KGc9T2JqZWN0KEEpLGpCKSk/STpQQj9aQihnKToiT2JqZWN0Ij09KEI9WkIoZykpJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jYWxsZWU/IkFyZ3VtZW50cyI6Qn0sVkI9WEIsekI9T0I/e30udG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK1ZCKHRoaXMpKyJdIn07T0J8fGFJKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIix6Qix7dW5zYWZlOiEwfSk7dmFyIF9CPXtleHBvcnRzOnt9fSwkQj1GQSgiaXRlcmF0b3IiKSxBUT0hMTt0cnl7dmFyIGdRPTAsSVE9e25leHQ6ZnVuY3Rpb24oKXtyZXR1cm57ZG9uZTohIWdRKyt9fSxyZXR1cm46ZnVuY3Rpb24oKXtBUT0hMH19O0lRWyRCXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxBcnJheS5mcm9tKElRLChmdW5jdGlvbigpe3Rocm93IDJ9KSl9Y2F0Y2godEQpe312YXIgQlEsUVE9ZnVuY3Rpb24oQSxnKXtpZighZyYmIUFRKXJldHVybiExO3ZhciBJPSExO3RyeXt2YXIgQj17fTtCWyRCXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ST0hMH19fX0sQShCKX1jYXRjaCh0RCl7fXJldHVybiBJfSxDUT0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3LEVRPUNRLGlRPXMsdFE9cixlUT1oLG9RPVYsblE9WEIsclE9SixhUT1hSSxzUT1jLmYsY1E9ekksaFE9REIseVE9RkEsRFE9JCxmUT10US5JbnQ4QXJyYXksdVE9ZlEmJmZRLnByb3RvdHlwZSx3UT10US5VaW50OENsYW1wZWRBcnJheSxkUT13USYmd1EucHJvdG90eXBlLEZRPWZRJiZjUShmUSksbFE9dVEmJmNRKHVRKSxHUT1PYmplY3QucHJvdG90eXBlLFJRPUdRLmlzUHJvdG90eXBlT2YsVVE9eVEoInRvU3RyaW5nVGFnIiksa1E9RFEoIlRZUEVEX0FSUkFZX1RBRyIpLFNRPUVRJiYhIWhRJiYiT3BlcmEiIT09blEodFEub3BlcmEpLE5RPSExLE1RPXtJbnQ4QXJyYXk6MSxVaW50OEFycmF5OjEsVWludDhDbGFtcGVkQXJyYXk6MSxJbnQxNkFycmF5OjIsVWludDE2QXJyYXk6MixJbnQzMkFycmF5OjQsVWludDMyQXJyYXk6NCxGbG9hdDMyQXJyYXk6NCxGbG9hdDY0QXJyYXk6OH0sWVE9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fSxIUT1mdW5jdGlvbihBKXtpZighZVEoQSkpcmV0dXJuITE7dmFyIGc9blEoQSk7cmV0dXJuIG9RKE1RLGcpfHxvUShZUSxnKX07Zm9yKEJRIGluIE1RKXRRW0JRXXx8KFNRPSExKTtpZigoIVNRfHwiZnVuY3Rpb24iIT10eXBlb2YgRlF8fEZRPT09RnVuY3Rpb24ucHJvdG90eXBlKSYmKEZRPWZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfSxTUSkpZm9yKEJRIGluIE1RKXRRW0JRXSYmaFEodFFbQlFdLEZRKTtpZigoIVNRfHwhbFF8fGxRPT09R1EpJiYobFE9RlEucHJvdG90eXBlLFNRKSlmb3IoQlEgaW4gTVEpdFFbQlFdJiZoUSh0UVtCUV0ucHJvdG90eXBlLGxRKTtpZihTUSYmY1EoZFEpIT09bFEmJmhRKGRRLGxRKSxpUSYmIW9RKGxRLFVRKSlmb3IoQlEgaW4gTlE9ITAsc1EobFEsVVEse2dldDpmdW5jdGlvbigpe3JldHVybiBlUSh0aGlzKT90aGlzW2tRXTp2b2lkIDB9fSksTVEpdFFbQlFdJiZyUSh0UVtCUV0sa1EsQlEpO3ZhciBwUT17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpTUSxUWVBFRF9BUlJBWV9UQUc6TlEmJmtRLGFUeXBlZEFycmF5OmZ1bmN0aW9uKEEpe2lmKEhRKEEpKXJldHVybiBBO3Rocm93IFR5cGVFcnJvcigiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGFUeXBlZEFycmF5Q29uc3RydWN0b3I6ZnVuY3Rpb24oQSl7aWYoaFEpe2lmKFJRLmNhbGwoRlEsQSkpcmV0dXJuIEF9ZWxzZSBmb3IodmFyIGcgaW4gTVEpaWYob1EoTVEsQlEpKXt2YXIgST10UVtnXTtpZihJJiYoQT09PUl8fFJRLmNhbGwoSSxBKSkpcmV0dXJuIEF9dGhyb3cgVHlwZUVycm9yKCJUYXJnZXQgaXMgbm90IGEgdHlwZWQgYXJyYXkgY29uc3RydWN0b3IiKX0sZXhwb3J0VHlwZWRBcnJheU1ldGhvZDpmdW5jdGlvbihBLGcsSSl7aWYoaVEpe2lmKEkpZm9yKHZhciBCIGluIE1RKXt2YXIgUT10UVtCXTtpZihRJiZvUShRLnByb3RvdHlwZSxBKSl0cnl7ZGVsZXRlIFEucHJvdG90eXBlW0FdfWNhdGNoKHREKXt9fWxRW0FdJiYhSXx8YVEobFEsQSxJP2c6U1EmJnVRW0FdfHxnKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aWYoaVEpe2lmKGhRKXtpZihJKWZvcihCIGluIE1RKWlmKChRPXRRW0JdKSYmb1EoUSxBKSl0cnl7ZGVsZXRlIFFbQV19Y2F0Y2godEQpe31pZihGUVtBXSYmIUkpcmV0dXJuO3RyeXtyZXR1cm4gYVEoRlEsQSxJP2c6U1EmJkZRW0FdfHxnKX1jYXRjaCh0RCl7fX1mb3IoQiBpbiBNUSkhKFE9dFFbQl0pfHxRW0FdJiYhSXx8YVEoUSxBLGcpfX0saXNWaWV3OmZ1bmN0aW9uKEEpe2lmKCFlUShBKSlyZXR1cm4hMTt2YXIgZz1uUShBKTtyZXR1cm4iRGF0YVZpZXciPT09Z3x8b1EoTVEsZyl8fG9RKFlRLGcpfSxpc1R5cGVkQXJyYXk6SFEsVHlwZWRBcnJheTpGUSxUeXBlZEFycmF5UHJvdG90eXBlOmxRfSxKUT1yLExRPWcsdlE9UVEsS1E9cFEuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyxtUT1KUS5BcnJheUJ1ZmZlcix4UT1KUS5JbnQ4QXJyYXkscVE9IUtRfHwhTFEoKGZ1bmN0aW9uKCl7eFEoMSl9KSl8fCFMUSgoZnVuY3Rpb24oKXtuZXcgeFEoLTEpfSkpfHwhdlEoKGZ1bmN0aW9uKEEpe25ldyB4USxuZXcgeFEobnVsbCksbmV3IHhRKDEuNSksbmV3IHhRKEEpfSksITApfHxMUSgoZnVuY3Rpb24oKXtyZXR1cm4gMSE9PW5ldyB4UShuZXcgbVEoMiksMSx2b2lkIDApLmxlbmd0aH0pKSxiUT1hSSxUUT1mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCIGluIGcpYlEoQSxCLGdbQl0sSSk7cmV0dXJuIEF9LE9RPWZ1bmN0aW9uKEEsZyxJKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCAiKyhJP0krIiAiOiIiKSsiaW52b2NhdGlvbiIpO3JldHVybiBBfSxXUT1SQSxaUT1TQSxqUT1mdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXJldHVybiAwO3ZhciBnPVdRKEEpLEk9WlEoZyk7aWYoZyE9PUkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIG9yIGluZGV4Iik7cmV0dXJuIEl9LFBRPU1hdGguYWJzLFhRPU1hdGgucG93LFZRPU1hdGguZmxvb3IselE9TWF0aC5sb2csX1E9TWF0aC5MTjIsJFE9aixBQz1IQSxnQz1TQSxJQz1mdW5jdGlvbihBKXtmb3IodmFyIGc9JFEodGhpcyksST1nQyhnLmxlbmd0aCksQj1hcmd1bWVudHMubGVuZ3RoLFE9QUMoQj4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsSSksQz1CPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxFPXZvaWQgMD09PUM/STpBQyhDLEkpO0U+UTspZ1tRKytdPUE7cmV0dXJuIGd9LEJDPXIsUUM9cyxDQz1DUSxFQz1KLGlDPVRRLHRDPWcsZUM9T1Esb0M9UkEsbkM9U0EsckM9alEsYUM9e3BhY2s6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFEsQyxFPW5ldyBBcnJheShJKSxpPTgqSS1nLTEsdD0oMTw8aSktMSxlPXQ+PjEsbz0yMz09PWc/WFEoMiwtMjQpLVhRKDIsLTc3KTowLG49QTwwfHwwPT09QSYmMS9BPDA/MTowLHI9MDtmb3IoKEE9UFEoQSkpIT1BfHxBPT09MS8wPyhRPUEhPUE/MTowLEI9dCk6KEI9VlEoelEoQSkvX1EpLEEqKEM9WFEoMiwtQikpPDEmJihCLS0sQyo9MiksKEErPUIrZT49MT9vL0M6bypYUSgyLDEtZSkpKkM+PTImJihCKyssQy89MiksQitlPj10PyhRPTAsQj10KTpCK2U+PTE/KFE9KEEqQy0xKSpYUSgyLGcpLEIrPWUpOihRPUEqWFEoMixlLTEpKlhRKDIsZyksQj0wKSk7Zz49ODtFW3IrK109MjU1JlEsUS89MjU2LGctPTgpO2ZvcihCPUI8PGd8USxpKz1nO2k+MDtFW3IrK109MjU1JkIsQi89MjU2LGktPTgpO3JldHVybiBFWy0tcl18PTEyOCpuLEV9LHVucGFjazpmdW5jdGlvbihBLGcpe3ZhciBJLEI9QS5sZW5ndGgsUT04KkItZy0xLEM9KDE8PFEpLTEsRT1DPj4xLGk9US03LHQ9Qi0xLGU9QVt0LS1dLG89MTI3JmU7Zm9yKGU+Pj03O2k+MDtvPTI1NipvK0FbdF0sdC0tLGktPTgpO2ZvcihJPW8mKDE8PC1pKS0xLG8+Pj0taSxpKz1nO2k+MDtJPTI1NipJK0FbdF0sdC0tLGktPTgpO2lmKDA9PT1vKW89MS1FO2Vsc2V7aWYobz09PUMpcmV0dXJuIEk/TmFOOmU/LTEvMDoxLzA7SSs9WFEoMixnKSxvLT1FfXJldHVybihlPy0xOjEpKkkqWFEoMixvLWcpfX0sc0M9ekksY0M9REIsaEM9c0kuZix5Qz1jLmYsREM9SUMsZkM9dEIsdUM9T2cuZ2V0LHdDPU9nLnNldCxkQz0iQXJyYXlCdWZmZXIiLEZDPSJEYXRhVmlldyIsbEM9InByb3RvdHlwZSIsR0M9Ildyb25nIGluZGV4IixSQz1CQ1tkQ10sVUM9UkMsa0M9QkNbRkNdLFNDPWtDJiZrQ1tsQ10sTkM9T2JqZWN0LnByb3RvdHlwZSxNQz1CQy5SYW5nZUVycm9yLFlDPWFDLnBhY2ssSEM9YUMudW5wYWNrLHBDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQV19LEpDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NV19LExDPWZ1bmN0aW9uKEEpe3JldHVyblsyNTUmQSxBPj44JjI1NSxBPj4xNiYyNTUsQT4+MjQmMjU1XX0sdkM9ZnVuY3Rpb24oQSl7cmV0dXJuIEFbM108PDI0fEFbMl08PDE2fEFbMV08PDh8QVswXX0sS0M9ZnVuY3Rpb24oQSl7cmV0dXJuIFlDKEEsMjMsNCl9LG1DPWZ1bmN0aW9uKEEpe3JldHVybiBZQyhBLDUyLDgpfSx4Qz1mdW5jdGlvbihBLGcpe3lDKEFbbENdLGcse2dldDpmdW5jdGlvbigpe3JldHVybiB1Qyh0aGlzKVtnXX19KX0scUM9ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9ckMoSSksQz11QyhBKTtpZihRK2c+Qy5ieXRlTGVuZ3RoKXRocm93IE1DKEdDKTt2YXIgRT11QyhDLmJ1ZmZlcikuYnl0ZXMsaT1RK0MuYnl0ZU9mZnNldCx0PUUuc2xpY2UoaSxpK2cpO3JldHVybiBCP3Q6dC5yZXZlcnNlKCl9LGJDPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1yQyhJKSxpPXVDKEEpO2lmKEUrZz5pLmJ5dGVMZW5ndGgpdGhyb3cgTUMoR0MpO2Zvcih2YXIgdD11QyhpLmJ1ZmZlcikuYnl0ZXMsZT1FK2kuYnl0ZU9mZnNldCxvPUIoK1EpLG49MDtuPGc7bisrKXRbZStuXT1vW0M/bjpnLW4tMV19O2lmKENDKXtpZighdEMoKGZ1bmN0aW9uKCl7UkMoMSl9KSl8fCF0QygoZnVuY3Rpb24oKXtuZXcgUkMoLTEpfSkpfHx0QygoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFJDLG5ldyBSQygxLjUpLG5ldyBSQyhOYU4pLFJDLm5hbWUhPWRDfSkpKXtmb3IodmFyIFRDLE9DPShVQz1mdW5jdGlvbihBKXtyZXR1cm4gZUModGhpcyxVQyksbmV3IFJDKHJDKEEpKX0pW2xDXT1SQ1tsQ10sV0M9aEMoUkMpLFpDPTA7V0MubGVuZ3RoPlpDOykoVEM9V0NbWkMrK10paW4gVUN8fEVDKFVDLFRDLFJDW1RDXSk7T0MuY29uc3RydWN0b3I9VUN9Y0MmJnNDKFNDKSE9PU5DJiZjQyhTQyxOQyk7dmFyIGpDPW5ldyBrQyhuZXcgVUMoMikpLFBDPVNDLnNldEludDg7akMuc2V0SW50OCgwLDIxNDc0ODM2NDgpLGpDLnNldEludDgoMSwyMTQ3NDgzNjQ5KSwhakMuZ2V0SW50OCgwKSYmakMuZ2V0SW50OCgxKXx8aUMoU0Mse3NldEludDg6ZnVuY3Rpb24oQSxnKXtQQy5jYWxsKHRoaXMsQSxnPDwyND4+MjQpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe1BDLmNhbGwodGhpcyxBLGc8PDI0Pj4yNCl9fSx7dW5zYWZlOiEwfSl9ZWxzZSBVQz1mdW5jdGlvbihBKXtlQyh0aGlzLFVDLGRDKTt2YXIgZz1yQyhBKTt3Qyh0aGlzLHtieXRlczpEQy5jYWxsKG5ldyBBcnJheShnKSwwKSxieXRlTGVuZ3RoOmd9KSxRQ3x8KHRoaXMuYnl0ZUxlbmd0aD1nKX0sa0M9ZnVuY3Rpb24oQSxnLEkpe2VDKHRoaXMsa0MsRkMpLGVDKEEsVUMsRkMpO3ZhciBCPXVDKEEpLmJ5dGVMZW5ndGgsUT1vQyhnKTtpZihRPDB8fFE+Qil0aHJvdyBNQygiV3Jvbmcgb2Zmc2V0Iik7aWYoUSsoST12b2lkIDA9PT1JP0ItUTpuQyhJKSk+Qil0aHJvdyBNQygiV3JvbmcgbGVuZ3RoIik7d0ModGhpcyx7YnVmZmVyOkEsYnl0ZUxlbmd0aDpJLGJ5dGVPZmZzZXQ6UX0pLFFDfHwodGhpcy5idWZmZXI9QSx0aGlzLmJ5dGVMZW5ndGg9SSx0aGlzLmJ5dGVPZmZzZXQ9USl9LFFDJiYoeEMoVUMsImJ5dGVMZW5ndGgiKSx4QyhrQywiYnVmZmVyIikseEMoa0MsImJ5dGVMZW5ndGgiKSx4QyhrQywiYnl0ZU9mZnNldCIpKSxpQyhrQ1tsQ10se2dldEludDg6ZnVuY3Rpb24oQSl7cmV0dXJuIHFDKHRoaXMsMSxBKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihBKXtyZXR1cm4gcUModGhpcywxLEEpWzBdfSxnZXRJbnQxNjpmdW5jdGlvbihBKXt2YXIgZz1xQyh0aGlzLDIsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuKGdbMV08PDh8Z1swXSk8PDE2Pj4xNn0sZ2V0VWludDE2OmZ1bmN0aW9uKEEpe3ZhciBnPXFDKHRoaXMsMixBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtyZXR1cm4gZ1sxXTw8OHxnWzBdfSxnZXRJbnQzMjpmdW5jdGlvbihBKXtyZXR1cm4gdkMocUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApKX0sZ2V0VWludDMyOmZ1bmN0aW9uKEEpe3JldHVybiB2QyhxQyh0aGlzLDQsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihBKXtyZXR1cm4gSEMocUModGhpcyw0LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDIzKX0sZ2V0RmxvYXQ2NDpmdW5jdGlvbihBKXtyZXR1cm4gSEMocUModGhpcyw4LEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApLDUyKX0sc2V0SW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRVaW50ODpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMSxBLHBDLGcpfSxzZXRJbnQxNjpmdW5jdGlvbihBLGcpe2JDKHRoaXMsMixBLEpDLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfSxzZXRVaW50MTY6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDIsQSxKQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0SW50MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxMQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0VWludDMyOmZ1bmN0aW9uKEEsZyl7YkModGhpcyw0LEEsTEMsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9LHNldEZsb2F0MzI6ZnVuY3Rpb24oQSxnKXtiQyh0aGlzLDQsQSxLQyxnLGFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwKX0sc2V0RmxvYXQ2NDpmdW5jdGlvbihBLGcpe2JDKHRoaXMsOCxBLG1DLGcsYXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDApfX0pO2ZDKFVDLGRDKSxmQyhrQyxGQyk7dmFyIFhDPXtBcnJheUJ1ZmZlcjpVQyxEYXRhVmlldzprQ30sVkM9UkEsekM9ZnVuY3Rpb24oQSl7dmFyIGc9VkMoQSk7aWYoZzwwKXRocm93IFJhbmdlRXJyb3IoIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMCIpO3JldHVybiBnfSxfQz1mdW5jdGlvbihBLGcpe3ZhciBJPXpDKEEpO2lmKEklZyl0aHJvdyBSYW5nZUVycm9yKCJXcm9uZyBvZmZzZXQiKTtyZXR1cm4gSX0sJEM9WEIsQUU9d2csZ0U9RkEoIml0ZXJhdG9yIiksSUU9ZnVuY3Rpb24oQSl7aWYobnVsbCE9QSlyZXR1cm4gQVtnRV18fEFbIkBAaXRlcmF0b3IiXXx8QUVbJEMoQSldfSxCRT13ZyxRRT1GQSgiaXRlcmF0b3IiKSxDRT1BcnJheS5wcm90b3R5cGUsRUU9ZnVuY3Rpb24oQSl7cmV0dXJuIHZvaWQgMCE9PUEmJihCRS5BcnJheT09PUF8fENFW1FFXT09PUEpfSxpRT1mdW5jdGlvbihBKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQSl0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKEEpKyIgaXMgbm90IGEgZnVuY3Rpb24iKTtyZXR1cm4gQX0sdEU9aUUsZUU9ZnVuY3Rpb24oQSxnLEkpe2lmKHRFKEEpLHZvaWQgMD09PWcpcmV0dXJuIEE7c3dpdGNoKEkpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5jYWxsKGcpfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKEkpe3JldHVybiBBLmNhbGwoZyxJKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihJLEIpe3JldHVybiBBLmNhbGwoZyxJLEIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKEksQixRKXtyZXR1cm4gQS5jYWxsKGcsSSxCLFEpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gQS5hcHBseShnLGFyZ3VtZW50cyl9fSxvRT1qLG5FPVNBLHJFPUlFLGFFPUVFLHNFPWVFLGNFPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsaEU9Qix5RT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihBKXtyZXR1cm4iQXJyYXkiPT1oRShBKX0sREU9aCxmRT15RSx1RT1GQSgic3BlY2llcyIpLHdFPWZ1bmN0aW9uKEEsZyl7dmFyIEk7cmV0dXJuIGZFKEEpJiYoImZ1bmN0aW9uIiE9dHlwZW9mKEk9QS5jb25zdHJ1Y3Rvcil8fEkhPT1BcnJheSYmIWZFKEkucHJvdG90eXBlKT9ERShJKSYmbnVsbD09PShJPUlbdUVdKSYmKEk9dm9pZCAwKTpJPXZvaWQgMCksbmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoMD09PWc/MDpnKX0sZEU9ZUUsRkU9RSxsRT1qLEdFPVNBLFJFPXdFLFVFPVtdLnB1c2gsa0U9ZnVuY3Rpb24oQSl7dmFyIGc9MT09QSxJPTI9PUEsQj0zPT1BLFE9ND09QSxDPTY9PUEsRT03PT1BLGk9NT09QXx8QztyZXR1cm4gZnVuY3Rpb24odCxlLG8sbil7Zm9yKHZhciByLGEscz1sRSh0KSxjPUZFKHMpLGg9ZEUoZSxvLDMpLHk9R0UoYy5sZW5ndGgpLEQ9MCxmPW58fFJFLHU9Zz9mKHQseSk6SXx8RT9mKHQsMCk6dm9pZCAwO3k+RDtEKyspaWYoKGl8fEQgaW4gYykmJihhPWgocj1jW0RdLEQscyksQSkpaWYoZyl1W0RdPWE7ZWxzZSBpZihhKXN3aXRjaChBKXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiByO2Nhc2UgNjpyZXR1cm4gRDtjYXNlIDI6VUUuY2FsbCh1LHIpfWVsc2Ugc3dpdGNoKEEpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6VUUuY2FsbCh1LHIpfXJldHVybiBDPy0xOkJ8fFE/UTp1fX0sU0U9e2ZvckVhY2g6a0UoMCksbWFwOmtFKDEpLGZpbHRlcjprRSgyKSxzb21lOmtFKDMpLGV2ZXJ5OmtFKDQpLGZpbmQ6a0UoNSksZmluZEluZGV4OmtFKDYpLGZpbHRlck91dDprRSg3KX0sTkU9QkEsTUU9YyxZRT1zLEhFPUZBKCJzcGVjaWVzIikscEU9ZnVuY3Rpb24oQSl7dmFyIGc9TkUoQSksST1NRS5mO1lFJiZnJiYhZ1tIRV0mJkkoZyxIRSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzfX0pfSxKRT1oLExFPURCLHZFPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRO3JldHVybiBMRSYmImZ1bmN0aW9uIj09dHlwZW9mKEI9Zy5jb25zdHJ1Y3RvcikmJkIhPT1JJiZKRShRPUIucHJvdG90eXBlKSYmUSE9PUkucHJvdG90eXBlJiZMRShBLFEpLEF9LEtFPU9JLG1FPXIseEU9cyxxRT1xUSxiRT1wUSxURT1YQyxPRT1PUSxXRT1ZLFpFPUosakU9U0EsUEU9alEsWEU9X0MsVkU9Uix6RT1WLF9FPVhCLCRFPWgsQWk9Y2csZ2k9REIsSWk9c0kuZixCaT1mdW5jdGlvbihBKXt2YXIgZyxJLEIsUSxDLEUsaT1vRShBKSx0PWFyZ3VtZW50cy5sZW5ndGgsZT10PjE/YXJndW1lbnRzWzFdOnZvaWQgMCxvPXZvaWQgMCE9PWUsbj1yRShpKTtpZihudWxsIT1uJiYhYUUobikpZm9yKEU9KEM9bi5jYWxsKGkpKS5uZXh0LGk9W107IShRPUUuY2FsbChDKSkuZG9uZTspaS5wdXNoKFEudmFsdWUpO2ZvcihvJiZ0PjImJihlPXNFKGUsYXJndW1lbnRzWzJdLDIpKSxJPW5FKGkubGVuZ3RoKSxCPW5ldyhjRSh0aGlzKSkoSSksZz0wO0k+ZztnKyspQltnXT1vP2UoaVtnXSxnKTppW2ddO3JldHVybiBCfSxRaT1TRS5mb3JFYWNoLENpPXBFLEVpPWMsaWk9V2csdGk9dkUsZWk9T2cuZ2V0LG9pPU9nLnNldCxuaT1FaS5mLHJpPWlpLmYsYWk9TWF0aC5yb3VuZCxzaT1tRS5SYW5nZUVycm9yLGNpPVRFLkFycmF5QnVmZmVyLGhpPVRFLkRhdGFWaWV3LHlpPWJFLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MsRGk9YkUuVFlQRURfQVJSQVlfVEFHLGZpPWJFLlR5cGVkQXJyYXksdWk9YkUuVHlwZWRBcnJheVByb3RvdHlwZSx3aT1iRS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLGRpPWJFLmlzVHlwZWRBcnJheSxGaT0iQllURVNfUEVSX0VMRU1FTlQiLGxpPSJXcm9uZyBsZW5ndGgiLEdpPWZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPTAsQj1nLmxlbmd0aCxRPW5ldyh3aShBKSkoQik7Qj5JOylRW0ldPWdbSSsrXTtyZXR1cm4gUX0sUmk9ZnVuY3Rpb24oQSxnKXtuaShBLGcse2dldDpmdW5jdGlvbigpe3JldHVybiBlaSh0aGlzKVtnXX19KX0sVWk9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuIEEgaW5zdGFuY2VvZiBjaXx8IkFycmF5QnVmZmVyIj09KGc9X0UoQSkpfHwiU2hhcmVkQXJyYXlCdWZmZXIiPT1nfSxraT1mdW5jdGlvbihBLGcpe3JldHVybiBkaShBKSYmInN5bWJvbCIhPXR5cGVvZiBnJiZnIGluIEEmJlN0cmluZygrZyk9PVN0cmluZyhnKX0sU2k9ZnVuY3Rpb24oQSxnKXtyZXR1cm4ga2koQSxnPVZFKGcsITApKT9XRSgyLEFbZ10pOnJpKEEsZyl9LE5pPWZ1bmN0aW9uKEEsZyxJKXtyZXR1cm4hKGtpKEEsZz1WRShnLCEwKSkmJiRFKEkpJiZ6RShJLCJ2YWx1ZSIpKXx8ekUoSSwiZ2V0Iil8fHpFKEksInNldCIpfHxJLmNvbmZpZ3VyYWJsZXx8ekUoSSwid3JpdGFibGUiKSYmIUkud3JpdGFibGV8fHpFKEksImVudW1lcmFibGUiKSYmIUkuZW51bWVyYWJsZT9uaShBLGcsSSk6KEFbZ109SS52YWx1ZSxBKX07eEU/KHlpfHwoaWkuZj1TaSxFaS5mPU5pLFJpKHVpLCJidWZmZXIiKSxSaSh1aSwiYnl0ZU9mZnNldCIpLFJpKHVpLCJieXRlTGVuZ3RoIiksUmkodWksImxlbmd0aCIpKSxLRSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiF5aX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpTaSxkZWZpbmVQcm9wZXJ0eTpOaX0pLF9CLmV4cG9ydHM9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPUEubWF0Y2goL1xkKyQvKVswXS84LFE9QSsoST8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsQz0iZ2V0IitBLEU9InNldCIrQSxpPW1FW1FdLHQ9aSxlPXQmJnQucHJvdG90eXBlLG89e30sbj1mdW5jdGlvbihBLGcpe25pKEEsZyx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZWkoQSk7cmV0dXJuIEkudmlld1tDXShnKkIrSS5ieXRlT2Zmc2V0LCEwKX0odGhpcyxnKX0sc2V0OmZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihBLGcsUSl7dmFyIEM9ZWkoQSk7SSYmKFE9KFE9YWkoUSkpPDA/MDpRPjI1NT8yNTU6MjU1JlEpLEMudmlld1tFXShnKkIrQy5ieXRlT2Zmc2V0LFEsITApfSh0aGlzLGcsQSl9LGVudW1lcmFibGU6ITB9KX07eWk/cUUmJih0PWcoKGZ1bmN0aW9uKEEsZyxJLEMpe3JldHVybiBPRShBLHQsUSksdGkoJEUoZyk/VWkoZyk/dm9pZCAwIT09Qz9uZXcgaShnLFhFKEksQiksQyk6dm9pZCAwIT09ST9uZXcgaShnLFhFKEksQikpOm5ldyBpKGcpOmRpKGcpP0dpKHQsZyk6QmkuY2FsbCh0LGcpOm5ldyBpKFBFKGcpKSxBLHQpfSkpLGdpJiZnaSh0LGZpKSxRaShJaShpKSwoZnVuY3Rpb24oQSl7QSBpbiB0fHxaRSh0LEEsaVtBXSl9KSksdC5wcm90b3R5cGU9ZSk6KHQ9ZygoZnVuY3Rpb24oQSxnLEksQyl7T0UoQSx0LFEpO3ZhciBFLGksZSxvPTAscj0wO2lmKCRFKGcpKXtpZighVWkoZykpcmV0dXJuIGRpKGcpP0dpKHQsZyk6QmkuY2FsbCh0LGcpO0U9ZyxyPVhFKEksQik7dmFyIGE9Zy5ieXRlTGVuZ3RoO2lmKHZvaWQgMD09PUMpe2lmKGElQil0aHJvdyBzaShsaSk7aWYoKGk9YS1yKTwwKXRocm93IHNpKGxpKX1lbHNlIGlmKChpPWpFKEMpKkIpK3I+YSl0aHJvdyBzaShsaSk7ZT1pL0J9ZWxzZSBlPVBFKGcpLEU9bmV3IGNpKGk9ZSpCKTtmb3Iob2koQSx7YnVmZmVyOkUsYnl0ZU9mZnNldDpyLGJ5dGVMZW5ndGg6aSxsZW5ndGg6ZSx2aWV3Om5ldyBoaShFKX0pO288ZTspbihBLG8rKyl9KSksZ2kmJmdpKHQsZmkpLGU9dC5wcm90b3R5cGU9QWkodWkpKSxlLmNvbnN0cnVjdG9yIT09dCYmWkUoZSwiY29uc3RydWN0b3IiLHQpLERpJiZaRShlLERpLFEpLG9bUV09dCxLRSh7Z2xvYmFsOiEwLGZvcmNlZDp0IT1pLHNoYW06IXlpfSxvKSxGaSBpbiB0fHxaRSh0LEZpLEIpLEZpIGluIGV8fFpFKGUsRmksQiksQ2koUSl9KTpfQi5leHBvcnRzPWZ1bmN0aW9uKCl7fTt2YXIgTWk9X0IuZXhwb3J0cztNaSgiVWludDgiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKTt2YXIgWWk9aixIaT1IQSxwaT1TQSxKaT1NYXRoLm1pbixMaT1bXS5jb3B5V2l0aGlufHxmdW5jdGlvbihBLGcpe3ZhciBJPVlpKHRoaXMpLEI9cGkoSS5sZW5ndGgpLFE9SGkoQSxCKSxDPUhpKGcsQiksRT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxpPUppKCh2b2lkIDA9PT1FP0I6SGkoRSxCKSktQyxCLVEpLHQ9MTtmb3IoQzxRJiZRPEMraSYmKHQ9LTEsQys9aS0xLFErPWktMSk7aS0tID4wOylDIGluIEk/SVtRXT1JW0NdOmRlbGV0ZSBJW1FdLFErPXQsQys9dDtyZXR1cm4gSX0sdmk9TGksS2k9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImNvcHlXaXRoaW4iLChmdW5jdGlvbihBLGcpe3JldHVybiB2aS5jYWxsKEtpKHRoaXMpLEEsZyxhcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCl9KSk7dmFyIG1pPVNFLmV2ZXJ5LHhpPXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJldmVyeSIsKGZ1bmN0aW9uKEEpe3JldHVybiBtaSh4aSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgcWk9SUMsYmk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbGwiLChmdW5jdGlvbihBKXtyZXR1cm4gcWkuYXBwbHkoYmkodGhpcyksYXJndW1lbnRzKX0pKTt2YXIgVGk9bCxPaT1pRSxXaT1GQSgic3BlY2llcyIpLFppPWZ1bmN0aW9uKEEsZyl7dmFyIEksQj1UaShBKS5jb25zdHJ1Y3RvcjtyZXR1cm4gdm9pZCAwPT09Qnx8bnVsbD09KEk9VGkoQilbV2ldKT9nOk9pKEkpfSxqaT1wUS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yLFBpPVppLFhpPVNFLmZpbHRlcixWaT1mdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QaShBLEEuY29uc3RydWN0b3IpLEI9MCxRPWcubGVuZ3RoLEM9bmV3KGppKEkpKShRKTtRPkI7KUNbQl09Z1tCKytdO3JldHVybiBDfSx6aT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmlsdGVyIiwoZnVuY3Rpb24oQSl7dmFyIGc9WGkoemkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCk7cmV0dXJuIFZpKHRoaXMsZyl9KSk7dmFyIF9pPVNFLmZpbmQsJGk9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoImZpbmQiLChmdW5jdGlvbihBKXtyZXR1cm4gX2koJGkodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIEF0PVNFLmZpbmRJbmRleCxndD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiZmluZEluZGV4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIEF0KGd0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBJdD1TRS5mb3JFYWNoLEJ0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJmb3JFYWNoIiwoZnVuY3Rpb24oQSl7SXQoQnQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9KSk7dmFyIFF0PUtBLmluY2x1ZGVzLEN0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJpbmNsdWRlcyIsKGZ1bmN0aW9uKEEpe3JldHVybiBRdChDdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgRXQ9S0EuaW5kZXhPZixpdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgiaW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBFdChpdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgdHQ9cixldD1wUSxvdD1iQixudD1GQSgiaXRlcmF0b3IiKSxydD10dC5VaW50OEFycmF5LGF0PW90LnZhbHVlcyxzdD1vdC5rZXlzLGN0PW90LmVudHJpZXMsaHQ9ZXQuYVR5cGVkQXJyYXkseXQ9ZXQuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxEdD1ydCYmcnQucHJvdG90eXBlW250XSxmdD0hIUR0JiYoInZhbHVlcyI9PUR0Lm5hbWV8fG51bGw9PUR0Lm5hbWUpLHV0PWZ1bmN0aW9uKCl7cmV0dXJuIGF0LmNhbGwoaHQodGhpcykpfTt5dCgiZW50cmllcyIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN0LmNhbGwoaHQodGhpcykpfSkpLHl0KCJrZXlzIiwoZnVuY3Rpb24oKXtyZXR1cm4gc3QuY2FsbChodCh0aGlzKSl9KSkseXQoInZhbHVlcyIsdXQsIWZ0KSx5dChudCx1dCwhZnQpO3ZhciB3dD1wUS5hVHlwZWRBcnJheSxkdD1bXS5qb2luOygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJqb2luIiwoZnVuY3Rpb24oQSl7cmV0dXJuIGR0LmFwcGx5KHd0KHRoaXMpLGFyZ3VtZW50cyl9KSk7dmFyIEZ0PWcsbHQ9ZnVuY3Rpb24oQSxnKXt2YXIgST1bXVtBXTtyZXR1cm4hIUkmJkZ0KChmdW5jdGlvbigpe0kuY2FsbChudWxsLGd8fGZ1bmN0aW9uKCl7dGhyb3cgMX0sMSl9KSl9LEd0PW8sUnQ9UkEsVXQ9U0Esa3Q9bHQsU3Q9TWF0aC5taW4sTnQ9W10ubGFzdEluZGV4T2YsTXQ9ISFOdCYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MCxZdD1rdCgibGFzdEluZGV4T2YiKSxIdD1NdHx8IVl0P2Z1bmN0aW9uKEEpe2lmKE10KXJldHVybiBOdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA7dmFyIGc9R3QodGhpcyksST1VdChnLmxlbmd0aCksQj1JLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKEI9U3QoQixSdChhcmd1bWVudHNbMV0pKSksQjwwJiYoQj1JK0IpO0I+PTA7Qi0tKWlmKEIgaW4gZyYmZ1tCXT09PUEpcmV0dXJuIEJ8fDA7cmV0dXJuLTF9Ok50LHB0PUh0LEp0PXBRLmFUeXBlZEFycmF5OygwLHBRLmV4cG9ydFR5cGVkQXJyYXlNZXRob2QpKCJsYXN0SW5kZXhPZiIsKGZ1bmN0aW9uKEEpe3JldHVybiBwdC5hcHBseShKdCh0aGlzKSxhcmd1bWVudHMpfSkpO3ZhciBMdD1TRS5tYXAsdnQ9WmksS3Q9cFEuYVR5cGVkQXJyYXksbXQ9cFEuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgibWFwIiwoZnVuY3Rpb24oQSl7cmV0dXJuIEx0KEt0KHRoaXMpLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyhtdCh2dChBLEEuY29uc3RydWN0b3IpKSkoZyl9KSl9KSk7dmFyIHh0PWlFLHF0PWosYnQ9RSxUdD1TQSxPdD1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIsUSl7eHQoSSk7dmFyIEM9cXQoZyksRT1idChDKSxpPVR0KEMubGVuZ3RoKSx0PUE/aS0xOjAsZT1BPy0xOjE7aWYoQjwyKWZvcig7Oyl7aWYodCBpbiBFKXtRPUVbdF0sdCs9ZTticmVha31pZih0Kz1lLEE/dDwwOmk8PXQpdGhyb3cgVHlwZUVycm9yKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtBP3Q+PTA6aT50O3QrPWUpdCBpbiBFJiYoUT1JKFEsRVt0XSx0LEMpKTtyZXR1cm4gUX19LFd0PXtsZWZ0Ok90KCExKSxyaWdodDpPdCghMCl9LFp0PVd0LmxlZnQsanQ9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInJlZHVjZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBadChqdCh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSkpO3ZhciBQdD1XdC5yaWdodCxYdD1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgicmVkdWNlUmlnaHQiLChmdW5jdGlvbihBKXtyZXR1cm4gUHQoWHQodGhpcyksQSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgVnQ9cFEuYVR5cGVkQXJyYXksenQ9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxfdD1NYXRoLmZsb29yO3p0KCJyZXZlcnNlIiwoZnVuY3Rpb24oKXtmb3IodmFyIEEsZz10aGlzLEk9VnQoZykubGVuZ3RoLEI9X3QoSS8yKSxRPTA7UTxCOylBPWdbUV0sZ1tRKytdPWdbLS1JXSxnW0ldPUE7cmV0dXJuIGd9KSk7dmFyICR0PVNBLEFlPV9DLGdlPWosSWU9cFEuYVR5cGVkQXJyYXk7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNldCIsKGZ1bmN0aW9uKEEpe0llKHRoaXMpO3ZhciBnPUFlKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDEpLEk9dGhpcy5sZW5ndGgsQj1nZShBKSxRPSR0KEIubGVuZ3RoKSxDPTA7aWYoUStnPkkpdGhyb3cgUmFuZ2VFcnJvcigiV3JvbmcgbGVuZ3RoIik7Zm9yKDtDPFE7KXRoaXNbZytDXT1CW0MrK119KSxnKChmdW5jdGlvbigpe25ldyBJbnQ4QXJyYXkoMSkuc2V0KHt9KX0pKSk7dmFyIEJlPVppLFFlPXBRLmFUeXBlZEFycmF5LENlPXBRLmFUeXBlZEFycmF5Q29uc3RydWN0b3IsRWU9W10uc2xpY2U7KDAscFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCkoInNsaWNlIiwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9RWUuY2FsbChRZSh0aGlzKSxBLGcpLEI9QmUodGhpcyx0aGlzLmNvbnN0cnVjdG9yKSxRPTAsQz1JLmxlbmd0aCxFPW5ldyhDZShCKSkoQyk7Qz5ROylFW1FdPUlbUSsrXTtyZXR1cm4gRX0pLGcoKGZ1bmN0aW9uKCl7bmV3IEludDhBcnJheSgxKS5zbGljZSgpfSkpKTt2YXIgaWU9U0Uuc29tZSx0ZT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29tZSIsKGZ1bmN0aW9uKEEpe3JldHVybiBpZSh0ZSh0aGlzKSxBLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX0pKTt2YXIgZWU9cFEuYVR5cGVkQXJyYXksb2U9W10uc29ydDsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic29ydCIsKGZ1bmN0aW9uKEEpe3JldHVybiBvZS5jYWxsKGVlKHRoaXMpLEEpfSkpO3ZhciBuZT1TQSxyZT1IQSxhZT1aaSxzZT1wUS5hVHlwZWRBcnJheTsoMCxwUS5leHBvcnRUeXBlZEFycmF5TWV0aG9kKSgic3ViYXJyYXkiLChmdW5jdGlvbihBLGcpe3ZhciBJPXNlKHRoaXMpLEI9SS5sZW5ndGgsUT1yZShBLEIpO3JldHVybiBuZXcoYWUoSSxJLmNvbnN0cnVjdG9yKSkoSS5idWZmZXIsSS5ieXRlT2Zmc2V0K1EqSS5CWVRFU19QRVJfRUxFTUVOVCxuZSgodm9pZCAwPT09Zz9COnJlKGcsQikpLVEpKX0pKTt2YXIgY2U9cFEsaGU9Zyx5ZT1yLkludDhBcnJheSxEZT1jZS5hVHlwZWRBcnJheSxmZT1jZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kLHVlPVtdLnRvTG9jYWxlU3RyaW5nLHdlPVtdLnNsaWNlLGRlPSEheWUmJmhlKChmdW5jdGlvbigpe3VlLmNhbGwobmV3IHllKDEpKX0pKTtmZSgidG9Mb2NhbGVTdHJpbmciLChmdW5jdGlvbigpe3JldHVybiB1ZS5hcHBseShkZT93ZS5jYWxsKERlKHRoaXMpKTpEZSh0aGlzKSxhcmd1bWVudHMpfSksaGUoKGZ1bmN0aW9uKCl7cmV0dXJuWzEsMl0udG9Mb2NhbGVTdHJpbmcoKSE9bmV3IHllKFsxLDJdKS50b0xvY2FsZVN0cmluZygpfSkpfHwhaGUoKGZ1bmN0aW9uKCl7eWUucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpKTt2YXIgRmU9cFEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxsZT1nLEdlPXIuVWludDhBcnJheSxSZT1HZSYmR2UucHJvdG90eXBlfHx7fSxVZT1bXS50b1N0cmluZyxrZT1bXS5qb2luO2xlKChmdW5jdGlvbigpe1VlLmNhbGwoe30pfSkpJiYoVWU9ZnVuY3Rpb24oKXtyZXR1cm4ga2UuY2FsbCh0aGlzKX0pO3ZhciBTZT1SZS50b1N0cmluZyE9VWU7RmUoInRvU3RyaW5nIixVZSxTZSk7dmFyIE5lPVNFLmZvckVhY2gsTWU9bHQoImZvckVhY2giKT9bXS5mb3JFYWNoOmZ1bmN0aW9uKEEpe3JldHVybiBOZSh0aGlzLEEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfSxZZT1yLEhlPXtDU1NSdWxlTGlzdDowLENTU1N0eWxlRGVjbGFyYXRpb246MCxDU1NWYWx1ZUxpc3Q6MCxDbGllbnRSZWN0TGlzdDowLERPTVJlY3RMaXN0OjAsRE9NU3RyaW5nTGlzdDowLERPTVRva2VuTGlzdDoxLERhdGFUcmFuc2Zlckl0ZW1MaXN0OjAsRmlsZUxpc3Q6MCxIVE1MQWxsQ29sbGVjdGlvbjowLEhUTUxDb2xsZWN0aW9uOjAsSFRNTEZvcm1FbGVtZW50OjAsSFRNTFNlbGVjdEVsZW1lbnQ6MCxNZWRpYUxpc3Q6MCxNaW1lVHlwZUFycmF5OjAsTmFtZWROb2RlTWFwOjAsTm9kZUxpc3Q6MSxQYWludFJlcXVlc3RMaXN0OjAsUGx1Z2luOjAsUGx1Z2luQXJyYXk6MCxTVkdMZW5ndGhMaXN0OjAsU1ZHTnVtYmVyTGlzdDowLFNWR1BhdGhTZWdMaXN0OjAsU1ZHUG9pbnRMaXN0OjAsU1ZHU3RyaW5nTGlzdDowLFNWR1RyYW5zZm9ybUxpc3Q6MCxTb3VyY2VCdWZmZXJMaXN0OjAsU3R5bGVTaGVldExpc3Q6MCxUZXh0VHJhY2tDdWVMaXN0OjAsVGV4dFRyYWNrTGlzdDowLFRvdWNoTGlzdDowfSxwZT1NZSxKZT1KO2Zvcih2YXIgTGUgaW4gSGUpe3ZhciB2ZT1ZZVtMZV0sS2U9dmUmJnZlLnByb3RvdHlwZTtpZihLZSYmS2UuZm9yRWFjaCE9PXBlKXRyeXtKZShLZSwiZm9yRWFjaCIscGUpfWNhdGNoKHREKXtLZS5mb3JFYWNoPXBlfX12YXIgbWU9cyx4ZT1nLHFlPVBBLGJlPXlJLFRlPVpnLE9lPWosV2U9RSxaZT1PYmplY3QuYXNzaWduLGplPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxQZT0hWmV8fHhlKChmdW5jdGlvbigpe2lmKG1lJiYxIT09WmUoe2I6MX0sWmUoamUoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2plKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIEE9e30sZz17fSxJPVN5bWJvbCgpLEI9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gQVtJXT03LEIuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKEEpe2dbQV09QX0pKSw3IT1aZSh7fSxBKVtJXXx8cWUoWmUoe30sZykpLmpvaW4oIiIpIT1CfSkpP2Z1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPU9lKEEpLEI9YXJndW1lbnRzLmxlbmd0aCxRPTEsQz1iZS5mLEU9VGUuZjtCPlE7KWZvcih2YXIgaSx0PVdlKGFyZ3VtZW50c1tRKytdKSxlPUM/cWUodCkuY29uY2F0KEModCkpOnFlKHQpLG89ZS5sZW5ndGgsbj0wO28+bjspaT1lW24rK10sbWUmJiFFLmNhbGwodCxpKXx8KElbaV09dFtpXSk7cmV0dXJuIEl9OlplLFhlPVBlO09JKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PVhlfSx7YXNzaWduOlhlfSk7dmFyIFZlPVIsemU9YyxfZT1ZLCRlPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1WZShnKTtCIGluIEE/emUuZihBLEIsX2UoMCxJKSk6QVtCXT1JfSxBbz1nLGdvPW9BLElvPUZBKCJzcGVjaWVzIiksQm89ZnVuY3Rpb24oQSl7cmV0dXJuIGdvPj01MXx8IUFvKChmdW5jdGlvbigpe3ZhciBnPVtdO3JldHVybihnLmNvbnN0cnVjdG9yPXt9KVtJb109ZnVuY3Rpb24oKXtyZXR1cm57Zm9vOjF9fSwxIT09Z1tBXShCb29sZWFuKS5mb299KSl9LFFvPU9JLENvPWgsRW89eUUsaW89SEEsdG89U0EsZW89byxvbz0kZSxubz1GQSxybz1Cbygic2xpY2UiKSxhbz1ubygic3BlY2llcyIpLHNvPVtdLnNsaWNlLGNvPU1hdGgubWF4O2Z1bmN0aW9uIGhvKEEsZyl7aWYoIShBIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24geW8oQSxnKXtmb3IodmFyIEk9MDtJPGcubGVuZ3RoO0krKyl7dmFyIEI9Z1tJXTtCLmVudW1lcmFibGU9Qi5lbnVtZXJhYmxlfHwhMSxCLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gQiYmKEIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLEdvKEIua2V5KSxCKX19ZnVuY3Rpb24gRG8oQSxnLEkpe3JldHVybiBnJiZ5byhBLnByb3RvdHlwZSxnKSxJJiZ5byhBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gZm8oQSxnLEkpe3JldHVybihnPUdvKGcpKWluIEE/T2JqZWN0LmRlZmluZVByb3BlcnR5KEEsZyx7dmFsdWU6SSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOkFbZ109SSxBfWZ1bmN0aW9uIHVvKEEsZyl7cmV0dXJuIGZ1bmN0aW9uKEEpe2lmKEFycmF5LmlzQXJyYXkoQSkpcmV0dXJuIEF9KEEpfHxmdW5jdGlvbihBLGcpe3ZhciBJPW51bGw9PUE/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmQVtTeW1ib2wuaXRlcmF0b3JdfHxBWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9SSl7dmFyIEIsUSxDLEUsaT1bXSx0PSEwLGU9ITE7dHJ5e2lmKEM9KEk9SS5jYWxsKEEpKS5uZXh0LDA9PT1nKXtpZihPYmplY3QoSSkhPT1JKXJldHVybjt0PSExfWVsc2UgZm9yKDshKHQ9KEI9Qy5jYWxsKEkpKS5kb25lKSYmKGkucHVzaChCLnZhbHVlKSxpLmxlbmd0aCE9PWcpO3Q9ITApO31jYXRjaChvKXtlPSEwLFE9b31maW5hbGx5e3RyeXtpZighdCYmbnVsbCE9SS5yZXR1cm4mJihFPUkucmV0dXJuKCksT2JqZWN0KEUpIT09RSkpcmV0dXJufWZpbmFsbHl7aWYoZSl0aHJvdyBRfX1yZXR1cm4gaX19KEEsZyl8fEZvKEEsZyl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB3byhBKXtyZXR1cm4gZnVuY3Rpb24oQSl7aWYoQXJyYXkuaXNBcnJheShBKSlyZXR1cm4gbG8oQSl9KEEpfHxmdW5jdGlvbihBKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9QVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1BWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oQSl9KEEpfHxGbyhBKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBGbyhBLGcpe2lmKEEpe2lmKCJzdHJpbmciPT10eXBlb2YgQSlyZXR1cm4gbG8oQSxnKTt2YXIgST1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1JJiZBLmNvbnN0cnVjdG9yJiYoST1BLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09SXx8IlNldCI9PT1JP0FycmF5LmZyb20oQSk6IkFyZ3VtZW50cyI9PT1JfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChJKT9sbyhBLGcpOnZvaWQgMH19ZnVuY3Rpb24gbG8oQSxnKXsobnVsbD09Z3x8Zz5BLmxlbmd0aCkmJihnPUEubGVuZ3RoKTtmb3IodmFyIEk9MCxCPW5ldyBBcnJheShnKTtJPGc7SSsrKUJbSV09QVtJXTtyZXR1cm4gQn1mdW5jdGlvbiBHbyhBKXt2YXIgZz1mdW5jdGlvbihBLGcpe2lmKCJvYmplY3QiIT10eXBlb2YgQXx8bnVsbD09PUEpcmV0dXJuIEE7dmFyIEk9QVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PUkpe3ZhciBCPUkuY2FsbChBLGd8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXJldHVybiBCO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09Zz9TdHJpbmc6TnVtYmVyKShBKX0oQSwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBnP2c6U3RyaW5nKGcpfVFvKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IXJvfSx7c2xpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQz1lbyh0aGlzKSxFPXRvKEMubGVuZ3RoKSxpPWlvKEEsRSksdD1pbyh2b2lkIDA9PT1nP0U6ZyxFKTtpZihFbyhDKSYmKCJmdW5jdGlvbiIhPXR5cGVvZihJPUMuY29uc3RydWN0b3IpfHxJIT09QXJyYXkmJiFFbyhJLnByb3RvdHlwZSk/Q28oSSkmJm51bGw9PT0oST1JW2FvXSkmJihJPXZvaWQgMCk6ST12b2lkIDAsST09PUFycmF5fHx2b2lkIDA9PT1JKSlyZXR1cm4gc28uY2FsbChDLGksdCk7Zm9yKEI9bmV3KHZvaWQgMD09PUk/QXJyYXk6SSkoY28odC1pLDApKSxRPTA7aTx0O2krKyxRKyspaSBpbiBDJiZvbyhCLFEsQ1tpXSk7cmV0dXJuIEIubGVuZ3RoPVEsQn19KTt2YXIgUm89InZpZGVvIixVbz0iYXVkaW8iLGtvPSJtZXRhZGF0YSIsU289ImF2YyIsTm89ImhldmMiLE1vPSJ2dmNDIixZbz0iYWFjIixIbz0iZzcxMTBhIixwbz0iZzcxMTBtIixKbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpLGZvKHRoaXMsImlkIiwxKSxmbyh0aGlzLCJ0eXBlIixSbyksZm8odGhpcywiY29kZWNUeXBlIixTbyksZm8odGhpcywicGlkIiwtMSksZm8odGhpcywiaHZjQyIsdm9pZCAwKSxmbyh0aGlzLCJjb2RlYyIsIiIpLGZvKHRoaXMsInRpbWVzY2FsZSIsMCksZm8odGhpcywiZm9ybWF0VGltZXNjYWxlIiwwKSxmbyh0aGlzLCJzZXF1ZW5jZU51bWJlciIsMCksZm8odGhpcywiYmFzZU1lZGlhRGVjb2RlVGltZSIsMCksZm8odGhpcywiYmFzZUR0cyIsMCksZm8odGhpcywiZHVyYXRpb24iLDApLGZvKHRoaXMsIndhcm5pbmdzIixbXSksZm8odGhpcywic2FtcGxlcyIsW10pLGZvKHRoaXMsInBwcyIsW10pLGZvKHRoaXMsInNwcyIsW10pLGZvKHRoaXMsInZwcyIsW10pLGZvKHRoaXMsImZwc051bSIsMCksZm8odGhpcywiZnBzRGVuIiwwKSxmbyh0aGlzLCJzYXJSYXRpbyIsW10pLGZvKHRoaXMsIndpZHRoIiwwKSxmbyh0aGlzLCJoZWlnaHQiLDApLGZvKHRoaXMsIm5hbFVuaXRTaXplIiw0KSxmbyh0aGlzLCJwcmVzZW50IiwhMSksZm8odGhpcywiaXNWaWRlb0VuY3J5cHRpb24iLCExKSxmbyh0aGlzLCJpc0F1ZGlvRW5jcnlwdGlvbiIsITEpLGZvKHRoaXMsImlzVmlkZW8iLCEwKSxmbyh0aGlzLCJraWQiLG51bGwpLGZvKHRoaXMsInBzc2giLG51bGwpLGZvKHRoaXMsImV4dCIsdm9pZCAwKX1yZXR1cm4gRG8oQSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXF1ZW5jZU51bWJlcj10aGlzLndpZHRoPXRoaXMuaGVpZ2h0PXRoaXMuZnBzRGVuPXRoaXMuZnBzTnVtPXRoaXMuZHVyYXRpb249dGhpcy5iYXNlTWVkaWFEZWNvZGVUaW1lPXRoaXMudGltZXNjYWxlPTAsdGhpcy5jb2RlYz0iIix0aGlzLnByZXNlbnQ9ITEsdGhpcy5waWQ9LTEsdGhpcy5wcHM9W10sdGhpcy5zcHM9W10sdGhpcy52cHM9W10sdGhpcy5zYXJSYXRpbz1bXSx0aGlzLnNhbXBsZXM9W10sdGhpcy53YXJuaW5ncz1bXSx0aGlzLmh2Y0M9bnVsbH19LHtrZXk6ImV4aXN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhKHRoaXMucHBzLmxlbmd0aCYmdGhpcy5zcHMubGVuZ3RoJiZ0aGlzLmNvZGVjKX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuc2FtcGxlcy5sZW5ndGh9fSx7a2V5OiJpc0VuY3J5cHRpb24iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmlkZW9FbmNyeXB0aW9ufX1dKSxBfSgpLExvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSksZm8odGhpcywiaWQiLDIpLGZvKHRoaXMsInR5cGUiLFVvKSxmbyh0aGlzLCJjb2RlY1R5cGUiLFlvKSxmbyh0aGlzLCJwaWQiLC0xKSxmbyh0aGlzLCJjb2RlYyIsIiIpLGZvKHRoaXMsInNlcXVlbmNlTnVtYmVyIiwwKSxmbyh0aGlzLCJzYW1wbGVEdXJhdGlvbiIsMCksZm8odGhpcywidGltZXNjYWxlIiwwKSxmbyh0aGlzLCJmb3JtYXRUaW1lc2NhbGUiLDApLGZvKHRoaXMsImJhc2VNZWRpYURlY29kZVRpbWUiLDApLGZvKHRoaXMsImR1cmF0aW9uIiwwKSxmbyh0aGlzLCJ3YXJuaW5ncyIsW10pLGZvKHRoaXMsInNhbXBsZXMiLFtdKSxmbyh0aGlzLCJiYXNlRHRzIiwwKSxmbyh0aGlzLCJzYW1wbGVTaXplIiwxNiksZm8odGhpcywic2FtcGxlUmF0ZSIsMCksZm8odGhpcywiY2hhbm5lbENvdW50IiwwKSxmbyh0aGlzLCJvYmplY3RUeXBlIiwwKSxmbyh0aGlzLCJzYW1wbGVSYXRlSW5kZXgiLDApLGZvKHRoaXMsImNvbmZpZyIsW10pLGZvKHRoaXMsInByZXNlbnQiLCExKSxmbyh0aGlzLCJpc1ZpZGVvRW5jcnlwdGlvbiIsITEpLGZvKHRoaXMsImlzQXVkaW9FbmNyeXB0aW9uIiwhMSksZm8odGhpcywia2lkIixudWxsKSxmbyh0aGlzLCJleHQiLHZvaWQgMCl9cmV0dXJuIERvKEEsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2VxdWVuY2VOdW1iZXI9MCx0aGlzLnRpbWVzY2FsZT0wLHRoaXMuc2FtcGxlRHVyYXRpb249MCx0aGlzLnNhbXBsZVJhdGU9MCx0aGlzLmNoYW5uZWxDb3VudD0wLHRoaXMuYmFzZU1lZGlhRGVjb2RlVGltZT0wLHRoaXMucHJlc2VudD0hMSx0aGlzLnBpZD0tMSx0aGlzLmNvZGVjPSIiLHRoaXMuc2FtcGxlcz1bXSx0aGlzLmNvbmZpZz1bXSx0aGlzLndhcm5pbmdzPVtdfX0se2tleToiZXhpc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISEodGhpcy5zYW1wbGVSYXRlJiZ0aGlzLmNoYW5uZWxDb3VudCYmdGhpcy5jb2RlYyYmdGhpcy5jb2RlY1R5cGU9PT1Zbyl9fSx7a2V5OiJoYXNTYW1wbGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnNhbXBsZXMubGVuZ3RofX0se2tleToiaXNFbmNyeXB0aW9uIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0F1ZGlvRW5jcnlwdGlvbn19XSksQX0oKSx2bz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyxJLEIpe2hvKHRoaXMsQSksZm8odGhpcywiZmxhZyIse30pLGZvKHRoaXMsImtleWZyYW1lIiwhMSksZm8odGhpcywiZ29wSWQiLDApLGZvKHRoaXMsImR1cmF0aW9uIiwwKSxmbyh0aGlzLCJzaXplIiwwKSxmbyh0aGlzLCJ1bml0cyIsW10pLGZvKHRoaXMsImNocm9tYUZvcm1hdCIsNDIwKSx0aGlzLm9yaWdpblB0cz10aGlzLnB0cz1nLHRoaXMub3JpZ2luRHRzPXRoaXMuZHRzPUksQiYmKHRoaXMudW5pdHM9Qil9cmV0dXJuIERvKEEsW3trZXk6ImN0cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHRzLXRoaXMuZHRzfX0se2tleToic2V0VG9LZXlmcmFtZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmtleWZyYW1lPSEwLHRoaXMuZmxhZy5kZXBlbmRzT249Mix0aGlzLmZsYWcuaXNOb25TeW5jU2FtcGxlPTB9fV0pLEF9KCksS289RG8oKGZ1bmN0aW9uIEEoZyxJLEIsUSl7aG8odGhpcyxBKSxmbyh0aGlzLCJkdXJhdGlvbiIsMTAyNCksZm8odGhpcywiZmxhZyIse2RlcGVuZHNPbjoyLGlzTm9uU3luY1NhbXBsZTowfSksZm8odGhpcywia2V5ZnJhbWUiLCEwKSx0aGlzLm9yaWdpblB0cz10aGlzLnB0cz10aGlzLmR0cz1nLHRoaXMuZGF0YT1JLHRoaXMuc2l6ZT1JLmJ5dGVMZW5ndGgsdGhpcy5zYW1wbGVPZmZzZXQ9USxCJiYodGhpcy5kdXJhdGlvbj1CKX0pKSxtbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpLGZvKHRoaXMsImlkIiwzKSxmbyh0aGlzLCJ0eXBlIixrbyksZm8odGhpcywidGltZXNjYWxlIiwwKSxmbyh0aGlzLCJmbHZTY3JpcHRTYW1wbGVzIixbXSksZm8odGhpcywic2VpU2FtcGxlcyIsW10pfXJldHVybiBEbyhBLFt7a2V5OiJleGlzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmZsdlNjcmlwdFNhbXBsZXMubGVuZ3RoJiYhdGhpcy5zZWlTYW1wbGVzLmxlbmd0aHx8IXRoaXMudGltZXNjYWxlKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudGltZXNjYWxlPTAsdGhpcy5mbHZTY3JpcHRTYW1wbGVzPVtdLHRoaXMuc2VpU2FtcGxlcz1bXX19LHtrZXk6Imhhc1NhbXBsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmZsdlNjcmlwdFNhbXBsZXMubGVuZ3RoJiYhdGhpcy5zZWlTYW1wbGVzLmxlbmd0aCl9fV0pLEF9KCkseG89InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cscW89eG8mJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb2NhbGVMb3dlckNhc2UoKSxibz14byYmcW8uaW5jbHVkZXMoImZpcmVmb3giKSxUbz14byYmcW8uaW5jbHVkZXMoImFuZHJvaWQiKSxPbz1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpfXJldHVybiBEbyhBLG51bGwsW3trZXk6ImdldFJhdGVJbmRleEJ5UmF0ZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuRlJFUS5pbmRleE9mKGcpfX0se2tleToicGFyc2VBRFRTIix2YWx1ZTpmdW5jdGlvbihnLEkpe2Zvcih2YXIgQj1nLmxlbmd0aCxRPTA7USsyPEImJigyNTUhPT1nW1FdfHwyNDAhPSgyNDYmZ1tRKzFdKSk7KVErKztpZighKFE+PUIpKXt2YXIgQz1RLEU9W10saT0oNjAmZ1tRKzJdKT4+PjIsdD1BLkZSRVFbaV07aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNhbXBsaW5nIGluZGV4OiAiLmNvbmNhdChpKSk7Zm9yKHZhciBlLG8sbj0xKygoMTkyJmdbUSsyXSk+Pj42KSxyPSgxJmdbUSsyXSk8PDJ8KDE5MiZnW1ErM10pPj4+NixhPUEuX2dldENvbmZpZyhpLHIsbikscz1hLmNvbmZpZyxjPWEuY29kZWMsaD0wLHk9QS5nZXRGcmFtZUR1cmF0aW9uKHQpO1ErNzxCOylpZigyNTU9PT1nW1FdJiYyNDA9PSgyNDYmZ1tRKzFdKSl7aWYoQi1RPChvPSgzJmdbUSszXSk8PDExfGdbUSs0XTw8M3woMjI0JmdbUSs1XSk+PjUpKWJyZWFrO2U9MiooMSZ+Z1tRKzFdKSxFLnB1c2goe3B0czpJK2gqeSxkYXRhOmcuc3ViYXJyYXkoUSs3K2UsUStvKX0pLGgrKyxRKz1vfWVsc2UgUSsrO3JldHVybntza2lwOkMscmVtYWluaW5nOlE+PUI/dm9pZCAwOmcuc3ViYXJyYXkoUSksZnJhbWVzOkUsc2FtcGxpbmdGcmVxdWVuY3lJbmRleDppLHNhbXBsZVJhdGU6dCxvYmplY3RUeXBlOm4sY2hhbm5lbENvdW50OnIsY29kZWM6Yyxjb25maWc6cyxvcmlnaW5Db2RlYzoibXA0YS40MC4iLmNvbmNhdChuKX19fX0se2tleToicGFyc2VBdWRpb1NwZWNpZmljQ29uZmlnIix2YWx1ZTpmdW5jdGlvbihnKXtpZihnLmxlbmd0aCl7dmFyIEk9Z1swXT4+PjMsQj0oNyZnWzBdKTw8MXxnWzFdPj4+NyxRPSgxMjAmZ1sxXSk+Pj4zLEM9QS5GUkVRW0JdO2lmKEMpe3ZhciBFPUEuX2dldENvbmZpZyhCLFEsSSk7cmV0dXJue3NhbXBsaW5nRnJlcXVlbmN5SW5kZXg6QixzYW1wbGVSYXRlOkMsb2JqZWN0VHlwZTpJLGNoYW5uZWxDb3VudDpRLGNvbmZpZzpFLmNvbmZpZyxjb2RlYzpFLmNvZGVjLG9yaWdpbkNvZGVjOiJtcDRhLjQwLiIuY29uY2F0KEkpfX19fX0se2tleToiZ2V0RnJhbWVEdXJhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIDEwMjQqKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo5ZTQpL0F9fSx7a2V5OiJfZ2V0Q29uZmlnIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDPVtdO3JldHVybiBibz9BPj02PyhCPTUsUT1BLTMpOihCPTIsUT1BKTpUbz8oQj0yLFE9QSk6KEI9Mj09PUl8fDU9PT1JP0k6NSxRPUEsQT49Nj9RPUEtMzoxPT09ZyYmKEI9MixRPUEpKSxDWzBdPUI8PDMsQ1swXXw9KDE0JkEpPj4xLENbMV09KDEmQSk8PDcsQ1sxXXw9Zzw8Myw1PT09QiYmKENbMV18PSgxNCZRKT4+MSxDWzJdPSgxJlEpPDw3LENbMl18PTgsQ1szXT0wKSx7Y29uZmlnOkMsY29kZWM6Im1wNGEuNDAuIi5jb25jYXQoQil9fX0se2tleToiZ2V0U2lsZW50RnJhbWUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7aWYoIm1wNGEuNDAuMiI9PT1BKXtpZigxPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDM1LDEyOF0pO2lmKDI9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMzMsMCw3MywxNDQsMiwyNSwwLDM1LDEyOF0pO2lmKDM9PT1nKXJldHVybiBuZXcgVWludDhBcnJheShbMCwyMDAsMCwxMjgsMzIsMTMyLDEsMzgsNjQsOCwxMDAsMCwxNDJdKTtpZig0PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTI4LDQ0LDEyOCw4LDIsNTZdKTtpZig1PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTMwLDQ4LDQsMTUzLDAsMzMsMTQ0LDIsNTZdKTtpZig2PT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzAsMjAwLDAsMTI4LDMyLDEzMiwxLDM4LDY0LDgsMTAwLDAsMTMwLDQ4LDQsMTUzLDAsMzMsMTQ0LDIsMCwxNzgsMCwzMiw4LDIyNF0pfWVsc2V7aWYoMT09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFsxLDY0LDM0LDEyOCwxNjMsNzgsMjMwLDEyOCwxODYsOCwwLDAsMCwyOCw2LDI0MSwxOTMsMTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTAsOTRdKTtpZigyPT09ZylyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzEsNjQsMzQsMTI4LDE2Myw5NCwyMzAsMTI4LDE4Niw4LDAsMCwwLDAsMTQ5LDAsNiwyNDEsMTYxLDEwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDkwLDk0XSk7aWYoMz09PWcpcmV0dXJuIG5ldyBVaW50OEFycmF5KFsxLDY0LDM0LDEyOCwxNjMsOTQsMjMwLDEyOCwxODYsOCwwLDAsMCwwLDE0OSwwLDYsMjQxLDE2MSwxMCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5MCw5NF0pfX19XSksQX0oKTtmdW5jdGlvbiBXbygpe2Zvcih2YXIgQT1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KEEpLEk9MDtJPEE7SSsrKWdbSV09YXJndW1lbnRzW0ldO2c9Zy5maWx0ZXIoQm9vbGVhbik7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoZy5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChBLFEpLFErPUEuYnl0ZUxlbmd0aH0pKSxCfWZvKE9vLCJGUkVRIixbOTZlMyw4ODIwMCw2NGUzLDQ4ZTMsNDQxMDAsMzJlMywyNGUzLDIyMDUwLDE2ZTMsMTJlMywxMTAyNSw4ZTMsNzM1MF0pO3ZhciBabz1NYXRoLnBvdygyLDMyKTtmdW5jdGlvbiBqbyhBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDtyZXR1cm4oQVtnXTw8OCkrKEFbZysxXXx8MCl9ZnVuY3Rpb24gUG8oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuKEFbZ108PDI0Pj4+MCkrKEFbZysxXTw8MTYpKyhBW2crMl08PDgpKyhBW2crM118fDApfWZ1bmN0aW9uIFhvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybiBuZXcgRGF0YVZpZXcoQS5idWZmZXIsQS5ieXRlT2Zmc2V0LEEuYnl0ZUxlbmd0aCkuZ2V0SW50MzIoZyl9ZnVuY3Rpb24gVm8oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjA7cmV0dXJuIFBvKEEsZykqWm8rUG8oQSxnKzQpfWZ1bmN0aW9uIHpvKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLEk9bmV3IERhdGFWaWV3KEEuYnVmZmVyLEEuYnl0ZU9mZnNldCxBLmJ5dGVMZW5ndGgpO3JldHVybiBJLmdldFVpbnQzMihnKTw8MzJ8SS5nZXRVaW50MzIoZys0KX1mdW5jdGlvbiBfbyhBKXt2YXIgZz0iIjtpZihBLmZvckVhY2goKGZ1bmN0aW9uKEEpe2crPWZ1bmN0aW9uKEEpe3JldHVybigiMCIrTnVtYmVyKEEpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLnRvVXBwZXJDYXNlKCl9KEEpfSkpLGcubGVuZ3RoPD0zMilmb3IodmFyIEk9MzItZy5sZW5ndGgsQj0wO0I8STtCKyspZys9IjAiO3JldHVybiBnfWZ1bmN0aW9uICRvKEEpe2lmKCFBcnJheS5pc0FycmF5KEEpKXtmb3IodmFyIGc9W10sST0iIixCPTA7QjxBLmxlbmd0aDtCKyspQiUyJiYoST1BW0ItMV0rQVtCXSxnLnB1c2gocGFyc2VJbnQoSSwxNikpLEk9IiIpO3JldHVybiBnfXJldHVybiBBLm1hcCgoZnVuY3Rpb24oQSl7cmV0dXJuIHBhcnNlSW50KEEsMTYpfSkpfXZhciBBbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoZyl7aWYoaG8odGhpcyxBKSxmbyh0aGlzLCJfYnl0ZXNBdmFpbGFibGUiLHZvaWQgMCksZm8odGhpcywiX2JpdHNBdmFpbGFibGUiLDApLGZvKHRoaXMsIl93b3JkIiwwKSwhZyl0aHJvdyBuZXcgRXJyb3IoIkV4cEdvbG9tYiBkYXRhIHBhcmFtcyBpcyByZXF1aXJlZCIpO3RoaXMuX2RhdGE9Zyx0aGlzLl9ieXRlc0F2YWlsYWJsZT1nLmJ5dGVMZW5ndGgsdGhpcy5fYnl0ZXNBdmFpbGFibGUmJnRoaXMuX2xvYWRXb3JkKCl9cmV0dXJuIERvKEEsW3trZXk6Il9sb2FkV29yZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLmJ5dGVMZW5ndGgtdGhpcy5fYnl0ZXNBdmFpbGFibGUsZz1NYXRoLm1pbig0LHRoaXMuX2J5dGVzQXZhaWxhYmxlKTtpZigwPT09Zyl0aHJvdyBuZXcgRXJyb3IoIk5vIGJ5dGVzIGF2YWlsYWJsZSIpO3ZhciBJPW5ldyBVaW50OEFycmF5KDQpO0kuc2V0KHRoaXMuX2RhdGEuc3ViYXJyYXkoQSxBK2cpKSx0aGlzLl93b3JkPW5ldyBEYXRhVmlldyhJLmJ1ZmZlcikuZ2V0VWludDMyKDApLHRoaXMuX2JpdHNBdmFpbGFibGU9OCpnLHRoaXMuX2J5dGVzQXZhaWxhYmxlLT1nfX0se2tleToiYml0c1BvcyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gOCp0aGlzLl9ieXRlc0F2YWlsYWJsZS10aGlzLl9iaXRzQXZhaWxhYmxlfX0se2tleToiYml0c0xlZnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDgqdGhpcy5fZGF0YS5sZW5ndGgtdGhpcy5iaXRzUG9zKCl9fSx7a2V5OiJieXRlQWxpZ25lZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuYml0c1BvcygpfHx0aGlzLmJpdHNQb3MoKSU4PT0wfX0se2tleToic2tpcEJpdHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2lmKHRoaXMuX2JpdHNBdmFpbGFibGU+QSl0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BO2Vsc2V7QS09dGhpcy5fYml0c0F2YWlsYWJsZTt2YXIgZz1NYXRoLmZsb29yKEEvOCk7QS09OCpnLHRoaXMuX2J5dGVzQXZhaWxhYmxlLT1nLHRoaXMuX2xvYWRXb3JkKCksdGhpcy5fd29yZDw8PUEsdGhpcy5fYml0c0F2YWlsYWJsZS09QX19fSx7a2V5OiJyZWFkQml0cyIsdmFsdWU6ZnVuY3Rpb24oQSl7aWYoQT4zMil0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZWFkIG1vcmUgdGhhbiAzMiBiaXRzIik7dmFyIGc9TWF0aC5taW4odGhpcy5fYml0c0F2YWlsYWJsZSxBKSxJPXRoaXMuX3dvcmQ+Pj4zMi1nO3JldHVybiB0aGlzLl9iaXRzQXZhaWxhYmxlLT1nLHRoaXMuX2JpdHNBdmFpbGFibGU+MD90aGlzLl93b3JkPDw9Zzp0aGlzLl9ieXRlc0F2YWlsYWJsZT4wJiZ0aGlzLl9sb2FkV29yZCgpLChnPUEtZyk+MCYmdGhpcy5fYml0c0F2YWlsYWJsZT9JPDxnfHRoaXMucmVhZEJpdHMoZyk6SX19LHtrZXk6InNraXBMWiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtmb3IoQT0wO0E8dGhpcy5fYml0c0F2YWlsYWJsZTsrK0EpaWYoMCE9KHRoaXMuX3dvcmQmMjE0NzQ4MzY0OD4+PkEpKXJldHVybiB0aGlzLl93b3JkPDw9QSx0aGlzLl9iaXRzQXZhaWxhYmxlLT1BLEE7cmV0dXJuIHRoaXMuX2xvYWRXb3JkKCksQSt0aGlzLnNraXBMWigpfX0se2tleToic2tpcFVFRyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNraXBCaXRzKDErdGhpcy5za2lwTFooKSl9fSx7a2V5OiJyZWFkVUVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMuc2tpcExaKCk7cmV0dXJuIHRoaXMucmVhZEJpdHMoQSsxKS0xfX0se2tleToicmVhZEVHIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPXRoaXMucmVhZFVFRygpO3JldHVybiAxJkE/MStBPj4+MTotMSooQT4+PjEpfX0se2tleToicmVhZEJvb2wiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLnJlYWRCaXRzKDEpfX0se2tleToicmVhZFVCeXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRCaXRzKDgpfX0se2tleToic2tpcFNjYWxpbmdMaXN0Iix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9OCxJPTgsQj0wO0I8QTtCKyspMCE9PUkmJihJPShnK3RoaXMucmVhZEVHKCkrMjU2KSUyNTYpLGc9MD09PUk/ZzpJfX1dKSxBfSgpLGduPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnKXtobyh0aGlzLEEpLHRoaXMuX2J1ZmZlcj1nLHRoaXMuX29mZnNldD0wLHRoaXMuX2hlbGRCaXRzPTAsdGhpcy5fbnVtSGVsZEJpdHM9MH1yZXR1cm4gRG8oQSxbe2tleToicmVhZFVpbnQ4Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQxNiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQzMiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MjR8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8MTZ8dGhpcy5fYnVmZmVyW3RoaXMuX29mZnNldCsrXTw8OHx0aGlzLl9idWZmZXJbdGhpcy5fb2Zmc2V0KytdfX0se2tleToicmVhZFVpbnQ4QXJyYXkiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2J1ZmZlci5zbGljZSh0aGlzLl9vZmZzZXQsdGhpcy5fb2Zmc2V0K0EpO3JldHVybiB0aGlzLl9vZmZzZXQrPUEsZ319LHtrZXk6InN0cmVhbVJlYWQxQnl0ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGVsZEJpdHM9dGhpcy5yZWFkVWludDgoKSx0aGlzLl9udW1IZWxkQml0cz04fX0se2tleToic3RyZWFtUmVhZDJCeXRlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oZWxkQml0cz10aGlzLnJlYWRVaW50MTYoKSx0aGlzLl9udW1IZWxkQml0cz0xNn19LHtrZXk6ImV4dHJhY3RCaXRzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz10aGlzLl9oZWxkQml0cz4+dGhpcy5fbnVtSGVsZEJpdHMtQSYoMTw8QSktMTtyZXR1cm4gdGhpcy5fbnVtSGVsZEJpdHMtPUEsZ319XSksQX0oKSxJbj1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXtobyh0aGlzLEEpfXJldHVybiBEbyhBLG51bGwsW3trZXk6InBhcnNlVlZDRGVjb2RlckNvbmZpZ3VyYXRpb25SZWNvcmQiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBnbihnKSxCPUkucmVhZFVpbnQ4KCk7SS5zdHJlYW1SZWFkMUJ5dGVzKCksSS5leHRyYWN0Qml0cyg1KTt2YXIgUSxDLEUsaSx0LGUsbyxuLHI9SS5leHRyYWN0Qml0cygyKSsxLGE9SS5leHRyYWN0Qml0cygxKSxzPXt9O2EmJihJLnN0cmVhbVJlYWQyQnl0ZXMoKSxpPUkuZXh0cmFjdEJpdHMoMiksdD1JLmV4dHJhY3RCaXRzKDMpLEM9SS5leHRyYWN0Qml0cygzKSxFPUkuZXh0cmFjdEJpdHMoMiksSS5leHRyYWN0Qml0cyg2KSxzPUEucGFyc2VWVkNQVExSZWNvcmQoSSxDKSxRPUkucmVhZFVpbnQxNigpLGU9SS5yZWFkVWludDE2KCksbz1JLnJlYWRVaW50MTYoKSxuPUkucmVhZFVpbnQxNigpKTtmb3IodmFyIGM9SS5yZWFkVWludDgoKSxoPVtdLHk9W10sRD1bXSxmPW51bGwsdT0wO3U8Yzt1Kyspe0kuc3RyZWFtUmVhZDFCeXRlcygpLEkuZXh0cmFjdEJpdHMoMSksSS5leHRyYWN0Qml0cygyKTt2YXIgdz1JLmV4dHJhY3RCaXRzKDUpLGQ9MTsxMyE9PXcmJjEyIT09dyYmKGQ9SS5yZWFkVWludDE2KCkpO2Zvcih2YXIgRj0wO0Y8ZDtGKyspe3ZhciBsPUkucmVhZFVpbnQxNigpO3N3aXRjaCh3KXtjYXNlIDE0OmgucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKTticmVhaztjYXNlIDE1OnZhciBHPUkucmVhZFVpbnQ4QXJyYXkobCk7Znx8KGY9QS5wYXJzZVNQUyhBLnJlbW92ZUVQQihHKSkpLHkucHVzaChHKTticmVhaztjYXNlIDE2OkQucHVzaChJLnJlYWRVaW50OEFycmF5KGwpKX19fXJldHVybntkYXRhOmcsY29uZmlndXJhdGlvblZlcnNpb246Qixjb2RlYzoiYnZjMi4xLjYuTDkzLkIwIixuYWxVbml0U2l6ZTpyLHB0bFByZXNlbnRGbGFnOmEsb2xzSWR4OlEsbnVtU3VibGF5ZXJzOkMsY29uc3RhbnRGcmFtZVJhdGU6RSxjaHJvbWFGb3JtYXRJZGM6aSxiaXREZXB0aEx1bWFNaW51czg6dCxwdGxSZWNvcmQ6cyx3aWR0aDplLGhlaWdodDpvLHNhbXBsZVJhdGU6bixudW1PZkFycmF5czpjLHZwczpoLHNwczp5LHBwczpELHNwc1BhcnNlZDpmfX19LHtrZXk6InBhcnNlVlZDUFRMUmVjb3JkIix2YWx1ZTpmdW5jdGlvbihBLGcpe0Euc3RyZWFtUmVhZDJCeXRlcygpLEEuZXh0cmFjdEJpdHMoMik7dmFyIEk9QS5leHRyYWN0Qml0cyg2KSxCPUEuZXh0cmFjdEJpdHMoNyksUT1BLmV4dHJhY3RCaXRzKDEpLEM9QS5yZWFkVWludDgoKTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgRT1BLmV4dHJhY3RCaXRzKDEpLGk9QS5leHRyYWN0Qml0cygxKSx0PW5ldyBVaW50OEFycmF5KEkpO2lmKEkpe2Zvcih2YXIgZT0wO2U8SS0xO2UrKyl7dmFyIG89QS5leHRyYWN0Qml0cyg2KTtBLnN0cmVhbVJlYWQxQnl0ZXMoKTt2YXIgbj1BLmV4dHJhY3RCaXRzKDIpO3RbZV09bzw8MnxufXRbSS0xXT1BLmV4dHJhY3RCaXRzKDYpfWVsc2UgQS5leHRyYWN0Qml0cyg2KTt2YXIgcj1bXTtpZihnPjEpe0Euc3RyZWFtUmVhZDFCeXRlcygpO2Zvcih2YXIgYT0wLHM9Zy0yO3M+PTA7LS1zKXthfD1BLmV4dHJhY3RCaXRzKDEpPDxzfWZvcih2YXIgYz1nO2M8PTgmJmc+MTsrK2MpQS5leHRyYWN0Qml0cygxKTtmb3IodmFyIGg9Zy0yO2g+PTA7LS1oKWEmMTw8aCYmKHJbaF09QS5yZWFkVWludDgoKSl9dmFyIHk9QS5yZWFkVWludDgoKSxEPVtdO2lmKHkpZm9yKHZhciBmPTA7Zjx5O2YrKylELnB1c2goQS5yZWFkVWludDMyKCkpO3JldHVybntnZW5lcmFsUHJvZmlsZUlkYzpCLGdlbmVyYWxUaWVyRmxhZzpRLGdlbmVyYWxMZXZlbElkYzpDLHB0bEZyYW1lT25seUNvbnN0cmFpbnRGbGFnOkUscHRsTXVsdGlsYXllckVuYWJsZWRGbGFnOmksZ2VuZXJhbENvbnN0cmFpbnRJbmZvOnQsc3ViTGF5ZXJMZXZlbElkYzpyLGdlbmVyYWxTdWJQcm9maWxlSWRjOkQscHRsTnVtU3ViUHJvZmlsZXM6eSxudW1CeXRlc0NvbnN0cmFpbnRJbmZvOkl9fX0se2tleToiZ2V0QXZjY05hbHMiLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1bXTtBLnBvc2l0aW9uPEEubGVuZ3RoLTQ7KXt2YXIgST1BLmRhdGF2aWV3LmdldEludDMyKEEuZGF0YXZpZXcucG9zaXRpb24pO2lmKCEoQS5sZW5ndGgtQS5wb3NpdGlvbj49SSkpYnJlYWs7dmFyIEI9QS5idWZmZXIuc2xpY2UoQS5wb3NpdGlvbixBLnBvc2l0aW9uKzQpO0Euc2tpcCg0KTt2YXIgUT1uZXcgVWludDhBcnJheShBLmJ1ZmZlci5zbGljZShBLnBvc2l0aW9uLEEucG9zaXRpb24rSSkpO0Euc2tpcChJKSxnLnB1c2goe2hlYWRlcjpCLGJvZHk6UX0pfXJldHVybiBnfX0se2tleToiYW5hbHlzZU5hbCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9KDI0OCZBLmJvZHlbMV0pPj4zO3N3aXRjaChBLnR5cGU9ZyxnKXtjYXNlIDIzOmNhc2UgMjQ6YnJlYWs7Y2FzZSA3OmNhc2UgODpBLmtleT0hMDticmVhaztjYXNlIDE0OkEudnBzPSEwO2JyZWFrO2Nhc2UgMTU6QS5zcHM9ITA7YnJlYWs7Y2FzZSAxNjpBLnBwcz0hMDticmVhaztjYXNlIDE3OkEuYXBzPSEwfX19LHtrZXk6InJlbW92ZUVQQiIsdmFsdWU6ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuYnl0ZUxlbmd0aCxJPVtdLEI9MTtCPGctMjspMD09PUFbQl0mJjA9PT1BW0IrMV0mJjM9PT1BW0IrMl0/KEkucHVzaChCKzIpLEIrPTIpOkIrKztpZighSS5sZW5ndGgpcmV0dXJuIEE7dmFyIFE9Zy1JLmxlbmd0aCxDPW5ldyBVaW50OEFycmF5KFEpLEU9MDtmb3IoQj0wO0I8UTtFKyssQisrKUU9PT1JWzBdJiYoRSsrLEkuc2hpZnQoKSksQ1tCXT1BW0VdO3JldHVybiBDfX0se2tleToicGFyc2VWcHMiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToicGFyc2VTUFMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBBbihnKTtJLnJlYWRVQnl0ZSgpLEkucmVhZFVCeXRlKCksSS5za2lwQml0cyg0KTt2YXIgQj1JLnJlYWRCaXRzKDQpLFE9SS5yZWFkQml0cygzKSxDPUkucmVhZEJpdHMoMiksRT00MjA7Qzw9MyYmKEU9WzAsNDIwLDQyMiw0NDRdW0NdKSxJLnJlYWRCaXRzKDIpLEkucmVhZEJpdHMoMSk7dmFyIGk9QS5fcGFyc2VQcm9maWxlVGllckxldmVsKEksMSxRKTtyZXR1cm4gSS5yZWFkQml0cygxKSxJLnJlYWRCaXRzKDEpJiZJLnJlYWRCaXRzKDEpLHt3aWR0aDpJLnJlYWRVRUcoKSxoZWlnaHQ6SS5yZWFkVUVHKCksc3BzTWF4U3ViTGF5ZXJNaW51czE6USxzcHNWaWRlb1BhcmFtZXRlclNldElkOkIsY2hyb21hRm9ybWF0SWRjOkMsY2hyb21hRm9ybWF0OkUscHRsSW5mbzppfX19LHtrZXk6Il9wYXJzZVByb2ZpbGVUaWVyTGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDPWcucmVhZEJpdHMoNyksRT1nLnJlYWRCaXRzKDEpLGk9Zy5yZWFkQml0cyg4KSx0PWcucmVhZEJpdHMoMSksZT1nLnJlYWRCaXRzKDEpO0kmJihRPUEuX3BhcnNlR2VuZXJhbENvbnN0cmFpbnRzSW5mbyhnKSk7Zm9yKHZhciBvPUItMSxuPVtdLHI9W10sYT1bXSxzPW87cz49MDstLXMpbltzXT1nLnJlYWRCaXRzKDEpO2Zvcig7IWcuYnl0ZUFsaWduZWQoKTspZy5yZWFkQml0cygxKTtmb3IodmFyIGM9bztjPj0wOy0tYyluW2NdJiYocltjXT1nLnJlYWRVQnl0ZSgpKTtpZihJKWZvcih2YXIgaD1nLnJlYWRVQnl0ZSgpLHk9MDt5PGg7eSsrKWFbeV09Zy5yZWFkQml0cygzMik7cmV0dXJue2dlbmVyYWxQcm9maWxlSWRjOkMsZ2VuZXJhbFRpZXJGbGFnOkUsZ2VuZXJhbExldmVsSWRjOmkscHRsRnJhbWVPbmx5Q29uc3RyYWludEZsYWc6dCxwdGxNdWx0aWxheWVyRW5hYmxlZEZsYWc6ZSxwdGxTdWJsYXllckxldmVsUHJlc2VudEZsYWdzOm4scHRsU3VibGF5ZXJMZXZlbElkY3M6cixwdGxTdWJQcm9maWxlSWRjczphLGdjaUluZm86UX19fSx7a2V5OiJfcGFyc2VHZW5lcmFsQ29uc3RyYWludHNJbmZvIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnJlYWRCaXRzKDEpO2lmKGcpe0Euc2tpcEJpdHMoNzEpO3ZhciBJPUEucmVhZEJpdHMoOCk7SSYmQS5za2lwQml0cyhJKX12YXIgQj04LUEuYml0c1BvcygpJTg7cmV0dXJuIEEuc2tpcEJpdHMoQikse2djaVByZXNlbnRGbGFnOmd9fX1dKSxBfSgpLEJuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSl9cmV0dXJuIERvKEEsbnVsbCxbe2tleToiZmluZEJveCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPVtdO2lmKCFnKXJldHVybiBRO2Zvcih2YXIgQz0wLEU9IiIsaT0wO2cubGVuZ3RoPjc7KXtpZihDPVBvKGcpLEU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSksaT04LDE9PT1DPyhDPVZvKGcsOCksaSs9OCk6Q3x8KEM9Zy5sZW5ndGgpLCFJWzBdfHxFPT09SVswXSl7dmFyIHQ9Zy5zdWJhcnJheSgwLEMpO2lmKCEoSS5sZW5ndGg8MikpcmV0dXJuIEEuZmluZEJveCh0LnN1YmFycmF5KGkpLEkuc2xpY2UoMSksQitpKTtRLnB1c2goe3N0YXJ0OkIsc2l6ZTpDLGhlYWRlclNpemU6aSx0eXBlOkUsZGF0YTp0fSl9Qis9QyxnPWcuc3ViYXJyYXkoQyl9cmV0dXJuIFF9fSx7a2V5OiJ0ZmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLnRyYWNrSWQ9UG8oZyk7dmFyIEk9NCxCPTEmQS5mbGFncyxRPTImQS5mbGFncyxDPTgmQS5mbGFncyxFPTE2JkEuZmxhZ3MsaT0zMiZBLmZsYWdzO0ImJihJKz00LEEuYmFzZURhdGFPZmZzZXQ9UG8oZyxJKSxJKz00KSxRJiYoQS5zYW1wbGVEZXNjcmlwdGlvbkluZGV4PVBvKGcsSSksSSs9NCksQyYmKEEuZGVmYXVsdFNhbXBsZUR1cmF0aW9uPVBvKGcsSSksSSs9NCksRSYmKEEuZGVmYXVsdFNhbXBsZVNpemU9UG8oZyxJKSxJKz00KSxpJiYoQS5kZWZhdWx0U2FtcGxlRmxhZ3M9UG8oZyxJKSl9KSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wO0EucmVmZXJlbmNlX0lEPVBvKGcsSSksSSs9NCxBLnRpbWVzY2FsZT1QbyhnLEkpLEkrPTQsMD09PUEudmVyc2lvbj8oQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1QbyhnLEkpLEkrPTQsQS5maXJzdF9vZmZzZXQ9UG8oZyxJKSxJKz00KTooQS5lYXJsaWVzdF9wcmVzZW50YXRpb25fdGltZT1WbyhnLEkpLEkrPTgsQS5maXJzdF9vZmZzZXQ9Vm8oZyxJKSxJKz04KSxJKz0yLEEucmVmZXJlbmNlcz1bXTt2YXIgQj1qbyhnLEkpO0krPTI7Zm9yKHZhciBRPTA7UTxCO1ErKyl7dmFyIEM9e307QS5yZWZlcmVuY2VzLnB1c2goQyk7dmFyIEU9UG8oZyxJKTtJKz00LEMucmVmZXJlbmNlX3R5cGU9RT4+MzEmMSxDLnJlZmVyZW5jZWRfc2l6ZT0yMTQ3NDgzNjQ3JkUsQy5zdWJzZWdtZW50X2R1cmF0aW9uPVBvKGcsSSksRT1QbyhnLEkrPTQpLEkrPTQsQy5zdGFydHNfd2l0aF9TQVA9RT4+MzEmMSxDLlNBUF90eXBlPUU+PjI4JjcsQy5TQVBfZGVsdGFfdGltZT0yNjg0MzU0NTUmRX19KSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubXZoZD1BLm12aGQoQS5maW5kQm94KEksWyJtdmhkIl0sQilbMF0pLGcudHJhaz1BLmZpbmRCb3goSSxbInRyYWsiXSxCKS5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSksZy5wc3NoPUEucHNzaChBLmZpbmRCb3goSSxbInBzc2giXSxCKVswXSl9KSl9fSx7a2V5OiJtdmhkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudGltZXNjYWxlPVBvKGcsMTYpLEEuZHVyYXRpb249Vm8oZywyMCksSSs9MjgpOihBLnRpbWVzY2FsZT1QbyhnLDgpLEEuZHVyYXRpb249UG8oZywxMiksSSs9MTYpLEEubmV4dFRyYWNrSWQ9UG8oZyxJKzc2KX0pKX19LHtrZXk6InRyYWsiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy50a2hkPUEudGtoZChBLmZpbmRCb3goSSxbInRraGQiXSxCKVswXSksZy5tZGlhPUEubWRpYShBLmZpbmRCb3goSSxbIm1kaWEiXSxCKVswXSksZy5lZHRzPUEuZWR0cyhBLmZpbmRCb3goSSxbImVkdHMiXSxCKVswXSl9KSl9fSx7a2V5OiJ0a2hkIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXt2YXIgST0wOzE9PT1BLnZlcnNpb24/KEEudHJhY2tJZD1QbyhnLDE2KSxBLmR1cmF0aW9uPVZvKGcsMjQpLEkrPTMyKTooQS50cmFja0lkPVBvKGcsOCksQS5kdXJhdGlvbj1QbyhnLDE2KSxJKz0yMCksQS53aWR0aD1QbyhnLEkrNTIpLEEuaGVpZ2h0PVBvKGcsSSs1Nil9KSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cubWRoZD1BLm1kaGQoQS5maW5kQm94KEksWyJtZGhkIl0sQilbMF0pLGcuaGRscj1BLmhkbHIoQS5maW5kQm94KEksWyJoZGxyIl0sQilbMF0pLGcubWluZj1BLm1pbmYoQS5maW5kQm94KEksWyJtaW5mIl0sQilbMF0pfSkpfX0se2tleToiZWR0cyIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmVsc3Q9QS5lbHN0KEEuZmluZEJveChJLFsiZWxzdCJdLEIpWzBdKX0pKX19LHtrZXk6ImVsc3QiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcsSSl7QS5lbnRyaWVzPVtdLEEuZW50cmllc0RhdGE9Zzt2YXIgQj0wLFE9UG8oZyxCKTtCKz00O2Zvcih2YXIgQz0wO0M8UTtDKyspe3ZhciBFPXt9O0EuZW50cmllcy5wdXNoKEUpLDE9PT1BLnZlcnNpb24/KEUuc2VnbWVudF9kdXJhdGlvbj1WbyhnLEIpLEIrPTgsRS5tZWRpYV90aW1lPXpvKGcsQiksQis9OCk6KEUuc2VnbWVudF9kdXJhdGlvbj1QbyhnLEIpLEIrPTQsRS5tZWRpYV90aW1lPVhvKGcsQiksQis9NCksRS5tZWRpYV9yYXRlX2ludGVnZXI9am8oZyxCKSxCKz0yLEUubWVkaWFfcmF0ZV9mcmFjdGlvbj1qbyhnLEkpLEIrPTJ9fSkpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9MDsxPT09QS52ZXJzaW9uPyhBLnRpbWVzY2FsZT1QbyhnLDE2KSxBLmR1cmF0aW9uPVZvKGcsMjApLEkrPTI4KTooQS50aW1lc2NhbGU9UG8oZyw4KSxBLmR1cmF0aW9uPVBvKGcsMTIpLEkrPTE2KTt2YXIgQj1qbyhnLEkpO0EubGFuZ3VhZ2U9U3RyaW5nLmZyb21DaGFyQ29kZSg5NisoQj4+MTAmMzEpLDk2KyhCPj41JjMxKSw5NisoMzEmQikpfSkpfX0se2tleToiaGRsciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7MD09PUEudmVyc2lvbiYmKEEuaGFuZGxlclR5cGU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGcuc3ViYXJyYXkoNCw4KSkpfSkpfX0se2tleToibWluZiIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnZtaGQ9QS52bWhkKEEuZmluZEJveChJLFsidm1oZCJdLEIpWzBdKSxnLnNtaGQ9QS5zbWhkKEEuZmluZEJveChJLFsic21oZCJdLEIpWzBdKSxnLnN0Ymw9QS5zdGJsKEEuZmluZEJveChJLFsic3RibCJdLEIpWzBdKX0pKX19LHtrZXk6InZtaGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe0EuZ3JhcGhpY3Ntb2RlPWpvKGcpLEEub3Bjb2xvcj1bam8oZywyKSxqbyhnLDQpLGpvKGcsNildfSkpfX0se2tleToic21oZCIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7QS5iYWxhbmNlPWpvKGcpfSkpfX0se2tleToic3RibCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUSxDLEU7Zy5zdHNkPUEuc3RzZChBLmZpbmRCb3goSSxbInN0c2QiXSxCKVswXSksZy5zdHRzPUEuc3R0cyhBLmZpbmRCb3goSSxbInN0dHMiXSxCKVswXSksZy5jdHRzPUEuY3R0cyhBLmZpbmRCb3goSSxbImN0dHMiXSxCKVswXSksZy5zdHNjPUEuc3RzYyhBLmZpbmRCb3goSSxbInN0c2MiXSxCKVswXSksZy5zdHN6PUEuc3RzeihBLmZpbmRCb3goSSxbInN0c3oiXSxCKVswXSksZy5zdGNvPUEuc3RjbyhBLmZpbmRCb3goSSxbInN0Y28iXSxCKVswXSksZy5zdGNvfHwoZy5jbzY0PUEuY282NChBLmZpbmRCb3goSSxbImNvNjQiXSxCKVswXSksZy5zdGNvPWcuY282NCk7dmFyIGk9bnVsbD09PShRPWcuc3RzZC5lbnRyaWVzWzBdKXx8dm9pZCAwPT09UXx8bnVsbD09PShDPVEuc2luZil8fHZvaWQgMD09PUN8fG51bGw9PT0oRT1DLnNjaGkpfHx2b2lkIDA9PT1FP3ZvaWQgMDpFLnRlbmMuZGVmYXVsdF9JVl9zaXplO2cuc3Rzcz1BLnN0c3MoQS5maW5kQm94KEksWyJzdHNzIl0sQilbMF0pLGcuc2VuYz1BLnNlbmMoQS5maW5kQm94KEksWyJzZW5jIl0sQilbMF0saSl9KSl9fSx7a2V5OiJzZW5jIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ODtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxJKXt2YXIgQj0wLFE9UG8oSSxCKTtCKz00LEEuc2FtcGxlcz1bXTtmb3IodmFyIEM9MDtDPFE7QysrKXtmb3IodmFyIEU9e0luaXRpYWxpemF0aW9uVmVjdG9yOltdfSxpPTA7aTxnO2krKylFLkluaXRpYWxpemF0aW9uVmVjdG9yW2ldPUlbQitpXTtpZihCKz1nLDImQS5mbGFncyl7RS5zdWJzYW1wbGVzPVtdO3ZhciB0PWpvKEksQik7Qis9Mjtmb3IodmFyIGU9MDtlPHQ7ZSsrKXt2YXIgbz17fTtvLkJ5dGVzT2ZDbGVhckRhdGE9am8oSSxCKSxCKz0yLG8uQnl0ZXNPZlByb3RlY3RlZERhdGE9UG8oSSxCKSxCKz00LEUuc3Vic2FtcGxlcy5wdXNoKG8pfX1BLnNhbXBsZXMucHVzaChFKX19KSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9W10sQj1bXSxRPTAsQz0wO0M8MTY7QysrKUIucHVzaChlbihnW1ErQ10pKTtpZihRKz0xNixBLnZlcnNpb24+MCl7dmFyIEU9UG8oZyxRKTtRKz00O2Zvcih2YXIgaT0wO2k8KCIiK0UpLmxlbmd0aDtpKyspZm9yKHZhciB0PTA7dDwxNjt0Kyspe3ZhciBlPWdbUV07USs9MSxJLnB1c2goZW4oZSkpfX12YXIgbz1QbyhnLFEpO0EuZGF0YV9zaXplPW8sUSs9NCxBLmtpZD1JLEEuc3lzdGVtX2lkPUIsQS5idWZmZXI9Z30pKX19LHtrZXk6ImJ2YzIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9Q24oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLnZ2Y0M9QS5idjJDKEEuZmluZEJveChDLFsiYnYyQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImJ2MkMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcsSSl7dmFyIEI9SW4ucGFyc2VWVkNEZWNvZGVyQ29uZmlndXJhdGlvblJlY29yZChnKTtmb3IodmFyIFEgaW4gQilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQixRKSYmKEFbUV09QltRXSl9KSl9fSx7a2V5OiJzdHNkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMCwoZnVuY3Rpb24oZyxJLEIpe2cuZW50cnlDb3VudD1QbyhJKSxnLmVudHJpZXM9QS5maW5kQm94KEkuc3ViYXJyYXkoNCksW10sQis0KS5tYXAoKGZ1bmN0aW9uKGcpe3N3aXRjaChnLnR5cGUpe2Nhc2UiYXZjMSI6Y2FzZSJhdmMyIjpjYXNlImF2YzMiOmNhc2UiYXZjNCI6cmV0dXJuIEEuYXZjMShnKTtjYXNlImh2YzEiOmNhc2UiaGV2MSI6cmV0dXJuIEEuaHZjMShnKTtjYXNlImJ2YzIiOnJldHVybiBBLmJ2YzIoZyk7Y2FzZSJtcDRhIjpyZXR1cm4gQS5tcDRhKGcpO2Nhc2UiYWxhdyI6Y2FzZSJ1bGF3IjpyZXR1cm4gQS5hbGF3KGcpO2Nhc2UiZW5jYSI6cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLmNoYW5uZWxDb3VudD1qbyhJLDE2KSxnLnNhbXBsZXNpemU9am8oSSwxOCksZy5zYW1wbGVSYXRlPVBvKEksMjQpLzY1NTM2LEk9SS5zdWJhcnJheSgyOCksZy5zaW5mPUEuc2luZihBLmZpbmRCb3goSSxbInNpbmYiXSxCKVswXSksZy5lc2RzPUEuZXNkcyhBLmZpbmRCb3goSSxbImVzZHMiXSxCKVswXSl9KSk7Y2FzZSJlbmN2IjpyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cud2lkdGg9am8oSSwyNCksZy5oZWlnaHQ9am8oSSwyNiksZy5ob3JpenJlc29sdXRpb249UG8oSSwyOCksZy52ZXJ0cmVzb2x1dGlvbj1QbyhJLDMyKSxJPUkuc3ViYXJyYXkoNzgpLGcuc2luZj1BLnNpbmYoQS5maW5kQm94KEksWyJzaW5mIl0sQilbMF0pLGcuYXZjQz1BLmF2Y0MoQS5maW5kQm94KEksWyJhdmNDIl0sQilbMF0pLGcuaHZjQz1BLmh2Y0MoQS5maW5kQm94KEksWyJodmNDIl0sQilbMF0pLGcucGFzcD1BLnBhc3AoQS5maW5kQm94KEksWyJwYXNwIl0sQilbMF0pfSkpfX0pKS5maWx0ZXIoQm9vbGVhbil9KSl9fSx7a2V5OiJ0ZW5jIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oQSxnKXt2YXIgST02O0EuZGVmYXVsdF9Jc0VuY3J5cHRlZD1nW0ldLEkrPTEsQS5kZWZhdWx0X0lWX3NpemU9Z1tJXSxJKz0xLEEuZGVmYXVsdF9LSUQ9W107Zm9yKHZhciBCPTA7QjwxNjtCKyspQS5kZWZhdWx0X0tJRC5wdXNoKGVuKGdbSV0pKSxJKz0xfSkpfX0se2tleToic2NoaSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXtnLnRlbmM9QS50ZW5jKEEuZmluZEJveChJLFsidGVuYyJdLEIpWzBdKX0pKX19LHtrZXk6InNpbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy5zY2hpPUEuc2NoaShBLmZpbmRCb3goSSxbInNjaGkiXSxCKVswXSksZy5mcm1hPUEuZnJtYShBLmZpbmRCb3goSSxbImZybWEiXSxCKVswXSl9KSl9fSx7a2V5OiJmcm1hIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oQSxnKXtBLmRhdGFfZm9ybWF0PSIiO2Zvcih2YXIgST0wO0k8NDtJKyspQS5kYXRhX2Zvcm1hdCs9U3RyaW5nLmZyb21DaGFyQ29kZShnW0ldKX0pKX19LHtrZXk6ImF2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7dmFyIFE9Q24oZyxJKSxDPUkuc3ViYXJyYXkoUSk7Qis9USxnLmF2Y0M9QS5hdmNDKEEuZmluZEJveChDLFsiYXZjQyJdLEIpWzBdKSxnLnBhc3A9QS5wYXNwKEEuZmluZEJveChDLFsicGFzcCJdLEIpWzBdKX0pKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcpe0EuY29uZmlndXJhdGlvblZlcnNpb249Z1swXSxBLkFWQ1Byb2ZpbGVJbmRpY2F0aW9uPWdbMV0sQS5wcm9maWxlQ29tcGF0aWJpbGl0eT1nWzJdLEEuQVZDTGV2ZWxJbmRpY2F0aW9uPWdbM10sQS5jb2RlYz1mdW5jdGlvbihBKXtmb3IodmFyIGcsST0iYXZjMS4iLEI9MDtCPDM7QisrKShnPUFbQl0udG9TdHJpbmcoMTYpKS5sZW5ndGg8MiYmKGc9IjAiLmNvbmNhdChnKSksSSs9ZztyZXR1cm4gSX0oW2dbMV0sZ1syXSxnWzNdXSksQS5sZW5ndGhTaXplTWludXNPbmU9MyZnWzRdLEEuc3BzTGVuZ3RoPTMxJmdbNV0sQS5zcHM9W107Zm9yKHZhciBJPTYsQj0wO0I8QS5zcHNMZW5ndGg7QisrKXt2YXIgUT1qbyhnLEkpO0krPTIsQS5zcHMucHVzaChnLnN1YmFycmF5KEksSStRKSksSSs9UX1BLnBwc0xlbmd0aD1nW0ldLEkrPTEsQS5wcHM9W107Zm9yKHZhciBDPTA7QzxBLnBwc0xlbmd0aDtDKyspe3ZhciBFPWpvKGcsSSk7SSs9MixBLnBwcy5wdXNoKGcuc3ViYXJyYXkoSSxJKz1FKSksSSs9RX19KSl9fSx7a2V5OiJodmMxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe3ZhciBRPUNuKGcsSSksQz1JLnN1YmFycmF5KFEpO0IrPVEsZy5odmNDPUEuaHZjQyhBLmZpbmRCb3goQyxbImh2Y0MiXSxCKVswXSksZy5wYXNwPUEucGFzcChBLmZpbmRCb3goQyxbInBhc3AiXSxCKVswXSl9KSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMSwoZnVuY3Rpb24oZyxJKXtnLmRhdGE9QS5kYXRhLGcuY29kZWM9ImhldjEuMS42Lkw5My5CMCIsZy5jb25maWd1cmF0aW9uVmVyc2lvbj1JWzBdO3ZhciBCPUlbMV07Zy5nZW5lcmFsUHJvZmlsZVNwYWNlPUI+PjYsZy5nZW5lcmFsVGllckZsYWc9KDMyJkIpPj41LGcuZ2VuZXJhbFByb2ZpbGVJZGM9MzEmQixnLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eT1QbyhJLDIpLGcuZ2VuZXJhbENvbnN0cmFpbnRJbmRpY2F0b3JGbGFncz1JLnN1YmFycmF5KDYsMTIpLGcuZ2VuZXJhbExldmVsSWRjPUlbMTJdLGcuYXZnRnJhbWVSYXRlPWpvKEksMTkpLGcubnVtT2ZBcnJheXM9SVsyMl0sZy52cHM9W10sZy5zcHM9W10sZy5wcHM9W107Zm9yKHZhciBRPTIzLEM9MCxFPTAsaT0wLHQ9MDt0PGcubnVtT2ZBcnJheXM7dCsrKXtDPTYzJklbUV0sRT1qbyhJLFErMSksUSs9Mztmb3IodmFyIGUsbz1bXSxuPTA7bjxFO24rKylpPWpvKEksUSksUSs9MixvLnB1c2goSS5zdWJhcnJheShRLFEraSkpLFErPWk7aWYoMzI9PT1DKShlPWcudnBzKS5wdXNoLmFwcGx5KGUsbyk7ZWxzZSBpZigzMz09PUMpe3ZhciByOyhyPWcuc3BzKS5wdXNoLmFwcGx5KHIsbyl9ZWxzZSBpZigzND09PUMpe3ZhciBhOyhhPWcucHBzKS5wdXNoLmFwcGx5KGEsbyl9fX0pKX19LHtrZXk6InBhc3AiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCExLChmdW5jdGlvbihBLGcpe0EuaFNwYWNpbmc9UG8oZyksQS52U3BhY2luZz1QbyhnLDQpfSkpfX0se2tleToibXA0YSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIHRuKGcsITEsKGZ1bmN0aW9uKGcsSSxCKXt2YXIgUT1FbihnLEkpO2cuZXNkcz1BLmVzZHMoQS5maW5kQm94KEkuc3ViYXJyYXkoUSksWyJlc2RzIl0sQitRKVswXSl9KSl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtBLmNvZGVjPSJtcDRhLiI7Zm9yKHZhciBJPTAsQj0wLFE9MCxDPTA7Zy5sZW5ndGg7KXtmb3IoQz1nW0k9MF0sQj1nW0krMV0sSSs9MjsxMjgmQjspUT0oMTI3JkIpPDw3LEI9Z1tJXSxJKz0xO2lmKFErPTEyNyZCLDM9PT1DKWc9Zy5zdWJhcnJheShJKzMpO2Vsc2V7aWYoNCE9PUMpe2lmKDU9PT1DKXt2YXIgRT1BLmNvbmZpZz1nLnN1YmFycmF5KEksSStRKSxpPSgyNDgmRVswXSk+PjM7cmV0dXJuIDMxPT09aSYmRS5sZW5ndGg+PTImJihpPTMyKygoNyZFWzBdKTw8MykrKCgyMjQmRVsxXSk+PjUpKSxBLm9iamVjdFR5cGU9aSxBLmNvZGVjKz1pLnRvU3RyaW5nKDE2KSx2b2lkKCIuIj09PUEuY29kZWNbQS5jb2RlYy5sZW5ndGgtMV0mJihBLmNvZGVjPUEuY29kZWMuc3Vic3RyaW5nKDAsQS5jb2RlYy5sZW5ndGgtMSkpKX1yZXR1cm4gdm9pZCgiLiI9PT1BLmNvZGVjW0EuY29kZWMubGVuZ3RoLTFdJiYoQS5jb2RlYz1BLmNvZGVjLnN1YnN0cmluZygwLEEuY29kZWMubGVuZ3RoLTEpKSl9QS5jb2RlYys9KGdbSV0udG9TdHJpbmcoMTYpKyIuIikucGFkU3RhcnQoMywiMCIpLGc9Zy5zdWJhcnJheShJKzEzKX19fSkpfX0se2tleToiYWxhdyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITEsKGZ1bmN0aW9uKEEsZyl7RW4oQSxnKX0pKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPVtdLFE9NCxDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OlBvKGcsUSksZGVsdGE6UG8oZyxRKzQpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6ImN0dHMiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe3ZhciBJPVBvKGcpLEI9W10sUT00O2lmKDE9PT1BLnZlcnNpb24pZm9yKHZhciBDPTA7QzxJO0MrKylCLnB1c2goe2NvdW50OlBvKGcsUSksb2Zmc2V0OlBvKGcsUSs0KX0pLFErPTg7ZWxzZSBmb3IodmFyIEU9MDtFPEk7RSsrKUIucHVzaCh7Y291bnQ6UG8oZyxRKSxvZmZzZXQ6LSgxK35QbyhnLFErNCkpfSksUSs9ODtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT17Zmlyc3RDaHVuazpQbyhnLFEpLHNhbXBsZXNQZXJDaHVuazpQbyhnLFErNCksc2FtcGxlRGVzY3JpcHRpb25JbmRleDpQbyhnLFErOCl9LFErPTEyO0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9UG8oZyksQj1QbyhnLDQpLFE9bmV3IEFycmF5KEIpO2lmKCFJKWZvcih2YXIgQz04LEU9MDtFPEI7RSsrKVFbRV09UG8oZyxDKSxDKz00O0Euc2FtcGxlU2l6ZT1JLEEuc2FtcGxlQ291bnQ9QixBLmVudHJ5U2l6ZXM9UX0pKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1QbyhnKSxCPW5ldyBBcnJheShJKSxRPTQsQz0wO0M8STtDKyspQltDXT1QbyhnLFEpLFErPTQ7QS5lbnRyeUNvdW50PUksQS5lbnRyaWVzPUJ9KSl9fSx7a2V5OiJjbzY0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9UG8oZyksQj1uZXcgQXJyYXkoSSksUT00LEM9MDtDPEk7QysrKUJbQ109Vm8oZyxRKSxRKz04O0EuZW50cnlDb3VudD1JLEEuZW50cmllcz1CfSkpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJPVBvKGcpLEI9bmV3IEFycmF5KEkpLFE9NCxDPTA7QzxJO0MrKylCW0NdPVBvKGcsUSksUSs9NDtBLmVudHJ5Q291bnQ9SSxBLmVudHJpZXM9Qn0pKX19LHtrZXk6Im1vb2YiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiB0bihnLCExLChmdW5jdGlvbihnLEksQil7Zy5tZmhkPUEubWZoZChBLmZpbmRCb3goSSxbIm1maGQiXSxCKVswXSksZy50cmFmPUEuZmluZEJveChJLFsidHJhZiJdLEIpLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhZihnKX0pKX0pKX19LHtrZXk6Im1maGQiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiB0bihBLCEwLChmdW5jdGlvbihBLGcpe0Euc2VxdWVuY2VOdW1iZXI9UG8oZyl9KSl9fSx7a2V5OiJ0cmFmIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gdG4oZywhMSwoZnVuY3Rpb24oZyxJLEIpe2cudGZoZD1BLnRmaGQoQS5maW5kQm94KEksWyJ0ZmhkIl0sQilbMF0pLGcudGZkdD1BLnRmZHQoQS5maW5kQm94KEksWyJ0ZmR0Il0sQilbMF0pLGcudHJ1bj1BLnRydW4oQS5maW5kQm94KEksWyJ0cnVuIl0sQilbMF0pfSkpfX0se2tleToidHJ1biIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRuKEEsITAsKGZ1bmN0aW9uKEEsZyl7dmFyIEk9QS52ZXJzaW9uLEI9QS5mbGFncyxRPWcubGVuZ3RoLEM9QS5zYW1wbGVDb3VudD1QbyhnKSxFPTQ7aWYoUT5FJiYxJkImJihBLmRhdGFPZmZzZXQ9LSgxK35QbyhnLEUpKSxFKz00KSxRPkUmJjQmQiYmKEEuZmlyc3RTYW1wbGVGbGFncz1QbyhnLEUpLEUrPTQpLFE+RSl7dmFyIGk7QS5zYW1wbGVzPW5ldyBBcnJheShDKTtmb3IodmFyIHQ9MDt0PEM7dCsrKWk9e30sMjU2JkImJihpLmR1cmF0aW9uPVBvKGcsRSksRSs9NCksNTEyJkImJihpLnNpemU9UG8oZyxFKSxFKz00KSwxMDI0JkImJihpLmZsYWdzPVBvKGcsRSksRSs9NCksMjA0OCZCJiYoaS5jdHM9ST8tKDErflBvKGcsRSs0KSk6UG8oZyxFKSxFKz00KSxBLnNhbXBsZXNbdF09aX19KSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdG4oQSwhMCwoZnVuY3Rpb24oQSxnKXsxPT09QS52ZXJzaW9uP0EuYmFzZU1lZGlhRGVjb2RlVGltZT1WbyhnKTpBLmJhc2VNZWRpYURlY29kZVRpbWU9UG8oZyl9KSl9fSx7a2V5OiJwcm9iZSIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuISFBLmZpbmRCb3goZyxbImZ0eXAiXSl9fSx7a2V5OiJwYXJzZVNhbXBsZUZsYWdzIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm57aXNMZWFkaW5nOigxMiZBWzBdKT4+PjIsZGVwZW5kc09uOjMmQVswXSxpc0RlcGVuZGVkT246KDE5MiZBWzFdKT4+PjYsaGFzUmVkdW5kYW5jeTooNDgmQVsxXSk+Pj40LHBhZGRpbmdWYWx1ZTooMTQmQVsxXSk+Pj4xLGlzTm9uU3luY1NhbXBsZToxJkFbMV0sZGVncmFkYXRpb25Qcmlvcml0eTpBWzJdPDw4fEFbM119fX0se2tleToibW9vdlRvVHJhY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEM9QS50cmFrO2lmKEMmJkMubGVuZ3RoKXt2YXIgRT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInZpZGUiPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSksaT1DLmZpbmQoKGZ1bmN0aW9uKEEpe3ZhciBnLEk7cmV0dXJuInNvdW4iPT09KG51bGw9PT0oZz1BLm1kaWEpfHx2b2lkIDA9PT1nfHxudWxsPT09KEk9Zy5oZGxyKXx8dm9pZCAwPT09ST92b2lkIDA6SS5oYW5kbGVyVHlwZSl9KSk7aWYoRSYmZyl7dmFyIHQsZSxvLG4scixhLHMsYyxoPWcseT1udWxsPT09KHQ9RS50a2hkKXx8dm9pZCAwPT09dD92b2lkIDA6dC50cmFja0lkO251bGwhPXkmJihoLmlkPUUudGtoZC50cmFja0lkKSxoLnRraGREdXJhdGlvbj1FLnRraGQuZHVyYXRpb24saC5tdmhkRHVydGlvbj1BLm12aGQuZHVyYXRpb24saC5tdmhkVGltZWNhbGU9QS5tdmhkLnRpbWVzY2FsZSxoLnRpbWVzY2FsZT1oLmZvcm1hdFRpbWVzY2FsZT1FLm1kaWEubWRoZC50aW1lc2NhbGUsaC5kdXJhdGlvbj1FLm1kaWEubWRoZC5kdXJhdGlvbnx8aC5tdmhkRHVydGlvbi9oLm12aGRUaW1lY2FsZSpoLnRpbWVzY2FsZSxudWxsIT09KGU9RS5lZHRzKSYmdm9pZCAwIT09ZSYmZS5lbHN0JiYoaC5lZGl0TGlzdD1FLmVkdHMuZWxzdCxoLmVkaXRMaXN0QXBwbGllZD1FLmVkaXRMaXN0QXBwbGllZCk7dmFyIEQsZix1LHcsZCxGLGwsRyxSPUUubWRpYS5taW5mLnN0Ymwuc3RzZC5lbnRyaWVzWzBdO2lmKGgud2lkdGg9Ui53aWR0aCxoLmhlaWdodD1SLmhlaWdodCxSLnBhc3AmJihoLnNhclJhdGlvPVtSLnBhc3AuaFNwYWNpbmcsUi5wYXNwLnZTcGFjaW5nXSksUi5odmNDKWguY29kZWNUeXBlPU5vLGguY29kZWM9Ui5odmNDLmNvZGVjLGgudnBzPVIuaHZjQy52cHMsaC5zcHM9Ui5odmNDLnNwcyxoLnBwcz1SLmh2Y0MucHBzLGguaHZjQz1SLmh2Y0MuZGF0YTtlbHNlIGlmKFIuYXZjQyloLmNvZGVjPVIuYXZjQy5jb2RlYyxoLnNwcz1SLmF2Y0Muc3BzLGgucHBzPVIuYXZjQy5wcHM7ZWxzZXtpZighUi52dmNDKXRocm93IG5ldyBFcnJvcigidW5rbm93biB2aWRlbyBzdHNkIGVudHJ5Iik7aC5jb2RlY1R5cGU9TW8saC5jb2RlYz1SLnZ2Y0MuY29kZWMsaC5zcHM9Ui52dmNDLnNwcyxoLnBwcz1SLnZ2Y0MucHBzLGgudnBzPVIudnZjQy52cHMsaC52dmNDPVIudnZjQy5kYXRhfWlmKGgucHJlc2VudD0hMCxoLmV4dD17fSxoLmV4dC5zdHNzPW51bGw9PT0obz1FLm1kaWEpfHx2b2lkIDA9PT1vfHxudWxsPT09KG49by5taW5mKXx8dm9pZCAwPT09bnx8bnVsbD09PShyPW4uc3RibCl8fHZvaWQgMD09PXI/dm9pZCAwOnIuc3RzcyxoLmV4dC5jdHRzPW51bGw9PT0oYT1FLm1kaWEpfHx2b2lkIDA9PT1hfHxudWxsPT09KHM9YS5taW5mKXx8dm9pZCAwPT09c3x8bnVsbD09PShjPXMuc3RibCl8fHZvaWQgMD09PWM/dm9pZCAwOmMuY3R0cyxSJiYiZW5jdiI9PT1SLnR5cGUpaC5pc1ZpZGVvRW5jcnlwdGlvbj0hMCxSLmRlZmF1bHRfS0lEPW51bGw9PT0oRD1SLnNpbmYpfHx2b2lkIDA9PT1EfHxudWxsPT09KGY9RC5zY2hpKXx8dm9pZCAwPT09Zj92b2lkIDA6Zi50ZW5jLmRlZmF1bHRfS0lELFIuZGVmYXVsdF9Jc0VuY3J5cHRlZD1udWxsPT09KHU9Ui5zaW5mKXx8dm9pZCAwPT09dXx8bnVsbD09PSh3PXUuc2NoaSl8fHZvaWQgMD09PXc/dm9pZCAwOncudGVuYy5kZWZhdWx0X0lzRW5jcnlwdGVkLFIuZGVmYXVsdF9JVl9zaXplPW51bGw9PT0oZD1SLnNpbmYpfHx2b2lkIDA9PT1kfHxudWxsPT09KEY9ZC5zY2hpKXx8dm9pZCAwPT09Rj92b2lkIDA6Ri50ZW5jLmRlZmF1bHRfSVZfc2l6ZSxoLnZpZGVvU2VuYz1FLm1kaWEubWluZi5zdGJsLnNlbmMmJkUubWRpYS5taW5mLnN0Ymwuc2VuYy5zYW1wbGVzLFIuZGF0YV9mb3JtYXQ9bnVsbD09PShsPVIuc2luZil8fHZvaWQgMD09PWx8fG51bGw9PT0oRz1sLmZybWEpfHx2b2lkIDA9PT1HP3ZvaWQgMDpHLmRhdGFfZm9ybWF0LGgudXNlRU1FPUEudXNlRU1FLGgua2lkVmFsdWU9QS5raWRWYWx1ZSxoLnBzc2g9QS5wc3NoLGguZW5jdj1SfWlmKGkmJkkpe3ZhciBVLGssUyxOLE0sWSxILHAsSixMLHY9SSxLPW51bGw9PT0oVT1pLnRraGQpfHx2b2lkIDA9PT1VP3ZvaWQgMDpVLnRyYWNrSWQ7bnVsbCE9SyYmKHYuaWQ9aS50a2hkLnRyYWNrSWQpLHYudGtoZER1cmF0aW9uPWkudGtoZC5kdXJhdGlvbix2Lm12aGREdXJ0aW9uPUEubXZoZC5kdXJhdGlvbix2Lm12aGRUaW1lY2FsZT1BLm12aGQudGltZXNjYWxlLHYudGltZXNjYWxlPXYuZm9ybWF0VGltZXNjYWxlPWkubWRpYS5tZGhkLnRpbWVzY2FsZSx2LmR1cmF0aW9uPWkubWRpYS5tZGhkLmR1cmF0aW9ufHx2Lm12aGREdXJ0aW9uL3YubXZoZFRpbWVjYWxlKnYudGltZXNjYWxlLG51bGwhPT0oaz1pLmVkdHMpJiZ2b2lkIDAhPT1rJiZrLmVsc3QmJih2LmVkaXRMaXN0PWkuZWR0cy5lbHN0LHYuZWRpdExpc3RBcHBsaWVkPWkuZWRpdExpc3RBcHBsaWVkKTt2YXIgbSx4LHEsYixULE8sVyxaLGo9aS5tZGlhLm1pbmYuc3RibC5zdHNkLmVudHJpZXNbMF07c3dpdGNoKHYuc2FtcGxlU2l6ZT1qLnNhbXBsZVNpemUsdi5zYW1wbGVSYXRlPWouc2FtcGxlUmF0ZSx2LmNoYW5uZWxDb3VudD1qLmNoYW5uZWxDb3VudCx2LnByZXNlbnQ9ITAsai50eXBlKXtjYXNlImFsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9SG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztjYXNlInVsYXciOnYuY29kZWNUeXBlPXYuY29kZWM9cG8sdi5zYW1wbGVSYXRlPThlMzticmVhaztkZWZhdWx0OnYuc2FtcGxlRHVyYXRpb249T28uZ2V0RnJhbWVEdXJhdGlvbih2LnNhbXBsZVJhdGUsdi50aW1lc2NhbGUpLHYuc2FtcGxlUmF0ZUluZGV4PU9vLmdldFJhdGVJbmRleEJ5UmF0ZSh2LnNhbXBsZVJhdGUpLHYub2JqZWN0VHlwZT0obnVsbD09PShCPWouZXNkcyl8fHZvaWQgMD09PUI/dm9pZCAwOkIub2JqZWN0VHlwZSl8fDIsai5lc2RzJiYodi5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKSksdi5jb2RlYz0obnVsbD09PShRPWouZXNkcyl8fHZvaWQgMD09PVE/dm9pZCAwOlEuY29kZWMpfHwibXA0YS40MC4yIn1pZih2LnNhbXBsZUR1cmF0aW9uPU9vLmdldEZyYW1lRHVyYXRpb24odi5zYW1wbGVSYXRlLHYudGltZXNjYWxlKSx2Lm9iamVjdFR5cGU9KG51bGw9PT0oUz1qLmVzZHMpfHx2b2lkIDA9PT1TP3ZvaWQgMDpTLm9iamVjdFR5cGUpfHwyLGouZXNkcyYmKGouZXNkcy5jb25maWc/di5jb25maWc9QXJyYXkuZnJvbShqLmVzZHMuY29uZmlnKTpjb25zb2xlLndhcm4oImVzZHMgY29uZmlnIGlzIG51bGwiKSksdi5jb2RlYz0obnVsbD09PShOPWouZXNkcyl8fHZvaWQgMD09PU4/dm9pZCAwOk4uY29kZWMpfHwibXA0YS40MC4yIix2LnNhbXBsZVJhdGVJbmRleD1Pby5nZXRSYXRlSW5kZXhCeVJhdGUodi5zYW1wbGVSYXRlKSx2LmV4dD17fSx2LmV4dC5zdHNzPW51bGw9PT0oTT1pLm1kaWEpfHx2b2lkIDA9PT1NfHxudWxsPT09KFk9TS5taW5mKXx8dm9pZCAwPT09WXx8bnVsbD09PShIPVkuc3RibCl8fHZvaWQgMD09PUg/dm9pZCAwOkguc3Rzcyx2LmV4dC5jdHRzPW51bGw9PT0ocD1pLm1kaWEpfHx2b2lkIDA9PT1wfHxudWxsPT09KEo9cC5taW5mKXx8dm9pZCAwPT09Snx8bnVsbD09PShMPUouc3RibCl8fHZvaWQgMD09PUw/dm9pZCAwOkwuY3R0cyx2LnByZXNlbnQ9ITAsaiYmImVuY2EiPT09ai50eXBlKXYuaXNBdWRpb0VuY3J5cHRpb249ITAsai5kYXRhX2Zvcm1hdD1udWxsPT09KG09ai5zaW5mKXx8dm9pZCAwPT09bXx8bnVsbD09PSh4PW0uZnJtYSl8fHZvaWQgMD09PXg/dm9pZCAwOnguZGF0YV9mb3JtYXQsai5kZWZhdWx0X0tJRD1udWxsPT09KHE9ai5zaW5mKXx8dm9pZCAwPT09cXx8bnVsbD09PShiPXEuc2NoaSl8fHZvaWQgMD09PWI/dm9pZCAwOmIudGVuYy5kZWZhdWx0X0tJRCxqLmRlZmF1bHRfSXNFbmNyeXB0ZWQ9bnVsbD09PShUPWouc2luZil8fHZvaWQgMD09PVR8fG51bGw9PT0oTz1ULnNjaGkpfHx2b2lkIDA9PT1PP3ZvaWQgMDpPLnRlbmMuZGVmYXVsdF9Jc0VuY3J5cHRlZCxqLmRlZmF1bHRfSVZfc2l6ZT1udWxsPT09KFc9ai5zaW5mKXx8dm9pZCAwPT09V3x8bnVsbD09PShaPVcuc2NoaSl8fHZvaWQgMD09PVo/dm9pZCAwOloudGVuYy5kZWZhdWx0X0lWX3NpemUsdi5hdWRpb1NlbmM9aS5tZGlhLm1pbmYuc3RibC5zZW5jJiZpLm1kaWEubWluZi5zdGJsLnNlbmMuc2FtcGxlcyx2LnVzZUVNRT1BLnVzZUVNRSx2LmtpZFZhbHVlPUEua2lkVmFsdWUsdi5lbmNhPWp9aWYoSSYmKEkuaXNWaWRlb0VuY3J5cHRpb249ISFnJiZnLmlzVmlkZW9FbmNyeXB0aW9uKSxnJiYoZy5pc0F1ZGlvRW5jcnlwdGlvbj0hIUkmJkkuaXNBdWRpb0VuY3J5cHRpb24pLG51bGwhPWcmJmcuZW5jdnx8bnVsbCE9SSYmSS5lbmNhKXt2YXIgUCxYLFY9bnVsbD09Z3x8bnVsbD09PShQPWcuZW5jdil8fHZvaWQgMD09PVA/dm9pZCAwOlAuZGVmYXVsdF9LSUQsej1udWxsPT1JfHxudWxsPT09KFg9SS5lbmNhKXx8dm9pZCAwPT09WD92b2lkIDA6WC5kZWZhdWx0X0tJRCxfPVZ8fHo/KFZ8fHopLmpvaW4oIiIpOm51bGw7ZyYmKGcua2lkPV8pLEkmJihJLmtpZD1fKX1yZXR1cm4gZyYmKGcuZmxhZ3M9Mzg0MSksSSYmKEkuZmxhZ3M9MTc5Mykse3ZpZGVvVHJhY2s6ZyxhdWRpb1RyYWNrOkl9fX19LHtrZXk6ImV2YWx1YXRlRGVmYXVsdER1cmF0aW9uIix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUT1udWxsPT1nfHxudWxsPT09KEI9Zy5zYW1wbGVzKXx8dm9pZCAwPT09Qj92b2lkIDA6Qi5sZW5ndGg7cmV0dXJuIFE/MTAyNCpRL2cudGltZXNjYWxlKkEudGltZXNjYWxlL0k6MTAyNH19LHtrZXk6Im1vb2ZUb1NhbXBsZXMiLHZhbHVlOmZ1bmN0aW9uKGcsSSxCKXt2YXIgUT17fTtyZXR1cm4gZy5tZmhkJiYoSSYmKEkuc2VxdWVuY2VOdW1iZXI9Zy5tZmhkLnNlcXVlbmNlTnVtYmVyKSxCJiYoQi5zZXF1ZW5jZU51bWJlcj1nLm1maGQuc2VxdWVuY2VOdW1iZXIpKSxnLnRyYWYuZm9yRWFjaCgoZnVuY3Rpb24oZyl7dmFyIEM9Zy50ZmhkLEU9Zy50ZmR0LGk9Zy50cnVuO2lmKEMmJmkpe0UmJihJJiZJLmlkPT09Qy50cmFja0lkJiYoSS5iYXNlTWVkaWFEZWNvZGVUaW1lPUUuYmFzZU1lZGlhRGVjb2RlVGltZSksQiYmQi5pZD09PUMudHJhY2tJZCYmKEIuYmFzZU1lZGlhRGVjb2RlVGltZT1FLmJhc2VNZWRpYURlY29kZVRpbWUpKTt2YXIgdD1DLmRlZmF1bHRTYW1wbGVTaXplfHwwLGU9Qy5kZWZhdWx0U2FtcGxlRHVyYXRpb258fEEuZXZhbHVhdGVEZWZhdWx0RHVyYXRpb24oSSxCLGkuc2FtcGxlcy5sZW5ndGh8fGkuc2FtcGxlQ291bnQpLG89aS5kYXRhT2Zmc2V0fHwwLG49MCxyPS0xO2lmKCFpLnNhbXBsZXMubGVuZ3RoJiZpLnNhbXBsZUNvdW50KXtRW0MudHJhY2tJZF09bmV3IEFycmF5KGkuc2FtcGxlQ291bnQpO2Zvcih2YXIgYT0wO2E8aS5zYW1wbGVDb3VudDthKyspUVtDLnRyYWNrSWRdW2FdPXtvZmZzZXQ6byxkdHM6bixkdXJhdGlvbjplLHNpemU6dH0sbis9ZSxvKz10fWVsc2UgUVtDLnRyYWNrSWRdPWkuc2FtcGxlcy5tYXAoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuKEE9e29mZnNldDpvLGR0czpuLHB0czpuKyhBLmN0c3x8MCksZHVyYXRpb246QS5kdXJhdGlvbnx8ZSxzaXplOkEuc2l6ZXx8dCxnb3BJZDpyLGtleWZyYW1lOjA9PT1nfHxudWxsIT09QS5mbGFncyYmdm9pZCAwIT09QS5mbGFncyYmKDY1NTM2JkEuZmxhZ3MpPj4+MCE9NjU1MzZ9KS5rZXlmcmFtZSYmKHIrKyxBLmdvcElkPXIpLG4rPUEuZHVyYXRpb24sbys9QS5zaXplLEF9KSl9fSkpLFF9fSx7a2V5OiJtb292VG9TYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZz1BLnRyYWs7aWYoZyYmZy5sZW5ndGgpe3ZhciBJPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4idmlkZSI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKSxCPWcuZmluZCgoZnVuY3Rpb24oQSl7dmFyIGcsSTtyZXR1cm4ic291biI9PT0obnVsbD09PShnPUEubWRpYSl8fHZvaWQgMD09PWd8fG51bGw9PT0oST1nLmhkbHIpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmhhbmRsZXJUeXBlKX0pKTtpZihJfHxCKXt2YXIgUSxDO2lmKEkpe3ZhciBFLGksdD1udWxsPT09KEU9SS5tZGlhKXx8dm9pZCAwPT09RXx8bnVsbD09PShpPUUubWluZil8fHZvaWQgMD09PWk/dm9pZCAwOmkuc3RibDtpZighdClyZXR1cm47dmFyIGU9dC5zdHRzLG89dC5zdHNjLG49dC5zdHN6LHI9dC5zdGNvLGE9dC5zdHNzLHM9dC5jdHRzO2lmKCEoZSYmbyYmbiYmciYmYSkpcmV0dXJuO1E9UW4oZSxvLG4scixzLGEpfWlmKEIpe3ZhciBjLGgseSxEPW51bGw9PT0oYz1CLm1kaWEpfHx2b2lkIDA9PT1jfHxudWxsPT09KGg9Yy5taW5mKXx8dm9pZCAwPT09aD92b2lkIDA6aC5zdGJsO2lmKCFEKXJldHVybjt2YXIgZj1udWxsPT09KHk9Qi5tZGlhLm1kaGQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LnRpbWVzY2FsZSx1PUQuc3R0cyx3PUQuc3RzYyxkPUQuc3RzeixGPUQuc3RjbztpZighKGYmJnUmJncmJmQmJkYpKXJldHVybjtDPVFuKHUsdyxkLEYpfXJldHVybnt2aWRlb1NhbXBsZXM6USxhdWRpb1NhbXBsZXM6Q319fX19XSksQX0oKTtmdW5jdGlvbiBRbihBLGcsSSxCLFEsQyl7dmFyIEUsaSx0LGU9W10sbz1udWxsPT1RP3ZvaWQgMDpRLmVudHJpZXMsbj1nLmVudHJpZXMscj1CLmVudHJpZXMsYT1JLmVudHJ5U2l6ZXMscz1udWxsPT1DP3ZvaWQgMDpDLmVudHJpZXM7cyYmKEU9e30scy5mb3JFYWNoKChmdW5jdGlvbihBKXtFW0EtMV09ITB9KSkpLG8mJihpPVtdLG8uZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsST1BLm9mZnNldCxCPTA7QjxnO0IrKylpLnB1c2goSSl9KSkpO3ZhciBjPS0xLGg9MCx5PTAsRD0wLGY9MCx1PTAsdz1uWzBdLnNhbXBsZXNQZXJDaHVuayxkPW5bMV0/blsxXS5maXJzdENodW5rLTE6MS8wO3JldHVybiBBLmVudHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPUEuY291bnQsQj1BLmRlbHRhLFE9MDtRPGc7USsrKXQ9e2R0czpoLGR1cmF0aW9uOkIsc2l6ZTphW3ldfHxJLnNhbXBsZVNpemUsb2Zmc2V0OnJbRF0rdSxpbmRleDp5fSxzJiYodC5rZXlmcmFtZT1FW3ldLHQua2V5ZnJhbWUmJmMrKyx0LmdvcElkPWMpLGkmJnk8aS5sZW5ndGgmJih0LnB0cz10LmR0cytpW3ldKSxlLnB1c2godCksaCs9QiwrK3k8dz91Kz10LnNpemU6KEQrKyx1PTAsRD49ZCYmKGYrKyxkPW5bZisxXT9uW2YrMV0uZmlyc3RDaHVuay0xOjEvMCksdys9bltmXS5zYW1wbGVzUGVyQ2h1bmspfSkpLGV9ZnVuY3Rpb24gQ24oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9am8oZyw2KSxBLndpZHRoPWpvKGcsMjQpLEEuaGVpZ2h0PWpvKGcsMjYpLEEuaG9yaXpyZXNvbHV0aW9uPVBvKGcsMjgpLEEudmVydHJlc29sdXRpb249UG8oZywzMiksQS5mcmFtZUNvdW50PWpvKGcsNDApLEEuZGVwdGg9am8oZyw3NCksNzh9ZnVuY3Rpb24gRW4oQSxnKXtyZXR1cm4gQS5kYXRhUmVmZXJlbmNlSW5kZXg9am8oZyw2KSxBLmNoYW5uZWxDb3VudD1qbyhnLDE2KSxBLnNhbXBsZVNpemU9am8oZywxOCksQS5zYW1wbGVSYXRlPVBvKGcsMjQpLzY1NTM2LDI4fWZ1bmN0aW9uIHRuKEEsZyxJKXtpZihBKXtpZihBLnNpemUhPT1BLmRhdGEubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYm94ICIuY29uY2F0KEEudHlwZSwiIHNpemUgIT09IGRhdGEubGVuZ3RoIikpO3ZhciBCPXtzdGFydDpBLnN0YXJ0LHNpemU6QS5zaXplLGhlYWRlclNpemU6QS5oZWFkZXJTaXplLHR5cGU6QS50eXBlfTtyZXR1cm4gZyYmKEIudmVyc2lvbj1BLmRhdGFbQS5oZWFkZXJTaXplXSxCLmZsYWdzPWZ1bmN0aW9uKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwxNikrKEFbZysxXTw8OCkrKEFbZysyXXx8MCl9KEEuZGF0YSxBLmhlYWRlclNpemUrMSksQi5oZWFkZXJTaXplKz00KSxJKEIsQS5kYXRhLnN1YmFycmF5KEIuaGVhZGVyU2l6ZSksQi5zdGFydCtCLmhlYWRlclNpemUpLEJ9fXZhciBlbj1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxnPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoZyksQj0wO0I8ZztCKyspSVtCXT1hcmd1bWVudHNbQl07cmV0dXJuIEkuZm9yRWFjaCgoZnVuY3Rpb24oZyl7QS5wdXNoKGZ1bmN0aW9uKEEsZyxJKXtmb3IodmFyIEI9U3RyaW5nKEkpLFE9Zz4+MCxDPU1hdGguY2VpbChRL0IubGVuZ3RoKSxFPVtdLGk9U3RyaW5nKEEpO0MtLTspRS5wdXNoKEIpO3JldHVybiBFLmpvaW4oIiIpLnN1YnN0cmluZygwLFEtaS5sZW5ndGgpK2l9KE51bWJlcihnKS50b1N0cmluZygxNiksMiwwKSl9KSksQVswXX0sb249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtobyh0aGlzLEEpLHRoaXMudmlkZW9UcmFjaz1nfHxuZXcgSm8sdGhpcy5hdWRpb1RyYWNrPUl8fG5ldyBMbyx0aGlzLm1ldGFkYXRhVHJhY2s9Qnx8bmV3IG1vfXJldHVybiBEbyhBLFt7a2V5OiJkZW11eCIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST10aGlzLnZpZGVvVHJhY2ssQj10aGlzLmF1ZGlvVHJhY2ssUT1JLmV4aXN0KCksQz1CLmV4aXN0KCk7aWYoSS5zYW1wbGVzPVtdLEIuc2FtcGxlcz1bXSxnKXtpZighQyl7dmFyIEU9Qm4uZmluZEJveChnLFsibW9vdiJdKVswXTtpZighRSl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCBtb292IGJveCIpO0JuLm1vb3ZUb1RyYWNrKEJuLm1vb3YoRSksbnVsbCxCKX12YXIgaT1Cbi5maW5kQm94KGcsWyJtb29mIl0pWzBdO2lmKGkpe3ZhciB0PUJuLm1vb2ZUb1NhbXBsZXMoQm4ubW9vZihpKSxudWxsLEIpW0IuaWRdLGU9Qi5iYXNlTWVkaWFEZWNvZGVUaW1lO2lmKHQpe3ZhciBvPWkuc3RhcnQ7dC5tYXAoKGZ1bmN0aW9uKEEpe0Eub2Zmc2V0Kz1vO3ZhciBJPWcuc3ViYXJyYXkoQS5vZmZzZXQsQS5vZmZzZXQrQS5zaXplKTtCLnNhbXBsZXMucHVzaChuZXcgS28oQS5kdHMrZSxJLEEuZHVyYXRpb24pKX0pKX19fWlmKEEpe2lmKCFRJiYhQyl7dmFyIG49Qm4uZmluZEJveChBLFsibW9vdiJdKVswXTtpZighbil0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBmb3VuZCBtb292IGJveCIpO0JuLm1vb3ZUb1RyYWNrKEJuLm1vb3YobiksSSxCKX12YXIgcj1Cbi5maW5kQm94KEEsWyJtb29mIl0pWzBdO2lmKHIpe3ZhciBhLHM9Qm4ubW9vZlRvU2FtcGxlcyhCbi5tb29mKHIpLEksQiksYz1JLmJhc2VNZWRpYURlY29kZVRpbWUsaD1CLmJhc2VNZWRpYURlY29kZVRpbWUseT1yLnN0YXJ0O09iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKGcpe0kuaWQ9PWc/c1tnXS5tYXAoKGZ1bmN0aW9uKGcpe2cub2Zmc2V0Kz15O3ZhciBCPW5ldyB2bygoIm51bWJlciI9PXR5cGVvZiBnLnB0cz9nLnB0czpnLmR0cykrYyxnLmR0cytjKTtCLmR1cmF0aW9uPWcuZHVyYXRpb24sQi5nb3BJZD1nLmdvcElkLGcua2V5ZnJhbWUmJkIuc2V0VG9LZXlmcmFtZSgpO3ZhciBRPUEuc3ViYXJyYXkoZy5vZmZzZXQsZy5vZmZzZXQrZy5zaXplKTtCLmRhdGE9UTtmb3IodmFyIEM9MCxFPVEubGVuZ3RoLTE7QzxFOylhPVBvKFEsQyksQys9NCxCLnVuaXRzLnB1c2goUS5zdWJhcnJheShDLEMrYSkpLEMrPWE7SS5zYW1wbGVzLnB1c2goQil9KSk6Qi5pZD09ZyYmc1tnXS5tYXAoKGZ1bmN0aW9uKGcpe2cub2Zmc2V0Kz15O3ZhciBJPUEuc3ViYXJyYXkoZy5vZmZzZXQsZy5vZmZzZXQrZy5zaXplKTtCLnNhbXBsZXMucHVzaChuZXcgS28oZy5kdHMraCxJLGcuZHVyYXRpb24pKX0pKX0pKX19cmV0dXJue3ZpZGVvVHJhY2s6SSxhdWRpb1RyYWNrOkIsbWV0YWRhdGFUcmFjazp0aGlzLm1ldGFkYXRhVHJhY2t9fX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52aWRlb1RyYWNrLnJlc2V0KCksdGhpcy5hdWRpb1RyYWNrLnJlc2V0KCksdGhpcy5tZXRhZGF0YVRyYWNrLnJlc2V0KCl9fV0sW3trZXk6InByb2JlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQm4ucHJvYmUoQSl9fV0pLEF9KCk7dmFyIG5uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe2hvKHRoaXMsQSksdGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkoMCl9cmV0dXJuIERvKEEsW3trZXk6IndyaXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQT10aGlzLGc9YXJndW1lbnRzLmxlbmd0aCxJPW5ldyBBcnJheShnKSxCPTA7QjxnO0IrKylJW0JdPWFyZ3VtZW50c1tCXTtJLmZvckVhY2goKGZ1bmN0aW9uKGcpe2c/QS5idWZmZXI9ZnVuY3Rpb24oQSl7Zm9yKHZhciBnPTAsST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEk+MT9JLTE6MCksUT0xO1E8STtRKyspQltRLTFdPWFyZ3VtZW50c1tRXTtCLmZvckVhY2goKGZ1bmN0aW9uKEEpe2crPUEubGVuZ3RofSkpO3ZhciBDPW5ldyBBKGcpLEU9MDtyZXR1cm4gQi5mb3JFYWNoKChmdW5jdGlvbihBKXtDLnNldChBLEUpLEUrPUEubGVuZ3RofSkpLEN9KFVpbnQ4QXJyYXksQS5idWZmZXIsZyk6d2luZG93LmNvbnNvbGUud2FybihnKX0pKX19XSxbe2tleToid3JpdGVVaW50MTYiLHZhbHVlOmZ1bmN0aW9uKEEpe3JldHVybiBuZXcgVWludDhBcnJheShbQT4+OCYyNTUsMjU1JkFdKX19LHtrZXk6IndyaXRlVWludDMyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW0E+PjI0LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0pfX1dKSxBfSgpLHJuPU1hdGgucG93KDIsMzIpLTEsYW49ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7aG8odGhpcyxBKX1yZXR1cm4gRG8oQSxudWxsLFt7a2V5OiJib3giLHZhbHVlOmZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KGc+MT9nLTE6MCksQj0xO0I8ZztCKyspSVtCLTFdPWFyZ3VtZW50c1tCXTt2YXIgUT04KyhJPUkuZmlsdGVyKEJvb2xlYW4pKS5yZWR1Y2UoKGZ1bmN0aW9uKEEsZyl7cmV0dXJuIEErZy5ieXRlTGVuZ3RofSksMCksQz1uZXcgVWludDhBcnJheShRKTtDWzBdPVE+PjI0JjI1NSxDWzFdPVE+PjE2JjI1NSxDWzJdPVE+PjgmMjU1LENbM109MjU1JlEsQy5zZXQoQSw0KTt2YXIgRT04O3JldHVybiBJLmZvckVhY2goKGZ1bmN0aW9uKEEpe0Muc2V0KEEsRSksRSs9QS5ieXRlTGVuZ3RofSkpLEN9fSx7a2V5OiJGdWxsQm94Iix2YWx1ZTpmdW5jdGlvbihnLEksQil7Zm9yKHZhciBRPWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoUT4zP1EtMzowKSxFPTM7RTxRO0UrKylDW0UtM109YXJndW1lbnRzW0VdO3JldHVybiBBLmJveC5hcHBseShBLFtnLG5ldyBVaW50OEFycmF5KFtJLEI+PjE2JjI1NSxCPj44JjI1NSwyNTUmQl0pXS5jb25jYXQoQykpfX0se2tleToiZnR5cCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZmluZCgoZnVuY3Rpb24oQSl7cmV0dXJuIEEudHlwZT09PVJvJiZBLmNvZGVjVHlwZT09PU5vfSkpP0EuRlRZUEhFVjE6QS5GVFlQQVZDMX19LHtrZXk6ImluaXRTZWdtZW50Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gV28oQS5mdHlwKGcpLEEubW9vdihnKSl9fSx7a2V5OiJwc3NoIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbMSwwLDAsMF0uY29uY2F0KFsxNiwxMTksMjM5LDIzNiwxOTIsMTc4LDc3LDIsMTcyLDIyNyw2MCwzMCw4MiwyMjYsMjUxLDc1XSxbMCwwLDAsMV0sJG8oZy5raWQpLFswLDAsMCwwXSkpO3JldHVybiBBLmJveChBLnR5cGVzLnBzc2gsSSl9fSx7a2V5OiJtb292Iix2YWx1ZTpmdW5jdGlvbihnKXtpZihnWzBdLnVzZUVNRSYmKGdbMF0uZW5jdnx8Z1swXS5lbmNhKSl7Z1swXS5wc3NofHwoZ1swXS5wc3NoPXtraWQ6Z1swXS5raWR9KTt2YXIgST10aGlzLnBzc2goZ1swXS5wc3NoKTtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb292LEEubXZoZChnWzBdLm12aGREdXJ0aW9ufHxnWzBdLmR1cmF0aW9uLGdbMF0ubXZoZFRpbWVjYWxlfHxnWzBdLnRpbWVzY2FsZSksQS5tdmV4KGcpXS5jb25jYXQod28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWsoZyl9KSkpLFtJXSkpfXJldHVybiBBLmJveC5hcHBseShBLFtBLnR5cGVzLm1vb3YsQS5tdmhkKGdbMF0ubXZoZER1cnRpb258fGdbMF0uZHVyYXRpb24sZ1swXS5tdmhkVGltZWNhbGV8fGdbMF0udGltZXNjYWxlKV0uY29uY2F0KHdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmFrKGcpfSkpKSxbQS5tdmV4KGcpXSkpfX0se2tleToibXZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tdmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwxLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNjQsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjU1LDI1NSwyNTUsMjU1XSkpfX0se2tleToidHJhayIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLnRraGREdXJhdGlvbnx8MCxnLndpZHRoLGcuaGVpZ2h0KSxBLm1kaWEoZykpfX0se2tleToidGtoZCIsdmFsdWU6ZnVuY3Rpb24oZyxJKXt2YXIgQj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCxRPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTowO3JldHVybiBBLmJveChBLnR5cGVzLnRraGQsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDcsMCwwLDAsMCwwLDAsMCwwLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDY0LDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMCxRPj44JjI1NSwyNTUmUSwwLDBdKSl9fSx7a2V5OiJlZHRzIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5lZHRzLEEuZWxzdChnKSl9fSx7a2V5OiJlbHN0Iix2YWx1ZTpmdW5jdGlvbihnKXtnLmVudHJpZXM7dmFyIEk9Zy5lbnRyaWVzRGF0YSxCPWcudmVyc2lvbjtyZXR1cm4gQS5GdWxsQm94KEEudHlwZXMuZWxzdCxCLDAsSSl9fSx7a2V5OiJtZGlhIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmYoZykpfX0se2tleToibWRoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjllNDtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLGc+PjI0JjI1NSxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsODUsMTk2LDAsMF0pKX19LHtrZXk6ImhkbHIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLmhkbHIsQS5IRExSX1RZUEVTW2ddKX19LHtrZXk6Im1pbmYiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1pbmYsZy50eXBlPT09Um8/QS5WTUhEOkEuU01IRCxBLkRJTkYsQS5zdGJsKGcpKX19LHtrZXk6InN0YmwiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPVtdO3JldHVybiBnJiZnLmV4dCYmZy5leHQuc3RzcyYmSS5wdXNoKEEuc3RzcyhnLmV4dC5zdHNzLmVudHJpZXMpKSxBLmJveChBLnR5cGVzLnN0YmwsQS5zdHNkKGcpLEEuU1RUUyxJWzBdLEEuU1RTQyxBLlNUU1osQS5TVENPKX19LHtrZXk6InN0c2QiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJO3JldHVybiBJPSJhdWRpbyI9PT1nLnR5cGU/Zy51c2VFTUUmJmcuZW5jYT9BLmVuY2EoZyk6QS5tcDRhKGcpOmcudXNlRU1FJiZnLmVuY3Y/QS5lbmN2KGcpOkEuYXZjMWhldjF2dmMxKGcpLEEuYm94KEEudHlwZXMuc3RzZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxXSksSSl9fSx7a2V5OiJlbmNhIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmVuY2EuY2hhbm5lbENvdW50LEI9Zy5lbmNhLnNhbXBsZVJhdGUsUT1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLEksMCwxNiwwLDAsMCwwLEI+PjgmMjU1LDI1NSZCLDAsMF0pLEM9QS5lc2RzKGcuY29uZmlnKSxFPUEuc2luZihnLmVuY2EpO3JldHVybiBBLmJveChBLnR5cGVzLmVuY2EsUSxDLEUpfX0se2tleToiZW5jdiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEksQixRPWcuc3BzLmxlbmd0aD4wP2cuc3BzWzBdOltdLEM9Zy5wcHMubGVuZ3RoPjA/Zy5wcHNbMF06W10sRT1nLndpZHRoLGk9Zy5oZWlnaHQsdD1nLnNhclJhdGlvWzBdLGU9Zy5zYXJSYXRpb1sxXSxvPW5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCxFPj44JjI1NSwyNTUmRSxpPj44JjI1NSwyNTUmaSwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwxOCwxMDAsOTcsMTA1LDEwOCwxMjEsMTA5LDExMSwxMTYsMTA1LDExMSwxMTAsNDcsMTA0LDEwOCwxMTUsNDYsMTA2LDExNSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMjQsMTcsMTddKSxuPW5ldyBVaW50OEFycmF5KChJPShCPVsxLFFbMV0sUVsyXSxRWzNdLDI1NSwyMjUsUS5sZW5ndGg+Pj44JjI1NSwyNTUmUS5sZW5ndGhdKS5jb25jYXQuYXBwbHkoQix3byhRKSkuY29uY2F0KFsxLEMubGVuZ3RoPj4+OCYyNTUsMjU1JkMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLHdvKEMpKSkscj1uZXcgVWludDhBcnJheShbMCwwLDg4LDU3LDAsMTUsMjAwLDE5MiwwLDQsODYsNzJdKSxhPUEuc2luZihnLmVuY3YpLHM9bmV3IFVpbnQ4QXJyYXkoW3Q+PjI0LHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCxlPj4yNCxlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmVdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5lbmN2LG8sQS5ib3goQS50eXBlcy5hdmNDLG4pLEEuYm94KEEudHlwZXMuYnRydCxyKSxhLEEuYm94KEEudHlwZXMucGFzcCxzKSl9fSx7a2V5OiJzY2hpIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1uZXcgVWludDhBcnJheShbXSksQj1BLnRlbmMoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2NoaSxJLEIpfX0se2tleToidGVuYyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDI1NSZnLmRlZmF1bHRfSXNFbmNyeXB0ZWQsMjU1JmcuZGVmYXVsdF9JVl9zaXplXS5jb25jYXQoJG8oZy5kZWZhdWx0X0tJRCkpKTtyZXR1cm4gQS5ib3goQS50eXBlcy50ZW5jLEkpfX0se2tleToic2luZiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IFVpbnQ4QXJyYXkoW10pLEI9bmV3IFVpbnQ4QXJyYXkoW2cuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgwKSxnLmRhdGFfZm9ybWF0LmNoYXJDb2RlQXQoMSksZy5kYXRhX2Zvcm1hdC5jaGFyQ29kZUF0KDIpLGcuZGF0YV9mb3JtYXQuY2hhckNvZGVBdCgzKV0pLFE9bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsOTksMTAxLDExMCw5OSwwLDEsMCwwXSksQz1BLnNjaGkoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2luZixJLEEuYm94KEEudHlwZXMuZnJtYSxCKSxBLmJveChBLnR5cGVzLnNjaG0sUSksQyl9fSx7a2V5OiJhdmMxaGV2MXZ2YzEiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEI7Zy5jb2RlY1R5cGU9PT1Obz8oST1BLmh2Y0MoZyksQj1BLnR5cGVzLmh2YzEpOmcuY29kZWNUeXBlPT09TW8/KEk9QS52dmNDKGcpLEI9QS50eXBlcy5idmMyKTooST1BLmF2Y0MoZyksQj1BLnR5cGVzLmF2YzEpO3ZhciBRPVtuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsZy53aWR0aD4+OCYyNTUsMjU1Jmcud2lkdGgsZy5oZWlnaHQ+PjgmMjU1LDI1NSZnLmhlaWdodCwwLDcyLDAsMCwwLDcyLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyNCwxNywxN10pLEldO3JldHVybiBnLmNvZGVjVHlwZT09PU5vP1EucHVzaChBLmJveChBLnR5cGVzLmZpZWwsbmV3IFVpbnQ4QXJyYXkoWzEsMF0pKSk6Zy5zYXJSYXRpbyYmZy5zYXJSYXRpby5sZW5ndGg+MSYmUS5wdXNoKEEucGFzcChnLnNhclJhdGlvKSksQS5ib3guYXBwbHkoQSxbQl0uY29uY2F0KFEpKX19LHtrZXk6ImF2Y0MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJLEIsUSxDPVtdLEU9W107cmV0dXJuIGcuc3BzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEMucHVzaChRPj4+OCYyNTUpLEMucHVzaCgyNTUmUSksQy5wdXNoLmFwcGx5KEMsd28oQSkpfSkpLGcucHBzLmZvckVhY2goKGZ1bmN0aW9uKEEpe1E9QS5ieXRlTGVuZ3RoLEUucHVzaChRPj4+OCYyNTUpLEUucHVzaCgyNTUmUSksRS5wdXNoLmFwcGx5KEUsd28oQSkpfSkpLEEuYm94KEEudHlwZXMuYXZjQyxuZXcgVWludDhBcnJheSgoST0oQj1bMSxDWzNdLENbNF0sQ1s1XSwyNTUsMjI0fGcuc3BzLmxlbmd0aF0pLmNvbmNhdC5hcHBseShCLEMpLmNvbmNhdChbZy5wcHMubGVuZ3RoXSkpLmNvbmNhdC5hcHBseShJLEUpKSl9fSx7a2V5OiJ2dmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnZ2Y0M7cmV0dXJuIEEuYm94KEEudHlwZXMuYnYyQyxuZXcgVWludDhBcnJheShJKSl9fSx7a2V5OiJodmNDIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmh2Y0M7aWYoSSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxJIGluc3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gSTt2YXIgQixRPWcudnBzLEM9Zy5zcHMsRT1nLnBwcztpZihJKXt2YXIgaT1JLmdlbmVyYWxQcm9maWxlQ29tcGF0aWJpbGl0eUZsYWdzLHQ9SS5nZW5lcmFsQ29uc3RyYWludEluZGljYXRvckZsYWdzLGU9KFEubGVuZ3RoJiYxKSsoQy5sZW5ndGgmJjEpKyhFLmxlbmd0aCYmMSk7Qj1bMSxJLmdlbmVyYWxQcm9maWxlU3BhY2U8PDZ8SS5nZW5lcmFsVGllckZsYWc8PDV8SS5nZW5lcmFsUHJvZmlsZUlkYyxpPj4+MjQsaT4+PjE2LGk+Pj44LGksdFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sSS5nZW5lcmFsTGV2ZWxJZGMsMjQwLDAsMjUyLDI1MnxJLmNocm9tYUZvcm1hdElkYywyNDh8SS5iaXREZXB0aEx1bWFNaW51czgsMjQ4fEkuYml0RGVwdGhDaHJvbWFNaW51czgsMCwwLEkubnVtVGVtcG9yYWxMYXllcnM8PDN8SS50ZW1wb3JhbElkTmVzdGVkPDwyfDMsZV07dmFyIG89ZnVuY3Rpb24oQSl7dmFyIGc7Qi5wdXNoKEEubGVuZ3RoPj44LEEubGVuZ3RoKSwoZz1CKS5wdXNoLmFwcGx5KGcsd28oQSkpfTtRLmxlbmd0aCYmKEIucHVzaCgxNjAsMCxRLmxlbmd0aCksUS5mb3JFYWNoKG8pKSxDLmxlbmd0aCYmKEIucHVzaCgxNjEsMCxDLmxlbmd0aCksQy5mb3JFYWNoKG8pKSxFLmxlbmd0aCYmKEIucHVzaCgxNjIsMCxFLmxlbmd0aCksRS5mb3JFYWNoKG8pKX1lbHNlIEI9WzEsMSw5NiwwLDAsMCwxNDQsMCwwLDAsMCwwLDkzLDI0MCwwLDI1MiwyNTMsMjQ4LDI0OCwwLDAsMTUsMywxNjAsMCwxLDAsMjQsNjQsMSwxMiwxLDI1NSwyNTUsMSw5NiwwLDAsMywwLDE0NCwwLDAsMywwLDAsMywwLDkzLDE1MywxNTIsOSwxNjEsMCwxLDAsNDUsNjYsMSwxLDEsOTYsMCwwLDMsMCwxNDQsMCwwLDMsMCwwLDMsMCw5MywxNjAsMiwxMjgsMTI4LDQ1LDIyLDg5LDE1MywxNjQsMTQ3LDQzLDE1NCwxMjgsMTI4LDEyOCwxMzAsMCwwLDMsMCwyLDAsMCwzLDAsNTAsMTYsMTYyLDAsMSwwLDcsNjgsMSwxOTMsMTE0LDE4MCw5OCw2NF07cmV0dXJuIEEuYm94KEEudHlwZXMuaHZjQyxuZXcgVWludDhBcnJheShCKSl9fSx7a2V5OiJwYXNwIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST11byhnLDIpLEI9SVswXSxRPUlbMV07cmV0dXJuIEEuYm94KEEudHlwZXMucGFzcCxuZXcgVWludDhBcnJheShbQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6Im1wNGEiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1wNGEsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCxnLmNoYW5uZWxDb3VudCwwLDE2LDAsMCwwLDAsZy5zYW1wbGVSYXRlPj44JjI1NSwyNTUmZy5zYW1wbGVSYXRlLDAsMF0pLGcuY29uZmlnLmxlbmd0aD9BLmVzZHMoZy5jb25maWcpOnZvaWQgMCl9fSx7a2V5OiJlc2RzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aDtyZXR1cm4gQS5ib3goQS50eXBlcy5lc2RzLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDMsMjMrSSwwLDAsMCw0LDE1K0ksNjQsMjEsMCw2LDAsMCwwLDIxOCwxOTIsMCwwLDIxOCwxOTIsNV0uY29uY2F0KFtJXSkuY29uY2F0KGcpLmNvbmNhdChbNiwxLDJdKSkpfX0se2tleToibXZleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubXZleF0uY29uY2F0KHdvKGcubWFwKChmdW5jdGlvbihnKXtyZXR1cm4gQS50cmV4KGcuaWQpfSkpKSkpfX0se2tleToidHJleCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJleCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmcsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMV0pKX19LHtrZXk6InRyZXgxIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy50cmV4LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZywwLDAsMCwxLDAsMCwyLDAsMCwwLDAsMCwwLDEsMCwwXSkpfX0se2tleToidHJleDIiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLnRyZXgsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnLDAsMCwwLDEsMCwwLDQsMCwwLDAsMCwwLDIsMCwwLDBdKSl9fSx7a2V5OiJtb29mIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3guYXBwbHkoQSxbQS50eXBlcy5tb29mLEEubWZoZChnWzBdLnNhbXBsZXM/Z1swXS5zYW1wbGVzWzBdLmdvcElkOjApXS5jb25jYXQod28oZy5tYXAoKGZ1bmN0aW9uKGcpe3JldHVybiBBLnRyYWYoZyl9KSkpKSl9fSx7a2V5OiJtZmhkIix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZmhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLGc+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pKX19LHtrZXk6InRyYWYiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPUEudGZoZChnLmlkKSxCPUEudGZkdChnLGcuYmFzZU1lZGlhRGVjb2RlVGltZSksUT0wO2lmKGcuaXNWaWRlbyYmZy52aWRlb1NlbmMmJmcudmlkZW9TZW5jLmZvckVhY2goKGZ1bmN0aW9uKEEpe1ErPTgsQS5zdWJzYW1wbGVzJiZBLnN1YnNhbXBsZXMubGVuZ3RoJiYoUSs9MixRKz02KkEuc3Vic2FtcGxlcy5sZW5ndGgpfSkpLGcudmlkZW9TZW5jTGVuZ3RoPVEsZy51c2VFTUUmJihnLmlzVmlkZW9FbmNyeXB0aW9ufHxnLmlzQXVkaW9FbmNyeXB0aW9uKSl7aWYoZy5pc1ZpZGVvRW5jcnlwdGlvbil7aWYoZy5pc1ZpZGVvKXt2YXIgQz1BLnNhaXooZyksRT1BLnNhaW8oZyksaT1BLnRydW4xKGcpLHQ9QS5zZW5jKGcpO3JldHVybiBBLmJveChBLnR5cGVzLnRyYWYsSSxCLEMsRSxpLHQpfWlmKGcuaXNBdWRpb0VuY3J5cHRpb24pe3ZhciBlPUEuc2JncCgpLG89QS5zYWl6KGcpLG49QS5zYWlvKGcpLHI9QS5zZW5jKGcpLGE9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixlLG8sbixyLGEpfXZhciBzPUEuc2JncCgpLGM9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixzLGMpfWlmKGcuaXNWaWRlbyl7dmFyIGg9QS50cnVuMShnKTtyZXR1cm4gQS5ib3goQS50eXBlcy50cmFmLEksQixoKX12YXIgeT1BLnNiZ3AoKSxEPUEuc2FpeihnKSxmPUEuc2FpbyhnKSx1PUEuc2VuYyhnKSx3PUEudHJ1bjEoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIseSxELGYsdSx3KX12YXIgZD1BLnNkdHAoZyk7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhZixJLEIsZCxBLnRydW4oZy5zYW1wbGVzLGQuYnl0ZUxlbmd0aCs3NikpfX0se2tleToic2R0cCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IG5uO3JldHVybiBnLnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SS53cml0ZShuZXcgVWludDhBcnJheShnLmlzVmlkZW8/W0Eua2V5ZnJhbWU/MzI6MTZdOlsxNl0pKX0pKSxBLmJveChBLnR5cGVzLnNkdHAsdGhpcy5leHRlbnNpb24oMCwwKSxJLmJ1ZmZlcil9fSx7a2V5OiJ0cnVuMSIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9bmV3IG5uLEI9bm4ud3JpdGVVaW50MzIoZy5zYW1wbGVzLmxlbmd0aCksUT1udWxsO2lmKGcuaXNWaWRlbyl7dmFyIEM9Zy52aWRlb1NlbmNMZW5ndGg7UT1ubi53cml0ZVVpbnQzMigxNipnLnNhbXBsZXMubGVuZ3RoK0MrMTQ5KSwhZy5pc1ZpZGVvRW5jcnlwdGlvbiYmZy5pc0F1ZGlvRW5jcnlwdGlvbiYmKFE9bm4ud3JpdGVVaW50MzIoMTYqZy5zYW1wbGVzLmxlbmd0aCs5MikpfWVsc2V7dmFyIEU9MTIqZy5zYW1wbGVzLmxlbmd0aCsxMjQ7Zy5pc0F1ZGlvRW5jcnlwdGlvbiYmKEU9MTIqZy5zYW1wbGVzLmxlbmd0aCs4KmcuYXVkaW9TZW5jLmxlbmd0aCsxNzcpLFE9bm4ud3JpdGVVaW50MzIoRSl9cmV0dXJuIGcuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXtJLndyaXRlKG5uLndyaXRlVWludDMyKEEuZHVyYXRpb24pKSxJLndyaXRlKG5uLndyaXRlVWludDMyKEEuc2l6ZSkpLEkud3JpdGUobm4ud3JpdGVVaW50MzIoQS5rZXlmcmFtZT8zMzU1NDQzMjo2NTUzNikpLGcuaXNWaWRlbyYmSS53cml0ZShubi53cml0ZVVpbnQzMihBLmN0cz9BLmN0czowKSl9KSksQS5ib3goQS50eXBlcy50cnVuLHRoaXMuZXh0ZW5zaW9uKDAsZy5mbGFncyksQixRLEkuYnVmZmVyKX19LHtrZXk6InNlbmMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPW5ldyBubixCPWcuc2FtcGxlcy5sZW5ndGgsUT1nLmlzVmlkZW8/MTY6OCxDPWcuaXNWaWRlbz8yOjAsRT1bXSxpPTA7cmV0dXJuIGcuaXNWaWRlbz8oRT1nLnZpZGVvU2VuYyxpPWcudmlkZW9TZW5jTGVuZ3RoKTpFPWcuYXVkaW9TZW5jLGk9aXx8USpCLEkud3JpdGUobm4ud3JpdGVVaW50MzIoMTYraSksQS50eXBlcy5zZW5jLHRoaXMuZXh0ZW5zaW9uKDAsQykpLEkud3JpdGUobm4ud3JpdGVVaW50MzIoQikpLEUuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Zm9yKHZhciBnPTA7ZzxBLkluaXRpYWxpemF0aW9uVmVjdG9yLmxlbmd0aDtnKyspSS53cml0ZShuZXcgVWludDhBcnJheShbQS5Jbml0aWFsaXphdGlvblZlY3RvcltnXV0pKTtBLnN1YnNhbXBsZXMmJkEuc3Vic2FtcGxlcy5sZW5ndGgmJihJLndyaXRlKG5uLndyaXRlVWludDE2KEEuc3Vic2FtcGxlcy5sZW5ndGgpKSxBLnN1YnNhbXBsZXMuZm9yRWFjaCgoZnVuY3Rpb24oQSl7SS53cml0ZShubi53cml0ZVVpbnQxNihBLkJ5dGVzT2ZDbGVhckRhdGEpKSxJLndyaXRlKG5uLndyaXRlVWludDMyKEEuQnl0ZXNPZlByb3RlY3RlZERhdGEpKX0pKSl9KSksSS5idWZmZXJ9fSx7a2V5OiJzYWlvIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST0xMipnLnNhbXBsZXMubGVuZ3RoKzE0MTshZy5pc1ZpZGVvJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoST0xNDkpO3ZhciBCPW5ldyBVaW50OEFycmF5KFsxLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2FpbyxCKX19LHtrZXk6InNhaXoiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcuc2FtcGxlcy5sZW5ndGgsQj1uZXcgVWludDhBcnJheShbMCwwLDAsMCwxNixJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2FpeixCKX19LHtrZXk6InNiZ3AiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc9bmV3IFVpbnQ4QXJyYXkoWzExNCwxMTEsMTA4LDEwOCwwLDAsMCwxLDAsMCwxLDI1LDAsMCwwLDFdKTtyZXR1cm4gQS5ib3goQS50eXBlcy5zYmdwLHRoaXMuZXh0ZW5zaW9uKDAsMCksZyl9fSx7a2V5OiJleHRlbnNpb24iLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIG5ldyBVaW50OEFycmF5KFtBLGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZ10pfX0se2tleToidGZoZCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudGZoZCxuZXcgVWludDhBcnJheShbMCwwLDAsMCxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddKSl9fSx7a2V5OiJ0ZmR0Iix2YWx1ZTpmdW5jdGlvbihnLEkpe3ZhciBCPU1hdGguZmxvb3IoSS8ocm4rMSkpLFE9TWF0aC5mbG9vcihJJShybisxKSk7cmV0dXJuIGcudXNlRU1FJiYoZy5pc1ZpZGVvRW5jcnlwdGlvbnx8Zy5pc0F1ZGlvRW5jcnlwdGlvbik/QS5ib3goQS50eXBlcy50ZmR0LG5ldyBVaW50OEFycmF5KFswLDAsMCwwLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKTpBLmJveChBLnR5cGVzLnRmZHQsbmV3IFVpbnQ4QXJyYXkoWzEsMCwwLDAsQj4+MjQsQj4+MTYmMjU1LEI+PjgmMjU1LDI1NSZCLFE+PjI0LFE+PjE2JjI1NSxRPj44JjI1NSwyNTUmUV0pKX19LHtrZXk6InRydW4iLHZhbHVlOmZ1bmN0aW9uKGcsSSl7dmFyIEI9Zy5sZW5ndGgsUT0xMisxNipCO0krPTgrUTt2YXIgQz1uZXcgVWludDhBcnJheShRKTtDLnNldChbMCwwLDE1LDEsQj4+PjI0JjI1NSxCPj4+MTYmMjU1LEI+Pj44JjI1NSwyNTUmQixJPj4+MjQmMjU1LEk+Pj4xNiYyNTUsST4+PjgmMjU1LDI1NSZJXSwwKTtmb3IodmFyIEU9MDtFPEI7RSsrKXt2YXIgaT1nW0VdLHQ9aS5kdXJhdGlvbixlPWkuc2l6ZSxvPWkuZmxhZyxuPXZvaWQgMD09PW8/e306byxyPWkuY3RzLGE9dm9pZCAwPT09cj8wOnI7Qy5zZXQoW3Q+Pj4yNCYyNTUsdD4+PjE2JjI1NSx0Pj4+OCYyNTUsMjU1JnQsZT4+PjI0JjI1NSxlPj4+MTYmMjU1LGU+Pj44JjI1NSwyNTUmZSxuLmlzTGVhZGluZzw8MnwobnVsbD09PW4uZGVwZW5kc09ufHx2b2lkIDA9PT1uLmRlcGVuZHNPbj8xOm4uZGVwZW5kc09uKSxuLmlzRGVwZW5kZWRPbjw8NnxuLmhhc1JlZHVuZGFuY3k8PDR8bi5wYWRkaW5nVmFsdWU8PDF8KG51bGw9PT1uLmlzTm9uU3luY1NhbXBsZXx8dm9pZCAwPT09bi5pc05vblN5bmNTYW1wbGU/MTpuLmlzTm9uU3luY1NhbXBsZSksNjE0NDAmbi5kZWdyYWRhdGlvblByaW9yaXR5LDE1Jm4uZGVncmFkYXRpb25Qcmlvcml0eSxhPj4+MjQmMjU1LGE+Pj4xNiYyNTUsYT4+PjgmMjU1LDI1NSZhXSwxMisxNipFKX1yZXR1cm4gQS5ib3goQS50eXBlcy50cnVuLEMpfX0se2tleToibW9vdk1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94LmFwcGx5KEEsW0EudHlwZXMubW9vdixBLm12aGQoZ1swXS5kdXJhdGlvbixnWzBdLnRpbWVzY2FsZSldLmNvbmNhdCh3byhnLm1hcCgoZnVuY3Rpb24oZyl7cmV0dXJuIEEudHJhY2tNUDQoZyl9KSkpKSl9fSx7a2V5OiJ0cmFja01QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMudHJhayxBLnRraGQoZy5pZCxnLmR1cmF0aW9uLGcud2lkdGgsZy5oZWlnaHQpLEEubWRpYU1QNChnKSl9fSx7a2V5OiJtZGlhTVA0Iix2YWx1ZTpmdW5jdGlvbihnKXtyZXR1cm4gQS5ib3goQS50eXBlcy5tZGlhLEEubWRoZChnLmR1cmF0aW9uLGcudGltZXNjYWxlKSxBLmhkbHIoZy50eXBlKSxBLm1pbmZNUDQoZykpfX0se2tleToibWluZk1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7cmV0dXJuIEEuYm94KEEudHlwZXMubWluZixnLnR5cGU9PT1Sbz9BLlZNSEQ6QS5TTUhELEEuRElORixBLnN0YmxNUDQoZykpfX0se2tleToic3RibE1QNCIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5leHQsQj1bQS5zdHNkKGcpLEEuc3R0cyhJLnN0dHMpLEEuc3RzYyhJLnN0c2MpLEEuc3RzeihJLnN0c3opLEEuc3RjbyhJLnN0Y28pXTtyZXR1cm4gSS5zdHNzLmxlbmd0aCYmQi5wdXNoKEEuc3RzcyhJLnN0c3MpKSxJLmN0dHMubGVuZ3RoJiZCLnB1c2goQS5jdHRzKEkuY3R0cykpLEEuYm94LmFwcGx5KEEsW0EudHlwZXMuc3RibF0uY29uY2F0KEIpKX19LHtrZXk6InN0dHMiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoOCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7dmFyIGc9QS52YWx1ZSxJPUEuY291bnQ7Qi5zZXQoW0k+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSSxnPj4yNCxnPj4xNiYyNTUsZz4+OCYyNTUsMjU1JmddLFEpLFErPTh9KSksQS5ib3goQS50eXBlcy5zdHRzLFdvKG5ldyBVaW50OEFycmF5KFswLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0c2MiLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoMTIqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuZmlyc3RDaHVuayxJPUEuc2FtcGxlc1BlckNodW5rLEM9QS5zYW1wbGVEZXNjSW5kZXg7Qi5zZXQoW2c+PjI0LGc+PjE2JjI1NSxnPj44JjI1NSwyNTUmZyxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksQz4+MjQsQz4+MTYmMjU1LEM+PjgmMjU1LDI1NSZDXSxRKSxRKz0xMn0pKSxBLmJveChBLnR5cGVzLnN0c2MsV28obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzeiIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RzeixXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLEk+PjI0LEk+PjE2JjI1NSxJPj44JjI1NSwyNTUmSV0pLEIpKX19LHtrZXk6InN0Y28iLHZhbHVlOmZ1bmN0aW9uKGcpe3ZhciBJPWcubGVuZ3RoLEI9bmV3IFVpbnQ4QXJyYXkoNCpJKSxRPTA7cmV0dXJuIGcuZm9yRWFjaCgoZnVuY3Rpb24oQSl7Qi5zZXQoW0E+PjI0LEE+PjE2JjI1NSxBPj44JjI1NSwyNTUmQV0sUSksUSs9NH0pKSxBLmJveChBLnR5cGVzLnN0Y28sV28obmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsST4+MjQsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJXSksQikpfX0se2tleToic3RzcyIsdmFsdWU6ZnVuY3Rpb24oZyl7dmFyIEk9Zy5sZW5ndGgsQj1uZXcgVWludDhBcnJheSg0KkkpLFE9MDtyZXR1cm4gZy5mb3JFYWNoKChmdW5jdGlvbihBKXtCLnNldChbQT4+MjQsQT4+MTYmMjU1LEE+PjgmMjU1LDI1NSZBXSxRKSxRKz00fSkpLEEuYm94KEEudHlwZXMuc3RzcyxXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJjdHRzIix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLmxlbmd0aCxCPW5ldyBVaW50OEFycmF5KDgqSSksUT0wO3JldHVybiBnLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEudmFsdWUsST1BLmNvdW50O0Iuc2V0KFtJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkksZz4+MjQsZz4+MTYmMjU1LGc+PjgmMjU1LDI1NSZnXSxRKSxRKz04fSkpLEEuYm94KEEudHlwZXMuY3R0cyxXbyhuZXcgVWludDhBcnJheShbMCwwLDAsMCxJPj4yNCxJPj4xNiYyNTUsST4+OCYyNTUsMjU1JkldKSxCKSl9fSx7a2V5OiJzdHlwIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBBLmJveChBLnR5cGVzLnN0eXAsbmV3IFVpbnQ4QXJyYXkoWzEwOSwxMTUsMTAwLDEwNCwwLDAsMCwwLDEwOSwxMTUsMTAwLDEwNCwxMDksMTE1LDEwNSwxMjBdKSl9fSx7a2V5OiJzaWR4Iix2YWx1ZTpmdW5jdGlvbihnKXt2YXIgST1nLnRpbWVzY2FsZSxCPWcuc2FtcGxlc1swXS5kdXJhdGlvbixRPUIqZy5zYW1wbGVzLmxlbmd0aCxDPWcuc2FtcGxlc1swXS5zYW1wbGVPZmZzZXQqQixFPTg7Zy5zYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe0UrPUEuc2l6ZX0pKTt2YXIgaT0wO2lmKGcuaXNWaWRlbyl7dmFyIHQsZT0wO2cudmlkZW9TZW5jJiYodD1nLnZpZGVvU2VuYyksZy5pc1ZpZGVvJiZ0LmZvckVhY2goKGZ1bmN0aW9uKEEpe2UrPTgsQS5zdWJzYW1wbGVzJiZBLnN1YnNhbXBsZXMubGVuZ3RoJiYoZSs9MixlKz02KkEuc3Vic2FtcGxlcy5sZW5ndGgpfSkpLGcudmlkZW9TZW5jTGVuZ3RoPWUsaT1FKzE0MSsxNipnLnNhbXBsZXMubGVuZ3RoK2UsZy51c2VFTUUmJmcuaXNBdWRpb0VuY3J5cHRpb24mJiFnLmlzVmlkZW9FbmNyeXB0aW9uJiYoaT1FKzE2Kmcuc2FtcGxlcy5sZW5ndGgrODQpfWVsc2UgaT1FKzExNisxMipnLnNhbXBsZXMubGVuZ3RoLGcudXNlRU1FJiZnLmlzQXVkaW9FbmNyeXB0aW9uJiYoaT1FKzE2OSsxMipnLnNhbXBsZXMubGVuZ3RoKzgqZy5hdWRpb1NlbmMubGVuZ3RoKTt2YXIgbz1uZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwyNTUmZy5pZCxJPj4yNCYyNTUsST4+MTYmMjU1LEk+PjgmMjU1LDI1NSZJLEM+PjI0JjI1NSxDPj4xNiYyNTUsQz4+OCYyNTUsMjU1JkMsMCwwLDAsMCwwLDAsMCwxLDAsaT4+MTYmMjU1LGk+PjgmMjU1LDI1NSZpLFE+PjI0JjI1NSxRPj4xNiYyNTUsUT4+OCYyNTUsMjU1JlEsMTQ0LDAsMCwwXSk7cmV0dXJuIEEuYm94KEEudHlwZXMuc2lkeCxvKX19LHtrZXk6Im1kYXQiLHZhbHVlOmZ1bmN0aW9uKGcpe3JldHVybiBBLmJveChBLnR5cGVzLm1kYXQsZyl9fV0pLEF9KCk7Zm8oYW4sInR5cGVzIixbImF2YzEiLCJhdmNDIiwiaHZjMSIsImh2Y0MiLCJkaW5mIiwiZHJlZiIsImVkdHMiLCJlbHN0IiwiZXNkcyIsImZ0eXAiLCJoZGxyIiwibWRhdCIsIm1kaGQiLCJtZGlhIiwibWZoZCIsIm1pbmYiLCJtb29mIiwibW9vdiIsIm1wNGEiLCJtdmV4IiwibXZoZCIsInBhc3AiLCJzdGJsIiwic3RjbyIsInN0c2MiLCJzdHNkIiwic3RzeiIsInN0dHMiLCJ0ZmR0IiwidGZoZCIsInRyYWYiLCJ0cmFrIiwidHJleCIsInRraGQiLCJ2bWhkIiwic21oZCIsImN0dHMiLCJzdHNzIiwic3R5cCIsInBzc2giLCJzaWR4Iiwic2JncCIsInNhaXoiLCJzYWlvIiwic2VuYyIsInRydW4iLCJlbmN2IiwiZW5jYSIsInNpbmYiLCJidHJ0IiwiZnJtYSIsInRlbmMiLCJzY2htIiwic2NoaSIsIm1laGQiLCJmaWVsIiwic2R0cCIsImJ2YzIiLCJidjJDIl0ucmVkdWNlKChmdW5jdGlvbihBLGcpe3JldHVybiBBW2ddPVtnLmNoYXJDb2RlQXQoMCksZy5jaGFyQ29kZUF0KDEpLGcuY2hhckNvZGVBdCgyKSxnLmNoYXJDb2RlQXQoMyldLEF9KSxPYmplY3QuY3JlYXRlKG51bGwpKSksZm8oYW4sIkhETFJfVFlQRVMiLHt2aWRlbzpuZXcgVWludDhBcnJheShbMCwwLDAsMCwwLDAsMCwwLDExOCwxMDUsMTAwLDEwMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCw4NiwxMDUsMTAwLDEwMSwxMTEsNzIsOTcsMTEwLDEwMCwxMDgsMTAxLDExNCwwXSksYXVkaW86bmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwxMTUsMTExLDExNywxMTAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODMsMTExLDExNywxMTAsMTAwLDcyLDk3LDExMCwxMDAsMTA4LDEwMSwxMTQsMF0pfSksZm8oYW4sIkZUWVBBVkMxIixhbi5ib3goYW4udHlwZXMuZnR5cCxuZXcgVWludDhBcnJheShbMTA1LDExNSwxMTEsMTA5LDAsMCwwLDEsMTA1LDExNSwxMTEsMTA5LDk3LDExOCw5OSw0OV0pKSksZm8oYW4sIkZUWVBIRVYxIixhbi5ib3goYW4udHlwZXMuZnR5cCxuZXcgVWludDhBcnJheShbMTA1LDExNSwxMTEsMTA5LDAsMCwwLDEsMTA1LDExNSwxMTEsMTA5LDEwNCwxMDEsMTE4LDQ5XSkpKSxmbyhhbiwiRElORiIsYW4uYm94KGFuLnR5cGVzLmRpbmYsYW4uYm94KGFuLnR5cGVzLmRyZWYsbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxMiwxMTcsMTE0LDEwOCwzMiwwLDAsMCwxXSkpKSksZm8oYW4sIlZNSEQiLGFuLmJveChhbi50eXBlcy52bWhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwxLDAsMCwwLDAsMCwwLDAsMF0pKSksZm8oYW4sIlNNSEQiLGFuLmJveChhbi50eXBlcy5zbWhkLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDBdKSkpLGZvKGFuLCJTdGJsVGFibGUiLG5ldyBVaW50OEFycmF5KFswLDAsMCwwLDAsMCwwLDBdKSksZm8oYW4sIlNUVFMiLGFuLmJveChhbi50eXBlcy5zdHRzLGFuLlN0YmxUYWJsZSkpLGZvKGFuLCJTVFNDIixhbi5ib3goYW4udHlwZXMuc3RzYyxhbi5TdGJsVGFibGUpKSxmbyhhbiwiU1RTWiIsYW4uYm94KGFuLnR5cGVzLnN0c3osbmV3IFVpbnQ4QXJyYXkoWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSkpKSxmbyhhbiwiU1RDTyIsYW4uYm94KGFuLnR5cGVzLnN0Y28sYW4uU3RibFRhYmxlKSk7dmFyIHNuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQShnLEkpe2hvKHRoaXMsQSksdGhpcy5uYW1lPWd8fCIiLHRoaXMuX3ByZWZpeD0iWyIuY29uY2F0KHRoaXMubmFtZSwiXSIpLEEuZGlzYWJsZWQ9SX1yZXR1cm4gRG8oQSxbe2tleToiZGVidWciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmRlYnVnLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJsb2ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmxvZy5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToid2FybiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztpZighQS5kaXNhYmxlZCl7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsQj1uZXcgQXJyYXkoSSksUT0wO1E8STtRKyspQltRXT1hcmd1bWVudHNbUV07KGc9Y29uc29sZSkud2Fybi5hcHBseShnLFt0aGlzLl9wcmVmaXhdLmNvbmNhdChCKSl9fX0se2tleToiZXJyb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGc7aWYoIUEuZGlzYWJsZWQpe2Zvcih2YXIgST1hcmd1bWVudHMubGVuZ3RoLEI9bmV3IEFycmF5KEkpLFE9MDtRPEk7USsrKUJbUV09YXJndW1lbnRzW1FdOyhnPWNvbnNvbGUpLmVycm9yLmFwcGx5KGcsW3RoaXMuX3ByZWZpeF0uY29uY2F0KEIpKX19fSx7a2V5OiJ0YWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZztBLmRpc2FibGVkfHwoY29uc29sZS5ncm91cCh0aGlzLl9wcmVmaXgpLChnPWNvbnNvbGUpLnRhYmxlLmFwcGx5KGcsYXJndW1lbnRzKSxjb25zb2xlLmdyb3VwRW5kKCkpfX1dLFt7a2V5OiJlbmFibGUiLHZhbHVlOmZ1bmN0aW9uKCl7QS5kaXNhYmxlZD0hMX19LHtrZXk6ImRpc2FibGUiLHZhbHVlOmZ1bmN0aW9uKCl7QS5kaXNhYmxlZD0hMH19XSksQX0oKTtmbyhzbiwiZGlzYWJsZWQiLCEwKTt2YXIgY249ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKGcsSSxCKXtobyh0aGlzLEEpLHRoaXMudmlkZW9UcmFjaz1nLHRoaXMuYXVkaW9UcmFjaz1JO3ZhciBRPS9DaHJvbWVcLyhbXi5dKykvLmV4ZWMobmF2aWdhdG9yLnVzZXJBZ2VudCk7dGhpcy5mb3JjZUZpcnN0SURSPVEmJk51bWJlcihRWzFdKTw1MCx0aGlzLmxvZz1uZXcgc24oIkZNUDRSZW11eGVyIiwhQnx8IUIub3BlbkxvZ3x8IUIub3BlbkxvZyl9cmV0dXJuIERvKEEsW3trZXk6InJlbXV4Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBLGcsSSxCLFEsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLEU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9LGk9dGhpcy52aWRlb1RyYWNrLHQ9dGhpcy5hdWRpb1RyYWNrLGU9aS5leGlzdCgpLG89dC5leGlzdCgpLG49W107cmV0dXJuIEMmJihFJiZFLmluaXRNZXJnZT8oZSYmbi5wdXNoKHRoaXMudmlkZW9UcmFjayksbyYmbi5wdXNoKHRoaXMuYXVkaW9UcmFjayksST1hbi5pbml0U2VnbWVudChuKSk6KGUmJihBPWFuLmluaXRTZWdtZW50KFt0aGlzLnZpZGVvVHJhY2tdKSksbyYmKGc9YW4uaW5pdFNlZ21lbnQoW3RoaXMuYXVkaW9UcmFja10pKSkpLGUmJmkuaGFzU2FtcGxlKCkmJihCPXRoaXMuX3JlbXV4VmlkZW8oKSksbyYmdC5oYXNTYW1wbGUoKSYmKFE9dGhpcy5fcmVtdXhBdWRpbygpKSxpLnNhbXBsZXM9W10sdC5zYW1wbGVzPVtdLHtpbml0U2VnbWVudDpJLHZpZGVvSW5pdFNlZ21lbnQ6QSxhdWRpb0luaXRTZWdtZW50OmcsdmlkZW9TZWdtZW50OkIsYXVkaW9TZWdtZW50OlF9fX0se2tleToiX3JlbXV4VmlkZW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy52aWRlb1RyYWNrO3RoaXMuZm9yY2VGaXJzdElEUiYmKEEuc2FtcGxlc1swXS5mbGFnPXtkZXBlbmRzT246Mixpc05vblN5bmNTYW1wbGU6MH0pO3ZhciBnPUEuc2FtcGxlcyxJPTA7Zy5mb3JFYWNoKChmdW5jdGlvbihBKXtJKz1BLnVuaXRzLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLmJ5dGVMZW5ndGh9KSwwKSxJKz00KkEudW5pdHMubGVuZ3RofSkpO2Zvcih2YXIgQixRPW5ldyBVaW50OEFycmF5KEkpLEM9bmV3IERhdGFWaWV3KFEuYnVmZmVyKSxFPWZ1bmN0aW9uKEEsSSl7ST1nW2ldO3ZhciBFPTA7SS51bml0cy5mb3JFYWNoKChmdW5jdGlvbihnKXtDLnNldFVpbnQzMihBLGcuYnl0ZUxlbmd0aCksQSs9NCxRLnNldChnLEEpLEErPWcuYnl0ZUxlbmd0aCxFKz00K2cuYnl0ZUxlbmd0aH0pKSxJLnNpemU9RSxlPUEsQj1JfSxpPTAsdD1nLmxlbmd0aCxlPTA7aTx0O2krKylFKGUsQik7dmFyIG89YW4ubWRhdChRKTtyZXR1cm4gV28oYW4ubW9vZihbQV0pLG8pfX0se2tleToiX3JlbXV4QXVkaW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5hdWRpb1RyYWNrLGc9bmV3IFVpbnQ4QXJyYXkoQS5zYW1wbGVzLnJlZHVjZSgoZnVuY3Rpb24oQSxnKXtyZXR1cm4gQStnLnNpemV9KSwwKSk7QS5zYW1wbGVzLnJlZHVjZSgoZnVuY3Rpb24oQSxJKXtyZXR1cm4gZy5zZXQoSS5kYXRhLEEpLEErSS5zaXplfSksMCk7dmFyIEk9YW4ubWRhdChnKTtyZXR1cm4gV28oYW4ubW9vZihbQV0pLEkpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52aWRlb1RyYWNrLnJlc2V0KCksdGhpcy5hdWRpb1RyYWNrLnJlc2V0KCl9fV0pLEF9KCk7ZnVuY3Rpb24gaG4oQSl7cmV0dXJuKGhuPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKEEpe3JldHVybiB0eXBlb2YgQX06ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJkEuY29uc3RydWN0b3I9PT1TeW1ib2wmJkEhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBBfSkoQSl9ZnVuY3Rpb24geW4oQSxnKXtpZighKEEgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBEbihBLGcpe2Zvcih2YXIgST0wO0k8Zy5sZW5ndGg7SSsrKXt2YXIgQj1nW0ldO0IuZW51bWVyYWJsZT1CLmVudW1lcmFibGV8fCExLEIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBCJiYoQi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsKFE9Qi5rZXksQz12b2lkIDAsInN5bWJvbCI9PXR5cGVvZihDPWZ1bmN0aW9uKEEsZyl7aWYoIm9iamVjdCIhPXR5cGVvZiBBfHxudWxsPT09QSlyZXR1cm4gQTt2YXIgST1BW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09SSl7dmFyIEI9SS5jYWxsKEEsZ3x8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9dHlwZW9mIEIpcmV0dXJuIEI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1nP1N0cmluZzpOdW1iZXIpKEEpfShRLCJzdHJpbmciKSk/QzpTdHJpbmcoQykpLEIpfXZhciBRLEN9ZnVuY3Rpb24gZm4oQSxnLEkpe3JldHVybiBnJiZEbihBLnByb3RvdHlwZSxnKSxJJiZEbihBLEkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLEF9ZnVuY3Rpb24gdW4oQSxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtBLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6QSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZG4oQSxnKX1mdW5jdGlvbiB3bihBKXtyZXR1cm4od249T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oQSl7cmV0dXJuIEEuX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQSl9KShBKX1mdW5jdGlvbiBkbihBLGcpe3JldHVybihkbj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihBLGcpe3JldHVybiBBLl9fcHJvdG9fXz1nLEF9KShBLGcpfWZ1bmN0aW9uIEZuKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKEEpe3JldHVybiExfX1mdW5jdGlvbiBsbihBLGcsSSl7cmV0dXJuKGxuPUZuKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKEEsZyxJKXt2YXIgQj1bbnVsbF07Qi5wdXNoLmFwcGx5KEIsZyk7dmFyIFE9bmV3KEZ1bmN0aW9uLmJpbmQuYXBwbHkoQSxCKSk7cmV0dXJuIEkmJmRuKFEsSS5wcm90b3R5cGUpLFF9KS5hcHBseShudWxsLGFyZ3VtZW50cyl9ZnVuY3Rpb24gR24oQSxnKXtpZihnJiYoIm9iamVjdCI9PXR5cGVvZiBnfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbihBKXtpZih2b2lkIDA9PT1BKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIEF9KEEpfWZ1bmN0aW9uIFJuKEEpe3ZhciBnPUZuKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEksQj13bihBKTtpZihnKXt2YXIgUT13bih0aGlzKS5jb25zdHJ1Y3RvcjtJPVJlZmxlY3QuY29uc3RydWN0KEIsYXJndW1lbnRzLFEpfWVsc2UgST1CLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gR24odGhpcyxJKX19ZnVuY3Rpb24gVW4oKXtyZXR1cm4gVW49InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPWZ1bmN0aW9uKEEsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEEsZykmJm51bGwhPT0oQT13bihBKSk7KTtyZXR1cm4gQX0oQSxnKTtpZihCKXt2YXIgUT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEIsZyk7cmV0dXJuIFEuZ2V0P1EuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP0E6SSk6US52YWx1ZX19LFVuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIga249cEUsU249IkFycmF5QnVmZmVyIixObj1YQ1tTbl07T0koe2dsb2JhbDohMCxmb3JjZWQ6cltTbl0hPT1Obn0se0FycmF5QnVmZmVyOk5ufSksa24oU24pLE1pKCJJbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIlVpbnQ4IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSwhMCksTWkoIkludDE2IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSksTWkoIlVpbnQxNiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJJbnQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJVaW50MzIiLChmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJLEIpe3JldHVybiBBKHRoaXMsZyxJLEIpfX0pKSxNaSgiRmxvYXQzMiIsKGZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbihnLEksQil7cmV0dXJuIEEodGhpcyxnLEksQil9fSkpLE1pKCJGbG9hdDY0IiwoZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSxCKXtyZXR1cm4gQSh0aGlzLGcsSSxCKX19KSk7dmFyIE1uPWwsWW49ZnVuY3Rpb24oKXt2YXIgQT1Nbih0aGlzKSxnPSIiO3JldHVybiBBLmdsb2JhbCYmKGcrPSJnIiksQS5pZ25vcmVDYXNlJiYoZys9ImkiKSxBLm11bHRpbGluZSYmKGcrPSJtIiksQS5kb3RBbGwmJihnKz0icyIpLEEudW5pY29kZSYmKGcrPSJ1IiksQS5zdGlja3kmJihnKz0ieSIpLGd9LEhuPWFJLHBuPWwsSm49ZyxMbj1Zbix2bj0idG9TdHJpbmciLEtuPVJlZ0V4cC5wcm90b3R5cGUsbW49S25bdm5dLHhuPUpuKChmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9bW4uY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKSxxbj1tbi5uYW1lIT12bjsoeG58fHFuKSYmSG4oUmVnRXhwLnByb3RvdHlwZSx2biwoZnVuY3Rpb24oKXt2YXIgQT1wbih0aGlzKSxnPVN0cmluZyhBLnNvdXJjZSksST1BLmZsYWdzO3JldHVybiIvIitnKyIvIitTdHJpbmcodm9pZCAwPT09SSYmQSBpbnN0YW5jZW9mIFJlZ0V4cCYmISgiZmxhZ3MiaW4gS24pP0xuLmNhbGwoQSk6SSl9KSx7dW5zYWZlOiEwfSk7dmFyIGJuPU9JLFRuPW8sT249W10uam9pbixXbj1FIT1PYmplY3QsWm49bHQoImpvaW4iLCIsIik7Ym4oe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpXbnx8IVpufSx7am9pbjpmdW5jdGlvbihBKXtyZXR1cm4gT24uY2FsbChUbih0aGlzKSx2b2lkIDA9PT1BPyIsIjpBKX19KTt2YXIgam49T0ksUG49ZyxYbj15RSxWbj1oLHpuPWosX249U0EsJG49JGUsQXI9d0UsZ3I9Qm8sSXI9b0EsQnI9RkEoImlzQ29uY2F0U3ByZWFkYWJsZSIpLFFyPTkwMDcxOTkyNTQ3NDA5OTEsQ3I9Ik1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIsRXI9SXI+PTUxfHwhUG4oKGZ1bmN0aW9uKCl7dmFyIEE9W107cmV0dXJuIEFbQnJdPSExLEEuY29uY2F0KClbMF0hPT1BfSkpLGlyPWdyKCJjb25jYXQiKSx0cj1mdW5jdGlvbihBKXtpZighVm4oQSkpcmV0dXJuITE7dmFyIGc9QVtCcl07cmV0dXJuIHZvaWQgMCE9PWc/ISFnOlhuKEEpfTtqbih7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFFcnx8IWlyfSx7Y29uY2F0OmZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRT16bih0aGlzKSxpPUFyKEUsMCksdD0wO2ZvcihnPS0xLEI9YXJndW1lbnRzLmxlbmd0aDtnPEI7ZysrKWlmKHRyKEM9LTE9PT1nP0U6YXJndW1lbnRzW2ddKSl7aWYodCsoUT1fbihDLmxlbmd0aCkpPlFyKXRocm93IFR5cGVFcnJvcihDcik7Zm9yKEk9MDtJPFE7SSsrLHQrKylJIGluIEMmJiRuKGksdCxDW0ldKX1lbHNle2lmKHQ+PVFyKXRocm93IFR5cGVFcnJvcihDcik7JG4oaSx0KyssQyl9cmV0dXJuIGkubGVuZ3RoPXQsaX19KTt2YXIgZXI9T0ksb3I9SEEsbnI9UkEscnI9U0EsYXI9aixzcj13RSxjcj0kZSxocj1Cbygic3BsaWNlIikseXI9TWF0aC5tYXgsRHI9TWF0aC5taW47ZXIoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDohaHJ9LHtzcGxpY2U6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFEsQyxFLGksdD1hcih0aGlzKSxlPXJyKHQubGVuZ3RoKSxvPW9yKEEsZSksbj1hcmd1bWVudHMubGVuZ3RoO2lmKDA9PT1uP0k9Qj0wOjE9PT1uPyhJPTAsQj1lLW8pOihJPW4tMixCPURyKHlyKG5yKGcpLDApLGUtbykpLGUrSS1CPjkwMDcxOTkyNTQ3NDA5OTEpdGhyb3cgVHlwZUVycm9yKCJNYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIGV4Y2VlZGVkIik7Zm9yKFE9c3IodCxCKSxDPTA7QzxCO0MrKykoRT1vK0MpaW4gdCYmY3IoUSxDLHRbRV0pO2lmKFEubGVuZ3RoPUIsSTxCKXtmb3IoQz1vO0M8ZS1CO0MrKylpPUMrSSwoRT1DK0IpaW4gdD90W2ldPXRbRV06ZGVsZXRlIHRbaV07Zm9yKEM9ZTtDPmUtQitJO0MtLSlkZWxldGUgdFtDLTFdfWVsc2UgaWYoST5CKWZvcihDPWUtQjtDPm87Qy0tKWk9QytJLTEsKEU9QytCLTEpaW4gdD90W2ldPXRbRV06ZGVsZXRlIHRbaV07Zm9yKEM9MDtDPEk7QysrKXRbQytvXT1hcmd1bWVudHNbQysyXTtyZXR1cm4gdC5sZW5ndGg9ZS1CK0ksUX19KTtmb3IodmFyIGZyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gQSgpe3luKHRoaXMsQSl9cmV0dXJuIGZuKEEsW3trZXk6Im1peEluIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih0aGlzLEEpfX0se2tleToiY2xvbmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE9bmV3IHRoaXMuY29uc3RydWN0b3I7cmV0dXJuIE9iamVjdC5hc3NpZ24oQSx0aGlzKSxBfX1dLFt7a2V5OiJjcmVhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBBPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoQSksST0wO0k8QTtJKyspZ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIGxuKHRoaXMsZyl9fV0pLEF9KCksdXI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7dmFyIEEsQj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sUT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NCpCLmxlbmd0aDt5bih0aGlzLEkpLEE9Zy5jYWxsKHRoaXMpO3ZhciBDPUI7aWYoQyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYoQz1uZXcgVWludDhBcnJheShDKSksKEMgaW5zdGFuY2VvZiBJbnQ4QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheXx8QyBpbnN0YW5jZW9mIEludDE2QXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MTZBcnJheXx8QyBpbnN0YW5jZW9mIEludDMyQXJyYXl8fEMgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8QyBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkmJihDPW5ldyBVaW50OEFycmF5KEMuYnVmZmVyLEMuYnl0ZU9mZnNldCxDLmJ5dGVMZW5ndGgpKSxDIGluc3RhbmNlb2YgVWludDhBcnJheSl7Zm9yKHZhciBFPUMuYnl0ZUxlbmd0aCxpPVtdLHQ9MDt0PEU7dCs9MSlpW3Q+Pj4yXXw9Q1t0XTw8MjQtdCU0Kjg7QS53b3Jkcz1pLEEuc2lnQnl0ZXM9RX1lbHNlIEEud29yZHM9QixBLnNpZ0J5dGVzPVE7cmV0dXJuIEF9cmV0dXJuIGZuKEksW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybihhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06d3IpLnN0cmluZ2lmeSh0aGlzKX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcy53b3JkcyxJPUEud29yZHMsQj10aGlzLnNpZ0J5dGVzLFE9QS5zaWdCeXRlcztpZih0aGlzLmNsYW1wKCksQiU0KWZvcih2YXIgQz0wO0M8UTtDKz0xKXt2YXIgRT1JW0M+Pj4yXT4+PjI0LUMlNCo4JjI1NTtnW0IrQz4+PjJdfD1FPDwyNC0oQitDKSU0Kjh9ZWxzZSBmb3IodmFyIGk9MDtpPFE7aSs9NClnW0IraT4+PjJdPUlbaT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1RLHRoaXN9fSx7a2V5OiJjbGFtcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLndvcmRzLGc9dGhpcy5zaWdCeXRlcztBW2c+Pj4yXSY9NDI5NDk2NzI5NTw8MzItZyU0KjgsQS5sZW5ndGg9TWF0aC5jZWlsKGcvNCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1Vbih3bihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLndvcmRzPXRoaXMud29yZHMuc2xpY2UoMCksQX19XSxbe2tleToicmFuZG9tIix2YWx1ZTpmdW5jdGlvbihBKXtmb3IodmFyIGcsQj1bXSxRPWZ1bmN0aW9uKEEpe3ZhciBnPUEsST05ODc2NTQzMjEsQj00Mjk0OTY3Mjk1O3JldHVybiBmdW5jdGlvbigpe3ZhciBBPSgoST0zNjk2OSooNjU1MzUmSSkrKEk+PjE2KSZCKTw8MTYpKyhnPTE4ZTMqKDY1NTM1JmcpKyhnPj4xNikmQikmQjtyZXR1cm4gQS89NDI5NDk2NzI5NiwoQSs9LjUpKihNYXRoLnJhbmRvbSgpPi41PzE6LTEpfX0sQz0wO0M8QTtDKz00KXt2YXIgRT1RKDQyOTQ5NjcyOTYqKGd8fE1hdGgucmFuZG9tKCkpKTtnPTk4NzY1NDA3MSpFKCksQi5wdXNoKDQyOTQ5NjcyOTYqRSgpfDApfXJldHVybiBuZXcgSShCLEEpfX1dKSxJfShmciksd3I9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS53b3JkcyxJPUEuc2lnQnl0ZXMsQj1bXSxRPTA7UTxJO1ErPTEpe3ZhciBDPWdbUT4+PjJdPj4+MjQtUSU0KjgmMjU1O0IucHVzaCgoQz4+PjQpLnRvU3RyaW5nKDE2KSksQi5wdXNoKCgxNSZDKS50b1N0cmluZygxNikpfXJldHVybiBCLmpvaW4oIiIpfSxwYXJzZTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5sZW5ndGgsST1bXSxCPTA7QjxnO0IrPTIpSVtCPj4+M118PXBhcnNlSW50KEEuc3Vic3RyKEIsMiksMTYpPDwyNC1CJTgqNDtyZXR1cm4gbmV3IHVyKEksZy8yKX19LGRyPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZz1BLmxlbmd0aCxJPVtdLEI9MDtCPGc7Qis9MSlJW0I+Pj4yXXw9KDI1NSZBLmNoYXJDb2RlQXQoQikpPDwyNC1CJTQqODtyZXR1cm4gbmV3IHVyKEksZyl9LEZyPWZ1bmN0aW9uKEEpe3JldHVybiBkcih1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoQSkpKX0sbHI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7dmFyIEE7cmV0dXJuIHluKHRoaXMsSSksKEE9Zy5jYWxsKHRoaXMpKS5fbWluQnVmZmVyU2l6ZT0wLEF9cmV0dXJuIGZuKEksW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IHVyLHRoaXMuX25EYXRhQnl0ZXM9MH19LHtrZXk6Il9hcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPUE7InN0cmluZyI9PXR5cGVvZiBnJiYoZz1GcihnKSksdGhpcy5fZGF0YS5jb25jYXQoZyksdGhpcy5fbkRhdGFCeXRlcys9Zy5zaWdCeXRlc319LHtrZXk6Il9wcm9jZXNzIix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPXRoaXMuX2RhdGEsQj10aGlzLmJsb2NrU2l6ZSxRPUkud29yZHMsQz1JLnNpZ0J5dGVzLEU9Qy8oNCpCKSxpPShFPUE/TWF0aC5jZWlsKEUpOk1hdGgubWF4KCgwfEUpLXRoaXMuX21pbkJ1ZmZlclNpemUsMCkpKkIsdD1NYXRoLm1pbig0KmksQyk7aWYoaSl7Zm9yKHZhciBlPTA7ZTxpO2UrPUIpdGhpcy5fZG9Qcm9jZXNzQmxvY2soUSxlKTtnPVEuc3BsaWNlKDAsaSksSS5zaWdCeXRlcy09dH1yZXR1cm4gbmV3IHVyKGcsdCl9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1Vbih3bihJLnByb3RvdHlwZSksImNsb25lIix0aGlzKS5jYWxsKHRoaXMpO3JldHVybiBBLl9kYXRhPXRoaXMuX2RhdGEuY2xvbmUoKSxBfX1dKSxJfShmciksR3I9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEpe3ZhciBCO3JldHVybiB5bih0aGlzLEkpLChCPWcuY2FsbCh0aGlzKSkuYmxvY2tTaXplPTE2LEIuY2ZnPU9iamVjdC5hc3NpZ24obmV3IGZyLEEpLEIucmVzZXQoKSxCfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXtVbih3bihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCksdGhpc319LHtrZXk6ImZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gQSYmdGhpcy5fYXBwZW5kKEEpLHRoaXMuX2RvRmluYWxpemUoKX19XSxbe2tleToiX2NyZWF0ZUhlbHBlciIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7cmV0dXJuIG5ldyBBKEkpLmZpbmFsaXplKGcpfX19LHtrZXk6Il9jcmVhdGVIbWFjSGVscGVyIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyxJKXtyZXR1cm4gbmV3IFJyKEEsSSkuZmluYWxpemUoZyl9fX1dKSxJfShsciksUnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEsQil7dmFyIFE7eW4odGhpcyxJKSxRPWcuY2FsbCh0aGlzKTt2YXIgQz1uZXcgQTtRLl9oYXNoZXI9Qzt2YXIgRT1COyJzdHJpbmciPT10eXBlb2YgRSYmKEU9RnIoRSkpO3ZhciBpPUMuYmxvY2tTaXplLHQ9NCppO0Uuc2lnQnl0ZXM+dCYmKEU9Qy5maW5hbGl6ZShCKSksRS5jbGFtcCgpO3ZhciBlPUUuY2xvbmUoKTtRLl9vS2V5PWU7dmFyIG89RS5jbG9uZSgpO1EuX2lLZXk9bztmb3IodmFyIG49ZS53b3JkcyxyPW8ud29yZHMsYT0wO2E8aTthKz0xKW5bYV1ePTE1NDk1NTY4MjgsclthXV49OTA5NTIyNDg2O3JldHVybiBlLnNpZ0J5dGVzPXQsby5zaWdCeXRlcz10LFEucmVzZXQoKSxRfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9oYXNoZXI7QS5yZXNldCgpLEEudXBkYXRlKHRoaXMuX2lLZXkpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5faGFzaGVyLnVwZGF0ZShBKSx0aGlzfX0se2tleToiZmluYWxpemUiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMuX2hhc2hlcixJPWcuZmluYWxpemUoQSk7cmV0dXJuIGcucmVzZXQoKSxnLmZpbmFsaXplKHRoaXMuX29LZXkuY2xvbmUoKS5jb25jYXQoSSkpfX1dKSxJfShmciksVXI9e3N0cmluZ2lmeTpmdW5jdGlvbihBKXt2YXIgZz1BLndvcmRzLEk9QS5zaWdCeXRlcyxCPXRoaXMuX21hcDtBLmNsYW1wKCk7Zm9yKHZhciBRPVtdLEM9MDtDPEk7Qys9Mylmb3IodmFyIEU9KGdbQz4+PjJdPj4+MjQtQyU0KjgmMjU1KTw8MTZ8KGdbQysxPj4+Ml0+Pj4yNC0oQysxKSU0KjgmMjU1KTw8OHxnW0MrMj4+PjJdPj4+MjQtKEMrMiklNCo4JjI1NSxpPTA7aTw0JiZDKy43NSppPEk7aSs9MSlRLnB1c2goQi5jaGFyQXQoRT4+PjYqKDMtaSkmNjMpKTt2YXIgdD1CLmNoYXJBdCg2NCk7aWYodClmb3IoO1EubGVuZ3RoJTQ7KVEucHVzaCh0KTtyZXR1cm4gUS5qb2luKCIiKX0scGFyc2U6ZnVuY3Rpb24oQSl7dmFyIGc9QS5sZW5ndGgsST10aGlzLl9tYXAsQj10aGlzLl9yZXZlcnNlTWFwO2lmKCFCKXt0aGlzLl9yZXZlcnNlTWFwPVtdLEI9dGhpcy5fcmV2ZXJzZU1hcDtmb3IodmFyIFE9MDtRPEkubGVuZ3RoO1ErPTEpQltJLmNoYXJDb2RlQXQoUSldPVF9dmFyIEM9SS5jaGFyQXQoNjQpO2lmKEMpe3ZhciBFPUEuaW5kZXhPZihDKTstMSE9PUUmJihnPUUpfXJldHVybiBmdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPVtdLFE9MCxDPTA7QzxnO0MrPTEpaWYoQyU0KXt2YXIgRT1JW0EuY2hhckNvZGVBdChDLTEpXTw8QyU0KjJ8SVtBLmNoYXJDb2RlQXQoQyldPj4+Ni1DJTQqMjtCW1E+Pj4yXXw9RTw8MjQtUSU0KjgsUSs9MX1yZXR1cm4gdXIuY3JlYXRlKEIsUSl9KEEsZyxCKX0sX21hcDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0ifSxrcj1bXSxTcj0wO1NyPDY0O1NyKz0xKWtyW1NyXT00Mjk0OTY3Mjk2Kk1hdGguYWJzKE1hdGguc2luKFNyKzEpKXwwO3ZhciBOcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnJkl8fmcmQikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxNcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnJkJ8SSZ+QikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxZcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhnXkleQikrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxIcj1mdW5jdGlvbihBLGcsSSxCLFEsQyxFKXt2YXIgaT1BKyhJXihnfH5CKSkrUStFO3JldHVybihpPDxDfGk+Pj4zMi1DKStnfSxwcj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFzaD1uZXcgdXIoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfX0se2tleToiX2RvUHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe2Zvcih2YXIgST1BLEI9MDtCPDE2O0IrPTEpe3ZhciBRPWcrQixDPUFbUV07SVtRXT0xNjcxMTkzNSYoQzw8OHxDPj4+MjQpfDQyNzgyNTUzNjAmKEM8PDI0fEM+Pj44KX12YXIgRT10aGlzLl9oYXNoLndvcmRzLGk9SVtnKzBdLHQ9SVtnKzFdLGU9SVtnKzJdLG89SVtnKzNdLG49SVtnKzRdLHI9SVtnKzVdLGE9SVtnKzZdLHM9SVtnKzddLGM9SVtnKzhdLGg9SVtnKzldLHk9SVtnKzEwXSxEPUlbZysxMV0sZj1JW2crMTJdLHU9SVtnKzEzXSx3PUlbZysxNF0sZD1JW2crMTVdLEY9RVswXSxsPUVbMV0sRz1FWzJdLFI9RVszXTtGPU5yKEYsbCxHLFIsaSw3LGtyWzBdKSxSPU5yKFIsRixsLEcsdCwxMixrclsxXSksRz1OcihHLFIsRixsLGUsMTcsa3JbMl0pLGw9TnIobCxHLFIsRixvLDIyLGtyWzNdKSxGPU5yKEYsbCxHLFIsbiw3LGtyWzRdKSxSPU5yKFIsRixsLEcsciwxMixrcls1XSksRz1OcihHLFIsRixsLGEsMTcsa3JbNl0pLGw9TnIobCxHLFIsRixzLDIyLGtyWzddKSxGPU5yKEYsbCxHLFIsYyw3LGtyWzhdKSxSPU5yKFIsRixsLEcsaCwxMixrcls5XSksRz1OcihHLFIsRixsLHksMTcsa3JbMTBdKSxsPU5yKGwsRyxSLEYsRCwyMixrclsxMV0pLEY9TnIoRixsLEcsUixmLDcsa3JbMTJdKSxSPU5yKFIsRixsLEcsdSwxMixrclsxM10pLEc9TnIoRyxSLEYsbCx3LDE3LGtyWzE0XSksbD1OcihsLEcsUixGLGQsMjIsa3JbMTVdKSxGPU1yKEYsbCxHLFIsdCw1LGtyWzE2XSksUj1NcihSLEYsbCxHLGEsOSxrclsxN10pLEc9TXIoRyxSLEYsbCxELDE0LGtyWzE4XSksbD1NcihsLEcsUixGLGksMjAsa3JbMTldKSxGPU1yKEYsbCxHLFIsciw1LGtyWzIwXSksUj1NcihSLEYsbCxHLHksOSxrclsyMV0pLEc9TXIoRyxSLEYsbCxkLDE0LGtyWzIyXSksbD1NcihsLEcsUixGLG4sMjAsa3JbMjNdKSxGPU1yKEYsbCxHLFIsaCw1LGtyWzI0XSksUj1NcihSLEYsbCxHLHcsOSxrclsyNV0pLEc9TXIoRyxSLEYsbCxvLDE0LGtyWzI2XSksbD1NcihsLEcsUixGLGMsMjAsa3JbMjddKSxGPU1yKEYsbCxHLFIsdSw1LGtyWzI4XSksUj1NcihSLEYsbCxHLGUsOSxrclsyOV0pLEc9TXIoRyxSLEYsbCxzLDE0LGtyWzMwXSksbD1NcihsLEcsUixGLGYsMjAsa3JbMzFdKSxGPVlyKEYsbCxHLFIsciw0LGtyWzMyXSksUj1ZcihSLEYsbCxHLGMsMTEsa3JbMzNdKSxHPVlyKEcsUixGLGwsRCwxNixrclszNF0pLGw9WXIobCxHLFIsRix3LDIzLGtyWzM1XSksRj1ZcihGLGwsRyxSLHQsNCxrclszNl0pLFI9WXIoUixGLGwsRyxuLDExLGtyWzM3XSksRz1ZcihHLFIsRixsLHMsMTYsa3JbMzhdKSxsPVlyKGwsRyxSLEYseSwyMyxrclszOV0pLEY9WXIoRixsLEcsUix1LDQsa3JbNDBdKSxSPVlyKFIsRixsLEcsaSwxMSxrcls0MV0pLEc9WXIoRyxSLEYsbCxvLDE2LGtyWzQyXSksbD1ZcihsLEcsUixGLGEsMjMsa3JbNDNdKSxGPVlyKEYsbCxHLFIsaCw0LGtyWzQ0XSksUj1ZcihSLEYsbCxHLGYsMTEsa3JbNDVdKSxHPVlyKEcsUixGLGwsZCwxNixrcls0Nl0pLGw9WXIobCxHLFIsRixlLDIzLGtyWzQ3XSksRj1IcihGLGwsRyxSLGksNixrcls0OF0pLFI9SHIoUixGLGwsRyxzLDEwLGtyWzQ5XSksRz1IcihHLFIsRixsLHcsMTUsa3JbNTBdKSxsPUhyKGwsRyxSLEYsciwyMSxrcls1MV0pLEY9SHIoRixsLEcsUixmLDYsa3JbNTJdKSxSPUhyKFIsRixsLEcsbywxMCxrcls1M10pLEc9SHIoRyxSLEYsbCx5LDE1LGtyWzU0XSksbD1IcihsLEcsUixGLHQsMjEsa3JbNTVdKSxGPUhyKEYsbCxHLFIsYyw2LGtyWzU2XSksUj1IcihSLEYsbCxHLGQsMTAsa3JbNTddKSxHPUhyKEcsUixGLGwsYSwxNSxrcls1OF0pLGw9SHIobCxHLFIsRix1LDIxLGtyWzU5XSksRj1IcihGLGwsRyxSLG4sNixrcls2MF0pLFI9SHIoUixGLGwsRyxELDEwLGtyWzYxXSksRz1IcihHLFIsRixsLGUsMTUsa3JbNjJdKSxsPUhyKGwsRyxSLEYsaCwyMSxrcls2M10pLEVbMF09RVswXStGfDAsRVsxXT1FWzFdK2x8MCxFWzJdPUVbMl0rR3wwLEVbM109RVszXStSfDB9fSx7a2V5OiJfZG9GaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl9kYXRhLGc9QS53b3JkcyxJPTgqdGhpcy5fbkRhdGFCeXRlcyxCPTgqQS5zaWdCeXRlcztnW0I+Pj41XXw9MTI4PDwyNC1CJTMyO3ZhciBRPU1hdGguZmxvb3IoSS80Mjk0OTY3Mjk2KSxDPUk7Z1sxNSsoQis2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoUTw8OHxRPj4+MjQpfDQyNzgyNTUzNjAmKFE8PDI0fFE+Pj44KSxnWzE0KyhCKzY0Pj4+OTw8NCldPTE2NzExOTM1JihDPDw4fEM+Pj4yNCl8NDI3ODI1NTM2MCYoQzw8MjR8Qz4+PjgpLEEuc2lnQnl0ZXM9NCooZy5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgRT10aGlzLl9oYXNoLGk9RS53b3Jkcyx0PTA7dDw0O3QrPTEpe3ZhciBlPWlbdF07aVt0XT0xNjcxMTkzNSYoZTw8OHxlPj4+MjQpfDQyNzgyNTUzNjAmKGU8PDI0fGU+Pj44KX1yZXR1cm4gRX19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBPVVuKHduKEkucHJvdG90eXBlKSwiY2xvbmUiLHRoaXMpLmNhbGwodGhpcyk7cmV0dXJuIEEuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLEF9fV0pLEl9KEdyKTtHci5fY3JlYXRlSGVscGVyKHByKSxHci5fY3JlYXRlSG1hY0hlbHBlcihwcik7dmFyIEpyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBKXt2YXIgQjtyZXR1cm4geW4odGhpcyxJKSwoQj1nLmNhbGwodGhpcykpLmNmZz1PYmplY3QuYXNzaWduKG5ldyBmcix7a2V5U2l6ZTo0LGhhc2hlcjpwcixpdGVyYXRpb25zOjF9LEEpLEJ9cmV0dXJuIGZuKEksW3trZXk6ImNvbXB1dGUiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7Zm9yKHZhciBJLEI9dGhpcy5jZmcsUT1CLmhhc2hlci5jcmVhdGUoKSxDPXVyLmNyZWF0ZSgpLEU9Qy53b3JkcyxpPUIua2V5U2l6ZSx0PUIuaXRlcmF0aW9ucztFLmxlbmd0aDxpOyl7SSYmUS51cGRhdGUoSSksST1RLnVwZGF0ZShBKS5maW5hbGl6ZShnKSxRLnJlc2V0KCk7Zm9yKHZhciBlPTE7ZTx0O2UrPTEpST1RLmZpbmFsaXplKEkpLFEucmVzZXQoKTtDLmNvbmNhdChJKX1yZXR1cm4gQy5zaWdCeXRlcz00KmksQ319XSksSX0oZnIpLExyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBLEIsUSl7dmFyIEM7cmV0dXJuIHluKHRoaXMsSSksKEM9Zy5jYWxsKHRoaXMpKS5jZmc9T2JqZWN0LmFzc2lnbihuZXcgZnIsUSksQy5feGZvcm1Nb2RlPUEsQy5fa2V5PUIsQy5yZXNldCgpLEN9cmV0dXJuIGZuKEksW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe1VuKHduKEkucHJvdG90eXBlKSwicmVzZXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5fZG9SZXNldCgpfX0se2tleToicHJvY2VzcyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2FwcGVuZChBKSx0aGlzLl9wcm9jZXNzKCl9fSx7a2V5OiJmaW5hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuIEEmJnRoaXMuX2FwcGVuZChBKSx0aGlzLl9kb0ZpbmFsaXplKCl9fV0sW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsQSxnKX19LHtrZXk6ImNyZWF0ZURlY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fREVDX1hGT1JNX01PREUsQSxnKX19LHtrZXk6Il9jcmVhdGVIZWxwZXIiLHZhbHVlOmZ1bmN0aW9uKEEpe3ZhciBnPWZ1bmN0aW9uKEEpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9acjpPcn07cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmVuY3J5cHQoQSxJLEIsUSl9LGRlY3J5cHQ6ZnVuY3Rpb24oSSxCLFEpe3JldHVybiBnKEIpLmRlY3J5cHQoQSxJLEIsUSl9fX19XSksSX0obHIpO0xyLl9FTkNfWEZPUk1fTU9ERT0xLExyLl9ERUNfWEZPUk1fTU9ERT0yLExyLmtleVNpemU9NCxMci5pdlNpemU9NDt2YXIgdnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKEEsQil7dmFyIFE7cmV0dXJuIHluKHRoaXMsSSksKFE9Zy5jYWxsKHRoaXMpKS5fY2lwaGVyPUEsUS5faXY9QixRfXJldHVybiBmbihJLG51bGwsW3trZXk6ImNyZWF0ZUVuY3J5cHRvciIsdmFsdWU6ZnVuY3Rpb24oQSxnKXtyZXR1cm4gdGhpcy5FbmNyeXB0b3IuY3JlYXRlKEEsZyl9fSx7a2V5OiJjcmVhdGVEZWNyeXB0b3IiLHZhbHVlOmZ1bmN0aW9uKEEsZyl7cmV0dXJuIHRoaXMuRGVjcnlwdG9yLmNyZWF0ZShBLGcpfX1dKSxJfShmcik7ZnVuY3Rpb24gS3IoQSxnLEkpe3ZhciBCLFE9QSxDPXRoaXMuX2l2O0M/KEI9Qyx0aGlzLl9pdj12b2lkIDApOkI9dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgRT0wO0U8STtFKz0xKVFbZytFXV49QltFXX12YXIgbXI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEkpfSh2cik7bXIuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9dGhpcy5fY2lwaGVyLEI9SS5ibG9ja1NpemU7S3IuY2FsbCh0aGlzLEEsZyxCKSxJLmVuY3J5cHRCbG9jayhBLGcpLHRoaXMuX3ByZXZCbG9jaz1BLnNsaWNlKGcsZytCKX19XSksSX0obXIpLG1yLkRlY3J5cHRvcj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToicHJvY2Vzc0Jsb2NrIix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXMuX2NpcGhlcixCPUkuYmxvY2tTaXplLFE9QS5zbGljZShnLGcrQik7SS5kZWNyeXB0QmxvY2soQSxnKSxLci5jYWxsKHRoaXMsQSxnLEIpLHRoaXMuX3ByZXZCbG9jaz1RfX1dKSxJfShtcik7dmFyIHhyPXtwYWQ6ZnVuY3Rpb24oQSxnKXtmb3IodmFyIEk9NCpnLEI9SS1BLnNpZ0J5dGVzJUksUT1CPDwyNHxCPDwxNnxCPDw4fEIsQz1bXSxFPTA7RTxCO0UrPTQpQy5wdXNoKFEpO3ZhciBpPXVyLmNyZWF0ZShDLEIpO0EuY29uY2F0KGkpfSx1bnBhZDpmdW5jdGlvbihBKXt2YXIgZz1BLEk9MjU1Jmcud29yZHNbZy5zaWdCeXRlcy0xPj4+Ml07Zy5zaWdCeXRlcy09SX19LHFyPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSShBLEIsUSl7dmFyIEM7cmV0dXJuIHluKHRoaXMsSSksKEM9Zy5jYWxsKHRoaXMsQSxCLE9iamVjdC5hc3NpZ24oe21vZGU6bXIscGFkZGluZzp4cn0sUSkpKS5ibG9ja1NpemU9NCxDfXJldHVybiBmbihJLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQTtVbih3bihJLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpO3ZhciBnPXRoaXMuY2ZnLEI9Zy5pdixRPWcubW9kZTt0aGlzLl94Zm9ybU1vZGU9PT10aGlzLmNvbnN0cnVjdG9yLl9FTkNfWEZPUk1fTU9ERT9BPVEuY3JlYXRlRW5jcnlwdG9yOihBPVEuY3JlYXRlRGVjcnlwdG9yLHRoaXMuX21pbkJ1ZmZlclNpemU9MSksdGhpcy5fbW9kZT1BLmNhbGwoUSx0aGlzLEImJkIud29yZHMpLHRoaXMuX21vZGUuX19jcmVhdG9yPUF9fSx7a2V5OiJfZG9Qcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dGhpcy5fbW9kZS5wcm9jZXNzQmxvY2soQSxnKX19LHtrZXk6Il9kb0ZpbmFsaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBBLGc9dGhpcy5jZmcucGFkZGluZztyZXR1cm4gdGhpcy5feGZvcm1Nb2RlPT09dGhpcy5jb25zdHJ1Y3Rvci5fRU5DX1hGT1JNX01PREU/KGcucGFkKHRoaXMuX2RhdGEsdGhpcy5ibG9ja1NpemUpLEE9dGhpcy5fcHJvY2VzcyghMCkpOihBPXRoaXMuX3Byb2Nlc3MoITApLGcudW5wYWQoQSkpLEF9fV0pLEl9KExyKSxicj1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoQSl7dmFyIEI7cmV0dXJuIHluKHRoaXMsSSksKEI9Zy5jYWxsKHRoaXMpKS5taXhJbihBKSxCfXJldHVybiBmbihJLFt7a2V5OiJ0b1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oQSl7cmV0dXJuKEF8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fV0pLEl9KGZyKSxUcj17c3RyaW5naWZ5OmZ1bmN0aW9uKEEpe3ZhciBnPUEuY2lwaGVydGV4dCxJPUEuc2FsdDtyZXR1cm4oST91ci5jcmVhdGUoWzEzOTg4OTM2ODQsMTcwMTA3NjgzMV0pLmNvbmNhdChJKS5jb25jYXQoZyk6ZykudG9TdHJpbmcoVXIpfSxwYXJzZTpmdW5jdGlvbihBKXt2YXIgZyxJPVVyLnBhcnNlKEEpLEI9SS53b3JkcztyZXR1cm4gMTM5ODg5MzY4ND09PUJbMF0mJjE3MDEwNzY4MzE9PT1CWzFdJiYoZz11ci5jcmVhdGUoQi5zbGljZSgyLDQpKSxCLnNwbGljZSgwLDQpLEkuc2lnQnl0ZXMtPTE2KSxici5jcmVhdGUoe2NpcGhlcnRleHQ6SSxzYWx0Omd9KX19LE9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLG51bGwsW3trZXk6ImVuY3J5cHQiLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPU9iamVjdC5hc3NpZ24obmV3IGZyLHRoaXMuY2ZnLEIpLEM9QS5jcmVhdGVFbmNyeXB0b3IoSSxRKSxFPUMuZmluYWxpemUoZyksaT1DLmNmZztyZXR1cm4gYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0OkUsa2V5OkksaXY6aS5pdixhbGdvcml0aG06QSxtb2RlOmkubW9kZSxwYWRkaW5nOmkucGFkZGluZyxibG9ja1NpemU6Qy5ibG9ja1NpemUsZm9ybWF0dGVyOlEuZm9ybWF0fSl9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEM9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQik7cmV0dXJuIFE9dGhpcy5fcGFyc2UoUSxDLmZvcm1hdCksQS5jcmVhdGVEZWNyeXB0b3IoSSxDKS5maW5hbGl6ZShRLmNpcGhlcnRleHQpfX0se2tleToiX3BhcnNlIix2YWx1ZTpmdW5jdGlvbihBLGcpe3JldHVybiJzdHJpbmciPT10eXBlb2YgQT9nLnBhcnNlKEEsdGhpcyk6QX19XSksSX0oZnIpO09yLmNmZz1PYmplY3QuYXNzaWduKG5ldyBmcix7Zm9ybWF0OlRyfSk7dmFyIFdyPXtleGVjdXRlOmZ1bmN0aW9uKEEsZyxJLEIpe3ZhciBRPUI7UXx8KFE9dXIucmFuZG9tKDgpKTt2YXIgQz1Kci5jcmVhdGUoe2tleVNpemU6ZytJfSkuY29tcHV0ZShBLFEpLEU9dXIuY3JlYXRlKEMud29yZHMuc2xpY2UoZyksNCpJKTtyZXR1cm4gQy5zaWdCeXRlcz00KmcsYnIuY3JlYXRlKHtrZXk6QyxpdjpFLHNhbHQ6UX0pfX0sWnI9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEksbnVsbCxbe2tleToiZW5jcnlwdCIsdmFsdWU6ZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQiksQz1RLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplKTtRLml2PUMuaXY7dmFyIEU9T3IuZW5jcnlwdC5jYWxsKHRoaXMsQSxnLEMua2V5LFEpO3JldHVybiBFLm1peEluKEMpLEV9fSx7a2V5OiJkZWNyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1nLEM9T2JqZWN0LmFzc2lnbihuZXcgZnIsdGhpcy5jZmcsQik7UT10aGlzLl9wYXJzZShRLEMuZm9ybWF0KTt2YXIgRT1DLmtkZi5leGVjdXRlKEksQS5rZXlTaXplLEEuaXZTaXplLFEuc2FsdCk7cmV0dXJuIEMuaXY9RS5pdixPci5kZWNyeXB0LmNhbGwodGhpcyxBLFEsRS5rZXksQyl9fV0pLEl9KE9yKTtaci5jZmc9T2JqZWN0LmFzc2lnbihPci5jZmcse2tkZjpXcn0pO2Zvcih2YXIganI9W10sUHI9W10sWHI9W10sVnI9W10senI9W10sX3I9W10sJHI9W10sQWE9W10sZ2E9W10sSWE9W10sQmE9W10sUWE9MDtRYTwyNTY7UWErPTEpQmFbUWFdPVFhPDEyOD9RYTw8MTpRYTw8MV4yODM7Zm9yKHZhciBDYT0wLEVhPTAsaWE9MDtpYTwyNTY7aWErPTEpe3ZhciB0YT1FYV5FYTw8MV5FYTw8Ml5FYTw8M15FYTw8NDt0YT10YT4+PjheMjU1JnRhXjk5LGpyW0NhXT10YSxQclt0YV09Q2E7dmFyIGVhPUJhW0NhXSxvYT1CYVtlYV0sbmE9QmFbb2FdLHJhPTI1NypCYVt0YV1eMTY4NDMwMDgqdGE7WHJbQ2FdPXJhPDwyNHxyYT4+PjgsVnJbQ2FdPXJhPDwxNnxyYT4+PjE2LHpyW0NhXT1yYTw8OHxyYT4+PjI0LF9yW0NhXT1yYSxyYT0xNjg0MzAwOSpuYV42NTUzNypvYV4yNTcqZWFeMTY4NDMwMDgqQ2EsJHJbdGFdPXJhPDwyNHxyYT4+PjgsQWFbdGFdPXJhPDwxNnxyYT4+PjE2LGdhW3RhXT1yYTw8OHxyYT4+PjI0LElhW3RhXT1yYSxDYT8oQ2E9ZWFeQmFbQmFbQmFbbmFeZWFdXV0sRWFePUJhW0JhW0VhXV0pOkNhPUVhPTF9dmFyIGFhPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxzYT1mdW5jdGlvbihBKXt1bihJLEEpO3ZhciBnPVJuKEkpO2Z1bmN0aW9uIEkoKXtyZXR1cm4geW4odGhpcyxJKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZm4oSSxbe2tleToiX2RvUmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEE7aWYoIXRoaXMuX25Sb3VuZHN8fHRoaXMuX2tleVByaW9yUmVzZXQhPT10aGlzLl9rZXkpe3RoaXMuX2tleVByaW9yUmVzZXQ9dGhpcy5fa2V5O3ZhciBnPXRoaXMuX2tleVByaW9yUmVzZXQsST1nLndvcmRzLEI9Zy5zaWdCeXRlcy80O3RoaXMuX25Sb3VuZHM9Qis2O3ZhciBRPTQqKHRoaXMuX25Sb3VuZHMrMSk7dGhpcy5fa2V5U2NoZWR1bGU9W107Zm9yKHZhciBDPXRoaXMuX2tleVNjaGVkdWxlLEU9MDtFPFE7RSs9MSlFPEI/Q1tFXT1JW0VdOihBPUNbRS0xXSxFJUI/Qj42JiZFJUI9PTQmJihBPWpyW0E+Pj4yNF08PDI0fGpyW0E+Pj4xNiYyNTVdPDwxNnxqcltBPj4+OCYyNTVdPDw4fGpyWzI1NSZBXSk6KEE9anJbKEE9QTw8OHxBPj4+MjQpPj4+MjRdPDwyNHxqcltBPj4+MTYmMjU1XTw8MTZ8anJbQT4+PjgmMjU1XTw8OHxqclsyNTUmQV0sQV49YWFbRS9CfDBdPDwyNCksQ1tFXT1DW0UtQl1eQSk7dGhpcy5faW52S2V5U2NoZWR1bGU9W107Zm9yKHZhciBpPXRoaXMuX2ludktleVNjaGVkdWxlLHQ9MDt0PFE7dCs9MSl7dmFyIGU9US10O0E9dCU0P0NbZV06Q1tlLTRdLGlbdF09dDw0fHxlPD00P0E6JHJbanJbQT4+PjI0XV1eQWFbanJbQT4+PjE2JjI1NV1dXmdhW2pyW0E+Pj44JjI1NV1dXklhW2pyWzI1NSZBXV19fX19LHtrZXk6ImVuY3J5cHRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt0aGlzLl9kb0NyeXB0QmxvY2soQSxnLHRoaXMuX2tleVNjaGVkdWxlLFhyLFZyLHpyLF9yLGpyKX19LHtrZXk6ImRlY3J5cHRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgST1BLEI9SVtnKzFdO0lbZysxXT1JW2crM10sSVtnKzNdPUIsdGhpcy5fZG9DcnlwdEJsb2NrKEksZyx0aGlzLl9pbnZLZXlTY2hlZHVsZSwkcixBYSxnYSxJYSxQciksQj1JW2crMV0sSVtnKzFdPUlbZyszXSxJW2crM109Qn19LHtrZXk6Il9kb0NyeXB0QmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyxJLEIsUSxDLEUsaSl7Zm9yKHZhciB0PUEsZT10aGlzLl9uUm91bmRzLG89dFtnXV5JWzBdLG49dFtnKzFdXklbMV0scj10W2crMl1eSVsyXSxhPXRbZyszXV5JWzNdLHM9NCxjPTE7YzxlO2MrPTEpe3ZhciBoPUJbbz4+PjI0XV5RW24+Pj4xNiYyNTVdXkNbcj4+PjgmMjU1XV5FWzI1NSZhXV5JW3NdO3MrPTE7dmFyIHk9QltuPj4+MjRdXlFbcj4+PjE2JjI1NV1eQ1thPj4+OCYyNTVdXkVbMjU1Jm9dXklbc107cys9MTt2YXIgRD1CW3I+Pj4yNF1eUVthPj4+MTYmMjU1XV5DW28+Pj44JjI1NV1eRVsyNTUmbl1eSVtzXTtzKz0xO3ZhciBmPUJbYT4+PjI0XV5RW28+Pj4xNiYyNTVdXkNbbj4+PjgmMjU1XV5FWzI1NSZyXV5JW3NdO3MrPTEsbz1oLG49eSxyPUQsYT1mfXZhciB1PShpW28+Pj4yNF08PDI0fGlbbj4+PjE2JjI1NV08PDE2fGlbcj4+PjgmMjU1XTw8OHxpWzI1NSZhXSleSVtzXTtzKz0xO3ZhciB3PShpW24+Pj4yNF08PDI0fGlbcj4+PjE2JjI1NV08PDE2fGlbYT4+PjgmMjU1XTw8OHxpWzI1NSZvXSleSVtzXTtzKz0xO3ZhciBkPShpW3I+Pj4yNF08PDI0fGlbYT4+PjE2JjI1NV08PDE2fGlbbz4+PjgmMjU1XTw8OHxpWzI1NSZuXSleSVtzXTtzKz0xO3ZhciBGPShpW2E+Pj4yNF08PDI0fGlbbz4+PjE2JjI1NV08PDE2fGlbbj4+PjgmMjU1XTw8OHxpWzI1NSZyXSleSVtzXTtzKz0xLHRbZ109dSx0W2crMV09dyx0W2crMl09ZCx0W2crM109Rn19XSksSX0ocXIpO3NhLmtleVNpemU9ODt2YXIgY2E9cXIuX2NyZWF0ZUhlbHBlcihzYSksaGE9ZnVuY3Rpb24oQSl7dW4oSSxBKTt2YXIgZz1SbihJKTtmdW5jdGlvbiBJKCl7cmV0dXJuIHluKHRoaXMsSSksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZuKEkpfSh2cik7aGEuRW5jcnlwdG9yPWZ1bmN0aW9uKEEpe3VuKEksQSk7dmFyIGc9Um4oSSk7ZnVuY3Rpb24gSSgpe3JldHVybiB5bih0aGlzLEkpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmbihJLFt7a2V5OiJwcm9jZXNzQmxvY2siLHZhbHVlOmZ1bmN0aW9uKEEsZyl7dmFyIEk9QSxCPXRoaXMuX2NpcGhlcixRPUIuYmxvY2tTaXplLEM9dGhpcy5faXYsRT10aGlzLl9jb3VudGVyO0MmJih0aGlzLl9jb3VudGVyPUMuc2xpY2UoMCksRT10aGlzLl9jb3VudGVyLHRoaXMuX2l2PXZvaWQgMCk7dmFyIGk9RS5zbGljZSgwKTtCLmVuY3J5cHRCbG9jayhpLDApLEVbUS0xXT1FW1EtMV0rMXwwO2Zvcih2YXIgdD0wO3Q8UTt0Kz0xKUlbZyt0XV49aVt0XX19XSksSX0oaGEpLGhhLkRlY3J5cHRvcj1oYS5FbmNyeXB0b3I7dmFyIHlhPXtwYWQ6ZnVuY3Rpb24oKXt9LHVucGFkOmZ1bmN0aW9uKCl7fX0sRGE9e2RlY3J5cHRXb3JkQXJyYXk6ZnVuY3Rpb24oQSxnLEkpe3ZhciBCPXdyLnBhcnNlKGcpLFE9d3IucGFyc2UoX28oSSkpLEM9dXIuY3JlYXRlKG5ldyBVaW50OEFycmF5KEEpKSxFPWNhLmRlY3J5cHQoYnIuY3JlYXRlKHtjaXBoZXJ0ZXh0OkN9KSxCLHtpdjpRLG1vZGU6aGEscGFkZGluZzp5YX0pO3JldHVybiBEYS53b3JkQXJyYXlUb1VpbnQ4QXJyYXkoRSl9LHdvcmRBcnJheVRvVWludDhBcnJheTpmdW5jdGlvbihBKXtmb3IodmFyIGc9QS5zaWdCeXRlcyxJPUEud29yZHMsQj1uZXcgVWludDhBcnJheShnKSxRPTAsQz0wO1EhPT1nOyl7dmFyIEU9SVtDKytdO2lmKEJbUSsrXT0oNDI3ODE5MDA4MCZFKT4+PjI0LFE9PT1nKWJyZWFrO2lmKEJbUSsrXT0oMTY3MTE2ODAmRSk+Pj4xNixRPT09ZylicmVhaztpZihCW1ErK109KDY1MjgwJkUpPj4+OCxRPT09ZylicmVhaztCW1ErK109MjU1JkV9cmV0dXJuIEJ9LGRlY29kZXJBRVNDVFJEYXRhOmZ1bmN0aW9uKEEsZyxJKXtpZihBLnZpZGVvU2VuYyl7dmFyIEI9QS5raWRWYWx1ZSxRPUEudmlkZW9TZW5jO0Euc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihnLEMpe3ZhciBFPVFbQ10saT1nLmRhdGEsdD1bXSxlPVtdLG89RS5Jbml0aWFsaXphdGlvblZlY3RvcjtpZihFLnN1YnNhbXBsZXMmJkUuc3Vic2FtcGxlcy5sZW5ndGgpRS5zdWJzYW1wbGVzLmZvckVhY2goKGZ1bmN0aW9uKEEpe3ZhciBnPUEuQnl0ZXNPZkNsZWFyRGF0YStBLkJ5dGVzT2ZQcm90ZWN0ZWREYXRhLEk9aS5zbGljZSgwLGcpO3QucHVzaChJLnNsaWNlKDAsQS5CeXRlc09mQ2xlYXJEYXRhKSksZS5wdXNoKEkuc2xpY2UoQS5CeXRlc09mQ2xlYXJEYXRhKSksaT1pLnNsaWNlKGcpfSkpO2Vsc2V7dmFyIG49Zy5zaXplO3QucHVzaChpLnNsaWNlKDAsMCkpLGUucHVzaChpLnNsaWNlKDAsbikpLGk9aS5zbGljZShuKX12YXIgcj1uZXcgbm47ci53cml0ZS5hcHBseShyLGUpO3ZhciBhPUk/SShyLmJ1ZmZlcixCLG8pOkRhLmRlY3J5cHRXb3JkQXJyYXkoci5idWZmZXIsQixvKSxzPW5ldyBubjt0LmZvckVhY2goKGZ1bmN0aW9uKEEsZyl7dmFyIEk9ZVtnXS5sZW5ndGgsQj1hLnNsaWNlKDAsSSk7cy53cml0ZShBKSxzLndyaXRlKEIpLGE9YS5zbGljZShJKX0pKSxBLnNhbXBsZXNbQ10uZGF0YT1zLmJ1ZmZlcn0pKX1pZihnLmF1ZGlvU2VuYyl7dmFyIEM9Zy5raWRWYWx1ZSxFPWcuYXVkaW9TZW5jO2cuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBLEIpe3ZhciBRPUVbQl0saT1JP0koQS5kYXRhLEMsUS5Jbml0aWFsaXphdGlvblZlY3Rvcik6RGEuZGVjcnlwdFdvcmRBcnJheShBLmRhdGEsQyxRLkluaXRpYWxpemF0aW9uVmVjdG9yKTtnLnNhbXBsZXNbQl0uZGF0YT1pfSkpfX19LGZhPWksdWE9IltcdFxuXHZcZlxyIMKg4ZqA4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCv4oGf44CAXHUyMDI4XHUyMDI5XHVmZWZmXSIsd2E9UmVnRXhwKCJeIit1YSt1YSsiKiIpLGRhPVJlZ0V4cCh1YSt1YSsiKiQiKSxGYT1mdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZyl7dmFyIEk9U3RyaW5nKGZhKGcpKTtyZXR1cm4gMSZBJiYoST1JLnJlcGxhY2Uod2EsIiIpKSwyJkEmJihJPUkucmVwbGFjZShkYSwiIikpLEl9fSxsYT17c3RhcnQ6RmEoMSksZW5kOkZhKDIpLHRyaW06RmEoMyl9LEdhPXMsUmE9cixVYT1MSSxrYT1hSSxTYT1WLE5hPUIsTWE9dkUsWWE9UixIYT1nLHBhPWNnLEphPXNJLmYsTGE9V2cuZix2YT1jLmYsS2E9bGEudHJpbSxtYT0iTnVtYmVyIix4YT1SYVttYV0scWE9eGEucHJvdG90eXBlLGJhPU5hKHBhKHFhKSk9PW1hLFRhPWZ1bmN0aW9uKEEpe3ZhciBnLEksQixRLEMsRSxpLHQsZT1ZYShBLCExKTtpZigic3RyaW5nIj09dHlwZW9mIGUmJmUubGVuZ3RoPjIpaWYoNDM9PT0oZz0oZT1LYShlKSkuY2hhckNvZGVBdCgwKSl8fDQ1PT09Zyl7aWYoODg9PT0oST1lLmNoYXJDb2RlQXQoMikpfHwxMjA9PT1JKXJldHVybiBOYU59ZWxzZSBpZig0OD09PWcpe3N3aXRjaChlLmNoYXJDb2RlQXQoMSkpe2Nhc2UgNjY6Y2FzZSA5ODpCPTIsUT00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOkI9OCxRPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK2V9Zm9yKEU9KEM9ZS5zbGljZSgyKSkubGVuZ3RoLGk9MDtpPEU7aSsrKWlmKCh0PUMuY2hhckNvZGVBdChpKSk8NDh8fHQ+USlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChDLEIpfXJldHVybitlfTtpZihVYShtYSwheGEoIiAwbzEiKXx8IXhhKCIwYjEiKXx8eGEoIisweDEiKSkpe2Zvcih2YXIgT2EsV2E9ZnVuY3Rpb24oQSl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aDwxPzA6QSxJPXRoaXM7cmV0dXJuIEkgaW5zdGFuY2VvZiBXYSYmKGJhP0hhKChmdW5jdGlvbigpe3FhLnZhbHVlT2YuY2FsbChJKX0pKTpOYShJKSE9bWEpP01hKG5ldyB4YShUYShnKSksSSxXYSk6VGEoZyl9LFphPUdhP0phKHhhKToiTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksRVBTSUxPTixpc0Zpbml0ZSxpc0ludGVnZXIsaXNOYU4saXNTYWZlSW50ZWdlcixNQVhfU0FGRV9JTlRFR0VSLE1JTl9TQUZFX0lOVEVHRVIscGFyc2VGbG9hdCxwYXJzZUludCxpc0ludGVnZXIsZnJvbVN0cmluZyxyYW5nZSIuc3BsaXQoIiwiKSxqYT0wO1phLmxlbmd0aD5qYTtqYSsrKVNhKHhhLE9hPVphW2phXSkmJiFTYShXYSxPYSkmJnZhKFdhLE9hLExhKHhhLE9hKSk7V2EucHJvdG90eXBlPXFhLHFhLmNvbnN0cnVjdG9yPVdhLGthKFJhLG1hLFdhKX12YXIgUGE9e30sWGE9ZztmdW5jdGlvbiBWYShBLGcpe3JldHVybiBSZWdFeHAoQSxnKX1QYS5VTlNVUFBPUlRFRF9ZPVhhKChmdW5jdGlvbigpe3ZhciBBPVZhKCJhIiwieSIpO3JldHVybiBBLmxhc3RJbmRleD0yLG51bGwhPUEuZXhlYygiYWJjZCIpfSkpLFBhLkJST0tFTl9DQVJFVD1YYSgoZnVuY3Rpb24oKXt2YXIgQT1WYSgiXnIiLCJneSIpO3JldHVybiBBLmxhc3RJbmRleD0yLG51bGwhPUEuZXhlYygic3RyIil9KSk7dmFyIHphLF9hLCRhPVluLEFzPVBhLGdzPVcsSXM9UmVnRXhwLnByb3RvdHlwZS5leGVjLEJzPWdzKCJuYXRpdmUtc3RyaW5nLXJlcGxhY2UiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksUXM9SXMsQ3M9KHphPS9hLyxfYT0vYiovZyxJcy5jYWxsKHphLCJhIiksSXMuY2FsbChfYSwiYSIpLDAhPT16YS5sYXN0SW5kZXh8fDAhPT1fYS5sYXN0SW5kZXgpLEVzPUFzLlVOU1VQUE9SVEVEX1l8fEFzLkJST0tFTl9DQVJFVCxpcz12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07KENzfHxpc3x8RXMpJiYoUXM9ZnVuY3Rpb24oQSl7dmFyIGcsSSxCLFEsQz10aGlzLEU9RXMmJkMuc3RpY2t5LGk9JGEuY2FsbChDKSx0PUMuc291cmNlLGU9MCxvPUE7cmV0dXJuIEUmJigtMT09PShpPWkucmVwbGFjZSgieSIsIiIpKS5pbmRleE9mKCJnIikmJihpKz0iZyIpLG89U3RyaW5nKEEpLnNsaWNlKEMubGFzdEluZGV4KSxDLmxhc3RJbmRleD4wJiYoIUMubXVsdGlsaW5lfHxDLm11bHRpbGluZSYmIlxuIiE9PUFbQy5sYXN0SW5kZXgtMV0pJiYodD0iKD86ICIrdCsiKSIsbz0iICIrbyxlKyspLEk9bmV3IFJlZ0V4cCgiXig/OiIrdCsiKSIsaSkpLGlzJiYoST1uZXcgUmVnRXhwKCJeIit0KyIkKD8hXFxzKSIsaSkpLENzJiYoZz1DLmxhc3RJbmRleCksQj1Jcy5jYWxsKEU/STpDLG8pLEU/Qj8oQi5pbnB1dD1CLmlucHV0LnNsaWNlKGUpLEJbMF09QlswXS5zbGljZShlKSxCLmluZGV4PUMubGFzdEluZGV4LEMubGFzdEluZGV4Kz1CWzBdLmxlbmd0aCk6Qy5sYXN0SW5kZXg9MDpDcyYmQiYmKEMubGFzdEluZGV4PUMuZ2xvYmFsP0IuaW5kZXgrQlswXS5sZW5ndGg6ZyksaXMmJkImJkIubGVuZ3RoPjEmJkJzLmNhbGwoQlswXSxJLChmdW5jdGlvbigpe2ZvcihRPTE7UTxhcmd1bWVudHMubGVuZ3RoLTI7USsrKXZvaWQgMD09PWFyZ3VtZW50c1tRXSYmKEJbUV09dm9pZCAwKX0pKSxCfSk7dmFyIHRzPVFzO09JKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOi8uLy5leGVjIT09dHN9LHtleGVjOnRzfSk7dmFyIGVzPWFJLG9zPXRzLG5zPWcscnM9RkEsYXM9Sixzcz1ycygic3BlY2llcyIpLGNzPVJlZ0V4cC5wcm90b3R5cGUsaHM9IW5zKChmdW5jdGlvbigpe3ZhciBBPS8uLztyZXR1cm4gQS5leGVjPWZ1bmN0aW9uKCl7dmFyIEE9W107cmV0dXJuIEEuZ3JvdXBzPXthOiI3In0sQX0sIjciIT09IiIucmVwbGFjZShBLCIkPGE+Iil9KSkseXM9IiQwIj09PSJhIi5yZXBsYWNlKC8uLywiJDAiKSxEcz1ycygicmVwbGFjZSIpLGZzPSEhLy4vW0RzXSYmIiI9PT0vLi9bRHNdKCJhIiwiJDAiKSx1cz0hbnMoKGZ1bmN0aW9uKCl7dmFyIEE9Lyg/OikvLGc9QS5leGVjO0EuZXhlYz1mdW5jdGlvbigpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIEk9ImFiIi5zcGxpdChBKTtyZXR1cm4gMiE9PUkubGVuZ3RofHwiYSIhPT1JWzBdfHwiYiIhPT1JWzFdfSkpLHdzPVJBLGRzPWksRnM9ZnVuY3Rpb24oQSl7cmV0dXJuIGZ1bmN0aW9uKGcsSSl7dmFyIEIsUSxDPVN0cmluZyhkcyhnKSksRT13cyhJKSxpPUMubGVuZ3RoO3JldHVybiBFPDB8fEU+PWk/QT8iIjp2b2lkIDA6KEI9Qy5jaGFyQ29kZUF0KEUpKTw1NTI5Nnx8Qj41NjMxOXx8RSsxPT09aXx8KFE9Qy5jaGFyQ29kZUF0KEUrMSkpPDU2MzIwfHxRPjU3MzQzP0E/Qy5jaGFyQXQoRSk6QjpBP0Muc2xpY2UoRSxFKzIpOlEtNTYzMjArKEItNTUyOTY8PDEwKSs2NTUzNn19LGxzPXtjb2RlQXQ6RnMoITEpLGNoYXJBdDpGcyghMCl9LmNoYXJBdCxHcz1qLFJzPU1hdGguZmxvb3IsVXM9IiIucmVwbGFjZSxrcz0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxTcz0vXCQoWyQmJ2BdfFxkezEsMn0pL2csTnM9QixNcz10cyxZcz1mdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1ycyhBKSxDPSFucygoZnVuY3Rpb24oKXt2YXIgZz17fTtyZXR1cm4gZ1tRXT1mdW5jdGlvbigpe3JldHVybiA3fSw3IT0iIltBXShnKX0pKSxFPUMmJiFucygoZnVuY3Rpb24oKXt2YXIgZz0hMSxJPS9hLztyZXR1cm4ic3BsaXQiPT09QSYmKChJPXt9KS5jb25zdHJ1Y3Rvcj17fSxJLmNvbnN0cnVjdG9yW3NzXT1mdW5jdGlvbigpe3JldHVybiBJfSxJLmZsYWdzPSIiLElbUV09Ly4vW1FdKSxJLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gZz0hMCxudWxsfSxJW1FdKCIiKSwhZ30pKTtpZighQ3x8IUV8fCJyZXBsYWNlIj09PUEmJighaHN8fCF5c3x8ZnMpfHwic3BsaXQiPT09QSYmIXVzKXt2YXIgaT0vLi9bUV0sdD1JKFEsIiJbQV0sKGZ1bmN0aW9uKEEsZyxJLEIsUSl7dmFyIEU9Zy5leGVjO3JldHVybiBFPT09b3N8fEU9PT1jcy5leGVjP0MmJiFRP3tkb25lOiEwLHZhbHVlOmkuY2FsbChnLEksQil9Ontkb25lOiEwLHZhbHVlOkEuY2FsbChJLGcsQil9Ontkb25lOiExfX0pLHtSRVBMQUNFX0tFRVBTXyQwOnlzLFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFOmZzfSksZT10WzBdLG89dFsxXTtlcyhTdHJpbmcucHJvdG90eXBlLEEsZSksZXMoY3MsUSwyPT1nP2Z1bmN0aW9uKEEsZyl7cmV0dXJuIG8uY2FsbChBLHRoaXMsZyl9OmZ1bmN0aW9uKEEpe3JldHVybiBvLmNhbGwoQSx0aGlzKX0pfUImJmFzKGNzW1FdLCJzaGFtIiwhMCl9LEhzPWwscHM9U0EsSnM9UkEsTHM9aSx2cz1mdW5jdGlvbihBLGcsSSl7cmV0dXJuIGcrKEk/bHMoQSxnKS5sZW5ndGg6MSl9LEtzPWZ1bmN0aW9uKEEsZyxJLEIsUSxDKXt2YXIgRT1JK0EubGVuZ3RoLGk9Qi5sZW5ndGgsdD1TcztyZXR1cm4gdm9pZCAwIT09USYmKFE9R3MoUSksdD1rcyksVXMuY2FsbChDLHQsKGZ1bmN0aW9uKEMsdCl7dmFyIGU7c3dpdGNoKHQuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBBO2Nhc2UiYCI6cmV0dXJuIGcuc2xpY2UoMCxJKTtjYXNlIiciOnJldHVybiBnLnNsaWNlKEUpO2Nhc2UiPCI6ZT1RW3Quc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIG89K3Q7aWYoMD09PW8pcmV0dXJuIEM7aWYobz5pKXt2YXIgbj1ScyhvLzEwKTtyZXR1cm4gMD09PW4/QzpuPD1pP3ZvaWQgMD09PUJbbi0xXT90LmNoYXJBdCgxKTpCW24tMV0rdC5jaGFyQXQoMSk6Q31lPUJbby0xXX1yZXR1cm4gdm9pZCAwPT09ZT8iIjplfSkpfSxtcz1mdW5jdGlvbihBLGcpe3ZhciBJPUEuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgSSl7dmFyIEI9SS5jYWxsKEEsZyk7aWYoIm9iamVjdCIhPXR5cGVvZiBCKXRocm93IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIEJ9aWYoIlJlZ0V4cCIhPT1OcyhBKSl0aHJvdyBUeXBlRXJyb3IoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXIiKTtyZXR1cm4gTXMuY2FsbChBLGcpfSx4cz1NYXRoLm1heCxxcz1NYXRoLm1pbjtZcygicmVwbGFjZSIsMiwoZnVuY3Rpb24oQSxnLEksQil7dmFyIFE9Qi5SRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSxDPUIuUkVQTEFDRV9LRUVQU18kMCxFPVE/IiQiOiIkMCI7cmV0dXJuW2Z1bmN0aW9uKEksQil7dmFyIFE9THModGhpcyksQz1udWxsPT1JP3ZvaWQgMDpJW0FdO3JldHVybiB2b2lkIDAhPT1DP0MuY2FsbChJLFEsQik6Zy5jYWxsKFN0cmluZyhRKSxJLEIpfSxmdW5jdGlvbihBLEIpe2lmKCFRJiZDfHwic3RyaW5nIj09dHlwZW9mIEImJi0xPT09Qi5pbmRleE9mKEUpKXt2YXIgaT1JKGcsQSx0aGlzLEIpO2lmKGkuZG9uZSlyZXR1cm4gaS52YWx1ZX12YXIgdD1IcyhBKSxlPVN0cmluZyh0aGlzKSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBCO298fChCPVN0cmluZyhCKSk7dmFyIG49dC5nbG9iYWw7aWYobil7dmFyIHI9dC51bmljb2RlO3QubGFzdEluZGV4PTB9Zm9yKHZhciBhPVtdOzspe3ZhciBzPW1zKHQsZSk7aWYobnVsbD09PXMpYnJlYWs7aWYoYS5wdXNoKHMpLCFuKWJyZWFrOyIiPT09U3RyaW5nKHNbMF0pJiYodC5sYXN0SW5kZXg9dnMoZSxwcyh0Lmxhc3RJbmRleCkscikpfWZvcih2YXIgYyxoPSIiLHk9MCxEPTA7RDxhLmxlbmd0aDtEKyspe3M9YVtEXTtmb3IodmFyIGY9U3RyaW5nKHNbMF0pLHU9eHMocXMoSnMocy5pbmRleCksZS5sZW5ndGgpLDApLHc9W10sZD0xO2Q8cy5sZW5ndGg7ZCsrKXcucHVzaCh2b2lkIDA9PT0oYz1zW2RdKT9jOlN0cmluZyhjKSk7dmFyIEY9cy5ncm91cHM7aWYobyl7dmFyIGw9W2ZdLmNvbmNhdCh3LHUsZSk7dm9pZCAwIT09RiYmbC5wdXNoKEYpO3ZhciBHPVN0cmluZyhCLmFwcGx5KHZvaWQgMCxsKSl9ZWxzZSBHPUtzKGYsZSx1LHcsRixCKTt1Pj15JiYoaCs9ZS5zbGljZSh5LHUpK0cseT11K2YubGVuZ3RoKX1yZXR1cm4gaCtlLnNsaWNlKHkpfV19KSk7dmFyIGJzLFRzPWgsT3M9QixXcz1GQSgibWF0Y2giKSxacz1mdW5jdGlvbihBKXt2YXIgZztyZXR1cm4gVHMoQSkmJih2b2lkIDAhPT0oZz1BW1dzXSk/ISFnOiJSZWdFeHAiPT1PcyhBKSl9LGpzPVpzLFBzPWZ1bmN0aW9uKEEpe2lmKGpzKEEpKXRocm93IFR5cGVFcnJvcigiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zIik7cmV0dXJuIEF9LFhzPUZBKCJtYXRjaCIpLFZzPWZ1bmN0aW9uKEEpe3ZhciBnPS8uLzt0cnl7Ii8uLyJbQV0oZyl9Y2F0Y2goSSl7dHJ5e3JldHVybiBnW1hzXT0hMSwiLy4vIltBXShnKX1jYXRjaChCKXt9fXJldHVybiExfSx6cz1PSSxfcz1XZy5mLCRzPVNBLEFjPVBzLGdjPWksSWM9VnMsQmM9IiIuc3RhcnRzV2l0aCxRYz1NYXRoLm1pbixDYz1JYygic3RhcnRzV2l0aCIpO3pzKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiEhKENjfHwoYnM9X3MoU3RyaW5nLnByb3RvdHlwZSwic3RhcnRzV2l0aCIpLCFic3x8YnMud3JpdGFibGUpKSYmIUNjfSx7c3RhcnRzV2l0aDpmdW5jdGlvbihBKXt2YXIgZz1TdHJpbmcoZ2ModGhpcykpO0FjKEEpO3ZhciBJPSRzKFFjKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLGcubGVuZ3RoKSksQj1TdHJpbmcoQSk7cmV0dXJuIEJjP0JjLmNhbGwoZyxCLEkpOmcuc2xpY2UoSSxJK0IubGVuZ3RoKT09PUJ9fSk7dmFyIEVjLGljLHRjLGVjPXIuUHJvbWlzZSxvYz1sLG5jPWwscmM9RUUsYWM9U0Esc2M9ZUUsY2M9SUUsaGM9ZnVuY3Rpb24oQSl7dmFyIGc9QS5yZXR1cm47aWYodm9pZCAwIT09ZylyZXR1cm4gb2MoZy5jYWxsKEEpKS52YWx1ZX0seWM9ZnVuY3Rpb24oQSxnKXt0aGlzLnN0b3BwZWQ9QSx0aGlzLnJlc3VsdD1nfSxEYz0vKD86aXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdChRQSksZmM9InByb2Nlc3MiPT1CKHIucHJvY2VzcyksdWM9cix3Yz1nLGRjPWVFLEZjPSRBLGxjPXUsR2M9RGMsUmM9ZmMsVWM9dWMubG9jYXRpb24sa2M9dWMuc2V0SW1tZWRpYXRlLFNjPXVjLmNsZWFySW1tZWRpYXRlLE5jPXVjLnByb2Nlc3MsTWM9dWMuTWVzc2FnZUNoYW5uZWwsWWM9dWMuRGlzcGF0Y2gsSGM9MCxwYz17fSxKYz0ib25yZWFkeXN0YXRlY2hhbmdlIixMYz1mdW5jdGlvbihBKXtpZihwYy5oYXNPd25Qcm9wZXJ0eShBKSl7dmFyIGc9cGNbQV07ZGVsZXRlIHBjW0FdLGcoKX19LHZjPWZ1bmN0aW9uKEEpe3JldHVybiBmdW5jdGlvbigpe0xjKEEpfX0sS2M9ZnVuY3Rpb24oQSl7TGMoQS5kYXRhKX0sbWM9ZnVuY3Rpb24oQSl7dWMucG9zdE1lc3NhZ2UoQSsiIixVYy5wcm90b2NvbCsiLy8iK1VjLmhvc3QpfTtrYyYmU2N8fChrYz1mdW5jdGlvbihBKXtmb3IodmFyIGc9W10sST0xO2FyZ3VtZW50cy5sZW5ndGg+STspZy5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gcGNbKytIY109ZnVuY3Rpb24oKXsoImZ1bmN0aW9uIj09dHlwZW9mIEE/QTpGdW5jdGlvbihBKSkuYXBwbHkodm9pZCAwLGcpfSxFYyhIYyksSGN9LFNjPWZ1bmN0aW9uKEEpe2RlbGV0ZSBwY1tBXX0sUmM/RWM9ZnVuY3Rpb24oQSl7TmMubmV4dFRpY2sodmMoQSkpfTpZYyYmWWMubm93P0VjPWZ1bmN0aW9uKEEpe1ljLm5vdyh2YyhBKSl9Ok1jJiYhR2M/KHRjPShpYz1uZXcgTWMpLnBvcnQyLGljLnBvcnQxLm9ubWVzc2FnZT1LYyxFYz1kYyh0Yy5wb3N0TWVzc2FnZSx0YywxKSk6dWMuYWRkRXZlbnRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIHBvc3RNZXNzYWdlJiYhdWMuaW1wb3J0U2NyaXB0cyYmVWMmJiJmaWxlOiIhPT1VYy5wcm90b2NvbCYmIXdjKG1jKT8oRWM9bWMsdWMuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsS2MsITEpKTpFYz1KYyBpbiBsYygic2NyaXB0Iik/ZnVuY3Rpb24oQSl7RmMuYXBwZW5kQ2hpbGQobGMoInNjcmlwdCIpKVtKY109ZnVuY3Rpb24oKXtGYy5yZW1vdmVDaGlsZCh0aGlzKSxMYyhBKX19OmZ1bmN0aW9uKEEpe3NldFRpbWVvdXQodmMoQSksMCl9KTt2YXIgeGMscWMsYmMsVGMsT2MsV2MsWmMsamMsUGM9e3NldDprYyxjbGVhcjpTY30sWGM9L3dlYjBzKD8hLipjaHJvbWUpL2kudGVzdChRQSksVmM9cix6Yz1XZy5mLF9jPVBjLnNldCwkYz1EYyxBaD1YYyxnaD1mYyxJaD1WYy5NdXRhdGlvbk9ic2VydmVyfHxWYy5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLEJoPVZjLmRvY3VtZW50LFFoPVZjLnByb2Nlc3MsQ2g9VmMuUHJvbWlzZSxFaD16YyhWYywicXVldWVNaWNyb3Rhc2siKSxpaD1FaCYmRWgudmFsdWU7aWh8fCh4Yz1mdW5jdGlvbigpe3ZhciBBLGc7Zm9yKGdoJiYoQT1RaC5kb21haW4pJiZBLmV4aXQoKTtxYzspe2c9cWMuZm4scWM9cWMubmV4dDt0cnl7ZygpfWNhdGNoKHREKXt0aHJvdyBxYz9UYygpOmJjPXZvaWQgMCx0RH19YmM9dm9pZCAwLEEmJkEuZW50ZXIoKX0sJGN8fGdofHxBaHx8IUlofHwhQmg/Q2gmJkNoLnJlc29sdmU/KChaYz1DaC5yZXNvbHZlKHZvaWQgMCkpLmNvbnN0cnVjdG9yPUNoLGpjPVpjLnRoZW4sVGM9ZnVuY3Rpb24oKXtqYy5jYWxsKFpjLHhjKX0pOlRjPWdoP2Z1bmN0aW9uKCl7UWgubmV4dFRpY2soeGMpfTpmdW5jdGlvbigpe19jLmNhbGwoVmMseGMpfTooT2M9ITAsV2M9QmguY3JlYXRlVGV4dE5vZGUoIiIpLG5ldyBJaCh4Yykub2JzZXJ2ZShXYyx7Y2hhcmFjdGVyRGF0YTohMH0pLFRjPWZ1bmN0aW9uKCl7V2MuZGF0YT1PYz0hT2N9KSk7dmFyIHRoPWlofHxmdW5jdGlvbihBKXt2YXIgZz17Zm46QSxuZXh0OnZvaWQgMH07YmMmJihiYy5uZXh0PWcpLHFjfHwocWM9ZyxUYygpKSxiYz1nfSxlaD17fSxvaD1pRSxuaD1mdW5jdGlvbihBKXt2YXIgZyxJO3RoaXMucHJvbWlzZT1uZXcgQSgoZnVuY3Rpb24oQSxCKXtpZih2b2lkIDAhPT1nfHx2b2lkIDAhPT1JKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtnPUEsST1CfSkpLHRoaXMucmVzb2x2ZT1vaChnKSx0aGlzLnJlamVjdD1vaChJKX07ZWguZj1mdW5jdGlvbihBKXtyZXR1cm4gbmV3IG5oKEEpfTt2YXIgcmgsYWgsc2gsY2gsaGg9bCx5aD1oLERoPWVoLGZoPXIsdWg9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3csd2g9T0ksZGg9cixGaD1CQSxsaD1lYyxHaD1hSSxSaD1UUSxVaD1EQixraD10QixTaD1wRSxOaD1oLE1oPWlFLFloPU9RLEhoPVVnLHBoPWZ1bmN0aW9uKEEsZyxJKXt2YXIgQixRLEMsRSxpLHQsZSxvPUkmJkkudGhhdCxuPSEoIUl8fCFJLkFTX0VOVFJJRVMpLHI9ISghSXx8IUkuSVNfSVRFUkFUT1IpLGE9ISghSXx8IUkuSU5URVJSVVBURUQpLHM9c2MoZyxvLDErbithKSxjPWZ1bmN0aW9uKEEpe3JldHVybiBCJiZoYyhCKSxuZXcgeWMoITAsQSl9LGg9ZnVuY3Rpb24oQSl7cmV0dXJuIG4/KG5jKEEpLGE/cyhBWzBdLEFbMV0sYyk6cyhBWzBdLEFbMV0pKTphP3MoQSxjKTpzKEEpfTtpZihyKUI9QTtlbHNle2lmKCJmdW5jdGlvbiIhPXR5cGVvZihRPWNjKEEpKSl0aHJvdyBUeXBlRXJyb3IoIlRhcmdldCBpcyBub3QgaXRlcmFibGUiKTtpZihyYyhRKSl7Zm9yKEM9MCxFPWFjKEEubGVuZ3RoKTtFPkM7QysrKWlmKChpPWgoQVtDXSkpJiZpIGluc3RhbmNlb2YgeWMpcmV0dXJuIGk7cmV0dXJuIG5ldyB5YyghMSl9Qj1RLmNhbGwoQSl9Zm9yKHQ9Qi5uZXh0OyEoZT10LmNhbGwoQikpLmRvbmU7KXt0cnl7aT1oKGUudmFsdWUpfWNhdGNoKHREKXt0aHJvdyBoYyhCKSx0RH1pZigib2JqZWN0Ij09dHlwZW9mIGkmJmkmJmkgaW5zdGFuY2VvZiB5YylyZXR1cm4gaX1yZXR1cm4gbmV3IHljKCExKX0sSmg9UVEsTGg9Wmksdmg9UGMuc2V0LEtoPXRoLG1oPWZ1bmN0aW9uKEEsZyl7aWYoaGgoQSkseWgoZykmJmcuY29uc3RydWN0b3I9PT1BKXJldHVybiBnO3ZhciBJPURoLmYoQSk7cmV0dXJuKDAsSS5yZXNvbHZlKShnKSxJLnByb21pc2V9LHhoPWZ1bmN0aW9uKEEsZyl7dmFyIEk9ZmguY29uc29sZTtJJiZJLmVycm9yJiYoMT09PWFyZ3VtZW50cy5sZW5ndGg/SS5lcnJvcihBKTpJLmVycm9yKEEsZykpfSxxaD1laCxiaD1mdW5jdGlvbihBKXt0cnl7cmV0dXJue2Vycm9yOiExLHZhbHVlOkEoKX19Y2F0Y2godEQpe3JldHVybntlcnJvcjohMCx2YWx1ZTp0RH19fSxUaD1PZyxPaD1MSSxXaD11aCxaaD1mYyxqaD1vQSxQaD1GQSgic3BlY2llcyIpLFhoPSJQcm9taXNlIixWaD1UaC5nZXQsemg9VGguc2V0LF9oPVRoLmdldHRlckZvcihYaCksJGg9bGgmJmxoLnByb3RvdHlwZSxBeT1saCxneT0kaCxJeT1kaC5UeXBlRXJyb3IsQnk9ZGguZG9jdW1lbnQsUXk9ZGgucHJvY2VzcyxDeT1xaC5mLEV5PUN5LGl5PSEhKEJ5JiZCeS5jcmVhdGVFdmVudCYmZGguZGlzcGF0Y2hFdmVudCksdHk9ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCxleT0idW5oYW5kbGVkcmVqZWN0aW9uIixveT0hMSxueT1PaChYaCwoZnVuY3Rpb24oKXt2YXIgQT1IaChBeSkhPT1TdHJpbmcoQXkpO2lmKCFBJiY2Nj09PWpoKXJldHVybiEwO2lmKGpoPj01MSYmL25hdGl2ZSBjb2RlLy50ZXN0KEF5KSlyZXR1cm4hMTt2YXIgZz1uZXcgQXkoKGZ1bmN0aW9uKEEpe0EoMSl9KSksST1mdW5jdGlvbihBKXtBKChmdW5jdGlvbigpe30pLChmdW5jdGlvbigpe30pKX07cmV0dXJuKGcuY29uc3RydWN0b3I9e30pW1BoXT1JLCEob3k9Zy50aGVuKChmdW5jdGlvbigpe30pKWluc3RhbmNlb2YgSSl8fCFBJiZXaCYmIXR5fSkpLHJ5PW55fHwhSmgoKGZ1bmN0aW9uKEEpe0F5LmFsbChBKS5jYXRjaCgoZnVuY3Rpb24oKXt9KSl9KSksYXk9ZnVuY3Rpb24oQSl7dmFyIGc7cmV0dXJuISghTmgoQSl8fCJmdW5jdGlvbiIhPXR5cGVvZihnPUEudGhlbikpJiZnfSxzeT1mdW5jdGlvbihBLGcpe2lmKCFBLm5vdGlmaWVkKXtBLm5vdGlmaWVkPSEwO3ZhciBJPUEucmVhY3Rpb25zO0toKChmdW5jdGlvbigpe2Zvcih2YXIgQj1BLnZhbHVlLFE9MT09QS5zdGF0ZSxDPTA7SS5sZW5ndGg+Qzspe3ZhciBFLGksdCxlPUlbQysrXSxvPVE/ZS5vazplLmZhaWwsbj1lLnJlc29sdmUscj1lLnJlamVjdCxhPWUuZG9tYWluO3RyeXtvPyhRfHwoMj09PUEucmVqZWN0aW9uJiZEeShBKSxBLnJlamVjdGlvbj0xKSwhMD09PW8/RT1COihhJiZhLmVudGVyKCksRT1vKEIpLGEmJihhLmV4aXQoKSx0PSEwKSksRT09PWUucHJvbWlzZT9yKEl5KCJQcm9taXNlLWNoYWluIGN5Y2xlIikpOihpPWF5KEUpKT9pLmNhbGwoRSxuLHIpOm4oRSkpOnIoQil9Y2F0Y2godEQpe2EmJiF0JiZhLmV4aXQoKSxyKHREKX19QS5yZWFjdGlvbnM9W10sQS5ub3RpZmllZD0hMSxnJiYhQS5yZWplY3Rpb24mJmh5KEEpfSkpfX0sY3k9ZnVuY3Rpb24oQSxnLEkpe3ZhciBCLFE7aXk/KChCPUJ5LmNyZWF0ZUV2ZW50KCJFdmVudCIpKS5wcm9taXNlPWcsQi5yZWFzb249SSxCLmluaXRFdmVudChBLCExLCEwKSxkaC5kaXNwYXRjaEV2ZW50KEIpKTpCPXtwcm9taXNlOmcscmVhc29uOkl9LCF0eSYmKFE9ZGhbIm9uIitBXSk/UShCKTpBPT09ZXkmJnhoKCJVbmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24iLEkpfSxoeT1mdW5jdGlvbihBKXt2aC5jYWxsKGRoLChmdW5jdGlvbigpe3ZhciBnLEk9QS5mYWNhZGUsQj1BLnZhbHVlO2lmKHl5KEEpJiYoZz1iaCgoZnVuY3Rpb24oKXtaaD9ReS5lbWl0KCJ1bmhhbmRsZWRSZWplY3Rpb24iLEIsSSk6Y3koZXksSSxCKX0pKSxBLnJlamVjdGlvbj1aaHx8eXkoQSk/MjoxLGcuZXJyb3IpKXRocm93IGcudmFsdWV9KSl9LHl5PWZ1bmN0aW9uKEEpe3JldHVybiAxIT09QS5yZWplY3Rpb24mJiFBLnBhcmVudH0sRHk9ZnVuY3Rpb24oQSl7dmguY2FsbChkaCwoZnVuY3Rpb24oKXt2YXIgZz1BLmZhY2FkZTtaaD9ReS5lbWl0KCJyZWplY3Rpb25IYW5kbGVkIixnKTpjeSgicmVqZWN0aW9uaGFuZGxlZCIsZyxBLnZhbHVlKX0pKX0sZnk9ZnVuY3Rpb24oQSxnLEkpe3JldHVybiBmdW5jdGlvbihCKXtBKGcsQixJKX19LHV5PWZ1bmN0aW9uKEEsZyxJKXtBLmRvbmV8fChBLmRvbmU9ITAsSSYmKEE9SSksQS52YWx1ZT1nLEEuc3RhdGU9MixzeShBLCEwKSl9LHd5PWZ1bmN0aW9uKEEsZyxJKXtpZighQS5kb25lKXtBLmRvbmU9ITAsSSYmKEE9SSk7dHJ5e2lmKEEuZmFjYWRlPT09Zyl0aHJvdyBJeSgiUHJvbWlzZSBjYW4ndCBiZSByZXNvbHZlZCBpdHNlbGYiKTt2YXIgQj1heShnKTtCP0toKChmdW5jdGlvbigpe3ZhciBJPXtkb25lOiExfTt0cnl7Qi5jYWxsKGcsZnkod3ksSSxBKSxmeSh1eSxJLEEpKX1jYXRjaCh0RCl7dXkoSSx0RCxBKX19KSk6KEEudmFsdWU9ZyxBLnN0YXRlPTEsc3koQSwhMSkpfWNhdGNoKHREKXt1eSh7ZG9uZTohMX0sdEQsQSl9fX07aWYobnkmJihneT0oQXk9ZnVuY3Rpb24oQSl7WWgodGhpcyxBeSxYaCksTWgoQSkscmguY2FsbCh0aGlzKTt2YXIgZz1WaCh0aGlzKTt0cnl7QShmeSh3eSxnKSxmeSh1eSxnKSl9Y2F0Y2godEQpe3V5KGcsdEQpfX0pLnByb3RvdHlwZSwocmg9ZnVuY3Rpb24oQSl7emgodGhpcyx7dHlwZTpYaCxkb25lOiExLG5vdGlmaWVkOiExLHBhcmVudDohMSxyZWFjdGlvbnM6W10scmVqZWN0aW9uOiExLHN0YXRlOjAsdmFsdWU6dm9pZCAwfSl9KS5wcm90b3R5cGU9UmgoZ3kse3RoZW46ZnVuY3Rpb24oQSxnKXt2YXIgST1faCh0aGlzKSxCPUN5KExoKHRoaXMsQXkpKTtyZXR1cm4gQi5vaz0iZnVuY3Rpb24iIT10eXBlb2YgQXx8QSxCLmZhaWw9ImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcsQi5kb21haW49Wmg/UXkuZG9tYWluOnZvaWQgMCxJLnBhcmVudD0hMCxJLnJlYWN0aW9ucy5wdXNoKEIpLDAhPUkuc3RhdGUmJnN5KEksITEpLEIucHJvbWlzZX0sY2F0Y2g6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsQSl9fSksYWg9ZnVuY3Rpb24oKXt2YXIgQT1uZXcgcmgsZz1WaChBKTt0aGlzLnByb21pc2U9QSx0aGlzLnJlc29sdmU9Znkod3ksZyksdGhpcy5yZWplY3Q9ZnkodXksZyl9LHFoLmY9Q3k9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT1BeXx8QT09PXNoP25ldyBhaChBKTpFeShBKX0sImZ1bmN0aW9uIj09dHlwZW9mIGxoJiYkaCE9PU9iamVjdC5wcm90b3R5cGUpKXtjaD0kaC50aGVuLG95fHwoR2goJGgsInRoZW4iLChmdW5jdGlvbihBLGcpe3ZhciBJPXRoaXM7cmV0dXJuIG5ldyBBeSgoZnVuY3Rpb24oQSxnKXtjaC5jYWxsKEksQSxnKX0pKS50aGVuKEEsZyl9KSx7dW5zYWZlOiEwfSksR2goJGgsImNhdGNoIixneS5jYXRjaCx7dW5zYWZlOiEwfSkpO3RyeXtkZWxldGUgJGguY29uc3RydWN0b3J9Y2F0Y2godEQpe31VaCYmVWgoJGgsZ3kpfXdoKHtnbG9iYWw6ITAsd3JhcDohMCxmb3JjZWQ6bnl9LHtQcm9taXNlOkF5fSksa2goQXksWGgsITEpLFNoKFhoKSxzaD1GaChYaCksd2goe3RhcmdldDpYaCxzdGF0OiEwLGZvcmNlZDpueX0se3JlamVjdDpmdW5jdGlvbihBKXt2YXIgZz1DeSh0aGlzKTtyZXR1cm4gZy5yZWplY3QuY2FsbCh2b2lkIDAsQSksZy5wcm9taXNlfX0pLHdoKHt0YXJnZXQ6WGgsc3RhdDohMCxmb3JjZWQ6bnl9LHtyZXNvbHZlOmZ1bmN0aW9uKEEpe3JldHVybiBtaCh0aGlzLEEpfX0pLHdoKHt0YXJnZXQ6WGgsc3RhdDohMCxmb3JjZWQ6cnl9LHthbGw6ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcyxJPUN5KGcpLEI9SS5yZXNvbHZlLFE9SS5yZWplY3QsQz1iaCgoZnVuY3Rpb24oKXt2YXIgST1NaChnLnJlc29sdmUpLEM9W10sRT0wLGk9MTtwaChBLChmdW5jdGlvbihBKXt2YXIgdD1FKyssZT0hMTtDLnB1c2godm9pZCAwKSxpKyssSS5jYWxsKGcsQSkudGhlbigoZnVuY3Rpb24oQSl7ZXx8KGU9ITAsQ1t0XT1BLC0taXx8QihDKSl9KSxRKX0pKSwtLWl8fEIoQyl9KSk7cmV0dXJuIEMuZXJyb3ImJlEoQy52YWx1ZSksSS5wcm9taXNlfSxyYWNlOmZ1bmN0aW9uKEEpe3ZhciBnPXRoaXMsST1DeShnKSxCPUkucmVqZWN0LFE9YmgoKGZ1bmN0aW9uKCl7dmFyIFE9TWgoZy5yZXNvbHZlKTtwaChBLChmdW5jdGlvbihBKXtRLmNhbGwoZyxBKS50aGVuKEkucmVzb2x2ZSxCKX0pKX0pKTtyZXR1cm4gUS5lcnJvciYmQihRLnZhbHVlKSxJLnByb21pc2V9fSk7dmFyIGR5PXVnO09JKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0se2NvcHlXaXRoaW46TGl9KSxkeSgiY29weVdpdGhpbiIpO3ZhciBGeT1zLGx5PXIsR3k9TEksUnk9dkUsVXk9Yy5mLGt5PXNJLmYsU3k9WnMsTnk9WW4sTXk9UGEsWXk9YUksSHk9ZyxweT1PZy5lbmZvcmNlLEp5PXBFLEx5PUZBKCJtYXRjaCIpLHZ5PWx5LlJlZ0V4cCxLeT12eS5wcm90b3R5cGUsbXk9L2EvZyx4eT0vYS9nLHF5PW5ldyB2eShteSkhPT1teSxieT1NeS5VTlNVUFBPUlRFRF9ZO2lmKEZ5JiZHeSgiUmVnRXhwIiwhcXl8fGJ5fHxIeSgoZnVuY3Rpb24oKXtyZXR1cm4geHlbTHldPSExLHZ5KG15KSE9bXl8fHZ5KHh5KT09eHl8fCIvYS9pIiE9dnkobXksImkiKX0pKSkpe2Zvcih2YXIgVHk9ZnVuY3Rpb24oQSxnKXt2YXIgSSxCPXRoaXMgaW5zdGFuY2VvZiBUeSxRPVN5KEEpLEM9dm9pZCAwPT09ZztpZighQiYmUSYmQS5jb25zdHJ1Y3Rvcj09PVR5JiZDKXJldHVybiBBO3F5P1EmJiFDJiYoQT1BLnNvdXJjZSk6QSBpbnN0YW5jZW9mIFR5JiYoQyYmKGc9TnkuY2FsbChBKSksQT1BLnNvdXJjZSksYnkmJihJPSEhZyYmZy5pbmRleE9mKCJ5Iik+LTEpJiYoZz1nLnJlcGxhY2UoL3kvZywiIikpO3ZhciBFPVJ5KHF5P25ldyB2eShBLGcpOnZ5KEEsZyksQj90aGlzOkt5LFR5KTtieSYmSSYmKHB5KEUpLnN0aWNreT0hMCk7cmV0dXJuIEV9LE95PWZ1bmN0aW9uKEEpe0EgaW4gVHl8fFV5KFR5LEEse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdnlbQV19LHNldDpmdW5jdGlvbihnKXt2eVtBXT1nfX0pfSxXeT1reSh2eSksWnk9MDtXeS5sZW5ndGg+Wnk7KU95KFd5W1p5KytdKTtLeS5jb25zdHJ1Y3Rvcj1UeSxUeS5wcm90b3R5cGU9S3ksWXkobHksIlJlZ0V4cCIsVHkpfUp5KCJSZWdFeHAiKTt2YXIgank9S0EuaW5jbHVkZXMsUHk9dWc7T0koe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuIGp5KHRoaXMsQSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksUHkoImluY2x1ZGVzIik7dmFyIFh5PVBzLFZ5PWk7T0koe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6IVZzKCJpbmNsdWRlcyIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24oQSl7cmV0dXJuISF+U3RyaW5nKFZ5KHRoaXMpKS5pbmRleE9mKFh5KEEpLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KTt2YXIgenk9QT0+ZnVuY3Rpb24oQSxnKXtpZihnLnN0YXJ0c1dpdGgoImRhdGE6Iikpe3ZhciBJLEI9Zy5yZXBsYWNlKC9eZGF0YTouKj9iYXNlNjQsLywiIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEJ1ZmZlciYmImZ1bmN0aW9uIj09dHlwZW9mIEJ1ZmZlci5mcm9tKUk9QnVmZmVyLmZyb20oQiwiYmFzZTY0Iik7ZWxzZXtpZigiZnVuY3Rpb24iIT10eXBlb2YgYXRvYil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgYmFzZTY0LWVuY29kZWQgZGF0YSBVUkwsIEJ1ZmZlciBhbmQgYXRvYiBhcmUgbm90IHN1cHBvcnRlZCIpO3ZhciBRPWF0b2IoQik7ST1uZXcgVWludDhBcnJheShRLmxlbmd0aCk7Zm9yKHZhciBDPTA7QzxRLmxlbmd0aDtDKyspSVtDXT1RLmNoYXJDb2RlQXQoQyl9cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKEksQSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5zdGFuY2V9KSl9dmFyIEU9dm9pZCAwLGk9dm9pZCAwO3JldHVybiBmZXRjaChnKS50aGVuKChmdW5jdGlvbihnKXtyZXR1cm4gaT0oRT1nKS5oZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIil8fCIiLCJpbnN0YW50aWF0ZVN0cmVhbWluZyJpbiBXZWJBc3NlbWJseSYmaS5zdGFydHNXaXRoKCJhcHBsaWNhdGlvbi93YXNtIik/V2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoRSxBKTpFLmFycmF5QnVmZmVyKCl9KSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEEpOmd9KSkudGhlbigoZnVuY3Rpb24oQSl7cmV0dXJuIEEuaW5zdGFuY2V9KSl9KEEsImRhdGE6YXBwbGljYXRpb24vd2FzbTtiYXNlNjQsQUdGemJRRUFBQUFCL0FJdVlBRi9BWDlnQVg4QVlBSi9md0YvWUFKL2Z3QmdBMzkvZndGL1lBWi9mMzkvZjM4QmYyQUZmMzkvZjM4QmYyQURmMzkvQUdBRWYzOS9md0JnQm45L2YzOS9md0JnQlg5L2YzOS9BR0FFZjM5L2Z3Ri9ZQWgvZjM5L2YzOS9md0YvWUFkL2YzOS9mMzkvQVg5Z0JYOStmbjUrQUdBQUFHQUhmMzkvZjM5L2Z3QmdCSDkvZjM4QmZtQUZmMzkvZjM0QmYyQUFBWDlnQkg5K2ZuOEFZQUovZmdCZ0JYOS9mbjkvQUdBS2YzOS9mMzkvZjM5L2Z3Ri9ZQXgvZjM5L2YzOS9mMzkvZjM4QmYyQUlmMzkvZjM5L2YzOEFZQTkvZjM5L2YzOS9mMzkvZjM5L2YzOEFZQXAvZjM5L2YzOS9mMzkvQUdBTGYzOS9mMzkvZjM5L2YzOEJmMkFHZjN4L2YzOS9BWDlnQjM5L2YzOS9mbjRCZjJBR2YzOS9mMzUrQVg5Z0JYOS9mMzk4QVg5Z0FuOThBR0FFZm41K2ZnRi9ZQUorZndGL1lBSitmZ0Y4WUFGL0FYeGdBMzUrZmdGL1lBTi9mMzhCZkdBRGYzOS9BWDFnQkg5L2YzNEJmbUFDZkg4QmZHQURmMzkrQUdBQ2ZuNEJmV0FDZjM4QmZnSXhDQUZoQVdFQUR3RmhBV0lBQmdGaEFXTUFBZ0ZoQVdRQUFnRmhBV1VBQUFGaEFXWUFCQUZoQVdjQUJ3RmhBV2dBQUFQTEJNa0VBZ0FBQWdNQUFRTUJBQUFBQXdNVER3NEFBQUVEQVFRQUFRQUFBUUFBQWdNQ0FnY09CZ2dLRkFNQ0FBTURBQUlEQUFNREFBNENCQVFBQXdRQUJBQUVBQUFBQXdNREF3UUFBQUVDRlFJSEJRTUdCZ3NDQUNFQ0FBd01CUWdDQUFBQUF3TURBd0FJQUFnQUJ3QUFBQU1DQWdNREFpSVVBQUFFQXdJQUFBTUFCd0lDQUFBWEFCY0FJd01BQUFNQUFRQUJCd0lIQ0FBREFnSUtBd0lCQkFNQUJ3SURBQUFEQXhBRUVBSU5BZzBMQWdzQUFBSVZBQUFFQ0FJQUNRY0lBZ2NEQ2dFQUJBWURBUUFBQXdRWUNnUVlDZ2dSQWdBRUpBNGxKZ0FCQVFBQUNnOEFBQWNCQXhVQkJBZ0NBZ29aQUFjSEdRQUJBd2NDQXdFQ0V3RUlCd29BQUFBQkFBWUhEQUFCQXdFQUFBTUJBUUVBQkJvYkdoc0FBZ0FBQWdNY0F3SUFBQWNESEFNREFnSURDUWNLQ1FrS0NRa0FFQVFRQXdJRkJ3UUFDQ2NvRVFzRkN4RUxBQUlIRVNrQUN3QUJBd0lDQWdjRUFBWXFBZ0FDQWdRckxDMElEZ0lPRkE0QUFRSUNBQUFBQndNREJ3TURBUUFBQWdNQ0FBQUNBUUFDQUFFQkFnUUFBQVFJRmdRQkFRQUFBUk1CQVFBSkNRa0tDZ29BQ0FnSUJBOEJBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQU1EQXdNREF3QUFBUUVHREF3R0RBd0FCZ0FHREF3QkJnWUVDd1FDQkFJQkJnUUxCQUlFQWdzTEN3UUJBUUVCQ1FrRkhnVWVEUTBORFEwTkRBVUZCUVVGQnd3RkJRVUZCUVlmSUJJR0VnY0dCZ1lmSUJJR0Vna0dCZ1VGQlFVRkJRVUZCUVVGQlFVRkFBVUZCUWtGQkFnR0JBZ0lCZ1FESFFRQkFRQUJBQWdCRmdJQ0FBQUJBUUFBQVFBQkFRQUVCQWNCY0FIQkFzRUNCUVlCQVRDQWdBSUdDQUYvQVVHZzF3RUxCMGdQQVdrQ0FBRnFBT2NCQVdzQUdRRnNBQkFCYlFEYUFnRnVBTFFFQVc4QXJnUUJjQUNaQkFGeEFKQUVBWElBckFFQmN3Q0RCQUYwQVFBQmRRQ1ZBd0YyQUpRREFYY0Frd01KeHdRQkFFRUJDOEFDelFTcUJNRUJ2QUdRQTZ3Qmp3T09BNDBEVDArTUE0c0RpZ09JQTlBRWlBUGxBWWNEendUT0JPUUIrUUxNQk1zRXVBSGpBY29FeUFUSkJNY0UwQUhCQk1JRXdBVEZCTVFFd3dSK2tRT0tBZUlCdndTK0JMMEV2QVRoQWJzRXVnUzVCTGdFdHdRUXlRSHZBKzBEd0FPK0E3d0R1Z080QTdZRHRBT3lBN0FEcmdPc0E2b0RxQU9tQTVNQzhBUHVBNDRDNFFQZ0E5OEQzZ1BkQTY4QzNBUGJBOW9EbUFMWUE5Y0QxZ1BWQTlRRFQ5TUQwZ09IQXNzRHlRUElBOGNEeFFQREE0WUN5Z1BHQkpJRHhnUEVBOElEWmlBZzdBUHJBK29ENlFQb0ErY0Q1Z1BsQTY4QzVBUGpBK0lESUkwQ2pRTE1BYjBCdlFIWkE3MEJJTkVEMEFQTUFVOVB6d09JQWlET0E4MER6QUZQVDh3RGlBSm1JTFlFdFFTekJHWWdzZ1N4QkxBRUlLOEVyUVNzQktzRXlBTElBcWtFcUFTbkJLWUVwUVFncEFTakJLSUVvUVMvQXI4Q29BU2ZCSjRFblFTY0JDQ2JCSm9FbUFTWEJKWUVsUVNVQkpNRUlKSUVrUVNQQkk0RWpRU01CSXNFaWdSbUlMa0NpUVNJQkljRWhnU0ZCSVFFd1FPOUE3a0RyUU9wQTdVRHNRTm1JTGtDZ2dTQkJJQUUvd1ArQS8wRHZ3TzdBN2NEcXdPbkE3TURyd1BLQVlJQy9BUEtBWUlDK3dNZ3F3R3JBV3RyYTYwQ1QycHFJS3NCcXdGcmEydXRBazlxYWlDcUFhb0JhNmtCcVFHc0FrOXFhaUNxQWFvQmE2a0JxUUdzQWs5cWFpRDZBL2tESVBnRDl3TWc5Z1AxQXlEMEEvTURJSmtDOGdPc0FTQ1pBdkVEckFGbXBRT2tBMllneVFISkFhTURtUU9jQTZJRElKb0RuUU9oQXlDYkE1NERvQU5tSUpnRGx3T2ZBNVlEQ3FUZkI4a0VCd0FnQUNBQmVBc1VBQ0FBRURVRVFDQUFLQUlFRHdzZ0FDMEFDd3NkQVFGL0lBQVFOUVJBSUFBb0FnQWhBU0FBRUgwYUlBRVFFQXNnQUFzSkFDQUFFQTBnQVdvTDBnRUJCSDhDUUNBQklBQVFDU0lEU3dSQUl3QkJFR3NpQWlRQUlBRWdBMnNpQXdSQUlBQVFFeUVFSUFBUUNTSUJJQU5xSVFVZ0F5QUVJQUZyU3dSQUlBQWdCQ0FGSUFScklBRWdBUkRJQVFzZ0FTQUFFQTBpQkdvZ0EwRUFFUGNCSUFBZ0JSQjRJQUpCQURvQUR5QUVJQVZxSUFKQkQyb1FOQXNNQVFzakFFRVFheUlDSkFBQ1FDQUFFRFVFUUNBQUtBSUFJUU1nQWtFQU9nQVBJQUVnQTJvZ0FrRVBhaEEwSUFBZ0FSQTVEQUVMSUFKQkFEb0FEaUFBSUFGcUlBSkJEbW9RTkNBQUlBRVFPZ3NMSUFKQkVHb2tBQXNSQUNBQUVEVUVRQ0FBS0FJQUR3c2dBQXNLQUNBQUtBSUFFS01CQ3d3QUlBQWdBVUVjYWhDUUFndk1EQUVIZndKQUlBQkZEUUFnQUVFSWF5SURJQUJCQkdzb0FnQWlBVUY0Y1NJQWFpRUZBa0FnQVVFQmNRMEFJQUZCQTNGRkRRRWdBeUFES0FJQUlnRnJJZ05CNklFQktBSUFTUTBCSUFBZ0FXb2hBQ0FEUWV5QkFTZ0NBRWNFUUNBQlFmOEJUUVJBSUFNb0FnZ2lBaUFCUVFOMklnUkJBM1JCZ0lJQmFrWWFJQUlnQXlnQ0RDSUJSZ1JBUWRpQkFVSFlnUUVvQWdCQmZpQUVkM0UyQWdBTUF3c2dBaUFCTmdJTUlBRWdBallDQ0F3Q0N5QURLQUlZSVFZQ1FDQURJQU1vQWd3aUFVY0VRQ0FES0FJSUlnSWdBVFlDRENBQklBSTJBZ2dNQVFzQ1FDQURRUlJxSWdJb0FnQWlCQTBBSUFOQkVHb2lBaWdDQUNJRURRQkJBQ0VCREFFTEEwQWdBaUVISUFRaUFVRVVhaUlDS0FJQUlnUU5BQ0FCUVJCcUlRSWdBU2dDRUNJRURRQUxJQWRCQURZQ0FBc2dCa1VOQVFKQUlBTWdBeWdDSENJQ1FRSjBRWWlFQVdvaUJDZ0NBRVlFUUNBRUlBRTJBZ0FnQVEwQlFkeUJBVUhjZ1FFb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQmtFUVFSUWdCaWdDRUNBRFJodHFJQUUyQWdBZ0FVVU5BZ3NnQVNBR05nSVlJQU1vQWhBaUFnUkFJQUVnQWpZQ0VDQUNJQUUyQWhnTElBTW9BaFFpQWtVTkFTQUJJQUkyQWhRZ0FpQUJOZ0lZREFFTElBVW9BZ1FpQVVFRGNVRURSdzBBUWVDQkFTQUFOZ0lBSUFVZ0FVRitjVFlDQkNBRElBQkJBWEkyQWdRZ0FDQURhaUFBTmdJQUR3c2dBeUFGVHcwQUlBVW9BZ1FpQVVFQmNVVU5BQUpBSUFGQkFuRkZCRUFnQlVId2dRRW9BZ0JHQkVCQjhJRUJJQU0yQWdCQjVJRUJRZVNCQVNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQURRZXlCQVNnQ0FFY05BMEhnZ1FGQkFEWUNBRUhzZ1FGQkFEWUNBQThMSUFWQjdJRUJLQUlBUmdSQVFleUJBU0FETmdJQVFlQ0JBVUhnZ1FFb0FnQWdBR29pQURZQ0FDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFEd3NnQVVGNGNTQUFhaUVBQWtBZ0FVSC9BVTBFUUNBRktBSUlJZ0lnQVVFRGRpSUVRUU4wUVlDQ0FXcEdHaUFDSUFVb0Fnd2lBVVlFUUVIWWdRRkIySUVCS0FJQVFYNGdCSGR4TmdJQURBSUxJQUlnQVRZQ0RDQUJJQUkyQWdnTUFRc2dCU2dDR0NFR0FrQWdCU0FGS0FJTUlnRkhCRUFnQlNnQ0NDSUNRZWlCQVNnQ0FFa2FJQUlnQVRZQ0RDQUJJQUkyQWdnTUFRc0NRQ0FGUVJScUlnSW9BZ0FpQkEwQUlBVkJFR29pQWlnQ0FDSUVEUUJCQUNFQkRBRUxBMEFnQWlFSElBUWlBVUVVYWlJQ0tBSUFJZ1FOQUNBQlFSQnFJUUlnQVNnQ0VDSUVEUUFMSUFkQkFEWUNBQXNnQmtVTkFBSkFJQVVnQlNnQ0hDSUNRUUowUVlpRUFXb2lCQ2dDQUVZRVFDQUVJQUUyQWdBZ0FRMEJRZHlCQVVIY2dRRW9BZ0JCZmlBQ2QzRTJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUZSaHRxSUFFMkFnQWdBVVVOQVFzZ0FTQUdOZ0lZSUFVb0FoQWlBZ1JBSUFFZ0FqWUNFQ0FDSUFFMkFoZ0xJQVVvQWhRaUFrVU5BQ0FCSUFJMkFoUWdBaUFCTmdJWUN5QURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFJQU5CN0lFQktBSUFSdzBCUWVDQkFTQUFOZ0lBRHdzZ0JTQUJRWDV4TmdJRUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQUxJQUJCL3dGTkJFQWdBRUVEZGlJQlFRTjBRWUNDQVdvaEFBSi9RZGlCQVNnQ0FDSUNRUUVnQVhRaUFYRkZCRUJCMklFQklBRWdBbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUNJQUFnQXpZQ0NDQUNJQU0yQWd3Z0F5QUFOZ0lNSUFNZ0FqWUNDQThMUVI4aEFpQURRZ0EzQWhBZ0FFSC8vLzhIVFFSQUlBQkJDSFlpQVNBQlFZRCtQMnBCRUhaQkNIRWlBWFFpQWlBQ1FZRGdIMnBCRUhaQkJIRWlBblFpQkNBRVFZQ0FEMnBCRUhaQkFuRWlCSFJCRDNZZ0FTQUNjaUFFY21zaUFVRUJkQ0FBSUFGQkZXcDJRUUZ4Y2tFY2FpRUNDeUFESUFJMkFod2dBa0VDZEVHSWhBRnFJUUVDUUFKQUFrQkIzSUVCS0FJQUlnUkJBU0FDZENJSGNVVUVRRUhjZ1FFZ0JDQUhjallDQUNBQklBTTJBZ0FnQXlBQk5nSVlEQUVMSUFCQkFFRVpJQUpCQVhacklBSkJIMFliZENFQ0lBRW9BZ0FoQVFOQUlBRWlCQ2dDQkVGNGNTQUFSZzBDSUFKQkhYWWhBU0FDUVFGMElRSWdCQ0FCUVFSeGFpSUhRUkJxS0FJQUlnRU5BQXNnQnlBRE5nSVFJQU1nQkRZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3QkN5QUVLQUlJSWdBZ0F6WUNEQ0FFSUFNMkFnZ2dBMEVBTmdJWUlBTWdCRFlDRENBRElBQTJBZ2dMUWZpQkFVSDRnUUVvQWdCQkFXc2lBRUYvSUFBYk5nSUFDd3NrQVFGL0l3QkJFR3NpQVNRQUlBQkNBRGNDQUNBQVFRQTJBZ2dnQVVFUWFpUUFJQUFMaXdJQ0EzOENmZ0pBSUFBcEEzQWlCRkJGSUFRZ0FDa0RlQ0FBS0FJRUlnRWdBQ2dDTENJQ2E2eDhJZ1ZYY1VVRVFDTUFRUkJySWdJa0FFRi9JUUVDUUNBQUVPa0JEUUFnQUNBQ1FROXFRUUVnQUNnQ0lCRUVBRUVCUncwQUlBSXRBQThoQVFzZ0FrRVFhaVFBSUFFaUEwRUFUZzBCSUFBb0FnUWhBU0FBS0FJc0lRSUxJQUJDZnpjRGNDQUFJQUUyQW1nZ0FDQUZJQUlnQVd1c2ZEY0RlRUYvRHdzZ0JVSUJmQ0VGSUFBb0FnUWhBU0FBS0FJSUlRSUNRQ0FBS1FOd0lnUlFEUUFnQkNBRmZTSUVJQUlnQVd1c1dRMEFJQUVnQktkcUlRSUxJQUFnQWpZQ2FDQUFJQVVnQUNnQ0xDSUFJQUZyckh3M0EzZ2dBQ0FCVHdSQUlBRkJBV3NnQXpvQUFBc2dBd3NaQVFGL1FRb2hBU0FBRURVRWZ5QUFFSDFCQVdzRklBRUxDK01CQVFaL0lBRVEwd0loQXlNQVFSQnJJZ1VrQUFKQUlBTWdBQ0lFRU04QklnQk5CRUFnQkJBTklnWWhBaUFESWdBRWZ3SkFJQUVnQWtZTkFDQUNJQUZySUFCQkFuUlBCRUFnQUVVTkFRTkFJQUlnQVNnQ0FEWUNBQ0FDUVFScUlRSWdBVUVFYWlFQklBQkJBV3NpQUEwQUN3d0JDeUFBUlEwQUEwQWdBaUFBUVFGcklnQkJBblFpQjJvZ0FTQUhhaWdDQURZQ0FDQUFEUUFMQzBFQUJTQUNDeG9nQlVFQU5nSU1JQVlnQTBFQ2RHb2dCVUVNYWhBeklBUWdBeEI0REFFTElBUWdBQ0FESUFCcklBUVFDU0lBUVFBZ0FDQURJQUVROUFFTElBVkJFR29rQUF0ekFRTi9JQUVRa2dFaEFpTUFRUkJySWdRa0FBSkFJQUlnQUJBVElnTk5CRUFnQUJBTklRTWdBZ1JBSUFNZ0FTQUNFT29CQ3lBRVFRQTZBQThnQWlBRGFpQUVRUTlxRURRZ0FDQUNFSGdNQVFzZ0FDQURJQUlnQTJzZ0FCQUpJZ0JCQUNBQUlBSWdBUkQ0QVFzZ0JFRVFhaVFBQyswQ0FRUi9Ba0JCM0lnQkxRQUFRUUZ4RFFCQjNJZ0JFQ1JGRFFBakFFRWdheUlDSkFBQ1FBSkFBMEFnQWtFSWFpQUFRUUowYWdKL1FRRWdBSFJCLy8vLy93ZHhJZ05CQVhKRkJFQWdBRUVDZENnQ0FBd0JDeUFBUVpvZVFhUWZJQU1iRU9BQ0N5SUROZ0lBSUFOQmYwY0VRQ0FBUVFGcUlnQkJCa1lOQWd3QkN3c01BUXRCQUJEZkFrVUVRRUhJTFNFQklBSkJDR3BCeUMwUW53RkZEUUZCNEMwaEFTQUNRUWhxUWVBdEVKOEJSUTBCUVFBaEFFR3dod0V0QUFCRkJFQURRQ0FBUVFKMFFZQ0hBV29nQUVHa0h4RGdBallDQUNBQVFRRnFJZ0JCQmtjTkFBdEJzSWNCUVFFNkFBQkJtSWNCUVlDSEFTZ0NBRFlDQUF0QmdJY0JJUUVnQWtFSWFrR0Fod0VRbndGRkRRRkJtSWNCSVFFZ0FrRUlha0dZaHdFUW53RkZEUUZCR0JBWklnRkZEUUVMSUFFZ0Fpa0RDRGNDQUNBQklBSXBBeGczQWhBZ0FTQUNLUU1RTndJSUN5QUNRU0JxSkFCQjJJZ0JJQUUyQWdCQjNJZ0JFQ01MUWRpSUFTZ0NBQXNGQUJBQUFBdmZDZ0lGZnc5K0l3QkI0QUJySWdVa0FDQUVRdi8vLy8vLy96K0RJZzFDRDRZZ0EwSXhpSVFoRGlBQ0lBU0ZRb0NBZ0lDQWdJQ0FnSCtESVFvZ0FrTC8vLy8vLy84L2d5SUxRaUNJSVE4Z0RVSVJpQ0VRSUFSQ01JaW5RZi8vQVhFaEJ3SkFBa0FnQWtJd2lLZEIvLzhCY1NJSlFRRnJRZjMvQVUwRVFDQUhRUUZyUWY3L0FVa05BUXNnQVZBZ0FrTC8vLy8vLy8vLy8vOEFneUlNUW9DQWdJQ0FnTUQvL3dCVUlBeENnSUNBZ0lDQXdQLy9BRkViUlFSQUlBSkNnSUNBZ0lDQUlJUWhDZ3dDQ3lBRFVDQUVRdi8vLy8vLy8vLy8vd0NESWdKQ2dJQ0FnSUNBd1AvL0FGUWdBa0tBZ0lDQWdJREEvLzhBVVJ0RkJFQWdCRUtBZ0lDQWdJQWdoQ0VLSUFNaEFRd0NDeUFCSUF4Q2dJQ0FnSUNBd1AvL0FJV0VVQVJBSUFJZ0E0UlFCRUJDZ0lDQWdJQ0E0UC8vQUNFS1FnQWhBUXdEQ3lBS1FvQ0FnSUNBZ01ELy93Q0VJUXBDQUNFQkRBSUxJQU1nQWtLQWdJQ0FnSURBLy84QWhZUlFCRUFnQVNBTWhDRUNRZ0FoQVNBQ1VBUkFRb0NBZ0lDQWdPRC8vd0FoQ2d3REN5QUtRb0NBZ0lDQWdNRC8vd0NFSVFvTUFnc2dBU0FNaEZBRVFFSUFJUUVNQWdzZ0FpQURoRkFFUUVJQUlRRU1BZ3NnREVMLy8vLy8vLzgvV0FSQUlBVkIwQUJxSUFFZ0N5QUJJQXNnQzFBaUJodDVJQVpCQm5TdGZLY2lCa0VQYXhBdlFSQWdCbXNoQmlBRktRTllJZ3RDSUlnaER5QUZLUU5RSVFFTElBSkMvLy8vLy8vL1AxWU5BQ0FGUVVCcklBTWdEU0FESUEwZ0RWQWlDQnQ1SUFoQkJuU3RmS2NpQ0VFUGF4QXZJQVlnQ0d0QkVHb2hCaUFGS1FOSUlnSkNENFlnQlNrRFFDSURRakdJaENFT0lBSkNFWWdoRUFzZ0EwSVBoa0tBZ1A3L0Q0TWlBaUFCUWlDSUlnUitJaElnQTBJUmlFTC8vLy8vRDRNaURDQUJRdi8vLy84UGd5SUJmbndpRVVJZ2hpSU5JQUVnQW41OElnTWdEVlN0SUFJZ0MwTC8vLy8vRDRNaUMzNGlGU0FFSUF4K2ZDSVRJQTVDLy8vLy93K0RJZzBnQVg1OEloUWdFU0FTVksxQ0lJWWdFVUlnaUlSOEloRWdBaUFQUW9DQUJJUWlEbjRpRmlBTElBeCtmQ0lQSUFRZ0RYNThJaElnRUVMLy8vLy9CNE5DZ0lDQWdBaUVJZ0lnQVg1OEloQkNJSVo4SWhkOElRRWdCeUFKYWlBR2FrSC8vd0JySVFZQ1FDQUxJQTErSWhnZ0RDQU9mbndpRENBWVZLMGdEQ0FDSUFSK2ZDSUVJQXhVclh3Z0FpQU9mbndnQkNBRUlCTWdGVlN0SUJNZ0ZGYXRmSHdpQkZhdGZDQUNJQXQrSWdzZ0RTQU9mbndpQWlBTFZLMUNJSVlnQWtJZ2lJUjhJQVFnQWtJZ2hud2lBaUFFVksxOElBSWdBaUFRSUJKVXJTQVBJQlpVclNBUElCSldyWHg4UWlDR0lCQkNJSWlFZkNJQ1ZxMThJQUlnQWlBUklCUlVyU0FSSUJkV3JYeDhJZ0pXclh3aUJFS0FnSUNBZ0lEQUFJTlFSUVJBSUFaQkFXb2hCZ3dCQ3lBRFFqK0lJUXNnQkVJQmhpQUNRaitJaENFRUlBSkNBWVlnQVVJL2lJUWhBaUFEUWdHR0lRTWdDeUFCUWdHR2hDRUJDeUFHUWYvL0FVNEVRQ0FLUW9DQWdJQ0FnTUQvL3dDRUlRcENBQ0VCREFFTEFuNGdCa0VBVEFSQVFRRWdCbXNpQjBHQUFVOEVRRUlBSVFFTUF3c2dCVUV3YWlBRElBRWdCa0gvQUdvaUJoQXZJQVZCSUdvZ0FpQUVJQVlRTHlBRlFSQnFJQU1nQVNBSEVId2dCU0FDSUFRZ0J4QjhJQVVwQXpBZ0JTa0RPSVJDQUZLdElBVXBBeUFnQlNrREVJU0VJUU1nQlNrREtDQUZLUU1ZaENFQklBVXBBd0FoQWlBRktRTUlEQUVMSUFSQy8vLy8vLy8vUDRNZ0JxMUNNSWFFQ3lBS2hDRUtJQU5RSUFGQ0FGa2dBVUtBZ0lDQWdJQ0FnSUIvVVJ0RkJFQWdDaUFDUWdGOElnRWdBbFN0ZkNFS0RBRUxJQU1nQVVLQWdJQ0FnSUNBZ0lCL2hZUlFSUVJBSUFJaEFRd0JDeUFLSUFJZ0FrSUJnM3dpQVNBQ1ZLMThJUW9MSUFBZ0FUY0RBQ0FBSUFvM0F3Z2dCVUhnQUdva0FBdUFMZ0VMZnlNQVFSQnJJZ3NrQUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBRUgwQVUwRVFFSFlnUUVvQWdBaUJrRVFJQUJCQzJwQmVIRWdBRUVMU1JzaUIwRURkaUlDZGlJQlFRTnhCRUFnQVVGL2MwRUJjU0FDYWlJRFFRTjBJZ0ZCaUlJQmFpZ0NBQ0lFUVFocUlRQUNRQ0FFS0FJSUlnSWdBVUdBZ2dGcUlnRkdCRUJCMklFQklBWkJmaUFEZDNFMkFnQU1BUXNnQWlBQk5nSU1JQUVnQWpZQ0NBc2dCQ0FEUVFOMElnRkJBM0kyQWdRZ0FTQUVhaUlCSUFFb0FnUkJBWEkyQWdRTURBc2dCMEhnZ1FFb0FnQWlDazBOQVNBQkJFQUNRRUVDSUFKMElnQkJBQ0FBYTNJZ0FTQUNkSEVpQUVFQUlBQnJjVUVCYXlJQUlBQkJESFpCRUhFaUFuWWlBVUVGZGtFSWNTSUFJQUp5SUFFZ0FIWWlBVUVDZGtFRWNTSUFjaUFCSUFCMklnRkJBWFpCQW5FaUFISWdBU0FBZGlJQlFRRjJRUUZ4SWdCeUlBRWdBSFpxSWdOQkEzUWlBRUdJZ2dGcUtBSUFJZ1FvQWdnaUFTQUFRWUNDQVdvaUFFWUVRRUhZZ1FFZ0JrRitJQU4zY1NJR05nSUFEQUVMSUFFZ0FEWUNEQ0FBSUFFMkFnZ0xJQVJCQ0dvaEFDQUVJQWRCQTNJMkFnUWdCQ0FIYWlJQ0lBTkJBM1FpQVNBSGF5SURRUUZ5TmdJRUlBRWdCR29nQXpZQ0FDQUtCRUFnQ2tFRGRpSUJRUU4wUVlDQ0FXb2hCVUhzZ1FFb0FnQWhCQUovSUFaQkFTQUJkQ0lCY1VVRVFFSFlnUUVnQVNBR2NqWUNBQ0FGREFFTElBVW9BZ2dMSVFFZ0JTQUVOZ0lJSUFFZ0JEWUNEQ0FFSUFVMkFnd2dCQ0FCTmdJSUMwSHNnUUVnQWpZQ0FFSGdnUUVnQXpZQ0FBd01DMEhjZ1FFb0FnQWlDVVVOQVNBSlFRQWdDV3R4UVFGcklnQWdBRUVNZGtFUWNTSUNkaUlCUVFWMlFRaHhJZ0FnQW5JZ0FTQUFkaUlCUVFKMlFRUnhJZ0J5SUFFZ0FIWWlBVUVCZGtFQ2NTSUFjaUFCSUFCMklnRkJBWFpCQVhFaUFISWdBU0FBZG1wQkFuUkJpSVFCYWlnQ0FDSUJLQUlFUVhoeElBZHJJUU1nQVNFQ0EwQUNRQ0FDS0FJUUlnQkZCRUFnQWlnQ0ZDSUFSUTBCQ3lBQUtBSUVRWGh4SUFkcklnSWdBeUFDSUFOSklnSWJJUU1nQUNBQklBSWJJUUVnQUNFQ0RBRUxDeUFCS0FJWUlRZ2dBU0FCS0FJTUlnUkhCRUFnQVNnQ0NDSUFRZWlCQVNnQ0FFa2FJQUFnQkRZQ0RDQUVJQUEyQWdnTUN3c2dBVUVVYWlJQ0tBSUFJZ0JGQkVBZ0FTZ0NFQ0lBUlEwRElBRkJFR29oQWdzRFFDQUNJUVVnQUNJRVFSUnFJZ0lvQWdBaUFBMEFJQVJCRUdvaEFpQUVLQUlRSWdBTkFBc2dCVUVBTmdJQURBb0xRWDhoQnlBQVFiOS9TdzBBSUFCQkMyb2lBRUY0Y1NFSFFkeUJBU2dDQUNJSlJRMEFRUUFnQjJzaEF3SkFBa0FDUUFKL1FRQWdCMEdBQWtrTkFCcEJIeUFIUWYvLy93ZExEUUFhSUFCQkNIWWlBQ0FBUVlEK1AycEJFSFpCQ0hFaUFuUWlBQ0FBUVlEZ0gycEJFSFpCQkhFaUFYUWlBQ0FBUVlDQUQycEJFSFpCQW5FaUFIUkJEM1lnQVNBQ2NpQUFjbXNpQUVFQmRDQUhJQUJCRldwMlFRRnhja0VjYWdzaUJrRUNkRUdJaEFGcUtBSUFJZ0pGQkVCQkFDRUFEQUVMUVFBaEFDQUhRUUJCR1NBR1FRRjJheUFHUVI5R0czUWhBUU5BQWtBZ0FpZ0NCRUY0Y1NBSGF5SUZJQU5QRFFBZ0FpRUVJQVVpQXcwQVFRQWhBeUFDSVFBTUF3c2dBQ0FDS0FJVUlnVWdCU0FDSUFGQkhYWkJCSEZxS0FJUUlnSkdHeUFBSUFVYklRQWdBVUVCZENFQklBSU5BQXNMSUFBZ0JISkZCRUJCQUNFRVFRSWdCblFpQUVFQUlBQnJjaUFKY1NJQVJRMERJQUJCQUNBQWEzRkJBV3NpQUNBQVFReDJRUkJ4SWdKMklnRkJCWFpCQ0hFaUFDQUNjaUFCSUFCMklnRkJBblpCQkhFaUFISWdBU0FBZGlJQlFRRjJRUUp4SWdCeUlBRWdBSFlpQVVFQmRrRUJjU0lBY2lBQklBQjJha0VDZEVHSWhBRnFLQUlBSVFBTElBQkZEUUVMQTBBZ0FDZ0NCRUY0Y1NBSGF5SUJJQU5KSVFJZ0FTQURJQUliSVFNZ0FDQUVJQUliSVFRZ0FDZ0NFQ0lCQkg4Z0FRVWdBQ2dDRkFzaUFBMEFDd3NnQkVVTkFDQURRZUNCQVNnQ0FDQUhhMDhOQUNBRUtBSVlJUVlnQkNBRUtBSU1JZ0ZIQkVBZ0JDZ0NDQ0lBUWVpQkFTZ0NBRWthSUFBZ0FUWUNEQ0FCSUFBMkFnZ01DUXNnQkVFVWFpSUNLQUlBSWdCRkJFQWdCQ2dDRUNJQVJRMERJQVJCRUdvaEFnc0RRQ0FDSVFVZ0FDSUJRUlJxSWdJb0FnQWlBQTBBSUFGQkVHb2hBaUFCS0FJUUlnQU5BQXNnQlVFQU5nSUFEQWdMSUFkQjRJRUJLQUlBSWdKTkJFQkI3SUVCS0FJQUlRTUNRQ0FDSUFkcklnRkJFRThFUUVIZ2dRRWdBVFlDQUVIc2dRRWdBeUFIYWlJQU5nSUFJQUFnQVVFQmNqWUNCQ0FDSUFOcUlBRTJBZ0FnQXlBSFFRTnlOZ0lFREFFTFFleUJBVUVBTmdJQVFlQ0JBVUVBTmdJQUlBTWdBa0VEY2pZQ0JDQUNJQU5xSWdBZ0FDZ0NCRUVCY2pZQ0JBc2dBMEVJYWlFQURBb0xJQWRCNUlFQktBSUFJZ2hKQkVCQjVJRUJJQWdnQjJzaUFUWUNBRUh3Z1FGQjhJRUJLQUlBSWdJZ0Iyb2lBRFlDQUNBQUlBRkJBWEkyQWdRZ0FpQUhRUU55TmdJRUlBSkJDR29oQUF3S0MwRUFJUUFnQjBFdmFpSUpBbjlCc0lVQktBSUFCRUJCdUlVQktBSUFEQUVMUWJ5RkFVSi9Od0lBUWJTRkFVS0FvSUNBZ0lBRU53SUFRYkNGQVNBTFFReHFRWEJ4UWRpcTFhb0ZjellDQUVIRWhRRkJBRFlDQUVHVWhRRkJBRFlDQUVHQUlBc2lBV29pQmtFQUlBRnJJZ1Z4SWdJZ0IwME5DVUdRaFFFb0FnQWlCQVJBUVlpRkFTZ0NBQ0lESUFKcUlnRWdBMDBnQVNBRVMzSU5DZ3RCbElVQkxRQUFRUVJ4RFFRQ1FBSkFRZkNCQVNnQ0FDSURCRUJCbUlVQklRQURRQ0FESUFBb0FnQWlBVThFUUNBQklBQW9BZ1JxSUFOTERRTUxJQUFvQWdnaUFBMEFDd3RCQUJCeUlnRkJmMFlOQlNBQ0lRWkJ0SVVCS0FJQUlnTkJBV3NpQUNBQmNRUkFJQUlnQVdzZ0FDQUJha0VBSUFOcmNXb2hCZ3NnQmlBSFRTQUdRZjcvLy84SFMzSU5CVUdRaFFFb0FnQWlCQVJBUVlpRkFTZ0NBQ0lESUFacUlnQWdBMDBnQUNBRVMzSU5CZ3NnQmhCeUlnQWdBVWNOQVF3SEN5QUdJQWhySUFWeElnWkIvdi8vL3dkTERRUWdCaEJ5SWdFZ0FDZ0NBQ0FBS0FJRWFrWU5BeUFCSVFBTElBQkJmMFlnQjBFd2FpQUdUWEpGQkVCQnVJVUJLQUlBSWdFZ0NTQUdhMnBCQUNBQmEzRWlBVUgrLy8vL0Iwc0VRQ0FBSVFFTUJ3c2dBUkJ5UVg5SEJFQWdBU0FHYWlFR0lBQWhBUXdIQzBFQUlBWnJFSElhREFRTElBQWlBVUYvUncwRkRBTUxRUUFoQkF3SEMwRUFJUUVNQlFzZ0FVRi9SdzBDQzBHVWhRRkJsSVVCS0FJQVFRUnlOZ0lBQ3lBQ1FmNy8vLzhIU3cwQklBSVFjaUlCUVg5R1FRQVFjaUlBUVg5R2NpQUFJQUZOY2cwQklBQWdBV3NpQmlBSFFTaHFUUTBCQzBHSWhRRkJpSVVCS0FJQUlBWnFJZ0EyQWdCQmpJVUJLQUlBSUFCSkJFQkJqSVVCSUFBMkFnQUxBa0FDUUFKQVFmQ0JBU2dDQUNJRkJFQkJtSVVCSVFBRFFDQUJJQUFvQWdBaUF5QUFLQUlFSWdKcVJnMENJQUFvQWdnaUFBMEFDd3dDQzBIb2dRRW9BZ0FpQUVFQUlBQWdBVTBiUlFSQVFlaUJBU0FCTmdJQUMwRUFJUUJCbklVQklBWTJBZ0JCbUlVQklBRTJBZ0JCK0lFQlFYODJBZ0JCL0lFQlFiQ0ZBU2dDQURZQ0FFR2toUUZCQURZQ0FBTkFJQUJCQTNRaUEwR0lnZ0ZxSUFOQmdJSUJhaUlDTmdJQUlBTkJqSUlCYWlBQ05nSUFJQUJCQVdvaUFFRWdSdzBBQzBIa2dRRWdCa0VvYXlJRFFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUFheUlDTmdJQVFmQ0JBU0FBSUFGcUlnQTJBZ0FnQUNBQ1FRRnlOZ0lFSUFFZ0EycEJLRFlDQkVIMGdRRkJ3SVVCS0FJQU5nSUFEQUlMSUFBdEFBeEJDSEVnQXlBRlMzSWdBU0FGVFhJTkFDQUFJQUlnQm1vMkFnUkI4SUVCSUFWQmVDQUZhMEVIY1VFQUlBVkJDR3BCQjNFYklnQnFJZ0kyQWdCQjVJRUJRZVNCQVNnQ0FDQUdhaUlCSUFCcklnQTJBZ0FnQWlBQVFRRnlOZ0lFSUFFZ0JXcEJLRFlDQkVIMGdRRkJ3SVVCS0FJQU5nSUFEQUVMUWVpQkFTZ0NBQ0FCU3dSQVFlaUJBU0FCTmdJQUN5QUJJQVpxSVFKQm1JVUJJUUFDUUFKQUFrQUNRQUpBQWtBRFFDQUNJQUFvQWdCSEJFQWdBQ2dDQ0NJQURRRU1BZ3NMSUFBdEFBeEJDSEZGRFFFTFFaaUZBU0VBQTBBZ0JTQUFLQUlBSWdKUEJFQWdBaUFBS0FJRWFpSUVJQVZMRFFNTElBQW9BZ2doQUF3QUN3QUxJQUFnQVRZQ0FDQUFJQUFvQWdRZ0JtbzJBZ1FnQVVGNElBRnJRUWR4UVFBZ0FVRUlha0VIY1J0cUlna2dCMEVEY2pZQ0JDQUNRWGdnQW10QkIzRkJBQ0FDUVFocVFRZHhHMm9pQmlBSElBbHFJZ2hySVFJZ0JTQUdSZ1JBUWZDQkFTQUlOZ0lBUWVTQkFVSGtnUUVvQWdBZ0Ftb2lBRFlDQUNBSUlBQkJBWEkyQWdRTUF3c2dCa0hzZ1FFb0FnQkdCRUJCN0lFQklBZzJBZ0JCNElFQlFlQ0JBU2dDQUNBQ2FpSUFOZ0lBSUFnZ0FFRUJjallDQkNBQUlBaHFJQUEyQWdBTUF3c2dCaWdDQkNJQVFRTnhRUUZHQkVBZ0FFRjRjU0VGQWtBZ0FFSC9BVTBFUUNBR0tBSUlJZ01nQUVFRGRpSUFRUU4wUVlDQ0FXcEdHaUFESUFZb0Fnd2lBVVlFUUVIWWdRRkIySUVCS0FJQVFYNGdBSGR4TmdJQURBSUxJQU1nQVRZQ0RDQUJJQU0yQWdnTUFRc2dCaWdDR0NFSEFrQWdCaUFHS0FJTUlnRkhCRUFnQmlnQ0NDSUFJQUUyQWd3Z0FTQUFOZ0lJREFFTEFrQWdCa0VVYWlJQUtBSUFJZ01OQUNBR1FSQnFJZ0FvQWdBaUF3MEFRUUFoQVF3QkN3TkFJQUFoQkNBRElnRkJGR29pQUNnQ0FDSUREUUFnQVVFUWFpRUFJQUVvQWhBaUF3MEFDeUFFUVFBMkFnQUxJQWRGRFFBQ1FDQUdJQVlvQWh3aUEwRUNkRUdJaEFGcUlnQW9BZ0JHQkVBZ0FDQUJOZ0lBSUFFTkFVSGNnUUZCM0lFQktBSUFRWDRnQTNkeE5nSUFEQUlMSUFkQkVFRVVJQWNvQWhBZ0JrWWJhaUFCTmdJQUlBRkZEUUVMSUFFZ0J6WUNHQ0FHS0FJUUlnQUVRQ0FCSUFBMkFoQWdBQ0FCTmdJWUN5QUdLQUlVSWdCRkRRQWdBU0FBTmdJVUlBQWdBVFlDR0FzZ0JTQUdhaUVHSUFJZ0JXb2hBZ3NnQmlBR0tBSUVRWDV4TmdJRUlBZ2dBa0VCY2pZQ0JDQUNJQWhxSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdCQkEzUkJnSUlCYWlFQ0FuOUIySUVCS0FJQUlnRkJBU0FBZENJQWNVVUVRRUhZZ1FFZ0FDQUJjallDQUNBQ0RBRUxJQUlvQWdnTElRQWdBaUFJTmdJSUlBQWdDRFlDRENBSUlBSTJBZ3dnQ0NBQU5nSUlEQU1MUVI4aEFDQUNRZi8vL3dkTkJFQWdBa0VJZGlJQUlBQkJnUDQvYWtFUWRrRUljU0lEZENJQUlBQkJnT0FmYWtFUWRrRUVjU0lCZENJQUlBQkJnSUFQYWtFUWRrRUNjU0lBZEVFUGRpQUJJQU55SUFCeWF5SUFRUUYwSUFJZ0FFRVZhblpCQVhGeVFSeHFJUUFMSUFnZ0FEWUNIQ0FJUWdBM0FoQWdBRUVDZEVHSWhBRnFJUVFDUUVIY2dRRW9BZ0FpQTBFQklBQjBJZ0Z4UlFSQVFkeUJBU0FCSUFOeU5nSUFJQVFnQ0RZQ0FDQUlJQVEyQWhnTUFRc2dBa0VBUVJrZ0FFRUJkbXNnQUVFZlJodDBJUUFnQkNnQ0FDRUJBMEFnQVNJREtBSUVRWGh4SUFKR0RRTWdBRUVkZGlFQklBQkJBWFFoQUNBRElBRkJCSEZxSWdRb0FoQWlBUTBBQ3lBRUlBZzJBaEFnQ0NBRE5nSVlDeUFJSUFnMkFnd2dDQ0FJTmdJSURBSUxRZVNCQVNBR1FTaHJJZ05CZUNBQmEwRUhjVUVBSUFGQkNHcEJCM0ViSWdCcklnSTJBZ0JCOElFQklBQWdBV29pQURZQ0FDQUFJQUpCQVhJMkFnUWdBU0FEYWtFb05nSUVRZlNCQVVIQWhRRW9BZ0EyQWdBZ0JTQUVRU2NnQkd0QkIzRkJBQ0FFUVNkclFRZHhHMnBCTDJzaUFDQUFJQVZCRUdwSkd5SUNRUnMyQWdRZ0FrR2doUUVwQWdBM0FoQWdBa0dZaFFFcEFnQTNBZ2hCb0lVQklBSkJDR28yQWdCQm5JVUJJQVkyQWdCQm1JVUJJQUUyQWdCQnBJVUJRUUEyQWdBZ0FrRVlhaUVBQTBBZ0FFRUhOZ0lFSUFCQkNHb2hBU0FBUVFScUlRQWdBU0FFU1EwQUN5QUNJQVZHRFFNZ0FpQUNLQUlFUVg1eE5nSUVJQVVnQWlBRmF5SUVRUUZ5TmdJRUlBSWdCRFlDQUNBRVFmOEJUUVJBSUFSQkEzWWlBRUVEZEVHQWdnRnFJUUlDZjBIWWdRRW9BZ0FpQVVFQklBQjBJZ0J4UlFSQVFkaUJBU0FBSUFGeU5nSUFJQUlNQVFzZ0FpZ0NDQXNoQUNBQ0lBVTJBZ2dnQUNBRk5nSU1JQVVnQWpZQ0RDQUZJQUEyQWdnTUJBdEJIeUVBSUFWQ0FEY0NFQ0FFUWYvLy93ZE5CRUFnQkVFSWRpSUFJQUJCZ1A0L2FrRVFka0VJY1NJQ2RDSUFJQUJCZ09BZmFrRVFka0VFY1NJQmRDSUFJQUJCZ0lBUGFrRVFka0VDY1NJQWRFRVBkaUFCSUFKeUlBQnlheUlBUVFGMElBUWdBRUVWYW5aQkFYRnlRUnhxSVFBTElBVWdBRFlDSENBQVFRSjBRWWlFQVdvaEF3SkFRZHlCQVNnQ0FDSUNRUUVnQUhRaUFYRkZCRUJCM0lFQklBRWdBbkkyQWdBZ0F5QUZOZ0lBSUFVZ0F6WUNHQXdCQ3lBRVFRQkJHU0FBUVFGMmF5QUFRUjlHRzNRaEFDQURLQUlBSVFFRFFDQUJJZ0lvQWdSQmVIRWdCRVlOQkNBQVFSMTJJUUVnQUVFQmRDRUFJQUlnQVVFRWNXb2lBeWdDRUNJQkRRQUxJQU1nQlRZQ0VDQUZJQUkyQWhnTElBVWdCVFlDRENBRklBVTJBZ2dNQXdzZ0F5Z0NDQ0lBSUFnMkFnd2dBeUFJTmdJSUlBaEJBRFlDR0NBSUlBTTJBZ3dnQ0NBQU5nSUlDeUFKUVFocUlRQU1CUXNnQWlnQ0NDSUFJQVUyQWd3Z0FpQUZOZ0lJSUFWQkFEWUNHQ0FGSUFJMkFnd2dCU0FBTmdJSUMwSGtnUUVvQWdBaUFDQUhUUTBBUWVTQkFTQUFJQWRySWdFMkFnQkI4SUVCUWZDQkFTZ0NBQ0lDSUFkcUlnQTJBZ0FnQUNBQlFRRnlOZ0lFSUFJZ0IwRURjallDQkNBQ1FRaHFJUUFNQXd0QjFJRUJRVEEyQWdCQkFDRUFEQUlMQWtBZ0JrVU5BQUpBSUFRb0Fod2lBa0VDZEVHSWhBRnFJZ0FvQWdBZ0JFWUVRQ0FBSUFFMkFnQWdBUTBCUWR5QkFTQUpRWDRnQW5keElnazJBZ0FNQWdzZ0JrRVFRUlFnQmlnQ0VDQUVSaHRxSUFFMkFnQWdBVVVOQVFzZ0FTQUdOZ0lZSUFRb0FoQWlBQVJBSUFFZ0FEWUNFQ0FBSUFFMkFoZ0xJQVFvQWhRaUFFVU5BQ0FCSUFBMkFoUWdBQ0FCTmdJWUN3SkFJQU5CRDAwRVFDQUVJQU1nQjJvaUFFRURjallDQkNBQUlBUnFJZ0FnQUNnQ0JFRUJjallDQkF3QkN5QUVJQWRCQTNJMkFnUWdCQ0FIYWlJRklBTkJBWEkyQWdRZ0F5QUZhaUFETmdJQUlBTkIvd0ZOQkVBZ0EwRURkaUlBUVFOMFFZQ0NBV29oQWdKL1FkaUJBU2dDQUNJQlFRRWdBSFFpQUhGRkJFQkIySUVCSUFBZ0FYSTJBZ0FnQWd3QkN5QUNLQUlJQ3lFQUlBSWdCVFlDQ0NBQUlBVTJBZ3dnQlNBQ05nSU1JQVVnQURZQ0NBd0JDMEVmSVFBZ0EwSC8vLzhIVFFSQUlBTkJDSFlpQUNBQVFZRCtQMnBCRUhaQkNIRWlBblFpQUNBQVFZRGdIMnBCRUhaQkJIRWlBWFFpQUNBQVFZQ0FEMnBCRUhaQkFuRWlBSFJCRDNZZ0FTQUNjaUFBY21zaUFFRUJkQ0FESUFCQkZXcDJRUUZ4Y2tFY2FpRUFDeUFGSUFBMkFod2dCVUlBTndJUUlBQkJBblJCaUlRQmFpRUJBa0FDUUNBSlFRRWdBSFFpQW5GRkJFQkIzSUVCSUFJZ0NYSTJBZ0FnQVNBRk5nSUFEQUVMSUFOQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQndOQUlBY2lBU2dDQkVGNGNTQURSZzBDSUFCQkhYWWhBaUFBUVFGMElRQWdBU0FDUVFSeGFpSUNLQUlRSWdjTkFBc2dBaUFGTmdJUUN5QUZJQUUyQWhnZ0JTQUZOZ0lNSUFVZ0JUWUNDQXdCQ3lBQktBSUlJZ0FnQlRZQ0RDQUJJQVUyQWdnZ0JVRUFOZ0lZSUFVZ0FUWUNEQ0FGSUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFoRkRRQUNRQ0FCS0FJY0lnSkJBblJCaUlRQmFpSUFLQUlBSUFGR0JFQWdBQ0FFTmdJQUlBUU5BVUhjZ1FFZ0NVRitJQUozY1RZQ0FBd0NDeUFJUVJCQkZDQUlLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFnMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUhhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0IwRURjallDQkNBQklBZHFJZ0lnQTBFQmNqWUNCQ0FDSUFOcUlBTTJBZ0FnQ2dSQUlBcEJBM1lpQUVFRGRFR0FnZ0ZxSVFWQjdJRUJLQUlBSVFRQ2YwRUJJQUIwSWdBZ0JuRkZCRUJCMklFQklBQWdCbkkyQWdBZ0JRd0JDeUFGS0FJSUN5RUFJQVVnQkRZQ0NDQUFJQVEyQWd3Z0JDQUZOZ0lNSUFRZ0FEWUNDQXRCN0lFQklBSTJBZ0JCNElFQklBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMcHdFQkJIOGpBRUVnYXlJQkpBQWdBVUVBTmdJTUlBRkJOellDQ0NBQklBRXBBd2czQXdBZ0FVRVFhaUlESUFFcEFnQTNBZ1FnQXlBQU5nSUFJd0JCRUdzaUFpUUFJQUFvQWdCQmYwY0VRQ0FDUVFocUlnUWdBeEI2R2lBQ0lBUVFlaG9EUUNBQUtBSUFRUUZHRFFBTElBQW9BZ0JGQkVBZ0FFRUJOZ0lBSUFKQk9CRUJBQ0FBUVg4MkFnQUxDeUFDUVJCcUpBQWdBQ2dDQkNFQUlBRkJJR29rQUNBQVFRRnJDeHNBSUFCQkFEWUNCQ0FBUWRqOEFEWUNBQ0FBUVpqV0FEWUNBQXVZQmdFSmZ5TUFRUkJySWdna0FDQUFFTTRCSXdCQkVHc2lBaVFBSUFJZ0FEWUNEQ0FJUVFocUlnVWdBa0VNYWhBeklBSkJFR29rQUVHd2xRRVFVQ0FCVFFSQUFrQkJzSlVCRUZBaUFpQUJRUUZxSWdCSkJFQWpBRUVnYXlJSkpBQUNRQ0FBSUFKcklnWkJzSlVCRUVNb0FnQkJ0SlVCS0FJQWEwRUNkVTBFUUNBR0VKY0NEQUVMUWJDVkFSQjBJUWNnQ1VFSWFpRUNBbjlCc0pVQkVGQWdCbW9oQkNNQVFSQnJJZ0FrQUNBQUlBUTJBZ3dnQkJDQkFpSURUUVJBUWJDVkFSQnpJZ1FnQTBFQmRra0VRQ0FBSUFSQkFYUTJBZ2dnQUVFSWFpQUFRUXhxRUhZb0FnQWhBd3NnQUVFUWFpUUFJQU1NQVFzUUZ3QUxJUUJCc0pVQkVGQWhDa0VBSVFNakFFRVFheUlFSkFBZ0JFRUFOZ0lNSUFKQkRHb2dCRUVNYWlBSEVJUUNJQUFFUUNBQ0tBSVFJQUFRZ0FJaEF3c2dBaUFETmdJQUlBSWdBeUFLUVFKMGFpSUhOZ0lJSUFJZ0J6WUNCQ0FDRUlNQklBTWdBRUVDZEdvMkFnQWdCRUVRYWlRQUl3QkJFR3NpQUNRQUlBQWdBaWdDQ0RZQ0FDQUNLQUlJSVFNZ0FDQUNRUWhxTmdJSUlBQWdBeUFHUVFKMGFqWUNCQ0FBS0FJQUlRTURRQ0FBS0FJRUlBTkhCRUFnQWlnQ0VDQUFLQUlBRVA0QklBQWdBQ2dDQUVFRWFpSUROZ0lBREFFTEN5QUFLQUlJSUFBb0FnQTJBZ0FnQUVFUWFpUUFRYkNWQVJDUkFrR3dsUUVRZEVHd2xRRW9BZ0JCdEpVQktBSUFJQUpCQkdvaUFCQ0RBa0d3bFFFZ0FCQjFRYlNWQVNBQ1FRaHFFSFZCc0pVQkVFTWdBaENEQVJCMUlBSWdBaWdDQkRZQ0FFR3dsUUVRVUJEL0FTQUNLQUlFSVFBRFFDQUFJQUlvQWdoSEJFQWdBaWdDRUJvZ0FpQUNLQUlJUVFSck5nSUlEQUVMQ3lBQ0tBSUFCRUFnQWlnQ0VDQUNLQUlBSUFJUWd3RW9BZ0FnQWlnQ0FHdEJBblVRL0FFTEN5QUpRU0JxSkFBTUFRc2dBQ0FDU1FSQVFiQ1ZBU2dDQUNBQVFRSjBhaUVBUWJDVkFSQlFJUUpCc0pVQklBQVErd0ZCc0pVQklBSVFsQUlMQ3d0QnNKVUJJQUVRZHlnQ0FBUkFRYkNWQVNBQkVIY29BZ0FRb3dFTElBVVFwZ0VoQUVHd2xRRWdBUkIzSUFBMkFnQWdCU2dDQUNFQUlBVkJBRFlDQUNBQUJFQWdBQkNqQVFzZ0NFRVFhaVFBQ3dnQUlBQkJBQkFuQ3k4QkFYOGpBRUVRYXlJREpBQWdBeUFCTmdJTUlBQWdBMEVNYWhBeklBQkJCR29nQWhBeklBTkJFR29rQUNBQUN4QUFJQUFvQWdBUWdBTkJHSFJCR0hVTEJnQWdBQkFRQ3dvQUlBQW9BZ0FRK3dJTERRQWdBQ2dDQUJEL0Fob2dBQXRMQVFKL0l3QkJFR3NpQVNRQUlBRWdBQkR5QVNFQUl3QkJFR3NpQWlRQUlBSkJDR29nQUNnQ0JCQjZLQUlBUVFFNkFBQWdBQ2dDQ0VFQk9nQUFJQUpCRUdva0FDQUJRUkJxSkFBTGR3RURmeU1BUVJCcklnSWtBQ0FDSUFBUThnRWhBQ01BUVJCcklnTWtBQ0FEUVFocUlBQW9BZ1FRZWlnQ0FDMEFBRVVFUUFKL0FrQWdBQ2dDQ0NJQUxRQUFJZ0ZCQVVjRWZ5QUJRUUp4RFFFZ0FFRUNPZ0FBUVFFRlFRQUxEQUVMRUJjQUN5RUJDeUFEUVJCcUpBQWdBa0VRYWlRQUlBRUxEUUFnQUNnQ0FCRDZBaG9nQUFzSkFDQUFJQUVRZ1FNTEpBRUJmeUFBS0FJQUlRSWdBQ0FCTmdJQUlBSUVRQ0FDSUFBUWxnRW9BZ0FSQVFBTEN3a0FJQUFnQVJEOEFnc1JBQ0FBSUFFZ0FDZ0NBQ2dDSEJFQ0FBdS9BUUVEZnlBQUxRQUFRU0J4UlFSQUFrQWdBU0VEQWtBZ0FpQUFJZ0VvQWhBaUFBUi9JQUFGSUFFUTZBRU5BU0FCS0FJUUN5QUJLQUlVSWdWclN3UkFJQUVnQXlBQ0lBRW9BaVFSQkFBYURBSUxBa0FnQVNnQ1VFRUFTQTBBSUFJaEFBTkFJQUFpQkVVTkFTQURJQVJCQVdzaUFHb3RBQUJCQ2tjTkFBc2dBU0FESUFRZ0FTZ0NKQkVFQUNBRVNRMEJJQU1nQkdvaEF5QUNJQVJySVFJZ0FTZ0NGQ0VGQ3lBRklBTWdBaEJDR2lBQklBRW9BaFFnQW1vMkFoUUxDd3NMZFFFQmZpQUFJQUVnQkg0Z0FpQURmbndnQTBJZ2lDSUNJQUZDSUlnaUJINThJQU5DLy8vLy93K0RJZ01nQVVMLy8vLy9ENE1pQVg0aUJVSWdpQ0FESUFSK2ZDSURRaUNJZkNBQklBSitJQU5DLy8vLy93K0RmQ0lCUWlDSWZEY0RDQ0FBSUFWQy8vLy8vdytESUFGQ0lJYUVOd01BQzBNQkFYOGpBRUVRYXlJRkpBQWdCU0FDTmdJTUlBVWdCRFlDQ0NBRklBVkJER29RVWlFQ0lBQWdBU0FESUFVb0FnZ1F0UUVoQUNBQ0VGRWdCVUVRYWlRQUlBQUxvUUVCQW44Q1FDQUFFQWxGSUFJZ0FXdEJCVWh5RFFBZ0FTQUNFSzBCSUFKQkJHc2hCQ0FBRUEwaUFpQUFFQWxxSVFVQ1FBTkFBa0FnQWl3QUFDRUFJQUVnQkU4TkFDQUFRUUJNSUFCQi93Qk9ja1VFUUNBQktBSUFJQUlzQUFCSERRTUxJQUZCQkdvaEFTQUNJQVVnQW10QkFVcHFJUUlNQVFzTElBQkJBRXdnQUVIL0FFNXlEUUVnQWl3QUFDQUVLQUlBUVFGclN3MEJDeUFEUVFRMkFnQUxDMjBCQVg4akFFR0FBbXNpQlNRQUlBUkJnTUFFY1NBQ0lBTk1ja1VFUUNBRklBRkIvd0Z4SUFJZ0Eyc2lBa0dBQWlBQ1FZQUNTU0lCR3hCR0dpQUJSUVJBQTBBZ0FDQUZRWUFDRUNvZ0FrR0FBbXNpQWtIL0FVc05BQXNMSUFBZ0JTQUNFQ29MSUFWQmdBSnFKQUFMVUFFQmZnSkFJQU5Cd0FCeEJFQWdBU0FEUVVCcXJZWWhBa0lBSVFFTUFRc2dBMFVOQUNBQ0lBT3RJZ1NHSUFGQndBQWdBMnV0aUlRaEFpQUJJQVNHSVFFTElBQWdBVGNEQUNBQUlBSTNBd2dMVlFFQ2Z5TUFRUkJySWdJa0FDQUFFRFVFUUNBQUtBSUFJUU1nQUJCOUdpQURFQkFMSUFBZ0FTZ0NDRFlDQ0NBQUlBRXBBZ0EzQWdBZ0FVRUFFRG9nQWtFQU9nQVBJQUVnQWtFUGFoQTBJQUpCRUdva0FBc01BQ0FBSUFFUWdRTkJBWE1MQ2dBZ0FFR0VpUUVRWkFzTUFDQUFJQUVvQWdBMkFnQUxEQUFnQUNBQkxRQUFPZ0FBQ3dvQUlBQXRBQXRCQjNZTERBQWdBQ0FCRVB3Q1FRRnpDeEVBSUFBZ0FTQUJLQUlBS0FJVUVRTUFDdzhBSUFBZ0FDZ0NBQ2dDRUJFQUFBc0pBQ0FBSUFFMkFnUUxDUUFnQUNBQk9nQUxDd29BSUFCQi9JZ0JFR1FMMFFrQ0JIOEVmaU1BUWZBQWF5SUZKQUFnQkVMLy8vLy8vLy8vLy84QWd5RUtBa0FDUUNBQlFnRjlJZ3RDZjFFZ0FrTC8vLy8vLy8vLy8vOEFneUlKSUFFZ0MxYXRmRUlCZlNJTFF2Ly8vLy8vLzcvLy93QldJQXRDLy8vLy8vLy92Ly8vQUZFYlJRUkFJQU5DQVgwaUMwSi9VaUFLSUFNZ0MxYXRmRUlCZlNJTFF2Ly8vLy8vLzcvLy93QlVJQXRDLy8vLy8vLy92Ly8vQUZFYkRRRUxJQUZRSUFsQ2dJQ0FnSUNBd1AvL0FGUWdDVUtBZ0lDQWdJREEvLzhBVVJ0RkJFQWdBa0tBZ0lDQWdJQWdoQ0VFSUFFaEF3d0NDeUFEVUNBS1FvQ0FnSUNBZ01ELy93QlVJQXBDZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQVJDZ0lDQWdJQ0FJSVFoQkF3Q0N5QUJJQWxDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRb0NBZ0lDQWdPRC8vd0FnQWlBQklBT0ZJQUlnQklWQ2dJQ0FnSUNBZ0lDQWY0V0VVQ0lHR3lFRVFnQWdBU0FHR3lFRERBSUxJQU1nQ2tLQWdJQ0FnSURBLy84QWhZUlFEUUVnQVNBSmhGQUVRQ0FESUFxRVFnQlNEUUlnQVNBRGd5RURJQUlnQklNaEJBd0NDeUFESUFxRVVFVU5BQ0FCSVFNZ0FpRUVEQUVMSUFNZ0FTQUJJQU5VSUFrZ0NsUWdDU0FLVVJzaUJ4c2hDaUFFSUFJZ0J4c2lDMEwvLy8vLy8vOC9neUVKSUFJZ0JDQUhHeUlDUWpDSXAwSC8vd0Z4SVFnZ0MwSXdpS2RCLy84QmNTSUdSUVJBSUFWQjRBQnFJQW9nQ1NBS0lBa2dDVkFpQmh0NUlBWkJCblN0ZktjaUJrRVBheEF2SUFVcEEyZ2hDU0FGS1FOZ0lRcEJFQ0FHYXlFR0N5QUJJQU1nQnhzaEF5QUNRdi8vLy8vLy96K0RJUVFnQ0VVRVFDQUZRZEFBYWlBRElBUWdBeUFFSUFSUUlnY2JlU0FIUVFaMHJYeW5JZ2RCRDJzUUwwRVFJQWRySVFnZ0JTa0RXQ0VFSUFVcEExQWhBd3NnQkVJRGhpQURRajJJaEVLQWdJQ0FnSUNBQklRaEJDQUpRZ09HSUFwQ1BZaUVJUWtnQWlBTGhTRU1BbjRnQTBJRGhpSUJJQVlnQ0dzaUIwVU5BQm9nQjBIL0FFc0VRRUlBSVFSQ0FRd0JDeUFGUVVCcklBRWdCRUdBQVNBSGF4QXZJQVZCTUdvZ0FTQUVJQWNRZkNBRktRTTRJUVFnQlNrRE1DQUZLUU5BSUFVcEEwaUVRZ0JTcllRTElRSWdDVUtBZ0lDQWdJQ0FCSVFoQ1NBS1FnT0dJUU1DUUNBTVFnQlRCRUFnQXlBQ2ZTSUJJQWtnQkgwZ0FpQURWcTE5SWdTRVVBUkFRZ0FoQTBJQUlRUU1Bd3NnQkVMLy8vLy8vLy8vQTFZTkFTQUZRU0JxSUFFZ0JDQUJJQVFnQkZBaUJ4dDVJQWRCQm5TdGZLZEJER3NpQnhBdklBWWdCMnNoQmlBRktRTW9JUVFnQlNrRElDRUJEQUVMSUFJZ0Ezd2lBU0FDVkswZ0JDQUpmSHdpQkVLQWdJQ0FnSUNBQ0lOUURRQWdBVUlCZ3lBRVFqK0dJQUZDQVlpRWhDRUJJQVpCQVdvaEJpQUVRZ0dJSVFRTElBdENnSUNBZ0lDQWdJQ0FmNE1oQWlBR1FmLy9BVTRFUUNBQ1FvQ0FnSUNBZ01ELy93Q0VJUVJDQUNFRERBRUxRUUFoQndKQUlBWkJBRW9FUUNBR0lRY01BUXNnQlVFUWFpQUJJQVFnQmtIL0FHb1FMeUFGSUFFZ0JFRUJJQVpyRUh3Z0JTa0RBQ0FGS1FNUUlBVXBBeGlFUWdCU3JZUWhBU0FGS1FNSUlRUUxJQUduUVFkeElnWkJCRXV0SUFSQ1BZWWdBVUlEaUlRaUFYd2lBeUFCVkswZ0JFSURpRUwvLy8vLy8vOC9neUFIclVJd2hvUWdBb1I4SVFRQ1FDQUdRUVJHQkVBZ0JDQURRZ0dESWdFZ0Ezd2lBeUFCVksxOElRUU1BUXNnQmtVTkFRc0xJQUFnQXpjREFDQUFJQVEzQXdnZ0JVSHdBR29rQUFzUkFDQUFJQUVnQUNnQ0FDZ0NMQkVDQUFzdEFDQUNSUVJBSUFBb0FnUWdBU2dDQkVZUEN5QUFJQUZHQkVCQkFROExJQUFvQWdRZ0FTZ0NCQkMyQVVVTFl3QWdBaWdDQkVHd0FYRWlBa0VnUmdSQUlBRVBDd0pBSUFKQkVFY05BQUpBQWtBZ0FDMEFBQ0lDUVN0ckRnTUFBUUFCQ3lBQVFRRnFEd3NnQWtFd1J5QUJJQUJyUVFKSWNnMEFJQUF0QUFGQklISkIrQUJIRFFBZ0FFRUNhaUVBQ3lBQUN5WUJBWDhqQUVFUWF5SUJKQUFnQVVFSWFpQUFFQTBRZWlnQ0FDRUFJQUZCRUdva0FDQUFDMzRDQW44QmZpTUFRUkJySWdNa0FDQUFBbjRnQVVVRVFFSUFEQUVMSUFNZ0FTQUJRUjkxSWdKcUlBSnpJZ0t0UWdBZ0FtY2lBa0hSQUdvUUx5QURLUU1JUW9DQWdJQ0FnTUFBaFVHZWdBRWdBbXV0UWpDR2ZDQUJRWUNBZ0lCNGNhMUNJSWFFSVFRZ0F5a0RBQXMzQXdBZ0FDQUVOd01JSUFOQkVHb2tBQXVEQkFFRGZ5QUNRWUFFVHdSQUlBQWdBU0FDRUFVYUlBQVBDeUFBSUFKcUlRTUNRQ0FBSUFGelFRTnhSUVJBQWtBZ0FFRURjVVVFUUNBQUlRSU1BUXNnQWtFQVRBUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FVRUJhaUVCSUFKQkFXb2lBa0VEY1VVTkFTQUNJQU5KRFFBTEN3SkFJQU5CZkhFaUJFSEFBRWtOQUNBQ0lBUkJRR29pQlVzTkFBTkFJQUlnQVNnQ0FEWUNBQ0FDSUFFb0FnUTJBZ1FnQWlBQktBSUlOZ0lJSUFJZ0FTZ0NERFlDRENBQ0lBRW9BaEEyQWhBZ0FpQUJLQUlVTmdJVUlBSWdBU2dDR0RZQ0dDQUNJQUVvQWh3MkFod2dBaUFCS0FJZ05nSWdJQUlnQVNnQ0pEWUNKQ0FDSUFFb0FpZzJBaWdnQWlBQktBSXNOZ0lzSUFJZ0FTZ0NNRFlDTUNBQ0lBRW9BalEyQWpRZ0FpQUJLQUk0TmdJNElBSWdBU2dDUERZQ1BDQUJRVUJySVFFZ0FrRkFheUlDSUFWTkRRQUxDeUFDSUFSUERRRURRQ0FDSUFFb0FnQTJBZ0FnQVVFRWFpRUJJQUpCQkdvaUFpQUVTUTBBQ3d3QkN5QURRUVJKQkVBZ0FDRUNEQUVMSUFBZ0EwRUVheUlFU3dSQUlBQWhBZ3dCQ3lBQUlRSURRQ0FDSUFFdEFBQTZBQUFnQWlBQkxRQUJPZ0FCSUFJZ0FTMEFBam9BQWlBQ0lBRXRBQU02QUFNZ0FVRUVhaUVCSUFKQkJHb2lBaUFFVFEwQUN3c2dBaUFEU1FSQUEwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwY05BQXNMSUFBTEJ3QWdBRUVJYWdzbkFRRi9JQUpCQUU0RWZ5QUFLQUlJSUFKQi93RnhRUUYwYWk4QkFDQUJjVUVBUndVZ0F3c0xDZ0FnQUVFd2EwRUtTUXZ5QWdJQ2Z3RitBa0FnQWtVTkFDQUFJQUU2QUFBZ0FDQUNhaUlEUVFGcklBRTZBQUFnQWtFRFNRMEFJQUFnQVRvQUFpQUFJQUU2QUFFZ0EwRURheUFCT2dBQUlBTkJBbXNnQVRvQUFDQUNRUWRKRFFBZ0FDQUJPZ0FESUFOQkJHc2dBVG9BQUNBQ1FRbEpEUUFnQUVFQUlBQnJRUU54SWdScUlnTWdBVUgvQVhGQmdZS0VDR3dpQVRZQ0FDQURJQUlnQkd0QmZIRWlCR29pQWtFRWF5QUJOZ0lBSUFSQkNVa05BQ0FESUFFMkFnZ2dBeUFCTmdJRUlBSkJDR3NnQVRZQ0FDQUNRUXhySUFFMkFnQWdCRUVaU1EwQUlBTWdBVFlDR0NBRElBRTJBaFFnQXlBQk5nSVFJQU1nQVRZQ0RDQUNRUkJySUFFMkFnQWdBa0VVYXlBQk5nSUFJQUpCR0dzZ0FUWUNBQ0FDUVJ4cklBRTJBZ0FnQkNBRFFRUnhRUmh5SWdScklnSkJJRWtOQUNBQnJVS0JnSUNBRUg0aEJTQURJQVJxSVFFRFFDQUJJQVUzQXhnZ0FTQUZOd01RSUFFZ0JUY0RDQ0FCSUFVM0F3QWdBVUVnYWlFQklBSkJJR3NpQWtFZlN3MEFDd3NnQUFzM0FRSi9Jd0JCRUdzaUFpUUFBMEFnQVVFRFJ3UkFJQUFnQVVFQ2RHcEJBRFlDQUNBQlFRRnFJUUVNQVFzTElBSkJFR29rQUNBQUN3OEFJQUFnQUNnQ0FDZ0NEQkVBQUFzSEFDQUFFQWxGQ3hFQUlBQWdBU0FCS0FJQUtBSWNFUU1BQ3hFQUlBQWdBU0FCS0FJQUtBSVlFUU1BQ3hBQUlBQWdBVUdBZ0lDQWVISTJBZ2dMQ1FBZ0FDQUJOZ0lBQ3hNQUlBQWdBU0FDSUFBb0FnQW9BZ3dSQkFBTEJBQkJBQXNRQUNBQUtBSUVJQUFvQWdCclFRSjFDeElBSUFBb0FnQWlBQVJBSUFBUTBRSWFDd3NSQUNBQUlBRW9BZ0FRMFFJMkFnQWdBQXRCQVFGL0lBQWdBVGNEY0NBQUlBQW9BaXdnQUNnQ0JDSUNhNnczQTNnZ0FDQUJVQ0FBS0FJSUlnQWdBbXVzSUFGWGNnUi9JQUFGSUFJZ0FhZHFDellDYUFzaUFRRi9Jd0JCRUdzaUFpUUFJQUFnQVNBQkVKSUJFUFlCSUFKQkVHb2tBQ0FBQ3hBQUlBSUVRQ0FBSUFFZ0FoQkNHZ3NMblFFQkJIOGpBRUVRYXlJSEpBQUNRQ0FBUlEwQUlBUW9BZ3doQmlBQ0lBRnJJZ2hCQUVvRVFDQUFJQUVnQ0JCL0lBaEhEUUVMSUFZZ0F5QUJheUlCYTBFQUlBRWdCa2diSWdGQkFFb0VRQ0FBSUFjZ0FTQUZFTzhCSWdVUURTQUJFSDhoQmlBRkVBb2FJQUVnQmtjTkFRc2dBeUFDYXlJQlFRQktCRUFnQUNBQ0lBRVFmeUFCUncwQkN5QUVFTzRCSUFBaENRc2dCMEVRYWlRQUlBa0xWUUVDZnlNQVFSQnJJZ0lrQUNBQUVEVUVRQ0FBS0FJQUlRTWdBQkI5R2lBREVCQUxJQUFnQVNnQ0NEWUNDQ0FBSUFFcEFnQTNBZ0FnQVVFQUVEb2dBa0VBTmdJTUlBRWdBa0VNYWhBeklBSkJFR29rQUF1OEFRRURmeU1BUVJCcklnVWtBQ0FGSUFFMkFnaEJBQ0VCUVFZaEJnSkFBa0FnQUNBRlFRaHFFQ2dOQUVFRUlRWWdBMEdBRUNBQUVDRWlCeEJPUlEwQUlBTWdCeENIQVNFQkEwQUNRQ0FBRUNVYUlBRkJNR3NoQVNBQUlBVkJDR29RTmtVZ0JFRUNTSElOQUNBRFFZQVFJQUFRSVNJR0VFNUZEUU1nQkVFQmF5RUVJQU1nQmhDSEFTQUJRUXBzYWlFQkRBRUxDMEVDSVFZZ0FDQUZRUWhxRUNoRkRRRUxJQUlnQWlnQ0FDQUdjallDQUFzZ0JVRVFhaVFBSUFFTHZBRUJBMzhqQUVFUWF5SUZKQUFnQlNBQk5nSUlRUUFoQVVFR0lRWUNRQUpBSUFBZ0JVRUlhaEFtRFFCQkJDRUdJQU5CZ0JBZ0FCQWZJZ2NRUkVVTkFDQURJQWNRaUFFaEFRTkFBa0FnQUJBaUdpQUJRVEJySVFFZ0FDQUZRUWhxRURGRklBUkJBa2h5RFFBZ0EwR0FFQ0FBRUI4aUJoQkVSUTBESUFSQkFXc2hCQ0FESUFZUWlBRWdBVUVLYkdvaEFRd0JDd3RCQWlFR0lBQWdCVUVJYWhBbVJRMEJDeUFDSUFJb0FnQWdCbkkyQWdBTElBVkJFR29rQUNBQkM1b0JBUU4vSXdCQkVHc2lCQ1FBSUFRZ0FUWUNEQ0FFSUFNMkFnZ2dCQ0FFUVF4cUVGSWhCaUFFS0FJSUlRTWpBRUVRYXlJQkpBQWdBU0FETmdJTUlBRWdBellDQ0VGL0lRVUNRRUVBUVFBZ0FpQURFTFVCSWdOQkFFZ05BQ0FBSUFOQkFXb2lBeEFaSWdBMkFnQWdBRVVOQUNBQUlBTWdBaUFCS0FJTUVMVUJJUVVMSUFGQkVHb2tBQ0FGSVFBZ0JoQlJJQVJCRUdva0FDQUFDdzBBSUFBb0FnQWdBU2dDQUVjTExnQUNRQ0FBS0FJRVFjb0FjU0lBQkVBZ0FFSEFBRVlFUUVFSUR3c2dBRUVJUncwQlFSQVBDMEVBRHd0QkNndjVBUUlEZmdKL0l3QkJFR3NpQlNRQUFuNGdBYjBpQTBMLy8vLy8vLy8vLy84QWd5SUNRb0NBZ0lDQWdJQUlmVUwvLy8vLy8vLy83LzhBV0FSQUlBSkNQSVloQkNBQ1FnU0lRb0NBZ0lDQWdJQ0FQSHdNQVFzZ0FrS0FnSUNBZ0lDQStQOEFXZ1JBSUFOQ1BJWWhCQ0FEUWdTSVFvQ0FnSUNBZ01ELy93Q0VEQUVMSUFKUUJFQkNBQXdCQ3lBRklBSkNBQ0FEcDJkQklHb2dBa0lnaUtkbklBSkNnSUNBZ0JCVUd5SUdRVEZxRUM4Z0JTa0RBQ0VFSUFVcEF3aENnSUNBZ0lDQXdBQ0ZRWXo0QUNBR2E2MUNNSWFFQ3lFQ0lBQWdCRGNEQUNBQUlBSWdBMEtBZ0lDQWdJQ0FnSUIvZzRRM0F3Z2dCVUVRYWlRQUN3Y0FJQUFnQVVZTE13RUJmeUFBUVFFZ0FCc2hBQUpBQTBBZ0FCQVpJZ0VOQVVHWWx3RW9BZ0FpQVFSQUlBRVJEd0FNQVFzTEVBQUFDeUFCQzhRREFRTi9Jd0JCSUdzaUNDUUFJQWdnQWpZQ0VDQUlJQUUyQWhnZ0NFRUlhaUlCSUFNUUR5QUJFRHNoQ1NBQkVBNGdCRUVBTmdJQVFRQWhBZ0pBQTBBZ0JpQUhSaUFDY2cwQkFrQWdDRUVZYWlBSVFSQnFFQ2dOQUFKQUlBa2dCaWdDQUJDSEFVRWxSZ1JBSUFaQkJHb2lBaUFIUmcwQ1FRQWhDZ0ovSUFrZ0FpZ0NBQkNIQVNJQlFjVUFSaUFCUWY4QmNVRXdSbkpGQkVBZ0JpRUNJQUVNQVFzZ0JrRUlhaUFIUmcwRElBRWhDaUFKSUFZb0FnZ1Fod0VMSVFFZ0NDQUFJQWdvQWhnZ0NDZ0NFQ0FESUFRZ0JTQUJJQW9nQUNnQ0FDZ0NKQkVNQURZQ0dDQUNRUWhxSVFZTUFRc2dDVUdBd0FBZ0JpZ0NBQkJPQkVBRFFBSkFJQWNnQmtFRWFpSUdSZ1JBSUFjaEJnd0JDeUFKUVlEQUFDQUdLQUlBRUU0TkFRc0xBMEFnQ0VFWWFpQUlRUkJxRURaRkRRSWdDVUdBd0FBZ0NFRVlhaEFoRUU1RkRRSWdDRUVZYWhBbEdnd0FDd0FMSUFrZ0NFRVlhaEFoRUNrZ0NTQUdLQUlBRUNsR0JFQWdCa0VFYWlFR0lBaEJHR29RSlJvTUFRc2dCRUVFTmdJQUN5QUVLQUlBSVFJTUFRc0xJQVJCQkRZQ0FBc2dDRUVZYWlBSVFSQnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQWdvQWhnaEFDQUlRU0JxSkFBZ0FBdkdBd0VEZnlNQVFTQnJJZ2drQUNBSUlBSTJBaEFnQ0NBQk5nSVlJQWhCQ0dvaUFTQURFQThnQVJBeUlRa2dBUkFPSUFSQkFEWUNBRUVBSVFJQ1FBTkFJQVlnQjBZZ0FuSU5BUUpBSUFoQkdHb2dDRUVRYWhBbURRQUNRQ0FKSUFZc0FBQVFpQUZCSlVZRVFDQUdRUUZxSWdJZ0IwWU5Ba0VBSVFvQ2Z5QUpJQUlzQUFBUWlBRWlBVUhGQUVZZ0FVSC9BWEZCTUVaeVJRUkFJQVloQWlBQkRBRUxJQVpCQW1vZ0IwWU5BeUFCSVFvZ0NTQUdMQUFDRUlnQkN5RUJJQWdnQUNBSUtBSVlJQWdvQWhBZ0F5QUVJQVVnQVNBS0lBQW9BZ0FvQWlRUkRBQTJBaGdnQWtFQ2FpRUdEQUVMSUFsQmdNQUFJQVlzQUFBUVJBUkFBMEFDUUNBSElBWkJBV29pQmtZRVFDQUhJUVlNQVFzZ0NVR0F3QUFnQml3QUFCQkVEUUVMQ3dOQUlBaEJHR29nQ0VFUWFoQXhSUTBDSUFsQmdNQUFJQWhCR0dvUUh4QkVSUTBDSUFoQkdHb1FJaG9NQUFzQUN5QUpJQWhCR0dvUUh4Q3pBU0FKSUFZc0FBQVFzd0ZHQkVBZ0JrRUJhaUVHSUFoQkdHb1FJaG9NQVFzZ0JFRUVOZ0lBQ3lBRUtBSUFJUUlNQVFzTElBUkJCRFlDQUFzZ0NFRVlhaUFJUVJCcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBZ29BaGdoQUNBSVFTQnFKQUFnQUF1cUFRRUVmeU1BUVJCcklnZ2tBQUpBSUFCRkRRQWdCQ2dDRENFR0lBSWdBV3NpQjBFQVNnUkFJQUFnQVNBSFFRSjFJZ2NRZnlBSFJ3MEJDeUFHSUFNZ0FXdEJBblVpQVd0QkFDQUJJQVpJR3lJQlFRQktCRUFnQUNBSUlBRWdCUkM3QWlJRkVBMGdBUkIvSVFZZ0JSQUtHaUFCSUFaSERRRUxJQU1nQW1zaUFVRUFTZ1JBSUFBZ0FpQUJRUUoxSWdFUWZ5QUJSdzBCQ3lBRUVPNEJJQUFoQ1FzZ0NFRVFhaVFBSUFrTEZnQWdBQ0FCSUFJZ0F5QUFLQUlBS0FJd0VRc0FHZ3RDQVFGL0lBQW9BZ0FoQWlBQkVCb2hBQ0FDUVFocUlnRVFVQ0FBU3dSL0lBRWdBQkIzS0FJQVFRQkhCVUVBQzBVRVFCQVhBQXNnQWtFSWFpQUFFSGNvQWdBTENBQWdBRUgvQVhFTEJBQWdBQXNQQUNBQUlBQW9BZ0FvQWlRUkFBQUxFUUFnQUNBQklBRW9BZ0FvQWlBUkF3QUxFUUFnQUNBQklBRW9BZ0FvQWl3UkF3QUxEQUFnQUVHQ2hvQWdOZ0FBQ3djQUlBQVFFUm9MTGdFQmZ5TUFRUkJySWdFa0FDQUJRUWhxSUFBUURTQUFFQWxCQW5ScUVIb29BZ0FoQUNBQlFSQnFKQUFnQUF1cUFRRUJmd0pBSUFOQmdCQnhSUTBBSUFKRklBTkJ5Z0J4SWdSQkNFWWdCRUhBQUVaeWNnMEFJQUJCS3pvQUFDQUFRUUZxSVFBTElBTkJnQVJ4QkVBZ0FFRWpPZ0FBSUFCQkFXb2hBQXNEUUNBQkxRQUFJZ1FFUUNBQUlBUTZBQUFnQUVFQmFpRUFJQUZCQVdvaEFRd0JDd3NnQUFKL1FlOEFJQU5CeWdCeElnRkJ3QUJHRFFBYVFkZ0FRZmdBSUFOQmdJQUJjUnNnQVVFSVJnMEFHa0hrQUVIMUFDQUNHd3M2QUFBTEt3RUJmeU1BUVJCcklnRWtBQ0FCUVFocUlBQVFEU0FBRUFscUVIb29BZ0FoQUNBQlFSQnFKQUFnQUFzV0FDQUFJQUVnQWlBRElBQW9BZ0FvQWlBUkN3QWFDeEFBSUFCQklFWWdBRUVKYTBFRlNYSUxOZ0FnQWdSL0lBSUVRQU5BSUFBZ0FTZ0NBRFlDQUNBQVFRUnFJUUFnQVVFRWFpRUJJQUpCQVdzaUFnMEFDd3RCQUFVZ0FBc2FDMUlCQW45QjhJQUJLQUlBSWdFZ0FFRURha0Y4Y1NJQ2FpRUFBa0FnQWtFQUlBQWdBVTBiRFFBZ0FEOEFRUkIwU3dSQUlBQVFCRVVOQVF0QjhJQUJJQUEyQWdBZ0FROExRZFNCQVVFd05nSUFRWDhMRWdBZ0FCQkRLQUlBSUFBb0FnQnJRUUoxQ3djQUlBQkJFR29MTlFFQmZ5TUFRUkJySWdJa0FDQUNJQUFvQWdBMkFnd2dBQ0FCS0FJQU5nSUFJQUVnQWtFTWFpZ0NBRFlDQUNBQ1FSQnFKQUFMSkFFQ2Z5TUFRUkJySWdJa0FDQUFJQUVROFFFaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3cwQUlBQW9BZ0FnQVVFQ2RHb0xGZ0FnQUJBMUJFQWdBQ0FCRURrUEN5QUFJQUVRT2dzc0FBSkFJQUFnQVVZTkFBTkFJQUFnQVVFQmF5SUJUdzBCSUFBZ0FSQ3dBaUFBUVFGcUlRQU1BQXNBQ3dzTEFDQUFJQUUyQWdBZ0FBdmJBUUlCZndKK1FRRWhCQUpBSUFCQ0FGSWdBVUwvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBa0lBVWlBRFF2Ly8vLy8vLy8vLy93Q0RJZ1pDZ0lDQWdJQ0F3UC8vQUZZZ0JrS0FnSUNBZ0lEQS8vOEFVUnNOQUNBQUlBS0VJQVVnQm9TRVVBUkFRUUFQQ3lBQklBT0RRZ0JaQkVCQmZ5RUVJQUFnQWxRZ0FTQURVeUFCSUFOUkd3MEJJQUFnQW9VZ0FTQURoWVJDQUZJUEMwRi9JUVFnQUNBQ1ZpQUJJQU5WSUFFZ0ExRWJEUUFnQUNBQ2hTQUJJQU9GaEVJQVVpRUVDeUFFQzFBQkFYNENRQ0FEUWNBQWNRUkFJQUlnQTBGQWFxMklJUUZDQUNFQ0RBRUxJQU5GRFFBZ0FrSEFBQ0FEYTYyR0lBRWdBNjBpQklpRUlRRWdBaUFFaUNFQ0N5QUFJQUUzQXdBZ0FDQUNOd01JQ3c0QUlBQW9BZ2hCLy8vLy93ZHhDd29BSUFBUTRRRWFJQUFMRXdBZ0FDQUJJQUlnQUNnQ0FDZ0NNQkVFQUFzbUFDQUFJQUFvQWhoRklBQW9BaEFnQVhKeUlnRTJBaEFnQUNnQ0ZDQUJjUVJBRUJjQUN3c0pBQ0FBSUFFUS9RRUxKQUFnQUVFQ1R3Ui9JQUJCQkdwQmZIRWlBQ0FBUVFGcklnQWdBRUVDUmhzRlFRRUxDd2NBSUFCQkRHb0xsUUVCQlg4akFFRVFheUlGSkFBZ0FSRFRBaUVDSXdCQkVHc2lBeVFBQWtBZ0FrSHYvLy8vQTAwRVFBSkFJQUpCQVUwRVFDQUFJQUlRT2lBQUlRUU1BUXNnQUNBQUlBSVFnZ0ZCQVdvaUJoQ0JBU0lFRUUwZ0FDQUdFRXdnQUNBQ0VEa0xJQVFnQVNBQ0VIRWdBMEVBTmdJTUlBUWdBa0VDZEdvZ0EwRU1haEF6SUFOQkVHb2tBQXdCQ3hBWEFBc2dCVUVRYWlRQUN3OEFJQUFRUXlnQ0FDQUFLQUlBYXd2RUFRRUdmeU1BUVJCcklnUWtBQ0FBRUpZQktBSUFJUVVDZnlBQ0tBSUFJQUFvQWdCcklnTkIvLy8vL3dkSkJFQWdBMEVCZEF3QkMwRi9DeUlEUVFRZ0F4c2hBeUFCS0FJQUlRWWdBQ2dDQUNFSElBVkJOa1lFZjBFQUJTQUFLQUlBQ3lBREVKNEJJZ2dFUUNBRlFUWkhCRUFnQUJDbUFSb0xJQVJCTlRZQ0JDQUFJQVJCQ0dvZ0NDQUVRUVJxRUI0aUJSQ2xBaUFGRUIwZ0FTQUFLQUlBSUFZZ0IydHFOZ0lBSUFJZ0FDZ0NBQ0FEUVh4eGFqWUNBQ0FFUVJCcUpBQVBDeEFYQUFzVEFDQUFJQUZCQUNBQUtBSUFLQUkwRVFRQUN4TUFJQUFnQVVFQUlBQW9BZ0FvQWlRUkJBQUxEUUFnQUNnQ0JDQUFLQUlBYXd0REFRRi9JQUJCckNZb0FnQWlBVFlDQUNBQUlBRkJER3NvQWdCcVFjd21LQUlBTmdJQUlBQkIwQ1lvQWdBMkFnZ2dBRUVNYWhEUUFSb2dBRUZBYXhCK0dpQUFDL0lDQVFKL0l3QkJFR3NpQ2lRQUlBb2dBRFlDREFKQUFrQUNRQ0FES0FJQUlBSkhEUUJCS3lFTElBQWdDU2dDWUVjRVFFRXRJUXNnQ1NnQ1pDQUFSdzBCQ3lBRElBSkJBV28yQWdBZ0FpQUxPZ0FBREFFTElBWVFDVVVnQUNBRlIzSkZCRUJCQUNFQUlBZ29BZ0FpQVNBSGEwR2ZBVW9OQWlBRUtBSUFJUUFnQ0NBQlFRUnFOZ0lBSUFFZ0FEWUNBQXdCQzBGL0lRQWdDU0FKUWVnQWFpQUtRUXhxRU5JQklBbHJJZ1pCM0FCS0RRRWdCa0VDZFNFRkFrQUNRQUpBSUFGQkNHc09Bd0FDQUFFTElBRWdCVW9OQVF3REN5QUJRUkJISUFaQjJBQkljZzBBSUFNb0FnQWlBU0FDUmlBQklBSnJRUUpLY2cwQ0lBRkJBV3N0QUFCQk1FY05Ba0VBSVFBZ0JFRUFOZ0lBSUFNZ0FVRUJhallDQUNBQklBVkI0TkFBYWkwQUFEb0FBQXdDQ3lBRElBTW9BZ0FpQUVFQmFqWUNBQ0FBSUFWQjROQUFhaTBBQURvQUFDQUVJQVFvQWdCQkFXbzJBZ0JCQUNFQURBRUxRUUFoQUNBRVFRQTJBZ0FMSUFwQkVHb2tBQ0FBQ3dvQUlBQkJ0SWtCRUdRTDdnSUJBMzhqQUVFUWF5SUtKQUFnQ2lBQU9nQVBBa0FDUUFKQUlBTW9BZ0FnQWtjTkFFRXJJUXNnQUVIL0FYRWlEQ0FKTFFBWVJ3UkFRUzBoQ3lBSkxRQVpJQXhIRFFFTElBTWdBa0VCYWpZQ0FDQUNJQXM2QUFBTUFRc2dCaEFKUlNBQUlBVkhja1VFUUVFQUlRQWdDQ2dDQUNJQklBZHJRWjhCU2cwQ0lBUW9BZ0FoQUNBSUlBRkJCR28yQWdBZ0FTQUFOZ0lBREFFTFFYOGhBQ0FKSUFsQkdtb2dDa0VQYWhEVkFTQUpheUlGUVJkS0RRRUNRQUpBQWtBZ0FVRUlhdzREQUFJQUFRc2dBU0FGU2cwQkRBTUxJQUZCRUVjZ0JVRVdTSElOQUNBREtBSUFJZ0VnQWtZZ0FTQUNhMEVDU25JTkFpQUJRUUZyTFFBQVFUQkhEUUpCQUNFQUlBUkJBRFlDQUNBRElBRkJBV28yQWdBZ0FTQUZRZURRQUdvdEFBQTZBQUFNQWdzZ0F5QURLQUlBSWdCQkFXbzJBZ0FnQUNBRlFlRFFBR290QUFBNkFBQWdCQ0FFS0FJQVFRRnFOZ0lBUVFBaEFBd0JDMEVBSVFBZ0JFRUFOZ0lBQ3lBS1FSQnFKQUFnQUFzS0FDQUFRYXlKQVJCa0M0TUJBZ04vQVg0Q1FDQUFRb0NBZ0lBUVZBUkFJQUFoQlF3QkN3TkFJQUZCQVdzaUFTQUFJQUJDQ29BaUJVSUtmbjJuUVRCeU9nQUFJQUJDLy8vLy81OEJWaUVDSUFVaEFDQUNEUUFMQ3lBRnB5SUNCRUFEUUNBQlFRRnJJZ0VnQWlBQ1FRcHVJZ05CQ214clFUQnlPZ0FBSUFKQkNVc2hCQ0FESVFJZ0JBMEFDd3NnQVF0akFnRi9BWDRqQUVFUWF5SUNKQUFnQUFKK0lBRkZCRUJDQUF3QkN5QUNJQUd0UWdBZ0FXY2lBVUhSQUdvUUx5QUNLUU1JUW9DQWdJQ0FnTUFBaFVHZWdBRWdBV3V0UWpDR2ZDRURJQUlwQXdBTE53TUFJQUFnQXpjRENDQUNRUkJxSkFBTEpBQWdBRUVMVHdSL0lBQkJFR3BCY0hFaUFDQUFRUUZySWdBZ0FFRUxSaHNGUVFvTEMzOEJBMzhnQUNFQkFrQWdBRUVEY1FSQUEwQWdBUzBBQUVVTkFpQUJRUUZxSWdGQkEzRU5BQXNMQTBBZ0FTSUNRUVJxSVFFZ0FpZ0NBQ0lEUVg5eklBTkJnWUtFQ0d0eFFZQ0Jnb1I0Y1VVTkFBc2dBMEgvQVhGRkJFQWdBaUFBYXc4TEEwQWdBaTBBQVNFRElBSkJBV29pQVNFQ0lBTU5BQXNMSUFFZ0FHc0xLUUFnQUNBQlFRaDBRWUNBL0FkeElBRkJHSFJ5SUFGQkNIWkJnUDREY1NBQlFSaDJjbkkyQUFBTEtRQWdBQ2dBQUNJQVFSaDBJQUJCQ0hSQmdJRDhCM0Z5SUFCQkNIWkJnUDREY1NBQVFSaDJjbklMRHdBZ0FDQUFLQUlBUVFScU5nSUFDd2NBSUFCQkJHb0xEd0FnQUNBQUtBSUFRUUZxTmdJQUN6Y0JBbjhqQUVFUWF5SURKQUFnQTBFSWFpSUVJQUVRRHlBQ0lBUVFqQUVpQVJBNE5nSUFJQUFnQVJBM0lBUVFEaUFEUVJCcUpBQUxOUUVDZnlNQVFSQnJJZ0lrQUNBQ1FRaHFJZ01nQUJBUElBTVFPMEhnMEFCQit0QUFJQUVRWXlBREVBNGdBa0VRYWlRQUlBRUxOd0VDZnlNQVFSQnJJZ01rQUNBRFFRaHFJZ1FnQVJBUElBSWdCQkNPQVNJQkVEZzZBQUFnQUNBQkVEY2dCQkFPSUFOQkVHb2tBQXNYQUNBQUlBTTJBaEFnQUNBQ05nSU1JQUFnQVRZQ0NBc0tBQ0FBUVJoMFFSaDFDMElBSUFBZ0FDZ0NBQ0FCS0FJQWN6WUNBQ0FBSUFBb0FnUWdBU2dDQkhNMkFnUWdBQ0FBS0FJSUlBRW9BZ2h6TmdJSUlBQWdBQ2dDRENBQktBSU1jellDREF1Y0NBRUxmeUFBUlFSQUlBRVFHUThMSUFGQlFFOEVRRUhVZ1FGQk1EWUNBRUVBRHdzQ2YwRVFJQUZCQzJwQmVIRWdBVUVMU1JzaEJpQUFRUWhySWdVb0FnUWlDVUY0Y1NFRUFrQWdDVUVEY1VVRVFFRUFJQVpCZ0FKSkRRSWFJQVpCQkdvZ0JFMEVRQ0FGSVFJZ0JDQUdhMEc0aFFFb0FnQkJBWFJORFFJTFFRQU1BZ3NnQkNBRmFpRUhBa0FnQkNBR1R3UkFJQVFnQm1zaUEwRVFTUTBCSUFVZ0NVRUJjU0FHY2tFQ2NqWUNCQ0FGSUFacUlnSWdBMEVEY2pZQ0JDQUhJQWNvQWdSQkFYSTJBZ1FnQWlBREVPd0JEQUVMSUFkQjhJRUJLQUlBUmdSQVFlU0JBU2dDQUNBRWFpSUVJQVpORFFJZ0JTQUpRUUZ4SUFaeVFRSnlOZ0lFSUFVZ0Jtb2lBeUFFSUFacklnSkJBWEkyQWdSQjVJRUJJQUkyQWdCQjhJRUJJQU0yQWdBTUFRc2dCMEhzZ1FFb0FnQkdCRUJCNElFQktBSUFJQVJxSWdNZ0Jra05BZ0pBSUFNZ0Jtc2lBa0VRVHdSQUlBVWdDVUVCY1NBR2NrRUNjallDQkNBRklBWnFJZ1FnQWtFQmNqWUNCQ0FESUFWcUlnTWdBallDQUNBRElBTW9BZ1JCZm5FMkFnUU1BUXNnQlNBSlFRRnhJQU55UVFKeU5nSUVJQU1nQldvaUFpQUNLQUlFUVFGeU5nSUVRUUFoQWtFQUlRUUxRZXlCQVNBRU5nSUFRZUNCQVNBQ05nSUFEQUVMSUFjb0FnUWlBMEVDY1EwQklBTkJlSEVnQkdvaUNpQUdTUTBCSUFvZ0Jtc2hEQUpBSUFOQi93Rk5CRUFnQnlnQ0NDSUVJQU5CQTNZaUFrRURkRUdBZ2dGcVJob2dCQ0FIS0FJTUlnTkdCRUJCMklFQlFkaUJBU2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUVJQU0yQWd3Z0F5QUVOZ0lJREFFTElBY29BaGdoQ3dKQUlBY2dCeWdDRENJSVJ3UkFJQWNvQWdnaUFrSG9nUUVvQWdCSkdpQUNJQWcyQWd3Z0NDQUNOZ0lJREFFTEFrQWdCMEVVYWlJRUtBSUFJZ0lOQUNBSFFSQnFJZ1FvQWdBaUFnMEFRUUFoQ0F3QkN3TkFJQVFoQXlBQ0lnaEJGR29pQkNnQ0FDSUNEUUFnQ0VFUWFpRUVJQWdvQWhBaUFnMEFDeUFEUVFBMkFnQUxJQXRGRFFBQ1FDQUhJQWNvQWh3aUEwRUNkRUdJaEFGcUlnSW9BZ0JHQkVBZ0FpQUlOZ0lBSUFnTkFVSGNnUUZCM0lFQktBSUFRWDRnQTNkeE5nSUFEQUlMSUF0QkVFRVVJQXNvQWhBZ0IwWWJhaUFJTmdJQUlBaEZEUUVMSUFnZ0N6WUNHQ0FIS0FJUUlnSUVRQ0FJSUFJMkFoQWdBaUFJTmdJWUN5QUhLQUlVSWdKRkRRQWdDQ0FDTmdJVUlBSWdDRFlDR0FzZ0RFRVBUUVJBSUFVZ0NVRUJjU0FLY2tFQ2NqWUNCQ0FGSUFwcUlnSWdBaWdDQkVFQmNqWUNCQXdCQ3lBRklBbEJBWEVnQm5KQkFuSTJBZ1FnQlNBR2FpSURJQXhCQTNJMkFnUWdCU0FLYWlJQ0lBSW9BZ1JCQVhJMkFnUWdBeUFNRU93QkN5QUZJUUlMSUFJTElnSUVRQ0FDUVFocUR3c2dBUkFaSWdWRkJFQkJBQThMSUFVZ0FFRjhRWGdnQUVFRWF5Z0NBQ0lDUVFOeEd5QUNRWGh4YWlJQ0lBRWdBU0FDU3hzUVFob2dBQkFRSUFVTGZRRURmMEVZSVFJQ1FBSkFJQUFnQVhKQkEzRU5BQU5BSUFBb0FnQWdBU2dDQUVjTkFTQUJRUVJxSVFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN5QUNSUTBCQ3dOQUlBQXRBQUFpQXlBQkxRQUFJZ1JHQkVBZ0FVRUJhaUVCSUFCQkFXb2hBQ0FDUVFGcklnSU5BUXdDQ3dzZ0F5QUVhdzhMUVFBTFNRRUNmeUFBS0FJRUlnWkJDSFVoQlNBR1FRRnhCRUFnQWlnQ0FDQUZFTVVCSVFVTElBQW9BZ0FpQUNBQklBSWdCV29nQTBFQ0lBWkJBbkViSUFRZ0FDZ0NBQ2dDR0JFS0FBdTJBUUVEZnlNQVFSQnJJZ01rQUNBRElBRTZBQThDUUFKQUFrQUNRQ0FBRURVRVFDQUFFSDBoQVNBQUtBSUVJZ1FnQVVFQmF5SUNSZzBCREFNTFFRb2hCRUVLSVFJZ0FDMEFDeUlCUVFwSERRRUxJQUFnQWtFQklBSWdBaERJQVNBRUlRRWdBQkExRFFFTElBQWhBaUFBSUFGQkFXb1FPZ3dCQ3lBQUtBSUFJUUlnQUNBRVFRRnFFRGtnQkNFQkN5QUJJQUpxSWdBZ0EwRVBhaEEwSUFOQkFEb0FEaUFBUVFGcUlBTkJEbW9RTkNBRFFSQnFKQUFMSkFFQ2Z5TUFRUkJySWdJa0FDQUJJQUFROFFFaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3gwQUlBQkJCR29Ra2dKQmYwWUVRQ0FBSUFBb0FnQW9BZ2dSQVFBTEN5UUFJQUFRK1FFaEFDQUJFUGtCSUFCcklnRUVRQ0FDSUFBZ0FSRHFBUXNnQVNBQ2Fnc1JBQ0FBSUFFZ0FTZ0NBQ2dDS0JFREFBc1VBUUYvSUFBb0FnQWhBU0FBUVFBMkFnQWdBUXVyTEFFUmZ5QUFLQUx3QVNFU0lBQW9BZ1FnQVNnQUJDSUVRUmgwSUFSQkNIUkJnSUQ4QjNGeUlBUkJDSFpCZ1A0RGNTQUVRUmgyY25KeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hCaUFBS0FJSUlBRW9BQWdpQlVFWWRDQUZRUWgwUVlDQS9BZHhjaUFGUVFoMlFZRCtBM0VnQlVFWWRuSnljeUlGUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFnZ0FDZ0NEQ0FCS0FBTUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y25NaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ1NBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRb2dBQ2dDQUNBQktBQUFJZ0ZCR0hRZ0FVRUlkRUdBZ1B3SGNYSWdBVUVJZGtHQS9nTnhJQUZCR0haeWNuTWlBVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQUJRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQkVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFT0lBRkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEeUFFUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVJBZ0JVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRVJJQUFvQWhRZ0N5QUtJQWtnQkVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRa2dBQ2dDR0NBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdWQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaENpQUFLQUljSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFTElBVkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hEQ0FEUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVEwZ0FDZ0NFQ0FISUFnZ0JpQUJRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ0ZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQmlBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRZ2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VISUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FJa0lBWWdEU0FNSUFSQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQUFvQWlnZ0RpQUhJQWdnQlVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRZ2dBQ2dDTENBUklCQWdEeUFEUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdOQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEJ5QUZRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUXdnQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTklBQW9BaUFnQ3lBS0lBa2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlCUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUtJQUZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ3lBRVFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRNGdBVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VQSUFSQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEVDQUZRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUkVnQUNnQ05DQUpJQTBnRENBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnUkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDU0FBS0FJNElBNGdDeUFLSUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUJVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUtJQUFvQWp3Z0VTQVFJQThnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dCVUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFOQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUFLQUl3SUFjZ0NDQUdJQUZCRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQVVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFR0lBTkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2hDQ0FCUVFaMlFmd0hjVUdBQ0dvb0FnQkJFQkFJSVFjZ0JFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRU9JQUZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRHlBRVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlSQWdCVUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VSSUFBb0FrUWdCaUFOSUF3Z0JFRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUVlnQUNnQ1NDQU9JQWNnQ0NBRlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hDQ0FBS0FKTUlCRWdFQ0FQSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUEwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUhJQVZCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoRENBRFFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRMGdBQ2dDUUNBTElBb2dDU0FCUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdGQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaENTQURRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUW9nQVVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFTElBUkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hEaUFCUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVE4Z0JFRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRVFJQVZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRVNBQUtBSlVJQWtnRFNBTUlBUkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCRUVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VKSUFBb0FsZ2dEaUFMSUFvZ0JVRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SUZRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUW9nQUNnQ1hDQVJJQkFnRHlBRFFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDeUFGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVF3Z0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU5JQUFvQWxBZ0J5QUlJQVlnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRWWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VJSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaEJ5QUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NaQ0FHSUEwZ0RDQUVRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1JCRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQmlBQUtBSm9JQTRnQnlBSUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VJSUFBb0Ftd2dFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUWNnQlVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFTUlBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hEU0FBS0FKZ0lBc2dDaUFKSUFGQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUFVSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNDRUpJQU5CRG5aQi9BZHhRWUFJYWlnQ0FFRUlFQWdoQ2lBQlFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSUlRc2dCRUgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VPSUFGQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaER5QUVRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUkFnQlVIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0NFUklBQW9BblFnQ1NBTklBd2dCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlFUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFrZ0FDZ0NlQ0FPSUFzZ0NpQUZRUloyUWZ3SGNVR0FDR29vQWdCemMzTnpJZ1ZCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQUtBSjhJQkVnRUNBUElBTkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlBMEgvQVhGQkFuUkJnQWhxS0FJQVFSZ1FDQ0VMSUFWQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnaERDQURRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUlJUTBnQUNnQ2NDQUhJQWdnQmlBQlFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnRkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hCaUFEUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFjZ0FVRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRU9JQVJCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoRHlBQlFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlSQWdCRUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VSSUFWQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaEV5QUFLQUtFQVNBR0lBMGdEQ0FFUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdaQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0FDZ0NnQUVnQ3lBS0lBa2dBVUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlJUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQUFvQW9nQklBOGdEaUFISUFWQkZuWkIvQWR4UVlBSWFpZ0NBSE56YzNNaUIwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNITWdBQ2dDakFFZ0V5QVJJQkFnQTBFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJRFFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSWN5QUFLQUtRQVhNaEFTQUhRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJQVpCRm5aQi9BZHhRWUFJYWlnQ0FITWdBMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQ0VIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0NsQUZ6SVFRZ0EwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUhRUloyUWZ3SGNVR0FDR29vQWdCeklBaEJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQVpCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0FwZ0JjeUVGQW44Z0NFRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQURRUloyUWZ3SGNVR0FDR29vQWdCeklBWkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWRCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0Fwd0JjeUlESUJKQkMwZ05BQm9nQkVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hCeUFEUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVFrZ0JVRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDRUdJQU5CQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWdoQ2lBQlFmOEJjVUVDZEVHQUNHb29BZ0JCR0JBSUlRc2dBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0VNSUFGQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFnaERTQUVRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUlJUTRnQVVFT2RrSDhCM0ZCZ0FocUtBSUFRUWdRQ0NFUElBUkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBZ2hFQ0FGUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJSVJFZ0FDZ0NwQUVnQ3lBS0lBWWdCRUVXZGtIOEIzRkJnQWhxS0FJQWMzTnpjeUlHUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFBb0FxQUJJQWtnQnlBSUlBRkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlDRUVXZGtIOEIzRkJnQWhxS0FJQWN5QUFLQUtvQVNBT0lBMGdEQ0FGUVJaMlFmd0hjVUdBQ0dvb0FnQnpjM056SWdkQkJuWkIvQWR4UVlBSWFpZ0NBRUVRRUFoeklBQW9BcXdCSUJFZ0VDQVBJQU5CRm5aQi9BZHhRWUFJYWlnQ0FITnpjM01pQTBIL0FYRkJBblJCZ0FocUtBSUFRUmdRQ0hNZ0FDZ0NzQUZ6SVFFZ0IwRU9ka0g4QjNGQmdBaHFLQUlBUVFnUUNDQUdRUloyUWZ3SGNVR0FDR29vQWdCeklBTkJCblpCL0FkeFFZQUlhaWdDQUVFUUVBaHpJQWhCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWh6SUFBb0FyUUJjeUVFSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJRUFnZ0IwRVdka0g4QjNGQmdBaHFLQUlBY3lBSVFRWjJRZndIY1VHQUNHb29BZ0JCRUJBSWN5QUdRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FLNEFYTWhCU0FJUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFOQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQmtFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDdkFGeklnTWdFa0VOU0EwQUdpQUVRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUWdnQlVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFSElBTkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hDU0FGUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSVFZZ0EwRUdka0g4QjNGQmdBaHFLQUlBUVJBUUNDRUtJQUZCL3dGeFFRSjBRWUFJYWlnQ0FFRVlFQWdoQ3lBRFFRNTJRZndIY1VHQUNHb29BZ0JCQ0JBSUlRd2dBVUVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDQ0VOSUFSQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFnaERpQUJRUTUyUWZ3SGNVR0FDR29vQWdCQkNCQUlJUThnQkVFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0NFUUlBVkIvd0Z4UVFKMFFZQUlhaWdDQUVFWUVBZ2hFU0FBS0FMRUFTQUxJQW9nQmlBRVFSWjJRZndIY1VHQUNHb29BZ0J6YzNOeklnWkJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBQ2dDd0FFZ0NTQUhJQWdnQVVFV2RrSDhCM0ZCZ0FocUtBSUFjM056Y3lJSVFSWjJRZndIY1VHQUNHb29BZ0J6SUFBb0FzZ0JJQTRnRFNBTUlBVkJGblpCL0FkeFFZQUlhaWdDQUhOemMzTWlCMEVHZGtIOEIzRkJnQWhxS0FJQVFSQVFDSE1nQUNnQ3pBRWdFU0FRSUE4Z0EwRVdka0g4QjNGQmdBaHFLQUlBYzNOemN5SURRZjhCY1VFQ2RFR0FDR29vQWdCQkdCQUljeUFBS0FMUUFYTWhBU0FIUVE1MlFmd0hjVUdBQ0dvb0FnQkJDQkFJSUFaQkZuWkIvQWR4UVlBSWFpZ0NBSE1nQTBFR2RrSDhCM0ZCZ0FocUtBSUFRUkFRQ0hNZ0NFSC9BWEZCQW5SQmdBaHFLQUlBUVJnUUNITWdBQ2dDMUFGeklRUWdBMEVPZGtIOEIzRkJnQWhxS0FJQVFRZ1FDQ0FIUVJaMlFmd0hjVUdBQ0dvb0FnQnpJQWhCQm5aQi9BZHhRWUFJYWlnQ0FFRVFFQWh6SUFaQi93RnhRUUowUVlBSWFpZ0NBRUVZRUFoeklBQW9BdGdCY3lFRklBaEJEblpCL0FkeFFZQUlhaWdDQUVFSUVBZ2dBMEVXZGtIOEIzRkJnQWhxS0FJQWN5QUdRUVoyUWZ3SGNVR0FDR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBQ0dvb0FnQkJHQkFJY3lBQUtBTGNBWE1MSVFNZ0FpQUFJQkpCQkhScUlnQW9BZ0FnQTBIL0FYRkJBblJCZ0FocUxRQUJJQUZCRm5aQi9BZHhRWUFJYWlnQ0FFRUlkRUdBZ0lCNGNTQUVRUTUyUWZ3SGNVR0FDR290QUFKQkVIUnlJQVZCQm5aQi9BZHhRWUFJYWkwQUFVRUlkSEp5Y3lJU1FSaDBJQkpCQ0hSQmdJRDhCM0Z5SUJKQkNIWkJnUDREY1NBU1FSaDJjbkkyQUFBZ0FpQUFLQUlFSUFGQi93RnhRUUowUVlBSWFpMEFBU0FFUVJaMlFmd0hjVUdBQ0dvb0FnQkJDSFJCZ0lDQWVIRWdCVUVPZGtIOEIzRkJnQWhxTFFBQ1FSQjBjaUFEUVFaMlFmd0hjVUdBQ0dvdEFBRkJDSFJ5Y25NaUVrRVlkQ0FTUVFoMFFZQ0EvQWR4Y2lBU1FRaDJRWUQrQTNFZ0VrRVlkbkp5TmdBRUlBSWdBQ2dDQ0NBRVFmOEJjVUVDZEVHQUNHb3RBQUVnQlVFV2RrSDhCM0ZCZ0FocUtBSUFRUWgwUVlDQWdIaHhJQU5CRG5aQi9BZHhRWUFJYWkwQUFrRVFkSElnQVVFR2RrSDhCM0ZCZ0FocUxRQUJRUWgwY25KekloSkJHSFFnRWtFSWRFR0FnUHdIY1hJZ0VrRUlka0dBL2dOeElCSkJHSFp5Y2pZQUNDQUNJQUFvQWd3Z0JVSC9BWEZCQW5SQmdBaHFMUUFCSUFOQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FCUVE1MlFmd0hjVUdBQ0dvdEFBSkJFSFJ5SUFSQkJuWkIvQWR4UVlBSWFpMEFBVUVJZEhKeWN5SUFRUmgwSUFCQkNIUkJnSUQ4QjNGeUlBQkJDSFpCZ1A0RGNTQUFRUmgyY25JMkFBd0xEZ0FnQUNBQktBSUFOZ0lBSUFBTEJ3QWdBQkJIR2dzSUFFSC8vLy8vQndzRkFFSC9BQXNEQUFFTEt3QUNRQ0FBSUFGR0RRQURRQ0FBSUFGQkJHc2lBVThOQVNBQUlBRVFkU0FBUVFScUlRQU1BQXNBQ3d2VUF3RUlmeU1BUVJCcklnb2tBQ0FHRURzaEN5QUtJQVlRakFFaUJoQTNBa0FnQ2hCSkJFQWdDeUFBSUFJZ0F4QmpJQVVnQXlBQ0lBQnJRUUowYWlJR05nSUFEQUVMSUFVZ0F6WUNBQUpBQWtBZ0FDSUlMUUFBSWdkQksyc09Bd0FCQUFFTElBc2dCMEVZZEVFWWRSQTlJUWdnQlNBRktBSUFJZ2RCQkdvMkFnQWdCeUFJTmdJQUlBQkJBV29oQ0FzQ1FDQUNJQWhyUVFKSURRQWdDQzBBQUVFd1J3MEFJQWd0QUFGQklISkIrQUJIRFFBZ0MwRXdFRDBoQnlBRklBVW9BZ0FpQ1VFRWFqWUNBQ0FKSUFjMkFnQWdDeUFJTEFBQkVEMGhCeUFGSUFVb0FnQWlDVUVFYWpZQ0FDQUpJQWMyQWdBZ0NFRUNhaUVJQ3lBSUlBSVFlVUVBSVFrZ0JoQTRJUXhCQUNFSElBZ2hCZ04vSUFJZ0JrMEVmeUFESUFnZ0FHdEJBblJxSUFVb0FnQVFyUUVnQlNnQ0FBVUNRQ0FLSUFjUUN5MEFBRVVOQUNBSklBb2dCeEFMTEFBQVJ3MEFJQVVnQlNnQ0FDSUpRUVJxTmdJQUlBa2dERFlDQUNBSElBY2dDaEFKUVFGclNXb2hCMEVBSVFrTElBc2dCaXdBQUJBOUlRMGdCU0FGS0FJQUlnNUJCR28yQWdBZ0RpQU5OZ0lBSUFaQkFXb2hCaUFKUVFGcUlRa01BUXNMSVFZTElBUWdCaUFESUFFZ0FHdEJBblJxSUFFZ0FrWWJOZ0lBSUFvUUNob2dDa0VRYWlRQUM5QUJBUUovSUFKQmdCQnhCRUFnQUVFck9nQUFJQUJCQVdvaEFBc2dBa0dBQ0hFRVFDQUFRU002QUFBZ0FFRUJhaUVBQ3lBQ1FZUUNjU0lEUVlRQ1J3UkFJQUJCcnRRQU93QUFJQUJCQW1vaEFBc2dBa0dBZ0FGeElRSURRQ0FCTFFBQUlnUUVRQ0FBSUFRNkFBQWdBRUVCYWlFQUlBRkJBV29oQVF3QkN3c2dBQUovQWtBZ0EwR0FBa2NFUUNBRFFRUkhEUUZCeGdCQjVnQWdBaHNNQWd0QnhRQkI1UUFnQWhzTUFRdEJ3UUJCNFFBZ0Foc2dBMEdFQWtZTkFCcEJ4d0JCNXdBZ0Foc0xPZ0FBSUFOQmhBSkhDOG9EQVFoL0l3QkJFR3NpQ2lRQUlBWVFNaUVMSUFvZ0JoQ09BU0lHRURjQ1FDQUtFRWtFUUNBTElBQWdBaUFERUc4Z0JTQURJQUlnQUd0cUlnWTJBZ0FNQVFzZ0JTQUROZ0lBQWtBQ1FDQUFJZ2d0QUFBaUIwRXJhdzREQUFFQUFRc2dDeUFIUVJoMFFSaDFFQ2toQ0NBRklBVW9BZ0FpQjBFQmFqWUNBQ0FISUFnNkFBQWdBRUVCYWlFSUN3SkFJQUlnQ0d0QkFrZ05BQ0FJTFFBQVFUQkhEUUFnQ0MwQUFVRWdja0g0QUVjTkFDQUxRVEFRS1NFSElBVWdCU2dDQUNJSlFRRnFOZ0lBSUFrZ0J6b0FBQ0FMSUFnc0FBRVFLU0VISUFVZ0JTZ0NBQ0lKUVFGcU5nSUFJQWtnQnpvQUFDQUlRUUpxSVFnTElBZ2dBaEI1UVFBaENTQUdFRGdoREVFQUlRY2dDQ0VHQTM4Z0FpQUdUUVIvSUFNZ0NDQUFhMm9nQlNnQ0FCQjVJQVVvQWdBRkFrQWdDaUFIRUFzdEFBQkZEUUFnQ1NBS0lBY1FDeXdBQUVjTkFDQUZJQVVvQWdBaUNVRUJhallDQUNBSklBdzZBQUFnQnlBSElBb1FDVUVCYTBscUlRZEJBQ0VKQ3lBTElBWXNBQUFRS1NFTklBVWdCU2dDQUNJT1FRRnFOZ0lBSUE0Z0RUb0FBQ0FHUVFGcUlRWWdDVUVCYWlFSkRBRUxDeUVHQ3lBRUlBWWdBeUFCSUFCcmFpQUJJQUpHR3pZQ0FDQUtFQW9hSUFwQkVHb2tBQXNNQUNBQUVBMGdBVUVDZEdvTHFnUUJDMzhqQUVHQUFXc2lDaVFBSUFvZ0FUWUNlQ0FDSUFNUXpRSWhDQ0FLUVRVMkFoQWdDa0VJYWtFQUlBcEJFR29pQ1JBZUlSQUNRQ0FJUWVVQVR3UkFJQWdRR1NJSlJRMEJJQkFnQ1JBbkN5QUpJUWNnQWlFQkEwQWdBU0FEUmdSQUEwQUNRQ0FBSUFwQitBQnFFRFpCQUNBSUcwVUVRQ0FBSUFwQitBQnFFQ2dFUUNBRklBVW9BZ0JCQW5JMkFnQUxEQUVMSUFBUUlTRU9JQVpGQkVBZ0JDQU9FQ2toRGdzZ0RFRUJhaUVOUVFBaER5QUpJUWNnQWlFQkEwQWdBU0FEUmdSQUlBMGhEQ0FQUlEwRElBQVFKUm9nQ1NFSElBSWhBU0FJSUF0cVFRSkpEUU1EUUNBQklBTkdCRUFNQlFVQ1FDQUhMUUFBUVFKSERRQWdBUkFKSUExR0RRQWdCMEVBT2dBQUlBdEJBV3NoQ3dzZ0IwRUJhaUVISUFGQkRHb2hBUXdCQ3dBTEFBVUNRQ0FITFFBQVFRRkhEUUFnQVNBTUVMRUJLQUlBSVJFQ1FDQUdCSDhnRVFVZ0JDQVJFQ2tMSUE1R0JFQkJBU0VQSUFFUUNTQU5SdzBDSUFkQkFqb0FBQ0FMUVFGcUlRc01BUXNnQjBFQU9nQUFDeUFJUVFGcklRZ0xJQWRCQVdvaEJ5QUJRUXhxSVFFTUFRc0FDd0FMQ3dKQUFrQURRQ0FDSUFOR0RRRWdDUzBBQUVFQ1J3UkFJQWxCQVdvaENTQUNRUXhxSVFJTUFRc0xJQUloQXd3QkN5QUZJQVVvQWdCQkJISTJBZ0FMSUJBUUhTQUtRWUFCYWlRQUlBTVBCUUpBSUFFUVNVVUVRQ0FIUVFFNkFBQU1BUXNnQjBFQ09nQUFJQXRCQVdvaEN5QUlRUUZySVFnTElBZEJBV29oQnlBQlFReHFJUUVNQVFzQUN3QUxFQmNBQ3hFQUlBQWdBU0FBS0FJQUtBSU1FUUlBQzdNRUFRdC9Jd0JCZ0FGcklnb2tBQ0FLSUFFMkFuZ2dBaUFERU0wQ0lRZ2dDa0UxTmdJUUlBcEJDR3BCQUNBS1FSQnFJZ2tRSGlFUUFrQWdDRUhsQUU4RVFDQUlFQmtpQ1VVTkFTQVFJQWtRSndzZ0NTRUhJQUloQVFOQUlBRWdBMFlFUUFOQUFrQWdBQ0FLUWZnQWFoQXhRUUFnQ0J0RkJFQWdBQ0FLUWZnQWFoQW1CRUFnQlNBRktBSUFRUUp5TmdJQUN3d0JDeUFBRUI4aERpQUdSUVJBSUFRZ0RoQ3pBU0VPQ3lBTVFRRnFJUTFCQUNFUElBa2hCeUFDSVFFRFFDQUJJQU5HQkVBZ0RTRU1JQTlGRFFNZ0FCQWlHaUFKSVFjZ0FpRUJJQWdnQzJwQkFra05Bd05BSUFFZ0EwWUVRQXdGQlFKQUlBY3RBQUJCQWtjTkFDQUJFQWtnRFVZTkFDQUhRUUE2QUFBZ0MwRUJheUVMQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUJRSkFJQWN0QUFCQkFVY05BQ0FCSUF3UUN5d0FBQ0VSQWtBZ0RrSC9BWEVnQmdSL0lCRUZJQVFnRVJDekFRdEIvd0Z4UmdSQVFRRWhEeUFCRUFrZ0RVY05BaUFIUVFJNkFBQWdDMEVCYWlFTERBRUxJQWRCQURvQUFBc2dDRUVCYXlFSUN5QUhRUUZxSVFjZ0FVRU1haUVCREFFTEFBc0FDd3NDUUFKQUEwQWdBaUFEUmcwQklBa3RBQUJCQWtjRVFDQUpRUUZxSVFrZ0FrRU1haUVDREFFTEN5QUNJUU1NQVFzZ0JTQUZLQUlBUVFSeU5nSUFDeUFRRUIwZ0NrR0FBV29rQUNBRER3VUNRQ0FCRUVsRkJFQWdCMEVCT2dBQURBRUxJQWRCQWpvQUFDQUxRUUZxSVFzZ0NFRUJheUVJQ3lBSFFRRnFJUWNnQVVFTWFpRUJEQUVMQUFzQUN4QVhBQXZsQXdFRGZ5TUFRYUFCYXlJRUpBQkJmeUVGSUFRZ0FVRUJhMEVBSUFFYk5nS1VBU0FFSUFBZ0JFR2VBV29nQVJzaUJqWUNrQUVnQkVFQVFaQUJFRVlpQUVGL05nSk1JQUJCTkRZQ0pDQUFRWDgyQWxBZ0FDQUFRWjhCYWpZQ0xDQUFJQUJCa0FGcU5nSlVBa0FnQVVFQVNBUkFRZFNCQVVFOU5nSUFEQUVMSUFaQkFEb0FBRUVBSVFRakFFSFFBV3NpQVNRQUlBRWdBellDekFFZ0FVR2dBV29pQTBFQVFTZ1FSaG9nQVNBQktBTE1BVFlDeUFFQ1FFRUFJQUlnQVVISUFXb2dBVUhRQUdvZ0F4RGNBa0VBU0FSQVFYOGhBZ3dCQ3lBQUtBSk1RUUJPSVFVZ0FDZ0NBQ0VESUFBb0FraEJBRXdFUUNBQUlBTkJYM0UyQWdBTEFuOENRQUpBSUFBb0FqQkZCRUFnQUVIUUFEWUNNQ0FBUVFBMkFod2dBRUlBTndNUUlBQW9BaXdoQkNBQUlBRTJBaXdNQVFzZ0FDZ0NFQTBCQzBGL0lBQVE2QUVOQVJvTElBQWdBaUFCUWNnQmFpQUJRZEFBYWlBQlFhQUJhaERjQWdzaEFpQUVCRUFnQUVFQVFRQWdBQ2dDSkJFRUFCb2dBRUVBTmdJd0lBQWdCRFlDTENBQVFRQTJBaHdnQUVFQU5nSVFJQUFvQWhRaEJDQUFRUUEyQWhRZ0FrRi9JQVFiSVFJTElBQWdBQ2dDQUNJRUlBTkJJSEZ5TmdJQVFYOGdBaUFFUVNCeEd5RUNJQVZGRFFBTElBRkIwQUZxSkFBZ0FpRUZDeUFBUWFBQmFpUUFJQVVMU2dFQ2Z3SkFJQUF0QUFBaUFrVWdBaUFCTFFBQUlnTkhjZzBBQTBBZ0FTMEFBU0VESUFBdEFBRWlBa1VOQVNBQlFRRnFJUUVnQUVFQmFpRUFJQUlnQTBZTkFBc0xJQUlnQTJzTDVBSUJCbjhqQUVFUWF5SUhKQUFnQTBId2hnRWdBeHNpQlNnQ0FDRURBa0FDUUFKQUlBRkZCRUFnQXcwQkRBTUxRWDRoQkNBQ1JRMENJQUFnQjBFTWFpQUFHeUVHQWtBZ0F3UkFJQUloQUF3QkN5QUJMUUFBSWdCQkdIUkJHSFVpQTBFQVRnUkFJQVlnQURZQ0FDQURRUUJISVFRTUJBc2dBU3dBQUNFQVFkaUdBU2dDQUNnQ0FFVUVRQ0FHSUFCQi83OERjVFlDQUVFQklRUU1CQXNnQUVIL0FYRkJ3Z0ZySWdCQk1rc05BU0FBUVFKMFFjQXJhaWdDQUNFRElBSkJBV3NpQUVVTkFpQUJRUUZxSVFFTElBRXRBQUFpQ0VFRGRpSUpRUkJySUFOQkduVWdDV3B5UVFkTERRQURRQ0FBUVFGcklRQWdDRUdBQVdzZ0EwRUdkSElpQTBFQVRnUkFJQVZCQURZQ0FDQUdJQU0yQWdBZ0FpQUFheUVFREFRTElBQkZEUUlnQVVFQmFpSUJMUUFBSWdoQndBRnhRWUFCUmcwQUN3c2dCVUVBTmdJQVFkU0JBVUVaTmdJQVFYOGhCQXdCQ3lBRklBTTJBZ0FMSUFkQkVHb2tBQ0FFQ3d3QUlBQkJER29RZmhvZ0FBc0lBQ0FBS0FJUVJRc29BUUovSXdCQkVHc2lBaVFBSUFFb0FnQWdBQ2dDQUVnaEF5QUNRUkJxSkFBZ0FTQUFJQU1iQ3hBQUlBQWdBVGNEQ0NBQVFnQTNBd0FMRXdBZ0FFRzhIellDQUNBQVFRUnFFQTRnQUFzRUFFRUJDMlVCQTM4Z0FrVUVRRUVBRHdzQ1FDQUFMUUFBSWdORkRRQURRQUpBSUFFdEFBQWlCVVVOQUNBQ1FRRnJJZ0pGSUFNZ0JVZHlEUUFnQVVFQmFpRUJJQUF0QUFFaEF5QUFRUUZxSVFBZ0F3MEJEQUlMQ3lBRElRUUxJQVJCL3dGeElBRXRBQUJyQzY0QkFRUi9Jd0JCRUdzaUJTUUFJQUVoQkNBQ1FSQlBCRUFnQWtFRWRpRUhBMEFnQXlBRUVKMEJJQU1nQUNBRkVMSUNJQU1nQlNrRENEY0FDQ0FESUFVcEF3QTNBQUFnQkVFUWFpRUVJQVpCQVdvaUJpQUhSdzBBQ3dzZ0JDQUJJQUpxSWdGSkJFQWdCU0FFSUFFZ0JHc2lBaEJDSWdFZ0FtcEJBRUVRSUFKckVFWWFJQU1nQVJDZEFTQURJQUFnQVJDeUFpQURJQUVwQXdnM0FBZ2dBeUFCS1FNQU53QUFDeUFGUVJCcUpBQUxHZ0FnQUNBQklBRW9BZ0JCREdzb0FnQnFLQUlZTmdJQUlBQUxLd0VCZnlBQVFmei9BRFlDQUFKQUlBQW9BZ1JCREdzaUFVRUlhaENTQWtFQVRnMEFJQUVRRUFzZ0FBdExBUUovSUFBb0FnUWlCMEVJZFNFR0lBZEJBWEVFUUNBREtBSUFJQVlReFFFaEJnc2dBQ2dDQUNJQUlBRWdBaUFESUFacUlBUkJBaUFIUVFKeEd5QUZJQUFvQWdBb0FoUVJDUUFMSUFBQ1FDQUFLQUlFSUFGSERRQWdBQ2dDSEVFQlJnMEFJQUFnQWpZQ0hBc0xtZ0VBSUFCQkFUb0FOUUpBSUFBb0FnUWdBa2NOQUNBQVFRRTZBRFFDUUNBQUtBSVFJZ0pGQkVBZ0FFRUJOZ0lrSUFBZ0F6WUNHQ0FBSUFFMkFoQWdBQ2dDTUVFQlJ3MENJQU5CQVVZTkFRd0NDeUFCSUFKR0JFQWdBQ2dDR0NJQ1FRSkdCRUFnQUNBRE5nSVlJQU1oQWdzZ0FDZ0NNRUVCUncwQ0lBSkJBVVlOQVF3Q0N5QUFJQUFvQWlSQkFXbzJBaVFMSUFCQkFUb0FOZ3NMQ2dBZ0FDQUJhaWdDQUF0ZEFRRi9JQUFvQWhBaUEwVUVRQ0FBUVFFMkFpUWdBQ0FDTmdJWUlBQWdBVFlDRUE4TEFrQWdBU0FEUmdSQUlBQW9BaGhCQWtjTkFTQUFJQUkyQWhnUEN5QUFRUUU2QURZZ0FFRUNOZ0lZSUFBZ0FDZ0NKRUVCYWpZQ0pBc0x1UUVCQTM4akFFRVFheUlESkFBZ0F5QUJOZ0lNQWtBQ1FBSkFBa0FnQUJBMUJFQWdBQkI5SVFFZ0FDZ0NCQ0lFSUFGQkFXc2lBa1lOQVF3REMwRUJJUVJCQVNFQ0lBQXRBQXNpQVVFQlJ3MEJDeUFBSUFKQkFTQUNJQUlROHdFZ0JDRUJJQUFRTlEwQkN5QUFJUUlnQUNBQlFRRnFFRG9NQVFzZ0FDZ0NBQ0VDSUFBZ0JFRUJhaEE1SUFRaEFRc2dBaUFCUVFKMGFpSUFJQU5CREdvUU15QURRUUEyQWdnZ0FFRUVhaUFEUVFocUVETWdBMEVRYWlRQUM2OEJBUU4vSXdCQkVHc2lCU1FBSUFKQmJ5SUdJQUZyVFFSQUlBQVFEU0VIQW44Z0FTQUdRUUYyUVJCclNRUkFJQVVnQVVFQmREWUNDQ0FGSUFFZ0FtbzJBZ3dnQlVFTWFpQUZRUWhxRUhZb0FnQVFrUUVNQVFzZ0JrRUJhd3RCQVdvaUJoQmZJUUlnQkFSQUlBSWdCeUFFRUZVTElBTWdCR3NpQXdSQUlBSWdCR29nQkNBSGFpQURFRlVMSUFGQkNrY0VRQ0FIRUJBTElBQWdBaEJOSUFBZ0JoQk1JQVZCRUdva0FBOExFQmNBQ3dNQUFRc1hBQ0FBS0FJSUVCWkhCRUFnQUNnQ0NCRFVBZ3NnQUFzNEFRRi9Jd0JCRUdzaUF5UUFJQU1nQWpZQ0RDQURRUWhxSUFOQkRHb1FVaUVDSUFBZ0FSRGFBU0VBSUFJUVVTQURRUkJxSkFBZ0FBc0xBQ0FFSUFJMkFnQkJBd3NKQUNBQVFRQTJBZ0FMRHdBZ0FDQUFLQUlFUVFGcU5nSUVDeGtCQVg5QkFTRUJJQUFRTlFSL0lBQVFmVUVCYXdVZ0FRc0xHZ0FnQUVHMElUWUNBQ0FBUVNCcUVBb2FJQUFRdkFFYUlBQUxrd0VCQkg4akFFRVFheUlESkFBQ1FDQUJFRFZGQkVBZ0FDQUJLQUlJTmdJSUlBQWdBU2tDQURjQ0FBd0JDeUFCS0FJQUlRUUNRQUpBQWtBZ0FTZ0NCQ0lDUVFwTkJFQWdBQ0VCSUFBZ0FoQTZEQUVMSUFKQmIwc05BU0FBSUFJUWtRRkJBV29pQlJCZklnRVFUU0FBSUFVUVRDQUFJQUlRT1FzZ0FTQUVJQUpCQVdvUVZRd0JDeEFYQUFzTElBTkJFR29rQUFzeEFDQUNLQUlBSVFJRFFBSkFJQUFnQVVjRWZ5QUFLQUlBSUFKSERRRWdBQVVnQVFzUEN5QUFRUVJxSVFBTUFBc0FDL2tEQVFGL0l3QkJFR3NpRENRQUlBd2dBRFlDREFKQUFrQWdBQ0FGUmdSQUlBRXRBQUJGRFFGQkFDRUFJQUZCQURvQUFDQUVJQVFvQWdBaUFVRUJhallDQUNBQlFTNDZBQUFnQnhBSlJRMENJQWtvQWdBaUFTQUlhMEdmQVVvTkFpQUtLQUlBSVFJZ0NTQUJRUVJxTmdJQUlBRWdBallDQUF3Q0N3SkFJQUFnQmtjTkFDQUhFQWxGRFFBZ0FTMEFBRVVOQVVFQUlRQWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQUNBSklBRkJCR28yQWdBZ0FTQUFOZ0lBUVFBaEFDQUtRUUEyQWdBTUFndEJmeUVBSUFzZ0MwR0FBV29nREVFTWFoRFNBU0FMYXlJRlFmd0FTZzBCSUFWQkFuVkI0TkFBYWkwQUFDRUdBa0FDUUNBRlFYdHhJZ0JCMkFCSEJFQWdBRUhnQUVjTkFTQURJQVFvQWdBaUFVY0VRRUYvSVFBZ0FVRUJheTBBQUVIZkFIRWdBaTBBQUVIL0FIRkhEUVVMSUFRZ0FVRUJhallDQUNBQklBWTZBQUJCQUNFQURBUUxJQUpCMEFBNkFBQU1BUXNnQWl3QUFDSUFJQVpCM3dCeFJ3MEFJQUlnQUVHQUFYSTZBQUFnQVMwQUFFVU5BQ0FCUVFBNkFBQWdCeEFKUlEwQUlBa29BZ0FpQUNBSWEwR2ZBVW9OQUNBS0tBSUFJUUVnQ1NBQVFRUnFOZ0lBSUFBZ0FUWUNBQXNnQkNBRUtBSUFJZ0JCQVdvMkFnQWdBQ0FHT2dBQVFRQWhBQ0FGUWRRQVNnMEJJQW9nQ2lnQ0FFRUJhallDQUF3QkMwRi9JUUFMSUF4QkVHb2tBQ0FBQzFBQkFuOGpBRUVRYXlJR0pBQWdCa0VJYWlJRklBRVFEeUFGRUR0QjROQUFRWURSQUNBQ0VHTWdBeUFGRUl3QklnRVFTRFlDQUNBRUlBRVFPRFlDQUNBQUlBRVFOeUFGRUE0Z0JrRVFhaVFBQ3pFQUlBSXRBQUFoQWdOQUFrQWdBQ0FCUndSL0lBQXRBQUFnQWtjTkFTQUFCU0FCQ3c4TElBQkJBV29oQUF3QUN3QUw3UU1CQVg4akFFRVFheUlNSkFBZ0RDQUFPZ0FQQWtBQ1FDQUFJQVZHQkVBZ0FTMEFBRVVOQVVFQUlRQWdBVUVBT2dBQUlBUWdCQ2dDQUNJQlFRRnFOZ0lBSUFGQkxqb0FBQ0FIRUFsRkRRSWdDU2dDQUNJQklBaHJRWjhCU2cwQ0lBb29BZ0FoQWlBSklBRkJCR28yQWdBZ0FTQUNOZ0lBREFJTEFrQWdBQ0FHUncwQUlBY1FDVVVOQUNBQkxRQUFSUTBCUVFBaEFDQUpLQUlBSWdFZ0NHdEJud0ZLRFFJZ0NpZ0NBQ0VBSUFrZ0FVRUVhallDQUNBQklBQTJBZ0JCQUNFQUlBcEJBRFlDQUF3Q0MwRi9JUUFnQ3lBTFFTQnFJQXhCRDJvUTFRRWdDMnNpQlVFZlNnMEJJQVZCNE5BQWFpMEFBQ0VHQWtBQ1FBSkFBa0FnQlVGK2NVRVdhdzREQVFJQUFnc2dBeUFFS0FJQUlnRkhCRUFnQVVFQmF5MEFBRUhmQUhFZ0FpMEFBRUgvQUhGSERRVUxJQVFnQVVFQmFqWUNBQ0FCSUFZNkFBQkJBQ0VBREFRTElBSkIwQUE2QUFBTUFRc2dBaXdBQUNJQUlBWkIzd0J4UncwQUlBSWdBRUdBQVhJNkFBQWdBUzBBQUVVTkFDQUJRUUE2QUFBZ0J4QUpSUTBBSUFrb0FnQWlBQ0FJYTBHZkFVb05BQ0FLS0FJQUlRRWdDU0FBUVFScU5nSUFJQUFnQVRZQ0FBc2dCQ0FFS0FJQUlnQkJBV28yQWdBZ0FDQUdPZ0FBUVFBaEFDQUZRUlZLRFFFZ0NpQUtLQUlBUVFGcU5nSUFEQUVMUVg4aEFBc2dERUVRYWlRQUlBQUxVQUVDZnlNQVFSQnJJZ1lrQUNBR1FRaHFJZ1VnQVJBUElBVVFNa0hnMEFCQmdORUFJQUlRYnlBRElBVVFqZ0VpQVJCSU9nQUFJQVFnQVJBNE9nQUFJQUFnQVJBM0lBVVFEaUFHUVJCcUpBQUxmZ0lDZndKK0l3QkJvQUZySWdRa0FDQUVJQUUyQWp3Z0JDQUJOZ0lVSUFSQmZ6WUNHQ0FFUVJCcUlnVkNBQkJUSUFRZ0JTQURRUUVRNWdJZ0JDa0RDQ0VHSUFRcEF3QWhCeUFDQkVBZ0FpQUJJQVFvQWhRZ0JDZ0NpQUZxSUFRb0FqeHJhallDQUFzZ0FDQUhOd01BSUFBZ0JqY0RDQ0FFUWFBQmFpUUFDdzBBSUFBZ0FTQUNRbjhRMEFJTGlRSUFBa0FnQUFSL0lBRkIvd0JORFFFQ1FFSFloZ0VvQWdBb0FnQkZCRUFnQVVHQWYzRkJnTDhEUmcwRERBRUxJQUZCL3c5TkJFQWdBQ0FCUVQ5eFFZQUJjam9BQVNBQUlBRkJCblpCd0FGeU9nQUFRUUlQQ3lBQlFZQkFjVUdBd0FOSElBRkJnTEFEVDNGRkJFQWdBQ0FCUVQ5eFFZQUJjam9BQWlBQUlBRkJESFpCNEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBRkJBdzhMSUFGQmdJQUVhMEgvL3o5TkJFQWdBQ0FCUVQ5eFFZQUJjam9BQXlBQUlBRkJFblpCOEFGeU9nQUFJQUFnQVVFR2RrRS9jVUdBQVhJNkFBSWdBQ0FCUVF4MlFUOXhRWUFCY2pvQUFVRUVEd3NMUWRTQkFVRVpOZ0lBUVg4RlFRRUxEd3NnQUNBQk9nQUFRUUVMcndJQkJIOENmd0pBSUFBaUFVRURjUVJBQTBBZ0FTMEFBQ0lDUlNBQ1FUMUdjZzBDSUFGQkFXb2lBVUVEY1EwQUN3c0NRQ0FCS0FJQUlnSkJmM01nQWtHQmdvUUlhM0ZCZ0lHQ2hIaHhEUUFEUUNBQ1FiMzY5T2tEY3lJQ1FYOXpJQUpCZ1lLRUNHdHhRWUNCZ29SNGNRMEJJQUVvQWdRaEFpQUJRUVJxSVFFZ0FrR0Jnb1FJYXlBQ1FYOXpjVUdBZ1lLRWVIRkZEUUFMQ3dOQUlBRWlBaTBBQUNJREJFQWdBa0VCYWlFQklBTkJQVWNOQVFzTElBSU1BUXNnQVFzZ0FHc2lBa1VFUUVFQUR3c0NRQ0FBSUFKcUxRQUFEUUJCOUlZQktBSUFJZ0ZGRFFBZ0FTZ0NBQ0lEUlEwQUEwQUNRQ0FBSUFNZ0FoQytBVVVFUUNBQktBSUFJQUpxSWdNdEFBQkJQVVlOQVFzZ0FTZ0NCQ0VESUFGQkJHb2hBU0FERFFFTUFnc0xJQU5CQVdvaEJBc2dCQXZoQVFFQ2Z5QUNRUUJISVFNQ1FBSkFBa0FnQUVFRGNVVWdBa1Z5RFFBZ0FVSC9BWEVoQkFOQUlBQXRBQUFnQkVZTkFpQUNRUUZySWdKQkFFY2hBeUFBUVFGcUlnQkJBM0ZGRFFFZ0FnMEFDd3NnQTBVTkFRc0NRQ0FBTFFBQUlBRkIvd0Z4UmlBQ1FRUkpjZzBBSUFGQi93RnhRWUdDaEFoc0lRTURRQ0FBS0FJQUlBTnpJZ1JCZjNNZ0JFR0Jnb1FJYTNGQmdJR0NoSGh4RFFFZ0FFRUVhaUVBSUFKQkJHc2lBa0VEU3cwQUN3c2dBa1VOQUNBQlFmOEJjU0VCQTBBZ0FTQUFMUUFBUmdSQUlBQVBDeUFBUVFGcUlRQWdBa0VCYXlJQ0RRQUxDMEVBQzljREFnSitBbjhqQUVFZ2F5SUVKQUFDUUNBQlF2Ly8vLy8vLy8vLy93Q0RJZ05DZ0lDQWdJQ0F3SUE4ZlNBRFFvQ0FnSUNBZ01EL3d3QjlWQVJBSUFGQ0JJWWdBRUk4aUlRaEF5QUFRdi8vLy8vLy8vLy9ENE1pQUVLQmdJQ0FnSUNBZ0FoYUJFQWdBMEtCZ0lDQWdJQ0FnTUFBZkNFQ0RBSUxJQU5DZ0lDQWdJQ0FnSUJBZlNFQ0lBQkNnSUNBZ0lDQWdJQUloVUlBVWcwQklBSWdBMElCZzN3aEFnd0JDeUFBVUNBRFFvQ0FnSUNBZ01ELy93QlVJQU5DZ0lDQWdJQ0F3UC8vQUZFYlJRUkFJQUZDQklZZ0FFSThpSVJDLy8vLy8vLy8vd09EUW9DQWdJQ0FnSUQ4L3dDRUlRSU1BUXRDZ0lDQWdJQ0FnUGovQUNFQ0lBTkMvLy8vLy8vL3YvL0RBRllOQUVJQUlRSWdBMEl3aUtjaUJVR1I5d0JKRFFBZ0JFRVFhaUFBSUFGQy8vLy8vLy8vUDROQ2dJQ0FnSUNBd0FDRUlnSWdCVUdCOXdCckVDOGdCQ0FBSUFKQmdmZ0FJQVZyRUh3Z0JDa0RDRUlFaGlBRUtRTUFJZ0JDUElpRUlRSWdCQ2tERUNBRUtRTVloRUlBVXEwZ0FFTC8vLy8vLy8vLy93K0RoQ0lBUW9HQWdJQ0FnSUNBQ0ZvRVFDQUNRZ0Y4SVFJTUFRc2dBRUtBZ0lDQWdJQ0FnQWlGUWdCU0RRQWdBa0lCZ3lBQ2ZDRUNDeUFFUVNCcUpBQWdBaUFCUW9DQWdJQ0FnSUNBZ0grRGhMOExSQUVCZnlNQVFSQnJJZ1VrQUNBRklBRWdBaUFESUFSQ2dJQ0FnSUNBZ0lDQWY0VVFQQ0FGS1FNQUlRRWdBQ0FGS1FNSU53TUlJQUFnQVRjREFDQUZRUkJxSkFBTHFRRUJBWHhFQUFBQUFBQUE4RDhoQVFKQUlBQkJnQWhPQkVCRUFBQUFBQUFBNEg4aEFTQUFRZjhQU0FSQUlBQkIvd2RySVFBTUFndEVBQUFBQUFBQThIOGhBU0FBUWYwWElBQkIvUmRJRzBIK0Qyc2hBQXdCQ3lBQVFZRjRTZzBBUkFBQUFBQUFBR0FESVFFZ0FFRzRjRW9FUUNBQVFja0hhaUVBREFFTFJBQUFBQUFBQUFBQUlRRWdBRUh3YUNBQVFmQm9TaHRCa2c5cUlRQUxJQUVnQUVIL0IycXRRalNHdjZJTHhBRUNBWDhDZmtGL0lRTUNRQ0FBUWdCU0lBRkMvLy8vLy8vLy8vLy9BSU1pQkVLQWdJQ0FnSURBLy84QVZpQUVRb0NBZ0lDQWdNRC8vd0JSR3cwQVFRQWdBa0wvLy8vLy8vLy8vLzhBZ3lJRlFvQ0FnSUNBZ01ELy93QldJQVZDZ0lDQWdJQ0F3UC8vQUZFYkRRQWdBQ0FFSUFXRWhGQUVRRUVBRHdzZ0FTQUNnMElBV1FSQVFRQWdBU0FDVXlBQklBSlJHdzBCSUFBZ0FTQUNoWVJDQUZJUEN5QUFRZ0JTSUFFZ0FsVWdBU0FDVVJzTkFDQUFJQUVnQW9XRVFnQlNJUU1MSUFNTGFRRUNmeUFBUWJ3b05nSUFJQUFvQWlnaEFRTkFJQUVFUUVFQUlBQWdBVUVCYXlJQlFRSjBJZ0lnQUNnQ0pHb29BZ0FnQUNnQ0lDQUNhaWdDQUJFSEFBd0JDd3NnQUVFY2FoQU9JQUFvQWlBUUVDQUFLQUlrRUJBZ0FDZ0NNQkFRSUFBb0Fqd1FFQ0FBQ3drQUlBQVFpZ0VRRUFzSkFDQUFFTGdCRUJBTERBQWdBRUVFYWhCK0dpQUFDd3dBSUFCQkNHb1FmaG9nQUF2L0x3RVJmeU1BUVNCckloTWtBQUovUWZRQkVCa2lDQVIvQWtBZ0NDSUdJQUFnQVVFRGRCQ0pBeUlBUVFCTURRQWdBRUVDZENFUEEwQWdCaUFSUVFKMElnZHFJZ0VvQWdBaENpQUJJQVlnRDBFQ2RDSVFhaUlCS0FJQU5nSUFJQUVnQ2pZQ0FDQUdJQWRCQkhKcUlnRW9BZ0FoQ2lBQklBWWdFRUVFY21vaUFTZ0NBRFlDQUNBQklBbzJBZ0FnQmlBSFFRaHlhaUlCS0FJQUlRb2dBU0FHSUJCQkNISnFJZ0VvQWdBMkFnQWdBU0FLTmdJQUlBWWdCMEVNY21vaUFTZ0NBQ0VLSUFFZ0JpQVFRUXh5YWlJQktBSUFOZ0lBSUFFZ0NqWUNBQ0FSUVFScUloRWdEMEVFYXlJUFNBMEFDMEVCSVJFZ0FFRUJUQTBBQTBBZ0JrRVFhaUVHUVFBaER3TkFJQVlnRDBFQ2RHb2lBU0FCS0FJQUlnRkJEblpCL0FkeFFZQUlhaWdDQUVFR2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBQlFSWjJRZndIY1VHQUNHb29BZ0JCQm5aQi9BZHhRWUFRYWlnQ0FITWdBVUVHZGtIOEIzRkJnQWhxS0FJQVFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUJRZjhCY1VFQ2RFR0FDR29vQWdCQkJuWkIvQWR4UVlBUWFpZ0NBRUVZRUFoek5nSUFJQTlCQVdvaUQwRUVSdzBBQ3lBUlFRRnFJaEVnQUVjTkFBc0xJQUJCQUVnRVFDQUlFQkJCQUF3Q0N5QUlJQUEyQXZBQklBZ0ZRUUFMQ3lJQUJIOGdFeUFDS1FBQU53TVFJQk1nQWlrQUNEY0RHQ0FFUVJCUEJFQWdCRUVFZGlFVlFRQWhBUU5BSUJNZ0F5a0FBRGNEQUNBVElBTXBBQWczQXdnZ0FDZ0M4QUVoRkNBQUtBSU1JQU1vQUF3aUFrRVlkQ0FDUVFoMFFZQ0EvQWR4Y2lBQ1FRaDJRWUQrQTNFZ0FrRVlkbkp5Y3lJUFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSSWdBQ2dDQ0NBREtBQUlJZ0pCR0hRZ0FrRUlkRUdBZ1B3SGNYSWdBa0VJZGtHQS9nTnhJQUpCR0haeWNuTWlFVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VPSUFBb0FnUWdBeWdBQkNJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkp6SWdkQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaENTQUFLQUlBSUFNb0FBQWlBa0VZZENBQ1FRaDBRWUNBL0FkeGNpQUNRUWgyUVlEK0EzRWdBa0VZZG5KeWN5SUxRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUkFnRDBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFS0lCRkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCaUFIUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVFnZ0MwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUVJQTlCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQWlBUlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBOUJGblpCL0FkeFFZQVFhaWdDQUhNZ0IwRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNITWdDMEgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDSE1nQUNnQ0hITWlERUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VQSUFBb0FoZ2dBaUFFSUFnZ0VVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SU5RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnQUNnQ0ZDQUdJQW9nRUNBSFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnVkIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hCeUFBS0FJUUlBa2dEaUFTSUF0QkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUMwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVFJQXhCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQ2lBTlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRWWdCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VJSUF0QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEJDQU1RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUUlnRFVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NBTVFSWjJRZndIY1VHQUVHb29BZ0J6SUFWQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBdEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBaHpJQUFvQWl4eklneEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFaUFBS0FJb0lBSWdCQ0FJSUExQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaURVRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRU9JQUFvQWlRZ0JpQUtJQkFnQlVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJRlFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRa2dBQ2dDSUNBSElCRWdEeUFMUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWd0QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaEVDQU1RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUW9nRFVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFR0lBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hDQ0FMUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFRZ0RFSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUNJQTFCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdnREVFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFGUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBTFFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSWN5QUFLQUk4Y3lJTVFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlROGdBQ2dDT0NBQ0lBUWdDQ0FOUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWcxQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaEVTQUFLQUkwSUFZZ0NpQVFJQVZCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQlVIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBQW9BakFnQ1NBT0lCSWdDMEVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlMUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSVJBZ0RFRUdka0g4QjNGQmdCQnFLQUlBUVJBUUNDRUtJQTFCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQmlBRlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlRZ2dDMEVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VFSUF4Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEFpQU5RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJQXhCRm5aQi9BZHhRWUFRYWlnQ0FITWdCVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDSE1nQzBIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0NUSE1pREVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFU0lBQW9Ba2dnQWlBRUlBZ2dEVUVXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlOUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVE0Z0FDZ0NSQ0FHSUFvZ0VDQUZRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ1ZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWdoQ1NBQUtBSkFJQWNnRVNBUElBdEJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlDMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUF4QkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU5RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnQlVFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBdEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FNUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQU1RUloyUWZ3SGNVR0FFR29vQWdCeklBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQXRCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FseHpJZ3hCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoRHlBQUtBSllJQUlnQkNBSUlBMUJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlEVUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VSSUFBb0FsUWdCaUFLSUJBZ0JVRVdka0g4QjNGQmdCQnFLQUlBYzNOemN5SUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUWNnQUNnQ1VDQUpJQTRnRWlBTFFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklndEJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FNUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQVZCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBTFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdERUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUExQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0RFRVdka0g4QjNGQmdCQnFLQUlBY3lBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUxRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FKc2N5SU1RUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUklnQUNnQ2FDQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnMUJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hEaUFBS0FKa0lBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUJVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUpJQUFvQW1BZ0J5QVJJQThnQzBFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTFFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlSQWdERUVHZGtIOEIzRkJnQkJxS0FJQVFSQVFDQ0VLSUExQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJpQUZRUTUyUWZ3SGNVR0FFR29vQWdCQkNCQUlJUWdnQzBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0NFRUlBeEIvd0Z4UVFKMFFZQVFhaWdDQUVFWUVBZ2hBaUFOUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUF4QkZuWkIvQWR4UVlBUWFpZ0NBSE1nQlVFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0MwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDZkhNaURFRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQUFvQW5nZ0FpQUVJQWdnRFVFV2RrSDhCM0ZCZ0JCcUtBSUFjM056Y3lJTlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlSRWdBQ2dDZENBR0lBb2dFQ0FGUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdWQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFnaEJ5QUFLQUp3SUFrZ0RpQVNJQXRCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pRGtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFUUlBeEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hDaUFOUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFZZ0JVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRUlJQTVCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoQkNBTVFmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRSWdEVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FNUVJaMlFmd0hjVUdBRUdvb0FnQnpJQVZCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUE1Qi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9Bb3dCY3lJSlFRNTJRZndIY1VHQUVHb29BZ0JCQ0JBSUlBQW9Bb0FCSUFjZ0VTQVBJQTVCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQjBFV2RrSDhCM0ZCZ0JCcUtBSUFjeUFBS0FLSUFTQUNJQVFnQ0NBTlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnUkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQUFvQW9RQklBWWdDaUFRSUFWQkZuWkIvQWR4UVlBUWFpZ0NBSE56YzNNaUFrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDa0FGeklRVWdCMEVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FDUVJaMlFmd0hjVUdBRUdvb0FnQnpJQWxCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFSQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcFFCY3lFU0lBSkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dCRUVXZGtIOEIzRkJnQkJxS0FJQWN5QUhRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS1lBWE1oRGdKL0lBUkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2dDVUVXZGtIOEIzRkJnQkJxS0FJQWN5QUNRUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUljeUFIUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJY3lBQUtBS2NBWE1pQ1NBVVFRdElEUUFhSUFsQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnaER5QU9RUVoyUWZ3SGNVR0FFR29vQWdCQkVCQUlJUkVnRWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0NFSElBVkJEblpCL0FkeFFZQVFhaWdDQUVFSUVBZ2hFQ0FKUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJSVFvZ0RrSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNDRUdJQkpCRG5aQi9BZHhRWUFRYWlnQ0FFRUlFQWdoQ0NBRlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSUlRUWdDVUgvQVhGQkFuUkJnQkJxS0FJQVFSZ1FDQ0VDSUE1QkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0NVRVdka0g4QjNGQmdCQnFLQUlBY3lBU1FRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUZRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLc0FYTWlDVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FBS0FLZ0FTQUhJQkVnRHlBRlFSWjJRZndIY1VHQUVHb29BZ0J6YzNOeklnZEJGblpCL0FkeFFZQVFhaWdDQUhNZ0FDZ0NxQUVnQWlBRUlBZ2dEa0VXZGtIOEIzRkJnQkJxS0FJQWMzTnpjeUlFUVFaMlFmd0hjVUdBRUdvb0FnQkJFQkFJY3lBQUtBS2tBU0FHSUFvZ0VDQVNRUloyUWZ3SGNVR0FFR29vQWdCemMzTnpJZ0pCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0FyQUJjeUVGSUFkQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0FrRVdka0g4QjNGQmdCQnFLQUlBY3lBSlFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUVRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FLMEFYTWhFaUFDUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFSQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQjBFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0NVSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDdUFGeklRNGdCRUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0FKUVJaMlFmd0hjVUdBRUdvb0FnQnpJQUpCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWh6SUFkQi93RnhRUUowUVlBUWFpZ0NBRUVZRUFoeklBQW9BcndCY3lJSklCUkJEVWdOQUJvZ0NVRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDRVBJQTVCQm5aQi9BZHhRWUFRYWlnQ0FFRVFFQWdoRVNBU1FmOEJjVUVDZEVHQUVHb29BZ0JCR0JBSUlRY2dCVUVPZGtIOEIzRkJnQkJxS0FJQVFRZ1FDQ0VRSUFsQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFnaENpQU9RZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUlJUVlnRWtFT2RrSDhCM0ZCZ0JCcUtBSUFRUWdRQ0NFSUlBVkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBZ2hCQ0FKUWY4QmNVRUNkRUdBRUdvb0FnQkJHQkFJSVFJZ0RrRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUpRUloyUWZ3SGNVR0FFR29vQWdCeklCSkJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVZCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0Fzd0JjeUlKUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFBb0FzQUJJQWNnRVNBUElBVkJGblpCL0FkeFFZQVFhaWdDQUhOemMzTWlCMEVXZGtIOEIzRkJnQkJxS0FJQWN5QUFLQUxJQVNBQ0lBUWdDQ0FPUVJaMlFmd0hjVUdBRUdvb0FnQnpjM056SWdSQkJuWkIvQWR4UVlBUWFpZ0NBRUVRRUFoeklBQW9Bc1FCSUFZZ0NpQVFJQkpCRm5aQi9BZHhRWUFRYWlnQ0FITnpjM01pQWtIL0FYRkJBblJCZ0JCcUtBSUFRUmdRQ0hNZ0FDZ0MwQUZ6SVFVZ0IwRU9ka0g4QjNGQmdCQnFLQUlBUVFnUUNDQUNRUloyUWZ3SGNVR0FFR29vQWdCeklBbEJCblpCL0FkeFFZQVFhaWdDQUVFUUVBaHpJQVJCL3dGeFFRSjBRWUFRYWlnQ0FFRVlFQWh6SUFBb0F0UUJjeUVTSUFKQkRuWkIvQWR4UVlBUWFpZ0NBRUVJRUFnZ0JFRVdka0g4QjNGQmdCQnFLQUlBY3lBSFFRWjJRZndIY1VHQUVHb29BZ0JCRUJBSWN5QUpRZjhCY1VFQ2RFR0FFR29vQWdCQkdCQUljeUFBS0FMWUFYTWhEaUFFUVE1MlFmd0hjVUdBRUdvb0FnQkJDQkFJSUFsQkZuWkIvQWR4UVlBUWFpZ0NBSE1nQWtFR2RrSDhCM0ZCZ0JCcUtBSUFRUkFRQ0hNZ0IwSC9BWEZCQW5SQmdCQnFLQUlBUVJnUUNITWdBQ2dDM0FGekN5RUlJQU1nQUNBVVFRUjBhaUlFS0FJQUlCSkIvd0Z4UVlBWWFpMEFBQ0FJUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnQlVFWWRrR0FHR290QUFCQkdIUnlJQTVCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUFBZ0F5QUVLQUlFSUE1Qi93RnhRWUFZYWkwQUFDQUZRUkIyUWY4QmNVR0FHR290QUFCQkVIUWdFa0VZZGtHQUdHb3RBQUJCR0hSeUlBaEJDSFpCL3dGeFFZQVlhaTBBQUVFSWRISnljeUlDUVJoMElBSkJDSFJCZ0lEOEIzRnlJQUpCQ0haQmdQNERjU0FDUVJoMmNuSTJBQVFnQXlBRUtBSUlJQWhCL3dGeFFZQVlhaTBBQUNBU1FSQjJRZjhCY1VHQUdHb3RBQUJCRUhRZ0RrRVlka0dBR0dvdEFBQkJHSFJ5SUFWQkNIWkIvd0Z4UVlBWWFpMEFBRUVJZEhKeWN5SUNRUmgwSUFKQkNIUkJnSUQ4QjNGeUlBSkJDSFpCZ1A0RGNTQUNRUmgyY25JMkFBZ2dBeUFFS0FJTUlBVkIvd0Z4UVlBWWFpMEFBQ0FPUVJCMlFmOEJjVUdBR0dvdEFBQkJFSFFnQ0VFWWRrR0FHR290QUFCQkdIUnlJQkpCQ0haQi93RnhRWUFZYWkwQUFFRUlkSEp5Y3lJQ1FSaDBJQUpCQ0hSQmdJRDhCM0Z5SUFKQkNIWkJnUDREY1NBQ1FSaDJjbkkyQUF4QkFDRUNBMEFnQWlBRGFpSUVJQVF0QUFBZ0UwRVFhaUFDYWkwQUFITTZBQUFnQWtFQmFpSUNRUkJIRFFBTElCTWdFeWtEQ0RjREdDQVRJQk1wQXdBM0F4QWdBMEVRYWlFRElBRkJBV29pQVNBVlJ3MEFDd3NnQUJBUVFRQUZRWDhMR2lBVFFTQnFKQUFMbGdFQkFuOGpBRUVRYXlJQUpBQUNRQ0FBUVF4cUlBQkJDR29RQXcwQVFmU0dBU0FBS0FJTVFRSjBRUVJxRUJraUFUWUNBQ0FCUlEwQUlBQW9BZ2dRR1NJQkJFQkI5SVlCS0FJQUlBQW9BZ3hCQW5ScVFRQTJBZ0JCOUlZQktBSUFJQUVRQWtVTkFRdEI5SVlCUVFBMkFnQUxJQUJCRUdva0FFSElnUUZCdlI0UVZCcEIySVlCUWVpRkFUWUNBRUdRaGdGQktqWUNBQXRaQVFGL0lBQWdBQ2dDU0NJQlFRRnJJQUZ5TmdKSUlBQW9BZ0FpQVVFSWNRUkFJQUFnQVVFZ2NqWUNBRUYvRHdzZ0FFSUFOd0lFSUFBZ0FDZ0NMQ0lCTmdJY0lBQWdBVFlDRkNBQUlBRWdBQ2dDTUdvMkFoQkJBQXQ4QVFKL0lBQWdBQ2dDU0NJQlFRRnJJQUZ5TmdKSUlBQW9BaFFnQUNnQ0hFY0VRQ0FBUVFCQkFDQUFLQUlrRVFRQUdnc2dBRUVBTmdJY0lBQkNBRGNERUNBQUtBSUFJZ0ZCQkhFRVFDQUFJQUZCSUhJMkFnQkJmdzhMSUFBZ0FDZ0NMQ0FBS0FJd2FpSUNOZ0lJSUFBZ0FqWUNCQ0FCUVJ0MFFSOTFDOVVDQVFKL0FrQWdBQ0FCUmcwQUlBRWdBQ0FDYWlJRWEwRUFJQUpCQVhSclRRUkFJQUFnQVNBQ0VFSWFEd3NnQUNBQmMwRURjU0VEQWtBQ1FDQUFJQUZKQkVBZ0F3MENJQUJCQTNGRkRRRURRQ0FDUlEwRUlBQWdBUzBBQURvQUFDQUJRUUZxSVFFZ0FrRUJheUVDSUFCQkFXb2lBRUVEY1EwQUN3d0JDd0pBSUFNTkFDQUVRUU54QkVBRFFDQUNSUTBGSUFBZ0FrRUJheUlDYWlJRElBRWdBbW90QUFBNkFBQWdBMEVEY1EwQUN3c2dBa0VEVFEwQUEwQWdBQ0FDUVFScklnSnFJQUVnQW1vb0FnQTJBZ0FnQWtFRFN3MEFDd3NnQWtVTkFnTkFJQUFnQWtFQmF5SUNhaUFCSUFKcUxRQUFPZ0FBSUFJTkFBc01BZ3NnQWtFRFRRMEFBMEFnQUNBQktBSUFOZ0lBSUFGQkJHb2hBU0FBUVFScUlRQWdBa0VFYXlJQ1FRTkxEUUFMQ3lBQ1JRMEFBMEFnQUNBQkxRQUFPZ0FBSUFCQkFXb2hBQ0FCUVFGcUlRRWdBa0VCYXlJQ0RRQUxDd3NVQUNBQVFReHFJZ0FnQUJDVUFVRUJhaENUQVF1TERBRUdmeUFBSUFGcUlRVUNRQUpBSUFBb0FnUWlBa0VCY1EwQUlBSkJBM0ZGRFFFZ0FDZ0NBQ0lDSUFGcUlRRUNRQ0FBSUFKcklnQkI3SUVCS0FJQVJ3UkFJQUpCL3dGTkJFQWdBQ2dDQ0NJRUlBSkJBM1lpQWtFRGRFR0FnZ0ZxUmhvZ0FDZ0NEQ0lESUFSSERRSkIySUVCUWRpQkFTZ0NBRUYrSUFKM2NUWUNBQXdEQ3lBQUtBSVlJUVlDUUNBQUlBQW9BZ3dpQTBjRVFDQUFLQUlJSWdKQjZJRUJLQUlBU1JvZ0FpQUROZ0lNSUFNZ0FqWUNDQXdCQ3dKQUlBQkJGR29pQWlnQ0FDSUVEUUFnQUVFUWFpSUNLQUlBSWdRTkFFRUFJUU1NQVFzRFFDQUNJUWNnQkNJRFFSUnFJZ0lvQWdBaUJBMEFJQU5CRUdvaEFpQURLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBDQWtBZ0FDQUFLQUljSWdSQkFuUkJpSVFCYWlJQ0tBSUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQjNJRUJRZHlCQVNnQ0FFRitJQVIzY1RZQ0FBd0VDeUFHUVJCQkZDQUdLQUlRSUFCR0cyb2dBellDQUNBRFJRMERDeUFESUFZMkFoZ2dBQ2dDRUNJQ0JFQWdBeUFDTmdJUUlBSWdBellDR0FzZ0FDZ0NGQ0lDUlEwQ0lBTWdBallDRkNBQ0lBTTJBaGdNQWdzZ0JTZ0NCQ0lDUVFOeFFRTkhEUUZCNElFQklBRTJBZ0FnQlNBQ1FYNXhOZ0lFSUFBZ0FVRUJjallDQkNBRklBRTJBZ0FQQ3lBRUlBTTJBZ3dnQXlBRU5nSUlDd0pBSUFVb0FnUWlBa0VDY1VVRVFDQUZRZkNCQVNnQ0FFWUVRRUh3Z1FFZ0FEWUNBRUhrZ1FGQjVJRUJLQUlBSUFGcUlnRTJBZ0FnQUNBQlFRRnlOZ0lFSUFCQjdJRUJLQUlBUncwRFFlQ0JBVUVBTmdJQVFleUJBVUVBTmdJQUR3c2dCVUhzZ1FFb0FnQkdCRUJCN0lFQklBQTJBZ0JCNElFQlFlQ0JBU2dDQUNBQmFpSUJOZ0lBSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBUEN5QUNRWGh4SUFGcUlRRUNRQ0FDUWY4QlRRUkFJQVVvQWdnaUJDQUNRUU4ySWdKQkEzUkJnSUlCYWtZYUlBUWdCU2dDRENJRFJnUkFRZGlCQVVIWWdRRW9BZ0JCZmlBQ2QzRTJBZ0FNQWdzZ0JDQUROZ0lNSUFNZ0JEWUNDQXdCQ3lBRktBSVlJUVlDUUNBRklBVW9BZ3dpQTBjRVFDQUZLQUlJSWdKQjZJRUJLQUlBU1JvZ0FpQUROZ0lNSUFNZ0FqWUNDQXdCQ3dKQUlBVkJGR29pQkNnQ0FDSUNEUUFnQlVFUWFpSUVLQUlBSWdJTkFFRUFJUU1NQVFzRFFDQUVJUWNnQWlJRFFSUnFJZ1FvQWdBaUFnMEFJQU5CRUdvaEJDQURLQUlRSWdJTkFBc2dCMEVBTmdJQUN5QUdSUTBBQWtBZ0JTQUZLQUljSWdSQkFuUkJpSVFCYWlJQ0tBSUFSZ1JBSUFJZ0F6WUNBQ0FERFFGQjNJRUJRZHlCQVNnQ0FFRitJQVIzY1RZQ0FBd0NDeUFHUVJCQkZDQUdLQUlRSUFWR0cyb2dBellDQUNBRFJRMEJDeUFESUFZMkFoZ2dCU2dDRUNJQ0JFQWdBeUFDTmdJUUlBSWdBellDR0FzZ0JTZ0NGQ0lDUlEwQUlBTWdBallDRkNBQ0lBTTJBaGdMSUFBZ0FVRUJjallDQkNBQUlBRnFJQUUyQWdBZ0FFSHNnUUVvQWdCSERRRkI0SUVCSUFFMkFnQVBDeUFGSUFKQmZuRTJBZ1FnQUNBQlFRRnlOZ0lFSUFBZ0FXb2dBVFlDQUFzZ0FVSC9BVTBFUUNBQlFRTjJJZ0pCQTNSQmdJSUJhaUVCQW45QjJJRUJLQUlBSWdOQkFTQUNkQ0lDY1VVRVFFSFlnUUVnQWlBRGNqWUNBQ0FCREFFTElBRW9BZ2dMSVFJZ0FTQUFOZ0lJSUFJZ0FEWUNEQ0FBSUFFMkFnd2dBQ0FDTmdJSUR3dEJIeUVDSUFCQ0FEY0NFQ0FCUWYvLy93ZE5CRUFnQVVFSWRpSUNJQUpCZ1A0L2FrRVFka0VJY1NJRWRDSUNJQUpCZ09BZmFrRVFka0VFY1NJRGRDSUNJQUpCZ0lBUGFrRVFka0VDY1NJQ2RFRVBkaUFESUFSeUlBSnlheUlDUVFGMElBRWdBa0VWYW5aQkFYRnlRUnhxSVFJTElBQWdBallDSENBQ1FRSjBRWWlFQVdvaEJ3SkFBa0JCM0lFQktBSUFJZ1JCQVNBQ2RDSURjVVVFUUVIY2dRRWdBeUFFY2pZQ0FDQUhJQUEyQWdBZ0FDQUhOZ0lZREFFTElBRkJBRUVaSUFKQkFYWnJJQUpCSDBZYmRDRUNJQWNvQWdBaEF3TkFJQU1pQkNnQ0JFRjRjU0FCUmcwQ0lBSkJIWFloQXlBQ1FRRjBJUUlnQkNBRFFRUnhhaUlIUVJCcUtBSUFJZ01OQUFzZ0J5QUFOZ0lRSUFBZ0JEWUNHQXNnQUNBQU5nSU1JQUFnQURZQ0NBOExJQVFvQWdnaUFTQUFOZ0lNSUFRZ0FEWUNDQ0FBUVFBMkFoZ2dBQ0FFTmdJTUlBQWdBVFlDQ0FzTFpBQWdBQ0FCUWlpR1FvQ0FnSUNBZ01EL0FJTWdBVUk0aG9RZ0FVSVloa0tBZ0lDQWdPQS9neUFCUWdpR1FvQ0FnSUR3SDRPRWhDQUJRZ2lJUW9DQWdQZ1BneUFCUWhpSVFvQ0EvQWVEaENBQlFpaUlRb0QrQTRNZ0FVSTRpSVNFaERjQUFBc1BBQ0FBS0FJTUdpQUFRUUEyQWd3TGh3RUJCSDhqQUVFUWF5SUZKQUFqQUVFUWF5SURKQUFDUUNBQlFXOU5CRUFDUUNBQlFRcE5CRUFnQUNBQkVEb2dBQ0VFREFFTElBQWdBUkNSQVVFQmFpSUdFRjhpQkJCTklBQWdCaEJNSUFBZ0FSQTVDeUFFSUFFZ0FoRDNBU0FEUVFBNkFBOGdBU0FFYWlBRFFROXFFRFFnQTBFUWFpUUFEQUVMRUJjQUN5QUZRUkJxSkFBZ0FBdFZBUUovSUFBb0FnUWhCQUovUVFBZ0FrVU5BQm9nQkVFSWRTSUZJQVJCQVhGRkRRQWFJQUlvQWdBZ0JSREZBUXNoQlNBQUtBSUFJZ0FnQVNBQ0lBVnFJQU5CQWlBRVFRSnhHeUFBS0FJQUtBSWNFUWdBQ3cwQUlBQW9BZ0FnQVNnQ0FFa0xJd0FnQUVFQU5nSU1JQUFnQVRZQ0JDQUFJQUUyQWdBZ0FDQUJRUUZxTmdJSUlBQUx1d0VCQTM4akFFRVFheUlGSkFBZ0FrSHYvLy8vQXlJR0lBRnJUUVJBSUFBUURTRUhJQUFDZnlBQklBWkJBWFpCRUd0SkJFQWdCU0FCUVFGME5nSUlJQVVnQVNBQ2FqWUNEQ0FGUVF4cUlBVkJDR29RZGlnQ0FCQ0NBUXdCQ3lBR1FRRnJDMEVCYWlJR0VJRUJJUUlnQkFSQUlBSWdCeUFFRUhFTElBTWdCR3NpQXdSQUlBUkJBblFpQkNBQ2FpQUVJQWRxSUFNUWNRc2dBVUVCUndSQUlBY1FFQXNnQUNBQ0VFMGdBQ0FHRUV3Z0JVRVFhaVFBRHdzUUZ3QUxoQUlCQTM4akFFRVFheUlJSkFBZ0FrSHYvLy8vQXlJSklBRkJmM05xVFFSQUlBQVFEU0VLSUFBQ2Z5QUJJQWxCQVhaQkVHdEpCRUFnQ0NBQlFRRjBOZ0lJSUFnZ0FTQUNhallDRENBSVFReHFJQWhCQ0dvUWRpZ0NBQkNDQVF3QkN5QUpRUUZyQzBFQmFpSUpFSUVCSVFJZ0JBUkFJQUlnQ2lBRUVIRUxJQVlFUUNBRVFRSjBJQUpxSUFjZ0JoQnhDeUFESUFRZ0JXcHJJZ01FUUNBRVFRSjBJZ2NnQW1vZ0JrRUNkR29nQnlBS2FpQUZRUUowYWlBREVIRUxJQUZCQVVjRVFDQUtFQkFMSUFBZ0FoQk5JQUFnQ1JCTUlBQWdCQ0FHYWlBRGFpSUFFRGtnQ0VFQU5nSUVJQUlnQUVFQ2RHb2dDRUVFYWhBeklBaEJFR29rQUE4TEVCY0FDMWdCQTM5QnlJRUJFQTBoQTBISWdRRVFDU0VCSXdCQkVHc2lBaVFBSUFJZ0FEb0FEMEYvSVFBZ0FRUkFJQUVFZnlBRElBSXNBQThRWlNBQkVOd0JCVUVBQ3lJQUlBTnJRWDhnQUJzaEFBc2dBa0VRYWlRQUlBQUxjQUVEZnlNQVFSQnJJZ01rQUNBQ1FXOU5CRUFDUUNBQ1FRcE5CRUFnQUNBQ0VEb2dBQ0VFREFFTElBQWdBaENSQVVFQmFpSUZFRjhpQkJCTklBQWdCUkJNSUFBZ0FoQTVDeUFFSUFFZ0FoQlZJQU5CQURvQUR5QUNJQVJxSUFOQkQyb1FOQ0FEUVJCcUpBQVBDeEFYQUFzU0FDQUJCRUFnQUNBQ0VHVWdBUkJHR2dzTDdBRUJBMzhqQUVFUWF5SUlKQUFnQWtGdklna2dBVUYvYzJwTkJFQWdBQkFOSVFvQ2Z5QUJJQWxCQVhaQkVHdEpCRUFnQ0NBQlFRRjBOZ0lJSUFnZ0FTQUNhallDRENBSVFReHFJQWhCQ0dvUWRpZ0NBQkNSQVF3QkN5QUpRUUZyQzBFQmFpSUpFRjhoQWlBRUJFQWdBaUFLSUFRUVZRc2dCZ1JBSUFJZ0JHb2dCeUFHRUZVTElBTWdCQ0FGYW1zaUF3UkFJQUlnQkdvZ0Jtb2dCQ0FLYWlBRmFpQURFRlVMSUFGQkNrY0VRQ0FLRUJBTElBQWdBaEJOSUFBZ0NSQk1JQUFnQkNBR2FpQURhaUlBRURrZ0NFRUFPZ0FISUFBZ0Ftb2dDRUVIYWhBMElBaEJFR29rQUE4TEVCY0FDeVFCQVg4akFFRVFheUlCSkFBZ0FTQUFOZ0lJSUFFb0FnZ2hBQ0FCUVJCcUpBQWdBQXNKQUNBQUVCWTJBZ0FMS3dFQmZ5QUFLQUlFSVFJRFFDQUJJQUpIQkVBZ0FCQjBHaUFDUVFScklRSU1BUXNMSUFBZ0FUWUNCQXNxQUNNQVFSQnJJZ0lrQUFKQUlBQWdBVVlFUUNBQVFRQTZBSGdNQVFzZ0FSQVFDeUFDUVJCcUpBQUxIQUFnQVVILy8vLy9BMHNFUUVINEhCQ1dBZ0FMSUFGQkFuUVFYd3NKQUNBQlFRQTJBZ0FMTmdCQnNKVUJLQUlBR2tHd2xRRW9BZ0JCc0pVQkVITkJBblJxR2tHd2xRRW9BZ0JCc0pVQkVITkJBblJxR2tHd2xRRW9BZ0FhQ3owQkFYOGpBRUVRYXlJQ0pBQUNRQ0FBTFFCNElBRkJIa3R5UlFSQUlBQkJBVG9BZUF3QkN5QUNRUWhxSUFFUS9RRWhBQXNnQWtFUWFpUUFJQUFMUlFFQ2Z5TUFRUkJySWdBa0FFR3dsUUVRZEJvZ0FFSC8vLy8vQXpZQ0RDQUFRZi8vLy84SE5nSUlJQUJCREdvZ0FFRUlhaENpQVNnQ0FDRUJJQUJCRUdva0FDQUJDd2tBSUFBUXlnRVFFQXNuQUNBRElBTW9BZ0FnQWlBQmF5SUFheUlDTmdJQUlBQkJBRW9FUUNBQ0lBRWdBQkJDR2dzTEVBQWdBQ0FCRU0wQklBQWdBallDQkF2SUFRRUVmeU1BUVNCcklnVWtBQ0FGSUFFcEFBQTNBeEFnQlNBQktRQUlOd01ZQWtBZ0EwRVFTUVJBSUFJaEFRd0JDeUFEUVFSMklRY2dBaUVCQTBBZ0FDQUZRUkJxSWdnZ0JCQ25BU0FFSUFFUW5RRWdCRUVRYWlFRUlBRkJFR29oQVNBSUVPc0JJQVpCQVdvaUJpQUhSdzBBQ3dzZ0FpQURhaUFCYXlJQ0JFQWdBQ0FGUVJCcUlBVVFwd0ZCQUNFR0EwQWdCQ0FGSUFacUxRQUFJQUV0QUFCek9nQUFJQVJCQVdvaEJDQUJRUUZxSVFFZ0JrRUJhaUlHSUFKSERRQUxDeUFGUVNCcUpBQUxGUUFnQUVINDB3QTJBZ0FnQUVFUWFoQUtHaUFBQ3hVQUlBQkIwTk1BTmdJQUlBQkJER29RQ2hvZ0FBc0VBRUVFQ3c4QUlBQW9BZ0FnQUNnQ0JEWUNCQXRBQVFKL0l3QkJFR3NpQVNRQUlBRWdBRFlDRENBQlFRaHFJQUZCREdvUVVpRUFRUVJCQVVIWWhnRW9BZ0FvQWdBYklRSWdBQkJSSUFGQkVHb2tBQ0FDQ3p3QkFYOGpBRUVRYXlJRkpBQWdCU0FFTmdJTUlBVkJDR29nQlVFTWFoQlNJUVFnQUNBQklBSWdBeEMzQVNFQUlBUVFVU0FGUVJCcUpBQWdBQXNNQUNBQklBSXRBQUE2QUFBTEVnQWdCQ0FDTmdJQUlBY2dCVFlDQUVFREN5Z0JBWDhnQUVIczBnQTJBZ0FDUUNBQUtBSUlJZ0ZGRFFBZ0FDMEFERVVOQUNBQkVCQUxJQUFMNUFrQkFYOENRRUgwaUFFdEFBQkJBWEVOQUVIMGlBRVFKRVVOQUFKQVFlaUlBUzBBQUVFQmNRMEFRZWlJQVJBa1JRMEFRYWlWQVJBYlFhaVZBVUhZMGdBMkFnQWpBRUVRYXlJQkpBQkJzSlVCUWdBM0F3QWdBVUVBTmdJTVFiaVZBU0FCUVF4cUVNMEJRYmlXQVVFQU9nQUFJQUZCRUdva0FCQ0JBa0VlU1FSQUVCY0FDMEd3bFFGQnNKVUJFSFJCSGhDQUFpSUJOZ0lBUWJTVkFTQUJOZ0lBUWJDVkFSQkRJQUZCK0FCcU5nSUFRUUFRL3dGQkhoQ1hBa0hBbGdGQm1oNFFWQnBCc0pVQkVGQWhBVUd3bFFFUWxRSkJzSlVCSUFFUWxBSkI4SklCRUJ0QjhKSUJRWVRkQURZQ0FFSHdrZ0ZCdUljQkVCb1FIRUg0a2dFUUcwSDRrZ0ZCcE4wQU5nSUFRZmlTQVVIQWh3RVFHaEFjUVlDVEFSQWJRWXlUQVVFQU9nQUFRWWlUQVVFQU5nSUFRWUNUQVVIczBnQTJBZ0JCaUpNQlFiQXlLQUlBTmdJQVFZQ1RBVUdFaVFFUUdoQWNRWkNUQVJBYlFaQ1RBVUhRMWdBMkFnQkJrSk1CUWZ5SUFSQWFFQnhCbUpNQkVCdEJtSk1CUWVUWEFEWUNBRUdZa3dGQmpJa0JFQm9RSEVHZ2t3RVFHMEdna3dGQm9OTUFOZ0lBUWFpVEFSQVdOZ0lBUWFDVEFVR1VpUUVRR2hBY1FiQ1RBUkFiUWJDVEFVSDQyQUEyQWdCQnNKTUJRWnlKQVJBYUVCeEJ1Sk1CRUJ0QnVKTUJRZXpaQURZQ0FFRzRrd0ZCcElrQkVCb1FIRUhBa3dFUUcwSElrd0ZCcnRnQU93RUFRY0NUQVVIUTB3QTJBZ0JCekpNQkVCRWFRY0NUQVVHc2lRRVFHaEFjUWRpVEFSQWJRZUNUQVVLdWdJQ0F3QVUzQWdCQjJKTUJRZmpUQURZQ0FFSG9rd0VRRVJwQjJKTUJRYlNKQVJBYUVCeEIrSk1CRUJ0QitKTUJRY1RkQURZQ0FFSDRrd0ZCeUljQkVCb1FIRUdBbEFFUUcwR0FsQUZCdU44QU5nSUFRWUNVQVVIUWh3RVFHaEFjUVlpVUFSQWJRWWlVQVVHTTRRQTJBZ0JCaUpRQlFkaUhBUkFhRUJ4QmtKUUJFQnRCa0pRQlFmVGlBRFlDQUVHUWxBRkI0SWNCRUJvUUhFR1lsQUVRRzBHWWxBRkJ6T29BTmdJQVFaaVVBVUdJaUFFUUdoQWNRYUNVQVJBYlFhQ1VBVUhnNndBMkFnQkJvSlFCUVpDSUFSQWFFQnhCcUpRQkVCdEJxSlFCUWRUc0FEWUNBRUdvbEFGQm1JZ0JFQm9RSEVHd2xBRVFHMEd3bEFGQnlPMEFOZ0lBUWJDVUFVR2dpQUVRR2hBY1FiaVVBUkFiUWJpVUFVRzg3Z0EyQWdCQnVKUUJRYWlJQVJBYUVCeEJ3SlFCRUJ0QndKUUJRZUR2QURZQ0FFSEFsQUZCc0lnQkVCb1FIRUhJbEFFUUcwSElsQUZCaFBFQU5nSUFRY2lVQVVHNGlBRVFHaEFjUWRDVUFSQWJRZENVQVVHbzhnQTJBZ0JCMEpRQlFjQ0lBUkFhRUJ4QjJKUUJFQnRCNEpRQlFaRDhBRFlDQUVIWWxBRkJ2T1FBTmdJQVFlQ1VBVUhzNUFBMkFnQkIySlFCUWVpSEFSQWFFQnhCNkpRQkVCdEI4SlFCUWJUOEFEWUNBRUhvbEFGQnhPWUFOZ0lBUWZDVUFVSDA1Z0EyQWdCQjZKUUJRZkNIQVJBYUVCeEIrSlFCRUJ0QmdKVUJFUG9CUWZpVUFVR3c2QUEyQWdCQitKUUJRZmlIQVJBYUVCeEJpSlVCRUJ0QmtKVUJFUG9CUVlpVkFVSE02UUEyQWdCQmlKVUJRWUNJQVJBYUVCeEJtSlVCRUJ0Qm1KVUJRY3p6QURZQ0FFR1lsUUZCeUlnQkVCb1FIRUdnbFFFUUcwR2dsUUZCeFBRQU5nSUFRYUNWQVVIUWlBRVFHaEFjUWVDSUFVR29sUUUyQWdCQjVJZ0JRZUNJQVRZQ0FFSG9pQUVRSXd0QjdJZ0JRZVNJQVNnQ0FCQ1FBa0h3aUFGQjdJZ0JOZ0lBUWZTSUFSQWpDeUFBUWZDSUFTZ0NBQ2dDQUNJQU5nSUFJQUFRemdFTEV3QWdBQ0FCS0FJQUlnQTJBZ0FnQUJET0FRc3lBQ0FBS0FJQUdpQUFLQUlBSUFBUWMwRUNkR29hSUFBb0FnQWdBQkJRUVFKMGFob2dBQ2dDQUNBQUVITkJBblJxR2dzVEFDQUFJQUFvQWdCQkFXc2lBRFlDQUNBQUMyOEJBbjhnQUVIWTBnQTJBZ0FnQUVFSWFpRUJBMEFnQVJCUUlBSkxCRUFnQVNBQ0VIY29BZ0FFUUNBQklBSVFkeWdDQUJDakFRc2dBa0VCYWlFQ0RBRUxDeUFBUVpnQmFoQUtHaUFCRUpFQ0lBRW9BZ0FFUUNBQkVKVUNJQUVRZENBQktBSUFJQUVRY3hEOEFRc2dBQXNxQUNBQUtBSUFHaUFBS0FJQUlBQVFjMEVDZEdvYUlBQW9BZ0FhSUFBb0FnQWdBQkJRUVFKMGFob0xEQUFnQUNBQUtBSUFFUHNCQzJJQkEzOUJDQkFISWdGQjBQOEFOZ0lBSUFGQi9QOEFOZ0lBSUFBUWtnRWlBa0VOYWhCZklnTkJBRFlDQ0NBRElBSTJBZ1FnQXlBQ05nSUFJQUVnQTBFTWFpQUFJQUpCQVdvUVFqWUNCQ0FCUWF5QUFUWUNBQ0FCUWN5QUFVRURFQVlBQzNJQkEzOGpBRUVRYXlJQkpBQWdBVUd3bFFFMkFnQWdBVUcwbFFFb0FnQWlBallDQkNBQklBSWdBRUVDZEdvMkFnZ2dBU0lES0FJRUlRQWdBeWdDQ0NFQ0EwQWdBQ0FDUmdSQUlBTVFpUUlnQVVFUWFpUUFCVUd3bFFFUWRDQUFFUDRCSUFNZ0FFRUVhaUlBTmdJRURBRUxDd3NnQUNBQVFhRFRBRFlDQUNBQUtBSUlFQlpIQkVBZ0FDZ0NDQkRVQWdzZ0FBc0VBRUYvQytJRkFRcC9Jd0JCRUdzaUV5UUFJQUlnQURZQ0FDQURRWUFFY1NFVklBZEJBblFoRmdOQUlCUkJCRVlFUUNBTkVBbEJBVXNFUUNBVElBMFFRRFlDQ0NBQ0lCTkJDR3BCQVJDZkFpQU5FR3dnQWlnQ0FCQ2tBVFlDQUFzZ0EwR3dBWEVpQTBFUVJ3UkFJQUVnQTBFZ1JnUi9JQUlvQWdBRklBQUxOZ0lBQ3lBVFFSQnFKQUFGQWtBQ1FBSkFBa0FDUUFKQUlBZ2dGR29zQUFBT0JRQUJBd0lFQlFzZ0FTQUNLQUlBTmdJQURBUUxJQUVnQWlnQ0FEWUNBQ0FHUVNBUVBTRUhJQUlnQWlnQ0FDSVBRUVJxTmdJQUlBOGdCellDQUF3REN5QU5FRWtOQWlBTlFRQVFzUUVvQWdBaEJ5QUNJQUlvQWdBaUQwRUVhallDQUNBUElBYzJBZ0FNQWdzZ0RCQkpJQlZGY2cwQklBSWdEQkJBSUF3UWJDQUNLQUlBRUtRQk5nSUFEQUVMSUFJb0FnQWhGeUFFSUJacUlnUWhCd05BQWtBZ0JTQUhUUTBBSUFaQmdCQWdCeWdDQUJCT1JRMEFJQWRCQkdvaEJ3d0JDd3NnRGlJUFFRQktCRUFEUUNBUFFRQk1JQVFnQjA5eVJRUkFJQWRCQkdzaUJ5Z0NBQ0VRSUFJZ0FpZ0NBQ0lSUVFScU5nSUFJQkVnRURZQ0FDQVBRUUZySVE4TUFRc0xJQTlCQUV3RWYwRUFCU0FHUVRBUVBRc2hFUU5BSUFJZ0FpZ0NBQ0lRUVFScU5nSUFJQTlCQUVvRVFDQVFJQkUyQWdBZ0QwRUJheUVQREFFTEN5QVFJQWsyQWdBTEFrQWdCQ0FIUmdSQUlBWkJNQkE5SVE4Z0FpQUNLQUlBSWhCQkJHb2lCellDQUNBUUlBODJBZ0FNQVFzZ0N4QkpCSDlCZndVZ0MwRUFFQXNzQUFBTElSQkJBQ0VQUVFBaEVnTkFJQVFnQjBjRVFBSkFJQThnRUVjRVFDQVBJUkVNQVFzZ0FpQUNLQUlBSWhCQkJHbzJBZ0FnRUNBS05nSUFRUUFoRVNBTEVBa2dFa0VCYWlJU1RRUkFJQThoRUF3QkN5QUxJQklRQ3kwQUFFSC9BRVlFUUVGL0lSQU1BUXNnQ3lBU0VBc3NBQUFoRUFzZ0IwRUVheUlIS0FJQUlROGdBaUFDS0FJQUloaEJCR28yQWdBZ0dDQVBOZ0lBSUJGQkFXb2hEd3dCQ3dzZ0FpZ0NBQ0VIQ3lBWElBY1FyUUVMSUJSQkFXb2hGQXdCQ3dzTHBRSUJBWDhqQUVFUWF5SUtKQUFnQ1FKL0lBQUVRQ0FDRUtFQ0lRQUNRQ0FCQkVBZ0NpQUFFR2tnQXlBS0tBSUFOZ0FBSUFvZ0FCQm9EQUVMSUFvZ0FCQ2xBU0FESUFvb0FnQTJBQUFnQ2lBQUVFb0xJQWdnQ2hCWElBb1FDaG9nQkNBQUVFZzJBZ0FnQlNBQUVEZzJBZ0FnQ2lBQUVEY2dCaUFLRURBZ0NoQUtHaUFLSUFBUVN5QUhJQW9RVnlBS0VBb2FJQUFRWnd3QkN5QUNFS0FDSVFBQ1FDQUJCRUFnQ2lBQUVHa2dBeUFLS0FJQU5nQUFJQW9nQUJCb0RBRUxJQW9nQUJDbEFTQURJQW9vQWdBMkFBQWdDaUFBRUVvTElBZ2dDaEJYSUFvUUNob2dCQ0FBRUVnMkFnQWdCU0FBRURnMkFnQWdDaUFBRURjZ0JpQUtFREFnQ2hBS0dpQUtJQUFRU3lBSElBb1FWeUFLRUFvYUlBQVFad3MyQWdBZ0NrRVFhaVFBQzlRRkFRcC9Jd0JCRUdzaUZDUUFJQUlnQURZQ0FDQURRWUFFY1NFV0EwQWdGVUVFUmdSQUlBMFFDVUVCU3dSQUlCUWdEUkJBTmdJSUlBSWdGRUVJYWtFQkVLWUNJQTBRYmlBQ0tBSUFFS1FCTmdJQUN5QURRYkFCY1NJRFFSQkhCRUFnQVNBRFFTQkdCSDhnQWlnQ0FBVWdBQXMyQWdBTElCUkJFR29rQUE4TEFrQUNRQUpBQWtBQ1FBSkFJQWdnRldvc0FBQU9CUUFCQXdJRUJRc2dBU0FDS0FJQU5nSUFEQVFMSUFFZ0FpZ0NBRFlDQUNBR1FTQVFLU0VQSUFJZ0FpZ0NBQ0lRUVFGcU5nSUFJQkFnRHpvQUFBd0RDeUFORUVrTkFpQU5RUUFRQ3kwQUFDRVBJQUlnQWlnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUF3Q0N5QU1FRWtnRmtWeURRRWdBaUFNRUVBZ0RCQnVJQUlvQWdBUXBBRTJBZ0FNQVFzZ0FpZ0NBQ0VYSUFRZ0Iyb2lCQ0VSQTBBQ1FDQUZJQkZORFFBZ0JrR0FFQ0FSTEFBQUVFUkZEUUFnRVVFQmFpRVJEQUVMQ3lBT0lnOUJBRW9FUUFOQUlBOUJBRXdnQkNBUlQzSkZCRUFnRVVFQmF5SVJMUUFBSVJBZ0FpQUNLQUlBSWhKQkFXbzJBZ0FnRWlBUU9nQUFJQTlCQVdzaER3d0JDd3NnRDBFQVRBUi9RUUFGSUFaQk1CQXBDeUVTQTBBZ0FpQUNLQUlBSWhCQkFXbzJBZ0FnRDBFQVNnUkFJQkFnRWpvQUFDQVBRUUZySVE4TUFRc0xJQkFnQ1RvQUFBc0NRQ0FFSUJGR0JFQWdCa0V3RUNraER5QUNJQUlvQWdBaUVFRUJhallDQUNBUUlBODZBQUFNQVFzZ0N4QkpCSDlCZndVZ0MwRUFFQXNzQUFBTElSQkJBQ0VQUVFBaEV3TkFJQVFnRVVZTkFRSkFJQThnRUVjRVFDQVBJUklNQVFzZ0FpQUNLQUlBSWhCQkFXbzJBZ0FnRUNBS09nQUFRUUFoRWlBTEVBa2dFMEVCYWlJVFRRUkFJQThoRUF3QkN5QUxJQk1RQ3kwQUFFSC9BRVlFUUVGL0lSQU1BUXNnQ3lBVEVBc3NBQUFoRUFzZ0VVRUJheUlSTFFBQUlROGdBaUFDS0FJQUloaEJBV28yQWdBZ0dDQVBPZ0FBSUJKQkFXb2hEd3dBQ3dBTElCY2dBaWdDQUJCNUN5QVZRUUZxSVJVTUFBc0FDNlVDQVFGL0l3QkJFR3NpQ2lRQUlBa0NmeUFBQkVBZ0FoQ29BaUVBQWtBZ0FRUkFJQW9nQUJCcElBTWdDaWdDQURZQUFDQUtJQUFRYUF3QkN5QUtJQUFRcFFFZ0F5QUtLQUlBTmdBQUlBb2dBQkJLQ3lBSUlBb1FNQ0FLRUFvYUlBUWdBQkJJT2dBQUlBVWdBQkE0T2dBQUlBb2dBQkEzSUFZZ0NoQXdJQW9RQ2hvZ0NpQUFFRXNnQnlBS0VEQWdDaEFLR2lBQUVHY01BUXNnQWhDbkFpRUFBa0FnQVFSQUlBb2dBQkJwSUFNZ0NpZ0NBRFlBQUNBS0lBQVFhQXdCQ3lBS0lBQVFwUUVnQXlBS0tBSUFOZ0FBSUFvZ0FCQktDeUFJSUFvUU1DQUtFQW9hSUFRZ0FCQklPZ0FBSUFVZ0FCQTRPZ0FBSUFvZ0FCQTNJQVlnQ2hBd0lBb1FDaG9nQ2lBQUVFc2dCeUFLRURBZ0NoQUtHaUFBRUdjTE5nSUFJQXBCRUdva0FBc0lBQ0FBS0FJQVJRczNBUUYvSXdCQkVHc2lBaVFBSUFJZ0FDZ0NBRFlDQ0NBQ0lBSW9BZ2dnQVVFQ2RHbzJBZ2dnQWlnQ0NDRUFJQUpCRUdva0FDQUFDd29BSUFCQm1JZ0JFR1FMQ2dBZ0FFR2dpQUVRWkFzSkFDQUFJQUVRcmdJTEh3RUJmeUFCS0FJQUVQb0NJUUlnQUNBQktBSUFOZ0lFSUFBZ0FqWUNBQXZ4RHdFS2Z5TUFRYkFFYXlJTEpBQWdDeUFLTmdLa0JDQUxJQUUyQXFnRUlBdEJOallDWUNBTElBdEJpQUZxSUF0QmtBRnFJQXRCNEFCcUlnRVFIaUlQS0FJQUlnbzJBb1FCSUFzZ0NrR1FBMm8yQW9BQklBRVFFU0VSSUF0QjBBQnFFRWNoRGlBTFFVQnJFRWNoRENBTFFUQnFFRWNoRFNBTFFTQnFFRWNoRUNNQVFSQnJJZ0VrQUNBTEFuOGdBZ1JBSUFFZ0F4Q2hBaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQlhJQUVRQ2hvZ0FTQUNFRW9nRENBQkVGY2dBUkFLR2lBTElBSVFTRFlDZENBTElBSVFPRFlDY0NBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJCWElBRVFDaG9nQWhCbkRBRUxJQUVnQXhDZ0FpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJCWElBRVFDaG9nQVNBQ0VFb2dEQ0FCRUZjZ0FSQUtHaUFMSUFJUVNEWUNkQ0FMSUFJUU9EWUNjQ0FCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkJYSUFFUUNob2dBaEJuQ3pZQ0hDQUJRUkJxSkFBZ0NTQUlLQUlBTmdJQUlBUkJnQVJ4SWhKQkNYWWhFMEVBSVFGQkFDRUNBMEFnQWlFS0FrQUNRQUpBQWtBZ0FVRUVSZzBBSUFBZ0MwR29CR29RTmtVTkFFRUFJUVFDUUFKQUFrQUNRQUpBQWtBZ0MwSDRBR29nQVdvc0FBQU9CUUVBQkFNRkNRc2dBVUVEUmcwSElBZEJnTUFBSUFBUUlSQk9CRUFnQzBFUWFpQUFFS01DSUJBZ0N5Z0NFQkRIQVF3Q0N5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBWUxJQUZCQTBZTkJnc0RRQ0FBSUF0QnFBUnFFRFpGRFFZZ0IwR0F3QUFnQUJBaEVFNUZEUVlnQzBFUWFpQUFFS01DSUJBZ0N5Z0NFQkRIQVF3QUN3QUxJQXdRQ1VFQUlBMFFDV3RHRFFRQ1FDQU1FQWtFUUNBTkVBa05BUXNnREJBSklRTWdBQkFoSVFJZ0F3UkFJQXdRRFNnQ0FDQUNSZ1JBSUFBUUpSb2dEQ0FLSUF3UUNVRUJTeHNoQWd3SUN5QUdRUUU2QUFBTUJnc2dBaUFORUEwb0FnQkhEUVVnQUJBbEdpQUdRUUU2QUFBZ0RTQUtJQTBRQ1VFQlN4c2hBZ3dHQ3lBQUVDRWdEQkFOS0FJQVJnUkFJQUFRSlJvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dHQ3lBQUVDRWdEUkFOS0FJQVJnUkFJQUFRSlJvZ0JrRUJPZ0FBSUEwZ0NpQU5FQWxCQVVzYklRSU1CZ3NnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBS0lBRkJBa2x5UlFSQVFRQWhBaUFUSUFGQkFrWWdDeTBBZTBFQVIzRnlSUTBGQ3lBTElBNFFRRFlDQ0NBTFFSQnFJQXRCQ0dvUXFBRWhBZ0pBSUFGRkRRQWdBU0FMYWkwQWQwRUJTdzBBQTBBQ1FDQUxJQTRRYkRZQ0NDQUNJQXRCQ0dvUVcwVU5BQ0FIUVlEQUFDQUNLQUlBS0FJQUVFNUZEUUFnQWhDVkFRd0JDd3NnQ3lBT0VFQTJBZ2dnQWlnQ0FDQUxLQUlJYTBFQ2RTSUNJQkFRQ1UwRVFDQUxJQkFRYkRZQ0NDQUxRUWhxUVFBZ0Ftc1Fud0loQXlBUUVHd2hCQ0FPRUVBaEZDTUFRU0JySWdJa0FDQUNJQVEyQWhBZ0FpQUROZ0lZSUFJZ0ZEWUNDQU5BQWtBZ0FrRVlhaUFDUVJCcUVGc2lBMFVOQUNBQ0tBSVlLQUlBSUFJb0FnZ29BZ0JIRFFBZ0FrRVlhaENWQVNBQ1FRaHFFSlVCREFFTEN5QUNRU0JxSkFBZ0EwRUJjdzBCQ3lBTElBNFFRRFlDQUNBTFFRaHFJQXNRcUFFYUlBc2dDeWdDQ0RZQ0VBc2dDeUFMS0FJUU5nSUlBMEFDUUNBTElBNFFiRFlDQUNBTFFRaHFJQXNRVzBVTkFDQUFJQXRCcUFScUVEWkZEUUFnQUJBaElBc29BZ2dvQWdCSERRQWdBQkFsR2lBTFFRaHFFSlVCREFFTEN5QVNSUTBESUFzZ0RoQnNOZ0lBSUF0QkNHb2dDeEJiUlEwRElBVWdCU2dDQUVFRWNqWUNBRUVBSVFBTUFnc0RRQUpBSUFBZ0MwR29CR29RTmtVTkFBSi9JQWRCZ0JBZ0FCQWhJZ0lRVGdSQUlBa29BZ0FpQXlBTEtBS2tCRVlFUUNBSUlBa2dDMEdrQkdvUWhnRWdDU2dDQUNFREN5QUpJQU5CQkdvMkFnQWdBeUFDTmdJQUlBUkJBV29NQVFzZ0VSQUpSU0FFUlhJTkFTQUNJQXNvQW5CSERRRWdDeWdDaEFFaUFpQUxLQUtBQVVZRVFDQVBJQXRCaEFGcUlBdEJnQUZxRUlZQklBc29Bb1FCSVFJTElBc2dBa0VFYWpZQ2hBRWdBaUFFTmdJQVFRQUxJUVFnQUJBbEdnd0JDd3NnQkVVZ0N5Z0NoQUVpQWlBUEtBSUFSbkpGQkVBZ0N5Z0NnQUVnQWtZRVFDQVBJQXRCaEFGcUlBdEJnQUZxRUlZQklBc29Bb1FCSVFJTElBc2dBa0VFYWpZQ2hBRWdBaUFFTmdJQUN3SkFJQXNvQWh4QkFFd05BQUpBSUFBZ0MwR29CR29RS0VVRVFDQUFFQ0VnQ3lnQ2RFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3dOQUlBQVFKUm9nQ3lnQ0hFRUFUQTBCQWtBZ0FDQUxRYWdFYWhBb1JRUkFJQWRCZ0JBZ0FCQWhFRTROQVFzZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3RUN5QUpLQUlBSUFzb0FxUUVSZ1JBSUFnZ0NTQUxRYVFFYWhDR0FRc2dBQkFoSVFJZ0NTQUpLQUlBSWdOQkJHbzJBZ0FnQXlBQ05nSUFJQXNnQ3lnQ0hFRUJhellDSEF3QUN3QUxJQW9oQWlBSUtBSUFJQWtvQWdCSERRTWdCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0JDd0pBSUFwRkRRQkJBU0VFQTBBZ0NoQUpJQVJORFFFQ1FDQUFJQXRCcUFScUVDaEZCRUFnQUJBaElBb2dCQkN4QVNnQ0FFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBQUVDVWFJQVJCQVdvaEJBd0FDd0FMUVFFaEFDQVBLQUlBSUFzb0FvUUJSZzBBUVFBaEFDQUxRUUEyQWhBZ0VTQVBLQUlBSUFzb0FvUUJJQXRCRUdvUUxTQUxLQUlRQkVBZ0JTQUZLQUlBUVFSeU5nSUFEQUVMUVFFaEFBc2dFQkFLR2lBTkVBb2FJQXdRQ2hvZ0RoQUtHaUFSRUFvYUlBOFFIU0FMUWJBRWFpUUFJQUFQQ3lBS0lRSUxJQUZCQVdvaEFRd0FDd0FMSHdBZ0FDQUJFS1lCRUNjZ0FSQ1dBU2dDQUNFQklBQVFsZ0VnQVRZQ0FBczBBUUYvSXdCQkVHc2lBaVFBSUFJZ0FDZ0NBRFlDQ0NBQ0lBSW9BZ2dnQVdvMkFnZ2dBaWdDQ0NFQUlBSkJFR29rQUNBQUN3b0FJQUJCaUlnQkVHUUxDZ0FnQUVHUWlBRVFaQXZCQVFFR2Z5TUFRUkJySWdRa0FDQUFFSllCS0FJQUlRVUNmeUFDS0FJQUlBQW9BZ0JySWdOQi8vLy8vd2RKQkVBZ0EwRUJkQXdCQzBGL0N5SURRUUVnQXhzaEF5QUJLQUlBSVFZZ0FDZ0NBQ0VISUFWQk5rWUVmMEVBQlNBQUtBSUFDeUFERUo0QklnZ0VRQ0FGUVRaSEJFQWdBQkNtQVJvTElBUkJOVFlDQkNBQUlBUkJDR29nQ0NBRVFRUnFFQjRpQlJDbEFpQUZFQjBnQVNBQUtBSUFJQVlnQjJ0cU5nSUFJQUlnQXlBQUtBSUFhallDQUNBRVFSQnFKQUFQQ3hBWEFBc2xBUUYvSUFFb0FnQVEvd0pCR0hSQkdIVWhBaUFBSUFFb0FnQTJBZ1FnQUNBQ09nQUFDNThRQVFwL0l3QkJzQVJySWdza0FDQUxJQW8yQXFRRUlBc2dBVFlDcUFRZ0MwRTJOZ0pvSUFzZ0MwR0lBV29nQzBHUUFXb2dDMEhvQUdvaUFSQWVJZzhvQWdBaUNqWUNoQUVnQ3lBS1FaQURhallDZ0FFZ0FSQVJJUkVnQzBIWUFHb1FFU0VPSUF0QnlBQnFFQkVoRENBTFFUaHFFQkVoRFNBTFFTaHFFQkVoRUNNQVFSQnJJZ0VrQUNBTEFuOGdBZ1JBSUFFZ0F4Q29BaUlDRUdrZ0N5QUJLQUlBTmdCNElBRWdBaEJvSUEwZ0FSQXdJQUVRQ2hvZ0FTQUNFRW9nRENBQkVEQWdBUkFLR2lBTElBSVFTRG9BZHlBTElBSVFPRG9BZGlBQklBSVFOeUFSSUFFUU1DQUJFQW9hSUFFZ0FoQkxJQTRnQVJBd0lBRVFDaG9nQWhCbkRBRUxJQUVnQXhDbkFpSUNFR2tnQ3lBQktBSUFOZ0I0SUFFZ0FoQm9JQTBnQVJBd0lBRVFDaG9nQVNBQ0VFb2dEQ0FCRURBZ0FSQUtHaUFMSUFJUVNEb0FkeUFMSUFJUU9Eb0FkaUFCSUFJUU55QVJJQUVRTUNBQkVBb2FJQUVnQWhCTElBNGdBUkF3SUFFUUNob2dBaEJuQ3pZQ0pDQUJRUkJxSkFBZ0NTQUlLQUlBTmdJQUlBUkJnQVJ4SWhKQkNYWWhFMEVBSVFGQkFDRUNBMEFnQWlFS0FrQUNRQUpBQWtBZ0FVRUVSZzBBSUFBZ0MwR29CR29RTVVVTkFFRUFJUVFDUUFKQUFrQUNRQUpBQWtBZ0MwSDRBR29nQVdvc0FBQU9CUUVBQkFNRkNRc2dBVUVEUmcwSElBZEJnTUFBSUFBUUh4QkVCRUFnQzBFWWFpQUFFS29DSUJBZ0N5d0FHQkNoQVF3Q0N5QUZJQVVvQWdCQkJISTJBZ0JCQUNFQURBWUxJQUZCQTBZTkJnc0RRQ0FBSUF0QnFBUnFFREZGRFFZZ0IwR0F3QUFnQUJBZkVFUkZEUVlnQzBFWWFpQUFFS29DSUJBZ0N5d0FHQkNoQVF3QUN3QUxJQXdRQ1VFQUlBMFFDV3RHRFFRQ1FDQU1FQWtFUUNBTkVBa05BUXNnREJBSklRTWdBQkFmSVFJZ0F3UkFJQXhCQUJBTExRQUFJQUpCL3dGeFJnUkFJQUFRSWhvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dJQ3lBR1FRRTZBQUFNQmdzZ0RVRUFFQXN0QUFBZ0FrSC9BWEZIRFFVZ0FCQWlHaUFHUVFFNkFBQWdEU0FLSUEwUUNVRUJTeHNoQWd3R0N5QUFFQjlCL3dGeElBeEJBQkFMTFFBQVJnUkFJQUFRSWhvZ0RDQUtJQXdRQ1VFQlN4c2hBZ3dHQ3lBQUVCOUIvd0Z4SUExQkFCQUxMUUFBUmdSQUlBQVFJaG9nQmtFQk9nQUFJQTBnQ2lBTkVBbEJBVXNiSVFJTUJnc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDeUFLSUFGQkFrbHlSUVJBUVFBaEFpQVRJQUZCQWtZZ0N5MEFlMEVBUjNGeVJRMEZDeUFMSUE0UVFEWUNFQ0FMUVJocUlBdEJFR29RcUFFaEFnSkFJQUZGRFFBZ0FTQUxhaTBBZDBFQlN3MEFBMEFDUUNBTElBNFFiallDRUNBQ0lBdEJFR29RVzBVTkFDQUhRWURBQUNBQ0tBSUFMQUFBRUVSRkRRQWdBaENYQVF3QkN3c2dDeUFPRUVBMkFoQWdBaWdDQUNBTEtBSVFheUlDSUJBUUNVMEVRQ0FMSUJBUWJqWUNFQ0FMUVJCcVFRQWdBbXNRcGdJaEF5QVFFRzRoQkNBT0VFQWhGQ01BUVNCcklnSWtBQ0FDSUFRMkFoQWdBaUFETmdJWUlBSWdGRFlDQ0FOQUFrQWdBa0VZYWlBQ1FSQnFFRnNpQTBVTkFDQUNLQUlZTFFBQUlBSW9BZ2d0QUFCSERRQWdBa0VZYWhDWEFTQUNRUWhxRUpjQkRBRUxDeUFDUVNCcUpBQWdBMEVCY3cwQkN5QUxJQTRRUURZQ0NDQUxRUkJxSUF0QkNHb1FxQUVhSUFzZ0N5Z0NFRFlDR0FzZ0N5QUxLQUlZTmdJUUEwQUNRQ0FMSUE0UWJqWUNDQ0FMUVJCcUlBdEJDR29RVzBVTkFDQUFJQXRCcUFScUVERkZEUUFnQUJBZlFmOEJjU0FMS0FJUUxRQUFSdzBBSUFBUUlob2dDMEVRYWhDWEFRd0JDd3NnRWtVTkF5QUxJQTRRYmpZQ0NDQUxRUkJxSUF0QkNHb1FXMFVOQXlBRklBVW9BZ0JCQkhJMkFnQkJBQ0VBREFJTEEwQUNRQ0FBSUF0QnFBUnFFREZGRFFBQ2Z5QUhRWUFRSUFBUUh5SUNFRVFFUUNBSktBSUFJZ01nQ3lnQ3BBUkdCRUFnQ0NBSklBdEJwQVJxRUtrQ0lBa29BZ0FoQXdzZ0NTQURRUUZxTmdJQUlBTWdBam9BQUNBRVFRRnFEQUVMSUJFUUNVVWdCRVZ5RFFFZ0N5MEFkaUFDUWY4QmNVY05BU0FMS0FLRUFTSUNJQXNvQW9BQlJnUkFJQThnQzBHRUFXb2dDMEdBQVdvUWhnRWdDeWdDaEFFaEFnc2dDeUFDUVFScU5nS0VBU0FDSUFRMkFnQkJBQXNoQkNBQUVDSWFEQUVMQ3lBRVJTQUxLQUtFQVNJQ0lBOG9BZ0JHY2tVRVFDQUxLQUtBQVNBQ1JnUkFJQThnQzBHRUFXb2dDMEdBQVdvUWhnRWdDeWdDaEFFaEFnc2dDeUFDUVFScU5nS0VBU0FDSUFRMkFnQUxBa0FnQ3lnQ0pFRUFUQTBBQWtBZ0FDQUxRYWdFYWhBbVJRUkFJQUFRSDBIL0FYRWdDeTBBZDBZTkFRc2dCU0FGS0FJQVFRUnlOZ0lBUVFBaEFBd0RDd05BSUFBUUlob2dDeWdDSkVFQVRBMEJBa0FnQUNBTFFhZ0VhaEFtUlFSQUlBZEJnQkFnQUJBZkVFUU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdFQ3lBSktBSUFJQXNvQXFRRVJnUkFJQWdnQ1NBTFFhUUVhaENwQWdzZ0FCQWZJUUlnQ1NBSktBSUFJZ05CQVdvMkFnQWdBeUFDT2dBQUlBc2dDeWdDSkVFQmF6WUNKQXdBQ3dBTElBb2hBaUFJS0FJQUlBa29BZ0JIRFFNZ0JTQUZLQUlBUVFSeU5nSUFRUUFoQUF3QkN3SkFJQXBGRFFCQkFTRUVBMEFnQ2hBSklBUk5EUUVDUUNBQUlBdEJxQVJxRUNaRkJFQWdBQkFmUWY4QmNTQUtJQVFRQ3kwQUFFWU5BUXNnQlNBRktBSUFRUVJ5TmdJQVFRQWhBQXdEQ3lBQUVDSWFJQVJCQVdvaEJBd0FDd0FMUVFFaEFDQVBLQUlBSUFzb0FvUUJSZzBBUVFBaEFDQUxRUUEyQWhnZ0VTQVBLQUlBSUFzb0FvUUJJQXRCR0dvUUxTQUxLQUlZQkVBZ0JTQUZLQUlBUVFSeU5nSUFEQUVMUVFFaEFBc2dFQkFLR2lBTkVBb2FJQXdRQ2hvZ0RoQUtHaUFSRUFvYUlBOFFIU0FMUWJBRWFpUUFJQUFQQ3lBS0lRSUxJQUZCQVdvaEFRd0FDd0FMREFBZ0FFRUJRUzBRdXdJYUN3d0FJQUJCQVVFdEVPOEJHZ3NLQUNBQklBQnJRUUoxQ3dRQUlBRUxOUUVCZnlNQVFSQnJJZ0lrQUNBQ0lBQXRBQUE2QUE4Z0FDQUJMUUFBT2dBQUlBRWdBa0VQYWkwQUFEb0FBQ0FDUVJCcUpBQUxaQUVCZnlNQVFSQnJJZ1lrQUNBR1FRQTZBQThnQmlBRk9nQU9JQVlnQkRvQURTQUdRU1U2QUF3Z0JRUkFJQVpCRFdvZ0JrRU9haEN3QWdzZ0FpQUJJQUVnQWlnQ0FCRHVBaUFHUVF4cUlBTWdBQ2dDQUJBQklBRnFOZ0lBSUFaQkVHb2tBQXZ5QVFFRmZ5TUFRUkJySWdNa0FDQUNRZ0EzQUFBZ0FrSUFOd0FJSUFNZ0FTa0FDRGNEQ0NBRElBRXBBQUEzQXdBRFFDQUFJQVZxSVFaQkFDRUJBMEFnQmkwQUFFRUhJQUZyZGtFQmNRUkFJQUlnQXhDZEFRc2dBeTBBRHlFSElBTkJER29pQkNBRExRQUxRUjkwSUFRUWxBRkJBWFp5RUpNQklBTkJDR29pQkNBRExRQUhRUjkwSUFRUWxBRkJBWFp5RUpNQklBTkJCR29pQkNBRExRQURRUjkwSUFRUWxBRkJBWFp5RUpNQklBTWdBeENVQVVFQmRoQ1RBU0FIUVFGeEJFQWdBeUFETFFBQVFlRUJjem9BQUFzZ0FVRUJhaUlCUVFoSERRQUxJQVZCQVdvaUJVRVFSdzBBQ3lBRFFSQnFKQUFMUVFBZ0FTQUNJQU1nQkVFRUVGZ2hBU0FETFFBQVFRUnhSUVJBSUFBZ0FVSFFEMm9nQVVIc0Rtb2dBU0FCUWVRQVNCc2dBVUhGQUVnYlFld09hellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0JCRUFBQ0lBSUFCQm9BSnFJQVVnQkVFQUVMSUJJQUJySWdCQm53Sk1CRUFnQVNBQVFReHRRUXh2TmdJQUN3dEFBQ0FDSUFNZ0FFRUlhaUFBS0FJSUtBSUFFUUFBSWdBZ0FFR29BV29nQlNBRVFRQVFzZ0VnQUdzaUFFR25BVXdFUUNBQklBQkJERzFCQjI4MkFnQUxDMEVBSUFFZ0FpQURJQVJCQkJCWklRRWdBeTBBQUVFRWNVVUVRQ0FBSUFGQjBBOXFJQUZCN0E1cUlBRWdBVUhrQUVnYklBRkJ4UUJJRzBIc0RtczJBZ0FMQzBBQUlBSWdBeUFBUVFocUlBQW9BZ2dvQWdRUkFBQWlBQ0FBUWFBQ2FpQUZJQVJCQUJDMEFTQUFheUlBUVo4Q1RBUkFJQUVnQUVFTWJVRU1iellDQUFzTFFBQWdBaUFESUFCQkNHb2dBQ2dDQ0NnQ0FCRUFBQ0lBSUFCQnFBRnFJQVVnQkVFQUVMUUJJQUJySWdCQnB3Rk1CRUFnQVNBQVFReHRRUWR2TmdJQUN3c0VBRUVDQzY4RkFRcC9Jd0JCRUdzaUNTUUFJQVlRT3lFS0lBa2dCaENNQVNJTkVEY2dCU0FETmdJQUFrQUNRQ0FBSWdjdEFBQWlCa0VyYXc0REFBRUFBUXNnQ2lBR1FSaDBRUmgxRUQwaEJpQUZJQVVvQWdBaUIwRUVhallDQUNBSElBWTJBZ0FnQUVFQmFpRUhDd0pBQWtBZ0FpQUhJZ1pyUVFGTURRQWdCeTBBQUVFd1J3MEFJQWN0QUFGQklISkIrQUJIRFFBZ0NrRXdFRDBoQmlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFZMkFnQWdDaUFITEFBQkVEMGhCaUFGSUFVb0FnQWlDRUVFYWpZQ0FDQUlJQVkyQWdBZ0IwRUNhaUlISVFZRFFDQUNJQVpORFFJZ0Jpd0FBQkFXRU5nQ1JRMENJQVpCQVdvaEJnd0FDd0FMQTBBZ0FpQUdUUTBCSUFZc0FBQWhDQkFXR2lBSUVFVkZEUUVnQmtFQmFpRUdEQUFMQUFzQ1FDQUpFRWtFUUNBS0lBY2dCaUFGS0FJQUVHTWdCU0FGS0FJQUlBWWdCMnRCQW5ScU5nSUFEQUVMSUFjZ0JoQjVJQTBRT0NFT0lBY2hDQU5BSUFZZ0NFMEVRQ0FESUFjZ0FHdEJBblJxSUFVb0FnQVFyUUVGQWtBZ0NTQUxFQXNzQUFCQkFFd05BQ0FNSUFrZ0N4QUxMQUFBUncwQUlBVWdCU2dDQUNJTVFRUnFOZ0lBSUF3Z0RqWUNBQ0FMSUFzZ0NSQUpRUUZyU1dvaEMwRUFJUXdMSUFvZ0NDd0FBQkE5SVE4Z0JTQUZLQUlBSWhCQkJHbzJBZ0FnRUNBUE5nSUFJQWhCQVdvaENDQU1RUUZxSVF3TUFRc0xDd0pBQWtBRFFDQUNJQVpORFFFZ0JpMEFBQ0lIUVM1SEJFQWdDaUFIUVJoMFFSaDFFRDBoQnlBRklBVW9BZ0FpQ0VFRWFqWUNBQ0FJSUFjMkFnQWdCa0VCYWlFR0RBRUxDeUFORUVnaEJ5QUZJQVVvQWdBaUMwRUVhaUlJTmdJQUlBc2dCellDQUNBR1FRRnFJUVlNQVFzZ0JTZ0NBQ0VJQ3lBS0lBWWdBaUFJRUdNZ0JTQUZLQUlBSUFJZ0JtdEJBblJxSWdVMkFnQWdCQ0FGSUFNZ0FTQUFhMEVDZEdvZ0FTQUNSaHMyQWdBZ0NSQUtHaUFKUVJCcUpBQUx1QUVCQlg4akFFRVFheUlISkFBakFFRVFheUlGSkFBQ1FDQUJRZS8vLy84RFRRUkFBa0FnQVVFQlRRUkFJQUFnQVJBNklBQWhCZ3dCQ3lBQUlBQWdBUkNDQVVFQmFpSURFSUVCSWdZUVRTQUFJQU1RVENBQUlBRVFPUXNnQmlFRUlBRWlBd1IvSUFNRVFBTkFJQVFnQWpZQ0FDQUVRUVJxSVFRZ0EwRUJheUlERFFBTEMwRUFCU0FFQ3hvZ0JVRUFOZ0lNSUFZZ0FVRUNkR29nQlVFTWFoQXpJQVZCRUdva0FBd0JDeEFYQUFzZ0IwRVFhaVFBSUFBTG1RVUJDbjhqQUVFUWF5SUpKQUFnQmhBeUlRb2dDU0FHRUk0QklnMFFOeUFGSUFNMkFnQUNRQUpBSUFBaUJ5MEFBQ0lHUVN0ckRnTUFBUUFCQ3lBS0lBWkJHSFJCR0hVUUtTRUdJQVVnQlNnQ0FDSUhRUUZxTmdJQUlBY2dCam9BQUNBQVFRRnFJUWNMQWtBQ1FDQUNJQWNpQm10QkFVd05BQ0FITFFBQVFUQkhEUUFnQnkwQUFVRWdja0g0QUVjTkFDQUtRVEFRS1NFR0lBVWdCU2dDQUNJSVFRRnFOZ0lBSUFnZ0Jqb0FBQ0FLSUFjc0FBRVFLU0VHSUFVZ0JTZ0NBQ0lJUVFGcU5nSUFJQWdnQmpvQUFDQUhRUUpxSWdjaEJnTkFJQUlnQmswTkFpQUdMQUFBRUJZUTJBSkZEUUlnQmtFQmFpRUdEQUFMQUFzRFFDQUNJQVpORFFFZ0Jpd0FBQ0VJRUJZYUlBZ1FSVVVOQVNBR1FRRnFJUVlNQUFzQUN3SkFJQWtRU1FSQUlBb2dCeUFHSUFVb0FnQVFieUFGSUFVb0FnQWdCaUFIYTJvMkFnQU1BUXNnQnlBR0VIa2dEUkE0SVE0Z0J5RUlBMEFnQmlBSVRRUkFJQU1nQnlBQWEyb2dCU2dDQUJCNUJRSkFJQWtnREJBTExBQUFRUUJNRFFBZ0N5QUpJQXdRQ3l3QUFFY05BQ0FGSUFVb0FnQWlDMEVCYWpZQ0FDQUxJQTQ2QUFBZ0RDQU1JQWtRQ1VFQmEwbHFJUXhCQUNFTEN5QUtJQWdzQUFBUUtTRVBJQVVnQlNnQ0FDSVFRUUZxTmdJQUlCQWdEem9BQUNBSVFRRnFJUWdnQzBFQmFpRUxEQUVMQ3dzRFFBSkFJQUlnQmtzRVFDQUdMUUFBSWdkQkxrY05BU0FORUVnaEJ5QUZJQVVvQWdBaUNFRUJhallDQUNBSUlBYzZBQUFnQmtFQmFpRUdDeUFLSUFZZ0FpQUZLQUlBRUc4Z0JTQUZLQUlBSUFJZ0JtdHFJZ1UyQWdBZ0JDQUZJQU1nQVNBQWEyb2dBU0FDUmhzMkFnQWdDUkFLR2lBSlFSQnFKQUFQQ3lBS0lBZEJHSFJCR0hVUUtTRUhJQVVnQlNnQ0FDSUlRUUZxTmdJQUlBZ2dCem9BQUNBR1FRRnFJUVlNQUFzQUMvUUJBUWwvSUFFUURTRUVJQUVRQ1NFSEl3QkJJR3NpQVNRQUFrQWdBVUVZYWlBQUVJUURJZ2d0QUFCRkRRQWdBVUVJYWlBQUVNQUJJUWtnQUNBQUtBSUFRUXhyS0FJQWFpSUZLQUlFSVFvQ1FFRi9JQVVpQWlnQ1RCQmVSUVJBSUFJb0Frd2hBZ3dCQ3lBQ0FuOGpBRUVRYXlJREpBQWdBMEVJYWlJR0lBSVFEeUFHRURKQklCQXBJUUlnQmhBT0lBTkJFR29rQUNBQ0N6WUNUQXNnQWtFWWRFRVlkU0VDSUFFZ0NTZ0NBQ0FFSUFRZ0Iyb2lBeUFFSUFwQnNBRnhRU0JHR3lBRElBVWdBaEJXTmdJUUlBRW9BaEFOQUNBQUlBQW9BZ0JCREdzb0FnQnFRUVVRZ0FFTElBZ1FnZ01nQVVFZ2FpUUFDellCQW45QjlBRVFHU0lDQkg4Z0FpQUFJQUZCQTNRUWlRTWlBRUVBU0FSQUlBSVFFRUVBRHdzZ0FpQUFOZ0x3QVNBQ0JTQURDd3VkQXdFQ2Z5TUFRZUFDYXlJQUpBQWdBQ0FDTmdMUUFpQUFJQUUyQXRnQ0lBTVFYQ0VHSUFNZ0FFSGdBV29RbVFFaEJ5QUFRZEFCYWlBRElBQkJ6QUpxRUpnQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQjJBSnFJQUJCMEFKcUVEWkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRZGdDYWhBaElBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBb0Fzd0NJQUJCMEFGcUlBQkJFR29nQUVFTWFpQUhFSXNCRFFBZ0FFSFlBbW9RSlJvTUFRc0xBa0FnQUVIUUFXb1FDVVVOQUNBQUtBSU1JZ01nQUVFUWFtdEJud0ZLRFFBZ0FDQURRUVJxTmdJTUlBTWdBQ2dDQ0RZQ0FBc2dCU0FDSUFBb0Fyd0JJQVFnQmhESEFqWUNBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQjJBSnFJQUJCMEFKcUVDZ0VRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9BdGdDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUWVBQ2FpUUFJQUlMVkFFQ2Z5TUFRUkJySWdNa0FDQURRUUkyQWd3Z0FpQUJFQWtpQkVzRVFCQVhBQXNnQVJBTklRRWdBeUFFSUFKck5nSUVJQUFnQVNBQ2FpQURRUXhxSUFOQkJHb1FvZ0VvQWdBUTlnRWdBMEVRYWlRQUMwSUJBWDhqQUVFUWF5SURKQUFnQXlBQk5nSU1JQU1nQWpZQ0NDQURJQU5CREdvUVVpRUJJQUJCOHhzZ0F5Z0NDQkRpQWlFQUlBRVFVU0FEUVJCcUpBQWdBQXNZQUNBQUlBQW9BZ0JCREdzb0FnQnFRUUlSQUFBYUlBQUxzUUlDQkg0RmZ5TUFRU0JySWdna0FBSkFBa0FDUUNBQklBSkhCRUJCMUlFQktBSUFJUXhCMUlFQlFRQTJBZ0FqQUVFUWF5SUpKQUFRRmhvakFFRVFheUlLSkFBakFFRVFheUlMSkFBZ0N5QUJJQWhCSEdwQkFoRFlBU0FMS1FNQUlRUWdDaUFMS1FNSU53TUlJQW9nQkRjREFDQUxRUkJxSkFBZ0Npa0RBQ0VFSUFrZ0Npa0RDRGNEQ0NBSklBUTNBd0FnQ2tFUWFpUUFJQWtwQXdBaEJDQUlJQWtwQXdnM0F4QWdDQ0FFTndNSUlBbEJFR29rQUNBSUtRTVFJUVFnQ0NrRENDRUZRZFNCQVNnQ0FDSUJSUTBCSUFnb0Fod2dBa2NOQWlBRklRWWdCQ0VISUFGQnhBQkhEUU1NQWdzZ0EwRUVOZ0lBREFJTFFkU0JBU0FNTmdJQUlBZ29BaHdnQWtZTkFRc2dBMEVFTmdJQUlBWWhCU0FISVFRTElBQWdCVGNEQUNBQUlBUTNBd2dnQ0VFZ2FpUUFDN1lCQWdKOEEzOGpBRUVRYXlJRkpBQUNRQUpBQWtBZ0FDQUJSd1JBUWRTQkFTZ0NBQ0VIUWRTQkFVRUFOZ0lBRUJZYUl3QkJFR3NpQmlRQUlBWWdBQ0FGUVF4cVFRRVEyQUVnQmlrREFDQUdLUU1JRU4wQklRTWdCa0VRYWlRQVFkU0JBU2dDQUNJQVJRMEJJQVVvQWd3Z0FVY05BaUFESVFRZ0FFSEVBRWNOQXd3Q0N5QUNRUVEyQWdBTUFndEIxSUVCSUFjMkFnQWdCU2dDRENBQlJnMEJDeUFDUVFRMkFnQWdCQ0VEQ3lBRlFSQnFKQUFnQXd1MkFRSUNmUU4vSXdCQkVHc2lCU1FBQWtBQ1FBSkFJQUFnQVVjRVFFSFVnUUVvQWdBaEIwSFVnUUZCQURZQ0FCQVdHaU1BUVJCcklnWWtBQ0FHSUFBZ0JVRU1ha0VBRU5nQklBWXBBd0FnQmlrRENCRGtBaUVESUFaQkVHb2tBRUhVZ1FFb0FnQWlBRVVOQVNBRktBSU1JQUZIRFFJZ0F5RUVJQUJCeEFCSERRTU1BZ3NnQWtFRU5nSUFEQUlMUWRTQkFTQUhOZ0lBSUFVb0Fnd2dBVVlOQVFzZ0FrRUVOZ0lBSUFRaEF3c2dCVUVRYWlRQUlBTUx4Z0VDQTM4QmZpTUFRUkJySWdRa0FBSitBa0FDUUNBQUlBRkhCRUFDUUFKQUlBQXRBQUFpQlVFdFJ3MEFJQUJCQVdvaUFDQUJSdzBBREFFTFFkU0JBU2dDQUNFR1FkU0JBVUVBTmdJQUlBQWdCRUVNYWlBREVCWVEyUUVoQndKQVFkU0JBU2dDQUNJQUJFQWdCQ2dDRENBQlJ3MEJJQUJCeEFCR0RRUU1CUXRCMUlFQklBWTJBZ0FnQkNnQ0RDQUJSZzBFQ3dzTElBSkJCRFlDQUVJQURBSUxJQUpCQkRZQ0FFSi9EQUVMUWdBZ0IzMGdCeUFGUVMxR0d3c2hCeUFFUVJCcUpBQWdCd3ZYQVFJRGZ3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUFrQWdBQ0FCUndSQUFrQUNRQ0FBTFFBQUlnVkJMVWNOQUNBQVFRRnFJZ0FnQVVjTkFBd0JDMEhVZ1FFb0FnQWhCa0hVZ1FGQkFEWUNBQ0FBSUFSQkRHb2dBeEFXRU5rQklRY0NRRUhVZ1FFb0FnQWlBQVJBSUFRb0Fnd2dBVWNOQVNBQVFjUUFSZzBGREFRTFFkU0JBU0FHTmdJQUlBUW9BZ3dnQVVZTkF3c0xDeUFDUVFRMkFnQkJBQXdEQ3lBSFF2Ly8vLzhQV0EwQkN5QUNRUVEyQWdCQmZ3d0JDMEVBSUFlbklnQnJJQUFnQlVFdFJoc0xJUUFnQkVFUWFpUUFJQUFMa2dNQkFYOGpBRUdRQW1zaUFDUUFJQUFnQWpZQ2dBSWdBQ0FCTmdLSUFpQURFRndoQmlBQVFkQUJhaUFESUFCQi93RnFFSm9CSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCaUFKcUlBQkJnQUpxRURGRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFZZ0NhaEFmSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFzQVA4QklBQkIwQUZxSUFCQkVHb2dBRUVNYWtIZzBBQVFqUUVOQUNBQVFZZ0NhaEFpR2d3QkN3c0NRQ0FBUWRBQmFoQUpSUTBBSUFBb0Fnd2lBeUFBUVJCcWEwR2ZBVW9OQUNBQUlBTkJCR28yQWd3Z0F5QUFLQUlJTmdJQUN5QUZJQUlnQUNnQ3ZBRWdCQ0FHRU1jQ05nSUFJQUJCMEFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVHSUFtb2dBRUdBQW1vUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0NpQUloQWlBQkVBb2FJQUJCMEFGcUVBb2FJQUJCa0FKcUpBQWdBZ3ZjQVFJRGZ3RitJd0JCRUdzaUJDUUFBbjhDUUFKQUFrQWdBQ0FCUndSQUFrQUNRQ0FBTFFBQUlnVkJMVWNOQUNBQVFRRnFJZ0FnQVVjTkFBd0JDMEhVZ1FFb0FnQWhCa0hVZ1FGQkFEWUNBQ0FBSUFSQkRHb2dBeEFXRU5rQklRY0NRRUhVZ1FFb0FnQWlBQVJBSUFRb0Fnd2dBVWNOQVNBQVFjUUFSZzBGREFRTFFkU0JBU0FHTmdJQUlBUW9BZ3dnQVVZTkF3c0xDeUFDUVFRMkFnQkJBQXdEQ3lBSFF2Ly9BMWdOQVFzZ0FrRUVOZ0lBUWYvL0F3d0JDMEVBSUFlbklnQnJJQUFnQlVFdFJoc0xJUUFnQkVFUWFpUUFJQUJCLy84RGNRdTJBUUlCZmdKL0l3QkJFR3NpQlNRQUFrQUNRQ0FBSUFGSEJFQkIxSUVCS0FJQUlRWkIxSUVCUVFBMkFnQWdBQ0FGUVF4cUlBTVFGaERQQWlFRUFrQkIxSUVCS0FJQUlnQUVRQ0FGS0FJTUlBRkhEUUVnQUVIRUFFWU5Bd3dFQzBIVWdRRWdCallDQUNBRktBSU1JQUZHRFFNTEN5QUNRUVEyQWdCQ0FDRUVEQUVMSUFKQkJEWUNBQ0FFUWdCVkJFQkMvLy8vLy8vLy8vLy9BQ0VFREFFTFFvQ0FnSUNBZ0lDQWdIOGhCQXNnQlVFUWFpUUFJQVFMd3dFQ0FuOEJmaU1BUVJCcklnUWtBQUovQWtBQ1FDQUFJQUZIQkVCQjFJRUJLQUlBSVFWQjFJRUJRUUEyQWdBZ0FDQUVRUXhxSUFNUUZoRFBBaUVHQWtCQjFJRUJLQUlBSWdBRVFDQUVLQUlNSUFGSERRRWdBRUhFQUVZTkJBd0RDMEhVZ1FFZ0JUWUNBQ0FFS0FJTUlBRkdEUUlMQ3lBQ1FRUTJBZ0JCQUF3Q0N5QUdRb0NBZ0lCNFV5QUdRdi8vLy84SFZYSU5BQ0FHcHd3QkN5QUNRUVEyQWdCQi8vLy8vd2NnQmtJQVZRMEFHa0dBZ0lDQWVBc2hBQ0FFUVJCcUpBQWdBQXZtQWdFRWZ5QUFRVUJySWdOQnZDZzJBZ0FnQTBIMElUWUNBQ0FBUWZ3bE5nSUFJQU5CcENZMkFnQWdBRUdRSmpZQ0NDQUFRYlFtS0FJQUlnRTJBZ0FnQUNBQlFReHJLQUlBYWtHNEppZ0NBRFlDQUNBQVFRQTJBZ1FnQUNBQUtBSUFRUXhyS0FJQWFpSUNRUUEyQWhRZ0FpQUFRUXhxSWdFMkFoZ2dBa0VBTmdJTUlBSkNncUNBZ09BQU53SUVJQUlnQVVVMkFoQWdBa0VnYWtFQVFTZ1FSaG9nQWtFY2FoQ1BBaUFDUVFBMkFrZ2dBa0YvTmdKTUlBQkJDR29pQWtHOEppZ0NBQ0lFTmdJQUlBSWdCRUVNYXlnQ0FHcEJ3Q1lvQWdBMkFnQWdBRUd3SmlnQ0FDSUNOZ0lBSUFBZ0FrRU1heWdDQUdwQnhDWW9BZ0EyQWdBZ0FFSElKaWdDQURZQ0NDQUFRZndsTmdJQUlBTkJwQ1kyQWdBZ0FFR1FKallDQ0NBQlFid2ZOZ0lBSUFGQkJHb1Fqd0lnQVVJQU53SVlJQUZDQURjQ0VDQUJRZ0EzQWdnZ0FVRzBJVFlDQUNBQlFTQnFFQkVhSUFGQkdEWUNNQ0FCUVFBMkFpd2dBQXNLQUNBQklBQnJRUXh0QzVRQkFRUi9Jd0JCRUdzaUJTUUFJQUVnQWhDaUFpSUVRZS8vLy84RFRRUkFBa0FnQkVFQlRRUkFJQUFnQkJBNklBQWhBd3dCQ3lBQUlBQWdCQkNDQVVFQmFpSUdFSUVCSWdNUVRTQUFJQVlRVENBQUlBUVFPUXNEUUNBQklBSkhCRUFnQXlBQkVETWdBMEVFYWlFRElBRkJCR29oQVF3QkN3c2dCVUVBTmdJTUlBTWdCVUVNYWhBeklBVkJFR29rQUE4TEVCY0FDeFlBSUFBZ0FTQUNRb0NBZ0lDQWdJQ0FnSDhRMEFJTGtnUUNCMzhFZmlNQVFSQnJJZ2drQUFKQUFrQUNRQ0FDUVNSTUJFQWdBQzBBQUNJRkRRRWdBQ0VFREFJTFFkU0JBVUVjTmdJQVFnQWhBd3dDQ3lBQUlRUUNRQU5BSUFWQkdIUkJHSFVRY0VVTkFTQUVMUUFCSVFVZ0JFRUJhaUVFSUFVTkFBc01BUXNDUUNBRUxRQUFJZ1ZCSzJzT0F3QUJBQUVMUVg5QkFDQUZRUzFHR3lFSElBUkJBV29oQkFzQ2Z3SkFJQUpCYjNFTkFDQUVMUUFBUVRCSERRQkJBU0VKSUFRdEFBRkIzd0Z4UWRnQVJnUkFJQVJCQW1vaEJFRVFEQUlMSUFSQkFXb2hCQ0FDUVFnZ0Foc01BUXNnQWtFS0lBSWJDeUlLckNFTVFRQWhBZ05BQWtCQlVDRUZBa0FnQkN3QUFDSUdRVEJyUWY4QmNVRUtTUTBBUWFsL0lRVWdCa0hoQUd0Qi93RnhRUnBKRFFCQlNTRUZJQVpCd1FCclFmOEJjVUVaU3cwQkN5QUZJQVpxSWdZZ0NrNE5BQ0FJSUF4Q0FDQUxRZ0FRSzBFQklRVUNRQ0FJS1FNSVFnQlNEUUFnQ3lBTWZpSU5JQWFzSWc1Q2Y0VldEUUFnRFNBT2ZDRUxRUUVoQ1NBQ0lRVUxJQVJCQVdvaEJDQUZJUUlNQVFzTElBRUVRQ0FCSUFRZ0FDQUpHellDQUFzQ1FBSkFJQUlFUUVIVWdRRkJ4QUEyQWdBZ0IwRUFJQU5DQVlNaURGQWJJUWNnQXlFTERBRUxJQU1nQzFZTkFTQURRZ0dESVF3TElBeW5JQWR5UlFSQVFkU0JBVUhFQURZQ0FDQURRZ0Y5SVFNTUFnc2dBeUFMV2cwQVFkU0JBVUhFQURZQ0FBd0JDeUFMSUFlc0lnT0ZJQU45SVFNTElBaEJFR29rQUNBREN6RUJBWDlCMklZQktBSUFJUUVnQUFSQVFkaUdBVUhvaFFFZ0FDQUFRWDlHR3pZQ0FBdEJmeUFCSUFGQjZJVUJSaHNMclFnQkJYOGdBU2dDQUNFRUFrQUNRQUpBQWtBQ1FBSkFBa0FDZndKQUFrQUNRQUpBSUFORkRRQWdBeWdDQUNJR1JRMEFJQUJGQkVBZ0FpRUREQU1MSUFOQkFEWUNBQ0FDSVFNTUFRc0NRRUhZaGdFb0FnQW9BZ0JGQkVBZ0FFVU5BU0FDUlEwTUlBSWhCZ05BSUFRc0FBQWlBd1JBSUFBZ0EwSC92d054TmdJQUlBQkJCR29oQUNBRVFRRnFJUVFnQmtFQmF5SUdEUUVNRGdzTElBQkJBRFlDQUNBQlFRQTJBZ0FnQWlBR2F3OExJQUloQXlBQVJRMEREQVVMSUFRUWtnRVBDMEVCSVFVTUF3dEJBQXdCQzBFQkN5RUZBMEFnQlVVRVFDQUVMUUFBUVFOMklnVkJFR3NnQmtFYWRTQUZhbkpCQjBzTkF3Si9JQVJCQVdvaUJTQUdRWUNBZ0JCeFJRMEFHaUFGTFFBQVFjQUJjVUdBQVVjRVFDQUVRUUZySVFRTUJ3c2dCRUVDYWlJRklBWkJnSUFnY1VVTkFCb2dCUzBBQUVIQUFYRkJnQUZIQkVBZ0JFRUJheUVFREFjTElBUkJBMm9MSVFRZ0EwRUJheUVEUVFFaEJRd0JDd05BQWtBZ0JFRURjU0FFTFFBQUlnWkJBV3RCL2dCTGNnMEFJQVFvQWdBaUJrR0Jnb1FJYXlBR2NrR0FnWUtFZUhFTkFBTkFJQU5CQkdzaEF5QUVLQUlFSVFZZ0JFRUVhaUVFSUFZZ0JrR0Jnb1FJYTNKQmdJR0NoSGh4UlEwQUN3c2dCa0gvQVhFaUJVRUJhMEgrQUUwRVFDQURRUUZySVFNZ0JFRUJhaUVFREFFTEN5QUZRY0lCYXlJRlFUSkxEUU1nQkVFQmFpRUVJQVZCQW5SQndDdHFLQUlBSVFaQkFDRUZEQUFMQUFzRFFDQUZSUVJBSUFORkRRY0RRQUpBQWtBQ1FDQUVMUUFBSWdWQkFXc2lCMEgrQUVzRVFDQUZJUVlNQVFzZ0JFRURjU0FEUVFWSmNnMEJBa0FEUUNBRUtBSUFJZ1pCZ1lLRUNHc2dCbkpCZ0lHQ2hIaHhEUUVnQUNBR1FmOEJjVFlDQUNBQUlBUXRBQUUyQWdRZ0FDQUVMUUFDTmdJSUlBQWdCQzBBQXpZQ0RDQUFRUkJxSVFBZ0JFRUVhaUVFSUFOQkJHc2lBMEVFU3cwQUN5QUVMUUFBSVFZTElBWkIvd0Z4SWdWQkFXc2hCd3NnQjBIK0FFc05BUXNnQUNBRk5nSUFJQUJCQkdvaEFDQUVRUUZxSVFRZ0EwRUJheUlERFFFTUNRc0xJQVZCd2dGcklnVkJNa3NOQXlBRVFRRnFJUVFnQlVFQ2RFSEFLMm9vQWdBaEJrRUJJUVVNQVFzZ0JDMEFBQ0lGUVFOMklnZEJFR3NnQnlBR1FScDFhbkpCQjBzTkFRSkFBa0FDZnlBRVFRRnFJZ2NnQlVHQUFXc2dCa0VHZEhJaUJVRUFUZzBBR2lBSExRQUFRWUFCYXlJSFFUOUxEUUVnQkVFQ2FpSUlJQWNnQlVFR2RISWlCVUVBVGcwQUdpQUlMUUFBUVlBQmF5SUhRVDlMRFFFZ0J5QUZRUVowY2lFRklBUkJBMm9MSVFRZ0FDQUZOZ0lBSUFOQkFXc2hBeUFBUVFScUlRQU1BUXRCMUlFQlFSazJBZ0FnQkVFQmF5RUVEQVVMUVFBaEJRd0FDd0FMSUFSQkFXc2hCQ0FHRFFFZ0JDMEFBQ0VHQ3lBR1FmOEJjUTBBSUFBRVFDQUFRUUEyQWdBZ0FVRUFOZ0lBQ3lBQ0lBTnJEd3RCMUlFQlFSazJBZ0FnQUVVTkFRc2dBU0FFTmdJQUMwRi9Ed3NnQVNBRU5nSUFJQUlMSXdFQ2Z5QUFJUUVEUUNBQklnSkJCR29oQVNBQ0tBSUFEUUFMSUFJZ0FHdEJBblVMRGdBZ0FCRGZBZ1JBSUFBUUVBc0xVd0VFZndKQUlBRkJBRXdOQUNBQlFRRnJJZ1JGRFFBRFFDQUFJQUpxSWdNdEFBQWhCU0FESUFBZ0FrRUJjbW9pQXkwQUFEb0FBQ0FESUFVNkFBQWdBa0VDYWlJQ0lBRk9EUUVnQWlBRVJ3MEFDd3NMTEFFQmZ5TUFRUkJySWdJa0FDQUNJQUUyQWd3Z0FFSGtBRUh1SENBQkVMVUJJUUFnQWtFUWFpUUFJQUFMS1FFQmZ5TUFRUkJySWdJa0FDQUNJQUUyQWd3Z0FFSDBIQ0FCRU9JQ0lRQWdBa0VRYWlRQUlBQUxGZ0FnQUJCRlFRQkhJQUJCSUhKQjRRQnJRUVpKY2d1OEFnQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFGQkNXc09FZ0FJQ1FvSUNRRUNBd1FLQ1FvS0NBa0ZCZ2NMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVNnQ0FEWUNBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRJQkFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRNQkFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRBQUFEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRFQUFEY0RBQThMSUFJZ0FpZ0NBRUVIYWtGNGNTSUJRUWhxTmdJQUlBQWdBU3NEQURrREFBOExJQUFnQWtFekVRTUFDdzhMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRRQ0FEY0RBQThMSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUFnQVRVQ0FEY0RBQThMSUFJZ0FpZ0NBRUVIYWtGNGNTSUJRUWhxTmdJQUlBQWdBU2tEQURjREFBditGQUVPZnlNQVFVQnFJZ01rQUNBRFFRQTJBaEFnQTBFQU5nSU1JQU5CQURZQ0NDQURRUUEyQWdRZ0F5QURRUkJxSWdRMkFoUWdBeUFEUVF4cUlnZzJBaGdnQXlnQ0ZCb2dBeUFEUVFocUlnbzJBaHdnQXlnQ0dCb2dBeUFEUVFScUlnWTJBaUFnQXlnQ0hCb2dBeWdDSUJvakFFRVFheUlISkFBZ0JpQUFMUUFDSUFBdEFBRWdBQzBBQUhOelFSaDBRUmgxSWdWQk1ITWdCVUVCZEVHZmYzSnFRUUZxSWdVMkFnQWdDaUFGUVg5eklBRnhJQVVnQVVGL2N5SU1jV3NpQlVGK2NpQUZRWDV4YWtFQmFpSUZOZ0lBSUFRZ0JSQVpOZ0lBSUFnZ0JpZ0NBQ0lKRUJrMkFnQURRQUpBUWIzdSthRitJUVVEUUFKQUFrQWdCVUc4N3ZtaGZrd0VRQ0FGUWUzc2hPTjVSZzBCSUFWQmlhM04yM3hHRFFJZ0JVR0loWUxjZkVjTkF5QUhRUkJxSkFBTUJBc2dCVUgyam9iVkJFY0VRQ0FGUVpxZW84a0RSZ1JBUVFBaEMwSHQ3SVRqZVNFRkRBUUxJQVZCdmU3NW9YNUhEUU1nQnlBSk5nSUlRZmFPaHRVRVFacWVvOGtESUFjb0FnaEJBRW9iSVFVTUF3c2dCaWdDQUNJRlFYOXpJQUZ4SUFVZ0RIRnJJZ2xCZm5NZ0NVRUJkRUY4Y1dvZ0FHb3RBQUVoRFNBSUtBSUFJQVVnQnlnQ0NHdHFJQUFnQnlnQ0NDSUZRWDl6SUFGeFFRRjBJQUVnQlhOcmFpMEFBQ0FBSUFscVFRSnJMUUFBSUExemN6b0FBQ0FIS0FJSVFRRnJJUWtNQkFzZ0J5QUxOZ0lNUVltdHpkdDhRWWlGZ3R4OElBb29BZ0FnQnlnQ0RFb2JJUVVNQVFzZ0JDZ0NBQ0FIS0FJTWFpQUFJQWNvQWd4QkFXb2lDMm90QUFBNkFBQkI3ZXlFNDNraEJRd0FDd0FMQ3lBRElBTW9BZ3hCcng0Z0F5Z0NCQkMrQVRZQ0pFSE51dmFlQlNFQUEwQUNRQUpBQWtBQ1FBSkFBa0FDUUNBQVFjcndxYUlCVEFSQUlBQkIvYlhhNzM1TUJFQWdBRUdSMVl1VWUwWU5CeUFBUWMyVjY5cDdSZzBESUFCQmdOSG4vWHhIRFFsQmtkV0xsSHNoQUVFQUlRRU1DUXNnQUVIK3RkcnZma1lOQkNBQVFhNm0wL1lBUmcwQklBQkIwYUM1R0VjTkNDQURLQUlRRUJBZ0F5Z0NEQkFRSUFNb0FpQWFJQU1vQWh3YUlBTW9BaGdhSUFNb0FoUWFJQU1vQWl3aEFDQURRVUJySkFBZ0FBOExJQUJCNzRUcjlRSk1CRUFnQUVITDhLbWlBVVlOQnlBQVFZekF5b0FDUncwSUlBTW9BaEFoQ0NBREtBSUlJUTVCQUNFSlFRQWhDa0VBSVFWQkFDRUhRUUFoQ3lNQVFSQnJJZ1FrQUVHU21PekRCVUc3N0x5SUJDQUNHeUVHUWRVQUlReEIrZ0VoRFFOQUFrQkI1cXFmZWlFQUEwQUNRQUpBQWtBQ1FBSkFJQUJCcE5XRDlnRk1CRUFnQUVIb3lwQzVmRXdFUUNBQVFmaTErUHQ1UmcwR0lBQkI1TkNXdDNwR0RRVWdBRUdZOWUzT2VVY05CeUFFUVJCcUpBQU1DQXNnQUVIcHlwQzVmRVlOQVNBQVFlYXFuM3BIRFFZZ0JDQUpOZ0lFSUFRZ0RUb0FDeUFFSUF3NkFBeEI2Y3FRdVh4Qm1QWHR6bmtnQkNnQ0JDQU9TQnNoQUF3R0N5QUFRYkR0aXJrRVRBUkFJQUJCcGRXRDlnRkdEUUlnQUVHNzdMeUlCRWNOQmtINHRmajdlU0VBSUFRc0FBMGdCQ2dDQkJEb0FpRUtEQVlMSUFCQnNlMkt1UVJHRFFJZ0FFR1NtT3pEQlVjTkJVSDR0Zmo3ZVNFQUlBUXNBQTBnQkNnQ0JCRGhBaUVLREFVTFFhWFZnL1lCUWJIdGlya0VJQVFvQWdSQkFtOUJBVVliSVFBTUJBc2dDQ0FFS0FJRWFpMEFBQ0lGSUFRdEFBeHpJUWRCNU5DV3Qzb2hBQ0FFTFFBTElRc01Bd3NnQ0NBRUtBSUVhaTBBQUNJTElBUXRBQXR6SVFkQjVOQ1d0M29oQUNBRUxRQU1JUVVNQWdzZ0JDQUxPZ0FPSUFRZ0J6b0FEU0FFSUFVNkFBOGdCaUVBREFFTEN5QUlJQVFvQWdScUlBbzZBQUFnQkNnQ0JFRUJhaUVKSUFRdEFBOGhEQ0FFTFFBT0lRME1BUXNMUWZDRTYvVUNJUUFNQ0FzZ0FFSHdoT3YxQWtZTkFpQUFRWmpYcXBFRFJnMEVJQUJCemJyMm5nVkhEUWRCcnFiVDlnQkJ6WlhyMm5zZ0F5Z0NKQnNoQUF3SEMwR013TXFBQWtITmxldmFleUFES0FJTVFiWWVJQU1vQWdRUXZnRWJJUUFNQmdzZ0F5Z0NFQ0VJSUFNb0FnZ2hCVUVBSVFwQkFDRU5RUUFoQjBFQUlRdEJBQ0VKUVFBaERDTUFRUkJySWdRa0FDQUlJQVVRMVFKQnNxYmJpd1JCdXYrRG9ua2dBaHNoQmtIVkFDRU9RZm9CSVE4RFFBSkFRYlNXMGJvQ0lRQURRQUpBQWtBQ1FDQUFRYk9XMGJvQ1RBUkFJQUJCcGZIYTIzMU1CRUFnQUVHNi80T2llVVlOQkNBQVFaL1VucGg3UmcwRElBQkIwK2k2NDNoSERRVWdDQ0FGRU5VQ0lBUkJFR29rQUF3R0N5QUFRYWJ4MnR0OVJnMEJJQUJCZzZhWnJRRkhEUVJCbDRYY3ZnUkJwdkhhMjMwZ0JDZ0NCRUVDYjBFQlJoc2hBQXdFQ3dKQUFrQWdBRUdXaGR5K0JFd0VRQ0FBUWJTVzBib0NSZzBCSUFCQnNxYmJpd1JIRFFaQi83TGxsd1VoQUNBRUxBQU5JQVFvQWdRUTRRSWhDZ3dHQ3lBQVFaZUYzTDRFUmcwQklBQkIvN0xsbHdWSERRVWdDQ0FFS0FJRWFpQUVMUUFNSWdBZ0NuTWdBQ0FLUVg5emNVRUJkR3M2QUFBZ0JDZ0NCRUVCYWlFTklBUXRBQThoRGlBRUxRQU9JUThNQndzZ0JDQU5OZ0lFSUFRZ0R6b0FDaUFFSUE0NkFBdEJnNmFaclFGQjAraTY0M2dnQkNnQ0JDQUZTQnNoQUF3RUN5QUlJQVFvQWdScUxRQUFJZ2NnQkMwQUMzTWhDMEdmMUo2WWV5RUFJQVF0QUFvaENTQUVMUUFLSVF3TUF3c2dDQ0FFS0FJRWFpMEFBQ0lKSUFRdEFBcHpJUXRCbjlTZW1Ic2hBQ0FFTFFBTElRY2dCQzBBQ3lFTURBSUxJQVFnQ3pvQURTQUVJQXc2QUF3Z0JDQUpPZ0FPSUFRZ0J6b0FEeUFHSVFBTUFRdEIvN0xsbHdVaEFDQUVMQUFOSUFRb0FnUVE2QUloQ2d3QUN3QUxDMEh3aE92MUFpRUFEQVVMSUFNQ2YwRUFJUVFqQUVFUWF5SUdJQU1vQWhBc0FBQTJBZ2dnQmlBR0tBSUlRUzlLT2dBT0lBWWdCaWdDQ0VFNlNEb0FEMEdNNEpTQ2VpRUFBMEFDUUNBQVFhemNoNGg3VEFSQUlBQkJsZXJCdW5oR0JFQkIvd0VoQkVHdDNJZUlleUVBREFNTElBQkJqT0NVZ25wR0RRRWdBRUc4b09mTGVrY05BaUFHS0FJSUlnQkI0UUJ6SUFCQkFYUkJ2WDV5YWtFQmFpSUFRUUYwUVJSeElBQkJDbk5xSVFSQnJkeUhpSHNoQUF3Q0N5QUFRYTNjaDRoN1J3UkFJQUJCbXFYNDZ3SkhCRUFnQUVIQTRyRENBMGNOQXlBR0tBSUlJZ0JCendGeUlBQkJ6d0Z4YWtFQmFpRUVRYTNjaDRoN0lRQU1Bd3RCdktEbnkzcEJsZXJCdW5nZ0JpZ0NDRUg3QUVnYlFaWHF3YnA0SUFZb0FnaEI0QUJLR3lFQURBSUxJQVJCR0hSQkdIVU1BZ3RCd09Ld3dnTkJtcVg0NndJZ0JpMEFEMEVCY1J0Qm1xWDQ2d0lnQmkwQURrRUJjUnNoQUF3QUN3QUxJZ0EyQWdRZ0F5QURLQUlJSWdZZ0FFRi9jM0VnQUNBR1FYOXpjV3NpQmtGK2NpQUdRWDV4YWtFQmFqWUNLQ0FESUFZUUdUWUNMQ0FESUFCQkFYUkJBbkVnQUVFQmMyb1FHVFlDTUVFQUlSQWdBeWdDS0NBREtBSXNha0VBT2dBQUlBTW9BZ1FnQXlnQ01HcEJBRG9BQUVIK3RkcnZmaUVBREFRTElBTWdFRFlDT0VHWTE2cVJBMEdBMGVmOWZDQURLQUlvSUFNb0FqaEtHeUVBREFNTElBTW9BaXdnQXlnQ09Hb2dBeWdDT0NJQVFRRjBRUUp5SUFCQmZuTnFRUUZxSWhBZ0F5Z0NFR290QUFBNkFBQkIvclhhNzM0aEFBd0NDeUFESUFNb0FnUTJBalFnQXlBQk5nSThRY3Z3cWFJQlFkR2d1UmdnQXlnQ05DQURLQUk4U2hzaEFBd0JDeUFES0FJd0lBTW9BanhxSUFNb0FoQWdBeWdDQ0NBREtBSTBheUlBSUFNb0Fqd2lBWEpCQVhRZ0FDQUJjMnRxTFFBQU9nQUFJQU1vQWp4QkFXb2hBVUdSMVl1VWV5RUFEQUFMQUF0ckFRUi9JQUFvQWdBc0FBQVFSVVVFUUVFQUR3c0RRQ0FBS0FJQUlRTkJmeUVCSUFKQnpKbXo1Z0JOQkVCQmZ5QURMQUFBUVRCcklnUWdBa0VLYkNJQmFpQUVRZi8vLy84SElBRnJTaHNoQVFzZ0FDQURRUUZxTmdJQUlBRWhBaUFETEFBQkVFVU5BQXNnQVF2MEVnSVJmd0YrSXdCQjBBQnJJZ1VrQUNBRklBRTJBa3dnQlVFM2FpRVVJQVZCT0dvaEVFRUFJUUVDUUFKQUFrQUNRQU5BSUFGQi8vLy8vd2NnQzJ0S0RRRWdBU0FMYWlFTElBVW9Ba3dpQ2lFQkFrQUNRQUpBSUFvdEFBQWlDUVJBQTBBQ1FBSkFJQWxCL3dGeElnWkZCRUFnQVNFSkRBRUxJQVpCSlVjTkFTQUJJUWtEUUNBQkxRQUJRU1ZIRFFFZ0JTQUJRUUpxSWdZMkFrd2dDVUVCYWlFSklBRXRBQUloQ0NBR0lRRWdDRUVsUmcwQUN3c2dDU0FLYXlJQlFmLy8vLzhISUF0ckloVktEUWNnQUFSQUlBQWdDaUFCRUNvTElBRU5Ca0YvSVE1QkFTRUdJQVVvQWt3c0FBRVFSU0VCSUFVb0Frd2hDQUpBSUFGRkRRQWdDQzBBQWtFa1J3MEFJQWdzQUFGQk1Hc2hEa0VCSVJKQkF5RUdDeUFGSUFZZ0NHb2lBVFlDVEVFQUlRd0NRQ0FCTEFBQUloRkJJR3NpQ0VFZlN3UkFJQUVoQmd3QkN5QUJJUVpCQVNBSWRDSUhRWW5SQkhGRkRRQURRQ0FGSUFGQkFXb2lCallDVENBSElBeHlJUXdnQVN3QUFTSVJRU0JySWdoQklFOE5BU0FHSVFGQkFTQUlkQ0lIUVluUkJIRU5BQXNMQWtBZ0VVRXFSZ1JBSUFVQ2Z3SkFJQVlzQUFFUVJVVU5BQ0FGS0FKTUlnRXRBQUpCSkVjTkFDQUJMQUFCUVFKMElBUnFRY0FCYTBFS05nSUFJQUVzQUFGQkEzUWdBMnBCZ0FOcktBSUFJUTFCQVNFU0lBRkJBMm9NQVFzZ0VnMEdRUUFoRWtFQUlRMGdBQVJBSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUVvQWdBaERRc2dCU2dDVEVFQmFnc2lBVFlDVENBTlFRQk9EUUZCQUNBTmF5RU5JQXhCZ01BQWNpRU1EQUVMSUFWQnpBQnFFTnNDSWcxQkFFZ05DQ0FGS0FKTUlRRUxRUUFoQmtGL0lRY0NmMEVBSUFFdEFBQkJMa2NOQUJvZ0FTMEFBVUVxUmdSQUlBVUNmd0pBSUFFc0FBSVFSVVVOQUNBRktBSk1JZ0V0QUFOQkpFY05BQ0FCTEFBQ1FRSjBJQVJxUWNBQmEwRUtOZ0lBSUFFc0FBSkJBM1FnQTJwQmdBTnJLQUlBSVFjZ0FVRUVhZ3dCQ3lBU0RRWWdBQVIvSUFJZ0FpZ0NBQ0lCUVFScU5nSUFJQUVvQWdBRlFRQUxJUWNnQlNnQ1RFRUNhZ3NpQVRZQ1RDQUhRWDl6UVI5MkRBRUxJQVVnQVVFQmFqWUNUQ0FGUWN3QWFoRGJBaUVISUFVb0Frd2hBVUVCQ3lFVEEwQWdCaUVQUVJ3aENTQUJMQUFBUWNFQWEwRTVTdzBKSUFVZ0FVRUJhaUlSTmdKTUlBRXNBQUFoQmlBUklRRWdCaUFQUVRwc2FrR1BMbW90QUFBaUJrRUJhMEVJU1EwQUN3SkFBa0FnQmtFYlJ3UkFJQVpGRFFzZ0RrRUFUZ1JBSUFRZ0RrRUNkR29nQmpZQ0FDQUZJQU1nRGtFRGRHb3BBd0EzQTBBTUFnc2dBRVVOQ0NBRlFVQnJJQVlnQWhEWkFpQUZLQUpNSVJFTUFnc2dEa0VBVGcwS0MwRUFJUUVnQUVVTkJ3c2dERUgvLzN0eElnZ2dEQ0FNUVlEQUFIRWJJUVpCQUNFTVFlOGFJUTRnRUNFSkFrQUNRQUpBQW44Q1FBSkFBa0FDUUFKL0FrQUNRQUpBQWtBQ1FBSkFBa0FnRVVFQmF5d0FBQ0lCUVY5eElBRWdBVUVQY1VFRFJoc2dBU0FQR3lJQlFkZ0FhdzRoQkJRVUZCUVVGQlFVRGhRUEJnNE9EaFFHRkJRVUZBSUZBeFFVQ1JRQkZCUUVBQXNDUUNBQlFjRUFhdzRIRGhRTEZBNE9EZ0FMSUFGQjB3QkdEUWtNRXdzZ0JTa0RRQ0VXUWU4YURBVUxRUUFoQVFKQUFrQUNRQUpBQWtBQ1FBSkFJQTlCL3dGeERnZ0FBUUlEQkJvRkJob0xJQVVvQWtBZ0N6WUNBQXdaQ3lBRktBSkFJQXMyQWdBTUdBc2dCU2dDUUNBTHJEY0RBQXdYQ3lBRktBSkFJQXM3QVFBTUZnc2dCU2dDUUNBTE9nQUFEQlVMSUFVb0FrQWdDellDQUF3VUN5QUZLQUpBSUF1c053TUFEQk1MSUFkQkNDQUhRUWhMR3lFSElBWkJDSEloQmtINEFDRUJDeUFRSVFnZ0FVRWdjU0VQSUFVcEEwQWlGbEJGQkVBRFFDQUlRUUZySWdnZ0ZxZEJEM0ZCb0RKcUxRQUFJQTl5T2dBQUlCWkNEMVloQ2lBV1FnU0lJUllnQ2cwQUN3c2dDQ0VLSUFaQkNIRkZJQVVwQTBCUWNnMERJQUZCQkhaQjd4cHFJUTVCQWlFTURBTUxJQkFoQVNBRktRTkFJaFpRUlFSQUEwQWdBVUVCYXlJQklCYW5RUWR4UVRCeU9nQUFJQlpDQjFZaENDQVdRZ09JSVJZZ0NBMEFDd3NnQVNFS0lBWkJDSEZGRFFJZ0J5QVFJQXBySWdGQkFXb2dBU0FIU0JzaEJ3d0NDeUFGS1FOQUloWkNBRk1FUUNBRlFnQWdGbjBpRmpjRFFFRUJJUXhCN3hvTUFRc2dCa0dBRUhFRVFFRUJJUXhCOEJvTUFRdEI4UnBCN3hvZ0JrRUJjU0lNR3dzaERpQVdJQkFRandFaENnc2dFMEVBSUFkQkFFZ2JEUTRnQmtILy8zdHhJQVlnRXhzaEJpQUZLUU5BSWhaQ0FGSWdCM0pGQkVBZ0VDRUtRUUFoQnd3TUN5QUhJQlpRSUJBZ0NtdHFJZ0VnQVNBSFNCc2hCd3dMQ3lBRktBSkFJZ0ZCZ0I4Z0FSc2lDaUlKUVFCQi8vLy8vd2NnQnlBSFFRQklHeUlHRU53QklnRWdDV3NnQmlBQkd5SUJJQXBxSVFrZ0IwRUFUZ1JBSUFnaEJpQUJJUWNNQ3dzZ0NDRUdJQUVoQnlBSkxRQUFEUTBNQ2dzZ0J3UkFJQVVvQWtBTUFndEJBQ0VCSUFCQklDQU5RUUFnQmhBdURBSUxJQVZCQURZQ0RDQUZJQVVwQTBBK0FnZ2dCU0FGUVFocUlnRTJBa0JCZnlFSElBRUxJUWxCQUNFQkFrQURRQ0FKS0FJQUlnaEZEUUVnQlVFRWFpQUlFTjRDSWdwQkFFZ2lDQ0FLSUFjZ0FXdExja1VFUUNBSlFRUnFJUWtnQnlBQklBcHFJZ0ZMRFFFTUFnc0xJQWdORFF0QlBTRUpJQUZCQUVnTkN5QUFRU0FnRFNBQklBWVFMaUFCUlFSQVFRQWhBUXdCQzBFQUlRY2dCU2dDUUNFSkEwQWdDU2dDQUNJSVJRMEJJQVZCQkdvZ0NCRGVBaUlJSUFkcUlnY2dBVXNOQVNBQUlBVkJCR29nQ0JBcUlBbEJCR29oQ1NBQklBZExEUUFMQ3lBQVFTQWdEU0FCSUFaQmdNQUFjeEF1SUEwZ0FTQUJJQTFJR3lFQkRBZ0xJQk5CQUNBSFFRQklHdzBJUVQwaENTQUFJQVVyQTBBZ0RTQUhJQVlnQVVFeUVSMEFJZ0ZCQUU0TkJ3d0pDeUFGSUFVcEEwQThBRGRCQVNFSElCUWhDaUFJSVFZTUJBc2dCU0FCUVFGcUlnWTJBa3dnQVMwQUFTRUpJQVloQVF3QUN3QUxJQUFOQnlBU1JRMENRUUVoQVFOQUlBUWdBVUVDZEdvb0FnQWlBQVJBSUFNZ0FVRURkR29nQUNBQ0VOa0NRUUVoQ3lBQlFRRnFJZ0ZCQ2tjTkFRd0pDd3RCQVNFTElBRkJDazhOQndOQUlBUWdBVUVDZEdvb0FnQU5BU0FCUVFGcUlnRkJDa2NOQUFzTUJ3dEJIQ0VKREFRTElBa2dDbXNpRHlBSElBY2dEMGdiSWdoQi8vLy8vd2NnREd0S0RRSkJQU0VKSUFnZ0RHb2lCeUFOSUFjZ0RVb2JJZ0VnRlVvTkF5QUFRU0FnQVNBSElBWVFMaUFBSUE0Z0RCQXFJQUJCTUNBQklBY2dCa0dBZ0FSekVDNGdBRUV3SUFnZ0QwRUFFQzRnQUNBS0lBOFFLaUFBUVNBZ0FTQUhJQVpCZ01BQWN4QXVEQUVMQzBFQUlRc01Bd3RCUFNFSkMwSFVnUUVnQ1RZQ0FBdEJmeUVMQ3lBRlFkQUFhaVFBSUFzTGZ3SUJmd0YrSUFDOUlnTkNOSWluUWY4UGNTSUNRZjhQUndSOElBSkZCRUFnQVNBQVJBQUFBQUFBQUFBQVlRUi9RUUFGSUFCRUFBQUFBQUFBOEVPaUlBRVEzUUloQUNBQktBSUFRVUJxQ3pZQ0FDQUFEd3NnQVNBQ1FmNEhhellDQUNBRFF2Ly8vLy8vLy8rSGdIK0RRb0NBZ0lDQWdJRHdQNFMvQlNBQUN3c1NBQ0FBUlFSQVFRQVBDeUFBSUFFUTJnRUxKUUFnQUVFQVJ5QUFRY2d0UjNFZ0FFSGdMVWR4SUFCQmdJY0JSM0VnQUVHWWh3RkhjUXZvQWdFRGZ3SkFJQUV0QUFBTkFFR0tIaERiQVNJQkJFQWdBUzBBQUEwQkN5QUFRUXhzUVlBdWFoRGJBU0lCQkVBZ0FTMEFBQTBCQzBHUkhoRGJBU0lCQkVBZ0FTMEFBQTBCQzBHbkhpRUJDd0pBQTBBZ0FTQUNhaTBBQUNJRVJTQUVRUzlHY2tVRVFFRVhJUVFnQWtFQmFpSUNRUmRIRFFFTUFnc0xJQUloQkF0QnB4NGhBd0pBQWtBQ1FBSkFBa0FnQVMwQUFDSUNRUzVHRFFBZ0FTQUVhaTBBQUEwQUlBRWhBeUFDUWNNQVJ3MEJDeUFETFFBQlJRMEJDeUFEUWFjZUVMWUJSUTBBSUFOQjhSMFF0Z0VOQVFzZ0FFVUVRRUdrTFNFQ0lBTXRBQUZCTGtZTkFndEJBQThMUVFBaEFVSDhoZ0VvQWdBaUFnUkFBMEFnQXlBQ1FRaHFFTFlCUlEwQ0lBSW9BaUFpQWcwQUN3dEJKQkFaSWdJRVFDQUNRYVF0S1FJQU53SUFJQUpCQ0dvaUFTQURJQVFRUWhvZ0FTQUVha0VBT2dBQUlBSkIvSVlCS0FJQU5nSWdRZnlHQVNBQ05nSUFJQUloQVFzZ0FVR2tMU0FBSUFGeUd5RUNDeUFDQ3k4QUlBRVE3QUlpQVNBQVFmOEJjU0lBY1VFQmRDQUFJQUZ6YWlJQVFSVnlRUUYwSUFCQkZYTnJRUmgwUVJoMUM0MGVBZzkvQlg0akFFR1FBV3NpQkNRQUlBUkJBRUdRQVJCR0lnTkJmellDVENBRElBQTJBaXdnQTBFeE5nSWdJQU1nQURZQ1ZDQUJJUVFnQWlFT0l3QkJzQUpySWdZa0FDQURLQUpNR2dKQUFrQUNRQUpBSUFNb0FnUU5BQ0FERU9rQkdpQURLQUlFRFFBTUFRc2dCQzBBQUNJQVJRMENBa0FEUUFKQUFrQWdBRUgvQVhFUWNBUkFBMEFnQkNJQVFRRnFJUVFnQUMwQUFSQndEUUFMSUFOQ0FCQlRBMEFDZnlBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFERUJJTEVIQU5BQXNnQXlnQ0JDRUVJQU1wQTNCQ0FGa0VRQ0FESUFSQkFXc2lCRFlDQkFzZ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZBd0JDd0ovQWtBQ1FDQUVMUUFBUVNWR0JFQWdCQzBBQVNJQVFTcEdEUUVnQUVFbFJ3MENDeUFEUWdBUVV3SkFJQVF0QUFCQkpVWUVRQU5BQW44Z0F5Z0NCQ0lBSUFNb0FtaEhCRUFnQXlBQVFRRnFOZ0lFSUFBdEFBQU1BUXNnQXhBU0N5SUFFSEFOQUFzZ0JFRUJhaUVFREFFTElBTW9BZ1FpQUNBREtBSm9Sd1JBSUFNZ0FFRUJhallDQkNBQUxRQUFJUUFNQVFzZ0F4QVNJUUFMSUFRdEFBQWdBRWNFUUNBREtRTndRZ0JaQkVBZ0F5QURLQUlFUVFGck5nSUVDeUFBUVFCT0RRcEJBQ0VNSUExRkRRZ01DZ3NnQXlnQ0JDQURLQUlzYTZ3Z0F5a0RlQ0FVZkh3aEZDQUVJUUFNQXd0QkFDRUNJQVJCQW1vTUFRc0NRQ0FBRUVWRkRRQWdCQzBBQWtFa1J3MEFJQVF0QUFGQk1Hc2hBQ01BUVJCcklnRWdEallDRENBQklBNGdBRUVDZEVFRWEwRUFJQUJCQVVzYmFpSUFRUVJxTmdJSUlBQW9BZ0FoQWlBRVFRTnFEQUVMSUE0b0FnQWhBaUFPUVFScUlRNGdCRUVCYWdzaEFFRUFJUXhCQUNFRUlBQXRBQUFRUlFSQUEwQWdBQzBBQUNBRVFRcHNha0V3YXlFRUlBQXRBQUVoQVNBQVFRRnFJUUFnQVJCRkRRQUxDeUFBTFFBQUlnVkI3UUJIQkg4Z0FBVkJBQ0VKSUFKQkFFY2hEQ0FBTFFBQklRVkJBQ0VLSUFCQkFXb0xJZ0ZCQVdvaEFFRURJUWNDUUFKQUFrQUNRQUpBQWtBZ0JVSEJBR3NPT2dRSkJBa0VCQVFKQ1FrSkF3a0pDUWtKQ1FRSkNRa0pCQWtKQkFrSkNRa0pCQWtFQkFRRUJBQUVCUWtCQ1FRRUJBa0pCQUlFQ1FrRUNRSUpDeUFCUVFKcUlBQWdBUzBBQVVIb0FFWWlBUnNoQUVGK1FYOGdBUnNoQnd3RUN5QUJRUUpxSUFBZ0FTMEFBVUhzQUVZaUFSc2hBRUVEUVFFZ0FSc2hCd3dEQzBFQklRY01BZ3RCQWlFSERBRUxRUUFoQnlBQklRQUxRUUVnQnlBQUxRQUFJZ0ZCTDNGQkEwWWlCUnNoRHdKQUlBRkJJSElnQVNBRkd5SUxRZHNBUmcwQUFrQWdDMEh1QUVjRVFDQUxRZU1BUncwQklBUkJBU0FFUVFGS0d5RUVEQUlMSUFJZ0R5QVVFT01DREFJTElBTkNBQkJUQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxFSEFOQUFzZ0F5Z0NCQ0VCSUFNcEEzQkNBRmtFUUNBRElBRkJBV3NpQVRZQ0JBc2dBU0FES0FJc2E2d2dBeWtEZUNBVWZId2hGQXNnQXlBRXJDSVNFRk1DUUNBREtBSUVJZ0VnQXlnQ2FFY0VRQ0FESUFGQkFXbzJBZ1FNQVFzZ0F4QVNRUUJJRFFRTElBTXBBM0JDQUZrRVFDQURJQU1vQWdSQkFXczJBZ1FMUVJBaEFRSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUNBTFFkZ0FhdzRoQmdzTEFnc0xDd3NMQVFzQ0JBRUJBUXNGQ3dzTEN3c0RCZ3NMQWdzRUN3c0dBQXNnQzBIQkFHc2lBVUVHUzBFQklBRjBRZkVBY1VWeURRb0xJQVpCQ0dvZ0F5QVBRUUFRNWdJZ0F5a0RlRUlBSUFNb0FnUWdBeWdDTEd1c2ZWRU5EeUFDUlEwSklBWXBBeEFoRWlBR0tRTUlJUk1nRHc0REJRWUhDUXNnQzBIdkFYRkI0d0JHQkVBZ0JrRWdha0YvUVlFQ0VFWWFJQVpCQURvQUlDQUxRZk1BUncwSUlBWkJBRG9BUVNBR1FRQTZBQzRnQmtFQU5nRXFEQWdMSUFaQklHb2dBQzBBQVNJQlFkNEFSaUlGUVlFQ0VFWWFJQVpCQURvQUlDQUFRUUpxSUFCQkFXb2dCUnNoQ0FKL0FrQUNRQ0FBUVFKQkFTQUZHMm90QUFBaUFFRXRSd1JBSUFCQjNRQkdEUUVnQVVIZUFFY2hCeUFJREFNTElBWWdBVUhlQUVjaUJ6b0FUZ3dCQ3lBR0lBRkIzZ0JISWdjNkFINExJQWhCQVdvTElRQURRQUpBSUFBdEFBQWlBVUV0UndSQUlBRkZEUThnQVVIZEFFY05BUXdLQzBFdElRRWdBQzBBQVNJRlJTQUZRZDBBUm5JTkFDQUFRUUZxSVFnQ1FDQUZJQUJCQVdzdEFBQWlBRTBFUUNBRklRRU1BUXNEUUNBQVFRRnFJZ0FnQmtFZ2Ftb2dCem9BQUNBQUlBZ3RBQUFpQVVrTkFBc0xJQWdoQUFzZ0FTQUdhaUFIT2dBaElBQkJBV29oQUF3QUN3QUxRUWdoQVF3Q0MwRUtJUUVNQVF0QkFDRUJDMElBSVJKQkFDRUZRUUFoQ0VFQUlRY2pBRUVRYXlJUUpBQUNRQ0FCUVFGSElBRkJKRTF4UlFSQVFkU0JBVUVjTmdJQURBRUxBMEFDZnlBREtBSUVJZ1FnQXlnQ2FFY0VRQ0FESUFSQkFXbzJBZ1FnQkMwQUFBd0JDeUFERUJJTElnUVFjQTBBQ3dKQUFrQWdCRUVyYXc0REFBRUFBUXRCZjBFQUlBUkJMVVliSVFjZ0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQWhCQXdCQ3lBREVCSWhCQXNDUUFKQUFrQUNRQ0FCUVc5eElBUkJNRWR5UlFSQUFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUVY5eFFkZ0FSZ1JBUVJBaEFRSi9JQU1vQWdRaUJDQURLQUpvUndSQUlBTWdCRUVCYWpZQ0JDQUVMUUFBREFFTElBTVFFZ3NpQkVHeEtXb3RBQUJCRUVrTkF5QURLUU53UWdCWkJFQWdBeUFES0FJRVFRRnJOZ0lFQ3lBRFFnQVFVd3dHQ3lBQkRRRkJDQ0VCREFJTElBRkJDaUFCR3lJQklBUkJzU2xxTFFBQVN3MEFJQU1wQTNCQ0FGa0VRQ0FESUFNb0FnUkJBV3MyQWdRTElBTkNBQkJUUWRTQkFVRWNOZ0lBREFRTElBRkJDa2NOQUNBRVFUQnJJZ1ZCQ1UwRVFFRUFJUUVEUUNBQlFRcHNJQVZxSWdGQm1iUG16QUZKQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRVEJySWdWQkNVMXhEUUFMSUFHdElSSUxBa0FnQlVFSlN3MEFJQkpDQ240aEV5QUZyU0VWQTBBQ2Z5QURLQUlFSWdFZ0F5Z0NhRWNFUUNBRElBRkJBV28yQWdRZ0FTMEFBQXdCQ3lBREVCSUxJZ1JCTUdzaUJVRUpTeUFUSUJWOEloSkNtclBtekptejVzd1pXbklOQVNBU1FncCtJaE1nQmEwaUZVSi9oVmdOQUF0QkNpRUJEQUlMUVFvaEFTQUZRUWxORFFFTUFnc2dBU0FCUVFGcmNRUkFJQVJCc1NscUxRQUFJZ2dnQVVrRVFBTkFJQUVnQld3Z0NHb2lCVUhINC9FNFNRSi9JQU1vQWdRaUJDQURLQUpvUndSQUlBTWdCRUVCYWpZQ0JDQUVMUUFBREFFTElBTVFFZ3NpQkVHeEtXb3RBQUFpQ0NBQlNYRU5BQXNnQmEwaEVnc2dBU0FJVFEwQklBR3RJUk1EUUNBU0lCTitJaFVnQ0sxQy93R0RJaFpDZjRWV0RRSWdGU0FXZkNFU0lBRUNmeUFES0FJRUlnUWdBeWdDYUVjRVFDQURJQVJCQVdvMkFnUWdCQzBBQUF3QkN5QURFQklMSWdSQnNTbHFMUUFBSWdoTkRRSWdFQ0FUUWdBZ0VrSUFFQ3NnRUNrRENGQU5BQXNNQVFzZ0FVRVhiRUVGZGtFSGNVR3hLMm9zQUFBaEVTQUVRYkVwYWkwQUFDSUZJQUZKQkVBRFFDQUlJQkYwSUFWeUlnaEJnSUNBd0FCSkFuOGdBeWdDQkNJRUlBTW9BbWhIQkVBZ0F5QUVRUUZxTmdJRUlBUXRBQUFNQVFzZ0F4QVNDeUlFUWJFcGFpMEFBQ0lGSUFGSmNRMEFDeUFJclNFU0N5QUJJQVZORFFCQ2Z5QVJyU0lUaUNJVklCSlVEUUFEUUNBRnJVTC9BWU1nRWlBVGhvUWhFaUFCQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0N5SUVRYkVwYWkwQUFDSUZUUTBCSUJJZ0ZWZ05BQXNMSUFFZ0JFR3hLV290QUFCTkRRQURRQ0FCQW44Z0F5Z0NCQ0lFSUFNb0FtaEhCRUFnQXlBRVFRRnFOZ0lFSUFRdEFBQU1BUXNnQXhBU0MwR3hLV290QUFCTERRQUxRZFNCQVVIRUFEWUNBRUVBSVFkQ2Z5RVNDeUFES1FOd1FnQlpCRUFnQXlBREtBSUVRUUZyTmdJRUMwRUFJQkpDZjFFZ0IwRUJjaHNFUUVIVWdRRkJ4QUEyQWdCQ2ZpRVNEQUVMSUJJZ0I2d2lFNFVnRTMwaEVnc2dFRUVRYWlRQUlBTXBBM2hDQUNBREtBSUVJQU1vQWl4cnJIMVJEUW9nQWtVZ0MwSHdBRWR5UlFSQUlBSWdFajRDQUF3RkN5QUNJQThnRWhEakFnd0VDeUFDSUJNZ0VoRGtBamdDQUF3REN5QUNJQk1nRWhEZEFUa0RBQXdDQ3lBQ0lCTTNBd0FnQWlBU053TUlEQUVMSUFSQkFXcEJIeUFMUWVNQVJpSUZHeUVIQWtBQ1FDQVBRUUZISWdoRkJFQWdBaUVCSUF3RVFDQUhRUUowRUJraUFVVU5CZ3NnQmtJQU53T29Ba0VBSVFRRFFDQUJJUW9EUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2lBU0FHYWkwQUlVVU5BeUFHSUFFNkFCc2dCa0VjYWlBR1FSdHFRUUVnQmtHb0Ftb1F0d0VpQVVGK1JnMEFRUUFoQ1NBQlFYOUdEUWtnQ2dSQUlBb2dCRUVDZEdvZ0JpZ0NIRFlDQUNBRVFRRnFJUVFMSUF3Z0JDQUhSbkZGRFFBTElBb2dCMEVCZEVFQmNpSUhRUUowRUo0QklnRU5BQXNNQndzZ0RBUkFRUUFoQkNBSEVCa2lBVVVOQlFOQUlBRWhDUU5BQW44Z0F5Z0NCQ0lCSUFNb0FtaEhCRUFnQXlBQlFRRnFOZ0lFSUFFdEFBQU1BUXNnQXhBU0N5SUJJQVpxTFFBaFJRUkFRUUFoQ2d3RkN5QUVJQWxxSUFFNkFBQWdCRUVCYWlJRUlBZEhEUUFMUVFBaENpQUpJQWRCQVhSQkFYSWlCeENlQVNJQkRRQUxEQWNMUVFBaEJDQUNCRUFEUUFKL0lBTW9BZ1FpQVNBREtBSm9Sd1JBSUFNZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFNUUVnc2lBU0FHYWkwQUlRUkFJQUlnQkdvZ0FUb0FBQ0FFUVFGcUlRUU1BUVZCQUNFS0lBSWhDUXdFQ3dBTEFBc0RRQUovSUFNb0FnUWlBU0FES0FKb1J3UkFJQU1nQVVFQmFqWUNCQ0FCTFFBQURBRUxJQU1RRWdzZ0Jtb3RBQ0VOQUF0QkFDRUpRUUFoQ2d3QkMwRUFJUWtnQmtHb0Ftb0VmeUFHS0FLb0FnVkJBQXNOQlFzZ0F5Z0NCQ0VCSUFNcEEzQkNBRmtFUUNBRElBRkJBV3NpQVRZQ0JBc2dBeWtEZUNBQklBTW9BaXhyckh3aUUxQWdDMEhqQUVZZ0VpQVRVbkZ5RFFZQ1FDQU1SUTBBSUFoRkJFQWdBaUFLTmdJQURBRUxJQUlnQ1RZQ0FBc2dCUTBBSUFvRVFDQUtJQVJCQW5ScVFRQTJBZ0FMSUFsRkJFQkJBQ0VKREFFTElBUWdDV3BCQURvQUFBc2dBeWdDQkNBREtBSXNhNndnQXlrRGVDQVVmSHdoRkNBTklBSkJBRWRxSVEwTElBQkJBV29oQkNBQUxRQUJJZ0FOQVF3RkN3dEJBQ0VKUVFBaENnc2dEUTBCQzBGL0lRMExJQXhGRFFBZ0NSQVFJQW9RRUFzZ0JrR3dBbW9rQUNBTklRQWdBMEdRQVdva0FDQUFDME1BQWtBZ0FFVU5BQUpBQWtBQ1FBSkFJQUZCQW1vT0JnQUJBZ0lFQXdRTElBQWdBandBQUE4TElBQWdBajBCQUE4TElBQWdBajRDQUE4TElBQWdBamNEQUFzTHRBTUNBMzhCZmlNQVFTQnJJZ01rQUFKQUlBRkMvLy8vLy8vLy8vLy9BSU1pQlVLQWdJQ0FnSURBd0Q5OUlBVkNnSUNBZ0lDQXdML0FBSDFVQkVBZ0FVSVppS2NoQkNBQVVDQUJRdi8vL3crRElnVkNnSUNBQ0ZRZ0JVS0FnSUFJVVJ0RkJFQWdCRUdCZ0lDQUJHb2hBZ3dDQ3lBRVFZQ0FnSUFFYWlFQ0lBQWdCVUtBZ0lBSWhZUkNBRklOQVNBQ0lBUkJBWEZxSVFJTUFRc2dBRkFnQlVLQWdJQ0FnSURBLy84QVZDQUZRb0NBZ0lDQWdNRC8vd0JSRzBVRVFDQUJRaG1JcDBILy8vOEJjVUdBZ0lEK0IzSWhBZ3dCQzBHQWdJRDhCeUVDSUFWQy8vLy8vLy8vdjcvQUFGWU5BRUVBSVFJZ0JVSXdpS2NpQkVHUi9nQkpEUUFnQTBFUWFpQUFJQUZDLy8vLy8vLy9QNE5DZ0lDQWdJQ0F3QUNFSWdVZ0JFR0IvZ0JyRUM4Z0F5QUFJQVZCZ2Y4QUlBUnJFSHdnQXlrRENDSUFRaG1JcHlFQ0lBTXBBd0FnQXlrREVDQURLUU1ZaEVJQVVxMkVJZ1ZRSUFCQy8vLy9ENE1pQUVLQWdJQUlWQ0FBUW9DQWdBaFJHMFVFUUNBQ1FRRnFJUUlNQVFzZ0JTQUFRb0NBZ0FpRmhFSUFVZzBBSUFKQkFYRWdBbW9oQWdzZ0EwRWdhaVFBSUFJZ0FVSWdpS2RCZ0lDQWdIaHhjcjRMZ1FRQ0EzOEJmZ0pBQWtBQ1FBSi9JQUFvQWdRaUFpQUFLQUpvUndSQUlBQWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBQVFFZ3NpQTBFcmF3NERBUUFCQUFzZ0EwRXdheUVCREFFTElBTkJMVVloQkFKQUlBRkZBbjhnQUNnQ0JDSUNJQUFvQW1oSEJFQWdBQ0FDUVFGcU5nSUVJQUl0QUFBTUFRc2dBQkFTQ3lJQ1FUQnJJZ0ZCQ2tseURRQWdBQ2tEY0VJQVV3MEFJQUFnQUNnQ0JFRUJhellDQkFzZ0FpRURDd0pBSUFGQkNra0VRRUVBSVFJRFFDQURJQUpCQ214cUlRRUNmeUFBS0FJRUlnSWdBQ2dDYUVjRVFDQUFJQUpCQVdvMkFnUWdBaTBBQUF3QkN5QUFFQklMSVFNZ0FVRXdheUVDSUFKQnpKbXo1Z0JJSUFOQk1Hc2lBVUVKVFhFTkFBc2dBcXdoQlFKQUlBRkJDazhOQUFOQUlBT3RJQVZDQ241OFFqQjlJUVVDZnlBQUtBSUVJZ0VnQUNnQ2FFY0VRQ0FBSUFGQkFXbzJBZ1FnQVMwQUFBd0JDeUFBRUJJTElnTkJNR3NpQVVFSlN3MEJJQVZDcm8rRjE4ZkM2Nk1CVXcwQUN3c2dBVUVLU1FSQUEwQUNmeUFBS0FJRUlnRWdBQ2dDYUVjRVFDQUFJQUZCQVdvMkFnUWdBUzBBQUF3QkN5QUFFQklMUVRCclFRcEpEUUFMQ3lBQUtRTndRZ0JaQkVBZ0FDQUFLQUlFUVFGck5nSUVDMElBSUFWOUlBVWdCQnNoQlF3QkMwS0FnSUNBZ0lDQWdJQi9JUVVnQUNrRGNFSUFVdzBBSUFBZ0FDZ0NCRUVCYXpZQ0JFS0FnSUNBZ0lDQWdJQi9Ed3NnQlF1Z01nTVFmd2QrQVh3akFFRXdheUlNSkFBQ1FDQUNRUUpOQkVBZ0FrRUNkQ0lDUVp3cGFpZ0NBQ0VQSUFKQmtDbHFLQUlBSVE0RFFBSi9JQUVvQWdRaUFpQUJLQUpvUndSQUlBRWdBa0VCYWpZQ0JDQUNMUUFBREFFTElBRVFFZ3NpQWhCd0RRQUxRUUVoQmdKQUFrQWdBa0VyYXc0REFBRUFBUXRCZjBFQklBSkJMVVliSVFZZ0FTZ0NCQ0lDSUFFb0FtaEhCRUFnQVNBQ1FRRnFOZ0lFSUFJdEFBQWhBZ3dCQ3lBQkVCSWhBZ3NDUUFKQUEwQWdCVUdLR21vc0FBQWdBa0VnY2tZRVFBSkFJQVZCQmtzTkFDQUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQ0VDREFFTElBRVFFaUVDQ3lBRlFRRnFJZ1ZCQ0VjTkFRd0NDd3NnQlVFRFJ3UkFJQVZCQ0VZTkFTQURSU0FGUVFSSmNnMENJQVZCQ0VZTkFRc2dBU2tEY0NJVVFnQlpCRUFnQVNBQktBSUVRUUZyTmdJRUN5QURSU0FGUVFSSmNnMEFJQlJDQUZNaEFnTkFJQUpGQkVBZ0FTQUJLQUlFUVFGck5nSUVDeUFGUVFGcklnVkJBMHNOQUFzTFFnQWhGQ01BUVJCcklnSWtBQUorSUFheVF3QUFnSCtVdkNJRFFmLy8vLzhIY1NJQlFZQ0FnQVJyUWYvLy8vY0hUUVJBSUFHdFFobUdRb0NBZ0lDQWdJREFQM3dNQVFzZ0E2MUNHWVpDZ0lDQWdJQ0F3UC8vQUlRZ0FVR0FnSUQ4QjA4TkFCcENBQ0FCUlEwQUdpQUNJQUd0UWdBZ0FXY2lBVUhSQUdvUUx5QUNLUU1BSVJRZ0Fpa0RDRUtBZ0lDQWdJREFBSVZCaWY4QUlBRnJyVUl3aG9RTElSVWdEQ0FVTndNQUlBd2dGU0FEUVlDQWdJQjRjYTFDSUlhRU53TUlJQUpCRUdva0FDQU1LUU1JSVJRZ0RDa0RBQ0VWREFJTEFrQUNRQUpBSUFVTkFFRUFJUVVEUUNBRlFjY2NhaXdBQUNBQ1FTQnlSdzBCQWtBZ0JVRUJTdzBBSUFFb0FnUWlBaUFCS0FKb1J3UkFJQUVnQWtFQmFqWUNCQ0FDTFFBQUlRSU1BUXNnQVJBU0lRSUxJQVZCQVdvaUJVRURSdzBBQ3d3QkN3SkFBa0FnQlE0RUFBRUJBZ0VMQWtBZ0FrRXdSdzBBQW44Z0FTZ0NCQ0lGSUFFb0FtaEhCRUFnQVNBRlFRRnFOZ0lFSUFVdEFBQU1BUXNnQVJBU0MwRmZjVUhZQUVZRVFDTUFRYkFEYXlJQ0pBQUNmeUFCS0FJRUlnVWdBU2dDYUVjRVFDQUJJQVZCQVdvMkFnUWdCUzBBQUF3QkN5QUJFQklMSVFVQ1FBSi9BMEFnQlVFd1J3UkFBa0FnQlVFdVJ3MEVJQUVvQWdRaUJTQUJLQUpvUmcwQUlBRWdCVUVCYWpZQ0JDQUZMUUFBREFNTEJTQUJLQUlFSWdVZ0FTZ0NhRWNFZjBFQklRb2dBU0FGUVFGcU5nSUVJQVV0QUFBRlFRRWhDaUFCRUJJTElRVU1BUXNMSUFFUUVnc2hCVUVCSVFRZ0JVRXdSdzBBQTBBZ0YwSUJmU0VYQW44Z0FTZ0NCQ0lGSUFFb0FtaEhCRUFnQVNBRlFRRnFOZ0lFSUFVdEFBQU1BUXNnQVJBU0N5SUZRVEJHRFFBTFFRRWhDZ3RDZ0lDQWdJQ0F3UDgvSVJVQ1FBTkFBa0FnQlVFZ2NpRUxBa0FDUUNBRlFUQnJJZ2hCQ2trTkFDQUZRUzVISUF0QjRRQnJRUVpQY1EwRUlBVkJMa2NOQUNBRURRSkJBU0VFSUJRaEZ3d0JDeUFMUWRjQWF5QUlJQVZCT1VvYklRVUNRQ0FVUWdkWEJFQWdCU0FKUVFSMGFpRUpEQUVMSUJSQ0hGY0VRQ0FDUVRCcUlBVVFRU0FDUVNCcUlCa2dGVUlBUW9DQWdJQ0FnTUQ5UHhBWUlBSkJFR29nQWlrRElDSVpJQUlwQXlnaUZTQUNLUU13SUFJcEF6Z1FHQ0FDSUJZZ0dDQUNLUU1RSUFJcEF4Z1FQQ0FDS1FNSUlSZ2dBaWtEQUNFV0RBRUxJQVZGSUFkeURRQWdBa0hRQUdvZ0dTQVZRZ0JDZ0lDQWdJQ0FnUDgvRUJnZ0FrRkFheUFXSUJnZ0Fpa0RVQ0FDS1FOWUVEd2dBaWtEU0NFWVFRRWhCeUFDS1FOQUlSWUxJQlJDQVh3aEZFRUJJUW9MSUFFb0FnUWlCU0FCS0FKb1J3Ui9JQUVnQlVFQmFqWUNCQ0FGTFFBQUJTQUJFQklMSVFVTUFRc0xRUzRoQlFzQ2ZpQUtSUVJBQWtBQ1FDQUJLUU53UWdCWkJFQWdBU0FCS0FJRUlnVkJBV3MyQWdRZ0EwVU5BU0FCSUFWQkFtczJBZ1FnQkVVTkFpQUJJQVZCQTJzMkFnUU1BZ3NnQXcwQkN5QUJRZ0FRVXdzZ0FrSGdBR29nQnJkRUFBQUFBQUFBQUFDaUVGMGdBaWtEWUNFV0lBSXBBMmdNQVFzZ0ZFSUhWd1JBSUJRaEZRTkFJQWxCQkhRaENTQVZRZ0Y4SWhWQ0NGSU5BQXNMQWtBQ1FBSkFJQVZCWDNGQjBBQkdCRUFnQVNBREVPVUNJaFZDZ0lDQWdJQ0FnSUNBZjFJTkF5QURCRUFnQVNrRGNFSUFXUTBDREFNTFFnQWhGaUFCUWdBUVUwSUFEQVFMUWdBaEZTQUJLUU53UWdCVERRSUxJQUVnQVNnQ0JFRUJhellDQkF0Q0FDRVZDeUFKUlFSQUlBSkI4QUJxSUFhM1JBQUFBQUFBQUFBQW9oQmRJQUlwQTNBaEZpQUNLUU40REFFTElCY2dGQ0FFRzBJQ2hpQVZmRUlnZlNJVVFRQWdEMnV0VlFSQVFkU0JBVUhFQURZQ0FDQUNRYUFCYWlBR0VFRWdBa0dRQVdvZ0Fpa0RvQUVnQWlrRHFBRkNmMEwvLy8vLy8vKy8vLzhBRUJnZ0FrR0FBV29nQWlrRGtBRWdBaWtEbUFGQ2YwTC8vLy8vLy8rLy8vOEFFQmdnQWlrRGdBRWhGaUFDS1FPSUFRd0JDeUFQUWVJQmE2d2dGRmNFUUNBSlFRQk9CRUFEUUNBQ1FhQURhaUFXSUJoQ0FFS0FnSUNBZ0lEQS83OS9FRHdnRmlBWVFvQ0FnSUNBZ0lEL1B4RGdBU0VCSUFKQmtBTnFJQllnR0NBV0lBSXBBNkFESUFGQkFFZ2lBeHNnR0NBQ0tRT29BeUFER3hBOElCUkNBWDBoRkNBQ0tRT1lBeUVZSUFJcEE1QURJUllnQ1VFQmRDQUJRUUJPY2lJSlFRQk9EUUFMQ3dKK0lCUWdENng5UWlCOEloV25JZ0ZCQUNBQlFRQktHeUFPSUJVZ0RxMVRHeUlCUWZFQVRnUkFJQUpCZ0FOcUlBWVFRU0FDS1FPSUF5RVhJQUlwQTRBRElSbENBQXdCQ3lBQ1FlQUNha0dRQVNBQmF4RGZBUkJkSUFKQjBBSnFJQVlRUVNBQ1FmQUNhaUFDS1FQZ0FpQUNLUVBvQWlBQ0tRUFFBaUlaSUFJcEE5Z0NJaGNRNndJZ0Fpa0QrQUloR2lBQ0tRUHdBZ3NoRlNBQ1FjQUNhaUFKSUFsQkFYRkZJQllnR0VJQVFnQVFlMEVBUnlBQlFTQkljWEVpQVdvUWtBRWdBa0d3QW1vZ0dTQVhJQUlwQThBQ0lBSXBBOGdDRUJnZ0FrR1FBbW9nQWlrRHNBSWdBaWtEdUFJZ0ZTQWFFRHdnQWtHZ0FtcENBQ0FXSUFFYlFnQWdHQ0FCR3lBWklCY1FHQ0FDUVlBQ2FpQUNLUU9nQWlBQ0tRT29BaUFDS1FPUUFpQUNLUU9ZQWhBOElBSkI4QUZxSUFJcEE0QUNJQUlwQTRnQ0lCVWdHaERlQVNBQ0tRUHdBU0lWSUFJcEEvZ0JJaGRDQUVJQUVIdEZCRUJCMUlFQlFjUUFOZ0lBQ3lBQ1FlQUJhaUFWSUJjZ0ZLY1E2Z0lnQWlrRDRBRWhGaUFDS1FQb0FRd0JDMEhVZ1FGQnhBQTJBZ0FnQWtIUUFXb2dCaEJCSUFKQndBRnFJQUlwQTlBQklBSXBBOWdCUWdCQ2dJQ0FnSUNBd0FBUUdDQUNRYkFCYWlBQ0tRUEFBU0FDS1FQSUFVSUFRb0NBZ0lDQWdNQUFFQmdnQWlrRHNBRWhGaUFDS1FPNEFRc2hGQ0FNSUJZM0F4QWdEQ0FVTndNWUlBSkJzQU5xSkFBZ0RDa0RHQ0VVSUF3cEF4QWhGUXdHQ3lBQktRTndRZ0JURFFBZ0FTQUJLQUlFUVFGck5nSUVDeUFCSVFVZ0JpRUpJQU1oQ2tFQUlRWkJBQ0VESXdCQmtNWUFheUlFSkFCQkFDQU9JQTlxSWhKcklSTUNRQUovQTBBZ0FrRXdSd1JBQWtBZ0FrRXVSdzBFSUFVb0FnUWlBU0FGS0FKb1JnMEFJQVVnQVVFQmFqWUNCQ0FCTFFBQURBTUxCU0FGS0FJRUlnRWdCU2dDYUVjRWYwRUJJUVlnQlNBQlFRRnFOZ0lFSUFFdEFBQUZRUUVoQmlBRkVCSUxJUUlNQVFzTElBVVFFZ3NoQWtFQklRY2dBa0V3UncwQUEwQWdGRUlCZlNFVUFuOGdCU2dDQkNJQklBVW9BbWhIQkVBZ0JTQUJRUUZxTmdJRUlBRXRBQUFNQVFzZ0JSQVNDeUlDUVRCR0RRQUxRUUVoQmdzZ0JFRUFOZ0tRQmdKK0FrQUNRQUpBQWtBQ1FDQUNRUzVHSWdGRklBSkJNR3NpQ0VFSlMzRkZCRUFEUUFKQUlBRkJBWEVFUUNBSFJRUkFJQlVoRkVFQklRY01BZ3NnQmtVaEFRd0VDeUFWUWdGOElSVWdBMEg4RDB3RVFDQU5JQlduSUFKQk1FWWJJUTBnQkVHUUJtb2dBMEVDZEdvaUFTQUxCSDhnQWlBQktBSUFRUXBzYWtFd2F3VWdDQXMyQWdCQkFTRUdRUUFnQzBFQmFpSUJJQUZCQ1VZaUFSc2hDeUFCSUFOcUlRTU1BUXNnQWtFd1JnMEFJQVFnQkNnQ2dFWkJBWEkyQW9CR1FkeVBBU0VOQ3dKL0lBVW9BZ1FpQVNBRktBSm9Sd1JBSUFVZ0FVRUJhallDQkNBQkxRQUFEQUVMSUFVUUVnc2lBa0V1UmlJQklBSkJNR3NpQ0VFS1NYSU5BQXNMSUJRZ0ZTQUhHeUVVSUFaRklBSkJYM0ZCeFFCSGNrVUVRQUpBSUFVZ0NoRGxBaUlXUW9DQWdJQ0FnSUNBZ0g5U0RRQWdDa1VOQlVJQUlSWWdCU2tEY0VJQVV3MEFJQVVnQlNnQ0JFRUJhellDQkFzZ0JrVU5BeUFVSUJaOElSUU1CUXNnQmtVaEFTQUNRUUJJRFFFTElBVXBBM0JDQUZNTkFDQUZJQVVvQWdSQkFXczJBZ1FMSUFGRkRRSUxRZFNCQVVFY05nSUFDMElBSVJVZ0JVSUFFRk5DQUF3QkN5QUVLQUtRQmlJQlJRUkFJQVFnQ2JkRUFBQUFBQUFBQUFDaUVGMGdCQ2tEQUNFVklBUXBBd2dNQVFzZ0ZDQVZVaUFWUWdsVmNpQU9RUjVNUVFBZ0FTQU9kaHR5UlFSQUlBUkJNR29nQ1JCQklBUkJJR29nQVJDUUFTQUVRUkJxSUFRcEF6QWdCQ2tET0NBRUtRTWdJQVFwQXlnUUdDQUVLUU1RSVJVZ0JDa0RHQXdCQ3lBUFFYNXRyU0FVVXdSQVFkU0JBVUhFQURZQ0FDQUVRZUFBYWlBSkVFRWdCRUhRQUdvZ0JDa0RZQ0FFS1FOb1FuOUMvLy8vLy8vL3YvLy9BQkFZSUFSQlFHc2dCQ2tEVUNBRUtRTllRbjlDLy8vLy8vLy92Ly8vQUJBWUlBUXBBMEFoRlNBRUtRTklEQUVMSUE5QjRnRnJyQ0FVVlFSQVFkU0JBVUhFQURZQ0FDQUVRWkFCYWlBSkVFRWdCRUdBQVdvZ0JDa0RrQUVnQkNrRG1BRkNBRUtBZ0lDQWdJREFBQkFZSUFSQjhBQnFJQVFwQTRBQklBUXBBNGdCUWdCQ2dJQ0FnSUNBd0FBUUdDQUVLUU53SVJVZ0JDa0RlQXdCQ3lBTEJFQWdDMEVJVEFSQUlBUkJrQVpxSUFOQkFuUnFJZ0VvQWdBaEJRTkFJQVZCQ213aEJTQUxRUUZxSWd0QkNVY05BQXNnQVNBRk5nSUFDeUFEUVFGcUlRTUxBa0FnRFNBVXB5SUhTaUFOUVFsT2NpQUhRUkZLY2cwQUlBZEJDVVlFUUNBRVFjQUJhaUFKRUVFZ0JFR3dBV29nQkNnQ2tBWVFrQUVnQkVHZ0FXb2dCQ2tEd0FFZ0JDa0R5QUVnQkNrRHNBRWdCQ2tEdUFFUUdDQUVLUU9nQVNFVklBUXBBNmdCREFJTElBZEJDRXdFUUNBRVFaQUNhaUFKRUVFZ0JFR0FBbW9nQkNnQ2tBWVFrQUVnQkVId0FXb2dCQ2tEa0FJZ0JDa0RtQUlnQkNrRGdBSWdCQ2tEaUFJUUdDQUVRZUFCYWtFQUlBZHJRUUowUVpBcGFpZ0NBQkJCSUFSQjBBRnFJQVFwQS9BQklBUXBBL2dCSUFRcEErQUJJQVFwQStnQkVPa0NJQVFwQTlBQklSVWdCQ2tEMkFFTUFnc2dEaUFIUVgxc2FrRWJhaUlCUVI1TVFRQWdCQ2dDa0FZaUFpQUJkaHNOQUNBRVFlQUNhaUFKRUVFZ0JFSFFBbW9nQWhDUUFTQUVRY0FDYWlBRUtRUGdBaUFFS1FQb0FpQUVLUVBRQWlBRUtRUFlBaEFZSUFSQnNBSnFJQWRCQW5SQnlDaHFLQUlBRUVFZ0JFR2dBbW9nQkNrRHdBSWdCQ2tEeUFJZ0JDa0RzQUlnQkNrRHVBSVFHQ0FFS1FPZ0FpRVZJQVFwQTZnQ0RBRUxBMEFnQkVHUUJtb2dBeUlDUVFGcklnTkJBblJxS0FJQVJRMEFDMEVBSVFzQ1FDQUhRUWx2SWdGRkJFQkJBQ0VCREFFTElBRWdBVUVKYWlBSFFRQk9HeUVEQWtBZ0FrVUVRRUVBSVFGQkFDRUNEQUVMUVlDVTY5d0RRUUFnQTJ0QkFuUkJrQ2xxS0FJQUlnWnRJUXBCQUNFSVFRQWhCVUVBSVFFRFFDQUVRWkFHYWlBRlFRSjBhaUlOSUFnZ0RTZ0NBQ0lOSUFadUloQnFJZ2cyQWdBZ0FVRUJha0gvRDNFZ0FTQUlSU0FCSUFWR2NTSUlHeUVCSUFkQkNXc2dCeUFJR3lFSElBb2dEU0FHSUJCc2Eyd2hDQ0FGUVFGcUlnVWdBa2NOQUFzZ0NFVU5BQ0FFUVpBR2FpQUNRUUowYWlBSU5nSUFJQUpCQVdvaEFnc2dCeUFEYTBFSmFpRUhDd05BQWtBZ0IwRWtUZ1JBSUFkQkpFY05BU0FFUVpBR2FpQUJRUUowYWlnQ0FFSFI2ZmtFVHcwQkN5QUNRZjhQYWlFR1FRQWhDQU5BSUFpdElBUkJrQVpxSUFaQi93OXhJZ05CQW5ScUlnWTFBZ0JDSFlaOEloUkNnWlRyM0FOVUJIOUJBQVVnRkNBVVFvQ1U2OXdEZ0NJVlFvQ1U2OXdEZm4waEZDQVZwd3NoQ0NBR0lCU25JZ1kyQWdBZ0FpQUNJQUlnQXlBR0d5QUJJQU5HR3lBRElBSkJBV3RCL3c5eFJ4c2hBaUFEUVFGcklRWWdBU0FEUncwQUN5QUxRUjFySVFzZ0NFVU5BU0FDSUFGQkFXdEIvdzl4SWdGR0JFQWdCRUdRQm1vaUF5QUNRZjRQYWtIL0QzRkJBblJxSWdZZ0JpZ0NBQ0FDUVFGclFmOFBjU0lDUVFKMElBTnFLQUlBY2pZQ0FBc2dCMEVKYWlFSElBUkJrQVpxSUFGQkFuUnFJQWcyQWdBTUFRc0xBa0FEUUNBQ1FRRnFRZjhQY1NFRElBUkJrQVpxSUFKQkFXdEIvdzl4UVFKMGFpRUlBMEFnQVNFR1FRQWhCUUpBQWtBRFFBSkFJQVVnQm1wQi93OXhJZ0VnQWtZTkFDQUVRWkFHYWlBQlFRSjBhaWdDQUNJQklBVkJBblJCNENocUtBSUFJZ3BKRFFBZ0FTQUtTdzBDSUFWQkFXb2lCVUVFUncwQkN3c2dCMEVrUncwQVFnQWhGRUVBSVFWQ0FDRVZBMEFnQWlBRklBWnFRZjhQY1NJQlJnUkFJQUpCQVdwQi93OXhJZ0pCQW5RZ0JHcEJBRFlDakFZTElBUkJnQVpxSUJRZ0ZVSUFRb0NBZ0lEbG1yZU93QUFRR0NBRVFmQUZhaUFFUVpBR2FpQUJRUUowYWlnQ0FCQ1FBU0FFUWVBRmFpQUVLUU9BQmlBRUtRT0lCaUFFS1FQd0JTQUVLUVA0QlJBOElBUXBBK2dGSVJVZ0JDa0Q0QVVoRkNBRlFRRnFJZ1ZCQkVjTkFBc2dCRUhRQldvZ0NSQkJJQVJCd0FWcUlCUWdGU0FFS1FQUUJTQUVLUVBZQlJBWUlBUXBBOGdGSVJWQ0FDRVVJQVFwQThBRklSWWdDMEh4QUdvaUJ5QVBheUlEUVFBZ0EwRUFTaHNnRGlBRElBNUlJZ1ViSWdGQjhBQk1EUUVNQkF0QkNVRUJJQWRCTFVvYklnb2dDMm9oQ3lBR0lBSWlBVVlOQVVHQWxPdmNBeUFLZGlFTlFYOGdDblJCZjNNaEVFRUFJUVVnQmlFQkEwQWdCRUdRQm1vZ0JrRUNkR29pRVNBRklCRW9BZ0FpRVNBS2Rtb2lCVFlDQUNBQlFRRnFRZjhQY1NBQklBVkZJQUVnQmtaeElnVWJJUUVnQjBFSmF5QUhJQVViSVFjZ0VDQVJjU0FOYkNFRklBWkJBV3BCL3c5eElnWWdBa2NOQUFzZ0JVVU5BU0FCSUFOSEJFQWdCRUdRQm1vZ0FrRUNkR29nQlRZQ0FDQURJUUlNQXdzZ0NDQUlLQUlBUVFGeU5nSUFJQU1oQVF3QkN3c0xJQVJCa0FWcVFlRUJJQUZyRU44QkVGMGdCRUd3QldvZ0JDa0RrQVVnQkNrRG1BVWdGaUFWRU9zQ0lBUXBBN2dGSVJrZ0JDa0RzQVVoR0NBRVFZQUZha0h4QUNBQmF4RGZBUkJkSUFSQm9BVnFJQllnRlNBRUtRT0FCU0FFS1FPSUJSRG5BaUFFUWZBRWFpQVdJQlVnQkNrRG9BVWlGQ0FFS1FPb0JTSVhFTjRCSUFSQjRBUnFJQmdnR1NBRUtRUHdCQ0FFS1FQNEJCQThJQVFwQStnRUlSVWdCQ2tENEFRaEZnc0NRQ0FHUVFScVFmOFBjU0lLSUFKR0RRQUNRQ0FFUVpBR2FpQUtRUUowYWlnQ0FDSUtRZi9KdGU0QlRRUkFJQXBGSUFaQkJXcEIvdzl4SUFKR2NRMEJJQVJCOEFOcUlBbTNSQUFBQUFBQUFOQS9vaEJkSUFSQjRBTnFJQlFnRnlBRUtRUHdBeUFFS1FQNEF4QThJQVFwQStnRElSY2dCQ2tENEFNaEZBd0JDeUFLUVlES3RlNEJSd1JBSUFSQjBBUnFJQW0zUkFBQUFBQUFBT2cvb2hCZElBUkJ3QVJxSUJRZ0Z5QUVLUVBRQkNBRUtRUFlCQkE4SUFRcEE4Z0VJUmNnQkNrRHdBUWhGQXdCQ3lBSnR5RWJJQUlnQmtFRmFrSC9EM0ZHQkVBZ0JFR1FCR29nRzBRQUFBQUFBQURnUDZJUVhTQUVRWUFFYWlBVUlCY2dCQ2tEa0FRZ0JDa0RtQVFRUENBRUtRT0lCQ0VYSUFRcEE0QUVJUlFNQVFzZ0JFR3dCR29nRzBRQUFBQUFBQURvUDZJUVhTQUVRYUFFYWlBVUlCY2dCQ2tEc0FRZ0JDa0R1QVFRUENBRUtRT29CQ0VYSUFRcEE2QUVJUlFMSUFGQjd3QktEUUFnQkVIUUEyb2dGQ0FYUWdCQ2dJQ0FnSUNBd1A4L0VPY0NJQVFwQTlBRElBUXBBOWdEUWdCQ0FCQjdEUUFnQkVIQUEyb2dGQ0FYUWdCQ2dJQ0FnSUNBd1A4L0VEd2dCQ2tEeUFNaEZ5QUVLUVBBQXlFVUN5QUVRYkFEYWlBV0lCVWdGQ0FYRUR3Z0JFR2dBMm9nQkNrRHNBTWdCQ2tEdUFNZ0dDQVpFTjRCSUFRcEE2Z0RJUlVnQkNrRG9BTWhGZ0pBUVg0Z0Vtc2dCMEgvLy8vL0IzRk9EUUFnQkNBVlF2Ly8vLy8vLy8vLy93Q0ROd09ZQXlBRUlCWTNBNUFESUFSQmdBTnFJQllnRlVJQVFvQ0FnSUNBZ0lEL1B4QVlJQVFwQTVBREloZ2dCQ2tEbUFNaUdVS0FnSUNBZ0lDQXVNQUFFT0FCSVFJZ0ZTQUVLUU9JQXlBQ1FRQklJZ1liSVJVZ0ZpQUVLUU9BQXlBR0d5RVdJQk1nQ3lBQ1FRQk9haUlMUWU0QWFrNEVRQ0FGSUFVZ0FTQURSM0VnR0NBWlFvQ0FnSUNBZ0lDNHdBQVE0QUZCQUVnYlFRRkhEUUVnRkNBWFFnQkNBQkI3UlEwQkMwSFVnUUZCeEFBMkFnQUxJQVJCOEFKcUlCWWdGU0FMRU9vQ0lBUXBBL0FDSVJVZ0JDa0QrQUlMSVJRZ0RDQVZOd01nSUF3Z0ZEY0RLQ0FFUVpER0FHb2tBQ0FNS1FNb0lSUWdEQ2tESUNFVkRBUUxJQUVwQTNCQ0FGa0VRQ0FCSUFFb0FnUkJBV3MyQWdRTERBRUxBa0FDZnlBQktBSUVJZ0lnQVNnQ2FFY0VRQ0FCSUFKQkFXbzJBZ1FnQWkwQUFBd0JDeUFCRUJJTFFTaEdCRUJCQVNFRkRBRUxRb0NBZ0lDQWdPRC8vd0FoRkNBQktRTndRZ0JURFFNZ0FTQUJLQUlFUVFGck5nSUVEQU1MQTBBQ2Z5QUJLQUlFSWdJZ0FTZ0NhRWNFUUNBQklBSkJBV28yQWdRZ0FpMEFBQXdCQ3lBQkVCSUxJZ0pCTUd0QkNra2dBa0hCQUd0QkdrbHlJQUpCM3dCR2NrVWdBa0hoQUd0QkdrOXhSUVJBSUFWQkFXb2hCUXdCQ3d0Q2dJQ0FnSUNBNFAvL0FDRVVJQUpCS1VZTkFpQUJLUU53SWhkQ0FGa0VRQ0FCSUFFb0FnUkJBV3MyQWdRTEFrQWdBd1JBSUFVTkFRd0VDd3dCQ3dOQUlBVkJBV3NoQlNBWFFnQlpCRUFnQVNBQktBSUVRUUZyTmdJRUN5QUZEUUFMREFJTFFkU0JBVUVjTmdJQUlBRkNBQkJUQzBJQUlSUUxJQUFnRlRjREFDQUFJQlEzQXdnZ0RFRXdhaVFBQzhvR0FnUi9BMzRqQUVHQUFXc2lCU1FBQWtBQ1FBSkFJQU1nQkVJQVFnQVFlMFVOQUFKL0lBUkMvLy8vLy8vL1A0TWhDUUovSUFSQ01JaW5RZi8vQVhFaUJrSC8vd0ZIQkVCQkJDQUdEUUVhUVFKQkF5QURJQW1FVUJzTUFnc2dBeUFKaEZBTEMwVU5BQ0FDUWpDSXB5SUlRZi8vQVhFaUJrSC8vd0ZIRFFFTElBVkJFR29nQVNBQ0lBTWdCQkFZSUFVZ0JTa0RFQ0lCSUFVcEF4Z2lBaUFCSUFJUTZRSWdCU2tEQ0NFQ0lBVXBBd0FoQkF3QkN5QUJJQUpDLy8vLy8vLy9QNE1nQnExQ01JYUVJZ29nQXlBRVF2Ly8vLy8vL3orRElBUkNNSWluUWYvL0FYRWlCNjFDTUlhRUlna1FlMEVBVEFSQUlBRWdDaUFESUFrUWV3UkFJQUVoQkF3Q0N5QUZRZkFBYWlBQklBSkNBRUlBRUJnZ0JTa0RlQ0VDSUFVcEEzQWhCQXdCQ3lBR0JINGdBUVVnQlVIZ0FHb2dBU0FLUWdCQ2dJQ0FnSUNBd0x2QUFCQVlJQVVwQTJnaUNrSXdpS2RCK0FCcklRWWdCU2tEWUFzaEJDQUhSUVJBSUFWQjBBQnFJQU1nQ1VJQVFvQ0FnSUNBZ01DN3dBQVFHQ0FGS1FOWUlnbENNSWluUWZnQWF5RUhJQVVwQTFBaEF3c2dDVUwvLy8vLy8vOC9nMEtBZ0lDQWdJREFBSVFoQ1NBS1F2Ly8vLy8vL3orRFFvQ0FnSUNBZ01BQWhDRUtJQVlnQjBvRVFBTkFBbjRnQ2lBSmZTQURJQVJXclgwaUMwSUFXUVJBSUFzZ0JDQURmU0lFaEZBRVFDQUZRU0JxSUFFZ0FrSUFRZ0FRR0NBRktRTW9JUUlnQlNrRElDRUVEQVVMSUF0Q0FZWWdCRUkvaUlRTUFRc2dDa0lCaGlBRVFqK0loQXNoQ2lBRVFnR0dJUVFnQmtFQmF5SUdJQWRLRFFBTElBY2hCZ3NDUUNBS0lBbDlJQU1nQkZhdGZTSUpRZ0JUQkVBZ0NpRUpEQUVMSUFrZ0JDQURmU0lFaEVJQVVnMEFJQVZCTUdvZ0FTQUNRZ0JDQUJBWUlBVXBBemdoQWlBRktRTXdJUVFNQVFzZ0NVTC8vLy8vLy84L1dBUkFBMEFnQkVJL2lDRUJJQVpCQVdzaEJpQUVRZ0dHSVFRZ0FTQUpRZ0dHaENJSlFvQ0FnSUNBZ01BQVZBMEFDd3NnQ0VHQWdBSnhJUWNnQmtFQVRBUkFJQVZCUUdzZ0JDQUpRdi8vLy8vLy96K0RJQVpCK0FCcUlBZHlyVUl3aG9SQ0FFS0FnSUNBZ0lEQXd6OFFHQ0FGS1FOSUlRSWdCU2tEUUNFRURBRUxJQWxDLy8vLy8vLy9QNE1nQmlBSGNxMUNNSWFFSVFJTElBQWdCRGNEQUNBQUlBSTNBd2dnQlVHQUFXb2tBQXN5QUNBQVFmOEJjU0lBSUFFUTdBSWlBVUYvYzNGQkFYUWdBQ0FCYzJzaUFFRnFjVUVCZENBQVFSVnphMEVZZEVFWWRRdXFEd0lGZnc1K0l3QkIwQUpySWdVa0FDQUVRdi8vLy8vLy96K0RJUXNnQWtMLy8vLy8vLzgvZ3lFS0lBSWdCSVZDZ0lDQWdJQ0FnSUNBZjRNaERTQUVRakNJcDBILy93RnhJUWdDUUFKQUlBSkNNSWluUWYvL0FYRWlDVUVCYTBIOS93Rk5CRUFnQ0VFQmEwSCsvd0ZKRFFFTElBRlFJQUpDLy8vLy8vLy8vLy8vQUlNaURFS0FnSUNBZ0lEQS8vOEFWQ0FNUW9DQWdJQ0FnTUQvL3dCUkcwVUVRQ0FDUW9DQWdJQ0FnQ0NFSVEwTUFnc2dBMUFnQkVMLy8vLy8vLy8vLy84QWd5SUNRb0NBZ0lDQWdNRC8vd0JVSUFKQ2dJQ0FnSUNBd1AvL0FGRWJSUVJBSUFSQ2dJQ0FnSUNBSUlRaERTQURJUUVNQWdzZ0FTQU1Rb0NBZ0lDQWdNRC8vd0NGaEZBRVFDQURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRZ0FoQVVLQWdJQ0FnSURnLy84QUlRME1Bd3NnRFVLQWdJQ0FnSURBLy84QWhDRU5RZ0FoQVF3Q0N5QURJQUpDZ0lDQWdJQ0F3UC8vQUlXRVVBUkFRZ0FoQVF3Q0N5QUJJQXlFVUFSQVFvQ0FnSUNBZ09ELy93QWdEU0FDSUFPRVVCc2hEVUlBSVFFTUFnc2dBaUFEaEZBRVFDQU5Rb0NBZ0lDQWdNRC8vd0NFSVExQ0FDRUJEQUlMSUF4Qy8vLy8vLy8vUDFnRVFDQUZRY0FDYWlBQklBb2dBU0FLSUFwUUlnWWJlU0FHUVFaMHJYeW5JZ1pCRDJzUUwwRVFJQVpySVFZZ0JTa0R5QUloQ2lBRktRUEFBaUVCQ3lBQ1F2Ly8vLy8vL3o5V0RRQWdCVUd3QW1vZ0F5QUxJQU1nQ3lBTFVDSUhHM2tnQjBFR2RLMThweUlIUVE5ckVDOGdCaUFIYWtFUWF5RUdJQVVwQTdnQ0lRc2dCU2tEc0FJaEF3c2dCVUdnQW1vZ0MwS0FnSUNBZ0lEQUFJUWlFa0lQaGlBRFFqR0loQ0lDUWdCQ2dJQ0FnTERtdklMMUFDQUNmU0lFUWdBUUt5QUZRWkFDYWtJQUlBVXBBNmdDZlVJQUlBUkNBQkFySUFWQmdBSnFJQVVwQTVnQ1FnR0dJQVVwQTVBQ1FqK0loQ0lFUWdBZ0FrSUFFQ3NnQlVId0FXb2dCRUlBUWdBZ0JTa0RpQUo5UWdBUUt5QUZRZUFCYWlBRktRUDRBVUlCaGlBRktRUHdBVUkvaUlRaUJFSUFJQUpDQUJBcklBVkIwQUZxSUFSQ0FFSUFJQVVwQStnQmZVSUFFQ3NnQlVIQUFXb2dCU2tEMkFGQ0FZWWdCU2tEMEFGQ1A0aUVJZ1JDQUNBQ1FnQVFLeUFGUWJBQmFpQUVRZ0JDQUNBRktRUElBWDFDQUJBcklBVkJvQUZxSUFKQ0FDQUZLUU80QVVJQmhpQUZLUU93QVVJL2lJUkNBWDBpQWtJQUVDc2dCVUdRQVdvZ0EwSVBoa0lBSUFKQ0FCQXJJQVZCOEFCcUlBSkNBRUlBSUFVcEE2Z0JJQVVwQTZBQklnd2dCU2tEbUFGOElnUWdERlN0ZkNBRVFnRldyWHg5UWdBUUt5QUZRWUFCYWtJQklBUjlRZ0FnQWtJQUVDc2dCaUFKSUFocmFpRUdBbjhnQlNrRGNDSVRRZ0dHSWc0Z0JTa0RpQUVpRDBJQmhpQUZLUU9BQVVJL2lJUjhJaEJDNSt3QWZTSVVRaUNJSWdJZ0NrS0FnSUNBZ0lEQUFJUWlGVUlmaUVMLy8vLy9ENE1pQkg0aUVTQUJRZ0dHSWd4Q0lJZ2lDeUFRSUJSV3JTQU9JQkJXclNBRktRTjRRZ0dHSUJOQ1A0aUVJQTlDUDRoOGZIeENBWDBpRTBJZ2lDSVFmbndpRGlBUlZLMGdEaUFPSUJOQy8vLy8vdytESWhNZ0FVSS9pQ0lXSUFwQ0FZYUVRdi8vLy84UGd5SUtmbndpRGxhdGZDQUVJQkIrZkNBRUlCTitJaEVnQ2lBUWZud2lEeUFSVksxQ0lJWWdEMElnaUlSOElBNGdEaUFQUWlDR2ZDSU9WcTE4SUE0Z0RpQVVRdi8vLy84UGd5SVVJQXArSWhFZ0FpQUxmbndpRHlBUlZLMGdEeUFQSUJNZ0RFTCsvLy8vRDRNaUVYNThJZzlXclh4OElnNVdyWHdnRGlBRUlCUitJaGNnRUNBUmZud2lCQ0FDSUFwK2ZDSUtJQXNnRTM1OEloQkNJSWdnQ2lBUVZxMGdCQ0FYVkswZ0JDQUtWcTE4ZkVJZ2hvUjhJZ1FnRGxTdGZDQUVJQThnQWlBUmZpSUNJQXNnRkg1OElndENJSWdnQWlBTFZxMUNJSWFFZkNJQ0lBOVVyU0FDSUJCQ0lJWjhJQUpVclh4OElnSWdCRlN0ZkNJRVF2Ly8vLy8vLy84QVdBUkFJQlZDQVlZZ0ZvUWhGU0FGUWRBQWFpQUNJQVFnQXlBU0VDc2dBVUl4aGlBRktRTllmU0FGS1FOUUlnRkNBRkt0ZlNFS1FnQWdBWDBoQ3lBR1FmNy9BR29NQVFzZ0JVSGdBR29nQkVJL2hpQUNRZ0dJaENJQ0lBUkNBWWdpQkNBRElCSVFLeUFCUWpDR0lBVXBBMmg5SUFVcEEyQWlERUlBVXExOUlRcENBQ0FNZlNFTElBRWhEQ0FHUWYvL0FHb0xJZ1pCLy84QlRnUkFJQTFDZ0lDQWdJQ0F3UC8vQUlRaERVSUFJUUVNQVFzQ2ZpQUdRUUJLQkVBZ0NrSUJoaUFMUWorSWhDRUtJQVJDLy8vLy8vLy9QNE1nQnExQ01JYUVJUXdnQzBJQmhnd0JDeUFHUVk5L1RBUkFRZ0FoQVF3Q0N5QUZRVUJySUFJZ0JFRUJJQVpyRUh3Z0JVRXdhaUFNSUJVZ0JrSHdBR29RTHlBRlFTQnFJQU1nRWlBRktRTkFJZ0lnQlNrRFNDSU1FQ3NnQlNrRE9DQUZLUU1vUWdHR0lBVXBBeUFpQVVJL2lJUjlJQVVwQXpBaUJDQUJRZ0dHSWdGVXJYMGhDaUFFSUFGOUN5RUVJQVZCRUdvZ0F5QVNRZ05DQUJBcklBVWdBeUFTUWdWQ0FCQXJJQXdnQWlBQ0lBTWdBa0lCZ3lJQklBUjhJZ05VSUFvZ0FTQURWcTE4SWdFZ0VsWWdBU0FTVVJ1dGZDSUNWcTE4SWdRZ0FpQUNJQVJDZ0lDQWdJQ0F3UC8vQUZRZ0F5QUZLUU1RVmlBQklBVXBBeGdpQkZZZ0FTQUVVUnR4clh3aUFsYXRmQ0lFSUFJZ0JFS0FnSUNBZ0lEQS8vOEFWQ0FESUFVcEF3QldJQUVnQlNrRENDSURWaUFCSUFOUkczR3RmQ0lCSUFKVXJYd2dEWVFoRFFzZ0FDQUJOd01BSUFBZ0RUY0RDQ0FGUWRBQ2FpUUFDNzhDQVFGL0l3QkIwQUJySWdRa0FBSkFJQU5CZ0lBQlRnUkFJQVJCSUdvZ0FTQUNRZ0JDZ0lDQWdJQ0FnUC8vQUJBWUlBUXBBeWdoQWlBRUtRTWdJUUVnQTBILy93RklCRUFnQTBILy93QnJJUU1NQWdzZ0JFRVFhaUFCSUFKQ0FFS0FnSUNBZ0lDQS8vOEFFQmdnQTBIOS93SWdBMEg5L3dKSUcwSCsvd0ZySVFNZ0JDa0RHQ0VDSUFRcEF4QWhBUXdCQ3lBRFFZR0FmMG9OQUNBRVFVQnJJQUVnQWtJQVFvQ0FnSUNBZ0lBNUVCZ2dCQ2tEU0NFQ0lBUXBBMEFoQVNBRFFmU0Fma29FUUNBRFFZMy9BR29oQXd3QkN5QUVRVEJxSUFFZ0FrSUFRb0NBZ0lDQWdJQTVFQmdnQTBIb2dYMGdBMEhvZ1gxS0cwR2EvZ0ZxSVFNZ0JDa0RPQ0VDSUFRcEF6QWhBUXNnQkNBQklBSkNBQ0FEUWYvL0FHcXRRakNHRUJnZ0FDQUVLUU1JTndNSUlBQWdCQ2tEQURjREFDQUVRZEFBYWlRQUN6VUFJQUFnQVRjREFDQUFJQUpDLy8vLy8vLy9QNE1nQkVJd2lLZEJnSUFDY1NBQ1FqQ0lwMEgvL3dGeGNxMUNNSWFFTndNSUM0NEJBUU4vSXdCQkVHc2hBUU5BUWV5Y3I5OERJUUlDUUFOQUlBSkIzYmJodkFaR0RRRWdBa0dXejhLK0JFY0VRQ0FDUWV5Y3I5OERSdzBCSUFFZ0FEWUNEQ0FCSUFNMkFnaEJscy9DdmdSQjNiYmh2QVlnQVNnQ0RCc2hBZ3dCQ3dzZ0FTZ0NDQ0lBUVFGMFFRSnhJQUJCQVhOcUlRTWdBU2dDRENBQktBSU1RUUZyY1NFQURBRUxDeUFCS0FJSUN5d0FJQUFvQWdBYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBZ0FCQ0pBV29hSUFBb0FnQWdBQkNGQVdvYUN3Y0FJQUVnQUdzTENRQWdBQ0FCRU80Q0N5c0JBWDhnQUNnQ0FDSUJCRUFnQVJEN0FrRi9FRjVGQkVBZ0FDZ0NBRVVQQ3lBQVFRQTJBZ0FMUVFFTEt3RUJmeUFBS0FJQUlnRUVRQ0FCRUlBRFFYOFFYa1VFUUNBQUtBSUFSUThMSUFCQkFEWUNBQXRCQVFzTkFFRUFJQUFnQUVGL0VGNGJDNDBCQVFSL0l3QkJFR3NpQlNRQUlBRWdBaER2QWlJRVFXOU5CRUFDUUNBRVFRcE5CRUFnQUNBRUVEb2dBQ0VEREFFTElBQWdCQkNSQVVFQmFpSUdFRjhpQXhCTklBQWdCaEJNSUFBZ0JCQTVDd05BSUFFZ0FrY0VRQ0FESUFFUU5DQURRUUZxSVFNZ0FVRUJhaUVCREFFTEN5QUZRUUE2QUE4Z0F5QUZRUTlxRURRZ0JVRVFhaVFBRHdzUUZ3QUw1UVFCQjM4Z0FDZ0NCQ0FBRUVNb0FnQkhCRUFqQUVFUWF5SUNKQUFnQWlBQU5nSUFJQUlnQUNnQ0JDSUROZ0lFSUFJZ0EwRUJhallDQ0NBQUVFTWdBaWdDQkNBQkVJd0NJQUlnQWlnQ0JFRUJhallDQkNBQ0VJa0NJQUpCRUdva0FBOExJd0JCSUdzaUJ5UUFJQUFRUXlJSUFuOGdCMEVJYWlFQ0FuOGdBQkNKQVVFQmFpRUdJd0JCRUdzaUJTUUFJQVVnQmpZQ0RDTUFRUkJySWdRa0FDQUFFRU1hSUFSQmZ6WUNEQ0FFUWYvLy8vOEhOZ0lJSUFSQkRHb2dCRUVJYWhDaUFTZ0NBQ0VESUFSQkVHb2tBQ0FESUFaUEJFQWdBQkNGQVNJRUlBTkJBWFpKQkVBZ0JTQUVRUUYwTmdJSUlBVkJDR29nQlVFTWFoQjJLQUlBSVFNTElBVkJFR29rQUNBRERBRUxRYWNiRUpZQ0FBc2hCU0FBRUlrQklRWkJBQ0VESXdCQkVHc2lCQ1FBSUFSQkFEWUNEQ0FDUVF4cUlBUkJER29nQ0JDRUFpQUZCRUFnQWlnQ0VCb2dCUkJmSVFNTElBSWdBellDQUNBQ0lBTWdCbW9pQmpZQ0NDQUNJQVkyQWdRZ0FoQ0RBU0FESUFWcU5nSUFJQVJCRUdva0FDQUNLQUlJQ3lBQkVJd0NJQUlnQWlnQ0NFRUJhallDQ0NBQUVPMENJQUFRUXlBQUtBSUFJQUFvQWdRZ0FrRUVhaUlCRUlNQ0lBQWdBUkIxSUFCQkJHb2dBa0VJYWhCMUlBQVFReUFDRUlNQkVIVWdBaUFDS0FJRU5nSUFJQUFRaVFFYUlBQW9BZ0FhSUFBb0FnQWdBQkNGQVdvYUlBQW9BZ0FnQUJDRkFXb2FJQUFvQWdBYUlBSW9BZ1FpQUNBQ0tBSUlSd1JBQTBBZ0FpZ0NFQm9nQWlBQ0tBSUlRUUZyTmdJSUlBSW9BZ2dnQUVjTkFBc0xJQUlvQWdBRVFDQUNLQUlRR2lBQ0tBSUFJUUFnQWhDREFTZ0NBQ0FDS0FJQWF4b2dBQkFRQ3lBSFFTQnFKQUFMRHdBZ0FDQUFLQUlZSUFGcU5nSVlDeGNBSUFBZ0FqWUNIQ0FBSUFFMkFoUWdBQ0FCTmdJWUMxWUJBbjhDUUNBQUtBSUFJZ0pGRFFBQ2Z5QUNLQUlZSWdNZ0FpZ0NIRVlFUUNBQ0lBRWdBaWdDQUNnQ05CRUNBQXdCQ3lBQ0lBTkJCR28yQWhnZ0F5QUJOZ0lBSUFFTFFYOFFYa1VOQUNBQVFRQTJBZ0FMQ3lZQkFYOENRQ0FBS0FJQUlnSkZEUUFnQWlBQkVQNENRWDhRWGtVTkFDQUFRUUEyQWdBTEN3a0FJQUFRNUFFUUVBc3hBUUYvSUFBb0Fnd2lBU0FBS0FJUVJnUkFJQUFnQUNnQ0FDZ0NLQkVBQUE4TElBQWdBVUVFYWpZQ0RDQUJLQUlBQ3ljQkFYOGdBQ2dDRENJQklBQW9BaEJHQkVBZ0FDQUFLQUlBS0FJa0VRQUFEd3NnQVNnQ0FBc1FBQ0FBRVBBQ0lBRVE4QUp6UVFGekM0c0VBUVovSXdCQklHc2lBaVFBSUFKQkFEWUNIQ01BUVNCcklnUWtBQ0FDUVJocUlnWkJBRG9BQUNBQUlBQW9BZ0JCREdzb0FnQnFFTGtCSVFVZ0FDQUFLQUlBUVF4cktBSUFhaUVEQWtBZ0JRUkFJQU1vQWtnRVFDQUFJQUFvQWdCQkRHc29BZ0JxS0FKSUVJWURDd0pBSUFBZ0FDZ0NBRUVNYXlnQ0FHb29BZ1JCZ0NCeFJRMEFJQVJCR0dvaUF5QUFJQUFvQWdCQkRHc29BZ0JxRUE4Z0F4QXlJUWNnQXhBT0lBUkJFR29nQUJEQUFTRURJQVJCQ0dvUWhRTWhCUU5BQWtBZ0F5QUZFREZGRFFBZ0IwR0F3QUFnQXhBZkVFUkZEUUFnQXhBaUdnd0JDd3NnQXlBRkVDWkZEUUFnQUNBQUtBSUFRUXhyS0FJQWFrRUdFSUFCQ3lBR0lBQWdBQ2dDQUVFTWF5Z0NBR29RdVFFNkFBQU1BUXNnQTBFRUVJQUJDeUFFUVNCcUpBQWdCaTBBQUFSQUlBSkJFR29pQkNBQUlBQW9BZ0JCREdzb0FnQnFFQThnQkVISWh3RVFaQ0VESUFKQkNHb2dBQkRBQVNFR0lBSVFoUU1oQlNBRElBWW9BZ0FnQlNnQ0FDQUFJQUFvQWdCQkRHc29BZ0JxSUFKQkhHb2dBa0VVYWlBREtBSUFLQUlRRVFVQUdpQUVFQTRnQVFKL0lBSW9BaFJCZ0lDQWdIaElCRUFnQWlBQ0tBSWNRUVJ5TmdJY1FZQ0FnSUI0REFFTElBSW9BaFJCLy8vLy93ZEtCRUFnQWlBQ0tBSWNRUVJ5TmdJY1FmLy8vLzhIREFFTElBSW9BaFFMTmdJQUlBQWdBQ2dDQUVFTWF5Z0NBR29nQWlnQ0hCQ0FBUXNnQWtFZ2FpUUFDenNCQVg4Z0FDZ0NHQ0lDSUFBb0FoeEdCRUFnQUNBQkVHVWdBQ2dDQUNnQ05CRUNBQThMSUFBZ0FrRUJhallDR0NBQ0lBRTZBQUFnQVJCbEN6TUJBWDhnQUNnQ0RDSUJJQUFvQWhCR0JFQWdBQ0FBS0FJQUtBSW9FUUFBRHdzZ0FDQUJRUUZxTmdJTUlBRXNBQUFRWlFzcEFRRi9JQUFvQWd3aUFTQUFLQUlRUmdSQUlBQWdBQ2dDQUNnQ0pCRUFBQThMSUFFc0FBQVFaUXNRQUNBQUVQRUNJQUVROFFKelFRRnpDNDBCQVFGL0FrQWdBQ2dDQkNJQklBRW9BZ0JCREdzb0FnQnFLQUlZUlEwQUlBQW9BZ1FpQVNBQktBSUFRUXhyS0FJQWFoQzVBVVVOQUNBQUtBSUVJZ0VnQVNnQ0FFRU1heWdDQUdvb0FnUkJnTUFBY1VVTkFDQUFLQUlFSWdFZ0FTZ0NBRUVNYXlnQ0FHb29BaGdRZ3dOQmYwY05BQ0FBS0FJRUlnQWdBQ2dDQUVFTWF5Z0NBR3BCQVJDQUFRc0xEd0FnQUNBQUtBSUFLQUlZRVFBQUMxVUFJQUFnQVRZQ0JDQUFRUUE2QUFBZ0FTQUJLQUlBUVF4cktBSUFhaEM1QVFSQUlBRWdBU2dDQUVFTWF5Z0NBR29vQWtnRVFDQUJJQUVvQWdCQkRHc29BZ0JxS0FKSUVJWURDeUFBUVFFNkFBQUxJQUFMQ3dBZ0FFRUFOZ0lBSUFBTGJnRUNmeU1BUVJCcklnRWtBQ0FBSUFBb0FnQkJER3NvQWdCcUtBSVlCRUFDUUNBQlFRaHFJQUFRaEFNaUFpMEFBRVVOQUNBQUlBQW9BZ0JCREdzb0FnQnFLQUlZRUlNRFFYOUhEUUFnQUNBQUtBSUFRUXhyS0FJQWFrRUJFSUFCQ3lBQ0VJSURDeUFCUVJCcUpBQUxDUUFnQUJEbEFSQVFDd1FBUVg4THhnZ0JCbjhnQUNBQktBQUFJZ05CR0hRZ0EwRUlkRUdBZ1B3SGNYSWdBMEVJZGtHQS9nTnhJQU5CR0haeWNpSUZOZ0lBSUFBZ0FTZ0FCQ0lEUVJoMElBTkJDSFJCZ0lEOEIzRnlJQU5CQ0haQmdQNERjU0FEUVJoMmNuSWlCallDQkNBQUlBRW9BQWdpQTBFWWRDQURRUWgwUVlDQS9BZHhjaUFEUVFoMlFZRCtBM0VnQTBFWWRuSnlJZ2MyQWdnZ0FDQUJLQUFNSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUlFTmdJTUFrQWdBa0dBQVVZRVFFRUFJUU1EUUNBQUlBUkJGblpCL0FkeFFZQUlhaTBBQVNBRVFRNTJRZndIY1VHQUNHb29BZ0JCQ0hSQmdJQ0FlSEVnQlhNZ0JFRUdka0g4QjNGQmdBaHFMUUFDUVJCMGN5QUVRZjhCY1VFQ2RFR0FDR290QUFGQkNIUnpjeUFEUVlBYWFpMEFBRUVZZEhNaUJUWUNFQ0FBSUFVZ0JuTWlCallDRkNBQUlBWWdCM01pQnpZQ0dDQUFJQVFnQjNNaUJEWUNIQ0FBUVJCcUlRQkJDaUVCSUFOQkFXb2lBMEVLUncwQUN3d0JDeUFBSUFFb0FCQWlBMEVZZENBRFFRaDBRWUNBL0FkeGNpQURRUWgyUVlEK0EzRWdBMEVZZG5KeU5nSVFJQUFnQVNnQUZDSURRUmgwSUFOQkNIUkJnSUQ4QjNGeUlBTkJDSFpCZ1A0RGNTQURRUmgyY25JaUF6WUNGQ0FDUWNBQlJnUkFRUUFoQVFOQUlBQWdBMEVXZGtIOEIzRkJnQWhxTFFBQklBTkJEblpCL0FkeFFZQUlhaWdDQUVFSWRFR0FnSUI0Y1NBRmN5QURRUVoyUWZ3SGNVR0FDR290QUFKQkVIUnpJQU5CL3dGeFFRSjBRWUFJYWkwQUFVRUlkSE56SUFGQmdCcHFMUUFBUVJoMGN5SUZOZ0lZSUFBZ0JTQUdjeUlHTmdJY0lBQWdCaUFIY3lJSE5nSWdJQUFnQkNBSGN5SUVOZ0lrSUFGQkIwWUVRRUVNRHdVZ0FDQUFLQUlRSUFSeklnSTJBaWdnQUNBQ0lBTnpJZ00yQWl3Z0FVRUJhaUVCSUFCQkdHb2hBQXdCQ3dBTEFBc2dBQ0FCS0FBWUlnTkJHSFFnQTBFSWRFR0FnUHdIY1hJZ0EwRUlka0dBL2dOeElBTkJHSFp5Y2pZQ0dDQUFJQUVvQUJ3aUFVRVlkQ0FCUVFoMFFZQ0EvQWR4Y2lBQlFRaDJRWUQrQTNFZ0FVRVlkbkp5SWdNMkFoeEJmeUVCSUFKQmdBSkhEUUJCQUNFQ1FRNGhBUU5BSUFBZ0EwRVdka0g4QjNGQmdBaHFMUUFCSUFOQkRuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjU0FGY3lBRFFRWjJRZndIY1VHQUNHb3RBQUpCRUhSeklBTkIvd0Z4UVFKMFFZQUlhaTBBQVVFSWRITnpJQUpCZ0JwcUxRQUFRUmgwY3lJRk5nSWdJQUFnQlNBR2N5SUdOZ0lrSUFBZ0JpQUhjeUlITmdJb0lBQWdCQ0FIY3lJRU5nSXNJQUpCQmtZTkFTQUFJQVJCL3dGeFFRSjBRWUFJYWkwQUFTQUFLQUlRSUFSQkZuWkIvQWR4UVlBSWFpZ0NBRUVJZEVHQWdJQjRjWE1nQkVFT2RrSDhCM0ZCZ0FocUxRQUNRUkIwY3lBRVFRWjJRZndIY1VHQUNHb3RBQUZCQ0hSemN5SUlOZ0l3SUFBZ0NDQUFLQUlVY3lJSU5nSTBJQUFnQUNnQ0dDQUljeUlJTmdJNElBQWdBeUFJY3lJRE5nSThJQUpCQVdvaEFpQUFRU0JxSVFBTUFBc0FDeUFCQ3k0QUlBQWdBQ2dDQUNnQ0pCRUFBRUYvUmdSQVFYOFBDeUFBSUFBb0Fnd2lBRUVCYWpZQ0RDQUFMQUFBRUdVTEJBQkJmd3UvQVFFRWZ5TUFRUkJySWdRa0FBTkFBa0FnQWlBRlRBMEFBa0FnQUNnQ0RDSURJQUFvQWhBaUJra0VRQ0FFUWYvLy8vOEhOZ0lNSUFRZ0JpQURhellDQ0NBRUlBSWdCV3MyQWdRZ0JFRU1haUFFUVFocUlBUkJCR29RdWdFUXVnRWhBeUFCSUFBb0Fnd2dBeWdDQUNJREVGVWdBQ0FBS0FJTUlBTnFOZ0lNREFFTElBQWdBQ2dDQUNnQ0tCRUFBQ0lEUVg5R0RRRWdBU0FERUp3Qk9nQUFRUUVoQXdzZ0FTQURhaUVCSUFNZ0JXb2hCUXdCQ3dzZ0JFRVFhaVFBSUFVTENRQWdBRUovRUxzQkN3a0FJQUJDZnhDN0FRc0VBQ0FBQ3drQUlBQVF2QUVRRUFzSUFDQUFFSDRRRUFzSEFDQUFLQUlNQ3hBQUl3QWdBR3RCY0hFaUFDUUFJQUFMQmdBZ0FDUUFDd1FBSXdBTERBQWdBQkRCQVJvZ0FCQVFDd2tBSUFBUXdRRVFFQXNGQUVIK0d3c2JBQ0FBSUFFb0FnZ2dCUkErQkVBZ0FTQUNJQU1nQkJERUFRc0xPQUFnQUNBQktBSUlJQVVRUGdSQUlBRWdBaUFESUFRUXhBRVBDeUFBS0FJSUlnQWdBU0FDSUFNZ0JDQUZJQUFvQWdBb0FoUVJDUUFMbGdJQkJuOGdBQ0FCS0FJSUlBVVFQZ1JBSUFFZ0FpQURJQVFReEFFUEN5QUJMUUExSVFjZ0FDZ0NEQ0VHSUFGQkFEb0FOU0FCTFFBMElRZ2dBVUVBT2dBMElBQkJFR29pQ1NBQklBSWdBeUFFSUFVUXdnRWdCeUFCTFFBMUlncHlJUWNnQ0NBQkxRQTBJZ3R5SVFnQ1FDQUdRUUpJRFFBZ0NTQUdRUU4wYWlFSklBQkJHR29oQmdOQUlBRXRBRFlOQVFKQUlBc0VRQ0FCS0FJWVFRRkdEUU1nQUMwQUNFRUNjUTBCREFNTElBcEZEUUFnQUMwQUNFRUJjVVVOQWdzZ0FVRUFPd0UwSUFZZ0FTQUNJQU1nQkNBRkVNSUJJQUV0QURVaUNpQUhjaUVISUFFdEFEUWlDeUFJY2lFSUlBWkJDR29pQmlBSlNRMEFDd3NnQVNBSFFmOEJjVUVBUnpvQU5TQUJJQWhCL3dGeFFRQkhPZ0EwQzVJQkFDQUFJQUVvQWdnZ0JCQStCRUFnQVNBQ0lBTVF3d0VQQ3dKQUlBQWdBU2dDQUNBRUVENUZEUUFDUUNBQ0lBRW9BaEJIQkVBZ0FTZ0NGQ0FDUncwQkN5QURRUUZIRFFFZ0FVRUJOZ0lnRHdzZ0FTQUNOZ0lVSUFFZ0F6WUNJQ0FCSUFFb0FpaEJBV28yQWlnQ1FDQUJLQUlrUVFGSERRQWdBU2dDR0VFQ1J3MEFJQUZCQVRvQU5nc2dBVUVFTmdJc0N3dnpBUUFnQUNBQktBSUlJQVFRUGdSQUlBRWdBaUFERU1NQkR3c0NRQ0FBSUFFb0FnQWdCQkErQkVBQ1FDQUNJQUVvQWhCSEJFQWdBU2dDRkNBQ1J3MEJDeUFEUVFGSERRSWdBVUVCTmdJZ0R3c2dBU0FETmdJZ0FrQWdBU2dDTEVFRVJnMEFJQUZCQURzQk5DQUFLQUlJSWdBZ0FTQUNJQUpCQVNBRUlBQW9BZ0FvQWhRUkNRQWdBUzBBTlFSQUlBRkJBellDTENBQkxRQTBSUTBCREFNTElBRkJCRFlDTEFzZ0FTQUNOZ0lVSUFFZ0FTZ0NLRUVCYWpZQ0tDQUJLQUlrUVFGSERRRWdBU2dDR0VFQ1J3MEJJQUZCQVRvQU5nOExJQUFvQWdnaUFDQUJJQUlnQXlBRUlBQW9BZ0FvQWhnUkNnQUxDNTBFQVFOL0lBQWdBU2dDQ0NBRUVENEVRQ0FCSUFJZ0F4RERBUThMQWtBZ0FDQUJLQUlBSUFRUVBnUkFBa0FnQWlBQktBSVFSd1JBSUFFb0FoUWdBa2NOQVFzZ0EwRUJSdzBDSUFGQkFUWUNJQThMSUFFZ0F6WUNJQ0FCS0FJc1FRUkhCRUFnQUVFUWFpSUZJQUFvQWd4QkEzUnFJUWRCQUNFRElBRUNmd0pBQTBBQ1FDQUZJQWRQRFFBZ0FVRUFPd0UwSUFVZ0FTQUNJQUpCQVNBRUVNSUJJQUV0QURZTkFBSkFJQUV0QURWRkRRQWdBUzBBTkFSQVFRRWhBeUFCS0FJWVFRRkdEUVJCQVNFR0lBQXRBQWhCQW5FTkFRd0VDMEVCSVFZZ0FDMEFDRUVCY1VVTkF3c2dCVUVJYWlFRkRBRUxDMEVFSUFaRkRRRWFDMEVEQ3pZQ0xDQURRUUZ4RFFJTElBRWdBallDRkNBQklBRW9BaWhCQVdvMkFpZ2dBU2dDSkVFQlJ3MEJJQUVvQWhoQkFrY05BU0FCUVFFNkFEWVBDeUFBS0FJTUlRVWdBRUVRYWlJR0lBRWdBaUFESUFRUW9BRWdCVUVDU0EwQUlBWWdCVUVEZEdvaEJpQUFRUmhxSVFVQ1FDQUFLQUlJSWdCQkFuRkZCRUFnQVNnQ0pFRUJSdzBCQ3dOQUlBRXRBRFlOQWlBRklBRWdBaUFESUFRUW9BRWdCVUVJYWlJRklBWkpEUUFMREFFTElBQkJBWEZGQkVBRFFDQUJMUUEyRFFJZ0FTZ0NKRUVCUmcwQ0lBVWdBU0FDSUFNZ0JCQ2dBU0FGUVFocUlnVWdCa2tOQUF3Q0N3QUxBMEFnQVMwQU5nMEJJQUVvQWlSQkFVWUVRQ0FCS0FJWVFRRkdEUUlMSUFVZ0FTQUNJQU1nQkJDZ0FTQUZRUWhxSWdVZ0Jra05BQXNMQ3djQUlBQW9BZ1FMYndFQ2Z5QUFJQUVvQWdoQkFCQStCRUFnQVNBQ0lBTVF4Z0VQQ3lBQUtBSU1JUVFnQUVFUWFpSUZJQUVnQWlBREVQQUJBa0FnQkVFQ1NBMEFJQVVnQkVFRGRHb2hCQ0FBUVJocUlRQURRQ0FBSUFFZ0FpQURFUEFCSUFFdEFEWU5BU0FBUVFocUlnQWdCRWtOQUFzTEN6SUFJQUFnQVNnQ0NFRUFFRDRFUUNBQklBSWdBeERHQVE4TElBQW9BZ2dpQUNBQklBSWdBeUFBS0FJQUtBSWNFUWdBQ3hrQUlBQWdBU2dDQ0VFQUVENEVRQ0FCSUFJZ0F4REdBUXNMdWdNQkJYOGpBRUZBYWlJRUpBQUNmMEVCSUFBZ0FVRUFFRDROQUJwQkFDQUJSUTBBR2lNQVFVQnFJZ01rQUNBQktBSUFJZ1ZCQkdzb0FnQWhCaUFGUVFocktBSUFJUWNnQTBFQU5nSVVJQU5CclAwQU5nSVFJQU1nQVRZQ0RDQURRZHo5QURZQ0NFRUFJUVVnQTBFWWFrRUFRU2NRUmhvZ0FTQUhhaUVCQWtBZ0JrSGMvUUJCQUJBK0JFQWdBMEVCTmdJNElBWWdBMEVJYWlBQklBRkJBVUVBSUFZb0FnQW9BaFFSQ1FBZ0FVRUFJQU1vQWlCQkFVWWJJUVVNQVFzZ0JpQURRUWhxSUFGQkFVRUFJQVlvQWdBb0FoZ1JDZ0FDUUFKQUlBTW9BaXdPQWdBQkFnc2dBeWdDSEVFQUlBTW9BaWhCQVVZYlFRQWdBeWdDSkVFQlJodEJBQ0FES0FJd1FRRkdHeUVGREFFTElBTW9BaUJCQVVjRVFDQURLQUl3RFFFZ0F5Z0NKRUVCUncwQklBTW9BaWhCQVVjTkFRc2dBeWdDR0NFRkN5QURRVUJySkFCQkFDQUZJZ0ZGRFFBYUlBUkJDR29pQTBFRWNrRUFRVFFRUmhvZ0JFRUJOZ0k0SUFSQmZ6WUNGQ0FFSUFBMkFoQWdCQ0FCTmdJSUlBRWdBeUFDS0FJQVFRRWdBU2dDQUNnQ0hCRUlBQ0FFS0FJZ0lnQkJBVVlFUUNBQ0lBUW9BaGcyQWdBTElBQkJBVVlMSVFBZ0JFRkFheVFBSUFBTEJRQVFGd0FMQXdBQUN3a0FRZHlLQVJBS0dnc3ZBQUpBUWVpS0FTMEFBRUVCY1EwQVFlaUtBUkFrUlEwQVFkeUtBVUhnMVFBUWhBRkI2SW9CRUNNTFFkeUtBUXNKQUVITWlnRVFDaG9MTGdBQ1FFSFlpZ0V0QUFCQkFYRU5BRUhZaWdFUUpFVU5BRUhNaWdGQjZoc1FWQnBCMklvQkVDTUxRY3lLQVFzSkFFRzhpZ0VRQ2hvTEx3QUNRRUhJaWdFdEFBQkJBWEVOQUVISWlnRVFKRVVOQUVHOGlnRkJqTlVBRUlRQlFjaUtBUkFqQzBHOGlnRUxDUUJCcklvQkVBb2FDeTRBQWtCQnVJb0JMUUFBUVFGeERRQkJ1SW9CRUNSRkRRQkJySW9CUWR3ZEVGUWFRYmlLQVJBakMwR3NpZ0VMQ1FCQm5Jb0JFQW9hQ3k4QUFrQkJxSW9CTFFBQVFRRnhEUUJCcUlvQkVDUkZEUUJCbklvQlFlalVBQkNFQVVHb2lnRVFJd3RCbklvQkN3a0FRWXlLQVJBS0dnc3VBQUpBUVppS0FTMEFBRUVCY1EwQVFaaUtBUkFrUlEwQVFZeUtBVUgzSFJCVUdrR1lpZ0VRSXd0QmpJb0JDd2tBUWZ5SkFSQUtHZ3N2QUFKQVFZaUtBUzBBQUVFQmNRMEFRWWlLQVJBa1JRMEFRZnlKQVVIRTFBQVFoQUZCaUlvQkVDTUxRZnlKQVFzSkFFSHNpUUVRQ2hvTExnQUNRRUg0aVFFdEFBQkJBWEVOQUVINGlRRVFKRVVOQUVIc2lRRkI1aG9RVkJwQitJa0JFQ01MUWV5SkFRc2JBRUhva2dFaEFBTkFJQUJCREdzUUNpSUFRZENTQVVjTkFBc0xmUUFDUUVIb2lRRXRBQUJCQVhFTkFFSG9pUUVRSkVVTkFBSkFRZWlTQVMwQUFFRUJjUTBBUWVpU0FSQWtSUTBBUWRDU0FTRUFBMEFnQUJCSFFReHFJZ0JCNkpJQlJ3MEFDMEhva2dFUUl3dEIwSklCUWZEN0FCQVVRZHlTQVVIOCt3QVFGRUhraVFGQjBKSUJOZ0lBUWVpSkFSQWpDMEhraVFFb0FnQUxHd0JCeUpJQklRQURRQ0FBUVF4ckVBb2lBRUd3a2dGSERRQUxDM3NBQWtCQjRJa0JMUUFBUVFGeERRQkI0SWtCRUNSRkRRQUNRRUhJa2dFdEFBQkJBWEVOQUVISWtnRVFKRVVOQUVHd2tnRWhBQU5BSUFBUUVVRU1haUlBUWNpU0FVY05BQXRCeUpJQkVDTUxRYkNTQVVHSEhoQVZRYnlTQVVHRUhoQVZRZHlKQVVHd2tnRTJBZ0JCNElrQkVDTUxRZHlKQVNnQ0FBc2JBRUdna2dFaEFBTkFJQUJCREdzUUNpSUFRWUNRQVVjTkFBc0wyUUlBQWtCQjJJa0JMUUFBUVFGeERRQkIySWtCRUNSRkRRQUNRRUdna2dFdEFBQkJBWEVOQUVHZ2tnRVFKRVVOQUVHQWtBRWhBQU5BSUFBUVIwRU1haUlBUWFDU0FVY05BQXRCb0pJQkVDTUxRWUNRQVVIbzl3QVFGRUdNa0FGQmlQZ0FFQlJCbUpBQlFhejRBQkFVUWFTUUFVSEUrQUFRRkVHd2tBRkIzUGdBRUJSQnZKQUJRZXo0QUJBVVFjaVFBVUdBK1FBUUZFSFVrQUZCbFBrQUVCUkI0SkFCUWJENUFCQVVRZXlRQVVIWStRQVFGRUg0a0FGQitQa0FFQlJCaEpFQlFaejZBQkFVUVpDUkFVSEErZ0FRRkVHY2tRRkIwUG9BRUJSQnFKRUJRZUQ2QUJBVVFiU1JBVUh3K2dBUUZFSEFrUUZCM1BnQUVCUkJ6SkVCUVlEN0FCQVVRZGlSQVVHUSt3QVFGRUhra1FGQm9Qc0FFQlJCOEpFQlFiRDdBQkFVUWZ5UkFVSEErd0FRRkVHSWtnRkIwUHNBRUJSQmxKSUJRZUQ3QUJBVVFkU0pBVUdBa0FFMkFnQkIySWtCRUNNTFFkU0pBU2dDQUFzYkFFSHdqd0VoQUFOQUlBQkJER3NRQ2lJQVFkQ05BVWNOQUFzTHdRSUFBa0JCMElrQkxRQUFRUUZ4RFFCQjBJa0JFQ1JGRFFBQ1FFSHdqd0V0QUFCQkFYRU5BRUh3andFUUpFVU5BRUhRalFFaEFBTkFJQUFRRVVFTWFpSUFRZkNQQVVjTkFBdEI4SThCRUNNTFFkQ05BVUdjR2hBVlFkeU5BVUdUR2hBVlFlaU5BVUhnSEJBVlFmU05BVUhXSEJBVlFZQ09BVUhpR2hBVlFZeU9BVUhMSFJBVlFaaU9BVUdrR2hBVlFhU09BVUdVR3hBVlFiQ09BVUcvR3hBVlFieU9BVUd1R3hBVlFjaU9BVUcyR3hBVlFkU09BVUhKR3hBVlFlQ09BVUhMSEJBVlFleU9BVUhZSFJBVlFmaU9BVUhpR3hBVlFZU1BBVUdqR3hBVlFaQ1BBVUhpR2hBVlFaeVBBVUg2R3hBVlFhaVBBVUhQSEJBVlFiU1BBVUhtSEJBVlFjQ1BBVUhtR3hBVlFjeVBBVUdiR3hBVlFkaVBBVUdNR3hBVlFlU1BBVUhVSFJBVlFjeUpBVUhRalFFMkFnQkIwSWtCRUNNTFFjeUpBU2dDQUFzYkFFSElqUUVoQUFOQUlBQkJER3NRQ2lJQVFhQ01BVWNOQUFzTDlRRUFBa0JCeUlrQkxRQUFRUUZ4RFFCQnlJa0JFQ1JGRFFBQ1FFSElqUUV0QUFCQkFYRU5BRUhJalFFUUpFVU5BRUdnakFFaEFBTkFJQUFRUjBFTWFpSUFRY2lOQVVjTkFBdEJ5STBCRUNNTFFhQ01BVUdVOVFBUUZFR3NqQUZCc1BVQUVCUkJ1SXdCUWN6MUFCQVVRY1NNQVVIczlRQVFGRUhRakFGQmxQWUFFQlJCM0l3QlFiajJBQkFVUWVpTUFVSFU5Z0FRRkVIMGpBRkIrUFlBRUJSQmdJMEJRWWozQUJBVVFZeU5BVUdZOXdBUUZFR1lqUUZCcVBjQUVCUkJwSTBCUWJqM0FCQVVRYkNOQVVISTl3QVFGRUc4alFGQjJQY0FFQlJCeElrQlFhQ01BVFlDQUVISWlRRVFJd3RCeElrQktBSUFDeHNBUVppTUFTRUFBMEFnQUVFTWF4QUtJZ0JCOElvQlJ3MEFDd3ZuQVFBQ1FFSEFpUUV0QUFCQkFYRU5BRUhBaVFFUUpFVU5BQUpBUVppTUFTMEFBRUVCY1EwQVFaaU1BUkFrUlEwQVFmQ0tBU0VBQTBBZ0FCQVJRUXhxSWdCQm1Jd0JSdzBBQzBHWWpBRVFJd3RCOElvQlFjMGFFQlZCL0lvQlFkUWFFQlZCaUlzQlFiSWFFQlZCbElzQlFib2FFQlZCb0lzQlFha2FFQlZCcklzQlFkc2FFQlZCdUlzQlFjUWFFQlZCeElzQlFmWWJFQlZCMElzQlFjTWNFQlZCM0lzQlFjRWRFQlZCNklzQlFkQWRFQlZCOUlzQlFaQWJFQlZCZ0l3QlFkd2NFQlZCakl3QlFaOGJFQlZCdklrQlFmQ0tBVFlDQUVIQWlRRVFJd3RCdklrQktBSUFDd3NBSUFCQnJOUUFFSVFCQ3dvQUlBQkJ4UjBRVkJvTEN3QWdBRUdZMUFBUWhBRUxDZ0FnQUVHOEhSQlVHZ3NNQUNBQUlBRkJFR29RMFFFTERBQWdBQ0FCUVF4cUVORUJDd2NBSUFBc0FBa0xCd0FnQUN3QUNBc0pBQ0FBRUlZQ0VCQUxDUUFnQUJDSEFoQVFDK1lEQVFWL0lBSWhBQU5BQWtBZ0JDQUlUU0FBSUFOUGNnMEFJQUFzQUFBaUJrSC9BWEVoQVFKQUlBWkJBRTRFUUVFQklRWWdBVUgvLzhNQVRRMEJEQUlMSUFGQndnRkpEUUVnQVVIZkFVMEVRQ0FESUFCclFRSklEUUlnQUMwQUFTSUZRY0FCY1VHQUFVY05Ba0VDSVFZZ0JVRS9jU0FCUVFaMFFjQVBjWEpCLy8vREFFME5BUXdDQ3dKQUFrQWdBVUh2QVUwRVFDQURJQUJyUVFOSURRUWdBQzBBQWlFSElBQXRBQUVoQlNBQlFlMEJSZzBCSUFGQjRBRkdCRUFnQlVIZ0FYRkJvQUZHRFFNTUJRc2dCVUhBQVhGQmdBRkhEUVFNQWdzZ0F5QUFhMEVFU0NBQlFmUUJTM0lOQXlBQUxRQURJUWNnQUMwQUFpRUpJQUF0QUFFaEJRSkFBa0FDUUFKQUlBRkI4QUZyRGdVQUFnSUNBUUlMSUFWQjhBQnFRZjhCY1VFd1NRMENEQVlMSUFWQjhBRnhRWUFCUmcwQkRBVUxJQVZCd0FGeFFZQUJSdzBFQ3lBSlFjQUJjVUdBQVVjZ0IwSEFBWEZCZ0FGSGNnMERRUVFoQmlBSFFUOXhJQWxCQm5SQndCOXhJQUZCRW5SQmdJRHdBSEVnQlVFL2NVRU1kSEp5Y2tILy84TUFTdzBEREFJTElBVkI0QUZ4UVlBQlJ3MENDeUFIUWNBQmNVR0FBVWNOQVVFRElRWWdCMEUvY1NBQlFReDBRWURnQTNFZ0JVRS9jVUVHZEhKeVFmLy93d0JMRFFFTElBaEJBV29oQ0NBQUlBWnFJUUFNQVFzTElBQWdBbXNMNGdRQkJYOGpBRUVRYXlJQUpBQWdBQ0FDTmdJTUlBQWdCVFlDQ0FKL0lBQWdBallDRENBQUlBVTJBZ2dDUUFKQUEwQUNRQ0FBS0FJTUlnSWdBMDhOQUNBQUtBSUlJZ3dnQms4TkFDQUNMQUFBSWdWQi93RnhJUUVDUUNBRlFRQk9CRUFnQVVILy84TUFUUVJBUVFFaEJRd0NDMEVDREFZTFFRSWhDaUFCUWNJQlNRMERJQUZCM3dGTkJFQWdBeUFDYTBFQ1NBMEZJQUl0QUFFaUNFSEFBWEZCZ0FGSERRUkJBaUVGSUFoQlAzRWdBVUVHZEVIQUQzRnlJZ0ZCLy8vREFFME5BUXdFQ3lBQlFlOEJUUVJBSUFNZ0FtdEJBMGdOQlNBQ0xRQUNJUWtnQWkwQUFTRUlBa0FDUUNBQlFlMEJSd1JBSUFGQjRBRkhEUUVnQ0VIZ0FYRkJvQUZHRFFJTUJ3c2dDRUhnQVhGQmdBRkdEUUVNQmdzZ0NFSEFBWEZCZ0FGSERRVUxJQWxCd0FGeFFZQUJSdzBFUVFNaEJTQUpRVDl4SUFGQkRIUkJnT0FEY1NBSVFUOXhRUVowY25JaUFVSC8vOE1BVFEwQkRBUUxJQUZCOUFGTERRTWdBeUFDYTBFRVNBMEVJQUl0QUFNaENTQUNMUUFDSVFzZ0FpMEFBU0VJQWtBQ1FBSkFBa0FnQVVId0FXc09CUUFDQWdJQkFnc2dDRUh3QUdwQi93RnhRVEJKRFFJTUJnc2dDRUh3QVhGQmdBRkdEUUVNQlFzZ0NFSEFBWEZCZ0FGSERRUUxJQXRCd0FGeFFZQUJSeUFKUWNBQmNVR0FBVWR5RFFOQkJDRUZJQWxCUDNFZ0MwRUdkRUhBSDNFZ0FVRVNkRUdBZ1BBQWNTQUlRVDl4UVF4MGNuSnlJZ0ZCLy8vREFFc05Bd3NnRENBQk5nSUFJQUFnQWlBRmFqWUNEQ0FBSUFBb0FnaEJCR28yQWdnTUFRc0xJQUlnQTBraENnc2dDZ3dCQzBFQkN5RUJJQVFnQUNnQ0REWUNBQ0FISUFBb0FnZzJBZ0FnQUVFUWFpUUFJQUVMamdRQUl3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBVTJBZ2dDZnlBQUlBSTJBZ3dnQUNBRk5nSUlJQUFvQWd3aEFRSkFBMEFnQVNBRFR3UkFRUUFoQWd3Q0MwRUNJUUlnQVNnQ0FDSUJRWUJ3Y1VHQXNBTkdJQUZCLy8vREFFdHlEUUVDUUFKQUlBRkIvd0JOQkVCQkFTRUNJQVlnQUNnQ0NDSUZhMEVBVEEwRUlBQWdCVUVCYWpZQ0NDQUZJQUU2QUFBTUFRc2dBVUgvRDAwRVFDQUdJQUFvQWdnaUFtdEJBa2dOQWlBQUlBSkJBV28yQWdnZ0FpQUJRUVoyUWNBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBREFFTElBWWdBQ2dDQ0NJQ2F5RUZJQUZCLy84RFRRUkFJQVZCQTBnTkFpQUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0JVRUVTQTBCSUFBZ0FrRUJhallDQ0NBQ0lBRkJFblpCOEFGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUVNZGtFL2NVR0FBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFRWjJRVDl4UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBQ3lBQUlBQW9BZ3hCQkdvaUFUWUNEQXdCQ3d0QkFRd0JDeUFDQ3lFQklBUWdBQ2dDRERZQ0FDQUhJQUFvQWdnMkFnQWdBRUVRYWlRQUlBRUw3Z01CQkg4Z0FpRUFBMEFDUUNBRUlBWk5JQUFnQTA5eURRQWdBQzBBQUNJQlFmLy93d0JMRFFBQ2Z5QUFRUUZxSUFGQkdIUkJHSFZCQUU0TkFCb2dBVUhDQVVrTkFTQUJRZDhCVFFSQUlBTWdBR3RCQWtnTkFpQUFMUUFCSWdWQndBRnhRWUFCUnlBRlFUOXhJQUZCQm5SQndBOXhja0gvLzhNQVMzSU5BaUFBUVFKcURBRUxBa0FDUUNBQlFlOEJUUVJBSUFNZ0FHdEJBMGdOQkNBQUxRQUNJUWNnQUMwQUFTRUZJQUZCN1FGR0RRRWdBVUhnQVVZRVFDQUZRZUFCY1VHZ0FVWU5Bd3dGQ3lBRlFjQUJjVUdBQVVjTkJBd0NDeUFESUFCclFRUklJQUZCOUFGTGNpQUVJQVpyUVFKSmNnMERJQUF0QUFNaEJ5QUFMUUFDSVFnZ0FDMEFBU0VGQWtBQ1FBSkFBa0FnQVVId0FXc09CUUFDQWdJQkFnc2dCVUh3QUdwQi93RnhRVEJKRFFJTUJnc2dCVUh3QVhGQmdBRkdEUUVNQlFzZ0JVSEFBWEZCZ0FGSERRUUxJQWhCd0FGeFFZQUJSeUFIUWNBQmNVR0FBVWR5SUFkQlAzRWdDRUVHZEVIQUgzRWdBVUVTZEVHQWdQQUFjU0FGUVQ5eFFReDBjbkp5UWYvL3d3QkxjZzBESUFaQkFXb2hCaUFBUVFScURBSUxJQVZCNEFGeFFZQUJSdzBDQ3lBSFFjQUJjVUdBQVVjZ0IwRS9jU0FCUVF4MFFZRGdBM0VnQlVFL2NVRUdkSEp5UWYvL3d3QkxjZzBCSUFCQkEyb0xJUUFnQmtFQmFpRUdEQUVMQ3lBQUlBSnJDOU1GQVFSL0l3QkJFR3NpQUNRQUlBQWdBallDRENBQUlBVTJBZ2dDZnlBQUlBSTJBZ3dnQUNBRk5nSUlBa0FDUUFKQUEwQUNRQ0FBS0FJTUlnRWdBMDhOQUNBQUtBSUlJZ1VnQms4TkFFRUNJUW9nQVMwQUFDSUNRZi8vd3dCTERRUWdBQUovSUFKQkdIUkJHSFZCQUU0RVFDQUZJQUk3QVFBZ0FVRUJhZ3dCQ3lBQ1FjSUJTUTBGSUFKQjN3Rk5CRUFnQXlBQmEwRUNTQTBGSUFFdEFBRWlDRUhBQVhGQmdBRkhEUVFnQ0VFL2NTQUNRUVowUWNBUGNYSWlBa0gvLzhNQVN3MEVJQVVnQWpzQkFDQUJRUUpxREFFTElBSkI3d0ZOQkVBZ0F5QUJhMEVEU0EwRklBRXRBQUloQ1NBQkxRQUJJUWdDUUFKQUlBSkI3UUZIQkVBZ0FrSGdBVWNOQVNBSVFlQUJjVUdnQVVZTkFnd0hDeUFJUWVBQmNVR0FBVVlOQVF3R0N5QUlRY0FCY1VHQUFVY05CUXNnQ1VIQUFYRkJnQUZIRFFRZ0NVRS9jU0FJUVQ5eFFRWjBJQUpCREhSeWNpSUNRZi8vQTNGQi8vL0RBRXNOQkNBRklBSTdBUUFnQVVFRGFnd0JDeUFDUWZRQlN3MEZRUUVoQ2lBRElBRnJRUVJJRFFNZ0FTMEFBeUVKSUFFdEFBSWhDQ0FCTFFBQklRRUNRQUpBQWtBQ1FDQUNRZkFCYXc0RkFBSUNBZ0VDQ3lBQlFmQUFha0gvQVhGQk1FOE5DQXdDQ3lBQlFmQUJjVUdBQVVjTkJ3d0JDeUFCUWNBQmNVR0FBVWNOQmdzZ0NFSEFBWEZCZ0FGSElBbEJ3QUZ4UVlBQlIzSU5CU0FHSUFWclFRUklEUU5CQWlFS0lBbEJQM0VpQ1NBSVFRWjBJZ3RCd0I5eElBRkJESFJCZ09BUGNTQUNRUWR4SWdKQkVuUnljbkpCLy8vREFFc05BeUFGSUFoQkJIWkJBM0VnQVVFQ2RDSUJRY0FCY1NBQ1FRaDBjaUFCUVR4eGNuSkJ3UDhBYWtHQXNBTnlPd0VBSUFBZ0JVRUNhallDQ0NBRklBdEJ3QWR4SUFseVFZQzRBM0k3QVFJZ0FDZ0NERUVFYWdzMkFnd2dBQ0FBS0FJSVFRSnFOZ0lJREFFTEN5QUJJQU5KSVFvTElBb01BZ3RCQVF3QkMwRUNDeUVCSUFRZ0FDZ0NERFlDQUNBSElBQW9BZ2cyQWdBZ0FFRVFhaVFBSUFFTCtnVUJBWDhqQUVFUWF5SUFKQUFnQUNBQ05nSU1JQUFnQlRZQ0NBSi9JQUFnQWpZQ0RDQUFJQVUyQWdnZ0FDZ0NEQ0VDQWtBQ1FBTkFJQUlnQTA4RVFFRUFJUVVNQXd0QkFpRUZJQUl2QVFBaUFVSC8vOE1BU3cwQ0FrQUNRQ0FCUWY4QVRRUkFRUUVoQlNBR0lBQW9BZ2dpQW10QkFFd05CU0FBSUFKQkFXbzJBZ2dnQWlBQk9nQUFEQUVMSUFGQi93OU5CRUFnQmlBQUtBSUlJZ0pyUVFKSURRUWdBQ0FDUVFGcU5nSUlJQUlnQVVFR2RrSEFBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFUOXhRWUFCY2pvQUFBd0JDeUFCUWYrdkEwMEVRQ0FHSUFBb0FnZ2lBbXRCQTBnTkJDQUFJQUpCQVdvMkFnZ2dBaUFCUVF4MlFlQUJjam9BQUNBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFGQkJuWkJQM0ZCZ0FGeU9nQUFJQUFnQUNnQ0NDSUNRUUZxTmdJSUlBSWdBVUUvY1VHQUFYSTZBQUFNQVFzZ0FVSC90d05OQkVCQkFTRUZJQU1nQW10QkJFZ05CU0FDTHdFQ0lnaEJnUGdEY1VHQXVBTkhEUUlnQmlBQUtBSUlhMEVFU0EwRklBaEIvd2R4SUFGQkNuUkJnUGdEY1NBQlFjQUhjU0lGUVFwMGNuSkJnSUFFYWtILy84TUFTdzBDSUFBZ0FrRUNhallDRENBQUlBQW9BZ2dpQWtFQmFqWUNDQ0FDSUFWQkJuWkJBV29pQWtFQ2RrSHdBWEk2QUFBZ0FDQUFLQUlJSWdWQkFXbzJBZ2dnQlNBQ1FRUjBRVEJ4SUFGQkFuWkJEM0Z5UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQWhCQm5aQkQzRWdBVUVFZEVFd2NYSkJnQUZ5T2dBQUlBQWdBQ2dDQ0NJQlFRRnFOZ0lJSUFFZ0NFRS9jVUdBQVhJNkFBQU1BUXNnQVVHQXdBTkpEUVFnQmlBQUtBSUlJZ0pyUVFOSURRTWdBQ0FDUVFGcU5nSUlJQUlnQVVFTWRrSGdBWEk2QUFBZ0FDQUFLQUlJSWdKQkFXbzJBZ2dnQWlBQlFRWjJRVDl4UVlBQmNqb0FBQ0FBSUFBb0FnZ2lBa0VCYWpZQ0NDQUNJQUZCUDNGQmdBRnlPZ0FBQ3lBQUlBQW9BZ3hCQW1vaUFqWUNEQXdCQ3d0QkFnd0NDMEVCREFFTElBVUxJUUVnQkNBQUtBSU1OZ0lBSUFjZ0FDZ0NDRFlDQUNBQVFSQnFKQUFnQVFzVkFDQUFLQUlJSWdCRkJFQkJBUThMSUFBUWlnSUxrQUVCQm44RFFBSkFJQUlnQTBZZ0JDQUlUWElOQUVFQklRY2dBQ2dDQ0NFRkl3QkJFR3NpQmlRQUlBWWdCVFlDRENBR1FRaHFJQVpCREdvUVVpRUtRUUFnQWlBRElBSnJJQUZCdEljQklBRWJFTGNCSVFVZ0NoQlJJQVpCRUdva0FBSkFBa0FnQlVFQ2FnNERBZ0lCQUFzZ0JTRUhDeUFJUVFGcUlRZ2dCeUFKYWlFSklBSWdCMm9oQWd3QkN3c2dDUXRtQVFOL0lBQW9BZ2doQWlNQVFSQnJJZ0VrQUNBQklBSTJBZ3dnQVVFSWFpQUJRUXhxRUZJaEFpTUFRUkJySWdNa0FDQURRUkJxSkFCQkFDRURJQUlRVVNBQlFSQnFKQUFnQXdSL1FYOEZJQUFvQWdnaUFFVUVRRUVCRHdzZ0FCQ0tBa0VCUmdzTGtnRUJBWDhqQUVFUWF5SUZKQUFnQkNBQ05nSUFBbjlCQWlBRlFReHFRUUFnQUNnQ0NCRExBU0lBUVFGcVFRSkpEUUFhUVFFZ0FFRUJheUlCSUFNZ0JDZ0NBR3RMRFFBYUlBVkJER29oQWdOL0lBRUVmeUFDTFFBQUlRQWdCQ0FFS0FJQUlnTkJBV28yQWdBZ0F5QUFPZ0FBSUFGQkFXc2hBU0FDUVFGcUlRSU1BUVZCQUFzTEN5RUNJQVZCRUdva0FDQUNDOHNHQVF4L0l3QkJFR3NpRVNRQUlBSWhDQU5BQWtBZ0F5QUlSZ1JBSUFNaENBd0JDeUFJTFFBQVJRMEFJQWhCQVdvaENBd0JDd3NnQnlBRk5nSUFJQVFnQWpZQ0FBTkFBa0FDZndKQUlBSWdBMFlnQlNBR1JuSU5BQ0FSSUFFcEFnQTNBd2dnQUNnQ0NDRUpJd0JCRUdzaUVDUUFJQkFnQ1RZQ0RDQVFRUWhxSUJCQkRHb1FVaUVUSUFnZ0Ftc2hEVUVBSVFvakFFR1FDR3NpQ3lRQUlBc2dCQ2dDQUNJT05nSU1JQVVnQzBFUWFpQUZHeUVQQWtBQ1FBSkFJQTVGSUFZZ0JXdEJBblZCZ0FJZ0JSc2lERVZ5RFFBRFFDQU5RUUoySWdrZ0RFa2dEVUdEQVUxeERRSWdEeUFMUVF4cUlBd2dDU0FKSUF4UEd5QUJFTklDSWhKQmYwWUVRRUYvSVFwQkFDRU1JQXNvQWd3aERnd0NDeUFNUVFBZ0VpQVBJQXRCRUdwR0d5SUpheUVNSUE4Z0NVRUNkR29oRHlBTklBNXFJQXNvQWd3aURtdEJBQ0FPR3lFTklBb2dFbW9oQ2lBT1JRMEJJQXdOQUFzTElBNUZEUUVMSUF4RklBMUZjZzBBSUFvaENRTkFBa0FDUUNBUElBNGdEU0FCRUxjQklncEJBbXBCQWswRVFBSkFBa0FnQ2tFQmFnNENCZ0FCQ3lBTFFRQTJBZ3dNQWdzZ0FVRUFOZ0lBREFFTElBc2dDeWdDRENBS2FpSU9OZ0lNSUFsQkFXb2hDU0FNUVFGcklnd05BUXNnQ1NFS0RBSUxJQTlCQkdvaER5QU5JQXBySVEwZ0NTRUtJQTBOQUFzTElBVUVRQ0FFSUFzb0FndzJBZ0FMSUF0QmtBaHFKQUFnQ2lFSklCTVFVU0FRUVJCcUpBQUNRQUpBQWtBQ1FDQUpRWDlHQkVBRFFBSkFJQWNnQlRZQ0FDQUNJQVFvQWdCR0RRQkJBU0VHQWtBQ1FBSkFJQVVnQWlBSUlBSnJJQkZCQ0dvZ0FDZ0NDQkNMQWlJQlFRSnFEZ01JQUFJQkN5QUVJQUkyQWdBTUJRc2dBU0VHQ3lBQ0lBWnFJUUlnQnlnQ0FFRUVhaUVGREFFTEN5QUVJQUkyQWdBTUJRc2dCeUFIS0FJQUlBbEJBblJxSWdVMkFnQWdCU0FHUmcwRElBUW9BZ0FoQWlBRElBaEdCRUFnQXlFSURBZ0xJQVVnQWtFQklBRWdBQ2dDQ0JDTEFrVU5BUXRCQWd3RUN5QUhJQWNvQWdCQkJHbzJBZ0FnQkNBRUtBSUFRUUZxSWdJMkFnQWdBaUVJQTBBZ0F5QUlSZ1JBSUFNaENBd0dDeUFJTFFBQVJRMEZJQWhCQVdvaENBd0FDd0FMSUFRZ0FqWUNBRUVCREFJTElBUW9BZ0FoQWdzZ0FpQURSd3NoQUNBUlFSQnFKQUFnQUE4TElBY29BZ0FoQlF3QUN3QUxzd1VCREg4akFFRVFheUlOSkFBZ0FpRUlBMEFDUUNBRElBaEdCRUFnQXlFSURBRUxJQWdvQWdCRkRRQWdDRUVFYWlFSURBRUxDeUFISUFVMkFnQWdCQ0FDTmdJQUEwQUNRQUpBSUFJZ0EwWWdCU0FHUm5JRWZ5QUNCU0FOSUFFcEFnQTNBd2hCQVNFUUlBQW9BZ2doQ1NNQVFSQnJJZzRrQUNBT0lBazJBZ3dnRGtFSWFpQU9RUXhxRUZJaEV5QUdJQVVpQ1dzaENrRUFJUThqQUVFUWF5SVJKQUFDUUNBRUtBSUFJZ3RGSUFnZ0FtdEJBblVpRWtWeURRQWdDa0VBSUFrYklRb0RRQ0FSUVF4cUlBa2dDa0VFU1JzZ0N5Z0NBQkRhQVNJTVFYOUdCRUJCZnlFUERBSUxJQWtFZnlBS1FRTk5CRUFnQ2lBTVNRMERJQWtnRVVFTWFpQU1FRUlhQ3lBS0lBeHJJUW9nQ1NBTWFnVkJBQXNoQ1NBTEtBSUFSUVJBUVFBaEN3d0NDeUFNSUE5cUlROGdDMEVFYWlFTElCSkJBV3NpRWcwQUN3c2dDUVJBSUFRZ0N6WUNBQXNnRVVFUWFpUUFJQThoQ1NBVEVGRWdEa0VRYWlRQUFrQUNRQUpBQWtBQ1FDQUpRUUZxRGdJQUJnRUxJQWNnQlRZQ0FBTkFBa0FnQWlBRUtBSUFSZzBBSUFVZ0FpZ0NBQ0FBS0FJSUVNc0JJZ0ZCZjBZTkFDQUhJQWNvQWdBZ0FXb2lCVFlDQUNBQ1FRUnFJUUlNQVFzTElBUWdBallDQUF3QkN5QUhJQWNvQWdBZ0NXb2lCVFlDQUNBRklBWkdEUUlnQXlBSVJnUkFJQVFvQWdBaEFpQURJUWdNQndzZ0RVRUVha0VBSUFBb0FnZ1F5d0VpQ0VGL1J3MEJDMEVDSVJBTUF3c2dEVUVFYWlFQ0lBWWdCeWdDQUdzZ0NFa05BZ05BSUFnRVFDQUNMUUFBSVFVZ0J5QUhLQUlBSWdsQkFXbzJBZ0FnQ1NBRk9nQUFJQWhCQVdzaENDQUNRUUZxSVFJTUFRc0xJQVFnQkNnQ0FFRUVhaUlDTmdJQUlBSWhDQU5BSUFNZ0NFWUVRQ0FESVFnTUJRc2dDQ2dDQUVVTkJDQUlRUVJxSVFnTUFBc0FDeUFFS0FJQUN5QURSeUVRQ3lBTlFSQnFKQUFnRUE4TElBY29BZ0FoQlF3QUN3QUxDUUFnQUJDWUFoQVFDemNBSXdCQkVHc2lBQ1FBSUFBZ0JEWUNEQ0FBSUFNZ0FtczJBZ2dnQUVFTWFpQUFRUWhxRUtJQktBSUFJUUVnQUVFUWFpUUFJQUVMTkFBRFFDQUJJQUpHUlFSQUlBUWdBU3dBQUNJQUlBTWdBRUVBVGhzNkFBQWdCRUVCYWlFRUlBRkJBV29oQVF3QkN3c2dBZ3NNQUNBQklBSWdBVUVBVGhzTEtnQURRQ0FCSUFKR1JRUkFJQU1nQVMwQUFEb0FBQ0FEUVFGcUlRTWdBVUVCYWlFQkRBRUxDeUFDQzBBQUEwQWdBU0FDUndSQUlBRWdBU3dBQUNJQVFRQk9CSDlCME1RQUtBSUFJQUVzQUFCQkFuUnFLQUlBQlNBQUN6b0FBQ0FCUVFGcUlRRU1BUXNMSUFJTEp3QWdBVUVBVGdSL1FkREVBQ2dDQUNBQlFmOEJjVUVDZEdvb0FnQUZJQUVMUVJoMFFSaDFDejhBQTBBZ0FTQUNSd1JBSUFFZ0FTd0FBQ0lBUVFCT0JIOUJ3RGdvQWdBZ0FTd0FBRUVDZEdvb0FnQUZJQUFMT2dBQUlBRkJBV29oQVF3QkN3c2dBZ3NtQUNBQlFRQk9CSDlCd0Rnb0FnQWdBVUgvQVhGQkFuUnFLQUlBQlNBQkMwRVlkRUVZZFFzSkFDQUFFSTRDRUJBTE5RQURRQ0FCSUFKR1JRUkFJQVFnQVNnQ0FDSUFJQU1nQUVHQUFVa2JPZ0FBSUFSQkFXb2hCQ0FCUVFScUlRRU1BUXNMSUFJTEV3QWdBU0FDSUFGQmdBRkpHMEVZZEVFWWRRc3FBQU5BSUFFZ0FrWkZCRUFnQXlBQkxBQUFOZ0lBSUFOQkJHb2hBeUFCUVFGcUlRRU1BUXNMSUFJTFFRQURRQ0FCSUFKSEJFQWdBU0FCS0FJQUlnQkIvd0JOQkg5QjBNUUFLQUlBSUFFb0FnQkJBblJxS0FJQUJTQUFDellDQUNBQlFRUnFJUUVNQVFzTElBSUxIZ0FnQVVIL0FFMEVmMEhReEFBb0FnQWdBVUVDZEdvb0FnQUZJQUVMQzBBQUEwQWdBU0FDUndSQUlBRWdBU2dDQUNJQVFmOEFUUVIvUWNBNEtBSUFJQUVvQWdCQkFuUnFLQUlBQlNBQUN6WUNBQ0FCUVFScUlRRU1BUXNMSUFJTEhRQWdBVUgvQUUwRWYwSEFPQ2dDQUNBQlFRSjBhaWdDQUFVZ0FRc0xSQUFDUUFOQUlBSWdBMFlOQVFKQUlBSW9BZ0JCL3dCTERRQkJzRElvQWdBZ0FpZ0NBRUVCZEdvdkFRQWdBWEZGRFFBZ0FrRUVhaUVDREFFTEN5QUNJUU1MSUFNTFF3QURRQUpBSUFJZ0EwY0VmeUFDS0FJQVFmOEFTdzBCUWJBeUtBSUFJQUlvQWdCQkFYUnFMd0VBSUFGeFJRMEJJQUlGSUFNTER3c2dBa0VFYWlFQ0RBQUxBQXRGQUFOQUlBRWdBa2NFUUNBRElBRW9BZ0JCL3dCTkJIOUJzRElvQWdBZ0FTZ0NBRUVCZEdvdkFRQUZRUUFMT3dFQUlBTkJBbW9oQXlBQlFRUnFJUUVNQVFzTElBSUxJd0FnQWtIL0FFMEVmMEd3TWlnQ0FDQUNRUUYwYWk4QkFDQUJjVUVBUndWQkFBc0xRQUVDZnlBQUtBSUFLQUlBSWdBb0FnQWdBQ2dDQ0NJQ1FRRjFhaUVCSUFBb0FnUWhBQ0FCSUFKQkFYRUVmeUFCS0FJQUlBQnFLQUlBQlNBQUN4RUJBQXNQQUNBQUlBQW9BZ0FvQWdRUkFRQUxId0FnQUFKL1FmaUlBVUg0aUFFb0FnQkJBV29pQURZQ0FDQUFDellDQkFzSkFDQUFFSk1DRUJBTG1BRUFJd0JCRUdzaUF5UUFBa0FnQlJBMVJRUkFJQUFnQlNnQ0NEWUNDQ0FBSUFVcEFnQTNBZ0FNQVFzZ0JTZ0NBQ0VFQWtBQ1FBSkFJQVVvQWdRaUFrRUJUUVJBSUFBaEFTQUFJQUlRT2d3QkN5QUNRZS8vLy84RFN3MEJJQUFnQUNBQ0VJSUJRUUZxSWdVUWdRRWlBUkJOSUFBZ0JSQk1JQUFnQWhBNUN5QUJJQVFnQWtFQmFoQnhEQUVMRUJjQUN3c2dBMEVRYWlRQUN3a0FJQUFnQlJEUkFRdUdBd0VJZnlNQVFmQURheUlBSkFBZ0FFSG9BMm9pQmlBREVBOGdCaEE3SVFvZ0JSQUpCRUFnQlVFQUVMRUJLQUlBSUFwQkxSQTlSaUVMQ3lBQ0lBc2dBRUhvQTJvZ0FFSGdBMm9nQUVIY0Eyb2dBRUhZQTJvZ0FFSElBMm9RRVNJTUlBQkJ1QU5xRUVjaUJpQUFRYWdEYWhCSElnY2dBRUdrQTJvUW13SWdBRUUxTmdJUUlBQkJDR3BCQUNBQVFSQnFJZ0lRSGlFSUFrQUNmeUFGRUFrZ0FDZ0NwQU5LQkVBZ0JSQUpJUWtnQUNnQ3BBTWhEU0FIRUFrZ0NTQU5hMEVCZEdvZ0JoQUphaUFBS0FLa0EycEJBV29NQVFzZ0J4QUpJQVlRQ1dvZ0FDZ0NwQU5xUVFKcUN5SUpRZVVBU1EwQUlBZ2dDVUVDZEJBWkVDY2dDQ2dDQUNJQ0RRQVFGd0FMSUFJZ0FFRUVhaUFBSUFNb0FnUWdCUkFOSUFVUURTQUZFQWxCQW5ScUlBb2dDeUFBUWVBRGFpQUFLQUxjQXlBQUtBTFlBeUFNSUFZZ0J5QUFLQUtrQXhDYUFpQUJJQUlnQUNnQ0JDQUFLQUlBSUFNZ0JCQmlJUUVnQ0JBZElBY1FDaG9nQmhBS0dpQU1FQW9hSUFCQjZBTnFFQTRnQUVId0Eyb2tBQ0FCQzdzRUFRdC9Jd0JCc0FocklnQWtBQ0FBSUFVM0F4QWdBQ0FHTndNWUlBQWdBRUhBQjJvaUJ6WUN2QWNnQnlBQVFSQnFFTllDSVFjZ0FFRTFOZ0tnQkNBQVFaZ0Vha0VBSUFCQm9BUnFJZ2tRSGlFT0lBQkJOVFlDb0FRZ0FFR1FCR3BCQUNBSkVCNGhDZ0pBSUFkQjVBQlBCRUFRRmlFSElBQWdCVGNEQUNBQUlBWTNBd2dnQUVHOEIyb2dCMEh1SENBQUVGb2lCMEYvUmcwQklBNGdBQ2dDdkFjUUp5QUtJQWRCQW5RUUdSQW5JQW9RbmdJTkFTQUtLQUlBSVFrTElBQkJpQVJxSWdnZ0F4QVBJQWdRT3lJUklBQW9BcndISWdnZ0J5QUlhaUFKRUdNZ0IwRUFTZ1JBSUFBb0Fyd0hMUUFBUVMxR0lROExJQUlnRHlBQVFZZ0VhaUFBUVlBRWFpQUFRZndEYWlBQVFmZ0RhaUFBUWVnRGFoQVJJaEFnQUVIWUEyb1FSeUlJSUFCQnlBTnFFRWNpQ3lBQVFjUURhaENiQWlBQVFUVTJBakFnQUVFb2FrRUFJQUJCTUdvaUFoQWVJUXdDZnlBQUtBTEVBeUlOSUFkSUJFQWdDeEFKSUFjZ0RXdEJBWFJxSUFnUUNXb2dBQ2dDeEFOcVFRRnFEQUVMSUFzUUNTQUlFQWxxSUFBb0FzUURha0VDYWdzaURVSGxBRThFUUNBTUlBMUJBblFRR1JBbklBd29BZ0FpQWtVTkFRc2dBaUFBUVNScUlBQkJJR29nQXlnQ0JDQUpJQWtnQjBFQ2RHb2dFU0FQSUFCQmdBUnFJQUFvQXZ3RElBQW9BdmdESUJBZ0NDQUxJQUFvQXNRREVKb0NJQUVnQWlBQUtBSWtJQUFvQWlBZ0F5QUVFR0loQVNBTUVCMGdDeEFLR2lBSUVBb2FJQkFRQ2hvZ0FFR0lCR29RRGlBS0VCMGdEaEFkSUFCQnNBaHFKQUFnQVE4TEVCY0FDLzRDQVFoL0l3QkJ3QUZySWdBa0FDQUFRYmdCYWlJR0lBTVFEeUFHRURJaENpQUZFQWtFUUNBRlFRQVFDeTBBQUNBS1FTMFFLVUgvQVhGR0lRc0xJQUlnQ3lBQVFiZ0JhaUFBUWJBQmFpQUFRYThCYWlBQVFhNEJhaUFBUWFBQmFoQVJJZ3dnQUVHUUFXb1FFU0lHSUFCQmdBRnFFQkVpQnlBQVFmd0FhaENkQWlBQVFUVTJBaEFnQUVFSWFrRUFJQUJCRUdvaUFoQWVJUWdDUUFKL0lBVVFDU0FBS0FKOFNnUkFJQVVRQ1NFSklBQW9BbndoRFNBSEVBa2dDU0FOYTBFQmRHb2dCaEFKYWlBQUtBSjhha0VCYWd3QkN5QUhFQWtnQmhBSmFpQUFLQUo4YWtFQ2Fnc2lDVUhsQUVrTkFDQUlJQWtRR1JBbklBZ29BZ0FpQWcwQUVCY0FDeUFDSUFCQkJHb2dBQ0FES0FJRUlBVVFEU0FGRUEwZ0JSQUphaUFLSUFzZ0FFR3dBV29nQUN3QXJ3RWdBQ3dBcmdFZ0RDQUdJQWNnQUNnQ2ZCQ2NBaUFCSUFJZ0FDZ0NCQ0FBS0FJQUlBTWdCQkJXSVFFZ0NCQWRJQWNRQ2hvZ0JoQUtHaUFNRUFvYUlBQkJ1QUZxRUE0Z0FFSEFBV29rQUNBQkM3SUVBUXQvSXdCQjBBTnJJZ0FrQUNBQUlBVTNBeEFnQUNBR053TVlJQUFnQUVIZ0Ftb2lCellDM0FJZ0J5QUFRUkJxRU5ZQ0lRY2dBRUUxTmdMd0FTQUFRZWdCYWtFQUlBQkI4QUZxSWdrUUhpRU9JQUJCTlRZQzhBRWdBRUhnQVdwQkFDQUpFQjRoQ2dKQUlBZEI1QUJQQkVBUUZpRUhJQUFnQlRjREFDQUFJQVkzQXdnZ0FFSGNBbW9nQjBIdUhDQUFFRm9pQjBGL1JnMEJJQTRnQUNnQzNBSVFKeUFLSUFjUUdSQW5JQW9RbmdJTkFTQUtLQUlBSVFrTElBQkIyQUZxSWdnZ0F4QVBJQWdRTWlJUklBQW9BdHdDSWdnZ0J5QUlhaUFKRUc4Z0IwRUFTZ1JBSUFBb0F0d0NMUUFBUVMxR0lROExJQUlnRHlBQVFkZ0JhaUFBUWRBQmFpQUFRYzhCYWlBQVFjNEJhaUFBUWNBQmFoQVJJaEFnQUVHd0FXb1FFU0lJSUFCQm9BRnFFQkVpQ3lBQVFad0JhaENkQWlBQVFUVTJBakFnQUVFb2FrRUFJQUJCTUdvaUFoQWVJUXdDZnlBQUtBS2NBU0lOSUFkSUJFQWdDeEFKSUFjZ0RXdEJBWFJxSUFnUUNXb2dBQ2dDbkFGcVFRRnFEQUVMSUFzUUNTQUlFQWxxSUFBb0Fwd0Jha0VDYWdzaURVSGxBRThFUUNBTUlBMFFHUkFuSUF3b0FnQWlBa1VOQVFzZ0FpQUFRU1JxSUFCQklHb2dBeWdDQkNBSklBY2dDV29nRVNBUElBQkIwQUZxSUFBc0FNOEJJQUFzQU00QklCQWdDQ0FMSUFBb0Fwd0JFSndDSUFFZ0FpQUFLQUlrSUFBb0FpQWdBeUFFRUZZaEFTQU1FQjBnQ3hBS0dpQUlFQW9hSUJBUUNob2dBRUhZQVdvUURpQUtFQjBnRGhBZElBQkIwQU5xSkFBZ0FROExFQmNBQzZjRkFRTi9Jd0JCd0FOcklnQWtBQ0FBSUFJMkFyQURJQUFnQVRZQ3VBTWdBRUUyTmdJVUlBQkJHR29nQUVFZ2FpQUFRUlJxSWdjUUhpRUpJQUJCRUdvaUFTQUVFQThnQVJBN0lRZ2dBRUVBT2dBUElBQkJ1QU5xSUFJZ0F5QUJJQVFvQWdRZ0JTQUFRUTlxSUFnZ0NTQUhJQUJCc0FOcUVLUUNCRUFqQUVFUWF5SUJKQUFDUUNBR0VEVUVRQ0FHS0FJQUlRSWdBVUVBTmdJTUlBSWdBVUVNYWhBeklBWkJBQkE1REFFTElBRkJBRFlDQ0NBR0lBRkJDR29RTXlBR1FRQVFPZ3NnQVVFUWFpUUFJQUF0QUE4RVFDQUdJQWhCTFJBOUVNY0JDeUFJUVRBUVBTRUJJQWtvQWdBaEJDQUFLQUlVSWdoQkJHc2hBZ05BQWtBZ0FpQUVUUTBBSUFRb0FnQWdBVWNOQUNBRVFRUnFJUVFNQVFzTEl3QkJFR3NpQVNRQUlBWVFDU0VDSUFZUXp3RWhBd0pBSUFRZ0NCQ2lBaUlIUlEwQUlBWVFEU0FFVFFSL0lBUWdCaEFOSUFZUUNVRUNkR3BOQlVFQUMwVUVRQ0FISUFNZ0FtdExCRUFnQmlBRElBSWdCMm9nQTJzZ0FpQUNFUE1CQ3lBR0VBMGdBa0VDZEdvaEF3TkFJQVFnQ0VjRVFDQURJQVFRTXlBRVFRUnFJUVFnQTBFRWFpRUREQUVMQ3lBQlFRQTJBZ0FnQXlBQkVETWdCaUFDSUFkcUVIZ01BUXNqQUVFUWF5SUNKQUFnQVNBRUlBZ1F6Z0lnQWtFUWFpUUFJQUVRRFNFSUlBRVFDU0VDSXdCQkVHc2lCQ1FBQWtBZ0FpQUdFTThCSWdjZ0JoQUpJZ05yVFFSQUlBSkZEUUVnQmhBTklnY2dBMEVDZEdvZ0NDQUNFSEVnQmlBQ0lBTnFJZ0lRZUNBRVFRQTJBZ3dnQnlBQ1FRSjBhaUFFUVF4cUVETU1BUXNnQmlBSElBSWdBMm9nQjJzZ0F5QURRUUFnQWlBSUVQUUJDeUFFUVJCcUpBQWdBUkFLR2dzZ0FVRVFhaVFBQ3lBQVFiZ0RhaUFBUWJBRGFoQW9CRUFnQlNBRktBSUFRUUp5TmdJQUN5QUFLQUs0QXlFQklBQkJFR29RRGlBSkVCMGdBRUhBQTJva0FDQUJDOWNEQVFKL0l3QkI4QVJySWdBa0FDQUFJQUkyQXVBRUlBQWdBVFlDNkFRZ0FFRTJOZ0lRSUFCQnlBRnFJQUJCMEFGcUlBQkJFR29RSGlFQklBQkJ3QUZxSWdjZ0JCQVBJQWNRT3lFSUlBQkJBRG9BdndFQ1FDQUFRZWdFYWlBQ0lBTWdCeUFFS0FJRUlBVWdBRUcvQVdvZ0NDQUJJQUJCeEFGcUlBQkI0QVJxRUtRQ1JRMEFJQUJCb3g0b0FBQTJBTGNCSUFCQm5CNHBBQUEzQTdBQklBZ2dBRUd3QVdvZ0FFRzZBV29nQUVHQUFXb1FZeUFBUVRVMkFoQWdBRUVJYWtFQUlBQkJFR29pQWhBZUlRTUNRQ0FBS0FMRUFTQUJLQUlBYTBHSkEwNEVRQ0FESUFBb0FzUUJJQUVvQWdCclFRSjFRUUpxRUJrUUp5QURLQUlBUlEwQklBTW9BZ0FoQWdzZ0FDMEF2d0VFUUNBQ1FTMDZBQUFnQWtFQmFpRUNDeUFCS0FJQUlRUURRQ0FBS0FMRUFTQUVUUVJBQWtBZ0FrRUFPZ0FBSUFBZ0JqWUNBQ0FBUVJCcUlBQVExd0pCQVVjTkFDQURFQjBNQkFzRklBSWdBRUd3QVdvZ0FFR0FBV29pQnlBSFFTaHFJQVFRMGdFZ0IydEJBblZxTFFBQU9nQUFJQUpCQVdvaEFpQUVRUVJxSVFRTUFRc0xFQmNBQ3hBWEFBc2dBRUhvQkdvZ0FFSGdCR29RS0FSQUlBVWdCU2dDQUVFQ2NqWUNBQXNnQUNnQzZBUWhBaUFBUWNBQmFoQU9JQUVRSFNBQVFmQUVhaVFBSUFJTHBBVUJBMzhqQUVHZ0FXc2lBQ1FBSUFBZ0FqWUNrQUVnQUNBQk5nS1lBU0FBUVRZMkFoUWdBRUVZYWlBQVFTQnFJQUJCRkdvaUJ4QWVJUWtnQUVFUWFpSUJJQVFRRHlBQkVESWhDQ0FBUVFBNkFBOGdBRUdZQVdvZ0FpQURJQUVnQkNnQ0JDQUZJQUJCRDJvZ0NDQUpJQWNnQUVHRUFXb1Fxd0lFUUNNQVFSQnJJZ0VrQUFKQUlBWVFOUVJBSUFZb0FnQWhBaUFCUVFBNkFBOGdBaUFCUVE5cUVEUWdCa0VBRURrTUFRc2dBVUVBT2dBT0lBWWdBVUVPYWhBMElBWkJBQkE2Q3lBQlFSQnFKQUFnQUMwQUR3UkFJQVlnQ0VFdEVDa1FvUUVMSUFoQk1CQXBJUUVnQ1NnQ0FDRUVJQUFvQWhRaUNFRUJheUVDSUFGQi93RnhJUUVEUUFKQUlBSWdCRTBOQUNBRUxRQUFJQUZIRFFBZ0JFRUJhaUVFREFFTEN5TUFRUkJySWdFa0FDQUdFQWtoQWlBR0VCTWhBd0pBSUFRZ0NCRHZBaUlIUlEwQUlBWVFEU0FFVFFSL0lBUWdCaEFOSUFZUUNXcE5CVUVBQzBVRVFDQUhJQU1nQW10TEJFQWdCaUFESUFJZ0Iyb2dBMnNnQWlBQ0VNZ0JDeUFHRUEwZ0Ftb2hBd05BSUFRZ0NFY0VRQ0FESUFRUU5DQUVRUUZxSVFRZ0EwRUJhaUVEREFFTEN5QUJRUUE2QUE4Z0F5QUJRUTlxRURRZ0JpQUNJQWRxRUhnTUFRc2pBRUVRYXlJQ0pBQWdBU0FFSUFnUTh3SWdBa0VRYWlRQUlBRVFEU0VJSUFFUUNTRUNJd0JCRUdzaUJDUUFBa0FnQWlBR0VCTWlCeUFHRUFraUEydE5CRUFnQWtVTkFTQUdFQTBpQnlBRGFpQUlJQUlRVlNBR0lBSWdBMm9pQWhCNElBUkJBRG9BRHlBQ0lBZHFJQVJCRDJvUU5Bd0JDeUFHSUFjZ0FpQURhaUFIYXlBRElBTkJBQ0FDSUFnUStBRUxJQVJCRUdva0FDQUJFQW9hQ3lBQlFSQnFKQUFMSUFCQm1BRnFJQUJCa0FGcUVDWUVRQ0FGSUFVb0FnQkJBbkkyQWdBTElBQW9BcGdCSVFFZ0FFRVFhaEFPSUFrUUhTQUFRYUFCYWlRQUlBRUx6UU1CQW44akFFR2dBbXNpQUNRQUlBQWdBallDa0FJZ0FDQUJOZ0tZQWlBQVFUWTJBaEFnQUVHWUFXb2dBRUdnQVdvZ0FFRVFhaEFlSVFFZ0FFR1FBV29pQnlBRUVBOGdCeEF5SVFnZ0FFRUFPZ0NQQVFKQUlBQkJtQUpxSUFJZ0F5QUhJQVFvQWdRZ0JTQUFRWThCYWlBSUlBRWdBRUdVQVdvZ0FFR0VBbW9RcXdKRkRRQWdBRUdqSGlnQUFEWUFod0VnQUVHY0hpa0FBRGNEZ0FFZ0NDQUFRWUFCYWlBQVFZb0JhaUFBUWZZQWFoQnZJQUJCTlRZQ0VDQUFRUWhxUVFBZ0FFRVFhaUlDRUI0aEF3SkFJQUFvQXBRQklBRW9BZ0JyUWVNQVRnUkFJQU1nQUNnQ2xBRWdBU2dDQUd0QkFtb1FHUkFuSUFNb0FnQkZEUUVnQXlnQ0FDRUNDeUFBTFFDUEFRUkFJQUpCTFRvQUFDQUNRUUZxSVFJTElBRW9BZ0FoQkFOQUlBQW9BcFFCSUFSTkJFQUNRQ0FDUVFBNkFBQWdBQ0FHTmdJQUlBQkJFR29nQUJEWEFrRUJSdzBBSUFNUUhRd0VDd1VnQWlBQVFmWUFhaUlISUFkQkNtb2dCQkRWQVNBQWF5QUFhaTBBQ2pvQUFDQUNRUUZxSVFJZ0JFRUJhaUVFREFFTEN4QVhBQXNRRndBTElBQkJtQUpxSUFCQmtBSnFFQ1lFUUNBRklBVW9BZ0JCQW5JMkFnQUxJQUFvQXBnQ0lRSWdBRUdRQVdvUURpQUJFQjBnQUVHZ0Ftb2tBQ0FDQzVnQ0FRSi9Jd0JCb0FOcklnZ2tBQ0FJSUFoQm9BTnFJZ00yQWd3akFFR1FBV3NpQnlRQUlBY2dCMEdFQVdvMkFod2dBRUVJYWlBSFFTQnFJZ0lnQjBFY2FpQUVJQVVnQmhDeEFpQUhRZ0EzQXhBZ0J5QUNOZ0lNSUFoQkVHb2lBaUFJS0FJTUVLNENJUVFnQUNnQ0NDRUZJd0JCRUdzaUFDUUFJQUFnQlRZQ0RDQUFRUWhxSUFCQkRHb1FVaUVGSUFJZ0IwRU1haUFFSUFkQkVHb1EwZ0loQkNBRkVGRWdBRUVRYWlRQUlBUkJmMFlFUUJBWEFBc2dDQ0FDSUFSQkFuUnFOZ0lNSUFkQmtBRnFKQUFnQ0NnQ0RDRUVJd0JCRUdzaUFDUUFJQUFnQVRZQ0NBTkFJQUlnQkVjRVFDQUFRUWhxSUFJb0FnQVE5d0lnQWtFRWFpRUNEQUVMQ3lBQUtBSUlJUUVnQUVFUWFpUUFJQU1rQUNBQkM0VUJBQ01BUVlBQmF5SUNKQUFnQWlBQ1FmUUFhallDRENBQVFRaHFJQUpCRUdvaUFDQUNRUXhxSUFRZ0JTQUdFTEVDSUFBaEJDQUNLQUlNSVFNakFFRVFheUlBSkFBZ0FDQUJOZ0lJQTBBZ0F5QUVSd1JBSUFCQkNHb2dCQ3dBQUJENEFpQUVRUUZxSVFRTUFRc0xJQUFvQWdnaEFTQUFRUkJxSkFBZ0FrR0FBV29rQUNBQkMrQU1BUUYvSXdCQlFHb2lCeVFBSUFjZ0FUWUNPQ0FFUVFBMkFnQWdCeUFERUE4Z0J4QTdJUWdnQnhBT0FuOENRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUlBWkJ3UUJyRGprQUFSY0VGd1VYQmdjWEZ4Y0tGeGNYRnc0UEVCY1hGeE1WRnhjWEZ4Y1hGd0FCQWdNREZ4Y0JGd2dYRndrTEZ3d1hEUmNMRnhjUkVoUVdDeUFBSUFWQkdHb2dCMEU0YWlBQ0lBUWdDQkMxQWd3WUN5QUFJQVZCRUdvZ0IwRTRhaUFDSUFRZ0NCQzBBZ3dYQ3lBSElBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDREJFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlEWUNPQXdXQ3lBSFFUaHFJQUlnQkNBSVFRSVFXQ0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJBRXh5SUFCQkgwcHlSUVJBSUFVZ0FEWUNEQXdCQ3lBRUlBRkJCSEkyQWdBTERCVUxJQWRCdU5FQUtRTUFOd01ZSUFkQnNORUFLUU1BTndNUUlBZEJxTkVBS1FNQU53TUlJQWRCb05FQUtRTUFOd01BSUFjZ0FDQUJJQUlnQXlBRUlBVWdCeUFIUVNCcUVHQTJBamdNRkFzZ0IwSFkwUUFwQXdBM0F4Z2dCMEhRMFFBcEF3QTNBeEFnQjBISTBRQXBBd0EzQXdnZ0IwSEEwUUFwQXdBM0F3QWdCeUFBSUFFZ0FpQURJQVFnQlNBSElBZEJJR29RWURZQ09Bd1RDeUFIUVRocUlBSWdCQ0FJUVFJUVdDRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkYwcHlSUVJBSUFVZ0FEWUNDQXdCQ3lBRUlBRkJCSEkyQWdBTERCSUxJQWRCT0dvZ0FpQUVJQWhCQWhCWUlRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFQVRISWdBRUVNU25KRkJFQWdCU0FBTmdJSURBRUxJQVFnQVVFRWNqWUNBQXNNRVFzZ0IwRTRhaUFDSUFRZ0NFRURFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRZTBDU25KRkJFQWdCU0FBTmdJY0RBRUxJQVFnQVVFRWNqWUNBQXNNRUFzZ0IwRTRhaUFDSUFRZ0NFRUNFRmdoQUFKQUlBUW9BZ0FpQVVFRWNTQUFRUXhLY2tVRVFDQUZJQUJCQVdzMkFoQU1BUXNnQkNBQlFRUnlOZ0lBQ3d3UEN5QUhRVGhxSUFJZ0JDQUlRUUlRV0NFQUFrQWdCQ2dDQUNJQlFRUnhJQUJCTzBweVJRUkFJQVVnQURZQ0JBd0JDeUFFSUFGQkJISTJBZ0FMREE0TElBZEJPR29oQUNNQVFSQnJJZ0VrQUNBQklBSTJBZ2dEUUFKQUlBQWdBVUVJYWhBMlJRMEFJQWhCZ01BQUlBQVFJUkJPUlEwQUlBQVFKUm9NQVFzTElBQWdBVUVJYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQlFSQnFKQUFNRFFzZ0IwRTRhaUVCQWtBZ0FFRUlhaUFBS0FJSUtBSUlFUUFBSWdBUUNVRUFJQUJCREdvUUNXdEdCRUFnQkNBRUtBSUFRUVJ5TmdJQURBRUxJQUVnQWlBQUlBQkJHR29nQ0NBRVFRQVFzZ0VnQUdzaUFTQUZLQUlJSWdCQkRFZHlSUVJBSUFWQkFEWUNDQXdCQ3lBQlFReEhJQUJCQzBweVJRUkFJQVVnQUVFTWFqWUNDQXNMREF3TElBZEI0TkVBUVN3UVFpSUdJQUFnQVNBQ0lBTWdCQ0FGSUFZZ0JrRXNhaEJnTmdJNERBc0xJQWRCb05JQUtBSUFOZ0lRSUFkQm1OSUFLUU1BTndNSUlBZEJrTklBS1FNQU53TUFJQWNnQUNBQklBSWdBeUFFSUFVZ0J5QUhRUlJxRUdBMkFqZ01DZ3NnQjBFNGFpQUNJQVFnQ0VFQ0VGZ2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUeEtja1VFUUNBRklBQTJBZ0FNQVFzZ0JDQUJRUVJ5TmdJQUN3d0pDeUFIUWNqU0FDa0RBRGNER0NBSFFjRFNBQ2tEQURjREVDQUhRYmpTQUNrREFEY0RDQ0FIUWJEU0FDa0RBRGNEQUNBSElBQWdBU0FDSUFNZ0JDQUZJQWNnQjBFZ2FoQmdOZ0k0REFnTElBZEJPR29nQWlBRUlBaEJBUkJZSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVHU25KRkJFQWdCU0FBTmdJWURBRUxJQVFnQVVFRWNqWUNBQXNNQndzZ0FDQUJJQUlnQXlBRUlBVWdBQ2dDQUNnQ0ZCRUZBQXdIQ3lBSElBQWdBU0FDSUFNZ0JDQUZJQUJCQ0dvZ0FDZ0NDQ2dDR0JFQUFDSUFFQTBnQUJBTklBQVFDVUVDZEdvUVlEWUNPQXdGQ3lBRlFSUnFJQWRCT0dvZ0FpQUVJQWdRc3dJTUJBc2dCMEU0YWlBQ0lBUWdDRUVFRUZnaEFDQUVMUUFBUVFSeFJRUkFJQVVnQUVIc0RtczJBaFFMREFNTElBWkJKVVlOQVFzZ0JDQUVLQUlBUVFSeU5nSUFEQUVMSXdCQkVHc2lBQ1FBSUFBZ0FqWUNDRUVHSVFFQ1FBSkFJQWRCT0dvaUFpQUFRUWhxRUNnTkFFRUVJUUVnQ0NBQ0VDRVFod0ZCSlVjTkFFRUNJUUVnQWhBbElBQkJDR29RS0VVTkFRc2dCQ0FFS0FJQUlBRnlOZ0lBQ3lBQVFSQnFKQUFMSUFjb0FqZ0xJUUFnQjBGQWF5UUFJQUFMUndFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBN0lRRWdCaEFPSUFWQkZHb2dCa0VJYWlBQ0lBUWdBUkN6QWlBR0tBSUlJUUFnQmtFUWFpUUFJQUFMU1FFQmZ5TUFRUkJySWdZa0FDQUdJQUUyQWdnZ0JpQURFQThnQmhBN0lRRWdCaEFPSUFBZ0JVRVFhaUFHUVFocUlBSWdCQ0FCRUxRQ0lBWW9BZ2doQUNBR1FSQnFKQUFnQUF0SkFRRi9Jd0JCRUdzaUJpUUFJQVlnQVRZQ0NDQUdJQU1RRHlBR0VEc2hBU0FHRUE0Z0FDQUZRUmhxSUFaQkNHb2dBaUFFSUFFUXRRSWdCaWdDQ0NFQUlBWkJFR29rQUNBQUN6QUFJQUFnQVNBQ0lBTWdCQ0FGSUFCQkNHb2dBQ2dDQ0NnQ0ZCRUFBQ0lBRUEwZ0FCQU5JQUFRQ1VFQ2RHb1FZQXRjQVFGL0l3QkJJR3NpQmlRQUlBWkJ5TklBS1FNQU53TVlJQVpCd05JQUtRTUFOd01RSUFaQnVOSUFLUU1BTndNSUlBWkJzTklBS1FNQU53TUFJQUFnQVNBQ0lBTWdCQ0FGSUFZZ0JrRWdhaUlCRUdBaEFDQUJKQUFnQUF0TUFRRi9RY1NCQVVIQWdRRWdBaHNnQVRZQ0FDQUJRUUJLQkVCQm9JRUJRWUNCQVNBQ0d5RURRUUFoQWdOQUlBSWdBMm9nQUNBQ2FpMEFBRG9BQUNBQ1FRRnFJZ0lnQVVjTkFBc0xDNUFNQVFKL0l3QkJJR3NpQnlRQUlBY2dBVFlDR0NBRVFRQTJBZ0FnQjBFSWFpSUpJQU1RRHlBSkVESWhDQ0FKRUE0Q2Z3SkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBZ0JrSEJBR3NPT1FBQkZ3UVhCUmNHQnhjWEZ3b1hGeGNYRGc4UUZ4Y1hFeFVYRnhjWEZ4Y1hBQUVDQXdNWEZ3RVhDQmNYQ1FzWERCY05Gd3NYRnhFU0ZCWUxJQUFnQlVFWWFpQUhRUmhxSUFJZ0JDQUlFTGdDREJnTElBQWdCVUVRYWlBSFFSaHFJQUlnQkNBSUVMY0NEQmNMSUFjZ0FDQUJJQUlnQXlBRUlBVWdBRUVJYWlBQUtBSUlLQUlNRVFBQUlnQVFEU0FBRUEwZ0FCQUphaEJoTmdJWURCWUxJQWRCR0dvZ0FpQUVJQWhCQWhCWklRQUNRQ0FFS0FJQUlnRkJCSEVnQUVFQVRISWdBRUVmU25KRkJFQWdCU0FBTmdJTURBRUxJQVFnQVVFRWNqWUNBQXNNRlFzZ0IwS2wycjJwd3V6TGt2a0FOd01JSUFjZ0FDQUJJQUlnQXlBRUlBVWdCMEVJYWlBSFFSQnFFR0UyQWhnTUZBc2dCMEtsc3JXcDBxM0xrdVFBTndNSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUkJxRUdFMkFoZ01Fd3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFSZEtja1VFUUNBRklBQTJBZ2dNQVFzZ0JDQUJRUVJ5TmdJQUN3d1NDeUFIUVJocUlBSWdCQ0FJUVFJUVdTRUFBa0FnQkNnQ0FDSUJRUVJ4SUFCQkFFeHlJQUJCREVweVJRUkFJQVVnQURZQ0NBd0JDeUFFSUFGQkJISTJBZ0FMREJFTElBZEJHR29nQWlBRUlBaEJBeEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUh0QWtweVJRUkFJQVVnQURZQ0hBd0JDeUFFSUFGQkJISTJBZ0FMREJBTElBZEJHR29nQWlBRUlBaEJBaEJaSVFBQ1FDQUVLQUlBSWdGQkJIRWdBRUVNU25KRkJFQWdCU0FBUVFGck5nSVFEQUVMSUFRZ0FVRUVjallDQUFzTUR3c2dCMEVZYWlBQ0lBUWdDRUVDRUZraEFBSkFJQVFvQWdBaUFVRUVjU0FBUVR0S2NrVUVRQ0FGSUFBMkFnUU1BUXNnQkNBQlFRUnlOZ0lBQ3d3T0N5QUhRUmhxSVFBakFFRVFheUlCSkFBZ0FTQUNOZ0lJQTBBQ1FDQUFJQUZCQ0dvUU1VVU5BQ0FJUVlEQUFDQUFFQjhRUkVVTkFDQUFFQ0lhREFFTEN5QUFJQUZCQ0dvUUpnUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FVRVFhaVFBREEwTElBZEJHR29oQVFKQUlBQkJDR29nQUNnQ0NDZ0NDQkVBQUNJQUVBbEJBQ0FBUVF4cUVBbHJSZ1JBSUFRZ0JDZ0NBRUVFY2pZQ0FBd0JDeUFCSUFJZ0FDQUFRUmhxSUFnZ0JFRUFFTFFCSUFCcklnRWdCU2dDQ0NJQVFReEhja1VFUUNBRlFRQTJBZ2dNQVFzZ0FVRU1SeUFBUVF0S2NrVUVRQ0FGSUFCQkRHbzJBZ2dMQ3d3TUN5QUhRWlRSQUNnQUFEWUFEeUFIUVkzUkFDa0FBRGNEQ0NBSElBQWdBU0FDSUFNZ0JDQUZJQWRCQ0dvZ0IwRVRhaEJoTmdJWURBc0xJQWRCbk5FQUxRQUFPZ0FNSUFkQm1ORUFLQUFBTmdJSUlBY2dBQ0FCSUFJZ0F5QUVJQVVnQjBFSWFpQUhRUTFxRUdFMkFoZ01DZ3NnQjBFWWFpQUNJQVFnQ0VFQ0VGa2hBQUpBSUFRb0FnQWlBVUVFY1NBQVFUeEtja1VFUUNBRklBQTJBZ0FNQVFzZ0JDQUJRUVJ5TmdJQUN3d0pDeUFIUXFXUTZhblN5YzZTMHdBM0F3Z2dCeUFBSUFFZ0FpQURJQVFnQlNBSFFRaHFJQWRCRUdvUVlUWUNHQXdJQ3lBSFFSaHFJQUlnQkNBSVFRRVFXU0VBQWtBZ0JDZ0NBQ0lCUVFSeElBQkJCa3B5UlFSQUlBVWdBRFlDR0F3QkN5QUVJQUZCQkhJMkFnQUxEQWNMSUFBZ0FTQUNJQU1nQkNBRklBQW9BZ0FvQWhRUkJRQU1Cd3NnQnlBQUlBRWdBaUFESUFRZ0JTQUFRUWhxSUFBb0FnZ29BaGdSQUFBaUFCQU5JQUFRRFNBQUVBbHFFR0UyQWhnTUJRc2dCVUVVYWlBSFFSaHFJQUlnQkNBSUVMWUNEQVFMSUFkQkdHb2dBaUFFSUFoQkJCQlpJUUFnQkMwQUFFRUVjVVVFUUNBRklBQkI3QTVyTmdJVUN3d0RDeUFHUVNWR0RRRUxJQVFnQkNnQ0FFRUVjallDQUF3QkN5TUFRUkJySWdBa0FDQUFJQUkyQWdoQkJpRUJBa0FDUUNBSFFSaHFJZ0lnQUVFSWFoQW1EUUJCQkNFQklBZ2dBaEFmRUlnQlFTVkhEUUJCQWlFQklBSVFJaUFBUVFocUVDWkZEUUVMSUFRZ0JDZ0NBQ0FCY2pZQ0FBc2dBRUVRYWlRQUN5QUhLQUlZQ3lFQUlBZEJJR29rQUNBQUMwY0JBWDhqQUVFUWF5SUdKQUFnQmlBQk5nSUlJQVlnQXhBUElBWVFNaUVCSUFZUURpQUZRUlJxSUFaQkNHb2dBaUFFSUFFUXRnSWdCaWdDQ0NFQUlBWkJFR29rQUNBQUMwa0JBWDhqQUVFUWF5SUdKQUFnQmlBQk5nSUlJQVlnQXhBUElBWVFNaUVCSUFZUURpQUFJQVZCRUdvZ0JrRUlhaUFDSUFRZ0FSQzNBaUFHS0FJSUlRQWdCa0VRYWlRQUlBQUxTUUVCZnlNQVFSQnJJZ1lrQUNBR0lBRTJBZ2dnQmlBREVBOGdCaEF5SVFFZ0JoQU9JQUFnQlVFWWFpQUdRUWhxSUFJZ0JDQUJFTGdDSUFZb0FnZ2hBQ0FHUVJCcUpBQWdBQXN0QUNBQUlBRWdBaUFESUFRZ0JTQUFRUWhxSUFBb0FnZ29BaFFSQUFBaUFCQU5JQUFRRFNBQUVBbHFFR0VMUHdFQmZ5TUFRUkJySWdZa0FDQUdRcVdRNmFuU3ljNlMwd0EzQXdnZ0FDQUJJQUlnQXlBRUlBVWdCa0VJYWlBR1FSQnFJZ0VRWVNFQUlBRWtBQ0FBQzY0QkFRVi9Jd0JCMEFGcklnQWtBQ0FBUVl2UkFDOEFBRHNCekFFZ0FFR0gwUUFvQUFBMkFzZ0JFQlloQmlBQUlBUTJBZ0FnQUVHd0FXb2lCeUFISUFkQkZDQUdJQUJCeUFGcUlBQVFMQ0lJYWlJRUlBSVFQeUVHSUFCQkVHb2lCU0FDRUE4Z0JSQTdJUWtnQlJBT0lBa2dCeUFFSUFVUVl5QUJJQVVnQ0VFQ2RDQUZhaUlCSUFZZ0FHdEJBblFnQUdwQnNBVnJJQVFnQmtZYklBRWdBaUFERUdJaEFTQUFRZEFCYWlRQUlBRUxnQVFCQjM4akFFR3dBMnNpQUNRQUlBQkNKVGNEcUFNZ0FFR29BMnBCQVhKQmp4NGdBaWdDQkJDdkFTRUlJQUFnQUVHQUEybzJBdndDRUJZaEJnSi9JQWdFUUNBQ0tBSUlJUWNnQUVGQWF5QUZOd01BSUFBZ0JEY0RPQ0FBSUFjMkFqQWdBRUdBQTJwQkhpQUdJQUJCcUFOcUlBQkJNR29RTEF3QkN5QUFJQVEzQTFBZ0FDQUZOd05ZSUFCQmdBTnFRUjRnQmlBQVFhZ0RhaUFBUWRBQWFoQXNDeUVHSUFCQk5UWUNnQUVnQUVId0FtcEJBQ0FBUVlBQmFoQWVJUWtnQUVHQUEyb2lDaUVIQWtBZ0JrRWVUZ1JBRUJZaEJnSi9JQWdFUUNBQ0tBSUlJUWNnQUNBRk53TVFJQUFnQkRjRENDQUFJQWMyQWdBZ0FFSDhBbW9nQmlBQVFhZ0RhaUFBRUZvTUFRc2dBQ0FFTndNZ0lBQWdCVGNES0NBQVFmd0NhaUFHSUFCQnFBTnFJQUJCSUdvUVdnc2lCa0YvUmcwQklBa2dBQ2dDL0FJUUp5QUFLQUw4QWlFSEN5QUhJQVlnQjJvaUN5QUNFRDhoRENBQVFUVTJBb0FCSUFCQitBQnFRUUFnQUVHQUFXb1FIaUVIQWtBZ0FDZ0MvQUlnQUVHQUEycEdCRUFnQUVHQUFXb2hCZ3dCQ3lBR1FRTjBFQmtpQmtVTkFTQUhJQVlRSnlBQUtBTDhBaUVLQ3lBQVFlZ0FhaUlJSUFJUUR5QUtJQXdnQ3lBR0lBQkI5QUJxSUFCQjhBQnFJQWdRdWdJZ0NCQU9JQUVnQmlBQUtBSjBJQUFvQW5BZ0FpQURFR0loQVNBSEVCMGdDUkFkSUFCQnNBTnFKQUFnQVE4TEVCY0FDOXdEQVFkL0l3QkJnQU5ySWdBa0FDQUFRaVUzQS9nQ0lBQkIrQUpxUVFGeVFhUWZJQUlvQWdRUXJ3RWhCeUFBSUFCQjBBSnFOZ0xNQWhBV0lRVUNmeUFIQkVBZ0FpZ0NDQ0VHSUFBZ0JEa0RLQ0FBSUFZMkFpQWdBRUhRQW1wQkhpQUZJQUJCK0FKcUlBQkJJR29RTEF3QkN5QUFJQVE1QXpBZ0FFSFFBbXBCSGlBRklBQkIrQUpxSUFCQk1Hb1FMQXNoQlNBQVFUVTJBbEFnQUVIQUFtcEJBQ0FBUWRBQWFoQWVJUWdnQUVIUUFtb2lDU0VHQWtBZ0JVRWVUZ1JBRUJZaEJRSi9JQWNFUUNBQ0tBSUlJUVlnQUNBRU9RTUlJQUFnQmpZQ0FDQUFRY3dDYWlBRklBQkIrQUpxSUFBUVdnd0JDeUFBSUFRNUF4QWdBRUhNQW1vZ0JTQUFRZmdDYWlBQVFSQnFFRm9MSWdWQmYwWU5BU0FJSUFBb0Fzd0NFQ2NnQUNnQ3pBSWhCZ3NnQmlBRklBWnFJZ29nQWhBL0lRc2dBRUUxTmdKUUlBQkJ5QUJxUVFBZ0FFSFFBR29RSGlFR0FrQWdBQ2dDekFJZ0FFSFFBbXBHQkVBZ0FFSFFBR29oQlF3QkN5QUZRUU4wRUJraUJVVU5BU0FHSUFVUUp5QUFLQUxNQWlFSkN5QUFRVGhxSWdjZ0FoQVBJQWtnQ3lBS0lBVWdBRUhFQUdvZ0FFRkFheUFIRUxvQ0lBY1FEaUFCSUFVZ0FDZ0NSQ0FBS0FKQUlBSWdBeEJpSVFFZ0JoQWRJQWdRSFNBQVFZQURhaVFBSUFFUEN4QVhBQXVpQVFFRWZ5TUFRWUFDYXlJQUpBQWdBRUlsTndQNEFTQUFRZmdCYWlJR1FRRnlRZE1jUVFBZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSGdBV29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFSzRCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QmlJUUVnQUVHQUFtb2tBQ0FCQzdRQkFRTi9Jd0JCb0FGcklnQWtBQ0FBUVlYUkFDOEFBRHNCbkFFZ0FFR0IwUUFvQUFBMkFwZ0JJQUJCbUFGcUlnVkJBWEpCMmh4QkFDQUNLQUlFRUcwUUZpRUdJQUFnQkRZQ0FDQUFRWXNCYWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcmdFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFR0loQVNBQVFhQUJhaVFBSUFFTG9nRUJCSDhqQUVHQUFtc2lBQ1FBSUFCQ0pUY0QrQUVnQUVINEFXb2lCa0VCY2tIVEhFRUJJQUlvQWdRUWJSQVdJUWNnQUNBRU53TUFJQUJCNEFGcUlnVWdCVUVZSUFjZ0JpQUFFQ3dnQldvaUJ5QUNFRDhoQ0NBQVFSQnFJZ1lnQWhBUElBVWdDQ0FISUFCQklHb2lCU0FBUVJ4cUlBQkJHR29nQmhDdUFTQUdFQTRnQVNBRklBQW9BaHdnQUNnQ0dDQUNJQU1RWWlFQklBQkJnQUpxSkFBZ0FRc1dBRUdnZ1FGQnhJRUJLQUlBSUFJZ0FDQUJFT1lCQzdRQkFRTi9Jd0JCb0FGcklnQWtBQ0FBUVlYUkFDOEFBRHNCbkFFZ0FFR0IwUUFvQUFBMkFwZ0JJQUJCbUFGcUlnVkJBWEpCMmh4QkFTQUNLQUlFRUcwUUZpRUdJQUFnQkRZQ0FDQUFRWXNCYWlJRUlBUkJEU0FHSUFVZ0FCQXNJQVJxSWdZZ0FoQS9JUWNnQUVFUWFpSUZJQUlRRHlBRUlBY2dCaUFBUVNCcUlnUWdBRUVjYWlBQVFSaHFJQVVRcmdFZ0JSQU9JQUVnQkNBQUtBSWNJQUFvQWhnZ0FpQURFR0loQVNBQVFhQUJhaVFBSUFFTHpRRUJBWDhqQUVFd2F5SUZKQUFnQlNBQk5nSW9Ba0FnQWlnQ0JFRUJjVVVFUUNBQUlBRWdBaUFESUFRZ0FDZ0NBQ2dDR0JFR0FDRUNEQUVMSUFWQkdHb2lBQ0FDRUE4Z0FCQ01BU0VCSUFBUURnSkFJQVFFUUNBRlFSaHFJQUVRU3d3QkN5QUZRUmhxSUFFUVNnc2dCU0FGUVJocUVFQTJBaEFEUUNBRklBVkJHR29RYkRZQ0NDQUZRUkJxSUFWQkNHb1FXd1JBSUFWQktHb2dCVUVRYWlJQUtBSUFLQUlBRVBjQ0lBQVFsUUVNQVFVZ0JTZ0NLQ0VDSUFWQkdHb1FDaG9MQ3dzZ0JVRXdhaVFBSUFJTHBBRUJCWDhqQUVIZ0FHc2lBQ1FBSUFCQmk5RUFMd0FBT3dGY0lBQkJoOUVBS0FBQU5nSllFQlloQmlBQUlBUTJBZ0FnQUVGQWF5SUhJQWNnQjBFVUlBWWdBRUhZQUdvZ0FCQXNJZ2hxSWdRZ0FoQS9JUVlnQUVFUWFpSUZJQUlRRHlBRkVESWhDU0FGRUE0Z0NTQUhJQVFnQlJCdklBRWdCU0FGSUFocUlnRWdCaUFBYXlBQWFrRXdheUFFSUFaR0d5QUJJQUlnQXhCV0lRRWdBRUhnQUdva0FDQUJDNEFFQVFkL0l3QkJnQUpySWdBa0FDQUFRaVUzQS9nQklBQkIrQUZxUVFGeVFZOGVJQUlvQWdRUXJ3RWhDQ0FBSUFCQjBBRnFOZ0xNQVJBV0lRWUNmeUFJQkVBZ0FpZ0NDQ0VISUFCQlFHc2dCVGNEQUNBQUlBUTNBemdnQUNBSE5nSXdJQUJCMEFGcVFSNGdCaUFBUWZnQmFpQUFRVEJxRUN3TUFRc2dBQ0FFTndOUUlBQWdCVGNEV0NBQVFkQUJha0VlSUFZZ0FFSDRBV29nQUVIUUFHb1FMQXNoQmlBQVFUVTJBb0FCSUFCQndBRnFRUUFnQUVHQUFXb1FIaUVKSUFCQjBBRnFJZ29oQndKQUlBWkJIazRFUUJBV0lRWUNmeUFJQkVBZ0FpZ0NDQ0VISUFBZ0JUY0RFQ0FBSUFRM0F3Z2dBQ0FITmdJQUlBQkJ6QUZxSUFZZ0FFSDRBV29nQUJCYURBRUxJQUFnQkRjRElDQUFJQVUzQXlnZ0FFSE1BV29nQmlBQVFmZ0JhaUFBUVNCcUVGb0xJZ1pCZjBZTkFTQUpJQUFvQXN3QkVDY2dBQ2dDekFFaEJ3c2dCeUFHSUFkcUlnc2dBaEEvSVF3Z0FFRTFOZ0tBQVNBQVFmZ0Fha0VBSUFCQmdBRnFFQjRoQndKQUlBQW9Bc3dCSUFCQjBBRnFSZ1JBSUFCQmdBRnFJUVlNQVFzZ0JrRUJkQkFaSWdaRkRRRWdCeUFHRUNjZ0FDZ0N6QUVoQ2dzZ0FFSG9BR29pQ0NBQ0VBOGdDaUFNSUFzZ0JpQUFRZlFBYWlBQVFmQUFhaUFJRUx3Q0lBZ1FEaUFCSUFZZ0FDZ0NkQ0FBS0FKd0lBSWdBeEJXSVFFZ0J4QWRJQWtRSFNBQVFZQUNhaVFBSUFFUEN4QVhBQXZjQXdFSGZ5TUFRZEFCYXlJQUpBQWdBRUlsTndQSUFTQUFRY2dCYWtFQmNrR2tIeUFDS0FJRUVLOEJJUWNnQUNBQVFhQUJhallDbkFFUUZpRUZBbjhnQndSQUlBSW9BZ2doQmlBQUlBUTVBeWdnQUNBR05nSWdJQUJCb0FGcVFSNGdCU0FBUWNnQmFpQUFRU0JxRUN3TUFRc2dBQ0FFT1FNd0lBQkJvQUZxUVI0Z0JTQUFRY2dCYWlBQVFUQnFFQ3dMSVFVZ0FFRTFOZ0pRSUFCQmtBRnFRUUFnQUVIUUFHb1FIaUVJSUFCQm9BRnFJZ2toQmdKQUlBVkJIazRFUUJBV0lRVUNmeUFIQkVBZ0FpZ0NDQ0VHSUFBZ0JEa0RDQ0FBSUFZMkFnQWdBRUdjQVdvZ0JTQUFRY2dCYWlBQUVGb01BUXNnQUNBRU9RTVFJQUJCbkFGcUlBVWdBRUhJQVdvZ0FFRVFhaEJhQ3lJRlFYOUdEUUVnQ0NBQUtBS2NBUkFuSUFBb0Fwd0JJUVlMSUFZZ0JTQUdhaUlLSUFJUVB5RUxJQUJCTlRZQ1VDQUFRY2dBYWtFQUlBQkIwQUJxRUI0aEJnSkFJQUFvQXB3QklBQkJvQUZxUmdSQUlBQkIwQUJxSVFVTUFRc2dCVUVCZEJBWklnVkZEUUVnQmlBRkVDY2dBQ2dDbkFFaENRc2dBRUU0YWlJSElBSVFEeUFKSUFzZ0NpQUZJQUJCeEFCcUlBQkJRR3NnQnhDOEFpQUhFQTRnQVNBRklBQW9Ba1FnQUNnQ1FDQUNJQU1RVmlFQklBWVFIU0FJRUIwZ0FFSFFBV29rQUNBQkR3c1FGd0FMb1FFQkJIOGpBRUh3QUdzaUFDUUFJQUJDSlRjRGFDQUFRZWdBYWlJR1FRRnlRZE1jUVFBZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSFFBR29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFTEFCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVId0FHb2tBQ0FCQzdFQkFRTi9Jd0JCMEFCcklnQWtBQ0FBUVlYUkFDOEFBRHNCVENBQVFZSFJBQ2dBQURZQ1NDQUFRY2dBYWlJRlFRRnlRZG9jUVFBZ0FpZ0NCQkJ0RUJZaEJpQUFJQVEyQWdBZ0FFRTdhaUlFSUFSQkRTQUdJQVVnQUJBc0lBUnFJZ1lnQWhBL0lRY2dBRUVRYWlJRklBSVFEeUFFSUFjZ0JpQUFRU0JxSWdRZ0FFRWNhaUFBUVJocUlBVVFzQUVnQlJBT0lBRWdCQ0FBS0FJY0lBQW9BaGdnQWlBREVGWWhBU0FBUWRBQWFpUUFJQUVMb1FFQkJIOGpBRUh3QUdzaUFDUUFJQUJDSlRjRGFDQUFRZWdBYWlJR1FRRnlRZE1jUVFFZ0FpZ0NCQkJ0RUJZaEJ5QUFJQVEzQXdBZ0FFSFFBR29pQlNBRlFSZ2dCeUFHSUFBUUxDQUZhaUlISUFJUVB5RUlJQUJCRUdvaUJpQUNFQThnQlNBSUlBY2dBRUVnYWlJRklBQkJIR29nQUVFWWFpQUdFTEFCSUFZUURpQUJJQVVnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVId0FHb2tBQ0FCQyswUkFRNS9Jd0JCd0FKcklnWWtBQ0FHSUFFZ0FrRUJFTm9DTmdLVUFpQUdJQVlvQXBRQ0VKSUJOZ0tZQWtHaitJYXJmMEdjbE1MbGZTQUVHeUVPSUFCRklROUJzWmZYdW5vaEFRTkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFFaUFFSHd1dDdlQVV3RVFDQUFRY2l5dGRKN1RBUkFJQUJCeHN1cmlIcE1CRUFnQUVIdDVMR2plRVlOQ3lBQVFZeUdwN3g1UmcwS0lBQkJsOHpnOVhsSERSSWdCaWdDdEFKQmdJRUJhaUFHTFFDZkFqb0FBRUdYck13cElRRU1FZ3NnQUVHeGw5ZTZla1lOQWlBQVFleVpwdUo2UmcwTElBQkJ4OHVyaUhwSERSRWdCa0hBQW1va0FBOExJQUJCOUxlMTRuNU1CRUFnQUVISnNyWFNlMFlOQkNBQVFaeVV3dVY5UmcwR0lBQkJqUHlyeEg1SERSRU1FQXNnQUVIMXQ3WGlma1lOQkNBQVFhUDRocXQvUmcwR0lBQkJsNnpNS1VjTkVDQUdLQUswQWtFQmFpRU5RWVMxNDhVSElRRU1FQXNnQUVHdTA4ekRCVXdFUUNBQVFmVEh2dGdDVEFSQUlBNGhBU0FBUWZHNjN0NEJSZzBSSUFBaEFTQUFRZVAycnA0Q1J3MFJJQVpCb0FGcUVBb2FJQVlvQXFBQ0dnd1FDeUFBUWZYSHZ0Z0NSZzBNSUFCQjBPRFZod05HRFFjZ0FFSGszZk8zQkVjTkVDQUdLQUswQWtHZ2dRRnFJQVl0QUo4Q09nQUFRWmVzekNraEFRd1FDeUFBUWR5QWhMTUdUQVJBSUFCQnI5UE13d1ZHRFFzZ0FFRzAyNUhNQlVZTkRpQUFRWlhnK040RlJ3MFFRY1NCQVNBRE5nSUFRZkc2M3Q0QklRRU1FQXNnQUVIZGdJU3pCa1lORENBQVFkWGZ3Zk1HUmcwQklBQkJoTFhqeFFkSERROGdCaUFOTmdLMEFrR01ocWU4ZVVHTS9LdkVmaUFHS0FLMEFpQURTQnNoQVF3UEMwRUFJUWNnQmlBRVFRQktPZ0NkQWtIVjM4SHpCa0hKc3JYU2V5QUdMUUNkQWtFQmNSc2hBU0FHS0FLVUFpRUtEQTRMSUFaQmlBSnFJQVlvQXBRQ0VGUWlFQ0VLUVFBaENFRUFJUWtqQUVFUWF5SUJKQUFnQ2hBSklRc2pBRUVRYXlJSEpBQWdCa0g0QVdvaUFFSUFOd0lBSUFkQkFEWUNEQ0FBUVFocUlBZEJER29RelFFZ0IwRVFhaVFBQWtBZ0MwVU5BQU5BQWtBZ0NpQUpFQXN0QUFCQlBVWU5BQ0FLSUFrUUN5MEFBQ0lIUVN0R0lBZEJJSEpCNFFCclFScEpCSDlCQVFVZ0J4QkZRUUJIQzBFQVIzSWdCMEV2Um5KRkRRQWdDMEVCYXlFTElBRkJER29nQ0dvZ0NpQUpFQXN0QUFBNkFBQkJBQ0VISUFoQkFXb2lDRUVFUmdSQUEwQWdBVUVNYWlBSGFpSUlJQWdzQUFBUTlRRTZBQUFnQjBFQmFpSUhRUVJIRFFBTElBRWdBUzBBRHlBQkxRQU9JZ2RCQm5ScU9nQUxJQUVnQVMwQURTSUlRUVIyUVFOeElBRXRBQXhCQW5SeU9nQUpJQUVnQjBFQ2RrRVBjU0FJUVFSMGNqb0FDa0VBSVFoQkFDRUhBMEFnQUNBQlFRbHFJQWRxRVBRQ0lBZEJBV29pQjBFRFJ3MEFDd3NnQ1VFQmFpRUpJQXNOQVFzTElBaEZEUUFnQ0VFRFRBUkFJQUZCREdvZ0NHcEJBRUVFSUFockVFWWFDMEVBSVFjRFFDQUJRUXhxSUFkcUlna2dDU3dBQUJEMUFUb0FBQ0FIUVFGcUlnZEJCRWNOQUFzZ0FTQUJMUUFQSUFFdEFBNGlCMEVHZEdvNkFBc2dBU0FCTFFBTklnbEJCSFpCQTNFZ0FTMEFERUVDZEhJNkFBa2dBU0FIUVFKMlFROXhJQWxCQkhSeU9nQUtJQWhCQWtnTkFDQUlRUUZySVFoQkFDRUhBMEFnQUNBQlFRbHFJQWRxRVBRQ0lBZEJBV29pQnlBSVJ3MEFDd3NnQVVFUWFpUUFJQUFRaVFFaEVTQUFLQUlBSVF3Z0JrR3RIeWdBQURZQzhBRWdCa0dsSHlrQUFEY0Q2QUVnQmtJQU53UFlBU0FHUWdBM0E5QUJJQVpDQURjRHlBRWdCa0lBTndQQUFTQUdRZ0EzQTdnQklBWkNBRGNEc0FFZ0FCQ0pBU0VMSUFaQnNBRnFJUW9qQUVFd2F5SUJKQUFnQVVFZ2FpRUlJQVVnQkJDK0FpSUhCRUFnQ0VJQU53QUFJQWhDQURjQUNDQUhJQWdnQ0JDbkFRc2dCa0cvQW1vaEVpQUdRZEFCYWlFVElBY0VmeU1BUVJCcklna2tBQ0FCUVJCcUlnZ2dCaWtBNkFFM0FBQWdDQ0FHS0FEd0FUWUFDQ0FJUVlDQWdBZzJBQXdnQ1VFUWFpUUFJd0JCRUdzaUNTUUFJQXNFUUNBSklBZ3BBQUEzQXdBZ0NTQUlLUUFJTndNSUlBa1E2d0VnQnlBSklBd2dDeUFLRUlVQ0N5QUpRUkJxSkFBakFFRVFheUlKSkFBZ0FVSUFOd0FBSUFGQ0FEY0FDQ0FCUVNCcUlnd2dFa0VBSUFFUXZ3RWdEQ0FLSUFzZ0FSQy9BU0FKUWdBUTdRRWdDVUVJY2lBTFFRTjByUkR0QVNBTUlBbEJFQ0FCRUw4QklBbEJFR29rQUNBSElBZ2dBVUVRSUJNUWhRSWdCeEFRUVFBRlFYOExHaUFCUVRCcUpBQWdBQkR0QWlBQUtBSUFCRUFnQUNnQ0JDSUJJQUFvQWdBaUIwY0VRQU5BSUFBUVF4b2dCeUFCUVFGcklnRkhEUUFMQ3lBQUlBYzJBZ1FnQUJCREdpQUFLQUlBSVFFZ0FCQ0ZBUm9nQVJBUUN5QVFFQW9hUVNCQkVDQVJRVEJHR3lFSFFjbXl0ZEo3SVFFTURRc2dCaUFQT2dDZUFpQUdJQWMyQXJBQ0lBWWdDallDckFKQjliZTE0bjVCbGVENDNnVWdCaTBBbmdKQkFYRWJJUUVNREF0QndJRUJJQU0yQWdCQjhicmUzZ0VoQVF3TEMwSFE0TldIQTBHaitJYXJmeUFHS0FLWUFpQURSaHNoQVF3S0MwSFE0TldIQTBIdDVMR2plQ0FHS0FLd0FrRVFSaHRCN2VTeG8zZ2dCaTBBblFKQkFYRWJJUUVNQ1F0QmhMWGp4UWNoQVVFQUlRME1DQXNnQmlBR0tBS3NBaUFHS0FLMEFtb3RBQUE2QUo4Q0lBWXRBSjhDR2tHWHpPRDFlVUhrM2ZPM0JDQUdMUUNlQWtFQmNSc2hBUXdIQ3lBR0lBWkJvQUZxSWdBMkFxQUNJQVlvQXFBQ0dpQUFJQVlvQXF3Q0VGUWFRZXlacHVKNklRRkJBQ0VDREFZTElBWWdBallDdUFKQnI5UE13d1ZCNC9hdW5nSWdCaWdDdUFJZ0EwZ2JJUUVNQlFzZ0JpQUdRUkJxSWdBMkFxUUNJQVlvQXFRQ0dpQUFFTXdDR2lBR0lBWkJER29pQ0RZQ3FBSWdCaWdDcUFJYUlBWW9BcVFDUVFocUVNSUNJUWtnQmtHd0FXb2lBU0FHUWFBQmFpQUdLQUs0QWtFQmRCREFBaUFKSUFFUXZRSWdBUkFLR2lBQUlBZ1EvUUpCOWNlKzJBSkIzWUNFc3dZZ0JpMEFuZ0pCQVhFYklRRU1CQXNnQmlnQ3VBSkJnSUVCYWlBR0tBSU1PZ0FBUWJUYmtjd0ZJUUVNQXdzZ0JpZ0N1QUpCb0lFQmFpQUdLQUlNT2dBQVFiVGJrY3dGSVFFTUFnc2dCaWdDcUFJYUlBWkJFR29RaWdFYUlBWW9BcVFDR2lBR0tBSzRBaUlBUVFGMFFRSnhJQUJCQVhOcUlRSkI3Sm1tNG5vaEFRd0JDMEhIeTZ1SWVpRUJEQUFMQUF1eEFRRURmeU1BUWRBQWF5SUFKQUFnQUVHRjBRQXZBQUE3QVV3Z0FFR0IwUUFvQUFBMkFrZ2dBRUhJQUdvaUJVRUJja0hhSEVFQklBSW9BZ1FRYlJBV0lRWWdBQ0FFTmdJQUlBQkJPMm9pQkNBRVFRMGdCaUFGSUFBUUxDQUVhaUlHSUFJUVB5RUhJQUJCRUdvaUJTQUNFQThnQkNBSElBWWdBRUVnYWlJRUlBQkJIR29nQUVFWWFpQUZFTEFCSUFVUURpQUJJQVFnQUNnQ0hDQUFLQUlZSUFJZ0F4QldJUUVnQUVIUUFHb2tBQ0FCQzgwQkFRRi9Jd0JCTUdzaUJTUUFJQVVnQVRZQ0tBSkFJQUlvQWdSQkFYRkZCRUFnQUNBQklBSWdBeUFFSUFBb0FnQW9BaGdSQmdBaEFnd0JDeUFGUVJocUlnQWdBaEFQSUFBUWpnRWhBU0FBRUE0Q1FDQUVCRUFnQlVFWWFpQUJFRXNNQVFzZ0JVRVlhaUFCRUVvTElBVWdCVUVZYWhCQU5nSVFBMEFnQlNBRlFSaHFFRzQyQWdnZ0JVRVFhaUFGUVFocUVGc0VRQ0FGUVNocUlBVkJFR29pQUNnQ0FDd0FBQkQ0QWlBQUVKY0JEQUVGSUFVb0FpZ2hBaUFGUVJocUVBb2FDd3NMSUFWQk1Hb2tBQ0FDQy9JQ0FRRi9Jd0JCNEFKcklnQWtBQ0FBSUFJMkF0QUNJQUFnQVRZQzJBSWdBRUhRQVdvUUVTRUdJQUJCRUdvaUFpQURFQThnQWhBN1FlRFFBRUg2MEFBZ0FFSGdBV29RWXlBQ0VBNGdBRUhBQVdvUUVTSURJQU1RRXhBTUlBQWdBMEVBRUFzaUFUWUN2QUVnQUNBQ05nSU1JQUJCQURZQ0NBTkFBa0FnQUVIWUFtb2dBRUhRQW1vUU5rVU5BQ0FBS0FLOEFTQURFQWtnQVdwR0JFQWdBeEFKSVFJZ0F5QURFQWxCQVhRUURDQURJQU1RRXhBTUlBQWdBaUFEUVFBUUN5SUJhallDdkFFTElBQkIyQUpxRUNGQkVDQUJJQUJCdkFGcUlBQkJDR3BCQUNBR0lBQkJFR29nQUVFTWFpQUFRZUFCYWhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3lBRElBQW9BcndCSUFGckVBd2dBeEFOSVFJUUZpRUJJQUFnQlRZQ0FDQUNJQUVnQUJEQkFrRUJSd1JBSUFSQkJEWUNBQXNnQUVIWUFtb2dBRUhRQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0MyQUloQVNBREVBb2FJQVlRQ2hvZ0FFSGdBbW9rQUNBQkM5SURBUUYrSXdCQmdBTnJJZ0FrQUNBQUlBSTJBdkFDSUFBZ0FUWUMrQUlnQUVIWUFXb2dBeUFBUWZBQmFpQUFRZXdCYWlBQVFlZ0JhaERVQVNBQVFjZ0JhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdMRUFTQUFJQUJCSUdvMkFod2dBRUVBTmdJWUlBQkJBVG9BRnlBQVFjVUFPZ0FXQTBBQ1FDQUFRZmdDYWlBQVFmQUNhaEEyUlEwQUlBQW9Bc1FCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nTEVBUXNnQUVINEFtb1FJU0FBUVJkcUlBQkJGbW9nQWlBQVFjUUJhaUFBS0FMc0FTQUFLQUxvQVNBQVFkZ0JhaUFBUVNCcUlBQkJIR29nQUVFWWFpQUFRZkFCYWhEVEFRMEFJQUJCK0FKcUVDVWFEQUVMQ3dKQUlBQkIyQUZxRUFsRkRRQWdBQzBBRjBVTkFDQUFLQUljSWdNZ0FFRWdhbXRCbndGS0RRQWdBQ0FEUVFScU5nSWNJQU1nQUNnQ0dEWUNBQXNnQUNBQ0lBQW9Bc1FCSUFRUXd3SWdBQ2tEQUNFR0lBVWdBQ2tEQ0RjRENDQUZJQVkzQXdBZ0FFSFlBV29nQUVFZ2FpQUFLQUljSUFRUUxTQUFRZmdDYWlBQVFmQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMNEFpRUNJQUVRQ2hvZ0FFSFlBV29RQ2hvZ0FFR0FBMm9rQUNBQ0M3c0RBQ01BUWZBQ2F5SUFKQUFnQUNBQ05nTGdBaUFBSUFFMkF1Z0NJQUJCeUFGcUlBTWdBRUhnQVdvZ0FFSGNBV29nQUVIWUFXb1ExQUVnQUVHNEFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdEFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0NBQVFRRTZBQWNnQUVIRkFEb0FCZ05BQWtBZ0FFSG9BbW9nQUVIZ0Ftb1FOa1VOQUNBQUtBSzBBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3RBRUxJQUJCNkFKcUVDRWdBRUVIYWlBQVFRWnFJQUlnQUVHMEFXb2dBQ2dDM0FFZ0FDZ0MyQUVnQUVISUFXb2dBRUVRYWlBQVFReHFJQUJCQ0dvZ0FFSGdBV29RMHdFTkFDQUFRZWdDYWhBbEdnd0JDd3NDUUNBQVFjZ0JhaEFKUlEwQUlBQXRBQWRGRFFBZ0FDZ0NEQ0lESUFCQkVHcHJRWjhCU2cwQUlBQWdBMEVFYWpZQ0RDQURJQUFvQWdnMkFnQUxJQVVnQWlBQUtBSzBBU0FFRU1RQ09RTUFJQUJCeUFGcUlBQkJFR29nQUNnQ0RDQUVFQzBnQUVIb0Ftb2dBRUhnQW1vUUtBUkFJQVFnQkNnQ0FFRUNjallDQUFzZ0FDZ0M2QUloQWlBQkVBb2FJQUJCeUFGcUVBb2FJQUJCOEFKcUpBQWdBZ3U3QXdBakFFSHdBbXNpQUNRQUlBQWdBallDNEFJZ0FDQUJOZ0xvQWlBQVFjZ0JhaUFESUFCQjRBRnFJQUJCM0FGcUlBQkIyQUZxRU5RQklBQkJ1QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyUUJJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ2dBRUVCT2dBSElBQkJ4UUE2QUFZRFFBSkFJQUJCNkFKcUlBQkI0QUpxRURaRkRRQWdBQ2dDdEFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBclFCQ3lBQVFlZ0NhaEFoSUFCQkIyb2dBRUVHYWlBQ0lBQkJ0QUZxSUFBb0F0d0JJQUFvQXRnQklBQkJ5QUZxSUFCQkVHb2dBRUVNYWlBQVFRaHFJQUJCNEFGcUVOTUJEUUFnQUVIb0Ftb1FKUm9NQVFzTEFrQWdBRUhJQVdvUUNVVU5BQ0FBTFFBSFJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdEFFZ0JCREZBamdDQUNBQVFjZ0JhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkI2QUpxSUFCQjRBSnFFQ2dFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQXVnQ0lRSWdBUkFLR2lBQVFjZ0JhaEFLR2lBQVFmQUNhaVFBSUFJTG5RTUJBbjhqQUVIZ0Ftc2lBQ1FBSUFBZ0FqWUMwQUlnQUNBQk5nTFlBaUFERUZ3aEJpQURJQUJCNEFGcUVKa0JJUWNnQUVIUUFXb2dBeUFBUWN3Q2FoQ1lBU0FBUWNBQmFoQVJJZ0VnQVJBVEVBd2dBQ0FCUVFBUUN5SUNOZ0s4QVNBQUlBQkJFR28yQWd3Z0FFRUFOZ0lJQTBBQ1FDQUFRZGdDYWlBQVFkQUNhaEEyUlEwQUlBQW9BcndCSUFFUUNTQUNha1lFUUNBQkVBa2hBeUFCSUFFUUNVRUJkQkFNSUFFZ0FSQVRFQXdnQUNBRElBRkJBQkFMSWdKcU5nSzhBUXNnQUVIWUFtb1FJU0FHSUFJZ0FFRzhBV29nQUVFSWFpQUFLQUxNQWlBQVFkQUJhaUFBUVJCcUlBQkJER29nQnhDTEFRMEFJQUJCMkFKcUVDVWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF4Z0kzQXdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRZGdDYWlBQVFkQUNhaEFvQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FMWUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFSGdBbW9rQUNBQ0M1MERBUUovSXdCQjRBSnJJZ0FrQUNBQUlBSTJBdEFDSUFBZ0FUWUMyQUlnQXhCY0lRWWdBeUFBUWVBQmFoQ1pBU0VISUFCQjBBRnFJQU1nQUVITUFtb1FtQUVnQUVIQUFXb1FFU0lCSUFFUUV4QU1JQUFnQVVFQUVBc2lBallDdkFFZ0FDQUFRUkJxTmdJTUlBQkJBRFlDQ0FOQUFrQWdBRUhZQW1vZ0FFSFFBbW9RTmtVTkFDQUFLQUs4QVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN2QUVMSUFCQjJBSnFFQ0VnQmlBQ0lBQkJ2QUZxSUFCQkNHb2dBQ2dDekFJZ0FFSFFBV29nQUVFUWFpQUFRUXhxSUFjUWl3RU5BQ0FBUWRnQ2FoQWxHZ3dCQ3dzQ1FDQUFRZEFCYWhBSlJRMEFJQUFvQWd3aUF5QUFRUkJxYTBHZkFVb05BQ0FBSUFOQkJHbzJBZ3dnQXlBQUtBSUlOZ0lBQ3lBRklBSWdBQ2dDdkFFZ0JDQUdFTWtDT3dFQUlBQkIwQUZxSUFCQkVHb2dBQ2dDRENBRUVDMGdBRUhZQW1vZ0FFSFFBbW9RS0FSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQzJBSWhBaUFCRUFvYUlBQkIwQUZxRUFvYUlBQkI0QUpxSkFBZ0FndWRBd0VDZnlNQVFlQUNheUlBSkFBZ0FDQUNOZ0xRQWlBQUlBRTJBdGdDSUFNUVhDRUdJQU1nQUVIZ0FXb1FtUUVoQnlBQVFkQUJhaUFESUFCQnpBSnFFSmdCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnRFFBSkFJQUJCMkFKcUlBQkIwQUpxRURaRkRRQWdBQ2dDdkFFZ0FSQUpJQUpxUmdSQUlBRVFDU0VESUFFZ0FSQUpRUUYwRUF3Z0FTQUJFQk1RRENBQUlBTWdBVUVBRUFzaUFtbzJBcndCQ3lBQVFkZ0NhaEFoSUFZZ0FpQUFRYndCYWlBQVFRaHFJQUFvQXN3Q0lBQkIwQUZxSUFCQkVHb2dBRUVNYWlBSEVJc0JEUUFnQUVIWUFtb1FKUm9NQVFzTEFrQWdBRUhRQVdvUUNVVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUWdCaERLQWpjREFDQUFRZEFCYWlBQVFSQnFJQUFvQWd3Z0JCQXRJQUJCMkFKcUlBQkIwQUpxRUNnRVFDQUVJQVFvQWdCQkFuSTJBZ0FMSUFBb0F0Z0NJUUlnQVJBS0dpQUFRZEFCYWhBS0dpQUFRZUFDYWlRQUlBSUxuUU1CQW44akFFSGdBbXNpQUNRQUlBQWdBallDMEFJZ0FDQUJOZ0xZQWlBREVGd2hCaUFESUFCQjRBRnFFSmtCSVFjZ0FFSFFBV29nQXlBQVFjd0NhaENZQVNBQVFjQUJhaEFSSWdFZ0FSQVRFQXdnQUNBQlFRQVFDeUlDTmdLOEFTQUFJQUJCRUdvMkFnd2dBRUVBTmdJSUEwQUNRQ0FBUWRnQ2FpQUFRZEFDYWhBMlJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFSFlBbW9RSVNBR0lBSWdBRUc4QVdvZ0FFRUlhaUFBS0FMTUFpQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0J4Q0xBUTBBSUFCQjJBSnFFQ1VhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUNnQ0RDSURJQUJCRUdwclFaOEJTZzBBSUFBZ0EwRUVhallDRENBRElBQW9BZ2cyQWdBTElBVWdBaUFBS0FLOEFTQUVJQVlReXdJMkFnQWdBRUhRQVdvZ0FFRVFhaUFBS0FJTUlBUVFMU0FBUWRnQ2FpQUFRZEFDYWhBb0JFQWdCQ0FFS0FJQVFRSnlOZ0lBQ3lBQUtBTFlBaUVDSUFFUUNob2dBRUhRQVdvUUNob2dBRUhnQW1va0FDQUNDK3dCQVFGL0l3QkJJR3NpQmlRQUlBWWdBVFlDR0FKQUlBTW9BZ1JCQVhGRkJFQWdCa0YvTmdJQUlBWWdBQ0FCSUFJZ0F5QUVJQVlnQUNnQ0FDZ0NFQkVGQUNJQk5nSVlBa0FDUUFKQUlBWW9BZ0FPQWdBQkFnc2dCVUVBT2dBQURBTUxJQVZCQVRvQUFBd0NDeUFGUVFFNkFBQWdCRUVFTmdJQURBRUxJQVlnQXhBUElBWVFPeUVCSUFZUURpQUdJQU1RRHlBR0VJd0JJUUFnQmhBT0lBWWdBQkJMSUFaQkRISWdBQkJLSUFVZ0JrRVlhaUlESUFJZ0JpQURJQUVnQkVFQkVMSUJJQVpHT2dBQUlBWW9BaGdoQVFOQUlBTkJER3NRQ2lJRElBWkhEUUFMQ3lBR1FTQnFKQUFnQVF2eUFnRUJmeU1BUVpBQ2F5SUFKQUFnQUNBQ05nS0FBaUFBSUFFMkFvZ0NJQUJCMEFGcUVCRWhCaUFBUVJCcUlnSWdBeEFQSUFJUU1rSGcwQUJCK3RBQUlBQkI0QUZxRUc4Z0FoQU9JQUJCd0FGcUVCRWlBeUFERUJNUURDQUFJQU5CQUJBTElnRTJBcndCSUFBZ0FqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBeEFKSUFGcVJnUkFJQU1RQ1NFQ0lBTWdBeEFKUVFGMEVBd2dBeUFERUJNUURDQUFJQUlnQTBFQUVBc2lBV28yQXJ3QkN5QUFRWWdDYWhBZlFSQWdBU0FBUWJ3QmFpQUFRUWhxUVFBZ0JpQUFRUkJxSUFCQkRHb2dBRUhnQVdvUWpRRU5BQ0FBUVlnQ2FoQWlHZ3dCQ3dzZ0F5QUFLQUs4QVNBQmF4QU1JQU1RRFNFQ0VCWWhBU0FBSUFVMkFnQWdBaUFCSUFBUXdRSkJBVWNFUUNBRVFRUTJBZ0FMSUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFFZ0F4QUtHaUFHRUFvYUlBQkJrQUpxSkFBZ0FRdlNBd0VCZmlNQVFhQUNheUlBSkFBZ0FDQUNOZ0tRQWlBQUlBRTJBcGdDSUFCQjRBRnFJQU1nQUVId0FXb2dBRUh2QVdvZ0FFSHVBV29RMXdFZ0FFSFFBV29RRVNJQklBRVFFeEFNSUFBZ0FVRUFFQXNpQWpZQ3pBRWdBQ0FBUVNCcU5nSWNJQUJCQURZQ0dDQUFRUUU2QUJjZ0FFSEZBRG9BRmdOQUFrQWdBRUdZQW1vZ0FFR1FBbW9RTVVVTkFDQUFLQUxNQVNBQkVBa2dBbXBHQkVBZ0FSQUpJUU1nQVNBQkVBbEJBWFFRRENBQklBRVFFeEFNSUFBZ0F5QUJRUUFRQ3lJQ2FqWUN6QUVMSUFCQm1BSnFFQjhnQUVFWGFpQUFRUlpxSUFJZ0FFSE1BV29nQUN3QTd3RWdBQ3dBN2dFZ0FFSGdBV29nQUVFZ2FpQUFRUnhxSUFCQkdHb2dBRUh3QVdvUTFnRU5BQ0FBUVpnQ2FoQWlHZ3dCQ3dzQ1FDQUFRZUFCYWhBSlJRMEFJQUF0QUJkRkRRQWdBQ2dDSENJRElBQkJJR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNIQ0FESUFBb0FoZzJBZ0FMSUFBZ0FpQUFLQUxNQVNBRUVNTUNJQUFwQXdBaEJpQUZJQUFwQXdnM0F3Z2dCU0FHTndNQUlBQkI0QUZxSUFCQklHb2dBQ2dDSENBRUVDMGdBRUdZQW1vZ0FFR1FBbW9RSmdSQUlBUWdCQ2dDQUVFQ2NqWUNBQXNnQUNnQ21BSWhBaUFCRUFvYUlBQkI0QUZxRUFvYUlBQkJvQUpxSkFBZ0FndTdBd0FqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFBUWRBQmFpQURJQUJCNEFGcUlBQkIzd0ZxSUFCQjNnRnFFTmNCSUFCQndBRnFFQkVpQVNBQkVCTVFEQ0FBSUFGQkFCQUxJZ0kyQXJ3QklBQWdBRUVRYWpZQ0RDQUFRUUEyQWdnZ0FFRUJPZ0FISUFCQnhRQTZBQVlEUUFKQUlBQkJpQUpxSUFCQmdBSnFFREZGRFFBZ0FDZ0N2QUVnQVJBSklBSnFSZ1JBSUFFUUNTRURJQUVnQVJBSlFRRjBFQXdnQVNBQkVCTVFEQ0FBSUFNZ0FVRUFFQXNpQW1vMkFyd0JDeUFBUVlnQ2FoQWZJQUJCQjJvZ0FFRUdhaUFDSUFCQnZBRnFJQUFzQU44QklBQXNBTjRCSUFCQjBBRnFJQUJCRUdvZ0FFRU1haUFBUVFocUlBQkI0QUZxRU5ZQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFMUUFIUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkJERUFqa0RBQ0FBUWRBQmFpQUFRUkJxSUFBb0Fnd2dCQkF0SUFCQmlBSnFJQUJCZ0FKcUVDWUVRQ0FFSUFRb0FnQkJBbkkyQWdBTElBQW9Bb2dDSVFJZ0FSQUtHaUFBUWRBQmFoQUtHaUFBUVpBQ2FpUUFJQUlMdXdNQUl3QkJrQUpySWdBa0FDQUFJQUkyQW9BQ0lBQWdBVFlDaUFJZ0FFSFFBV29nQXlBQVFlQUJhaUFBUWQ4QmFpQUFRZDRCYWhEWEFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlJQUJCQVRvQUJ5QUFRY1VBT2dBR0EwQUNRQ0FBUVlnQ2FpQUFRWUFDYWhBeFJRMEFJQUFvQXJ3QklBRVFDU0FDYWtZRVFDQUJFQWtoQXlBQklBRVFDVUVCZEJBTUlBRWdBUkFURUF3Z0FDQURJQUZCQUJBTElnSnFOZ0s4QVFzZ0FFR0lBbW9RSHlBQVFRZHFJQUJCQm1vZ0FpQUFRYndCYWlBQUxBRGZBU0FBTEFEZUFTQUFRZEFCYWlBQVFSQnFJQUJCREdvZ0FFRUlhaUFBUWVBQmFoRFdBUTBBSUFCQmlBSnFFQ0lhREFFTEN3SkFJQUJCMEFGcUVBbEZEUUFnQUMwQUIwVU5BQ0FBS0FJTUlnTWdBRUVRYW10Qm53RktEUUFnQUNBRFFRUnFOZ0lNSUFNZ0FDZ0NDRFlDQUFzZ0JTQUNJQUFvQXJ3QklBUVF4UUk0QWdBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDYUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEI0TkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREdBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTEpRQWdBQ2dDQkJvZ0FDQUFLQUlFUWJWL2NUWUNCQ0FBSUFBb0FnUkJDSEkyQWdRZ0FBdVNBd0VCZnlNQVFaQUNheUlBSkFBZ0FDQUNOZ0tBQWlBQUlBRTJBb2dDSUFNUVhDRUdJQUJCMEFGcUlBTWdBRUgvQVdvUW1nRWdBRUhBQVdvUUVTSUJJQUVRRXhBTUlBQWdBVUVBRUFzaUFqWUN2QUVnQUNBQVFSQnFOZ0lNSUFCQkFEWUNDQU5BQWtBZ0FFR0lBbW9nQUVHQUFtb1FNVVVOQUNBQUtBSzhBU0FCRUFrZ0FtcEdCRUFnQVJBSklRTWdBU0FCRUFsQkFYUVFEQ0FCSUFFUUV4QU1JQUFnQXlBQlFRQVFDeUlDYWpZQ3ZBRUxJQUJCaUFKcUVCOGdCaUFDSUFCQnZBRnFJQUJCQ0dvZ0FDd0Evd0VnQUVIUUFXb2dBRUVRYWlBQVFReHFRZURRQUJDTkFRMEFJQUJCaUFKcUVDSWFEQUVMQ3dKQUlBQkIwQUZxRUFsRkRRQWdBQ2dDRENJRElBQkJFR3ByUVo4QlNnMEFJQUFnQTBFRWFqWUNEQ0FESUFBb0FnZzJBZ0FMSUFVZ0FpQUFLQUs4QVNBRUlBWVF5UUk3QVFBZ0FFSFFBV29nQUVFUWFpQUFLQUlNSUFRUUxTQUFRWWdDYWlBQVFZQUNhaEFtQkVBZ0JDQUVLQUlBUVFKeU5nSUFDeUFBS0FLSUFpRUNJQUVRQ2hvZ0FFSFFBV29RQ2hvZ0FFR1FBbW9rQUNBQ0M1SURBUUYvSXdCQmtBSnJJZ0FrQUNBQUlBSTJBb0FDSUFBZ0FUWUNpQUlnQXhCY0lRWWdBRUhRQVdvZ0F5QUFRZjhCYWhDYUFTQUFRY0FCYWhBUklnRWdBUkFURUF3Z0FDQUJRUUFRQ3lJQ05nSzhBU0FBSUFCQkVHbzJBZ3dnQUVFQU5nSUlBMEFDUUNBQVFZZ0NhaUFBUVlBQ2FoQXhSUTBBSUFBb0Fyd0JJQUVRQ1NBQ2FrWUVRQ0FCRUFraEF5QUJJQUVRQ1VFQmRCQU1JQUVnQVJBVEVBd2dBQ0FESUFGQkFCQUxJZ0pxTmdLOEFRc2dBRUdJQW1vUUh5QUdJQUlnQUVHOEFXb2dBRUVJYWlBQUxBRC9BU0FBUWRBQmFpQUFRUkJxSUFCQkRHcEI0TkFBRUkwQkRRQWdBRUdJQW1vUUlob01BUXNMQWtBZ0FFSFFBV29RQ1VVTkFDQUFLQUlNSWdNZ0FFRVFhbXRCbndGS0RRQWdBQ0FEUVFScU5nSU1JQU1nQUNnQ0NEWUNBQXNnQlNBQ0lBQW9BcndCSUFRZ0JoREtBamNEQUNBQVFkQUJhaUFBUVJCcUlBQW9BZ3dnQkJBdElBQkJpQUpxSUFCQmdBSnFFQ1lFUUNBRUlBUW9BZ0JCQW5JMkFnQUxJQUFvQW9nQ0lRSWdBUkFLR2lBQVFkQUJhaEFLR2lBQVFaQUNhaVFBSUFJTGtnTUJBWDhqQUVHUUFtc2lBQ1FBSUFBZ0FqWUNnQUlnQUNBQk5nS0lBaUFERUZ3aEJpQUFRZEFCYWlBRElBQkIvd0ZxRUpvQklBQkJ3QUZxRUJFaUFTQUJFQk1RRENBQUlBRkJBQkFMSWdJMkFyd0JJQUFnQUVFUWFqWUNEQ0FBUVFBMkFnZ0RRQUpBSUFCQmlBSnFJQUJCZ0FKcUVERkZEUUFnQUNnQ3ZBRWdBUkFKSUFKcVJnUkFJQUVRQ1NFRElBRWdBUkFKUVFGMEVBd2dBU0FCRUJNUURDQUFJQU1nQVVFQUVBc2lBbW8yQXJ3QkN5QUFRWWdDYWhBZklBWWdBaUFBUWJ3QmFpQUFRUWhxSUFBc0FQOEJJQUJCMEFGcUlBQkJFR29nQUVFTWFrSGcwQUFRalFFTkFDQUFRWWdDYWhBaUdnd0JDd3NDUUNBQVFkQUJhaEFKUlEwQUlBQW9BZ3dpQXlBQVFSQnFhMEdmQVVvTkFDQUFJQU5CQkdvMkFnd2dBeUFBS0FJSU5nSUFDeUFGSUFJZ0FDZ0N2QUVnQkNBR0VNc0NOZ0lBSUFCQjBBRnFJQUJCRUdvZ0FDZ0NEQ0FFRUMwZ0FFR0lBbW9nQUVHQUFtb1FKZ1JBSUFRZ0JDZ0NBRUVDY2pZQ0FBc2dBQ2dDaUFJaEFpQUJFQW9hSUFCQjBBRnFFQW9hSUFCQmtBSnFKQUFnQWd2VkJRRUlmeU1BUWRBQmF5SUdKQUFnQXhBWklRY2dCaUFDTmdLOEFTQUdJQWMyQXJnQlFiZXBtdVo4UWVuMzh2SjVJQVZCRUVZYlFlbjM4dko1SUFOQklFWWJJUXNnQmtFZ2FpRU1BMEJCeXZmbTl3SWhBZ05BQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQ0FDUWJ2VHFiQjlUQVJBSUFKQmdzT29qbnhNQkVBZ0FrSG4rSWU1ZUVZTkFpQUNRZFMzK3NCNFJnMEZJQUpCNmZmeThubEhEUXBCZzhPb2pud2hBa0VBSVFjTUNnc2dBa0dEdzZpT2ZFWU5CeUFDUVk2RnN1UjhSZzBGSUFKQnQ2bWE1bnhIRFFrZ0JpQUdRYWdCYWlJQ05nTEFBU0FHS0FMQUFSb2dBaUFHS0FLNEFSQlVHa0dPaGJMa2ZDRUNRUUFoQ0F3SkN5QUNRWW1DdE80Q1NnMEJJQUpCdk5PcHNIMUdEUUlnQWtIUzQ3eVNBa1lOQlNBQ1FlVy8rSjhDUncwSUlBWkJxQUZxRUFvYUlBWW9Bc0FCR2d0QmlvSzA3Z0loQWd3SEN5QUNRY3IzNXZjQ1J3UkFJQUpCcHNmVnBnUkdEUVlnQWtHS2dyVHVBa2NOQnlBR0tBSzRBUkFRSUFaQjBBRnFKQUFQQ3lBR0lBbzJBc1FCUWRTMytzQjRRYnpUcWJCOUlBWW9Bc1FCSUFOSUd5RUNEQVlMUWNTQkFTQUZOZ0lBSUFBZ0FTQUVJQVlvQXJnQklBTVE1Z0VnQ3lFQ0RBVUxJQVlvQXJnQklBWW9Bc1FCYWlBR0tBSzhBU0FHS0FMRUFXb3RBQUE2QUFBZ0JpZ0N4QUZCQVdvaENnd0ZDeUFHSUFnMkFzZ0JRZExqdkpJQ1FlVy8rSjhDSUFZb0FzZ0JJQVZJR3lFQ0RBTUxJQVpCR0dvaURSRE1BaUVDSUF3UXdnSWhDQ0FHUVFocUlna2dCa0dvQVdvZ0JpZ0N5QUZCQVhRUXdBSWdDQ0FKRUwwQ0lBa1FDaG9nRFNBSkVQMENJQVlvQXNnQlFhQ0JBV29nQmlnQ0NEb0FBQ0FDRUlvQkdpQUdLQUxJQVVFQmFpRUlRWTZGc3VSOElRSU1BZ3NnQmlBSE5nTE1BVUdteDlXbUJFSG4rSWU1ZUNBR0tBTE1BU0FGU0JzaEFnd0JDeUFHS0FMTUFVR2dnUUZxSUFZb0FyZ0JJQVlvQXN3QmFpMEFBRG9BQUNBR0tBTE1BVUVCYWlFSFFZUERxSTU4SVFJTUFBc0FDd0FMN0FFQkFYOGpBRUVnYXlJR0pBQWdCaUFCTmdJWUFrQWdBeWdDQkVFQmNVVUVRQ0FHUVg4MkFnQWdCaUFBSUFFZ0FpQURJQVFnQmlBQUtBSUFLQUlRRVFVQUlnRTJBaGdDUUFKQUFrQWdCaWdDQUE0Q0FBRUNDeUFGUVFBNkFBQU1Bd3NnQlVFQk9nQUFEQUlMSUFWQkFUb0FBQ0FFUVFRMkFnQU1BUXNnQmlBREVBOGdCaEF5SVFFZ0JoQU9JQVlnQXhBUElBWVFqZ0VoQUNBR0VBNGdCaUFBRUVzZ0JrRU1jaUFBRUVvZ0JTQUdRUmhxSWdNZ0FpQUdJQU1nQVNBRVFRRVF0QUVnQmtZNkFBQWdCaWdDR0NFQkEwQWdBMEVNYXhBS0lnTWdCa2NOQUFzTElBWkJJR29rQUNBQkMwQUJBWDlCQUNFQUEzOGdBU0FDUmdSL0lBQUZJQUVvQWdBZ0FFRUVkR29pQUVHQWdJQ0FmM0VpQTBFWWRpQURjaUFBY3lFQUlBRkJCR29oQVF3QkN3c0xHd0FqQUVFUWF5SUJKQUFnQUNBQ0lBTVF6Z0lnQVVFUWFpUUFDMVFCQW44Q1FBTkFJQU1nQkVjRVFFRi9JUUFnQVNBQ1JnMENJQUVvQWdBaUJTQURLQUlBSWdaSURRSWdCU0FHU2dSQVFRRVBCU0FEUVFScUlRTWdBVUVFYWlFQkRBSUxBQXNMSUFFZ0FrY2hBQXNnQUF0QUFRRi9RUUFoQUFOL0lBRWdBa1lFZnlBQUJTQUJMQUFBSUFCQkJIUnFJZ0JCZ0lDQWdIOXhJZ05CR0hZZ0EzSWdBSE1oQUNBQlFRRnFJUUVNQVFzTEMvY0JBUU4vSUFCRkJFQkJ3SUVCS0FJQUlRQWpBRUVnYXlJRUpBQkJnSUVCSUFBUXZnSWlCUVIvSUFRZ0F5a0FBRGNERUNBRUlBTXBBQWczQXhnZ0FnUkFBMEFnQlNBRVFSQnFJQVFRcHdFZ0FrRVFJQUpCRUVrYklRTkJBQ0VBQTBBZ0FDQUJhaUlHSUFZdEFBQWdBQ0FFYWkwQUFITTZBQUFnQUVFQmFpSUFJQU5IRFFBTElBSWdBMnNoQWlBQklBTnFJUUZCRHlFQUEwQUNRQ0FBSWdNZ0JFRVFhbW9pQUNBQUxRQUFRUUZxSWdBNkFBQWdBRUgvQVhFTkFDQURRUUZySVFBZ0F3MEJDd3NnQWcwQUN3c2dCUkFRUVFBRlFYOExHaUFFUVNCcUpBQVBDMEdnZ1FGQnhJRUJLQUlBSUFNZ0FTQUNFT1lCQ3hzQUl3QkJFR3NpQVNRQUlBQWdBaUFERVBNQ0lBRkJFR29rQUF0ZUFRTi9JQUVnQkNBRGEyb2hCUUpBQTBBZ0F5QUVSd1JBUVg4aEFDQUJJQUpHRFFJZ0FTd0FBQ0lHSUFNc0FBQWlCMGdOQWlBR0lBZEtCRUJCQVE4RklBTkJBV29oQXlBQlFRRnFJUUVNQWdzQUN3c2dBaUFGUnlFQUN5QUFDNmtCQVFSL0lBQW9BbFFpQXlnQ0JDSUZJQUFvQWhRZ0FDZ0NIQ0lHYXlJRUlBUWdCVXNiSWdRRVFDQURLQUlBSUFZZ0JCQkNHaUFESUFNb0FnQWdCR28yQWdBZ0F5QURLQUlFSUFScklnVTJBZ1FMSUFNb0FnQWhCQ0FGSUFJZ0FpQUZTeHNpQlFSQUlBUWdBU0FGRUVJYUlBTWdBeWdDQUNBRmFpSUVOZ0lBSUFNZ0F5Z0NCQ0FGYXpZQ0JBc2dCRUVBT2dBQUlBQWdBQ2dDTENJQk5nSWNJQUFnQVRZQ0ZDQUNDeWtBSUFFZ0FTZ0NBRUVIYWtGNGNTSUJRUkJxTmdJQUlBQWdBU2tEQUNBQktRTUlFTjBCT1FNQUM3UVlBeEovQVh3Q2ZpTUFRYkFFYXlJTEpBQWdDMEVBTmdJc0FrQWdBYjBpR1VJQVV3UkFRUUVoRUVINUdpRVRJQUdhSWdHOUlSa01BUXNnQkVHQUVIRUVRRUVCSVJCQi9Cb2hFd3dCQzBIL0drSDZHaUFFUVFGeEloQWJJUk1nRUVVaEZBc0NRQ0FaUW9DQWdJQ0FnSUQ0L3dDRFFvQ0FnSUNBZ0lENC93QlJCRUFnQUVFZ0lBSWdFRUVEYWlJRElBUkIvLzk3Y1JBdUlBQWdFeUFRRUNvZ0FFSEhIRUdBSGlBRlFTQnhJZ1ViUWVvY1FaWWVJQVViSUFFZ0FXSWJRUU1RS2lBQVFTQWdBaUFESUFSQmdNQUFjeEF1SUFJZ0F5QUNJQU5LR3lFSkRBRUxJQXRCRUdvaEVRSkFBbjhDUUNBQklBdEJMR29RM1FJaUFTQUJvQ0lCUkFBQUFBQUFBQUFBWWdSQUlBc2dDeWdDTENJR1FRRnJOZ0lzSUFWQklISWlEa0hoQUVjTkFRd0RDeUFGUVNCeUlnNUI0UUJHRFFJZ0N5Z0NMQ0VLUVFZZ0F5QURRUUJJR3d3QkN5QUxJQVpCSFdzaUNqWUNMQ0FCUkFBQUFBQUFBTEJCb2lFQlFRWWdBeUFEUVFCSUd3c2hEQ0FMUVRCcUlBdEIwQUpxSUFwQkFFZ2JJZzBoQndOQUlBY0NmeUFCUkFBQUFBQUFBUEJCWXlBQlJBQUFBQUFBQUFBQVpuRUVRQ0FCcXd3QkMwRUFDeUlETmdJQUlBZEJCR29oQnlBQklBTzRvVVFBQUFBQVpjM05RYUlpQVVRQUFBQUFBQUFBQUdJTkFBc0NRQ0FLUVFCTUJFQWdDaUVESUFjaEJpQU5JUWdNQVFzZ0RTRUlJQW9oQXdOQUlBTkJIU0FEUVIxSUd5RURBa0FnQjBFRWF5SUdJQWhKRFFBZ0E2MGhHa0lBSVJrRFFDQUdJQmxDLy8vLy93K0RJQVkxQWdBZ0dvWjhJaGtnR1VLQWxPdmNBNEFpR1VLQWxPdmNBMzU5UGdJQUlBWkJCR3NpQmlBSVR3MEFDeUFacHlJR1JRMEFJQWhCQkdzaUNDQUdOZ0lBQ3dOQUlBZ2dCeUlHU1FSQUlBWkJCR3NpQnlnQ0FFVU5BUXNMSUFzZ0N5Z0NMQ0FEYXlJRE5nSXNJQVloQnlBRFFRQktEUUFMQ3lBTVFSbHFRUWx1SVFjZ0EwRUFTQVJBSUFkQkFXb2hFaUFPUWVZQVJpRVZBMEJCQUNBRGF5SURRUWtnQTBFSlNCc2hDUUpBSUFZZ0NFc0VRRUdBbE92Y0F5QUpkaUVXUVg4Z0NYUkJmM01oRDBFQUlRTWdDQ0VIQTBBZ0J5QURJQWNvQWdBaUZ5QUpkbW8yQWdBZ0R5QVhjU0FXYkNFRElBZEJCR29pQnlBR1NRMEFDeUFJS0FJQUlRY2dBMFVOQVNBR0lBTTJBZ0FnQmtFRWFpRUdEQUVMSUFnb0FnQWhCd3NnQ3lBTEtBSXNJQWxxSWdNMkFpd2dEU0FJSUFkRlFRSjBhaUlJSUJVYklnY2dFa0VDZEdvZ0JpQUdJQWRyUVFKMUlCSktHeUVHSUFOQkFFZ05BQXNMUVFBaEF3SkFJQVlnQ0UwTkFDQU5JQWhyUVFKMVFRbHNJUU5CQ2lFSElBZ29BZ0FpQ1VFS1NRMEFBMEFnQTBFQmFpRURJQWtnQjBFS2JDSUhUdzBBQ3dzZ0RFRUFJQU1nRGtIbUFFWWJheUFPUWVjQVJpQU1RUUJIY1dzaUJ5QUdJQTFyUVFKMVFRbHNRUWxyU0FSQVFRUkJwQUlnQ2tFQVNCc2dDMm9nQjBHQXlBQnFJZ2xCQ1cwaUQwRUNkR3BCMEI5cklRcEJDaUVISUFrZ0QwRUpiR3NpQ1VFSFRBUkFBMEFnQjBFS2JDRUhJQWxCQVdvaUNVRUlSdzBBQ3dzQ1FDQUtLQUlBSWhJZ0VpQUhiaUlWSUFkc2F5SUpSU0FLUVFScUlnOGdCa1p4RFFBQ1FDQVZRUUZ4UlFSQVJBQUFBQUFBQUVCRElRRWdCMEdBbE92Y0EwY2dDQ0FLVDNJTkFTQUtRUVJyTFFBQVFRRnhSUTBCQzBRQkFBQUFBQUJBUXlFQkMwUUFBQUFBQUFEZ1AwUUFBQUFBQUFEd1AwUUFBQUFBQUFENFB5QUdJQTlHRzBRQUFBQUFBQUQ0UHlBSklBZEJBWFlpRDBZYklBa2dEMGtiSVJnQ1FDQVVEUUFnRXkwQUFFRXRSdzBBSUJpYUlSZ2dBWm9oQVFzZ0NpQVNJQWxySWdrMkFnQWdBU0FZb0NBQllRMEFJQW9nQnlBSmFpSUROZ0lBSUFOQmdKVHIzQU5QQkVBRFFDQUtRUUEyQWdBZ0NDQUtRUVJySWdwTEJFQWdDRUVFYXlJSVFRQTJBZ0FMSUFvZ0NpZ0NBRUVCYWlJRE5nSUFJQU5CLzVQcjNBTkxEUUFMQ3lBTklBaHJRUUoxUVFsc0lRTkJDaUVISUFnb0FnQWlDVUVLU1EwQUEwQWdBMEVCYWlFRElBa2dCMEVLYkNJSFR3MEFDd3NnQ2tFRWFpSUhJQVlnQmlBSFN4c2hCZ3NEUUNBR0lnY2dDRTBpQ1VVRVFDQUhRUVJySWdZb0FnQkZEUUVMQ3dKQUlBNUI1d0JIQkVBZ0JFRUljU0VLREFFTElBTkJmM05CZnlBTVFRRWdEQnNpQmlBRFNpQURRWHRLY1NJS0d5QUdhaUVNUVg5QmZpQUtHeUFGYWlFRklBUkJDSEVpQ2cwQVFYY2hCZ0pBSUFrTkFDQUhRUVJyS0FJQUlnNUZEUUJCQ2lFSlFRQWhCaUFPUVFwd0RRQURRQ0FHSWdwQkFXb2hCaUFPSUFsQkNtd2lDWEJGRFFBTElBcEJmM01oQmdzZ0J5QU5hMEVDZFVFSmJDRUpJQVZCWDNGQnhnQkdCRUJCQUNFS0lBd2dCaUFKYWtFSmF5SUdRUUFnQmtFQVNoc2lCaUFHSUF4S0d5RU1EQUVMUVFBaENpQU1JQU1nQ1dvZ0JtcEJDV3NpQmtFQUlBWkJBRW9iSWdZZ0JpQU1TaHNoREF0QmZ5RUpJQXhCL2YvLy93ZEIvdi8vL3djZ0NpQU1jaUlHRzBvTkFTQU1JQVpCQUVjaUVtcEJBV29oRGdKQUlBVkJYM0VpRkVIR0FFWUVRQ0FEUWYvLy8vOEhJQTVyU2cwRElBTkJBQ0FEUVFCS0d5RUdEQUVMSUJFZ0F5QURRUjkxSWdacUlBWnpyU0FSRUk4QklnWnJRUUZNQkVBRFFDQUdRUUZySWdaQk1Eb0FBQ0FSSUFaclFRSklEUUFMQ3lBR1FRSnJJZzhnQlRvQUFDQUdRUUZyUVMxQkt5QURRUUJJR3pvQUFDQVJJQTlySWdaQi8vLy8vd2NnRG10S0RRSUxJQVlnRG1vaUF5QVFRZi8vLy84SGMwb05BU0FBUVNBZ0FpQURJQkJxSWdVZ0JCQXVJQUFnRXlBUUVDb2dBRUV3SUFJZ0JTQUVRWUNBQkhNUUxnSkFBa0FDUUNBVVFjWUFSZ1JBSUF0QkVHb2lCa0VJY2lFRElBWkJDWEloQ2lBTklBZ2dDQ0FOU3hzaUNTRUlBMEFnQ0RVQ0FDQUtFSThCSVFZQ1FDQUlJQWxIQkVBZ0JpQUxRUkJxVFEwQkEwQWdCa0VCYXlJR1FUQTZBQUFnQmlBTFFSQnFTdzBBQ3d3QkN5QUdJQXBIRFFBZ0MwRXdPZ0FZSUFNaEJnc2dBQ0FHSUFvZ0Jtc1FLaUFJUVFScUlnZ2dEVTBOQUF0QkFDRUdJQkpGRFFJZ0FFSCtIa0VCRUNvZ0RFRUFUQ0FISUFoTmNnMEJBMEFnQ0RVQ0FDQUtFSThCSWdZZ0MwRVFha3NFUUFOQUlBWkJBV3NpQmtFd09nQUFJQVlnQzBFUWFrc05BQXNMSUFBZ0JpQU1RUWtnREVFSlNCc1FLaUFNUVFscklRWWdDRUVFYWlJSUlBZFBEUU1nREVFSlNpRURJQVloRENBRERRQUxEQUlMQWtBZ0RFRUFTQTBBSUFjZ0NFRUVhaUFISUFoTEd5RUpJQXRCRUdvaUEwRUpjaUVOSUFOQkNISWhBeUFJSVFjRFFDQU5JQWMxQWdBZ0RSQ1BBU0lHUmdSQUlBdEJNRG9BR0NBRElRWUxBa0FnQnlBSVJ3UkFJQVlnQzBFUWFrME5BUU5BSUFaQkFXc2lCa0V3T2dBQUlBWWdDMEVRYWtzTkFBc01BUXNnQUNBR1FRRVFLaUFHUVFGcUlRWkJBQ0FNUVFCTUlBb2JEUUFnQUVIK0hrRUJFQ29MSUFBZ0JpQU5JQVpySWdZZ0RDQUdJQXhJR3hBcUlBd2dCbXNoRENBSFFRUnFJZ2NnQ1U4TkFTQU1RUUJPRFFBTEN5QUFRVEFnREVFU2FrRVNRUUFRTGlBQUlBOGdFU0FQYXhBcURBSUxJQXdoQmdzZ0FFRXdJQVpCQ1dwQkNVRUFFQzRMSUFCQklDQUNJQVVnQkVHQXdBQnpFQzRnQWlBRklBSWdCVW9iSVFrTUFRc2dFeUFGUVJwMFFSOTFRUWx4YWlFTUFrQWdBMEVMU3cwQVFRd2dBMnNoQmtRQUFBQUFBQUF3UUNFWUEwQWdHRVFBQUFBQUFBQXdRS0loR0NBR1FRRnJJZ1lOQUFzZ0RDMEFBRUV0UmdSQUlCZ2dBWm9nR0tHZ21pRUJEQUVMSUFFZ0dLQWdHS0VoQVFzZ0VTQUxLQUlzSWdZZ0JrRWZkU0lHYWlBR2M2MGdFUkNQQVNJR1JnUkFJQXRCTURvQUR5QUxRUTlxSVFZTElCQkJBbkloQ2lBRlFTQnhJUWdnQ3lnQ0xDRUhJQVpCQW1zaURTQUZRUTlxT2dBQUlBWkJBV3RCTFVFcklBZEJBRWdiT2dBQUlBUkJDSEVoQmlBTFFSQnFJUWNEUUNBSElnVUNmeUFCbVVRQUFBQUFBQURnUVdNRVFDQUJxZ3dCQzBHQWdJQ0FlQXNpQjBHZ01tb3RBQUFnQ0hJNkFBQkJBU0FEUVFCS0lBRWdCN2VoUkFBQUFBQUFBREJBb2lJQlJBQUFBQUFBQUFBQVluSWdCaHRGSUFWQkFXb2lCeUFMUVJCcWEwRUJSM0pGQkVBZ0JVRXVPZ0FCSUFWQkFtb2hCd3NnQVVRQUFBQUFBQUFBQUdJTkFBdEJmeUVKUWYzLy8vOEhJQW9nRVNBTmF5SUZhaUlHYXlBRFNBMEFJQUJCSUNBQ0lBWUNmd0pBSUFORkRRQWdCeUFMUVJCcWF5SUlRUUpySUFOT0RRQWdBMEVDYWd3QkN5QUhJQXRCRUdwcklnZ0xJZ2RxSWdNZ0JCQXVJQUFnRENBS0VDb2dBRUV3SUFJZ0F5QUVRWUNBQkhNUUxpQUFJQXRCRUdvZ0NCQXFJQUJCTUNBSElBaHJRUUJCQUJBdUlBQWdEU0FGRUNvZ0FFRWdJQUlnQXlBRVFZREFBSE1RTGlBQ0lBTWdBaUFEU2hzaENRc2dDMEd3Qkdva0FDQUpDMVFCQW44Z0FTQUFLQUpVSWdFZ0FVRUFJQUpCZ0FKcUlnTVEzQUVpQkNBQmF5QURJQVFiSWdNZ0FpQUNJQU5MR3lJQ0VFSWFJQUFnQVNBRGFpSUROZ0pVSUFBZ0F6WUNDQ0FBSUFFZ0FtbzJBZ1FnQWdzSkFDQUFFT0VCRUJBTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEaUFRc1RBQ0FBSUFBb0FnQkJER3NvQWdCcUVJb0JDd29BSUFCQkNHc1E0Z0VMQ2dBZ0FFRUlheENLQVFzYUFDQUFJQUVnQWlrRENFRUFJQU1nQVNnQ0FDZ0NFQkVXQUFzSkFDQUFFTkFCRUJBTGxBSUNBWDhEZmlBQktBSVlJQUVvQWl4TEJFQWdBU0FCS0FJWU5nSXNDMEovSVFnQ1FDQUVRUmh4SWdWRklBVkJHRVlnQTBFQlJuRnlEUUFnQVNnQ0xDSUZCRUFnQlNBQlFTQnFFQTFyckNFR0N3SkFBa0FDUUNBRERnTUNBQUVEQ3lBRVFRaHhCRUFnQVNnQ0RDQUJLQUlJYTZ3aEJ3d0NDeUFCS0FJWUlBRW9BaFJyckNFSERBRUxJQVloQndzZ0FpQUhmQ0lDUWdCVElBSWdCbFZ5RFFBZ0JFRUljU0VEQWtBZ0FsQU5BQ0FEQkVBZ0FTZ0NERVVOQWdzZ0JFRVFjVVVOQUNBQktBSVlSUTBCQ3lBREJFQWdBU0FCS0FJSUlBRW9BZ2dnQXFkcUlBRW9BaXdRbXdFTElBUkJFSEVFUUNBQklBRW9BaFFnQVNnQ0hCRDJBaUFCSUFLbkVQVUNDeUFDSVFnTElBQWdDQkM3QVF1REFnRUpmeU1BUVJCcklnTWtBQUovSUFGQmZ4QmVSUVJBSUFBb0Fnd2hCQ0FBS0FJSUlRVWdBQ2dDR0NBQUtBSWNSZ1JBUVg4Z0FDMEFNRUVRY1VVTkFob2dBQ2dDR0NFR0lBQW9BaFFoQnlBQUtBSXNJUWdnQUNnQ0ZDRUpJQUJCSUdvaUFrRUFFS0VCSUFJZ0FoQVRFQXdnQUNBQ0VBMGlDaUFDRUFrZ0Ntb1E5Z0lnQUNBR0lBZHJFUFVDSUFBZ0FDZ0NGQ0FJSUFscmFqWUNMQXNnQXlBQUtBSVlRUUZxTmdJTUlBQWdBMEVNYWlBQVFTeHFFSFlvQWdBMkFpd2dBQzBBTUVFSWNRUkFJQUFnQUVFZ2FoQU5JZ0lnQWlBRUlBVnJhaUFBS0FJc0VKc0JDeUFBSUFFUW5BRVEvZ0lNQVFzZ0FSRHlBZ3NoQUNBRFFSQnFKQUFnQUF1Z0FRRUJmeUFBS0FJWUlBQW9BaXhMQkVBZ0FDQUFLQUlZTmdJc0N3SkFJQUFvQWdnZ0FDZ0NERThOQUNBQlFYOFFYZ1JBSUFBZ0FDZ0NDQ0FBS0FJTVFRRnJJQUFvQWl3UW13RWdBUkR5QWc4TElBQXRBREJCRUhGRkJFQWdBUkNjQVNBQUtBSU1RUUZyTEFBQUVGNUZEUUVMSUFBZ0FDZ0NDQ0FBS0FJTVFRRnJJQUFvQWl3UW13RWdBUkNjQVNFQ0lBQW9BZ3dnQWpvQUFDQUJEd3RCZnd0a0FDQUFLQUlZSUFBb0FpeExCRUFnQUNBQUtBSVlOZ0lzQ3dKQUlBQXRBREJCQ0hGRkRRQWdBQ2dDRUNBQUtBSXNTUVJBSUFBZ0FDZ0NDQ0FBS0FJTUlBQW9BaXdRbXdFTElBQW9BZ3dnQUNnQ0VFOE5BQ0FBS0FJTUxBQUFFR1VQQzBGL0N3Y0FJQUFvQWdnTEV3QWdBQ0FBS0FJQVFReHJLQUlBYWhEakFRc0tBQ0FBUVFockVPTUJDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1F1QUVMQ2dBZ0FFRUlheEM0QVFzVEFDQUFJQUFvQWdCQkRHc29BZ0JxRVBrQ0N4TUFJQUFnQUNnQ0FFRU1heWdDQUdvUTVBRUxDUUJCeUlFQkVBb2FDeE1BSUFBZ0FDZ0NBRUVNYXlnQ0FHb1Fod01MRXdBZ0FDQUFLQUlBUVF4cktBSUFhaERsQVF1dEFRRUVmeU1BUVJCcklnVWtBQU5BQWtBZ0FpQUVUQTBBSUFBb0FoZ2lBeUFBS0FJY0lnWlBCRUFnQUNBQkxBQUFFR1VnQUNnQ0FDZ0NOQkVDQUVGL1JnMEJJQVJCQVdvaEJDQUJRUUZxSVFFRklBVWdCaUFEYXpZQ0RDQUZJQUlnQkdzMkFnZ2dCVUVNYWlBRlFRaHFFTG9CSVFNZ0FDZ0NHQ0FCSUFNb0FnQWlBeEJWSUFBZ0F5QUFLQUlZYWpZQ0dDQURJQVJxSVFRZ0FTQURhaUVCQ3d3QkN3c2dCVUVRYWlRQUlBUUxDL0ppSWdCQmdBZ0xzeVdsWTJQR2hIeDgrSmwzZCs2TmUzdjJEZkx5LzcxcmE5YXhiMi9lVk1YRmtWQXdNR0FEQVFFQ3FXZG56bjBySzFZWi92N25ZdGZYdGVhcnEwMmFkbmJzUmNyS2o1MkNnaDlBeWNtSmgzMTkraFg2K3UvcldWbXl5VWRIamd2dzhQdnNyYTFCWjlUVXMvMmlvbC9xcjY5RnY1eWNJL2VrcEZPV2NuTGtXOERBbThLM3QzVWMvZjNocnBPVFBXb21Ka3hhTmpac1FUOC9mZ0wzOS9WUHpNeURYRFEwYVBTbHBWRTA1ZVhSQ1BIeCtaTnhjZUp6Mk5pclV6RXhZajhWRlNvTUJBUUlVc2ZIbFdVakkwWmV3OE9kS0JnWU1LR1dsamNQQlFVS3RacWFMd2tIQnc0MkVoSWttNENBR3ozaTR0OG02K3ZOYVNjblRzMnlzbitmZFhYcUd3a0pFcDZEZ3gxMExDeFlMaG9hTkMwYkd6YXlibTdjN2xwYXRQdWdvRnYyVWxLa1RUczdkbUhXMXJmT3M3TjlleWtwVWo3ajQ5MXhMeTllbDRTRUUvVlRVNlpvMGRHNUFBQUFBQ3p0N2NGZ0lDQkFIL3o4NDhpeHNYbnRXMXUydm1wcTFFYkx5NDNadnI1blN6azVjdDVLU3BUVVRFeVk2RmhZc0VyUHo0VnIwTkM3S3UvdnhlV3FxazhXKy92dHhVTkRodGROVFpwVk16Tm1sSVdGRWM5RlJZb1ErZm5wQmdJQ0JJRi9mLzd3VUZDZ1JEdzhlTHFmbnlYanFLaEw4MUZSb3Y2am8xM0FRRUNBaW8rUEJhMlNrais4blowaFNEZzRjQVQxOWZIZnZMeGp3YmEyZDNYYTJxOWpJU0ZDTUJBUUlCci8vK1VPOC9QOWJkTFN2MHpOellFVURBd1lOUk1USmkvczdNUGhYMSsrb3BlWE5jeEVSSWc1RnhjdVY4VEVrL0tucDFXQ2ZuNzhSejA5ZXF4a1pNam5YVjI2S3hrWk1wVnpjK2FnWUdEQW1JR0JHZEZQVDU1LzNOeWpaaUlpUkg0cUtsU3JrSkE3ZzRpSUM4cEdSb3dwN3U3SDA3aTRhendVRkNoNTN0Nm40bDVldkIwTEN4WjIyOXV0TytEZzIxWXlNbVJPT2pwMEhnb0tGTnRKU1pJS0JnWU1iQ1FrU09SY1hMaGR3c0tmYnRQVHZlK3NyRU9tWW1MRXFKR1JPYVNWbFRFMzVPVFRpM2w1OGpMbjU5VkR5TWlMV1RjM2JyZHRiZHFNalkwQlpOWFZzZEpPVHB6Z3FhbEp0R3hzMlBwV1Zxd0g5UFR6SmVycXo2OWxaY3FPZW5yMDZhNnVSeGdJQ0JEVnVycHZpSGg0OEc4bEpVcHlMaTVjSkJ3Y09QR21wbGZIdExSelVjYkdseVBvNk10ODNkMmhuSFIwNkNFZkh6N2RTMHVXM0wyOVlZYUxpdzJGaW9vUGtIQnc0RUkrUG56RXRiVnhxbVptek5oSVNKQUZBd01HQWZiMjl4SU9EaHlqWVdIQ1h6VTFhdmxYVjY3UXVibHBrWWFHRjFqQndaa25IUjA2dVo2ZUp6amg0ZGtUK1BqcnM1aVlLek1SRVNLN2FXblNjTm5acVltT2pnZW5sSlF6dHB1YkxTSWVIanlTaDRjVklPbnB5VW5Pem9mL1ZWV3FlQ2dvVUhyZjM2V1BqSXdEK0tHaFdZQ0ppUWtYRFEwYTJyKy9aVEhtNXRmR1FrS0V1R2hvME1OQlFZS3dtWmtwZHkwdFdoRVBEeDdMc0xCNy9GUlVxTmE3dTIwNkZoWXNVS2YwVVZObFFYN0RwQmNhbGw0bk9zdHJxenZ4UlowZnExajZySk1ENDB0VitqQWc5bTEyclpGMnpJZ2xUQUwxL05mbFQ5ZkxLc1dBUkRVbWo2Tml0VWxhc2Q1bkc3b2xtQTdxUmVIQS9sMENkUy9ERXZCTWdhT1hSbzNHK2ROcjUxK1BBNVdja2hYcmVtMi8ybGxTbFMyRHZ0VFRJWFJZS1duZ1NVVEl5WTVxaWNKMWVIbU85R3MrV0puZGNia250ay9odmhldGlQQm1yQ0RKdERyT2ZSaEszMk9DTVJybFlETlJsMFYvVTJMZ2QyU3hoSzVydXh5Z2dmNlVLd2o1V0doSWNCbjlSWStIYk42VXQvaDdVaVBUYzZ2aUFrdHlWNDhmNHlxclZXWUhLT3V5QThLMUw1cDd4WWFsQ0RmVDhvY29NTEtsdnlPNmFnTUNYSUlXN1NzY3o0cVN0SG1uOFBJSDg2SGlhVTdOOU5wbDFiNEZCaDlpTk5HSy9xYkVuVk11TktCVjg2SXk0WW9GZGV2MnBEbnNnd3VxNzJCQUJwOXhYbEVRYnIzNWlpRStQUWJkbHE0RlB0MUd2ZVpOdFkxVWtRVmR4SEZ2MUFZRS94VlFZQ1Q3bUJtWDZiM1d6RU5BaVhlZTJXZTlRdWl3aUl1SkJ6aGJHZWZiN3NoNVJ3cDhvZWtQUW56SkhvVDRBQUFBQUlPR2dBbEk3U3N5ckhBUkhrNXlXbXo3L3c3OVZqaUZEeDdWcmowbk9TMDJaTmtQQ2lHbVhHalJWRnViT2k0MkpMRm5DZ3dQNTFlVDBwYnV0SjZSbXh0UHhjQ0FvaURjWVdsTGQxb1dHaEljQ3JxVDR1VXFvTUJENENJOEhSY2JFZ3NOQ1E2dHg0dnl1YWkyTGNpcEhoU0ZHZkZYVEFkMXI3dmRtZTc5WUgram55WUI5N3oxY2x6Rk8yWkVOSDc3VzNZcFE0dmN4aVBMYVB6dHRtUHg1TGpLM0RIWEVJVmpRa0FpbHhNZ0VjYUVmU1JLaGZnOXU5SVJNdm11YmFFcHgwc3ZuaDN6TUxMYzdGS0dEZERqd1hkc0ZyTXJtYmx3cWZwSWxCRWlaT2xIeEl6OHFCby84S0RZTEgxVzc1QXpJc2RPU1lmQjBUalovcUxLakRZTDFKalBnZldtS041NnBTYU90OXFrdjYwLzVKMDZMQTJTZUZDYnpGOXFZa1orVk1JVGpmYm91TmlRWHZjNUx2V3Z3NEsrZ0YyZmZKUFFhYWt0MVcrekVpWFBPNW1zeUtkOUdCQnVZNXpvZTdzNzJ3bDRKczMwR0ZsdUFiZWE3S2lhVDRObGJwWG1mdWIvcWdqUHZDSG02Qlh2Mlp2bnVzNDJiMHJVQ1ovcTFueXdLYSt5cERFeEl6OHFNSlNseHNCbW9qVTN2RTUwcHNxQy9MRFFrT0FWMktjelNwZ0U4ZmZhN0VFT1VNMS9ML2FSRjQzV1RYWk5zTzlEVkUycXpOOEVsdVRqdGRHZUc0aHFUTGdmTE1GL1VXVkdCT3BlblYwMWpBRnpkSWY2TGtFTCsxb2RaN05TMHR1U00xWVE2Uk5IMW0yTVlkZWFlZ3loTjQ0VStGbUpQQlByN2llcHpqWEpZYmZ0NVJ6aFBMRkhlbG5mMHB3L2MvSlZlYzRVR0w4M3gzUHF6ZmRUVzZyOVh4UnZQZCtHMjBSNGdmT3Z5ajdFYUxrc05DUTRYMENqd25MREhSWU1KZUs4aTBrOEtFR1ZEZjl4QWFnNTNyTU1DSnprdE5pUXdWWmtZWVRMZTNDMk10VjBYR3hJUWxlNDBGSUphdFV3TnFVNHYwQ2pub0h6MS90ODR6bUNteS8vaHpTT1EwVEUzdW5MVkh1VU1xYkNJejN1VEpVTFF2ckRUZ2d1b1dZbzJTU3lkbHVpU1cyTDBTVnkrUFpraG1pWUZ0U2tYTXhkWmJhU2JIQklVUDN0dWRwZUZVWlhwNDJkaEpEWXF3Q012Tk1LOStSWUJiaXpSUWJRTEI2UHlqOFBBc0d2dlFNQkU0cHJPcEVSUVU5bjNPcVg4cy9POExUbWM1YXNkQ0xuclRXRjR2azM2QngxMzI1SDhScHhIU25GaVcrM1lnNnFHTDRiL0ZZK1M4YlNlU0NhMjhEK2VNMWE5Qi9kcURPSUI4Y3hzUklRV1NlQTdGOWdVWCtwR2JWS0RTM2xlcCtUeVp6dm9PQTdUYTRxOWJESTY3czhnMU9aWVJjckJINjZkOVltNFdrVVkxVWhESDBCQWdRSUVDQkFnQnMyYVc1bWFXNXBkSGtBUm1WaWNuVmhjbmtBU21GdWRXRnllUUJLZFd4NUFGUm9kWEp6WkdGNUFGUjFaWE5rWVhrQVYyVmtibVZ6WkdGNUFGTmhkSFZ5WkdGNUFGTjFibVJoZVFCTmIyNWtZWGtBUm5KcFpHRjVBRTFoZVFBbGJTOGxaQzhsZVFBdEt5QWdJREJZTUhnQUxUQllLekJZSURCWUxUQjRLekI0SURCNEFFNXZkZ0JVYUhVQVFYVm5kWE4wQUU5amRBQlRZWFFBUVhCeUFIWmxZM1J2Y2dCUFkzUnZZbVZ5QUU1dmRtVnRZbVZ5QUZObGNIUmxiV0psY2dCRVpXTmxiV0psY2dCcGIzTmZZbUZ6WlRvNlkyeGxZWElBVFdGeUFGTmxjQUFsU1RvbFRUb2xVeUFsY0FCVGRXNEFTblZ1QUhOMFpEbzZaWGhqWlhCMGFXOXVBRjlmWTNoaFgyZDFZWEprWDJGamNYVnBjbVVnWkdWMFpXTjBaV1FnY21WamRYSnphWFpsSUdsdWFYUnBZV3hwZW1GMGFXOXVBRTF2YmdCdVlXNEFTbUZ1QUVwMWJBQnNiQUJCY0hKcGJBQkdjbWtBVFdGeVkyZ0FRWFZuQUdsdVpnQWxMakJNWmdBbFRHWUFZV3hzYjJOaGRHOXlQRlErT2pwaGJHeHZZMkYwWlNoemFYcGxYM1FnYmlrZ0oyNG5JR1Y0WTJWbFpITWdiV0Y0YVcxMWJTQnpkWEJ3YjNKMFpXUWdjMmw2WlFCMGNuVmxBRlIxWlFCbVlXeHpaUUJLZFc1bEFGZGxaQUJFWldNQVJtVmlBQ1ZoSUNWaUlDVmtJQ1ZJT2lWTk9pVlRJQ1ZaQUZCUFUwbFlBQ1ZJT2lWTk9pVlRBRTVCVGdCUVRRQkJUUUJNUTE5QlRFd0FURUZPUndCSlRrWUFRd0F3TVRJek5EVTJOemc1QUVNdVZWUkdMVGdBWVhCd1gzWXlBSGRsWWw5Mk1nQkJRa05FUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldtRmlZMlJsWm1kb2FXcHJiRzF1YjNCeGNuTjBkWFozZUhsNk1ERXlNelExTmpjNE9Tc3ZBQzRBS0c1MWJHd3BBRkIxY21VZ2RtbHlkSFZoYkNCbWRXNWpkR2x2YmlCallXeHNaV1FoQUZ0b1JVdWNxKzVIeWdUMEJRQUFBQUFBQUFCb0VRQUFCQUFBQUFVQUFBQUdBQUFBQndBQUFBZ0FBQUFKQUFBQUNnQUFBQXNBQUFBTUFBQUFEUUFBQUE0QUFBQVBBQUFBRUFBQUFCRUFBQUFJQUFBQUFBQUFBS0FSQUFBU0FBQUFFd0FBQVBqLy8vLzQvLy8vb0JFQUFCUUFBQUFWQUFBQUFCQUFBQlFRQUFBRUFBQUFBQUFBQU9nUkFBQVdBQUFBRndBQUFQei8vLy84Ly8vLzZCRUFBQmdBQUFBWkFBQUFNQkFBQUVRUUFBQU1BQUFBQUFBQUFJQVNBQUFhQUFBQUd3QUFBQVFBQUFENC8vLy9nQklBQUJ3QUFBQWRBQUFBOVAvLy8vVC8vLytBRWdBQUhnQUFBQjhBQUFCZ0VBQUFEQklBQUNBU0FBQTBFZ0FBU0JJQUFJZ1FBQUIwRUFBQUFBQUFBT1FTQUFBZ0FBQUFJUUFBQUFZQUFBQUhBQUFBSWdBQUFDTUFBQUFLQUFBQUN3QUFBQXdBQUFBa0FBQUFEZ0FBQUNVQUFBQVFBQUFBSmdBQUFBQUFBQUFvRVFBQUp3QUFBQ2dBQUFCT1UzUXpYMTh5T1dKaGMybGpYMmx2YzBsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSUUFBQUJnL0FBRDhFQUFBV0JRQUFFNVRkRE5mWHpJeE5XSmhjMmxqWDNOMGNtVmhiV0oxWmtsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSUUFBQUFEd1BnQUFOQkVBQUU1VGRETmZYekl4TTJKaGMybGpYMmx6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQUFIUS9BQUJ3RVFBQUFBQUFBQUVBQUFBb0VRQUFBL1QvLzA1VGRETmZYekl4TTJKaGMybGpYMjl6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQUFIUS9BQUM0RVFBQUFBQUFBQUVBQUFBb0VRQUFBL1QvL3d3QUFBQUFBQUFBb0JFQUFCSUFBQUFUQUFBQTlQLy8vL1QvLy8rZ0VRQUFGQUFBQUJVQUFBQUVBQUFBQUFBQUFPZ1JBQUFXQUFBQUZ3QUFBUHovLy8vOC8vLy82QkVBQUJnQUFBQVpBQUFBVGxOME0xOWZNakUwWW1GemFXTmZhVzl6ZEhKbFlXMUpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGUlVVQWREOEFBRkFTQUFBREFBQUFBZ0FBQUtBUkFBQUNBQUFBNkJFQUFBSUlBQUJPVTNRelgxOHlNVFZpWVhOcFkxOXpkSEpwYm1kaWRXWkpZMDVUWHpFeFkyaGhjbDkwY21GcGRITkpZMFZGVGxOZk9XRnNiRzlqWVhSdmNrbGpSVVZGUlFBQUFCZy9BQUNnRWdBQWFCRUFBRUFBQUFBQUFBQUFLQlFBQUNrQUFBQXFBQUFBT0FBQUFQai8vLzhvRkFBQUt3QUFBQ3dBQUFEQS8vLy93UC8vL3lnVUFBQXRBQUFBTGdBQUFQd1NBQUJnRXdBQW5CTUFBTEFUQUFERUV3QUEyQk1BQUlnVEFBQjBFd0FBSkJNQUFCQVRBQUJBQUFBQUFBQUFBSUFTQUFBYUFBQUFHd0FBQURnQUFBRDQvLy8vZ0JJQUFCd0FBQUFkQUFBQXdQLy8vOEQvLy8rQUVnQUFIZ0FBQUI4QUFBQkFBQUFBQUFBQUFLQVJBQUFTQUFBQUV3QUFBTUQvLy8vQS8vLy9vQkVBQUJRQUFBQVZBQUFBT0FBQUFBQUFBQURvRVFBQUZnQUFBQmNBQUFESS8vLy95UC8vLytnUkFBQVlBQUFBR1FBQUFFNVRkRE5mWHpJeE9HSmhjMmxqWDNOMGNtbHVaM04wY21WaGJVbGpUbE5mTVRGamFHRnlYM1J5WVdsMGMwbGpSVVZPVTE4NVlXeHNiMk5oZEc5eVNXTkZSVVZGQUFBQUFCZy9BQURnRXdBQWdCSUFBQUFBQUFCWUZBQUFMd0FBQURBQUFBQk9VM1F6WDE4eU9HbHZjMTlpWVhObFJRQUFBUEErQUFCRUZBQUEwWFNlQUZlZHZTcUFjRklQLy84K0p3b0FBQUJrQUFBQTZBTUFBQkFuQUFDZ2hnRUFRRUlQQUlDV21BQUE0ZlVGR0FBQUFEVUFBQUJ4QUFBQWEvLy8vODc3Ly8rU3YvLy9BQUFBQUFBQUFBRC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQUFFQ0F3UUZCZ2NJQ2YvLy8vLy8vLzhLQ3d3TkRnOFFFUklURkJVV0Z4Z1pHaHNjSFI0ZklDRWlJLy8vLy8vLy93b0xEQTBPRHhBUkVoTVVGUllYR0JrYUd4d2RIaDhnSVNJai8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3dBQkFnUUhBd1lGQUFBQUFBQUFBQUlBQU1BREFBREFCQUFBd0FVQUFNQUdBQURBQndBQXdBZ0FBTUFKQUFEQUNnQUF3QXNBQU1BTUFBREFEUUFBd0E0QUFNQVBBQURBRUFBQXdCRUFBTUFTQUFEQUV3QUF3QlFBQU1BVkFBREFGZ0FBd0JjQUFNQVlBQURBR1FBQXdCb0FBTUFiQUFEQUhBQUF3QjBBQU1BZUFBREFId0FBd0FBQUFMTUJBQUREQWdBQXd3TUFBTU1FQUFEREJRQUF3d1lBQU1NSEFBRERDQUFBd3drQUFNTUtBQUREQ3dBQXd3d0FBTU1OQUFEVERnQUF3dzhBQU1NQUFBeTdBUUFNd3dJQURNTURBQXpEQkFBTTJ3QUFBQURlRWdTVkFBQUFBUC8vLy8vLy8vLy8vLy8vLzVBV0FBQVVBQUFBUXk1VlZFWXRPQUJCNEMwTEFxUVdBRUdBTGd0SFRFTmZRMVJaVUVVQUFBQUFURU5mVGxWTlJWSkpRd0FBVEVOZlZFbE5SUUFBQUFBQVRFTmZRMDlNVEVGVVJRQUFURU5mVFU5T1JWUkJVbGtBVEVOZlRVVlRVMEZIUlZNQVFkQXVDMEVaQUFvQUdSa1pBQUFBQUFVQUFBQUFBQUFKQUFBQUFBc0FBQUFBQUFBQUFCa0FFUW9aR1JrRENnY0FBUUFKQ3hnQUFBa0dDd0FBQ3dBR0dRQUFBQmtaR1FCQm9TOExJUTRBQUFBQUFBQUFBQmtBQ2cwWkdSa0FEUUFBQWdBSkRnQUFBQWtBRGdBQURnQkIyeThMQVF3QVFlY3ZDeFVUQUFBQUFCTUFBQUFBQ1F3QUFBQUFBQXdBQUF3QVFaVXdDd0VRQUVHaE1Bc1ZEd0FBQUFRUEFBQUFBQWtRQUFBQUFBQVFBQUFRQUVIUE1Bc0JFZ0JCMnpBTEhoRUFBQUFBRVFBQUFBQUpFZ0FBQUFBQUVnQUFFZ0FBR2dBQUFCb2FHZ0JCa2pFTERob0FBQUFhR2hvQUFBQUFBQUFKQUVIRE1Rc0JGQUJCenpFTEZSY0FBQUFBRndBQUFBQUpGQUFBQUFBQUZBQUFGQUJCL1RFTEFSWUFRWWt5Q3lrVkFBQUFBQlVBQUFBQUNSWUFBQUFBQUJZQUFCWUFBREF4TWpNME5UWTNPRGxCUWtORVJVWkFHZ0JCd0RRTC93RUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQURJQUlnQWlBQ0lBSWdBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBV0FFd0FUQUJNQUV3QVRBQk1BRXdBVEFCTUFFd0FUQUJNQUV3QVRBQk1BSTJBallDTmdJMkFqWUNOZ0kyQWpZQ05nSTJBVEFCTUFFd0FUQUJNQUV3QVRBQ05VSTFRalZDTlVJMVFqVkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UWpGQ01VSXhRakZDTVVJeFFqRkNNVUl4UVRBQk1BRXdBVEFCTUFFd0FqV0NOWUkxZ2pXQ05ZSTFnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlJeGdqR0NNWUl4Z2pHQ01ZSXhnakdDTVlFd0FUQUJNQUV3QUlBUWNBNEN3SlFIZ0JCMUR3TCtRTUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQVlBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBRkFBQUFCVUFBQUFXQUFBQUZ3QUFBQmdBQUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUlBQUFBQ0VBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFBMEFBQUFOUUFBQURZQUFBQTNBQUFBT0FBQUFEa0FBQUE2QUFBQU93QUFBRHdBQUFBOUFBQUFQZ0FBQUQ4QUFBQkFBQUFBUVFBQUFFSUFBQUJEQUFBQVJBQUFBRVVBQUFCR0FBQUFSd0FBQUVnQUFBQkpBQUFBU2dBQUFFc0FBQUJNQUFBQVRRQUFBRTRBQUFCUEFBQUFVQUFBQUZFQUFBQlNBQUFBVXdBQUFGUUFBQUJWQUFBQVZnQUFBRmNBQUFCWUFBQUFXUUFBQUZvQUFBQmJBQUFBWEFBQUFGMEFBQUJlQUFBQVh3QUFBR0FBQUFCQkFBQUFRZ0FBQUVNQUFBQkVBQUFBUlFBQUFFWUFBQUJIQUFBQVNBQUFBRWtBQUFCS0FBQUFTd0FBQUV3QUFBQk5BQUFBVGdBQUFFOEFBQUJRQUFBQVVRQUFBRklBQUFCVEFBQUFWQUFBQUZVQUFBQldBQUFBVndBQUFGZ0FBQUJaQUFBQVdnQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BRUhReEFBTEFtQWtBRUhreUFBTCtRTUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQVlBQUFBSEFBQUFDQUFBQUFrQUFBQUtBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQThBQUFBUUFBQUFFUUFBQUJJQUFBQVRBQUFBRkFBQUFCVUFBQUFXQUFBQUZ3QUFBQmdBQUFBWkFBQUFHZ0FBQUJzQUFBQWNBQUFBSFFBQUFCNEFBQUFmQUFBQUlBQUFBQ0VBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQUtRQUFBQ29BQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU1nQUFBRE1BQUFBMEFBQUFOUUFBQURZQUFBQTNBQUFBT0FBQUFEa0FBQUE2QUFBQU93QUFBRHdBQUFBOUFBQUFQZ0FBQUQ4QUFBQkFBQUFBWVFBQUFHSUFBQUJqQUFBQVpBQUFBR1VBQUFCbUFBQUFad0FBQUdnQUFBQnBBQUFBYWdBQUFHc0FBQUJzQUFBQWJRQUFBRzRBQUFCdkFBQUFjQUFBQUhFQUFBQnlBQUFBY3dBQUFIUUFBQUIxQUFBQWRnQUFBSGNBQUFCNEFBQUFlUUFBQUhvQUFBQmJBQUFBWEFBQUFGMEFBQUJlQUFBQVh3QUFBR0FBQUFCaEFBQUFZZ0FBQUdNQUFBQmtBQUFBWlFBQUFHWUFBQUJuQUFBQWFBQUFBR2tBQUFCcUFBQUFhd0FBQUd3QUFBQnRBQUFBYmdBQUFHOEFBQUJ3QUFBQWNRQUFBSElBQUFCekFBQUFkQUFBQUhVQUFBQjJBQUFBZHdBQUFIZ0FBQUI1QUFBQWVnQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BRUhnMEFBTHdRRXdNVEl6TkRVMk56ZzVZV0pqWkdWbVFVSkRSRVZHZUZnckxYQlFhVWx1VGdBbEFBQUFBQUFsY0FBQUFBQWxTVG9sVFRvbFV5QWxjQ1ZJT2lWTkFBQUFKUUFBQUcwQUFBQXZBQUFBSlFBQUFHUUFBQUF2QUFBQUpRQUFBSGtBQUFBbEFBQUFXUUFBQUMwQUFBQWxBQUFBYlFBQUFDMEFBQUFsQUFBQVpBQUFBQ1VBQUFCSkFBQUFPZ0FBQUNVQUFBQk5BQUFBT2dBQUFDVUFBQUJUQUFBQUlBQUFBQ1VBQUFCd0FBQUFBQUFBQUNVQUFBQklBQUFBT2dBQUFDVUFBQUJOQUVHdzBnQUwyUU1sQUFBQVNBQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFBQUFBQUMwTFFBQVJ3QUFBRWdBQUFCSkFBQUFBQUFBQUJRdUFBQktBQUFBU3dBQUFFa0FBQUJNQUFBQVRRQUFBRTRBQUFCUEFBQUFVQUFBQUZFQUFBQlNBQUFBVXdBQUFBQUFBQUI4TFFBQVZBQUFBRlVBQUFCSkFBQUFWZ0FBQUZjQUFBQllBQUFBV1FBQUFGb0FBQUJiQUFBQVhBQUFBQUFBQUFCTUxnQUFYUUFBQUY0QUFBQkpBQUFBWHdBQUFHQUFBQUJoQUFBQVlnQUFBR01BQUFBQUFBQUFjQzRBQUdRQUFBQmxBQUFBU1FBQUFHWUFBQUJuQUFBQWFBQUFBR2tBQUFCcUFBQUFkQUFBQUhJQUFBQjFBQUFBWlFBQUFBQUFBQUJtQUFBQVlRQUFBR3dBQUFCekFBQUFaUUFBQUFBQUFBQWxBQUFBYlFBQUFDOEFBQUFsQUFBQVpBQUFBQzhBQUFBbEFBQUFlUUFBQUFBQUFBQWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUFBQUFBQWxBQUFBWVFBQUFDQUFBQUFsQUFBQVlnQUFBQ0FBQUFBbEFBQUFaQUFBQUNBQUFBQWxBQUFBU0FBQUFEb0FBQUFsQUFBQVRRQUFBRG9BQUFBbEFBQUFVd0FBQUNBQUFBQWxBQUFBV1FBQUFBQUFBQUFsQUFBQVNRQUFBRG9BQUFBbEFBQUFUUUFBQURvQUFBQWxBQUFBVXdBQUFDQUFBQUFsQUFBQWNBQkJsTllBQzVZSlBDc0FBR3NBQUFCc0FBQUFTUUFBQUU1VGRETmZYekkyYkc5allXeGxOV1poWTJWMFJRQUFBQmcvQUFBa0t3QUFnRDRBQUFBQUFBQzhLd0FBYXdBQUFHMEFBQUJKQUFBQWJnQUFBRzhBQUFCd0FBQUFjUUFBQUhJQUFBQnpBQUFBZEFBQUFIVUFBQUIyQUFBQWR3QUFBSGdBQUFCNUFBQUFUbE4wTTE5Zk1qVmpkSGx3WlVsM1JVVUFUbE4wTTE5Zk1qRXdZM1I1Y0dWZlltRnpaVVVBQVBBK0FBQ2VLd0FBZEQ4QUFJd3JBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUF0Q3NBQUFJQUFBQUFBQUFBVUN3QUFHc0FBQUI2QUFBQVNRQUFBSHNBQUFCOEFBQUFmUUFBQUg0QUFBQi9BQUFBZ0FBQUFJRUFBQUJPVTNRelgxOHlOMk52WkdWamRuUkpZMk14TVY5ZmJXSnpkR0YwWlY5MFJVVUFUbE4wTTE5Zk1qRXlZMjlrWldOMmRGOWlZWE5sUlFBQUFBRHdQZ0FBTGl3QUFIUS9BQUFNTEFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUVnc0FBQUNBQUFBQUFBQUFNUXNBQUJyQUFBQWdnQUFBRWtBQUFDREFBQUFoQUFBQUlVQUFBQ0dBQUFBaHdBQUFJZ0FBQUNKQUFBQVRsTjBNMTlmTWpkamIyUmxZM1owU1VSell6RXhYMTl0WW5OMFlYUmxYM1JGUlFBQWREOEFBS0FzQUFBQUFBQUFBZ0FBQUR3ckFBQUNBQUFBU0N3QUFBSUFBQUFBQUFBQU9DMEFBR3NBQUFDS0FBQUFTUUFBQUlzQUFBQ01BQUFBalFBQUFJNEFBQUNQQUFBQWtBQUFBSkVBQUFCT1UzUXpYMTh5TjJOdlpHVmpkblJKUkdsak1URmZYMjFpYzNSaGRHVmZkRVZGQUFCMFB3QUFGQzBBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUJJTEFBQUFnQUFBRTVUZEROZlh6STNZMjlrWldOMmRFbDNZekV4WDE5dFluTjBZWFJsWDNSRlJRQUFBSFEvQUFCWUxRQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFFZ3NBQUFDQUFBQVRsTjBNMTlmTWpac2IyTmhiR1UxWDE5cGJYQkZBQUFBR0Q4QUFKd3RBQUE4S3dBQVRsTjBNMTlmTWpkamIyeHNZWFJsU1dORlJRQVlQd0FBd0MwQUFEd3JBQUJPVTNRelgxOHlOMk52Ykd4aGRHVkpkMFZGQUJnL0FBRGdMUUFBUENzQUFFNVRkRE5mWHpJMVkzUjVjR1ZKWTBWRkFBQUFkRDhBQUFBdUFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQXRDc0FBQUlBQUFCT1UzUXpYMTh5T0c1MWJYQjFibU4wU1dORlJRQUFBQUFZUHdBQU5DNEFBRHdyQUFCT1UzUXpYMTh5T0c1MWJYQjFibU4wU1hkRlJRQUFBQUFZUHdBQVdDNEFBRHdyQUFBQUFBQUExQzBBQUpJQUFBQ1RBQUFBU1FBQUFKUUFBQUNWQUFBQWxnQUFBQUFBQUFEMExRQUFsd0FBQUpnQUFBQkpBQUFBbVFBQUFKb0FBQUNiQUFBQUFBQUFBSkF2QUFCckFBQUFuQUFBQUVrQUFBQ2RBQUFBbmdBQUFKOEFBQUNnQUFBQW9RQUFBS0lBQUFDakFBQUFwQUFBQUtVQUFBQ21BQUFBcHdBQUFFNVRkRE5mWHpJM2JuVnRYMmRsZEVsalRsTmZNVGxwYzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNamxmWDI1MWJWOW5aWFJKWTBWRkFFNVRkRE5mWHpJeE5GOWZiblZ0WDJkbGRGOWlZWE5sUlFBQThENEFBRll2QUFCMFB3QUFRQzhBQUFBQUFBQUJBQUFBY0M4QUFBQUFBQUIwUHdBQS9DNEFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQjRMd0JCdE44QUM4b0JaREFBQUdzQUFBQ29BQUFBU1FBQUFLa0FBQUNxQUFBQXF3QUFBS3dBQUFDdEFBQUFyZ0FBQUs4QUFBQ3dBQUFBc1FBQUFMSUFBQUN6QUFBQVRsTjBNMTlmTWpkdWRXMWZaMlYwU1hkT1UxOHhPV2x6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKZDA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KZDBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgyZGxkRWwzUlVVQUFBQjBQd0FBTkRBQUFBQUFBQUFCQUFBQWNDOEFBQUFBQUFCMFB3QUE4QzhBQUFBQUFBQUNBQUFBUENzQUFBSUFBQUJNTUFCQmlPRUFDOTRCVERFQUFHc0FBQUMwQUFBQVNRQUFBTFVBQUFDMkFBQUF0d0FBQUxnQUFBQzVBQUFBdWdBQUFMc0FBQUM4QUFBQVRsTjBNMTlmTWpkdWRXMWZjSFYwU1dOT1UxOHhPVzl6ZEhKbFlXMWlkV1pmYVhSbGNtRjBiM0pKWTA1VFh6RXhZMmhoY2w5MGNtRnBkSE5KWTBWRlJVVkZSUUJPVTNRelgxOHlPVjlmYm5WdFgzQjFkRWxqUlVVQVRsTjBNMTlmTWpFMFgxOXVkVzFmY0hWMFgySmhjMlZGQUFEd1BnQUFFakVBQUhRL0FBRDhNQUFBQUFBQUFBRUFBQUFzTVFBQUFBQUFBSFEvQUFDNE1BQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFEUXhBRUh3NGdBTHZnRVVNZ0FBYXdBQUFMMEFBQUJKQUFBQXZnQUFBTDhBQUFEQUFBQUF3UUFBQU1JQUFBRERBQUFBeEFBQUFNVUFBQUJPVTNRelgxOHlOMjUxYlY5d2RYUkpkMDVUWHpFNWIzTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJNVgxOXVkVzFmY0hWMFNYZEZSUUFBQUhRL0FBRGtNUUFBQUFBQUFBRUFBQUFzTVFBQUFBQUFBSFEvQUFDZ01RQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFQd3hBRUc0NUFBTG1nc1VNd0FBeGdBQUFNY0FBQUJKQUFBQXlBQUFBTWtBQUFES0FBQUF5d0FBQU13QUFBRE5BQUFBemdBQUFQai8vLzhVTXdBQXp3QUFBTkFBQUFEUkFBQUEwZ0FBQU5NQUFBRFVBQUFBMVFBQUFFNVRkRE5mWHpJNGRHbHRaVjluWlhSSlkwNVRYekU1YVhOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekk1ZEdsdFpWOWlZWE5sUlFEd1BnQUF6VElBQUU1VGRETmZYekl5TUY5ZmRHbHRaVjluWlhSZlkxOXpkRzl5WVdkbFNXTkZSUUFBQVBBK0FBRG9NZ0FBZEQ4QUFJZ3lBQUFBQUFBQUF3QUFBRHdyQUFBQ0FBQUE0RElBQUFJQUFBQU1Nd0FBQUFnQUFBQUFBQUFBTkFBQTFnQUFBTmNBQUFCSkFBQUEyQUFBQU5rQUFBRGFBQUFBMndBQUFOd0FBQURkQUFBQTNnQUFBUGovLy84QU5BQUEzd0FBQU9BQUFBRGhBQUFBNGdBQUFPTUFBQURrQUFBQTVRQUFBRTVUZEROZlh6STRkR2x0WlY5blpYUkpkMDVUWHpFNWFYTjBjbVZoYldKMVpsOXBkR1Z5WVhSdmNrbDNUbE5mTVRGamFHRnlYM1J5WVdsMGMwbDNSVVZGUlVWRkFFNVRkRE5mWHpJeU1GOWZkR2x0WlY5blpYUmZZMTl6ZEc5eVlXZGxTWGRGUlFBQThENEFBTlV6QUFCMFB3QUFrRE1BQUFBQUFBQURBQUFBUENzQUFBSUFBQURnTWdBQUFnQUFBUGd6QUFBQUNBQUFBQUFBQUtRMEFBRG1BQUFBNXdBQUFFa0FBQURvQUFBQVRsTjBNMTlmTWpoMGFXMWxYM0IxZEVsalRsTmZNVGx2YzNSeVpXRnRZblZtWDJsMFpYSmhkRzl5U1dOT1UxOHhNV05vWVhKZmRISmhhWFJ6U1dORlJVVkZSVVVBVGxOME0xOWZNakV3WDE5MGFXMWxYM0IxZEVVQUFBRHdQZ0FBaFRRQUFIUS9BQUJBTkFBQUFBQUFBQUlBQUFBOEt3QUFBZ0FBQUp3MEFBQUFDQUFBQUFBQUFDUTFBQURwQUFBQTZnQUFBRWtBQUFEckFBQUFUbE4wTTE5Zk1qaDBhVzFsWDNCMWRFbDNUbE5mTVRsdmMzUnlaV0Z0WW5WbVgybDBaWEpoZEc5eVNYZE9VMTh4TVdOb1lYSmZkSEpoYVhSelNYZEZSVVZGUlVVQUFBQUFkRDhBQU53MEFBQUFBQUFBQWdBQUFEd3JBQUFDQUFBQW5EUUFBQUFJQUFBQUFBQUF1RFVBQUdzQUFBRHNBQUFBU1FBQUFPMEFBQUR1QUFBQTd3QUFBUEFBQUFEeEFBQUE4Z0FBQVBNQUFBRDBBQUFBOVFBQUFFNVRkRE5mWHpJeE1HMXZibVY1Y0hWdVkzUkpZMHhpTUVWRlJRQk9VM1F6WDE4eU1UQnRiMjVsZVY5aVlYTmxSUUFBQUFEd1BnQUFtRFVBQUhRL0FBQjhOUUFBQUFBQUFBSUFBQUE4S3dBQUFnQUFBTEExQUFBQ0FBQUFBQUFBQUN3MkFBQnJBQUFBOWdBQUFFa0FBQUQzQUFBQStBQUFBUGtBQUFENkFBQUErd0FBQVB3QUFBRDlBQUFBL2dBQUFQOEFBQUJPVTNRelgxOHlNVEJ0YjI1bGVYQjFibU4wU1dOTVlqRkZSVVVBZEQ4QUFCQTJBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFzRFVBQUFJQUFBQUFBQUFBb0RZQUFHc0FBQUFBQVFBQVNRQUFBQUVCQUFBQ0FRQUFBd0VBQUFRQkFBQUZBUUFBQmdFQUFBY0JBQUFJQVFBQUNRRUFBRTVUZEROZlh6SXhNRzF2Ym1WNWNIVnVZM1JKZDB4aU1FVkZSUUIwUHdBQWhEWUFBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQ3dOUUFBQWdBQUFBQUFBQUFVTndBQWF3QUFBQW9CQUFCSkFBQUFDd0VBQUF3QkFBQU5BUUFBRGdFQUFBOEJBQUFRQVFBQUVRRUFBQklCQUFBVEFRQUFUbE4wTTE5Zk1qRXdiVzl1Wlhsd2RXNWpkRWwzVEdJeFJVVkZBSFEvQUFENE5nQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFMQTFBQUFDQUFBQUFBQUFBTGczQUFCckFBQUFGQUVBQUVrQUFBQVZBUUFBRmdFQUFFNVRkRE5mWHpJNWJXOXVaWGxmWjJWMFNXTk9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSlkwNVRYekV4WTJoaGNsOTBjbUZwZEhOSlkwVkZSVVZGUlFCT1UzUXpYMTh5TVRGZlgyMXZibVY1WDJkbGRFbGpSVVVBQVBBK0FBQ1dOd0FBZEQ4QUFGQTNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFzRGNBUWR6dkFBdWFBVnc0QUFCckFBQUFGd0VBQUVrQUFBQVlBUUFBR1FFQUFFNVRkRE5mWHpJNWJXOXVaWGxmWjJWMFNYZE9VMTh4T1dsemRISmxZVzFpZFdaZmFYUmxjbUYwYjNKSmQwNVRYekV4WTJoaGNsOTBjbUZwZEhOSmQwVkZSVVZGUlFCT1UzUXpYMTh5TVRGZlgyMXZibVY1WDJkbGRFbDNSVVVBQVBBK0FBQTZPQUFBZEQ4QUFQUTNBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFWRGdBUVlIeEFBdVpBVGtBQUdzQUFBQWFBUUFBU1FBQUFCc0JBQUFjQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSlkwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsalRsTmZNVEZqYUdGeVgzUnlZV2wwYzBsalJVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNXTkZSUUFBOEQ0QUFONDRBQUIwUHdBQW1EZ0FBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBRDRPQUJCcFBJQUM1b0JwRGtBQUdzQUFBQWRBUUFBU1FBQUFCNEJBQUFmQVFBQVRsTjBNMTlmTWpsdGIyNWxlVjl3ZFhSSmQwNVRYekU1YjNOMGNtVmhiV0oxWmw5cGRHVnlZWFJ2Y2tsM1RsTmZNVEZqYUdGeVgzUnlZV2wwYzBsM1JVVkZSVVZGQUU1VGRETmZYekl4TVY5ZmJXOXVaWGxmY0hWMFNYZEZSUUFBOEQ0QUFJSTVBQUIwUHdBQVBEa0FBQUFBQUFBQ0FBQUFQQ3NBQUFJQUFBQ2NPUUJCeVBNQUM3a0lIRG9BQUdzQUFBQWdBUUFBU1FBQUFDRUJBQUFpQVFBQUl3RUFBRTVUZEROZlh6STRiV1Z6YzJGblpYTkpZMFZGQUU1VGRETmZYekl4TTIxbGMzTmhaMlZ6WDJKaGMyVkZBQUFBQVBBK0FBRDVPUUFBZEQ4QUFPUTVBQUFBQUFBQUFnQUFBRHdyQUFBQ0FBQUFGRG9BQUFJQUFBQUFBQUFBZERvQUFHc0FBQUFrQVFBQVNRQUFBQ1VCQUFBbUFRQUFKd0VBQUU1VGRETmZYekk0YldWemMyRm5aWE5KZDBWRkFBQUFBSFEvQUFCY09nQUFBQUFBQUFJQUFBQThLd0FBQWdBQUFCUTZBQUFDQUFBQVV3QUFBSFVBQUFCdUFBQUFaQUFBQUdFQUFBQjVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBZFFBQUFHVUFBQUJ6QUFBQVpBQUFBR0VBQUFCNUFBQUFBQUFBQUZjQUFBQmxBQUFBWkFBQUFHNEFBQUJsQUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQlVBQUFBYUFBQUFIVUFBQUJ5QUFBQWN3QUFBR1FBQUFCaEFBQUFlUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUdFQUFBQjBBQUFBZFFBQUFISUFBQUJrQUFBQVlRQUFBSGtBQUFBQUFBQUFVd0FBQUhVQUFBQnVBQUFBQUFBQUFFMEFBQUJ2QUFBQWJnQUFBQUFBQUFCVUFBQUFkUUFBQUdVQUFBQUFBQUFBVndBQUFHVUFBQUJrQUFBQUFBQUFBRlFBQUFCb0FBQUFkUUFBQUFBQUFBQkdBQUFBY2dBQUFHa0FBQUFBQUFBQVV3QUFBR0VBQUFCMEFBQUFBQUFBQUVvQUFBQmhBQUFBYmdBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFSZ0FBQUdVQUFBQmlBQUFBY2dBQUFIVUFBQUJoQUFBQWNnQUFBSGtBQUFBQUFBQUFUUUFBQUdFQUFBQnlBQUFBWXdBQUFHZ0FBQUFBQUFBQVFRQUFBSEFBQUFCeUFBQUFhUUFBQUd3QUFBQUFBQUFBVFFBQUFHRUFBQUI1QUFBQUFBQUFBRW9BQUFCMUFBQUFiZ0FBQUdVQUFBQUFBQUFBU2dBQUFIVUFBQUJzQUFBQWVRQUFBQUFBQUFCQkFBQUFkUUFBQUdjQUFBQjFBQUFBY3dBQUFIUUFBQUFBQUFBQVV3QUFBR1VBQUFCd0FBQUFkQUFBQUdVQUFBQnRBQUFBWWdBQUFHVUFBQUJ5QUFBQUFBQUFBRThBQUFCakFBQUFkQUFBQUc4QUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVJBQUFBR1VBQUFCakFBQUFaUUFBQUcwQUFBQmlBQUFBWlFBQUFISUFBQUFBQUFBQVNnQUFBR0VBQUFCdUFBQUFBQUFBQUVZQUFBQmxBQUFBWWdBQUFBQUFBQUJOQUFBQVlRQUFBSElBQUFBQUFBQUFRUUFBQUhBQUFBQnlBQUFBQUFBQUFFb0FBQUIxQUFBQWJnQUFBQUFBQUFCS0FBQUFkUUFBQUd3QUFBQUFBQUFBUVFBQUFIVUFBQUJuQUFBQUFBQUFBRk1BQUFCbEFBQUFjQUFBQUFBQUFBQlBBQUFBWXdBQUFIUUFBQUFBQUFBQVRnQUFBRzhBQUFCMkFBQUFBQUFBQUVRQUFBQmxBQUFBWXdBQUFBQUFBQUJCQUFBQVRRQUFBQUFBQUFCUUFBQUFUUUJCalB3QUMrSUVERE1BQU04QUFBRFFBQUFBMFFBQUFOSUFBQURUQUFBQTFBQUFBTlVBQUFBQUFBQUErRE1BQU44QUFBRGdBQUFBNFFBQUFPSUFBQURqQUFBQTVBQUFBT1VBQUFBQUFBQUFnRDRBQUNnQkFBQXBBUUFBS2dFQUFFNVRkRE5mWHpJeE5GOWZjMmhoY21Wa1gyTnZkVzUwUlFBQUFBRHdQZ0FBWkQ0QUFFNHhNRjlmWTNoNFlXSnBkakV4Tmw5ZmMyaHBiVjkwZVhCbFgybHVabTlGQUFBQUFCZy9BQUNJUGdBQWFFQUFBRTR4TUY5ZlkzaDRZV0pwZGpFeE4xOWZZMnhoYzNOZmRIbHdaVjlwYm1adlJRQUFBQmcvQUFDNFBnQUFyRDRBQUFBQUFBRGNQZ0FBS3dFQUFDd0JBQUF0QVFBQUxnRUFBQzhCQUFBd0FRQUFNUUVBQURJQkFBQUFBQUFBWUQ4QUFDc0JBQUF6QVFBQUxRRUFBQzRCQUFBdkFRQUFOQUVBQURVQkFBQTJBUUFBVGpFd1gxOWplSGhoWW1sMk1USXdYMTl6YVY5amJHRnpjMTkwZVhCbFgybHVabTlGQUFBQUFCZy9BQUE0UHdBQTNENEFBQUFBQUFDOFB3QUFLd0VBQURjQkFBQXRBUUFBTGdFQUFDOEJBQUE0QVFBQU9RRUFBRG9CQUFCT01UQmZYMk40ZUdGaWFYWXhNakZmWDNadGFWOWpiR0Z6YzE5MGVYQmxYMmx1Wm05RkFBQUFHRDhBQUpRL0FBRGNQZ0FBQUFBQUFPdy9BQUE3QVFBQVBBRUFBRDBCQUFCVGREbGxlR05sY0hScGIyNEFBQUFBOEQ0QUFOdy9BQUFBQUFBQUdFQUFBQU1BQUFBK0FRQUFQd0VBQUZOME1URnNiMmRwWTE5bGNuSnZjZ0FZUHdBQUNFQUFBT3cvQUFBQUFBQUFURUFBQUFNQUFBQkFBUUFBUHdFQUFGTjBNVEpzWlc1bmRHaGZaWEp5YjNJQUFBQUFHRDhBQURoQUFBQVlRQUFBVTNRNWRIbHdaVjlwYm1adkFBQUFBUEErQUFCWVFBQkI4SUFCQ3dLZ2F3PT0iKSxfeT1mdW5jdGlvbihBKXsoQT1BfHx7fSkuaW5zdGFudGlhdGVXYXNtPWZ1bmN0aW9uKEEsZyl7enkoQSkudGhlbigoZnVuY3Rpb24oQSl7Zyh7ZXhwb3J0czpBLmV4cG9ydHN9KX0pKX07dmFyIGcsST12b2lkIDAhPT1BP0E6e30sQj1PYmplY3QuYXNzaWduLFE9Qih7fSxJKSxDPSIuL3RoaXMucHJvZ3JhbSIsRT0hMCxpPSIiO2k9MCE9PShpPXNlbGYubG9jYXRpb24uaHJlZikuaW5kZXhPZigiYmxvYjoiKT9pLnN1YnN0cigwLGkucmVwbGFjZSgvWz8jXS4qLywiIikubGFzdEluZGV4T2YoIi8iKSsxKToiIixnPWZ1bmN0aW9uKEEpe3ZhciBnPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gZy5vcGVuKCJHRVQiLEEsITEpLGcucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsZy5zZW5kKG51bGwpLG5ldyBVaW50OEFycmF5KGcucmVzcG9uc2UpfSxJLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciB0LGUsbz1JLnByaW50RXJyfHxjb25zb2xlLndhcm4uYmluZChjb25zb2xlKTtCKEksUSksUT1udWxsLEkuYXJndW1lbnRzJiZJLmFyZ3VtZW50cyxJLnRoaXNQcm9ncmFtJiYoQz1JLnRoaXNQcm9ncmFtKSxJLnF1aXQmJkkucXVpdCxJLndhc21CaW5hcnkmJih0PUkud2FzbUJpbmFyeSksSS5ub0V4aXRSdW50aW1lLCJvYmplY3QiIT09KCJ1bmRlZmluZWQiPT10eXBlb2YgV2ViQXNzZW1ibHk/InVuZGVmaW5lZCI6aG4oV2ViQXNzZW1ibHkpKSYmaygibm8gbmF0aXZlIHdhc20gc3VwcG9ydCBkZXRlY3RlZCIpO3ZhciBuLHIsYSxzLGMsaD0hMSx5PSJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwO2Z1bmN0aW9uIEQoQSxnKXtyZXR1cm4gQT9mdW5jdGlvbihBLGcsSSl7Zm9yKHZhciBCPWcrSSxRPWc7QVtRXSYmIShRPj1CKTspKytRO2lmKFEtZz4xNiYmQS5zdWJhcnJheSYmeSlyZXR1cm4geS5kZWNvZGUoQS5zdWJhcnJheShnLFEpKTtmb3IodmFyIEM9IiI7ZzxROyl7dmFyIEU9QVtnKytdO2lmKDEyOCZFKXt2YXIgaT02MyZBW2crK107aWYoMTkyIT0oMjI0JkUpKXt2YXIgdD02MyZBW2crK107aWYoKEU9MjI0PT0oMjQwJkUpPygxNSZFKTw8MTJ8aTw8Nnx0Oig3JkUpPDwxOHxpPDwxMnx0PDw2fDYzJkFbZysrXSk8NjU1MzYpQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKTtlbHNle3ZhciBlPUUtNjU1MzY7Qys9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxlPj4xMCw1NjMyMHwxMDIzJmUpfX1lbHNlIEMrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDMxJkUpPDw2fGkpfWVsc2UgQys9U3RyaW5nLmZyb21DaGFyQ29kZShFKX1yZXR1cm4gQ30oYSxBLGcpOiIifWZ1bmN0aW9uIGYoQSxnLEksQil7aWYoIShCPjApKXJldHVybiAwO2Zvcih2YXIgUT1JLEM9SStCLTEsRT0wO0U8QS5sZW5ndGg7KytFKXt2YXIgaT1BLmNoYXJDb2RlQXQoRSk7aWYoaT49NTUyOTYmJmk8PTU3MzQzJiYoaT02NTUzNisoKDEwMjMmaSk8PDEwKXwxMDIzJkEuY2hhckNvZGVBdCgrK0UpKSxpPD0xMjcpe2lmKEk+PUMpYnJlYWs7Z1tJKytdPWl9ZWxzZSBpZihpPD0yMDQ3KXtpZihJKzE+PUMpYnJlYWs7Z1tJKytdPTE5MnxpPj42LGdbSSsrXT0xMjh8NjMmaX1lbHNlIGlmKGk8PTY1NTM1KXtpZihJKzI+PUMpYnJlYWs7Z1tJKytdPTIyNHxpPj4xMixnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfWVsc2V7aWYoSSszPj1DKWJyZWFrO2dbSSsrXT0yNDB8aT4+MTgsZ1tJKytdPTEyOHxpPj4xMiY2MyxnW0krK109MTI4fGk+PjYmNjMsZ1tJKytdPTEyOHw2MyZpfX1yZXR1cm4gZ1tJXT0wLEktUX1mdW5jdGlvbiB1KEEpe2Zvcih2YXIgZz0wLEk9MDtJPEEubGVuZ3RoOysrSSl7dmFyIEI9QS5jaGFyQ29kZUF0KEkpO0I+PTU1Mjk2JiZCPD01NzM0MyYmKEI9NjU1MzYrKCgxMDIzJkIpPDwxMCl8MTAyMyZBLmNoYXJDb2RlQXQoKytJKSksQjw9MTI3PysrZzpnKz1CPD0yMDQ3PzI6Qjw9NjU1MzU/Mzo0fXJldHVybiBnfWZ1bmN0aW9uIHcoQSxnKXtyLnNldChBLGcpfWZ1bmN0aW9uIGQoQSl7bj1BLEkuSEVBUDg9cj1uZXcgSW50OEFycmF5KEEpLEkuSEVBUDE2PW5ldyBJbnQxNkFycmF5KEEpLEkuSEVBUDMyPXM9bmV3IEludDMyQXJyYXkoQSksSS5IRUFQVTg9YT1uZXcgVWludDhBcnJheShBKSxJLkhFQVBVMTY9bmV3IFVpbnQxNkFycmF5KEEpLEkuSEVBUFUzMj1uZXcgVWludDMyQXJyYXkoQSksSS5IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoQSksSS5IRUFQRjY0PW5ldyBGbG9hdDY0QXJyYXkoQSl9SS5JTklUSUFMX01FTU9SWTt2YXIgRj1bXSxsPVtdLEc9W10sUj0wLFU9bnVsbDtmdW5jdGlvbiBrKEEpe3Rocm93IEkub25BYm9ydCYmSS5vbkFib3J0KEEpLG8oQT0iQWJvcnRlZCgiK0ErIikiKSxoPSEwLEErPSIuIEJ1aWxkIHdpdGggLXMgQVNTRVJUSU9OUz0xIGZvciBtb3JlIGluZm8uIixuZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKEEpfUkucHJlbG9hZGVkSW1hZ2VzPXt9LEkucHJlbG9hZGVkQXVkaW9zPXt9O3ZhciBTLE4sTT0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rpb24gWShBKXtyZXR1cm4gQS5zdGFydHNXaXRoKE0pfWZ1bmN0aW9uIEgoQSl7dHJ5e2lmKEE9PVMmJnQpcmV0dXJuIG5ldyBVaW50OEFycmF5KHQpO2lmKGcpcmV0dXJuIGcoQSk7dGhyb3ciYm90aCBhc3luYyBhbmQgc3luYyBmZXRjaGluZyBvZiB0aGUgd2FzbSBmYWlsZWQifWNhdGNoKEkpe2soSSl9fWZ1bmN0aW9uIHAoQSl7Zm9yKDtBLmxlbmd0aD4wOyl7dmFyIGc9QS5zaGlmdCgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnKXt2YXIgQj1nLmZ1bmM7Im51bWJlciI9PXR5cGVvZiBCP3ZvaWQgMD09PWcuYXJnP0ooQikoKTpKKEIpKGcuYXJnKTpCKHZvaWQgMD09PWcuYXJnP251bGw6Zy5hcmcpfWVsc2UgZyhJKX19ZnVuY3Rpb24gSihBKXtyZXR1cm4gYy5nZXQoQSl9ZnVuY3Rpb24gTChBKXt0aGlzLmV4Y1B0cj1BLHRoaXMucHRyPUEtMTYsdGhpcy5zZXRfdHlwZT1mdW5jdGlvbihBKXtzW3RoaXMucHRyKzQ+PjJdPUF9LHRoaXMuZ2V0X3R5cGU9ZnVuY3Rpb24oKXtyZXR1cm4gc1t0aGlzLnB0cis0Pj4yXX0sdGhpcy5zZXRfZGVzdHJ1Y3Rvcj1mdW5jdGlvbihBKXtzW3RoaXMucHRyKzg+PjJdPUF9LHRoaXMuZ2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gc1t0aGlzLnB0cis4Pj4yXX0sdGhpcy5zZXRfcmVmY291bnQ9ZnVuY3Rpb24oQSl7c1t0aGlzLnB0cj4+Ml09QX0sdGhpcy5zZXRfY2F1Z2h0PWZ1bmN0aW9uKEEpe0E9QT8xOjAsclt0aGlzLnB0cisxMj4+MF09QX0sdGhpcy5nZXRfY2F1Z2h0PWZ1bmN0aW9uKCl7cmV0dXJuIDAhPXJbdGhpcy5wdHIrMTI+PjBdfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihBKXtBPUE/MTowLHJbdGhpcy5wdHIrMTM+PjBdPUF9LHRoaXMuZ2V0X3JldGhyb3duPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPXJbdGhpcy5wdHIrMTM+PjBdfSx0aGlzLmluaXQ9ZnVuY3Rpb24oQSxnKXt0aGlzLnNldF90eXBlKEEpLHRoaXMuc2V0X2Rlc3RydWN0b3IoZyksdGhpcy5zZXRfcmVmY291bnQoMCksdGhpcy5zZXRfY2F1Z2h0KCExKSx0aGlzLnNldF9yZXRocm93bighMSl9LHRoaXMuYWRkX3JlZj1mdW5jdGlvbigpe3ZhciBBPXNbdGhpcy5wdHI+PjJdO3NbdGhpcy5wdHI+PjJdPUErMX0sdGhpcy5yZWxlYXNlX3JlZj1mdW5jdGlvbigpe3ZhciBBPXNbdGhpcy5wdHI+PjJdO3JldHVybiBzW3RoaXMucHRyPj4yXT1BLTEsMT09PUF9fWZ1bmN0aW9uIHYoQSl7dHJ5e3JldHVybiBlLmdyb3coQS1uLmJ5dGVMZW5ndGgrNjU1MzU+Pj4xNiksZChlLmJ1ZmZlciksMX1jYXRjaChnKXt9fVkoUz0iYXcud2FzbSIpfHwoTj1TLFM9SS5sb2NhdGVGaWxlP0kubG9jYXRlRmlsZShOLGkpOmkrTik7dmFyIEs9e307ZnVuY3Rpb24gbSgpe2lmKCFtLnN0cmluZ3Mpe3ZhciBBPXtVU0VSOiJ3ZWJfdXNlciIsTE9HTkFNRToid2ViX3VzZXIiLFBBVEg6Ii8iLFBXRDoiLyIsSE9NRToiL2hvbWUvd2ViX3VzZXIiLExBTkc6KCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2YgbmF2aWdhdG9yPyJ1bmRlZmluZWQiOmhuKG5hdmlnYXRvcikpJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzJiZuYXZpZ2F0b3IubGFuZ3VhZ2VzWzBdfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpDfHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIGcgaW4gSyl2b2lkIDA9PT1LW2ddP2RlbGV0ZSBBW2ddOkFbZ109S1tnXTt2YXIgST1bXTtmb3IodmFyIGcgaW4gQSlJLnB1c2goZysiPSIrQVtnXSk7bS5zdHJpbmdzPUl9cmV0dXJuIG0uc3RyaW5nc31mdW5jdGlvbiB4KEEpe3JldHVybiBBJTQ9PTAmJihBJTEwMCE9MHx8QSU0MDA9PTApfWZ1bmN0aW9uIHEoQSxnKXtmb3IodmFyIEk9MCxCPTA7Qjw9ZztJKz1BW0IrK10pO3JldHVybiBJfXZhciBiPVszMSwyOSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0sVD1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2Z1bmN0aW9uIE8oQSxnKXtmb3IodmFyIEk9bmV3IERhdGUoQS5nZXRUaW1lKCkpO2c+MDspe3ZhciBCPXgoSS5nZXRGdWxsWWVhcigpKSxRPUkuZ2V0TW9udGgoKSxDPShCP2I6VClbUV07aWYoIShnPkMtSS5nZXREYXRlKCkpKXJldHVybiBJLnNldERhdGUoSS5nZXREYXRlKCkrZyksSTtnLT1DLUkuZ2V0RGF0ZSgpKzEsSS5zZXREYXRlKDEpLFE8MTE/SS5zZXRNb250aChRKzEpOihJLnNldE1vbnRoKDApLEkuc2V0RnVsbFllYXIoSS5nZXRGdWxsWWVhcigpKzEpKX1yZXR1cm4gSX1mdW5jdGlvbiBXKEEsZyxJKXt2YXIgQj1JPjA/STp1KEEpKzEsUT1uZXcgQXJyYXkoQiksQz1mKEEsUSwwLFEubGVuZ3RoKTtyZXR1cm4gZyYmKFEubGVuZ3RoPUMpLFF9dmFyIFo9e2g6ZnVuY3Rpb24oQSl7cmV0dXJuIGooQSsxNikrMTZ9LGc6ZnVuY3Rpb24oQSxnLEkpe3Rocm93IG5ldyBMKEEpLmluaXQoZyxJKSxBfSxhOmZ1bmN0aW9uKCl7aygiIil9LGY6ZnVuY3Rpb24oQSxnLEkpe2EuY29weVdpdGhpbihBLGcsZytJKX0sZTpmdW5jdGlvbihBKXt2YXIgZyxJLEI9YS5sZW5ndGgsUT0yMTQ3NDgzNjQ4O2lmKChBPj4+PTApPlEpcmV0dXJuITE7Zm9yKHZhciBDPTE7Qzw9NDtDKj0yKXt2YXIgRT1CKigxKy4yL0MpO2lmKEU9TWF0aC5taW4oRSxBKzEwMDY2MzI5NiksdihNYXRoLm1pbihRLCgoZz1NYXRoLm1heChBLEUpKSUoST02NTUzNik+MCYmKGcrPUktZyVJKSxnKSkpKXJldHVybiEwfXJldHVybiExfSxjOmZ1bmN0aW9uKEEsZyl7dmFyIEk9MDtyZXR1cm4gbSgpLmZvckVhY2goKGZ1bmN0aW9uKEIsUSl7dmFyIEM9ZytJO3NbQSs0KlE+PjJdPUMsZnVuY3Rpb24oQSxnLEkpe2Zvcih2YXIgQj0wO0I8QS5sZW5ndGg7KytCKXJbZysrPj4wXT1BLmNoYXJDb2RlQXQoQik7SXx8KHJbZz4+MF09MCl9KEIsQyksSSs9Qi5sZW5ndGgrMX0pKSwwfSxkOmZ1bmN0aW9uKEEsZyl7dmFyIEk9bSgpO3NbQT4+Ml09SS5sZW5ndGg7dmFyIEI9MDtyZXR1cm4gSS5mb3JFYWNoKChmdW5jdGlvbihBKXtCKz1BLmxlbmd0aCsxfSkpLHNbZz4+Ml09QiwwfSxiOmZ1bmN0aW9uKEEsZyxJLEIpe3JldHVybiBmdW5jdGlvbihBLGcsSSxCKXt2YXIgUT1zW0IrNDA+PjJdLEM9e3RtX3NlYzpzW0I+PjJdLHRtX21pbjpzW0IrND4+Ml0sdG1faG91cjpzW0IrOD4+Ml0sdG1fbWRheTpzW0IrMTI+PjJdLHRtX21vbjpzW0IrMTY+PjJdLHRtX3llYXI6c1tCKzIwPj4yXSx0bV93ZGF5OnNbQisyND4+Ml0sdG1feWRheTpzW0IrMjg+PjJdLHRtX2lzZHN0OnNbQiszMj4+Ml0sdG1fZ210b2ZmOnNbQiszNj4+Ml0sdG1fem9uZTpRP0QoUSk6IiJ9LEU9RChJKSxpPXsiJWMiOiIlYSAlYiAlZCAlSDolTTolUyAlWSIsIiVEIjoiJW0vJWQvJXkiLCIlRiI6IiVZLSVtLSVkIiwiJWgiOiIlYiIsIiVyIjoiJUk6JU06JVMgJXAiLCIlUiI6IiVIOiVNIiwiJVQiOiIlSDolTTolUyIsIiV4IjoiJW0vJWQvJXkiLCIlWCI6IiVIOiVNOiVTIiwiJUVjIjoiJWMiLCIlRUMiOiIlQyIsIiVFeCI6IiVtLyVkLyV5IiwiJUVYIjoiJUg6JU06JVMiLCIlRXkiOiIleSIsIiVFWSI6IiVZIiwiJU9kIjoiJWQiLCIlT2UiOiIlZSIsIiVPSCI6IiVIIiwiJU9JIjoiJUkiLCIlT20iOiIlbSIsIiVPTSI6IiVNIiwiJU9TIjoiJVMiLCIlT3UiOiIldSIsIiVPVSI6IiVVIiwiJU9WIjoiJVYiLCIlT3ciOiIldyIsIiVPVyI6IiVXIiwiJU95IjoiJXkifTtmb3IodmFyIHQgaW4gaSlFPUUucmVwbGFjZShuZXcgUmVnRXhwKHQsImciKSxpW3RdKTt2YXIgZT1bIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sbz1bIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl07ZnVuY3Rpb24gbihBLGcsSSl7Zm9yKHZhciBCPSJudW1iZXIiPT10eXBlb2YgQT9BLnRvU3RyaW5nKCk6QXx8IiI7Qi5sZW5ndGg8ZzspQj1JWzBdK0I7cmV0dXJuIEJ9ZnVuY3Rpb24gcihBLGcpe3JldHVybiBuKEEsZywiMCIpfWZ1bmN0aW9uIGEoQSxnKXtmdW5jdGlvbiBJKEEpe3JldHVybiBBPDA/LTE6QT4wPzE6MH12YXIgQjtyZXR1cm4gMD09PShCPUkoQS5nZXRGdWxsWWVhcigpLWcuZ2V0RnVsbFllYXIoKSkpJiYwPT09KEI9SShBLmdldE1vbnRoKCktZy5nZXRNb250aCgpKSkmJihCPUkoQS5nZXREYXRlKCktZy5nZXREYXRlKCkpKSxCfWZ1bmN0aW9uIGMoQSl7c3dpdGNoKEEuZ2V0RGF5KCkpe2Nhc2UgMDpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLTEsMTEsMjkpO2Nhc2UgMTpyZXR1cm4gQTtjYXNlIDI6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKSwwLDMpO2Nhc2UgMzpyZXR1cm4gbmV3IERhdGUoQS5nZXRGdWxsWWVhcigpLDAsMik7Y2FzZSA0OnJldHVybiBuZXcgRGF0ZShBLmdldEZ1bGxZZWFyKCksMCwxKTtjYXNlIDU6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMxKTtjYXNlIDY6cmV0dXJuIG5ldyBEYXRlKEEuZ2V0RnVsbFllYXIoKS0xLDExLDMwKX19ZnVuY3Rpb24gaChBKXt2YXIgZz1PKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KSxJPW5ldyBEYXRlKGcuZ2V0RnVsbFllYXIoKSwwLDQpLEI9bmV3IERhdGUoZy5nZXRGdWxsWWVhcigpKzEsMCw0KSxRPWMoSSksQz1jKEIpO3JldHVybiBhKFEsZyk8PTA/YShDLGcpPD0wP2cuZ2V0RnVsbFllYXIoKSsxOmcuZ2V0RnVsbFllYXIoKTpnLmdldEZ1bGxZZWFyKCktMX12YXIgeT17IiVhIjpmdW5jdGlvbihBKXtyZXR1cm4gZVtBLnRtX3dkYXldLnN1YnN0cmluZygwLDMpfSwiJUEiOmZ1bmN0aW9uKEEpe3JldHVybiBlW0EudG1fd2RheV19LCIlYiI6ZnVuY3Rpb24oQSl7cmV0dXJuIG9bQS50bV9tb25dLnN1YnN0cmluZygwLDMpfSwiJUIiOmZ1bmN0aW9uKEEpe3JldHVybiBvW0EudG1fbW9uXX0sIiVDIjpmdW5jdGlvbihBKXtyZXR1cm4gcigoQS50bV95ZWFyKzE5MDApLzEwMHwwLDIpfSwiJWQiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1fbWRheSwyKX0sIiVlIjpmdW5jdGlvbihBKXtyZXR1cm4gbihBLnRtX21kYXksMiwiICIpfSwiJWciOmZ1bmN0aW9uKEEpe3JldHVybiBoKEEpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJUciOmZ1bmN0aW9uKEEpe3JldHVybiBoKEEpfSwiJUgiOmZ1bmN0aW9uKEEpe3JldHVybiByKEEudG1faG91ciwyKX0sIiVJIjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2hvdXI7cmV0dXJuIDA9PWc/Zz0xMjpnPjEyJiYoZy09MTIpLHIoZywyKX0sIiVqIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21kYXkrcSh4KEEudG1feWVhcisxOTAwKT9iOlQsQS50bV9tb24tMSksMyl9LCIlbSI6ZnVuY3Rpb24oQSl7cmV0dXJuIHIoQS50bV9tb24rMSwyKX0sIiVNIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX21pbiwyKX0sIiVuIjpmdW5jdGlvbigpe3JldHVybiJcbiJ9LCIlcCI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1faG91cj49MCYmQS50bV9ob3VyPDEyPyJBTSI6IlBNIn0sIiVTIjpmdW5jdGlvbihBKXtyZXR1cm4gcihBLnRtX3NlYywyKX0sIiV0IjpmdW5jdGlvbigpe3JldHVybiJcdCJ9LCIldSI6ZnVuY3Rpb24oQSl7cmV0dXJuIEEudG1fd2RheXx8N30sIiVVIjpmdW5jdGlvbihBKXt2YXIgZz1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMCwwLDEpLEk9MD09PWcuZ2V0RGF5KCk/ZzpPKGcsNy1nLmdldERheSgpKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYoYShJLEIpPDApe3ZhciBRPXEoeChCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09YShJLGcpPyIwMSI6IjAwIn0sIiVWIjpmdW5jdGlvbihBKXt2YXIgZyxJPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsNCksQj1uZXcgRGF0ZShBLnRtX3llYXIrMTkwMSwwLDQpLFE9YyhJKSxDPWMoQiksRT1PKG5ldyBEYXRlKEEudG1feWVhcisxOTAwLDAsMSksQS50bV95ZGF5KTtyZXR1cm4gYShFLFEpPDA/IjUzIjphKEMsRSk8PTA/IjAxIjooZz1RLmdldEZ1bGxZZWFyKCk8QS50bV95ZWFyKzE5MDA/QS50bV95ZGF5KzMyLVEuZ2V0RGF0ZSgpOkEudG1feWRheSsxLVEuZ2V0RGF0ZSgpLHIoTWF0aC5jZWlsKGcvNyksMikpfSwiJXciOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3dkYXl9LCIlVyI6ZnVuY3Rpb24oQSl7dmFyIGc9bmV3IERhdGUoQS50bV95ZWFyLDAsMSksST0xPT09Zy5nZXREYXkoKT9nOk8oZywwPT09Zy5nZXREYXkoKT8xOjctZy5nZXREYXkoKSsxKSxCPW5ldyBEYXRlKEEudG1feWVhcisxOTAwLEEudG1fbW9uLEEudG1fbWRheSk7aWYoYShJLEIpPDApe3ZhciBRPXEoeChCLmdldEZ1bGxZZWFyKCkpP2I6VCxCLmdldE1vbnRoKCktMSktMzEsQz0zMS1JLmdldERhdGUoKStRK0IuZ2V0RGF0ZSgpO3JldHVybiByKE1hdGguY2VpbChDLzcpLDIpfXJldHVybiAwPT09YShJLGcpPyIwMSI6IjAwIn0sIiV5IjpmdW5jdGlvbihBKXtyZXR1cm4oQS50bV95ZWFyKzE5MDApLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIpfSwiJVkiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3llYXIrMTkwMH0sIiV6IjpmdW5jdGlvbihBKXt2YXIgZz1BLnRtX2dtdG9mZixJPWc+PTA7cmV0dXJuIGc9KGc9TWF0aC5hYnMoZykvNjApLzYwKjEwMCtnJTYwLChJPyIrIjoiLSIpK1N0cmluZygiMDAwMCIrZykuc2xpY2UoLTQpfSwiJVoiOmZ1bmN0aW9uKEEpe3JldHVybiBBLnRtX3pvbmV9LCIlJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fTtmb3IodmFyIHQgaW4geSlFLmluY2x1ZGVzKHQpJiYoRT1FLnJlcGxhY2UobmV3IFJlZ0V4cCh0LCJnIikseVt0XShDKSkpO3ZhciBmPVcoRSwhMSk7cmV0dXJuIGYubGVuZ3RoPmc/MDoodyhmLEEpLGYubGVuZ3RoLTEpfShBLGcsSSxCKX19OyFmdW5jdGlvbigpe3ZhciBBPXthOlp9O2Z1bmN0aW9uIGcoQSxnKXt2YXIgQixRPUEuZXhwb3J0cztJLmFzbT1RLGQoKGU9SS5hc20uaSkuYnVmZmVyKSxjPUkuYXNtLnQsQj1JLmFzbS5qLGwudW5zaGlmdChCKSxmdW5jdGlvbihBKXtpZihSLS0sSS5tb25pdG9yUnVuRGVwZW5kZW5jaWVzJiZJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMoUiksMD09UiYmVSl7dmFyIGc9VTtVPW51bGwsZygpfX0oKX1mdW5jdGlvbiBCKEEpe2coQS5pbnN0YW5jZSl9ZnVuY3Rpb24gUShnKXtyZXR1cm4oIXQmJkUmJiJmdW5jdGlvbiI9PXR5cGVvZiBmZXRjaD9mZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oQSl7aWYoIUEub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitTKyInIjtyZXR1cm4gQS5hcnJheUJ1ZmZlcigpfSkpLmNhdGNoKChmdW5jdGlvbigpe3JldHVybiBIKFMpfSkpOlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIEgoUyl9KSkpLnRoZW4oKGZ1bmN0aW9uKGcpe3JldHVybiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShnLEEpfSkpLnRoZW4oKGZ1bmN0aW9uKEEpe3JldHVybiBBfSkpLnRoZW4oZywoZnVuY3Rpb24oQSl7bygiZmFpbGVkIHRvIGFzeW5jaHJvbm91c2x5IHByZXBhcmUgd2FzbTogIitBKSxrKEEpfSkpfWlmKFIrKyxJLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJkkubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhSKSxJLmluc3RhbnRpYXRlV2FzbSl0cnl7cmV0dXJuIEkuaW5zdGFudGlhdGVXYXNtKEEsZyl9Y2F0Y2goQyl7cmV0dXJuIG8oIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrQyksITF9dHx8ImZ1bmN0aW9uIiE9dHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nfHxZKFMpfHwiZnVuY3Rpb24iIT10eXBlb2YgZmV0Y2g/UShCKTpmZXRjaChTLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbigoZnVuY3Rpb24oZyl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGcsQSkudGhlbihCLChmdW5jdGlvbihBKXtyZXR1cm4gbygid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrQSksbygiZmFsbGluZyBiYWNrIHRvIEFycmF5QnVmZmVyIGluc3RhbnRpYXRpb24iKSxRKEIpfSkpfSkpfSgpLEkuX19fd2FzbV9jYWxsX2N0b3JzPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX19fd2FzbV9jYWxsX2N0b3JzPUkuYXNtLmopLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dmFyIGo9SS5fbWFsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKGo9SS5fbWFsbG9jPUkuYXNtLmspLmFwcGx5KG51bGwsYXJndW1lbnRzKX07SS5fZnJlZT1mdW5jdGlvbigpe3JldHVybihJLl9mcmVlPUkuYXNtLmwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fb3BlbkJveD1mdW5jdGlvbigpe3JldHVybihJLl9vcGVuQm94PUkuYXNtLm0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fZGVzY3J5cHQ9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVzY3J5cHQ9SS5hc20ubikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJLl9kZXNjcnlwdEtkc0tleT1mdW5jdGlvbigpe3JldHVybihJLl9kZXNjcnlwdEtkc0tleT1JLmFzbS5vKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2RlY3J5cHRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4oSS5fZGVjcnlwdEtleT1JLmFzbS5wKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEkuX2Rlc2NyeXB0Q0JDPWZ1bmN0aW9uKCl7cmV0dXJuKEkuX2Rlc2NyeXB0Q0JDPUkuYXNtLnEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fcmVsZWFzZT1mdW5jdGlvbigpe3JldHVybihJLl9yZWxlYXNlPUkuYXNtLnIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSS5fc2V0UmF3PWZ1bmN0aW9uKCl7cmV0dXJuKEkuX3NldFJhdz1JLmFzbS5zKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBQLFg9SS5zdGFja1NhdmU9ZnVuY3Rpb24oKXtyZXR1cm4oWD1JLnN0YWNrU2F2ZT1JLmFzbS51KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFY9SS5zdGFja1Jlc3RvcmU9ZnVuY3Rpb24oKXtyZXR1cm4oVj1JLnN0YWNrUmVzdG9yZT1JLmFzbS52KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHo9SS5zdGFja0FsbG9jPWZ1bmN0aW9uKCl7cmV0dXJuKHo9SS5zdGFja0FsbG9jPUkuYXNtLncpLmFwcGx5KG51bGwsYXJndW1lbnRzKX07ZnVuY3Rpb24gXyhBKXtmdW5jdGlvbiBnKCl7UHx8KFA9ITAsSS5jYWxsZWRSdW49ITAsaHx8KHAobCksSS5vblJ1bnRpbWVJbml0aWFsaXplZCYmSS5vblJ1bnRpbWVJbml0aWFsaXplZCgpLGZ1bmN0aW9uKCl7aWYoSS5wb3N0UnVuKWZvcigiZnVuY3Rpb24iPT10eXBlb2YgSS5wb3N0UnVuJiYoSS5wb3N0UnVuPVtJLnBvc3RSdW5dKTtJLnBvc3RSdW4ubGVuZ3RoOylBPUkucG9zdFJ1bi5zaGlmdCgpLEcudW5zaGlmdChBKTt2YXIgQTtwKEcpfSgpKSl9Uj4wfHwoZnVuY3Rpb24oKXtpZihJLnByZVJ1bilmb3IoImZ1bmN0aW9uIj09dHlwZW9mIEkucHJlUnVuJiYoSS5wcmVSdW49W0kucHJlUnVuXSk7SS5wcmVSdW4ubGVuZ3RoOylBPUkucHJlUnVuLnNoaWZ0KCksRi51bnNoaWZ0KEEpO3ZhciBBO3AoRil9KCksUj4wfHwoSS5zZXRTdGF0dXM/KEkuc2V0U3RhdHVzKCJSdW5uaW5nLi4uIiksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe0kuc2V0U3RhdHVzKCIiKX0pLDEpLGcoKX0pLDEpKTpnKCkpKX1pZihJLmludEFycmF5RnJvbVN0cmluZz1XLEkuY2NhbGw9ZnVuY3Rpb24oQSxnLEIsUSxDKXt2YXIgRT17c3RyaW5nOmZ1bmN0aW9uKEEpe3ZhciBnPTA7aWYobnVsbCE9QSYmMCE9PUEpe3ZhciBJPTErKEEubGVuZ3RoPDwyKTshZnVuY3Rpb24oQSxnLEkpe2YoQSxhLGcsSSl9KEEsZz16KEkpLEkpfXJldHVybiBnfSxhcnJheTpmdW5jdGlvbihBKXt2YXIgZz16KEEubGVuZ3RoKTtyZXR1cm4gdyhBLGcpLGd9fSxpPWZ1bmN0aW9uKEEpe3JldHVybiBJWyJfIitBXX0oQSksdD1bXSxlPTA7aWYoUSlmb3IodmFyIG89MDtvPFEubGVuZ3RoO28rKyl7dmFyIG49RVtCW29dXTtuPygwPT09ZSYmKGU9WCgpKSx0W29dPW4oUVtvXSkpOnRbb109UVtvXX12YXIgcixzPWkuYXBwbHkobnVsbCx0KTtyZXR1cm4gcj1zLDAhPT1lJiZWKGUpLHM9ZnVuY3Rpb24oQSl7cmV0dXJuInN0cmluZyI9PT1nP0QoQSk6ImJvb2xlYW4iPT09Zz9Cb29sZWFuKEEpOkF9KHIpfSxJLlVURjhUb1N0cmluZz1ELEkuYWxsb2NhdGVVVEY4PWZ1bmN0aW9uKEEpe3ZhciBnPXUoQSkrMSxJPWooZyk7cmV0dXJuIEkmJmYoQSxyLEksZyksSX0sVT1mdW5jdGlvbiBBKCl7UHx8XygpLFB8fChVPUEpfSxJLnJ1bj1fLEkucHJlSW5pdClmb3IoImZ1bmN0aW9uIj09dHlwZW9mIEkucHJlSW5pdCYmKEkucHJlSW5pdD1bSS5wcmVJbml0XSk7SS5wcmVJbml0Lmxlbmd0aD4wOylJLnByZUluaXQucG9wKCkoKTtyZXR1cm4gXygpLEEucmVhZHl9LCR5PV95O3ZhciBBRD1mdW5jdGlvbigpe2Z1bmN0aW9uIEEoKXt2YXIgZyxJO3luKHRoaXMsQSk7dmFyIEI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKEEsQil7Zz1BLEk9Qn0pKTtyZXR1cm4gQi5yZXNvbHZlPWcsQi5yZWplY3Q9SSxCfXJldHVybiBmbihBLFt7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbihBKXt9fSx7a2V5OiJyZWplY3QiLHZhbHVlOmZ1bmN0aW9uKEEpe319XSksQX0oKTtQcm9taXNlLndpdGhSZXNvbHZlcnN8fChQcm9taXNlLndpdGhSZXNvbHZlcnM9ZnVuY3Rpb24oKXt2YXIgQT17fTtyZXR1cm4gQS5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihnLEkpe0EucmVzb2x2ZT1nLEEucmVqZWN0PUl9KSksQX0pO3ZhciBnRCxJRCxCRD0wLFFEPTEsQ0Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBBKCl7eW4odGhpcyxBKX1yZXR1cm4gZm4oQSxbe2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQT1uZXcgQUQ7cmV0dXJuIHRoaXMubW9kdWxlPXtvblJ1bnRpbWVJbml0aWFsaXplZDpmdW5jdGlvbigpe0EucmVzb2x2ZSgpfSxvbkFib3J0OmZ1bmN0aW9uKGcpe0EucmVqZWN0KGcpfX0sJHkodGhpcy5tb2R1bGUpLEF9fSx7a2V5OiJkZXNjcnlwdEtleSIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCLFE9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOjE2LEM9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOkJEO3RyeXt2YXIgRT1mdW5jdGlvbihBKXtpZigiIj09PUEpcmV0dXJuIiI7Zm9yKHZhciBnPVtdLEk9MDtJPEEubGVuZ3RoO0krKylnLnB1c2goQS5jaGFyQ29kZUF0KEkpKTtyZXR1cm4gZ30oc2VsZi5hdG9iKEEpKTtJPXRoaXMubW9kdWxlLl9tYWxsb2MoTnVtYmVyKEUubGVuZ3RoKSksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEUsSSksZz1nfHxuZXcgVWludDhBcnJheSxnPW5ldyBVaW50OEFycmF5KGcpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhnLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChnLEIpLHRoaXMubW9kdWxlLl9kZWNyeXB0S2V5KEMsSSxFLmxlbmd0aCxRLGcuYnl0ZUxlbmd0aCxCKX1jYXRjaChpKXtjb25zb2xlLmxvZyhpKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0Iix2YWx1ZTpmdW5jdGlvbihBLGcpe3ZhciBJLEIsUT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06QkQ7dHJ5e3ZhciBDPW5ldyBVaW50OEFycmF5KGcpO0k9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLEkpLEI9dGhpcy5tb2R1bGUuX21hbGxvYyhDLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChDLEIpLHRoaXMubW9kdWxlLl9kZXNjcnlwdChRLEksQS5ieXRlTGVuZ3RoLEIpO3ZhciBFPXRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoRSl9Y2F0Y2godEQpe2NvbnNvbGUubG9nKHREKX1maW5hbGx5e3RoaXMubW9kdWxlLl9mcmVlKEkpLHRoaXMubW9kdWxlLl9mcmVlKEIpfX19LHtrZXk6ImRlc2NyeXB0S2RzS2V5Iix2YWx1ZTpmdW5jdGlvbihBLGcsSSl7dmFyIEIsUSxDLEU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOjE2O3RyeXt2YXIgaT1uZXcgVWludDhBcnJheShnKSx0PW5ldyBVaW50OEFycmF5KEkpO0I9dGhpcy5tb2R1bGUuX21hbGxvYyhpLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChpLEIpLFE9dGhpcy5tb2R1bGUuX21hbGxvYyhBLmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldChBLFEpLEM9dGhpcy5tb2R1bGUuX21hbGxvYyh0LmJ5dGVMZW5ndGgpLHRoaXMubW9kdWxlLkhFQVA4LnNldCh0LEMpLHRoaXMubW9kdWxlLl9kZXNjcnlwdEtkc0tleShCLGkuYnl0ZUxlbmd0aCxRLEEuYnl0ZUxlbmd0aCxDLEUpfWNhdGNoKHREKXtjb25zb2xlLmxvZyh0RCl9ZmluYWxseXt0aGlzLm1vZHVsZS5fZnJlZShRKSx0aGlzLm1vZHVsZS5fZnJlZShDKSx0aGlzLm1vZHVsZS5fZnJlZShCKX19fSx7a2V5OiJkZXNjcnlwdENCQyIsdmFsdWU6ZnVuY3Rpb24oQSxnKXt2YXIgSSxCO3RyeXt2YXIgUT1uZXcgVWludDhBcnJheShnKTtyZXR1cm4gST10aGlzLm1vZHVsZS5fbWFsbG9jKEEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEEsSSksQj10aGlzLm1vZHVsZS5fbWFsbG9jKFEuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KFEsQiksdGhpcy5tb2R1bGUuX2Rlc2NyeXB0Q0JDKEksQS5ieXRlTGVuZ3RoLEIpLHRoaXMubW9kdWxlLkhFQVBVOC5zbGljZShJLEkrQS5ieXRlTGVuZ3RoKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoSSksdGhpcy5tb2R1bGUuX2ZyZWUoQil9fX0se2tleToic2V0UmF3Iix2YWx1ZTpmdW5jdGlvbihBKXt2YXIgZyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpRRDt0cnl7dmFyIEI9bmV3IFVpbnQ4QXJyYXkoQSk7Zz10aGlzLm1vZHVsZS5fbWFsbG9jKEIuYnl0ZUxlbmd0aCksdGhpcy5tb2R1bGUuSEVBUDguc2V0KEIsZyksdGhpcy5tb2R1bGUuX3NldFJhdyhnLEIuYnl0ZUxlbmd0aCxJKX1jYXRjaCh0RCl7Y29uc29sZS5sb2codEQpfWZpbmFsbHl7dGhpcy5tb2R1bGUuX2ZyZWUoZyl9fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vZHVsZSYmKHRoaXMubW9kdWxlPW51bGwpfX1dKSxBfSgpO2Z1bmN0aW9uIEVEKEEpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3JldHVybihBW2ddPDwyND4+PjApKyhBW2crMV08PDE2KSsoQVtnKzJdPDw4KSsoQVtnKzNdfHwwKX12YXIgaUQ9e2RlY3J5cHRIZWFkZXI6ZnVuY3Rpb24oQSxnKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO2dEPW5ldyBvbixJRD1uZXcgY24oZ0QudmlkZW9UcmFjayxnRC5hdWRpb1RyYWNrKTt2YXIgQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPXtyZXM6bnVsbCx2aWRlb1RyYWNrOlEudmlkZW9UcmFjayxhdWRpb1RyYWNrOlEuYXVkaW9UcmFja307aWYoSSl7dmFyIEU9SUQucmVtdXgoITApLGk9RS52aWRlb0luaXRTZWdtZW50LHQ9RS5hdWRpb0luaXRTZWdtZW50O0MucmVzPWc/aTp0fXJldHVybiBDfSxkZWNyeXB0Qm9keTpmdW5jdGlvbihBLGcpe3ZhciBJPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sQj1uZXcgVWludDhBcnJheShBKSxRPWdELmRlbXV4KGc/QjpudWxsLGc/bnVsbDpCKSxDPVEudmlkZW9UcmFjayxFPVEuYXVkaW9UcmFjayxpPUJuLmZpbmRCb3goQixbIm1vb2YiLCJ0cmFmIiwic2VuYyJdKVswXTtpZihpKXt2YXIgdCxlLG89Zz9udWxsPT1DfHxudWxsPT09KHQ9Qy5lbmN2KXx8dm9pZCAwPT09dD92b2lkIDA6dC5kZWZhdWx0X0lWX3NpemU6bnVsbD09RXx8bnVsbD09PShlPUUuZW5jYSl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZGVmYXVsdF9JVl9zaXplLG49Qm4uc2VuYyhpLG8pO2c/Qy52aWRlb1NlbmM9bi5zYW1wbGVzOkUuYXVkaW9TZW5jPW4uc2FtcGxlcyxpRC5kZWNvZGVyRGF0YShDLEUpLGcmJkMuc2FtcGxlcy5mb3JFYWNoKChmdW5jdGlvbihBKXt2YXIgZyxJPUEuZGF0YTtBLnVuaXRzPVtdO2Zvcih2YXIgQj0wLFE9SS5sZW5ndGgtMTtCPFE7KWc9RUQoSSxCKSxCKz00LEEudW5pdHMucHVzaChJLnN1YmFycmF5KEIsQitnKSksQis9Z30pKX12YXIgcj17cmVzOm51bGwsdmlkZW9UcmFjazpDLGF1ZGlvVHJhY2s6RX07aWYoSSl7dmFyIGE9SUQucmVtdXgoKSxzPWEudmlkZW9TZWdtZW50LGM9YS5hdWRpb1NlZ21lbnQ7ci5yZXM9Zz9zOmN9cmV0dXJuIHJ9LGRlY29kZXJEYXRhOmZ1bmN0aW9uKEEsZyl7RGEuZGVjb2RlckFFU0NUUkRhdGEoQSxnLChmdW5jdGlvbihBLGcsSSl7cmV0dXJuIHNlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0KEEsSSl9KSl9fTtvbm1lc3NhZ2U9ZnVuY3Rpb24oQSl7dmFyIGc9dGhpcztpZigiZGVjcnlwdEJvZHkiPT09QS5kYXRhLm1ldGhvZClzZWxmLnAudGhlbigoZnVuY3Rpb24oKXt2YXIgST1BLmRhdGEuYXJncyxCPWlELmRlY3J5cHRCb2R5KEkuYnVmLEkuaXNWaWRlbyxJLm5lZWRSZW11eCk7Zy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0Qm9keSIsaWQ6QS5kYXRhLmlkLGFyZ3M6e2RhdGE6Qn19KX0pKTtlbHNlIGlmKCJkZWNyeXB0SGVhZGVyIj09PUEuZGF0YS5tZXRob2Qpe3ZhciBJPWlELmRlY3J5cHRIZWFkZXIoQS5kYXRhLmJ1ZixBLmRhdGEuaXNWaWRlbyk7dGhpcy5wb3N0TWVzc2FnZSh7bWV0aG9kOiJkZWNyeXB0SGVhZGVyIixpZDpBLmRhdGEuaWQsYXJnczp7ZGF0YTpJfX0pfWVsc2UgaWYoInVwZGF0ZVZhbHVlIj09PUEuZGF0YS5tZXRob2Qpe3RoaXMuY2FjaGVEYXRhPUEuZGF0YS52YWx1ZSxzZWxmLmF3TWFuYWdlcj1uZXcgQ0Q7dmFyIEI9c2VsZi5hd01hbmFnZXIuaW5pdCh0aGlzLmNhY2hlRGF0YS53YXNtQmluYXJ5RmlsZSk7c2VsZi5wPUIsQi50aGVuKChmdW5jdGlvbigpe3NlbGYuYXdNYW5hZ2VyLmRlc2NyeXB0S2V5KGcuY2FjaGVEYXRhLnNlY3JldEtleSxnLmNhY2hlRGF0YS5kZWNyeXB0S2V5KX0pKX1lbHNlImRlc3Ryb3kiPT09QS5kYXRhLm1ldGhvZCYmc2VsZi5hd01hbmFnZXImJihzZWxmLmF3TWFuYWdlci5kZXN0cm95KCksc2VsZi5hd01hbmFnZXI9bnVsbCl9fSgpOwo=",Gi="undefined"!=typeof window&&window.Blob&&new Blob([atob(Ii)],{type:"text/javascript;charset=utf-8"});function Mi(){var e;try{if(!(e=Gi&&(window.URL||window.webkitURL).createObjectURL(Gi)))throw"";return new Worker(e)}catch(t){return new Worker("data:application/javascript;base64,"+Ii)}finally{!("undefined"!=typeof window&&navigator.userAgent.indexOf("Trident/")>0)&&e&&(window.URL||window.webkitlRL).revokeObjectURL(e)}}var Yi=function(){function e(){R(this,e),kF(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 V(e,[{key:"init",value:function(){for(var e=this,t=Object.keys(this.workers),n=0;n<t.length;n++){var U=t[n],F=new Mi;F.onmessage=function(t){e.emit(t.data.method,t.data)},this.workers[U]=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),t=0;t<e.length;t++){var n=e[t];this.workers[n].postMessage({method:"destroy"}),this.workers[n].terminate()}this.workers={}}},{key:"getWorker",value:function(e){return this.workers[e?"video":"audio"]}},{key:"decryptHeader",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],U=this;return this.updateHeaderId(),new Promise((function(F){var a=Math.floor(1e3*Math.random()),i=U.getWorker(t);i&&i.postMessage({method:"decryptHeader",id:a,buf:e,isVideo:t,needRemux:n});U.on("decryptHeader",(function e(t){t.id===a&&(U.off("decryptHeader",e),F({data:t.args.data,vid:t.args.vid}))}))}))}},{key:"updateValue",value:function(e){for(var t=Object.keys(this.workers),n=0;n<t.length;n++){var U=t[n];this.workers[U].postMessage({method:"updateValue",value:e})}}},{key:"decryptBody",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],U=e instanceof ArrayBuffer?e:e.buffer,F=this,a=F.bodyId+1;return F.bodyId=a,new Promise((function(e){F.on("decryptBody",(function t(n){n.id===a&&(F.off("decryptBody",t),e({data:n.args.data,id:a,headerId:F.headerId}))}));var i=F.getWorker(t);i&&i.postMessage({method:"decryptBody",id:a,args:{isVideo:t,id:F.workerIndex,aeskey:F.aeskey,buf:U,needRemux:n}},[U])}))}}]),e}(),wi=Yi,Ki=function(){function e(t){R(this,e),this.onTick_=t,this.cancelPending_=null}return V(e,[{key:"tickAfter",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.stop();var U=!0,F=null;this.cancelPending_=function(){window.clearTimeout(F),U=!1};return F=window.setTimeout((function(){U&&(t.onTick_(),n&&n())}),1e3*e),this}},{key:"tickEvery",value:function(e){var t=this;this.tickAfter(e,(function(){t.tickEvery(e)}))}},{key:"stop",value:function(){this.cancelPending_&&(this.cancelPending_(),this.cancelPending_=null)}}]),e}(),_i={stallSkip:.1,stallCount:3,stallTimer:1,failCount:2},ji=function(){function e(t,n){var U=this,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;R(this,e),this.player=t,this.mediaElem=t.video,this.config=Object.assign({},n,_i),this.timer=new Ki((function(){U.onGapJump()})),this.inBufferTimer=new Ki((function(){U._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("task_request_error",(function(e){U.requests=e})),!1!==this.config.useGapJump&&this._start()}return V(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 t=this.requests.video,n=this.requests.audio,U=this._checkIfNextRequestFailed(e,t),F=this._checkIfNextRequestFailed(e,n);if(U.result||F.result){var a=U.result?U.end:F.end;a=a<this.player.duration-.5?a+.5:this.player.duration,this.player.currentTime=a,this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap_req",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*a)}})}}}},{key:"_checkIfNextRequestFailed",value:function(e,t){for(var n=0;n<t.length;n++){var U=t[n],F=U.start-e<1.5,a=U.start<=e&&e<=U.end,i=403!==(null==U?void 0:U.response.status);if(F&&a&&U.count>=this.config.failCount&&i)return{end:U.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 t=this.mediaElem.buffered,n=this.config.smallGapLimit||1,U=this.config.gapDetectionThreshold||.5,F=this.mediaElem.currentTime,a=this._getIndex(t,F,U);if(null!==a&&(0!==a||this.segmentAppended)){var i=t.start(a);if(!(i>this.mediaElem.duration)){var Q=i-F,l=Q<=n;Q<e.BROWSER_GAP_TOLERANCE||l&&(this.mediaElem.currentTime=this.isSafari?i+.1:i,pt.gap("gapJump gapIndex",a,"isGapSamll",l,"jumpLargeGap",!1,"currentTime",this.mediaElem.currentTime),.08!==i&&this.player&&this.player.emit("log",{type:"oneevent",end_type:"gap",vid:this.config.vid,ext:{video_postion:Math.floor(1e3*i)}}))}}}}}},{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,t=this.mediaElem.buffered,n=!1,U=[],F=0;F<t.length;F++){var a=t.start(F),i=t.end(F);U.push({start:a,end:i}),e<a-.1||(e>i-.5||(n=!0))}var Q=this.mediaElem.buffered,l=Q.length;l>0&&this.mediaElem.duration===Q.end(l-1)&&(n=!0);var r=this.mediaElem.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA;if(n&&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,U))}catch(d){}this.lastVideoTime=e,this.resumeFromPaused=!1}}},{key:"_getIndex",value:function(e,t,n){if(!e||!e.length)return null;if(1===e.length&&e.end(0)-e.start(0)<1e-6)return null;for(var U=this._getBuffered(e),F=null,a=0;a<U.length;a++){if(U[a].start>t&&(0===a||U[a-1].end-t<=n)){F=a;break}}return F}},{key:"_getBuffered",value:function(e){if(!e)return[];for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}},{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}();ji.BROWSER_GAP_TOLERANCE=.001;var Hi=Gt,Pi=function(){function e(t){var n=this;R(this,e),h(this,"_onChangeConfig",(function(e){if(e){var t,U=e.nextBufferLength===(null===(t=n.config)||void 0===t?void 0:t.minBufferLength);if(n._nextBufferLength=e.nextBufferLength,e.nextBufferLength&&!U)try{n.loadData()}catch(F){}}})),h(this,"startProgressTimer",(function(){n._pluginInst.info({msg:"startProgressTimer"});var e=n;n._loadDataTime=0;var t=n.player,U=n.config;t&&e&&e.isDashCanUse&&e.dash.mse&&(e.dash.mse.progressTimer=new C,e.dash.mse.progressTimer.repeat((function(){n._checkAndLoadData("timer")}),1e3*U.tickInSeconds||U.progressTimer||Jt),n._startCheckBufferBreakTimer(),n.player.on(l.Events.TIME_UPDATE,n._onTimeUpdate))})),h(this,"_onTimeUpdate",(function(){var e,t;n.isDashCanUse&&n.config.dashOpts&&null!==(e=n.dash)&&void 0!==e&&e.mse&&(n._checkAndLoadData("timeupdate"),n.isEnded(),null===(t=n.dash)||void 0===t||t.onTimeUpdate(),n._seekingCheckBuffer())})),h(this,"_checkAndLoadData",(function(){var e=n.config;if(n.isDashCanUse&&n.dash.mse&&n.dash.mse.progressTimer){var t=1e3*e.tickInSeconds||e.progressTimer||Jt,U=bU.nowTime();U-n._loadDataTime>=t&&(n._loadDataTime=U,n.checkRemoveBuffer(),n.handleUrlExpire(),n.loadData(void 0),n.isEnded())}})),h(this,"_onAutoDescChange",(function(e){var t,U=e.definition,F=e.reset,a=e.fps,i=e.item;F||(n.player.curDefinition=d({},i)),pt.log(n.config.vid,"abritem autoDescChange",null===(t=n.player.curDefinition)||void 0===t?void 0:t.definition),n.updateAutoDefiDesc(U,F,a,i)})),this._pluginInst=t.pluginInst;var U=this._pluginInst,F=U.player,a=U.config;this._minDuration=1/0,this.player=F,this.config=a,this.startTimestamp=(new Date).getTime(),this.lastDefiIdx=void 0,this.__isDashCanUse=!1,this.preloadBufferThreshold=this.config.preloadBufferThreshold||.5,this.abrInstance=null,this.definitions=[];var i=this.config.autoBitrateOpts||{};this.isPlayAutoDefi=!!i.isPlayAutoDefi,this.isOpenAutoDefi=!!i.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.curVideoFileId=void 0,this.getPlayInfoTimestamp=this.startTimestamp/1e3;var Q=a.dashOpts.dynamic_video.dynamic_video_list,r=a.dashOpts.dynamic_video.dynamic_audio_list;Q&&Q.length>0?this.urlExpireTimestamp=a.dashOpts.dynamic_video.dynamic_video_list[0].url_expire||0:r&&r.length>0&&(this.urlExpireTimestamp=a.dashOpts.dynamic_video.dynamic_audio_list[0].url_expire||0),this.gapJumpInst=new ji(F,a),bU.on(F,"addVideoBufferEnd",(function(){n.gapJumpInst.onSegmentAppend()}),"dashDestroy"),this._nextBufferLength=this.config.nextBufferLength,bU.on(F,Bn.CHANGE_FLYING_PLUGIN_CONFIG,this._onChangeConfig,"dashDestroy"),this._lastRemoveTimestamp=0}var t,n;return V(e,[{key:"initDash",value:function(e){var t=this;this.dash=e;var n=this.config;n.dashOpts.dynamic_video.dynamic_video_list.length>0&&(this.initAbr(),n.dashOpts.dynamic_video.dynamic_video_list.sort((function(e,t){return t.vheight-e.vheight})),n.dashOpts.dynamic_video.dynamic_video_list.forEach((function(e,U){e.definition===n.defaultDefinition&&(t.dash.selectedIdx=U)})),this.dashVideoEncrypted=n.dashOpts.dynamic_video.dynamic_video_list.some((function(e){return!!e.kid}))),n.dashOpts.dynamic_video.dynamic_audio_list.length>0&&(this.dashAudioEncrypted=n.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(){if(this.dashVideoEncrypted||this.dashAudioEncrypted){var e,t,n=!!this.config.intertrustServerURL||(null===(e=this.player.plugins)||void 0===e||null===(t=e.drm)||void 0===t?void 0:t.serverCertificatePath);return this.config.useEME?n?1:3:2}return 0}},{key:"isEnded",value:function(){var e=this.dash,t=this.player,n=this.mse,U=this.config;if("vod"===e.type)if(t.ended)pt.log("player.ended === true"),"safari"===l.Sniffer.browser&&(t.pause(),t.emit("ended"));else{var F=U.duration||t.duration||e.mpd.duration;if(t.duration&&(F=Math.min(F,t.duration)),e.mpd.duration&&(F=Math.min(F,e.mpd.duration)),F-this._minDuration<10&&(F=Math.min(F,this._minDuration)),F>0&&F-t.currentTime<1){var a=this._findRangeForPlaybackTime(t.currentTime)||{start:0,end:0};pt.log("range",a,"current",t.currentTime,"duration",F);var i=Math.min(a.end,t.duration),Q=t.currentTime-i>=0&&a.end>0,r=i-t.currentTime<1&&a.end>0;(Q||r)&&(pt.log("isEnded execute, isOver",Q,"isClosed",r),console.log("isEnded execute, isOver",Q,"isClosed",r),n.endOfStream(),this.clearProgressTimer())}}}},{key:"dashDestroy",value:function(){var e=this.player,t=this.dash;for(var n in t&&t.mse&&t.mse.unbindMedia&&t.mse.unbindMedia(),t&&t.eme&&(t.eme.emit("destroy"),t.eme.destroy()),t&&e.errorHandler&&(t.abortLoadingTasks(),t.emit("destroy")),t&&t.mpd&&t.mpd.timer&&(clearTimeout(t.mpd.timer),t.mpd.timer=null),this.crypto&&this.crypto.destroy(),t&&t.destroy(),this.clearCheckCanplayTimer(),this.clearProgressTimer(),this.clearBufferBreakTimer(),this.destroyAbr(),this.gapJumpInst&&this.gapJumpInst.destroy(),e&&(this.player.off(l.Events.TIME_UPDATE,this._onTimeUpdate),e.__dash__=null,this._pluginInst.unloadVideo(),"function"==typeof e.video.setMediaKeys&&e.video.setMediaKeys(null).catch((function(){}))),t)delete t[n];for(var U in this)delete this[U]}},{key:"bindComEvent",value:function(){var e=this;this._lastSeekTime=null;var t=this.player,n=this.config;bU.on(t,"error",e.clearProgressTimer.bind(e),"dashDestroy"),bU.on(t,"ended",e.clearProgressTimer.bind(e),"dashDestroy"),bU.on(t,"ended",(function(){e.ended=!0}),"dashDestroy");var U=function(){var U=c(o().mark((function U(){var F,a,i,Q,l,r,d,s,B,c;return o().wrap((function(U){for(;;)switch(U.prev=U.next){case 0:if(pt.log("dash onSeeking",t.currentTime,"duration",t.duration),!t._invalidSeekTag){U.next=5;break}return t._invalidSeekTag=!1,pt.log("auto seek 0.001, return"),U.abrupt("return");case 5:if(e.isDashCanUse&&n.dashOpts&&e.mse){U.next=7;break}return U.abrupt("return");case 7:if(a=e.ended,e.ended=t.ended,!a){U.next=12;break}return this.isOpenAutoDefi?this._pluginInst.next(t.currentTime,"NEXT",t.config.DASHPlugin,!0):e.startProgressTimer(),U.abrupt("return");case 12:if(i=t.getBufferedRange(t.buffered)[1],Q=0===i,pt.log("dash onseeking, bufferEnd:".concat(i,", outBuffer:").concat(Q,", \n switching:").concat(e.switching,", isFull:").concat(null===(F=e.mse)||void 0===F?void 0:F.isFull(Ge.VIDEO))),!Q||e.switching){U.next=20;break}return e.abortLoading=!0,U.next=19,e.dash.abortLoadingTasks();case 19:pt.log("dash cancel loading task execute");case 20:if(e.dash){U.next=22;break}return U.abrupt("return");case 22:if(e.dash.mpd.setSegmentIndexByTime(t.currentTime),e.mse){U.next=25;break}return U.abrupt("return");case 25:if((l=e.mse).isFull&&(l.isFull(Ge.VIDEO)||l.isFull(Ge.AUDIO)))e.checkRemoveBuffer(!0,!0);else if(!Q&&n.removeBufferWhenSeekInBuffer)try{r=t.getBufferedRange(e.mse.buffered("video"))[1],d=t.getBufferedRange(e.mse.buffered("audio"))[1],e._clearBufferByTime(Math.max(r,d),t.duration)}catch(o){}e.abortLoading=!1,Q&&e._checkAndLoadData(),s=n.useDurationBackoff||!1,B=Date.now()/1e3,c=t.duration-t.currentTime<1,s&&c&&(!this._lastSeekTime||this._lastSeekTime<B-1)&&(this._lastSeekTime=B,t.currentTime=t.duration-1),e.gapJumpInst&&e.gapJumpInst.onSeeking();case 34:case"end":return U.stop()}}),U,this)})));return function(){return U.apply(this,arguments)}}();bU.on(t,"seeking",U,"dashDestroy");bU.on(t,"seeked",(function(){pt.log("dash onSeeked",t.currentTime),e.seeking=!1,e.isEnded(),e.dash.isAllAppend()&&(e.mse.endOfStream(),pt.log("dash seeked endofstream"))}),"dashDestroy"),bU.on(t,"dashDestroy",e.dashDestroy.bind(this))}},{key:"_seekingCheckBuffer",value:function(){var e=this;if(this.dash)for(var t=[Ge.VIDEO,Ge.AUDIO],n=0;n<t.length;n++)for(var U=t[n],F=this.dash.mpd.getBuffered(U),a=function(){var t=F[i],n=e.player.currentTime,a=t.start<=n&&n<=t.end;if(!a&&t.end-t.start<.5){pt.log("remove buffer _seekingCheckBuffer",t.start,t.end,"curTime",n,"inBuffer",a,"mediaType",U,"mediaBuffered",F);var Q=e.removeBuffer(U,t.start,t.end);Q&&Q.catch((function(e){pt.log("_seekingCheckBuffer start",t.start,"end",t.end,e.message)}))}},i=0;i<F.length;i++)a()}},{key:"destroy",value:function(){var e=this.player;null==e||e.emit("dashDestroy")}},{key:"_findRangeForPlaybackTime",value:function(e){var t=this.player.buffered;if(t)for(var n=0;n<t.length;n++)if(bU.round(t.start(n))<=bU.round(e)&&bU.round(t.end(n))>=bU.round(e))return{start:bU.round(t.start(n)),end:bU.round(t.end(n)),rawStart:t.start(n),rawEnd:t.end(n)}}},{key:"loadData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this,U=this.player,F=this.config;if(n.switching||n.abortLoading)pt.log("loadData switching",n.switching);else if(n.dash){var a,i=F.maxBufferLength||F.preloadTime||50,Q=n.dash.mpd.mediaList.video;if(Q&&Q.length>0&&Q[Q.selectedIdx]){var l=Q[Q.selectedIdx].bandwidth;a=Q[Q.selectedIdx].definition||this.bandwidth2item[l].definition}if(F.dynamicPreloadTimeOpts&&a){var r=F.dynamicPreloadTimeOpts[a];r&&(i=r)}var d=!1;U.paused&&(d=!0),i=d?U.isInstNext&&this._nextBufferLength>=0?this._nextBufferLength:F.minBufferLength:n.dash.getAdaptCacheBuffer(i),n.preloadTime!==i&&(n.preloadTime=i,pt.log("maxCacheTimeAudio change",i),U.emit(Ni.MAX_BUFFER_CHANGE,{videoCacheTime:i,audioCacheTime:i}));var o=e||U.currentTime;e||(e=U.currentTime);var s=this._findRangeForPlaybackTime(e),B=s&&Math.ceil(Math.max(s.end,s.rawEnd))||Math.floor(e);if(n.dash.isOpenPCDN((null==s?void 0:s.end)||0),!(B>e+i)){var c=n.dash.getPCDNInOutBuffer(),R={force_set_min:d,buffer_dur:i,load_size:-1,load_tar_dur:-1,load_dur:-1,in_buf:c.PCDNInBuffer||-1,out_buf:c.PCDNOutBuffer||-1};n.dash.pushDynamicBufferServiceRes(R),n.dash.seek(e>0,o,t,i)}}}},{key:"startCheckCanplayTimer",value:function(){var e=this,t=this.player,n=this.config;if(t&&e&&!n.disableCanplayCheck){e.checkCanplayTimer=new C,e.checkCanplayTimer.repeat((function(){t&&e&&e.isDashCanUse&&e.checkCanplayTimer&&t.errorHandler&&(t.enterIsHide?(pt.log("视频已起播,重置标记"),e.dashNoCanplay=0,e.clearCheckCanplayTimer()):e.dashNoCanplay||"visible"!==document.visibilityState||(e.dashNoCanplay=1,pt.log("未起播计时开始!持续".concat(mt,"毫秒没有获取到init分片则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===t.enterIsHide&&(t.dashState!==Tt?(e.dashNoCanplay=2,pt.log("确认未获取到init分片,没有起播!!!"),e.clearCheckCanplayTimer(),t.errorHandler(new LF(Je,me.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"}))):n.disableDashNoCanplayCheck||(pt.log("未起播计时开始!持续".concat(1e4,"毫秒则确认没有起播")),e.dashNoCanplayTimer=setTimeout((function(){e.dashNoCanplayTimer=null,1===e.dashNoCanplay&&!1===t.enterIsHide&&(e.dashNoCanplay=2,pt.log("确认没有起播!!!"),e.clearCheckCanplayTimer(),t.errorHandler(new LF(Je,me.NO_CANPLAY_ERROR,{message:"NO_CANPLAY_ERROR"})))}),1e4)))}),mt)))}),n.progressTimer||Jt)}}},{key:"clearCheckCanplayTimer",value:function(){this.checkCanplayTimer&&(this.checkCanplayTimer.clear(),this.checkCanplayTimer=null),this.dashNoCanplayTimer&&(clearTimeout(this.dashNoCanplayTimer),this.dashNoCanplayTimer=null,this.dashNoCanplay=void 0)}},{key:"clearBufferBreakTimer",value:function(){this.bufferCheckTimer&&(clearTimeout(this.bufferCheckTimer),this.bufferCheckTimer=null)}},{key:"handleUrlExpire",value:function(){var e;null===(e=this._pluginInst)||void 0===e||e.handleUrlExpire(this)}},{key:"_startCheckBufferBreakTimer",value:function(){var e=this,t=this.config;t&&!t.disableBufferBreakCheck&&(this.clearBufferBreakTimer(),this.bufferCheckTimer=setTimeout((function(){e._onBufferBreakCheck(),e._startCheckBufferBreakTimer()}),Jt))}},{key:"_onBufferBreakCheck",value:function(){var e=this,t=this.player,n=this.config;n?n.disableBufferBreakCheck||(Math.abs(t.currentTime-(e.lastCurrentTime||0))>.1||t.paused?1!==e.dashBufferBreak&&2!==e.dashBufferBreak||(pt.log("视频没有卡死,重置卡死标记"),e.dashBufferBreak=0,clearTimeout(e.dashBufferBreakTimer),e.dashBufferBreakTimer=null):e.dashBufferBreak||(e.dashBufferBreak=1,pt.log("卡死计时开始!持续".concat(n.waitingTimeOut,"毫秒则确认卡死")),e.dashBufferBreakTimer=setTimeout((function(){if(1===e.dashBufferBreak){e.dashBufferBreak=2,pt.log("确认卡死!!!");var t=document.hidden||"hidden"===document.visibilityState?me.WAITING_TIMEOUT_ERROR:me.BUFFERBREAK_ERROR;e.dash.emit("error",new LF(Je,t))}e.dashBufferBreakTimer=null}),n.waitingTimeOut)),e.lastCurrentTime=t.currentTime):this.clearBufferBreakTimer()}},{key:"_isMseFull",value:function(){return!(!this.mse||!this.mse.isFull)&&(this.mse.isFull(Ge.VIDEO)||this.mse.isFull(Ge.AUDIO))}},{key:"checkRemoveBuffer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.player,U=this.config,F=(new Date).getTime(),a=this._isMseFull(),i=e||a;if(!(F-this._lastRemoveTimestamp<1e3*U.removeBufferLen)||i){this._lastRemoveTimestamp=F;var Q=n.currentTime,l=n.getBufferedRange(),r=l&&l[0]>=0&&Q-l[0]>U.removeBufferLen;pt.log("checkRemoveBuffer","mseFull",a,"force",e,"needRemove",r),(i||r)&&this._clearBuffer(i,t)}}},{key:"_checkBufferFull",value:function(e){var t=this;clearTimeout(this._fullTimer),this._isMseFull()&&(this._fullTimer=setTimeout((function(){clearTimeout(t._fullTimer),t._clearBuffer(!0)}),1e3*e))}},{key:"_clearBuffer",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=this.player;if(this.isDashCanUse&&this.mse){var F=U.getBufferedRange()[1]>0,a=U.currentTime,i=bU.getBufferData(null==U?void 0:U.buffered,a),Q=i.beforeBufLen,l=i.afterBufLen,r=i.beforeLastBuffEnd,d=i.afterFirstBuffEnd,o=i.afterFirstBuffStart;F||(a=a-r<15?r:a);var s=this._findClosetGop(a,!1),B=t&&n&&!F,c=B?.1:5;if(s&&this._clearBufferByTime(0,s,(function(t){B&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})),t){pt.log("clearBuffer isFull","isSeeking",n,"isInBuffer",F,"beforeBufLen",Q,"afterBufLen",l,"afterFirstBuffEnd",d,"afterFirstBuffStart",o,"beforeLastBuffEnd",r);var R=0,u=0;if(n&&!F){if(u=this._findClosetGop(o,!0,2),R=this._findClosetGop(d,!1,1),pt.log("clearBuffer isFull removeStart",u,"removeEnd",R),0===Q){for(var V=this.player.video.buffered,h=0,Z=V.length-1;Z>=0;Z--){var S=V.start(Z),p=V.end(Z);if((h+=p-S)>10){u=bU.round(S),R=bU.round(p);break}}pt.log("clearBuffer isFull beforeBufLen 0 removeStart",u,"removeEnd",R)}u<R?this._clearBufferByTime(u,R,(function(t){B&&(null==t?void 0:t.removeDur)<5&&e._clearBuffer(!0,!0)})):this._checkBufferFull(c)}else this._checkBufferFull(c)}}}},{key:"_findClosetGop",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:2,U=this.dash.mpd.mediaList.video;U[U.selectedIdx]||(U=this.dash.mpd.mediaList.audio);var F=U[U.selectedIdx].mediaSegments;if(t){for(var a=0,i=0;i<F.length;i++)if(F[i].startRaw>e&&++a>n)return F[i].start}else for(var Q=0,l=F.length-1;l>-1;l--)if(F[l].endRaw<e&&++Q>n)return F[l].end}},{key:"_getFirstGopEnd",value:function(){var e=this.dash.mpd.mediaList,t=e.video.length>0,n=this.dash.mpd.mediaList.audio.length>0,U=0;if(t){var F=e.video[e.video.selectedIdx].mediaSegments[0].end;U=Math.max(U,F)}if(n){var a,i=(null===(a=e.audio[e.audio.selectedIdx].mediaSegments[0])||void 0===a?void 0:a.end)||0;U=Math.max(U,i)}return{clearMinStart:U,hasVideo:t,hasAudio:n}}},{key:"clearBufferDirect",value:function(e,t){var n=t.startRaw,U=t.endRaw;if(!(n>=U)){var F=this.removeBuffer(e,n+1e-5,U);F&&F.catch((function(){pt.log("mediaType",e,"catch clearBufferDirect start: ".concat(n," end: ").concat(U))}))}}},{key:"_clearBufferByTime",value:function(e,t,n){var U=this,F=[],a=this._getFirstGopEnd(),i=a.clearMinStart,Q=a.hasVideo,l=a.hasAudio;e=Math.max(i,e),pt.log("removeBuffer clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(i));var r=this.getBufferDur();if(e>t)return pt.log("clearBuffer return clearBufferByTime start: ".concat(e," end: ").concat(t," clearMinStart:").concat(i)),void n({removeDur:0});if(Q){var d=this.removeBuffer(Ge.VIDEO,e,t);d&&F.push(d)}if(l){var o=this.removeBuffer(Ge.AUDIO,e,t);o&&F.push(o)}Promise.all(F).then((function(){var e=U.getBufferDur(),t=r-e;t>0&&(U.player.emit("removeBuffer",{removeDur:t}),pt.log("removeBuffer dur,",t,"oldTotalBuffer",r,"newTotalBuffer",e),U.player.emit("removeBufferEnd"),n&&n({removeDur:t}))})).catch((function(e){pt.log("removeBuffer error",e),n&&n({removeDur:0})}))}},{key:"removeBuffer",value:function(e,t,n){if(pt.log("removeBuffer start",e,t,n),this.dash.mpd.clearBuffer(t,n,e),this.mse.remove&&!this._pluginInst.softVideo){var U=this.mse.remove(e,t,n);return U&&U.catch((function(){})),U}return null}},{key:"getBufferDur",value:function(){var e;if(null===(e=this.player)||void 0===e||!e.buffered)return 0;for(var t=this.player.buffered,n=0,U=0,F=t.length;U<F;U++)n+=t.end(U)-t.start(U);return n}},{key:"abort",value:function(e){if(this.mse&&this.mse.abort&&this.dash.mpd.mediaList[e].length>0){var t=this.mse.abort(e,{mediaType:e});t&&t.catch((function(){}))}}},{key:"clearProgressTimer",value:function(){this.isDashCanUse&&this.dash.mse&&this.dash.mse.progressTimer&&(this.dash.mse.progressTimer.clear(),this.dash.mse.progressTimer=null),this.dashBufferBreakTimer&&(clearTimeout(this.dashBufferBreakTimer),this.dashBufferBreakTimer=null,this.dashBufferBreak=void 0)}},{key:"emitMenuResolutionChange",value:function(){var e=this.player;try{var t=this.dash.mpd.mediaList.video;if(t){var n=t[t.selectedIdx],U={width:n.width,height:n.height};e.emit("RESOLUTION_UPDATE",U)}else e.emit("RESOLUTION_UPDATE")}catch(F){e.emit("RESOLUTION_UPDATE")}}},{key:"updateDashType",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=X.getItem(Mt),U=It;e=t||n===U.BACK?U.MAIN:U.BACK,X.setItem(Mt,e)}},{key:"changeMainBackUrl",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Hi.INIT;if(!(arguments.length>1&&void 0!==arguments[1]&&arguments[1])&&this._pluginInst){var t=this._pluginInst.config,n=X.getItem(Mt),U=!1;if((e===Hi.INIT&&n===It.BACK||e===Hi.ERR)&&(U=!0),pt.log(t.vid,"curDashType",n,"changeState",e,"needChange",U),U){var F=t.dashOpts.dynamic_video.main_url,a=t.dashOpts.dynamic_video.backup_url_1;t.dashOpts.dynamic_video.main_url=a,t.dashOpts.dynamic_video.backup_url_1=F,bU.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_video_list),bU.exchangeListUrl(t.dashOpts.dynamic_video.dynamic_audio_list)}var i=t.dashOpts.dynamic_video.main_url;return this._checkUrlRange(i),t}}},{key:"_checkUrlRange",value:function(e){var t=this._pluginInst.config,n=t.url_range_domains||[],U=bU.validateUrlRange(n,e);t.useUrlRange=U}},{key:"updateAutoDefiDesc",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,F=this.player,a=(this.config.autoBitrateOpts||{}).autoDefiText||"auto";F.emit("ABR_AUTO_DESC_CHANGE",a,t?void 0:e,n,U),t||this._pluginInst.setCurrentDefitionInfos("自动 ".concat(e),U)}},{key:"_abrLoadMetaSuccess",value:function(e,t,n,U){if(U===Ge.VIDEO){var F=this,a=this.dash,i=this.config,Q=a.mpd.mediaList.video;this.abrInstance&&this.abrInstance.updateBitrate(F.defiIdMap[e].bitrate),n&&(this.lastDefiIdx=e),F.selectedIdx=t,i.defaultDefinition=Q[F.selectedIdx].definition}}},{key:"_startLoadInitSegment",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"video",F=new x,a=this,i=this.dash,Q=this.config;if(!i.mpd)return pt.log("_startLoadInitSegment dash.mpd is null"),void F.reject();var l=i.mpd.mediaList[U],r=l.selectedIdx;return l.every((function(d,o){if(d.id===e){r=o,a.setSwitching(U,!0);var s=l[r].wrapperData,B=i.isProgressiveLoading(U).isCancellable;if(pt.log("mediaType",U,"isCancellable",B),s&&B)(a.dashVideoEncrypted||a.dashAudioEncrypted)&&!1===Q.useEME&&a.crypto&&a.crypto.updateHeaderId(),t._abrLoadMetaSuccess(e,r,n,U),F.resolve(s);else{a._makeInitSegemntRequestWithRetry(U,r,!1,(function(){a.setSwitching(U,!1)})).then((function(a){t._abrLoadMetaSuccess(e,r,n,U),F.resolve(a)})).catch((function(e){a.setSwitching(U,!1),pt.log("_makeInitSegemntRequestWithRetry",JSON.stringify({msg:e.message}))}))}return!1}return!0})),F}},{key:"setCurrentDefinition",value:function(){try{var e=this.dash,t=e.mpd.mediaList.video,n=t[t.selectedIdx],U=n.definition,F=n.bandwidth;this._pluginInst.setCurrentDefitionInfos(U,this.definition2item[U]),e.updateDynamicBufferServiceBitrate(F),e.checkPCDN()}catch(a){console.log("setCurrentDefinition error",a)}}},{key:"_emitDefinitionChangeDetailEvent",value:function(e){this.player.emit("definitionChangeDetail",e)}},{key:"setPlayerCurDefinition",value:function(e){console.log("abritem setPlayer",e);var t=this._pluginInst.player;if(e&&"__auto__"===e.url||(t.curDefinition=e),t.curDefinition){var n=this.dash.mpd.mediaList.audio,U=n[n.selectedIdx],F=this.config.dashOpts.dynamic_video.dynamic_audio_list;if(F.length>0)try{t.curDefinition.audioDefinition=F.filter((function(e){return e.main_url===U.baseURL}))[0]}catch(a){pt.log("setAudioFaild",a)}}}},{key:"switchURL",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this;if(e){if(!Array.isArray(e)){var U=e.toString();e=U.split("/")[U.split("/").length-1]}var F=n.definitions.filter((function(t){return t.url===e}))[0];if(F){this.setPlayerCurDefinition(F);var a=e===vi;if(pt.log("switchURL",e,t),a)return n.abrInstance.start(),n.isCurrentAutoDefi=!0,n.abrInstance.isCurrentInAbr=!0,void setTimeout((function(){n.abrInstance._onTimeUpdate(null,!0)}));n.isCurrentAutoDefi&&(n.updateAutoDefiDesc("",!0),n.isCurrentAutoDefi=!1,n.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi),t&&n.abrInstance.stop(!0),this._doChangeDefinition(Ge.VIDEO,e);var i=this.dash.selectAudio(e,!1);if(i>-1)try{pt.log("switch url audio change",i);var Q=this.dash.mpd.mediaList.audio[i].id;if(Q!==this.dash.mpd.mediaList.audio.selectedIdx)return void pt.log("switch url audio same no need change");this._doChangeDefinition(Ge.AUDIO,Q)}catch(l){console.log("audio select error",l)}}}}},{key:"_doChangeDefinition",value:function(e,t){var n=this,U=this._pluginInst.player,F=this;F._startLoadInitSegment(t,!0,e).then(function(){var t=c(o().mark((function t(a){var i,Q,r,d,s,B,c,R,u,V,h,Z;return o().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(F.selectedIdx===a.newIdx||e!==Ge.VIDEO){t.next=3;break}return pt.log("definitionSwitchTime cancel, current:",F.selectedIdx,"self",a.newIdx),t.abrupt("return");case 3:return i=F.dash,Q=i.mpd.mediaList[e],t.next=7,F._switch(a.newIdx,e);case 7:if(r=t.sent,d=U.currentTime,s=null,s=Q[r||0].mediaSegments.find((function(e){return e.start-d>2.5})),B=!1,s||(c=Q[r||0].mediaSegments,s=c[c.length-1],B=!0),s){t.next=16;break}return F._doAppendInitSegment(e,a,s),t.abrupt("return");case 16:R=bU.round(s.start),u=bU.round(U.getBufferedRange(U.buffered)[1]),pt.log("切换清晰度 curTime: ".concat(d," start: ").concat(R," end: ").concat(u),d),e===Ge.VIDEO&&(F.setCurrentDefinition(),F.isCurrentInAbr()||(pt.log("definitionSwitchTime emit, current",F.selectedIdx),U.emit("definitionSwitchTime",R)),n._emitDefinitionChangeDetailEvent({start:R,bitrate:null===(V=Q[a.newIdx])||void 0===V?void 0:V.bandwidth,mediaType:e,definition:a.definition,url:a.url,fileid:a.fileId})),u-R>0&&"safari"!==l.Sniffer.browser&&!B&&e===Ge.VIDEO&&(pt.log("switch seek removeBuffer: ".concat(R," ").concat(U.duration)),F.removeBuffer(e,s.startRaw,U.duration),h=Math.max(1,s.idx-1),(Z=Q[r||0].mediaSegments[h-1]).start>0&&Z.start<d&&F.removeBuffer(e,0,Z.startRaw-.001)),F._doAppendInitSegment(e,a,s);case 22:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())}},{key:"_doAppendInitSegment",value:function(e,t,n){var U=this;this._appendInitSegment(e,t,t.newIdx).then((function(){var F;(pt.log("switchURL appendInitSegment",t.newIdx),U.setSwitching(e,!1),n&&U.loadData((n.start+n.end)/2,!1),U.emitMenuResolutionChange(),U.config.loadFirstGopData)&&(null===(F=U.dash)||void 0===F||F.loadFirstVideoGop())}))}},{key:"switching",get:function(){return this._switching}},{key:"setSwitching",value:function(e,t){e===Ge.VIDEO?this._videoSwiting=t:this._audioSwiting=t,this._switching=this._videoSwiting||this._audioSwiting,pt.log("setSwitching",e,"video",this._videoSwiting,"audio",this._audioSwiting)}},{key:"abrSwitchURL",value:function(e){var t=this,n=this.dash,U=this.player;e=e.split("/")[e.split("/").length-1],pt.log("abrSwitchURL",e),this._startLoadInitSegment(e).then(function(){var e=c(o().mark((function e(F){var a,i,Q,l;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.mpd.mediaList.video,e.next=3,t._switch(F.newIdx,Ge.VIDEO);case 3:if(i=e.sent,Q=U.getBufferedRange(U.buffered)[1],l=a[i].mediaSegments.find((function(e){return e.start-Q>=0}))){e.next=8;break}return e.abrupt("return");case 8:t._pluginInst.info({msg:"abr switch",data:{bd:a[i].definition,d:a[F.newIdx].definition,start:0===Q?U.currentTime:l.start},add:!0}),t.setCurrentDefinition(),t._appendInitSegment("video",F,F.newIdx).then((function(){pt.log("abrSwitchURL appendInitSegment",F.newIdx),t.setSwitching(Ge.VIDEO,!1),t.loadData(void 0,!1)})).catch((function(e){pt.log("appendInitSegment",e)}));case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){pt.log("startLoadInitSegemnt",e)}))}},{key:"_switch",value:(n=c(o().mark((function e(t,n){var U,F,a,i;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return U=this.dash,F=n===Ge.VIDEO?U.mpd.mediaList.video:U.mpd.mediaList.audio,a=F.selectedIdx,F.selectedIdx=t,e.next=6,U.abortLoadingTasks(n);case 6:return F[a].mediaSegments.every((function(e){return e.downloaded=Dt,!0})),(i=U.mpd.mediaList.audio)[i.selectedIdx]&&i[i.selectedIdx].mediaSegments&&i[i.selectedIdx].mediaSegments.forEach((function(e){e.downloaded===Xt&&(e.downloaded=Dt)})),e.abrupt("return",a);case 10:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"_handleInitData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,U=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},F=arguments.length>4?arguments[4]:void 0,a=this.dash,i=new x;if(e instanceof ArrayBuffer){var Q=0===t.length?e:e.slice(t[0],t[1]+1),l=null===n?null:e.slice(n[0],n[1]+1);a&&!1===a.useEME&&this.crypto?this.crypto.decryptHeader(Q,"video"===F,!this._pluginInst.softVideo).then((function(t){var n=t.data,F=n.res,a=n.videoTrack,Q=n.audioTrack,r=F;i.resolve({initSegmentRes:r,data:e,sidxSegmentRes:l,headers:U,videoTrack:a,audioTrack:Q})})):i.resolve({initSegmentRes:Q,data:e,sidxSegmentRes:l,vid:null,headers:U})}else;return i}},{key:"_appendInitSegment",value:function(e,t,n){var U=this,F=this.player,a=this.config.duration;this.dash.mpd.duration>0&&(a=this.dash.mpd.duration);var i=new x,Q=this.dash.mpd.mediaList[e],l=t.initSegmentRes,r=t.sidxSegmentRes;if(!t.fromCache&&(t.fromCache=!0,Q[Q.selectedIdx].wrapperData=t,r))try{this.dash.mpd.getSidx(r,e,n,a)}catch(o){F.errorHandler(o)}if(e===Ge.VIDEO){var d=function(e){for(var t=Object.keys(KF),n=0;n<t.length;n++){var U=t[n];if(KF[U].codecs===e)return U}return null}(Q[Q.selectedIdx].codecs);this._pluginInst.setCodeInfo(d)}return pt.log("appendInitSegment mediaType:".concat(e,", index: ").concat(n)),this.dash.changeType(e,Q[Q.selectedIdx].codecs),this._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendStart")),this.dash.appendBuffer(e,l,{mediaType:e,index:n,initSegment:!0,allSegment:!0},t.videoTrack,t.audioTrack).then((function(t){if(U._pluginInst.info({msg:"appendBuffer",data:{mediaType:e,index:n}}),U._pluginInst._kernal.setNodeTime("init_".concat(e,"_appendDone"),t),pt.log("appendInitSegment success mediaType:".concat(e,", index: ").concat(n,", \n curVideoInitSegment:").concat(U.curVideoInitSegmentIdx)),Q[Q.selectedIdx].inited=!0,Q.switchTag=!0,i.resolve(),"video"===e&&U.curVideoInitSegmentIdx!==n){U.curVideoInitSegmentIdx=n,U.curVideoFileId=Q[Q.selectedIdx].fileId,pt.log("appendInitSegment",n,"fileId",U.curVideoFileId);var a=U._findClosetGop(F.currentTime,!0,0);U.dash.mpd.clearBuffer(a,F.duration,"video")}})).catch((function(t){pt.log("appendInitSegment type-".concat(e,"-appendCatch,range:").concat(JSON.stringify(l),",\n message:").concat(t.message)),t&&t.errorCode&&F&&F.emit(new LF(Ze,t.errorCode,{message:"appendInit ".concat(t.message)}))})),i}},{key:"_makeInitSegemntRequest",value:(t=c(o().mark((function e(){var t,n,U,F,a,i,Q,l,r,d,s,B,c,R,u,V,h,Z,S,p,J,m,b,W=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=W.length>0&&void 0!==W[0]?W[0]:"video",U=W.length>1&&void 0!==W[1]?W[1]:0,F=W.length>2&&void 0!==W[2]?W[2]:null,a=this.dash,i=this.config,Q=new x,l=a.mpd&&a.mpd.mediaList[n][U],r=[],d="",l){e.next=12;break}return Q.reject({mediaType:n,index:U,initSegmentRange:r,url:d,rejected:!0,msg:"list is null"}),pt.log("initSegmentRequest error"),e.abrupt("return",Q);case 12:return r=(l.initSegmentRange||[]).concat(),(s="segment_base"===a.mpd.dashType)&&(r[1]=l.sidxRange[1]),d=l.initSegment,B="video"===n&&(l.definition||this.bandwidth2item[l.bandwidth].definition),this._checkUrlRange(d),c={mediaType:n,vid:i.vid,definition:"video"===n?B:void 0,useUrlRange:i.useUrlRange,timeout:-1,bitrate:l.avg_bitrate||l.bandwidth||l.bitrate,initSegment:!0,codecType:(null===(t=a.mpd)||void 0===t?void 0:t.videoCodecType)||"h264",fileId:l.fileId,checkPreload:!0},e.next=21,a.getData(d,r,n,c,!1,null,F);case 21:return R=e.sent,u=R.res,V=R.headers,h=R.status,Z=R.readyState,S=R.fromCache,p=R.error,J=R.orgDefinition,u&&"error"!==u?(J&&B===(null===(b=this.player.curDefinition)||void 0===b?void 0:b.definition)&&(this.player.curDefinition.orgDefinition=J),this._handleInitData(u,l.initSegmentRange,s?l.sidxRange:null,V,n).then((function(e){e.newIdx=U,e.mediaType=n,e.initSegmentRange=r,e.cache=S,e.definition=c.definition,e.bitrate=c.bitrate,e.url=d,e.fileId=c.fileId,Q.resolve(e)}))):(m=!1,l.fallbackUrl&&!l.hasFallback&&s&&(l.hasFallback=!0,m=!0,l.initSegment=l.fallbackUrl),Q.reject({mediaType:n,index:U,initSegmentRange:r,url:d,rejected:!0,reason:u,status:h,readyState:Z,ext:p instanceof Error?{msg:p.message}:p,retry:m})),e.abrupt("return",Q);case 31:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"_makeInitSegemntRequestWithRetry",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"video",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,U=arguments.length>2&&void 0!==arguments[2]&&arguments[2],F=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.handleUrlExpire();var i=a||new x;return U&&this._pluginInst._kernal.setNodeTime("init".concat(t,"_metastart")),this._makeInitSegemntRequest(t,n,F).then((function(F){e._pluginInst.info({msg:"initSegmentRequest succ"}),U&&(e._pluginInst._kernal.setNodeTime("init".concat(t,"_metadone"),{fromCache:F.cache,byteLength:F.data.byteLength,mediaType:t,index:n,definition:F.definition,isInitSegment:!0},!0),e._emitDefinitionChangeDetailEvent({start:0,bitrate:F.bitrate,mediaType:t,definition:F.definition,url:F.url,fileid:F.fileId})),i.resolve(F)})).catch((function(U){var a;if(U.retry)e._makeInitSegemntRequestWithRetry(t,n,!1,F,i);else{var Q=U.message?U.message:U;i.reject(new LF(Je,LF.INIT_SEGMENT_ERROR,{line:329,mediaType:t,index:n,error:Q,message:"reason ".concat((null==U||null===(a=U.ext)||void 0===a?void 0:a.msg)||(null==Q?void 0:Q.reason)," status ").concat(null==Q?void 0:Q.status),retry:U.retry}))}})),i}},{key:"updateAbrCacheData",value:function(e,t,n){var U=this.dash,F=this.config,a=F.autoBitrateOpts||{},i=U.mpd.mediaList.video,Q=n.definition,l=F.definitionText&&F.definitionText[Q]||Q,r=i[e],d=n.bitrate;this.bitrateMap[d]={url:r.id,definition:Q,definitionName:l},this.defiIdMap[r.id]={bitrate:d,definition:Q},e===i.length-1&&this.isOpenAutoDefi&&this.definitions.push({name:a.autoDefiText||"auto",url:vi,selected:t,definition:"自动",fps:void 0})}},{key:"destroyAbr",value:function(){var e=this,t=this.player;e.abrInstance&&(t&&t.off(Ni.UPDATE_AUTO_DESC,this._onAutoDescChange),e.abrInstance.destroy(),e.abrInstance=null)}},{key:"initAbr",value:function(){var e=this,t=this,n=this.player,U=this.config;bU.on(n,Ni.UPDATE_AUTO_DESC,this._onAutoDescChange,"dashDestroy"),this.bitrateMap={},this.defiIdMap={};var F=ct;t.abrInstance=new Ci(n,U,0,U.dashOpts.dynamic_video,5e3,{logger:pt.abr,openLog:F}),bU.once(n,Ni.ABR_START_PROGRESS,this.startProgressTimer,"dashDestroy"),t.abrInstance.onAbrChange=function(e,U,F,a){var i=t.bitrateMap[e],Q=t.bitrateMap[U],l=null==i?void 0:i.definition,r=null==Q?void 0:Q.definition;pt.abr("abr change prevD:",l,"curDef:".concat(r)),l!==r&&Q&&(t.abrSwitchURL(Q.url),n.emit("ABR_CHANGE",{prev:l,cur:r,prevName:i.definitionName,curName:Q.definitionName,abrInfo:a}))},bU.on(n,Ni.ABR_CHANGE,t.abrInstance.onAbrChange,"dashDestroy"),bU.on(n,Ni.ABR_LIMIT_BITRATE,(function(){if(t.isCurrentInAbr()){var U=5*Math.floor(n.currentTime/5)+5;pt.log("ABR_LIMIT_BITRATE, currentTime",n.currentTime,"removeStart",U),e.removeBuffer(Ge.VIDEO,U,n.duration)}}),"dashDestroy"),t.abrInstance.isCurrentInAbr=this.isCurrentAutoDefi}},{key:"isCurrentInAbr",value:function(){return!!this.abrInstance&&this.abrInstance.isCurrentInAbr}}]),e}(),zi=Pi,Oi=Gt,Ai=function(){function e(t){var n=this;R(this,e),h(this,"start",function(){var e=c(o().mark((function e(t){var U,F,a,i,Q,l,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n._beforeLoadStartCostTime=0,n._tm=bU.nowTime(),n._sTime=bU.nowTime(),!n._checkHasDestroy("start")){e.next=5;break}return e.abrupt("return");case 5:if(n._hasStart&&(n.__dash__&&(n.__dash__.destroy(),n.__dash__=null),n._initProfile(),n._initialize(),n._hasStart=!1),n.setNodeTime("newplayer_start"),U=Date.now(),F=n.__dash__,a=n._pluginInst,i=a.player,Q=a.config,i.dashState=Et,i.emit("dashStateChange",Et),t||(t=i.config.url="anytext"),l=new Li(t,n._pluginInst,F),F){e.next=17;break}return n._info({msg:"__dash__ is null, dashOpts",startMs:U,name:"start __dash__"}),e.abrupt("return");case 17:return F.initDash(l),F.dashVideoEncrypted||F.dashAudioEncrypted||n._pluginInst.softVideo?(pt.log("加密视频"),r=!1===Q.useEME,Q.useEME=Un(),(r||n._pluginInst.softVideo)&&(Q.useEME=!1),Q.intertrustServerURL&&(Q.useEME=!0),Q.useEME||(F.crypto=new wi),l.useEME=Q.useEME,n._info({msg:"encrypt video ready useEME ".concat(l.useEME)})):(pt.log("非加密视频"),n._info({msg:" no encrypt video ready"})),i.dashState=yt,i.emit("dashStateChange",yt),e.next=23,n._onWasmReady({url:t});case 23:n._info({msg:"info player start execute",startMs:U,name:"start",profile:!0}),n._hasStart=!0;case 25:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),h(this,"_onLoadStart",(function(){var e=bU.nowTime()-n._tm;n._beforeLoadStartCostTime=e>100?100:e,n.changeState("loadstart","beforeLoadStartCostTime ".concat(n._beforeLoadStartCostTime))})),h(this,"_onLoadData",c(o().mark((function e(){var t,U,F;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.changeState("loaddata"),null==(F=n.__dash__)||null===(t=F.dash)||void 0===t||t.checkPCDN(),null==F||null===(U=F.dash)||void 0===U||U.cachePreloadData(),null==F||!F.abrInstance){e.next=8;break}return e.next=7,F.abrInstance.init(F.dash.mpd.mediaList);case 7:F.abrInstance.execute();case 8:case"end":return e.stop()}}),e)})))),h(this,"_errorHandler",(function(e){var t,U;if(!n._checkHasDestroy("errorHandler")){var F=n._pluginInst,a=F.player,i=F.config;if(i.codecType===KF[YF].logCodeType&&(null===(t=a.video.error)||void 0===t||null===(U=t.message)||void 0===U?void 0:U.indexOf("video decoder initialization failed"))>=0&&(pt.log("ErrorHandler DECODER_FAILED"),a.emit("DECODER_FAILED",{codecType:i.codecType,vid:i.vid})),e instanceof LF)e=new l.Errors(a,e);else{if(a.video.error)e=new l.Errors(a,{errorType:Ze,errorCode:5100+a.video.error.code});else{var Q=e;if("string"!=typeof e)try{Q=JSON.stringify(e)}catch(B){Q="other"}e=new l.Errors(a,{errorType:pe,errorCode:0,errorMessage:Q})}}if(n._errors.push({time:(new Date).getTime(),err:e}),pt.log(e),a.emit("xglog_cache"),e&&a.dashState!==Ct){a.dashState=Ct,e.vid=i.vid,e.url=a.src;var r=n.__dash__,d=r&&r.isCurrentAutoDefi;if(e.errd&&"object"===s(e.errd)&&r&&r.dash&&(e.errd.url=r.dash.url,e.url=r.dash.url),e.url&&e.url.indexOf("blob:")>-1&&i.dashOpts&&i.dashOpts.dynamic_video&&(e.url=i.dashOpts.dynamic_video.main_url),!e||e.errorCode!==n._getCode(Ze,me.MSE_HIJACK)&&e.errorCode!==n._getCode(Ze,me.EME_HIJACK)){if(a.emit("DATA_REPORT",e),e&&e.errorCode===n._getCode(Se,me.LICENSE))return n._pluginInst.destroyKernal(),void a.emit("error",e);if(!e||e.errorCode!==n._getCode(Ze,me.MSE_ADD_SB)&&e.errorCode!==n._getCode(Ve,me.SIDX)){if(e.segmentExpired||"task_request_expired"===e.msg)return r&&r.abrInstance&&"function"==typeof r.abrInstance._stop&&(r.abrInstance._stop(),pt.abr("error stop","expired",e.segmentExpired,e.ex)),void n._pluginInst.emitExpireEvent(e);if(!e.curReqVideoSegInfo&&r&&(e.curReqVideoSegInfo=JSON.parse(JSON.stringify(r.curReqVideoSegInfo||{}))),e.headers||(e.headers=e.curReqVideoSegInfo.headers||{}),!!i.useBackUrl&&!n._pluginInst._hasUsedBackUrl&&i.dashOpts&&i.dashOpts.dynamic_video&&r){pt.log("backup replay");var o=r.changeMainBackUrl(Oi.ERR,n._pluginInst._hasUsedBackUrl);return r.updateDashType(),d?o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!0):(n.currentDefitionFromPlayer&&(o.defaultDefinition=n.currentDefitionFromPlayer.definition),o.autoBitrateOpts&&(o.autoBitrateOpts.isPlayAutoDefi=!1)),n._pluginInst._hasUsedBackUrl=!0,n._pluginInst.next(a.currentTime,"REPLAY",o,!0,"dash"),a.emit("playCatch","dash",e),pt.log("playCatch dash",JSON.stringify(e)),void n._emitDegradeEvent(e,"dash")}r&&r.updateDashType(!0),n._handleDegradeToMp4(e)}else n._handleDegradeToMp4(e)}else a.emit("error",e)}}})),this._pluginInst=t,this._errors=[],this._initProfile(),this._proxyPlayer(),this._initialize(),this._bindEvents()}var t,n;return V(e,[{key:"changeState",value:function(e){var t,n,U=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._pTime||(this._pTime=bU.nowTime());var F=bU.nowTime()-this._pTime,a=bU.nowTime()-this._sTime;pt.log(null===(t=this._pluginInst)||void 0===t||null===(n=t.config)||void 0===n?void 0:n.vid,">>>changeState[".concat(e,"]"),F,a,JSON.stringify(U));var i={state:e,t1:F,t2:a,data:U};this.states[e]||(this.states[e]=i),this.allPhases.push(i),this._pTime=bU.nowTime()}},{key:"_initProfile",value:function(){this.states={},this.preloadMap={},this.allPhases=[]}},{key:"setNodeTime",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.changeState(e,t),n&&this.setPreloadData(e,t)}},{key:"setPreloadData",value:function(e,t){this.preloadMap[e]=t}},{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:(n=c(o().mark((function e(t){var n,U,F,a,i,Q,r,d,s,B,c,R,u=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 n=t.url,U=this._pluginInst,F=U.player,a=U.config,i=this.__dash__,Q=i.dash,F.dashState=ft,F.emit("dashStateChange",ft),pt.log("监听到wasm_ready"),this._info({msg:"wasm_ready"}),bU.on(Q,"error",this._errorHandler,"destroy"),i.bindComEvent(),e.prev=12,e.next=15,Q.init(n);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:pt.time("initReady cost",(new Date).getTime()-i.startTimestamp),F.dashState=Nt,F.emit("dashStateChange",Nt),pt.log("dash init完成"),Q.mpd.mediaList.video.length>0&&(a.defaultDefinition||(a.defaultDefinition=a.dashOpts.dynamic_video.dynamic_video_list[0].definition,i.lastDefiIdx=0),i.isOpenAutoDefi||(i.isCurrentAutoDefi=!1,i.abrInstance.isCurrentInAbr=!1),d=a.defaultDefinition.toString(),this._initDefinitionList(d),(s=i.definitions.some((function(e){return e.selected})))&&void 0!==i.lastDefiIdx||(s||(i.definitions[0].selected=!0,B=i.definitions[0].definition,this._pluginInst.setCurrentDefitionInfos(B,i.definition2item[B])),F.emit("initialUrl",Q.mpd.mediaList.video[0].baseURL),i.curBitrate=a.dashOpts.dynamic_video.dynamic_video_list[0].bitrate,i.lastDefiIdx=0),this._afterInitDefinitionList()),this._pluginInst.originStartInit.call(F,r.url),pt.time("start call cost",(new Date).getTime()-i.startTimestamp),F.dashState=vt,F.emit("dashStateChange",vt),i.startCheckCanplayTimer(),i.isDashCanUse=!0,i.mse=r,i.emitMenuResolutionChange(),"safari"===l.Sniffer.browser&&(l.Util.addClass(F.root,"canplay"),c=function(){l.Util.removeClass(F.root,"xgplayer-is-enter")},bU.once(F,"waiting",c)),R=function(){u._checkHasDestroy("onStartPlay")||(F.emit("dash_start_play"),u._info({msg:"dash_start_play"}),F.dashState=Tt,u._info({msg:"START_PLAY ready"}),F.emit("dashStateChange",Tt),F.emit("playInterfaceInfo",a.dashOpts||{}),i.isCurrentAutoDefi||pt.time("onStartPlay cost not abr",(new Date).getTime()-i.startTimestamp),i.startProgressTimer(),pt.time("onStartPlay cost",(new Date).getTime()-i.startTimestamp),i.setCurrentDefinition())},bU.once(Q,"start_play",R),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 n.apply(this,arguments)})},{key:"_initDefinitionList",value:function(e){var t=this;e=e.toString();var n=this._pluginInst,U=n.player,F=n.config,a=this.__dash__,i=a.dash,Q=F.dashOpts.dynamic_video.dynamic_video_list;a.definitions=[];for(var l=0;l<Q.length;l++){var r=Q[l];a.bandwidth2item[r.bitrate]=r,a.definition2item[r.definition]=r}i.mpd.mediaList.video.sort((function(e,t){return t.height-e.height})),i.mpd.mediaList.video.forEach((function(n,Q){var l=a.bandwidth2item[n.bandwidth];if(l){var r=l.definition.toString(),o=!(r!==e||a.isOpenAutoDefi&&a.isPlayAutoDefi);a.definitions.push(d(d({name:F.definitionText&&F.definitionText[r]||r,selected:o,fps:l.fps},l),{},{url:Array.isArray(n.url)?n.url:n.id,definition:String(l.definition)})),n.frameRate=n.frameRate||l.fps||25;var s=l.bitrate;a.updateAbrCacheData(Q,a.isPlayAutoDefi,l),r===e&&(pt.log("dashDefinition",r),U.emit("initialUrl",i.mpd.mediaList.video[Q].baseURL),a.curBitrate=s,a.lastDefiIdx=Q),o&&t._pluginInst.setCurrentDefitionInfos(l.definition,l)}}))}},{key:"_afterInitDefinitionList",value:function(){var e=this._pluginInst,t=e.player,n=e.config,U=this.__dash__;t.emit("resourceReady",U.definitions,n.dashOpts.dynamic_video.dynamic_video_list),U.abrInstance.updateBitrate(U.curBitrate);var F=U.definitions.filter((function(e){return e.selected}))[0];U.setPlayerCurDefinition(F)}},{key:"_processFeedData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this._pluginInst,n=t.player,U=t.config,F=n.config;if(U.playInfoType===ii&&F.definition){var a=U.dashOpts.Data,i=F.definition.list,Q=e?i:(null==a?void 0:a.vid)===U.vid&&(null==a?void 0:a.playInfoList)||i;U.defaultDefinition=F.defaultDefinition||F.definition.defaultDefinition,F.definition.list=Q.filter((function(e){return e.vtype.toUpperCase()===ln.DASH&&"video"===e.mediaType})),U.dashOpts.Data={vid:F.vid,duration:F.duration,playInfoList:JSON.parse(JSON.stringify(Q))};var l=Q.filter((function(e){return e.vtype.toUpperCase()===ln.MP4}));if(l.length>0||F.downgradeUrl){var r=l.length>0?l:[{url:F.downgradeUrl,definition:"1",vtype:"MP4",size:0,codecType:"h264"}];U.mp4Opts={mp4List:r}}else U.mp4Opts=null}}},{key:"_processData",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this._pluginInst,n=t.player,U=t.config,F=n.config;(this._processFeedData(e),!U.dashOpts.Data||U.playInfoType!==ai&&U.playInfoType!==ii||this._playInfoInit(),U.dashOpts.dynamic_video)&&(U.dashOpts.dynamic_video.dynamic_video_list=U.dashOpts.dynamic_video.dynamic_video_list||[],U.dashOpts.dynamic_video.dynamic_audio_list=U.dashOpts.dynamic_video.dynamic_audio_list||[],[U.dashOpts.dynamic_video.dynamic_video_list,U.dashOpts.dynamic_video.dynamic_audio_list].forEach((function(e){e.forEach((function(e){if(e.bitrate=parseInt(e.real_bitrate||e.bitrate),F&&"function"==typeof F.preProcessUrl){var t=F.preProcessUrlOptions||{};e.main_url=F.preProcessUrl(e.main_url,t).url,e.backup_url_1=F.preProcessUrl(e.backup_url_1,t).url;var n=Object.assign({},t,{isFallback:!0});e.fallback_url=F.preProcessUrl(e.fallback_url,n).url}}))})))}},{key:"_initialize",value:function(){var e=this._pluginInst,t=e.player,n=e.config;if(pt.log(null==n?void 0:n.vid,"执行dashKernal"),this._processData(),!n.dashOpts)return console.error(null==n?void 0:n.vid,"dashOpts in plugin config miss"),void this._info({msg:"dashOpts is null",startMs:Date.now(),name:"_initialize",add:!0});var U=Gt,F=new zi({pluginInst:this._pluginInst});this.__dash__=F;var a=Ge.isSupported('video/mp4; codecs="avc1.64001E, mp4a.40.5"');a?F.changeMainBackUrl(U.INIT,this._hasUsedBackUrl):(this._info({msg:"isCodecSupported ".concat(a),add:!0}),null==t||t.errorHandler(new LF(Ze,me.MEDIA_ERR_CODEC_NOT_SUPPORTED,{message:"init"})))}},{key:"_bindEvents",value:function(){var e=this._pluginInst.player;e.on(l.Events.LOAD_START,this._onLoadStart),e.on(l.Events.LOADED_DATA,this._onLoadData)}},{key:"beforeLoadStartCostTime",get:function(){return this._beforeLoadStartCostTime}},{key:"_switchURL",value:(t=c(o().mark((function e(t){var n,U,F=arguments;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=!(F.length>1&&void 0!==F[1])||F[1],U=this.__dash__,e.next=4,U.switchURL(t,n);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"onPreChangeDefinition",value:function(e){var t,n,U,F,a,i;if(!Array.isArray(e))return[];var Q,l,r,d,o=this._pluginInst,s=o.player,B=o.config,c=s.config,R=null===(t=this.__dash__)||void 0===t||null===(n=t.dash)||void 0===n?void 0:n.mpd;R&&(Q=null===(l=this.__dash__)||void 0===l||null===(r=l.dash)||void 0===r||null===(d=r.mpd)||void 0===d?void 0:d.getCurrDefition());if(c.definition.list=e,this._processData(!0),null===(U=this.__dash__)||void 0===U||null===(F=U.dash)||void 0===F||null===(a=F.mpd)||void 0===a||a.init(!1,Q),R){var u=R.mediaList.video,V=u.selectedIdx;this.__dash__.curVideoInitSegmentIdx=V,this.__dash__.curVideoFileId=u[V].fileId}var h=B.defaultDefinition.toString();return this._initDefinitionList((null===(i=s.curDefinition)||void 0===i?void 0:i.definition)||h),this._afterInitDefinitionList(),this.__dash__.definitions}},{key:"_playInfoInit",value:function(){var e=this._pluginInst,t=e.config,n=e.playerConfig,U=t.dashOpts.Data;t.vid=U.VideoID||U.Vid||U.vid,n.vid=t.vid,t.playInfoType===ai?Qi(t):t.playInfoType===ii&&li(t)}},{key:"_getCode",value:function(e,t){return be[e][t]}},{key:"_emitDegradeEvent",value:function(e,t){if(this._pluginInst){var n=this._pluginInst.player,U=e.errorCode,F=e.errorMessage,a=d(d({},e),{},{vtype:t,errc:U,err_msg:F});n.pause(),n.emit("degrade",a),pt.log("degrade event emit",JSON.stringify(a))}}},{key:"_handleDegradeToMp4",value:function(e){var t=this;if(!this._checkHasDestroy("_handleDegradeToMp4")){var n=this._pluginInst,U=n.player,F=n.config;if(F.mp4Opts&&!this._hasDegradeMp4){pt.log("_handleDegradeToMp4"),this._hasDegradeMp4=!0,U.dashState="error_catching";var a=F.startTime||U.currentTime||0;setTimeout((function(){t._checkHasDestroy("degrademp4")||(t._pluginInst._setStartTime("destroy",a,!0,!1),U.emit("playertypechange"),U.dashState="error_catch_finished",U.emit("playCatch","dash_mp4_2",e),pt.log("playCatch dash_mp4_2",JSON.stringify(e)),t._emitDegradeEvent(e,"dash_mp4_2"),F.defaultFormat="mp4",t._pluginInst.changeKernal(!0,!1,"dash_mp4_2"),U.once("canplay",(function(){if(U.config.autoplay){var e=U.video.play();e&&e.catch((function(){}))}})))}),0)}else F.mp4Opts||(U.dashState="error_no_mp4opts",U.emit("dashDestroy"),U.emit("error",e),pt.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.off(l.Events.LOADED_DATA,this._onLoadStart),e.off(l.Events.LOADED_DATA,this._onLoadData),e.errorHandler=this._originErrorHandler,e._startInit=this._pluginInst._originStartInit,e.switchURL=this._originSwitchURL,this._pluginInst=null,this._hasStart=!1,pt.log("dashKernal destroy")}},{key:"_checkHasDestroy",value:function(e){return!this._pluginInst&&(this._info({msg:"dashKernal destroy ".concat(e),add:!0}),pt.log("checkHasDestroy",e),!0)}},{key:"executeReady",value:function(){if(!this._checkHasDestroy("executeReady")){var e=this._pluginInst.player;bU.once(e,"dash_start_play",(function(){e.dashState=gt,e.emit("nextEnded")}))}}},{key:"getStat",value:function(){if(!this._checkHasDestroy("getStat")){var e={};e.dvps=!!this._pluginInst.pvStartup,e.daps=!!this._pluginInst.paStartup,e.preLoadData=this.getPreloadStat();var t={},n={};if(this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mse){var U=this.__dash__.dash.mse;if(U._sourceBuffer)for(var F=Object.keys(U._sourceBuffer),a=0;a<F.length;a++){var i=F[a],Q=(U._queue[i]||[]).map((function(e){return{opName:e.opName,context:e.context}}));n[i]={updating:U._sourceBuffer[i].updating,queue:Q.slice(0,Math.max(5,Q.length)),queueEmpty:!U._queue[i]}}}e.mseStat=n,this.__dash__&&this.__dash__.dash&&this.__dash__.dash.mpd&&(t.video=this.__dash__.dash.mpd._getBuffered("video"),t.audio=this.__dash__.dash.mpd._getBuffered("audio")),e.bfs=t;var l=this._pluginInst.player;e.currentTime=l.currentTime;var r=l.video.error;return e.dVideoError=r?{code:r.code,message:r.message}:null,e.errors=this._errors,e.performance=this.states,e.stage=this._getKeyCost(),e}}},{key:"_getKeyCost",value:function(){var e=this,t=function(t,n){var U=e.states[n],F=e.states[t],a=(null==U?void 0:U.t2)-(null==F?void 0:F.t2);return Number.isFinite(a)?a:-1};return{mseopen_to_msedone:t("initmse_sbopen","initmse_sbopendone"),videometastart_to_metadone:t("initvideo_metastart","initvideo_metadone"),audiometastart_to_metadone:t("initaudio_metastart","initaudio_metadone"),videosegstart_to_segdone:t("initvideo_segstart","initvideo_segdone"),audiosegstart_to_segdone:t("initaudio_segstart","initaudio_segdone"),mseopen_to_loadeddata:t("initmse_sbopen","loaddata"),videoappend_to_loadeddata:t("initvideoSegmentAppend","loaddata"),audioappend_to_loadeddata:t("initaudioSegmentAppend","loaddata")}}},{key:"getPreloadStat",value:function(){for(var e={length:0,byteLength:0,load:[],duration:0,audioDuration:0},t=Object.keys(this.preloadMap),n=0;n<t.length;n++){var U=this.preloadMap[t[n]]||{};if(U&&U.fromCache&&U.byteLength){if(e.length+=U.byteLength,e.byteLength+=U.byteLength,e.load.push(U),!U.isInitSegment&&!U.duration)try{var F,a=this.__dash__.dash.mpd.mediaList[U.mediaType],i=null===(F=a[a.selectedIdx].mediaSegments)||void 0===F?void 0:F[0].endRaw;U.duration=i}catch(l){U.duration=5}var Q=U.duration;"video"===U.mediaType?e.duration+=Q||0:e.audioDuration+=Q||0}}return e.loadLength=e.load.length,e}},{key:"pcdnReq",get:function(){var e,t=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==t?void 0:t.pcdnReqCnt()}},{key:"pcdnVVStat",value:function(){var e,t=null===(e=this.__dash__)||void 0===e?void 0:e.dash;return null==t?void 0:t.pcdnVVStat()}},{key:"encryptedType",get:function(){return this.__dash__.encryptedType}},{key:"replay",value:function(){var e=this.__dash__;e&&e.abrInstance&&e.abrInstance.isCurrentInAbr&&e.abrInstance.start()}},{key:"bandwidth",get:function(){var e,t=this.__dash__;return t&&t.dash&&t.dash.loadInfo?null===(e=t.dash)||void 0===e?void 0:e.loadInfo:{cdn:{size:0},pcdn:{size:0}}}}]),e}(),qi=function(){function e(t){var n=this;R(this,e),h(this,"start",(function(){var e=n._pluginInst.player;n._pluginInst.originStartInit.call(e,n._url),n._pluginInst.info({msg:"dash mp4 kernal start"})})),h(this,"_errorHandler",(function(e){var t=n._pluginInst.player;if(t.video.error){e=new l.Errors(t,{errorType:Ze,errorCode:5100+t.video.error.code})}else{var U=e;if("string"!=typeof e)try{U=JSON.stringify(e)}catch(a){U="other"}e=new l.Errors(t,{errorType:pe,errorCode:0,errorMessage:U})}n._stat.error.push({err:e}),pt.log("mp4 error",e);var F=(new Date).getTime()/1e3>=n.urlExpireTimestamp&&n.urlExpireTimestamp>0;n._pluginInst.info({msg:"dash mp4 kernal error happend, url expired ".concat(F),err:e}),!F||!t.video.error||4!==t.video.error.code&&2!==t.video.error.code?t.emit("error",e):n._urlExpiredWhenInit||n._mp4CheckExpire()})),h(this,"_updateMp4Auto",(function(){setTimeout((function(){n._updateMp4AutoDesc()}),0)})),this._url=null,this._pluginInst=t,this._urlExpiredWhenInit=!1,this._initialize(),this._proxyPlayer(),this._stat={type:"mp4",error:[]}}return V(e,[{key:"executeReady",value:function(){var e=this._pluginInst.player;e.dashState=gt,e.emit("nextEnded")}},{key:"_initialize",value:function(){var e=this,t=this._pluginInst.config;this._handleMp4Definitions(t.defaultDefinition),this._getMp4Opts();var n=this._pluginInst.player;n.dash=!1,setTimeout((function(){n.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:"onPreChangeDefinition",value:function(e){var t=this._pluginInst,n=t.config,U=t.player;return n.mp4Opts||(n.mp4Opts={}),n.mp4Opts.mp4List=e,this._handleMp4Definitions(this._currDefinition),U.config.definition&&(U.config.definition.defaultDefinition=this._currDefinition,U.plugins.definition&&(U.plugins.definition.config.defaultDefinition=this._currDefinition)),U.emit("resourceReady",this._mp4Definitions),this._mp4Definitions}},{key:"_handleMp4Definitions",value:function(e){var t=this;e=e.toString();var n=this._pluginInst,U=n.player,F=n.config,a=n.playerConfig;if(F.mp4Opts){var i;this.mp4AutoItem=null;var Q=[].concat(F.mp4Opts.mp4List||[]);Q.every((function(e){return!!e.bitrate}))&&Q.sort((function(e,t){return t.bitrate-e.bitrate}));var r=F.mp4Opts.isOpenAutoDefi,d=F.mp4Opts.isPlayAutoDefi,o=!1;if(r){var s={};Q.forEach((function(e){s[(e.definition||"").toLowerCase()]=e}));for(var B=["720p","480p","360p"],c=null,R=0;R<B.length;R++){var u=s[B[R]];if(u){c=u;break}}if(c){this.mp4AutoItem=c;var V=F.mp4Opts.autoDefiText||"自动",h="".concat(V,"(").concat(c.definition,")");Q.push({definition:V,url:vi,name:h,url_expire:c.url_expire||0,selected:!!d}),o=d}}if(Q.length>0){Q.forEach((function(e){if(e.definition=e.definition.toString(),a&&"function"==typeof a.preProcessUrl){var t=a.preProcessUrlOptions||{};e.url=a.preProcessUrl(e.url,t).url}}));var Z=Q[0].url,S=Q[0].url;Q.forEach((function(n){n.definition===e&&(Z=n.url,S=n.url,t._currDefinition=e)})),r&&d&&this.mp4AutoItem&&(Z=this.mp4AutoItem.url,S=vi),this._mp4Url=S,this._url=Z,this._pluginInst.loadURL=Z}if(!o){for(var p=0;p<Q.length;p++){var J=Q[p];if(e===J.definition){J.selected=!0,o=!0,this._currDefinition=e;break}}if(!o){if(!(Q.length>0))return void setTimeout((function(){var e=be[Ze][me.MEDIA_ERR_URL_EMPTY],t=new l.Errors(U,{errorType:Ze,errorCode:e});U.emit(et,t),console&&console.error("empty mp4 definitions")}));Q[0].selected=!0,this._currDefinition=String(Q[0].definition)}}this._mp4Definitions=Q.map((function(n){e===n.definition&&(t._url=n.url,d||(n.selected=!0));var U=JSON.parse(JSON.stringify(n));return U.name=F.definitionText&&F.definitionText[n.definition]||n.definition,U.url_expire=n.url_expire||0,U})),this._backup_url=this._mp4Definitions[0].backup_url,this._RawMp4Definitions=Q;var m=!1;this._pluginInst.setCodeInfo(null===(i=Q[0])||void 0===i?void 0:i.codec_type);for(var b=0;b<Q.length;b++){var W=Q[b];W.codec_type&&W.vtype&&("h264"===W.codec_type&&"mp4"===W.vtype||(m=!0))}m&&U.emit("log",{type:"oneevent",end_type:"mp4_source_exception"})}}},{key:"_getMp4Opts",value:function(){var e=this._pluginInst.player,t={url:this._mp4Url,realUrl:this._url,mp4Definitions:[].concat(this._mp4Definitions)};return this._getPlayInfoTimestamp=(new Date).getTime()/1e3,t.mp4Definitions&&t.mp4Definitions.length>0&&t.mp4Definitions[0]&&(this.urlExpireTimestamp=t.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)),t}},{key:"_proxyPlayer",value:function(){var e=this._pluginInst,t=e.player,n=e.config;this._originSwitchURL=t.switchURL,this._originErrorHandler=t.errorHandler,n.defaultFormat="mp4",t._startInit=this.start,t.errorHandler=this._errorHandler,t.switchURL=this._switchURLMp4.bind(this),t.config.url=this._url}},{key:"_switchURLMp4",value:function(e){var t=this,n=this._pluginInst.player,U=(Array.isArray(e)?e:e.split("/")[e.split("/").length-1])===vi,F=U?this.mp4AutoItem.url:e;this._pluginInst.loadURL=F,n.curTime=n.currentTime;var a=n.paused;this._url=U?vi:e,n.ended||(n.src=F,bU.once(n,"canplay",(function(){if(n.currentTime=n.curTime,!a){var e=n.play();void 0!==e&&e&&e.catch((function(){}))}a&&n.pause()}))),U?this._setCurrentDefitionInfos("自动 ".concat(this.mp4AutoItem.definition),this.mp4AutoItem):bU.once(n,"definitionChange",(function(e){for(var n=e.to,U=null,F=t._pluginInst.cnofig,a=0;a<F.mp4Opts.mp4List.length;a++){var i=F.mp4Opts.mp4List[a];if(i.definition===n){U=i,t._currDefinition=String(U.definition);break}}t._setCurrentDefitionInfos("".concat(n),U)}))}},{key:"_mp4CheckExpire",value:function(){var e;null===(e=this._pluginInst)||void 0===e||e.handleUrlExpire(this,!0)}},{key:"_updateMp4AutoDesc",value:function(){var e=this._pluginInst.player,t=this._url!==vi||void 0;this.mp4AutoItem&&(e.emit("MP4_AUTO_DESC_CHANGE",JSON.parse(JSON.stringify(this.mp4AutoItem)),!!t||void 0),t||this._setCurrentDefitionInfos(this.mp4AutoItem.definition,this.mp4AutoItem))}},{key:"_setCurrentDefitionInfos",value:function(e,t){this._pluginInst.setCurrentDefitionInfos(e,t)}},{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 t=e.video.error;return this._stat.videoError=t?{code:t.code,message:t.message}:null,this._stat}}]),e}(),$i={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,tickInSeconds:void 0,disableCanplayCheck:!0,disableDashNoCanplayCheck:!0,disableBufferBreakCheck:!0,waitingTimeOut:2e4,definitionText:null,useUnionInfoDRM:!1,keyTokenExpiredDuration:null,keyToken:null,playDomain:null,usePlaySpade:!1,preloadBufferThreshold:.5,vtype:ln.DASH,useProgressiveAppend:!1,useProgressiveAppendAll:!1,loader:Ji,logMaxSize:204800,timeout:5e3,reqOptions:{},timerInWorker:!1,resumePlayWaterLevel:0,waitingInBufferTimeOut:5e3,waitJampBufferMaxCnt:3,removeBufferLen:60,removeBufferWhenSeekInBuffer:!0,replayReset:!0,resetStateUpdrade:!1,netNoRetryCode:[403,404],progressiveTimeout:1500,usePCDNProgressiveCheck:!1,useSeparationMode:!0,loadFirstGopData:!1},eQ=l.Events.STATS_EVENTS,tQ="mp4",nQ="dash",UQ="void";function FQ(e){return{playerVersion:{get:function(){return"3.5.27-alpha.30"},configurable:!0},downloadSpeed:{get:function(){return Wi.currentSpeed/8},configurable:!0},historyAvspeed:{get:function(){return Wi.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 t=e.stat;return t&&t.performance},configurable:!0},stat:{get:function(){return e.stat},configurable:!0},preLoadData:{get:function(){var t=e.stat;return t&&t.preLoadData?t.preLoadData:{byteLength:0,duration:0}},configurable:!0},ext:{get:function(){var t=Math.max(0,Wi.historySpeed.length-10),n=Wi.historySpeed.slice(t,t+10);return d(d({},e.stat),{},{speed:n.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=St();return e.getLogCache&&e.getLogCache()},configurable:!0},pcdnReq:{get:function(){var t;return e._kernalType===nQ?null===(t=e._kernal)||void 0===t?void 0:t.pcdnReq:null},configurable:!0},currentDefitionFromPlayer:{get:function(){return e.currentDefitionFromPlayer},configurable:!0},encryptedInfo:{get:function(){var t;return{encryptedType:(null===(t=e._kernal)||void 0===t?void 0:t.encryptedType)||0}},configurable:!0},pcdnVVStat:{get:function(){var t;return e._kernalType===nQ?null===(t=e._kernal)||void 0===t?void 0:t.pcdnVVStat():null},configurable:!0},beforeLoadStartCostTime:{get:function(){var t;return e._kernalType===nQ&&e._kernal?null===(t=e._kernal)||void 0===t?void 0:t.beforeLoadStartCostTime:0},configurable:!0}}}var aQ=null,iQ=function(e){Z(n,e);var t=b(n);function n(){var e;R(this,n);for(var U=arguments.length,F=new Array(U),a=0;a<U;a++)F[a]=arguments[a];return h(m(e=t.call.apply(t,[this].concat(F))),"_hasUsedBackUrl",!1),h(m(e),"_onSeeking",(function(){var t=m(e).player;e.waitLevelStartTime=t.currentTime})),h(m(e),"_onPlaying",(function(){var t,n;pt.log("onPlaying,",JSON.stringify({curtime:e.player.currentTime,buffer:JSON.stringify(null===(t=e.player)||void 0===t||null===(n=t.buffered2)||void 0===n?void 0:n.bufferedList)})),e._waitAdjustTimeCnt>0&&e._waitInBufferTimer&&(e._waitAdjustTimeCnt-=1,pt.log("[waitInBuffer resume play], waitAdjustTimeCnt,",e._waitAdjustTimeCnt)),clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var U=m(e).player,F=e.config.resumePlayWaterLevel;if(e._kernalType!==tQ){if(!(U.duration>0&&U.duration-U.currentTime<=F)&&(e.waitLevelStartTime<0&&(e.waitLevelStartTime=U.currentTime),e.playFlag||(e.playFlag=!0),F>0&&U.currentTime-e.waitLevelStartTime>=2)){var a=U.getBufferedRange(U.buffered2);if(a[1]>0&&a[1]-U.currentTime<F){var i;if(!U.paused)e.emit(Kt,{type:_t}),U.pause(null===(i=Ht)||void 0===i?void 0:i.BUFFER_CONTROLS),U.isBufferControlPaused=!0,pt.log("[!!!!!buffer not rich, pause],currentTime, ",U.currentTime,", bufferEnd,",a[1]);clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=setTimeout(e._onPlaying,F/2*1e3)}else U.isBufferControlPaused&&U.paused&&(pt.log("[!!!!!buffer rich, play],, currentTime, ",U.currentTime,", bufferEnd,",a[1]),clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,U.isBufferControlPaused=!1,e.emit(Kt,{type:jt}),U.play())}}else e.checkResumePlayTimer>0&&(clearTimeout(e.checkResumePlayTimer),e.checkResumePlayTimer=null,U.isBufferControlPaused&&(U.isBufferControlPaused=!1),U.paused&&U.play())})),h(m(e),"_onWaiting",(function(){var t,n=m(e),U=n.player,F=n.config;clearTimeout(e._waitInBufferTimer),e._waitInBufferTimer=null;var a=U.currentTime;pt.log(",[onWaiting],curTime, ",a,",buffer,",JSON.stringify(null==U||null===(t=U.buffered2)||void 0===t?void 0:t.bufferedList),",dur,",U.duration);var i=U.bufferedPoint;i.end>0&&i.end-a>=2&&e._waitAdjustTimeCnt<F.waitJampBufferMaxCnt&&(e._waitInBufferTimer=setTimeout((function(){e._waitAdjustTimeCnt++,U.currentTime=U.currentTime+.5}),F.waitingInBufferTimeOut))})),e}return V(n,[{key:"initDashPlayer",value:function(e){this._checkVideoSwitch(),this._hasTriggerBufferThreshold=!1,this._setArgsFromConfig(),this.lastBuffer="0,0",this._menuCodeType=null,this._setConfigDashType(),bU.promisePolyfill(),(window.location.href.indexOf("playerInstance=true")>-1||X.getItem("playerInstance"))&&(void 0===window.dashPlayerInstanceList&&(window.dashPlayerInstanceList=[]),window.dashPlayerInstanceList.push(e)),this._startBufferCheck(),this.changeKernal(!1),window.addEventListener("beforeunload",this.cacheSpeed)}},{key:"_checkVideoSwitch",value:function(){var e=this.player,t=this.playerConfig.mediaType;if(this.softVideo="xg-video"===t,!(e.video instanceof HTMLVideoElement||this.softVideo)){var n=l.Util.createDom("video","",this.getVideoConfig(this.playerConfig));this.removeVideo=e.video,n.muted=e.video.muted,n.volume=e.video.volume,e.video=n,e.attachVideoEvents(e.video);var U=this.removeVideo.parentNode;U&&U.removeChild(this.removeVideo),this.removeVideo=null}}},{key:"getVideoConfig",value:function(e){var t=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&&(t.loop="loop"),t}},{key:"bitRateAdapter",get:function(){var e=this.player,t=this.config;return e&&e.plugins&&t.needAutoBitrate?e.plugins.bitrateselector:null}},{key:"next",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"NEXT",n=arguments.length>2?arguments[2]:void 0,U=arguments.length>3?arguments[3]:void 0,F=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;pt.log("next currentTime: ".concat(e,", nextType: ").concat(t,", autoplay:").concat(U));var a=this.player,i=this.config;this._pausedWhenExpiredRestart=!1,"MEDIA_EXPIRED"===t&&a.paused&&(this._pausedWhenExpiredRestart=!0),a.dashState="next_start";var Q=!1;if(a.isSrcVoid||!i.dashOpts&&!i.mp4Opts||a.ended||"MEDIA_EXPIRED"===t||"REPLAY"===t||a.duration&&a.currentTime<a.duration-1&&(a.emit("logger_next",t),Q=!0),this._hasTriggerBufferThreshold=!1,a.emit("next",t),a.emit("playertypechange"),n)for(var l in n)i[l]=n[l];a.config.vid&&(i.vid=a.config.vid),i.duration>0&&(i.duration=0),a.config.duration&&(i.duration=a.config.duration),this._setArgsFromConfig(),Q&&this._setConfigDashType(),"NEXT"===t&&a.resetState&&a.resetState(),a.config.startTime=e,a.config.startTimeCache=e,n&&(a.config.DASHPlugin=n);var r=a.config.autoplay;this._pausedWhenExpiredRestart&&r&&(a.config.autoplay=!1,a.once("canplay",(function(){setTimeout((function(){a.config.autoplay=r,a.pause()}))}))),this._syncParameters(),this.changeKernal(!0,!0,F),!U&&!a.config.autoplay||this._pausedWhenExpiredRestart||a.once("canplay",(function(){if(a.video&&(a.config.autoplay||U)){var e=a.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,t=this.player;this.config.replayReset?this.next(e,"REPLAY",void 0,!0):(t.currentTime=0,this._kernal&&this._kernal.replay&&this._kernal.replay())}},{key:"startPlayHandler",value:function(e,t,n){var U=this.config;if(U.dashOpts||U.mp4Opts){var F="NEXT"===t||"REPLAY"===t;this._setStartTime(n,e,F,!0)}}},{key:"beforePlayerInit",value:function(){if(!this._hasExecuteBeforeInit){var e=this.player;l.BasePlugin.defineGetterOrSetter(e,FQ(this)),this._hasExecuteBeforeInit=!0,e.isReady=!0,this._kernalType===nQ&&(e.vtype="DASH")}}},{key:"afterCreate",value:function(){var e=this;this.steps=[];var t=this.player,n=this.config;this._syncParameters(),t.config.nullUrlStart=!0,St().logMaxSize=n.logMaxSize,this._proxyPlayer(),this.initDashPlayer(t),this.on("xglog",(function(n){"firstFrame"===n.eventType&&pt.log("[xgplayer-encrypt]>>>>firstFrame ",e.playerConfig.vid,n.fvt,"stat",t.stat)})),this._bindEvents()}},{key:"info",value:function(e){var t=this.player;eQ&&t.emit(eQ.STATS_INFO,e),e.add&&this.steps.push(e)}},{key:"resetStat",value:function(){var e=this.player;eQ&&e.emit(eQ.STATS_RESET)}},{key:"_syncParameters",value:function(){var e,t=this.config,n=this.playerConfig,U=t.vid||n.vid;t.vid=n.vid=U,n.autoBitrateOpts=t.autoBitrateOpts,null===(e=this.player.preloader)||void 0===e||e.addPlayingId(n.vid,this.player.playerId)}},{key:"_proxyPlayer",value:function(){var e=this,t=this.player,n=this.config;this._originStartInit=t._startInit,t.getPreloadInfos=this.getPreloadInfos.bind(this),t.useHooks("replay",(function(t){e._replay()})),"function"==typeof this.player.playNext&&(aQ=this.player.playNext),this.player.playNext=function(){e.playNext.apply(e,arguments)},"function"==typeof this.player.resetState&&(this._originResetState=this.player.resetState,this.player.resetState=function(){e._originResetState.call(e.player),pt.log("resetState",n.resetStateUpdrade),n.resetStateUpdrade&&"dash_mp4_2"===t.vtype&&(e.config.defaultFormat="dash",t.hasStart=!0,e.changeKernal())})}},{key:"playNext",value:function(){for(var e=this.player,t=arguments.length,n=new Array(t),U=0;U<t;U++)n[U]=arguments[U];var F=n[0],a=n[1],i=n[2],Q=n[3];e.setConfig(F),this.next(a,i,F.DASHPlugin,Q)}},{key:"_setKernalType",value:function(){var e=this.config;e.dashOpts||e.mp4Opts?e.dashOpts&&e.mp4Opts?this._kernalType=e.defaultFormat.toLowerCase():e.dashOpts?this._kernalType=nQ:this._kernalType=tQ:this._kernalType=UQ}},{key:"changeKernal",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._setKernalType();var U=this.player;this.destroyKernal();var F=this._kernalType;F===UQ?(U.isSrcVoid=!0,U.emit("playOptsVoid"),t&&U.emit("nextEnded")):(U.isSrcVoid=!1,this._setStartTime("destroy",U.config.startTime,!0,!1),F===tQ?(this._kernal=new qi(this),U.vtype="dash_mp4"):F===nQ&&(this._kernal=new Ai(this),U.vtype="DASH"),n&&(U.vtype=n)),e&&this._kernal&&(this._kernal.start(),t&&this._kernal.executeReady())}},{key:"destroyKernal",value:function(){var e;this._kernal&&(pt.log(null===(e=this.config)||void 0===e?void 0:e.vid,"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,this.playFlag=!1,this.waitLevelStartTime=-1,this._waitAdjustTimeCnt=0}},{key:"setCurrentDefitionInfos",value:function(e,t){var n,U=t?t.fps:void 0;this._currentDefinition={definition:e,fps:U,item:t},null!==(n=this.player.abrInstance)&&void 0!==n&&n.isCurrentInAbr||(this.player.curDefinition=d({},t))}},{key:"handleUrlExpire",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],U=this.config,F=this.player,a=F.paused,i=(new Date).getTime()/1e3>=e.urlExpireTimestamp&&e.urlExpireTimestamp>0;if(i&&(n||!a)&&U.getServerTime)F.serverTimeDiffPromise=F.serverTimeDiffPromise||U.getServerTime().catch((function(){return 0})),F.serverTimeDiffPromise.then((function(n){if(n&&(F.serverTimeDiff=(new Date).getTime()/1e3-n),(new Date).getTime()/1e3>=e.urlExpireTimestamp+F.serverTimeDiff){e.urlExpireTimestamp=5e9;var U=new LF(ce);t.emitExpireEvent(U)}}));else if(i){var Q=new LF(ce);this.emitExpireEvent(Q)}}},{key:"emitExpireEvent",value:function(e){var t=this.player,n=(new Date).getTime()/1e3;this.emitExpireTimestamp?n-this.emitExpireTimestamp>300&&(this.emitExpireTimestamp=n,t.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"})):(this.emitExpireTimestamp=n,t.emit("MEDIA_EXPIRED",e),this.info({msg:"MEDIA_EXPIRED"}))}},{key:"_getCurDashType",value:function(){var e=X.getItem(Mt);return e===It.BACK?e:It.MAIN}},{key:"_setCurDashType",value:function(){this._initDashType=this._getCurDashType()}},{key:"_setConfigDashType",value:function(){var e;this._setCurDashType();var t=null===(e=this.playerConfig)||void 0===e?void 0:e.vodLogOpts;t&&(t.currentDashType=this._initDashType)}},{key:"setCodeInfo",value:function(e){var t,n=null===(t=this.playerConfig)||void 0===t?void 0:t.vodLogOpts;"h265"===e&&(e="hevc");var U=KF[e],F=KF[GF],a=F.logCodeType,i=F.codecs;U&&(a=U.logCodeType,i=U.codecs),n&&(n.codec_type=a),this.menuCodeType=i,this.config&&(this.config.codecType=a)}},{key:"cacheSpeed",value:function(){try{var e=Wi.historyAvspeed;e>0&&e!==1/0&&X.setItem(bt,e)}catch(t){}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(t){}}},{key:"destroy",value:function(){var e,t=this.player;clearInterval(this._bufferCheckTimer),this.cacheSpeed(),this.destroyKernal();var n=FQ(this);Object.keys(n).forEach((function(e){delete t[e]})),this.player.playNext=aQ,this.player.removeHooks("replay"),null===(e=this.player.preloader)||void 0===e||e.removePlayingId(this.player.playerId),this.off("seeking",this._onSeeking),this.off("waiting",this._onWaiting),this.off("playing",this._onPlaying),this._originResetState&&(this.player.resetState=this._originResetState)}},{key:"_bindEvents",value:function(){this.on("playing",this._onPlaying),this.on("seeking",this._onSeeking),this.on("waiting",this._onWaiting)}},{key:"getPreloadInfos",value:function(){return null}},{key:"getPreloadStat",value:function(){return{}}},{key:"_onBufferReachThreshold",value:function(){var e=this.player;if(e.video){for(var t=e.video.buffered,n=0,U=0,F=0;F<t.length&&(n=t.start(F),U=t.end(F),!(n<=e.video.currentTime&&e.video.currentTime<=U));F++);U-e.video.currentTime>=this._bufferThreshold&&!this._hasTriggerBufferThreshold&&(this._hasTriggerBufferThreshold=!0,e.emit("BUFFER_THRESHOLD",U-e.video.currentTime))}}},{key:"_startBufferCheck",value:function(){var e=this,t=this.player;this._bufferCheckTimer=setInterval((function(){if(t.video){var n=[];try{for(var U=0,F=t.video.buffered.length;U<F;U++)n.push([t.video.buffered.start(U),t.video.buffered.end(U)]);n.toString()!==e.lastBuffer&&(e.lastBuffer=n.toString(),e._onBufferReachThreshold())}catch(a){}}}),200)}},{key:"_setStartTime",value:function(e,t,n,U){var F=this,a=this.player,i=this.playerConfig,Q=this.config;if(t>0||U){var l=!1,r=function(){l||(l=!0,a.currentTime=t,i.startTime=0,n&&t>0&&a.emit("setStartTime"),"mp4"===Q.defaultFormat&&F.setCodeInfo(GF))};bU.once(a,"canplay",r,e),bU.once(a,"playing",r,e)}}},{key:"preloadManager",get:function(){return this.player.preloader}},{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 t=this.player;this._menuCodeType=e,null==t||t.emit("codecsupdate",e)}},{key:"stat",get:function(){var e=this.player;if(this._kernal&&!e.isSrcVoid){var t=this._kernal.getStat();return t.steps=this.steps.slice(0,Math.max(10,this.steps.length)),this.steps=[],e.video&&e.video.error&&(t.media={readyState:e.video.readyState,error:e.video.error.code,errorMsg:e.video.error.message}),t}return null}},{key:"loadURL",get:function(){return this._loadURL},set:function(e){this._loadURL=e;var t=bU.getHostFromUrl(e);this._cdnHost!==t&&(this._cdnHost=t,this.player&&this.player.emit("changeHost",t))}},{key:"onPreChangeDefinition",value:function(e,t){var n=this._kernal instanceof qi?t:e;return this._kernal.onPreChangeDefinition(n)}}],[{key:"pluginName",get:function(){return"DASHPlugin"}},{key:"defaultConfig",get:function(){return $i}},{key:"isEMESupported",value:function(){return Un()}},{key:"encryptUtils",get:function(){return an}}]),n}(cn);return iQ.updateUnionInfo=DF.XGSecretKey.updateUnionInfo,iQ.registerPreloader=cn.registerPreloader,iQ}));