Last active
March 30, 2023 19:20
-
-
Save XGraphKhipu/ca696c8e6f0e5896aef6 to your computer and use it in GitHub Desktop.
player_netflix
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(){function ec(h,p){return new Promise(function(P,b){function k(b){"https://www.netflix.com"==b.origin&&b.source==a.contentWindow&&"ready"==b.data&&(window.clearTimeout(U),window.removeEventListener("message",k),window.addEventListener("message",D),P(a))}var a=document.createElement("iframe");a.setAttribute("src",h);a.setAttribute("style","display:none");a.height=1;a.width=1;var U=window.setTimeout(function(){window.removeEventListener("message",k);document.body.removeChild(a);b(Error("timeout waiting for iframe to load"))}, | |
p);window.addEventListener("message",k);document.body.appendChild(a)})}function y(h,p){return O.then(function(O){return new Promise(function(b,k){var a={cmd:h,msgId:++P,arguments:p};ca.push({msgId:a.msgId,handler:function(a){a=a.data;a.success?b(a.result):k(Error("crypto-iframe error: "+a.result))}});O.contentWindow.postMessage(a,"https://www.netflix.com")})})}function D(h){for(var p,P=ca.length;P--&&ca[P].msgId!==h.data.msgId;);(p=0>P)||(p=h.data,p=!("https://www.netflix.com"===h.origin&&p&&p.hasOwnProperty("success")&& | |
p.hasOwnProperty("result")&&p.hasOwnProperty("msgId")));p||(p=ca[P].handler,ca.splice(P,1),p(h))}var h=navigator.userAgent.match(/Chrome\/([0-9]*)/);if(h&&37<=parseInt(h[1])){var P=0,ca=[],O=(new Promise(function(h){function p(){document.removeEventListener("DOMContentLoaded",p);h()}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",p):h()})).then(function(){return ec("https://www.netflix.com/nfcrypto-iframe-inner-2202400.html",2E3)}).catch(function(){return ec("https://www.netflix.com/nfcrypto-iframe-inner-2202400.html", | |
8E3)}),p={subtle:{}};window.crypto.getRandomValues&&(p.getRandomValues=function(h){return window.crypto.getRandomValues(h)});"encrypt decrypt sign verify digest generateKey deriveKey deriveBits importKey exportKey wrapKey unwrapKey".split(" ").map(function(h){p.subtle[h]=function(){return y(h,Array.prototype.slice.call(arguments))}});window.nfCrypto=p}})(); | |
(function(ec,y){var D;function h(a,b){if(!b||"utf-8"===b)return ca(a);throw Error("unsupported encoding");}function P(a,b){if(!b||"utf-8"===b)return O(a);throw Error("unsupported encoding");}function ca(a){for(var b=0,c,d=a.length,h="";b<d;){c=a[b++];if(c&128)if(192===(c&224))c=((c&31)<<6)+(a[b++]&63);else if(224===(c&240))c=((c&15)<<12)+((a[b++]&63)<<6)+(a[b++]&63);else throw Error("unsupported character");h+=String.fromCharCode(c)}return h}function O(a){var b=a.length,c;c=0;var d,h=0,f;for(d=b;d--;)f= | |
a.charCodeAt(d),128>f?c++:c=2048>f?c+2:c+3;c=new Uint8Array(c);for(d=0;d<b;d++)f=a.charCodeAt(d),128>f?c[h++]=f:(2048>f?c[h++]=192|f>>>6:(c[h++]=224|f>>>12,c[h++]=128|f>>>6&63),c[h++]=128|f&63);return c}function p(a,b){if(a===b)return!0;if(!a||!b||a.length!=b.length)return!1;for(var c=0;c<a.length;++c)if(a[c]!=b[c])return!1;return!0}function Z(a){if(!(a&&a.constructor==Uint8Array||Array.isArray(a)))throw new TypeError("Cannot compute the hash code of "+a);for(var b=1,c=0;c<a.length;++c){var d=a[c]; | |
if("number"!==typeof d)throw new TypeError("Cannot compute the hash code over non-numeric elements: "+d);b=31*b+d&4294967295}return b}function qa(a,b){if(a===b)return!0;if(!a||!b)return!1;b instanceof Array||(b=[b]);for(var c=0;c<b.length;++c){for(var d=b[c],h=!1,f=0;f<a.length;++f){var k=a[f];if(d.equals&&"function"===typeof d.equals&&d.equals(k)||d==k){h=!0;break}}if(!h)return!1}return!0}function oa(a,b){return qa(a,b)&&(a.length==b.length||qa(b,a))}function b(a,b,c){var d;c&&(d=c);if("object"!== | |
typeof a||"function"!==typeof a.result||"function"!==typeof a.error)throw new TypeError("callback must be an object with function properties 'result' and 'error'.");try{var h=b.call(d,a);h!==y&&a.result(h)}catch(f){try{a.error(f)}catch(k){}}}function k(a,c,d){if("object"!==typeof a||"function"!==typeof a.timeout)throw new TypeError("callback must be an object with function properties 'result', 'timeout', and 'error'.");b(a,c,d)}function a(a,b,c){1E5>a&&(a=1E5+a);Object.defineProperties(this,{internalCode:{value:a, | |
writable:!1,configurable:!1},responseCode:{value:b,writable:!1,configurable:!1},message:{value:c,writable:!1,configurable:!1}})}function U(a){switch(a){case Pa.PSK:case Pa.MGK:return!0;default:return!1}}function Ua(a){switch(a){case Pa.PSK:case Pa.MGK:case Pa.X509:case Pa.RSA:case Pa.NPTICKET:case Pa.ECC:return!0;default:return!1}}function f(a){return a.toJSON()}function c(b,c){Nc?c.result(Nc):Promise.resolve().then(function(){return Ea.getKeyByName(b)}).catch(function(){return Ea.generateKey({name:b}, | |
!1,["wrapKey","unwrapKey"])}).then(function(a){Nc=a;c.result(Nc)}).catch(function(b){c.error(new A(a.INTERNAL_EXCEPTION,"Unable to get system key"))})}function n(a,b){var c=b.masterToken,d=b.userIdToken,h=b.serviceTokens;return{NccpMethod:a.nccpMethod,UserId:a.userId,UT:d&&d.serialNumber,MT:c&&c.serialNumber+":"+c.sequenceNumber,STCount:h&&h.length}}function Bb(a){return a.uniqueKey()}function oc(c,f,k,n){function p(a,b){a.errorCode===d.ENTITY_REAUTH||a.errorCode===d.ENTITYDATA_REAUTH?(n.clearCryptoContexts(), | |
Q()):a.errorCode!==d.USER_REAUTH&&a.errorCode!==d.USERDATA_REAUTH||C(b)}function C(a){if(a=n.getUserIdToken(a))n.removeUserIdToken(a),Q()}function L(a,c,u){var w=[];(function l(){a.read(-1,c,{result:function(a){b(u,function(){if(a)w.push(a),l();else switch(w.length){case 0:return new Uint8Array(0);case 1:return w[0];default:var t,q,J,b=w.length,u=0;for(q=t=0;q<b;q++)t+=w[q].length;t=new Uint8Array(t);for(q=0;q<b;q++)J=w[q],t.set(J,u),u+=J.length;return t}})},timeout:function(){u.timeout()},error:function(a){u.error(a)}})})()} | |
function Q(){n.getStoreState({result:function(a){for(var b=tb.slice(),u=0;u<b.length;u++)b[u]({storeState:a})},timeout:function(){c.error("Timeout getting store state",""+e)},error:function(a){c.error("Error getting store state",""+a)}})}var tb=[];this.addEventHandler=function(a,b){switch(a){case "shouldpersist":tb.push(b)}};this.send=function(d,Ya){var u=d.timeout,w=new Ge(c,k,d,n.getKeyRequestData()),m=d.httpLocation,l=d.serviceTokens;c.trace("Sending MSL request",{NccpMethod:d.nccpMethod});f.request(k, | |
w,new Fd(m),u,{result:function(g){b(Ya,function(){var m=g&&g.getMessageHeader(),q=m&&m.serviceTokens||[];c.trace("Received MSL response",{NccpMethod:d.nccpMethod},q.map(Bb).join("\n"));if(!g)throw new A(a.INTERNAL_EXCEPTION,"Null response stream");d.allowTokenRefresh&&Q();if(m=g.getErrorHeader())p(m,d.userId),Ya.error(m);else{var w={};q.forEach(function(a){w[a.name]=a});l&&l.forEach(function(a){w[a.name]||q.push(a)});q=q.filter(function(a){return Bf[a.name]&&!a.isDeleted()});L(g,u,{result:function(a){b(Ya, | |
function(){return{body:h(a),serviceTokens:q}})},timeout:function(){Ya.timeout()},error:function(a){Ya.error(a)}})}})},timeout:function(){Ya.timeout()},error:function(a){Ya.error(a)}})};this.hasUserIdToken=function(a){return!!n.getUserIdToken(a)};this.removeUserIdToken=C;this.isErrorReauth=function(a){return a&&a.errorCode==d.USERDATA_REAUTH};this.isErrorHeader=function(a){return a instanceof Xc};this.getErrorCode=function(a){return a&&a.errorCode};this.getStateForMdx=function(a){var b=n.getMasterToken(); | |
a=n.getUserIdToken(a);var u=n.getCryptoContext(b);return{masterToken:b,userIdToken:a,cryptoContext:u}};this.buildPlayDataRequest=function(a,b){var u=new He;f.request(k,new Ge(c,k,a),u,a.timeout,{result:function(){b.result(u.getRequest())},error:function(){b.result(u.getRequest())},timeout:function(){b.timeout()}})}}function kb(b,c,d,h,f,k){function n(c){var d;return Promise.resolve().then(function(){d=b.authenticationKeyNames[c];if(!d)throw new A(a.KEY_IMPORT_ERROR,"Invalid config keyName "+c);return Ea.getKeyByName(d)}).then(function(b){return new Promise(function(c, | |
u){Oc(b,{result:c,error:function(){u(new A(a.KEY_IMPORT_ERROR,"Unable to create "+d+" CipherKey"))}})})}).catch(function(b){throw new A(a.KEY_IMPORT_ERROR,"Unable to import "+d,b);})}return Promise.resolve().then(function(){if(!Ea.getKeyByName)throw new A(a.INTERNAL_EXCEPTION,"No WebCrypto cryptokeys");return Promise.all([n("e"),n("h"),n("w")])}).then(function(a){var tb={};tb[c]=new d(b.esn,a[0],a[1],a[2]);a=new h(b.esn);var ab=new Ng,ab=[new f(ab)],Ya=new k(c);return{entityAuthFactories:tb,entityAuthData:a, | |
keyExchangeFactories:ab,keyRequestData:Ya}})}function Xb(b,c,d){function h(){return Promise.resolve().then(function(){return Ea.generateKey(c,!1,["wrapKey","unwrapKey"])}).then(function(a){return f(a.publicKey,a.privateKey)})}function f(b,c){return Promise.all([new Promise(function(c,d){Pc(b,{result:c,error:function(b){d(new A(a.INTERNAL_EXCEPTION,"Unable to create keyx public key",b))}})}),new Promise(function(b,d){Yc(c,{result:b,error:function(b){d(new A(a.INTERNAL_EXCEPTION,"Unable to create keyx private key", | |
b))}})})]).then(function(a){a=new Gd("rsaKeypairId",d,a[0],a[1]);k&&(a.storeData={keyxPublicKey:b,keyxPrivateKey:c});return a})}var k=!b.systemKeyWrapFormat;return Promise.resolve().then(function(){var a=b.storeState,c=a&&a.keyxPublicKey,a=a&&a.keyxPrivateKey;return k&&c&&a?f(c,a):h()}).then(function(a){var c={};c[Pa.NONE]=new Og;var d=new Hd(b.esn),f=[new Cf];return{entityAuthFactories:c,entityAuthData:d,keyExchangeFactories:f,keyRequestData:a,createKeyRequestData:k?h:y}})}var Fb=ec.nfCrypto||ec.msCrypto|| | |
ec.webkitCrypto||ec.crypto,C=Fb&&(Fb.webkitSubtle||Fb.subtle),fc=ec.nfCryptokeys||ec.msCryptokeys||ec.webkitCryptokeys||ec.cryptokeys;(function(a){var b=function(){function a(c,d){c instanceof b?(this.abv=c.abv,this.position=c.position):(this.abv=c,this.position=d||0)}a.prototype={readByte:function(){return this.abv[this.position++]},writeByte:function(a){this.abv[this.position++]=a},peekByte:function(a){return this.abv[a]},copyBytes:function(a,b,c){var d=new Uint8Array(this.abv.buffer,this.position, | |
c);a=new Uint8Array(a.buffer,b,c);d.set(a);this.position+=c},seek:function(a){this.position=a},skip:function(a){this.position+=a},getPosition:function(){return this.position},setPosition:function(a){this.position=a},getRemaining:function(){return this.abv.length-this.position},getLength:function(){return this.abv.length},isEndOfStream:function(){return this.position>=this.abv.length},show:function(){var a;return a="AbvStream: pos "+(this.getPosition().toString()+" of "+this.getLength().toString())}}; | |
return a}(),c={};(function(){function a(g,l){l.writeByte(g.tagClass<<6|g.constructed<<5|g.tag);var m=g.payloadLen;if(128>m)l.writeByte(m);else{for(var q=m,w=0;q;)++w,q>>=8;l.writeByte(128|w);for(q=0;q<w;++q)l.writeByte(m>>8*(w-q-1)&255)}if(g.child)for(g.tag==t.BIT_STRING&&l.writeByte(0),m=g._child;m;){if(!a(m,l))return!1;m=m.next}else switch(g.tag){case t.INTEGER:g.backingStore[g.dataIdx]>>7&&l.writeByte(0);l.copyBytes(g.backingStore,g.dataIdx,g.dataLen);break;case t.BIT_STRING:l.writeByte(0);l.copyBytes(g.backingStore, | |
g.dataIdx,g.dataLen);break;case t.OCTET_STRING:l.copyBytes(g.backingStore,g.dataIdx,g.dataLen);break;case t.OBJECT_IDENTIFIER:l.copyBytes(g.backingStore,g.dataIdx,g.dataLen)}return!0}function d(a){var g=a.readByte(),l=g&127;if(l==g)return l;if(3<l||0===l)return-1;for(var m=g=0;m<l;++m)g=g<<8|a.readByte();return g}function h(a,g,l){var m=a.backingStore,w=new b(m,g);g+=l;l=a;var J,c,u;if(8<M++)return y;for(;w.getPosition()<g;){w.getPosition();u=w.readByte();if(31==(u&31)){for(c=0;u&128;)c<<=8,c|=u& | |
127;u=c}J=u;c=J&31;if(0>c||30<c)return y;u=d(w);if(0>u||u>w.getRemaining())return y;l.constructed=J&32;l.tagClass=(J&192)>>6;l.tag=c;l.dataLen=u;l.dataIdx=w.getPosition();c=w;var B=J;J=u;if(B&32)c=!0;else if(B<t.BIT_STRING||B>t.OCTET_STRING)c=!1;else{var db=new b(c);B==t.BIT_STRING&&db.skip(1);db.readByte()>>6&1?c=!1:(B=d(db),c=db.getPosition()-c.getPosition()+B==J)}c&&(c=w.getPosition(),J=u,l.tag==t.BIT_STRING&&(l.dataIdx++,l.dataLen--,c++,J--),l.child=new q(m,l),h(l.child,c,J));l.tag==t.INTEGER&& | |
(c=w.getPosition(),0==w.peekByte(c)&&w.peekByte(c+1)>>7&&(l.dataIdx++,l.dataLen--));w.skip(u);w.getPosition()<g&&(l.next=new q(m,l.parent),l=l.next)}M--;return a}function f(a,g,l){if(9!=l)return!1;for(l=0;9>l;++l)if(a[g++]!=B[l])return!1;return!0}function Q(a){if(!(a&&a.child&&a.child.next&&a.child.child&&a.child.next.child))return!1;var l=a.child.child;return f(l.backingStore,l.dataIdx,l.dataLen)&&2==a.nChildren&&2==a.child.nChildren&&2==a.child.next.child.nChildren?!0:!1}function k(a){if(!(a&&a.child&& | |
a.child.next&&a.child.next.child&&a.child.next.next&&a.child.next.next.child))return!1;var l=a.child.next.child;return f(l.backingStore,l.dataIdx,l.dataLen)&&3==a.nChildren&&2==a.child.next.nChildren&&9==a.child.next.next.child.nChildren?!0:!1}function ab(a){var l=J.createSequenceNode(),g=new ma(l);g.addChild(J.createSequenceNode());g.addChild(J.createOidNode(B));g.addSibling(J.createNullNode());g.addToParent(l,J.createBitStringNode(null));g.addChild(J.createSequenceNode());g.addChild(J.createIntegerNode(a.n)); | |
g.addSibling(J.createIntegerNode(a.e));return l}function Ya(a){a=a.child.next.child.child;var l=a.data;a=a.next;return new G(l,a.data,null,null)}function u(a){var l=J.createSequenceNode(),g=new ma(l);g.addChild(J.createIntegerNode(new Uint8Array([0])));g.addSibling(J.createSequenceNode());g.addChild(J.createOidNode(B));g.addSibling(J.createNullNode());g.addToParent(l,J.createOctetStringNode(null));g.addChild(J.createSequenceNode());g.addChild(J.createIntegerNode(new Uint8Array([0])));g.addSibling(J.createIntegerNode(a.n)); | |
g.addSibling(J.createIntegerNode(a.e));g.addSibling(J.createIntegerNode(a.d));g.addSibling(J.createIntegerNode(a.p));g.addSibling(J.createIntegerNode(a.q));g.addSibling(J.createIntegerNode(a.dp));g.addSibling(J.createIntegerNode(a.dq));g.addSibling(J.createIntegerNode(a.qi));return l}function w(a){var g=[];a=a.child.next.next.child.child.next;for(var l=0;8>l;l++)g.push(a.data),a=a.next;return new ya(g[0],g[1],g[2],g[3],g[4],g[5],g[6],g[7])}function m(a,g,l,m){if(!(a instanceof G||a instanceof ya))return y; | |
if(l)for(var q=0;q<l.length;++q)if(-1==db.indexOf(l[q]))return y;g={kty:"RSA",alg:g,key_ops:l||[],ext:m==y?!1:m,n:L(a.n,!0),e:L(a.e,!0)};a instanceof ya&&(g.d=L(a.d,!0),g.p=L(a.p,!0),g.q=L(a.q,!0),g.dp=L(a.dp,!0),g.dq=L(a.dq,!0),g.qi=L(a.qi,!0));return g}function l(a){if(!a.kty||"RSA"!=a.kty||!a.n||!a.e)return y;var g="RSA1_5 RSA-OAEP RSA-OAEP-256 RSA-OAEP-384 RSA-OAEP-512 RS256 RS384 RS512".split(" ");if(a.alg&&-1==g.indexOf(a.alg))return y;g=[];a.use?"enc"==a.use?g=["encrypt","decrypt","wrap","unwrap"]: | |
"sig"==a.use&&(g=["sign","verify"]):g=a.key_ops;var l=a.ext,m=I(a.n,!0),q=I(a.e,!0);if(a.d){var t=I(a.d,!0),w=I(a.p,!0),b=I(a.q,!0),J=I(a.dp,!0),c=I(a.dq,!0),u=I(a.qi,!0);return new ya(m,q,t,w,b,J,c,u,a.alg,g,l)}return new G(m,q,l,g)}function g(a,g,l,m){this.der=a;this.type=g;this.keyOps=l;this.extractable=m}var t={BER:0,BOOLEAN:1,INTEGER:2,BIT_STRING:3,OCTET_STRING:4,NULL:5,OBJECT_IDENTIFIER:6,OBJECT_DESCRIPTOR:7,INSTANCE_OF_EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED_PPV:11,UTF8_STRING:12,RELATIVE_OID:13, | |
SEQUENCE:16,SET:17,NUMERIC_STRING:18,PRINTABLE_STRING:19,TELETEX_STRING:20,T61_STRING:20,VIDEOTEX_STRING:21,IA5_STRING:22,UTC_TIME:23,GENERALIZED_TIME:24,GRAPHIC_STRING:25,VISIBLE_STRING:26,ISO64_STRING:26,GENERAL_STRING:27,UNIVERSAL_STRING:28,CHARACTER_STRING:29,BMP_STRING:30},q=function(a,g,l,m,q,t){this._data=a;this._parent=g||y;this._constructed=l||!1;this._tagClass=0;this._tag=m||0;this._dataIdx=q||0;this._dataLen=t||0};q.prototype={_child:y,_next:y,get data(){return new Uint8Array(this._data.buffer.slice(this._dataIdx, | |
this._dataIdx+this._dataLen))},get backingStore(){return this._data},get constructed(){return this._constructed},set constructed(a){this._constructed=0!=a?!0:!1},get tagClass(){return this._tagClass},set tagClass(a){this._tagClass=a},get tag(){return this._tag},set tag(a){this._tag=a},get dataIdx(){return this._dataIdx},set dataIdx(a){this._dataIdx=a},get dataLen(){return this._dataLen},set dataLen(a){this._dataLen=a},get child(){return this._child},set child(a){this._child=a;this._child.parent=this}, | |
get next(){return this._next},set next(a){this._next=a},get parent(){return this._parent},set parent(a){this._parent=a},get payloadLen(){var a=0;if(this._child){for(var g=this._child;g;)a+=g.length,g=g.next;this._tag==t.BIT_STRING&&a++}else switch(this._tag){case t.INTEGER:a=this._dataLen;this._data[this._dataIdx]>>7&&a++;break;case t.BIT_STRING:a=this._dataLen+1;break;case t.OCTET_STRING:a=this._dataLen;break;case t.NULL:a=0;break;case t.OBJECT_IDENTIFIER:f(this._data,this._dataIdx,this._dataLen)&& | |
(a=9)}return a},get length(){var a=this.payloadLen,g;if(127<a)for(g=a;g;)g>>=8,++a;return a+2},get der(){var g=this.length;if(!g)return y;var g=new Uint8Array(g),l=new b(g);return a(this,l)?g:y},get nChildren(){for(var a=0,g=this._child;g;)a++,g=g.next;return a}};var J={createSequenceNode:function(){return new q(null,null,!0,t.SEQUENCE,null,null)},createOidNode:function(a){return new q(a,null,!1,t.OBJECT_IDENTIFIER,0,a?a.length:0)},createNullNode:function(){return new q(null,null,!1,t.NULL,null,null)}, | |
createBitStringNode:function(a){return new q(a,null,!1,t.BIT_STRING,0,a?a.length:0)},createIntegerNode:function(a){return new q(a,null,!1,t.INTEGER,0,a?a.length:0)},createOctetStringNode:function(a){return new q(a,null,!1,t.OCTET_STRING,0,a?a.length:0)}},ma=function(a){this._currentNode=this._rootNode=a};ma.prototype={addChild:function(a){this.addTo(this._currentNode,a)},addSibling:function(a){this.addTo(this._currentNode.parent,a)},addTo:function(a,g){this._currentNode=g;this._currentNode.parent= | |
a;if(a.child){for(var l=a.child;l.next;)l=l.next;l.next=g}else a.child=g},addToParent:function(a,g){this.findNode(a)&&this.addTo(a,g)},findNode:function(a){for(var g=this._currentNode;g;){if(a==g)return!0;g=g.parent}return!1}};var M=0,B=new Uint8Array([42,134,72,134,247,13,1,1,1]),G=function(a,g,l,m){this.n=a;this.e=g;this.ext=l;this.keyOps=m},ya=function(a,g,l,m,q,t,w,b,J,c,u){this.n=a;this.e=g;this.d=l;this.p=m;this.q=q;this.dp=t;this.dq=w;this.qi=b;this.alg=J;this.keyOps=c;this.ext=u},db="sign verify encrypt decrypt wrapKey unwrapKey deriveKey deriveBits".split(" "); | |
g.prototype.getDer=function(){return this.der};g.prototype.getType=function(){return this.type};g.prototype.getKeyOps=function(){return this.keyOps};g.prototype.getExtractable=function(){return this.extractable};c.parse=function(a){M=0;return h(new q(a),0,a.length)};c.show=function(a,g){};c.isRsaSpki=Q;c.isRsaPkcs8=k;c.NodeFactory=J;c.Builder=ma;c.tagVal=t;c.RsaPublicKey=G;c.RsaPrivateKey=ya;c.buildRsaSpki=ab;c.parseRsaSpki=function(a){a=c.parse(a);return Q?Ya(a):y};c.buildRsaPkcs8=u;c.parseRsaPkcs8= | |
function(a){a=c.parse(a);return k(a)?w(a):y};c.buildRsaJwk=m;c.parseRsaJwk=l;c.RsaDer=g;c.rsaDerToJwk=function(a,g,l,q){a=c.parse(a);if(!a)return y;if(Q(a))a=Ya(a);else if(k(a))a=w(a);else return y;return m(a,g,l,q)};c.jwkToRsaDer=function(a){a=l(a);if(!a)return y;var m,q;if(a instanceof G)m="spki",q=ab(a).der;else if(a instanceof ya)m="pkcs8",q=u(a).der;else return y;return new g(q,m,a.keyOps,a.ext)};c.webCryptoAlgorithmToJwkAlg=function(a){return"RSAES-PKCS1-v1_5"==a.name?"RSA1_5":"RSASSA-PKCS1-v1_5"== | |
a.name?"SHA-256"==a.hash.name?"RS256":"SHA-384"==a.hash.name?"RS384":"SHA-512"==a.hash.name?"RS512":y:y};c.webCryptoUsageToJwkKeyOps=function(a){return a.map(function(a){return"wrapKey"==a?"wrap":"unwrapKey"==a?"unwrap":a})}})();a.ASN1=c})(this);var L,I;(function(){for(var a={},b={},c={"=":0,".":0},d={"=":0,".":0},h=/\s+/g,f=/^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/_-]*[=]{0,2}$/,k=64;k--;)a["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[k]]=262144*k, | |
b["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[k]]=4096*k,c["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[k]]=64*k,d["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[k]]=k;for(k=64;k--&&"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[k]!="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"[k];)a["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"[k]]=262144*k,b["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"[k]]= | |
4096*k,c["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"[k]]=64*k,d["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"[k]]=k;L=function(a,b){for(var c="",d=0,u=a.length,w=u-2,m,l=b?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g=b?"":"=";d<w;)m=65536*a[d++]+256*a[d++]+a[d++],c+=l[m>>>18]+l[m>>>12&63]+l[m>>>6&63]+l[m&63];d==w?(m=65536*a[d++]+256*a[d++],c+=l[m>>>18]+l[m>>>12&63]+ | |
l[m>>>6&63]+g):d==u-1&&(m=65536*a[d++],c+=l[m>>>18]+l[m>>>12&63]+g+g);return c};I=function(k,tb){k=k.replace(h,"");if(tb){var ab=k.length%4;if(ab)for(var ab=4-ab,Ya=0;Ya<ab;++Ya)k+="="}ab=k.length;if(0!=ab%4||!f.test(k))throw Error("bad base64: "+k);for(var u=ab/4*3-("="==k[ab-1]?1:0)-("="==k[ab-2]?1:0),w=new Uint8Array(u),m=0,l=0;m<ab;)Ya=a[k[m++]]+b[k[m++]]+c[k[m++]]+d[k[m++]],w[l++]=Ya>>>16,l<u&&(w[l++]=Ya>>>8&255,l<u&&(w[l++]=Ya&255));return w}})();var Qa={};(function(){function a(c){if(!(this instanceof | |
a))return new a(c);for(var u=0,w=f.length;u<w;u++)this[f[u]]="";this.bufferCheckPosition=Qa.MAX_BUFFER_LENGTH;this.q=this.c=this.p="";this.opt=c||{};this.closed=this.closedRoot=this.sawRoot=!1;this.tag=this.error=null;this.state=Q.BEGIN;this.stack=new h;this.index=this.position=this.column=0;this.line=1;this.slashed=!1;this.unicodeI=0;this.unicodeS=null;b(this,"onready")}function b(a,c,w){if(a[c])a[c](w)}function c(a,u){var w=a.opt,m=a.textNode;w.trim&&(m=m.trim());w.normalize&&(m=m.replace(/\s+/g, | |
" "));a.textNode=m;a.textNode&&b(a,u?u:"onvalue",a.textNode);a.textNode=""}function d(a,u){c(a);u+="\nLine: "+a.line+"\nColumn: "+a.column+"\nChar: "+a.c;u=Error(u);a.error=u;b(a,"onerror",u);return a}function k(f){f.state!==Q.VALUE&&d(f,"Unexpected end");c(f);f.c="";f.closed=!0;b(f,"onend");a.call(f,f.opt);return f}var h=Array;Qa.parser=function(b){return new a(b)};Qa.CParser=a;Qa.MAX_BUFFER_LENGTH=65536;Qa.DEBUG=!1;Qa.INFO=!1;Qa.EVENTS="value string key openobject closeobject openarray closearray error end ready".split(" "); | |
var f=["textNode","numberNode"];Qa.EVENTS.filter(function(a){return"error"!==a&&"end"!==a});var Q=0;Qa.STATE={BEGIN:Q++,VALUE:Q++,OPEN_OBJECT:Q++,CLOSE_OBJECT:Q++,OPEN_ARRAY:Q++,CLOSE_ARRAY:Q++,TEXT_ESCAPE:Q++,STRING:Q++,BACKSLASH:Q++,END:Q++,OPEN_KEY:Q++,CLOSE_KEY:Q++,TRUE:Q++,TRUE2:Q++,TRUE3:Q++,FALSE:Q++,FALSE2:Q++,FALSE3:Q++,FALSE4:Q++,NULL:Q++,NULL2:Q++,NULL3:Q++,NUMBER_DECIMAL_POINT:Q++,NUMBER_DIGIT:Q++};for(var tb in Qa.STATE)Qa.STATE[Qa.STATE[tb]]=tb;Q=Qa.STATE;Object.getPrototypeOf||(Object.getPrototypeOf= | |
function(a){return a.__proto__});var ab=/[\\"\n]/g;a.prototype={end:function(){k(this)},write:function(a){if(this.error)throw this.error;if(this.closed)return d(this,"Cannot write after close. Assign an onready handler.");if(null===a)return k(this);for(var u=a[0],w=this.p;u;){w=u;this.c=u=a.charAt(this.index++);w!==u?this.p=w:w=this.p;if(!u)break;this.position++;"\n"===u?(this.line++,this.column=0):this.column++;switch(this.state){case Q.BEGIN:"{"===u?this.state=Q.OPEN_OBJECT:"["===u?this.state=Q.OPEN_ARRAY: | |
"\r"!==u&&"\n"!==u&&" "!==u&&"\t"!==u&&d(this,"Non-whitespace before {[.");continue;case Q.OPEN_KEY:case Q.OPEN_OBJECT:if("\r"===u||"\n"===u||" "===u||"\t"===u)continue;if(this.state===Q.OPEN_KEY)this.stack.push(Q.CLOSE_KEY);else if("}"===u){b(this,"onopenobject");b(this,"oncloseobject");this.state=this.stack.pop()||Q.VALUE;continue}else this.stack.push(Q.CLOSE_OBJECT);'"'===u?this.state=Q.STRING:d(this,'Malformed object key should start with "');continue;case Q.CLOSE_KEY:case Q.CLOSE_OBJECT:if("\r"=== | |
u||"\n"===u||" "===u||"\t"===u)continue;":"===u?(this.state===Q.CLOSE_OBJECT?(this.stack.push(Q.CLOSE_OBJECT),c(this,"onopenobject")):c(this,"onkey"),this.state=Q.VALUE):"}"===u?(c(this),b(this,"oncloseobject",void 0),this.state=this.stack.pop()||Q.VALUE):","===u?(this.state===Q.CLOSE_OBJECT&&this.stack.push(Q.CLOSE_OBJECT),c(this),this.state=Q.OPEN_KEY):d(this,"Bad object");continue;case Q.OPEN_ARRAY:case Q.VALUE:if("\r"===u||"\n"===u||" "===u||"\t"===u)continue;if(this.state===Q.OPEN_ARRAY)if(b(this, | |
"onopenarray"),this.state=Q.VALUE,"]"===u){b(this,"onclosearray");this.state=this.stack.pop()||Q.VALUE;continue}else this.stack.push(Q.CLOSE_ARRAY);'"'===u?this.state=Q.STRING:"{"===u?this.state=Q.OPEN_OBJECT:"["===u?this.state=Q.OPEN_ARRAY:"t"===u?this.state=Q.TRUE:"f"===u?this.state=Q.FALSE:"n"===u?this.state=Q.NULL:"-"===u?this.numberNode+=u:"0"===u?(this.numberNode+=u,this.state=Q.NUMBER_DIGIT):-1!=="123456789".indexOf(u)?(this.numberNode+=u,this.state=Q.NUMBER_DIGIT):d(this,"Bad value");continue; | |
case Q.CLOSE_ARRAY:if(","===u)this.stack.push(Q.CLOSE_ARRAY),c(this,"onvalue"),this.state=Q.VALUE;else if("]"===u)c(this),b(this,"onclosearray",void 0),this.state=this.stack.pop()||Q.VALUE;else if("\r"===u||"\n"===u||" "===u||"\t"===u)continue;else d(this,"Bad array");continue;case Q.STRING:var w=this.index-1,m=this.slashed,l=this.unicodeI;a:for(;;){if(Qa.DEBUG)for(;0<l;)if(this.unicodeS+=u,u=a.charAt(this.index++),4===l?(this.textNode+=String.fromCharCode(parseInt(this.unicodeS,16)),l=0,w=this.index- | |
1):l++,!u)break a;if('"'===u&&!m){this.state=this.stack.pop()||Q.VALUE;(this.textNode+=a.substring(w,this.index-1))||b(this,"onvalue","");break}if("\\"===u&&!m&&(m=!0,this.textNode+=a.substring(w,this.index-1),u=a.charAt(this.index++),!u))break;if(m)if(m=!1,"n"===u?this.textNode+="\n":"r"===u?this.textNode+="\r":"t"===u?this.textNode+="\t":"f"===u?this.textNode+="\f":"b"===u?this.textNode+="\b":"u"===u?(l=1,this.unicodeS=""):this.textNode+=u,u=a.charAt(this.index++),w=this.index-1,u)continue;else break; | |
ab.lastIndex=this.index;var g=ab.exec(a);if(null===g){this.index=a.length+1;this.textNode+=a.substring(w,this.index-1);break}this.index=g.index+1;u=a.charAt(g.index);if(!u){this.textNode+=a.substring(w,this.index-1);break}}this.slashed=m;this.unicodeI=l;continue;case Q.TRUE:if(""===u)continue;"r"===u?this.state=Q.TRUE2:d(this,"Invalid true started with t"+u);continue;case Q.TRUE2:if(""===u)continue;"u"===u?this.state=Q.TRUE3:d(this,"Invalid true started with tr"+u);continue;case Q.TRUE3:if(""===u)continue; | |
"e"===u?(b(this,"onvalue",!0),this.state=this.stack.pop()||Q.VALUE):d(this,"Invalid true started with tru"+u);continue;case Q.FALSE:if(""===u)continue;"a"===u?this.state=Q.FALSE2:d(this,"Invalid false started with f"+u);continue;case Q.FALSE2:if(""===u)continue;"l"===u?this.state=Q.FALSE3:d(this,"Invalid false started with fa"+u);continue;case Q.FALSE3:if(""===u)continue;"s"===u?this.state=Q.FALSE4:d(this,"Invalid false started with fal"+u);continue;case Q.FALSE4:if(""===u)continue;"e"===u?(b(this, | |
"onvalue",!1),this.state=this.stack.pop()||Q.VALUE):d(this,"Invalid false started with fals"+u);continue;case Q.NULL:if(""===u)continue;"u"===u?this.state=Q.NULL2:d(this,"Invalid null started with n"+u);continue;case Q.NULL2:if(""===u)continue;"l"===u?this.state=Q.NULL3:d(this,"Invalid null started with nu"+u);continue;case Q.NULL3:if(""===u)continue;"l"===u?(b(this,"onvalue",null),this.state=this.stack.pop()||Q.VALUE):d(this,"Invalid null started with nul"+u);continue;case Q.NUMBER_DECIMAL_POINT:"."=== | |
u?(this.numberNode+=u,this.state=Q.NUMBER_DIGIT):d(this,"Leading zero not followed by .");continue;case Q.NUMBER_DIGIT:-1!=="0123456789".indexOf(u)?this.numberNode+=u:"."===u?(-1!==this.numberNode.indexOf(".")&&d(this,"Invalid number has two dots"),this.numberNode+=u):"e"===u||"E"===u?(-1===this.numberNode.indexOf("e")&&-1===this.numberNode.indexOf("E")||d(this,"Invalid number has two exponential"),this.numberNode+=u):"+"===u||"-"===u?("e"!==w&&"E"!==w&&d(this,"Invalid symbol in number"),this.numberNode+= | |
u):(this.numberNode&&b(this,"onvalue",parseFloat(this.numberNode)),this.numberNode="",this.index--,this.state=this.stack.pop()||Q.VALUE);continue;default:d(this,"Unknown state: "+this.state)}}if(this.position>=this.bufferCheckPosition){a=Math.max(Qa.MAX_BUFFER_LENGTH,10);w=u=0;for(m=f.length;w<m;w++){l=this[f[w]].length;if(l>a)switch(f[w]){case "text":break;default:d(this,"Max buffer length exceeded: "+f[w])}u=Math.max(u,l)}this.bufferCheckPosition=Qa.MAX_BUFFER_LENGTH-u+this.position}return this}, | |
resume:function(){this.error=null;return this},close:function(){return this.write(null)}}})();var ee,fe;(function(){function a(b,c){c||(c=b.length);return b.reduce(function(a,b,d){return d<c?a+String.fromCharCode(b):a},"")}for(var b={},c=0;256>c;++c){var d=a([c]);b[d]=c}for(var f=Object.keys(b).length,k=[],c=0;256>c;++c)k[c]=[c];ee=function(c){function d(a,q){for(;0<q;){if(l>=m.length)return!1;if(q>g){var t=a,t=t>>>q-g;m[l]|=t&255;q-=g;g=8;++l}else q<=g&&(t=a,t<<=g-q,t&=255,t>>>=8-g,m[l]|=t&255,g-= | |
q,q=0,0==g&&(g=8,++l))}return!0}var k={},h;for(h in b)k[h]=b[h];for(var Ya=f,u=[],w=8,m=new Uint8Array(c.length),l=0,g=8,t=0;t<c.length;++t){var q=c[t];u.push(q);h=a(u);var J=k[h];if(!J){u=a(u,u.length-1);if(!d(k[u],w))return null;0!=Ya>>w&&++w;k[h]=Ya++;u=[q]}}return 0<u.length&&(h=a(u),J=k[h],!d(J,w))?null:m.subarray(0,8>g?l+1:l)};fe=function(a){for(var b=k.slice(),c=0,d=0,f=8,u=new Uint8Array(Math.ceil(1.5*a.length)),w=0,m=0,l=[];c<a.length&&!(8*(a.length-c)-d<f);){for(var g=m=0;g<f;){var t=Math.min(f- | |
g,8-d),q=a[c],q=q<<d,q=q&255,q=q>>>8-t,g=g+t,d=d+t;8==d&&(d=0,++c);m|=(q&255)<<f-g}g=b[m];0==l.length?++f:(g?l.push(g[0]):l.push(l[0]),b[b.length]=l,l=[],b.length==1<<f&&++f,g||(g=b[m]));m=w+g.length;m>=u.length&&(t=new Uint8Array(Math.ceil(1.5*m)),t.set(u),u=t);u.set(g,w);w=m;l=l.concat(g)}return u.subarray(0,w)}})();var sa,Ia,Zc,Id,vd,Df,Qc,Jd,d;(function(){sa="utf-8";Ia=9007199254740992;var a=Zc={GZIP:"GZIP",LZW:"LZW"};Object.freeze(Zc);Id=function(b){for(var c=[a.GZIP,a.LZW],d=0;d<c.length&&0< | |
b.length;++d)for(var f=c[d],k=0;k<b.length;++k)if(b[k]==f)return f;return null};var b=vd={AES_CBC_PKCS5Padding:"AES/CBC/PKCS5Padding",AESWrap:"AESWrap",RSA_ECB_PKCS1Padding:"RSA/ECB/PKCS1Padding"};Object.freeze(vd);Df=function(a){return b.AES_CBC_PKCS5Padding==a?b.AES_CBC_PKCS5Padding:b.RSA_ECB_PKCS1Padding==a?b.RSA_ECB_PKCS1Padding:b[a]};var c=Qc={HmacSHA256:"HmacSHA256",SHA256withRSA:"SHA256withRSA"};Object.freeze(Qc);Jd=function(a){return c[a]};d={FAIL:1,TRANSIENT_FAILURE:2,ENTITY_REAUTH:3,USER_REAUTH:4, | |
KEYX_REQUIRED:5,ENTITYDATA_REAUTH:6,USERDATA_REAUTH:7,EXPIRED:8,REPLAYED:9,SSOTOKEN_REJECTED:10};Object.freeze(d)})();var Y={isObjectLiteral:function(a){return null!==a&&"object"===typeof a&&a.constructor===Object},extendDeep:function(){var a=arguments[0],b=1,c=arguments.length,d=!1,f,k,h,Q;"boolean"===typeof a&&(d=a,a=arguments[1],b=2);for(;b<c;b++)if(null!=(f=arguments[b]))for(k in f)d&&k in a||(Q=f[k],a!==Q&&Q!==y&&(h=a[k],a[k]=null!==h&&null!==Q&&"object"===typeof h&&"object"===typeof Q?Y.extendDeep(d, | |
{},h,Q):Q));return a}};(function(){function a(b,c){return function(){var a=b.base,u;b.base=c;u=b.apply(this,arguments);b.base=a;return u}}function b(c,d,k){var u,w,m,l;k=k||Q;l=!!k.extendAll;for(u in d)w=d.__lookupGetter__(u),m=d.__lookupSetter__(u),w||m?(w&&c.__defineGetter__(u,w),m&&c.__defineSetter__(u,m)):(w=d[u],m=c[u],"function"===typeof w&&"function"===typeof m&&w!==m?(w.base!==Function.prototype.base&&(w=a(w,m)),w.base=m):(l||k[u])&&Y.isObjectLiteral(w)&&Y.isObjectLiteral(m)&&(w=Y.extendDeep({}, | |
m,w)),c[u]=w)}function c(){var a=Array.prototype.slice,b=a.call(arguments,1);return this.extend({init:function u(){var c=a.call(arguments,0);u.base.apply(this,b.concat(c))}})}function d(a,c){var f=new this(h);b(f,a,c);return k(f)}function f(a,c){b(this.prototype,a,c);return this}function k(a){var b=function(){var a=this.init;a&&arguments[0]!==h&&a.apply(this,arguments)};a&&(b.prototype=a);b.prototype.constructor=b;b.extend=d;b.bind=c;b.mixin=f;return b}var h={},Q={actions:!0};Function.prototype.base= | |
function(){};Y.Class={create:k,mixin:b,extend:function(a,b){var c=k();c.prototype=new a;return c.extend(b)}};Y.mixin=function(){Y.log&&Y.log.warn("util.mixin is deprecated. Please change your code to use util.Class.mixin()");b.apply(null,arguments)}})();(function(){function a(b,c){return function(){var a=b.base,w;b.base=c;w=b.apply(this,arguments);b.base=a;return w}}function b(c,d,u){var w,m,l,g;u=u||Q;g=!!u.extendAll;for(w in d)m=d.__lookupGetter__(w),l=d.__lookupSetter__(w),m||l?(m&&c.__defineGetter__(w, | |
m),l&&c.__defineSetter__(w,l)):(m=d[w],l=c[w],"function"===typeof m&&"function"===typeof l&&m!==l?(m.base!==n&&(m=a(m,l)),m.base=l):(g||u[w])&&Y.isObjectLiteral(m)&&Y.isObjectLiteral(l)&&(m=Y.extendDeep({},l,m)),c[w]=m)}function c(){var a=Array.prototype.slice,b=a.call(arguments,1);return this.extend({init:function w(){var m=a.call(arguments,0);w.base.apply(this,b.concat(m))}})}function d(a,c){var u=new this(h);b(u,a,c);return f(u)}function k(a,c){b(this.prototype,a,c);return this}function f(a){var b= | |
function(){var a=this.init;a&&arguments[0]!==h&&a.apply(this,arguments)};a&&(b.prototype=a);b.prototype.constructor=b;b.extend=d;b.bind=c;b.mixin=k;return b}var h={},Q={actions:!0},n=function(){};Function.prototype.base=n;Y.Class={create:f,mixin:b,extend:function(a,b){var c=f();c.prototype=new a;return c.extend(b)}};Y.mixin=function(){Y.log&&Y.log.warn("util.mixin is deprecated. Please change your code to use util.Class.mixin()");b.apply(null,arguments)}})();var Fa;(function(){function a(b){return b== | |
Ia?1:b+1}function b(c){if(0===Object.keys(c._waiters).length)return 0;for(var d=a(c._nextWaiter);!c._waiters[d];)d=a(d);return d}Fa=Y.Class.create({init:function(){Object.defineProperties(this,{_queue:{value:[],writable:!1,enumerable:!1,configurable:!1},_waiters:{value:{},writable:!1,enumerable:!1,configurable:!1},_nextWaiter:{value:0,writable:!0,enumerable:!1,configurable:!1},_lastWaiter:{value:0,writable:!0,enumerable:!1,configurable:!1}})},cancel:function(a){if(this._waiters[a]){var c=this._waiters[a]; | |
delete this._waiters[a];a==this._nextWaiter&&(this._nextWaiter=b(this));c.call(this,y)}},cancelAll:function(){for(;0!==this._nextWaiter;)this.cancel(this._nextWaiter)},poll:function(c,d){var f=this,h=a(this._lastWaiter);this._lastWaiter=h;k(d,function(){if(0<this._queue.length){var a=this._queue.shift();setTimeout(function(){d.result(a)},0)}else{var k;-1!=c&&(k=setTimeout(function(){delete f._waiters[h];h==f._nextWaiter&&(f._nextWaiter=b(f));d.timeout()},c));this._waiters[h]=function(a){clearTimeout(k); | |
setTimeout(function(){d.result(a)},0)};this._nextWaiter||(this._nextWaiter=h)}},f);return h},add:function(a){if(this._nextWaiter){var c=this._waiters[this._nextWaiter];delete this._waiters[this._nextWaiter];this._nextWaiter=b(this);c.call(this,a)}else this._queue.push(a)}})})();var ge;(function(){var a=0-Ia;ge=Y.Class.create({nextBoolean:function(){var a=new Uint8Array(1);Fb.getRandomValues(a);return a[0]&1?!0:!1},nextInt:function(a){if(null!==a&&a!==y){if("number"!==typeof a)throw new TypeError("n must be of type number"); | |
if(1>a)throw new RangeError("n must be greater than zero");--a;var b=new Uint8Array(4);Fb.getRandomValues(b);return Math.floor(((b[3]&127)<<24|b[2]<<16|b[1]<<8|b[0])/2147483648*(a-0+1)+0)}a=new Uint8Array(4);Fb.getRandomValues(a);b=(a[3]&127)<<24|a[2]<<16|a[1]<<8|a[0];return a[3]&128?-b:b},nextLong:function(){for(var b=a;b==a;){b=new Uint8Array(7);Fb.getRandomValues(b);var c=16777216*((b[6]&31)<<24|b[5]<<16|b[4]<<8|b[3])+(b[2]<<16|b[1]<<8|b[0]),b=b[6]&128?-c-1:c}return b},nextBytes:function(a){Fb.getRandomValues(a)}})})(); | |
var Fc;(function(){function a(b){return b==Ia?1:b+1}function b(c){if(0===Object.keys(c._waitingReaders).length)return 0;for(var d=a(c._nextReader);!c._waitingReaders[d];)d=a(d);return d}function c(b){if(0===Object.keys(b._waitingWriters).length)return 0;for(var d=a(b._nextWriter);!b._waitingWriters[d];)d=a(d);return d}Fc=Y.Class.create({init:function(){Object.defineProperties(this,{_readers:{value:{},writable:!1,enumerable:!1,configurable:!1},_waitingReaders:{value:{},writable:!1,enumerable:!1,configurable:!1}, | |
_writer:{value:null,writable:!0,enumerable:!1,configurable:!1},_waitingWriters:{value:{},writable:!1,enumerable:!1,configurable:!1},_nextReader:{value:0,writable:!0,enumerable:!1,configurable:!1},_nextWriter:{value:0,writable:!0,enumerable:!1,configurable:!1},_lastNumber:{value:0,writable:!0,enumerable:!1,configurable:!1}})},cancel:function(a){if(this._waitingReaders[a]){var d=this._waitingReaders[a];delete this._waitingReaders[a];a==this._nextReader&&(this._nextReader=b(this));d.call(this,!0)}this._waitingWriters[a]&& | |
(d=this._waitingWriters[a],delete this._waitingWriters[a],a==this._nextWriter&&(this._nextWriter=c(this)),d.call(this,!0))},cancelAll:function(){for(;0!==this._nextWriter;)this.cancel(this._nextWriter);for(;0!==this._nextReader;)this.cancel(this._nextReader)},readLock:function(c,d){var f=this,h=a(this._lastNumber);this._lastNumber=h;k(d,function(){if(!this._writer&&0===Object.keys(this._waitingWriters).length)return this._readers[h]=!0,h;var a;-1!=c&&(a=setTimeout(function(){delete f._waitingReaders[h]; | |
h==f._nextReader&&(f._nextReader=b(f));d.timeout()},c));this._waitingReaders[h]=function(b){clearTimeout(a);b?setTimeout(function(){d.result(y)},0):(f._readers[h]=!0,setTimeout(function(){d.result(h)},0))};this._nextReader||(this._nextReader=h)},f);return h},writeLock:function(b,d){var f=this,h=a(this._lastNumber);this._lastNumber=h;k(d,function(){if(0===Object.keys(this._readers).length&&0===Object.keys(this._waitingReaders).length&&!this._writer)return this._writer=h;var a;-1!=b&&(a=setTimeout(function(){delete f._waitingWriters[h]; | |
h==f._nextWriter&&(f._nextWriter=c(f));d.timeout()},b));this._waitingWriters[h]=function(b){clearTimeout(a);b?setTimeout(function(){d.result(y)},0):(f._writer=h,setTimeout(function(){d.result(h)},0))};this._nextWriter||(this._nextWriter=h)},f);return h},unlock:function(b){if(b==this._writer)this._writer=null;else{if(!this._readers[b])throw new W("There is no reader or writer with ticket number "+b+".");delete this._readers[b]}if(this._nextWriter)0<Object.keys(this._readers).length||(b=this._waitingWriters[this._nextWriter], | |
delete this._waitingWriters[this._nextWriter],this._nextWriter=c(this),b.call(this,!1));else{for(var d=this._nextReader;0<Object.keys(this._waitingReaders).length;d=a(d))this._waitingReaders[d]&&(b=this._waitingReaders[d],delete this._waitingReaders[d],b.call(this,!1));this._nextReader=0}}})})();Y.Class.mixin(a,{JSON_PARSE_ERROR:new a(0,d.FAIL,"Error parsing JSON."),JSON_ENCODE_ERROR:new a(1,d.FAIL,"Error encoding JSON."),ENVELOPE_HASH_MISMATCH:new a(2,d.FAIL,"Computed hash does not match envelope hash."), | |
INVALID_PUBLIC_KEY:new a(3,d.FAIL,"Invalid public key provided."),INVALID_PRIVATE_KEY:new a(4,d.FAIL,"Invalid private key provided."),PLAINTEXT_ILLEGAL_BLOCK_SIZE:new a(5,d.FAIL,"Plaintext is not a multiple of the block size."),PLAINTEXT_BAD_PADDING:new a(6,d.FAIL,"Plaintext contains incorrect padding."),CIPHERTEXT_ILLEGAL_BLOCK_SIZE:new a(7,d.FAIL,"Ciphertext is not a multiple of the block size."),CIPHERTEXT_BAD_PADDING:new a(8,d.FAIL,"Ciphertext contains incorrect padding."),ENCRYPT_NOT_SUPPORTED:new a(9, | |
d.FAIL,"Encryption not supported."),DECRYPT_NOT_SUPPORTED:new a(10,d.FAIL,"Decryption not supported."),ENVELOPE_KEY_ID_MISMATCH:new a(11,d.FAIL,"Encryption envelope key ID does not match crypto context key ID."),CIPHERTEXT_ENVELOPE_PARSE_ERROR:new a(12,d.FAIL,"Error parsing ciphertext envelope."),CIPHERTEXT_ENVELOPE_ENCODE_ERROR:new a(13,d.FAIL,"Error encoding ciphertext envelope."),SIGN_NOT_SUPPORTED:new a(14,d.FAIL,"Sign not supported."),VERIFY_NOT_SUPPORTED:new a(15,d.FAIL,"Verify not suppoprted."), | |
SIGNATURE_ERROR:new a(16,d.FAIL,"Signature not initialized or unable to process data/signature."),HMAC_ERROR:new a(17,d.FAIL,"Error computing HMAC."),ENCRYPT_ERROR:new a(18,d.FAIL,"Error encrypting plaintext."),DECRYPT_ERROR:new a(19,d.FAIL,"Error decrypting ciphertext."),INSUFFICIENT_CIPHERTEXT:new a(20,d.FAIL,"Insufficient ciphertext for decryption."),SESSION_KEY_CREATION_FAILURE:new a(21,d.FAIL,"Error when creating session keys."),ASN1_PARSE_ERROR:new a(22,d.FAIL,"Error parsing ASN.1."),ASN1_ENCODE_ERROR:new a(23, | |
d.FAIL,"Error encoding ASN.1."),INVALID_SYMMETRIC_KEY:new a(24,d.FAIL,"Invalid symmetric key provided."),INVALID_ENCRYPTION_KEY:new a(25,d.FAIL,"Invalid encryption key."),INVALID_HMAC_KEY:new a(26,d.FAIL,"Invalid HMAC key."),WRAP_NOT_SUPPORTED:new a(27,d.FAIL,"Wrap not supported."),UNWRAP_NOT_SUPPORTED:new a(28,d.FAIL,"Unwrap not supported."),UNIDENTIFIED_JWK_TYPE:new a(29,d.FAIL,"Unidentified JSON web key type."),UNIDENTIFIED_JWK_USAGE:new a(30,d.FAIL,"Unidentified JSON web key usage."),UNIDENTIFIED_JWK_ALGORITHM:new a(31, | |
d.FAIL,"Unidentified JSON web key algorithm."),WRAP_ERROR:new a(32,d.FAIL,"Error wrapping plaintext."),UNWRAP_ERROR:new a(33,d.FAIL,"Error unwrapping ciphertext."),INVALID_JWK:new a(34,d.FAIL,"Invalid JSON web key."),INVALID_JWK_KEYDATA:new a(35,d.FAIL,"Invalid JSON web key keydata."),UNSUPPORTED_JWK_ALGORITHM:new a(36,d.FAIL,"Unsupported JSON web key algorithm."),WRAP_KEY_CREATION_FAILURE:new a(37,d.FAIL,"Error when creating wrapping key."),INVALID_WRAP_CIPHERTEXT:new a(38,d.FAIL,"Invalid wrap ciphertext."), | |
UNSUPPORTED_JWE_ALGORITHM:new a(39,d.FAIL,"Unsupported JSON web encryption algorithm."),JWE_ENCODE_ERROR:new a(40,d.FAIL,"Error encoding JSON web encryption header."),JWE_PARSE_ERROR:new a(41,d.FAIL,"Error parsing JSON web encryption header."),INVALID_ALGORITHM_PARAMS:new a(42,d.FAIL,"Invalid algorithm parameters."),JWE_ALGORITHM_MISMATCH:new a(43,d.FAIL,"JSON web encryption header algorithms mismatch."),KEY_IMPORT_ERROR:new a(44,d.FAIL,"Error importing key."),KEY_EXPORT_ERROR:new a(45,d.FAIL,"Error exporting key."), | |
DIGEST_ERROR:new a(46,d.FAIL,"Error in digest."),UNSUPPORTED_KEY:new a(47,d.FAIL,"Unsupported key type or algorithm."),UNSUPPORTED_JWE_SERIALIZATION:new a(48,d.FAIL,"Unsupported JSON web encryption serialization."),XML_PARSE_ERROR:new a(49,d.FAIL,"Error parsing XML."),XML_ENCODE_ERROR:new a(50,d.FAIL,"Error encoding XML."),INVALID_WRAPPING_KEY:new a(51,d.FAIL,"Invalid wrapping key."),UNIDENTIFIED_CIPHERTEXT_ENVELOPE:new a(52,d.FAIL,"Unidentified ciphertext envelope version."),UNIDENTIFIED_SIGNATURE_ENVELOPE:new a(53, | |
d.FAIL,"Unidentified signature envelope version."),UNSUPPORTED_CIPHERTEXT_ENVELOPE:new a(54,d.FAIL,"Unsupported ciphertext envelope version."),UNSUPPORTED_SIGNATURE_ENVELOPE:new a(55,d.FAIL,"Unsupported signature envelope version."),UNIDENTIFIED_CIPHERSPEC:new a(56,d.FAIL,"Unidentified cipher specification."),UNIDENTIFIED_ALGORITHM:new a(57,d.FAIL,"Unidentified algorithm."),SIGNATURE_ENVELOPE_PARSE_ERROR:new a(58,d.FAIL,"Error parsing signature envelope."),SIGNATURE_ENVELOPE_ENCODE_ERROR:new a(59, | |
d.FAIL,"Error encoding signature envelope."),INVALID_SIGNATURE:new a(60,d.FAIL,"Invalid signature."),WRAPKEY_FINGERPRINT_NOTSUPPORTED:new a(61,d.FAIL,"Wrap key fingerprint not supported"),UNIDENTIFIED_JWK_KEYOP:new a(62,d.FAIL,"Unidentified JSON web key key operation."),MASTERTOKEN_UNTRUSTED:new a(1E3,d.ENTITY_REAUTH,"Master token is not trusted."),MASTERTOKEN_KEY_CREATION_ERROR:new a(1001,d.ENTITY_REAUTH,"Unable to construct symmetric keys from master token."),MASTERTOKEN_EXPIRES_BEFORE_RENEWAL:new a(1002, | |
d.ENTITY_REAUTH,"Master token expiration timestamp is before the renewal window opens."),MASTERTOKEN_SESSIONDATA_MISSING:new a(1003,d.ENTITY_REAUTH,"No master token session data found."),MASTERTOKEN_SEQUENCE_NUMBER_OUT_OF_RANGE:new a(1004,d.ENTITY_REAUTH,"Master token sequence number is out of range."),MASTERTOKEN_SERIAL_NUMBER_OUT_OF_RANGE:new a(1005,d.ENTITY_REAUTH,"Master token serial number is out of range."),MASTERTOKEN_TOKENDATA_INVALID:new a(1006,d.ENTITY_REAUTH,"Invalid master token data."), | |
MASTERTOKEN_SIGNATURE_INVALID:new a(1007,d.ENTITY_REAUTH,"Invalid master token signature."),MASTERTOKEN_SESSIONDATA_INVALID:new a(1008,d.ENTITY_REAUTH,"Invalid master token session data."),MASTERTOKEN_SEQUENCE_NUMBER_OUT_OF_SYNC:new a(1009,d.ENTITY_REAUTH,"Master token sequence number does not have the expected value."),MASTERTOKEN_TOKENDATA_MISSING:new a(1010,d.ENTITY_REAUTH,"No master token data found."),MASTERTOKEN_TOKENDATA_PARSE_ERROR:new a(1011,d.ENTITY_REAUTH,"Error parsing master token data."), | |
MASTERTOKEN_SESSIONDATA_PARSE_ERROR:new a(1012,d.ENTITY_REAUTH,"Error parsing master token session data."),MASTERTOKEN_IDENTITY_REVOKED:new a(1013,d.ENTITY_REAUTH,"Master token entity identity is revoked."),MASTERTOKEN_REJECTED_BY_APP:new a(1014,d.ENTITY_REAUTH,"Master token is rejected by the application."),USERIDTOKEN_MASTERTOKEN_MISMATCH:new a(2E3,d.USER_REAUTH,"User ID token master token serial number does not match master token serial number."),USERIDTOKEN_NOT_DECRYPTED:new a(2001,d.USER_REAUTH, | |
"User ID token is not decrypted or verified."),USERIDTOKEN_MASTERTOKEN_NULL:new a(2002,d.USER_REAUTH,"User ID token requires a master token."),USERIDTOKEN_EXPIRES_BEFORE_RENEWAL:new a(2003,d.USER_REAUTH,"User ID token expiration timestamp is before the renewal window opens."),USERIDTOKEN_USERDATA_MISSING:new a(2004,d.USER_REAUTH,"No user ID token user data found."),USERIDTOKEN_MASTERTOKEN_NOT_FOUND:new a(2005,d.USER_REAUTH,"User ID token is bound to an unknown master token."),USERIDTOKEN_MASTERTOKEN_SERIAL_NUMBER_OUT_OF_RANGE:new a(2006, | |
d.USER_REAUTH,"User ID token master token serial number is out of range."),USERIDTOKEN_SERIAL_NUMBER_OUT_OF_RANGE:new a(2007,d.USER_REAUTH,"User ID token serial number is out of range."),USERIDTOKEN_TOKENDATA_INVALID:new a(2008,d.USER_REAUTH,"Invalid user ID token data."),USERIDTOKEN_SIGNATURE_INVALID:new a(2009,d.USER_REAUTH,"Invalid user ID token signature."),USERIDTOKEN_USERDATA_INVALID:new a(2010,d.USER_REAUTH,"Invalid user ID token user data."),USERIDTOKEN_IDENTITY_INVALID:new a(2011,d.USER_REAUTH, | |
"Invalid user ID token user identity."),RESERVED_2012:new a(2012,d.USER_REAUTH,"The entity is not associated with the user."),USERIDTOKEN_IDENTITY_NOT_FOUND:new a(2013,d.USER_REAUTH,"The user identity was not found."),USERIDTOKEN_PASSWORD_VERSION_CHANGED:new a(2014,d.USER_REAUTH,"The user identity must be reauthenticated because the password version changed."),USERIDTOKEN_USERAUTH_DATA_MISMATCH:new a(2015,d.USER_REAUTH,"The user ID token and user authentication data user identities do not match."), | |
USERIDTOKEN_TOKENDATA_MISSING:new a(2016,d.USER_REAUTH,"No user ID token data found."),USERIDTOKEN_TOKENDATA_PARSE_ERROR:new a(2017,d.USER_REAUTH,"Error parsing user ID token data."),USERIDTOKEN_USERDATA_PARSE_ERROR:new a(2018,d.USER_REAUTH,"Error parsing user ID token user data."),USERIDTOKEN_REVOKED:new a(2019,d.USER_REAUTH,"User ID token is revoked."),USERIDTOKEN_REJECTED_BY_APP:new a(2020,d.USER_REAUTH,"User ID token is rejected by the application."),SERVICETOKEN_MASTERTOKEN_MISMATCH:new a(3E3, | |
d.FAIL,"Service token master token serial number does not match master token serial number."),SERVICETOKEN_USERIDTOKEN_MISMATCH:new a(3001,d.FAIL,"Service token user ID token serial number does not match user ID token serial number."),SERVICETOKEN_SERVICEDATA_INVALID:new a(3002,d.FAIL,"Service token data invalid."),SERVICETOKEN_MASTERTOKEN_NOT_FOUND:new a(3003,d.FAIL,"Service token is bound to an unknown master token."),SERVICETOKEN_USERIDTOKEN_NOT_FOUND:new a(3004,d.FAIL,"Service token is bound to an unknown user ID token."), | |
SERVICETOKEN_MASTERTOKEN_SERIAL_NUMBER_OUT_OF_RANGE:new a(3005,d.FAIL,"Service token master token serial number is out of range."),SERVICETOKEN_USERIDTOKEN_SERIAL_NUMBER_OUT_OF_RANGE:new a(3006,d.FAIL,"Service token user ID token serial number is out of range."),SERVICETOKEN_TOKENDATA_INVALID:new a(3007,d.FAIL,"Invalid service token data."),SERVICETOKEN_SIGNATURE_INVALID:new a(3008,d.FAIL,"Invalid service token signature."),SERVICETOKEN_TOKENDATA_MISSING:new a(3009,d.FAIL,"No service token data found."), | |
UNIDENTIFIED_ENTITYAUTH_SCHEME:new a(4E3,d.FAIL,"Unable to identify entity authentication scheme."),ENTITYAUTH_FACTORY_NOT_FOUND:new a(4001,d.FAIL,"No factory registered for entity authentication scheme."),X509CERT_PARSE_ERROR:new a(4002,d.ENTITYDATA_REAUTH,"Error parsing X.509 certificate data."),X509CERT_ENCODE_ERROR:new a(4003,d.ENTITYDATA_REAUTH,"Error encoding X.509 certificate data."),X509CERT_VERIFICATION_FAILED:new a(4004,d.ENTITYDATA_REAUTH,"X.509 certificate verification failed."),ENTITY_NOT_FOUND:new a(4005, | |
d.FAIL,"Entity not recognized."),INCORRECT_ENTITYAUTH_DATA:new a(4006,d.FAIL,"Entity used incorrect entity authentication data type."),RSA_PUBLICKEY_NOT_FOUND:new a(4007,d.ENTITYDATA_REAUTH,"RSA public key not found."),NPTICKET_GRACE_PERIOD_EXCEEDED:new a(4008,d.ENTITYDATA_REAUTH,"Fake NP-Tickets cannot be used after the grace period when the Playstation Network is up."),NPTICKET_SERVICE_ID_MISSING:new a(4009,d.ENTITYDATA_REAUTH,"NP-Ticket service ID is missing."),NPTICKET_SERVICE_ID_DISALLOWED:new a(4010, | |
d.ENTITYDATA_REAUTH,"NP-Ticket service ID is not allowed."),NPTICKET_NOT_YET_VALID:new a(4011,d.ENTITYDATA_REAUTH,"NP-Ticket issuance date is in the future."),NPTICKET_EXPIRED:new a(4012,d.ENTITYDATA_REAUTH,"NP-Ticket has expired."),NPTICKET_PRIVATE_KEY_NOT_FOUND:new a(4013,d.ENTITYDATA_REAUTH,"No private key found for NP-Ticket GUID."),NPTICKET_COOKIE_VERIFICATION_FAILED:new a(4014,d.ENTITYDATA_REAUTH,"NP-Ticket cookie signature verification failed."),NPTICKET_INCORRECT_COOKIE_VERSION:new a(4015, | |
d.ENTITYDATA_REAUTH,"Incorrect NP-Ticket cookie version."),NPTICKET_BROKEN:new a(4016,d.ENTITYDATA_REAUTH,"NP-Ticket broken."),NPTICKET_VERIFICATION_FAILED:new a(4017,d.ENTITYDATA_REAUTH,"NP-Ticket signature verification failed."),NPTICKET_ERROR:new a(4018,d.ENTITYDATA_REAUTH,"Unknown NP-Ticket TCM error."),NPTICKET_CIPHER_INFO_NOT_FOUND:new a(4019,d.ENTITYDATA_REAUTH,"No cipher information found for NP-Ticket."),NPTICKET_INVALID_CIPHER_INFO:new a(4020,d.ENTITYDATA_REAUTH,"Cipher information for NP-Ticket is invalid."), | |
NPTICKET_UNSUPPORTED_VERSION:new a(4021,d.ENTITYDATA_REAUTH,"Unsupported NP-Ticket version."),NPTICKET_INCORRECT_KEY_LENGTH:new a(4022,d.ENTITYDATA_REAUTH,"Incorrect NP-Ticket public key length."),UNSUPPORTED_ENTITYAUTH_DATA:new a(4023,d.FAIL,"Unsupported entity authentication data."),CRYPTEX_RSA_KEY_SET_NOT_FOUND:new a(4024,d.FAIL,"Cryptex RSA key set not found."),ENTITY_REVOKED:new a(4025,d.FAIL,"Entity is revoked."),ENTITY_REJECTED_BY_APP:new a(4026,d.ENTITYDATA_REAUTH,"Entity is rejected by the application."), | |
FORCE_LOGIN:new a(5E3,d.USERDATA_REAUTH,"User must login again."),NETFLIXID_COOKIES_EXPIRED:new a(5001,d.USERDATA_REAUTH,"Netflix ID cookie identity has expired."),NETFLIXID_COOKIES_BLANK:new a(5002,d.USERDATA_REAUTH,"Netflix ID or Secure Netflix ID cookie is blank."),UNIDENTIFIED_USERAUTH_SCHEME:new a(5003,d.FAIL,"Unable to identify user authentication scheme."),USERAUTH_FACTORY_NOT_FOUND:new a(5004,d.FAIL,"No factory registered for user authentication scheme."),EMAILPASSWORD_BLANK:new a(5005,d.USERDATA_REAUTH, | |
"Email or password is blank."),AUTHMGR_COMMS_FAILURE:new a(5006,d.TRANSIENT_FAILURE,"Error communicating with authentication manager."),EMAILPASSWORD_INCORRECT:new a(5007,d.USERDATA_REAUTH,"Email or password is incorrect."),UNSUPPORTED_USERAUTH_DATA:new a(5008,d.FAIL,"Unsupported user authentication data."),SSOTOKEN_BLANK:new a(5009,d.SSOTOKEN_REJECTED,"SSO token is blank."),SSOTOKEN_NOT_ASSOCIATED:new a(5010,d.USERDATA_REAUTH,"SSO token is not associated with a Netflix user."),USERAUTH_USERIDTOKEN_INVALID:new a(5011, | |
d.USERDATA_REAUTH,"User authentication data user ID token is invalid."),PROFILEID_BLANK:new a(5012,d.USERDATA_REAUTH,"Profile ID is blank."),UNIDENTIFIED_USERAUTH_MECHANISM:new a(5013,d.FAIL,"Unable to identify user authentication mechanism."),UNSUPPORTED_USERAUTH_MECHANISM:new a(5014,d.FAIL,"Unsupported user authentication mechanism."),SSOTOKEN_INVALID:new a(5015,d.SSOTOKEN_REJECTED,"SSO token invalid."),USERAUTH_MASTERTOKEN_MISSING:new a(5016,d.USERDATA_REAUTH,"User authentication required master token is missing."), | |
ACCTMGR_COMMS_FAILURE:new a(5017,d.TRANSIENT_FAILURE,"Error communicating with the account manager."),SSO_ASSOCIATION_FAILURE:new a(5018,d.TRANSIENT_FAILURE,"SSO user association failed."),SSO_DISASSOCIATION_FAILURE:new a(5019,d.TRANSIENT_FAILURE,"SSO user disassociation failed."),MDX_USERAUTH_VERIFICATION_FAILED:new a(5020,d.USERDATA_REAUTH,"MDX user authentication data verification failed."),USERAUTH_USERIDTOKEN_NOT_DECRYPTED:new a(5021,d.USERDATA_REAUTH,"User authentication data user ID token is not decrypted or verified."), | |
MDX_USERAUTH_ACTION_INVALID:new a(5022,d.USERDATA_REAUTH,"MDX user authentication data action is invalid."),CTICKET_DECRYPT_ERROR:new a(5023,d.USERDATA_REAUTH,"CTicket decryption failed."),USERAUTH_MASTERTOKEN_INVALID:new a(5024,d.USERDATA_REAUTH,"User authentication data master token is invalid."),USERAUTH_MASTERTOKEN_NOT_DECRYPTED:new a(5025,d.USERDATA_REAUTH,"User authentication data master token is not decrypted or verified."),CTICKET_CRYPTOCONTEXT_ERROR:new a(5026,d.USERDATA_REAUTH,"Error creating CTicket crypto context."), | |
MDX_PIN_BLANK:new a(5027,d.USERDATA_REAUTH,"MDX controller or target PIN is blank."),MDX_PIN_MISMATCH:new a(5028,d.USERDATA_REAUTH,"MDX controller and target PIN mismatch."),MDX_USER_UNKNOWN:new a(5029,d.USERDATA_REAUTH,"MDX controller user ID token or CTicket is not decrypted or verified."),USERAUTH_USERIDTOKEN_MISSING:new a(5030,d.USERDATA_REAUTH,"User authentication required user ID token is missing."),MDX_CONTROLLERDATA_INVALID:new a(5031,d.USERDATA_REAUTH,"MDX controller authentication data is invalid."), | |
USERAUTH_ENTITY_MISMATCH:new a(5032,d.USERDATA_REAUTH,"User authentication data does not match entity identity."),USERAUTH_INCORRECT_DATA:new a(5033,d.FAIL,"Entity used incorrect key request data type"),SSO_ASSOCIATION_WITH_NONMEMBER:new a(5034,d.USERDATA_REAUTH,"SSO user association failed because the customer is not a member."),SSO_ASSOCIATION_WITH_FORMERMEMBER:new a(5035,d.USERDATA_REAUTH,"SSO user association failed because the customer is a former member."),SSO_ASSOCIATION_CONFLICT:new a(5036, | |
d.USERDATA_REAUTH,"SSO user association failed because the token identifies a different member."),USER_REJECTED_BY_APP:new a(5037,d.USERDATA_REAUTH,"User is rejected by the application."),PROFILE_SWITCH_DISALLOWED:new a(5038,d.TRANSIENT_FAILURE,"Unable to switch user profile."),MEMBERSHIPCLIENT_COMMS_FAILURE:new a(5039,d.TRANSIENT_FAILURE,"Error communicating with the membership manager."),USERIDTOKEN_IDENTITY_NOT_ASSOCIATED_WITH_ENTITY:new a(5040,d.USER_REAUTH,"The entity is not associated with the user."), | |
UNSUPPORTED_COMPRESSION:new a(6E3,d.FAIL,"Unsupported compression algorithm."),COMPRESSION_ERROR:new a(6001,d.FAIL,"Error compressing data."),UNCOMPRESSION_ERROR:new a(6002,d.FAIL,"Error uncompressing data."),MESSAGE_ENTITY_NOT_FOUND:new a(6003,d.FAIL,"Message header entity authentication data or master token not found."),PAYLOAD_MESSAGE_ID_MISMATCH:new a(6004,d.FAIL,"Payload chunk message ID does not match header message ID ."),PAYLOAD_SEQUENCE_NUMBER_MISMATCH:new a(6005,d.FAIL,"Payload chunk sequence number does not match expected sequence number."), | |
PAYLOAD_VERIFICATION_FAILED:new a(6006,d.FAIL,"Payload chunk payload signature verification failed."),MESSAGE_DATA_MISSING:new a(6007,d.FAIL,"No message data found."),MESSAGE_FORMAT_ERROR:new a(6008,d.FAIL,"Malformed message data."),MESSAGE_VERIFICATION_FAILED:new a(6009,d.FAIL,"Message header/error data signature verification failed."),HEADER_DATA_MISSING:new a(6010,d.FAIL,"No header data found."),PAYLOAD_DATA_MISSING:new a(6011,d.FAIL,"No payload data found in non-EOM payload chunk."),PAYLOAD_DATA_CORRUPT:new a(6012, | |
d.FAIL,"Corrupt payload data found in non-EOM payload chunk."),UNIDENTIFIED_COMPRESSION:new a(6013,d.FAIL,"Unidentified compression algorithm."),MESSAGE_EXPIRED:new a(6014,d.EXPIRED,"Message expired and not renewable. Rejected."),MESSAGE_ID_OUT_OF_RANGE:new a(6015,d.FAIL,"Message ID is out of range."),INTERNAL_CODE_NEGATIVE:new a(6016,d.FAIL,"Error header internal code is negative."),UNEXPECTED_RESPONSE_MESSAGE_ID:new a(6017,d.FAIL,"Unexpected response message ID. Possible replay."),RESPONSE_REQUIRES_ENCRYPTION:new a(6018, | |
d.KEYX_REQUIRED,"Message response requires encryption."),PAYLOAD_SEQUENCE_NUMBER_OUT_OF_RANGE:new a(6019,d.FAIL,"Payload chunk sequence number is out of range."),PAYLOAD_MESSAGE_ID_OUT_OF_RANGE:new a(6020,d.FAIL,"Payload chunk message ID is out of range."),MESSAGE_REPLAYED:new a(6021,d.REPLAYED,"Non-replayable message replayed."),INCOMPLETE_NONREPLAYABLE_MESSAGE:new a(6022,d.FAIL,"Non-replayable message sent non-renewable or without key request data or without a master token."),HEADER_SIGNATURE_INVALID:new a(6023, | |
d.FAIL,"Invalid Header signature."),HEADER_DATA_INVALID:new a(6024,d.FAIL,"Invalid header data."),PAYLOAD_INVALID:new a(6025,d.FAIL,"Invalid payload."),PAYLOAD_SIGNATURE_INVALID:new a(6026,d.FAIL,"Invalid payload signature."),RESPONSE_REQUIRES_MASTERTOKEN:new a(6027,d.KEYX_REQUIRED,"Message response requires a master token."),RESPONSE_REQUIRES_USERIDTOKEN:new a(6028,d.USER_REAUTH,"Message response requires a user ID token."),REQUEST_REQUIRES_USERAUTHDATA:new a(6029,d.FAIL,"User-associated message requires user authentication data."), | |
UNEXPECTED_MESSAGE_SENDER:new a(6030,d.FAIL,"Message sender is equal to the local entity or not the master token entity."),NONREPLAYABLE_MESSAGE_REQUIRES_MASTERTOKEN:new a(6031,d.FAIL,"Non-replayable message requires a master token."),NONREPLAYABLE_ID_OUT_OF_RANGE:new a(6032,d.FAIL,"Non-replayable message non-replayable ID is out of range."),MESSAGE_SERVICETOKEN_MISMATCH:new a(6033,d.FAIL,"Service token master token or user ID token serial number does not match the message token serial numbers."), | |
MESSAGE_PEER_SERVICETOKEN_MISMATCH:new a(6034,d.FAIL,"Peer service token master token or user ID token serial number does not match the message peer token serial numbers."),RESPONSE_REQUIRES_INTEGRITY_PROTECTION:new a(6035,d.KEYX_REQUIRED,"Message response requires integrity protection."),HANDSHAKE_DATA_MISSING:new a(6036,d.FAIL,"Handshake message is not renewable or does not contain key request data."),MESSAGE_RECIPIENT_MISMATCH:new a(6037,d.FAIL,"Message recipient does not match local identity."), | |
UNIDENTIFIED_KEYX_SCHEME:new a(7E3,d.FAIL,"Unable to identify key exchange scheme."),KEYX_FACTORY_NOT_FOUND:new a(7001,d.FAIL,"No factory registered for key exchange scheme."),KEYX_REQUEST_NOT_FOUND:new a(7002,d.FAIL,"No key request found matching header key response data."),UNIDENTIFIED_KEYX_KEY_ID:new a(7003,d.FAIL,"Unable to identify key exchange key ID."),UNSUPPORTED_KEYX_KEY_ID:new a(7004,d.FAIL,"Unsupported key exchange key ID."),UNIDENTIFIED_KEYX_MECHANISM:new a(7005,d.FAIL,"Unable to identify key exchange mechanism."), | |
UNSUPPORTED_KEYX_MECHANISM:new a(7006,d.FAIL,"Unsupported key exchange mechanism."),KEYX_RESPONSE_REQUEST_MISMATCH:new a(7007,d.FAIL,"Key exchange response does not match request."),KEYX_PRIVATE_KEY_MISSING:new a(7008,d.FAIL,"Key exchange private key missing."),UNKNOWN_KEYX_PARAMETERS_ID:new a(7009,d.FAIL,"Key exchange parameters ID unknown or invalid."),KEYX_MASTER_TOKEN_MISSING:new a(7010,d.FAIL,"Master token required for key exchange is missing."),KEYX_INVALID_PUBLIC_KEY:new a(7011,d.FAIL,"Key exchange public key is invalid."), | |
KEYX_PUBLIC_KEY_MISSING:new a(7012,d.FAIL,"Key exchange public key missing."),KEYX_WRAPPING_KEY_MISSING:new a(7013,d.FAIL,"Key exchange wrapping key missing."),KEYX_WRAPPING_KEY_ID_MISSING:new a(7014,d.FAIL,"Key exchange wrapping key ID missing."),KEYX_INVALID_WRAPPING_KEY:new a(7015,d.FAIL,"Key exchange wrapping key is invalid."),KEYX_INCORRECT_DATA:new a(7016,d.FAIL,"Entity used incorrect wrapping key data type"),CRYPTEX_ENCRYPTION_ERROR:new a(8E3,d.FAIL,"Error encrypting data with cryptex."),CRYPTEX_DECRYPTION_ERROR:new a(8001, | |
d.FAIL,"Error decrypting data with cryptex."),CRYPTEX_MAC_ERROR:new a(8002,d.FAIL,"Error computing MAC with cryptex."),CRYPTEX_VERIFY_ERROR:new a(8003,d.FAIL,"Error verifying MAC with cryptex."),CRYPTEX_CONTEXT_CREATION_FAILURE:new a(8004,d.FAIL,"Error creating cryptex cipher or MAC context."),DATAMODEL_DEVICE_ACCESS_ERROR:new a(8005,d.TRANSIENT_FAILURE,"Error accessing data model device."),DATAMODEL_DEVICETYPE_NOT_FOUND:new a(8006,d.FAIL,"Data model device type not found."),CRYPTEX_KEYSET_UNSUPPORTED:new a(8007, | |
d.FAIL,"Cryptex key set not supported."),CRYPTEX_PRIVILEGE_EXCEPTION:new a(8008,d.FAIL,"Insufficient privileges for cryptex operation."),CRYPTEX_WRAP_ERROR:new a(8009,d.FAIL,"Error wrapping data with cryptex."),CRYPTEX_UNWRAP_ERROR:new a(8010,d.FAIL,"Error unwrapping data with cryptex."),CRYPTEX_COMMS_FAILURE:new a(8011,d.TRANSIENT_FAILURE,"Error comunicating with cryptex."),CRYPTEX_SIGN_ERROR:new a(8012,d.FAIL,"Error computing signature with cryptex."),INTERNAL_EXCEPTION:new a(9E3,d.TRANSIENT_FAILURE, | |
"Internal exception."),MSL_COMMS_FAILURE:new a(9001,d.FAIL,"Error communicating with MSL entity."),NONE:new a(9999,d.FAIL,"Special unit test error.")});Object.freeze(a);var A;(function(){A=Y.Class.create(Error());A.mixin({init:function(a,b,c){function d(){return h?h:this.cause&&this.cause instanceof A?this.cause.messageId:y}Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);var f=a.message;b&&(f+=" ["+b+"]");var h,k=this.stack;Object.defineProperties(this,{message:{value:f,writable:!1, | |
configurable:!0},error:{value:a,writable:!1,configurable:!0},cause:{value:c,writable:!1,configurable:!0},name:{value:"MslException",writable:!1,configurable:!0},masterToken:{value:null,writable:!0,configurable:!1},entityAuthenticationData:{value:null,writable:!0,configurable:!1},userIdToken:{value:null,writable:!0,configurable:!1},userAuthenticationData:{value:null,writable:!0,configurable:!1},messageId:{get:d,set:function(a){if(0>a||a>Ia)throw new RangeError("Message ID "+a+" is outside the valid range."); | |
d()||(h=a)},configurable:!0},stack:{get:function(){var a=this.toString();k&&(a+="\n"+k);c&&c.stack&&(a+="\nCaused by "+c.stack);return a},configurable:!0}})},setEntity:function(a){!a||this.masterToken||this.entityAuthenticationData||(a instanceof Yb?this.masterToken=a:a instanceof $c&&(this.entityAuthenticationData=a));return this},setUser:function(a){!a||this.userIdToken||this.userAuthenticationData||(a instanceof wd?this.userIdToken=a:a instanceof ad&&(this.userAuthenticationData=a));return this}, | |
setMessageId:function(a){this.messageId=a;return this},toString:function(){return this.name+": "+this.message}})})();var T=A.extend({init:function zf(a,b,c){zf.base.call(this,a,b,c);Object.defineProperties(this,{name:{value:"MslCryptoException",writable:!1,configurable:!0}})}}),ba=A.extend({init:function Af(a,b,c){Af.base.call(this,a,b,c);Object.defineProperties(this,{name:{value:"MslEncodingException",writable:!1,configurable:!0}})}}),zc=A.extend({init:function Kg(a,b,c){Kg.base.call(this,a,b,c); | |
Object.defineProperties(this,{name:{value:"MslEntityAuthException",writable:!1,configurable:!0}})}}),Db;(function(){Db=Y.Class.create(Error());Db.mixin({init:function(a,b,c){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);var d=this.stack;Object.defineProperties(this,{message:{value:a,writable:!1,configurable:!1},cause:{value:b,writable:!1,configurable:!1},requestCause:{value:c,writable:!1,configurable:!1},name:{value:"MslErrorResponseException",writable:!1,configurable:!0}, | |
stack:{get:function(){var a=this.toString();d&&(a+="\n"+d);b&&b.stack&&(a+="\nCaused by "+b.stack);return a},configurable:!0}})},toString:function(){return this.name+": "+this.message}})})();var ob;(function(){ob=Y.Class.create(Error());ob.mixin({init:function(a,b){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);var c=this.stack;Object.defineProperties(this,{message:{value:a,writable:!1,configurable:!1},cause:{value:b,writable:!1,configurable:!1},name:{value:"MslIoException", | |
writable:!1,configurable:!0},stack:{get:function(){var a=this.toString();c&&(a+="\n"+c);b&&b.stack&&(a+="\nCaused by "+b.stack);return a},configurable:!0}})},toString:function(){return this.name+": "+this.message}})})();var W;(function(){W=Y.Class.create(Error());W.mixin({init:function(a,b){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);var c=this.stack;Object.defineProperties(this,{message:{value:a,writable:!1,configurable:!1},cause:{value:b,writable:!1,configurable:!1}, | |
name:{value:"MslInternalException",writable:!1,configurable:!0},stack:{get:function(){var a=this.toString();c&&(a+="\n"+c);b&&b.stack&&(a+="\nCaused by "+b.stack);return a},configurable:!0}})},toString:function(){return this.name+": "+this.message}})})();var ub;(function(){ub=Y.Class.create(Error());ub.mixin({init:function(a,b){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);var c=this.stack;Object.defineProperties(this,{message:{value:a,writable:!1,configurable:!1},cause:{value:b, | |
writable:!1,configurable:!1},name:{value:"MslInterruptedException",writable:!1,configurable:!0},stack:{get:function(){var a=this.toString();c&&(a+="\n"+c);b&&b.stack&&(a+="\nCaused by "+b.stack);return a},configurable:!0}})},toString:function(){return this.name+": "+this.message}})})();var Ta=A.extend({init:function Lg(a,b,c){Lg.base.call(this,a,b,c);Object.defineProperties(this,{name:{value:"MslKeyExchangeException",writable:!1,configurable:!0}})}}),qc=A.extend({init:function Fe(a,b){Fe.base.call(this, | |
a);Object.defineProperties(this,{masterToken:{value:b,writable:!1,configurable:!1},name:{value:"MslMasterTokenException",writable:!1,configurable:!0}})}}),za=A.extend({init:function Mg(a,b,c){Mg.base.call(this,a,b,c);Object.defineProperties(this,{name:{value:"MslMessageException",writable:!1,configurable:!0}})}}),Ra=A.extend({init:function Q(a,b,c){Q.base.call(this,a,b,c);Object.defineProperties(this,{name:{value:"MslUserAuthException",writable:!1,configurable:!0}})}}),Ea,Ma,Va;(function(){function a(b){return"undefined"=== | |
typeof b?!1:b}function b(a){return a&&a.length?(Ma===u.V2014_02&&(a=a.map(function(a){return"wrap"==a?"wrapKey":"unwrap"==a?"unwrapKey":a})),a):Ma===u.V2014_02?"encrypt decrypt sign verify deriveKey wrapKey unwrapKey".split(" "):"encrypt decrypt sign verify deriveKey wrap unwrap".split(" ")}function c(a,b,l,g,t){return Promise.resolve().then(function(){return C.importKey(a,b,l,g,t)}).catch(function(c){if("spki"!==a&&"pkcs8"!==a)throw c;c=ASN1.webCryptoAlgorithmToJwkAlg(l);var d=ASN1.webCryptoUsageToJwkKeyOps(t); | |
c=ASN1.rsaDerToJwk(b,c,d,g);if(!c)throw Error("Could not make valid JWK from DER input");c=JSON.stringify(c);return C.importKey("jwk",O(c),l,g,t)})}function d(a,b){return Promise.resolve().then(function(){return C.exportKey(a,b)}).catch(function(l){if("spki"!==a&&"pkcs8"!==a)throw l;return C.exportKey("jwk",b).then(function(a){a=JSON.parse(ca(new Uint8Array(a)));a=ASN1.jwkToRsaDer(a);if(!a)throw Error("Could not make valid DER from JWK input");return a.getDer().buffer})})}var u=Va={LEGACY:1,V2014_01:2, | |
V2014_02:3,LATEST:3};Object.freeze(Va);Ma=u.LATEST;Ea={encrypt:function(a,b,l){switch(Ma){case u.LEGACY:return new Promise(function(g,c){var q=C.encrypt(a,b,l);q.oncomplete=function(a){g(a.target.result)};q.onerror=function(a){c(a)}});case u.V2014_01:case u.V2014_02:return C.encrypt(a,b,l).then(function(a){return new Uint8Array(a)});default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},decrypt:function(a,b,l){switch(Ma){case u.LEGACY:return new Promise(function(g,c){var q= | |
C.decrypt(a,b,l);q.oncomplete=function(a){g(a.target.result)};q.onerror=function(a){c(a)}});case u.V2014_01:case u.V2014_02:return C.decrypt(a,b,l).then(function(a){return new Uint8Array(a)});default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},sign:function(a,b,l){switch(Ma){case u.LEGACY:return new Promise(function(g,c){var q=C.sign(a,b,l);q.oncomplete=function(a){g(a.target.result)};q.onerror=function(a){c(a)}});case u.V2014_01:case u.V2014_02:return C.sign(a,b,l).then(function(a){return new Uint8Array(a)}); | |
default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},verify:function(a,b,l,g){switch(Ma){case u.LEGACY:return new Promise(function(c,q){var d=C.verify(a,b,l,g);d.oncomplete=function(a){c(a.target.result)};d.onerror=function(a){q(a)}});case u.V2014_01:case u.V2014_02:return C.verify(a,b,l,g);default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},digest:function(a,b){switch(Ma){case u.LEGACY:return new Promise(function(l,g){var c=C.digest(a,b);c.oncomplete= | |
function(a){l(a.target.result)};c.onerror=function(a){g(a)}});case u.V2014_01:case u.V2014_02:return C.digest(a,b).then(function(a){return new Uint8Array(a)});default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},generateKey:function(c,m,l){var g=a(m),t=b(l);switch(Ma){case u.LEGACY:return new Promise(function(a,b){var l=C.generateKey(c,g,t);l.oncomplete=function(b){a(b.target.result)};l.onerror=function(a){b(a)}});case u.V2014_01:case u.V2014_02:return C.generateKey(c, | |
g,t);default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},deriveKey:function(c,m,l,g,t){var q=a(g),d=b(t);switch(Ma){case u.LEGACY:return new Promise(function(a,b){var g=C.deriveKey(c,m,l,q,d);g.oncomplete=function(b){a(b.target.result)};g.onerror=function(a){b(a)}});case u.V2014_01:case u.V2014_02:return C.deriveKey(c,m,l,q,d);default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},importKey:function(d,m,l,g,t){var q=a(g),J=b(t);switch(Ma){case u.LEGACY:return new Promise(function(a, | |
b){var g=C.importKey(d,m,l,q,J);g.oncomplete=function(b){a(b.target.result)};g.onerror=function(a){b(a)}});case u.V2014_01:case u.V2014_02:return c(d,m,l,q,J);default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},exportKey:function(a,b){switch(Ma){case u.LEGACY:return new Promise(function(l,g){var c=C.exportKey(a,b);c.oncomplete=function(a){l(a.target.result)};c.onerror=function(a){g(a)}});case u.V2014_01:case u.V2014_02:return d(a,b).then(function(a){return new Uint8Array(a)}); | |
default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},wrapKey:function(a,b,l,g){switch(Ma){case u.LEGACY:return new Promise(function(a,c){var d=C.wrapKey(b,l,g);d.oncomplete=function(b){a(b.target.result)};d.onerror=function(a){c(a)}});case u.V2014_01:case u.V2014_02:return C.wrapKey(a,b,l,g).then(function(a){return new Uint8Array(a)});default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}},unwrapKey:function(c,m,l,g,t,q,d){switch(Ma){case u.LEGACY:return new Promise(function(a, | |
b){var g=C.unwrapKey(m,t,l);g.oncomplete=function(b){a(b.target.result)};g.onerror=function(a){b(a)}});case u.V2014_01:case u.V2014_02:return C.unwrapKey(c,m,l,g,t,a(q),b(d));default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}}};fc&&fc.getKeyByName&&(Ea.getKeyByName=function(a){switch(Ma){case u.LEGACY:return new Promise(function(b,l){var g=fc.getKeyByName(a);g.oncomplete=function(a){b(a.target.result)};g.onerror=function(a){l(a)}});case u.V2014_01:case u.V2014_02:return fc.getKeyByName(a); | |
default:throw Error("Unsupported Web Crypto version "+WEB_CRYPTO_VERSION+".");}})})();var gc={name:"AES-KW"},rc={name:"AES-CBC"},Mb={name:"HMAC",hash:{name:"SHA-256"}},Aa={name:"RSA-OAEP",hash:{name:"SHA-1"}},$a={name:"RSAES-PKCS1-v1_5"},pb={name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},qb=["encrypt","decrypt"],yb=["wrap","unwrap"],ia=["sign","verify"],Nb,Oc,Eb;(function(){Nb=Y.Class.create({init:function(c,d,f){function h(a){b(d,function(){var b=a?L(a):y;Object.defineProperties(u,{rawKey:{value:c, | |
writable:!1,configurable:!1},keyData:{value:a,writable:!1,configurable:!1},keyDataB64:{value:b,writable:!1,configurable:!1}});return this},u)}var u=this;b(d,function(){if(!c||"object"!=typeof c)throw new T(a.INVALID_SYMMETRIC_KEY);!f&&c.extractable?Ea.exportKey("raw",c).then(function(a){h(new Uint8Array(a))},function(b){d.error(new T(a.KEY_EXPORT_ERROR,"raw"))}):h(f)},u)},size:function(){return this.keyData.length},toByteArray:function(){return this.keyData},toBase64:function(){return this.keyDataB64}}); | |
Oc=function(a,b){new Nb(a,b)};Eb=function(c,d,f,h){b(h,function(){try{c="string"==typeof c?I(c):c}catch(b){throw new T(a.INVALID_SYMMETRIC_KEY,"keydata "+c,b);}Ea.importKey("raw",c,d,!0,f).then(function(a){new Nb(a,h,c)},function(b){h.error(new T(a.INVALID_SYMMETRIC_KEY))})})}})();var he,Pc,Gc;(function(){he=Y.Class.create({init:function(c,d,f){function h(a){b(d,function(){Object.defineProperties(u,{rawKey:{value:c,writable:!1,configurable:!1},encoded:{value:a,writable:!1,configurable:!1}});return this}, | |
u)}var u=this;b(d,function(){if(!c||"object"!=typeof c||"public"!=c.type)throw new TypeError("Only original public crypto keys are supported.");!f&&c.extractable?Ea.exportKey("spki",c).then(function(a){h(new Uint8Array(a))},function(b){d.error(new T(a.KEY_EXPORT_ERROR,"spki"))}):h(f)})},getEncoded:function(){return this.encoded}});Pc=function(a,b){new he(a,b)};Gc=function(c,d,f,h){b(h,function(){try{c="string"==typeof c?I(c):c}catch(b){throw new T(a.INVALID_PUBLIC_KEY,"spki "+c,b);}Ea.importKey("spki", | |
c,d,!0,f).then(function(a){new he(a,h,c)},function(b){h.error(new T(a.INVALID_PUBLIC_KEY))})})}})();var Ie,Yc;(function(){Ie=Y.Class.create({init:function(c,d,f){function h(a){b(d,function(){Object.defineProperties(u,{rawKey:{value:c,writable:!1,configurable:!1},encoded:{value:a,writable:!1,configurable:!1}});return this},u)}var u=this;b(d,function(){if(!c||"object"!=typeof c||"private"!=c.type)throw new TypeError("Only original private crypto keys are supported.");!f&&c.extractable?Ea.exportKey("pkcs8", | |
c).then(function(a){h(new Uint8Array(a))},function(b){d.error(new T(a.KEY_EXPORT_ERROR,"pkcs8"))}):h(f)})},getEncoded:function(){return this.encoded}});Yc=function(a,b){new Ie(a,b)}})();var Hb,Je,Xa,ie;(function(){var c=ie={V1:1,V2:2};Hb=Y.Class.create({init:function(a,d,f,u){b(u,function(){var b=c.V1,m=a,l=null,g;for(g in vd)if(vd[g]==a){b=c.V2;m=null;l=a;break}Object.defineProperties(this,{version:{value:b,writable:!1,enumerable:!1,configurable:!1},keyId:{value:m,writable:!1,configurable:!1},cipherSpec:{value:l, | |
writable:!1,configurable:!1},iv:{value:d,writable:!1,configurable:!1},ciphertext:{value:f,writable:!1,configurable:!1}});return this},this)},toJSON:function(){var a={};switch(this.version){case c.V1:a.keyid=this.keyId;this.iv&&(a.iv=L(this.iv));a.ciphertext=L(this.ciphertext);a.sha256="AA==";break;case c.V2:a.version=this.version;a.cipherspec=this.cipherSpec;this.iv&&(a.iv=L(this.iv));a.ciphertext=L(this.ciphertext);break;default:throw new W("Ciphertext envelope version "+this.version+" encoding unsupported."); | |
}return a}});Je=function(a,b,c,d){new Hb(a,b,c,d)};Xa=function(d,f,h){b(h,function(){var b=d.keyid,w=d.cipherspec,m=d.iv,l=d.ciphertext,g=d.sha256;if(!f)if((f=d.version)&&"number"===typeof f&&f===f){var t=!1,q;for(q in c)if(c[q]==f){t=!0;break}if(!t)throw new T(a.UNIDENTIFIED_CIPHERTEXT_ENVELOPE,"ciphertext envelope "+JSON.stringify(d));}else f=c.V1;switch(f){case c.V1:if("string"!==typeof b||m&&"string"!==typeof m||"string"!==typeof l||"string"!==typeof g)throw new ba(a.JSON_PARSE_ERROR,"ciphertext envelope "+ | |
JSON.stringify(d));break;case c.V2:q=d.version;if(q!=c.V2)throw new T(a.UNIDENTIFIED_CIPHERTEXT_ENVELOPE,"ciphertext envelope "+JSON.stringify(d));if("string"!==typeof w||m&&"string"!==typeof m||"string"!==typeof l)throw new ba(a.JSON_PARSE_ERROR,"ciphertext envelope "+JSON.stringify(d));w=Df(w);if(!w)throw new T(a.UNIDENTIFIED_CIPHERSPEC,"ciphertext envelope "+JSON.stringify(d));b=w;break;default:throw new T(a.UNSUPPORTED_CIPHERTEXT_ENVELOPE,"ciphertext envelope "+JSON.stringify(d));}try{m&&(m=I(m)), | |
l=I(l)}catch(J){throw new T(a.CIPHERTEXT_ENVELOPE_PARSE_ERROR,"encryption envelope "+JSON.stringify(d),J);}new Hb(b,m,l,h)})}})();var Ob,je,Ib,ke;(function(){var c=ke={V1:1,V2:2};Ob=Y.Class.create({init:function(a,b,d){var u;switch(a){case c.V1:u=d;break;case c.V2:u={};u.version=a;u.algorithm=b;u.signature=L(d);u=P(JSON.stringify(u),sa);break;default:throw new W("Signature envelope version "+a+" encoding unsupported.");}Object.defineProperties(this,{version:{value:a,writable:!1,enumerable:!1,configurable:!1}, | |
algorithm:{value:b,writable:!1,configurable:!1},signature:{value:d,writable:!1,configurable:!1},bytes:{value:u,writable:!1,configurable:!1}})}});je=function(){var a,d,f,u;2==arguments.length?(a=c.V1,d=arguments[0],f=null,u=arguments[1]):3==arguments.length&&(a=c.V2,f=arguments[0],d=arguments[1],u=arguments[2]);b(u,function(){return new Ob(a,f,d)})};Ib=function(d,f,k){b(k,function(){if(f)switch(f){case c.V1:return new Ob(c.V1,null,d);case c.V2:try{var b=h(d,sa),w=JSON.parse(b),m=parseInt(w.version), | |
l=w.algorithm,g=w.signature;if(!m||"number"!==typeof m||m!=m||"string"!==typeof l||"string"!==typeof g)throw new ba(a.JSON_PARSE_ERROR,"signature envelope "+L(d));if(c.V2!=m)throw new T(a.UNSUPPORTED_SIGNATURE_ENVELOPE,"signature envelope "+L(d));var t=Jd(l);if(!t)throw new T(a.UNIDENTIFIED_ALGORITHM,"signature envelope "+L(d));var q=I(g);if(!q)throw new T(a.INVALID_SIGNATURE,"signature envelope "+Base64Util.encode(d));return new Ob(c.V2,t,q)}catch(J){if(J instanceof SyntaxError)throw new ba(a.JSON_PARSE_ERROR, | |
"signature envelope "+L(d),J);throw J;}default:throw new T(a.UNSUPPORTED_SIGNATURE_ENVELOPE,"signature envelope "+L(d));}try{b=h(d,sa),w=JSON.parse(b)}catch(k){w=null}if(w&&w.version){if(b=w.version,"number"!==typeof b||b!==b)b=c.V1}else b=c.V1;switch(b){case c.V1:return new Ob(b,null,d);case c.V2:t=w.algorithm;g=w.signature;if("string"!==typeof t||"string"!==typeof g)return new Ob(c.V1,null,d);t=Jd(t);if(!t)return new Ob(c.V1,null,d);try{q=I(g)}catch(M){return new Ob(c.V1,null,d)}return new Ob(b, | |
t,q);default:throw new T(a.UNSUPPORTED_SIGNATURE_ENVELOPE,"signature envelope "+d);}})}})();var xd=Y.Class.create({encrypt:function(a,b){},decrypt:function(a,b){},wrap:function(a,b){},unwrap:function(a,b,c,d){},sign:function(a,b){},verify:function(a,b,c){}}),Hc,Ac;(function(){var c=Ac={RSA_OAEP:Aa.name,A128KW:gc.name};D="A128GCM";Hc=Y.Class.create({init:function(a,b,d,f,w){switch(b){case c.RSA_OAEP:w=w&&(w.rawKey||w);f=f&&(f.rawKey||f);break;case c.A128KW:w=f=f&&(f.rawKey||f);break;default:throw new W("Unsupported algorithm: "+ | |
b);}Object.defineProperties(this,{_ctx:{value:a,writable:!1,enumerable:!1,configurable:!1},_algo:{value:b,writable:!1,enumerable:!1,configurable:!1},_enc:{value:d,writable:!1,enumerable:!1,configurable:!1},_wrapKey:{value:w,writable:!1,enumerable:!1,configurable:!1},_unwrapKey:{value:f,writable:!1,enumerable:!1,configurable:!1}})},encrypt:function(b,c){c.error(new T(a.ENCRYPT_NOT_SUPPORTED))},decrypt:function(b,c){c.error(new T(a.DECRYPT_NOT_SUPPORTED))},wrap:function(c,d){b(d,function(){Ea.wrapKey("jwe+jwk", | |
c.rawKey,this._wrapKey,this._wrapKey.algorithm).then(function(a){d.result(a)},function(b){d.error(new T(a.WRAP_ERROR))})},this)},unwrap:function(c,d,f,u){function w(c){b(u,function(){switch(c.type){case "secret":Oc(c,u);break;case "public":Pc(c,u);break;case "private":Yc(c,u);break;default:throw new T(a.UNSUPPORTED_KEY,"type: "+c.type);}})}b(u,function(){Ea.unwrapKey("jwe+jwk",c,this._unwrapKey,this._unwrapKey.algorithm,d,!1,f).then(function(a){w(a)},function(){u.error(new T(a.UNWRAP_ERROR))})},this)}, | |
sign:function(b,c){c.error(new T(a.SIGN_NOT_SUPPORTED))},verify:function(b,c,d){d.error(new T(a.VERIFY_NOT_SUPPORTED))}})})();var bd=xd.extend({encrypt:function(a,b){b.result(a)},decrypt:function(a,b){b.result(a)},wrap:function(a,b){b.result(a)},unwrap:function(a,b,c,d){d.result(a)},sign:function(a,b){b.result(new Uint8Array(0))},verify:function(a,b,c){c.result(!0)}}),cd,fb;(function(){var c=fb={ENCRYPT_DECRYPT_OAEP:1,ENCRYPT_DECRYPT_PKCS1:2,WRAP_UNWRAP_OAEP:3,WRAP_UNWRAP_PKCS1:4,SIGN_VERIFY:5};cd= | |
xd.extend({init:function ab(a,b,d,m,l){ab.base.call(this);d&&(d=d.rawKey);m&&(m=m.rawKey);Object.defineProperties(this,{id:{value:b,writable:!1,enumerable:!1,configurable:!1},privateKey:{value:d,writable:!1,enumerable:!1,configurable:!1},publicKey:{value:m,writable:!1,enumerable:!1,configurable:!1},transform:{value:l==c.ENCRYPT_DECRYPT_PKCS1?$a:l==c.ENCRYPT_DECRYPT_OAEP?Aa:"nullOp",writable:!1,enumerable:!1,configurable:!1},wrapTransform:{value:l==c.WRAP_UNWRAP_PKCS1?$a:l==c.WRAP_UNWRAP_OAEP?Aa:"nullOp", | |
writable:!1,enumerable:!1,configurable:!1},algo:{value:l==c.SIGN_VERIFY?pb:"nullOp",writable:!1,enumerable:!1,configurable:!1}})},encrypt:function(c,d){var f=this;b(d,function(){if("nullOp"==this.transform)return c;if(!this.publicKey)throw new T(a.ENCRYPT_NOT_SUPPORTED,"no public key");if(0==c.length)return c;Ea.encrypt(f.transform,f.publicKey,c).then(function(b){Je(f.id,null,b,{result:function(b){try{var c=JSON.stringify(b);d.result(P(c,sa))}catch(g){d.error(new T(a.ENCRYPT_ERROR,null,g))}},error:function(b){b instanceof | |
A||(b=new T(a.ENCRYPT_ERROR,null,b));d.error(b)}})},function(b){d.error(new T(a.ENCRYPT_ERROR))})},this)},decrypt:function(c,d){var f=this;b(d,function(){if("nullOp"==this.transform)return c;if(!this.privateKey)throw new T(a.DECRYPT_NOT_SUPPORTED,"no private key");if(0==c.length)return c;var b;try{var m=h(c,sa);b=JSON.parse(m)}catch(l){if(l instanceof SyntaxError)throw new T(a.CIPHERTEXT_ENVELOPE_PARSE_ERROR,null,l);throw new T(a.DECRYPT_ERROR,null,l);}Xa(b,ie.V1,{result:function(b){try{if(b.keyId!= | |
f.id)throw new T(a.ENVELOPE_KEY_ID_MISMATCH);var c=d.result;Ea.decrypt(f.transform,f.privateKey,b.ciphertext).then(c,function(b){d.error(new T(a.DECRYPT_ERROR))})}catch(l){l instanceof A?d.error(l):d.error(new T(a.DECRYPT_ERROR,null,l))}},error:function(b){b instanceof ba&&(b=new T(a.CIPHERTEXT_ENVELOPE_ENCODE_ERROR,null,b));b instanceof A||(b=new T(a.DECRYPT_ERROR,null,b));d.error(b)}})},this)},wrap:function(c,d){b(d,function(){if("nullOp"==this.wrapTransform||!this.publicKey)throw new T(a.WRAP_NOT_SUPPORTED, | |
"no public key");var b=d.result;Ea.wrapKey("jwk",c.rawKey,this.publicKey,this.wrapTransform).then(b,function(b){d.error(new T(a.WRAP_ERROR))})},this)},unwrap:function(c,d,f,w){function m(c){b(w,function(){switch(c.type){case "secret":Oc(c,w);break;case "public":Pc(c,w);break;case "private":Yc(c,w);break;default:throw new T(a.UNSUPPORTED_KEY,"type: "+c.type);}})}b(w,function(){if("nullOp"==this.wrapTransform||!this.privateKey)throw new T(a.UNWRAP_NOT_SUPPORTED,"no private key");Ea.unwrapKey("jwk", | |
c,this.privateKey,{name:this.privateKey.algorithm.name,hash:{name:"SHA-1"}},d,!1,f).then(m,function(b){w.error(new T(a.UNWRAP_ERROR))})},this)},sign:function(c,d){b(d,function(){if("nullOp"==this.algo)return new Uint8Array(0);if(!this.privateKey)throw new T(a.SIGN_NOT_SUPPORTED,"no private key");Ea.sign(this.algo,this.privateKey,c).then(function(a){je(a,{result:function(a){d.result(a.bytes)},error:d.error})},function(b){d.error(new T(a.SIGNATURE_ERROR))})},this)},verify:function(c,d,f){var w=this; | |
b(f,function(){if("nullOp"==this.algo)return!0;if(!this.publicKey)throw new T(a.VERIFY_NOT_SUPPORTED,"no public key");Ib(d,ke.V1,{result:function(d){b(f,function(){var b=f.result;Ea.verify(this.algo,this.publicKey,d.signature,c).then(b,function(b){f.error(new T(a.SIGNATURE_ERROR))})},w)},error:f.error})},this)}})})();var hc;(function(){hc=xd.extend({init:function tb(a,b,c,d,m){tb.base.call(this);c=c&&c.rawKey;d=d&&d.rawKey;m=m&&m.rawKey;Object.defineProperties(this,{ctx:{value:a,writable:!1,enumerable:!1, | |
configurable:!1},id:{value:b,writable:!1,enumerable:!1,configurable:!1},encryptionKey:{value:c,writable:!1,enumerable:!1,configurable:!1},hmacKey:{value:d,writable:!1,enumerable:!1,configurable:!1},wrapKey:{value:m,writable:!1,enumerable:!1,configurable:!1}})},encrypt:function(c,d){var f=this;b(d,function(){if(!this.encryptionKey)throw new T(a.ENCRYPT_NOT_SUPPORTED,"no encryption/decryption key");if(0==c.length)return c;var b=new Uint8Array(16);this.ctx.getRandom().nextBytes(b);Ea.encrypt({name:rc.name, | |
iv:b},f.encryptionKey,c).then(function(c){c=new Uint8Array(c);Je(f.id,b,c,{result:function(b){try{var c=JSON.stringify(b);d.result(P(c,sa))}catch(g){d.error(new T(a.ENCRYPT_ERROR,null,g))}},error:function(b){b instanceof A||(b=new T(a.ENCRYPT_ERROR,null,b));d.error(b)}})},function(b){d.error(new T(a.ENCRYPT_ERROR))})},this)},decrypt:function(c,d){var f=this;b(d,function(){if(!this.encryptionKey)throw new T(a.DECRYPT_NOT_SUPPORTED,"no encryption/decryption key");if(0==c.length)return c;var b;try{var w= | |
h(c,sa);b=JSON.parse(w)}catch(m){if(m instanceof SyntaxError)throw new T(a.CIPHERTEXT_ENVELOPE_PARSE_ERROR,null,m);throw new T(a.DECRYPT_ERROR,null,m);}Xa(b,ie.V1,{result:function(b){try{if(b.keyId!=f.id)throw new T(a.ENVELOPE_KEY_ID_MISMATCH);Ea.decrypt({name:rc.name,iv:b.iv},f.encryptionKey,b.ciphertext).then(function(a){a=new Uint8Array(a);d.result(a)},function(){d.error(new T(a.DECRYPT_ERROR))})}catch(c){c instanceof A?d.error(c):d.error(new T(a.DECRYPT_ERROR,null,c))}},error:function(b){b instanceof | |
ba&&(b=new T(a.CIPHERTEXT_ENVELOPE_ENCODE_ERROR,null,b));b instanceof A||(b=new T(a.DECRYPT_ERROR,null,b));d.error(b)}})},this)},wrap:function(c,d){b(d,function(){if(!this.wrapKey)throw new T(a.WRAP_NOT_SUPPORTED,"no wrap/unwrap key");Ea.wrapKey("raw",c.rawKey,this.wrapKey,this.wrapKey.algorithm).then(function(a){d.result(a)},function(b){d.error(new T(a.WRAP_ERROR))})},this)},unwrap:function(c,d,f,h){function w(c){b(h,function(){switch(c.type){case "secret":Oc(c,h);break;case "public":Pc(c,h);break; | |
case "private":Yc(c,h);break;default:throw new T(a.UNSUPPORTED_KEY,"type: "+c.type);}})}b(h,function(){if(!this.wrapKey)throw new T(a.UNWRAP_NOT_SUPPORTED,"no wrap/unwrap key");Ea.unwrapKey("raw",c,this.wrapKey,this.wrapKey.algorithm,d,!1,f).then(function(a){w(a)},function(b){h.error(new T(a.UNWRAP_ERROR))})},this)},sign:function(c,d){var f=this;b(d,function(){if(!this.hmacKey)throw new T(a.SIGN_NOT_SUPPORTED,"no HMAC key.");Ea.sign(Mb,this.hmacKey,c).then(function(a){b(d,function(){var b=new Uint8Array(a); | |
je(b,{result:function(a){d.result(a.bytes)},error:d.error})},f)},function(){d.error(new T(a.HMAC_ERROR))})},this)},verify:function(c,d,f){var h=this;b(f,function(){if(!this.hmacKey)throw new T(a.VERIFY_NOT_SUPPORTED,"no HMAC key.");Ib(d,ke.V1,{result:function(d){b(f,function(){Ea.verify(Mb,this.hmacKey,d.signature,c).then(function(a){f.result(a)},function(b){f.error(new T(a.HMAC_ERROR))})},h)},error:f.error})},this)}})})();var Jb=hc.extend({init:function tb(b,c,d,f,m){if(d||f||m)tb.base.call(this, | |
b,d+"_"+c.sequenceNumber,f,m,null);else{if(!c.isDecrypted())throw new qc(a.MASTERTOKEN_UNTRUSTED,c);tb.base.call(this,b,c.identity+"_"+c.sequenceNumber,c.encryptionKey,c.hmacKey,null)}}}),Ke=xd.extend({encrypt:function(a,b){b.result(a)},decrypt:function(a,b){b.result(a)},wrap:function(a,b){b.error(new W("Wrap is unsupported by the MSL token crypto context."))},unwrap:function(a,b,c,d){d.error(new W("Unwrap is unsupported by the MSL token crypto context."))},sign:function(a,b){b.result(new Uint8Array(0))}, | |
verify:function(a,b,c){c.result(!1)}}),Pa={PSK:"PSK",MGK:"MGK",X509:"X509",RSA:"RSA",NPTICKET:"NPTICKET",ECC:"ECC",NONE:"NONE"};Object.freeze(Pa);var $c,le;(function(){$c=Y.Class.create({init:function(a){Object.defineProperties(this,{scheme:{value:a,writable:!1,configurable:!1}})},getIdentity:function(){},getAuthData:function(){},equals:function(a){return this===a?!0:a instanceof $c?this.scheme==a.scheme:!1},toJSON:function(){var a={};a.scheme=this.scheme;a.authdata=this.getAuthData();return a}}); | |
le=function(b,c){var d=c.scheme,f=c.authdata;if(!d||!f)throw new ba(a.JSON_PARSE_ERROR,"entityauthdata "+JSON.stringify(c));if(!Pa[d])throw new zc(a.UNIDENTIFIED_ENTITYAUTH_SCHEME,d);var w=b.getEntityAuthenticationFactory(d);if(!w)throw new zc(a.ENTITYAUTH_FACTORY_NOT_FOUND,d);return w.createData(b,f)}})();var Kd=Y.Class.create({init:function(a){Object.defineProperties(this,{scheme:{value:a,writable:!1,configurable:!1}})},createData:function(a,b){},getCryptoContext:function(a,b){}}),sc,Le;(function(){sc= | |
$c.extend({init:function ab(a){ab.base.call(this,Pa.MGK);Object.defineProperties(this,{identity:{value:a,writable:!1,configurable:!1}})},getIdentity:function(){return this.identity},getAuthData:function(){var a={};a.identity=this.identity;return a},equals:function Ya(a){return this===a?!0:a instanceof sc?Ya.base.call(this,this,a)&&this.identity==a.identity:!1}});Le=function(b){var c=b.identity;if(!c)throw new ba(a.JSON_PARSE_ERROR,"mgk authdata"+JSON.stringify(b));return new sc(c)}})();var Pg=Kd.extend({init:function ab(a){ab.base.call(this, | |
Pa.MGK);Object.defineProperties(this,{localIdentity:{value:a,writable:!1,enumerable:!1,configurable:!1}})},createData:function(a,b){return Le(b)},getCryptoContext:function(b,c){if(!(c instanceof sc))throw new W("Incorrect authentication data type "+JSON.stringify(c)+".");if(c.identity!=this.localIdentity)throw(new zc(a.ENTITY_NOT_FOUND,"mgk "+c.identity)).setEntity(c);return new bd}}),tc,Ef;(function(){tc=$c.extend({init:function Ya(a){Ya.base.call(this,Pa.PSK);Object.defineProperties(this,{identity:{value:a, | |
writable:!1}})},getIdentity:function(){return this.identity},getAuthData:function(){var a={};a.identity=this.identity;return a},equals:function u(a){return this===a?!0:a instanceof tc?u.base.call(this,this,a)&&this.identity==a.identity:!1}});Ef=function(b){var c=b.identity;if(!c)throw new ba(a.JSON_PARSE_ERROR,"psk authdata"+JSON.stringify(b));return new tc(c)}})();var Me;Me=Kd.extend({init:function Ya(a){Ya.base.call(this,Pa.PSK);Object.defineProperties(this,{localIdentity:{value:a,writable:!1,enumerable:!1, | |
configurable:!1}})},createData:function(a,b){return Ef(b)},getCryptoContext:function(b,c){if(!(c instanceof tc))throw new W("Incorrect authentication data type "+JSON.stringify(c)+".");if(c.getIdentity()!=this.localIdentity)throw(new zc(a.ENTITY_NOT_FOUND,"psk "+c.identity)).setEntity(c);return new bd}});var me,Ff;(function(){me=$c.extend({init:function u(a,b){u.base.call(this,Pa.RSA);Object.defineProperties(this,{identity:{value:a,writable:!1,configurable:!1},publicKeyId:{value:b,writable:!1,configurable:!1}})}, | |
getIdentity:function(){return this.identity},getAuthData:function(){var a={};a.identity=this.identity;a.pubkeyid=this.publicKeyId;return a},equals:function w(a){return this===a?!0:a instanceof me?w.base.call(this,this,a)&&this.identity==a.identity&&this.publicKeyId==a.publicKeyId:!1}});Ff=function(b){var c=b.identity,l=b.pubkeyid;if(!c||"string"!==typeof c||!l||"string"!==typeof l)throw new ba(a.JSON_PARSE_ERROR,"RSA authdata"+JSON.stringify(b));return new me(c,l)}})();var Qg=Kd.extend({init:function u(a){u.base.call(this, | |
Pa.RSA);Object.defineProperties(this,{store:{value:a,writable:!1,enumerable:!1,configurable:!1}})},createData:function(a,b){return Ff(b)},getCryptoContext:function(b,c){if(!(c instanceof me))throw new W("Incorrect authentication data type "+c+".");var d=c.identity,l=c.publicKeyId,g=this.store.getPublicKey(l);if(!g)throw(new zc(a.RSA_PUBLICKEY_NOT_FOUND,l)).setEntity(c);return new cd(b,d,null,g,fb.SIGN_VERIFY)}}),Hd,Gf;(function(){Hd=$c.extend({init:function w(a){w.base.call(this,Pa.NONE);Object.defineProperties(this, | |
{identity:{value:a,writable:!1}})},getIdentity:function(){return this.identity},getAuthData:function(){var a={};a.identity=this.identity;return a},equals:function m(a){return this===a?!0:a instanceof Hd?m.base.call(this,this,a)&&this.identity==a.identity:!1}});Gf=function(b){var c=b.identity;if(!c)throw new ba(a.JSON_PARSE_ERROR,"Unauthenticated authdata"+JSON.stringify(b));return new Hd(c)}})();var Og=Kd.extend({init:function w(){w.base.call(this,Pa.NONE)},createData:function(a,b){return Gf(b)}, | |
getCryptoContext:function(a,b){if(!(b instanceof Hd))throw new W("Incorrect authentication data type "+JSON.stringify(b)+".");return new bd}}),Rg=Y.Class.create({init:function(){Object.defineProperties(this,{rsaKeys:{value:{},writable:!1,enumerable:!1,configurable:!1}})},addPublicKey:function(a,b){if(!(b instanceof he))throw new W("Incorrect key data type "+b+".");this.rsaKeys[a]=b},getIdentities:function(){return Object.keys(this.rsaKeys)},removePublicKey:function(a){delete this.rsaKeys[a]},getPublicKey:function(a){return this.rsaKeys[a]}}), | |
Ne=Y.Class.create({abort:function(){},close:function(){},mark:function(){},reset:function(){},markSupported:function(){},read:function(a,b,c){}}),ne=Y.Class.create({abort:function(){},close:function(a,b){},write:function(a,b,c,g,d){},flush:function(a,b){}}),Sg=Y.Class.create({init:function(a){Object.defineProperties(this,{_data:{value:a,writable:!1,enumerable:!1,configurable:!1},_closed:{value:!1,writable:!0,enumerable:!1,configurable:!1},_currentPosition:{value:0,writable:!0,enumerable:!1,configurable:!1}, | |
_mark:{value:-1,writable:!0,enumerable:!1,configurable:!1}})},abort:function(){},close:function(){this._close=!0},mark:function(){this._mark=this._currentPosition},reset:function(){if(-1==this._mark)throw new ob("Stream has not been marked.");this._currentPosition=this._mark},markSupported:function(){return!0},read:function(a,b,c){k(c,function(){if(this._closed)throw new ob("Stream is already closed.");if(this._currentPosition==this._data.length)return null;-1==a&&(a=this._data.length-this._currentPosition); | |
var b=this._data.subarray(this._currentPosition,this._currentPosition+a);this._currentPosition+=b.length;return b},this)}}),Hf=Y.Class.create({init:function(){var a={_closed:{value:!1,writable:!0,enumerable:!1,configurable:!1},_result:{value:new Uint8Array(0),writable:!0,enuemrable:!1,configurable:!1},_buffered:{value:[],writable:!1,enumerable:!1,configurable:!1}};Object.defineProperties(this,a)},abort:function(){},close:function(a,b){this._closed=!0;b.result(!0)},write:function(a,b,c,g,d){k(d,function(){if(this._closed)throw new ob("Stream is already closed."); | |
if(0>b)throw new RangeError("Offset cannot be negative.");if(0>c)throw new RangeError("Length cannot be negative.");if(b+c>a.length)throw new RangeError("Offset plus length cannot be greater than the array length.");var g=a.subarray(b,c);this._buffered.push(g);return g.length},this)},flush:function(a,b){for(;0<this._buffered.length;){var c=this._buffered.shift();if(this._result){var g=new Uint8Array(this._result.length+c.length);g.set(this._result);g.set(c,this._result.length);this._result=g}else this._result= | |
new Uint8Array(c)}b.result(!0)},size:function(){this.flush(1,{result:function(){}});return this._result.length},toByteArray:function(){this.flush(1,{result:function(){}});return this._result}}),Fd,Tg=Y.Class.create({getResponse:function(a,b,c){}});(function(){var a=ne.extend({init:function(a,b){var c={_httpLocation:{value:a,writable:!1,enumerable:!1,configurable:!1},_timeout:{value:b,writable:!0,enumerable:!1,configurable:!1},_buffer:{value:new Hf,writable:!1,enumerable:!1,configurable:!1},_response:{value:y, | |
writable:!0,enumerable:!1,configurable:!1},_abortToken:{value:y,writable:!0,enumerable:!1,configurable:!1},_responseQueue:{value:new Fa,writable:!0,enumerable:!1,configurable:!1}};Object.defineProperties(this,c)},setTimeout:function(a){this._timeout=a},getResponse:function(a,b){var c=this;this._responseQueue.poll(a,{result:function(a){k(b,function(){a&&this._responseQueue.add(a);return a},c)},timeout:function(){k(b,function(){this._response={isTimeout:!0};this._responseQueue.add(this._response);this.abort(); | |
b.timeout()},c)},error:function(a){k(b,function(){this._response={isError:!0};this._responseQueue.add(this._response);throw a;},c)}})},abort:function(){this._abortToken&&this._abortToken.abort()},close:function(a,b){var c=this;k(b,function(){if(this._response)return!0;var a=this._buffer.toByteArray();0<a.length&&(this._abortToken=this._httpLocation.getResponse({body:a},this._timeout,{result:function(a){c._response={response:a};c._responseQueue.add(c._response)},timeout:function(){c._response={isTimeout:!0}; | |
c._responseQueue.add(c._response)},error:function(a){c._response={isError:!0,error:a};c._responseQueue.add(c._response)}}));return!0},this)},write:function(a,b,c,d,m){k(m,function(){if(this._response)throw new ob("HttpOutputStream already closed.");this._buffer.write(a,b,c,d,m)},this)},flush:function(a,b){k(b,function(){if(this._response)return!0;this._buffer.flush(a,b)},this)}}),b=Ne.extend({init:function(a){Object.defineProperties(this,{_out:{value:a,writable:!1,enumerable:!1,configurable:!1},_buffer:{value:y, | |
writable:!0,enumerable:!1,configurable:!1},_exception:{value:y,writable:!0,enumerable:!1,configurable:!1},_timedout:{value:!1,writable:!0,enumerable:!1,configurable:!1},_aborted:{value:!1,writable:!0,enumerable:!1,configurable:!1},_json:{value:y,writable:!0,enumerable:!1,configurable:!1}})},abort:function(){this._out.abort()},close:function(){this._buffer&&this._buffer.close()},mark:function(){this._buffer||this._buffer.mark()},reset:function(){this._buffer&&this._buffer.reset()},markSupported:function(){if(this._buffer)return this._buffer.markSupported()}, | |
read:function(a,b,c){function d(q){k(c,function(){if(!q)return new Uint8Array(0);this._out.getResponse(b,{result:function(d){k(c,function(){var q;if(d.isTimeout)this._timedout=!0,c.timeout();else{if(d.isError)throw this._exception=d.error||new ob("Unknown HTTP exception."),this._exception;if(!d.response)throw this._exception=new ob("Missing HTTP response."),this._exception;d.response.json!==y&&(this._json=d.response.json,this.getJSON=function(){return m._json});q=d.response.content||O("string"=== | |
typeof d.response.body?d.response.body:JSON.stringify(this._json));this._buffer=new Sg(q);this._buffer.read(a,b,c)}},m)},timeout:function(){c.timeout()},error:function(a){c.error(a)}})},m)}var m=this;k(c,function(){if(this._exception)throw this._exception;if(this._timedout)c.timeout();else{if(this._aborted)return new Uint8Array(0);this._buffer?this._buffer.read(a,b,c):this._out.close(b,{result:function(a){d(a)},timeout:function(){c.timeout()},error:function(a){c.error(a)}})}},m)}});Fd=Y.Class.create({init:function(a, | |
b){Object.defineProperties(this,{_httpLocation:{value:a,writable:!1,enumerable:!1,configurable:!1},_timeout:{value:b,writable:!0,enumerable:!1,configurable:!1}})},setTimeout:function(a){this._timeout=a},openConnection:function(){var c=new a(this._httpLocation,this._timeout);return{input:new b(c),output:c}}})})();var He;(function(){var a=ne.extend({init:function(){var a={_buffer:{value:new Uint8Array,writable:!0,enumerable:!1,configurable:!1}};Object.defineProperties(this,a)},setTimeout:function(){}, | |
getResponse:function(a,b){b.result({success:!1,content:null,errorHttpCode:y,errorSubCode:y})},abort:function(){},close:function(a,b){b.result(!0)},write:function(a,b,c,d,m){try{if(0>b)throw new RangeError("Offset cannot be negative.");if(0>c)throw new RangeError("Length cannot be negative.");if(b+c>a.length)throw new RangeError("Offset plus length cannot be greater than the array length.");var f=a.subarray(b,c),h=new Uint8Array(this._buffer.length+f.length);h.set(this._buffer);h.set(f,this._buffer.length); | |
this._buffer=h;m.result(f.length)}catch(B){m.error(B)}},flush:function(a,b){b.result(!0)},request:function(){return this._buffer}}),b=Ne.extend({init:function(){},abort:function(){},close:function(){},mark:function(){},reset:function(){},markSupported:function(){},read:function(a,b,c){c.result(new Uint8Array(16))}});He=Y.Class.create({init:function(){var c={output:{value:new a,writable:!1,enumerable:!1,configurable:!1},input:{value:new b,writable:!0,enumerable:!1,configurable:!1}};Object.defineProperties(this, | |
c)},setTimeout:function(){},openConnection:function(){return{input:this.input,output:this.output}},getRequest:function(){return ca(this.output.request())}})})();var If=function(a,b,c){function d(a){a=new Ug(h(a,"utf-8"));var b=[],c;for(c=a.nextValue();c!==y;)b.push(c),c=a.nextValue();return b}(function(a,b,d){a.read(-1,b,{result:function(a){a&&a.length?d(null,a):d(null,null)},timeout:function(){c.timeout()},error:function(a){d(a,null)}})})(a,b,function(b,q){b?c.error(b):q?a.getJSON!==y&&"function"=== | |
typeof a.getJSON?c.result(a.getJSON()):c.result(d(q)):c.result(null)})},ic={SYMMETRIC_WRAPPED:"SYMMETRIC_WRAPPED",ASYMMETRIC_WRAPPED:"ASYMMETRIC_WRAPPED",DIFFIE_HELLMAN:"DIFFIE_HELLMAN",JWE_LADDER:"JWE_LADDER",JWK_LADDER:"JWK_LADDER",AUTHENTICATED_DH:"AUTHENTICATED_DH"};Object.freeze(ic);var Ld,Jf;(function(){Ld=Y.Class.create({init:function(a){Object.defineProperties(this,{keyExchangeScheme:{value:a,writable:!1,configurable:!1}})},getKeydata:function(){},toJSON:function(){var a={};a.scheme=this.keyExchangeScheme; | |
a.keydata=this.getKeydata();return a},equals:function(a){return this===a?!0:a instanceof Ld?this.keyExchangeScheme==a.keyExchangeScheme:!1},uniqueKey:function(){return this.keyExchangeScheme}});Jf=function(c,d,l){b(l,function(){var b=d.scheme,t=d.keydata;if(!b||!t||"object"!==typeof t)throw new ba(a.JSON_PARSE_ERROR,"keyrequestdata "+JSON.stringify(d));if(!ic[b])throw new Ta(a.UNIDENTIFIED_KEYX_SCHEME,b);var q=c.getKeyExchangeFactory(b);if(!q)throw new Ta(a.KEYX_FACTORY_NOT_FOUND,b);q.createRequestData(c, | |
t,l)})}})();var Md,Oe;(function(){Md=Y.Class.create({init:function(a,b){Object.defineProperties(this,{masterToken:{value:a,writable:!1,configurable:!1},keyExchangeScheme:{value:b,wrtiable:!1,configurable:!1}})},getKeydata:function(){},toJSON:function(){var a={};a.mastertoken=this.masterToken;a.scheme=this.keyExchangeScheme;a.keydata=this.getKeydata();return a},equals:function(a){return this===a?!0:a instanceof Md?this.masterToken.equals(a.masterToken)&&this.keyExchangeScheme==a.keyExchangeScheme: | |
!1},uniqueKey:function(){return this.masterToken.uniqueKey()+":"+this.keyExchangeScheme}});Oe=function(c,d,l){b(l,function(){var g=d.mastertoken,t=d.scheme,q=d.keydata;if(!t||!g||"object"!==typeof g||!q||"object"!==typeof q)throw new ba(a.JSON_PARSE_ERROR,"keyresponsedata "+JSON.stringify(d));if(!ic[t])throw new Ta(a.UNIDENTIFIED_KEYX_SCHEME,t);Rc(c,g,{result:function(d){b(l,function(){var b=c.getKeyExchangeFactory(t);if(!b)throw new Ta(a.KEYX_FACTORY_NOT_FOUND,t);return b.createResponseData(c,d, | |
q)})},error:function(a){l.error(a)}})})}})();var jc;(function(){var c=Y.Class.create({init:function(a,b){Object.defineProperties(this,{keyResponseData:{value:a,writable:!1,configurable:!1},cryptoContext:{value:b,writable:!1,configurable:!1}})}});jc=Y.Class.create({init:function(a){Object.defineProperties(this,{scheme:{value:a,writable:!1,configurable:!1}})},createRequestData:function(a,b,c){},createResponseData:function(a,b,c){},generateResponse:function(a,b,c,d){},getCryptoContext:function(a,b,c, | |
d,q){},generateSessionKeys:function(c,d){b(d,function(){var b=new Uint8Array(16),t=new Uint8Array(32);c.getRandom().nextBytes(b);c.getRandom().nextBytes(t);Eb(b,rc,qb,{result:function(b){Eb(t,Mb,ia,{result:function(a){d.result({encryptionKey:b,hmacKey:a})},error:function(b){d.error(new T(a.SESSION_KEY_CREATION_FAILURE,null,b))}})},error:function(b){d.error(new T(a.SESSION_KEY_CREATION_FAILURE,null,b))}})})},importSessionKeys:function(a,b,c){Eb(a,rc,qb,{result:function(a){Eb(b,Mb,ia,{result:function(b){c.result({encryptionKey:a, | |
hmacKey:b})},error:function(a){c.error(a)}})},error:function(a){c.error(a)}})}});jc.KeyExchangeData=c})();var Kf,Pe,Lf;(function(){function c(g,l,f,h,k){b(k,function(){switch(l){case d.PSK:var c=new tc(h),G=g.getEntityAuthenticationFactory(Pa.PSK);if(!G)throw new Ta(a.UNSUPPORTED_KEYX_MECHANISM,l);c=G.getCryptoContext(g,c);return new Hc(g,Ac.A128KW,D,y);case d.MGK:c=new sc(h);G=g.getEntityAuthenticationFactory(Pa.MGK);if(!G)throw new Ta(a.UNSUPPORTED_KEYX_MECHANISM,l);c=G.getCryptoContext(g,c);return new Hc(g, | |
Ac.A128KW,D,y);case d.WRAP:c=g.getMslCryptoContext();c.unwrap(f,gc,yb,{result:function(a){b(k,function(){return new Hc(g,Ac.A128KW,D,a)})},error:k.error});break;default:throw new Ta(a.UNSUPPORTED_KEYX_MECHANISM,l);}})}var d={PSK:"PSK",MGK:"MGK",WRAP:"WRAP"},l=Pe=Ld.extend({init:function q(a,b){q.base.call(this,ic.JWE_LADDER);switch(a){case d.WRAP:if(!b)throw new W("Previous wrapping key based key exchange requires the previous wrapping key data and ID.");break;default:b=null}Object.defineProperties(this, | |
{mechanism:{value:a,writable:!1,configurable:!1},wrapdata:{value:b,writable:!1,configurable:!1}})},getKeydata:function(){var a={};a.mechanism=this.mechanism;this.wrapdata&&(a.wrapdata=L(this.wrapdata));return a},equals:function J(a){return a===this?!0:a instanceof Pe?J.base.call(this,a)&&this.mechanism==a.mechanism&&p(this.wrapdata,a.wrapdata):!1},uniqueKey:function ma(){var a=ma.base.call(this)+":"+this.mechanism;this.wrapdata&&(a+=":"+Z(this.wrapdata));return a}}),g=Lf=Md.extend({init:function M(a, | |
b,c,d,g){M.base.call(this,a,ic.JWE_LADDER);Object.defineProperties(this,{wrapKey:{value:b,writable:!1,configurable:!1},wrapdata:{value:c,writable:!1,configurable:!1},encryptionKey:{value:d,writable:!1,configurable:!1},hmacKey:{value:g,writable:!1,configurable:!1}})},getKeydata:function(){var a={};a.wrapkey=L(this.wrapKey);a.wrapdata=L(this.wrapdata);a.encryptionkey=L(this.encryptionKey);a.hmackey=L(this.hmacKey);return a},equals:function B(a){return this===a?!0:a instanceof Lf?B.base.call(this,a)&& | |
p(this.wrapKey,a.wrapKey)&&p(this.wrapdata,a.wrapdata)&&p(this.encryptionKey,a.encryptionKey)&&p(this.hmacKey,a.hmacKey):!1},uniqueKey:function G(){return G.base.call(this)+":"+Z(this.wrapKey)+":"+Z(this.wrapdata)+":"+Z(this.encryptionKey)+":"+Z(this.hmacKey)}});Kf=jc.extend({init:function ya(a){ya.base.call(this,ic.JWE_LADDER);Object.defineProperties(this,{repository:{value:a,writable:!1,enumerable:!1,configurable:!1}})},createRequestData:function(c,g,f){b(f,function(){var b=g.mechanism,c=g.wrapdata; | |
if(!b||b==d.WRAP&&(!c||"string"!==typeof c))throw new ba(a.JSON_PARSE_ERROR,"keydata "+JSON.stringify(g));if(!d[b])throw new Ta(a.UNIDENTIFIED_KEYX_MECHANISM,b);var f;switch(b){case d.WRAP:try{f=I(c)}catch(h){throw new Ta(a.KEYX_WRAPPING_KEY_MISSING,"keydata "+g.toString());}if(null==f||0==f.length)throw new Ta(a.KEYX_WRAPPING_KEY_MISSING,"keydata "+g.toString());break;default:f=null}return new l(b,f)})},createResponseData:function(b,c,d){b=d.wrapkey;var l=d.wrapdata,f=d.encryptionkey,m=d.hmackey; | |
if(!(b&&"string"===typeof b&&l&&"string"===typeof l&&f&&"string"===typeof f&&m)||"string"!==typeof m)throw new ba(a.JSON_PARSE_ERROR,"keydata "+JSON.stringify(d));var h,k,w,ga;try{h=I(b),k=I(l)}catch(Sa){throw new T(a.INVALID_SYMMETRIC_KEY,"keydata "+JSON.stringify(d),Sa);}try{w=I(f)}catch(xb){throw new T(a.INVALID_ENCRYPTION_KEY,"keydata "+JSON.stringify(d),xb);}try{ga=I(m)}catch(Cb){throw new T(a.INVALID_HMAC_KEY,"keydata "+JSON.stringify(d),Cb);}return new g(c,h,k,w,ga)},generateResponse:function(d, | |
f,m,h){function k(a,c,g){La.generateSessionKeys(d,{result:function(d){b(h,function(){fa(a,c,g,d.encryptionKey,d.hmacKey)},La)},error:function(a){b(h,function(){a instanceof A&&a.setEntity(ga);throw a;})}})}function fa(a,g,l,m,k){b(h,function(){c(d,f.mechanism,f.wrapdata,a,{result:function(a){a.wrap(g,{result:function(a){pc(g,l,m,k,a)},error:function(a){b(h,function(){a instanceof A&&a.setEntity(ga);throw a;})}})},error:function(a){b(h,function(){a instanceof A&&a.setEntity(ga);throw a;})}})},La)} | |
function pc(a,c,g,l,f){b(h,function(){var m=new Hc(d,Ac.A128KW,D,a);m.wrap(g,{result:function(a){m.wrap(l,{result:function(b){na(c,f,g,a,l,b)},error:function(a){b(h,function(){a instanceof A&&a.setEntity(ga);throw a;})}})},error:function(a){b(h,function(){a instanceof A&&a.setEntity(ga);throw a;})}})},La)}function na(a,c,l,f,k,fa){b(h,function(){var ha=d.getTokenFactory();ga?ha.renewMasterToken(d,ga,l,k,{result:function(l){b(h,function(){var b=new Jb(d,l),m=new g(l,c,a,f,fa);return new jc.KeyExchangeData(m, | |
b,h)},La)},error:function(a){b(h,function(){a instanceof A&&a.setEntity(ga);throw a;})}}):ha.createMasterToken(d,m,l,k,{result:function(l){b(h,function(){var b=new Jb(d,l),m=new g(l,c,a,f,fa);return new jc.KeyExchangeData(m,b,h)},La)},error:h.error})},La)}var La=this,ga;b(h,function(){if(!(f instanceof l))throw new W("Key request data "+JSON.stringify(f)+" was not created by this factory.");var c=m;if(m instanceof Yb){if(!m.isVerified())throw new qc(a.MASTERTOKEN_UNTRUSTED,m);ga=m;c=m.identity}var g= | |
new Uint8Array(16);d.getRandom().nextBytes(g);Eb(g,gc,yb,{result:function(a){b(h,function(){d.getMslCryptoContext().wrap(a,{result:function(b){k(c,a,b)},error:function(a){b(h,function(){a instanceof A&&a.setEntity(ga);throw a;},La)}})},La)},error:function(c){b(h,function(){throw(new T(a.WRAP_KEY_CREATION_FAILURE,null,c)).setEntity(ga);},La)}})},La)},getCryptoContext:function(c,f,h,k,ha){function fa(a,d,g,l,f){b(ha,function(){var m=new Hc(c,Ac.A128KW,D,f);m.unwrap(d.encryptionKey,rc,qb,{result:function(f){m.unwrap(d.hmacKey, | |
Mb,ia,{result:function(a){b(ha,function(){this.repository.addCryptoContext(d.wrapdata,m);this.repository.removeCryptoContext(g);return new Jb(c,d.masterToken,l,f,a)},w)},error:function(c){b(ha,function(){c instanceof A&&c.setEntity(a);throw c;})}})},error:function(c){b(ha,function(){c instanceof A&&c.setEntity(a);throw c;})}})},w)}var w=this;b(ha,function(){if(!(f instanceof l))throw new W("Key request data "+JSON.stringify(f)+" was not created by this factory.");if(!(h instanceof g))throw new W("Key response data "+ | |
JSON.stringify(h)+" was not created by this factory.");var k=f.mechanism,Gb=f.wrapdata;c.getEntityAuthenticationData(null,{result:function(g){b(ha,function(){var l=g.getIdentity(),f;switch(k){case d.PSK:f=new tc(l);var Cb=c.getEntityAuthenticationFactory(Pa.PSK);if(!Cb)throw(new Ta(a.UNSUPPORTED_KEYX_MECHANISM,k)).setEntity(g);f=Cb.getCryptoContext(c,f);f=new Hc(c,Ac.A128KW,D,y);break;case d.MGK:f=new sc(l);Cb=c.getEntityAuthenticationFactory(Pa.MGK);if(!Cb)throw(new Ta(a.UNSUPPORTED_KEYX_MECHANISM, | |
k)).setEntity(g);f=Cb.getCryptoContext(c,f);f=new Hc(c,Ac.A128KW,D,f.wrapKey);break;case d.WRAP:f=this.repository.getCryptoContext(Gb);if(!f)throw(new Ta(a.KEYX_WRAPPING_KEY_MISSING,L(Gb))).setEntity(g);break;default:throw(new Ta(a.UNSUPPORTED_KEYX_MECHANISM,k)).setEntity(g);}f.unwrap(h.wrapKey,gc,yb,{result:function(a){fa(g,h,Gb,l,a)},error:function(a){b(ha,function(){a instanceof A&&a.setEntity(g);throw a;})}})},w)},error:ha.error})},w)}})})();var Se,Pb,Da;(function(){function c(g,l,h,k,B){b(B, | |
function(){switch(l){case d.PSK:var c=new tc(k),w=g.getEntityAuthenticationFactory(Pa.PSK);if(!w)throw new Ta(a.UNSUPPORTED_KEYX_MECHANISM,l);c=w.getCryptoContext(g,c);return new f(y);case d.MGK:c=new sc(k);w=g.getEntityAuthenticationFactory(Pa.MGK);if(!w)throw new Ta(a.UNSUPPORTED_KEYX_MECHANISM,l);c=w.getCryptoContext(g,c);return new f(y);case d.WRAP:c=g.getMslCryptoContext();c.unwrap(h,gc,yb,{result:function(a){b(B,function(){return new f(a)})},error:B.error});break;default:throw new Ta(a.UNSUPPORTED_KEYX_MECHANISM, | |
l);}})}var d={PSK:"PSK",MGK:"MGK",WRAP:"WRAP"},l=Pb=Ld.extend({init:function J(a,b){J.base.call(this,ic.JWK_LADDER);switch(a){case d.WRAP:if(!b)throw new W("Previous wrapping key based key exchange requires the previous wrapping key data and ID.");break;default:b=null}Object.defineProperties(this,{mechanism:{value:a,writable:!1,configurable:!1},wrapdata:{value:b,writable:!1,configurable:!1}})},getKeydata:function(){var a={};a.mechanism=this.mechanism;this.wrapdata&&(a.wrapdata=L(this.wrapdata));return a}, | |
equals:function ma(a){return a===this?!0:a instanceof Pb?ma.base.call(this,a)&&this.mechanism==a.mechanism&&p(this.wrapdata,a.wrapdata):!1},uniqueKey:function M(){var a=M.base.call(this)+":"+this.mechanism;this.wrapdata&&(a+=":"+Z(this.wrapdata));return a}}),g=Da=Md.extend({init:function B(a,b,c,d,g){B.base.call(this,a,ic.JWK_LADDER);Object.defineProperties(this,{wrapKey:{value:b,writable:!1,configurable:!1},wrapdata:{value:c,writable:!1,configurable:!1},encryptionKey:{value:d,writable:!1,configurable:!1}, | |
hmacKey:{value:g,writable:!1,configurable:!1}})},getKeydata:function(){var a={};a.wrapkey=L(this.wrapKey);a.wrapdata=L(this.wrapdata);a.encryptionkey=L(this.encryptionKey);a.hmackey=L(this.hmacKey);return a},equals:function G(a){return this===a?!0:a instanceof Da?G.base.call(this,a)&&p(this.wrapKey,a.wrapKey)&&p(this.wrapdata,a.wrapdata)&&p(this.encryptionKey,a.encryptionKey)&&p(this.hmacKey,a.hmacKey):!1},uniqueKey:function ya(){return ya.base.call(this)+":"+Z(this.wrapKey)+":"+Z(this.wrapdata)+ | |
":"+Z(this.encryptionKey)+":"+Z(this.hmacKey)}}),f=xd.extend({init:function(a){a&&a.rawKey&&(a=a.rawKey);Object.defineProperties(this,{_wrapKey:{value:a,writable:!1,enumerable:!1,configurable:!1}})},encrypt:function(b,c){c.error(new T(a.ENCRYPT_NOT_SUPPORTED))},decrypt:function(b,c){c.error(new T(a.DECRYPT_NOT_SUPPORTED))},wrap:function(c,d){b(d,function(){Ea.wrapKey("jwk",c.rawKey,this._wrapKey,gc).then(function(a){d.result(a)},function(b){d.error(new T(a.WRAP_ERROR))})},this)},unwrap:function(c, | |
d,g,l){function f(c){b(l,function(){switch(c.type){case "secret":Oc(c,l);break;case "public":Pc(c,l);break;case "private":Yc(c,l);break;default:throw new T(a.UNSUPPORTED_KEY,"type: "+c.type);}})}b(l,function(){Ea.unwrapKey("jwk",c,this._wrapKey,gc,d,!1,g).then(function(a){f(a)},function(b){l.error(new T(a.UNWRAP_ERROR))})},this)},sign:function(b,c){c.error(new T(a.SIGN_NOT_SUPPORTED))},verify:function(b,c,d){d.error(new T(a.VERIFY_NOT_SUPPORTED))}});Se=jc.extend({init:function db(a){db.base.call(this, | |
ic.JWK_LADDER);Object.defineProperties(this,{repository:{value:a,writable:!1,enumerable:!1,configurable:!1}})},createRequestData:function(c,g,f){b(f,function(){var b=g.mechanism,c=g.wrapdata;if(!b||b==d.WRAP&&(!c||"string"!==typeof c))throw new ba(a.JSON_PARSE_ERROR,"keydata "+JSON.stringify(g));if(!d[b])throw new Ta(a.UNIDENTIFIED_KEYX_MECHANISM,b);var f;switch(b){case d.WRAP:try{f=I(c)}catch(t){throw new Ta(a.KEYX_WRAPPING_KEY_MISSING,"keydata "+g.toString());}if(null==f||0==f.length)throw new Ta(a.KEYX_WRAPPING_KEY_MISSING, | |
"keydata "+g.toString());break;default:f=null}return new l(b,f)})},createResponseData:function(b,c,d){b=d.wrapkey;var l=d.wrapdata,f=d.encryptionkey,m=d.hmackey;if(!(b&&"string"===typeof b&&l&&"string"===typeof l&&f&&"string"===typeof f&&m)||"string"!==typeof m)throw new ba(a.JSON_PARSE_ERROR,"keydata "+JSON.stringify(d));var t,h,k,Sa;try{t=I(b),h=I(l)}catch(w){throw new T(a.INVALID_SYMMETRIC_KEY,"keydata "+JSON.stringify(d),w);}try{k=I(f)}catch(Cb){throw new T(a.INVALID_ENCRYPTION_KEY,"keydata "+ | |
JSON.stringify(d),Cb);}try{Sa=I(m)}catch(Qe){throw new T(a.INVALID_HMAC_KEY,"keydata "+JSON.stringify(d),Qe);}return new g(c,t,h,k,Sa)},generateResponse:function(d,m,h,k){function fa(a,c,g){ga.generateSessionKeys(d,{result:function(d){b(k,function(){pc(a,c,g,d.encryptionKey,d.hmacKey)},ga)},error:function(a){b(k,function(){a instanceof A&&a.setEntity(Sa);throw a;})}})}function pc(a,g,l,f,t){b(k,function(){c(d,m.mechanism,m.wrapdata,a,{result:function(a){a.wrap(g,{result:function(a){na(g,l,f,t,a)}, | |
error:function(a){b(k,function(){a instanceof A&&a.setEntity(Sa);throw a;})}})},error:function(a){b(k,function(){a instanceof A&&a.setEntity(Sa);throw a;})}})},ga)}function na(a,c,d,g,l){b(k,function(){var m=new f(a);m.wrap(d,{result:function(a){m.wrap(g,{result:function(b){La(c,l,d,a,g,b)},error:function(a){b(k,function(){a instanceof A&&a.setEntity(Sa);throw a;})}})},error:function(a){b(k,function(){a instanceof A&&a.setEntity(Sa);throw a;})}})},ga)}function La(a,c,l,f,m,t){b(k,function(){var fa= | |
d.getTokenFactory();Sa?fa.renewMasterToken(d,Sa,l,m,{result:function(l){b(k,function(){var b=new Jb(d,l),m=new g(l,c,a,f,t);return new jc.KeyExchangeData(m,b,k)},ga)},error:function(a){b(k,function(){a instanceof A&&a.setEntity(Sa);throw a;})}}):fa.createMasterToken(d,h,l,m,{result:function(l){b(k,function(){var b=new Jb(d,l),m=new g(l,c,a,f,t);return new jc.KeyExchangeData(m,b,k)},ga)},error:k.error})},ga)}var ga=this,Sa;b(k,function(){if(!(m instanceof l))throw new W("Key request data "+JSON.stringify(m)+ | |
" was not created by this factory.");var c=h;if(h instanceof Yb){if(!h.isVerified())throw new qc(a.MASTERTOKEN_UNTRUSTED,h);Sa=h;c=h.identity}var g=new Uint8Array(16);d.getRandom().nextBytes(g);Eb(g,gc,yb,{result:function(a){b(k,function(){d.getMslCryptoContext().wrap(a,{result:function(b){fa(c,a,b)},error:function(a){b(k,function(){a instanceof A&&a.setEntity(Sa);throw a;},ga)}})},ga)},error:function(c){b(k,function(){throw(new T(a.WRAP_KEY_CREATION_FAILURE,null,c)).setEntity(Sa);},ga)}})},ga)}, | |
getCryptoContext:function(c,h,k,w,fa){function pc(a,d,g,l,m){b(fa,function(){var h=new f(m);h.unwrap(d.encryptionKey,rc,qb,{result:function(f){h.unwrap(d.hmacKey,Mb,ia,{result:function(a){b(fa,function(){this.repository.addCryptoContext(d.wrapdata,h);this.repository.removeCryptoContext(g);return new Jb(c,d.masterToken,l,f,a)},na)},error:function(c){b(fa,function(){c instanceof A&&c.setEntity(a);throw c;})}})},error:function(c){b(fa,function(){c instanceof A&&c.setEntity(a);throw c;})}})},na)}var na= | |
this;b(fa,function(){if(!(h instanceof l))throw new W("Key request data "+JSON.stringify(h)+" was not created by this factory.");if(!(k instanceof g))throw new W("Key response data "+JSON.stringify(k)+" was not created by this factory.");var w=h.mechanism,ha=h.wrapdata;c.getEntityAuthenticationData(null,{result:function(g){b(fa,function(){var l=g.getIdentity(),h;switch(w){case d.PSK:h=new tc(l);var Ub=c.getEntityAuthenticationFactory(Pa.PSK);if(!Ub)throw(new Ta(a.UNSUPPORTED_KEYX_MECHANISM,w)).setEntity(g); | |
h=Ub.getCryptoContext(c,h);h=new f(h.wrapKey);break;case d.MGK:h=new sc(l);Ub=c.getEntityAuthenticationFactory(Pa.MGK);if(!Ub)throw(new Ta(a.UNSUPPORTED_KEYX_MECHANISM,w)).setEntity(g);h=Ub.getCryptoContext(c,h);h=new f(h.wrapKey);break;case d.WRAP:h=this.repository.getCryptoContext(ha);if(!h)throw(new Ta(a.KEYX_WRAPPING_KEY_MISSING,L(ha))).setEntity(g);break;default:throw(new Ta(a.UNSUPPORTED_KEYX_MECHANISM,w)).setEntity(g);}h.unwrap(k.wrapKey,gc,yb,{result:function(a){pc(g,k,ha,l,a)},error:function(a){b(fa, | |
function(){a instanceof A&&a.setEntity(g);throw a;})}})},na)},error:fa.error})},na)}})})();var pa=Y.Class.create({addCryptoContext:function(a,b){},getCryptoContext:function(a){},removeCryptoContext:function(a){}}),Cf,Nd,Gd,Od;(function(){function c(b,g,l,f,h){switch(l){case d.JWE_RSA:case d.JWEJS_RSA:return new Hc(b,Ac.RSA_OAEP,D,f,h);case d.JWK_RSA:return new cd(b,g,f,h,fb.WRAP_UNWRAP_OAEP);case d.JWK_RSAES:return new cd(b,g,f,h,fb.WRAP_UNWRAP_PKCS1);default:throw new T(a.UNSUPPORTED_KEYX_MECHANISM, | |
l);}}var d=Nd={RSA:"RSA",ECC:"ECC",JWE_RSA:"JWE_RSA",JWEJS_RSA:"JWEJS_RSA",JWK_RSA:"JWK_RSA",JWK_RSAES:"JWK_RSAES"},l=Gd=Ld.extend({init:function J(a,b,c,d){J.base.call(this,ic.ASYMMETRIC_WRAPPED);Object.defineProperties(this,{keyPairId:{value:a,writable:!1,configurable:!1},mechanism:{value:b,writable:!1,configurable:!1},publicKey:{value:c,writable:!1,configurable:!1},privateKey:{value:d,writable:!1,configurable:!1}})},getKeydata:function(){var a={};a.keypairid=this.keyPairId;a.mechanism=this.mechanism; | |
a.publickey=L(this.publicKey.getEncoded());return a},equals:function ma(a){if(a===this)return!0;if(!(a instanceof Gd))return!1;var b=this.privateKey===a.privateKey||this.privateKey&&a.privateKey&&p(this.privateKey.getEncoded(),a.privateKey.getEncoded());return ma.base.call(this,a)&&this.keyPairId==a.keyPairId&&this.mechanism==a.mechanism&&p(this.publicKey.getEncoded(),a.publicKey.getEncoded())&&b},uniqueKey:function M(){var a=this.publicKey.getEncoded(),b=this.privateKey&&this.privateKey.getEncoded(), | |
a=M.base.call(this)+":"+this.keyPairId+":"+this.mechanism+":"+Z(a);b&&(a+=":"+Z(b));return a}}),g=function(c,g){b(g,function(){var b=c.keypairid,f=c.mechanism,h=c.publickey;if(!b||"string"!==typeof b||!f||!h||"string"!==typeof h)throw new ba(a.JSON_PARSE_ERROR,"keydata "+JSON.stringify(c));if(!d[f])throw new Ta(a.UNIDENTIFIED_KEYX_MECHANISM,f);try{var t=I(h);switch(f){case d.JWE_RSA:case d.JWEJS_RSA:case d.JWK_RSA:Gc(t,Aa,yb,{result:function(a){g.result(new l(b,f,a,null))},error:function(a){g.error(a)}}); | |
break;case d.JWK_RSAES:Gc(t,$a,yb,{result:function(a){g.result(new l(b,f,a,null))},error:function(a){g.error(a)}});break;default:throw new T(a.UNSUPPORTED_KEYX_MECHANISM,f);}}catch(k){if(!(k instanceof A))throw new T(a.INVALID_PUBLIC_KEY,"keydata "+JSON.stringify(c),k);throw k;}})},f=Od=Md.extend({init:function B(a,b,c,d){B.base.call(this,a,ic.ASYMMETRIC_WRAPPED);Object.defineProperties(this,{keyPairId:{value:b,writable:!1,configurable:!1},encryptionKey:{value:c,writable:!1,configurable:!1},hmacKey:{value:d, | |
writable:!1,configurable:!1}})},getKeydata:function(){var a={};a.keypairid=this.keyPairId;a.encryptionkey=L(this.encryptionKey);a.hmackey=L(this.hmacKey);return a},equals:function G(a){return this===a?!0:a instanceof Od?G.base.call(this,a)&&this.keyPairId==a.keyPairId&&p(this.encryptionKey,a.encryptionKey)&&p(this.hmacKey,a.hmacKey):!1},uniqueKey:function ya(){return ya.base.call(this)+":"+this.keyPairId+":"+Z(this.encryptionKey)+":"+Z(this.hmacKey)}});Cf=jc.extend({init:function db(){db.base.call(this, | |
ic.ASYMMETRIC_WRAPPED)},createRequestData:function(a,b,c){g(b,c)},createResponseData:function(b,c,d){b=d.keypairid;var g=d.encryptionkey,l=d.hmackey;if(!b||"string"!==typeof b||!g||"string"!==typeof g||!l||"string"!==typeof l)throw new ba(a.JSON_PARSE_ERROR,"keydata "+JSON.stringify(d));var m;try{m=I(g)}catch(h){throw new T(a.INVALID_ENCRYPTION_KEY,"keydata "+JSON.stringify(d),h);}var k;try{k=I(l)}catch(w){throw new T(a.INVALID_HMAC_KEY,"keydata "+JSON.stringify(d),w);}return new f(c,b,m,k)},generateResponse:function(a, | |
d,g,m){function h(l,f){b(m,function(){var h=c(a,d.keyPairId,d.mechanism,null,d.publicKey);h.wrap(l,{result:function(a){b(m,function(){h.wrap(f,{result:function(b){k(l,a,f,b)},error:function(a){b(m,function(){a instanceof A&&g instanceof Yb&&a.setEntity(g);throw a;},na)}})},na)},error:function(a){b(m,function(){a instanceof A&&g instanceof Yb&&a.setEntity(g);throw a;},na)}})},na)}function k(c,l,h,fa){b(m,function(){var k=a.getTokenFactory();g instanceof Yb?k.renewMasterToken(a,g,c,h,{result:function(c){b(m, | |
function(){var b=new Jb(a,c),g=new f(c,d.keyPairId,l,fa);return new jc.KeyExchangeData(g,b,m)},na)},error:function(a){b(m,function(){a instanceof A&&a.setEntity(g);throw a;},na)}}):k.createMasterToken(a,g,c,h,{result:function(c){b(m,function(){var b=new Jb(a,c),g=new f(c,d.keyPairId,l,fa);return new jc.KeyExchangeData(g,b,m)},na)},error:m.error})},na)}var na=this;b(m,function(){if(!(d instanceof l))throw new W("Key request data "+JSON.stringify(d)+" was not created by this factory.");this.generateSessionKeys(a, | |
{result:function(a){h(a.encryptionKey,a.hmacKey)},error:function(a){b(m,function(){a instanceof A&&g instanceof Yb&&a.setEntity(g);throw a;},na)}})},na)},getCryptoContext:function(d,g,m,h,k){var pc=this;b(k,function(){if(!(g instanceof l))throw new W("Key request data "+JSON.stringify(g)+" was not created by this factory.");if(!(m instanceof f))throw new W("Key response data "+JSON.stringify(m)+" was not created by this factory.");var na=g.keyPairId,n=m.keyPairId;if(na!=n)throw(new Ta(a.KEYX_RESPONSE_REQUEST_MISMATCH, | |
"request "+na+"; response "+n)).setEntity(h);n=g.privateKey;if(!n)throw(new Ta(a.KEYX_PRIVATE_KEY_MISSING,"request Asymmetric private key")).setEntity(h);var ga=c(d,na,g.mechanism,n,null);ga.unwrap(m.encryptionKey,rc,qb,{result:function(a){ga.unwrap(m.hmacKey,Mb,ia,{result:function(c){d.getEntityAuthenticationData(null,{result:function(g){b(k,function(){var b=g.getIdentity();return new Jb(d,m.masterToken,b,a,c)},pc)},error:function(a){b(k,function(){a instanceof A&&a.setEntity(h);throw a;},pc)}})}, | |
error:function(a){b(k,function(){a instanceof A&&a.setEntity(h);throw a;},pc)}})},error:function(a){b(k,function(){a instanceof A&&a.setEntity(h);throw a;},pc)}})},pc)}})})();var Ug=Y.Class.create({init:function(a){var b=Qa.parser(),c=[],d=[],f,q,h,k=0,M=!1;b.onerror=function(a){M||(M=!0,b.end())};b.onopenobject=function(a){if(f)f[h]={},d.push(f),f=f[h];else if(q){var b={};d.push(q);q.push(b);f=b;q=y}else f={};h=a};b.oncloseobject=function(){var a=d.pop();a?"object"===typeof a?f=a:(f=y,q=a):(c.push(f), | |
k=b.index,f=y)};b.onopenarray=function(){if(f)f[h]=[],d.push(f),q=f[h],f=y;else if(q){var a=[];d.push(q);q.push(a);q=a}else q=[]};b.onclosearray=function(){var a=d.pop();a?"object"===typeof a?(f=a,q=y):q=a:(c.push(q),k=b.index,q=y)};b.onkey=function(a){h=a};b.onvalue=function(a){f?f[h]=a:q?q.push(a):(c.push(a),k=b.index)};b.write(a).close();Object.defineProperties(this,{_values:{value:c,writable:!1,enumerable:!1,configurable:!1},_lastIndex:{value:k,writable:!0,enumerable:!1,configurable:!1}})},more:function(){return 0< | |
this._values.length},nextValue:function(){return 0==this._values.length?y:this._values.shift()},lastIndex:function(){return this._lastIndex}}),pe,Te,Nf,Ue,Of,qe;(function(){var c=Te="entityauthdata",d=Nf="mastertoken",l=Ue="headerdata",g=Of="errordata",f=qe="signature";pe=function(q,h,k,M){b(M,function(){var b=h[c],G=h[d],ya=h[f];if(b&&"object"!==typeof b||G&&"object"!==typeof G||"string"!==typeof ya)throw new ba(a.JSON_PARSE_ERROR,"header/errormsg "+JSON.stringify(h));var db;try{db=I(ya)}catch(Ub){throw new za(a.HEADER_SIGNATURE_INVALID, | |
"header/errormsg "+JSON.stringify(h),Ub);}var Gb=null;b&&(Gb=le(q,b));var ha=h[l];if(ha!=y&&null!=ha){if("string"!==typeof ha)throw new ba(a.JSON_PARSE_ERROR,"header/errormsg "+JSON.stringify(h));G?Rc(q,G,{result:function(a){Ve(q,ha,Gb,a,db,k,M)},error:function(a){M.error(a)}}):Ve(q,ha,Gb,null,db,k,M)}else if(b=h[g],b!=y&&null!=b){if("string"!==typeof b)throw new ba(a.JSON_PARSE_ERROR,"header/errormsg "+JSON.stringify(h));Pf(q,b,Gb,db,M)}else throw new ba(a.JSON_PARSE_ERROR,JSON.stringify(h));})}})(); | |
var Xc,Qf,Pf;(function(){function c(a,b){this.errordata=a;this.signature=b}Xc=Y.Class.create({init:function(c,d,g,f,q,h,k,w,B,G){var ya=this;b(G,function(){0>h&&(h=-1);if(0>f||f>Ia)throw new W("Message ID "+f+" is out of range.");if(!d)throw new za(a.MESSAGE_ENTITY_NOT_FOUND);if(B)return Object.defineProperties(this,{entityAuthenticationData:{value:d,writable:!1,configurable:!1},recipient:{value:g,writable:!1,configurable:!1},messageId:{value:f,writable:!1,configurable:!1},errorCode:{value:q,writable:!1, | |
configurable:!1},internalCode:{value:h,writable:!1,configurable:!1},errorMessage:{value:k,writable:!1,configurable:!1},userMessage:{value:w,writable:!1,configurable:!1},errordata:{value:B.errordata,writable:!1,enumerable:!1,configurable:!1},signature:{value:B.signature,writable:!1,enumerable:!1,configurable:!1}}),this;var db={};g&&(db.recipient=g);db.messageid=f;db.errorcode=q;0<h&&(db.internalcode=h);k&&(db.errormsg=k);w&&(db.usermsg=w);var Ub;try{Ub=c.getEntityAuthenticationFactory(d.scheme).getCryptoContext(c, | |
d)}catch(Gb){throw Gb instanceof A&&(Gb.setEntity(d),Gb.setMessageId(f)),Gb;}db=P(JSON.stringify(db),sa);Ub.encrypt(db,{result:function(a){b(G,function(){Ub.sign(a,{result:function(c){b(G,function(){Object.defineProperties(this,{entityAuthenticationData:{value:d,writable:!1,configurable:!1},recipient:{value:g,writable:!1,configurable:!1},messageId:{value:f,writable:!1,configurable:!1},errorCode:{value:q,writable:!1,configurable:!1},internalCode:{value:h,writable:!1,configurable:!1},errorMessage:{value:k, | |
writable:!1,configurable:!1},userMessage:{value:w,writable:!1,configurable:!1},errordata:{value:a,writable:!1,enumerable:!1,configurable:!1},signature:{value:c,writable:!1,enumerable:!1,configurable:!1}});return this},ya)},error:function(a){b(G,function(){a instanceof A&&(a.setEntity(d),a.setMessageId(f));throw a;},ya)}})},ya)},error:function(a){b(G,function(){a instanceof A&&(a.setEntity(d),a.setMessageId(f));throw a;},ya)}})},ya)},toJSON:function(){var a={};a[Te]=this.entityAuthenticationData;a[Of]= | |
L(this.errordata);a[qe]=L(this.signature);return a}});Qf=function(a,b,c,d,f,h,k,w,B){new Xc(a,b,c,d,f,h,k,w,null,B)};Pf=function(f,l,g,k,q){b(q,function(){if(!g)throw new za(a.MESSAGE_ENTITY_NOT_FOUND);var J;try{var ma=g.scheme,M=f.getEntityAuthenticationFactory(ma);if(!M)throw new zc(a.ENTITYAUTH_FACTORY_NOT_FOUND,ma);J=M.getCryptoContext(f,g)}catch(B){throw B instanceof A&&B.setEntity(g),B;}try{l=I(l)}catch(G){throw(new za(a.HEADER_DATA_INVALID,l,G)).setEntity(g);}if(!l||0==l.length)throw(new za(a.HEADER_DATA_MISSING, | |
l)).setEntity(g);J.verify(l,k,{result:function(B){b(q,function(){if(!B)throw(new T(a.MESSAGE_VERIFICATION_FAILED)).setEntity(g);J.decrypt(l,{result:function(J){b(q,function(){var b=h(J,sa),B;try{B=JSON.parse(b)}catch(M){if(M instanceof SyntaxError)throw(new ba(a.JSON_PARSE_ERROR,"errordata "+b,M)).setEntity(g);throw M;}var fa=B.recipient!==y?B.recipient:null,G=parseInt(B.messageid),ma=parseInt(B.errorcode),ya=parseInt(B.internalcode),ga=B.errormsg,Sa=B.usermsg;if(fa&&"string"!==typeof fa||!G||G!= | |
G||!ma||ma!=ma||B.internalcode&&ya!=ya||ga&&"string"!==typeof ga||Sa&&"string"!==typeof Sa)throw(new ba(a.JSON_PARSE_ERROR,"errordata "+b)).setEntity(g);if(0>G||G>Ia)throw(new za(a.MESSAGE_ID_OUT_OF_RANGE,"errordata "+b)).setEntity(g);B=!1;for(var xb in d)if(d[xb]==ma){B=!0;break}B||(ma=d.FAIL);if(ya){if(0>ya)throw(new za(a.INTERNAL_CODE_NEGATIVE,"errordata "+b)).setEntity(g).setMessageId(G);}else ya=-1;b=new c(l,k);new Xc(f,g,fa,G,ma,ya,ga,Sa,b,q)})},error:function(a){b(q,function(){a instanceof | |
A&&a.setEntity(g);throw a;})}})})},error:function(a){b(q,function(){a instanceof A&&a.setEntity(g);throw a;})}})})}})();var Rf=Y.Class.create({getUserMessage:function(a,b){}}),Pd,Sf,We;(function(){We=function(a,b){if(!a||!b)return null;var c=a.compressionAlgorithms.filter(function(a){for(var c=0;c<b.compressionAlgorithms.length;++c)if(a==b.compressionAlgorithms[c])return!0;return!1}),d=a.languages.filter(function(a){for(var c=0;c<b.languages.length;++c)if(a==b.languages[c])return!0;return!1});return new Pd(c, | |
d)};Pd=Y.Class.create({init:function(a,b){a||(a=[]);b||(b=[]);a.sort();Object.defineProperties(this,{compressionAlgorithms:{value:a,writable:!1,enumerable:!0,configurable:!1},languages:{value:b,writable:!1,enumerable:!0,configurable:!1}})},toJSON:function(){var a={};a.compressionalgos=this.compressionAlgorithms;a.languages=this.languages;return a},equals:function(a){return this===a?!0:a instanceof Pd?oa(this.compressionAlgorithms,a.compressionAlgorithms)&&oa(this.languages,a.languages):!1},uniqueKey:function(){return this.compressionAlgorithms.join(":")+ | |
"|"+this.languages.join(":")}});Sf=function(b){var c=b.compressionalgos,d=b.languages;if(c&&!(c instanceof Array)||d&&!(d instanceof Array))throw new ba(a.JSON_PARSE_ERROR,"capabilities "+JSON.stringify(b));b=[];for(var g=0;c&&g<c.length;++g){var f=c[g];Zc[f]&&b.push(f)}return new Pd(b,d)}})();var Qd,Tf,Ve,Uf,Vf;(function(){function c(a,b,d,g,l){this.customer=a;this.sender=b;this.messageCryptoContext=d;this.headerdata=g;this.signature=l}function d(a,b,c,g,l,f,h,q,m,k,t,J,B,M,G,w,ma,ya,n,A){return{cryptoContext:{value:b, | |
writable:!1,configurable:!1},customer:{value:c,writable:!1,configurable:!1},entityAuthenticationData:{value:g,writable:!1,configurable:!1},masterToken:{value:l,writable:!1,configurable:!1},sender:{value:f,writable:!1,configurable:!1},messageId:{value:h,writable:!1,configurable:!1},nonReplayableId:{value:w,writable:!1,configurable:!1},keyRequestData:{value:q,writable:!1,configurable:!1},keyResponseData:{value:m,writable:!1,configurable:!1},userAuthenticationData:{value:k,writable:!1,configurable:!1}, | |
userIdToken:{value:t,writable:!1,configurable:!1},serviceTokens:{value:J,writable:!1,configurable:!1},peerMasterToken:{value:B,writable:!1,configurable:!1},peerUserIdToken:{value:M,writable:!1,configurable:!1},peerServiceTokens:{value:G,writable:!1,configurable:!1},messageCapabilities:{value:ya,writable:!1,configurable:!1},renewable:{value:ma,writable:!1,enumerable:!1,configurable:!1},headerdata:{value:n,writable:!1,enumerable:!1,configurable:!1},signature:{value:A,writable:!1,enumerable:!1,configurable:!1}}} | |
function l(b,c,d){if(d){if(c=b.getMslStore().getCryptoContext(d))return c;if(!d.isVerified()||!d.isDecrypted())throw new qc(a.MASTERTOKEN_UNTRUSTED,d);return new Jb(b,d)}d=c.scheme;var g=b.getEntityAuthenticationFactory(d);if(!g)throw new zc(a.ENTITYAUTH_FACTORY_NOT_FOUND,d);return g.getCryptoContext(b,c)}function g(c,d,g,l,f){b(f,function(){d.verify(g,l,{result:function(c){b(f,function(){if(!c)throw new T(a.MESSAGE_VERIFICATION_FAILED);d.decrypt(g,{result:function(a){b(f,function(){return h(a,sa)})}, | |
error:function(a){f.error(a)}})})},error:function(a){f.error(a)}})})}function f(a,c,d){b(d,function(){if(c)Oe(a,c,d);else return null})}function q(a,c,d,g){b(g,function(){if(c)ed(a,c,d,g);else return null})}function k(a,c,d,g){b(g,function(){if(d)Wf(a,c,d,g);else return null})}function ma(c,d,g,l,f,h,q){function m(d,q,t){if(q>=d.length){var J=[],B;for(B in k)J.push(k[B]);t.result(J)}else{J=d[q];if("object"!==typeof J)throw new ba(a.JSON_PARSE_ERROR,"headerdata "+h);re(c,J,g,l,f,{result:function(a){b(t, | |
function(){k[a.uniqueKey()]=a;m(d,q+1,t)})},error:function(a){t.error(a)}})}}var k={};b(q,function(){if(d){if(!(d instanceof Array))throw new ba(a.JSON_PARSE_ERROR,"headerdata "+h);m(d,0,q)}else return[]})}function M(c,d,g,l,f,q){function h(c,d,g){b(g,function(){var b=d.peermastertoken;if(b&&"object"!==typeof b)throw new ba(a.JSON_PARSE_ERROR,"headerdata "+f);if(!b)return null;Rc(c,b,g)})}function k(c,d,g,l){b(l,function(){var b=d.peeruseridtoken;if(b&&"object"!==typeof b)throw new ba(a.JSON_PARSE_ERROR, | |
"headerdata "+f);if(!b)return null;ed(c,b,g,l)})}b(q,function(){if(!c.isPeerToPeer())return{peerMasterToken:null,peerUserIdToken:null,peerServiceTokens:[]};h(c,d,{result:function(a){b(q,function(){var h=g?g.masterToken:a;k(c,d,h,{result:function(g){b(q,function(){ma(c,d.peerservicetokens,h,g,l,f,{result:function(c){b(q,function(){return{peerMasterToken:a,peerUserIdToken:g,peerServiceTokens:c}})},error:function(a){b(q,function(){a instanceof A&&(a.setEntity(h),a.setUser(g));throw a;})}})})},error:function(a){b(q, | |
function(){a instanceof A&&a.setEntity(h);throw a;})}})})},error:q.error})})}function B(c,d,g,l){function f(a,d){b(l,function(){if(d>=a.length)return q;Jf(c,a[d],{result:function(c){b(l,function(){q.push(c);f(a,d+1)})},error:function(a){l.error(a)}})})}var q=[];b(l,function(){var b=d.keyrequestdata;if(!b)return q;if(!(b instanceof Array))throw new ba(a.JSON_PARSE_ERROR,"headerdata "+g);f(b,0)})}var G=Uf=Y.Class.create({init:function(a,b,c,d,g,l,f,q,h){Object.defineProperties(this,{messageId:{value:a, | |
writable:!1,configurable:!1},nonReplayableId:{value:b,writable:!1,configurable:!1},renewable:{value:c,writable:!1,configurable:!1},capabilities:{value:d,writable:!1,configurable:!1},keyRequestData:{value:g,writable:!1,configurable:!1},keyResponseData:{value:l,writable:!1,configurable:!1},userAuthData:{value:f,writable:!1,configurable:!1},userIdToken:{value:q,writable:!1,configurable:!1},serviceTokens:{value:h,writable:!1,configurable:!1}})}}),ya=Vf=Y.Class.create({init:function(a,b,c){Object.defineProperties(this, | |
{peerMasterToken:{value:a,writable:!1,configurable:!1},peerUserIdToken:{value:b,writable:!1,configurable:!1},peerServiceTokens:{value:c,writable:!1,configurable:!1}})}});Qd=Y.Class.create({init:function(a,c,g,f,q,h,k){function t(Sa){b(k,function(){c=g?null:c;var t=f.nonReplayableId,B=f.renewable,M=f.capabilities,G=f.messageId,w=f.keyRequestData?f.keyRequestData:[],ma=f.keyResponseData,ya=f.userAuthData,n=f.userIdToken,p=f.serviceTokens?f.serviceTokens:[],La,C,L;a.isPeerToPeer()?(La=q.peerMasterToken, | |
C=q.peerUserIdToken,L=q.peerServiceTokens?q.peerServiceTokens:[]):(C=La=null,L=[]);if(0>G||G>Ia)throw new W("Message ID "+G+" is out of range.");if(!c&&!g)throw new W("Message entity authentication data or master token must be provided.");var I,O;ma?a.isPeerToPeer()?(I=g,O=ma.masterToken):(I=ma.masterToken,O=La):(I=g,O=La);if(n&&(!I||!n.isBoundTo(I)))throw new W("User ID token must be bound to a master token.");if(C&&(!O||!C.isBoundTo(O)))throw new W("Peer user ID token must be bound to a peer master token."); | |
p.forEach(function(a){if(a.isMasterTokenBound()&&(!I||!a.isBoundTo(I)))throw new W("Master token bound service tokens must be bound to the provided master token.");if(a.isUserIdTokenBound()&&(!n||!a.isBoundTo(n)))throw new W("User ID token bound service tokens must be bound to the provided user ID token.");},this);L.forEach(function(a){if(a.isMasterTokenBound()&&(!O||!a.isBoundTo(O)))throw new W("Master token bound peer service tokens must be bound to the provided peer master token.");if(a.isUserIdTokenBound()&& | |
(!C||!a.isBoundTo(C)))throw new W("User ID token bound peer service tokens must be bound to the provided peer user ID token.");},this);if(h){var U=h.customer,D=h.messageCryptoContext,y=d(a,D,U,c,g,Sa,G,w,ma,ya,n,p,La,C,L,t,B,M,h.headerdata,h.signature);Object.defineProperties(this,y);return this}var U=n?n.customer:null,y={};Sa&&(y.sender=Sa);y.messageid=G;"number"===typeof t&&(y.nonreplayableid=t);y.renewable=B;M&&(y.capabilities=M);0<w.length&&(y.keyrequestdata=w);ma&&(y.keyresponsedata=ma);ya&& | |
(y.userauthdata=ya);n&&(y.useridtoken=n);0<p.length&&(y.servicetokens=p);La&&(y.peermastertoken=La);C&&(y.peeruseridtoken=C);0<L.length&&(y.peerservicetokens=L);var D;try{D=l(a,c,g)}catch(ca){throw ca instanceof A&&(ca.setEntity(g),ca.setEntity(c),ca.setUser(n),ca.setUser(ya),ca.setMessageId(G)),ca;}y=P(JSON.stringify(y),sa);D.encrypt(y,{result:function(l){b(k,function(){D.sign(l,{result:function(f){b(k,function(){var b=d(a,D,U,c,g,Sa,G,w,ma,ya,n,p,La,C,L,t,B,M,l,f);Object.defineProperties(this,b); | |
return this},J)},error:function(a){b(k,function(){a instanceof A&&(a.setEntity(g),a.setEntity(c),a.setUser(n),a.setUser(ya),a.setMessageId(G));throw a;},J)}})},J)},error:function(a){b(k,function(){a instanceof A&&(a.setEntity(g),a.setEntity(c),a.setUser(n),a.setUser(ya),a.setMessageId(G));throw a;},J)}})},J)}var J=this;b(k,function(){h?t(h.sender):g?a.getEntityAuthenticationData(null,{result:function(a){a=a.getIdentity();t(a)},error:k.error}):t(null)},J)},isEncrypting:function(){return this.masterToken|| | |
U(this.entityAuthenticationData.scheme)},isRenewable:function(){return this.renewable},toJSON:function(){var a={};this.masterToken?a[Nf]=this.masterToken:a[Te]=this.entityAuthenticationData;a[Ue]=L(this.headerdata);a[qe]=L(this.signature);return a}});Tf=function(a,b,c,d,g,l){new Qd(a,b,c,d,g,null,l)};Ve=function(d,h,m,n,fa,p,na){b(na,function(){m=n?null:m;if(!m&&!n)throw new za(a.MESSAGE_ENTITY_NOT_FOUND);var La=h;try{h=I(La)}catch(ga){throw new za(a.HEADER_DATA_INVALID,La,ga);}if(!h||0==h.length)throw new za(a.HEADER_DATA_MISSING, | |
La);var Sa;try{Sa=l(d,m,n)}catch(xb){throw xb instanceof A&&(xb.setEntity(n),xb.setEntity(m)),xb;}g(d,Sa,h,fa,{result:function(g){b(na,function(){var l;try{l=JSON.parse(g)}catch(gb){if(gb instanceof SyntaxError)throw(new ba(a.JSON_PARSE_ERROR,"headerdata "+g,gb)).setEntity(n).setEntity(m);throw gb;}var xb=parseInt(l.messageid);if(!xb||xb!=xb)throw(new ba(a.JSON_PARSE_ERROR,"headerdata "+g)).setEntity(n).setEntity(m);if(0>xb||xb>Ia)throw(new za(a.MESSAGE_ID_OUT_OF_RANGE,"headerdata "+g)).setEntity(n).setEntity(m); | |
var oe=n?l.sender:null;if(n&&(!oe||"string"!==typeof oe))throw(new ba(a.JSON_PARSE_ERROR,"headerdata "+g)).setEntity(n).setEntity(m).setMessageId(xb);var ga=l.keyresponsedata;if(ga&&"object"!==typeof ga)throw(new ba(a.JSON_PARSE_ERROR,"headerdata "+g)).setEntity(n).setEntity(m).setMessageId(xb);var La=na;na={result:function(a){La.result(a)},error:function(a){a instanceof A&&(a.setEntity(n),a.setEntity(m),a.setMessageId(xb));La.error(a)}};f(d,ga,{result:function(f){b(na,function(){var t=!d.isPeerToPeer()&& | |
f?f.masterToken:n,gb=l.useridtoken;if(gb&&"object"!==typeof gb)throw new ba(a.JSON_PARSE_ERROR,"headerdata "+g);q(d,gb,t,{result:function(q){b(na,function(){var gb=l.userauthdata;if(gb&&"object"!==typeof gb)throw new ba(a.JSON_PARSE_ERROR,"headerdata "+g);k(d,t,gb,{result:function(k){b(na,function(){var J;if(k){var gb=k.scheme,ga=d.getUserAuthenticationFactory(gb);if(!ga)throw(new Ra(a.USERAUTH_FACTORY_NOT_FOUND,gb)).setUser(q).setUser(k);gb=n?n.identity:m.getIdentity();J=ga.authenticate(d,gb,k,q)}else J= | |
q?q.customer:null;ma(d,l.servicetokens,t,q,p,g,{result:function(t){b(na,function(){var gb=l.nonreplayableid!==y?parseInt(l.nonreplayableid):null,ma=l.renewable;if(gb!=gb||"boolean"!==typeof ma)throw new ba(a.JSON_PARSE_ERROR,"headerdata "+g);if(0>gb||gb>Ia)throw new za(a.NONREPLAYABLE_ID_OUT_OF_RANGE,"headerdata "+g);var ga=null,Re=l.capabilities;if(Re){if("object"!==typeof Re)throw new ba(a.JSON_PARSE_ERROR,"headerdata "+g);ga=Sf(Re)}B(d,l,g,{result:function(a){M(d,l,f,p,g,{result:function(g){b(na, | |
function(){var b=g.peerMasterToken,l=g.peerUserIdToken,B=g.peerServiceTokens,M=new G(xb,gb,ma,ga,a,f,k,q,t),b=new ya(b,l,B),l=new c(J,oe,Sa,h,fa);new Qd(d,m,n,M,b,l,na)})},error:na.error})},error:function(a){b(na,function(){a instanceof A&&(a.setUser(q),a.setUser(k));throw a;})}})})},error:function(a){b(na,function(){a instanceof A&&(a.setEntity(t),a.setUser(q),a.setUser(k));throw a;})}})})},error:na.error})})},error:na.error})})},error:na.error})})},error:na.error})})}})();var Xe,Zf,Ye;(function(){function c(a, | |
b){this.payload=a;this.signature=b}Xe=Y.Class.create({init:function(a,c,d,f,q,h,k,M){var B=this;b(M,function(){if(0>a||a>Ia)throw new W("Sequence number "+a+" is outside the valid range.");if(0>c||c>Ia)throw new W("Message ID "+c+" is outside the valid range.");if(k)return Object.defineProperties(this,{sequenceNumber:{value:a,writable:!1,configurable:!1},messageId:{value:c,writable:!1,configurable:!1},compressionAlgo:{value:f,writable:!1,configurable:!1},data:{value:q,writable:!1,configurable:!1}, | |
endofmsg:{value:d,writable:!1,enumerable:!1,configurable:!1},payload:{value:k.payload,writable:!1,enumerable:!1,configurable:!1},signature:{value:k.signature,writable:!1,enumerable:!1,configurable:!1}}),this;var G;f?(G=ue(f,q),G||(f=null,G=q)):(f=null,G=q);var w={};w.sequencenumber=a;w.messageid=c;d&&(w.endofmsg=d);f&&(w.compressionalgo=f);w.data=L(G);G=P(JSON.stringify(w),sa);h.encrypt(G,{result:function(k){b(M,function(){h.sign(k,{result:function(h){b(M,function(){Object.defineProperties(this,{sequenceNumber:{value:a, | |
writable:!1,configurable:!1},messageId:{value:c,writable:!1,configurable:!1},compressionAlgo:{value:f,writable:!1,configurable:!1},data:{value:q,writable:!1,configurable:!1},endofmsg:{value:d,writable:!1,enumerable:!1,configurable:!1},payload:{value:k,writable:!1,enumerable:!1,configurable:!1},signature:{value:h,writable:!1,enumerable:!1,configurable:!1}});return this},B)},error:function(a){M.error(a)}})},B)},error:function(a){M.error(a)}})},B)},isEndOfMessage:function(){return this.endofmsg},toJSON:function(){var a= | |
{};a.payload=L(this.payload);a.signature=L(this.signature);return a}});Zf=function(a,b,c,d,f,h,k){new Xe(a,b,c,d,f,h,null,k)};Ye=function(d,l,g){b(g,function(){var f=d.payload,q=d.signature;if(!f||"string"!==typeof f||"string"!==typeof q)throw new ba(a.JSON_PARSE_ERROR,"payload chunk "+JSON.stringify(d));var k,ma;try{k=I(f)}catch(M){throw new za(a.PAYLOAD_INVALID,"payload chunk "+JSON.stringify(d),M);}try{ma=I(q)}catch(B){throw new za(a.PAYLOAD_SIGNATURE_INVALID,"payload chunk "+JSON.stringify(d), | |
B);}l.verify(k,ma,{result:function(d){b(g,function(){if(!d)throw new T(a.PAYLOAD_VERIFICATION_FAILED);l.decrypt(k,{result:function(d){b(g,function(){var b=h(d,sa),f;try{f=JSON.parse(b)}catch(q){if(q instanceof SyntaxError)throw new ba(a.JSON_PARSE_ERROR,"payload chunk payload "+b,q);throw q;}var m=parseInt(f.sequencenumber),t=parseInt(f.messageid),B=f.endofmsg,M=f.compressionalgo;f=f.data;if(!m||m!=m||!t||t!=t||B&&"boolean"!==typeof B||M&&"string"!==typeof M||"string"!==typeof f)throw new ba(a.JSON_PARSE_ERROR, | |
"payload chunk payload "+b);if(0>m||m>Ia)throw new A(a.PAYLOAD_SEQUENCE_NUMBER_OUT_OF_RANGE,"payload chunk payload "+b);if(0>t||t>Ia)throw new A(a.PAYLOAD_MESSAGE_ID_OUT_OF_RANGE,"payload chunk payload "+b);B||(B=!1);if(M&&!Zc[M])throw new za(a.UNIDENTIFIED_COMPRESSION,M);var G;try{G=I(f)}catch(n){throw new za(a.PAYLOAD_DATA_CORRUPT,f,n);}if(G&&0!=G.length)b=M?ve(M,G):G;else{if(0<f.length)throw new za(a.PAYLOAD_DATA_CORRUPT,f);if(B)b=new Uint8Array(0);else throw new za(a.PAYLOAD_DATA_MISSING,f);}G= | |
new c(k,ma);new Xe(m,t,B,M,b,l,G,g)})},error:function(a){g.error(a)}})})},error:function(a){g.error(a)}})})}})();var Rd,fd,yd,gd,$f,Ze;(function(){function c(d,g,f,l,h){function k(){b(h,function(){t>=g.length&&(t=0,++m);if(m>=w.length){if(n)throw n;throw new Ta(a.KEYX_FACTORY_NOT_FOUND,JSON.stringify(g));}var c=w[m],f=g[t];c.scheme!=f.keyExchangeScheme?(++t,k()):c.generateResponse(d,f,ha,{result:function(a){h.result(a)},error:function(a){b(h,function(){if(!(a instanceof A))throw a;n=a;++t;k()})}})})} | |
var m=0,t=0,w=d.getKeyExchangeFactories(),n,ha=f?f:l;k()}function d(a,g,f,l,h){b(h,function(){var d=g.keyRequestData;if(g.isRenewable()&&0<d.length)l?l.isRenewable()||l.isExpired()?c(a,d,l,null,h):a.getTokenFactory().isNewestMasterToken(a,l,{result:function(g){b(h,function(){if(g)return null;c(a,d,l,null,h)})},error:h.error}):c(a,d,null,f.getIdentity(),h);else return null})}function f(c,d,g,l){b(l,function(){var b=d.userIdToken,f=d.userAuthenticationData,h=d.messageId;if(b&&b.isVerified()){if(b.isRenewable()&& | |
d.isRenewable()||b.isExpired()||!b.isBoundTo(g)){f=c.getTokenFactory();f.renewUserIdToken(c,b,g,l);return}}else if(d.isRenewable()&&g&&f){b=d.customer;if(!b){var b=f.scheme,k=c.getUserAuthenticationFactory(b);if(!k)throw(new Ra(a.USERAUTH_FACTORY_NOT_FOUND,b)).setEntity(g).setUser(f).setMessageId(h);b=k.authenticate(c,g.identity,f,null)}f=c.getTokenFactory();f.createUserIdToken(c,b,g,l);return}return b})}var g=new Uint8Array(0),h=fd=function(a){if(0>a||a>Ia)throw new W("Message ID "+a+" is outside the valid range."); | |
return a==Ia?0:a+1};yd=function(a){if(0>a||a>Ia)throw new W("Message ID "+a+" is outside the valid range.");return 0==a?Ia:a-1};gd=function(a,c,d,g,f){b(f,function(){if(g==y||null==g){var l=a.getRandom();do g=l.nextLong();while(0>g||g>Ia)}else if(0>g||g>Ia)throw new W("Message ID "+g+" is outside the valid range.");a.getEntityAuthenticationData(null,{result:function(l){b(f,function(){var b=a.getMessageCapabilities();return new Rd(a,g,b,l,c,d,null,null,null,null,null)})},error:function(a){f.error(a)}})})}; | |
$f=function(a,c,g){b(g,function(){function k(a){b(g,function(){a instanceof A&&(a.setEntity(B),a.setEntity(w),a.setUser(n),a.setUser(p),a.setMessageId(Ub));throw a;})}var B=c.masterToken,w=c.entityAuthenticationData,n=c.userIdToken,p=c.userAuthenticationData,Ub=c.messageId,C=h(Ub);d(a,c,w,B,{result:function(d){b(g,function(){var h=d?d.keyResponseData.masterToken:h=B;a.getEntityAuthenticationData(null,{result:function(m){b(g,function(){f(a,c,h,{result:function(f){b(g,function(){n=f;var b=We(c.messageCapabilities, | |
a.getMessageCapabilities()),g=c.keyResponseData,l=c.serviceTokens;return a.isPeerToPeer()?new Rd(a,C,b,m,g?g.masterToken:c.peerMasterToken,c.peerUserIdToken,c.peerServiceTokens,B,n,l,d):new Rd(a,C,b,m,g?g.masterToken:B,n,l,null,null,null,d)})},error:k})})},error:k})})},error:k})})};Ze=function(a,c,d,g,f){b(f,function(){a.getEntityAuthenticationData(null,{result:function(l){b(f,function(){var b;if(c!=y&&null!=c)b=h(c);else{var k=a.getRandom();do b=k.nextInt();while(0>b||b>Ia)}Qf(a,l,b,d.responseCode, | |
d.internalCode,d.message,g,f)})},error:function(a){f.error(a)}})})};Rd=Y.Class.create({init:function(a,b,c,d,g,f,l,h,k,m,t){if(!a.isPeerToPeer()&&(h||k))throw new W("Cannot set peer master token or peer user ID token when not in peer-to-peer mode.");var w;w=t&&!a.isPeerToPeer()?t.keyResponseData.masterToken:g;var n={};a.getMslStore().getServiceTokens(w,f).forEach(function(a){n[a.name]=a},this);l&&l.forEach(function(a){n[a.name]=a},this);var p,A,ga={};a.isPeerToPeer()&&(p=h,A=k,l=t?t.keyResponseData.masterToken: | |
h,a.getMslStore().getServiceTokens(l,k).forEach(function(a){ga[a.name]=a},this),m&&m.forEach(function(a){ga[a.name]=a},this));Object.defineProperties(this,{_ctx:{value:a,writable:!1,enumerable:!1,configurable:!1},_entityAuthData:{value:d,writable:!1,enumerable:!1,configurable:!1},_masterToken:{value:g,writable:!0,enumerable:!1,configurable:!1},_messageId:{value:b,writable:!1,enumerable:!1,configurable:!1},_capabilities:{value:c,writable:!1,enumerable:!1,configurable:!1},_keyExchangeData:{value:t, | |
writable:!1,enumerable:!1,configurable:!1},_nonReplayable:{value:!1,writable:!0,enumerable:!1,configurable:!1},_renewable:{value:!1,writable:!0,enumerable:!1,configurable:!1},_keyRequestData:{value:{},writable:!1,enumerable:!1,configurable:!1},_userAuthData:{value:null,writable:!0,enumerable:!1,configurable:!1},_userIdToken:{value:f,writable:!0,enumerable:!1,configurable:!1},_serviceTokens:{value:n,writable:!1,enumerable:!1,configurable:!1},_peerMasterToken:{value:p,writable:!0,enumerable:!1,configurable:!1}, | |
_peerUserIdToken:{value:A,writable:!0,enumerable:!1,configurable:!1},_peerServiceTokens:{value:ga,writable:!1,enumerable:!1,configurable:!1}})},getMessageId:function(){return this._messageId},getMasterToken:function(){return this._masterToken},getUserIdToken:function(){return this._userIdToken},getKeyExchangeData:function(){return this._keyExchangeData},willEncryptHeader:function(){return this._masterToken||U(this._entityAuthData.scheme)},willEncryptPayloads:function(){return this._masterToken||!this._ctx.isPeerToPeer()&& | |
this._keyExchangeData||U(this._entityAuthData.scheme)},willIntegrityProtectHeader:function(){return this._masterToken||Ua(this._entityAuthData.scheme)},willIntegrityProtectPayloads:function(){return this._masterToken||!this._ctx.isPeerToPeer()&&this._keyExchangeData||Ua(this._entityAuthData.scheme)},getHeader:function(c){b(c,function(){var b=this._keyExchangeData?this._keyExchangeData.keyResponseData:null,d=[],g;for(g in this._serviceTokens)d.push(this._serviceTokens[g]);var f=[],l;for(l in this._keyRequestData)f.push(this._keyRequestData[l]); | |
if(this._nonReplayable){if(!this._masterToken)throw new za(a.NONREPLAYABLE_MESSAGE_REQUIRES_MASTERTOKEN);l=this._ctx.getMslStore().getNonReplayableId(this._masterToken)}else l=null;b=new Uf(this._messageId,l,this._renewable,this._capabilities,f,b,this._userAuthData,this._userIdToken,d);d=[];for(g in this._peerServiceTokens)d.push(this._peerServiceTokens[g]);g=new Vf(this._peerMasterToken,this._peerUserIdToken,d);Tf(this._ctx,this._entityAuthData,this._masterToken,b,g,c)},this)},isNonReplayable:function(){return this._nonReplayable}, | |
setNonReplayable:function(a){this._nonReplayable=a;return this},isRenewable:function(){return this._renewable},setRenewable:function(a){this._renewable=a;return this},setAuthTokens:function(a,b){if(b&&!b.isBoundTo(a))throw new W("User ID token must be bound to master token.");if(this._keyExchangeData&&!this._ctx.isPeerToPeer())throw new W("Attempt to set message builder master token when key exchange data exists as a trusted network server.");var c;try{c=this._ctx.getMslStore().getServiceTokens(a, | |
b)}catch(d){if(d instanceof A)throw new W("Invalid master token and user ID token combination despite checking above.",d);throw d;}var g=[],f;for(f in this._serviceTokens)g.push(this._serviceTokens[f]);g.forEach(function(c){(c.isUserIdTokenBound()&&!c.isBoundTo(b)||c.isMasterTokenBound()&&!c.isBoundTo(a))&&delete this._serviceTokens[c.name]},this);c.forEach(function(a){this._serviceTokens[a.name]=a},this);this._masterToken=a;this._userIdToken=b},setUserAuthenticationData:function(a){this._userAuthData= | |
a;return this},setCustomer:function(a,c){var d=this;b(c,function(){if(!this._ctx.isPeerToPeer()&&null!=this._userIdToken||this._ctx.isPeerToPeer()&&null!=this._peerUserIdToken)throw new W("User ID token or peer user ID token already exists for the remote user.");var g;g=this._keyExchangeData?this._keyExchangeData.keyResponseData.masterToken:this._ctx.isPeerToPeer()?this._peerMasterToken:this._masterToken;if(!g)throw new W("User ID token or peer user ID token cannot be created because no corresponding master token exists."); | |
this._ctx.getTokenFactory().createUserIdToken(this._ctx,a,g,{result:function(a){b(c,function(){this._ctx.isPeerToPeer()?this._peerUserIdToken=a:(this._userIdToken=a,this._userAuthData=null);return!0},d)},error:function(a){c.error(a)}})},d)},addKeyRequestData:function(a){this._keyRequestData[a.uniqueKey()]=a;return this},removeKeyRequestData:function(a){delete this._keyRequestData[a.uniqueKey()];return this},addServiceToken:function(b){var c;c=this._keyExchangeData&&!this._ctx.isPeerToPeer()?this._keyExchangeData.keyResponseData.masterToken: | |
this._masterToken;if(b.isMasterTokenBound()&&!b.isBoundTo(c))throw(new za(a.SERVICETOKEN_MASTERTOKEN_MISMATCH,"st "+JSON.stringify(b)+"; mt "+JSON.stringify(c))).setEntity(c);if(b.isUserIdTokenBound()&&!b.isBoundTo(this._userIdToken))throw(new za(a.SERVICETOKEN_USERIDTOKEN_MISMATCH,"st "+JSON.stringify(b)+"; uit "+JSON.stringify(this._userIdToken))).setEntity(c).setUser(this._userIdToken);this._serviceTokens[b.name]=b;return this},addServiceTokenIfAbsent:function(a){this._serviceTokens[a.name]||this.addServiceToken(a); | |
return this},excludeServiceToken:function(a){delete this._serviceTokens[a];return this},deleteServiceToken:function(a,c){var d=this;b(c,function(){var f=this._serviceTokens[a];if(!f)return this;var l=f.isMasterTokenBound()?this._masterToken:null,f=f.isUserIdTokenBound()?this._userIdToken:null;uc(this._ctx,a,g,l,f,!1,null,new bd,{result:function(a){b(c,function(){return this.addServiceToken(a)},d)},error:function(a){a instanceof A&&(a=new W("Failed to create and add empty service token to message.", | |
a));c.error(a)}})},d)},getServiceTokens:function(){var a=[],b;for(b in this._serviceTokens)a.push(this._serviceTokens[b]);return a},getPeerMasterToken:function(){return this._peerMasterToken},getPeerUserIdToken:function(){return this._peerUserIdToken},setPeerAuthTokens:function(b,c){if(!this._ctx.isPeerToPeer())throw new W("Cannot set peer master token or peer user ID token when not in peer-to-peer mode.");if(c&&!b)throw new W("Peer master token cannot be null when setting peer user ID token.");if(c&& | |
!c.isBoundTo(b))throw(new za(a.USERIDTOKEN_MASTERTOKEN_MISMATCH,"uit "+c+"; mt "+b)).setEntity(b).setUser(c);var d;try{d=this._ctx.getMslStore().getServiceTokens(b,c)}catch(g){if(g instanceof A)throw new W("Invalid peer master token and user ID token combination despite proper check.",g);throw g;}Object.keys(this._peerServiceTokens).forEach(function(a){var d=this._peerServiceTokens[a];d.isUserIdTokenBound()&&!d.isBoundTo(c)?delete this._peerServiceTokens[a]:d.isMasterTokenBound()&&!d.isBoundTo(b)&& | |
delete this._peerServiceTokens[a]},this);d.forEach(function(a){var b=a.name;this._peerServiceTokens[b]||(this._peerServiceTokens[b]=a)},this);this._peerUserIdToken=c;this._peerMasterToken=b;return this},addPeerServiceToken:function(b){if(!this._ctx.isPeerToPeer())throw new W("Cannot set peer service tokens when not in peer-to-peer mode.");if(b.isMasterTokenBound()&&!b.isBoundTo(this._peerMasterToken))throw(new za(a.SERVICETOKEN_MASTERTOKEN_MISMATCH,"st "+JSON.stringify(b)+"; mt "+JSON.stringify(this._peerMasterToken))).setEntity(this._peerMasterToken); | |
if(b.isUserIdTokenBound()&&!b.isBoundTo(this._peerUserIdToken))throw(new za(a.SERVICETOKEN_USERIDTOKEN_MISMATCH,"st "+JSON.stringify(b)+"; uit "+JSON.stringify(this._peerUserIdToken))).setEntity(this._peerMasterToken).setUser(this._peerUserIdToken);this._peerServiceTokens[b.name]=b;return this},addPeerServiceTokenIfAbsent:function(a){this._peerServiceTokens[a.name]||this.addPeerServiceToken(a);return this},excludePeerServiceToken:function(a){delete this._peerServiceTokens[a];return this},deletePeerServiceToken:function(a, | |
c){var d=this;b(c,function(){var f=this._peerServiceTokens[a];if(!f)return this;var l=f.isMasterTokenBound()?this._peerMasterToken:null,f=f.isUserIdTokenBound()?this._peerUserIdToken:null;uc(this._ctx,a,g,l,f,!1,null,new bd,{result:function(a){b(c,function(){return this.addPeerServiceToken(a)},d)},error:function(a){a instanceof A&&(a=new W("Failed to create and add empty peer service token to message.",a));c.error(a)}})},d)},getPeerServiceTokens:function(){var a=[],b;for(b in this._peerServiceTokens)a.push(this._peerServiceTokens[b]); | |
return a}})})();var Sd;(function(){function a(b,c){return c[b]?c[b]:c[""]}function c(a){var b=a.builder.getKeyExchangeData();return b&&!a.ctx.isPeerToPeer()?b.keyResponseData.masterToken:a.builder.getMasterToken()}Sd=Y.Class.create({init:function(a,b,c){a={ctx:{value:a,writable:!1,enumerable:!1,configurable:!1},cryptoContexts:{value:b.getCryptoContexts(),writable:!1,enumerable:!1,configurable:!1},builder:{value:c,writable:!1,enumerable:!1,configurable:!1}};Object.defineProperties(this,a)},isPrimaryMasterTokenAvailable:function(){return c(this)? | |
!0:!1},isPrimaryUserIdTokenAvailable:function(){return this.builder.getUserIdToken()?!0:!1},isPeerMasterTokenAvailable:function(){return this.builder.getPeerMasterToken()?!0:!1},isPeerUserIdTokenAvailable:function(){return this.builder.getPeerUserIdToken()?!0:!1},getPrimaryServiceTokens:function(){return this.builder.getServiceTokens()},getPeerServiceTokens:function(){return this.builder.getPeerServiceTokens()},addPrimaryServiceToken:function(a){try{return this.builder.addServiceToken(a),!0}catch(b){if(b instanceof | |
za)return!1;throw b;}},addPeerServiceToken:function(a){try{return this.builder.addPeerServiceToken(a),!0}catch(b){if(b instanceof za)return!1;throw b;}},addUnboundPrimaryServiceToken:function(c,d,f,h,k){var m=this;b(k,function(){var n=a(c,this.cryptoContexts);if(!n)return!1;uc(this.ctx,c,d,null,null,f,h,n,{result:function(a){b(k,function(){try{this.builder.addServiceToken(a)}catch(b){if(b instanceof za)throw new W("Service token bound to incorrect authentication tokens despite being unbound.",b); | |
throw b;}return!0},m)},error:function(a){k.error(a)}})},m)},addUnboundPeerServiceToken:function(c,d,f,h,k){var m=this;b(k,function(){var n=a(c,this.cryptoContexts);if(!n)return!1;uc(this.ctx,c,d,null,null,f,h,n,{result:function(a){b(k,function(){try{this.builder.addPeerServiceToken(a)}catch(b){if(b instanceof za)throw new W("Service token bound to incorrect authentication tokens despite being unbound.",b);throw b;}return!0},m)},error:function(a){k.error(a)}})},m)},addMasterBoundPrimaryServiceToken:function(d, | |
g,f,h,k){var n=this;b(k,function(){var M=c(this);if(!M)return!1;var B=a(d,this.cryptoContexts);if(!B)return!1;uc(this.ctx,d,g,M,null,f,h,B,{result:function(a){b(k,function(){try{this.builder.addServiceToken(a)}catch(b){if(b instanceof za)throw new W("Service token bound to incorrect authentication tokens despite setting correct master token.",b);throw b;}return!0},n)},error:function(a){k.error(a)}})},n)},addMasterBoundPeerServiceToken:function(c,d,f,h,k){var m=this;b(k,function(){var n=this.builder.getPeerMasterToken(); | |
if(!n)return!1;var B=a(c,this.cryptoContexts);if(!B)return!1;uc(this.ctx,c,d,n,null,f,h,B,{result:function(a){b(k,function(){try{this.builder.addPeerServiceToken(a)}catch(b){if(b instanceof za)throw new W("Service token bound to incorrect authentication tokens despite setting correct master token.",b);throw b;}return!0},m)},error:function(a){k.error(a)}})},m)},addUserBoundPrimaryServiceToken:function(d,g,f,h,k){var n=this;b(k,function(){var M=c(this);if(!M)return!1;var B=this.builder.getUserIdToken(); | |
if(!B)return!1;var G=a(d,this.cryptoContexts);if(!G)return!1;uc(this.ctx,d,g,M,B,f,h,G,{result:function(a){b(k,function(){try{this.builder.addServiceToken(a)}catch(b){if(b instanceof za)throw new W("Service token bound to incorrect authentication tokens despite setting correct master token and user ID token.",b);throw b;}return!0},n)},error:function(a){k.error(a)}})},n)},addUserBoundPeerServiceToken:function(c,d,f,h,k){var m=this;b(k,function(){var n=this.builder.getPeerMasterToken();if(!n)return!1; | |
var B=this.builder.getPeerUserIdToken();if(!B)return!1;var G=a(c,this.cryptoContexts);if(!G)return!1;uc(this.ctx,c,d,n,B,f,h,G,{result:function(a){b(k,function(){try{this.builder.addPeerServiceToken(a)}catch(b){if(b instanceof za)throw new W("Service token bound to incorrect authentication tokens despite setting correct master token and user ID token.",b);throw b;}return!0},m)},error:function(a){k.error(a)}})},m)},excludePrimaryServiceToken:function(a){for(var b=this.builder.getServiceTokens(),c= | |
0;c<b.length;++c)if(b[c].name==a)return this.builder.excludeServiceToken(a),!0;return!1},excludePeerServiceToken:function(a){for(var b=this.builder.getPeerServiceTokens(),c=0;c<b.length;++c)if(b[c].name==a)return this.builder.excludePeerServiceToken(a),!0;return!1},deletePrimaryServiceToken:function(a,c){b(c,function(){for(var b=this.builder.getServiceTokens(),d=0;d<b.length;++d)if(b[d].name==a){this.builder.deleteServiceToken(a,{result:function(){c.result(!0)},error:function(a){c.error(a)}});return}return!1}, | |
this)},deletePeerServiceToken:function(a,c){b(c,function(){for(var b=this.builder.getPeerServiceTokens(),d=0;d<b.length;++d)if(b[d].name==a){this.builder.deletePeerServiceToken(a,{result:function(){c.result(!0)},error:function(a){c.error(a)}});return}return!1},this)}})})();var ag,we;(function(){function c(d,f,g,h){b(h,function(){function c(){b(h,function(){if(p>=g.length){if(G)throw G;throw new Ta(a.KEYX_RESPONSE_REQUEST_MISMATCH,JSON.stringify(g));}var f=g[p];n!=f.keyExchangeScheme?(++p,c()):B.getCryptoContext(d, | |
f,w,k,{result:h.result,error:function(a){b(h,function(){if(!(a instanceof A))throw a;G=a;++p;c()})}})})}var k=f.masterToken,w=f.keyResponseData;if(!w)return null;var n=w.keyExchangeScheme,B=d.getKeyExchangeFactory(n);if(!B)throw new Ta(a.KEYX_FACTORY_NOT_FOUND,n);var G,p=0;c()})}ag=Ne.extend({init:function(b,d,g,f,h,n,ma){var M=this;k(ma,function(){function k(){M._ready=!0;M._readyQueue.add(!0)}function G(a,b){try{var c=b.masterToken;a.getTokenFactory().isMasterTokenRevoked(a,c,{result:function(d){d? | |
(M._errored=(new qc(d,c)).setUser(b.userIdToken).setUser(b.userAuthenticationData).setMessageId(b.messageId),k()):ma(a,b)},error:function(a){a instanceof A&&(a.setEntity(b.masterToken),a.setUser(b.userIdToken),a.setUser(b.userAuthenticationData),a.setMessageId(b.messageId));M._errored=a;k()}})}catch(d){d instanceof A&&(d.setEntity(b.masterToken),d.setUser(b.userIdToken),d.setUser(b.userAuthenticationData),d.setMessageId(b.messageId)),M._errored=d,k()}}function ma(a,b){try{var c=b.masterToken,d=b.userIdToken; | |
d?a.getTokenFactory().isUserIdTokenRevoked(a,c,d,{result:function(g){g?(M._errored=(new MslUserIdTokenException(g,d)).setEntity(c).setUser(d).setMessageId(b.messageId),k()):p(a,b)},error:function(a){a instanceof A&&(a.setEntity(b.masterToken),a.setUser(b.userIdToken),a.setUser(b.userAuthenticationData),a.setMessageId(b.messageId));M._errored=a;k()}}):p(a,b)}catch(g){g instanceof A&&(g.setEntity(b.masterToken),g.setUser(b.userIdToken),g.setUser(b.userAuthenticationData),g.setMessageId(b.messageId)), | |
M._errored=g,k()}}function p(b,c){try{var d=c.masterToken;d.isExpired()?c.isRenewable()&&0!=c.keyRequestData.length?b.getTokenFactory().isMasterTokenRenewable(b,d,{result:function(a){a?(M._errored=(new za(a,"Master token is expired and not renewable.")).setEntity(d).setUser(c.userIdToken).setUser(c.userAuthenticationData).setMessageId(c.messageId),k()):C(b,c)},error:function(a){a instanceof A&&(a.setEntity(c.masterToken),a.setUser(c.userIdToken),a.setUser(c.userAuthenticationData),a.setMessageId(c.messageId)); | |
M._errored=a;k()}}):(M._errored=(new za(a.MESSAGE_EXPIRED,JSON.stringify(c))).setEntity(d).setUser(c.userIdToken).setUser(c.userAuthenticationData).setMessageId(c.messageId),k()):C(b,c)}catch(g){g instanceof A&&(g.setEntity(c.masterToken),g.setUser(c.userIdToken),g.setUser(c.userAuthenticationData),g.setMessageId(c.messageId)),M._errored=g,k()}}function C(b,c){try{var d=c.masterToken,g=c.nonReplayableId;"number"===typeof g?d?b.getTokenFactory().acceptNonReplayableId(b,d,g,{result:function(b){b||(M._errored= | |
(new za(a.MESSAGE_REPLAYED,JSON.stringify(c))).setEntity(d).setUser(c.userIdToken).setUser(c.userAuthenticationData).setMessageId(c.messageId));k()},error:function(a){a instanceof A&&(a.setEntity(d),a.setUser(c.userIdToken),a.setUser(c.userAuthenticationData),a.setMessageId(c.messageId));M._errored=a;k()}}):(M._errored=(new za(a.INCOMPLETE_NONREPLAYABLE_MESSAGE,JSON.stringify(c))).setEntity(c.entityAuthenticationData).setUser(c.userIdToken).setUser(c.userAuthenticationData).setMessageId(c.messageId), | |
k()):k()}catch(f){f instanceof A&&(f.setEntity(c.masterToken),f.setEntity(c.entityAuthenticationData),f.setUser(c.userIdToken),f.setUser(c.userAuthenticationData),f.setMessageId(c.messageId)),M._errored=f,k()}}var L={_source:{value:d,writable:!1,enumerable:!1,configurable:!1},_parser:{value:y,writable:!0,enumerable:!1,configurable:!1},_charset:{value:g,writable:!1,enumerable:!1,configurable:!1},_remainingData:{value:"",writable:!0,enumerable:!1,configurable:!1},_timeout:{value:n,writable:!1,enumerable:!1, | |
configurable:!1},_header:{value:y,writable:!0,enumerable:!1,configurable:!1},_cryptoContext:{value:y,writable:!0,enumerable:!1,configurable:!1},_keyxCryptoContext:{value:y,writable:!0,enumerable:!1,configurable:!1},_payloadSequenceNumber:{value:1,writable:!0,enuemrable:!1,configurable:!1},_eom:{value:!1,writable:!0,enumerable:!1,configurable:!1},_closeSource:{value:!1,writable:!0,enumerable:!1,configurable:!1},_payloads:{value:[],writable:!0,enumerable:!1,configurable:!1},_payloadIndex:{value:-1, | |
writable:!0,enumerable:!1,configurable:!1},_payloadOffset:{value:0,writable:!0,enuemrable:!1,configurable:!1},_markOffset:{value:0,writable:!0,enumerable:!1,configurable:!1},_currentPayload:{value:null,writable:!0,enumerable:!1,configurable:!1},_readException:{value:null,writable:!0,enumerable:!1,configurable:!1},_ready:{value:!1,writable:!0,enumerable:!1,configurable:!1},_readyQueue:{value:new Fa,writable:!1,enumerable:!1,configurable:!1},_aborted:{value:!1,writable:!0,enumerable:!1,configurable:!1}, | |
_timedout:{value:!1,writable:!0,enumerable:!1,configurable:!1},_errored:{value:null,writable:!0,enumerable:!1,configurable:!1}};Object.defineProperties(this,L);If(M._source,n,{result:function(d){M._json=d;M._jsonIndex=0;null===M._json?(M._errored=new ba(a.MESSAGE_DATA_MISSING),k()):pe(b,M._json[M._jsonIndex++],h,{result:function(a){M._header=a;if(M._header instanceof Xc)M._keyxCryptoContext=null,M._cryptoContext=null,k();else{var d=M._header;c(b,d,f,{result:function(a){try{M._keyxCryptoContext=a; | |
b.isPeerToPeer()||!M._keyxCryptoContext?M._cryptoContext=d.cryptoContext:M._cryptoContext=M._keyxCryptoContext;try{var c=d.masterToken;c&&(b.isPeerToPeer()||c.isVerified())?G(b,d):C(b,d)}catch(g){g instanceof A&&(g.setEntity(d.masterToken),g.setUser(d.userIdToken),g.setUser(d.userAuthenticationData),g.setMessageId(d.messageId)),M._errored=g,k()}}catch(f){f instanceof A&&(f.setEntity(d.masterToken),f.setEntity(d.entityAuthenticationData),f.setUser(d.userIdToken),f.setUser(d.userAuthenticationData), | |
f.setMessageId(d.messageId)),M._errored=f,k()}},error:function(a){a instanceof A&&(a.setEntity(d.masterToken),a.setEntity(d.entityAuthenticationData),a.setUser(d.userIdToken),a.setUser(d.userAuthenticationData),a.setMessageId(d.messageId));M._errored=a;k()}})}},error:function(a){M._errored=a;k()}})},timeout:function(){M._timedout=!0;k()},error:function(a){M._errored=a;k()}});return this},M)},nextData:function(b,c){var d=this;k(c,function(){function b(a){k(a,function(){var c;if(this._jsonIndex<this._json.length)return c= | |
this._json[this._jsonIndex++];If(this._source,this._timeout,{result:function(c){c&&c.length&&0<c.length?(c.forEach(function(a){this._json.push(a)}),b(a)):(this._eom=!0,a.result(null))},timeout:function(){a.timeout()},error:function(b){a.error(b)}})},d)}var f=this.getMessageHeader();if(!f)throw new W("Read attempted with error message.");if(-1!=this._payloadIndex&&this._payloadIndex<this._payloads.length)return this._payloads[this._payloadIndex++];if(this._eom)return null;b({result:function(b){k(c, | |
function(){if(!b)return null;if("object"!==typeof b)throw new ba(a.MESSAGE_FORMAT_ERROR);Ye(b,this._cryptoContext,{result:function(b){k(c,function(){var c=f.masterToken,d=f.entityAuthenticationData,g=f.userIdToken,l=f.getUserAuthenticationData;if(b.messageId!=f.messageId)throw(new za(a.PAYLOAD_MESSAGE_ID_MISMATCH,"payload mid "+b.messageId+" header mid "+f.messageId)).setEntity(c).setEntity(d).setUser(g).setUser(l);if(b.sequenceNumber!=this._payloadSequenceNumber)throw(new za(a.PAYLOAD_SEQUENCE_NUMBER_MISMATCH, | |
"payload seqno "+b.sequenceNumber+" expected seqno "+this._payloadSequenceNumber)).setEntity(c).setEntity(d).setUser(g).setUser(l);++this._payloadSequenceNumber;b.isEndOfMessage()&&(this._eom=!0);c=b.data;this._payloads.push(c);this._payloadIndex=-1;return c},d)},error:function(b){b instanceof SyntaxError&&(b=new ba(a.JSON_PARSE_ERROR,"payloadchunk",b));c.error(b)}})},d)},timeout:function(){c.timeout()},error:function(a){c.error(a)}})},d)},isReady:function(a,b){function c(){k(b,function(){if(this._aborted)return!1; | |
if(this._timedout)b.timeout();else{if(this._errored)throw this._errored;return!0}},d)}var d=this;k(b,function(){this._ready?c():this._readyQueue.poll(a,{result:function(a){k(b,function(){if(a===y)return!1;c()},d)},timeout:function(){b.timeout()},error:function(a){b.error(a)}})},d)},getMessageHeader:function(){return this._header instanceof Qd?this._header:null},getErrorHeader:function(){return this._header instanceof Xc?this._header:null},getIdentity:function(){var a=this.getMessageHeader();if(a){var b= | |
a.masterToken;return b?b.identity:a.entityAuthenticationData.getIdentity()}return this.getErrorHeader().entityAuthenticationData.getIdentity()},getCustomer:function(){var a=this.getMessageHeader();return a?a.customer:null},getPayloadCryptoContext:function(){return this._cryptoContext},getKeyExchangeCryptoContext:function(){return this._keyxCryptoContext},closeSource:function(a){this._closeSource=a},abort:function(){this._aborted=!0;this._source.abort();this._readyQueue.cancelAll()},close:function(){this._closeSource&& | |
this._source.close()},mark:function(){if(this._currentPayload){for(;0<this._payloads.length&&this._payloads[0]!==this._currentPayload;)this._payloads.shift();this._payloadIndex=0;this._currentPayload=this._payloads[this._payloadIndex++];this._markOffset=this._payloadOffset}else this._payloadIndex=-1,this._payloads=[]},markSupported:function(){return!0},read:function(a,b,c){function d(){k(c,function(){function d(c){k(c,function(){if(t&&n>=t.length)return t.subarray(0,n);var g=-1;if(this._currentPayload){var h= | |
this._currentPayload.length-this._payloadOffset;if(!t){var p=h;if(-1!=this._payloadIndex)for(var ma=this._payloadIndex;ma<this._payloads.length;++ma)p+=this._payloads[ma].length;0<p&&(t=new Uint8Array(p))}h=Math.min(h,t?t.length-n:0);0<h&&(g=this._currentPayload.subarray(this._payloadOffset,this._payloadOffset+h),t.set(g,w),g=h,w+=h,this._payloadOffset+=h)}-1!=g?(n+=g,d(c)):this.nextData(b,{result:function(b){k(c,function(){if(this._aborted)return t?t.subarray(0,n):new Uint8Array(0);this._currentPayload= | |
b;this._payloadOffset=0;if(this._currentPayload)d(c);else return 0==n&&0!=a?null:t?t.subarray(0,n):new Uint8Array(0)},f)},timeout:function(){c.timeout(t?t.subarray(0,n):new Uint8Array(0))},error:function(a){k(c,function(){a instanceof A&&(a=new ob("Error reading the payload chunk.",a));if(0<n)return f._readException=a,t.subarray(0,n);throw a;},f)}})},f)}if(this._aborted)return new Uint8Array(0);if(this._timedout)c.timeout(new Uint8Array(0));else{if(this._errored)throw this._errored;if(null!=this._readException){var h= | |
this._readException;this._readException=null;throw h;}var t=-1!=a?new Uint8Array(a):y,w=0,n=0;d(c)}},f)}var f=this;k(c,function(){if(-1>a)throw new RangeError("read requested with illegal length "+a);this._ready?d():this._readyQueue.poll(b,{result:function(a){a===y?c.result(!1):d()},timeout:function(){c.timeout(new Uint8Array(0))},error:function(a){c.error(a)}})},f)},reset:function(){this._payloadIndex=0;0<this._payloads.length?(this._currentPayload=this._payloads[this._payloadIndex++],this._payloadOffset= | |
this._markOffset):this._currentPayload=null}});we=function(a,b,c,d,f,h,k){new ag(a,b,c,d,f,h,k)}})();var bg,Td;(function(){bg=ne.extend({init:function(a,b,c,d,f,h,n){var p=this;k(n,function(){function k(){p._ready=!0;p._readyQueue.add(!0)}var n=We(a.getMessageCapabilities(),d.messageCapabilities),J=null;n&&(J=Id(n.compressionAlgorithms));n={_destination:{value:b,writable:!1,enumerable:!1,configurable:!1},_charset:{value:c,writable:!1,enumerable:!1,configurable:!1},_capabilities:{value:n,writable:!1, | |
enumerable:!1,configurable:!1},_header:{value:d,writable:!1,enumerable:!1,configurable:!1},_compressionAlgo:{value:J,writable:!0,enumerable:!1,configurable:!1},_cryptoContext:{value:f,writable:!1,enumerable:!1,configurable:!1},_payloadSequenceNumber:{value:1,writable:!0,enumerable:!1,configurable:!1},_currentPayload:{value:[],writable:!0,enumerable:!1,configurable:!1},_closed:{value:!1,writable:!0,enumerable:!1,configurable:!1},_payloads:{value:[],writable:!1,enumerable:!1,configurable:!1},_ready:{value:!1, | |
writable:!0,enumerable:!1,configurable:!1},_readyQueue:{value:new Fa,writable:!1,enumerable:!1,configurable:!1},_aborted:{value:!1,writable:!0,enumerable:!1,configurable:!1},_timedout:{value:!1,writable:!0,enumerable:!1,configurable:!1},_errored:{value:null,writable:!0,enumerable:!1,configurable:!1}};Object.defineProperties(this,n);var A=P(JSON.stringify(d),c);b.write(A,0,A.length,h,{result:function(a){try{p._aborted?k():a<A.length?(p._timedout=!0,k()):b.flush(h,{result:function(a){p._aborted||(p._timedout= | |
!a);k()},timeout:function(){p._timedout=!0;k()},error:function(a){p._errored=a;k()}})}catch(c){p._errored=c,k()}},timeout:function(){p._timedout=!0;k()},error:function(a){p._errored=a;k()}});return this},p)},setCompressionAlgorithm:function(a,b,c){function d(){f.flush(b,{result:function(b){k(c,function(){if(!b)throw new ob("flush() aborted");this._compressionAlgo=a;return!0},f)},timeout:function(){c.timeout()},error:function(a){c.error(a)}})}var f=this;k(c,function(){if(!this.getMessageHeader())throw new W("Cannot write payload data for an error message."); | |
if(this._compressionAlgo==a)return!0;if(a){if(!this._capabilities)return!1;for(var b=this._capabilities.compressionAlgorithms,c=0;c<b.length;++c)if(b[c]==a){d();return}return!1}d()},f)},getMessageHeader:function(){return this._header instanceof Qd?this._header:null},getErrorMessage:function(){return this._header instanceof Xc?this._header:null},getPayloads:function(){return this._payloads},abort:function(){this._aborted=!0;this._destination.abort();this._readyQueue.cancelAll()},close:function(a,b){var c= | |
this;k(b,function(){if(this._aborted)return!1;if(this._timedout)b.timeout();else{if(this._errored)throw this._errored;if(this._closed)return!0;this._closed=!0;this.flush(a,{result:function(a){k(b,function(){a&&(this._currentPayload=null);return a},c)},timeout:function(){b.timeout()},error:function(a){b.error(a)}})}},c)},flush:function(a,b){function c(){k(b,function(){if(this._aborted)return!1;if(this._timedout)b.timeout();else{if(this._errored)throw this._errored;if(!this._currentPayload||!this._closed&& | |
0==this._currentPayload.length)return!0;var c=this.getMessageHeader();if(!c)return!0;var f=0;this._currentPayload&&this._currentPayload.forEach(function(a){f+=a.length});for(var h=new Uint8Array(f),l=0,n=0;this._currentPayload&&n<this._currentPayload.length;++n){var B=this._currentPayload[n];h.set(B,l);l+=B.length}Zf(this._payloadSequenceNumber,c.messageId,this._closed,this._compressionAlgo,h,this._cryptoContext,{result:function(c){k(b,function(){this._payloads.push(c);var f=P(JSON.stringify(c),this._charset); | |
this._destination.write(f,0,f.length,a,{result:function(f){k(b,function(){if(this._aborted)return!1;f<c.length?b.timeout():this._destination.flush(a,{result:function(a){k(b,function(){if(this._aborted)return!1;if(a)return++this._payloadSequenceNumber,this._currentPayload=this._closed?null:[],!0;b.timeout()},d)},timeout:function(){b.timeout()},error:function(a){a instanceof A&&(a=new ob("Error encoding payload chunk [sequence number "+d._payloadSequenceNumber+"].",a));b.error(a)}})},d)},timeout:function(a){b.timeout()}, | |
error:function(a){a instanceof A&&(a=new ob("Error encoding payload chunk [sequence number "+d._payloadSequenceNumber+"].",a));b.error(a)}})},d)},error:function(a){a instanceof A&&(a=new ob("Error encoding payload chunk [sequence number "+d._payloadSequenceNumber+"].",a));b.error(a)}})}},d)}var d=this;k(b,function(){this._ready?c():this._readyQueue.poll(a,{result:function(a){a===y?b.result(!1):c()},timeout:function(){b.timeout()},error:function(a){b.error(a)}})},d)},write:function(a,b,c,d,f){k(f, | |
function(){if(this._aborted)return!1;if(this._timedout)f.timeout();else{if(this._errored)throw this._errored;if(this._closed)throw new ob("Message output stream already closed.");if(0>b)throw new RangeError("Offset cannot be negative.");if(0>c)throw new RangeError("Length cannot be negative.");if(b+c>a.length)throw new RangeError("Offset plus length cannot be greater than the array length.");if(!this.getMessageHeader())throw new W("Cannot write payload data for an error message.");var d=a.subarray(b, | |
b+c);this._currentPayload.push(d);return d.length}},this)}});Td=function(a,b,c,d,f,h,k){new bg(a,b,c,d,f,h,k)}})();var cg=Y.Class.create({sentHeader:function(a){},receivedHeader:function(a){}});Object.freeze({USERDATA_REAUTH:d.USERDATA_REAUTH,SSOTOKEN_REJECTED:d.SSOTOKEN_REJECTED});var dg=Y.Class.create({getCryptoContexts:function(){},getRecipient:function(){},isEncrypted:function(){},isIntegrityProtected:function(){},isNonReplayable:function(){},isRequestingTokens:function(){},getUserId:function(){}, | |
getUserAuthData:function(a,b,c,d){},getCustomer:function(){},getKeyRequestData:function(a){},updateServiceTokens:function(a,b,c){},write:function(a,b,c){},getDebugContext:function(){}});Y.Class.create({getInputStream:function(a){},getOutputStream:function(a){}});var $e;(function(){function c(a){return function(){a.abort()}}function f(a,b){Object.defineProperties(this,{masterToken:{value:a,writable:!1,configurable:!1},ticket:{value:b,writable:!1,configurable:!1}})}function h(a,b){Object.defineProperties(this, | |
{builder:{value:a,writable:!1,configurable:!1},msgCtx:{value:b,writable:!1,configurable:!1}})}function g(a,b,c){Object.defineProperties(this,{requestHeader:{value:a,writable:!1,configurable:!1},payloads:{value:b,writable:!1,configurable:!1},handshake:{value:c,writable:!1,configurable:!1}})}function t(a,b){Object.defineProperties(this,{requestHeader:{value:b.requestHeader,writable:!1,configurable:!1},payloads:{value:b.payloads,writable:!1,configurable:!1},handshake:{value:b.handshake,writable:!1,configurable:!1}, | |
response:{value:a,writable:!1,configurable:!1}})}function q(a){for(;a;){if(a instanceof ub)return!0;a=a instanceof A?a.cause:y}return!1}function n(a,b,c,d,g,f,h,l,m){Ze(b,d,g,f,{result:function(d){c&&c.sentHeader(d);Td(b,h,sa,d,null,null,l,{result:function(b){a.setAbort(function(){b.abort()});b.close(l,{result:function(a){k(m,function(){if(!a)throw new ub("sendError aborted.");return a})},timeout:function(){m.timeout()},error:function(a){m.error(a)}})},timeout:function(){},error:function(a){m.error(a)}})}, | |
error:function(a){m.error(a)}})}var p=ne.extend({close:function(a,b){b.result(!0)},write:function(a,c,d,g,f){b(f,function(){return Math.min(a.length-c,d)})},flush:function(a,b){b.result(!0)}}),M=Rf.extend({getUserMessage:function(a,b){return null}}),B=dg.extend({init:function(a){Object.defineProperties(this,{_appCtx:{value:a,writable:!1,enumerable:!1,configurable:!1}})},getCryptoContexts:function(){return this._appCtx.getCryptoContexts()},isEncrypted:function(){return this._appCtx.isEncrypted()}, | |
isIntegrityProtected:function(){return this._appCtx.isIntegrityProtected()},isNonReplayable:function(){return this._appCtx.isNonReplayable()},isRequestingTokens:function(){return this._appCtx.isRequestingTokens()},getUserId:function(){return this._appCtx.getUserId()},getUserAuthData:function(a,b,c,d){this._appCtx.getUserAuthData(a,b,c,d)},getCustomer:function(){return this._appCtx.getCustomer()},getKeyRequestData:function(a){this._appCtx.getKeyRequestData(a)},updateServiceTokens:function(a,b,c){this._appCtx.updateServiceTokens(a, | |
b,c)},write:function(a,b,c){this._appCtx.write(a,b,c)},getDebugContext:function(){return this._appCtx.getDebugContext()}}),G=B.extend({init:function ga(a,b){ga.base.call(this,b);Object.defineProperties(this,{_payloads:{value:a,writable:!1,enumerable:!1,configurable:!1}})},write:function(a,b,c){function d(f,h){if(f==g._payloads.length)c.result(!0);else{var l=g._payloads[f];a.setCompressionAlgorithm(l.compressionAlgo,b,{result:function(m){a.write(l.data,0,l.data.length,b,{result:function(m){k(c,function(){l.isEndOfMessage()? | |
d(f+1,h):a.flush(b,{result:function(a){c.result(a)},timeout:function(){c.timeout()},error:function(a){c.error(a)}})},g)},timeout:function(a){c.timeout(a)},error:function(a){c.error(a)}})},timeout:function(){},error:function(a){c.error(a)}})}}var g=this;d(0)}}),C=B.extend({init:function Sa(a){Sa.base.call(this,a)},isEncrypted:function(){return!1},isNonReplayable:function(){return!1},write:function(a,b,c){c.result(!0)}}),L={},I,P,ha,fa,O=Y.Class.create({init:function(a){a||(a=new M);Object.defineProperties(this, | |
{_filterFactory:{value:null,writable:!0,enumerable:!1,configurable:!1},_renewingContexts:{value:[],writable:!1,enumerable:!1,configurable:!1},_masterTokenLocks:{value:{},writable:!1,enumerable:!1,configurable:!1},_messageRegistry:{value:a,writable:!1,enumerable:!1,configurable:!1}})},setFilterFactory:function(a){this._filterFactory=a},getNewestMasterToken:function(a,b,c,d){var g=this;k(d,function(){var h=b.getMslStore(),l=h.getMasterToken();if(!l)return null;var t=l.uniqueKey(),q=this._masterTokenLocks[t]; | |
q||(q=new Fc,this._masterTokenLocks[t]=q);var n=q.readLock(c,{result:function(n){k(d,function(){if(n===y)throw new ub("getNewestMasterToken aborted.");var w=h.getMasterToken();if(l.equals(w))return new f(l,n);q.unlock(n);q.writeLock(c,{result:function(f){k(d,function(){if(f===y)throw new ub("getNewestMasterToken aborted.");delete this._masterTokenLocks[t];q.unlock(f);return this.getNewestMasterToken(a,b,c,d)},g)},timeout:function(){d.timeout()},error:function(a){d.error(a)}})},g)},timeout:function(){d.timeout()}, | |
error:function(a){d.error(a)}});a.setAbort(function(){n&&(q.cancel(n),n=y)})},g)},deleteMasterToken:function(a,b){if(b){var c=this;setTimeout(function(){var d=b.uniqueKey(),g=c._masterTokenLocks[d];g||(g=new Fc,c._masterTokenLocks[d]=g);g.writeLock(-1,{result:function(f){a.getMslStore().removeCryptoContext(b);delete c._masterTokenLocks[d];g.unlock(f)},timeout:function(){throw new W("Unexpected timeout received.");},error:function(a){throw a;}})},0)}},releaseMasterToken:function(a){if(a&&a.masterToken){var b= | |
a.masterToken.uniqueKey(),b=this._masterTokenLocks[b];if(!b)throw new W("Master token read/write lock does not exist when it should.");b.unlock(a.ticket)}},updateOutgoingCryptoContexts:function(a,b,c){var d=a.getMslStore();!a.isPeerToPeer()&&c&&(d.setCryptoContext(c.keyResponseData.masterToken,c.cryptoContext),this.deleteMasterToken(a,b.masterToken))},updateIncomingCryptoContexts:function(a,b,c){var d=c.getMessageHeader();if(d){var g=a.getMslStore();if(d=d.keyResponseData)g.setCryptoContext(d.masterToken, | |
c.getKeyExchangeCryptoContext()),this.deleteMasterToken(a,b.masterToken)}},storeServiceTokens:function(a,b,c,d){a=a.getMslStore();for(var g=[],f=0;f<d.length;++f){var h=d[f];if(!h.isBoundTo(b)||!b.isVerified()){var l=h.data;l&&0==l.length?a.removeServiceTokens(h.name,h.isMasterTokenBound()?b:null,h.isUserIdTokenBound()?c:null):g.push(h)}}0<g.length&&a.addServiceTokens(g)},buildRequest:function(a,c,d,g,f){var h=this;this.getNewestMasterToken(a,c,g,{result:function(a){b(f,function(){var g=a&&a.masterToken, | |
l;if(g){l=d.getUserId();var k=c.getMslStore();l=(l=l?k.getUserIdToken(l):null)&&l.isBoundTo(g)?l:null}else l=null;gd(c,g,l,null,{result:function(c){b(f,function(){c.setNonReplayable(d.isNonReplayable());return{builder:c,tokenTicket:a}})},error:function(c){b(f,function(){this.releaseMasterToken(a);c instanceof A&&(c=new W("User ID token not bound to master token despite internal check.",c));throw c;},h)}})},h)},timeout:function(){f.timeout()},error:function(a){f.error(a)}})},buildResponse:function(a, | |
b,c,d,g,f){var h=this;$f(b,d,{result:function(l){k(f,function(){l.setNonReplayable(c.isNonReplayable());if(!b.isPeerToPeer()&&!d.keyResponseData)return{builder:l,tokenTicket:null};this.getNewestMasterToken(a,b,g,{result:function(a){k(f,function(){var d=a&&a.masterToken,g;if(d){g=c.getUserId();var f=b.getMslStore();g=(g=g?f.getUserIdToken(g):null)&&g.isBoundTo(d)?g:null}else g=null;l.setAuthTokens(d,g);return{builder:l,tokenTicket:a}},h)},timeout:function(){f.timeout()},error:function(a){f.error(a)}})}, | |
h)},error:function(a){f.error(a)}})},buildErrorResponse:function(a,b,c,g,f,m,t){function q(a,d){k(t,function(){var g=fd(f.messageId),m=new G(d,c);gd(b,null,null,g,{result:function(c){k(t,function(){b.isPeerToPeer()&&c.setPeerAuthTokens(a.peerMasterToken,a.peerUserIdToken);c.setNonReplayable(m.isNonReplayable());return{errorResult:new h(c,m),tokenTicket:null}},w)},error:function(a){t.error(a)}})},w)}function n(d,g){w.getNewestMasterToken(a,b,m,{result:function(a){k(t,function(){var m=a&&a.masterToken, | |
q=fd(f.messageId),n=new G(g,c);gd(b,m,null,q,{result:function(c){k(t,function(){b.isPeerToPeer()&&c.setPeerAuthTokens(d.peerMasterToken,d.peerUserIdToken);c.setNonReplayable(n.isNonReplayable());return{errorResult:new h(c,n),tokenTicket:a}},w)},error:function(a){t.error(a)}})},w)},timeout:function(){t.timeout()},error:function(a){t.error(a)}})}var w=this;k(t,function(){var B=g.requestHeader,p=g.payloads,J=f.errorCode;switch(J){case d.ENTITYDATA_REAUTH:case d.ENTITY_REAUTH:b.getEntityAuthenticationData(J, | |
{result:function(a){k(t,function(){if(!a)return null;q(B,p)},w)},error:function(a){t.error(a)}});break;case d.USERDATA_REAUTH:case d.SSOTOKEN_REJECTED:c.getUserAuthData(J,!1,!0,{result:function(a){k(t,function(){if(!a)return null;n(B,p)},w)},error:function(a){t.error(a)}});break;case d.USER_REAUTH:n(B,p);break;case d.KEYX_REQUIRED:var J=fd(f.messageId),M=new G(p,c);gd(b,null,null,J,{result:function(a){k(t,function(){b.isPeerToPeer()&&a.setPeerAuthTokens(B.peerMasterToken,B.peerUserIdToken);a.setRenewable(!0); | |
a.setNonReplayable(M.isNonReplayable());return{errorResult:new h(a,M),tokenTicket:null}},w)},error:function(a){t.error(a)}});break;case d.EXPIRED:this.getNewestMasterToken(a,b,m,{result:function(a){k(t,function(){var d=a&&a.masterToken,g=B.userIdToken,m=fd(f.messageId),q=new G(p,c);gd(b,d,g,m,{result:function(c){k(t,function(){b.isPeerToPeer()&&c.setPeerAuthTokens(B.peerMasterToken,B.peerUserIdToken);B.masterToken.equals(d)&&c.setRenewable(!0);c.setNonReplayable(q.isNonReplayable());return{errorResult:new h(c, | |
q),tokenTicket:a}},w)},error:function(a){t.error(a)}},w)},w)},timeout:function(){t.timeout()},error:function(a){t.error(a)}});break;case d.REPLAYED:this.getNewestMasterToken(a,b,m,{result:function(a){k(t,function(){var d=a&&a.masterToken,g=B.userIdToken,m=fd(f.messageId),q=new G(p,c);gd(b,d,g,m,{result:function(c){k(t,function(){b.isPeerToPeer()&&c.setPeerAuthTokens(B.peerMasterToken,B.peerUserIdToken);B.masterToken.equals(d)?(c.setRenewable(!0),c.setNonReplayable(!1)):c.setNonReplayable(q.isNonReplayable()); | |
return{errorResult:new h(c,q),tokenTicket:a}},w)},error:function(a){t.error(a)}})},w)},timeout:function(){t.timeout()},error:function(a){t.error(a)}});break;default:return null}},w)},cleanupContext:function(a,b,c){switch(c.errorCode){case d.ENTITY_REAUTH:this.deleteMasterToken(a,b.masterToken);break;case d.USER_REAUTH:c=b.userIdToken,b.masterToken&&c&&a.getMslStore().removeUserIdToken(c)}},send:function(a,b,c,d,f,h,l){function m(a,d,g){k(l,function(){var h=f.getPeerUserIdToken();!b.isPeerToPeer()&& | |
!d||b.isPeerToPeer()&&!h?(h=c.getCustomer())?f.setCustomer(h,{result:function(b){k(l,function(){d=f.getUserIdToken();t(a,d,g)},B)},error:function(a){l.error(a)}}):t(a,d,g):t(a,d,g)},B)}function t(a,b,d){k(l,function(){var g=!d&&(!c.isEncrypted()||f.willEncryptPayloads())&&(!c.isIntegrityProtected()||f.willIntegrityProtectPayloads())&&(!c.isNonReplayable()||f.isNonReplayable()&&a);g||f.setNonReplayable(!1);var h=[];f.isRenewable()&&(!a||a.isRenewable()||c.isNonReplayable())?c.getKeyRequestData({result:function(c){k(l, | |
function(){for(var d=0;d<c.length;++d){var l=c[d];h.push(l);f.addKeyRequestData(l)}q(a,b,g,h)},B)},error:function(a){l.error(a)}}):q(a,b,g,h)},B)}function q(g,m,t,w){k(l,function(){var q=new Sd(b,c,f);c.updateServiceTokens(q,!t,{result:function(q){f.getHeader({result:function(q){k(l,function(){var k=c.getDebugContext();k&&k.sentHeader(q);k=f.getKeyExchangeData();this.updateOutgoingCryptoContexts(b,q,k);this.storeServiceTokens(b,g,m,q.serviceTokens);k=!b.isPeerToPeer()&&k?k.cryptoContext:q.cryptoContext; | |
if(a.isAborted())throw new ub("send aborted.");var w=null!=this._filterFactory?this._filterFactory.getOutputStream(d):d;Td(b,w,sa,q,k,h,{result:function(b){a.setAbort(function(){b.abort()});n(b,q,t)},timeout:function(){l.timeout()},error:function(a){l.error(a)}})},B)},timeout:function(){l.timeout()},error:function(a){l.error(a)}})},error:function(a){l.error(a)}})},B)}function n(d,g,f){if(f)c.write(d,h,{result:function(b){k(l,function(){if(a.isAborted())throw new ub("MessageOutputStream write aborted."); | |
w(d,g,f)},B)},timeout:function(){l.timeout()},error:function(a){l.error(a)}});else{var m=new p,t=new bd;Td(b,m,sa,g,t,h,{result:function(b){c.write(b,h,{result:function(c){k(l,function(){if(a.isAborted())throw new ub("MessageOutputStream proxy write aborted.");b.close(h,{result:function(a){k(l,function(){if(!a)throw new ub("MessageOutputStream proxy close aborted.");var c=b.getPayloads();w(d,g,f,c)},B)},timeout:function(){l.timeout()},error:function(a){l.error(a)}})},B)},timeout:function(){l.timeout()}, | |
error:function(a){l.error(a)}})},timeout:function(){l.timeout()},error:function(a){l.error(a)}})}}function w(a,b,c,d){a.close(h,{result:function(f){k(l,function(){if(!f)throw new ub("MessageOutputStream close aborted.");d||(d=a.getPayloads());return new g(b,d,!c)},B)},timeout:function(){l.timeout()},error:function(a){l.error(a)}})}var B=this;k(l,function(){var a=f.getMasterToken(),b=f.getUserIdToken(),d=!1;if(c.getUserId()){var g=!b;c.getUserAuthData(null,f.isRenewable(),g,{result:function(c){k(l, | |
function(){c&&(f.willEncryptHeader()&&f.willIntegrityProtectHeader()?f.setUserAuthenticationData(c):d=!0);m(a,b,d)},B)},error:function(a){l.error(a)}})}else m(a,b,d)},B)},receive:function(b,c,g,f,h,l,m){var t=this;k(m,function(){if(b.isAborted())throw new ub("receive aborted.");var q=[];h&&(q=h.keyRequestData.filter(function(){return!0}));var n=g.getCryptoContexts(),w=this._filterFactory?this._filterFactory.getInputStream(f):f;we(c,w,sa,q,n,l,{result:function(f){b.setAbort(function(){f.abort()}); | |
f.isReady(l,{result:function(b){k(m,function(){if(!b)throw new ub("MessageInputStream aborted.");var l=f.getMessageHeader(),q=f.getErrorHeader(),n=g.getDebugContext();n&&n.receivedHeader(l?l:q);if(h&&(n=q?q.errorCode:null,l||n!=d.FAIL&&n!=d.TRANSIENT_FAILURE&&n!=d.ENTITY_REAUTH&&n!=d.ENTITYDATA_REAUTH)){var n=l?l.messageId:q.messageId,w=fd(h.messageId);if(n!=w)throw new za(a.UNEXPECTED_RESPONSE_MESSAGE_ID,"expected "+w+"; received "+n);}c.getEntityAuthenticationData(null,{result:function(b){k(m,function(){var d= | |
b.getIdentity(),k;if(l){k=l.entityAuthenticationData;var m=l.masterToken;k=m?l.sender:k.getIdentity();if(m&&m.isDecrypted()&&m.identity!=k||d==k)throw new za(a.UNEXPECTED_MESSAGE_SENDER,k);h&&this.updateIncomingCryptoContexts(c,h,f);d=l.keyResponseData;c.isPeerToPeer()?(d=d?d.masterToken:l.peerMasterToken,m=l.peerUserIdToken,k=l.peerServiceTokens):(d=d?d.masterToken:l.masterToken,m=l.userIdToken,k=l.serviceTokens);var t=g.getUserId();t&&m&&!m.isVerified()&&c.getMslStore().addUserIdToken(t,m);this.storeServiceTokens(c, | |
d,m,k)}else if(k=q.entityAuthenticationData.getIdentity(),d==k)throw new za(a.UNEXPECTED_MESSAGE_SENDER,k);return f},t)},error:m.error})},t)},timeout:function(){m.timeout()},error:function(a){m.error(a)}})},timeout:function(){m.timeout()},error:function(a){m.error(a)}})},t)},sendReceive:function(a,b,c,d,g,f,l,h,m){function q(w,B){k(m,function(){f.setRenewable(B);this.send(a,b,c,g,f,l,{result:function(g){k(m,function(){var f=g.requestHeader.keyRequestData;h||g.handshake||!f.isEmpty()?this.receive(a, | |
b,c,d,g.requestHeader,l,{result:function(a){k(m,function(){B&&this.releaseRenewalLock(b,w,a);return new t(a,g)},n)},timeout:function(){k(m,function(){B&&this.releaseRenewalLock(b,w,null);m.timeout()},n)},error:function(a){k(m,function(){B&&this.releaseRenewalLock(b,w,null);throw a;},n)}}):k(m,function(){B&&this.releaseRenewalLock(b,w,null);return new t(null,g)},n)},n)},timeout:function(){k(m,function(){B&&this.releaseRenewalLock(b,w,null);m.timeout()},n)},error:function(a){k(m,function(){B&&this.releaseRenewalLock(b, | |
w,null);throw a;},n)}})},n)}var n=this;k(m,function(){var d=new Fa;this.acquireRenewalLock(a,b,c,d,f,l,{result:function(a){q(d,a)},timeout:function(){m.timeout()},error:function(a){a instanceof ub?m.result(null):m.error(a)}})},n)},acquireRenewalLock:function(a,b,c,d,g,f,l){function h(q,n,w){k(l,function(){if(a.isAborted())throw new ub("acquireRenewalLock aborted.");for(var B=null,p=0;p<this._renewingContexts.length;++p){var J=this._renewingContexts[p];if(J.ctx===b){B=J.queue;break}}if(!B)return this._renewingContexts.push({ctx:b, | |
queue:d}),!0;var G=B.poll(f,{result:function(a){k(l,function(){if(a===y)throw new ub("acquireRenewalLock aborted.");B.add(a);if(a===L||a.isExpired())h(a,n,w);else{if(w&&!n||n&&!n.isBoundTo(a)){var d=b.getMslStore().getUserIdToken(w);n=d&&d.isBoundTo(a)?d:null}g.setAuthTokens(a,n);g.isRenewable()&&a.equals(q)?h(a,n,w):c.isRequestingTokens()&&!n?h(a,n,w):m(a,n)}},t)},timeout:function(){},error:function(a){}});a.setAbort(function(){G&&(B.cancel(G),G=y)})},t)}function m(g,f){k(l,function(){if(a.isAborted())throw new ub("acquireRenewalLock aborted."); | |
if(!g||g.isRenewable()||!f&&c.getUserId()||f&&f.isRenewable()){for(var l=null,h=0;h<this._renewingContexts.length;++h){var k=this._renewingContexts[h];if(k.ctx===b){l=k.queue;break}}if(!l)return this._renewingContexts.push({ctx:b,queue:d}),!0}return!1},t)}var t=this;k(l,function(){var a=g.getMasterToken(),b=g.getUserIdToken(),d=c.getUserId();c.isEncrypted()&&!g.willEncryptPayloads()||c.isIntegrityProtected()&&!g.willIntegrityProtectPayloads()||g.isRenewable()||!a&&c.isNonReplayable()||a&&a.isExpired()|| | |
!(b||!d||g.willEncryptHeader()&&g.willIntegrityProtectHeader())||c.isRequestingTokens()&&(!a||d&&!b)?h(a,b,d):m(a,b)},t)},releaseRenewalLock:function(a,b,c){for(var d,g,f=0;f<this._renewingContexts.length;++f){var l=this._renewingContexts[f];if(l.ctx===a){d=f;g=l.queue;break}}if(g!==b)throw new W("Attempt to release renewal lock that is not owned by this queue.");c?(c=c.messageHeader)?(g=c.keyResponseData)?b.add(g.masterToken):(a=a.isPeerToPeer()?c.peerMasterToken:c.masterToken)?b.add(a):b.add(L): | |
b.add(L):b.add(L);this._renewingContexts.splice(d,1)}});$e=Y.Class.create({init:function(){var a={_impl:{value:new O,writable:!1,enumerable:!1,configurable:!1},_shutdown:{value:!1,writable:!1,enumerable:!1,configurable:!1}};Object.defineProperties(this,a)},setFilterFactory:function(a){this._impl.setFilterFactory(a)},shutdown:function(){this._shutdown=!0},receive:function(a,b,d,g,f,l){if(this._shutdown)throw new A("MslControl is shutdown.");var h=new I(this._impl,a,b,d,g,f);setTimeout(function(){h.call(l)}, | |
0);return c(h)},respond:function(a,b,d,g,f,l,h){if(this._shutdown)throw new A("MslControl is shutdown.");var k=new P(this._impl,a,b,d,g,f,l);setTimeout(function(){k.call(h)},0);return c(k)},error:function(a,b,d,g,f,l,h){if(this._shutdown)throw new A("MslControl is shutdown.");var k=new ha(this._impl,a,b,d,g,f,l);setTimeout(function(){k.call(h)},0);return c(k)},request:function(a,b){if(this._shutdown)throw new A("MslControl is shutdown.");var d,g,f,l,h;if(5==arguments.length){if(d=arguments[2],f=g= | |
null,l=arguments[3],h=arguments[4],a.isPeerToPeer()){h.error(new W("This method cannot be used in peer-to-peer mode."));return}}else if(6==arguments.length&&(d=null,g=arguments[2],f=arguments[3],l=arguments[4],h=arguments[5],!a.isPeerToPeer())){h.error(new W("This method cannot be used in trusted network mode."));return}var k=new fa(this._impl,a,b,d,g,f,null,0,l);setTimeout(function(){k.call(h)},0);return c(k)}});I=Y.Class.create({init:function(a,b,c,d,g,f){Object.defineProperties(this,{_ctrl:{value:a, | |
writable:!1,enumerable:!1,configurable:!1},_ctx:{value:b,writable:!1,enumerable:!1,configurable:!1},_msgCtx:{value:c,writable:!1,enumerable:!1,configurable:!1},_input:{value:d,writable:!1,enumerable:!1,configurable:!1},_output:{value:g,writable:!1,enumerable:!1,configurable:!1},_timeout:{value:f,writable:!1,enumerable:!1,configurable:!1},_aborted:{value:!1,writable:!0,enumerable:!1,configurable:!1},_abortFunc:{value:y,writable:!0,enumerable:!1,configurable:!1}})},isAborted:function(){return this._aborted}, | |
abort:function(){this._aborted=!0;this._abortFunc&&this._abortFunc.call(this)},setAbort:function(a){this._abortFunc=a},call:function(b){function c(g){k(b,function(){var c=g.messageHeader;if(!c)return g;this.setAbort(function(){g.abort()});g.mark(Number.MAX_VALUE);g.read(1,f._timeout,{result:function(a){k(b,function(){if(a&&0==a.length)return null;if(a)return g.reset(),g;d(g)},f)},timeout:function(){b.timeout()},error:function(d){k(b,function(){if(q(d))return null;var g=c?c.messageId:null,l,h;d instanceof | |
ob?(l=a.MSL_COMMS_FAILURE,h=d):(l=a.INTERNAL_EXCEPTION,h=new W("Error peeking into the message payloads."));n(this,this._ctx,this._msgCtx.getDebugContext(),g,l,null,this._output,this._timeout,{result:function(a){b.error(h)},timeout:function(){b.timeout()},error:function(a){k(b,function(){if(q(a))return null;throw new Db("Error peeking into the message payloads.",a,d);},f)}})},f)}})},f)}function d(c){k(b,function(){c.close();this._ctrl.buildResponse(this,this._ctx,this._msgCtx,c.messageHeader,this._timeout, | |
{result:function(a){k(b,function(){var d=a.builder,f=a.tokenTicket,l=c.messageHeader,h=new C(this._msgCtx);if(!this._ctx.isPeerToPeer()||l.isEncrypting()||l.keyResponseData)g(l,d,h,f);else{var k=new fa(this._ctrl,this._ctx,h,null,this._input,this._output,a,1,this._timeout);this.setAbort(function(){k.abort()});k.call(b)}},f)},timeout:function(){b.timeout()},error:function(d){k(b,function(){if(q(d))return null;var g,l,h,m;d instanceof A?(g=d.messageId,l=d.error,h=c.messageHeader.messageCapabilities, | |
h=this._ctrl.messageRegistry.getUserMessage(l,h?h.languages:null),m=d):(g=requestHeader?requestHeader.messageId:null,l=a.INTERNAL_EXCEPTION,h=null,m=new W("Error creating an automatic handshake response.",d));n(this,this._ctx,this._msgCtx.getDebugContext(),g,l,h,this._output,this._timeout,{result:function(a){b.error(m)},timeout:function(){b.timeout()},error:function(a){k(b,function(){if(q(a))return null;throw new Db("Error creating an automatic handshake response.",a,d);},f)}})},f)}})},f)}function g(c, | |
d,l,h){k(b,function(){d.setRenewable(!1);this._ctrl.send(this._ctx,l,this._output,d,this._timeout,{result:function(a){k(b,function(){this._ctx.isPeerToPeer()&&this._ctrl.releaseMasterToken(h);return null},f)},timeout:function(){k(b,function(){this._ctx.isPeerToPeer()&&this._ctrl.releaseMasterToken(h);b.timeout()},f)},error:function(d){k(b,function(){this._ctx.isPeerToPeer()&&this._ctrl.releaseMasterToken(h);if(q(d))return null;var g,l,m,t;d instanceof A?(g=d.messageId,l=d.error,m=c?c.messageCapabilities: | |
null,m=this._ctrl.messageRegistry.getUserMessage(l,m?m.languages:null),t=d):d instanceof ob?(g=c?c.messageId:null,l=a.MSL_COMMS_FAILURE,m=null,t=d):(g=c?c.messageId:null,l=a.INTERNAL_EXCEPTION,m=null,t=new W("Error sending an automatic handshake response.",d));n(this,this._ctx,this._msgCtx.getDebugContext(),g,l,m,this._output,this._timeout,{result:function(a){b.error(t)},timeout:function(){b.timeout()},error:function(a){k(b,function(){if(q(a))return null;throw new Db("Error sending an automatic handshake response.", | |
a,d);},f)}})},f)}})},f)}var f=this;k(b,function(){this._ctrl.receive(this,this._ctx,this._msgCtx,this._input,null,this._timeout,{result:function(a){c(a)},timeout:function(){b.timeout()},error:function(c){k(b,function(){if(q(c))return null;var d,g,l,h;c instanceof A?(d=c.messageId,g=c.error,l=this._ctrl.messageRegistry.getUserMessage(g,null),h=c):(d=null,g=a.INTERNAL_EXCEPTION,l=null,h=new W("Error receiving the message header.",c));n(this,this._ctx,this._msgCtx.getDebugContext(),d,g,l,this._output, | |
this._timeout,{result:function(a){b.error(h)},timeout:function(){b.timeout()},error:function(a){k(b,function(){if(q(a))return null;throw new Db("Error receiving the message header.",a,c);},f)}})},f)}})},f)}});P=Y.Class.create({init:function(a,b,c,d,g,f,l){Object.defineProperties(this,{_ctrl:{value:a,writable:!1,enumerable:!1,configurable:!1},_ctx:{value:b,writable:!1,enumerable:!1,configurable:!1},_msgCtx:{value:c,writable:!1,enumerable:!1,configurable:!1},_input:{value:d,writable:!1,enumerable:!1, | |
configurable:!1},_output:{value:g,writable:!1,enumerable:!1,configurable:!1},_request:{value:f,writable:!1,enumerable:!1,configurable:!1},_timeout:{value:l,writable:!1,enumerable:!1,configurable:!1},_aborted:{value:!1,writable:!0,enumerable:!1,configurable:!1},_abortFunc:{value:y,writable:!0,enumerable:!1,configurable:!1}})},isAborted:function(){return this._aborted},abort:function(){this._aborted=!0;this._abortFunc&&this._abortFunc.call(this)},setAbort:function(a){this._abortFunc=a},trustedNetworkExecute:function(b, | |
c,d){var g=this;k(d,function(){if(12<c+1)return!1;var f;if(f=this._msgCtx.isIntegrityProtected()&&!b.willIntegrityProtectHeader()?a.RESPONSE_REQUIRES_INTEGRITY_PROTECTION:this._msgCtx.isEncrypted()&&!b.willEncryptPayloads()?a.RESPONSE_REQUIRES_ENCRYPTION:null){var l=yd(b.getMessageId());n(this,this._ctx,this._msgCtx.getDebugContext(),l,f,null,this._output,this._timeout,{result:function(a){d.result(!1)},timeout:function(){d.timeout()},error:function(a){k(d,function(){if(q(a))return!1;throw new Db("Response requires encryption or integrity protection but cannot be protected: "+ | |
f,a,null);},g)}})}else!this._msgCtx.getCustomer()||b.getMasterToken()||b.getKeyExchangeData()?(b.setRenewable(!1),this._ctrl.send(this._ctx,this._msgCtx,this._output,b,this._timeout,{result:function(a){d.result(!0)},timeout:function(){d.timeout()},error:function(a){d.error(a)}})):(l=yd(b.getMessageId()),n(this,this._ctx,this._msgCtx.getDebugContext(),l,a.RESPONSE_REQUIRES_MASTERTOKEN,null,this._output,this._timeout,{result:function(a){d.result(!1)},timeout:function(){d.timeout()},error:function(a){k(d, | |
function(){if(q(a))return!1;throw new Db("Response wishes to attach a user ID token but there is no master token.",a,null);},g)}}))},g)},peerToPeerExecute:function(b,c,d,g){function f(a){k(g,function(){var c=a.response;c.close();c=c.getErrorHeader();this._ctrl.cleanupContext(this._ctx,a.requestHeader,c);this._ctrl.buildErrorResponse(this,this._ctx,b,a,c,{result:function(a){k(g,function(){if(!a)return!1;var b=a.errorResult,c=a.tokenTicket;this.peerToPeerExecute(b.msgCtx,b.builder,d,{result:function(a){k(g, | |
function(){this._ctrl.releaseMasterToken(c);return a},l)},timeout:function(){k(g,function(){this._ctrl.releaseMasterToken(c);g.timeout()},l)},error:function(a){k(g,function(){this._ctrl.releaseMasterToken(c);throw a;},l)}})},l)}})},l)}var l=this;k(g,function(){if(12<d+2)return!1;if(null!=b.getCustomer()&&null==c.getPeerMasterToken()&&null==c.getKeyExchangeData()){var h=yd(c.getMessageId());n(this,this._ctx,b.getDebugContext(),h,a.RESPONSE_REQUIRES_MASTERTOKEN,null,this._output,this._timeout,{result:function(a){g.result(!1)}, | |
timeout:function(){g.timeout()},error:function(a){k(g,function(){if(q(a))return!1;throw new Db("Response wishes to attach a user ID token but there is no master token.",a,null);},l)}})}else this._ctrl.sendReceive(this._ctx,b,this._input,this._output,c,this._timeout,!1,{result:function(a){k(g,function(){function c(){m.read(32768,l._timeout,{result:function(a){k(g,function(){a?c():h()},l)},timeout:function(){g.timeout()},error:function(a){g.error(a)}})}function h(){k(g,function(){var c=new G(a.payloads, | |
b);this._ctrl.buildResponse(this,this._ctx,c,t,this._timeout,{result:function(a){k(g,function(){var b=a.tokenTicket;this.peerToPeerExecute(c,a.builder,d,{result:function(a){k(g,function(){this._ctrl.releaseMasterToken(b);return a},l)},timeout:function(){k(g,function(){this._ctrl.releaseMasterToken(b);g.timeout()},l)},error:function(a){k(g,function(){this._ctrl.releaseMasterToken(b);throw a;},l)}})},l)},timeout:function(){g.timeout()},error:function(a){g.error(a)}})},l)}var m=a.response;d+=2;if(!m)return!0; | |
var t=m.getMessageHeader();if(t){var q=a.payloads,q=0<q.length&&0<q[0].data.length;if(a.handshake&&q)c();else return!0}else f(a)},l)},timeout:function(){g.timeout()},error:function(a){g.error(a)}})},l)},call:function(b){var c=this;this._ctrl.buildResponse(this,this._ctx,this._msgCtx,this._request,this._timeout,{result:function(d){k(b,function(){var g=d.builder,f=d.tokenTicket;this._ctx.isPeerToPeer()?this.peerToPeerExecute(this._msgCtx,g,3,{result:function(a){k(b,function(){this._ctx.isPeerToPeer()&& | |
this.releaseMasterToken(f);return a},c)},timeout:function(){k(b,function(){this._ctx.isPeerToPeer()&&this.releaseMasterToken(f);b.timeout()},c)},error:function(d){k(b,function(){this._ctx.isPeerToPeer()&&this.releaseMasterToken(f);if(q(d))return!1;var l=yd(g.getMessageId()),h,m,t;d instanceof A?(h=d.error,m=this._request.messageCapabilities,m=this._ctrl.messageRegistry.getUserMessage(h,m?m.languages:null),t=d):d instanceof ob?(h=a.MSL_COMMS_FAILURE,m=null,t=d):(h=a.INTERNAL_EXCEPTION,m=null,t=new W("Error sending the response.", | |
d));n(this,this._ctx,this._msgCtx.getDebugContext(),l,h,m,this._output,this._timeout,{result:function(a){b.error(t)},timeout:function(){b.timeout()},error:function(a){k(b,function(){if(q(a))return!1;throw new Db("Error sending the response.",a,null);},c)}})},c)}}):this.trustedNetworkExecute(g,3,{result:function(a){k(b,function(){this._ctx.isPeerToPeer()&&this.releaseMasterToken(f);return a},c)},timeout:function(){k(b,function(){this._ctx.isPeerToPeer()&&this.releaseMasterToken(f);b.timeout()},c)}, | |
error:function(d){k(b,function(){this._ctx.isPeerToPeer()&&this.releaseMasterToken(f);if(q(d))return!1;var l=yd(g.getMessageId()),h,m,t;d instanceof A?(h=d.error,m=this._request.messageCapabilities,m=this._ctrl.messageRegistry.getUserMessage(h,m?m.languages:null),t=d):d instanceof ob?(h=a.MSL_COMMS_FAILURE,m=null,t=d):(h=a.INTERNAL_EXCEPTION,m=null,t=new W("Error sending the response.",d));n(this,this._ctx,this._msgCtx.getDebugContext(),l,h,m,this._output,this._timeout,{result:function(a){b.error(t)}, | |
timeout:function(){b.timeout()},error:function(a){k(b,function(){if(q(a))return!1;throw new Db("Error sending the response.",a,null);},c)}})},c)}})},c)},timeout:function(){b.timeout()},error:function(d){k(b,function(){if(q(d))return!1;var g,f,l,h;d instanceof A?(g=d.messageId,f=d.error,l=this._request.messageCapabilities,l=this._ctrl.messageRegistry.getUserMessage(f,l?l.languages:null),h=d):(g=null,f=a.INTERNAL_EXCEPTION,l=null,h=new W("Error building the response.",d));n(this,this._ctx,this._msgCtx.getDebugContext(), | |
g,f,l,this._output,this._timeout,{result:function(a){b.error(h)},timeout:function(){b.timeout()},error:function(a){k(b,function(){if(q(a))return null;throw new Db("Error building the response.",a,d);},c)}})},c)}})}});ha=Y.Class.create({init:function(a,b,c,d,g,f,l){Object.defineProperties(this,{_ctrl:{value:a,writable:!1,enumerable:!1,configurable:!1},_ctx:{value:b,writable:!1,enumerable:!1,configurable:!1},_msgCtx:{value:c,writable:!1,enumerable:!1,configurable:!1},_appError:{value:d,writable:!1, | |
enumerable:!1,configurable:!1},_output:{value:output,writable:!1,enumerable:!1,configurable:!1},_request:{value:f,writable:!1,enumerable:!1,configurable:!1},_timeout:{value:l,writable:!1,enumerable:!1,configurable:!1},_aborted:{value:!1,writable:!0,enumerable:!1,configurable:!1},_abortFunc:{value:y,writable:!0,enumerable:!1,configurable:!1}})},isAborted:function(){return this._aborted},abort:function(){this._aborted=!0;this._abortFunc&&this._abortFunc.call(this)},setAbort:function(a){this._abortFunc= | |
a},call:function(b){var c=this;k(b,function(){var d;if(this._appError==ENTITY_REJECTED)d=this._request.masterToken?a.MASTERTOKEN_REJECTED_BY_APP:a.ENTITY_REJECTED_BY_APP;else if(this._appError==USER_REJECTED)d=this._request.userIdToken?a.USERIDTOKEN_REJECTED_BY_APP:a.USER_REJECTED_BY_APP;else throw new W("Unhandled application error "+this._appError+".");var g=this._request.messageCapabilities,g=this._ctrl.messageRegistry.getUserMessage(d,g?g.languages:null);n(this,this._ctx,this._msgCtx.getDebugContext(), | |
this._request.messageId,d,g,this._output,this._timeout,{result:function(a){b.result(a)},timeout:b.timeout,error:function(a){k(b,function(){if(q(a))return!1;if(a instanceof A)throw a;throw new W("Error building the error response.",a);},c)}})},c)}});var na={result:function(){},timeout:function(){},error:function(){}};fa=Y.Class.create({init:function(a,b,c,d,g,f,l,h,k){var m;l?(m=l.builder,l=l.tokenTicket):l=m=null;Object.defineProperties(this,{_ctrl:{value:a,writable:!1,enumerable:!1,configurable:!1}, | |
_ctx:{value:b,writable:!1,enumerable:!1,configurable:!1},_msgCtx:{value:c,writable:!1,enumerable:!1,configurable:!1},_remoteEntity:{value:d,writable:!1,enumerable:!1,configurable:!1},_input:{value:g,writable:!0,enumerable:!1,configurable:!1},_output:{value:f,writable:!0,enumerable:!1,configurable:!1},_openedStreams:{value:!1,writable:!0,enumerable:!1,configurable:!1},_builder:{value:m,writable:!0,enumerable:!1,configurable:!1},_tokenTicket:{value:l,writable:!0,enumerable:!1,configurable:!1},_timeout:{value:k, | |
writable:!1,enumerable:!1,configurable:!1},_msgCount:{value:h,writable:!1,enumerable:!1,configurable:!1},_aborted:{value:!1,writable:!0,enumerable:!1,configurable:!1},_abortFunc:{value:y,writable:!0,enumerable:!1,configurable:!1}})},isAborted:function(){return this._aborted},abort:function(){this._aborted=!0;this._abortFunc&&this._abortFunc.call(this)},setAbort:function(a){this._abortFunc=a},execute:function(a,b,c,d,g){function f(b){function l(a){k(g,function(){var c=b.response;return a?a:c},h)}k(g, | |
function(){var f=b.response;f.close();var m=f.getErrorHeader();this._ctrl.cleanupContext(this._ctx,b.requestHeader,m);this._ctrl.buildErrorResponse(this,this._ctx,a,b,m,c,{result:function(a){k(g,function(){if(!a)return f;var b=a.errorResult,m=a.tokenTicket,t=b.builder,b=b.msgCtx;if(this._ctx.isPeerToPeer())this.execute(b,t,this._timeout,d,{result:function(a){k(g,function(){this._ctrl.releaseMasterToken(m);l(a)},h)},timeout:function(){k(g,function(){this._ctrl.releaseMasterToken(m);g.timeout()},h)}, | |
error:function(a){k(g,function(){this._ctrl.releaseMasterToken(m);g.error(a)},h)}});else{this._openedStreams&&(this._input.close(),this._output.close(c,na));var q=new fa(this._ctrl,this._ctx,b,this._remoteEntity,null,null,{builder:t,tokenTicket:m},d,this._timeout);this.setAbort(function(){q.abort()});q.call({result:function(a){l(a)},timeout:function(){g.timeout()},error:function(a){g.error(a)}})}},h)},timeout:function(){g.timeout()},error:function(a){g.error(a)}})},h)}function l(b){k(g,function(){function f(){m.read(32768, | |
h._timeout,{result:function(a){a?f():l()},timeout:function(){g.timeout()},error:function(a){g.error(a)}})}function l(){k(g,function(){var f=new G(b.payloads,a);this._ctrl.buildResponse(this,this._ctx,a,t,c,{result:function(a){k(g,function(){var b=a.tokenTicket;this.execute(f,a.builder,this._timeout,d,{result:function(a){k(g,function(){this._ctrl.releaseMasterToken(b);return a},h)},timeout:function(){k(g,function(){this._ctrl.releaseMasterToken(b);g.timeout()},h)},error:function(a){k(g,function(){this._ctrl.releaseMasterToken(b); | |
throw a;},h)}})},h)},timeout:function(){g.timeout()},error:function(a){g.error(a)}})},h)}var m=b.response,t=m.getMessageHeader(),q=b.payloads,q=0<q.length&&0<q[0].data.length;if(!this._ctx.isPeerToPeer()){if(!b.handshake||!q)return m;this._openedStreams&&(this._input.close(),this._output.close(c,na));var n=new G(b.payloads,a);this._ctrl.buildResponse(this,this._ctx,a,t,c,{result:function(a){k(g,function(){var b=new fa(this._ctrl,this._ctx,n,this._remoteEntity,null,null,a,d,this._timeout);this.setAbort(function(){b.abort()}); | |
b.call(g)},h)},timeout:function(){g.timeout()},error:function(a){g.error(a)}})}else if(b.handshake&&q)f();else if(0<t.keyRequestData.length){var w=new C(a);this._ctrl.buildResponse(this,this._ctx,w,t,c,{result:function(a){k(g,function(){var b=a.builder,c=a.tokenTicket;m.mark();m.read(1,this._timeout,{result:function(a){k(g,function(){function f(){m.read(32768,h._timeout,{result:function(a){a?f():l()},timeout:function(){g.timeout()},error:function(a){g.error(a)}})}function l(){h.execute(w,b,h._timeout, | |
d,{result:function(a){k(g,function(){this._ctrl.releaseMasterToken(c);return a},h)},timeout:function(){k(g,function(){this._ctrl.releaseMasterToken(c);g.timeout()},h)},error:function(a){k(g,function(){this._ctrl.releaseMasterToken(c);throw a;},h)}})}if(a)if(m.reset(),12>=d+1)b.setRenewable(!1),this._ctrl.send(this,this._ctx,w,this._output,b,this._timeout,{result:function(a){k(g,function(){this.releaseMasterToken(c);return m},h)},timeout:function(){g.timeout()},error:function(a){g.error(a)}});else return this.releaseMasterToken(c), | |
m;else f()},h)},timeout:function(){k(g,function(){this.releaseMasterToken(c);g.timeout()},h)},error:function(a){k(g,function(){this.releaseMasterToken(c);throw a;},h)}})},h)},timeout:function(){g.timeout()},error:function(a){g.error(a)}})}},h)}var h=this;k(g,function(){if(12<d+2)return null;this._ctrl.sendReceive(this,this._ctx,a,this._input,this._output,b,c,!0,{result:function(a){k(g,function(){if(!a)return null;var b=a.response;d+=2;b.getMessageHeader()?l(a):f(a)},h)},timeout:function(){g.timeout()}, | |
error:function(a){g.error(a)}})},h)},call:function(a){function b(d,g,f){k(a,function(){this.execute(this._msgCtx,d,f,this._msgCount,{result:function(b){k(a,function(){this._ctrl.releaseMasterToken(g);this._openedStreams&&this._output.close(f,na);b&&b.closeSource(this._openedStreams);return b},c)},timeout:function(){k(a,function(){this._ctrl.releaseMasterToken(g);this._openedStreams&&(this._output.close(f,na),this._input.close());a.timeout()},c)},error:function(b){k(a,function(){this._ctrl.releaseMasterToken(g); | |
this._openedStreams&&(this._output.close(f,na),this._input.close());if(q(b))return null;throw b;},c)}})},c)}var c=this;k(a,function(){var d=this._timeout;if(!this._input||!this._output)try{this._remoteEntity.setTimeout(this._timeout);var g=Date.now(),f=this._remoteEntity.openConnection();this._output=f.output;this._input=f.input;-1!=d&&(d=this._timeout-(Date.now()-g));this._openedStreams=!0}catch(l){this._builder&&this._ctrl.releaseMasterToken(this._tokenTicket);this._output&&this._output.close(this._timeout, | |
na);this._input&&this._input.close();if(q(l))return null;throw l;}this._builder?b(this._builder,this._tokenTicket,d):this._ctrl.buildRequest(this,this._ctx,this._msgCtx,this._timeout,{result:function(g){k(a,function(){b(g.builder,g.tokenTicket,d)},c)},timeout:function(){k(a,function(){this._openedStreams&&(this._output.close(this._timeout,na),this._input.close());a.timeout()},c)},error:function(b){k(a,function(){this._openedStreams&&(this._output.close(this._timeout,na),this._input.close());if(q(b))return null; | |
throw b;},c)}})},c)}})})();var hd,af;(function(){hd=Y.Class.create({init:function(a){Object.defineProperties(this,{id:{value:a,writable:!1,configurable:!1}})},toJSON:function(){var a={};a.id=this.id;return a},equals:function(a){return this===a?!0:a instanceof hd?this.id==a.id:!1},uniqueKey:function(){return this.id}});af=function(b){var c=b.id;if(!c)throw new ba(a.JSON_PARSE_ERROR,JSON.stringify(b));return new hd(c)}})();Y.Class.create({isNewestMasterToken:function(a,b,c){},isMasterTokenRevoked:function(a, | |
b){},acceptNonReplayableId:function(a,b,c,d){},createMasterToken:function(a,b,c,d,f){},isMasterTokenRenewable:function(a,b,c){},renewMasterToken:function(a,b,c,d,f){},isUserIdTokenRevoked:function(a,b,c,d){},createUserIdToken:function(a,b,c,d){},renewUserIdToken:function(a,b,c,d){}});var Yb,Rc;(function(){function c(a,b,d,f){this.sessiondata=a;this.tokendata=b;this.signature=d;this.verified=f}Yb=Y.Class.create({init:function(a,c,d,f,h,k,n,w,B,p,A){var C=this;b(A,function(){if(d.getTime()<c.getTime())throw new W("Cannot construct a master token that expires before its renewal window opens."); | |
if(0>f||f>Ia)throw new W("Sequence number "+f+" is outside the valid range.");if(0>h||h>Ia)throw new W("Serial number "+h+" is outside the valid range.");var I=Math.floor(c.getTime()/1E3),O=Math.floor(d.getTime()/1E3),ha;if(p)ha=p.sessiondata;else{var fa={};k&&(fa.issuerdata=k);fa.identity=n;fa.encryptionkey=L(w.toByteArray());fa.hmackey=L(B.toByteArray());ha=P(JSON.stringify(fa),sa)}if(p)return Object.defineProperties(this,{ctx:{value:a,writable:!1,enumerable:!1,configurable:!1},renewalWindowSeconds:{value:I, | |
writable:!1,enumerable:!1,configurable:!1},expirationSeconds:{value:O,writable:!1,enumerable:!1,configurable:!1},sequenceNumber:{value:f,writable:!1,configurable:!1},serialNumber:{value:h,writable:!1,configurable:!1},issuerData:{value:k,writable:!1,configurable:!1},identity:{value:n,writable:!1,configurable:!1},encryptionKey:{value:w,writable:!1,configurable:!1},hmacKey:{value:B,writable:!1,configurable:!1},sessiondata:{value:ha,writable:!1,enumerable:!1,configurable:!1},verified:{value:p.verified, | |
writable:!1,enumerable:!1,configurable:!1},tokendata:{value:p.tokendata,writable:!1,enumerable:!1,configurable:!1},signature:{value:p.signature,writable:!1,enumerable:!1,configurable:!1}}),this;var y=a.getMslCryptoContext();y.encrypt(ha,{result:function(c){b(A,function(){var d={};d.renewalwindow=I;d.expiration=O;d.sequencenumber=f;d.serialnumber=h;d.sessiondata=L(c);var g=P(JSON.stringify(d),sa);y.sign(g,{result:function(c){b(A,function(){Object.defineProperties(this,{ctx:{value:a,writable:!1,enumerable:!1, | |
configurable:!1},renewalWindowSeconds:{value:I,writable:!1,enumerable:!1,configurable:!1},expirationSeconds:{value:O,writable:!1,enumerable:!1,configurable:!1},sequenceNumber:{value:f,writable:!1,enumerable:!1,configurable:!1},serialNumber:{value:h,writable:!1,enumerable:!1,configurable:!1},issuerData:{value:k,writable:!1,configurable:!1},identity:{value:n,writable:!1,configurable:!1},encryptionKey:{value:w,writable:!1,configurable:!1},hmacKey:{value:B,writable:!1,configurable:!1},sessiondata:{value:ha, | |
writable:!1,enumerable:!1,configurable:!1},verified:{value:!0,writable:!1,enumerable:!1,configurable:!1},tokendata:{value:g,writable:!1,enumerable:!1,configurable:!1},signature:{value:c,writable:!1,enumerable:!1,configurable:!1}});return this},C)},error:function(a){A.error(a)}})},C)},error:function(a){A.error(a)}})},this)},get renewalWindow(){return new Date(1E3*this.renewalWindowSeconds)},get expiration(){return new Date(1E3*this.expirationSeconds)},isDecrypted:function(){return this.sessiondata? | |
!0:!1},isVerified:function(){return this.verified},isRenewable:function(a){return this.isVerified()?this.renewalWindow.getTime()<=this.ctx.getTime():!0},isExpired:function(a){return this.isVerified()?this.expiration.getTime()<=this.ctx.getTime():!1},isNewerThan:function(a){if(this.sequenceNumber==a.sequenceNumber)return this.expiration>a.expiration;if(this.sequenceNumber>a.sequenceNumber){var b=this.sequenceNumber-Ia+127;return a.sequenceNumber>=b}b=a.sequenceNumber-Ia+127;return this.sequenceNumber< | |
b},toJSON:function(){var a={};a.tokendata=L(this.tokendata);a.signature=L(this.signature);return a},equals:function(a){return this===a?!0:a instanceof Yb?this.serialNumber==a.serialNumber&&this.sequenceNumber==a.sequenceNumber&&this.expiration.getTime()==a.expiration.getTime():!1},uniqueKey:function(){return this.serialNumber+":"+this.sequenceNumber+this.expiration.getTime()}});Rc=function(d,f,g){b(g,function(){var k=d.getMslCryptoContext(),q=f.tokendata,n=f.signature;if("string"!==typeof q||"string"!== | |
typeof n)throw new ba(a.JSON_PARSE_ERROR,"mastertoken "+JSON.stringify(f));var p,M;try{p=I(q)}catch(B){throw new A(a.MASTERTOKEN_TOKENDATA_INVALID,"mastertoken "+JSON.stringify(f),B);}if(!p||0==p.length)throw new ba(a.MASTERTOKEN_TOKENDATA_MISSING,"mastertoken "+JSON.stringify(f));try{M=I(n)}catch(G){throw new A(a.MASTERTOKEN_SIGNATURE_INVALID,"mastertoken "+JSON.stringify(f),G);}k.verify(p,M,{result:function(f){b(g,function(){var l,q,n,B,J,G=h(p,sa);try{var C=JSON.parse(G);l=parseInt(C.renewalwindow); | |
q=parseInt(C.expiration);n=parseInt(C.sequencenumber);B=parseInt(C.serialnumber);J=C.sessiondata}catch(L){if(L instanceof SyntaxError)throw new ba(a.MASTERTOKEN_TOKENDATA_PARSE_ERROR,"mastertokendata "+G,L);throw L;}if(!l||l!=l||!q||q!=q||"number"!==typeof n||n!=n||"number"!==typeof B||B!=B||"string"!==typeof J)throw new ba(a.MASTERTOKEN_TOKENDATA_PARSE_ERROR,"mastertokendata "+G);if(q<l)throw new A(a.MASTERTOKEN_EXPIRES_BEFORE_RENEWAL,"mastertokendata "+G);if(0>n||n>Ia)throw new A(a.MASTERTOKEN_SEQUENCE_NUMBER_OUT_OF_RANGE, | |
"mastertokendata "+G);if(0>B||B>Ia)throw new A(a.MASTERTOKEN_SERIAL_NUMBER_OUT_OF_RANGE,"mastertokendata "+G);var P=new Date(1E3*l),O=new Date(1E3*q),y;try{y=I(J)}catch(U){throw new A(a.MASTERTOKEN_SESSIONDATA_INVALID,J,U);}if(!y||0==y.length)throw new A(a.MASTERTOKEN_SESSIONDATA_MISSING,J);f?k.decrypt(y,{result:function(l){b(g,function(){var k,t,q,J,G=h(l,sa);try{var A=JSON.parse(G);k=A.issuerdata;t=A.identity;q=A.encryptionkey;J=A.hmackey}catch(fa){if(fa instanceof SyntaxError)throw new ba(a.MASTERTOKEN_SESSIONDATA_PARSE_ERROR, | |
"sessiondata "+G,fa);throw fa;}if(k&&"object"!==typeof k||!t||"string"!==typeof q||"string"!==typeof J)throw new ba(a.MASTERTOKEN_SESSIONDATA_PARSE_ERROR,"sessiondata "+G);Eb(q,rc,qb,{result:function(h){Eb(J,Mb,ia,{result:function(a){b(g,function(){var b=new c(l,p,M,f);new Yb(d,P,O,n,B,k,t,h,a,b,g)})},error:function(b){g.error(new T(a.MASTERTOKEN_KEY_CREATION_ERROR,b))}})},error:function(b){g.error(new T(a.MASTERTOKEN_KEY_CREATION_ERROR,b))}})})},error:function(a){g.error(a)}}):(l=new c(null,p,M, | |
f),new Yb(d,P,O,n,B,null,null,null,null,l,g))})},error:function(a){g.error(a)}})})}})();var wd,ed;(function(){function c(a,b,d){this.tokendata=a;this.signature=b;this.verified=d}wd=Y.Class.create({init:function(a,c,d,f,h,k,n,w,B){var p=this;b(B,function(){if(d.getTime()<c.getTime())throw new W("Cannot construct a user ID token that expires before its renewal window opens.");if(!f)throw new W("Cannot construct a user ID token without a master token.");if(0>h||h>Ia)throw new W("Serial number "+h+" is outside the valid range."); | |
var C=Math.floor(c.getTime()/1E3),I=Math.floor(d.getTime()/1E3),O=f.serialNumber;if(w){var y=w.tokendata,ha=w.signature,fa=w.verified,O=f.serialNumber;Object.defineProperties(this,{ctx:{value:a,writable:!1,enumerable:!1,configurable:!1},renewalWindowSeconds:{value:C,writable:!1,enumerable:!1,configurable:!1},expirationSeconds:{value:I,writable:!1,enumerable:!1,configurable:!1},mtSerialNumber:{value:O,writable:!1,configurable:!1},serialNumber:{value:h,writable:!1,configurable:!1},issuerData:{value:k, | |
writable:!1,configurable:!1},customer:{value:n,writable:!1,configurable:!1},verified:{value:fa,writable:!1,enumerable:!1,configurable:!1},tokendata:{value:y,writable:!1,enumerable:!1,configurable:!1},signature:{value:ha,writable:!1,enumerable:!1,configurable:!1}});return this}y={};k&&(y.issuerdata=k);y.identity=n;var y=P(JSON.stringify(y),sa),U=a.getMslCryptoContext();U.encrypt(y,{result:function(c){b(B,function(){var d={};d.renewalwindow=C;d.expiration=I;d.mtserialnumber=O;d.serialnumber=h;d.userdata= | |
L(c);var g=P(JSON.stringify(d),sa);U.sign(g,{result:function(c){b(B,function(){Object.defineProperties(this,{ctx:{value:a,writable:!1,enumerable:!1,configurable:!1},renewalWindowSeconds:{value:C,writable:!1,enumerable:!1,configurable:!1},expirationSeconds:{value:I,writable:!1,enumerable:!1,configurable:!1},mtSerialNumber:{value:f.serialNumber,writable:!1,configurable:!1},serialNumber:{value:h,writable:!1,configurable:!1},issuerData:{value:k,writable:!1,configurable:!1},customer:{value:n,writable:!1, | |
configurable:!1},verified:{value:!0,writable:!1,enumerable:!1,configurable:!1},tokendata:{value:g,writable:!1,enumerable:!1,configurable:!1},signature:{value:c,writable:!1,enumerable:!1,configurable:!1}});return this},p)},error:function(a){b(B,function(){a instanceof A&&a.setEntity(f);throw a;},p)}})},p)},error:function(a){b(B,function(){a instanceof A&&a.setEntity(f);throw a;},p)}})},this)},get renewalWindow(){return new Date(1E3*this.renewalWindowSeconds)},get expiration(){return new Date(1E3*this.expirationSeconds)}, | |
isVerified:function(){return this.verified},isDecrypted:function(){return this.customer?!0:!1},isRenewable:function(){return this.renewalWindow.getTime()<=this.ctx.getTime()},isExpired:function(){return this.expiration.getTime()<=this.ctx.getTime()},isBoundTo:function(a){return a&&a.serialNumber==this.mtSerialNumber},toJSON:function(){var a={};a.tokendata=L(this.tokendata);a.signature=L(this.signature);return a},equals:function(a){return this===a?!0:a instanceof wd?this.serialNumber==a.serialNumber&& | |
this.mtSerialNumber==a.mtSerialNumber:!1},uniqueKey:function(){return this.serialNumber+":"+this.mtSerialNumber}});ed=function(d,f,g,k){b(k,function(){var q=d.getMslCryptoContext(),n=f.tokendata,p=f.signature;if("string"!==typeof n||"string"!==typeof p)throw(new ba(a.JSON_PARSE_ERROR,"useridtoken "+JSON.stringify(f))).setEntity(g);var M,B;try{M=I(n)}catch(G){throw(new A(a.USERIDTOKEN_TOKENDATA_INVALID,"useridtoken "+JSON.stringify(f),G)).setEntity(g);}if(!M||0==M.length)throw(new ba(a.USERIDTOKEN_TOKENDATA_MISSING, | |
"useridtoken "+JSON.stringify(f))).setEntity(g);try{B=I(p)}catch(C){throw(new A(a.USERIDTOKEN_TOKENDATA_INVALID,"useridtoken "+JSON.stringify(f),C)).setEntity(g);}q.verify(M,B,{result:function(f){b(k,function(){var l,n,p,G,J,C=h(M,sa);try{var L=JSON.parse(C);l=parseInt(L.renewalwindow);n=parseInt(L.expiration);p=parseInt(L.mtserialnumber);G=parseInt(L.serialnumber);J=L.userdata}catch(O){if(O instanceof SyntaxError)throw(new ba(a.USERIDTOKEN_TOKENDATA_PARSE_ERROR,"usertokendata "+C,O)).setEntity(g); | |
throw O;}if(!l||l!=l||!n||n!=n||"number"!==typeof p||p!=p||"number"!==typeof G||G!=G||"string"!==typeof J)throw(new ba(a.USERIDTOKEN_TOKENDATA_PARSE_ERROR,"usertokendata "+C)).setEntity(g);if(n<l)throw(new A(a.USERIDTOKEN_EXPIRES_BEFORE_RENEWAL,"mastertokendata "+C)).setEntity(g);if(0>p||p>Ia)throw(new A(a.USERIDTOKEN_MASTERTOKEN_SERIAL_NUMBER_OUT_OF_RANGE,"usertokendata "+C)).setEntity(g);if(0>G||G>Ia)throw(new A(a.USERIDTOKEN_SERIAL_NUMBER_OUT_OF_RANGE,"usertokendata "+C)).setEntity(g);var P=new Date(1E3* | |
l),y=new Date(1E3*n);if(!g||p!=g.serialNumber)throw(new A(a.USERIDTOKEN_MASTERTOKEN_MISMATCH,"uit mtserialnumber "+p+"; mt "+JSON.stringify(g))).setEntity(g);var ma;try{ma=I(J)}catch(ya){throw(new A(a.USERIDTOKEN_USERDATA_INVALID,J,ya)).setEntity(g);}if(!ma||0==ma.length)throw(new A(a.USERIDTOKEN_USERDATA_MISSING,J)).setEntity(g);f?q.decrypt(ma,{result:function(l){b(k,function(){var b,q,n=h(l,sa);try{var p=JSON.parse(n);b=p.issuerdata;q=p.identity}catch(J){if(J instanceof SyntaxError)throw(new ba(a.USERIDTOKEN_USERDATA_PARSE_ERROR, | |
"userdata "+n)).setEntity(g);throw J;}if(b&&"object"!==typeof b||"object"!==typeof q)throw(new ba(a.USERIDTOKEN_USERDATA_PARSE_ERROR,"userdata "+n)).setEntity(g);var C;try{C=af(q)}catch(L){throw(new A(a.USERIDTOKEN_IDENTITY_INVALID,"userdata "+n,L)).setEntity(g);}q=new c(M,B,f);new wd(d,P,y,g,G,b,C,q,k)})},error:function(a){b(k,function(){a instanceof A&&a.setEntity(g);throw a;})}}):(l=new c(M,B,f),new wd(d,P,y,g,G,null,null,l,k))})},error:function(a){b(k,function(){a instanceof A&&a.setEntity(g); | |
throw a;})}})})}})();var Sc,uc,re;(function(){function c(b,d){var f=b.tokendata;if("string"!==typeof f)throw new ba(a.JSON_PARSE_ERROR,"servicetoken "+JSON.stringify(b));var k;try{k=I(f)}catch(m){throw new A(a.SERVICETOKEN_TOKENDATA_INVALID,"servicetoken "+JSON.stringify(b),m);}if(!k||0==k.length)throw new ba(a.SERVICETOKEN_TOKENDATA_MISSING,"servicetoken "+JSON.stringify(b));var n;try{n=JSON.parse(h(k,sa)).name}catch(w){if(w instanceof SyntaxError)throw new ba(a.JSON_PARSE_ERROR,"servicetoken "+ | |
JSON.stringify(b),w);throw w;}if(!n)throw new ba(a.JSON_PARSE_ERROR,"servicetoken "+JSON.stringify(b));return d[n]?d[n]:d[""]}function d(a,b,c){this.tokendata=a;this.signature=b;this.verified=c}Sc=Y.Class.create({init:function(a,c,d,f,h,k,m,n,w,p){var C=this;b(p,function(){if(f&&h&&!h.isBoundTo(f))throw new W("Cannot construct a service token bound to a master token and user ID token where the user ID token is not bound to the same master token.");var I=f?f.serialNumber:-1,O=h?h.serialNumber:-1;if(w)return U= | |
w.tokendata,Object.defineProperties(this,{ctx:{value:a,writable:!1,enumerable:!1,configurable:!1},name:{value:c,writable:!1,configurable:!1},mtSerialNumber:{value:I,writable:!1,configurable:!1},uitSerialNumber:{value:O,writable:!1,configurable:!1},data:{value:d,writable:!1,configurable:!1},encrypted:{value:k,writable:!1,enumerable:!1,configurable:!1},compressionAlgo:{value:m,writable:!1,configurable:!1},verified:{value:w.verified,writable:!1,enumerable:!1,configurable:!1},tokendata:{value:U,writable:!1, | |
enumerable:!1,configurable:!1},signature:{value:w.signature,writable:!1,enumerable:!1,configurable:!1}}),this;var y;m?(y=ue(m,d),y.length<d.length||(m=null,y=d)):(m=null,y=d);var fa={};fa.name=c;-1!=I&&(fa.mtserialnumber=I);-1!=O&&(fa.uitserialnumber=O);fa.encrypted=k;m&&(fa.compressionalgo=m);if(k&&0<y.length)n.encrypt(y,{result:function(w){b(p,function(){fa.servicedata=L(w);var G=P(JSON.stringify(fa),sa);n.sign(G,{result:function(f){b(p,function(){Object.defineProperties(this,{ctx:{value:a,writable:!1, | |
enumerable:!1,configurable:!1},name:{value:c,writable:!1,configurable:!1},mtSerialNumber:{value:I,writable:!1,configurable:!1},uitSerialNumber:{value:O,writable:!1,configurable:!1},data:{value:d,writable:!1,configurable:!1},encrypted:{value:k,writable:!1,enumerable:!1,configurable:!1},compressionAlgo:{value:m,writable:!1,configurable:!1},verified:{value:!0,writable:!1,enumerable:!1,configurable:!1},tokendata:{value:G,writable:!1,enumerable:!1,configurable:!1},signature:{value:f,writable:!1,enumerable:!1, | |
configurable:!1}});return this},C)},error:function(a){b(p,function(){a instanceof A&&(a.setEntity(f),a.setUser(h));throw a;})}})},C)},error:function(a){b(p,function(){a instanceof A&&(a.setEntity(f),a.setUser(h));throw a;})}});else{fa.servicedata=L(y);var U=P(JSON.stringify(fa),sa);n.sign(U,{result:function(f){b(p,function(){Object.defineProperties(this,{ctx:{value:a,writable:!1,enumerable:!1,configurable:!1},name:{value:c,writable:!1,configurable:!1},mtSerialNumber:{value:I,writable:!1,configurable:!1}, | |
uitSerialNumber:{value:O,writable:!1,configurable:!1},data:{value:d,writable:!1,configurable:!1},encrypted:{value:k,writable:!1,enumerable:!1,configurable:!1},compressionAlgo:{value:m,writable:!1,configurable:!1},verified:{value:!0,writable:!1,enumerable:!1,configurable:!1},tokendata:{value:U,writable:!1,enumerable:!1,configurable:!1},signature:{value:f,writable:!1,enumerable:!1,configurable:!1}});return this},C)},error:function(a){b(p,function(){a instanceof A&&(a.setEntity(f),a.setUser(h));throw a; | |
})}})}},this)},isEncrypted:function(){return this.encrypted},isVerified:function(){return this.verified},isDecrypted:function(){return this.data?!0:!1},isDeleted:function(){return this.data&&0==this.data.length},isMasterTokenBound:function(){return-1!=this.mtSerialNumber},isBoundTo:function(a){return a?a instanceof Yb?a.serialNumber==this.mtSerialNumber:a instanceof wd?a.serialNumber==this.uitSerialNumber:!1:!1},isUserIdTokenBound:function(){return-1!=this.uitSerialNumber},isUnbound:function(){return-1== | |
this.mtSerialNumber&&-1==this.uitSerialNumber},toJSON:function(){var a={};a.tokendata=L(this.tokendata);a.signature=L(this.signature);return a},equals:function(a){return this===a?!0:a instanceof Sc?this.name==a.name&&this.mtSerialNumber==a.mtSerialNumber&&this.uitSerialNumber==a.uitSerialNumber:!1},uniqueKey:function(){return this.name+":"+this.mtSerialNumber+":"+this.uitSerialNumber}});uc=function(a,b,c,d,f,h,k,m,n){new Sc(a,b,c,d,f,h,k,m,null,n)};re=function(f,g,k,n,p,C){b(C,function(){!p||p instanceof | |
xd||(p=c(g,p));var L=g.tokendata,B=g.signature;if("string"!==typeof L||"string"!==typeof B)throw(new ba(a.JSON_PARSE_ERROR,"servicetoken "+JSON.stringify(g))).setEntity(k).setEntity(n);var G,O;try{G=I(L)}catch(y){throw(new A(a.SERVICETOKEN_TOKENDATA_INVALID,"servicetoken "+JSON.stringify(g),y)).setEntity(k).setEntity(n);}if(!G||0==G.length)throw(new ba(a.SERVICETOKEN_TOKENDATA_MISSING,"servicetoken "+JSON.stringify(g))).setEntity(k).setEntity(n);try{O=I(B)}catch(P){throw(new A(a.SERVICETOKEN_SIGNATURE_INVALID, | |
"servicetoken "+JSON.stringify(g),P)).setEntity(k).setEntity(n);}var U,ha,fa,D,ca,Z,ga=h(G,sa);try{var T=JSON.parse(ga);U=T.name;ha=T.mtserialnumber?parseInt(T.mtserialnumber):-1;fa=T.uitserialnumber?parseInt(T.uitserialnumber):-1;D=T.encrypted;ca=T.compressionalgo;Z=T.servicedata}catch(W){if(W instanceof SyntaxError)throw(new ba(a.JSON_PARSE_ERROR,"servicetokendata "+ga,W)).setEntity(k).setEntity(n);throw W;}if(!U||"number"!==typeof ha||ha!=ha||"number"!==typeof fa||fa!=fa||"boolean"!==typeof D|| | |
ca&&"string"!==typeof ca||"string"!==typeof Z)throw(new ba(a.JSON_PARSE_ERROR,"servicetokendata "+ga)).setEntity(k).setEntity(n);if(T.mtserialnumber&&0>ha||ha>Ia)throw(new A(a.SERVICETOKEN_MASTERTOKEN_SERIAL_NUMBER_OUT_OF_RANGE,"servicetokendata "+ga)).setEntity(k).setEntity(n);if(T.uitserialnumber&&0>fa||fa>Ia)throw(new A(a.SERVICETOKEN_USERIDTOKEN_SERIAL_NUMBER_OUT_OF_RANGE,"servicetokendata "+ga)).setEntity(k).setEntity(n);if(-1!=ha&&(!k||ha!=k.serialNumber))throw(new A(a.SERVICETOKEN_MASTERTOKEN_MISMATCH, | |
"st mtserialnumber "+ha+"; mt "+k)).setEntity(k).setEntity(n);if(-1!=fa&&(!n||fa!=n.serialNumber))throw(new A(a.SERVICETOKEN_USERIDTOKEN_MISMATCH,"st uitserialnumber "+fa+"; uit "+n)).setEntity(k).setEntity(n);D=!0===D;var Y;if(ca){if(!Zc[ca])throw new A(a.UNIDENTIFIED_COMPRESSION,ca);Y=ca}else Y=null;p?p.verify(G,O,{result:function(c){b(C,function(){if(c){var g;try{g=I(Z)}catch(h){throw(new A(a.SERVICETOKEN_SERVICEDATA_INVALID,"servicetokendata "+ga,h)).setEntity(k).setEntity(n);}if(!g||0!=Z.length&& | |
0==g.length)throw(new A(a.SERVICETOKEN_SERVICEDATA_INVALID,"servicetokendata "+ga)).setEntity(k).setEntity(n);if(D&&0<g.length)p.decrypt(g,{result:function(a){b(C,function(){var b=Y?ve(Y,a):a,g=new d(G,O,c);new Sc(f,U,b,-1!=ha?k:null,-1!=fa?n:null,D,Y,p,g,C)})},error:function(a){b(C,function(){a instanceof A&&(a.setEntity(k),a.setUser(n));throw a;})}});else{g=Y?ve(Y,g):g;var w=new d(G,O,c);new Sc(f,U,g,-1!=ha?k:null,-1!=fa?n:null,D,Y,p,w,C)}}else g=""==Z?new Uint8Array(0):null,w=new d(G,O,c),new Sc(f, | |
U,g,-1!=ha?k:null,-1!=fa?n:null,D,Y,p,w,C)})},error:function(a){b(C,function(){a instanceof A&&(a.setEntity(k),a.setUser(n));throw a;})}}):(L=""==Z?new Uint8Array(0):null,B=new d(G,O,!1),new Sc(f,U,L,-1!=ha?k:null,-1!=fa?n:null,D,Y,p,B,C))})}})();var vc={EMAIL_PASSWORD:"EMAIL_PASSWORD",NETFLIXID:"NETFLIXID",SSO:"SSO",SWITCH_PROFILE:"SWITCH_PROFILE",MDX:"MDX"};Object.freeze(vc);var ad,Wf;(function(){ad=Y.Class.create({init:function(a){Object.defineProperties(this,{scheme:{value:a,writable:!1,configurable:!1}})}, | |
getAuthData:function(){},equals:function(a){return this===a?!0:a instanceof ad?this.scheme==a.scheme:!1},toJSON:function(){var a={};a.scheme=this.scheme;a.authdata=this.getAuthData();return a}});Wf=function(c,d,f,g){b(g,function(){var b=f.scheme,h=f.authdata;if(!b||!h)throw new ba(a.JSON_PARSE_ERROR,"userauthdata "+JSON.stringify(f));if(!vc[b])throw new Ra(a.UNIDENTIFIED_USERAUTH_SCHEME,b);var k=c.getUserAuthenticationFactory(b);if(!k)throw new Ra(a.USERAUTH_FACTORY_NOT_FOUND,b);k.createData(c,d, | |
h,g)})}})();var xe=Y.Class.create({init:function(a){Object.defineProperties(this,{scheme:{value:a,writable:!1,configurable:!1}})},createData:function(a,b,c,d){},authenticate:function(a,b,c,d){}}),id,bf;(function(){id=ad.extend({init:function m(a,b){m.base.call(this,vc.NETFLIXID);Object.defineProperties(this,{netflixId:{value:a,writable:!1,configurable:!1},secureNetflixId:{value:b,writable:!1,configurable:!1}})},getAuthData:function(){var a={};a.netflixid=this.netflixId;this.secureNetflixId&&(a.securenetflixid= | |
this.secureNetflixId);return a},equals:function l(a){return this===a?!0:a instanceof id?l.base.call(this,a)&&this.netflixId==a.netflixId&&this.secureNetflixId==a.secureNetflixId:!1}});bf=function(b){var c=b.netflixid,d=b.securenetflixid;if(!c)throw new ba(a.JSON_PARSE_ERROR,"NetflixId authdata "+JSON.stringify(b));return new id(c,d)}})();var Vg=xe.extend({init:function m(){m.base.call(this,vc.NETFLIXID)},createData:function(a,c,d,f){b(f,function(){return bf(d)})},authenticate:function(b,c,d,f){if(!(d instanceof | |
id))throw new W("Incorrect authentication data type "+d+".");b=d.secureNetflixId;if(!d.netflixId||!b)throw(new Ra(a.NETFLIXID_COOKIES_BLANK)).setUser(d);throw(new Ra(a.UNSUPPORTED_USERAUTH_DATA,this.scheme)).setUser(d);}}),Ud,eg;(function(){Ud=ad.extend({init:function l(a,b){l.base.call(this,vc.EMAIL_PASSWORD);Object.defineProperties(this,{email:{value:a,writable:!1,configurable:!1},password:{value:b,writable:!1,configurable:!1}})},getAuthData:function(){var a={};a.email=this.email;a.password=this.password; | |
return a},equals:function g(a){return this===a?!0:a instanceof Ud?g.base.call(this,this,a)&&this.email==a.email&&this.password==a.password:!1}});eg=function(b){var c=b.email,d=b.password;if(!c||!d)throw new ba(a.JSON_PARSE_ERROR,"email/password authdata "+JSON.stringify(b));return new Ud(c,d)}})();var Wg=xe.extend({init:function l(){l.base.call(this,vc.EMAIL_PASSWORD)},createData:function(a,c,d,f){b(f,function(){return eg(d)})},authenticate:function(b,c,d,f){if(!(d instanceof Ud))throw new W("Incorrect authentication data type "+ | |
d+".");b=d.password;if(!d.email||!b)throw(new Ra(a.EMAILPASSWORD_BLANK)).setUser(d);throw(new Ra(a.UNSUPPORTED_USERAUTH_DATA,this.scheme)).setUser(d);}}),Tc,fg,ye,Vd,Ic,cf;(function(){function c(a,b){return"<"+a+">"+b+"</"+a+">"}function d(a){return a.replace(/[<>&"']/g,function(a){return B[a]})}function f(a){return encodeURIComponent(a).replace("%20","+").replace(/[!'()]/g,escape).replace(/\*/g,"%2A")}var k=ye={MSL:"MSL",NTBA:"NTBA",MSL_LEGACY:"MSL_LEGACY"},n=Y.Class.create({getAction:function(){}, | |
getNonce:function(){},getPin:function(){},getSignature:function(){},getEncoding:function(){},equals:function(){}}),C=Vd=n.extend({init:function(c,d,f,g,h,l,k){function n(g){b(k,function(){var b;try{var l={};l.useridtoken=c;l.action=d;l.nonce=f;l.pin=L(g);b=P(JSON.stringify(l),sa)}catch(n){throw new ba(a.JSON_ENCODE_ERROR,"MSL-based MDX authdata",n);}h.sign(b,{result:function(a){q(b,a)},error:k.error})},t)}function q(a,h){b(k,function(){Object.defineProperties(this,{_userIdToken:{value:c,writable:!1, | |
enumerable:!1,configurable:!1},_action:{value:d,writable:!1,enumerable:!1,configurable:!1},_nonce:{value:f,writable:!1,enumerable:!1,configurable:!1},_pin:{value:g,writable:!1,enumerable:!1,configurable:!1},_encoding:{value:a,writable:!1,enumerable:!1,configurable:!1},_signature:{value:h,writable:!1,enumerable:!1,configurable:!1}});return this},t)}var t=this;b(k,function(){l?q(l.encoding,l.signature):h.encrypt(P(g,sa),{result:function(a){n(a)},error:k.error})},t)},getUserIdToken:function(){return this._userIdToken}, | |
getAction:function(){return this._action},getNonce:function(){return this._nonce},getPin:function(){return this._pin},getSignature:function(){return this._signature},getEncoding:function(){return this._encoding},equals:function(a){return this===a?!0:a instanceof C?this._action==a._action&&this._nonce==a._nonce&&this._pin==a._pin&&this._userIdToken.equals(a._userIdToken):!1}});Vd.ACTION="userauth";var M=function(c,d,f,g,l){function k(g){b(l,function(){var k=h(f,sa),q,t,B,p;try{var C=JSON.parse(k); | |
q=C.useridtoken;t=C.action;B=C.nonce;p=C.pin}catch(G){if(G instanceof SyntaxError)throw new ba(a.JSON_PARSE_ERROR,"MDX authdata "+k,G);throw G;}if(!(q&&"object"===typeof q&&t&&"string"===typeof t&&B&&"number"===typeof B&&p)||"string"!==typeof p)throw new ba(a.JSON_PARSE_ERROR,"MDX authdata "+k);ed(c,q,d,{result:function(c){b(l,function(){if(!c.isDecrypted())throw new Ra(a.USERAUTH_USERIDTOKEN_NOT_DECRYPTED,"MDX authdata "+k);n(g,c,t,B,p)})},error:function(c){b(l,function(){if(c instanceof A)throw new Ra(a.USERAUTH_USERIDTOKEN_INVALID, | |
"MDX authdata "+k,c);throw c;})}})})}function n(a,c,d,k,q){b(l,function(){var n=I(q);a.decrypt(n,{result:function(a){b(l,function(){var b=h(a,sa);new C(c,d,k,b,null,{encoding:f,signature:g},l)})},error:l.error})})}b(l,function(){var h;try{var n=c.getMslStore().getCryptoContext(d);h=n?n:new Jb(c,d)}catch(q){if(q instanceof qc)throw new Ra(a.USERAUTH_MASTERTOKEN_NOT_DECRYPTED,"MDX authdata "+L(f));throw q;}h.verify(f,g,{result:function(c){b(l,function(){if(!c)throw new T(a.MDX_USERAUTH_VERIFICATION_FAILED, | |
"MDX authdata "+L(f));k(h)})},error:l.error})})},B={"<":"<",">":">","&":"&",'"':""","'":"'"},G=Ic=n.extend({init:function(a,b,f,h){var k=c("action",d(a)),n=c("nonce",b.toString());f=c("pin",f);k=c("registerdata",k+n+f);k=P(k,"utf-8");Object.defineProperties(this,{_action:{value:a,writable:!1,enumerable:!1,configurable:!1},_nonce:{value:b,writable:!1,enumerable:!1,configurable:!1},_pin:{value:null,writable:!1,enumerable:!1,configurable:!1},_encoding:{value:k,writable:!1,enumerable:!1, | |
configurable:!1},_signature:{value:h,writable:!1,enumerable:!1,configurable:!1}})},getAction:function(){return this._action},getNonce:function(){return this._nonce},getPin:function(){return this._pin},getSignature:function(){return this._signature},getEncoding:function(){return this._encoding},equals:function(a){return this===a?!0:a instanceof G?this._action==a._action&&this._nonce==a._nonce&&this._pin==a._pin:!1}});Ic.ACTION="regpairrequest";var O=cf=n.extend({init:function(a,h,k,n,q,B){function p(k){b(B, | |
function(){var b=L(k),q=c("action",d(a)),p=c("nonce",h.toString()),G=c("pin",b),q=c("registerdata",q+p+G),A=P(q,"utf-8"),b="action="+f(a)+"&nonce="+f(h.toString())+"&pin="+f(b);n.sign(P(b,"utf-8"),{result:function(a){C(A,a)},error:B.error})},G)}function C(c,d){b(B,function(){Object.defineProperties(this,{_action:{value:a,writable:!1,enumerable:!1,configurable:!1},_nonce:{value:h,writable:!1,enumerable:!1,configurable:!1},_pin:{value:k,writable:!1,enumerable:!1,configurable:!1},_encoding:{value:c, | |
writable:!1,enumerable:!1,configurable:!1},_signature:{value:d,writable:!1,enumerable:!1,configurable:!1}});return this},G)}var G=this;b(B,function(){q?C(q.encoding,q.signature):n.encrypt(P(k,"utf-8"),{result:function(a){p(a)},error:B.error})},G)},getAction:function(){return this._action},getNonce:function(){return this._nonce},getPin:function(){return this._pin},getSignature:function(){return this._signature},getEncoding:function(){return this._encoding},equals:function(a){return this===a?!0:a instanceof | |
O?this._action==a._action&&this._nonce==a._nonce&&this._pin==a._pin:!1}});cf.ACTION=Ic.ACTION;var y=function(c,d,g,l,k){b(k,function(){var n=c.getMslStore().getCryptoContext(d),q=n?n:new Jb(c,d),n=h(g,"utf-8"),B=(new DOMParser).parseFromString(n,"application/xml"),n=B.getElementsByTagName("action"),p=B.getElementsByTagName("nonce"),B=B.getElementsByTagName("pin"),C=n&&1==n.length&&n[0].firstChild?n[0].firstChild.nodeValue:null,G=p&&1==p.length&&p[0].firstChild?parseInt(p[0].firstChild.nodeValue): | |
null,A=B&&1==B.length&&B[0].firstChild?B[0].firstChild.nodeValue:null;if(!C||!G||!A)throw new ba(a.XML_PARSE_ERROR,"MDX authdata "+L(g));n="action="+f(C)+"&nonce="+f(G.toString())+"&pin="+f(A);q.verify(P(n,"utf-8"),l,{result:function(c){b(k,function(){if(!c)throw new T(a.MDX_USERAUTH_VERIFICATION_FAILED,"MDX authdata "+L(g));var d=I(A);q.decrypt(d,{result:function(a){b(k,function(){var b=h(a,"utf-8");new O(C,G,b,null,{encoding:g,signature:l},k)})},error:k.error})})},error:k.error})})};Tc=ad.extend({init:function Gb(a, | |
b,c,d,f,g){Gb.base.call(this,vc.MDX);var h=null,l=null,n=null;if("string"===typeof c)a=k.MSL_LEGACY,n=c;else if(c instanceof Uint8Array)a=k.NTBA,l=c;else if(c instanceof Yb)a=k.MSL,h=c;else throw new TypeError("Controller token "+c+" is not a master token, encrypted CTicket, or MSL token construct.");var t=c=null,B=null,p=null;if(g){var G=g.controllerAuthData;c=G.getAction();t=G.getPin();B=g.userIdToken;G instanceof C?p=G.getUserIdToken().customer:B&&(p=B.customer)}Object.defineProperties(this,{mechanism:{value:a, | |
writable:!1,configurable:!1},action:{value:c,writable:!1,configurable:!1},targetPin:{value:b,writable:!1,configurable:!1},controllerPin:{value:t,writable:!1,configurable:!1},customer:{value:p,writable:!1,configurable:!1},_masterToken:{value:h,writable:!1,enumerable:!1,configurable:!1},_encryptedCTicket:{value:l,writable:!1,enumerable:!1,configurable:!1},_mslTokens:{value:n,writable:!1,enumerable:!1,configurable:!1},_controllerEncoding:{value:d,writable:!1,enumerable:!1,configurable:!1},_signature:{value:f, | |
writable:!1,enumerable:!1,configurable:!1}})},getAuthData:function(){var a={};switch(this.mechanism){case k.MSL:var b=JSON.parse(JSON.stringify(this._masterToken));a.mastertoken=b;break;case k.NTBA:b=h(this._encryptedCTicket,"utf-8");a.cticket=b;break;case k.MSL_LEGACY:a.cticket=this._mslTokens;break;default:throw new W("Unsupported MDX mechanism.");}a.pin=this.targetPin;a.mdxauthdata=L(this._controllerEncoding);a.signature=L(this._signature);return a},equals:function ha(a){return this===a?!0:a instanceof | |
Tc?ha.base.call(this,a)&&(this._masterToken==a._masterToken||this._masterToken&&this._masterToken.equals(a._masterToken))&&(this._encryptedCTicket==a._encryptedCTicket||this._encryptedCTicket&&p(this._encryptedCTicket,a._encryptedCTicket))&&this._mslTokens==a._mslTokens&&p(this._controllerEncoding,a._controllerEncoding)&&p(this._signature,a._signature):!1}});fg=function(c,d,f){function g(h,l,k,n){Rc(c,l,{result:function(g){b(f,function(){if(!g.isDecrypted())throw new Ra(a.USERAUTH_MASTERTOKEN_NOT_DECRYPTED, | |
"MDX authdata "+d.toString());M(c,g,k,n,{result:function(a){b(f,function(){var b=a.getEncoding(),d=a.getSignature();return new Tc(c,h,g,b,d,{controllerAuthData:a,userIdToken:null})})},error:f.error})})},error:function(c){b(f,function(){if(c instanceof A)throw new Ra(a.USERAUTH_MASTERTOKEN_INVALID,"MDX authdata "+JSON.stringify(d),c);throw c;})}})}function l(c,d,g,h){b(f,function(){throw new Ra(a.UNSUPPORTED_USERAUTH_MECHANISM,"NtbaControllerData$parse");})}function k(g,l,n,q){function t(f,g){b(g, | |
function(){var l;try{l=I(f)}catch(k){throw new Ra(a.USERAUTH_MASTERTOKEN_INVALID,"MDX authdata "+JSON.stringify(d),k);}if(!l||0==l.length)throw new Ra(a.USERAUTH_MASTERTOKEN_MISSING,"MDX authdata "+JSON.stringify(d));try{var n=JSON.parse(h(l,"utf-8"));Rc(c,n,{result:function(c){b(g,function(){if(!c.isDecrypted())throw new Ra(a.USERAUTH_MASTERTOKEN_NOT_DECRYPTED,"MDX authdata "+d.toString());return c})},error:function(c){b(g,function(){if(c instanceof A)throw new Ra(a.USERAUTH_MASTERTOKEN_INVALID, | |
"MDX authdata "+JSON.stringify(d),c);throw c;})}})}catch(q){if(q instanceof SyntaxError)throw new ba(a.JSON_PARSE_ERROR,"MDX authdata "+JSON.stringify(d),q);throw q;}})}function B(f,g,l){b(l,function(){var k;try{k=I(f)}catch(n){throw new Ra(a.USERAUTH_USERIDTOKEN_INVALID,"MDX authdata "+JSON.stringify(d),n);}if(!k||0==k.length)throw new Ra(a.USERAUTH_USERIDTOKEN_MISSING,"MDX authdata "+JSON.stringify(d));try{var q=JSON.parse(h(k,"utf-8"));ed(c,q,g,{result:function(c){b(l,function(){if(!c.isDecrypted())throw new Ra(a.USERAUTH_USERIDTOKEN_NOT_DECRYPTED, | |
"MDX authdata "+JSON.stringify(d));return c})},error:function(c){b(l,function(){if(c instanceof A)throw new Ra(a.USERAUTH_USERIDTOKEN_INVALID,"MDX authdata "+JSON.stringify(d),c);throw c;})}})}catch(t){if(t instanceof SyntaxError)throw new ba(a.JSON_PARSE_ERROR,"MDX authdata "+JSON.stringify(d),t);throw t;}})}b(f,function(){var h=l.split(",");if(3!=h.length||"1"!=h[0])throw new Ra(a.UNIDENTIFIED_USERAUTH_MECHANISM,"MDX authdata "+JSON.stringify(d));t(h[1],{result:function(k){B(h[2],k,{result:function(h){y(c, | |
k,n,q,{result:function(a){b(f,function(){return new Tc(c,g,l,n,q,{controllerAuthData:a,userIdToken:h})})},error:function(c){b(f,function(){if(c instanceof qc)throw new Ra(a.USERAUTH_MASTERTOKEN_NOT_DECRYPTED,"MDX authdata "+JSON.stringify(d),c);throw c;})}})},error:f.error})},error:f.error})})}b(f,function(){var b=d.pin,c=d.mdxauthdata,f=d.signature;if(!b||"string"!==typeof b||!c||"string"!==typeof c||!f||"string"!==typeof f)throw new ba(a.JSON_PARSE_ERROR,"MDX authdata "+JSON.stringify(d));var h, | |
n;try{h=I(c),n=I(f)}catch(q){throw new Ra(a.MDX_CONTROLLERDATA_INVALID,"MDX authdata "+JSON.stringify(d),q);}if(d.mastertoken){c=d.mastertoken;if(!c||"object"!==typeof c)throw new ba(a.JSON_PARSE_ERROR,"MDX authdata "+JSON.stringify(d));g(b,c,h,n)}else if(d.cticket){c=d.cticket;if(!c||"string"!==typeof c)throw new ba(a.JSON_PARSE_ERROR,"MDX authdata "+JSON.stringify(d));-1==c.indexOf(",")?l(b,c,h,n):k(b,c,h,n)}else throw new Ra(a.UNIDENTIFIED_USERAUTH_MECHANISM,"MDX authdata "+JSON.stringify(d)); | |
})}})();var gg;(function(){var b=Vd.ACTION,c=Ic.ACTION,d=cf.ACTION;gg=xe.extend({init:function J(){J.base.call(this,vc.MDX)},createData:function(a,b,c,d){fg(a,c,d)},authenticate:function(f,h,k,n){if(!(k instanceof Tc))throw new W("Incorrect authentication data type "+k.getClass().getName()+".");f=k.action;switch(k.mechanism){case ye.MSL:if(b!=f)throw(new Ra(a.MDX_USERAUTH_ACTION_INVALID)).setUser(k);break;case ye.NTBA:if(c!=f)throw(new Ra(a.MDX_USERAUTH_ACTION_INVALID)).setUser(k);break;case ye.MSL_LEGACY:if(d!= | |
f)throw(new Ra(a.MDX_USERAUTH_ACTION_INVALID)).setUser(k);}f=k.controllerPin;h=k.targetPin;if(!f||!h)throw(new Ra(a.MDX_PIN_BLANK)).setUser(k);if(f!=h)throw(new Ra(a.MDX_PIN_MISMATCH)).setUser(k);f=k.customer;if(!f)throw(new Ra(a.MDX_USER_UNKNOWN)).setUser(k);if(n&&(n=n.customer,!f.equals(n)))throw(new Ra(a.USERIDTOKEN_USERAUTH_DATA_MISMATCH,"uad customer "+f+"; uit customer "+n)).setUser(k);return f}})})();Object.freeze({ENTITY_REAUTH:d.ENTITY_REAUTH,ENTITYDATA_REAUTH:d.ENTITYDATA_REAUTH});var Xg= | |
Y.Class.create({getTime:function(){},getRandom:function(){},isPeerToPeer:function(){},getMessageCapabilities:function(){},getEntityAuthenticationData:function(a,b){},getMslCryptoContext:function(){},getEntityAuthenticationFactory:function(a){},getUserAuthenticationFactory:function(a){},getTokenFactory:function(){},getKeyExchangeFactory:function(a){},getKeyExchangeFactories:function(){},getMslStore:function(){}}),hg=Y.Class.create({setCryptoContext:function(a,b){},getMasterToken:function(){},getNonReplayableId:function(a){}, | |
getCryptoContext:function(a){},removeCryptoContext:function(a){},clearCryptoContexts:function(){},addUserIdToken:function(a,b){},getUserIdToken:function(a){},removeUserIdToken:function(a){},clearUserIdTokens:function(){},addServiceTokens:function(a){},getServiceTokens:function(a,b){},removeServiceTokens:function(a,b,c){},clearServiceTokens:function(){}}),ue,ve;(function(){var b=Zc;ue=function(c,d){switch(c){case b.LZW:return ee(d);case b.GZIP:return gzip$compress(d);default:throw new A(a.UNSUPPORTED_COMPRESSION, | |
c);}};ve=function(c,d,f){switch(c){case b.LZW:return fe(d);case b.GZIP:return gzip$uncompress(d);default:throw new A(a.UNSUPPORTED_COMPRESSION,c.name());}}})();hg.extend({setCryptoContext:function(a,b){},getMasterToken:function(){return null},getNonReplayableId:function(a){return 1},getCryptoContext:function(a){return null},removeCryptoContext:function(a){},clearCryptoContexts:function(){},addUserIdToken:function(a,b){},getUserIdToken:function(a){return null},removeUserIdToken:function(a){},clearUserIdTokens:function(){}, | |
addServiceTokens:function(a){},getServiceTokens:function(b,c){if(c){if(!b)throw new A(a.USERIDTOKEN_MASTERTOKEN_NULL);if(!c.isBoundTo(b))throw new A(a.USERIDTOKEN_MASTERTOKEN_MISMATCH,"uit mtserialnumber "+c.mtSerialNumber+"; mt "+b.serialNumber);}return[]},removeServiceTokens:function(b,c,d){if(d&&c&&!d.isBoundTo(c))throw new A(a.USERIDTOKEN_MASTERTOKEN_MISMATCH,"uit mtserialnumber "+d.masterTokenSerialNumber+"; mt "+c.serialNumber);},clearServiceTokens:function(){}});var ig;(function(){ig=hg.extend({init:function g(){g.base.call(this); | |
Object.defineProperties(this,{masterTokens:{value:{},writable:!1,enumerable:!1,configurable:!1},cryptoContexts:{value:{},writable:!1,enumerable:!1,configurable:!1},userIdTokens:{value:{},writable:!1,enumerable:!1,configurable:!1},nonReplayableIds:{value:{},writable:!1,enumerable:!1,configurable:!1},unboundServiceTokens:{value:{},writable:!1,enumerable:!1,configurable:!1},mtServiceTokens:{value:{},writable:!1,enumerable:!1,configurable:!1},uitServiceTokens:{value:{},writable:!1,enumerable:!1,configurable:!1}})}, | |
setCryptoContext:function(a,b){if(b){var c=a.uniqueKey();this.masterTokens[c]=a;this.cryptoContexts[c]=b}else this.removeCryptoContext(a)},getMasterToken:function(){var a=null,b;for(b in this.masterTokens){var c=this.masterTokens[b];if(!a||c.isNewerThan(a))a=c}return a},getNonReplayableId:function(a){a=a.serialNumber;var b;b=this.nonReplayableIds[a]!==y?this.nonReplayableIds[a]:0;if(0>b||b>Ia)throw new W("Non-replayable ID "+b+" is outside the valid range.");b=b==Ia?0:b+1;return this.nonReplayableIds[a]= | |
b},getCryptoContext:function(a){return this.cryptoContexts[a.uniqueKey()]},removeCryptoContext:function(a){var b=a.uniqueKey();if(this.masterTokens[b]){delete this.masterTokens[b];delete this.cryptoContexts[b];var b=a.serialNumber,c;for(c in this.masterTokens)if(this.masterTokens[c].serialNumber==b)return;delete this.nonReplayableIds[b];Object.keys(this.userIdTokens).forEach(function(b){b=this.userIdTokens[b];b.isBoundTo(a)&&this.removeUserIdToken(b)},this);try{this.removeServiceTokens(null,a,null)}catch(d){if(d instanceof | |
A)throw new W("Unexpected exception while removing master token bound service tokens.",d);throw d;}}},clearCryptoContexts:function(){[this.masterTokens,this.cryptoContexts,this.nonReplayableIds,this.userIdTokens,this.uitServiceTokens,this.mtServiceTokens].forEach(function(a){for(var b in a)delete a[b]},this)},addUserIdToken:function(b,c){var d=!1,f;for(f in this.masterTokens)if(c.isBoundTo(this.masterTokens[f])){d=!0;break}if(!d)throw new A(a.USERIDTOKEN_MASTERTOKEN_NOT_FOUND,"uit mtserialnumber "+ | |
c.mtSerialNumber);this.userIdTokens[b]=c},getUserIdToken:function(a){return this.userIdTokens[a]},removeUserIdToken:function(a){var b=null,c;for(c in this.masterTokens){var d=this.masterTokens[c];if(a.isBoundTo(d)){b=d;break}}Object.keys(this.userIdTokens).forEach(function(c){if(this.userIdTokens[c].equals(a)){delete this.userIdTokens[c];try{this.removeServiceTokens(null,b,a)}catch(d){if(d instanceof A)throw new W("Unexpected exception while removing user ID token bound service tokens.",d);throw d; | |
}}},this)},clearUserIdTokens:function(){for(var a in this.userIdTokens){var b=this.userIdTokens[a];try{this.removeServiceTokens(null,null,b)}catch(c){if(c instanceof A)throw new W("Unexpected exception while removing user ID token bound service tokens.",c);throw c;}delete this.userIdTokens[a]}},addServiceTokens:function(b){b.forEach(function(b){if(b.isUnbound())this.unboundServiceTokens[b.uniqueKey()]=b;else{if(b.isMasterTokenBound()){var c=!1,d;for(d in this.masterTokens)if(b.isBoundTo(this.masterTokens[d])){c= | |
!0;break}if(!c)throw new A(a.SERVICETOKEN_MASTERTOKEN_NOT_FOUND,"st mtserialnumber "+b.mtSerialNumber);}if(b.isUserIdTokenBound()){var c=!1,f;for(f in this.userIdTokens)if(b.isBoundTo(this.userIdTokens[f])){c=!0;break}if(!c)throw new A(a.SERVICETOKEN_USERIDTOKEN_NOT_FOUND,"st uitserialnumber "+b.uitSerialNumber);}b.isMasterTokenBound()&&((f=this.mtServiceTokens[b.mtSerialNumber])||(f={}),f[b.uniqueKey()]=b,this.mtServiceTokens[b.mtSerialNumber]=f);b.isUserIdTokenBound()&&((f=this.uitServiceTokens[b.uitSerialNumber])|| | |
(f={}),f[b.uniqueKey()]=b,this.uitServiceTokens[b.uitSerialNumber]=f)}},this)},getServiceTokens:function(b,c){if(c){if(!b)throw new A(a.USERIDTOKEN_MASTERTOKEN_NULL);if(!c.isBoundTo(b))throw new A(a.USERIDTOKEN_MASTERTOKEN_MISMATCH,"uit mtserialnumber "+c.mtSerialNumber+"; mt "+b.serialNumber);}var d={},f;for(f in this.unboundServiceTokens){var h=this.unboundServiceTokens[f];d[h.uniqueKey()]=h}if(b&&(h=this.mtServiceTokens[b.serialNumber]))for(f in h){var k=h[f];k.isUserIdTokenBound()||(d[f]=k)}if(c&& | |
(h=this.uitServiceTokens[c.serialNumber]))for(f in h)k=h[f],k.isBoundTo(b)&&(d[f]=k);h=[];for(f in d)h.push(d[f]);return h},removeServiceTokens:function(b,c,d){if(d&&c&&!d.isBoundTo(c))throw new A(a.USERIDTOKEN_MASTERTOKEN_MISMATCH,"uit mtserialnumber "+d.mtSerialNumber+"; mt "+c.serialNumber);if(b&&!c&&!d){Object.keys(this.unboundServiceTokens).forEach(function(a){this.unboundServiceTokens[a].name==b&&delete this.unboundServiceTokens[a]},this);for(var f in this.mtServiceTokens){var h=this.mtServiceTokens[f], | |
k=Object.keys(h);k.forEach(function(a){h[a].name==b&&delete h[a]},this);this.mtServiceTokens[f]=h}for(var n in this.uitServiceTokens)h=this.uitServiceTokens[n],f=Object.keys(h),f.forEach(function(a){h[a].name==b&&delete h[a]},this),this.uitServiceTokens[n]=h}if(c&&!d){if(h=this.mtServiceTokens[c.serialNumber])k=Object.keys(h),k.forEach(function(a){var c=h[a];b&&c.name!=b||delete h[a]},this),this.mtServiceTokens[c.serialNumber]=h;for(n in this.uitServiceTokens){var p=this.uitServiceTokens[n];f=Object.keys(p); | |
f.forEach(function(a){var d=p[a];b&&d.name!=b||d.isBoundTo(c)&&delete p[a]},this);this.uitServiceTokens[n]=p}}d&&(h=this.uitServiceTokens[d.serialNumber])&&(f=Object.keys(h),f.forEach(function(a){var d=h[a];b&&d.name!=b||c&&!d.isBoundTo(c)||delete h[a]},this),this.uitServiceTokens[d.serialNumber]=h)},clearServiceTokens:function(){[this.unboundServiceTokens,this.mtServiceTokens,this.uitServiceTokens].forEach(function(a){for(var b in a)delete a[b]},this)}})})();var Ng=pa.extend({init:function g(){g.base.call(this); | |
Object.defineProperties(this,{_contextMap:{value:{},writable:!1,enumerable:!1,configurable:!1}})},addCryptoContext:function(a,b){if(b&&a&&a.length){var c=L(a);this._contextMap[c]=b}},getCryptoContext:function(a){return a&&a.length?(a=L(a),this._contextMap[a]||null):null},removeCryptoContext:function(a){a&&a.length&&(a=L(a),delete this._contextMap[a])}}),kc=Pg.extend({init:function t(a,b,c,d){t.base.call(this,a);Object.defineProperties(this,{_kde:{value:b,writable:!1,enumerable:!1,configurable:!1}, | |
_kdh:{value:c,writable:!1,enumerable:!1,configurable:!1},_kdw:{value:d,writable:!1,enumerable:!1,configurable:!1}})},getCryptoContext:function(b,c){if(!(c instanceof sc))throw new W("Incorrect authentication data type "+JSON.stringify(c)+".");if(c.identity!=this.localIdentity)throw new zc(a.ENTITY_NOT_FOUND,"mgk "+c.identity);return new hc(b,this.localIdentity,this._kde,this._kdh,this._kdw)}}),zd=Me.extend({init:function q(a,b,c,d){q.base.call(this,a);Object.defineProperties(this,{_kpe:{value:b,writable:!1, | |
enumerable:!1,configurable:!1},_kph:{value:c,writable:!1,enumerable:!1,configurable:!1},_kpw:{value:d,writable:!1,enumerable:!1,configurable:!1}})},getCryptoContext:function(b,c){if(!(c instanceof tc))throw new W("Incorrect authentication data type "+JSON.stringify(c)+".");if(c.identity!=this.localIdentity)throw new zc(a.ENTITY_NOT_FOUND,"psk "+c.identity);return new hc(b,this.localIdentity,this._kpe,this._kph,this._kpw)}}),ze=ig.extend({init:function J(a,b,c,d,f,h){J.base.call(this);this._log=a; | |
this._esn=b;this._keyRequestData=c;this._createKeyRequestData=d;this._systemKeyName=f;this._systemKeyWrapFormat=h},setCryptoContext:function ma(a,b,c){var d=this;d._log.trace("Adding MasterToken",{SequenceNumber:a.sequenceNumber,SerialNumber:a.serialNumber,Expiration:a.expiration.getTime()});ma.base.call(this,a,b);!c&&(a=d._createKeyRequestData)&&(d._log.trace("Generating new keyx request data"),a().then(function(a){d._keyRequestData=a},function(a){d._log.error("Unable to generate new keyx request data", | |
""+a)}))},addUserIdToken:function M(a,b){this._log.trace("Adding UserIdToken",{UserId:a,SerialNumber:b.serialNumber,MTSerialNumber:b.mtSerialNumber,Expiration:b.expiration.getTime()});M.base.call(this,a,b)},addServiceTokens:function B(a){B.base.call(this,a.filter(function(a){return!Bf[a.name]}))},getKeyRequestData:function(){return this._keyRequestData},getStoreState:function(a){var c=this;b(a,function(){var d=c.getMasterToken();d?c.getKeysForStore(d,{result:function(h){b(a,function(){var a=c.userIdTokens, | |
b=Object.keys(a).map(function(b){var h=a[b];return{userId:b,userIdTokenJSON:a[b].toJSON(),serviceTokenJSONList:c.getServiceTokens(d,h).map(f)}});h.esn=c._esn;h.masterTokenJSON=d.toJSON();h.userList=b;var k=c._keyRequestData.storeData;k&&Object.keys(k).forEach(function(a){h[a]=k[a]});return h})},timeout:a.timeout,error:a.error}):a.result(null)})},getKeysForStore:function(c,d){var f=this;b(d,function(){var b=f.getCryptoContext(c),b={encryptionKey:b.encryptionKey,hmacKey:b.hmacKey};if(b.encryptionKey&& | |
b.hmacKey)if(f._systemKeyWrapFormat)f.wrapKeysWithSystemKey(b,d);else return b;else throw new A(a.INTERNAL_EXCEPTION,"Unable to get CryptoContext keys");})},wrapKeysWithSystemKey:function(d,f){var h=this;c(this._systemKeyName,{result:function(c){b(f,function(){var b=d.encryptionKey,k=d.hmacKey,n=b[Ad],p=k[Ad];if(n&&p)return{wrappedEncryptionKey:n,wrappedHmacKey:p};Promise.resolve().then(function(){return Promise.all([Ea.wrapKey(h._systemKeyWrapFormat,b,c,c.algorithm),Ea.wrapKey(h._systemKeyWrapFormat, | |
k,c,c.algorithm)])}).then(function(a){n=L(a[0]);b[Ad]=n;p=L(a[1]);k[Ad]=p;f.result({wrappedEncryptionKey:n,wrappedHmacKey:p})}).catch(function(b){f.error(new A(a.INTERNAL_EXCEPTION,"Error wrapping key with SYSTEM key",b))})})},timeout:f.timeout,error:f.error})},unwrapKeysWithSystemKey:function(d,f){var h=this;c(this._systemKeyName,{result:function(c){b(f,function(){var b=I(d.wrappedEncryptionKey),k=I(d.wrappedHmacKey);Promise.resolve().then(function(){return Promise.all([Ea.unwrapKey(h._systemKeyWrapFormat, | |
b,c,c.algorithm,rc,!1,qb),Ea.unwrapKey(h._systemKeyWrapFormat,k,c,c.algorithm,Mb,!1,ia)])}).then(function(a){var b=a[0];a=a[1];b[Ad]=d.wrappedEncryptionKey;a[Ad]=d.wrappedHmacKey;f.result({encryptionKey:b,hmacKey:a})}).catch(function(b){f.error(new A(a.INTERNAL_EXCEPTION,"Error unwrapping with SYSTEM key",b))})})},timeout:f.timeout,error:f.error})},loadStoreState:function(a,b,c,d){function f(d){function h(){if(!C&&A&&L&&O){C=!0;var c=new Jb(b,A,a.esn,{rawKey:L},{rawKey:O});n.setCryptoContext(A,c, | |
!0);d.result(A)}}function k(a,b){p.error(a,b&&""+b);C||(C=!0,d.error())}var C,A,L,O;c.masterTokenJSON?(Rc(b,c.masterTokenJSON,{result:function(a){A=a;h()},timeout:function(){k("Timeout parsing MasterToken")},error:function(a){k("Error parsing MasterToken",a)}}),n._systemKeyWrapFormat?n.unwrapKeysWithSystemKey(c,{result:function(a){L=a.encryptionKey;O=a.hmacKey;h()},timeout:function(){k("Timeout unwrapping keys")},error:function(a){k("Error unwrapping keys",a)}}):Promise.resolve().then(function(){return Ea.encrypt({name:rc.name, | |
iv:new Uint8Array(16)},c.encryptionKey,new Uint8Array(1))}).then(function(a){L=c.encryptionKey}).catch(function(a){k("Error loading encryptionKey")}).then(function(){return Ea.sign(Mb,c.hmacKey,new Uint8Array(1))}).then(function(a){O=c.hmacKey;h()}).catch(function(a){k("Error loading hmacKey")})):k("Persisted store is corrupt")}function h(a,d){var f;try{f=c.userList.slice()}catch(p){}f?function Cb(){var c=f.shift();c?ed(b,c.userIdTokenJSON,a,{result:function(b){try{n.addUserIdToken(c.userId,b),k(a, | |
b,c.serviceTokenJSONList,{result:Cb,timeout:Cb,error:Cb})}catch(d){Cb()}},timeout:Cb,error:Cb}):d.result()}():d.result()}function k(a,c,d,f){var h;try{h=d.slice()}catch(p){}if(h){var B=n.getCryptoContext(a);(function dd(){var d=h.shift();d?re(b,d,a,c,B,{result:function(a){n.addServiceTokens([a]);dd()},timeout:function(){dd()},error:function(){dd()}}):f.result()})()}else f.result()}var n=this,p=n._log;c.esn!=n._esn?(p.error("ESN mismatch, starting fresh"),d.error()):f({result:function(a){h(a,d)},timeout:d.timeout, | |
error:d.error})}}),Bf={"streaming.servicetokens.movie":!0,"streaming.servicetokens.license":!0},Ad="$netflix$msl$wrapsys",Nc,jg=Xg.extend({init:function(a,b,c,d,f,h){var k=new Pd([Zc.LZW]),n=new Rg;n.addPublicKey(b,c);d[Pa.RSA]=new Qg(n);b={};b[vc.EMAIL_PASSWORD]=new Wg;b[vc.NETFLIXID]=new Vg;b[vc.MDX]=new gg;a={_mslCryptoContext:{value:new Ke,writable:!0,enumerable:!1,configurable:!1},_capabilities:{value:k,writable:!1,enumerable:!1,configurable:!1},_entityAuthData:{value:f,writable:!0,enumerable:!1, | |
configurable:!1},_entityAuthFactories:{value:d,writable:!1,enumerable:!1,configurable:!1},_userAuthFactories:{value:b,writable:!1,enumerable:!1,configurable:!1},_keyExchangeFactories:{value:h,writable:!1,enumerable:!1,configurable:!1},_store:{value:a,writable:!1,enumerable:!1,configurable:!1}};Object.defineProperties(this,a)},getTime:function(){return Date.now()},getRandom:function(){return new ge},isPeerToPeer:function(){return!1},getMessageCapabilities:function(){return this._capabilities},getEntityAuthenticationData:function(a, | |
b){b.result(this._entityAuthData)},getMslCryptoContext:function(){return this._mslCryptoContext},getEntityAuthenticationFactory:function(a){return this._entityAuthFactories[a]},getUserAuthenticationFactory:function(a){return this._userAuthFactories[a]},getTokenFactory:function(){return null},getKeyExchangeFactory:function(a){return this._keyExchangeFactories.filter(function(b){return b.scheme==a})[0]},getKeyExchangeFactories:function(){return this._keyExchangeFactories},getMslStore:function(){return this._store}}), | |
Ge=dg.extend({init:function(a,b,c,d){this._log=a;this._mslContext=b;this._mslRequest=c;this._keyRequestData=d},getCryptoContexts:function(){return{}},isEncrypted:function(){return!!this._mslRequest.encrypted},isNonReplayable:function(){return!!this._mslRequest.nonReplayable},isRequestingTokens:function(){return!0},getUserId:function(){return this._mslRequest.userId||null},getUserAuthData:function(a,c,d,f){var h=this._mslRequest,k=this._mslContext;b(f,function(){if(a)return null;if(h.email)return new Ud(h.email, | |
h.password);if(h.netflixId)return new id(h.netflixId,h.secureNetflixId);if(h.mdxControllerToken){var b=(new Ic("regpairrequest",h.mdxNonce,h.mdxEncryptedPinB64,h.mdxSignature)).getEncoding();return new Tc(k,h.mdxPin,h.mdxControllerToken,b,h.mdxSignature)}if(d&&h.getIdCookies){var c=h.getIdCookies(),b=c.netflixId,c=c.secureNetflixId;if(b)return new id(b,c)}return null})},getCustomer:function(){return null},getKeyRequestData:function(a){a.result(this._mslRequest.allowTokenRefresh?[this._keyRequestData]: | |
[])},updateServiceTokens:function(a,b,c){var d=this._log,f=(this._mslRequest.serviceTokens||[]).slice(),h=this._mslContext;b=h.getMslStore();var k=a.builder.getMasterToken(),n=this.getUserId(),p=b.getUserIdToken(n);(function La(){var b=f.shift();if(b)try{b instanceof Sc?(a.addPrimaryServiceToken(b),La()):re(h,b,k,p,null,{result:function(b){try{a.addPrimaryServiceToken(b)}catch(c){d.warn("Exception adding service token",""+c)}La()},timeout:function(){d.warn("Timeout parsing service token");La()},error:function(a){d.warn("Error parsing service token", | |
""+a);La()}})}catch(n){d.warn("Exception processing service token",""+n),La()}else c.result(!0)})()},write:function(a,b,c){var d=P(this._mslRequest.body);a.write(d,0,d.length,b,{result:function(f){f!=d.length?c.error(new ob("Not all data was written to output.")):a.flush(b,{result:function(){c.result(!0)},timeout:function(){c.timeout()},error:function(a){c.error(a)}})},timeout:function(){c.timeout()},error:function(a){c.error(a)}})},getDebugContext:function(){this._dc||(this._dc=new Yg(this._log, | |
this._mslRequest));return this._dc}}),Yg=cg.extend({init:function(a,b){this._log=a;this._mslRequest=b},sentHeader:function(a){this._log.trace("Sent MSL header",n(this._mslRequest,a),a.serviceTokens&&a.serviceTokens.map(Bb).join("\n"))},receivedHeader:function(a){var b=n(this._mslRequest,a),c=a.errorCode;c?this._log.warn("Received MSL error header",b,{errorCode:c,errorMessage:a.errorMessage,internalCode:a.internalCode}):this._log.trace("Received MSL header",b)}}),df={PSK:function(a){return kb(a,Pa.PSK, | |
zd,tc,Se,Pb)},MGK:function(a){return kb(a,Pa.MGK,kc,sc,Se,Pb)},MGK_WITH_FALLBACK:function(b){var c;switch(b.esnPrefix){case "GOOGEUR001":case "GOOGLEXX01":c="PSK";break;default:c="MGK"}var d=df[c];if(!d)throw new A(a.INTERNAL_EXCEPTION,"Invalid fallback authenticationType: "+c);return d(b)},MGK_JWE:function(a){return kb(a,Pa.MGK,kc,sc,Kf,Pe)},JWK_RSA:function(a){return Xb(a,{name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-1"}},Nd.JWK_RSA)},JWK_RSAES:function(a){return Xb(a, | |
{name:"RSAES-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1])},Nd.JWK_RSAES)},JWEJS_RSA:function(a){return Xb(a,{name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1])},Nd.JWEJS_RSA)}};ec.netflix=ec.netflix||{};ec.netflix.msl={createMslClient:function(b,c){var d=b.log,f,h,k,n=b.notifyMilestone||function(){};Promise.resolve().then(function(){if(!(C&&C.generateKey&&C.importKey&&C.unwrapKey))throw new A(a.INTERNAL_EXCEPTION,"No WebCrypto");Ma=C.generateKey({name:"AES-CBC", | |
length:128},!0,qb).then?Va.V2014_02:Va.LEGACY;n("mslisik");return Ea.importKey("spki",b.serverIdentityKeyData,pb,!1,["verify"])}).then(function(b){return new Promise(function(c,d){Pc(b,{result:c,error:function(){d(new A(a.KEY_IMPORT_ERROR,"Unable to create server identity verification key"))}})})}).then(function(c){f=c;if(c=df[b.authenticationType])return n("mslcc"),c(b);throw new A(a.INTERNAL_EXCEPTION,"Invalid authenticationType: "+b.authenticationType);}).then(function(a){h=new ze(d,b.esn,a.keyRequestData, | |
a.createKeyRequestData,b.authenticationKeyNames.s,b.systemKeyWrapFormat);k=new jg(h,b.serverIdentityId,f,a.entityAuthFactories,a.entityAuthData,a.keyExchangeFactories);var c=b.storeState;if(c)return n("mslss"),d.info("Loading store state"),new Promise(function(a,d){h.loadStoreState(b,k,c,{result:a,timeout:a,error:a})});d.info("No store state, starting fresh")}).then(function(){var a=new $e;n("msldone");c.result(new oc(d,a,k,h))}).catch(function(a){c.error(a)})},IHttpLocation:Tg,MslIoException:ob}})(window); | |
(function(){(function y(D,h,P){function ca(p,qa){if(!h[p]){if(!D[p]){var oa="function"==typeof require?require:void 0;if(!qa&&oa)return oa(p,!0);if(O)return O(p,!0);oa=Error("Cannot find module '"+p+"'");throw oa.code="MODULE_NOT_FOUND",oa;}oa=h[p]={Ja:{}};D[p][0].call(oa.Ja,function(b){var h=D[p][1][b];return ca(h?h:b)},oa,oa.Ja,y,D,h,P)}return h[p].Ja}for(var O="function"==typeof require?require:void 0,p=0;p<P.length;p++)ca(P[p]);return ca})({1:[function(y){(function(D,h){function P(a){a=U(a)?jd(a): | |
a;return ii.Ig(a)}function ca(){return!0}function O(){}function p(){}function Z(a){return null!==a&&a!==h}function qa(a){return"object"==typeof a}function oa(a){return a&&a.constructor==bb}function b(a,b,c){return"number"==typeof a&&!isNaN(a)&&isFinite(a)&&(b===h||a>=b)&&(c===h||a<=c)}function k(a,c,d){return b(a,c,d)&&0==a%1}function a(a){return a&&Zg.test(a)}function U(a){return"string"==typeof a}function Ua(a){return U(a)&&a}function f(a){return"function"==typeof a}function c(a,b){for(var c in a)a.hasOwnProperty(c)&& | |
b(c,a[c])}function n(a,b,d){if(b)if(d){var f=d.rh,g=d.prefix,h=d.kf;c(b,function(b,c){if(!h||Z(c))a[(g||"")+(f?b.toLowerCase():b)]=c})}else c(b,function(b,c){a[b]=c});return a}function Bb(a,b,c,d){if(a){var g=a[b];f(g)&&(c=g.apply(a,$g.call(arguments,3)))}}function oc(a){var b={};c(a,function(a,z){b[a]=z});return b}function kb(a){for(var b=0,c=arguments.length;b<c;){var d=arguments[b++];if(Z(d))return d}}function Xb(a){for(var b,c=!0,d;c;)for(c=!1,b=a.length;--b;)d=a[b],d.startTime<a[b-1].startTime&& | |
(a[b]=a[b-1],a[b-1]=d,c=!0)}function Fb(a){for(var b={},c=a.length;c--;)b[a[c]]=!0;return b}function C(a){return Jc(a,10)}function fc(a,b){return lb(a+ef()*(b-a))}function L(a){if(a){var b=a.stack,c=a.number;a=""+a;b?(b=""+b,0!=b.indexOf(a)&&(b=a+"\n"+b)):b=a;c&&(b+="\nnumber:"+c);return b}}function I(a){return b(a)?a.toFixed(0):""}function Qa(a){return b(a)?(a/1E3).toFixed(0):""}function ee(a){return b(a)?a.toFixed():""}function fe(a,b){try{var c=Zb.plugins,d=c.length,f;for(f=0;f<d;f++)if(b.test(c[f][a]))return c[f]; | |
return!1}catch(g){}}function sa(){var a=fe("filename",/widevinecdm/i);if(a){try{var b=a.description.match(/version: ([0-9.]+)/);if(b&&b[1])return b[1]}catch(c){}return"true"}return"false"}function Ia(){try{var a=Kb.defineProperty({},"videoCapabilities",{value:[{contentType:'video/mp4; codecs="avc1.640028"'}]});Zb.requestMediaKeySystemAccess("com.widevine.alpha",[a]).then(function(){Uc.cpth264wv=!0}).catch(function(){Uc.cpth264wv=!1})}catch(b){}}function Zc(a,b){if(a===b)return!0;if(!a||!b)return!1; | |
for(var c in a)if(a.hasOwnProperty(c)&&(!b.hasOwnProperty(c)||a[c]!==b[c]))return!1;return!0}function Id(a,b){if(a.length==b.length){for(var c=a.length;c--;)if(a[c]!=b[c])return!1;return!0}return!1}function vd(a){if(a){var b=a.length;if(b)return b=fc(0,b-1),a[b]}}function Df(a,b){function c(){a.removeEventListener("loadedmetadata",c);b.apply(this,arguments)}a.addEventListener("loadedmetadata",c)}function Qc(){var a=vb.cookie.split("; "),b=a.length,c,d,f,g={};for(c=0;c<b;c++)if(d=ji(a[c]))f=d.indexOf("="), | |
0<f&&(g[d.substr(0,f)]=d.substr(f+1));return g}function Jd(){var a,b;if(a=Jd.Tn)return a;a=ff.search.substr(1);b=a.indexOf("#");0<=b&&(a=a.substr(0,b));a=d(a);return Jd.Tn=a}function d(a){for(var b=/[+]/g,c=(a||"").split("&"),d={},f,g=0;g<c.length;g++)a=ji(c[g]),f=a.indexOf("="),0<=f?d[ki(a.substr(0,f).replace(b,"%20")).toLowerCase()]=ki(a.substr(f+1).replace(b,"%20")):d[a.toLowerCase()]=null;return d}function Y(a){var b="";c(a,function(a,z){b&&(b+="&");b+=Wd(a)+"="+Wd(z)});return b}function Fa(a, | |
b,d,f){var g=vb.createElement(a);b&&(g.style.cssText=b);d&&(g.innerHTML=d);f&&c(f,function(a,b){g.setAttribute(a,b)});return g}function ge(a){var b="";c(a,function(a,z){b+=(b?";":"")+a+":"+z});return b}function Fc(a,b){var c=a[0];if(b<=c[0])return c.slice(1);for(var d=1,f;f=a[d++];){if(b<=f[0]){var d=(b-c[0])/(f[0]-c[0]),g=[];Ba(c.length,f.length);for(var h=1;h<c.length;h++)g.push((c[h]||0)+d*((f[h]||0)-(c[h]||0)));return g}c=f}return c.slice(1)}function A(a){return Uj.call(a,function(a,b){return a- | |
b})}function T(a){for(var b=0,c=a.length;c--;)b+=a[c];return b}function ba(a,b){var c=-1,d=a.length,f,g;if(1===arguments.length){for(;++c<d&&!(null!=(f=a[c])&&f<=f);)f=h;for(;++c<d;)null!=(g=a[c])&&g>f&&(f=g)}else{for(;++c<d&&!(null!=(f=b.call(a,a[c],c))&&f<=f);)f=h;for(;++c<d;)null!=(g=b.call(a,a[c],c))&&g>f&&(f=g)}return f}function zc(a,b){var c=-1,d=a.length,f,g;if(1===arguments.length){for(;++c<d&&!(null!=(f=a[c])&&f<=f);)f=h;for(;++c<d;)null!=(g=a[c])&&f>g&&(f=g)}else{for(;++c<d&&!(null!=(f= | |
b.call(a,a[c],c))&&f<=f);)f=h;for(;++c<d;)null!=(g=b.call(a,a[c],c))&&f>g&&(f=g)}return f}function Db(a){return f(a.then)?a:new Xd(function(b,c){a.oncomplete=function(){b(a.result)};a.onerror=function(){c(a.error)}})}function ob(a,c){function d(a){0>f.indexOf(a)&&b(a)&&f.push(a)}a=a.slice();A(a);var f=[];if(!c||!c.length)return a;if(!a.length)return[];var g=c.length,h,E;try{for(;g--;){var k=""+c[g],l=C(k);switch(k[k.length-1]){case "-":for(h=a.length;h--;)if(E=a[h],E<l){d(E);break}break;case "+":for(h= | |
0;h<a.length;h++)if(E=a[h],E>l){d(E);break}break;default:0<=a.indexOf(l)&&d(l)}}}catch(x){}f.length||f.push(a[0]);A(f);return f}function W(a,b,c){var d;a/b>c?(d=lb(b*c),a=b):(d=a,a=lb(a/c));return{width:d,height:a}}function ub(a,b){var c=a.length,d=(c-1)*b+1;if(1===d)return a[0];if(d==c)return a[c-1];c=ua(d);return a[c-1]+(d-c)*(a[c]-a[c-1])}function Ta(a){try{return d(ah(a)).bt}catch(b){}}function qc(a,b){b=kd.isArray(b)?b:[b];for(var c=a.length,d=0;d<c;d++)for(var f=0;f<b.length;f++)if(a[d].type== | |
b[f])return a[d];throw new Wa("Box not found "+b);}function za(a){return a.ub("trak/mdia/minf/stbl/stsd/enca|encv").children.filter(function(a){return"sinf"==a.type&&"cenc"==a.Og.schm.$s})[0].ub("schi/tenc").oh}function Ra(a){function b(a,z){var d=c[a];c[a]=c[z];c[z]=d}var c=new bb(a);b(0,3);b(1,2);b(4,5);b(6,7);return c}function Ea(){try{var a=/playercore.*js/,b=Yd.getEntries("resource").filter(function(b){return null!==a.exec(b.name)});if(b&&0<b.length){var c=lb(b[0].duration);return mb.stringify(c)}}catch(d){}} | |
function Ma(a,b,c){return a>=b?a<=c?a:c:b}function Va(a){if(b(a))return(a/1E3).toFixed(3)}function gc(a,b){var c=$g.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,b){return"undefined"!=typeof c[b]?c[b]:a})}function rc(a){for(var b=a.length,c=new Uint16Array(b),d=0;d<b;d++)c[d]=a.charCodeAt(d);return c.buffer}function Mb(a){function b(){if(g)for(var a;a=d.pop();)a(h)}function c(a){g=!0;h=a;b()}var d=[],f,g,h;return function(g){d.push(g);f||(f=!0,a(c));b()}}function Aa(a){return D.setTimeout(a, | |
0)}function $a(a,b){return D.setTimeout(a,b)}function pb(a){D.clearTimeout(a)}function qb(a,b){return D.setInterval(a,b)}function yb(a){D.clearInterval(a)}function ia(){var a=gf()-ld;if(a<bh){var b=bh+1,c=b-a;Aa(function(){ra.warn("Clock roll-back detected, adjusting time",{Delta:""+-c})});ld-=c;a=b}return bh=a}function Nb(){return ua(gf()/1E3)}function Oc(){}function Eb(a){function b(d){h=null;c(d||a)}function c(a){var z=ia();if(g){var d=a-(z-f);0>=d?(a=g,g=null,f=z,a()):h=h||$a(b.bind(this,a),d)}} | |
var d=this,f=-a,g,h;this.Wp=function(){return a};this.Xh=function(b){a=b};this.pb=function(a){g=a;h=h||Aa(b)};this.Zs=function(a){d.Oc();Aa(a)};this.Oc=function(){h&&pb(h);h=null}}function he(a){var b=0,c;this.get=function(){var d=ia();if(!c||1E3<d-b)b=d,c=a();return c};this.clear=function(){c=h}}function Pc(a){this.Ma={index:a.index,qa:a.qa,ad:a.ad,sa:a.sa,bd:a.bd,Ib:Tc.prototype.Ib};this.r=function(a){this.oj=a};this.r.prototype=this}function Gc(a){var b=a.length,c,d=1;if(b>d){c=Ie(a[d],"");if(b== | |
d+1)return c;for(var f={};d<b;)n(f,c),c=Ie(a[++d],f.Details);return f}}function Ie(a,b){return a&&qa(a)?a.Ba?a.Ba:f(a.Oe)?a.Oe():Vj.test(a.name)?{Exception:a.message||""+a,StackTrace:a.stack||"nostack"}:a:Z(a)?{Details:(""===b?"":b+", ")+a}:{}}function Yc(a,b,d){var f=a.fields||{},g=""+a.message;c(f,function(a,b){Wj.hasOwnProperty(a)||(g+=", "+a+": "+b)});g=g.replace(Xj," ");a=(a.time/1E3).toFixed(3)+"|"+(a.Ma&&a.Ma.index||0)+"|"+(Yj[a.level]||a.level)+"|"+a.category+"| "+g;f.Exception&&(a+="\r\n"+ | |
f.Exception);b&&f.StackTrace&&(a+="\r\n"+f.StackTrace);d&&f.Details&&(a+="\r\n"+f.Details);return a}function Hb(){function a(z,d,f){var g="$netflix$player$order"+c+"$"+z;if(b){var h=b[z]?b[z].slice():[];f&&(d[g]=f);0>h.indexOf(d)&&(h.push(d),h.sort(function(a,b){return(a[g]||0)-(b[g]||0)}));b[z]=h}}var b={},c="$es$"+Zj++;n(this,{addListener:a,removeListener:function(a,c){if(b&&b[a]){for(var z=b[a].slice(),d;0<=(d=z.indexOf(c));)z.splice(d,1);b[a]=z}},Ww:function(a){return b&&!!(b[a]||(b[a]=[])).length}, | |
A:function(a,c,z){if(b)for(var d=b[a]||(b[a]=[]),f=0;f<d.length;f++)if(z)(function(){var a=d[f];Aa(function(){a(c)})})();else d[f](c)},$h:function(a,c){if(b){var z=b[a]||(b[a]=[]);c=c||{};for(var d=0;d<z.length&&!c.jk;d++)z[d](c)}},Oc:function(){b=h},on:a})}function Je(){function a(z){var f=c.indexOf(z);0<=f?c.splice(f,1):z==d&&(d=h);Aa(b)}function b(){for(var S=0,h,k;!d&&(h=f[S]);){if(0>=c.length||!h.Ck)f.splice(S,1),k=g++,h.Ck?d=k:c.push(k),h.Ho({c:!0,qx:k,tf:function(){a(k)}});S++}}var c=[],d, | |
f=[],g=1;n(this,{Zn:function(a,c){f.push({Ck:a,Ho:c});b()},tf:a})}function Xa(a,b){function c(a,b){return(a["$netflix$player$order"+g]||0)-(b["$netflix$player$order"+g]||0)}var d=this,f=b?[b]:[],g="$op$"+ak++;n(d,{value:a,addListener:function(a,b){f.indexOf(a);a["$netflix$player$order"+g]=b;f=f.slice();f.push(a);f.sort(c)},removeListener:function(a){f=f.slice();var b;0<=(b=f.indexOf(a))&&f.splice(b,1)},set:function(a,b){if(d.value!==a){var c={oldValue:d.value,newValue:a};b&&n(c,b);d.value=a;for(var z= | |
f,r=z.length,S=0;S<r;S++)z[S](c)}}})}function ie(){}function Ob(a,b){var c;n(this,{tc:function(){c||(c=$a(b,a))},yb:function(){c&&(pb(c),c=h)}})}function je(a){var b,c="";for(b=8;b--;)c=(bk[a&15]||"0")+c,a>>>=4;return c}function Ib(a,b,c){this.errorCode=a||R.mc;b&&qa(b)?(this.g=b.g,this.V=b.V,this.D=b.D,this.Ae=b.Gp,this.Sc=b.Sc,this.Jg=b.Jg,this.Tc=b.Tc,this.Bd=b.Bd,this.Ia=b.Ia,this.hf=b.method):(this.g=b,this.V=c);a=this.stack=[this.errorCode];this.g?a.push(this.g):this.V&&a.push(N.mc);this.V&& | |
a.push(this.V);this.Nc=kg+a.join("-")}function ke(a){return 1100<=a&&1199>=a}function xd(a){return 1300<=a&&1399>=a}function Hc(a){return 1900<=a&&1999>=a}function Ac(a,b){C(a);return 1<=a&&9>=a?b+a:b}function bd(a){return Ac(a,N.vm)}function cd(a){return Ac(a,N.Ql)}function fb(a){var b={};b.ErrorSubCode=a.g||N.mc;a.V&&(b.ErrorExternalCode=a.V);a.D&&(b.ErrorDetails=a.D);return b}function hc(a){li[a]=ia()}function Jb(a){if(U(a)&&ck.test(a)){var b=a.split(".");if(4===b.length){for(var c=0;c<b.length;c++){var d= | |
C(b[c]);if(0>d||!k(d,0,255)||1!==b[c].length&&0===b[c].indexOf("0"))return}return a}}}function Ke(a){var b=0;if(Jb(a)===a)return a=a.split("."),b+=C(a[0])<<24,b+=C(a[1])<<16,b+=C(a[2])<<8,b+C(a[3])}function Pa(a){if(U(a)&&a.match(dk)){var b=a.split(":");if(-1!==b[b.length-1].indexOf(".")){a=Ke(b[b.length-1])>>>0;var c=[];c.push((a>>>16&65535).toString(16));c.push((a&65535).toString(16));b.pop();b.push(c[0]);b.push(c[1]);a=b.join(":")}a=a.split("::");if(!(2<a.length||1===a.length&&8!==b.length)){if(1< | |
a.length)if(b=a[0].split(":"),a=a[1].split(":"),1===b.length&&""===b[0]&&(b=[]),1===a.length&&""===a[0]&&(a=[]),c=8-(b.length+a.length),1>c)b=[];else{var d;for(d=0;d<c;d++)b.push("0");for(d=0;d<a.length;d++)b.push(a[d])}a=b.length;if(8===a){for(;a--;)if(c=Jc(b[a],16),!k(c,0,65535))return;return b.join(":")}}}}function $c(a,b,c){var d=Jb(a),f=Pa(a),g=Jb(b),h=Pa(b);if(!d&&!f||!g&&!h||d&&!g||f&&!h)return!1;if(a===d)return c=-1<<32-c,(Ke(a)&c)!==(Ke(b)&c)?!1:!0;if(a===f){a=a.split(":");b=b.split(":"); | |
for(d=ua(c/16);d--;)if(a[d]!==b[d])return!1;c%=16;if(0!==c)for(a=Jc(a[d],16).toString(2),b=Jc(b[d],16).toString(2),a="0000000000000000".substring(0,16-a.length)+a,b="0000000000000000".substring(0,16-b.length)+b,d=0;d<c;d++)if(a[d]!==b[d])return!1;return!0}return!1}function le(a,b){var c;this.Zh=function(){c||(c=qb(b,a))};this.yd=function(){c&&(yb(c),c=h)}}function Kd(a,b,c,d,f){Gd(a,function(a){a.c?ek(a.object,b,c,d,function(a){a.c?f({c:!0,entries:a.entries}):f(a)}):f(a)})}function sc(){function a(c){var z= | |
d.Xg();if(f!=z){var r,g;z<m&&(g=l||x[ua(z*V)]||x[0]);if(g){for(;g&&g.endTime<z;)g=g.next;for(;g&&g.previous&&g.previous.endTime>=z;)g=g.previous}g&&(g.startTime<=z&&z<=g.endTime?(r=g,b(g.endTime-z)):b(g.startTime-z));l=g;f=z;k!=r&&(k=r,!c&&d.Bh&&d.Bh())}}function b(a){Ha&&(pb(Ha),Ha=h);g&&0<a&&(Ha=$a(c,a+fk))}function c(){Ha=h;a()}var d=this,f,g,k,l,Ha,x,m,V;n(d,{pl:function(b){var c=b&&b.length;l=k=f=h;x=b;m=c&&Ba.apply(null,b.map(function(a){return a.endTime}));V=c&&c/m;a()},Xg:h,start:function(){g= | |
!0;a()},stop:function(){g=!1;Ha&&(pb(Ha),Ha=h)},Np:function(){a(!0);return k},Bh:h})}function Le(a,b,c,d,f){var g="";a.textNodes.forEach(function(a){var z=g,k=a.style,l=mi(a.text);for(a=a.lineBreaks;a--;)l="<br />"+l;var n=k.characterStyle;a=d[n];var V;0<=n.indexOf("MONOSPACE")?(n=k.cellResolution,V=a&&n&&(40===n.x&&19===n.y?V=4/3/(40/19):52===n.x&&19===n.y&&(V=16/9/(52/19)),V)?a.width/a.fontSize/V:void 0,V=V||a.lineHeight):V=a.lineHeight;V=k.characterSize*b.height/(V||1);V=0<f?ua(V*f):lb(V);V={"font-size":V+ | |
"px","line-height":"normal","font-weight":"normal"};k.characterItalic&&(V["font-style"]="italic");k.characterUnderline&&(V["text-decoration"]="underline");k.characterColor&&(V.color=k.characterColor);k.backgroundColor&&0!==k.backgroundOpacity&&(n=k.backgroundColor,a=k.backgroundOpacity,a=a!==h?a:1,n=n.substring(1),n=Jc(n,16),V["background-color"]="rgba("+(n>>16&255)+","+(n>>8&255)+","+(n&255)+","+a+")");a=k.characterEdgeColor||"#000000";switch(k.characterEdgeAttributes){case ch:V["text-shadow"]=a+ | |
" 0px 0px 13px";break;case ni:V["text-shadow"]="-1px 0px "+a+",0px 1px "+a+",1px 0px "+a+",0px -1px "+a;break;case gk:V["text-shadow"]="-1px -1px white, 0px -1px white, -1px 0px white, 1px 1px black, 0px 1px black, 1px 0px black";break;case hk:V["text-shadow"]="1px 1px white, 0px 1px white, 1px 0px white, -1px -1px black, 0px -1px black, -1px 0px black"}V=ge(V);(a=c[k.characterStyle||"PROPORTIONAL_SANS_SERIF"])&&(V+=";"+a);k=k.characterOpacity;0<k&&1>k&&(l='<span style="opacity:'+k+'">'+l+"</span>"); | |
g=z+('<span style="'+V+'">'+l+"</span>")});return g}function Pg(a,b,d,f,g){var h="",k=g.width;g=g.height;for(var l=b.length;l--;){var Ha=b[l],x=a[l],x=x&&x.region,n="position:absolute;background:"+f+";width:"+lb(Ha.width+2*d)+"px;height:"+lb(Ha.height+2*d)+"px;";c(tc(x,Ha,k,g,d),function(a,b){n+=a+":"+b+";"});h+='<div style="'+n+'"></div>'}return h}function tc(a,b,c,d,f){var g={};"right"==a.horizontalAlignment?g.right=100*(c-b.left-b.width-f)/c+"%":g.left=100*(b.left-f)/c+"%";"bottom"==a.verticalAlignment? | |
g.bottom=100*(d-b.top-b.height-f)/d+"%":g.top=100*(b.top-f)/d+"%";return g}function Ef(a){function b(){var c=f.parentNode,h=c&&c.clientWidth,S=c&&c.clientHeight,V=c=0,m={width:h,height:S},v,H;if(0<h&&0<S&&g){k&&(m=W(h,S,k),c=lb((h-m.width)/2),V=lb((S-m.height)/2));var X=g.blocks;v=X&&X.map(function(b){var c=Le(b,m,a,E),d={display:"block","white-space":"nowrap"};switch(b.region.horizontalAlignment){case "left":d["text-align"]="left";break;case "right":d["text-align"]="right";break;default:d["text-align"]= | |
"center"}b=ge(d)+";position:absolute";return Fa("div",b,c,dh)})}n(d,{left:c+"px",right:c+"px",top:V+"px",bottom:V+"px"});f.style.display="none";f.innerHTML="";if(v&&v.length){h=m.width;c=m.height;v.forEach(function(a){f.appendChild(a)});var nb=ge(d);f.style.cssText=nb+";visibility:hidden;z-index:-1";var F=[],K,da,ea;for(H=v.length;H--;)da=v[H],ea=X[H],K=Me(da,ea,h,c),K.width>h&&(da.innerHTML=Le(ea,m,a,E,h/K.width),K=Me(da,ea,h,c)),F[H]=K;H=m;l&&(H=me(m,l,S,V));F=Ff(F,H);if(V=X&&X[0]&&X[0].textNodes&& | |
X[0].textNodes[0]&&X[0].textNodes[0].style)S=V.windowColor,V=V.windowOpacity,S&&0<V&&(H=lb(c/50),S=Pg(X,F,H,S,m),S=Fa("div","position:absolute;left:0;top:0;right:0;bottom:0;opacity:"+V,S,dh),f.insertBefore(S,f.firstChild));f.style.display="none";for(H=F.length;H--;)K=F[H],n(v[H].style,tc(X[H].region,K,h,c,0));f.style.cssText=nb}}var d={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block"},f=Fa("DIV",h,h,{"class":"player-timedtext"}),g,k,E=function(a){var b={};c(a,function(a,c){var z= | |
Fa("DIV","display:block;position:fixed;z-index:-1;visibility:hidden;font-size:1000px;"+c+";","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",dh);vb.body.appendChild(z);var d={fontSize:1E3,height:z.clientHeight,width:z.clientWidth/52,lineHeight:z.clientHeight/1E3};vb.body.removeChild(z);b[a]=d});return b}(a),l;f.onselectstart=function(){return!1};n(this,{Yj:function(){return f},tt:function(a){k=a},vt:function(a){g=a;b()},Ls:b,Yh:function(a){l=a;b()}})}function Me(a,b,c,d){var f=b.region,g=(f.marginTop|| | |
0)*d,h=(f.marginBottom||0)*d,k=(f.marginLeft||0)*c,l=(f.marginRight||0)*c;b=a.clientWidth||1;a=a.clientHeight||1;switch(f.verticalAlignment){case "top":d=g;break;case "center":d=(g+d-h-a)/2;break;default:d=d-h-a}switch(f.horizontalAlignment){case "left":c=k;break;case "right":c=c-l-b;break;default:c=(k+c-l-b)/2}return{top:d,left:c,width:b,height:a}}function me(a,b,c,d){return{height:c-Ba(d,b.bottom|0)-Ba(d,b.top|0),width:a.width}}function Ff(a,b){function c(a,b,z){if(a&&1<a.length){for(var f=[],r= | |
[],g=0;g<a.length;g++)f[g]=0,r[g]=0;for(var h=!1,g=0;g<a.length;g++)for(var S=g+1;S<a.length;S++){var k,l=a[g],ka=a[S];if(0>l.width||0>ka.width||ka.left>l.left+l.width||ka.left+ka.width<l.left||ka.top>l.top+l.height?0:ka.top+ka.height>=l.top){k=Ba(l.left,ka.left);var n=Ba(l.top,ka.top);k={width:Ba(va(l.left+l.width,ka.left+ka.width)-k,0),height:Ba(va(l.top+l.height,ka.top+ka.height)-n,0),x:k,y:n}}else k=void 0;if(k&&1<k.width&&1<k.height)if(n=k.width<=k.height,l=d(a[g]),ka=d(a[S]),n&&b||!n&&!b)k= | |
Ba(k.width/2,.25),l.x<=ka.x?(r[g]-=k,r[S]+=k):(r[S]-=k,r[g]+=k);else if(n&&!b||!n&&b)l=Ba(k.height/2,.25),f[g]-=l,f[S]+=l}for(g=0;g<a.length;g++){if(-.25>r[g]&&0<=a[g].left+r[g]||.25<r[g]&&a[g].left+a[g].width+r[g]<=z.width)a[g].left+=r[g],h=!0;if(-.25>f[g]&&0<=a[g].top+f[g]||.25<f[g]&&a[g].top+a[g].height+f[g]<=z.height)a[g].top+=f[g],h=!0}return h}}function d(a){return{x:a.left+a.width/2,y:a.top+a.height/2}}var f=a.map(function(a){return{top:a.top,left:a.left,width:a.width,height:a.height}});(function(a, | |
b){a.forEach(function(a){0>a.left&&a.left+a.width<b.width?a.left+=va(-a.left,b.width-(a.left+a.width)):a.left+a.width>b.width&&0<a.left&&(a.left-=va(a.left+a.width-b.width,a.left));0>a.top&&a.top+a.height<b.height?a.top+=va(-a.top,b.height-(a.top+a.height)):a.top+a.height>b.height&&0<a.top&&(a.top-=va(a.top+a.height-b.height,a.top))})})(f,b);for(var g=0;50>g&&c(f,!0,b);g++);for(g=0;50>g&&c(f,!1,b);g++);return f}function Qg(a){oi.root.getDirectory("netflix.player.namedatapair",pi,function(b){a({c:!0, | |
kp:b})},function(){a({g:N.Jn})})}function Hd(a,b,c){function d(){c({g:N.Gn})}a.getFile(b,qi,function(a){a.file(function(b){var z=new ri;z.onloadend=function(){c({c:!0,text:z.result,Mg:a})};z.onerror=d;z.readAsText(b)},d)},d)}function Gf(a,b,c,d,f){function g(){f&&f({g:N.In})}function h(a){a.createWriter(function(b){try{b.onwriteend=function(){b.onwriteend=null;b.onerror=null;b.truncate(b.position);f&&f({c:!0,Mg:a})},b.onerror=g,b.write(new ik([c]))}catch(z){g()}},g)}b.createWriter?h(b):a.getFile(b, | |
d?jk:pi,h,g)}function Og(a,b,c){function d(){c&&c({g:N.Hn})}function f(a){a.remove(function(){c&&c(ta)},d)}b.remove?f(b):a.getFile(b,qi,f,d)}function Rg(a){var b={};a({c:!0,di:{load:function(a,c){b.hasOwnProperty(a)?c({c:!0,data:b[a],ae:a}):c({g:N.Fc})},save:function(a,c,z,d){z&&b.hasOwnProperty(a)?d({c:!1}):(b[a]=c,d&&d({c:!0,ae:a}))},remove:function(a,c){delete b[a];c&&c(ta)}}})}function Ne(a){function b(){b=p;a({c:!0,di:{load:function(a,b){c(a,function(c){Hd(d,a,function(a){Aa(c.tf);if(a.c){var z= | |
a.text,d;try{z&&(d=mb.parse(z))}catch(f){b({g:N.Kn});return}d?b({c:!0,data:d,ae:a.Mg}):b({g:N.Fc})}else b(a)})})},save:function(a,b,z,f){var g=a.name||a,h=mb.stringify(b);c(g,function(b){Gf(d,a,h,z,function(a){Aa(b.tf);a.c?f&&f({c:!0,ae:a.Mg}):f&&f(a)})})},remove:function(a,b){c(a.name||a,function(c){Og(d,a,function(a){Aa(c.tf);b&&b(a)})})}}})}function c(a,b){(f[a]||(f[a]=new Je)).Zn(!0,b)}var d,f={};Qg(function(c){c.c?(d=c.kp,b()):a(c)})}function ne(a){function b(d,f){b=p;h&&h.yb();if(d){var g={g:d}; | |
f&&(g.D=f);a(g)}else a({c:!0,di:{load:function(a,b){c("get",!1,a,function(c){var z;try{var d=c.target.result;z=d?{c:!0,data:d.data,ae:a}:{g:N.Fc}}catch(f){z={g:N.Si,D:L(f)}}b(z)},function(a){b({g:N.Si,D:a})},function(){b({g:N.Ti})})},save:function(a,b,z,d){c(z?"add":"put",!0,{name:a,data:b},function(){d&&d({c:!0,ae:a})},function(a){d&&d({g:N.Nn,D:a})},function(){d&&d({g:N.Wi})})},remove:function(a,b){c("delete",!0,a,function(){b&&b(ta)},function(a){b&&b({g:N.Qi,D:a})},function(){b&&b({g:N.$f})})}}})} | |
function c(a,b,z,f,r,h){function S(){l&&l.yb();k&&(k.onsuccess=null,k.onerror=null)}try{var k=g.transaction("namedatapairs",b?"readwrite":"readonly").objectStore("namedatapairs")[a](z);k.onsuccess=function(a){S();f(a)};k.onerror=function(){S();r(d(k))};var l=new Ob(v.vl,function(){S();h()});l.tc()}catch(ka){S(),r(L(ka))}}function d(a){a=a&&a.error;return"onerror: "+(a&&(a.name||""+a))}var f=new ra.r("Storage"),g;if(eh){var h=new Ob(v.vl,function(){b(N.wi)});h.tc();hc("idbo");var k=eh.open("netflix.player", | |
1);k?(k.onblocked=function(){b(N.Wl)},k.onupgradeneeded=function(){hc("idbun");g=k.result;g.createObjectStore("namedatapairs",{keyPath:"name"})},k.onsuccess=function(){hc("idbs");g=k.result;b()},k.onerror=function(){hc("idbe");var a=d(k);f.error("IndexedDB open error",a);b(N.Xl,a)}):b(N.vi)}else fh?b(N.Vl,L(fh)):b(N.ui)}function Sg(a){function d(a,b){c(a,function(a,c){f(c)?b[a]=c.call(h,b[a]):qa(c)&&(b[a]=b[a]||{},d(c,b[a]))})}function r(a,b){var c=$g.call(arguments,1);return function(b){Z(b)&&(c[1]= | |
b);return a.apply(h,c)}}function g(a){a=a.toLowerCase();ja.hasOwnProperty(a)&&(Ca[a]=ja[a]);return a}function l(a,b,c){a=a.toLowerCase();if(Ca.hasOwnProperty(a)){var z=Ca[a];try{z=c?c(z):z}catch(d){z=h}if(z!==h)return z;ra.error("Invalid configuration value. Name: "+a)}return b}function hb(a,b,c,z){return l(a,b,function(a){U(a)&&(a=C(a));if(k(a,c,z))return a})}function E(a,b,c,z){return l(a,b,function(a){U(a)&&(a=C(a));if(k(a,c||0,z))return a})}function Ga(a,c,z,d){return l(a,c,function(a){U(a)&& | |
(a=wc(a));if(b(a,z,d))return a})}function m(a,b,c){return l(a,b,function(a){if(c?c.test(a):U(a))return a})}function x(a,b){return l(a,b,function(a){if("true"==a||!0===a)return!0;if("false"==a||!1===a)return!1})}function Na(a,b,c,z){a=a.split("|");for(var d=a.length;d--;)if(a[d]=C(a[d]),!k(a[d],b||0,c))return;if(z===h||a.length>=z)return a}function V(a,b,c,z,d){return l(a,b,function(a){return Na(a,c,z,d)})}function rb(a,b,c,z,d,f){return l(a,b,function(a){a=a.split(";");for(var b=a.length;b--;)if(a[b]= | |
Na(a[b],c,z),a[b]===h||a[b].length!=d)return;if(f===h||a.length>=f)return a})}function q(a,b){a=a.toLowerCase();if(Ca.hasOwnProperty(a)){for(var c=Ca[a],c=kd.isArray(c)?c:c.split("|"),z=c.length;z--;)if(U(c[z]))c[z]=mb.parse(ah(c[z]));else return ra.error("Invalid configuration value."),b;return c}return b}function H(a,b,c,z){return l(a,b,function(a){a=kd.isArray(a)?a:a.split("|");for(var b=a.length;b--;)if(c?!c.test(a[b]):!Ua(a[b]))return;if(z===h||a.length>=z)return a})}function X(a,b,c){return l(a, | |
b,function(a){var z={};n(z,b);if(U(a)){a=a.split(";");for(var d=a.length;d--;){var f=a[d],g=f.indexOf(":");if(0>=g)return;var r=f.substring(0,g);if(f=f.substring(g+1)){if(c&&!c.test(f))return;z[r]=f}else delete z[r]}}else n(z,a);return z})}function nb(a){var b=[];c(a,function(a,c){var z;try{z=mb.stringify(c)}catch(d){z="cantparse"}b.push(a+"="+z)});return b.join("\n")}var F=/^[0-9-+]+$/,K=/^(2\.14)|(2\.15)|(2\.16)|(3\.0)$/,da=/^[0-9]+[%]?$/,ea=/^[0-9]*$/,Ca,ja,Ja,gh=!0,p=!1,cb=!0,u=!1,la=!0;(function(){function b(a){a.split(",").forEach(function(a){var b= | |
a.indexOf("=");0<b&&(Ca[a.substring(0,b).toLowerCase()]=a.substring(b+1))})}Ca={};n(Ca,si);a&&a.length&&kk.call(a,function(a){U(a)?b(a):qa(a)&&n(Ca,a,{rh:!0})});ja=n({},Jd(),{rh:!0});var c=Qc().cadmiumconfig;c&&(ra.info("Config cookie loaded",c),b(c));lk&&n(Ca,ja)})();Ja=/^test/i.test(m(g("environment")))||/^test|int$/i.test(m(g("env")));v={};var w={vw:function(a){return gh=x(g("enableDDPlus20"),kb(a,!0))},uw:function(a){return gh=x(g("enableDDPlus"),kb(a,!0))},zw:function(a){return cb=x(g("enableLSSDH"), | |
kb(a,!0))},xw:function(a){return p=x(g("enableHEVC"),kb(a,!1))},yw:function(a){return la=x(g("enableImageSubs"),kb(a,!0))},jg:function(a){return H("audioProfiles",kb(a,ti)).filter(function(a){return"ddplus-2.0-dash"===a?ui&&!0:"ddplus-5.1-dash"===a?ui&&gh:!0})},ow:function(a){return u=x("disableHD",kb(a,!1))},ni:function(a){a=H("videoProfiles",kb(a,hh)).filter(function(a){return"playready-h264mpl31-dash"===a?!u:"playready-h264mpl40-dash"===a?!u&&mk:/^hevc-/.test(a)?p:!0});return vi(a)},pu:r(m,g("videoCodecs"), | |
Mg()),Rb:function(a){return H("timedTextProfiles",kb(a,wi)).filter(function(a){return"dfxp-ls-sdh"===a?cb:"nflx-cmisc"===a?la:!0})},tk:r(E,g("imageSubsResolution"),0),Ze:r(H,g("keySystemIdList"),xi,h,1),jj:r(m,g("canHDCP"),nk||"constrict",/^(constrict|ifpresent|never)$/),Il:r(m,"widevineRASC","CAUSwwUKvQIIAxIQ5US6QAvBDzfTtjb4tU/7QxiH8c+TBSKOAjCCAQoCggEBAObzvlu2hZRsapAPx4Aa4GUZj4/GjxgXUtBH4THSkM40x63wQeyVxlEEo1D/T1FkVM/S+tiKbJiIGaT0Yb5LTAHcJEhODB40TXlwPfcxBjJLfOkF3jP6wIlqbb6OPVkDi6KMTZ3EYL6BEFGfD1ag/LDsPxG6EZIn3k4S3ODcej6YSzG4TnGD0szj5m6uj/2azPZsWAlSNBRUejmP6Tiota7g5u6AWZz0MsgCiEvnxRHmTRee+LO6U4dswzF3Odr2XBPD/hIAtp0RX8JlcGazBS0GABMMo2qNfCiSiGdyl2xZJq4fq99LoVfCLNChkn1N2NIYLrStQHa35pgObvhwi7ECAwEAAToQdGVzdC5uZXRmbGl4LmNvbRKAA4TTLzJbDZaKfozb9vDv5qpW5A/DNL9gbnJJi/AIZB3QOW2veGmKT3xaKNQ4NSvo/EyfVlhc4ujd4QPrFgYztGLNrxeyRF0J8XzGOPsvv9Mc9uLHKfiZQuy21KZYWF7HNedJ4qpAe6gqZ6uq7Se7f2JbelzENX8rsTpppKvkgPRIKLspFwv0EJQLPWD1zjew2PjoGEwJYlKbSbHVcUNygplaGmPkUCBThDh7p/5Lx5ff2d/oPpIlFvhqntmfOfumt4i+ZL3fFaObvkjpQFVAajqmfipY0KAtiUYYJAJSbm2DnrqP7+DmO9hmRMm9uJkXC2MxbmeNtJHAHdbgKsqjLHDiqwk1JplFMoC9KNMp2pUNdX9TkcrtJoEDqIn3zX9p+itdt3a9mVFc7/ZL4xpraYdQvOwP5LmXj9galK3s+eQJ7bkX6cCi+2X+iBmCMx4R0XJ3/1gxiM5LiStibCnfInub1nNgJDojxFA3jH/IuUcblEf/5Y0s1SzokBnR8V0KbA=="), | |
sx:function(){return-1},Zq:r(hb,g("logDisplayMaxEntryCount"),1E3,-1),br:r(hb,g("logToConsoleLevel"),-1),Ie:function(){return Ja},Os:r(x,"requireNetflixId",!1),Ps:r(x,"requireSecureNetflixId",!1),hu:r(x,"upgradeNetflixId",!0),Dr:r(m,"netflixIdEsnPrefix"),Dp:r(x,"enforceSinglePlayback",!0),Ep:r(x,"enforceSingleSession",!1),sg:r(x,"closeOtherPlaybacks",!0),K:r(x,g("useASE"),!1),lo:r(E,"asyncLoadTimeout",15E3,1),dr:r(E,"mainThreadMonitorPollRate",0),Mr:r(x,"nrdpAlwaysShowUIOverlay",!1),py:r(m,"nrdpConfigServiceApiHostname", | |
"api-global.netflix.com"),Qe:r(m,"groupName",""),Fl:r(E,g("verbosePlaybackInfoDenominator"),100),io:r(x,g("allowPleaseCallMessage"),!1),Ms:r(x,"renderTimedText",!0),zl:r(X,"timedTextStyleDefaults",{}),Al:r(X,"timedTextStyleOverrides",{}),Xt:r(X,"timedTextFontFamilyMapping",yi||{"default":"font-family:Arial,Helvetica;font-weight:bolder"}),Yt:r(E,g("timedTextTimeOverride"),0),Gf:r(E,"timedTextSimpleFallbackThreshold",ok),xg:r(m,g("customDfxpUrl")),rj:r(H,"cdnIdWhiteList",[]),qj:r(H,"cdnIdBlackList", | |
[]),mo:r(x,g("asynchronousCDNSelection"),!0),Qg:r(m,g("forceAudioTrack")),Ar:r(x,"muteVolumeOnPlaybackClose",!0),qy:r(m,"nrdpVolumeControlType","VOLUME_STREAM"),Le:r(m,g("forceTimedTextTrack")),Ot:r(E,"storageMinimumSize",0,0),wl:r(m,"storageType","idb",/^(none|fs|idb)$/),vl:r(E,"storageTimeout",8E3,1),Xq:r(E,"lockExpiration",1E4),Yq:r(E,"lockRefresh",3E3),ts:r(x,"preserveLastFrame",!1),vr:r(E,"minBufferingTimeInMilliseconds",4E3),th:r(E,"maxBufferingTimeInMilliseconds",0),vs:r(E,"progressBackwardsGraceTimeMilliseconds", | |
4E3),ws:r(E,"progressBackwardsMinPercent",10),yo:r(m,g("bookmarkIgnoreBeginning"),"30000",da),zo:r(m,g("bookmarkIgnoreEnd"),"5%",da),ug:r(m,"connectionStrategy","parallel",/^(parallel|single)$/),hj:r(m,g("bandwidthMeterType"),"sliding_window",/^(historical|sliding_window)$/),Hk:r(E,"maxParallelConnections",3),Nh:r(x,"reportThroughputInLogblobs",!0),Yr:r(m,"parallelDownloadManagerType","chunk",/^(subchunk|chunk)$/),Zr:r(E,"parallelDownloaderUpdateFrequencyMs",500),$r:r(E,"parallelDownloaderUpdateThrottleFrequencyMs", | |
200),gr:r(E,"maxChunksInProgressForSubchunking",3),Rt:r(E,"subchunkLength",ih(2,17)),as:r(Ga,"parallelSafeBufferThreshhold",40/240),Xn:r(Ga,"abortDownloadBufferThreshhold",40/240),ci:r(E,"slidingWindowWidthMilliseconds",3E4),es:r(x,"pingOnConnectTimeout",!0),ds:r(E,"pingCDNTimeoutMilliseconds",8E3),Qd:r(E,"maxBufferSizeMilliseconds",232E3,1E4,145152E5),Kb:r(E,"maxBufferSizeBytes",0),dj:r(E,"backBufferSizeMilliseconds",1E4,0,145152E5),wo:r(E,"backToFrontBufferRatioPercent",25,0,1E3),ig:r(E,"audioChunkSizeMilliseconds", | |
16E3),ou:r(E,"videoChunkSizeMilliseconds",4004),qp:r(x,"droppedFrameRateFilterEnabled",!1),rp:r(E,"droppedFrameRateFilterMaxObservation",60,10,1E3),tp:r(rb,"droppedFrameRateFilterPolicy",[[3,15],[6,9],[9,2],[15,1]],h,h,2,0),up:r(x,"droppedFrameRateFilterWithoutRebufferEnabled",!0),Ge:r(E,"droppedFrameRateFilterBasedOnPreviousSession"),Kj:r(V,"droppedFrameRateFilterBasedOnPreviousSessionPolicy"),sp:r(E,"droppedFrameRateFilterMinHeight",384),xp:r(E,"droppedFramesStorageSessionLimit",10),wp:r(E,"droppedFramesStorageInterval", | |
6E4),vp:r(V,"droppedFramesPercentilesList",[]),hp:r(E,g("defaultVolume"),100,0,100),Dj:r(x,"disableVideoRightClickMenu",!0),Xa:r(E,"minDecoderBufferMilliseconds",1E3,0,145152E5),Vr:r(E,"optimalDecoderBufferMilliseconds",5E3,0,145152E5),ir:r(E,"maxDecoderBufferMilliseconds",7E3,0,145152E5),yj:r(E,"decoderTimeoutMilliseconds",1E4,1),Ej:r(x,"disgardMediaOnAppend",!1),ko:r(x,"appendMediaBeforeInit",!1),cs:r(E,"pauseTimeoutLimitMilliseconds",18E5),uk:r(E,"inactivityMonitorInterval",3E4,0),Yn:r(V,"abrdelLogPointsSeconds", | |
[15,30,60,120],0,h,4),rq:r(m,g("heuristicsAlgorithm"),""),Lp:r(rb,g("fixedVideoBitrates"),[],h,h,2,0),yk:r(H,g("initialVideoBitrates"),["0+","400+","900+"],F,1),Eq:r(H,g("initialVideoBitratesForCarreraFallback"),["0+","400+","900+"],F,1),Cq:r(H,g("initialAudioBitrates"),["0+","90+","150+"],F,1),no:r(E,"audioBandwidthDenominator",15,1),ul:r(E,"simulationLimitMilliseconds",12E5,1E4),sq:r(E,"highStreamSimulationMilliseconds",12E4,1),ms:r(rb,"prebufferBitrate",[[500,235],[1E3,560],[5E3,1050],[1E4,1050], | |
[3E4,3E3]],h,h,2,1),xl:r(rb,"switchUpToBitrate",[[235,560],[375,750],[560,1050],[750,1400],[1050,1750],[1750,3E3],[2350,1E5]],h,h,2,1),Eh:r(E,"prebufferMinAudioMilliseconds",6E3),Fh:r(E,"prebufferMinVideoMilliseconds",6E3),os:r(E,"prebufferMaxMilliseconds",3E4),Gs:r(E,"rebufferMaxMilliseconds",232E3),Bp:r(x,"enableTrickPlay",!1),pe:r(V,"additionalDownloadSimulationParams",[2E3,2E3,100],0,h,3),eu:r(E,"trickPlayHighResolutionBitrateThreshold",1E3),fu:r(E,"trickPlayHighResolutionThresholdMilliseconds", | |
1E4),gu:r(Ga,"trickplayBufferFactor",.5),du:r(E,"trickPlayDownloadRetryCount",1),Xk:r(V,"prebufferSimulationParams",[2E3,2E3,60],0,h,3),ij:r(rb,"bufferingSimulationParams",[[6E4,1E3,1E3,100],[12E4,1E3,1E3,20],[18E4,0,0,0]],h,h,4,1),lg:r(rb,"bufferingSwitchUpSimulationParams",[[6E4,3E3,3E3,140],[12E4,3E3,3E3,60],[18E4,0,0,0]],h,h,4,1),Gj:r(E,"doNotSwitchDownIfBufferIsAboveMilliseconds",18E4),zp:r(x,"enableHistorical",!0),ih:r(E,"histAggregationTimeSpanInSeconds",300),tq:r(E,"histCompareBitsIPv4",24), | |
uq:r(E,"histCompareBitsIPv6",32),lk:r(m,"histFilterType","none",/^(none|timeofDay|dayOfWeekAndTimeOfDay)$/),pk:r(E,"histSizeLimit",1E3),nk:r(E,"histMinSampleSize",1),mk:r(E,"histMaxSampleSize",1E3),qk:r(E,"histTimeOfDayRangeInSeconds",3600),Io:r(X,"carreraParameters",{1750:7,1050:5,750:4.5,560:4.5,375:4.5}),mj:r(hb,"carreraMediaSecondsToDownload",8E3),kj:r(hb,"carreraChunksToAverage",10),Sv:r(Ga,"carreraConfidenceThreshold",.7),lj:r(hb,"carreraHistoricalPercentileToUse",50),lh:r(m,"initialBitrateSelectionAlgorithm", | |
"default",/^(default|carrera)$/),Ao:{mr:r(E,"maxReservoirSizeMilliseconds",12E4),lr:r(E,"maxOutageProtectionMilliseconds",6E4),hr:r(E,"maxCushionSizeInBufferPercentage",90),Rs:r(E,"reservoirLookAheadChunks",60),Jt:r(E,"startupPhaseInChunks",30),Kt:r(x,"startupQualityOptimization",!0),yp:r(x,"dynamicReservoir",!0),Nq:r(x,"isUsingStrictMaxChunkSize",!0),cu:r(x,"transitFromInitialPhase",!0),Lt:r(x,"startupSafeRateCalculationEnabled",!0),Mt:r(x,"startupThresholdFunctionOfBufferEnabled",!0),Ht:r(x,"startupLookAheadCalculationEnabled", | |
!1),It:r(E,"startupLookAheadChunks",120),Jq:r(x,"isReservoirManualSet",!1),fr:r(E,"manualReservoirMilliseconds",9E4),Fq:r(x,"isCushionManualSet",!1),er:r(E,"manualCushionMilliseconds",126E3),Iq:r(x,"isLookingAhead",!1),Mq:r(x,"isUsingRateMap",!1)},hb:r(V,"failedDownloadRetryWaits",[10,200,500,1E3,2E3,4E3,8E3,16E3]),Fw:r(V,"failedDownloadRetryWaitsASE",[10,200,500,1E3,2E3,4E3]),ju:r(x,"useCDNExponentialBackoff",!0),ll:r(E,"selectCdnDownloadRetryCountBeforeCdnSwitch",2),qt:r(E,"selectCdnTimeoutMilliseconds", | |
1E3),pt:r(E,"selectCdnSignificantLatency",300),xf:r(E,"selectCdnBandwidthThresholdKbps",2E3),ml:r(m,"selectCdnType","bandwidth",/^(latency|bandwidth)$/),se:r(E,"bandwidthTestBytesPerCdn",204800),mu:r(x,"useVariableConnectTimeout",!1),wr:r(E,"minConnectTimeoutMilliseconds",4E3),Yb:r(E,"connectTimeoutMilliseconds",8E3,500),Vo:r(E,"connectTimeoutBufferDiscount",2),Wo:r(E,"connectTimeoutoutUpperLimitMultiplier",1E4),Td:r(E,"noProgressTimeoutMilliseconds",8E3,500),lu:r(x,"useOnLineApi",!1),qq:r(E,"headerDownloadRetryCountBeforeCdnSwitch", | |
1),gi:r(E,"timedTextDownloadRetryCountBeforeCdnSwitch",1),vk:r(E,"initialHeaderDownloadTimeout",2E3),kk:r(E,"headerDownloadTimeout",3E3),tu:r(x,"webkitDecodedFrameCountIncorrectlyReported",!1),ot:r(E,"seekBackOnAudioTrackChangeMilliseconds",8E3),Df:r(H,g("supportedAudioTrackTypes"),[],h,1),Tt:r(H,g("supportedAudioBitrates"),[],F),Ut:r(H,g("supportedVideoBitrates"),[],F),wk:r(E,"initialLogFlushTimeout",5E3),dd:r(m,"playdataPersistKey",Ja?"unsentplaydatatest":"unsentplaydata"),yf:r(x,"sendPersistedPlaydata", | |
!0),Ch:r(E,"playdataPersistIntervalMilliseconds",4E3),ks:r(x,"playdataPrepareRequest",!1),gh:r(E,"heartbeatCooldown",1E4,1E3),ar:r(H,"logPerformanceTiming","navigationStart redirectStart fetchStart secureConnectionStart requestStart domLoading".split(" ")),rr:r(x,"midplayEnabled",!0),Jk:r(E,"midplayIntervalMilliseconds",3E5),sr:r(V,"midplayKeyPoints",[15E3,3E4,6E4,12E4]),Fj:r(E,g("dlprestartCount"),0),Fg:r(E,"downloadReportDenominator",0),op:r(E,"downloadReportInterval",3E5),Be:r(H,"downloadReportTcpInfo", | |
[]),qw:r(E,"downloadReportTraceInterval",1E3),xo:r(X,g("bookmarkByMovieId"),{}),fc:r(x,g("limitedDurationLicense"),!1),af:r(E,g("licenseRenewalRequestDelay"),0),Ek:r(x,g("limitedDurationFlagOverride"),h),$d:r(x,g("secureStopEnabled"),!1),jl:r(x,g("secureStopFromPersistedKeySession"),!1),ht:r(E,"secureStopKeyMessageTimeoutMilliseconds",2E3,1),ft:r(E,"secureStopKeyAddedTimeoutMilliseconds",1E3,1),mt:r(E,g("secureStopPersistedKeyMessageTimeoutMilliseconds"),2500,1),nt:r(E,g("secureStopPersistedKeySessionRetries"), | |
17,1),kt:r(E,"secureStopPersistedKeyAddedTimeoutUnmatchedSession",1E3,1),dt:r(x,g("secureStopDisplayLogWindowOnError"),!1),et:r(x,g("secureStopIgnoreVideoError"),!1),ku:r(x,g("useCdmId"),!1),Bq:r(H,"initSegmentBoxTypeList",["ftyp","moov"]),wq:r(H,"ignorePsshList",pk||[]),uu:r(x,"workaroundSaio",!0),vu:r(x,"workaroundTenc",!0),Jl:r(x,g("workaroundAudioKeyFrame"),!1),Go:r(x,g("callEndOfStream"),zi),Ro:r(x,g("clipLongVideo"),Ai),zt:r(x,g("setVideoElementSize"),qk),Oo:r(x,g("clearVideoSrc"),!0),Aj:r(E, | |
g("delayPlayPause"),0),vo:r(x,g("avoidSBRemove"),!1),qs:r(x,g("preferOldEme"),!0),ys:r(x,g("promiseBasedEme"),!1),Or:r(x,g("nudgeSourceBuffer"),!1),kl:r(hb,g("seekDelta"),1),ps:r(x,g("preciseSeeking"),!1),zj:r(X,g("delayErrorHandling")),$t:r(x,"trackingLogEnabled",!0),bu:r(m,"trackingLogUrl",Ja?"https://customerevents.test.netflix.com/track/debug":"https://customerevents.netflix.com/track/debug",Zg),au:r(V,"trackingLogStallKeyPoints",[1E4,3E4,6E4,12E4]),Kg:r(m,"esnUrl"),Qj:r(E,"esnUrlTimeout",6E3), | |
Mj:r(x,g("enableEmeVerboseLogging"),!1),Ap:r(x,"enableLastChunkLogging",!1),Br:r(m,"nccpAppId","",ea),Cr:r(m,"nccpSessionId","",ea),Jo:r(m,"cdnProxyUrl"),gc:{Nw:r(x,"nccpForceRegister",!1),Mw:r(x,"nccpForceAuthenticationRenewal",!1),Ke:r(m,g("nccpForceDebugLogLevel"),h,/^(ERROR|WARN|INFO|TRACE)$/),Hh:r(m,"nccpProtocolVersion","3.1",K),zs:r(X,"protocolVersionOverrides",{mdxregister:"2.16"},K),ck:function(){return function(a){return this.zs()[a]||this.Hh()}.bind(w.gc)},rc:r(m,"nccpControllerUrl",Ja? | |
"https://cbp.nccp.test.netflix.com/nccp/controller":"https://cbp.nccp.netflix.com/nccp/controller",Zg),Ct:function(){return"2.0000.453.011"},Cl:r(m,"nccpUIVersion"),Ko:function(){return"0"},Zk:r(H,"preferredLanguages",jh,/^[a-zA-Z-]{2,5}$/,1),Us:r(x,"nccpRetryOnNetworkFailures",!0),jo:r(x,"nccpAlwaysIncludeIdsInPlaydata",!0)},kg:r(m,"authenticationType","JWK_RSA"),oo:r(X,"authenticationKeyNames",n({e:"DKE",h:"DKH",w:"DKW",s:"DKS"},rk)),Vt:r(m,"systemKeyWrapFormat",sk),yr:r(x,"mslDeleteStore",!1), | |
zr:r(x,"mslPersistStore",!0),Fv:r(E,"aseAudioBufferSizeBytes",23060480),Gv:r(E,"aseVideoBufferSizeBytes",335544320),Vz:r(V,"streamingFailureRetryWaits",[4E3,8E3]),cy:r(E,"minInitVideoBitrate",560),Jx:r(E,"maxInitVideoBitrate",1050),$x:r(E,"minAcceptableVideoBitrate",235),ww:r(x,"enableGoodQualityBuffering",!1),fy:r(E,"minRequiredBuffer",3E4),ey:r(E,"minPrebufSize",6E3),lA:r(x,"useMaxPrebufSize",!1),Px:r(E,"maxPrebufSize",3E4),Gx:r(E,"maxBufferingTime",2E3),dx:r(q,"initialBitrateSelectionCurve",null), | |
eA:r(E,"throughputPercentForAudio",15),Lv:r(E,"bandwidthMargin",10),Mv:r(q,"bandwidthMarginCurve",[{m:38,b:8E3},{m:50,b:6E4},{m:17,b:12E4},{m:0,b:24E4}]),ax:r(E,"highWatermarkLevel",3E4),hA:r(E,"toStableThreshold",3E4),iA:r(E,"toUnstableThreshold",15E3),Tz:r(x,"skipBitrateInUpswitch",!0),qA:r(E,"watermarkLevelForSkipStart",8E3),Zw:r(E,"highStreamRetentionWindow",9E4),$w:r(E,"highStreamTransitionWindow",3E5),zx:r(E,"lowestBufForUpswitch",9E3),rx:r(E,"lockPeriodAfterDownswitch",15E3),yx:r(E,"lowWatermarkLevel", | |
15E3),Rx:r(E,"maxSimuLength",6E5),Ax:r(E,"lowestWaterMarkLevel",6E3),Yx:r(Ga,"mediaRate",1.5),Hw:r(Ga,"fastUpswitchFactor",3),Kx:r(E,"maxMediaBufferAllowed",24E4),vx:r(E,"lowGradeModeEnterThreshold",12E4),wx:r(E,"lowGradeModeExitThreshold",9E4),Ix:r(E,"maxDomainFailureWaitDuration",3E4),Fx:r(E,"maxAttemptsOnFailure",18),Dw:r(x,"exhaustAllLocationsForFailure",!0),Lx:r(E,"maxNetworkErrorsDuringBuffering",20),Hx:r(E,"maxBufferingTimeAllowedWithNetworkError",6E4),Gw:r(E,"fastDomainSelectionBwThreshold", | |
2E3),fA:r(E,"throughputProbingEnterThreshold",4E4),gA:r(E,"throughputProbingExitThreshold",34E3),px:r(E,"locationProbingTimeout",1E4),Kw:r(E,"finalLocationSelectionBwThreshold",1E4),cA:r(Ga,"throughputHighConfidenceLevel",.75),dA:r(Ga,"throughputLowConfidenceLevel",.4),Mx:r(E,"maxPartialBuffersAtBufferingStart",2),dy:r(E,"minPendingBufferLen",6E3),Nx:r(E,"maxPendingBufferLen",12E3),Sx:r(E,"maxStreamingSkew",4E3),Ox:r(E,"maxPendingBufferPercentage",10),Qx:r(E,"maxRequestsInBuffer",60),Yw:r(E,"headerRequestSize", | |
4096),ay:r(E,"minBufferLenForHeaderDownloading",1E4),xz:r(E,"reserveForSkipbackBufferMs",1E4),iz:r(x,"pipelineEnabled",!1),kA:r(E,"updatePtsIntervalMs",va(4004,16E3)/2),Pv:r(E,"bufferLevelNotifyIntervalMs",va(4004,16E3)/2),iw:r(E,"defaultHeaderCacheSize",4),hw:r(E,"defaultHeaderCacheDataCount",3),tw:r(x,"enableAbandonTesting",!1),xv:r(E,"abandonRequestFrequency",4),Wz:r(E,"streamingStatusIntervalMs",2E3),kz:r(E,"prebufferTimeLimit",24E4),by:r(E,"minBufferLevelForTrackSwitch",2E3),fz:r(E,"penaltyFactorForLongConnectTime", | |
2),ux:r(E,"longConnectTimeThreshold",200),Av:r(E,"additionalBufferingLongConnectTime",2E3),Bv:r(E,"additionalBufferingPerFailure",8E3),ly:r(E,"networkFailureResetWaitMs",2E3),ky:r(E,"networkFailureAbandonMs",6E4),Tx:r(E,"maxThrottledNetworkFailures",3),bA:r(E,"throttledNetworkFailureThresholdMs",200),zv:r(x,"abortUnsentBlocks",!1),xx:r(E,"lowThroughputThreshold",400),hy:r(x,"mp4ParsingInNative",!0),Uz:r(x,"sourceBufferInOrderAppend",!1),Ih:r(x,"pruneRequestsFromNative",!0),Rv:r(E,"bufferThresholdToSwitchToSingleConnMs", | |
18E4),Qv:r(E,"bufferThresholdToSwitchToParallelConnMs",12E4)},aa=!0;lg=function(a){a&&(Ca=n({},a,{rh:!0}),d(w,v),ra.trace("Config applied for",nb(aa?Ca:a)),aa=!1)};lg(Ca)}function Hf(a,b){return U(a)&&"%"==a[a.length-1]?lb(wc(a)*b/100):a}function Fd(){return 3<=C(v.gc.Hh)}function Tg(a,b,c,d){n(this,{Oj:b,vc:a,ct:tk||"cadmium",rw:c,Pj:d})}function He(){for(var a="",b=ua(ld/1E3),c=6;c--;)a="0123456789ACDEFGHJKLMNPQRTUVWXYZ"[b%32]+a,b=ua(b/32);for(;30>a.length;)a+="0123456789ACDEFGHJKLMNPQRTUVWXYZ"[fc(0, | |
31)];return a}function If(){try{var a=v.Ie?"NetflixIdTest":"NetflixId",b=Qc()[a],c=Ta(b);return"dbl"==c||"dev"==c}catch(d){}}function ic(a){nd.R({url:v.Kg,Yb:v.Qj,Td:v.Qj,type:kh,withCredentials:!0,hc:function(a){a=mb.parse(a).data.esn;if(!Bi.test(a))throw new Wa("bad esn");var b=a.match(Bi)[2];if(!Ua(b))throw new Wa("bad deviceId");mg=a;return b}},a)}function Ld(a){a=new Vc(Bc(a));a.ba();return{Qq:a.bl(),Cp:a.bl()}}function Jf(a,b){var c=a.url.split("?"),d=c[0],f;f=a.offset;(f=f!==h?a.length!==h? | |
f+"-"+(a.offset+a.length-1):f+"-":void 0)&&(b.Ob=f,d="/"==d[d.length-1]?d+"range/":d+"/range/",d+=f);f=a.Ic?"random="+(1E17*ef()).toFixed(0):"";d=c[1]?d+("?"+c[1]+(f?"&"+f:"")):d+(f?"?"+f:"");!a.i||d&&0==d.toLowerCase().indexOf("https")||(c=v&&v.Jo)&&(d=c.replace("{URL}",d).replace("{EURL}",Wd(d)));b.url=d}function Md(){return!1!==Zb.onLine}function Oe(a,b,d,f){var g=f.Dh,k=f.headers;a.open(g?"POST":"GET",b,!d);switch(f.responseType){case Cc:a.responseType="arraybuffer";break;case Ci:Bb(a,"overrideMimeType", | |
h,"text/xml")}g&&(b={"Content-Type":U(g)?"text/plain":"application/x-octet-stream"},k=k?n(b,k):b);k&&c(k,function(b,c){a.setRequestHeader(b,c)});f.withCredentials&&(a.withCredentials=!0);a.msCaching!==h&&(a.msCaching="disabled");g?a.send(g):a.send()}function jc(a,b){switch(b.type){case Cc:return a.response||new ArrayBuffer(0);case Ci:return a.responseXML;default:return a.responseText}}function Kf(a){function b(a){b=p;f.onload=null;f.onabort=null;f.onerror=null;var c=f.status;!a&&200<=c&&299>=c?(g.content= | |
jc(f,g),g.c=!0):(g.g=a?N.cb:N.kd,g.Ia=g.V=c,g.c=!1)}var c=/^[a-z]*:\/\/.*/i,d=a.url,f=new Di,g={N:a,type:a.responseType};Oc(U(d)&&!c.test(d));f.onload=function(){b()};f.onerror=function(){b()};f.onabort=function(){b(!0)};Oe(f,d,!0,a);return g}function Pe(a){function b(c){a.fireEvent($d,c)}return{R:function(c,d){c.Ma=a;var f=nd.R(c,d);a.fireEvent(hf,f);f.aj(b);return f}}}function Lf(a){return{R:function(b,c){b.Ma=a;var d;a.i.value&&v.es&&(d={fs:new Se(a.xa),jr:v.Hk,Rk:0,i:a.i.value});d=nd.R(b,c,d); | |
a.fireEvent(hf,d);d.aj(function(b){a.fireEvent($d,b)});return d}}}function Se(a){function b(a,c,z){if(c.Ua[a.id])return{responseType:Cc,url:c.Ua[a.id],hc:zf,offset:c.j.v[z?z.index:0].offset,length:8,i:a,track:c.track,stream:c,Eb:z.type+"-"+z.index+"-ping",Ic:!0}}this.xa=a;this.ping=function(a){function c(a){pb(k);z(a)}function z(b){(b=b&&b.c)&&a.St();!b&&a.Sj()}var d=this.xa,f=a.stream,g=a.H,h;if(a.Rk>a.jr)a.Sj();else if(g&&!g.media){(f=b(a.i,f,g))&&(h=d.R(f,c));var k=$a(function(){z();h&&h.abort()}, | |
v.ds)}}}function Pb(a,b){for(var c=1;(b=arguments[c++])&&(a=a[b]););return a}function Da(a,b){var c;a?c=C(a[zb]):b!==h&&(c=b);return c}function pa(a,b){var c;a?c=a[zb]:b!==h&&(c=b);return c}function Cf(a){if(Ua(a)){var b=(new uk).parseFromString(a,"text/xml"),c=b.getElementsByTagName("parsererror");if(c&&c[0]){try{ra.error("parser error details",{errornode:(new vk).serializeToString(c[0]),xmlData:a.slice(0,300),fileSize:a.length})}catch(d){}throw new Wa("xml parser error");}return b}throw new Wa("bad xml text"); | |
}function Nd(a){var b,c,d={};d[ng]=a.localName;var f={};d[$b]=f;var g=[];d[lh]=g;var h=a.attributes;b=h.length;for(c=0;c<b;c++){var k=h[c];f[k.localName]=k.value}a=a.childNodes;b=a.length;f={};for(c=0;c<b;c++)switch(h=a[c],h.nodeType){case wk:h=Nd(h);k=h[ng];h[xk]=d;g.push(h);d[k]?f[k][Qb]=h:d[k]=h;f[k]=h;break;case yk:case zk:h=h.text||h.nodeValue,g.push(h),d[zb]||(d[zb]=h)}return d}function Gd(a,b){var c,d;try{c=Cf(a)}catch(f){ra.error("xml2xmlDoc exception",f)}Aa(function(){if(c&&c.documentElement)try{d= | |
Nd(c.nodeType==Ak?c.documentElement:c)}catch(a){ra.error("xmlDoc2js exception",a)}Aa(function(){d?b({c:!0,object:d}):b({c:!1,g:N.Tl})})})}function Od(a,b,d,f){Oc(qa(a)&&!kd.isArray(a));f=f||"";var g="",h=a.hasOwnProperty($b)&&a[$b];h&&c(h,function(a,b){g&&(g+=" ");g+=a+'="'+pe(b)+'"'});d=(b?b+":":"")+d;var h=f+"<"+d+(g?" "+g:""),k=a.hasOwnProperty(zb)&&a[zb].trim&&""!==a[zb].trim()&&a[zb];if(k)return h+">"+pe(k)+"</"+d+">";a=Ug(a,b,f+" ");return h+(a?">\n"+a+"\n"+f+"</"+d+">":"/>")}function Ug(a, | |
b,d){Oc(qa(a)&&!kd.isArray(a));d=d||"";var f="";c(a,function(a,c){if("$"!=a[0]){var z;z=c;z=kd.isArray(z)?z:[z];for(var g=0;g<z.length;g++)if(c=z[g],f&&(f+="\n"),qa(c))f+=Od(c,b,a,d);else{var h=(b?b+":":"")+a;f+=d+"<"+h+">"+pe(c)+"</"+h+">"}}});return f}function pe(a){return U(a)?mi(a):b(a)?""+a:""}function Te(a,b,d,g){function k(a,b){v("netflixid",h,h,a,function(a){if(a.c){var c=Pb(a.Bc,"netflixiddata","netflixidpair");a=pa(c.netflixid);var c=pa(c.securenetflixid),d=/^[^=]*=([^;]*)/;b({c:!0,ia:a.match(d)[1], | |
$a:c.match(d)[1],yh:a,Oh:c})}else b(a)})}function l(a,b,c){v("mdxpair",{targetuuid:a.$z,controllerrequest:{cticket:a.ap,pairdata:{nonce:a.Fr,controlleruuid:a.cw},pairdatahmac:a.ez}},h,b,function(a){if(a.c){a=a.Ts.mdxpairgrant;var b=a.controllererror,d=a.targetsharedsecret,z=a.grantdata,f,g;z&&(g={nonce:Da(z.nonce),controlleruuid:pa(z.controlleruuid),controlleruserid:pa(z.controlleruserid),controllersharedsecret:pa(z.controllersharedsecret),targetuuid:pa(z.targetuuid),targetuserid:pa(z.targetuserid)}, | |
f=pa(a.grantdatahmac));d&&(g=g||{},g.targetsharedsecret=pa(d.sharedsecret));c({c:!0,Zv:b&&{$v:Da(b.controllererrorcode)},Uw:g,Vw:f})}else c(a)})}function E(c,d,r,h,k,l,E){function ka(){var b=0;Ga={softwareversion:a.Ct,sdkversion:g.ct,certificationversion:a.Ko,preferredlanguages:{appselectedlanguages:{language:a.Zk.map(function(a){return{index:b++,bcp47:a}})}},clientservertimes:{servertime:x(),clienttime:k}};a.Cl&&(Ga.uiversion=a.Cl);n()}function n(){var a='<?xml version="1.0" encoding="utf-8"?>\n<nccp:request xmlns:nccp="http://www.netflix.com/eds/nccp/'+ | |
K+'">\n'+Od(Ga,"nccp","header")+"\n"+Od(m,"nccp",d)+"\n</nccp:request>";E({c:!0,Kk:{Sd:l,hf:d,url:c+"/"+K+"/"+d,body:a,timeout:1E3*b.gf,El:l.X,zf:h&&h.mslServiceTokens,vz:!da[d],Qk:!!da[d],Nj:!0}})}r=r||{};var K=a.ck(d),m,Ga;f(r)?r(l,function(a){a.c?(m=a.wz,ka()):E(a)}):(m=r,ka())}function m(c,f,g,k,l){function ka(a){n.trace("Sending NCCP request",{Method:c});d.send(a,function(a){if(a.c){n.trace("Received NCCP response",{Method:c});var b=a.body;ea={mslServiceTokens:a.zf};Ka(b)}else x(a)})}function Ka(a){Gd(a, | |
function(a){var d;if(a.c&&"response"==(d=a.object)[ng]){a=d;var z,f;try{var g=a.responseheader.clientservertimes;z=Da(g.clienttime);f=Da(g.servertime)}catch(r){n.error("Exception while checking clienttime in NCCP response",r)}if(K==z||K+1==z){b.Th=f-Nb();var k;n.trace("Processing NCCP response",{Method:c});try{var l=a.result,ka=l.status,E=a.parameters;b.vf=Da(E.retrycontrol);b.gf=Da(E.mintimeout);b.qh=Da(E.loginterval);b.uh=Da(E.maxlogsize);b.df=pa(E.loglevel);var Ka=pa(E.playbackparameters.sendheartbeats); | |
b.Sh=/^true$/i.test(Ka);b.Jd=Da(E.playbackparameters.heartbeatinterval);(b.zh||p)();if("true"!=ka.success[zb]){var m=ka.error||{},Ga=Da(m.code),Ja=Da(m.reasoncode,0),F=Da(m.actionid),hb=pa(m.description),ja=m.usertext,V=ja?pa(ja.text):h,da=ja?pa(ja.bcp47):h;n.warn("NCCP responded with error",{Method:c,ActionId:F,Code:Ga,Description:hb});var v=N.Km;8==F&&(v=N.Hi);k={Lk:m,Sc:F,g:v,V:Ga,Bd:Ga,Jg:Ja,D:hb,Gp:V,Cw:da}}else k={c:!0,Ts:l,Bc:l[c],Na:ea}}catch(H){n.error("Exception while processing NCCP response", | |
H),k={g:N.Uf,D:L(H)}}x(k)}else{f=a.result.status;var Ha,cb;"true"!=f.success[zb]&&(Ha=f.error||{},cb=Da(Ha.code),Ha=pa(Ha.description));x({g:z?N.Cm:N.Dm,V:cb,D:Ha})}}else n.error("Unable to parse NCCP response as xml",{Method:c}),x({g:N.Jm})})}function x(a){n.trace("Executed NCCP method",{Method:c,Success:!!a.c},a.c?h:fb(a));l=l||p;a.method=c;a.rc=Ga;l(a)}var n=k.log,K=Nb(),Ga=nb(a.rc),ea;n.trace("Executing NCCP method",{Method:c});E(Ga,c,f,g,K,k,function(a){a.c?ka(a.Kk):x(a)})}function v(c,d,f,g, | |
r){function h(){m(c,d,f,g,function(d){var f=d.Sc,E;if(!d.c){var ka;if(xd(d.g))switch(f){case 7:ea[d.rc]=!0;if(d.Lk){var Ka=pa(d.Lk.nccpendpoint);E=function(a,b){k.info("ActionId redirect",{Method:c,From:d.rc,To:Ka});var z=nb(Ka);ea[z]?b({g:N.Ii,D:"Loop detected: "+d.rc+", "+z}):(lg({nccpControllerUrl:z}),b(ta))}}break;case 2:ka=!0}else ke(d.g)?a.Us&&(ka=!0):Hc(d.g)&&2==d.Tc&&(ka=!0);if(!E)if(ka)if(ka=b.vf,l<ka){l++;var x=F(l);k.warn("Method failed, retrying",{Method:c,Attempt:l,WaitTime:x,RetryControl:ka}, | |
fb(d));E=function(a,b){$a(function(){b(ta)},x)}}else k.error("Method failed, retry limit exceeded, giving up",{Method:c,Attempt:l,RetryControl:ka},fb(d));else k.error("Method failed, not retrying",{Method:c},fb(d))}if(E){var n={Method:c,ActionId:""+f,MslCode:""+d.Tc};k.info("Handling failed method",n);E(g,function(a){a.c?(k.info("Handle success, retrying method",n),h()):(k.error("Handle error",n,fb(a)),r(a))})}else r(d)})}var k=g.log,l=0;r=r||p;h()}function x(){return Na(Nb())}function Na(a){return a+ | |
b.Th}function V(b,c,d){var f={},g={movieid:b.movieId,sessionstart:b.sessionStartEpoch};c?(g.heartbeattype=d,f={heartbeatdata:g}):(g.sessionend=b.sessionEpoch,f={},b.isLicensed&&!a.jo||n(f,{appid:b.appId,sessionid:b.sessionId,trackid:b.trackingId,xid:b.xid},{kf:!0}),f.sessiondata=g,b.securestop&&(f.securestop=b.securestop));(d=b.playback)?(c=d.playTimes,g.firstpts={pts:Qa(d.startPosition),timestamp:d.startEpoch},g.lastpts={pts:Qa(b.position),timestamp:b.sessionEpoch},b=g.playbacktime={total:Qa(c.total)}, | |
q(b,"videostreamplaytimes",c.video),q(b,"audiostreamplaytimes",c.audio),q(b,"timedtextstreamplaytimes",c.timedtext)):b.errorDisplayCode?g.error={}:(g.lastpts=g.firstpts={pts:Qa(b.position),timestamp:b.sessionEpoch},g.playbacktime={total:"0"});return f}function rb(c,f,g,h){function k(c){d.Do(c,function(c){if(c.c){var d=1E3*b.gf;l({c:!0,vq:{responseType:kh,url:Ka+"/"+a.ck("playdata")+"/playdata",Dh:c.body,withCredentials:!0,Yb:d,Td:d,Eb:"nccp-playdata"}})}else l(c)})}function l(a){h&&(a.method="playdata", | |
h(a))}var ka=Nb(),Ka=nb(a.rc);E(Ka,"playdata",c,g.playbackTokens,ka,f,function(a){a.c?k(a.Kk):l(a)})}function q(a,b,c){c&&c.length&&(a[b]={streamplaytime:c.map(H)})}function H(a){return{downloadableid:a.downloadableId,playtime:Qa(a.duration)}}function X(a,b){var d=[];c(b,function(a,b){var c=U(b)?b:mb.stringify(b);d.push({name:a,value:c})});if(d.length){var z={};z[a]=d;return z}}function nb(a){return"/"==a[a.length-1]?a.substr(0,a.length-1):a}function F(a){a=1E3*ih(2,va(a-1,b.vf));return fc(1E3,a)} | |
var K=0,da=Fb(["license"]),ea={};n(this,{ping:function(a,b){v("ping",h,h,a,b)},nw:function(a,b){var c=n({},a);c.X=h;k(c,b)},ia:k,sz:function(a,b,c,d){k(n({ia:b,$a:c},a),d)},rz:function(a,b,c,d){k(n({Lj:b,bs:c},a),d)},ud:function(a,b,c){var d={movieid:a.sa,appid:a.gg,sessionid:a.Vh},z=X("authparam",a.qe);z&&(d.authparams=z);d.contentprofiles={videoprofiles:{videoprofile:a.ni},audioprofiles:{audioprofile:a.jg},timedtextprofiles:{timedtextprofile:a.Rb}};v("authorization",d,a.Na,b,function(a){if(a.c){var b= | |
a.Bc;c({c:!0,po:b.authorizationdata||b,Na:a.Na})}else c(a)})},ph:function(a,b,c){var d=b.log,z;z=a.Lo;var f=a.Cs,g;switch(a.sc){case "playready":g="soapresponse";z={drmtype:"PlayReady",pssh:f,soaprequest:z};break;case "widevine":g="widevineceflicense";z={drmtype:"WidevineCEF",pssh:f,widevinecefchallenge:z};break;case "fps":g="fpslicense";z={drmtype:"FPS",pssh:f,fpschallenge:z};break;default:c({g:N.Gm});return}var f={playbacktype:a.js},r=X("sessionparam",a.fd);r&&(f.sessionparams=r);n(f,{downloadableid:a.J, | |
appid:a.gg,sessionid:a.Vh,trackid:a.Ea,xid:a.qa,drmdata:z});v("license",f,a.Na,b,function(a){if(a.c){var b=pa(a.Bc.licensedata[g]);Ua(b)?c({c:!0,Uq:b,Na:a.Na}):(d.error("no license response"),c({g:N.Hm}))}else c(a)})},pf:function(a,b,c){var d=V(a,!1);v("playdata",d,a.playbackTokens,b,c)},vg:function(a,b,c){var d=V(a,!1);rb(d,b,a,c)},fh:function(a,b,c,d){b=V(a,!0,b);v("heartbeat",b,a.playbackTokens,c,d)},cr:function(a,b,c){K++;for(var d=",esn="+g.vc+",snum="+K+",lnum=",z,f=0;f<a.length;f++){var r= | |
a[f],r=Na(r.Po)+" "+r.Wj()+d+(f+1);z=z?z+("\n"+r):r}a=z?P(z):"";v("logblob",{sequencenumber:K,logdata:a},h,b,c)},Vx:l,Wx:function(a,b,c){var d={Ik:a.ap,pr:a.hz,or:a.Fr,nr:a.aw,qr:Bc(a.uz)};n(d,b);k(d,function(d){d.c?l(a,b,function(a){a.c?(a.ia=d.ia,a.$a=d.$a,a.yh=d.yh,a.Oh=d.Oh,c(a)):c(d)}):c(d)})},Rg:function(a,b){v("fpsappdata",h,h,a,function(a){if(a.c){var c=a.Bc;a=pa(c.appcert);c=Da(c.expiration);b({c:!0,we:a,Hp:c})}else b(a)})},Fd:x,Yo:Na})}function Nf(a,b,c){var d;return d={X:a,Uc:!0,Mh:!1, | |
$e:ia(),load:function(a){(a||p)(ta)},save:function(){d.Uc=!0},remove:function(a){d.Uc=!1;(a||p)(ta)},ne:v.gc.Zk,Xc:function(){var a=Qc();return{ia:a[b],$a:a[c]}},ql:function(a,d){(new RegExp("^"+b+"=.*")).test(a);(new RegExp("^"+c+"=.*")).test(d);vb.cookie=a;vb.cookie=d;Qc()[b]!=a.match(/[^=]*=([^;]*)/)[1]||"s"==ff.href[5]&&(Qc(),d.match(/[^=]*=([^;]*)/))},No:function(){var a="=;Expires=Thu, 01 Jan 1970 00:00:00 GMT";vb.cookie=b+a;vb.cookie=c+a;a+=";Domain=.netflix.com;Path=/";vb.cookie=b+a;vb.cookie= | |
c+a+";Secure";Qc()[b]||Qc()},zk:!0}}function Ue(a){if(a=og[a])return jf=a;throw new Wa("invalid accountKey");}function Of(a,b){var c=Ei[a];c||(Ei[a]=c=Mb(function(b){var c=og[a];c?b({c:!0,nc:c}):(c=new qe(a),og[a]=c,c.load(function(a){a.c?b({c:!0,nc:c}):b(a)}))}));c(b)}function qe(a){this.X=a}function Xc(a){var b={},d=ia(),f={};a.forEach(function(a){var b=a.url;f[b]||(f[b]=[]);f[b].push(a)});var g=[];c(f,function(a,b){g.push(Qf(b,d))});b.urls=mb.stringify(g);return b}function Qf(a,b){var d=a[0],f= | |
{url:d.url,bitrate:d.f,cdnid:d.i&&d.i.id,dltype:d.mp,id:d.J},g={};a.forEach(function(a){var b=a.c||a.c===h||a.g===N.cb||a.g===N.ld?"success":"fail";g[b]||(g[b]=[]);g[b].push(a)});c(g,function(a,c){"fail"===a?f.failures=Tf(c):"success"===a&&(f.downloads=Pf(c,b))});return f}function Pf(a,b){var d={};a.forEach(function(a){var b=a.Qo;d[b]||(d[b]=[]);d[b].push(a)});var f=[];c(d,function(a,c){var d=[];c.forEach(function(a){d.push(a);(a=a.g===N.cb||a.g===N.ld?!0:void 0)&&(f.push(Rf(d,b)),d=[])});0<d.length&& | |
f.push(Rf(d,b))});return f}function Rf(a,b){var c=a[0],d=a[a.length-1],f=c.B,g=Sf(a),c={time:f.requestTime,tresp:(f.O||b)-(f.requestTime||b),first:g,ranges:We(a,g),dur:(d.B.L||b)-(c.B.O||b),trace:Qd(a,b),status:d.c?"complete":d.c===h?"open":d.g===N.cb?"abort":d.g===N.ld?"stall":"other"};v.Be.length&&(c.servertcp=Pd(a));return c}function Pd(a){var b=v.Be;return a.reduce(function(a,c){var d=[];if(c.yl){var z={};c.yl.split(";").forEach(function(a){a=a.split("=");2==a.length&&(z[a[0]]=a[1])});b.forEach(function(a){d.push(z[a])})}a.push(d); | |
return a},[])}function Sf(a){var b=0;a.forEach(function(a){a.Ob&&(b=va(b,a.Ob[0]))});return b}function We(a,b){var c=[];a.forEach(function(a){a.Ob?c.push([a.Ob[0]-b,a.Ob[1]-b]):c.push([0,-1])});return c}function Qd(a,b){var c=[],d;a.forEach(function(a){a=a.B;d&&(c.push([a.requestTime-d.L,-2]),c.push([(a.O||b)-a.requestTime,-3]));c.push([(a.L||b)-(a.O||b),a.Y||0]);d=a});return c}function Tf(a){var b=[];a.forEach(function(a){var c=a.B;b.push({time:c.requestTime,tresp:c.O-c.requestTime,dur:c.L-c.O,range:a.Ob|| | |
[0,-1],reason:a.Ia||a.g===N.kd?"http":a.g===N.Rf?"timeout":"network",httpcode:a.Ia,nwerr:we(a.g)})});return b}function Ve(a){var b=a.N,c=b.stream,d=b.track,f=b.url,g=Vf(d,f),k=h;switch(g){case sb:case Za:k=b.stream.J;break;case mh:case Fi:k=d.J}c={f:c&&c.f,mp:g,J:k,B:a.B,i:b.i,url:f};b.offset!==h&&b.length!=h&&(c.Ob=[b.offset,b.offset+b.length-1]);return a.np=c}function Uf(a){var b=a.np;b&&(b.V=a.V,b.Ia=a.Ia,b.g=a.g,b.c=a.c,b.yl=a.headers&&a.headers["X-TCP-Info"],b.Qo=Xe(a))}function Vf(a,b){if(a)return a.type; | |
if(0<=b.indexOf("netflix.com")){if(0<=b.indexOf("nccp"))return"nccp";if(0<=b.indexOf("api"))return"api"}return"other"}function Xe(a){if(a.headers&&(a=a.headers["X-Session-Info"]))return a=(a?a.split(";"):[]).filter(function(a){return 0==a.indexOf("port=")}).map(function(a){return a.split("=")[1]})[0],C(a)}function Zf(a,b){function c(a,z,f){for(var g,r,h,k,l,E=[];f;)h=a==Za?f.videoprofile[zb]:f.audioprofile[zb],g=Da(f.bitrate),r=d(f.downloadurls.downloadurl,!0),g=new ue(b,z,a,pa(f.downloadableid), | |
g,Da(f.size),r,h),f.resolution&&(r=Da(f.resolution.width),h=Da(f.resolution.height),f.pixelaspect&&(k=Da(f.pixelaspect.width),l=Da(f.pixelaspect.height),k>l?r=r*k/l:h=h*l/k),0<r&&0<h&&(g.width=ua(r),g.height=ua(h))),a==Za&&(g.Bk=!!f.superhd,g.nh=g.Bk||!!f.hd,r=Pb(f,"hdcpversions","version"),g.fl=!(!r||"none"==pa(r))),g.fl&&"never"==v.jj||E.push(g),f=f[Qb];E.sort(function(a,b){return a.f-b.f});n(E,Bd);a=kc(a,v.Tt,v.Ut);if(kf&&kf.length)var ka=E.ce(a),E=kf.call(E,function(a){return 0<=ka.indexOf(a.f)}); | |
E.sort(function(a,b){return a.f-b.f});n(E,Bd);return E}function d(a,b){for(var c={},z;a;)c[a.cdnid[zb]]=a.url[zb],b&&(z=Da(a.expiration),0<z&&(Na=Na?va(Na,z):z)),a=a[Qb];return c}var f=new b.log.r("NccpParseAuth"),g,k,l,m,x,Na,V=[],rb,q;for(l=Pb(a,"locations","location");l;){if(rb=pa(l.locationid))q={id:rb,ma:Da(l.rank),Dk:Da(l.level),weight:Da(l.weight)},V.push(q);l=l[Qb]}var H=v.rj,X=v.qj,nb=[],F=[];for(l=Pb(a,"cdns","cdn");l;)rb=Da(l.cdnid),V.some(function(a){if(a.id===pa(l.locationid,""))return q= | |
a,!0}),q||(q={id:rb,ma:Da(l.rank),Dk:1,weight:Da(l.weight)}),(!H.length||0<=H.indexOf(rb))&&0>X.indexOf(rb)&&(l.lowgrade?F:nb).push({id:rb,location:q,type:pa(l.type,"unknown"),ma:Da(l.rank),name:l.name[zb],Gq:!!l.exclusive}),l=l[Qb];nb.sort(function(a,b){return a.ma-b.ma});V.forEach(function(a){var b=nb.filter(function(b){return b.location.id===a.id});a.F=b});V.sort(function(a,b){return a.ma-b.ma});f.trace("Parsed cdns",{Count:nb.length,LowGradeCount:F.length});if(!nb.length)throw new Wa("no valid cdns"); | |
rb=[];for(l=Pb(a,"trickplay");l;){for(;l;)H=l.resolution,X=l.pixelaspect,H=new fi(b,pa(l.trickplayid),Da(H.height),Da(H.width),Da(X.height),Da(X.width),Da(l.size),d(l.downloadurls.downloadurl,!1)),rb.push(H),l=l[Qb];rb.sort(function(a,b){return a.size-b.size})}H=[null];X={none:null};l=Pb(a,"timedtexttracks","timedtexttrack");for(var K;l;){g=[];for(F=l.timedtextdownloadables.timedtextdownloadable;F;)g.push(F),F=F[Qb];g.sort(function(a,b){return Ye(a)-Ye(b)});F=g[0];K=pa(F.timedtextprofile);"nflx-cmisc"== | |
K&&(F=yd(g));g=pa(l.timedtexttrackid);x=pa(l.timedtexttype);K=pa(F.timedtextprofile);m={};if("nflx-cmisc"==K){var da=Pb(F,"imagebasedtext");m.offset=pa(da.masterindexoffset)|0;m.length=pa(da.masterindexsize)|0;da=Pb(da,"resolution");m.Ss={width:pa(da.width),height:pa(da.height)}}m=new Mf(b,g,pa(F.downloadableid),d(F.downloadurls.downloadurl,!1),pa(l.language.bcp47),pa(l.language.displayname.text),lf[x]||od,x,K,m);H.push(m);X[g]=m;f.trace("Parsed timed text track",m);l=l[Qb]}H.sort(Rd);F=[];K={};for(da= | |
Pb(a,"audiogroups","audiogroup");da;){x=da.audiotype.audiotypeid[zb];if(0==v.Df.length||0<=v.Df.indexOf(x))for(l=da.audiotracks.audiotrack;l;){g=l.audiotrackid[zb];m={type:sb,U:g,Hf:lf[x]||od,xh:x,Ra:pa(l.language.bcp47),displayName:pa(l.language.displayname.text),isNative:!!l.isnative,qg:pa(l.channels)};m.P=c("audio",m,l.audiodownloadables.audiodownloadable);var ea=H,Ca=[];if(l.disallowedtimedtexttracks){k={};for(var ja=l.disallowedtimedtexttracks.timedtexttrackid;ja;)k[ja[zb]]=!0,Ca.push(ja[zb]), | |
ja=ja[Qb];ea=ea.filter(function(a){return!(a?k[a.U]:k.none)})}m.pw=Ca;m.pa=ea;m.Ba={Bcp47:m.Ra,TrackId:m.U};f.trace("Parsed audio track",m,{StreamCount:m.P.length,AllowedTimedTextTracks:m.pa.length});m.P.length?(K[g]=m,F.push(m)):f.warn("Audio track has no streams",m);l=l[Qb]}da=da[Qb]}if(!F.length)throw new Wa("no valid audio tracks");F.sort(Rd);g=[];for(l=Pb(a,"videotracks","videotrack");l;)m={type:Za},m.P=c("video",m,l.videodownloadables.videodownloadable),f.trace("Parsed video track",{StreamCount:m.P.length}), | |
m.P.length?g.push(m):f.warn("Video track has no streams"),l=l[Qb];if(!g.length)throw new Wa("no valid video tracks");x=[];for(l=Pb(a,"preferredtrackcombinations","preferredtrackcombination")||Pb(a,"defaulttrackcombinations","defaulttrackcombination");l;)m=pa(l.audiotrackid),ea=K[m],da=pa(l.timedtexttrackid),Ca=X[da],ea&&0<=ea.pa.indexOf(Ca)?x.push({Q:ea,T:Ca,Gh:Da(l.preferenceorder)}):f.warn("Invalid default track combination",{AudioTrackId:m,TimedTextTrackId:da}),l=l[Qb];x.sort(function(a,b){return a.Gh- | |
b.Gh});m=x[0]||{};X=g[0];K=m.Q||F[0];m=m.T||K.pa[0];var Ja;(l=a.bookmark)&&(Ja={time:1E3*Da(l)});f.trace("Parsed bookmark",{Value:Ja?Ja.time:"None"});var p;(l=a.runtime)&&(p=1E3*Da(l));p||(p=K.P[0],da=X.P[0],p=pd(Ba(8192*p.size/(1E3*p.f),8192*da.size/(1E3*da.f))),f.trace("Estimating runtime",{EstimatedRuntime:Va(p)}));var u;(l=a.clientipaddr)&&(u=pa(l));f.trace("Parsed client IP address",{IP:u});b.F=nb;b.sj=V;b.ya=F;b.Nf=g;b.fb===h&&(b.fb=Ja?Ja.time:0);b.pa=H;b.Sb=rb;b.Je=p;b.Uh=u;b.Yk=x;b.Tb.set(X); | |
b.Q.set(K);b.T.set(m);V=1E3*(Na-Rb.Fd());1E4<V?b.td=ia()+V:f.error("Invalid url expiration, ignoring")}function Ye(a){var b=pa(a.timedtextprofile),c=v.Rb.indexOf(b);return 0<v.Gf&&"dfxp-ls-sdh"===b&&Da(a.size)>v.Gf?v.Rb.length+1:0<=c?c:v.Rb.length}function Rd(a,b){if(!a)return-1;if(!b)return 1;var c=a.displayName,d=b.displayName;return c?d?c.localeCompare?c.localeCompare(d):c.charCodeAt(0)-d.charCodeAt(0):1:-1}function fd(){var a=Ae&&Ae.height;if(b(a))return 1080<=a?1080:720;ra.error("screen height not available", | |
lc)}function yd(a){var b;a=a.filter(function(a){return"nflx-cmisc"===pa(a.timedtextprofile)});var c=v.tk?v.tk:fd();c&&(b=a.filter(function(a){return c===Da(a.imagebasedtext.resolution.height)})[0]);b||(b=a[0]);return b}function gd(a,b){function c(a,d){var z=[];a.forEach(function(a){var c;c=new ue(b,d,d.type,a.downloadableId,a.bitrate,a.size,a.urls,a.contentProfile);a.width&&(c.width=a.width);a.height&&(c.height=a.height);d.Gg&&(c.Gg=d.Gg);if(d.type===Za||d.type===sb)X=X?va(X,a.validFor):a.validFor; | |
d.Jj&&(c.Jj=d.Jj.map(function(a){var b={};b.Zz=a.systemType;a.bytes&&(b.mg=a.bytes);a.checksum&&(b.Vv=a.checksum);a.keyId&&(b.oh=a.keyId);return b}));a.contentProfile&&(c.wj=a.contentProfile);c.Qs=!(!a.hdcpVersions||"none"==a.hdcpVersions[0]);c.Qs&&"never"==v.jj||z.push(c)});z.sort(function(a,b){return a.f-b.f});n(z,Bd);z.sort(function(a,b){return a.f-b.f});n(z,Bd);return z}function d(a,b){if(!a)return-1;if(!b)return 1;var c=a.displayName,z=b.displayName;return c?z?c.localeCompare?c.localeCompare(z): | |
c.charCodeAt(0)-z.charCodeAt(0):1:-1}var f=new b.log.r("BladeRunnerParseManifest"),g,k,l,m,x,Na,V,q,p,H,X;g=function(){var b=a.locations.map(function(a){return{id:a.id,ma:a.rank,Dk:a.level,weight:a.weight}});f.trace("Transformed locations",{Count:b.length});return b}();k=function(b){function c(a,b){var d;b.some(function(b){if(b.id===a)return d=b,!0});return d}var d=v.rj,g=v.qj,h=[];a.cdns.forEach(function(a){var z=a.id,f=c(a.locationId,b);(!d.length||0<=d.indexOf(z))&&0>g.indexOf(z)&&(a.location= | |
f,h.push(a))});h.sort(function(a,b){return a.ma-b.ma});b.forEach(function(a){var b=h.filter(function(b){return b.location.id===a.id});a.F=b});b.sort(function(a,b){return a.ma-b.ma});f.trace("Transformed cdns",{Count:h.length});if(!h.length)throw new Wa("no valid cdns");return h}(g);l=function(){var c,d=[];a.trickPlayTracks&&a.trickPlayTracks.length?(c=a.trickPlayTracks[0].downloadables)?d=c.map(function(a){return new fi(b,a.id,a.resHeight,a.resWidth,a.pixHeight,a.pixWidth,a.size,a.urls)}):f.warn("Trickplay track has no downloadables"): | |
f.warn("There are no trickplay tracks");d.sort(function(a,b){return a.size-b.size});f.trace("Transformed trick play tracks",{Count:d.length});return d}();m=function(){function c(a){function b(a){var c=a.contentProfile,d=v.Rb.indexOf(c);a=a.size;return 0<v.Gf&&"dfxp-ls-sdh"===c&&a>v.Gf?v.Rb.length+1:0<=d?d:v.Rb.length}a=a.downloadables;var d=[];if(!a||0===a.length)return d;a.forEach(function(a){d.push({id:a.id,J:a.downloadableId,profile:a.contentProfile,size:a.size|0,$k:b(a),offset:a.offset|0,hs:a.pixWidth, | |
gs:a.pixHeight,iu:a.urls,type:a.type})});d.sort(function(a,b){return a.$k-b.$k});return d}var g=[];a.textTracks.forEach(function(a){var d=[],d=c(a);if(0<d.length){var d=d[0],z={};"nflx-cmisc"===d.profile&&(z.offset=d.offset,z.length=d.size,z.Ss={width:d.hs,height:d.gs});a=new Mf(b,a.id,d.J,d.iu,a.bcp47,a.language,lf[a.trackType.toLowerCase()]||od,a.trackType,d.profile,z)}else a=new Mf(b,a.id,h,{},a.bcp47,a.language,od,a.trackType,h,{});g.push(a);f.trace("Transformed timed text track",a)});g.sort(d); | |
f.trace("Transformed timed text tracks",{Count:g.length});return g}();x=function(b,g){function k(a,b,c){return b.filter(function(b){return 0<b.tracks.filter(function(b){return"AUDIO"===b.type&&b.id===a}).length}).map(function(a){var b;b=a.tracks.filter(function(a){return"TEXT"===a.type})[0];a=c.filter(function(a){return a.U===b.id});return 0<a.length?a[0]:h}).filter(Boolean)}var l=[];a.audioTracks.forEach(function(a){var d=a.trackType;if(0===v.Df.length||0<=v.Df.indexOf(d))d={type:sb,U:a.id,Hf:lf[d.toLowerCase()]|| | |
od,xh:d,Ra:a.bcp47,displayName:a.language,qg:a.channels,pa:k(a.id,b,g),tx:{Bcp47:a.language,TrackId:a.id}},d.P=c(a.downloadables,d),f.trace("Transformed audio track",d,{StreamCount:d.P.length,AllowedTimedTextTracks:d.pa.length}),d.P.length?l.push(d):f.warn("Audio track has no streams",d)});if(!l.length)throw new Wa("no valid audio tracks");l.sort(d);f.trace("Transformed audio tracks",{Count:l.length});return l}(a.media,m);Na=function(){var b=[];a.videoTracks.forEach(function(a){var d=a.trackType, | |
d={type:Za,U:a.id,Hf:lf[d.toLowerCase()]||od,xh:d};d.P=c(a.downloadables,d);f.trace("Transformed video track",{StreamCount:d.P.length});d.P.length?b.push(d):f.warn("Video track has no streams")});if(!b.length)throw new Wa("No valid video tracks");f.trace("Transformed video tracks",{Count:b.length});return b}();V=function(b,c){function d(a,b){a[b.type]=b.id;return a}function f(a,b){var c;for(c=0;c<a.length;c++){var d=a[c];if(d.U==b)return d}return null}var g=[],h=a.defaultMedia,r,k;for(k=0;k<a.media.length;k++){var l= | |
a.media[k];if(l.mediaId==h){r=l.tracks.reduce(d,{});break}}g.push({Q:f(b,r.AUDIO),T:f(c,r.TEXT),Gh:0});return g}(x,m);H=V[0]||{};p=Na[0];q=H.Q||x[0];H=H.T||q.pa[0];b.jz=a.playbackContextId;b.Xx=a.media;b.Tv=a.cert;b.Gg=a.drmContextId;b.nz=a.psshb64;b.F=k;b.sj=g;b.ya=x;b.Nf=Na;b.fb=a.bookmark.position;b.pa=m;b.Sb=l;b.Je=a.runtime;b.Uh=a.clientIpAddress;b.Dx=function(){function b(a){var c=[],d;for(d in a)a.hasOwnProperty(d)&&c.push({cdn_id:d,url:a[d]});return c}var c={};c.movieId=a.movieId;c.duration= | |
a.runtime;c.locations=function(){return a.locations.map(function(a){return{key:a.id,rank:a.rank,level:a.level,weight:a.weight}})}();c.servers=function(){return a.cdns.map(function(a){return{name:a.name,type:a.type,id:a.id,key:a.locationId,rank:a.rank,lowgrade:a.isLowgrade}})}();c.audioTrackList=function(){return a.audioTracks.map(function(a){return{id:a.id,channels:a.channels,language:a.bcp47,languageDescription:a.language,trackType:a.trackType}})}();c.audio_tracks=function(){function c(a,d){return a.map(function(a){return{type:0, | |
trackType:d.trackType,content_profile:a.contentProfile,downloadable_id:a.downloadableId,bitrate:a.bitrate,channels:d.channels,language:d.bcp47,urls:b(a.urls)}})}return a.audioTracks.map(function(a){return{type:0,id:a.id,channels:a.channels,language:a.bcp47,languageDescription:a.language,trackType:a.trackType,streams:c(a.downloadables,a)}})}();c.video_tracks=function(){function c(a,d){return a.map(function(a){return{type:1,trackType:d,content_profile:a.contentProfile,downloadable_id:a.downloadableId, | |
bitrate:a.bitrate,urls:b(a.urls)}})}return a.videoTracks.map(function(a){return{type:1,streams:c(a.downloadables,a.trackType)}})}();c.tracks=c.video_tracks.concat(c.audio_tracks);return c}();b.Yk=V;b.Tb.set(p);b.Q.set(q);b.T.set(H);g=1E3*X;1E4<g?b.Ex=ia()+g:f.error("Invalid url expiration, ignoring")}function $f(a){function c(){var d={accountKey:h,playbackTokens:l,isLicensed:!!n,appId:X,sessionId:nb,trackingId:a.Ea,xid:a.qa,movieId:a.sa,sessionStartEpoch:Rb.Yo(a.Fk),sessionEpoch:Rb.Fd()};b(a.q.value)&& | |
(d.position=a.q.value);x&&(d.playback={startPosition:m,startEpoch:V,playTimes:a.Nb.mq()});H&&v.$d&&(d.keySessionId=H);var f=a.la;f&&Ua(f.Nc)&&(d.errorDisplayCode=f.Nc);return d}function d(){d=p;Ze(a,k,g);a.fireEvent(Gi)}function f(){f=p;a.fireEvent(pg)}var g=new a.log.r("NccpPlayback"),h=a.nc.X,k={kh:a.xa,log:new a.log.r("Nccp"),X:h},l,n,x,m,V,q,Zd,H,X=v.Br||Be,nb=v.Cr||Be;a.addEventListener(Wc,function(){x=!0;m=a.q.value;V=Rb.Fd()});a.addEventListener(Hi,function(a){H=a.Ye});return{Sd:k,ud:function(b){function c(d){try{r(d, | |
a),b(ta),f()}catch(h){g.error(S,h),b({g:N.Uf})}}var d=ia(),h={gg:X,Vh:nb,fd:a.Vd.fd,qe:a.Vd.qe,sa:a.sa,Ea:a.Ea,ni:v.ni,jg:v.jg,Rb:v.Rb},r=a.ef?gd:Zf,S="Exception processing "+a.ef?"manifest":"authorization response";a.ef?Aa(c.bind(null,a.ef)):Rb.ud(h,k,function(a){q=ia()-d;a.c?(l=a.Na,c(a.po)):b(a)})},ph:function(b,c){var f=ia(),h=P(b.Bs),S=P(b.data),x=l,Ka=a.Vd.fd;if(v.fc){var m=b.Vq;Z(v.Ek)&&(m=v.Ek);x=oc(x);Ka=oc(Ka);m&&(Ka.limitedDuration=m);x.mslServiceTokens=l.mslServiceTokens.filter(function(a){return a.name.match("movie")})}Rb.ph({Na:x, | |
gg:X,Vh:nb,fd:Ka,qa:a.qa,J:a.$.J,Ea:a.Ea,js:"standard",sc:b.sc,Cs:h,Lo:S},k,function(a){Zd=ia()-f;if(a.c)try{l=a.Na,n=!0,c({c:!0,Tq:{data:Bc(a.Uq)}}),d()}catch(b){g.error("Exception processing license response",b),c({g:N.Uf})}else c(a)})},fh:function(a,b){Rb.fh(c(),a,k,function(a){a.c&&a.Na&&(l=a.Na);b&&b(a)})},pf:function(a,b){Rb.pf(a,k,function(a){a.c&&a.Na&&(l=a.Na);b&&b(a)})},vg:function(a,b){Rb.vg(a,k,b)},xj:c,Rg:function(a){Rb.Rg(k,a)},Qp:function(){return q},jq:function(){return Zd}}}function Ze(a, | |
b,c){Ze=p;if(Rb.ia&&v.hu){var f=a.nc;a=f.Xc().ia;a=Ta(a);var g=v.Dr;if("usr"==a||Ua(mg)&&ac.vc!=mg||Ua(g)&&ac.Oj!=g)c.info("Upgrading NetflixId",{bt:a,prefix:g,downloadedEsn:mg}),Rb.ia(b,function(a){a.c?(c.trace("Setting upgraded NetflixId"),f.ql(a.yh,a.Oh),d(ah(f.Xc().ia))):c.error("NetflixId upgrade failed",fb(a))})}}function Sd(a,b,c,d){d=d||{};v.Qe&&(d.groupname=v.Qe);var f=Nb();c={type:b,sev:c,devmod:nh};Ii&&(c.nettype=Ii);n(c,d);n(c,{jssid:Be,jsoffms:ia(),client_utc:f,lver:Bk||"2012.2-CAD"}); | |
a?n(c,{xid:a.qa,soffms:a.Ib(),mid:a.sa,lvpi:a.bd}):c.xid=Ji;this.data=c;this.type=b;this.Po=f}function ag(a){function c(d){var f=ff.href,g=I(a.Ib()),h=a.Ea,r="parallel"===v.ug?"multi":"single",k=I(a.fb||0),l=a.index,S=new ArrayBuffer(4),E=new bb(S),S=new Uint32Array(S);E[0]=161;E[1]=178;E[2]=195;E[3]=212;f={browserua:lc,browserhref:f,playdelay:g,trackid:h,connection_type:r,bookmark:k,pbnum:l,endianness:3569595041==S[0]?"LE":2712847316==S[0]?"BE":"undefined"};a.Xo&&(f.controllerESN=a.Xo);a.jd&&(f.tmode= | |
!0);b(a.vd)&&(f.bookmarkact=I(a.vd));b(a.vd)&&(f.bookmarkact=I(a.vd));(g=F.Qp())&&(f.nccpat=g);(g=F.jq())&&(f.nccplt=g);(g=q())&&(f.downloadables=g);ac&&Z(ac.Pj)&&(f.esnSource=ac.Pj);Uc&&n(f,Uc,{prefix:"pi_"});f.usejsase=v.K;if(a.state.value>=eb)try{var x=a.Fa();if(x){var m=Bf(x);L=ba(m);f.maxbitrate=L}}catch(ka){X.error("Exception computing max bitrate",ka)}try{var Ka=Ea();Ka&&(f.pdltime=Ka)}catch(V){}try{n(f,a.lb,{prefix:"sm_"}),n(f,a.dh(),{prefix:"vd_"})}catch(ea){}"undefined"!==typeof nrdp&&nrdp.device&& | |
(f.firmware_version=nrdp.device.firmwareVersion);H("startplay",d,bc|mf|Sb|qg|nf|rg|oh,f)}function d(){var b={waittime:I(a.Ib()),abortedevent:"startplay"},c=a.k;c&&c.value&&(b.vbitrate=c.value.f);try{var f=Ea();f&&(b.pdltime=f)}catch(g){}H("playbackaborted",!1,bc|Sb,b)}function f(){if(a.F){var b;(b=nb%v.Fg?B.filter(function(a){return a.Jg}):B)&&0<b.length&&(B=B.filter(function(a){return!a.B.L}),b=Xc(b),v.Be.length&&(b.tcpinfo=v.Be.join(",")),H("dlreport",!1,Sb,b))}}function g(b){var c=b.N,d=c.track; | |
if(d){var f=!b.c&&b.g!=N.cb,h=d.type,r=b.B;if(f||a.bd){r={dltype:h,url1:c.url,url2:b.url||"",cdnid:c.i.id,tresp:I(r.O-r.requestTime),brecv:ee(r.Y),trecv:I(r.L-r.O)};b.Ob&&(r.range=b.Ob);switch(h){case sb:r.adlid=c.stream.J;break;case Za:r.vdlid=c.stream.J;break;case mh:r.ttdlid=d.J}(c=we(b.g))&&(r.nwerr=c);b.Ia&&(r.httperr=b.Ia);H("dlreq",f,Sb,r)}}}function k(){try{var b=Yd.timing.navigationStart-(ld+(a.ad||ia())),c=Yd.getEntries("resource"),d=c.length-v.Fj;0<d&&(c=c.slice(d));var f=c.map(function(a){return{u:a.name, | |
s:lb(a.startTime+b),d:lb(a.duration)}}),g={dlinfos:mb.stringify(f)};H("dlprestart",!1,bc|Sb,g)}catch(h){}}function l(){if(a.state.value==eb){var b=Na();v.Nh&&(b.avtp=md.dc(),b.savtp=xa.dc());b.midplayseq=C++;var c=a.C.value;b.prstate=c==qd?"playing":c==of?"paused":c==Kc?"ended":"waiting";H("midplay",!1,bc|Sb|nf|qg,b)}}function m(a){a=oc(a);a.details&&(a.details=mb.stringify(a.details));H("subtitleerror",!0,bc|mf|rg,a)}function q(){if(a.Nf&&a.ya){var b=[];a.Nf.concat(a.ya).forEach(function(a){a.P.forEach(function(a){b.push({dlid:a.J, | |
type:a.type,bitrate:a.f})})});return mb.stringify(b)}}function x(){function b(a,c){var z=a.cdnId,g=f[z];g||(g={cdnid:z,dls:[]},f[z]=g,d.push(g));z={bitrate:a.bitrate,tm:I(a.duration)};z[c]=a.downloadableId;g.dls.push(z)}var c=a.Nb.Op(),d=[],f={};c.audio.forEach(function(a){b(a,"adlid")});c.video.forEach(function(a){b(a,"dlid")});return mb.stringify(d)}function Na(){var c=a.Nb,d={totaltime:Qa(c.ah()),cdndldist:x(),reposcount:t,intrplaycount:la};try{var f={numskip:0,numlowqual:0},g=a.ha,h;h=g.Me(); | |
b(h)&&(d.totfr=h,f.numren=h);h=g.xc();b(h)&&(d.totdfr=h,f.numrendrop=h);h=g.Cd();b(h)&&(d.totcfr=h,f.numrenerr=h);h=g.Ne();b(h)&&(d.totfdl=h);d.playqualvideo=mb.stringify(f);d.videofr=a.k.value.j.Sg.toFixed(3);d.abrdel=c.Vj();var r=c.Rp();r&&n(d,r);d.rbfrs=la;d.maxbitrate=L;var k=a.Aa(),l,S,E,m;for(m=0;m<k.length;m++){l=k[m];if(E=a.ff.Dc(l)){d.maxbitrate=S?S.f:0;d.bitratefilters=E.join("|");break}S=l}if(a&&a.rb&&a.nj&&a.ca){var ka=a.nj,Ka={ab:ua(ka.cj),actual60:a.ca.gk(),b20:ua(ka.ej),b50:ua(ka.fj), | |
b90:ua(ka.gj),std:ua(ka.Dt),ns:ka.Zt,ss:ka.wf,filt:ka.filter};d.expectedbw=mb.stringify(Ka)}a.zb&&(d.trickplay=a.zb.fk());null!==a.kc.re&&(d.avg_subt_delay=a.kc.re)}catch(V){X.error("Exception reading some of the endplay fields",V)}n(d,a.dh(),{prefix:"vd_"});return d}function V(a,b){a.browserua=lc;H("securestop",!a.success,bc|nf,a);b||(H=p)}function rb(){var b,c=[];v.rr&&(xc.addListener(ph,l),v.sr.forEach(function(a){c.push($a(l,a))}),v.Jk&&(b=qb(Zd,v.Jk)),a.addEventListener(Ab,function(){xc.removeListener(ph, | |
l);c.forEach(function(a){pb(a)});b&&yb(b)}))}function Zd(){rd.flush(!0)}function H(b,c,d,f,g){bg(f,a,c,d);b=new Sd(a,b,g||(c?"error":"info"),f);rd.al(b)}var X=new a.log.r("NccpLogging"),nb=a.qa,F=a.mb,K,da=a.paused.value,ea,Ca,ja,Ja,u,w,cb=[],t=0,la=0,C=0,aa=0,B=[],A,L,O,y,md=new ei({}),xa=new ei({Ce:0});(function(){function b(c){u="rebuffer";H("intrplay",!1,bc|Sb,{vdlid:a.k.value.J,cdnid:a.i.value.id,playingms:cb[qd]||0,pausedms:cb[of]||0,cause:c.Jc,intrplayseq:la++});ea=ia();Aa(l)}function l(){if(ea&& | |
a.C.value!=Tb){var b=ia()-ea;H("resumeplay",!1,bc|mf|Sb,{playdelay:I(b),reason:u,intrplayseq:la-1});"rebuffer"==u&&a.Nb.$n(I(b));Ca&&Ca!=a.Q.value&&H("audioswitch",!1,bc|Sb,{switchdelay:I(ia()-ja),newtrackinfo:a.Q.value.U,oldtrackinfo:Ca.U});u=ea=h}}function E(){a.Pc.value&&a.Ha.value&&(a.Pc.removeListener(E),a.Ha.removeListener(E),k())}a.addEventListener($d,g,1);v.Fg&&(a.addEventListener(hf,function(a){B.push(Ve(a))}),a.addEventListener($d,Uf),aa=qb(f,v.op));v.Nh&&a.addEventListener($d,function(a){var b= | |
a.B.O,c=a.B.L;(a=a.B.Y)&&0<a&&(md.bj({startTime:b,endTime:c,mg:a}),xa.bj({startTime:b,endTime:c,mg:a}))});a.paused.addListener(function(a){var b=a.newValue;a.oy&&b||b==da||(H("statechanged",!1,bc|Sb,{newstate:b?"Paused":"Playing",oldstate:da?"Paused":"Playing"}),da=b)});a.addEventListener(pf,b);a.addEventListener(Ck,b);a.C.addListener(function(a){a=a.oldValue;var b=ia();a==Tb?cb=[]:cb[a]=(cb[a]||0)+(b-w);w=b});a.addEventListener(ae,function(b){switch(b.Jc){case Ki:case Li:if(u&&ea){var c=ia()-ea, | |
c={waittime:I(c),abortedevent:"resumeplay",resumeplayreason:u},f=a.k;f&&f.value&&(c.vbitrate=f.value.f);H("playbackaborted",!1,bc|Sb,c)}else K||d();u="repos";H("repos",!1,bc|Sb,{moffold:Qa(b.Ah),reposseq:t++});ea=ia();Aa(l)}});a.C.addListener(l);a.Q.addListener(function(a){ja=ia();Ca=a.oldValue});a.addEventListener(Wc,function(){K=!0;c(!1);rb();v.wk&&(A=$a(function(){rd&&rd.flush(!1);A=h},v.wk))});a.addEventListener(Ab,function(){A&&pb(A);if(K){v.Fg&&(aa&&yb(aa),f());var b=!!a.la,g=Na();g.browserua= | |
lc;a.jd&&(g.tmode=!0);g.usejsase=v.K;a.zb&&"downloaded"===a.zb.fk()&&(g.trickplay_ms=a.ee.offset,g.trickplay_res=a.ee.gl);if(v.K&&a.bb&&a.bb.nd){var h=a.bb.nd[a.Cf.Sf],k=a.bb.nd[a.Cf.qm];h&&k&&(g.ASEvstreamingPts=h.Qt,g.ASEastreamingPts=k.Qt,g.ASEvbuflevelBytes=h.Bo,g.ASEabuflevelBytes=k.Bo,g.ASEvbuflevelMs=h.Co,g.ASEabuflevelMs=k.Co)}v.Nh&&(g.avtp=md.dc(),g.savtp=xa.dc());g.endreason=b?"error":a.C.value==Kc?"ended":"stopped";Uc&&n(g,Uc,{prefix:"pi_"});var h=a.la,l;if(k=b&&h)h=h.errorCode,k=h==R.me|| | |
h==R.ie;k&&(l="info");H("endplay",b,bc|mf|Sb|nf|qg|oh,g,l)}else a.la?c(!0):d();y||(H=p)});a.te&&a.te.addListener(function(a){H("bitraterestriction",!1,bc|Sb,a.newValue)});a.k.addListener(function(b){if(b.oldValue&&b.tj){var c=b.oldValue,d=b.newValue,f=b.tj;b=v.K?a.Ef:a.ca.ve();c={moff:Qa(f),vbitrate:d.f,vbitrateold:c.f,vdlid:d.J,vdlidold:c.J,lbw:b};(d=a.Ha.value)?(b=id(d.Ij),c.bw=ua(896E3/(b.Pd+896E3/b.Ef)*7.8125)):c.bw=b;H("chgstrm",!1,Sb,c)}});var x;a.Ya.addListener(function(a){if(a.newValue){var b= | |
a.newValue.stream;x!=b&&(x&&H("renderstrmswitch",!1,Sb,{moff:Qa(a.newValue.H.startTime),vbitrate:b.f,vdlidold:x.J,vdlid:b.J,vbitrateold:x.f}),x=b)}});a.i.addListener(function(b){if((b=b.newValue)&&Ja!=b){var c=Ja,d=a.Ha&&a.Ha.value&&a.Ha.value.Ij,f=b.id,g={selcdnid:f};if(d){var h=id(d),d=h.Pd,h=ua(896E3/(h.Pd+896E3/h.Ef)*7.8125);g.selcdnrtt=d;g.selcdnbw=h;g.cdnbwdata=mb.stringify([{id:f,rtt:d,bw:h}])}c&&(g.oldcdnid=c.id);n(g,b.pc);H("cdnsel",!1,rg,g);Ja=b}});v.Fj&&(a.Pc.addListener(E),a.Ha.addListener(E)); | |
v.$d&&a.state.addListener(function(){a.state.value==eb&&(O=a.Cc,O.addEventListener(Mi,function(){y=!0;O.ge().then(V)}))});a.addEventListener(Ni,m)})();this.jt=V}function we(a){switch(a){case N.kd:return"http";case N.Rf:return"connectiontimeout";case N.ld:return"readtimeout";case N.Qf:return"corruptcontent";case N.cb:return"abort";case N.si:case N.ti:return"unknown"}}function bg(a,b,d,f){f&bc&&0<=b.q.value&&(a.moff=Qa(b.q.value));if(f&mf){var g=b.i.value,h=b.ic.value||b.Pc.value,k=b.Ya.value||b.Ha.value; | |
g&&(a.cdnid=g.id,a.cdnname=g.name);h&&(a.adlid=h.stream.J,a.abitrate=h.stream.f);k&&(a.vdlid=k.stream.J,a.vbitrate=k.stream.f)}f&Sb&&((g=b.n)&&0<=b.q.value&&(a.abuflmsec=I(g.tb()),a.vbuflmsec=I(g.La()),a.abuflbytes=ee(g.Uj()),a.vbuflbytes=ee(g.ik())),(g=b.S&&b.S.Wg&&b.S.Wg())&&(a.curdlstatename=g));if(f&qg){cg(a);try{var l=b.Za.getBoundingClientRect();a.rendersize=l.width+"x"+l.height;a.renderpos=l.left+"x"+l.top}catch(n){}}f&nf&&(l=Zb.hardwareConcurrency,0<=l&&(a.numcores=l),0<=b.xe&&(a.cpuspeed= | |
b.xe),(l=b.Ad&&b.Ad.Sp())&&(a.droppedFrames=mb.stringify(l)),l=b.Ad&&b.Ad.lq(v.vp),c(l,function(b,c){a["droppedFramesP"+b]=mb.stringify(c)}));if(f&rg)try{a.pricdnid=b.Wd.id,a.cdninfo=mb.stringify(b.F.map(function(a){return{id:a.id,nm:a.name,rk:a.ma,wt:a.location.weight}}))}catch(x){}d&&f&oh&&((b=b.la)?Td(a,b):a.errorcode=R.mc)}function Td(a,b){a.errorcode=kg+(b.errorCode||R.mc);b.g&&(a.errorsubcode=b.g);b.V&&(a.errorextcode=b.V);b.D&&(a.errordetails=b.D);b.Ia&&(a.httperr=b.Ia);b.Bd&&(a.nccperr=b.Bd); | |
var c=we(b.g);c&&(a.nwerr=c)}function cg(a){a.screensize=Ae.width+"x"+Ae.height;a.screenavailsize=Ae.availWidth+"x"+Ae.availHeight;a.clientsize=D.innerWidth+"x"+D.innerHeight}function dg(a){function b(){return Lb.Sh&&a.state.value==eb&&F&&!X&&(0<Lb.Jd||V!=Cd)}function c(a,d){var z=a||Cd;z!=Cd&&(V=z);b()&&(z=V!=Cd?v.gh:Ba(v.gh,1E3*Lb.Jd),z=Ba(z-(ia()-q),d||0),!d&&(!q||500>=z||Zd==Cd&&V!=Cd)?g():f(z))}function d(){H&&(pb(H),H=h)}function f(a){d();H=$a(c,a)}function g(){if(b()){d();X=!0;var f=V;V=Cd; | |
a.mb.fh(f,function(b){b.c||m.error("Heartbeat failed",{Type:f},fb(b));Zd=f;q=ia();X=!1;11==b.Sc?a.Ta(new Ib(R.Fm,b)):c()})}}function k(){if(F){var b=a.mb.xj();l(b);v.ks&&(da=b,a.mb.vg(b,function(a){da==b&&(K=a.c?a.vq:h)}))}}function l(a,b){0<v.Ch&&v.dd?ib.save(v.dd,mb.stringify(a),!1,b):b&&b(ta)}function n(b){$e(a,function(a){a.c&&(hd(),k());b&&b(a)})}function x(){K&&(m.info("Sending last playdata synchronously",{Url:K.url}),Kf(K).c?hd():(m.info("Sending last playdata asynchronously"),a.xa.R(K,p), | |
k()))}var m=new a.log.r("PlayDataManager"),V=Cd,q=0,Zd,H,X,u,F,K,da;a.addEventListener(pg,function(){Ce&&n()});a.addEventListener(Gi,function(){F=!0;0<v.Ch&&(u=qb(k,v.Ch));k()});a.addEventListener(Ab,function(){function b(){c&&f&&g&&(b=p,a.Hr())}jb.removeListener(Lc,x);d();u&&(yb(u),u=h);var c,f,g,r;if(F){a.Hl();var k=a.mb.xj();l(k,function(){function d(){a.mb.pf(k,function(d){d.c?hd(function(b){b=b.c?d:b;r&&a.Cc.li(b)}):(m.error("Unable to send playdata"),r&&a.Cc.li(d));c=!0;b()})}v.$d?(a.Cc.ge().then(function(){g= | |
!0;b()}),a.Cc.Gl().then(function(a){a.c?(k.securestop=a.data,r=!0):g=!0;d()})):(g=!0,d())})}else g=c=!0;rd?(a.Hl(),rd.flush(!1,function(a){a.c||m.error("Unable to send logblob");f=!0;b()})):f=!0});a.addEventListener(ae,k);a.addEventListener(Wc,function(){a.C.addListener(function(){c(a.C.value==qd?Dk:Ek,a.C.value==Kc?500:0)});b()&&f(Ba(v.gh,1E3*Lb.Jd));k()},1);jb.addListener(Lc,x);return{st:function(b){qh?qh.then(function(){b(ta)}):Ce&&Ce.movieId==a.sa?n(b):b(ta)}}}function $e(a,b){b=b||p;var c=Ce; | |
if(c){var d=c.accountKey;Ce=null;if(d){var f;qh=new Xd(function(a){f=a});Of(d,function(g){var h=g.nc;if(g.c&&h){g=function(g){k=a?oc(a.mb.Sd):{kh:nd,log:new ra.r("Nccp")};k.X=d;k.log.info("Sending persisted playdata",{PersistedXid:c.xid,SessionEpoch:c.sessionEpoch,MediaTime:c.position});g&&(c.securestop=g.data);Rb.pf(c,k,function(a){g?g.c&&(ra.info("SecureStop Ack For Persisted Playback "),x.li(a)):(f(),b(a))})};var k,h=c.keySessionId,l=c.xid;if(a&&v.jl)if(h){var x=new gi(a,h);x.Md();x.Gl().then(g); | |
x.ge().then(function(c){f();b(ta);c.persisted=!0;c.previousXid=l;a.Mk.jt(c,!0)})}else ra.error("SSManager: prev keysession not available",{ErrorCode:R.qn}),g();else g()}else f(),b(ta)})}else b(ta)}else b(ta)}function hd(a){ib&&v&&v.dd&&ib.remove(v.dd,function(b){b.c||ra.error("Error deleting playdata",b);a&&a(b)})}function af(a,b,c,d){this.aa=a;this.uf=b;this.Jf=c;this.If=d;this.totalTime=this.uf+this.Jf}function Yb(a){function b(){var a=1E3*ua(ld/1E3),c=H.$j(),d=H.ak(),f=H.Ed(),z=H.bh(),g=H.Gd(); | |
c&&g&&(a=new af(a+d,f,z,g),p&&(c in F||(F[c]=[]),F[c].push(a)))}function d(){p in K||(K[p]={});var a=K[p],b=0;c(F,function(c,d){var f;f=c in a?a[c]:[];for(var z=g(d,v.ih),h=z.length;h--;)z[h].aa>ea&&f.push(z[h]),b<z[h].aa&&(b=z[h].aa);a[c]=f;ea=b})}function f(){u||(u=!0);for(var a in F)F[a]=g(F[a],v.ih);x()}function g(a,b){var c=[],d=[],f=1E3*b,z;if(0<a.length){for(var r=a[0].aa,k=0;k<a.length;k++)z=a[k],yc(r-z.aa)<=f?d.push(z):(c.push(h(d)),r=z.aa,d=[z]);0<d.length&&c.push(h(d))}return c}function h(a){for(var b= | |
0,c=0,d=0,f=a.length,z=0;z<f;z++)b+=a[z].uf,c+=a[z].Jf,d+=a[z].If;return new af(a[0].aa,b,c,d)}function k(){if(l()>v.pk){var a=[],b,d;c(K,function(f,z){z&&c(z,function(c,f){b=f.length;for(d=0;d<b;d++)a.push(f[d])})});a.sort(function(a,b){return b.aa-a.aa});var f=a[v.pk-1].aa;c(K,function(a,z){z&&(c(z,function(a,c){b=c.length;for(d=0;d<b;d++)c[d].aa<f&&(c.splice(d,1),--d,--b);0===c.length&&delete z[a]}),0===Kb.keys(z).length&&delete K[a])})}}function l(){var a=0,b;for(b in K){var c=K[b],d;for(d in c)a+= | |
c[d].length}return a}function n(){p&&ib.load(Oi,function(a){if(a.c&&(a=a.data))a:{K=V(a);a=p;var b=Fk(K),c=[],d;if(Jb(a))d=v.tq;else if(Pa(a))d=v.uq;else{da=c;break a}for(var f=0;f<b.length;f++)$c(a,b[f],d)&&c.push(b[f]);da=c}})}function x(){p&&(d(),k(),ib.save(Oi,m(K)))}function m(a){var b={};Kb.keys(a).forEach(function(c){b[c]={};Kb.keys(a[c]).forEach(function(d){for(var f=a[c][d],z=f.length,g=[],h=0;h<z;h++)g.push({sT:f[h].aa,rT:f[h].uf,trT:f[h].Jf,tB:f[h].If,toT:f[h].totalTime});b[c][d]=g})}); | |
return b}function V(a){var b={};Kb.keys(a).forEach(function(c){b[c]={};Kb.keys(a[c]).forEach(function(d){for(var f=a[c][d],z=f.length,g,h=[],r=0;r<z;r++)g={},"undefined"!==typeof f[r].sT&&"undefined"!==typeof f[r].rT&&"undefined"!==typeof f[r].trT&&"undefined"!==typeof f[r].tB&&"undefined"!==typeof f[r].toT&&(g.aa=f[r].sT,g.uf=f[r].rT,g.Jf=f[r].trT,g.If=f[r].tB,g.totalTime=f[r].toT,h.push(g));0<h.length&&(b[c][d]=h)});0===Kb.keys(b[c]).length&&delete b[c]});return b}var q=this,p,H,X,u=!1;a.addEventListener(pg, | |
function(){a.jh=q;H=a.ca;p=a.Uh;X=new le(1E3*v.ih,f);X.Zh();a.addEventListener(sg,b);a.addEventListener(Ab,function(){x();X.yd()});a.C.addListener(function(){a.C.value===Kc&&X.yd()});n()});var F={},K={},da=[],ea=0;this.aq=function(a,b){var c;if(p){c=[];if(a in F&&u)return c=F[a],new Rc(c,b,v.lk,v.qk,v.nk,v.mk,l());for(var d=da.length,f,z;d--;)if(f=da[d],a in K[f])for(f=K[f],z=f[a],f=z.length;f--;)c.push(z[f]);if(0!==c.length)return new Rc(c,b,v.lk,v.qk,v.nk,v.mk,l())}}}function Rc(a,b,c,d,f,g,h){this.xr= | |
f;this.kr=g;a=wd(a,b,c,d,this.xr,this.kr);b=[];for(c=0;c<a.length;c++)b.push(7.8125*Ma(a[c].If/a[c].totalTime,rh,sh));this.lf=A(b);this.wf=this.lf.length;this.cj=T(this.lf)/this.lf.length;a=this.lf;c=this.wf;d=this.cj;f=[];for(g=0;g<c;g++)f.push(ih(a[g]-d,2));this.Dt=Gk(T(f)/f.length);this.ej=ub(b,.2);this.fj=ub(b,.5);this.gj=ub(b,.9);this.filter=tg;this.Zt=h}function wd(a,b,c,d,f,g){var h=[],k=c,l=pd(b%604800/86400);b%=86400;var x,n,m;tg=c;if(k===Hk){for(m=0;m<a.length;m++)c=a[m],x=c.aa%86400,n= | |
pd(c.aa%604800/86400),l===n&&yc(x-b)<=d&&h.push(c);h.length<f&&(tg=k=Pi,h=[])}if(k===Pi){for(m=0;m<a.length;m++)c=a[m],x=c.aa%86400,n=pd(c.aa%604800/86400),yc(x-b)<=d&&h.push(c);h.length<f&&(tg=Qi,h=[])}k===Qi&&(h=a,h.length<f&&(h=[]));h.length>g&&(h=h.sort(function(a,b){return a.aa<b.aa?-1:a.aa>b.aa?1:0}).slice(0,g));a=[];for(d=0;d<h.length;d++)0<h[d].totalTime&&a.push(h[d]);return a}function ed(){n(this,{X:"b",sa:0,Vd:{Ea:0,fd:{},qe:{}},Ea:0,index:1,qa:0xceb86ce78ed,Za:{align:"",vy:null,uy:null, | |
contextMenu:null,ex:{},$y:null,Zy:null,Yy:null,Xy:null,Wy:null,onsubmit:null,Vy:null,onshow:null,onselect:null,Uy:null,Ty:null,onscroll:null,onresize:null,onreset:null,Ry:null,onprogress:null,Qy:null,Py:null,Oy:null,onmousewheel:null,onmouseup:null,onmouseover:null,onmouseout:null,onmousemove:null,onmouseleave:null,onmouseenter:null,onmousedown:null,onloadstart:null,Ny:null,My:null,onload:null,onkeyup:null,onkeypress:null,onkeydown:null,Ly:null,oninput:null,onfocus:null,onerror:null,onended:null, | |
Ky:null,Jy:null,Iy:null,Hy:null,Gy:null,Fy:null,Ey:null,Dy:null,Cy:null,ondblclick:null,By:null,oncontextmenu:null,onclose:null,onclick:null,onchange:null,oncanplaythrough:null,Ay:null,zy:null,onblur:null,onabort:null,spellcheck:!0,isContentEditable:!1,contentEditable:"",cz:"",innerText:"",accessKey:"",hidden:!1,rA:"",draggable:!1,tabIndex:-1,dir:"",translate:!0,lang:"",title:"",ontouchstart:null,ontouchmove:null,ontouchend:null,ontouchcancel:null,childElementCount:2,lastElementChild:{},firstElementChild:{}, | |
children:{},bz:null,az:null,nextElementSibling:null,previousElementSibling:null,onwheel:null,onselectstart:null,Sy:null,onpaste:null,oncut:null,oncopy:null,yy:null,xy:null,wy:null,shadowRoot:null,dataset:{},classList:{},className:"",outerHTML:"",innerHTML:"",scrollHeight:545,scrollWidth:2560,scrollTop:0,scrollLeft:0,clientHeight:545,clientWidth:2560,clientTop:0,clientLeft:0,offsetParent:{},offsetHeight:545,offsetWidth:2560,offsetTop:0,offsetLeft:0,localName:"",prefix:null,namespaceURI:"",id:"",style:{}, | |
attributes:{},tagName:"",parentElement:{},textContent:"",baseURI:"",ownerDocument:{},nextSibling:null,previousSibling:null,lastChild:{},firstChild:{},childNodes:{},parentNode:{},nodeType:1,nodeValue:null,nodeName:""},bd:!1,Ba:{Wu:0,vv:0,wv:0},lb:{cx:0,Hv:0,at:0,Qz:0,Pz:0,nx:0,Ux:0,kx:0,Bx:0,lx:0,nA:0},log:{Ma:{}},state:{value:2},q:{value:0},paused:{value:!1},muted:{value:!1},volume:{value:1},C:{value:1},o:{value:2},Q:{value:{}},Tb:{value:{}},T:{value:{}},oc:{value:null},fi:{value:null},k:{value:{}}, | |
G:{value:{}},i:{value:{}},ic:{value:null},Ya:{value:null},Ee:{value:{}},Fe:{value:{}},Pc:{value:{}},Ha:{value:{}},ue:{value:{}},xa:{},vh:{},ca:{},Cg:{},nf:{},Wk:{},Uk:{},Ad:{},ff:{},jh:{},ad:0,Fk:0,nc:{X:"",Uc:!0,Mh:!1,$e:0,ne:{},zk:!0},wa:{},mb:{Sd:{}},Mk:{},F:[{},{},{},{},{}],sj:[{},{},{},{},{}],ya:[{}],Nf:[{}],fb:0,pa:[null,{}],Sb:[{},{}],Je:0,Uh:0,Yk:[{}],td:0,Wd:{id:0,location:{},type:0,ma:1,name:"",Gq:!1,Sq:0,pc:{}},Pt:[{},{},{}],ei:[{},{},{}],Wt:0,xe:0,ed:{track:{},type:"",J:0,f:0,size:0,Ua:{}, | |
j:{},Ba:{},Te:!0},$:{track:{},type:"",J:0,f:0,size:0,Ua:{},j:{},Ba:{},width:0,height:0,Bk:!1,nh:!1,fl:!1,Te:!0,Kd:{}},n:{eb:{},Ab:{}},duration:0,lc:{width:0,height:0},vd:0,ha:{},gb:{S:{},da:{},$b:{},hb:{},Fb:0,sb:{},rb:!1},S:{},kc:{re:null},hi:{},Nb:{},xq:{},Cc:{},Cf:{qm:0,Sf:1},bb:{As:p,Sw:p,Pw:p,yv:p,xt:p,nd:{}},oA:{rl:p,dl:p}})}function Sc(a){function b(){a.n.ze()}var c=[];this.Dc=function(a){for(var b=[],d=c.length;d--;){var f=c[d];f.Dc(a)&&b.push(f.Ng)}if(b.length)return b};Ri.forEach(function(b){(b= | |
b(a))&&c.push(b)});0<c.length&&a.addEventListener(Wc,b)}function uc(a){Ri.push(a)}function re(a,b){var c=a.length,d,f=b.length,g,h,k;for(d=0;d<c;d++)for(g=a[d],k=g[0],h=g[1],g=0;g<f;g++)if(b[g]>=h&&0>=--k)return!0}function vc(a){function b(f){a.removeEventListener(th,b);try{var g=f.data,h=g.length,k;f=0;for(var l,x,n,m={};f<0+h;){k=g[f];l=k&7;x=k>>3;var v=g,q=f,H=q+1,X=v.length,p=H,F=0,K={},da=[],ea=void 0,Ca=void 0,ja=0;if(H>=X)throw new Wa("Invalid Range for Protobuf - start: "+H+" , len: "+X); | |
for(;p<X;){F++;ea=v[p];Ca=ea&127;da.push(Ca);if(!(ea&128))break;p++}for(var Ja=da.length-1;0<=Ja;Ja--)ja<<=7,ja|=da[Ja];K.count=F;K.value=ja;K.start=q+F+1;n=K;if(!n.count)throw new Wa("Parsing error. bytes length is 0 for the tag "+k);f+=n.count+1;2==l&&(f+=n.value);m[x]={Iw:x,sA:l,value:n.value,count:n.count,start:n.start}}var u;var w;u=m&&(w=m[1])?w.value:void 0;1==u&&m[5]&&m[5].value&&(d=!0,a.yt());c.trace("RA check",{HasRA:d})}catch(t){c.error("RA check exception",t)}}var c=new a.log.r("RAF"), | |
d;a.addEventListener(th,b);return{Ng:"ra",Dc:function(a){if(!d)return a.nh}}}function ad(a,b){var c,d,f,g,h=a.eb,k=a.Ab,h=h.W.Oa||h.W;d=ua(h.endTime/(h.index+1));h=k.W.Oa||k.W;f=ua(h.endTime/(h.index+1));c=d*f;g=.128*d*b.f;this.Xb=function(a,b){return ua(((c-f*(b+g/a))/d-b)*a/f*7.8125)}}function Wf(a){var b,c=[],d=100,f=128,g=0,h=0,k=0,l,n;a.addEventListener($d,function(b){var g=b.B,S=b.N;S.i&&(l=S.i.location.id);n=g.requestTime;if(b.c&&g.Y>Si&&b.type==Cc){for(c.push(g);c.length>Ik;)c.shift();var m= | |
0,v,q=c.length;h=k=0;if(0<q){var F,K;for(b=q;b--;)v=c[b],g=xe(v),S=v.requestTime+g,m+=g,k+=v.Y,v.L>F||(h+=K-F||0,K=v.L),F=S;h+=K-F||0;d=pd(m/q);f=Ma(k/h,rh,sh);a.fireEvent(sg)}}});a.addEventListener(Ab,function(){m&&m.yb()});var m=new Ob(6E4,function(){g=f;m.yb()});m.tc();this.Ed=function(){return d};this.dc=function(){return f};this.gk=function(){return g};this.Gd=function(){return k};this.bh=function(){return h};this.$j=function(){return l};this.ak=function(){return n};this.ka=function(a){return d+ | |
a/f};this.Xb=function(){b=b||new ad(a.n,a.ed);return b.Xb(f,d)};this.ve=function(){return ua(896E3/(d+896E3/f)*7.8125)}}function xe(a){a=va(a.O-a.requestTime,(a.L-a.requestTime)*Jk);a=ua(a);return Ma(a,Kk,Lk)}function id(a){var b=xe(a);a=Ma(ua(a.Y/(a.L-(a.requestTime+b))),rh,sh);return{Pd:b,Ef:a}}function bf(a){function b(){d();var a=q.ea(0,!0);x=l(m,0,a);return 0>x.Jb||0>x.wb}function c(a){for(a=f(a);a&&a.j;)a=a.lower;return a}function d(b){var c=a.Fa();if(b){b=a.Aa().ce(v.Eq);for(var f=c.length, | |
g=[],h=0;h<f;h++)-1!==b.indexOf(c[h].f)&&g.push(c[h]);c=g}b=c.length;n(c,Bd);for(f=0;f<b;f++)c[f].lower=c[f-1],c[f].Kd=c[f+1];q=c}function f(b){var c=q.ea(b.f);if(!c.Kd)return c;var d=a.n.ac(),d=Fc(v.lg,d);b=Fc(v.xl,b.f)[0];b=va(b,m.Xb()/(1+d[2]/100));b=q.fa(b+1);return b.f<=c.f?c:b}function g(){for(var b,c=a.Ha.value.stream,d=f(c),h,k=a.n.ac(),r=Fc(v.ij,k),S=Fc(v.lg,k),n,x;d;){if(d.j)if(b=d.f>c.f?S:r,n=v.Xa+(b[0]||0),x=v.Xa+(b[1]||0),h=d,b=l(m,b[2],d),b.Jb<n||b.wb<x){if(d.f<=c.f&&v.Gj&&k>v.Gj)break}else break; | |
d=d.lower}d||(d=h);return{k:d,Jb:b.Jb-n,wb:b.wb-x}}function k(){for(var b in a.ya)for(var c in a.ya[b].P)if(null!=a.ya[b].P[c].j)return a.ya[b].P[c];return null}function l(b,c,d){function f(){for(;q&&q.media&&Ga<V;)Ga+=q.duration,q=q.next;for(;hb&&hb.media&&Ha<V;)Ha+=hb.duration,hb=hb.next}function g(){if(r>=u){for(var a=d.lower;a&&!a.j;a=a.lower);a&&(d=a,ka=a.j.v);g=p}}var h=(c||0)/100+1,r=a.q.value,m=a.n,S=a.G.value,n=m.eb,x=m.Ab,m=S.j&&S.j.v,ka=d.j.v,Ka=[];null==m&&(S=k(),m=S.j.v);Ka.reduction= | |
c;c=v.Qd;v.Kb&&(c=va(c,ua(v.Kb/(.192*(S.f+d.f)))));var V=c-v.dj,q=n.ib(r),Ga=Ba(q.startTime-r,0),hb=x.ib(r),Ha=Ba(hb.startTime-r,0);f();var u=r+Ha+v.sq,S=v.ul?r+va(Ha,Ga)+v.ul:145152E5,n=Ga;c=Ha;for(var Na,w,t;r<S;)if(f(),t=x=w=0,Na=va(Ga-V,Ha-V),0<Na&&(r+=Na,Ga-=Na,Ha-=Na),q&&(Ga<Ha||!hb)?(Na=m[q.index],w=Na.length,x=Na.duration,q=q.next):hb&&(g(),Na=ka[hb.index])&&(w=Na.length,t=Na.duration,hb=hb.next),0<w)w=b.ka(w)*h,r+=w,Ga-=w,Ha-=w,n>Ga&&(n=Ga),c>Ha&&(c=Ha),Ga+=x,Ha+=t;else break;return{Jb:n, | |
wb:c,Rz:Ka}}var m=a.ca,x,q,V=v.os;n(this,{Vc:function(b){var c=m.ve()/v.no;return a.Gb().fa(c,b)},jb:function(b){d(b);b=m.Xb();var f=lb(Fc(v.ms,b)[0]);b=(b=q.fa(f+1,!0))||a.$;var g=a.n,h=v.Xk,k=l(m,h[2],b),S=g.Hb(),n=g.cc(),S=S?g.eb.W.endTime-S.startTime:0,n=n?g.Ab.W.endTime-n.startTime:0,x=g.tb(),E=g.La(),g=-k.Jb+v.Xa+(h[0]||0),h=-k.wb+v.Xa+(h[1]||0),g=Ba(g,v.Eh-x),g=va(g,Ba(V-x,0),S),h=Ba(h,v.Fh-E),h=va(h,Ba(V-E,0),n),f=q.fa(f+1,!1);f==b&&f.j&&(f=c(b));return{k:b,Wa:f,nb:g,ob:h}},Wc:function(){d(); | |
var a=g(),b=a.k,f=c(b);f&&(a=va(a.Jb,a.wb),m.ka(f.Rj())<=a||(f=q[0],f=f.j?null:f));return{k:b,Wa:f}},Nd:b,ai:function(){var c=a.k.value.f,d=q.ea(0,!1).f;return a.n.bk()<v.Xn&&c!==d&&b()},ek:function(a){var b=g(),b={Jb:b.Jb-v.pe[0],wb:b.wb-v.pe[1]},b=va(b.Jb,b.wb);a=m.ka(a);a*=1+.01*v.pe[2];return a<b},Yg:function(){d();var b=l(m,v.ij[2],q[q.length-1]);return a.n.La()-b.wb}});a.addEventListener(be,function(){x=h});a.addEventListener(Wc,function(){V=v.Gs})}function Vg(a){function b(){var c=v.Qd,d=a.G, | |
f=a.k;v.Kb&&(c=va(c,ua(v.Kb/(.192*(d.f+f.f)))));return c}function c(a,b,d){var f=0;b=b||0;a=a.j.v;var z=a.length-b;d=Oa.min(d||z,z);B&&(b=0,d=a.length);0<d&&(b=a.slice(b,b+d),0<b.length&&(f=b.reduce(function(a,b){return{length:a.length+b.length}},{length:0}),f=f.length/d));return f}function d(a){a=a.j.v.slice(0,a.j.v.length);return 0===a.length?0:a.reduce(function(a,b){return a.length>b.length?a:b}).length}function f(a,b,c){a=a.j.v.slice(b||0,c||a.j.v.length);return 0===a.length?0:a.reduce(function(a, | |
b){return a.length<b.length?a:b}).length}function g(){var a=xa.ea(0,!0),b=xa.fa(Number.POSITIVE_INFINITY,!0);return 8*d(b)/a.f}function k(){return md*F/100-P-J}function l(){return Oa.min(v.Xa,2*M)}function m(a){var b=xa.ea(0,!0),c=b.j.v,d=l(),f=0;if(!c)return X;for(var z=Oa.min(c.length,a+K),g=0;a<z;a++){var h=c[a],g=g+(8*h.length/b.f-h.duration);f<g&&(f=g)}f<d?f=d:f>Oa.min(md,X)&&(f=Oa.min(md,X));return f}function x(a,b){D.push(a);10<D.length&&(D=D.slice(-10));U.push(b);10<U.length&&(U=U.slice(-10))} | |
function q(a,b,z){var g,h,k,l,m,S=xa.ea(b.f,!0),n=xa.ea(0,!0);if(1>=U.length||1>=z){if(1===I||A)h="historical"===v.hj?G.Gd()/(G.Ed()+G.bh()):G.dc(),g=h>S.f*T?S:h<b.f*T?xa.fa(b.f,!0):b;return g}h=2>U.length?0:a-U[U.length-2];k=c(b,0,b.j.v.length);l=d(b);m=b.j.v[z-1].length;if(aa)if(g=l/k,O&&(l=Oa.min(b.j.v.length-z-1,y),z+l+1<b.j.v.length&&(g=f(b,z,z+l)/k)),L?1>=g?a=1:(z=J+P+N,a=a>z?1:(g-1)*(z-a)/z+1):a=g,z=M-8*m/(S.f*a),h>z)g=S;else if(0<=h)g=b;else for(g=S,b=M-8*m/(g.f*a);h<b;){g=xa.fa(g.f,!0);if(g=== | |
n)break;b=M-8*m/(g.f*a)}return g}function V(a,b,d,f){var z=xa.fa(b.f,!0),g=xa.ea(b.f,!0),h=xa.ea(0,!0),k,S;S=xa.ea(0,!0).f*M/8;var m=xa.fa(Number.POSITIVE_INFINITY,!0).f*M/8;S=(a-P-J)/N*(m-S)+S;S=Oa.max(0,S);var m=xa.ea(0,!0),n=xa.fa(Number.POSITIVE_INFINITY,!0),n=T*M*n.f/8;la&&(n=ea?(a-P)*m.f/8:(a-l())*m.xu/8);a=n;var x=n=0,E=z.j.v,ka=g.j.v,Ka=b.j.v[d].length,m=b;S=Oa.min(S,a);E&&(n=c(z,d,f),1<f&&(n=Oa.max(n,E[d].length)));ka&&(x=c(g,d,f),1<f&&(x=Oa.max(x,ka[d].length)));if(la&&Ka>a){for(;;){m=xa.fa(m.f, | |
!0);if(m.f===h.f){k=h;break}b=m.j.v[d].length;if(b<a){k=m;break}}return k}if(0<x&&S>x)k=g;else if(0<n&&S<n)for(m=z,b=n;b>S;){k=m;m=xa.fa(m.f,!0);if(m.f===h.f)break;b=c(m,d,f);1<f&&(b=Oa.max(b,m.j.v[d]))}else k=b;return k}function p(){var f=a.Ha.value.stream,n,ka=xa.ea(0,!0),v=a.n.ac(),F=a.n.vb();n=F.duration;var K=0,H=2>U.length?0:v-U[U.length-2],u,aa=1;M===h&&(M=n);T===h&&(T=d(f)/c(f));md===h&&(md=b());1===I&&(Vb=Ca,ca=0===D.length?f.f:D.reduce(function(a,b){return a+b},0),0<ca&&(ca/=D.length,ca= | |
Oa.min(ca,D[D.length-1]),R=xa.fa(ca,!0)),U=[],D=[]);x(f.f,v);Vb=da?Vb-1:-1;0===Vb&&0<H?Vb+=1:da&&-1===Vb&&(0<H?Vb=1:u=!0);ea?(K=m(F.index),P<K&&(P=K)):ja?(P=Ja,P<l()&&(P=l())):P=l();if(0>J||2===I||1===I)J=v-P,J=Oa.max(0,J),J+P>X&&(J=X-P),J>w&&(J=w),Q=!1,v>=k()+P+J&&(Q=!0);!t&&ea?N=k():t?(N=C,N<g()()?N=g():N>k()&&(N=k())):N=g();cb&&(aa=(v-P-J)/n,aa=1>aa?1:aa);v<P+J?(n=ka,Q=!1):v>P+J+N-n?(n=xa.fa(Number.POSITIVE_INFINITY,!0),Q?n=0<H?xa.ea(f.f,!0):f:Vb=-1):(n=V(v,f,F.index,aa),Q&&(n=0<=H?f:xa.fa(f.f, | |
!0)));da&&0<=Vb?(v=q(v,f,F.index),R&&v.f<R.f&&(0<H?v=xa.ea(f.f,!0):0>H&&(R=h)),R&&v.f>=R.f&&(R=h),v.f>n.f&&(n=v)):u&&(0<H?n=f:n.f<=f.f/2?n=xa.fa(f.f/2,!0):u=!1);I=0;n||(n=ka);return n}var u=new bf(a),H=v.Ao,X=H.mr,w=H.lr,F=H.hr,K=H.Rs,da=H.Kt,ea=H.yp,Ca=H.Jt,ja=H.Jq,Ja=H.fr,t=H.Fq,C=H.er,cb=H.Iq,B=H.Mq,la=H.Nq,A=H.cu,aa=H.Lt,L=H.Mt,O=H.Ht,y=H.It,I=0,G=a.ca,md,xa,P=0,N=0,U=[],D=[],Vb=Ca,J=0,M,ca,R,Q,T;a.addEventListener(ae,function(){I=1});a.addEventListener(pf,function(){I=2});return{Vc:u.Vc,jb:u.jb, | |
Wc:function(){var b=a.Fa(),c=b.length;n(b,Bd);for(var d=0;d<c;d++)b[d].lower=b[d-1],b[d].Kd=b[d+1];xa=b;b=p();c=a.n;d=xa.ea(b.f);if(d.Kd)var f=a.n.ac(),f=Fc(v.lg,f),g=Fc(v.xl,b.f)[0],g=va(g,G.Xb()/(1+f[2]/100)),f=xa.fa(g+1),d=f.f<=d.f?d:f;for(;d&&d.j;)d=d.lower;d&&(c=va(c.tb(),c.ac())-M,G.ka(d.Rj())<=c||(c=xa[0],d=c.j?null:c));return{k:b,Wa:d}},Nd:u.Nd}}function Ud(a){function b(c){c=a.Aa().filter(c?zd:ze);return vd(c)}return{Vc:function(b){b=a.Gb().filter(b?zd:ze);return vd(b)},jb:function(){var c= | |
a.n,d=c.tb(),f=c.La(),d=Ba(v.Eh+v.Xa-d,0),f=Ba(v.Fh+v.Xa-f,0),g=c.Hb(),h=c.cc(),h=h?c.Ab.W.endTime-h.startTime:0,d=va(d,g?c.eb.W.endTime-g.startTime:0),f=va(f,h);return{k:b(!0),Wa:b(!1),nb:d,ob:f}},Wc:function(){return{k:b(!0),Wa:b(!1)}},Nd:function(){return!1},ai:function(){return!1},ek:function(){return!0},Yg:function(){return 4E3}}}function eg(a){function b(){var c=v.Lp,d=a.n.cc();if(d)for(var d=d.startTime,f,g=c.length,h,k=0,k=0;k<g;k++)if(h=c[k],d>=h[0])f=h[1];else break;c=a.Fa();f=Bd.qc.call(c, | |
f||0);c=c.filter(ze)[0];return{k:f,Wa:c}}n(this,{Vc:function(b){b=a.Gb().filter(b?zd:ze);return vd(b)},jb:function(){var c=b(),d=a.n,f=d.tb(),g=d.La(),f=Ba(v.Eh+v.Xa-f,0),g=Ba(v.Fh+v.Xa-g,0),h=d.Hb(),k=d.cc(),k=k?d.Ab.W.endTime-k.startTime:0,f=va(f,h?d.eb.W.endTime-h.startTime:0),g=va(g,k);c.nb=f;c.ob=g;return c},Wc:b,Nd:function(){return!1},ai:function(){return!1},ek:function(){return!0},Yg:function(){return 0}})}function Wg(a){function b(){for(var a,c,d,f,g=q.length,z=n.length,h=0;h<g;h++){var k= | |
q[h];if(-1===n.indexOf(k)&&k<ba(n))for(a=0;a<z-1;a++)if(c=n[a],f=n[a+1],k>=f&&k<=c){a=l[c];d=l[f];l[k]=(k-c)/((f-c)/(d-a))+a;break}}}function d(){var b=[],f=a.Gb(),g=a.Aa(),h=a.n.Hb().index,k=a.n.cc().index,r=a.n.eb,n=a.n.Ab;c(l,function(a,c){var d,z=f.qc(a,!0),l=g.qc(a,!0),m=0,S=0,x;d=va(pd(v.kj)/4,r.W.index-h+1);for(x=0;x<d;x++)m+=z.j.v[h+x].length;d=va(v.kj,n.W.index-k+1);for(x=0;x<d;x++)S+=l.j.v[k+x].length;d=Ba((m+S)/d*2/128/c,a);z={};z.f=a;z.Ns=d;z.mw=c;b.push(z)});return b=b.sort(function(a, | |
b){return Jc(a.f)<Jc(b.f)?-1:Jc(a.f)>Jc(b.f)?1:0})}function f(){for(var a,b=m.length;b--;)if(a=m[b],a.Ns<=k)return a.f}var g,h,k,l={},n=[],m=[],q;this.Zj=function(V){q=a.Aa().ce(v.yk);if((g=a.jh)&&V&&(h=g.aq(V,ua(ld/1E3)+ia()))&&0!==h.wf)return c(v.Io,function(a,b){l[a]=wc(b);n.push(C(a))}),n=A(n).reverse(),b(),m=d(),k=(20===v.lj?h.ej:90===v.lj?h.gj:h.fj)*(1-.01*(v.Xk[2]||0)),f()};this.$p=function(){return h}}function Tc(a,c,d){function f(a){if(x.state.value==qf||x.state.value==cc||x.state.value== | |
eb)X.info("Playback closing",x,a?{ErrorCode:a.Nc}:h),jb.removeListener(Lc,l),x.la=a,u.A(uh,{qu:H}),u.A(Ab),x.state.set(vh),t||Aa(g)}function g(){var a=x.bf;x.bf=h;a?ce.Js(a,function(){k()}):k()}function k(){k=p;var a=sd.indexOf(x);sd.splice(a,1);x.state.set(ug);u.A(vg,{},!0);u.Oc()}function l(){f()}function n(){var a=x.q.value;F!=a&&(X.trace("MediaTime changed",{MediaTime:Va(a)}),F=a,u.A(rf))}function m(a){a.newValue!=Tb&&(x.C.removeListener(m),u.A(Wc),x.Vk=I(x.Ib()),x.Dq=(x.Ya.value||x.Ha.value).stream.f)} | |
var x=this,q,V=new Eb(1E3),u=new Hb,w={},H={};wg?(q=wg,wg=h):q=1E4*Nb()+ua(1E4*ef());Ji=q;x.addEventListener=u.addListener;x.removeEventListener=u.removeListener;x.fireEvent=u.A;x.X=a;x.sa=c;x.Vd=d||{};x.Ea=x.Vd.Ea||0;x.index=++Mk;x.qa=q;x.Za=Fa("DIV","position:relative;width:100%;height:100%;overflow:hidden");x.bd=v.Fl&&!(q%v.Fl);x.Ba={MovieId:x.sa,TrackingId:x.Ea,Xid:x.qa,AccountKey:x.X};x.lb=w;a=new Pc(x);x.log=a;xg||(xg=a);var X=new x.log.r("Playback");X.info("Playback created",x.Ba);x.bd?X.info("Playback selected for trace playback info logging"): | |
X.trace("Playback not selected for trace playback info logging");x.state=new Xa(qf);x.state.addListener(function(a){X.info("Playback state changed",{From:a.oldValue,To:a.newValue})});x.Lr=function(){x.log.Ma.ad=x.ad=ia();x.Fk=Nb();x.state.set(cc)};x.Kr=function(){x.state.value==cc&&x.state.set(eb)};x.ta=function(a){X.trace("Milestone",{Id:a});w[a]=x.Ib()};x.Pp=function(){if(b(x.lb.ats)&&b(x.lb.at))return x.lb.at-x.lb.ats};x.Tp=function(){return x.n&&x.n.ac()};x.gq=function(){if(b(x.lb.shs)&&b(x.lb.sh))return x.lb.sh- | |
x.lb.shs};x.close=function(a){a&&(x.state.value==ug?a():x.addEventListener(vg,function(){a()}));f()};x.Ta=function(a){function b(){f(a)}if(x.state.value==qf)x.la||(x.la=a,x.load());else{var c=v.zj&&a&&v.zj[a.errorCode];Ua(c)&&(c=C(c));X.error("Fatal playback error",{Error:""+a,HandleDelay:""+c});0<=c?$a(b,c):b()}};x.Hl=function(){t=!0};x.Hr=function(){g()};x.fe=function(){u.A(Ti)};var t;jb.addListener(Lc,l,1);x.q=new Xa;var F;x.q.addListener(function(){V.pb(n)});x.Mp=function(){n()};x.paused=new Xa(!1); | |
x.paused.addListener(function(a){X.info("Paused changed",{From:a.oldValue,To:a.newValue,MediaTime:Va(x.q.value)})});x.muted=new Xa(!1);x.volume=new Xa(v.hp/100);x.C=new Xa(Tb);x.C.addListener(function(a){X.info("PresentingState changed",{From:a.oldValue,To:a.newValue,MediaTime:Va(x.q.value)},x.n.Oe())});x.o=new Xa(dc);x.o.addListener(function(a){X.info("BufferingState changed",{From:a.oldValue,To:a.newValue,MediaTime:Va(x.q.value)},x.n.Oe())});x.Q=new Xa(null);x.Q.addListener(function(a){X.info("AudioTrack changed", | |
a.newValue&&{ToBcp47:a.newValue.Ra,To:a.newValue.U},a.oldValue&&{FromBcp47:a.oldValue.Ra,From:a.oldValue.U},{MediaTime:Va(x.q.value)});x.G.set(x.wa.Vc())});x.Tb=new Xa(null);x.Tb.addListener(function(){x.k.set(x.Aa()[0])});x.T=new Xa(null);x.T.addListener(function(a){X.info("TimedTextTrack changed",a.newValue?{ToBcp47:a.newValue.Ra,To:a.newValue.U}:{To:"none"},a.oldValue?{FromBcp47:a.oldValue.Ra,From:a.oldValue.U}:{From:"none"},{MediaTime:Va(x.q.value)})});x.oc=new Xa(null);x.fi=new Xa(null);x.k= | |
new Xa(null);x.G=new Xa(null);x.i=new Xa(null);x.i.addListener(function(a){a=a.newValue;var b=x.F;b.splice(b.indexOf(a),1);b.unshift(a)});x.ic=new Xa(null);x.Ya=new Xa(null);x.Ee=new Xa(null);x.Fe=new Xa(null);x.Pc=new Xa(null);x.Ha=new Xa(null);x.te=new Xa(null);x.C.addListener(m);x.ue=new Xa;ye(x);x.dh=function(){u.A(uh,{qu:H});return H};x.yt=function(){H.HasRA=!0};sd.push(x);x.xa=new Pe(x);x.vh=new Lf(x);x.ca="sliding_window"===v.hj?new db(x):new Wf(x);x.Cg=new hg;x.nf=new gg(x);x.Wk=new Xg(x); | |
x.Uk=new dg(x);x.ff=new Sc(x);v.zp&&(x.jh=new Yb(x));Ui.forEach(function(a){a(x)});fg(this)}function fg(b){function d(a){return"parallel"===v.ug?new Q(a):new Lg(a)}function f(a,c){h||(h=!0,b.Ta(new Ib(a,c)))}var g=new b.log.r("Playback"),h,l,n,m,q,x;b.load=function(a){this.load=O;q=a;b.state.value==qf&&(g.info("Playback loading",b),b.Lr(),yg(function(a){a.c?b.Zo():f(a.errorCode||R.je,a)}))};b.Zo=function(){try{var a=b.X,c=a?Ue(a):jf;b.X=c.X;b.nc=c;switch(v.rq){case "random":b.wa=new Ud(b);break;case "fixed":b.wa= | |
new eg(b);break;case "bb":b.wa=new Vg(b);break;default:b.wa=new bf(b)}b.mb=new $f(b);b.Mk=new ag(b);b.nu()}catch(d){f(R.km,{g:N.Ub,D:L(d)})}};b.nu=function(){if(b.la)b.Ta(b.la);else if(k(b.sa,1)){var a=b.nc.Xc();if(v.Os){var c=a.ia;if(!Ua(c)){f(R.zi);return}c=Ta(c);if("usr"!=c&&"dbl"!=c){g.error("Invalid NetflixId",{bt:c});f(R.yi);return}}v.Ps&&!Ua(a.$a)?f(R.Bi):b.Mo()}else f(R.Yl)};b.Mo=function(){var a=ce.nl;a?a.c?b.sg():f(R.Ci,a):b.eg()};b.sg=function(){v.sg?Vd(function(){b.eg()},b):b.eg()};b.eg= | |
function(){b.state.value==cc&&(v.Dp&&!b.jd?ce.$i(Nk,function(a){a.c?(b.bf=a.bf,b.yf()):f(R.Ai)}):b.yf())};b.yf=function(){b.state.value==cc&&(b.ta("ic"),b.Uk.st(function(a){a.error&&g.error("Error sending persisted playdata",fb(a));b.ud()}))};b.ud=function(){b.state.value==cc&&(g.info("Authorizing",b),b.ta("ats"),b.mb.ud(function(d){if(b.state.value==cc){b.ta("at");if(!d.c)switch(d.method){case "register":f(R.Am,d);return;case "authenticationrenewal":f(R.zm,d);return;default:f(R.ym,d);return}var h; | |
try{l=b.Gb().ce(v.Cq);n=b.Aa().ce(v.yk);m=b.Gb().qc(l[0]||0);x=b.Aa().qc(n[0]||0);h=kf.call(b.F,function(b){return a(m.Ua[b.id])&&a(x.Ua[b.id])});b.Wd=h[0];b.Pt=h;var k={};h.forEach(function(a){var b=a.location.id;k[b]||(k[b]=[]);k[b].push(a)});var S=[];c(k,function(a,b){var c=b[0].location;c.F=b;S.push(c)});b.ei=S.sort(function(a,b){return a.ma-b.ma});b.Wd!=b.F[0]&&g.error("Primary CDN does not have downloadUrls for a/v streams",{CdnId:b.F[0].id})}catch(ka){g.error("Exception while picking initial streams", | |
ka)}m&&x&&h.length?b.us():f(R.Bm)}}))};b.us=function(){q?(g.info("Processing post-authorize",b),q(b,function(a){a.c?b.Hj():f(R.pm,a)})):b.Hj()};b.Hj=function(){function a(){if(b.jd||!(0<S)||ka){var c=d.ea(0,!0),g=h.ea(0,!0);c&&g?(m=c,x=g,a=p,b.ls()):0>=S&&(a=p,f(R.om,q))}}if(b.state.value==cc){g.info("Downloading initial stream headers",b,{Audio:l.join("|"),Video:n.join("|")});b.ta("shs");var c;v.Qg&&(c=b.ya.filter(function(a){return a.Ra==v.Qg||a.U==v.Qg}))&&c.length&&b.Q.set(c[0]);v.Le&&(c=b.pa.filter(function(a){return a? | |
a.Ra==v.Le||a.U==v.Le:"none"==v.Le.toLowerCase()}))&&c.length&&b.T.set(c[0]);var d=b.Gb(),h=b.Aa(),k=[d[0],h[0]],S=0,ka=!1,q;b.jd||l.forEach(function(a){a=d.qc(a);0<=k.indexOf(a)||k.push(a)});n.forEach(function(a){a=h.qc(a);0<=k.indexOf(a)||k.push(a)});c=S=k.length;for(var u=0;u<c;u++)g.trace("Downloading header",{Type:k[u].type,Bitrate:k[u].f}),k[u].Ga(function(b){b.c||(q=b);S--;a()});$a(function(){0<S&&g.debug("Not all initial headers downloaded within the deadline ("+v.vk+" ms)");ka=!0;a()},v.vk)}}; | |
b.ls=function(){try{if(b.state.value==cc){b.ta("sh");g.trace("Initializing primary streams and MediaBuffer");v.K||(b.G.set(b.ed=b.wa.Vc(!0)),b.k.set(b.$=x));b.n=new Ad(b);var a=b.n.eb,c=b.n.Ab,d=a.W.endTime,h=c.W.endTime;b.duration=Ba(d,h);yc(d-h)>va(a[0].duration,c[0].duration)&&g.error("Large audio and video duration gap",{AudioMS:d,VideoMS:h,MovieId:b.sa,AudioDlId:b.ed.J,VideoDlId:b.$.J});var l={width:1,height:1};b.Aa().forEach(function(a){l.width*l.height<a.width*a.height&&(l.width=a.width,l.height= | |
a.height)});b.lc=l;var n=C(v.xo[b.sa]);k(n)?(g.info("Overriding bookmark",{From:b.fb,To:n}),b.fb=n):((n=b.fb)&&n<Hf(v.yo,b.duration)&&(g.trace("Ignoring bookmark because it's to close to beginning"),b.fb=0),n&&n>b.duration-Hf(v.zo,b.duration)&&(g.trace("Ignoring bookmark because it's to close to end"),b.fb=0));b.$o()}}catch(m){f(R.lm,{g:N.Ub,D:L(m)})}};b.$o=function(){try{b.ha=new Re(b),b.S=d(b),b.kc=new Kj(b),v.Ms&&(b.hi=new Lj(b)),b.Nb=new Mj(b),b.xq=new Pj(b),Vi.forEach(function(a){a(b)}),b.Kr(), | |
v.Mr&&D.application&&D.application.uiInfoOverlay&&D.application.uiInfoOverlay.active.set(!0)}catch(a){f(R.mm,{g:N.Ub,D:L(a)})}}}function ye(a){function c(){return a.state.value==cc||a.state.value==eb&&a.C.value==Tb}function d(){c()?x||(x=qb(f,100)):x&&(yb(x),x=h,Aa(f))}function f(){var d=ia(),r=g.value,x=r?r.jc:0,Ka,q=a.state.value==cc||c()&&199<d-k,p,u,F;q&&a.state.value==eb?(a.o.value==mc?(u=x,p=!0):(Ka=d+(a.S.yc()||0),l=l||d,n=n||l+v.vr+1,b(Ka)&&(Ka=Ba(Ka,n),u=a.S.Pe(),u=lb(1E3*Ma((d-l)/(Ka-l), | |
0,u))/1E3)),u<x&&(x-u<v.ws/100?(u=x,m=h):m?d-m>v.vs?(F=!0,m=h):u=x:(m=d,u=x))):m=n=l=h;d=q?{Bf:p,jc:u,xs:F}:null;(!d||!g||!g.value||b(d.jc)&&!b(g.value.jc)||b(d.jc)&&b(g.value.jc)&&.01<yc(d.jc-g.value.jc)||d.Bf!==r.Bf)&&g.set(d)}var g=a.ue,k=0,l,n,m,x;a.state.addListener(function(){d();f()},1);a.C.addListener(function(a){if(a.oldValue!=Tb||a.newValue!=Tb)k=ia();d()});a.o.addListener(function(){d()});x||(x=qb(f,100))}function Vd(a,b){var c=sd[0];c==b&&(c=sd[1]);c?c.close(function(){Vd(a,b)}):a&&a(ta)} | |
function Ic(a,b){switch(a){case wh:Ui.push(b);break;case zg:Vi.push(b)}}function cf(a,b,c){return v.K?new ed:new Tc(a,b,c)}function gg(a){function d(){if(!t){F=qb(m,1E3);a.Za.appendChild(p);for(var b=H.length;b--;)H[b].addListener(q);for(b=X.length;b--;)a.addEventListener(X[b],q);t=!0}l()}function f(){if(t){yb(F);da=K=h;a.Za.removeChild(p);for(var b=H.length;b--;)H[b].removeListener(q);for(b=X.length;b--;)a.removeEventListener(X[b],q);x.pb();t=!1}}function g(){t?f():d()}function k(){var d=a.n,f=[], | |
g;f.push({Version:"2.0000.453.011",Esn:ac?ac.vc:"UNKNOWN",UserAgent:Zb.userAgent});try{f.push({MovieId:a.sa,TrackingId:a.Ea,Xid:a.qa+" ("+sd.map(function(a){return a.qa}).join(", ")+")",Position:Va(a.q.value),Duration:Va(a.duration),Volume:lb(100*a.volume.value)+"%"+(a.muted.value?" (Muted)":"")})}catch(l){}try{var r=a.S?a.S.yc():h;f.push({"Player state":ea[a.state.value],"Buffering state":Ca[a.o.value]+(b(r)?", ETA:"+Va(r):""),"Rendering state":ja[a.C.value]})}catch(n){}try{var m=d.Gd(),S=v.Kb,x= | |
a.ic.value,E=x&&x.stream,ka=a.Ya.value,Ka=ka&&ka.stream,q=a.i.value;f.push({"Playing bitrate (a/v)":E&&Ka?E.f+" / "+Ka.f+" ( "+Ka.j.Bj+" )":"?","Buffering bitrate (a/v)":a.G.value.f+" / "+a.k.value.f,"Buffer size in Bytes (a/v)":d.Uj()+" / "+d.ik(),"Buffer size in Bytes":m+(S?" ("+(100*m/S).toFixed(0)+"% of max)":""),"Buffer size in Seconds (a/v)":Va(d.tb())+" / "+Va(d.La()),"Will Rebuffer":a.wa.Nd(),"Current CDN":q.name+", Id: "+q.id})}catch(F){}try{var V=a.ic.value.stream,u=V.j,p=V.track,Ja=a.Ya.value.stream.j, | |
Ga=a.oc.value;f.push({"Audio Track":p.Ra+", Id: "+p.U+", Channels: "+p.qg+", Codec: "+(u&&u.tg),"Video Track":"Codec: "+(Ja&&Ja.tg),"Timed Text Track":Ga?Ga.Ra+", Profile: "+Ga.Nk+", Id: "+Ga.U:"none"})}catch(H){}try{f.push({Framerate:a.k.value.j.Sg.toFixed(3),"Current Dropped Frames":b(K)?K:"","Total Frames":a.ha.Me(),"Total Dropped Frames":a.ha.xc(),"Total Corrupted Frames":a.ha.Cd(),"Total Frame Delay":a.ha.Ne(),"Main Thread stall/sec":xh?xh.dq().join(" "):"DISABLED",VideoDiag:Ag(a.dh())})}catch(hb){}try{a.n&& | |
(v.K?f.push({Throughput:a.Ef+" kbps"}):f.push({Latency:a.ca.Ed()+" ms",Throughput:(7.8125*a.ca.dc()).toFixed(0)+" KBPS","Bandwidth (normalized)":a.ca.ve()+" KBPS","Max Sustainable Video Bitrate":a.ca.Xb()+" KBPS"}))}catch(w){}try{c(nb,function(a,b){g=g||{};g[a]=mb.stringify(b)}),g&&f.push(g)}catch(X){}return f}function l(){if(V.selectionStart==V.selectionEnd){var a="";k().forEach(function(b){a=a?a+"\n":"";c(b,function(c){a+=c+": "+b[c]+"\n"})});V.style.fontSize=Ma(ua(p.clientHeight/60),8,18)+"px"; | |
V.value=a}}function m(){var b=a.ha.xc();K=b-da;da=b;q()}function q(){x.pb(l)}function u(a){a.ctrlKey&&a.altKey&&a.shiftKey&&(68==a.keyCode||81==a.keyCode)&&g()}var x=new Eb(1E3),p=Fa("DIV","position:absolute;left:10px;top:10px;right:10px;bottom:10px",h,{"class":"player-info"}),V=Fa("TEXTAREA","position:absolute;resize:none;box-sizing:border-box;width:100%;height:100%;padding:10px;background-color:rgba(0,0,0,0.4);color:#fff;font-size:12px;font-family:Arial;overflow:auto"),w=Fa("DIV","position:absolute;top:2px;right:2px"), | |
t,H=[a.q,a.i,a.ic,a.Ya,a.G,a.k,a.oc,a.state,a.o,a.C,a.volume,a.muted],X=[be,sg],nb={},F,K,da;this.ut=function(a){nb.DFR=a};var ea={};ea[qf]="Not Loaded";ea[cc]="Loading";ea[eb]="Normal";ea[vh]="Closing";ea[ug]="Closed";var Ca={};Ca[nc]="Normal";Ca[dc]="Pre-buffering";Ca[mc]="Network stalled";var ja={};ja[Tb]="Waiting for decoder";ja[qd]="Playing";ja[of]="Paused";ja[Kc]="Media ended";V.setAttribute("readonly","readonly");p.appendChild(V);p.appendChild(w);var Ja=Fa("BUTTON",null,"X");Ja.addEventListener("click", | |
f,!1);w.appendChild(Ja);jb.addListener(Dd,u);a.addEventListener(Ab,function(){jb.removeListener(Dd,u);f()});n(this,{toggle:g,show:d,hh:f,cq:k})}function Xg(a){function b(){F||(k(),a.Za.appendChild(V),F=!0)}function c(){F&&(a.Za.removeChild(V),F=!1)}function d(){F?c():b()}function f(){var b=[],c={ranges:[]};a.Fa().forEach(function(a){c.profile||(c.profile=a.wj);c.ranges.push({min:a.f,max:a.f})});b.push(c);a.bb.xt(b);a.n.reset();a.bb.seek(a.q.value)}function g(){var b=a.Aa().filter(function(a){return K[a.f]}); | |
b.length||b.push(a.$);return b}function k(){var b=a.Q.value,c=a.Tb.value,d=a.F;b&&(d=d.slice(),d.sort(function(a,b){return a.ma-b.ma}),x(H,b.P.map(function(b){return{value:b.f,caption:b.f,selected:b==a.G.value}})));c&&(x(w,c.P.map(function(b){var c=a.ff.Dc(b),d=b=b.f;c&&(d+=" ("+c.join("|")+")");return{value:b,caption:d,selected:a.Fa!=g?!c:K[b]}})),w.removeAttribute("disabled"));d&&(x(t,d.map(function(b){return{value:b.id,caption:"["+b.id+"] "+b.name,selected:b==a.i.value}})),t.removeAttribute("disabled"))} | |
function l(){F&&k()}function m(a){var b=Fa("DIV","display:inline-block;vertical-align:top;margin:5px;");a=Fa("DIV",h,a);var c=Fa("select","width:120px;height:180px",h,{disabled:"disabled",multiple:"multiple"});b.appendChild(a);b.appendChild(c);p.appendChild(b);return c}function x(a,b){a.innerHTML="";b.forEach(function(b){var c={title:b.caption};b.selected&&(c.selected="selected");c=Fa("option",h,b.caption,c);c.value=b.value;a.appendChild(c)})}function q(a){a.ctrlKey&&a.altKey&&a.shiftKey&&83==a.keyCode&& | |
d()}var V=Fa("DIV","position:absolute;left:0;top:50%;right:0;bottom:0;text-align:center;color:#040;font-size:11px;font-family:monospace",h,{"class":"player-streams"}),p=Fa("DIV","display:inline-block;background-color:rgba(255,255,255,0.86);border:3px solid #fff;padding:5px;margin-top:-90px"),u=Fa("DIV","width:100%;text-align:center"),H=m("Audio Bitrate"),w=m("Video Bitrate"),t=m("CDN"),F,K={};V.appendChild(p);p.appendChild(u);var da=Fa("BUTTON",h,"Override");da.addEventListener("click",function(){K= | |
{};for(var b=w.options,d=b.length;d--;){var h=b[d];h.selected&&(K[h.value]=1)}a.Fa=g;a.n.ze();v.K&&(a.S.wd(),f());if(b=a.F){var k=t.value;(b=b.filter(function(a){return a.id==k})[0])&&b!=a.i.value&&(b.pc={testreason:"streammanager",selreason:"userselection"},a.i.set(b))}c()},!1);u.appendChild(da);da=Fa("BUTTON",h,"Reset");da.addEventListener("click",function(){delete a.Fa;a.n.ze();v.K&&(a.S.wd(),f());c()},!1);u.appendChild(da);jb.addListener(Dd,q);a.addEventListener(Ab,function(){jb.removeListener(Dd, | |
q)});a.i.addListener(l);a.Q.addListener(l);a.Tb.addListener(l);n(this,{toggle:d,show:b,hh:c})}function hg(){function a(){k=!1;for(var b=c.length,z;b--;)z=c[b],g[z]&&(g[z]=!1,f.A(z+"changed",{getModel:d[z]}))}function b(c){g[c]=!0;k||(k=!0,Aa(a))}var c=[],d={},f=new Hb,g={},k=!1;return{register:function(a,b){c.indexOf(a);d[a]=b;c.push(a)},zh:b,kq:function(a){return(a=d[a])?a():h},addEventListener:function(a,c){f.addListener(a,c);d[a]&&b(a)},removeEventListener:function(a,b){f.removeListener(a,b)}}} | |
function ue(c,d,f,g,h,k,l,m){function q(a){if(!(0<=qc(a,"ftyp").vj.indexOf("dash")))throw new Wa("ftyp is not dash compatable");for(var c=ig(a),d=qc(yh(c),"moov"),f=[],g=d.children.filter(function(a){return"trak"===a.type}),z=0;z<g.length;z++){var h=g[z].ub("mdia/minf/stbl/stsd/mp4a|enca|ec-3|avc1|encv|hvcC|hev1|dvhe");V(d,h);f.push(h)}h=f[0];a=qc(a,"sidx");f=h.type;c={stream:w,tg:f,Hg:"encv"==f||"enca"==f,Aq:c,Rd:d};d=0;switch(w.type){case sb:d=v.ig;break;case Za:d=v.ou;try{var k=h.ub("4E657466-6C69-7846-7261-6D6552617465"), | |
l=k.Qr/k.jp;b(l,1)&&(c.Sg=l)}catch(r){}"hev1"!==h.type&&"dvhe"!==h.type?(k=h.ub("pasp"),l=h.width,f=h.height,k.Mf<k.Re?l=ua(l*k.Re/k.Mf):f=ua(f*k.Mf/k.Re),l==w.width&&f==w.height||t.error("Stream resolution does not match",{Nccp:w.width+"x"+w.height,Header:l+"x"+f},X),c.Bj="res: "+h.width+"x"+h.height+", par: "+k.Re+"x"+k.Mf):c.Bj=""}c.v=Ng(w,d,a);return c}function x(a,b){t.trace("Downloading header",{Cdn:b.id},X);a=a||p;var g={responseType:Cc,hc:ve,url:w.Ua[b.id],i:b,track:d,stream:w,offset:0,length:H|| | |
u(m),Eb:f+"-"+h+"-hdr",Ic:!0};c.xa.R(g,function(c){var d;if(c.c){try{var f=c.content;if(!H){var g=qc(f,Ok);H=g.Tr+g.Kp;if(0<H&&!(H<=f.byteLength)){t.warn("Header size underestimated, retrying",{Estimated:f.byteLength,Actual:H},X);x(a,b);return}}var z=q(f);z&&(t.trace("Header parsed",{Chunks:z.v.length},X),w.j=z);v.K&&(ta.Pa=c.parsed?c.Pa:c.content,ta.Pa=ta.Pa.slice(0,H));d=ta}catch(h){t.error("Exception while parsing header",h,X),d={c:!1,g:N.Qf}}a(d)}else t.warn("Unable to download header",fb(c), | |
X),a(c)})}function u(a){var b;if(b=a)b=a?-1<Pk.indexOf(a):void 0;return b?pd(Qk+c.Je*Rk):pd(Sk+c.Je*Tk)}function V(a,b){var d=v.wq;d.length&&a.children.forEach(function(a){"pssh"==a.type&&0<=d.indexOf(a.zd)&&a.Pa&&a.Pa.set([102,114,101,101],4)});if(v.Jl&&f==sb){var g=a.ub("mvex/trex");g.Bg.il&&(t.trace("Applying sampleIsDifferenceSample workaround",X,{Box:"trex"}),fa(g))}if(v.vu&&"playready"==ga()&&"encv"==b.type){var h=function(){var a=c.$.j.Rd.children.filter(function(a){return"pssh"==a.type&&"9A04F079-9840-4286-AB92-E65BE0885F95"== | |
a.zd})[0],d;try{d=Bc(Qe(a.data.subarray(10,a.data.length-10),"KID"))}catch(f){t.error("Exception parsing KID in PSSH",f)}d&&16==d.length&&b.children.map(function(a){try{if("sinf"==a.type)return a.ub("schi/tenc|8974DBCE-7BE7-4C51-84F9-7148F9882554")}catch(b){t.error("Exception finding TENC box",b)}}).filter(Z).forEach(function(a){var b=a.oh;if(b&&Id(d,b)){var c=function(a,c){var d=b[a];b[a]=b[c];b[c]=d};t.trace("Applying KID byte order workaround",X,{Box:a.type});c(0,3);c(1,2);c(4,5);c(6,7)}})};if(c.$)h(); | |
else{var k=function(a){a.newValue==eb&&(c.state.removeListener(k),h())};c.state.addListener(k)}}}var w=this,t=new c.log.r("CadmiumMediaStream"),H,X={Type:f,Bitrate:h,DownloadableId:g};n(w,{track:d,type:f,J:g,f:h,wj:m,size:k,Ua:l,j:null,Rj:u,Ga:Mb(function(b){function d(a){if(a.c)b(a);else{var c,z;for(z=0;z<g.length;z++)if(c=g[z],f[c.id]>v.qq)c=null;else break;c?(f[c.id]=(f[c.id]||0)+1,x(d,c)):b(a)}}w.Te=!0;var f={},g=kf.call(c.F,function(b){return a(l[b.id])});d({c:!1})}),Ba:X,toJSON:function(){return X}, | |
Lq:function(){var a=!1,b;f===Za?b=c.Fa():f===sb&&(b=c.Gb());-1!==b.indexOf(this)&&(a=!0);return a}})}function ve(a){var b=new bb(a),b=yh(b);b.byteLength=a.byteLength;return b}function ig(a){var b,c,d=v.Bq,f=[],g=d.length,h=0,k=0;d.indexOf("moov");for(b=0;b<g;b++)c=qc(a,d[b]).Pa,f.push(c),h+=c.length;a=new bb(h);for(b=0;b<g;b++)c=f[b],a.set(c,k,c.length),k+=c.length;return a}function Ng(a,b,c){var d,f,g=[],h=c.Ff,k=c.Is,l=k.length;b=lb(b*h/1E3);var m,n=c.Pa,v=n.byteOffset+n.byteLength+c.Jp,q=0;c=0; | |
d=v;for(var u=q,n=0;n<l;n++)m=k[n],q+=m.duration,m=v+m.size,v=q-u,n<l-1&&yc(v-b)>yc(v+k[n+1].duration-b)||(d={index:c++,stream:a,offset:d,length:m-d,startTime:ua(1E3*u/h),duration:ua(1E3*(q-u)/h),all:g,next:null,Oa:null},d.Ba={Type:d.stream.type,Bitrate:d.stream.f,ChunkNum:d.index,StartTime:Va(d.startTime),Duration:Va(d.duration)},f&&(d.Oa=f,f.next=d,yc(f.duration-(d.startTime-f.startTime)),f.duration=d.startTime-f.startTime),g.push(d),f=d,u=q,d=m),v=m;return g}function kc(a,b,c){if(a==sb)return b; | |
if(a==Za)return c}function zd(a){return!!a.j}function ze(a){return!a.j}function Bf(a){return a.map(function(a){return a.f})}function Ad(a){function b(a){return a.Lb.Zx===Wi}function c(b,f){var g=b.length,k=O-p(f);if(k>g)return!0;var l=a.q.value,r,m,n;n=l-L;r=C.first;for(m=A.first;r||m;)if(r&&r.endTime>=n&&(r=h),m&&m.endTime>=n&&(m=h),r&&(!m||r.endTime<m.endTime)?(k+=d(r),r=r.next):m&&(k+=d(m),m=m.next),k>g)return!0;r=C.W;for(m=A.W;r||m;)if(r&&r.startTime<=b.startTime&&(r=h),m&&m.startTime<=b.startTime&& | |
(m=h),r&&(!m||r.startTime>m.startTime)?(k+=d(r),r=r.Oa):m&&(k+=d(m),m=m.Oa),k>g)return!0;n=l-P*(b.startTime-l);r=C.first;for(m=A.first;r||m;)if(r&&r.endTime>=n&&(r=h),m&&m.endTime>=n&&(m=h),r&&(!m||r.endTime<m.endTime)?(k+=d(r),r=r.next):m&&(k+=d(m),m=m.next),k>g)return!0}function d(a){var b=a.media;a.media=null;a.Lb=h;a.Da(td);return b?b.length:0}function f(){return va(m(),q())}function g(){return O?v.Kb?Ma((x()+u())/v.Kb,0,1):0:Ma(f()/v.Qd,0,1)}function k(){return y?K(C):da(C)}function l(){return y? | |
K(A):da(A)}function m(){var b=a.q.value,c=Nc(b,C);return c?Ba(0,c.endTime-b):0}function x(){return jg(a.q.value,C)}function q(){var b=a.q.value,c=Nc(b,A);return c?Ba(0,c.endTime-b):0}function u(){return jg(a.q.value,A)}function p(b){for(var c=la.length,d,f,g=0,h=a.k.value.j.v,k=a.G.value.j.v;c--;)d=la[c],(f=d.media)?g+=f.length:b&&d.De&Uk&&(d.type===Za?g+=h[d.index].length:d.type==sb&&(g+=k[d.index].length));return g}function w(a){a=a.first;for(var b=[];a;)a.media&&a.Lb&&b.push(a.Lb.Tw()),a=a.next; | |
return b}function H(){return{AudioBufferLength:Va(m()),VideoBufferLength:Va(q())}}function X(b){var c=a.q.value,f,g,h=b.first,k=0,l;for(v.K&&(l=[]);h;)h.media&&(f=f||h,g=h,k+=h.duration),h=h.next;c=Ba(c-L,0);for(c=b.ib(c).index;k>aa&&f&&f.index<c;)f.media&&(v.K&&l.push(f.Lb),d(f),k-=f.duration),f=f.next;for(b=b.ib((f?f.endTime:a.q.value)+aa).index;k>aa&&g&&g.index>b;)g.media&&(v.K&&l.push(g.Lb),d(g),k-=g.duration),g=g.Oa;if(v.K)return l}function t(){var b=X(C),c=X(A);v.K&&a.bb&&v.Ih&&(0<b.length|| | |
0<c.length)&&F()}function F(){var b={};b[Vk]=w(C);b[Wi]=w(A);a.bb.As(b,a.q.value)}function K(b){for(b=b.ib(a.q.value);b&&(b.media||b.De!==td);b=b.next);return b}function da(b){for(b=b.ib(a.q.value);b&&b.media;b=b.next);return b}function ea(){a.fireEvent(be);Ja.zh("buffer")}function Ca(b,c){ja.trace("Disgarding media due to a track change");for(var f=c.first;f;)f.media&&f.media.stream.track!=b&&d(f),f=f.next;a.fireEvent(Xi);ea()}var ja=new a.log.r("MediaBuffer"),Ja=a.Cg,C=Ge(a.ed,145152E5),B=a.$,cb= | |
a.wa,A=Ge(a.$,v.Ro?C.W.endTime+ua(1E3/(B.j.Sg||60)):h),la=C.concat(A),L=v.dj,aa=v.Qd,O=v.Kb,P=v.wo/100,I=aa-L,y="parallel"===v.ug,B=new he(function(){var a;if(!(a=.9<=g())){a=k();var b=l();a=!(a||b)}return a}),G=a.$.j.v;G.length!=A.length&&(G=G[G.length-1],ja.error("Clipping video chunks to be less than audio",{FromEndTime:Va(G.startTime+G.duration),ToEndTime:Va(A.W.endTime),AudioEndTime:Va(C.W.endTime)}));if(!(0<=L&&aa>C.first.duration&&aa>=2*L))throw new Wa("bad buffer size");a.Q.addListener(function(b){v.K&& | |
a.bb?b.reset?ja.trace("ASE previously rejected the audio track switch, resetted!"):a.bb.Yz({Iv:b.newValue.U,toJSON:function(){return b.newValue.Ba}})?(ja.trace("ASE accepted the audio track switch"),Ca(b.newValue,C)):(ja.trace("ASE rejected the audio track switch"),a.Q.set(b.oldValue,{reset:!0})):Ca(b.newValue,C)});a.Tb.addListener(function(a){Ca(a.newValue,A)});a.addEventListener(vg,function(){var a;for(a=C.first;a;)a.media=null,a.Lb=null,a=a.next;for(a=A.first;a;)a.media=null,a.Lb=null,a=a.next}); | |
n(this,{eb:C,Ab:A,Hb:k,cc:l,vb:function(){var b=a.q.value,c=k(),d=l();c&&c.startTime-b>I&&(c=null);d&&d.startTime-b>I&&(d=null);if(d)if(c){if(d.startTime<=c.startTime&&c.startTime>b)return d}else return d;return c},Kf:O?c:ca,Ud:function(b,c,d,f,g,k,l){for(var r=0,m=0;m<b.length;m++){var n=b[m],x=c[m];if(d.type==sb&&d.track!=a.Q.value||d.type==Za&&d.track!=a.Tb.value){ja.trace("Rejecting received chunk because it doesn't match most recent track",n,d);return}if(n.media&&n.media.stream.f>=d.f){if(n.media.stream.Lq()){n.Da(Yi); | |
ja.warn("Rejecting received chunk because it is lower bitrate than existing chunk",n,d);return}n.media=null;v.K&&(n.Lb=h)}var S=1<b.length?new bb(new bb(f.buffer,r,x.length)):f,r=r+x.length;n.media={stream:d,hg:S,length:S.length,i:g};n.Da(Yi);v.K&&l&&(n.Lb=l,l.Ev=!0);t();kc(d.type,a.Pc,a.Ha).set({H:n,stream:d,i:g,Ij:k});ja.trace("Received chunk",n,{CdnId:g.id},H())}ea()},Gr:function(a){a.Yc=!0;v.Ej&&(a=a.media)&&(a.hg=null)},Jr:function(a){a.Yc=h;v.Ej&&d(a)},Ir:function(){for(var a=la.length,b,c;a--;)b= | |
la[a],b.Yc=h,(c=b.media)&&!c.hg&&d(b)},ze:function(){for(var c=a.Fa(),f=A.first,g,h;f;)f.media&&!f.Yc&&0>c.indexOf(f.media.stream)&&(v.K&&f.startTime>=a.q.value&&!g&&(g=f.startTime),d(f),h=!0),f=f.next;h&&(ja.trace("Discarding media based on stream filters"),v.K&&(v.Ih?(a.S.wd(b),F()):(c=a.bb.nd[a.Cf.Sf],c.rl(g),c.dl(a.q))),ea())},lp:function(){for(var c=a.Fa(),f=A.first,g,h,k,l=cb.Yg(),l=Ba(l,8008),r;f;)f.media&&(f.Yc&&(h=f.index,k=h+l/f.duration),!(f.index>=h&&f.index<=k)&&0>c.indexOf(f.media.stream)&& | |
(v.K&&f.startTime>=a.q.value&&!r&&(r=f.startTime),d(f),g=!0)),f=f.next;g&&(ja.trace("Discarding media based on stream filters"),v.K&&(v.Ih?(a.S.wd(b),F()):r&&(c=a.bb.nd[a.Cf.Sf],c.rl(r),c.dl(a.q))),ea())},Vp:function(){var b=a.q.value,c=Nc(b,C),d=Nc(b,A),f;c&&d&&(f=va(c.endTime,d.endTime));return kb(f,b)},ac:f,bk:g,tb:m,Uj:x,La:q,ik:u,Qw:w,Gd:p,Rw:function(){var b=a.q.value,c=Nc(b,A);return c?c.endTime:b},Oe:H,mh:B.get,compact:t,mz:F,reset:function(){var a;for(a=C.first;a;)a.media&&(d(a),a.Yc=h), | |
a=a.next;for(a=A.first;a;)a.media&&(d(a),a.Yc=h),a=a.next},Xw:function(b){var c=a.q.value;return(b=b.H)&&b.startTime-c>I?!1:!0}})}function Nc(a,b){var c=b.ib(a);if(c.media){for(;c.next&&c.next.media;)c=c.next;return c}}function jg(a,b){var c=b.ib(a),d=0;for(c&&c.media&&(d+=ua(Ma((c.endTime-a)/c.duration,0,1)*c.media.length),c=c.next);c&&c.media;)d+=c.media.length,c=c.next;return d}function Ge(a,b){var c=a.j.v,d,f=[],g,h,k=c.length;if(0>=k)throw new Wa("few chunks");for(var l=0;l<k;l++){d=c[l];g=d.startTime; | |
d=d.duration;var m=g+d;if(m>b)break;g={type:a.type,index:l,startTime:g,duration:d,endTime:m,De:td,media:null,all:f,Oa:null,next:null,Da:function(a){this.De=a}};g.Ba={Type:g.type,"Chunk index":g.index,StartTime:Va(g.startTime),EndTime:Va(g.endTime)};h&&(h.next=g,g.Oa=h);h=g;f.push(g)}f.ib=Yg;f.first=f[0];f.W=h;f.Vn=2<=f.length?(f.length-1)/(f.W.startTime-f.first.startTime):1;return f}function Yg(a){for(var b=this[Ma(ua(a*this.Vn),0,this.length-1)];b.startTime>a&&b.Oa;b=b.Oa);for(;b.endTime<a&&b.next;b= | |
b.next);return b}function df(a,b,c){function d(a){if(a.c){var b=a.N;w[b.stream.type+"$"+b.i.id]=a.B}t--;f()}function f(){if(!(0<t)||H){var a,b,c,d,z=[],k;for(k=0;k<l.length;k++)a=l[k],c=w[sb+"$"+a.id],d=w[Za+"$"+a.id],c&&d&&(c=Ba(c.O-c.requestTime,d.O-d.requestTime),z.push({i:a,Pd:c}),b=b===h?c:va(c,b));if(k=z.length){for(;k--&&1<z.length;)a=z[k],a.Pd>b+v.pt&&z.splice(k,1);g(z[0].i)}else 0>=t&&g()}}function g(a){a&&(a.pc={testreason:b,selreason:"relativelatency"});g=f=p;c({c:!!a,qb:a})}var k=a.xa, | |
l=a.F,m=a.G.value,n=a.k.value,q=a.n;a=q.Hb();for(var q=q.Hb(),u,w={},t=0,H,X,C=0;C<l.length;C++)u=l[C],X=yf(u,m,a),u=yf(u,n,q),X&&u&&(t+=2,k.R(X,d),k.R(u,d));$a(function(){H=!0;f()},v.qt)}function yf(a,b,c){if(b.Ua[a.id])return{responseType:Cc,url:b.Ua[a.id],hc:zf,offset:b.j.v[c?c.index:0].offset,length:8,i:a,track:b.track,stream:b,Eb:b.type+"-"+b.f+"-ping",Ic:!0}}function zf(a){a=new bb(a);a=new Vc(a);var b=a.l();if(8>b||b>Wk)throw new Wa("cdnping-badsize");if("moof"!=a.Pb(4))throw new Wa("cdnping-badtype"); | |
return!0}function Af(a,b,d){function f(b,c){var d=t[b.ga].F,k;c.type==Za?(k=(a.o.value==nc?w.Wc():w.jb()).k,k.j||(k=a.$)):k=a.G.value;for(var l=0;l<d.length;l++){var r=d[l];if(b.va===l){var m=a.n.La(),m=Fe(c,k,r,v.se,m);u.trace("CDN Selection: Downloading",{CdnId:r.id},c,k,{Count:m.za.length,Offset:m.offset,Length:m.length});p.R(m,g)}else m=yf(r,k,c),u.trace("CDN Selection: Pinging",{CdnId:r.id},c,k),p.R(m,h)}}function g(a){var b=a.N;a.c?C.Ud(b.za,b.Zc,b.stream,a.content,b.i,a.B):b.za&&b.za.forEach(function(a){a.media= | |
null;a.Da(td)});k(a);l()}function h(a){k(a)}function k(a){var b=a.N.i,c=b.id,d=b.location.id;a.c?(F[d]||(F[d]={}),F[d][c]={i:b,B:a.B}):F[d]&&F[d][c]&&delete F[d][c]}function l(){var a,c=t[K.ga];a=c.id;c=c.F[K.va].id;a=F[a]&&F[a][c]?n(F[a][c].B):void 0;if(a>v.xf)a=t[K.ga].F[K.va],a.pc={testreason:b,selreason:"fastselection",fastselthreshold:v.xf},d({c:!0,qb:a});else{if(c=a=C.vb()){var c=K,g=t[c.ga].id,h=t[c.ga].F[c.va].id;F[g]&&F[g][h]?c=m(c):(c.va<t[c.ga].F.length-1?(c.va++,g=!0):g=void 0,c=g||m(c))}c? | |
f(K,a):(a=q(F),d({c:!!a,qb:a}))}}function m(a){if(a.ga<t.length-1)return a.ga++,a.va=0,!0}function n(a){if(a)return 7.8125*a.Y/(a.L-a.requestTime)}function q(a){var d,f=0;c(a,function(a,b){b&&c(b,function(a,b){var c=n(b.B)*b.i.location.weight;c>f&&(f=c,d=b.i)})});d&&(d.pc={testreason:b,selreason:"maxweightedbw"});return d}var u=new a.log.r("CdnSelBw"),p=a.xa,w=a.wa,H=a.ca,t=a.ei,C=a.n,F={},K={ga:0,va:0},da=C.vb();da?f(K,da):d({c:!0,qb:a.i.value||a.Wd});return{kb:function(){return H.ka(v.se)*(t.length- | |
K.ga)}}}function Kg(a,b,d,f,g){function h(b,c){var g=F[b.ga].F,m;c.type==sb&&(m=a.G.value);for(var n=0;n<g.length;n++){var x=g[n];c.type==Za&&((m=d.Zj(x.location.id))?(m=f.fa(m+1,!0),da.push(x.location.id)):(m=t.jb(!0),m=m.k,m.j||(m=a.$)));if(b.va===n){var S=a.n.La(),S=Fe(c,m,x,v.se,S);w.trace("Downloading",{CdnId:x.id},c,m,{Count:S.za.length,Offset:S.offset,Length:S.length});H.R(S,k)}else S=yf(x,m,c),w.trace("Pinging",{CdnId:x.id},c,m),H.R(S,l)}}function k(a){var b=a.N;a.c?K.Ud(b.za,b.Zc,b.stream, | |
a.content,b.i,a.B):b.za&&b.za.forEach(function(a){a.media=null;a.Da(td)});m(a);n()}function l(a){m(a)}function m(a){var b=a.N.i,c=b.id,d=b.location.id;a.c?(ea[d]||(ea[d]={}),ea[d][c]={i:b,B:a.B}):ea[d]&&ea[d][c]&&delete ea[d][c]}function n(){var c,d=F[A.ga];c=d.id;d=d.F[A.va].id;c=ea[c]&&ea[c][d]?u(ea[c][d].B):void 0;if(c>v.xf)c=F[A.ga].F[A.va],c.pc={testreason:b,selreason:"fastselection",fastselthreshold:v.xf},g({c:!0,qb:c,rb:-1<da.indexOf(a.i.value)});else{if(d=c=K.vb()){var d=A,f=F[d.ga].id,k= | |
F[d.ga].F[d.va].id;ea[f]&&ea[f][k]?d=q(d):(d.va<F[d.ga].F.length-1?(d.va++,f=!0):f=void 0,d=f||q(d))}d?h(A,c):(c=p(ea),g({c:!!c,qb:c,rb:-1<da.indexOf(a.i.value)}))}}function q(a){if(a.ga<F.length-1)return a.ga++,a.va=0,!0}function u(a){if(a)return 7.8125*a.Y/(a.L-a.requestTime)}function p(a){var d,f=0;c(a,function(a,b){b&&c(b,function(a,b){var c=u(b.B)*b.i.location.weight;c>f&&(f=c,d=b.i)})});d&&(d.pc={testreason:b,selreason:"maxweightedbw"});return d}var w=new a.log.r("CdnSelCarrera"),H=a.xa,t=a.wa, | |
C=a.ca,F=a.ei,K=a.n,da=[],ea={},A={ga:0,va:0},ja=K.vb();ja?h(A,ja):g({c:!0,qb:a.i.value||a.Wd,rb:-1<da.indexOf(a.i.value)});return{kb:function(){return C.ka(v.se)*(F.length-A.ga)}}}function Lg(a){function c(){nd.removeEventListener(De,f);H&&H.response&&H.response.abort()}function d(){var a=w.vb();H&&H.response&&a!=H.H&&H.response.abort();f()}function f(){if(a.state.value==eb&&a.C.value!=Kc)if(a.td&&a.td<=ia())a.o.value!=nc&&a.Ta(new Ib(R.Of));else if(a.o.value==dc&&(ud()||a.o.set(mc)),a.o.value== | |
mc&&ud()&&a.o.set(dc),a.G.value.j)if(a.k.value.j)if(ja)k(ja),ja=h;else{var b=w.vb(),c;a.o.value!=nc&&(c=q.jb(),0>=c.nb&&0>=c.ob&&g("Heuristics"),b||g("Full"));if(!(H||X&&X.stream.type==Za&&X.stream.f>a.k.value.f)){if(b){a.o.value==nc&&(c=q.Wc());var d=b.index,r;if(b.type==Za)r=c.k,r.j&&r.j.v[d]||(n.warn("Stream is missing header or has less chunks than primary, falling back to primary",{BitrateOld:r.f,BitrateNew:a.$.f}),r=a.$),r!=a.k.value&&(n.trace("Stream switch",{BitraetOld:a.k.value.f,BitrateNew:r.f}), | |
a.k.set(r));else if(b.type==sb)r=a.G.value;else return;var S=r.j.v[d];w.Kf(S)||(r.type==sb&&w.tb()<v.Xa?n.trace("Ignoring max buffer bytes",b,r):r.type==Za&&w.La()<v.Xa?(r=a.Aa().ea(0,!0),S=r.j.v[d],n.trace("Ignoring max buffer bytes, and reverting to lowest video stream",b,r)):(g("NoRoom"),S=h));if(S){if(a.o.value==dc&&c){for(var d=c.nb,Ka=c.ob,p=w.Hb(),t=w.cc(),C=a.G.value.j.v,A=a.k.value.j.v,B=0;0<d&&p;)p.media||p==b||(B+=u.ka(C[p.index].length)),d-=p.duration,p=p.next;for(;0<Ka&&t;)t.media||t== | |
b||(B+=u.ka(A[t.index].length)),Ka-=t.duration,t=t.next;ea=B;K=u.Ed();da=Ba(u.ka(S.length)-K,1)}else da=K=ea=h;if(F>v.ll){k("dlfail");return}S=a.i.value;d=a.n.La();d=Fe(b,r,S,h,d);n.trace("Downloading chunk",b,r,{Offset:d.offset,Length:d.length});b.Da(sf);kc(r.type,a.Ee,a.Fe).set({H:b,stream:r,i:S});H={type:zh,stream:r,H:b,response:x.R(d,m)}}}!X&&c&&c.Wa&&l(c.Wa)}}else l(a.k.value);else l(a.G.value)}function g(b){a.o.value!=nc&&(n.trace("Buffering complete",{Cause:b},w),a.o.set(nc),A||(A=!0,a.ta("pb")))} | |
function k(b){n.trace("Selecting a CDN");H={type:Zi};switch(v.ml){case "bandwidth":b=Af(a,b,m);H.kb=b&&b.kb;break;default:df(a,b,m)}}function l(a){function b(){X==c&&(X=null);c=null;f()}if(!(X&&X.stream==a||a.Te)){n.trace("Downloading header",a);var c={stream:a,Gt:ia()};X=c;a.Ga(b);$a(b,v.kk)}}function m(b){var c=H;H=null;a.state.value==eb&&(c.type!=$i&&(b.c?(F=0,c.type==zh?(c=b.N,a.o.value==mc&&a.o.set(dc),w.Ud(c.za,c.Zc,c.stream,b.content,c.i,b.B)):a.i.set(b.qb)):b.g!=N.cb&&(H={type:$i},$a(m,C[F]), | |
++F>=C.length&&(a.o.value==dc&&a.o.set(mc),F=C.length-1))),f())}var n=new a.log.r("MediaDownloader"),x=a.xa,q=a.wa,u=a.ca,w=a.n,t=new Eb(500),H,X,C=v.hb,F=0,K,da,ea,A,ja="startup";(function(){Aa(f);a.addEventListener(rf,function(){Aa(f)});a.addEventListener(pf,function(b){b.Jc==Ah&&a.o.set(dc);Aa(f)});a.addEventListener(ae,function(){var b;a.G.value.j&&a.k.value.j&&(b=q.jb());b&&0>=b.nb&&0>=b.ob?n.trace("Repositioned without rebuffer",w):(n.trace("Repositioned, buffering",w),a.o.set(dc));t.pb(d)}); | |
nd.addEventListener(De,f);a.addEventListener(Ab,c)})();this.yc=function(){var c;if(a.o.value==dc&&H){var d;try{if(H.type==zh){var f=H.response,g=f.B;if(b(g.O))d=(1-(g.Y||0)/f.N.length)*da;else{var h=ia()-g.requestTime;d=Ba(K-h,0)+da}}}catch(k){}c=(d||0)+(ea||0);(d=H.kb&&H.kb())&&(c=Ba(d,c))}return c};this.Wg=p;this.Pe=function(){return.99}}function Fe(a,b,c,d,f){var g=b.j.v,h=g[a.index].offset,k=0,l=[],m=[];do{var n=g[a.index],k=k+n.length;l.push(a);m.push(n);a=a.next}while(k<d&&a);a=v.Yb;Z(f)&&v.mu&& | |
!v.Kb&&(a=Oa.max(v.wr,Oa.min(f/v.Vo,v.Yb+f/v.Qd*v.Wo)));return{responseType:Cc,hc:Gb,url:b.Ua[c.id],offset:h,length:k,i:c,track:b.track,stream:b,za:l,Zc:m,Eb:b.type+"-"+b.f+"-"+l.map(function(a){return a.index}).join("+"),Ic:!0,Yb:a}}function Mg(){var a;a=["avc1.640028","hev1.2.6.L153.B0","dvhe.01000000"].filter(function(a){a=gc('{0}/mp4;codecs="{1}"',"video",a);return Ed.isTypeSupported(a)});return gc('{0}/mp4;codecs="{1}"',"video",a.join(", "))}function Q(a){function b(){ud()&&q&&q.fe()}function c(a, | |
b){try{k.trace(gc("transitioning from {0} to {1}, reason: {2}",q&&q.getName()||"null",a.getName(),b)),q&&q.Lg(),q=a,q.Rc(),d()}catch(f){k.error("There was an error changing downloader state, e: ",f)}}function d(){t.pb(f)}function f(){a.state.value==eb&&(X(),q.update())}function h(){var a=v.as;l.bk()>a&&(H.da.Wh(m),X=p)}var k=new a.log.r("ParallelMediaDownloader"),l=a.n,m=v.Hk,n,q,u=v.Zr,w,t=new Eb(v.$r),H={S:this,da:{},$b:new Ub(v.ll)},X=h;a.gb=H;H.da="subchunk"===v.Yr?new M(m,m,a):new J(m,a);H.Kc= | |
"startup";(function(){function f(){d()}n=new g(a,H);"carrera"==v.lh?c(n.zq,"using carrera for initial playback."):c(n.pg,"select first CDN before playback.");w=qb(d,u);H.da.addEventListener(Bg,f);a.addEventListener(Ab,function(){yb(w);t.Oc();nd.removeEventListener(De,b);H.da.removeEventListener(Bg,f);H.da.Hc()});d();a.addEventListener(rf,function(){d()});a.addEventListener(pf,function(a){a.Jc==Ah&&(H.da.Wh(1),X=h,q.Ur(),d())});a.addEventListener(ae,function(){q.Tk();d()});a.addEventListener(Ti,function(){q.fe()}); | |
nd.addEventListener(De,b)})();this.Sa=c;this.yc=function(){return q.yc()};this.wd=function(a){H.da.xd();H.da.Hc(a)};this.Wg=function(){return q&&q.getName()||"null"};this.Pe=function(){return q.Pe()}}function tb(a){var b=a.gb,c,d=b.da,f=b.S,g=b.sb;this.getName=function(){return"BaseState"};this.Md=function(){this.log=new a.log.r(this.getName())};this.Md();this.Pe=function(){return.99};this.fe=this.update=this.Lg=this.Rc=p;this.Ur=function(){a.o.set(dc);f.Sa(g.Hs,"buffer underrun")};this.Tk=function(){f.Sa(g.Qh, | |
"user seek")};this.Tj=function(){return c};this.yc=function(){return 0};this.Rh=function(){return b.$b.sl(a.i.value)?(b.Kc="dlfail",b.Fb=0,f.Sa(g.pg,"download failures"),!0):!1};this.Eg=function(a,b){d.Qc({H:a,sf:b})};this.Ga=function(a){function b(){c==d&&(c=null);d=null}if(!(c&&c.stream==a||a.Te)){this.log.trace("Downloading header",a);var d={stream:a,Gt:ia()};c=d;a.Ga(b);$a(b,v.kk)}};this.Tg=function(b,c){if(b.type===Za)var d=c.k;else if(b.type==sb)d=a.G.value;else return h;return d.j.v[b.index]}; | |
this.ng=function(){var a=ia()-b.Et;return v.th-a};this.hl=function(){b.Et=ia()}}function ab(a){function b(){f.ai()&&(h.xd(),h.Hc())}var c=new tb(a),d=a.gb,f=a.wa,g=a.n,h=d.da,k=new Eb(1E3);n(this,c);d.Kc="startup";this.getName=function(){return"PlayingState"};this.Rc=function(){d.$b.uj();a.o.set(nc);d.da.xb(!0)};this.update=function(){if(a.state.value==eb&&a.C.value!=Kc)if(k.pb(b),a.td&&a.td<=ia())a.o.value!=nc&&a.Ta(new Ib(R.Of));else if(!a.G.value.j)this.Ga(a.G.value);else if(!a.k.value.j)this.Ga(a.k.value); | |
else if(!this.Rh()){var c=g.vb(),h=this.Tj();if(!(h&&h.stream.type==Za&&h.stream.f>a.k.value.f)&&c&&d.da.jf()){var l=f.Wc(),r=this.Tg(c,l);g.Kf(r,!0)&&a.o.value==nc&&this.Eg(c,l);!h&&l&&l.Wa&&this.Ga(l.Wa)}}}}function Ya(a){function b(c){p.log.trace("in _exitBufferingState()");a.o.value!=nc&&(p.log.trace("Buffering complete",{Cause:c},g),l||(l=!0,a.ta("pb")));f.Sa(m.qf,"exiting buffering: "+c)}var c=new tb(a),d=a.gb,f=d.S,g=a.n,h=a.ha,k=a.ca,l,m=d.sb,q=a.wa,u=145152E5,p=this;n(this,c);this.yc=function(){return v.th? | |
this.ng():u};this.getName=function(){return"BufferingState"};this.Rc=function(){a.o.set(dc);d.da.xb(!0)};this.update=function(){ud()?a.o.value==mc&&a.o.set(dc):a.o.set(mc);if(!a.G.value.j)this.Ga(a.G.value);else if(!a.k.value.j)this.Ga(a.k.value);else if(!this.Rh()){var c=g.vb(),f=q.jb();if(h.zg()){if(0>=f.nb&&0>=f.ob){b("Heuristics");return}if(v.th&&0>=this.ng()){b("maxBufferingTime");return}if(!c&&g.mh()){b("Full");return}}for(var l=f.nb,r=f.ob,m=g.Hb(!0),n=g.cc(!0),x=a.G.value.j.v,ka=a.k.value.j.v, | |
w=0;0<l&&m;)m.media||m==c||(w+=k.ka(x[m.index].length)),l-=m.duration,m=m.next;for(;0<r&&n;)n.media||n==c||(w+=k.ka(ka[n.index].length)),r-=n.duration,n=n.next;u=w;l=this.Tj();if(!(l&&l.stream.type==Za&&l.stream.f>a.k.value.f)){if(c&&d.da.jf()){if(!f.k.j){this.Ga(f.k);return}r=this.Tg(c,f);g.Kf(r,!0)&&this.Eg(c,f)}!l&&f&&f.Wa&&p.Ga(f.Wa)}}}}function u(a){var b=new tb(a),c=this,d=a.gb,f=d.S,g=d.da,h=a.wa,k=a.n,l=d.sb;n(this,b);this.getName=function(){return"SeekingState"};this.Rc=function(){g.xd(); | |
g.Hc()};this.update=function(){var b;a.G.value.j&&a.k.value.j&&(b=h.jb());b&&0>=b.nb&&0>=b.ob&&a.o.value!==mc?(this.log.trace("Repositioned without rebuffer",k),f.Sa(l.qf,"no buffering required during seek.")):(this.log.trace("Repositioned, buffering",k),c.hl(),f.Sa(l.o,"buffering required during seek."))}}function w(a){var b=new tb(a),c=a.gb,d=c.S,f=c.da,g=c.sb;n(this,b);this.getName=function(){return"RebufferingState"};this.Rc=function(){f.xd();f.Hc()};this.update=function(){c.Kc="buffer underrun"; | |
d.Sa(g.pg,"CDN selection due to rebuffer.")}}function m(a){function b(){ud()?v.mo||1<w.Wp()?w.pb(c):c():this.rg()}function c(){if(!x){x={type:Zi};var b=l.Kc;t.log.trace("Selecting a CDN");if("startup"===b&&"carrera"===v.lh)b=Kg(a,b,t.og,t.P,f),x&&(x.kb=b&&b.kb);else switch(v.ml){case "bandwidth":b=Af(a,b,d);x&&(x.kb=b&&b.kb);break;default:df(a,b,d)}}}function d(b){b.c?(a.i.set(b.qb),t.log.trace("cdn selected: ",{name:b.qb.name}),l.Kc=h,q||(a.o.value==dc||a.o.value==mc?l.S.Sa(l.sb.o,"underrun, buffer media before resume."): | |
l.S.Sa(l.sb.qf,"buffer has media, resume playback"))):(t.log.trace("cdn selection failed!"),t.rg(),a.o.value==mc&&(w.Xh(u[p]),p=p<u.length-1?p+1:u.length-1),x=null);q&&l.S.Sa(l.sb.Qh,"user seek")}function f(b){b.c?(a.i.set(b.qb),t.log.trace("cdn selected: ",{name:b.qb.name}),l.Kc=h,l.rb=b.rb):(t.rg(),a.o.value==mc&&(w.Xh(u[p]),p=p<u.length-1?p+1:u.length-1),x=null);q&&l.S.Sa(l.sb.Qh,"user seek")}function g(){var b=a.Fa(),c=b.length;n(b,Bd);for(var d=0;d<c;d++)b[d].lower=b[d-1],b[d].Kd=b[d+1];return b} | |
var k=new tb(a),l=a.gb,m=l.da,x,q,u=v.hb,p=0,w=new Eb(1),t=this;"carrera"===v.lh&&(t.og=new Wg(a),t.P=g());n(this,k);this.getName=function(){return"CDNSelectionState"};this.yc=function(){var a=m.hk()||0;if(x){var b=x.kb&&x.kb();b&&(a=Ba(b,a))}return Ba(a,this.ng())};this.Rc=function(){w.Xh(1);p=0;l.$b.uj();q=!1;t.hl()};this.Lg=function(){w.Oc();x=null};this.fe=function(){a.o.value==mc&&ud()&&w.Zs(c)};this.update=v.ju?b:c;this.Tk=function(){q=!0};this.rg=function(){a.o.value==dc&&a.o.set(mc)}}function l(a){function b(c){w.log.trace("in _exitBufferingState()"); | |
a.o.value!=nc&&(w.log.trace("Buffering complete",{Cause:c},g),q||(q=!0,a.ta("pb")));f.Sa(x.qf,"exiting buffering: "+c)}var c=new m(a),d=a.gb,f=d.S,g=a.n,h=a.ha,k=a.ca,l=a.wa,x=d.sb,q,u=!1,p,w=this;d.rb=!1;n(this,c);this.getName=function(){return"InitBitrateSelectionState"};this.Lg=function(){a.rb=d.rb;a.nj=w.og.$p()};this.update=function(){if(a.i.value)a:if(!a.G.value.j)w.Ga(a.G.value);else if(!a.k.value.j)w.Ga(a.k.value);else{if(!w.Rh()){var f=g.tb()>=v.ig?0:v.ig-g.tb(),m=g.La()>=v.mj?0:v.mj-g.La(); | |
if(d.rb&&0===m&&0===f&&h.zg())b("Carrera");else{p||u||(p=w.og.Zj(a.i.value.location.id));u=!p;var n=g.vb();if(u){if(f=l.jb(!0),0>=f.ob&&0>=f.nb&&h.zg()){b("Heuristics");break a}}else{d.rb=!0;var x=w.P.fa(p+1,!0),q=w.P.ea(p+1,!1),f={k:x,Wa:q,nb:f,ob:m}}for(var m=f.nb,x=f.ob,q=g.Hb(!0),ka=g.cc(!0),t=a.G.value.j.v,C=a.k.value.j.v,ja=0;0<m&&q;)q.media||q==n||(ja+=k.ka(t[q.index].length)),m-=q.duration,q=q.next;for(;0<x&&ka;)ka.media||ka==n||(ja+=k.ka(C[ka.index].length)),x-=ka.duration,ka=ka.next;n&& | |
d.da.jf()&&(m=w.Tg(n,f),g.Kf(m,!0)&&w.Eg(n,f))}}}else c.update.apply(w)}}function g(a,b){function c(b){b=new b(a);b.Md.call(b);return b}b.sb=this;this.qf=c(ab);this.Qh=c(u);this.Hs=c(w);this.pg=c(m);this.o=c(Ya);this.zq=c(l)}function t(a,b,c){function d(){!n&&l&&(m=a.Mc())&&f(m)}function f(a){function c(a){var f;b.state.value==eb&&(a&&a.c?(u.Fb=0,f=a.N,h.Ud(f.za,f.Zc,f.stream,a.content,f.i,a.B)):(m&&(f=m.H)&&(f.media=null,f.Da(td)),a&&a.g==N.cb||(a&&(f=a.N,u.$b.ji(f.i,f.za[0],f.stream)),++u.Fb>=u.hb.length&& | |
(u.Fb=u.hb.length-1))),Aa(d));p.A(aj);m=null;n&&(n=null)}var l=a.H,z=a.sf,r=l.index;if(l.type===Za)z=z.k,z.j&&z.j.v[r]||(g.warn("Stream is missing header or has less chunks than primary, falling back to primary",{BitrateOld:z.f,BitrateNew:b.$.f}),z=b.$),z!=b.k.value&&(g.trace("Stream switch",{BitrateOld:b.k.value.f,BitrateNew:z.f,"Chunk Index":r}),b.k.set(z,{tj:z.j.v[r].startTime}));else if(l.type==sb)z=b.G.value;else return;if(z.j.v[r]){var v=b.i.value,r=q(l,z,v);l.Da(sf);kc(z.type,b.Ee,b.Fe).set({H:l, | |
stream:z,i:v});n=l={type:Xk,stream:z,H:l};l.response=k.R(r,c);a.response=l.response}}var g=new b.log.r("MediaDownloadWorker"),h=b.n,k=b.vh,l=c,m,n,u=b.gb,p=new Hb;this.addEventListener=p.addListener;u.hb=v.hb;u.Fb=0;a.addEventListener(bj,function(a){!n&&l&&(a.jk=!0,d())});this.isEnabled=function(){return l};this.xb=function(a){l=a};this.Vg=function(){return m};this.dg=function(a){n&&n.response&&m&&(a?a(m):1)&&(m.H.media=null,m.H.Da(td),g.trace("Aborted download of chunk:",m.H.index),n.response.abort(), | |
m=n=null)}}function q(a,b,c){var d=b.j.v,f=d[a.index].offset,g=0,h=[],k=[];do{var l=d[a.index],g=g+l.length;h.push(a);k.push(l);a=a.next}while(void 0>g&&a);return{responseType:Cc,hc:Gb,url:b.Ua[c.id],offset:f,length:g,i:c,track:b.track,stream:b,za:h,Zc:k,Eb:b.type+"-"+b.f+"-"+h.map(function(a){return a.index}).join("+"),Ic:!0}}function J(a,c){var d=[],f=c.ca,g=new wa.Bb,h=new Hb;this.addEventListener=h.addListener;this.removeEventListener=h.removeListener;this.Qc=function(a){var b=g.Qc(a);a.H.Da(Bh); | |
h.$h(bj);return b};this.Mc=function(){return g.Mc()};this.mf=function(){return g.mf()};this.size=function(){return g.size()};this.contains=function(a,b){return g.contains(a,b)};this.forEach=function(a){return g.forEach(a)};this.xb=function(a){d.forEach(function(b){b.xb(a)})};this.hk=function(){var a=0;d.forEach(function(d){var f=d.Vg();if(f&&f.H.De===sf){d=f.H;var g=f.sf,g=d.type===Za?g.k:c.G.value,h=f.response;h&&(f=f.response.B,a=b(f.O)?a+Ba(h.N.length-(f.Y||0),0):a+g.j.v[d.index].length)}});a= | |
a||0;return f.ka(a)};this.Hc=function(a){d.forEach(function(b){b.dg(a)})};this.Wh=function(a){var b=d.length;a=Ma(a,0,b);for(var c=0;c<b;c++)d[c].xb(c<a)};this.xd=function(){g.forEach(function(a){a.H.Da(td)});g.clear()};this.jf=function(){return 2>g.size()};for(var k=0;k<a;k++){var l=new t(this,c,1>k);l.addEventListener(aj,function(){h.A(Bg)});d.push(l)}}function ma(a){var b=this;this.Ue=a||65536;this.Uo=function(a,c,d){var f=[],g,h;if(1===d||a.length<=b.Ue)f.push({offset:a.offset,length:a.length, | |
He:a.offset+a.length,Mb:c});else{var k=Oa.floor(Oa.floor(a.length/b.Ue)/d)*b.Ue||b.Ue,l=Oa.floor(a.length/k),l=0<l?l-1:0,z=a.length-k*l;for(d=0;d<l;d++)g=a.offset+d*k,h=g+k-1,f.push({offset:g,length:k,He:h,Mb:c});0<z?(g=a.offset+l*k,f.push({offset:g,length:z,He:g+z,Mb:c})):f[f.length-1].He+=1}a=f.length;for(d=0;d<a;d++)c=f[d].Mb,f[d].index=d+1,f[d].Ba={name:gc("{0}_{1} - {2}/{3}",c.type,c.index,d+1,a)};return f}}function M(a,c,d){function f(a){if(a){var b=a.H;a=a.sf;var c=b.type===Za?a.k:b.type=== | |
sb?d.G.value:void 0;a=c.j.v[b.index];b.content=new bb(a.length);b.Qb=t.Uo(a,b,w);b.Qb.forEach(function(a){a.i=d.i.value;a.stream=c;C.Qc(a);F.$h(Ch)})}}function g(a){a&&(a.media=null,a.Da(td),a.Qb=null)}function h(a){function b(a){if(a.Qb){for(var c=a.Qb.length,d=0;d<c;d++){var f=a.Qb[d];if(!f.response||!f.response.c)return!1}return!0}return!1}if(a){var c=a.Mb,z,m=d.gb;if(a.response.c){if(b(c)){c.Qb.forEach(function(a){c.content.set(a.response.content,a.offset-c.N.offset)});try{c.content=ha(c.content), | |
z=!0}catch(n){g(c),m.$b.ji(a.i,c,a.stream),l.warn("Exception parsing response",n,c)}delete H[c.type+"_"+c.index];z&&p.Ud([c],c.N.Zc,a.stream,c.content,a.i,k(c));c.Qb=null;c.content=null;a=A;A=null;f(a);F.A(Bg)}}else a.response=null,m.$b.sl(a.i)&&u.xb(!1),C.Qc(a),F.$h(Ch)}}function k(a){var b={},c=a.Qb;a.Qb&&(b.requestTime=zc(c,function(a){return a.response.B.requestTime}),b.O=zc(c,function(a){return a.response.B.O}),b.L=ba(c,function(a){return a.response.B.L}),b.Y=a.content.length);return b}var l= | |
new d.log.r("SubChunkDownloadJobManager"),m=[],n=d.ca,u=this,p=d.n,w=c,t=new ma(v.Rt),H={},C=new wa.Bb,A,F=new Hb;this.addEventListener=F.addListener;this.removeEventListener=F.removeListener;this.Qc=function(a){a.H.Da(Bh);f(a)};this.jf=function(){return Kb.keys(H).length<v.gr&&C.size()<=w};this.Mc=function(){var a=C.Mc();if(!a)return null;a.i=d.i.value;var b=a.Mb;if(!H[b.type+"_"+b.index]){b.N=q(b,a.stream,a.i);kc(a.stream.type,d.Ee,d.Fe).set({H:b,stream:a.stream,i:a.i});H[b.type+"_"+b.index]=b; | |
b.Da(sf);var c=b.index;if(b.type===Za)b=a.stream,b.j&&b.j.v[c]||(l.warn("Stream is missing header or has less chunks than primary, falling back to primary",{BitrateOld:b.f,BitrateNew:d.$.f}),b=d.$),b!=d.k.value&&(l.trace("Stream switch",{BitrateOld:d.k.value.f,BitrateNew:b.f}),d.k.set(b));else if(b.type!==sb)throw new Wa("unexpected chunk type.");}return a};this.mf=function(){return C.mf()};this.size=function(){return C.size()};this.contains=function(a,b){return C.contains(a,b)};this.forEach=function(a){return C.forEach(a)}; | |
this.xb=function(a){m.forEach(function(b){b.xb(a)})};this.hk=function(){var a=0;m.forEach(function(c){if(c=c.Vg()){var d=c.response;if(d){var f=d.B;a=b(f.O)?a+Ba(d.N.length-(f.Y||0),0):a+c.length}}});a=a||0;return n.ka(a)};this.Hc=function(){Kb.keys(H).forEach(function(a){g(H[a]);delete H[a]});m.forEach(function(a){a.dg()})};this.Wh=function(a){var b=m.length;a=Ma(a,0,b);for(var c=0;c<b;c++)m[c].xb(c<a)};this.xd=function(){A&&(g(A.H),A=null);C.forEach(function(a){a&&g(a.Mb)});C.clear()};for(c=0;c< | |
a;c++){var K=new B(u,d,c<w);K.addEventListener(cj,function(a){h(a)});m.push(K)}}function B(a,b,c){function d(){!l&&k&&(l=a.Mc())&&f(l)}function f(a){var c=G(a),g={type:Yk,stream:a.stream,Xz:a};m=g;g.response=h.R(c,function(c){Aa(d);var f=m;f&&b.state.value==eb&&f.type!=dj&&(c&&c.c?n.Fb=0:c&&c.g==N.cb||(n.$b.ji(a.i,a.Mb,a.stream),++n.Fb>=n.hb.length&&(n.Fb=n.hb.length-1)));q.A(cj,l);l=null;m&&m.type!=dj&&(m=null)});a.response=g.response}var g=new b.log.r("SubChunkDownloadWorker"),h=b.vh,k=c,l,m,n= | |
b.gb,q=new Hb;this.addEventListener=q.addListener;n.hb=v.hb;n.Fb=0;a.addEventListener(Ch,function(a){!l&&k&&(a.jk=!0,d())});this.isEnabled=function(){return k};this.xb=function(a){k!=a&&(k=a)&&d()};this.Vg=function(){return l};this.dg=function(){m&&m.response&&(g.trace("Aborted download of chunk:",l),m.response.abort(),l=m=null)}}function G(a){var b=a.stream;return{responseType:Cc,hc:ya,url:b.Ua[a.i.id],offset:a.offset,length:a.length,za:[a.Mb],i:a.i,track:b.track,stream:b,Eb:b.type+"-"+b.f+"-"+a.Mb.index+ | |
"- sub."+a.index,Ic:!0}}function ya(a){return new bb(a)}function db(a){function b(){10>=l.length?c():b=p}function c(){a.state.value!=eb&&a.state.value!=cc||d()}function d(){var b=w,c;w=ia();c=w-b;b=(h=h||a.n)&&h.mh();if(!b||t){if(++A>=F&&(A=0,a.fireEvent(sg)),0<l.length){var b=va(u,l[l.length-1].L-l[0].requestTime),g=0,k=ia(),r=b>=u?k-u:l[0].requestTime,r=k-r<=v.ci?r:k-v.ci;q=0;l.forEach(function(a){var b=a.L-a.requestTime,c=0;if(!(0>=b||a.L<r||a.requestTime>k)){if(a.requestTime>=r&&a.L<=k)c=1;else{var d= | |
a.L;d>=r&&d<=k?c=(a.L-r)/b:(d=a.requestTime,d>=r&&d<=k&&(c=(k-a.requestTime)/b))}g++;q+=a.Y*c}});q=ua(q);m=ua(Ba(8,q/b));ea=b;t=!1}}else b&&f(c)}function f(a){l.forEach(function(b){b.requestTime+=a;b.O+=a;b.L+=a})}function g(a){return ua(a/m)}var h,k,l=[],m=128,n=0,q=0,u=v.ci,w=ia(),t,C,A=0,F=lb(4),K,B,ea,L=0;a.addEventListener($d,function(a){var c=a.B,d=a.N;d.i&&(C=d.i.location.id);K=c.requestTime;if(a.c&&c.Y>Si&&a.type==Cc){g(c.Y);for(l.push(c);100<l.length;)l.shift();t=h&&h.mh();b()}});this.dc= | |
function(){return m};this.pq=function(){return ua(7.8125*m)};this.gk=function(){return ua(7.8125*n)};this.Gd=function(){return q};this.$j=function(){return C};this.ak=function(){return K};this.ka=g;this.Xb=function(){k=k||new ad(a.n,a.ed);return k.Xb(m,0)};this.ve=function(){return this.pq()};this.bh=function(){return ea};this.Ed=function(){return 0};a.addEventListener(Ab,function(){B&&yb(B)});B=qb(c,250);var ja=new le(1E3,function(){60<L?ja.yd():(n=(n*L+m)/(L+1),L+=1)});ja.Zh()}function Ub(a){var b= | |
{};this.ji=function(a,c,d){a=a.name+"_"+(d.type+"_"+c.index);b[a]=b[a]?b[a]+1:1};this.uj=function(){b={}};this.sl=function(c){return Kb.keys(b).some(function(d){var f=b[d];return-1<d.indexOf(c.name)&&f>a})}}function Gb(a){return ha(new bb(a))}function ha(a){for(var b=yh(a),c,d,f,g=0;g<b.length;g+=2){c=b[g];if("moof"!=c.type||"mdat"!=b[g+1].type)throw new Wa("data is not moof-mdat box pairs");if(v.uu&&"moof"==c.type&&(d=c.ub("traf/saio"),f=c.ub("traf/A2394F52-5A9B-4F14-A244-6C427C648DF4"),d&&f&&(f= | |
f.ro.byteOffset-c.Pa.byteOffset,d.Xs[0]!=f))){var h=d;d=f;f=new Vc(h.Pa);f.seek(h.size-h.Y);h=f.I(1);f.I(3)&1&&(f.l(),f.l());h=1<=h?8:4;f.l();f.Ll(d,h)}v.Jl&&"moof"==c.type&&(c=c.ub("traf/tfhd"),(d=c.Bg)&&d.il&&fa(c))}return a}function fa(a){var b=new Vc(a.Pa);b.seek(a.size-a.Y);b.I(1);var c=b.I(3);b.l();var d;switch(a.type){case "tfhd":c&1&&b.oa();c&2&&b.l();c&8&&b.l();c&16&&b.l();c&32&&(d=b.na(2));break;case "trex":b.l(),b.l(),b.l(),d=b.na(2)}d&&(d[1]&=254)}function pc(a,b,c,d){var f=b.type;b=kc(f, | |
"ec-3"==b.j.tg?'audio/mp4; codecs="mp4a.a6"':'audio/mp4; codecs="mp4a.40.5"',v.pu);var g={Type:f},h,k=!1,l,m=this,q,u={data:[],state:"",operation:""};v.fc&&v.af&&(q=!0,m.Pg=new Xa);d.trace("Adding source buffer",g,{TypeId:b});h=c.addSourceBuffer(b);na(h);Cg&&(h.addEventListener("updatestart",function(){u.state="updatestart"}),h.addEventListener("update",function(){u.state="update"}),h.addEventListener("updateend",function(){k=!1;l&&l();u.state="updateend";q&&h.buffered.length&&(q=!1,m.Pg.set(!0))}), | |
h.addEventListener("error",function(){d.error("SourceBuffer event: error",g,{updating:h.updating});a.Ta(new Ib(R.bn,kc(f,N.ke,N.le)))}),h.addEventListener("abort",function(){}));a.addEventListener(vg,function(){h=null});n(m,{type:f,appendBuffer:function(a){u.data=a||[];u.state="init";u.operation="append";h[ej](a);Cg&&(k=!0)},remove:function(a,b){try{tf&&(u.data=[],u.state="init",u.operation="remove",h.remove(a,b),Cg&&(k=!0))}catch(c){d.error("SourceBuffer remove exception",c,g)}},bc:function(){return k}, | |
ol:function(a){l=a},Up:function(){try{var a=h.buffered,b,c,d,f=0;if(a)for(b=[],c=0,d=a.length,c=0;c<d;c++){var g=a.start(c),k=a.end(c),f=f+(k-g);b.push(g+"-"+k)}if(b)return{Buffered:f.toFixed(3),Ranges:b.join("|")}}catch(l){}},Zp:function(){return u}})}function na(a){na=p;ej=a.appendBuffer?"appendBuffer":"append";tf=!v.vo&&!!a.remove;Cg=!!a.addEventListener}function La(a){function c(b){var d=!1,f;if(f=v.ts)f=(f=(f=a.la)&&f.errorCode)&&0<=[R.me,R.ie].indexOf(f);f&&(d=!0);v.Oo&&(d||(aa.removeAttribute("src"), | |
aa.load&&aa.load()),aa.webkitDeleteKey&&aa.webkitDeleteKey(W,Y));uf.revokeObjectURL(T);if(xa&&!b)try{xa.close()}catch(g){la.error("Exception on keysession close ",R.Vf,g)}v.Dj&&aa.removeEventListener("contextmenu",Cb);d||a.Za.removeChild(aa);aa=M=null;T=""}function d(a){try{aa&&(fc=aa.currentTime)}catch(b){la.error("Exception while getting VIDEO.currentTime",b),a&&K(R.Vm,b)}return lb(1E3*fc)}function g(){Z&&Z.Rr&&Z.Sr&&(Z=h,J.A(fj))}function k(a,b,c){v.Mj&&la.trace("KeySession update",a&&P(a));try{if(xa){var d= | |
xa.update(a);d&&d.then&&d.then(A).catch(function(a){la.error("keySession update promise rejected",a);a=oe(a);F(R.Xf,a)})}else aa.webkitAddKey(W,a,b,c)}catch(f){la.error("Exception calling keySession.update or addKey",f),K(R.Wm,f)}}function l(){la.trace("Video element event: seeking");Z?Z.ry=!0:F(R.en)}function m(){la.trace("Video element event: seeked");Z?(Z.Rr=!0,g()):F(R.dn)}function q(){Z&&(Z.Sr=!0,g());J.A(gj)}function u(a){la.trace("Received event: sourceopen");Ua||(Ua=!0,J.A(hj,a))}function x(a){a= | |
dd(a,bd);la.error("Video element event: error",a.cf);if(ha&&ha.Xe()&&!v.et){var b={ErrorCode:R.Cn};n(b,fb(a.uc));ha.terminate(b)}else F(R.Um,a.uc)}function w(a){var b=dd(a,cd);la.error("Received event: keyerror",b.cf);ha&&ha.Xe(a)?((a=/Chrome/.test(lc)&&1==a.systemCode&&a.errorCode&&1==a.errorCode.code)&&ra.error("SSManager , ignoring keyerror"),a||(a={ErrorCode:R.kn},n(a,fb(b.uc)),ha.terminate(a))):F(R.Xf,b.uc)}function t(b){la.trace("Received event: "+b.type);if(aa){var c;if(!ia){ia=!0;a.ta("lg"); | |
try{var d=Zk[ga()];c=b.initData;c instanceof ArrayBuffer&&(c=new bb(c));d&&(c=d(c,a.$.j.Rd));oa||!Mc||v.qs&&aa.webkitGenerateKeyRequest||(aa.msSetMediaKeys?(Q=new Mc(W),aa.msSetMediaKeys(Q)):aa.setMediaKeys?(Q=new Mc(W),aa.setMediaKeys(Q)):aa.webkitSetMediaKeys&&(Q=new Mc(W),aa.webkitSetMediaKeys(Q)));oa&&Zb.requestMediaKeySystemAccess(W,[{initDataTypes:["cenc"],persistentState:"required",videoCapabilities:[{contentType:'video/mp4; codecs="avc1.640028"',robustness:"HW_SECURE_DECODE"},{contentType:'video/mp4; codecs="avc1.640028"', | |
robustness:"SW_SECURE_DECODE"}]},{initDataTypes:["cenc"],persistentState:"required"}]).then(function(a){la.trace("supportedconfig",mb.stringify(a.getConfiguration()));return a.createMediaKeys()}).then(function(a){pa=a;return aa.setMediaKeys(a)}).then(function(){var a=pa.createSession();a.addEventListener("message",C);a.addEventListener("keystatuseschange",function(a){la.trace("Received event: "+a.type);try{a.target.keyStatuses.forEach(function(a){la.trace("key status: "+a);"expired"==a&&F(R.Ki);"internal-error"== | |
a&&F(R.Tm);"output-not-allowed"==a&&F(R.Li);"output-downscaled"!=a||Ia||(Ia=!0,la.error("output-downscaled"))})}catch(b){la.error("Exception in iterating keystatuses",b)}});a.generateRequest(b.initDataType,c);xa=a}).catch(function(a){la.error("Exception creating keySession",a);a=oe(a);var b=R.Sm;a.g==N.Rl&&(b=R.Yf);F(b,a)})}catch(f){la.error("Exception creating MediaKeys",f);K(R.Ji,f);return}if(!oa)try{var g;Q?g=xa=Q.createSession("video/mp4",c,null):(aa.webkitGenerateKeyRequest(W,c),g=aa);g.addEventListener(cb+ | |
"keyerror",w);g.addEventListener(cb+"keymessage",C);g.addEventListener(cb+"keyadded",A)}catch(h){la.error("Exception generating key request",h),K(R.Yf,h)}}}}function C(b){var c=b.messageType;la.trace("Received event: "+b.type+(c?" , "+c:""));var d=b.sessionId||xa&&xa.sessionId,f=b.message;b=ga();f instanceof ArrayBuffer&&(f=new bb(f));v.Mj&&la.trace("KeySession message",f&&P(f));if(!Qa&&v.ku){Qa=!0;var g=[99,100,109,95,105,100,58],h=new bb(g.length+f.length);h.set(g,0);h.set(f,g.length);k(h,f,d)}else if(v.Il&& | |
Id([8,4],f))g=Bc(v.Il),k(g,f,d);else if("fps"==b&&Id([99,101,114,116,105,102,105,99,97,116,101],f))a.ta("scs"),gb(a,function(b){b.c?(a.ta("scr"),k(b.we,f,d)):F(R.Em,b)});else if(ha&&ha.Pq()&&(ha.ki({c:!0,Db:f,sc:ga(),Ye:Y}),ha.oi().then(function(a){a.c&&k(a.sd,a.Db,Y)})),!Bb||v.fc&&sa!==$k){Bb=!0;try{Y=d;var l;a.$.j.Rd.children.forEach(function(a){"pssh"==a.type&&"29701FE4-3CC7-4A34-8C5B-AE90C7439A47"==a.zd&&(l=a.data)});ba="playready"==ga()?(g=Qe(f,"PlayReadyKeyMessage","Challenge"))?Bc(g):f:f;h= | |
{sc:ga(),data:ba,Bs:l};v.fc&&(sa++,h.Vq=sa==ij,sa==al&&(h.el=!0));J.A(jj,h)}catch(m){la.error("Exception creating license challenge",m),K(R.Xm,m)}}}function A(a){la.trace(a?"Received event: keyadded":"addKey promised resolved");if(qa){ma||(ma=!0,J.A(kj,{Ye:Y}));var b;a:{if(v.fc&&v.af&&(sa==ij||sa==bl))switch(ga()){case "fps":b=B;break a;case "playready":b=O;break a}b=void 0}b&&kb.then(function(){Vb=$a(b,v.af)})}ha&&ha.Oq()&&ha.Dl()}function H(){!0===vb.hidden?fa.forEach(function(a){a.refresh();a.Ft()}): | |
fa.forEach(function(a){a.refresh();a.Nt()})}function B(){k(jd("renew"));Vb=h}function O(){y(xa,"removeEventListener");var b=za(a.$.j.Rd),b=Ra(b),b=function(a){var b="";a.forEach(function(a){b+="<KeyID>"+a+"</KeyID>"});return new bb(rc('<PlayReadyCDMData type="LicenseAcquisition"><LicenseAcquisition version="1.0" Proactive="true"><KeyIDs>'+b+"</KeyIDs><CustomData></CustomData></LicenseAcquisition></PlayReadyCDMData>"))}([P(b)]);xa=Q.createSession("video/mp4",new bb,b);y(xa,"addEventListener");Vb=h} | |
function F(b,c){a.Ta(new Ib(b,c,void 0))}function K(b,c){var d={g:N.Ub,D:L(c)},f;try{(f=c.message.match(/(?:[x\W\s]|^)([0-9a-f]{8})(?:[x\W\s]|$)/i)[1].toUpperCase())&&8==f.length&&(d.V=f)}catch(g){}a.Ta(new Ib(b,d))}function da(a){function c(){var f=a();b(f)&&d.bo(f)}var d=new ie;fa.push(d);d.refresh=c;return function(){c();return d.Xp()}}function ea(){fa.forEach(function(a){a.refresh()})}function I(){if(aa&&2<=aa.readyState){var a=aa.webkitDecodedFrameCount;if(a===h||0<a||v.tu)return U.Cj=I=ca,!0}return!1} | |
function ja(b){if(aa){b=b.qu;var c=aa&&aa.msGraphicsTrustStatus;c&&(b.ConstrictionActive=c.constrictionActive,b.Status=c.status);try{aa&&(b.readyState=""+aa.readyState,b.currentTime=""+aa.currentTime)}catch(d){}for(var c=D.length,f;c--;)if(f=D[c],n(b,f.Up(),{prefix:f.type}),v.Ap&&a.la&&Za==f.type){var g=oc(f.Zp());if(3E3>(g.data&&g.data.length)){for(var h=g.data,k=[],l=0;l<h.length;l++)k[l]=h[l];g.data=k.join();n(b,g,{prefix:f.type})}}}}function Ja(){if(aa)return aa.getVideoPlaybackQuality&&aa.getVideoPlaybackQuality()|| | |
aa.videoPlaybackQuality||aa.playbackQuality}function G(b){function c(a){c=p;d.yb();b(a)}var d=new Ob(500,function(){c()});d.tc();try{var f=a.k.value.j.Rd.children.filter(function(a){return"pssh"==a.type&&"9A04F079-9840-4286-AB92-E65BE0885F95"==a.zd})[0];(new Mc(W)).createSession("video/mp4",f.Pa,null).addEventListener(cb+"keyerror",function(a){a=dd(a,cd);c(a.uc)})}catch(g){c()}}function y(a,b){a[b](cb+"keyerror",w);a[b](cb+"keymessage",C);a[b](cb+"keyadded",A)}var cb=Sa(),U=this,la=new a.log.r("MediaPresenter"), | |
J=new Hb,aa=xb(a.lc),D=[],M,Q,T,Z,W=v.Ze[0],xa,Y,ba,fc=0,fa=[],Vb,oa,Ua,ia,Bb,Qa,qa,ma,sa=v.fc?cl:dl,ha,na=p,kb=Xd.resolve(),Ia,pa;v.fc&&v.af&&(kb=new Xd(function(b){na=b;a.addEventListener(Ab,b)}));v.$d&&a.state.addListener(function(){a.state.value==eb&&(ha=a.Cc)});v.ys&&(f(Zb.requestMediaKeySystemAccess)?oa=!0:la.error("Promise based eme requested but platform does not support it",{browserua:lc}));n(U,{addEventListener:J.addListener,removeEventListener:J.removeListener,ru:aa,Xj:d,seek:function(a){ea(); | |
var b=d(!0);if(!(yc(b-a)<=Dh))try{la.trace("Setting video elements currentTime",{From:Va(b),To:Va(a)}),Z={},aa.currentTime=a/1E3}catch(c){la.error("Exception while setting VIDEO.currentTime",c),K(R.Ym,c)}},oq:function(){return!!Z},addSourceBuffer:function(b){var c=new pc(a,b,M,la);D.push(c);b.type==Za&&c.Pg&&c.Pg.addListener(na);return c},endOfStream:function(){la.trace("Calling endOfStream on mediaSource");v.Go&&M.endOfStream()},ao:function(a){a=a.data;qa=!0;k(a,ba,Y);v.fc&&sa++},Cj:I,Ug:function(){var a= | |
aa&&aa.msGraphicsTrustStatus;return!(!a||1!=a.constrictionActive)},open:function(){a.addEventListener(uh,ja);if(lj){if(a.k.value.j.Hg){if(!el){F(R.Mi);return}if(Mc&&Mc.isTypeSupported)try{if(!Mc.isTypeSupported(W,"video/mp4")){G(function(a){F(R.Wf,a)});return}}catch(b){K(R.Wf,b);return}}try{M=new Ed}catch(c){K(R.Om,c);return}try{T=uf.createObjectURL(M)}catch(d){K(R.Pm,d);return}try{M.addEventListener("sourceopen",u);M.addEventListener(cb+"sourceopen",u);aa.addEventListener("error",x);aa.addEventListener("seeking", | |
l);aa.addEventListener("seeked",m);aa.addEventListener("timeupdate",q);aa.addEventListener(oa?"encrypted":cb+"needkey",t);var f=a.Za,g=f.lastChild;g?f.insertBefore(aa,g):f.appendChild(aa);v.Dj&&aa.addEventListener("contextmenu",Cb);aa.src=T;jb.addListener(Eh,H);H()}catch(h){K(R.Qm,h)}}else F(R.Ni)},close:function(){if(T)if(ea(),jb.removeListener(Eh,H),ha&&qa){ha.Md();try{xa?xa.close():aa.webkitCancelKeyRequest(W,Y)}catch(b){la.error("Exception on keysession close ",R.Vf,b),ha.terminate({ErrorCode:R.Vf})}"playready"== | |
ga()&&new hi(a,Y,ha);ha.ge().then(c)}else c();Vb&&pb(Vb)},Me:da(function(){if(aa){var a=Ja();return a?a.totalVideoFrames:aa.webkitDecodedFrameCount}}),xc:da(function(){if(aa){var a=Ja();return a?a.droppedVideoFrames:aa.webkitDroppedFrameCount}}),Cd:da(function(){if(aa){var a=Ja();return a&&a.corruptedVideoFrames}}),Ne:da(function(){if(aa){var a=Ja();return a&&lb(1E3*a.totalFrameDelay)}})})}function ga(){return/widevine/i.test(v.Ze[0])?"widevine":/fps/i.test(v.Ze[0])?"fps":"playready"}function Sa(){return D.WebKitMediaKeys|| | |
vf.prototype.webkitGenerateKeyRequest?"webkit":vf.prototype.msSetMediaKeys?"ms":""}function xb(a){var b;b=D.devicePixelRatio||1;b={width:fl||D.screen.width*b,height:gl||D.screen.height*b};a=a.width/a.height*b.height;var c=(b.width-a)/2;return v.zt?Fa("VIDEO","position:absolute;width:"+a+"px;height:"+b.height+"px;left:"+c+"px;top:0px"):Fa("VIDEO","position:absolute;width:100%;height:100%")}function Cb(a){a.preventDefault();return!1}function Qe(a,b){var c="",d,f=a.length,g;for(d=0;d<f;d++)g=a[d],0< | |
g&&(c+=hl(g));f="\\s*(.*)\\s*";for(d=arguments.length-1;0<d;d--){g=arguments[d];if(0>c.search(g))return;g="(?:[^:].*:|)"+g;f="[\\s\\S]*<"+g+"[^>]*>"+f+"</"+g+">[\\s\\S]*"}if(c=c.match(new RegExp(f)))return c[1]}function gb(a,b){function c(a){var d;try{var f=a.match(/-----BEGIN CERTIFICATE-----([\s\S]*)-----END CERTIFICATE-----/)[1];if(!Ua(f))throw new Wa("bad PEM");d={c:!0,we:Bc(f)}}catch(g){d={g:N.Ub,D:L(g)}}b(d)}var d=a.mb;ib.load("fpsappdata",function(a){if(a.c){a=a.data;var f=a.certificate;if(a.expiration> | |
Rb.Fd()){c(f);return}}d.Rg(function(a){if(a.c){var d=a.we;ib.save("fpsappdata",{certificate:d,expiration:a.Hp});c(d)}else b(a)})})}function dd(a,c){var d=a.target,f=d&&d.error,g=a.errorCode,d=f&&f.code;Z(d)||(d=g&&g.code);g=f&&f.msExtendedCode;Z(g)||(g=f&&f.systemCode);Z(g)||(g=a.systemCode);f=n({},{code:d,systemCode:g},{kf:!0});d={g:c(d),D:Ag(f)};g=C(g);b(g)&&(d.V=je(g));return{uc:d,cf:f}}function oe(a){var b={};b.g=Z(a.code)?cd(a.code):N.Ub;try{var c=a.message.match(/\((\d*)\)/)[1];b.V=je(c)}catch(d){}b.D= | |
L(a);return b}function Re(a){function b(){function g(){!K&&S&&p&&(g=O,U.addEventListener(fj,f),U.addEventListener(gj,function(){f();a.fireEvent(Fh)}),la.addEventListener("ended",function(){F.trace("Video element event: ended");f()}),la.addEventListener("play",function(){F.trace("Video element event: play");f()}),la.addEventListener("pause",function(){F.trace("Video element event: pause");f();a.fireEvent(Gh)}),la.addEventListener("playing",function(){F.trace("Video element event: playing")}),B=!0, | |
m(),F.trace("Video element initialization complete"),a.ta("vi"),v.Aj?$a(function(){ea=!0;f()},v.Aj):ea=!0,h(),Aa(f))}function h(){if(v.yj){var b=function(){a.C.value==Tb&&a.state.value==eb&&a.o.value==nc?W.tc():W.yb()};W=new Ob(v.yj,function(){C(R.Rm)});a.C.addListener(b);a.o.addListener(b);a.state.addListener(b);b()}}F.trace("Video element initializing");var k=a.ed,n=a.k.value,x=k.j,u=n.j.Hg||x.Hg,S,p;la=U.ru;U.addEventListener(hj,function(){try{aa.Qa=U.addSourceBuffer(k)}catch(b){C(R.Zf,{g:N.ke, | |
D:L(b)});return}try{D.Qa=U.addSourceBuffer(n)}catch(c){C(R.Zf,{g:N.le,D:L(c)});return}q(k)&&q(n)&&(u?F.trace("Waiting for needkey"):F.warn("Movie is not DRM protected",{MovieId:a.sa,DownloadableId:n.J}),F.trace("Waiting for loadedmetadata"))});u?(U.addEventListener(jj,function(b){K||(F.info("Requesting license"),b.el||a.ta("lc"),a.mb.ph(b,function(c){F.info("Received license");if(!K)if(b.el||a.ta("lr"),c.c){c=c.Tq;try{U.ao(c),F.trace("Added license")}catch(d){F.error("Exception adding license",d), | |
C(R.Nm)}}else C(R.Im,c)}),a.fireEvent(th,b))}),U.addEventListener(kj,function(b){S=!0;a.ta("ld");Aa(function(){g()});a.fireEvent(Hi,b)})):S=!0;Df(la,function(){F.trace("Video element event: loadedmetadata");p=!0;a.ta("md");a.addEventListener(be,c);aa.Qa.ol(c);D.Qa.ol(c);c();Aa(function(){g()})});jb.addListener(Lc,A,-1);a.addEventListener(Ab,A,-1);a.addEventListener(Xi,d);a.paused.addListener(f);a.muted.addListener(l);a.volume.addListener(l);a.o.addListener(f);U.open();w(a.fb||0,Hh);l()}function c(){B? | |
f():v.ko&&m()}function d(){var b=a.q.value-v.ot,b=Ba(b,G);w(b,Li)}function f(){if(!K&&B){var b=U.oq();b||m();tf||m();var c=a.o.value==nc,d=a.C.value,l=d==Tb?Q:ca,r;r=k(aa,l)&&k(D,l);a.paused.value||!r||!c||b||y?u():la.ended||!ea||!J&&J!==h||(F.trace("Calling play on element"),la.play(),J=!1);if(!b)if(y&&c&&r)U.seek(ja),y=!1,tf||t(),Aa(f);else{var n=U.Xj(!0);y||b?d=Tb:la.ended?d==qd&&(ja=a.duration,d=Kc,u()):c&&r?U.Cj()?d=la.paused?of:qd:Y.pb(g):d=Tb;d!=Tb&&d!=Kc&&(n<ja?(b=ja-n,n&&b>Dh&&(n={ElementTime:Va(n), | |
MediaTime:Va(ja)},b>il?(F.error("VIDEO.currentTime became much smaller",n),C(R.cn)):F.warn("VIDEO.currentTime became smaller",n))):ja=Ma(n,0,a.duration));a.q.set(ja);p();n=d==Tb&&a.C.value==qd;a.C.set(d,{fx:!0});n&&(a.fireEvent(pf,{Jc:I.ac()>l?jl:Ah}),I.ac()>l?Ja++:P++)}}}function g(){v.Or&&!aa.Qa.bc()&&aa.Qa.appendBuffer(new bb([0,0,0,8,102,114,101,101]));f()}function k(a,b){if(!a.cd)return!0;var c=a.ye;return(c=c&&c.H)&&c.endTime-ja>=b}function l(){K||(la.volume=a.volume.value,la.muted=a.muted.value)} | |
function m(){x(aa);x(D);K||aa.cd||D.cd||aa.Qa.bc()||D.Qa.bc()||Z||(Z=!0,U.endOfStream())}function x(a){if(!K){var b=a.Qa,c=a.Lc;b.bc()||(a.ye=c[c.length-1],a.bi&&(a.bi=!1,b.remove(0,kc(a.type,I.eb,I.Ab).W.endTime/1E3)));for(var d=a.cd;d&&d.media&&d.startTime-ja<=T;){Z=!1;var f;a:{f=d;var g=f.media,h=f.type,k=M[h];if(!q(g.stream)||K||k.Qa.bc())f=void 0;else{try{var l=g.hg;F.trace("Feeding media segment to decoder",f,{Bytes:g.length});k.Qa.appendBuffer(l);k.Lc.push({H:f,stream:g.stream,i:g.i});y&&!tf|| | |
I.Gr(f)}catch(m){F.error("Exception while appending media",f,m);C(R.Zm,kc(h,N.ke,N.le));f=void 0;break a}f=!0}}if(!f)break;d=d.next}a.cd=d;b.bc()||(a.ye=c[c.length-1])}}function q(a){if(!a||!a.j)return!1;var b=a.type,c=M[b];if(c.bp!=a)try{if(c.Qa.bc())return;var d=a.j.Aq;F.trace("Feeding init segment to decoder",a,{Bytes:d.length});c.Qa.appendBuffer(d);c.bp=a}catch(f){F.error("Exception while appending initialization segment",f,{Type:b});C(R.$m,kc(b,N.ke,N.le));return}return!0}function u(){la.ended|| | |
!ea||J&&J!==h||(F.trace("Calling pause on element"),la.pause(),J=!0)}function p(b){if(b){for(var c=M[b],d=c.Lc,f,g;(f=d[0])&&f.H.startTime<=ja;)if(ja<f.H.endTime){b=kc(b,a.ic,a.Ya);Zc(f,b.value)||(g=!0,b.set(f));break}else d.shift(),I.Jr(f.H);g&&!Z&&(f=(f=f.H.Oa)&&f.startTime-1,0<f&&(c=c.Qa,c.bc()||c.remove(0,f/1E3)))}else p(sb),p(Za)}function w(b,c){if(!K){var d=I.Ab.ib(Ma(b,0,145152E5)),g=d.startTime;v.ps&&(g=b);var h=I.eb.ib(g);!d.next&&d.Oa&&(d=d.Oa,g=d.startTime,h=I.eb.ib(g));v.kl&&(g+=v.kl); | |
c==Hh&&(a.vd=g);p();var k=ja;F.info("Seeking",{Requested:Va(b),Actual:Va(g),Cause:c});a.fireEvent(mj,{Ah:k,Ok:g,Jc:c});a.C.set(Tb);aa.Ph=h;D.Ph=d;t();c!=Hh&&(aa.bi=!0,D.bi=!0);G=ja=g;a.ic.set(null);a.Ya.set(null);a.q.set(ja);a.Mp();a.fireEvent(ae,{Ah:k,Ok:g,Jc:c});y=!0;f()}}function t(){aa.cd=aa.Ph;aa.Lc=[];aa.ye=h;D.cd=D.Ph;D.Lc=[];D.ye=h;I.Ir()}function C(b,c){K||a.Ta(new Ib(b,c,void 0))}function A(){if(!K){F.info("Closing.");jb.removeListener(Lc,A);K=!0;try{v.Ar&&(la.volume=0,la.muted=!0),u(), | |
U.close()}catch(a){}}}var F=new a.log.r("MediaPresenter"),K,B,ea,I=a.n,ja=0,Ja=0,P=0,G,y,U=new La(a),la,J,aa={type:sb,Lc:[]},D={type:Za,Lc:[]},M={},ca=v.Xa,Q=v.Vr,T=v.ir,Z,W,Y=new Eb(Dh);M[sb]=aa;M[Za]=D;try{b()}catch(ba){F.error("Exception while initializing",ba),C(R.Mm)}n(this,{seek:function(a){w(a,Ki)},Dd:function(){return U.Xj(!1)},Me:U.Me,xc:U.xc,Cd:U.Cd,Ne:U.Ne,Ug:U.Ug,zg:function(){var b=a.C.value==Tb?Q:ca;return k(aa,b)&&k(D,b)},hq:function(){return{dp:Ja,Er:P}}})}function Mf(a,b,c,d,f,g, | |
k,l,m,n){function q(b){function c(){a.state.removeListener(c);d()}function d(){a.state.value==eb?ja?w(function(a){a.c?K.info("Loaded image subtitle manager"):(K.error("Unable to load image subtitles manager",a),B=Ih,L=Mb(q));b(a)}):u(function(a){a.c?(K.trace("Entries parsed",{Length:a.entries.length},ea),y.i=a.i,B=kl):(K.error("Unable to retreive timed text track",fb(a),ea,{url:a.url}),B=Ih,L=Mb(q));b(a)}):b({})}B=nj;a.state.value!=cc?d():a.state.addListener(c)}function u(b){function c(h){var l={}, | |
m,r;if(h.c)b(h);else{h.xk||(l=A(g,k,"text"),g&&f[g]<=v.gi&&(m=!0,r="retry with current cdn"));var n,x,q;for(q=0;q<a.F.length;q++)if(n=a.F[q],x=d[n.id],f[n.id]>v.gi||!x)n=null;else break;n&&x?(g!==n.id&&(r="retry with next cdn",m=!0),g=n.id,k=x,f[n.id]=(f[n.id]||0)+1,p(x,n,c)):(m=!1,r="all cdns tried",b(h));h.c||h.xk||F(l,m,r)}}if(U(d))p(d,h,b);else if(kd.isArray(d))b({c:!0,entries:d,track:y});else{var f={},g,k;c({c:!1,xk:!0})}}function p(b,c,d){K.trace("Downloading",c&&{cdn:c.id},ea);var g={responseType:kh, | |
url:b,track:y,i:c,Eb:"tt-"+f};a.xa.R(g,function(b){if(b.c){var f=a.lc;ja?d({c:!0,entries:[]}):Kd(b.content,f.width/f.height,v.zl,v.Al,function(a){if(a.c){a=a.entries;var b=v.Yt;if(b){var f=0;a.forEach(function(a){a.startTime=f;a.endTime=f+=b})}d({c:!0,entries:a,i:c,track:y})}else a.url=g.url,d(a)})}else d(b)})}function w(b){function c(a){if(Z(a)){n.url=d[O];f.url=n.url;r[a]=(r[a]||0)+1;var g=new ll(h,f);g.on("ready",function(){I=g;b({c:!0,track:y})});g.on("error",function(d){var f={c:!1},g;for(g in d)f[g]= | |
d[g];d=A(O,n.url,"image");d.details={midxoffset:n.offset,midxsize:n.length};d.errorstring=f.errorString;f.url=n.url;r[a]<=v.gi?(F(d,!0,"retry with current cdn"),c(O)):(O=k[l++])?(F(d,!0,"retry with next cdn"),c(O)):(F(d,!1,"all cdns tried"),b({c:!1,msg:"all cdns failed for image subs"}))})}else b({c:!1,msg:"cdnId is not defined for image subs downloadUrl"})}var f={profile:m,tr:n.offset,ur:n.length,Jh:a.q.value||0},g=new a.log.r("TimedTextTrack");g.warn=g.trace.bind(g);g.info=g.debug.bind(g);var h= | |
{dk:function(){return a.ha.Dd()},Gk:g,N:t},k=Kb.keys(d),l=0,r={};O=k[l++];c(O)}function t(b,c){K.trace("Downloading",b);var d={url:b.url,offset:b.offset,length:b.size,responseType:Cc,headers:{},i:C(O)};a.xa.R(d,function(a){K.trace("imgsub: request status "+a.c);a.c?c(null,new bb(a.content)):c({errorSubCode:a.g,errorExternalCode:a.V})})}function C(b){if(a.F)return a.F.filter(function(a){return a.id==b})[0]}function A(a,b,f){var g={};try{g={currentCdnId:a,url:b,profile:m,dlid:c,subtitletype:f,cdnCount:Kb.keys(d).length}}catch(h){K.warn("Error accummulating data", | |
h)}return g}function F(b,c,d){b.willRetry=c;b.status=d;a.fireEvent(Ni,b);K.warn("ImageSubtitleManager error event",b)}var K=new a.log.r("TimedTextTrack"),B=ml,ea={Bcp47:f,TrackId:b,DownloadableId:c},L=Mb(q),ja=m&&"nflx-cmisc"==m,I,O,y={type:mh,U:b,Hf:k,xh:l,Nk:m,J:c,Ra:f,displayName:g,getEntries:function(a){L(function(b){a(b)})},Zg:function(){return B},Ba:ea,Ak:ja,fq:function(){return I}};return y}function Kj(a){function b(){C.start();a.C.value!=qd&&C.stop()}function c(){B&&u.info("Deactivating", | |
B);a.oc.set(null);C.pl(t=h);g();var b=a.T.value;b&&"NONE"==b.U&&(b=h);b&&(u.info("Activating",b),b.getEntries(d));B=b;f()}function d(b){var c=b.track;if(c==a.T.value){if(c.Ak)b.c?(O=c.fq(),v("addListener"),u.info("Activated",c),a.oc.set(c),Aa(function(){O.Ec(a.ha.Dd())})):u.error("Failed to activate img subtitle ",b,c);else{var g=b.entries;g?(C.pl(t=g),u.info("Activated",c),a.oc.set(c)):u.error("Failed to activate",fb(b),c)}f()}}function f(){var b;a.state.value==eb&&a.C.value!=Tb&&(t?b=C.Np():a.T.value&& | |
(b=w[a.T.value.Zg()]));b&&b.startTime&&(F++,A+=C.Xg()-b.startTime,p.re=pd(A/(F+0)));a.fi.set(b)}function g(){O&&(O.stop(),v("removeListener"));O=h}function k(a){p.fireEvent(nl,a);u.trace("showsubtitle",m(a))}function l(a){p.fireEvent(ol,a);u.trace("removesubtitle",m(a))}function m(b){return{currentPts:a.ha.Dd(),displayTime:b.displayTime,duration:b.duration,id:b.id,originX:b.originX,originY:b.originY,sizeX:b.sizeX,sizeY:b.sizeY,rootContainerExtentX:b.rootContainerExtentX,rootContainerExtentY:b.rootContainerExtentY}} | |
function n(){O.Ec(a.ha.Dd())}function q(){O.pause()}function v(b){O[b]("showsubtitle",k);O[b]("removesubtitle",l);"addListener"==b?(a.addEventListener(Fh,n),a.addEventListener(Gh,q)):(a.removeEventListener(Fh,n),a.removeEventListener(Gh,q))}var u=new a.log.r("TimedTextManager"),p=this,w={},t,C=new sc,F=0,A=0,B,L=new Hb,O;this.re=null;p.addEventListener=L.addListener;p.removeEventListener=L.removeListener;p.fireEvent=L.A;this.fg=function(b,c){var d="custom"+ ++pl,f=new Mf(a,d,"1",b,"xx",c||d,od,"primary", | |
"custom",{});a.pa.push(f);a.ya.forEach(function(a){a=a.pa;0>a.indexOf(f)&&a.push(f)});a.fireEvent(oj);return f};w[nj]={ox:!0};w[Ih]={Ew:!0};a.T.addListener(c);a.addEventListener(Wc,c);a.C.addListener(b);a.addEventListener(rf,b);a.addEventListener(Ab,function(){t=h;g();C.stop();f()});C.Xg=a.ha.Dd;C.Bh=f}function Lj(a){function b(){d.Ls()}var c=a.Za,d=new Ef(v.Xt),f=a.lc;d.tt(f.width/f.height);c.appendChild(d.Yj());a.fi.addListener(function(a){d.vt(a.newValue)});a.addEventListener(Ab,function(){jb.removeListener(Jh, | |
b);c.removeChild(d.Yj())});jb.addListener(Jh,b);this.Yh=d.Yh}function Mj(a){function b(){g(a.q.value);for(var c=0,d=p.length;d--;)c+=p[d].endTime-p[d].startTime;return c}function d(a){g(a.Ah);t=a.Ok;q=m=h;x&&(x.startTime=t)}function f(b){l(x,w,a.q.value);x=b.newValue?{i:b.newValue.i,track:b.newValue,startTime:a.q.value,endTime:145152E5}:h}function g(a){m&&q&&(a=va(a,m.endTime),a=va(a,q.endTime),l(m,u,a),m.startTime=a,l(q,p,a),q.startTime=a,x&&(l(x,w,a),x.startTime=a),t=a)}function k(b,c,d){b&&l(b, | |
c,va(b.endTime,a.q.value));if(d)return b=d.H,c=d.stream,{i:d.i,track:c.track,stream:c,startTime:Ba(b.startTime,t),endTime:b.endTime}}function l(a,b,c){a&&c>=a.startTime&&(a={i:a.i,track:a.track,stream:a.stream,startTime:a.startTime,endTime:c},(c=b[b.length-1])&&c.track==a.track&&c.stream==a.stream&&c.i==a.i&&c.endTime==a.startTime?c.endTime=a.endTime:b.push(a))}var m,q,x,u=[],p=[],w=[],t=a.q.value,C={},A=!1,B={},F=0,K=v.Yn,L=K.length;(function(){a.addEventListener(mj,d);a.ic.addListener(function(a){m= | |
k(m,u,a.newValue)});a.Ya.addListener(function(a){q=k(q,p,a.newValue)});a.oc.addListener(f)})();for(C.abrdel=0;L--;)B["abrdel"+K[L]]=0,C["abrdel"+K[L]]=0;n(this,{ah:b,Op:function(){g(a.q.value);return{audio:se(u,di),video:se(p,di)}},mq:function(){return{total:b(),audio:se(u,Xf),video:se(p,Xf),timedtext:se(w,Xf)}},Vj:function(){g(a.q.value);var b=se(p,Oj),c,d,f=0;for(d=b.length;d--;)c=b[d],f+=c.duration;if(!f)return 0;var h=0;for(d=b.length;d--;)c=b[d],h+=c.f*c.duration/f;C.abrdel=lb(h);return C.abrdel}, | |
Rp:function(){if(!A){for(var a=K.length,d=b();a--;){var f=K[a];if(0==B["abrdel"+f]&&d>1E3*f){for(var g=0,h=p.length,k,l=0,m=0;m<h&&!(k=p[m],g+=k.stream.f*(k.endTime-k.startTime),l+=k.endTime-k.startTime,k=k.stream.f,l>1E3*f);m++);g&&(B["abrdel"+f]=lb((g-k*(l-1E3*f))/(1E3*f)))}}0!==B["abrdel"+K[K.length-1]]&&(A=!0);c(B,function(a,b){C[a]=0==b?C.abrdel:b})}return C},$n:function(a){F+=a},iq:function(){return F}})}function se(a,b){var c=[],d,f,g={},h,k,l=a.length,m;for(m=0;m<l;m++)h=a[m],k=b(h),f=k.key, | |
d=g[f],h=h.endTime-h.startTime,d?d.duration+=h:(delete k.key,d=k,d.duration=h,c.push(d),g[f]=d);return c}function Xf(a){var b,c=a.stream;c?(a=c.J,b=c.f):a=a.track.J;return{key:a+"$"+(b||0),downloadableId:a,bitrate:b}}function di(a){var b=Xf(a);a=a.i.id;b.key+="$"+a;b.cdnId=a;return b}function Oj(a){a=(a=a.stream)?a.f:0;return{key:a,f:a}}function ei(a){function b(a){var c=a.startTime;a=a.endTime;0<c&&0<a&&(null===g&&(g=c),null!==h&&h<c&&(g+=c-h),null===h||h<a)&&(h=a)}var c=a||{},d=0,f=[],g=null,h= | |
null;c.Ce=k(c.Ce,0,void 0)?c.Ce:50;n(this,{dc:function(){for(var a;0<f.length;)a=f.shift(),b(a);return Oa.floor(8*d/(h-g))},bj:function(a){d+=a.mg;f.push({startTime:a.startTime,endTime:a.endTime});for(f.sort(function(a,b){return a.startTime-b.startTime});f.length>c.Ce;)a=f.shift(),b(a)}})}function Pj(a){var b=v.cs;if(b&&!a.jd){var c=function(){a.state.value!=eb||a.C.value!=of&&a.C.value!=Kc?d.yb():d.tc()},d=new Ob(b,a.Ta.bind(a,new Ib(R.me))),f;a.C.addListener(c);a.state.addListener(c);if(v.uk){var g= | |
ia();f=new le(v.uk,function(){var c=ia();c-g>b&&(a.Ta(new Ib(R.ie)),f.yd());g=c});f.Zh()}a.addEventListener(Ab,function(){d.yb();Z(f)&&f.yd()})}}function fi(a,b,d,f,g,h,k,l){function m(a){var b;c(a,function(a,c){if(!b){var d=A[c];d?d<v.du+1&&(A[c]++,b={url:c,pj:a}):(A[c]=1,b={url:c,pj:a})}});return b}function q(b){w.trace("Downloading",b.url,C);a.xa.R({responseType:Cc,i:u(b.pj),url:b.url,track:p},function(b){if(b.c)try{F=Rj(b.content),t=Kh,w.trace("TrickPlay parsed",{Images:F.images.length},C),a.fireEvent(pj)}catch(c){t= | |
qj,w.error("TrickPlay parse failed.",c)}else t=rj,w.error("TrickPlay download failed.",fb(b),C)})}function u(b){for(var c=0;c<a.F.length;c++){var d=a.F[c];if(d&&d.id==b)return d}}var p=this,w=new a.log.r("TrickPlay"),t=rj,C={},A={},B=!0,F;n(p,{type:Fi,id:b,R:function(){var a=m(l);a?(t=Lh,q(a)):B=!1},bq:function(a){if(F&&(a=ua(a/F.j.Bl),0<=a&&a<F.images.length))return{image:F.images[a],time:a*F.j.Bl,height:d,width:f,pixelAspectHeight:g,pixelAspectWidth:h}},nq:function(){return B},Zg:function(){return t}, | |
fk:function(){switch(t){case Kh:return"downloaded";case Lh:return"loading";case ql:return"downloadfailed";case qj:return"parsefailed";default:return"notstarted"}},Ba:C,size:k})}function Nj(a){function b(){var d=a.zb,f=d.Zg();f!=Lh&&(f!=Kh&&d.nq()?(d=!1,a.Nb.ah()<v.fu&&(d=a.k.value.f>v.eu),d&&(d=a.Sb[a.Sb.length-1],c(d.size))?a.ee.gl="h":(d=a.Sb[0],c(d.size)?a.ee.gl="l":d=void 0),d&&(a.ee.offset=ia(),a.zb=d,a.zb.R())):a.removeEventListener(be,b))}function c(b){var d=va(a.n.La(),a.n.tb());b=a.ca.ka(b); | |
b*=1+.01*v.pe[2];return b<d*v.gu}a.ee={};a.Sb&&0<a.Sb.length&&(a.zb=a.Sb[a.Sb.length-1],a.zb&&a.addEventListener(Wc,function(){a.addEventListener(be,b)}))}function gi(a,b){function c(){return k===Mh}function d(a){n(a,{success:!1,state:k});n(a,U);rd.flush();t&&pb(t);C&&pb(C);A.resolve(a);B.resolve(a);F.resolve(a);K.resolve(a);k=Nh;v.dt&&sj.show()}function f(a,b){return $a(function(){d({ErrorCode:R.An,ErrorDetails:a.name+" promise expired"})},b)}var g=this,k,l,m,q=new a.log.r("SSManager"),u=new Hb, | |
p=v.ht,w=v.ft,t,C,A,B,F,K,O,I,y,U={};n(g,{Md:function(){q.trace("initiaing");A=Yf("keymessage");B=Yf("server_response");F=Yf("keyadded");K=Yf("complete");k=Mh;b&&v.jl&&("playready"==ga()&&(b=P("*")),new hi(a,b,g),p=v.mt);t=f(A,p);K.Xd.then(q.info.bind(q,"complete"));O=ia();u.A(Mi)},addEventListener:u.addListener,removeEventListener:u.removeListener,Xe:function(){return k>=Mh&&k<Nh},Gl:function(){return A.Xd},Pq:c,ki:function(a){I=ia();U.ss_km=I-O;if(c()){k=tj;l=a.Db;m=a.sc;var b={},d,f;"widevine"== | |
m?(d="widevinecef",f=P(a.Db)):"fps"==m?(d="fps",f=P(a.Db)):"playready"==m&&(d="playreadynative",f=a.Db);b[d+"securestop"]=f;A.resolve({c:!0,data:b});pb(t);t=h}},oi:function(){return B.Xd},li:function(a){y=ia();U.ss_sr=y-I;var b="",c=B;if(k===tj){if(a.c)if("widevine"==m)try{b=pa(a.Bc.securestopack.widevinecefsecureack),c.resolve({c:!0,sd:Bc(b),Db:l}),k=Dg}catch(g){d({ErrorCode:R.Pi,ErrorDetails:L(g)})}else if("fps"==m)c.resolve({c:!0,sd:jd("acknowledged")}),k=Dg;else{if("playready"==m)try{b=pa(a.Bc.securestopack.playreadysecureack), | |
c.resolve({c:!0,sd:Bc(b),Db:l})}catch(h){b="";try{b=P(Od(a.Bc,"nccp","playdata"))}catch(n){}d({ErrorCode:R.Pi,ErrorDetails:L(h),Response:b})}}else b=a.g&&0<=[N.Qi,N.$f].indexOf(a.g)?R.Bn:R.ln,d({ErrorCode:b,ErrorDetails:a.D||"",ErrorNccpCode:a.Bd||"",ErrorSubCode:a.g||""});k==Dg&&(C=f(F,w))}},pA:function(){return F.Xd},Oq:function(){return k===Dg},Dl:function(a){U.ss_ka=ia()-y;k=Nh;var b={success:!0};Z(a)&&(b.attempts=a);n(b,U);K.resolve(b);pb(C);C=h},ge:function(){return K.Xd},terminate:d})}function Yf(a){var b= | |
{},c=new Xd(function(a,c){b.resolve=a;b.reject=c});b.name=a;b.Xd=c;return b}function hi(a,b,c){function d(){try{if("fps"===y)O=new Mc(I),A.webkitSetMediaKeys(O),gb(a,function(a){a.c?(D=a.we,f()):(G.error("fps certificate failed"),p(R.tn,h,a))});else if("playready"===y){O=new Mc(I);var b=t(P("*"));U=O.createSession("video/mp4",new bb,b);w(U,"addEventListener")}else G.error("Unsupported drm type ",y),p(R.nn)}catch(c){G.error("Exception on webkitSetMediaKeys",c),p(R.wn,c)}}function f(){J++;try{U=O.createSession("keyrelease", | |
D),w(U,"addEventListener")}catch(a){G.error("create session error",a),p(R.mn,a)}}function g(a){var b=a.message;"fps"==ga()?Qj(b,K).then(function(a){a?k(b):(l(jd("acknowledged")),N=!0,M=$a(function(){p(R.vn)},v.kt))}).catch(function(a){G.error("exception on matching persisted keysessionId",a);p(R.yn,a)}):"playready"==ga()&&(a=Qe(b,"PlayReadyKeyMessage","Challenge"),(!a||4>a.length||a.length%4)&&G.error("SecureStop challenge is invalid: "+P(b)),c.ki({c:!0,Db:a,sc:ga(),Ye:K}),c.oi().then(function(a){a.c&& | |
l(a.sd)}))}function k(a){c.ki({c:!0,Db:a,sc:ga(),Ye:K});c.oi().then(function(a){a.c&&l(a.sd)});N=!1}function l(a){try{U&&U.update(a)}catch(b){G.error("Exception calling keySession.update ",b),p(R.xn,b)}}function m(){N?(N=!1,pb(M),w(U,"removeEventListener"),U.close(),J<la?f():p(R.rn)):(c.Dl(J),U.close())}function q(a){var b=dd(a,cd);G.error("Received event: keyerror",b.cf);var d;a:{try{var f=a.target.error,g=f.code,k=f.systemCode;if("fps"==ga()){if(2==g&&"560820082"==k){d=!0;break a}}else if("playready"== | |
ga()&&1==g&&-2147024637==k){d=!0;break a}}catch(l){}d=void 0}d?p(R.un):c.Xe()&&p(R.pn,h,fb(b.uc))}function u(a){a=dd(a,bd);G.error("Video element event: error",a.cf);c.Xe()&&p(R.zn,h,fb(a.uc))}function p(a,b,d){a={ErrorCode:a};b&&(a.ErrorDetails=L(b));d&&n(a,d);a.attempts=J;c.terminate(a)}function w(a,b){a[b](C+"keyerror",q);a[b](C+"keymessage",g);a[b](C+"keyadded",m)}function t(a){return new bb(rc('<PlayReadyCDMData type="SecureStop"><SecureStop version="1.0" ><SessionID encoding="base64encoded">'+ | |
a+'</SessionID><ServerCert encoding="base64encoded">Q0hBSQAAAAEAAAUMAAAAAAAAAAJDRVJUAAAAAQAAAfwAAAFsAAEAAQAAAFhr+y4Ydms5rTmj6bCCteW2AAAAAAAAAAAAAAAJzZtwNxHterM9CAoJYOM3CF9Tj0d9KND413a+UtNzRTb/////AAAAAAAAAAAAAAAAAAAAAAABAAoAAABU8vU0ozkqocBJMVIX2K4dugAAADZodHRwOi8vbnJkcC5uY2NwLm5ldGZsaXguY29tL3Jtc2RrL3JpZ2h0c21hbmFnZXIuYXNteAAAAAABAAUAAAAMAAAAAAABAAYAAABcAAAAAQABAgAAAAAAglDQ2GehCoNSsOaaB8zstNK0cCnf1+9gX8wM+2xwLlqJ1kyokCjt3F8P2NqXHM4mEU/G1T0HBBSI3j6XpKqzgAAAAAEAAAACAAAABwAAAEgAAAAAAAAACE5ldGZsaXgAAAAAH1BsYXlSZWFkeSBNZXRlcmluZyBDZXJ0aWZpY2F0ZQAAAAAABjIwMjQ4AAAAAAEACAAAAJAAAQBAU73up7T8eJYVK4UHuKYgMQIRbo0yf27Y5EPZRPmzkx1ZDMor7Prs77CAOU9S9k0RxpxPnqUwAKRPIVCe0aX2+AAAAgBb65FSx1oKG2r8AxQjio+UrYGLhvA7KMlxJBbPXosAV/CJufnIdUMSA0DhxD2W3eRLh2vHukIL4VH9guUcEBXsQ0VSVAAAAAEAAAL8AAACbAABAAEAAABYyTlnSi+jZfRvYL0rk9sVfwAAAAAAAAAAAAAABFNh3USSkWi88BlSM6PZ2gMuceJFJ9hzz0WzuCiwF9qv/////wAAAAAAAAAAAAAAAAAAAAAAAQAFAAAADAAAAAAAAQAGAAAAYAAAAAEAAQIAAAAAAFvrkVLHWgobavwDFCOKj5StgYuG8DsoyXEkFs9eiwBX8Im5+ch1QxIDQOHEPZbd5EuHa8e6QgvhUf2C5RwQFewAAAACAAAAAQAAAAwAAAAHAAABmAAAAAAAAACATWljcm9zb2Z0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAUGxheVJlYWR5IFNMMCBNZXRlcmluZyBSb290IENBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAMS4wLjAuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAIAAAAkAABAECsAomwQgNY0bm6U6Au9JRvwjbNnRzmVkZi+kg7npnRQ2T+4LgyrePBdBRQ3qb/jxXkn++4sOFa7vjRpFBzV0MMAAACAIZNYc/yJW5CLFaLPCgAHPs+FSdlhYS6BSG3mxgo2TbeHYJqj8Pm5/p6kNXKKUbx9kou+59dz/5+Q060QpP6xas=</ServerCert></SecureStop></PlayReadyCDMData>'))} | |
var C=Sa(),A=Fa("VIDEO"),B,F,K=b,O,I=v.Ze[0],y=ga(),U,G=new a.log.r("SSManagerPersisted"),D,J=0,N,M,la=v.nt;(function(){var b=a.Za,c=b.lastChild;c?b.insertBefore(A,c):b.appendChild(A)})();try{F=new Ed,F.addEventListener("sourceopen",d),A.addEventListener("error",u),B=uf.createObjectURL(F),A.src=B}catch(ca){G.error("Exception creating MediaSource",ca),p(R.sn,ca)}c.ge().then(function(){try{A.removeAttribute("src"),A.load&&A.load()}catch(b){G.error("Exception clearing element context",b)}Z(B)&&uf.revokeObjectURL(B); | |
U&&U.close();try{a.Za.removeChild(A)}catch(c){G.error("Exception removing temporary video element from Dom",c)}A=F=null;B=""})}function Qj(a,b){return new Xd(function(c){var d=Eg(a),f;Gd(d,function(a){f=a.object.dict.string[zb];c(f==b)})})}function Rj(a){if(!a)throw new Wa("invalid array buffer");var b=new bb(a);a=new Vc(b);var c=function(a){if(a.Ka()<uj.length+4+4+4+vj)throw new Wa("array buffer too short");uj.forEach(function(b){if(b!=a.ba())throw new Wa("BIF has invalid magic.");});var b=a.Zd(); | |
if(b>rl)throw new Wa("BIF version in unsupported");var c=a.Zd();if(0==c)throw new Wa("BIF has no frames.");var d=a.Zd(),f=a.na(vj);return{version:b,Pr:c,Bl:d,yz:f}}(a);a=function(a){for(var d=[],f=0;f<=c.Pr;f++){var g,k={timestamp:a.Zd(),offset:a.Zd()};g!=h&&d.push(b.subarray(g.offset,k.offset));g=k}return d}(a);return{j:c,images:a}}function Sj(c,d,f,g,k){function l(){t.kc.addEventListener("showsubtitle",function(a){m(sl,a,!0)});t.kc.addEventListener("removesubtitle",function(a){m(tl,a,!0)})}function m(a, | |
b,c){b=b||{};b.target=w;A.A(a,b,!c)}function q(){q=p;t.load(function(a,b){try{m(ul,h,!0),b(ta)}catch(c){b({g:N.Ub,D:L(c)})}})}function u(){B.set(t.state.value==eb&&t.C.value==Kc)}function x(){if(t.state.value==eb){for(var a,b,c;b=U.shift();)a=t.kc.fg(b.url,b.name),b.qo&&(c=a);c&&t.T.set(c)}}var w=this,t=cf(c,d,f);c=t.Cg;var C=new t.log.r("VideoPlayer"),A=new Hb,B=new Xa(!1,function(){m(Oh)}),O,U=[];t.jd=g;t.ef=k;(function(){t.addEventListener(rf,function(){m(wj)});t.addEventListener(be,function(){m(xj)}); | |
t.addEventListener(ae,function(){m(xj)});t.paused.addListener(function(){m(Ph)});t.muted.addListener(function(){m(vl)});t.volume.addListener(function(){m(wl)});t.C.addListener(u);t.state.addListener(u);t.ue.addListener(function(a){O||t.state.value!=eb||a.newValue||(O=!0,m(xl),Aa(C.debug.bind(C,"summary ",w.getSessionSummary())));m(yl)});t.Q.addListener(function(a){m(zl);a.oldValue&&a.oldValue.pa==a.newValue.pa||m(yj);Aa(function(){var a=t.Q.value.pa;0<=a.indexOf(t.T.value)||(C.info("Changing timed text track to match audio track"), | |
t.T.set(a[0]))})});t.T.addListener(function(){m(yj)});t.addEventListener(oj,function(){m(zj)});t.addEventListener(pj,function(){m(Al)});t.state.addListener(function(a){switch(a.newValue){case eb:m(Bl);m(Cl);m(Dl);m(zj);m(Aj);x();l();break;case vh:t.la&&m(El,t.la.ii());break;case ug:m(Fl),A.Oc()}})})();n(w,{addEventListener:A.addListener,removeEventListener:A.removeListener,getElement:function(){return t.Za},prepare:function(){},load:function(){q()},close:function(a){q=p;t.close(a)},play:function(){q(); | |
t.paused.set(!1)},pause:function(){q();t.paused.set(!0)},getPaused:function(){return t.paused.value},getMuted:function(){return t.muted.value},setMuted:function(a){t.muted.set(!!a)},getVolume:function(){return t.volume.value},setVolume:function(a){t.volume.set(Ma(a,0,1))},getEnded:function(){return B.value},getBusy:function(){var a=t.ue.value;if(a)return{networkStalled:!!a.Bf,stalled:!!a.Bf,progress:a.jc,progressRollback:!!a.xs}},getError:function(){var a=t.la;return a&&a.ii()},getCurrentTime:function(){return t.q.value}, | |
getBufferedTime:function(){var a=t.n;if(a)return a.Vp()},getDuration:function(){return t.duration},seek:function(a){t.ha?t.ha.seek(a):t.fb=a},getVideoSize:function(){return t.lc?{width:t.lc.width,height:t.lc.height}:null},getAudioTrackList:function(){for(var a=[],b=0;b<t.ya.length;b++)a.push(te(t.ya[b]));return a},getAudioTrack:function(){return te(t.Q.value)},setAudioTrack:function(a){for(var b,c=0;c<t.ya.length;c++)if(b=t.ya[c],te(b)==a){t.Q.set(b);return}C.error("Invalid setAudioTrack call")}, | |
getTimedTextTrackList:function(){for(var a=t.Q.value.pa,b=[],c=0;c<a.length;c++)b.push(te(a[c]));return b},tryRecoverFromStall:function(){t.fe()},getTimedTextTrack:function(){return te(t.T.value)},setTimedTextTrack:function(a){for(var b=t.Q.value.pa,c,d=0;d<b.length;d++){c=b[d];if(!a&&null==c){t.T.set(null);return}if(te(c)==a){C.info("Setting Timed Text, profile:"+c.Nk);t.T.set(c);return}}C.error("Invalid setTimedTextTrack call")},setTimedTextBounds:function(a){t.hi&&t.hi.Yh(a)},getTrickPlayFrame:function(a){if(t.zb)return t.zb.bq(a)}, | |
getXid:function(){return t.qa},getAdditionalLogInfo:function(){return n({playerver:"2.0000.453.011",jssid:Be,groupName:v.Qe,xid:t.qa,pbi:t.index},Uc,{prefix:"pi_"})},induceError:function(a){t.Ta(new Ib(R.Sl,N.mc,a))},loadCustomTimedTextTrack:function(b,c,d){if(!a(b))throw new Wa("invalid url");U.push({url:b,name:c,qo:d});x()},diagnostics:{addEventListener:c.addEventListener,removeEventListener:c.removeEventListener,getModel:c.kq,getTime:ia,getGroups:function(){return t.nf.cq()}},getSessionSummary:function(){var a= | |
{},c=t.Vk;try{if(t.la&&(a.errorCode=t.la.Nc,a.errorType=c?"endplay":"startplay"),a.playdelay=t.Vk,a.xid=t.qa,a.auth=t.Pp(),a.hdr=t.gq(),c){a.totaltime=Qa(t.Nb.ah());a.abrdel=t.Nb.Vj();var d=t.ha,f;f=d.xc();b(f)&&(a.totdfr=f);f=d.Cd();b(f)&&(a.totcfr=f);var g=d.hq();a.rbfrs_decoder=g.dp;a.rbfrs_network=g.Er;a.rbfrs_delay=t.Nb.iq();a.init_vbr=t.Dq;var h=Ea();Z(h)&&(a.pdltime=Ea());var k=t.Ya.value,l=k&&k.stream;l&&(a.vbr=l.f);a.bufferedTime=t.Tp()}}catch(m){C.error("error capturing session summary", | |
m)}return a}})}function te(a){return a?(a.Kh=a.Kh||{trackId:a.U,bcp47:a.Ra,displayName:a.displayName,trackType:a.Hf,channels:a.qg},a.Ak&&(a.Kh.isImageBased=!0),a.Kh):null}function Tj(a,b,c){function d(){v.set(!1);h()<c-1&&a.play()}function f(){v.set(!0);a.pause()}function g(){var b=h()>=c||a.getEnded();b&&a.pause();v.value?f():d();t.set(b)}function h(){return Ma(a.getCurrentTime()-b,0,c)}function k(d){a.seek(Ma(b+d,b,b+c-2E3));g()}var l=Kb.create(a),m=new Hb,q=Fb([Ph,Oh]),v=new Xa(!1,function(){m.A(Ph)}), | |
t=new Xa(!1,function(){m.A(Oh)});k(b||0);a.addEventListener(Aj,function(){var d=a.getDuration();b=va(d-2E3,b||0);c=va(d-b,c||d);k(0)});a.addEventListener(wj,g);n(l,{addEventListener:function(b){(q[b]?m.addListener:a.addEventListener).apply(null,arguments)},removeEventListener:function(b){(q[b]?m.removeListener:a.removeEventListener).apply(null,arguments)},play:d,pause:f,getPaused:function(){return v.value},getEnded:function(){return t.value},getCurrentTime:h,getDuration:function(){return c},seek:k}); | |
return l}var ta={c:!0},jh=["en-US"],Pk="hevc-dv-main10-L30-dash-cenc hevc-dv-main10-L31-dash-cenc hevc-dv-main10-L40-dash-cenc hevc-dv-main10-L50-dash-cenc hevc-dv-main10-L31-dash-cenc hevc-dv-main10-L41-dash-cenc".split(" "),Ok=["4E657466-6C69-7850-6966-665374726D21","4E657466-6C69-7848-6165-6465722E7632"],Zb=D.navigator,lc=Zb.userAgent,ff=D.location,Ae=D.screen,Yd=D.performance,vb=D.document,kd=D.Array,Fg=kd.prototype,Uj=Fg.sort,$g=Fg.slice,kf=Fg.filter,kk=Fg.forEach,Kb=D.Object,Gg=Kb.create,Fk= | |
Kb.keys,Qh=D.Date,gf=Qh.now,hl=D.String.fromCharCode,Jc=D.parseInt,wc=D.parseFloat,Oa=D.Math,ua=Oa.floor,pd=Oa.ceil,lb=Oa.round,Ba=Oa.max,va=Oa.min,ef=Oa.random,yc=Oa.abs,ih=Oa.pow,Gk=Oa.sqrt,Wa=D.Error,mb=D.JSON,Hg=D.escape,ah=D.unescape,Wd=D.encodeURIComponent,ki=D.decodeURIComponent,Di=D.XMLHttpRequest,bb=D.Uint8Array,Xd=D.Promise,uf=D.URL||D.webkitURL,vf=D.HTMLVideoElement,Ed=D.MediaSource||D.WebKitMediaSource,Mc=D.WebKitMediaKeys||D.MSMediaKeys||D.MediaKeys,vk=D.XMLSerializer,uk=D.DOMParser, | |
wf=D.nfCrypto||D.webkitCrypto||D.msCrypto||D.crypto,Dc=wf&&(wf.webkitSubtle||wf.subtle),Gl=D.nfCryptokeys||D.webkitCryptokeys||D.msCryptokeys||D.cryptokeys,eh,fh,Ec,Rh,Bj=D.PERSISTENT,Hl=D.requestFileSystem||D.webkitRequestFileSystem,ik=D.Blob,ri=D.FileReader,Sh=Zb.persistentStorage||Zb.webkitPersistentStorage,Il=Sh?h:D.storageInfo||D.webkitStorageInfo;try{eh=D.indexedDB}catch(Jl){fh=Jl||"noex"}try{Ec=D.localStorage}catch(Kl){Rh=Kl||"noex"}var Zg=/^\S+$/,mi=function(){function a(c){return b[c]}var b= | |
{"&":"&","'":"'",'"':""","<":"<",">":">"},c=/[&'"<>]/g;return function(b){return b.replace(c,a)}}(),ji=function(){var a=/^\s+|\s+$/gm;return function(b){return b.replace(a,"")}}(),lk,kg,Th,nh,tk,Bk,gl,fl,Ii,Cj,Uc,si,rk,sk,ti,hh,wi,xi,nk,pk,zi,Ai,qk,yi,ok,vi,Uh=/CrOS/.test(lc),Dj=/OPR/.test(lc);kg=Uh?"C":Dj?"O":"M";Th=/OPR/.test(lc)?"NFCDOP-01-":/Windows NT/.test(lc)?"NFCDCH-02-":/Intel Mac OS X/.test(lc)?"NFCDCH-MC-":/CrOS/.test(lc)?"NFCDCH-01-":"NFCDCH-LX-";nh=Uh?"chromeos-cadmium": | |
Dj?"opera-cadmium":"chrome-cadmium";Cj=/CrOS/.test(lc);ti=["heaac-2-dash"];hh=["playready-h264mpl30-dash","playready-h264mpl31-dash"];Uh&&hh.push("playready-h264mpl40-dash");wi=["dfxp-ls-sdh","simplesdh","nflx-cmisc"];xi=["com.widevine.alpha"];zi=!!D.MediaSource;Ai=!D.MediaSource;vi=function(a){return a};yi={MONOSPACED_SERIF:"font-family:Courier New,Arial,Helvetica;font-weight:bolder",MONOSPACED_SANS_SERIF:"font-family:Consolas,Lucida Console,Menlo,Monaco,Arial,Helvetica;font-weight:bolder",PROPORTIONAL_SERIF:"font-family:Georgia,Times New Roman,Arial,Helvetica;font-weight:bolder", | |
PROPORTIONAL_SANS_SERIF:"font-family:Arial,Helvetica;font-weight:bolder",CASUAL:"font-family:Gabriola,Segoe Print,Comic Sans MS,Chalkboard,Arial,Helvetica;font-weight:bolder",CURSIVE:"font-family:Lucida Handwriting,Brush Script MT,Segoe Script,Arial,Helvetica;font-weight:bolder",SMALL_CAPITALS:"font-family:Copperplate Gothic,Copperplate Gothic Bold,Copperplate,Arial,Helvetica;font-variant:small-caps;font-weight:bolder"};si={droppedFrameRateFilterEnabled:!0,promiseBasedEme:!0};var Ej=sa(),Ig;if(!(Ig= | |
Ej))a:{try{Zb.plugins.refresh();Ig=sa();break a}catch(Yl){}Ig=void 0}var Ll=Ig,Ml=!!fe("name",/Chrome Remote Desktop Viewer/i),Nl=!!fe("name",/Chromoting Viewer/i),Vh;a:{try{Vh=Ed.isTypeSupported('video/mp4; codecs="avc1.640028"');break a}catch(Zl){}Vh=void 0}var Ol=Vh,Wh;a:{try{Wh=Fa("VIDEO").canPlayType('video/mp4; codecs="avc1.640028"');break a}catch($l){}Wh=void 0}var Pl=Wh,Xh;a:{try{if(f(Zb.requestMediaKeySystemAccess))Ia();else{Xh=Fa("VIDEO").canPlayType('video/mp4; codecs="avc1.640028"',"com.widevine.alpha"); | |
break a}}catch(am){}Xh=void 0}Uc={wvp:Ej,wvp2:Ll,crdvp:Ml,cvp:Nl,itsh264:Ol,cpth264:Pl,cpth264wv:Xh};var Fj=y(11),Eg=Fj.yg,jd=Fj.Ig,ii=y(3),Bc=ii.yg,Vc=y(4),yh=y(5).Ds,ll=y(6);f(ArrayBuffer.prototype.slice)||(ArrayBuffer.prototype.slice=function(a,b){void 0===a&&(a=0);void 0===b&&(b=this.byteLength);a=Oa.floor(a);b=Oa.floor(b);0>a&&(a+=this.byteLength);0>b&&(b+=this.byteLength);a=Oa.min(Oa.max(0,a),this.byteLength);b=Oa.min(Oa.max(0,b),this.byteLength);if(0>=b-a)return new ArrayBuffer(0);var c=new ArrayBuffer(b- | |
a),d=new bb(c),f=new bb(this,a,b-a);d.set(f);return c});var ld=gf()-1,bh=0,Be=""+(1E4*Nb()+ua(1E4*ef())),ra={addSink:function(a){Ee.push(a)},removeSink:function(a){Ee.splice(Ee.indexOf(a),1)},write:function(a,b,c){a={Ma:this.Ma,level:a,message:b,fields:c||{},time:ia(),index:Ql++,category:this.oj||"General"};this.Dg&&(a.Dg=!0);for(b=0;b<Ee.length;b++)Ee[b](a)},Ip:function(a,b){this.write(wb.FATAL,a,Gc(arguments))},error:function(a,b){this.write(wb.ERROR,a,Gc(arguments))},warn:function(a,b){this.write(wb.WARN, | |
a,Gc(arguments))},info:function(a,b){this.write(wb.INFO,a,Gc(arguments))},trace:function(a,b){this.write(wb.TRACE,a,Gc(arguments))},debug:function(a,b){this.write(wb.DEBUG,a,Gc(arguments))},log:function(a,b){this.write(wb.DEBUG,a,Gc(arguments))}};ra.fatal=ra.Ip;ra.error=ra.error;ra.warn=ra.warn;ra.info=ra.info;ra.trace=ra.trace;ra.debug=ra.debug;ra.log=ra.log;(ra.r=function(a){this.oj=a}).prototype=ra;Pc.prototype=ra;var wb={MIN:0,FATAL:0,ERROR:1,WARN:2,INFO:3,TRACE:4,DEBUG:5,MAX:5},Ee=[],Ql=0,Vj= | |
/^\w*Error$/,Xj=/[\r\n]+ */g,Wj=Fb(["Details","Exception","StackTrace"]),Yj={0:"F",1:"E",2:"W",3:"I",4:"T",5:"D"},Zj=0,jb=new Hb,Lc=1,Dd=2,Jh=3,Eh=4;Aa(function(){function a(b,d){if(c)c.on(b,d);else D.addEventListener(b,d)}var b=D.jQuery,c=b&&b(D),b=(b=D.netflix)&&b.cadmium&&b.cadmium.addBeforeUnloadHandler,d=vb.hidden;b?b(function(a){jb.A(Lc,a)}):a("beforeunload",function(a){jb.A(Lc,a)});a("keydown",function(a){jb.A(Dd,a)});a("resize",function(){jb.A(Jh)});vb.addEventListener("visibilitychange", | |
function(){d!==vb.hidden&&(d=vb.hidden,jb.A(Eh))})});var sj=function(){function a(){vb.body&&!c()&&(vb.body.appendChild(k),f(!0))}function b(){c()&&vb.body.removeChild(k)}function c(){return k.parentNode==vb.body}function d(){g.pb(f)}function f(a){var b=C(u.value),c=w.value?new RegExp(w.value):null,d=p.checked,g="",h,m,r=n.length;for(m=0;m<r;m++)if(h=n[m],h.level<=b&&(h=Yc(h,d,d),!c||c.test(h)))g+=h+"\n";l.value="Version: 2.0000.453.011\n"+(ac?"Esn: "+ac.vc+"\n":"")+"JsSid: "+Be+", Epoch: "+Nb()+ | |
", Start: "+ua(ld/1E3)+", TimeZone: "+(new Qh).getTimezoneOffset()+"\nHref: "+ff.href+"\nUserAgent: "+Zb.userAgent+"\n--------------------------------------------------------------------------------\n"+g;k.style.cssText=q?"position:fixed;left:10px;top:10px;right:10px;z-index:10000;color:#000;;height:30%":"position:fixed;left:10px;top:10px;right:10px;z-index:10000;color:#000;;bottom:10px";a&&Aa(function(){l.scrollTop=l.scrollHeight})}var g=new Eb(1E3),k=Fa("DIV","position:fixed;left:10px;top:10px;right:10px;z-index:10000;color:#000;;bottom:10px", | |
h,{"class":"player-log"}),l=Fa("TEXTAREA","position:absolute;resize:none;box-sizing:border-box;width:100%;height:100%;margin:0;color:#040;font-size:11px;font-family:monospace;overflow:scroll;background-color:rgba(255,255,255,0.6)"),m=Fa("DIV","position:absolute;top:2px;right:2px;opacity:0.8;background-color:white"),n=[],q=!0,t;l.setAttribute("wrap","off");l.setAttribute("readonly","readonly");l.addEventListener("focus",function(){t=!0;f(!1);l.style.cssText="position:absolute;resize:none;box-sizing:border-box;width:100%;height:100%;margin:0;color:#040;font-size:11px;font-family:monospace;overflow:scroll;background-color:rgba(255,255,255,0.86)"}); | |
l.addEventListener("blur",function(){t=!1;f(!1);l.style.cssText="position:absolute;resize:none;box-sizing:border-box;width:100%;height:100%;margin:0;color:#040;font-size:11px;font-family:monospace;overflow:scroll;background-color:rgba(255,255,255,0.6)"});k.appendChild(l);k.appendChild(m);var u=Fa("SELECT",null,'<option value="1">Error</option><option value="2">Warn</option><option value="3" selected>Info</option><option value="4">Trace</option><option value="5">Debug</option>');u.addEventListener("change", | |
f,!1);m.appendChild(u);var p=Fa("INPUT","display:inline-block;border:1px solid black;padding:3px;");p.setAttribute("type","checkbox");p.setAttribute("checked","true");p.setAttribute("title","Details");p.addEventListener("change",f,!1);m.appendChild(p);var w=Fa("INPUT","display:inline-block;border:1px solid black;padding:3px;;width:150px");w.addEventListener("keydown",d,!1);w.addEventListener("change",d,!1);w.setAttribute("title","Filter (RegEx)");m.appendChild(w);var A=Fa("BUTTON","display:inline-block;border:1px solid black;padding:3px;", | |
"Update");A.addEventListener("click",f,!1);m.appendChild(A);A=Fa("BUTTON","display:inline-block;border:1px solid black;padding:3px;","Clear");A.addEventListener("click",function(){n=[];f()},!1);m.appendChild(A);A=Fa("BUTTON","display:inline-block;border:1px solid black;padding:3px;","M");A.addEventListener("click",function(){q=!q;f()},!1);m.appendChild(A);A=Fa("BUTTON","display:inline-block;border:1px solid black;padding:3px;","X");A.addEventListener("click",b,!1);m.appendChild(A);jb.addListener(Dd, | |
function(d){d.ctrlKey&&d.altKey&&d.shiftKey&&76==d.keyCode&&(q=!1,c()?b():a())});ra.addSink(function(a){n.push(a);v&&(a=v.Zq,0<=a&&n.length>a&&n.shift());c()&&!t?d():g.pb()});return{show:function(){q=!1;a()},hh:b,toggle:function(){q=!1;c()?b():a()}}}();ra.addSink(function(a){var b=a.level;if(!v||b<=v.br){a=Yc(a,!0,!0);var c=D.console;1>=b?c.error(a):2>=b?c.warn(a):c.log(a)}});var ak=0;n(ie.prototype,{Se:!1,gd:0,de:0,Ve:0,Ld:!1,We:0,bo:function(a){b(a)&&(a<this.gd&&(this.de+=this.gd),this.gd=a,this.Se= | |
!0)},Xp:function(){if(this.Se)return this.Ld?this.We-this.Ve:this.de+this.gd-this.Ve},Ft:function(){this.Ld||(this.Se&&(this.We=this.de+this.gd),this.Ld=!0)},Nt:function(){this.Ld&&(this.Se&&(this.Ve+=this.de+this.gd-this.We),this.We=0,this.Ld=!1)}});Vc.prototype.Kl=function(a){a=new Vc(a);for(var b,c;;)if(b=a.Ka(),c=b>>>14)c=va(4,c),this.pi(192|c),this.he(a,16384*c);else{128>b?this.pi(b):this.Ll(b|32768,2);this.he(a,b);break}};Vc.prototype.bl=function(){for(var a=[],b=new Vc(a),c;;){c=this.ba(); | |
if(c&128)if(128==(c&192))c&=63,c=(c<<8)+this.ba(),b.he(this,c);else if(c&=63,0<c&&4>=c){b.he(this,16384*c);continue}else throw new Wa("bad asn1");else b.he(this,c);break}return new bb(a)};var bk="0123456789ABCDEF",Ag,Gj;(function(){function a(b){return d[b]}var d={'"':'""',"\r":"","\n":" "},f=/["\r\n]/g,g=/[", ]/;Gj=function(c){return b(c)?c:U(c)?c.replace(f,a):!0===c||!1===c?c:""};Ag=function(a){var b=Gj,d="";c(a,function(a,c){var f=b(a)+"="+b(c);g.test(f)&&(f='"'+f+'"');d=d?d+(","+f):f});return d}})(); | |
Ib.prototype.toString=function(){var a="[PlayerError #"+this.Nc+"]";this.D&&(a+=" "+this.D);this.Ae&&(a+=" (CustomMessage: "+this.Ae+")");return a};Ib.prototype.ii=function(){var a;this.Ae&&(a=["streaming_error"]);a||"80080017"==this.V&&(a=["admin_mode_not_supported","platform_error"]);if(!a)switch(this.errorCode){case R.me:case R.ie:case R.Of:case R.Ki:a=["pause_timeout"];break;case R.Ai:case R.Ci:a=this.g?["platform_error"]:["multiple_tabs"];break;case R.zi:case R.yi:case R.Bi:a=["should_signout_and_signin"]; | |
break;case R.xi:case R.Ni:case R.Mi:case R.Zf:case R.Ji:a=["platform_error","plugin_error"];break;case R.Yf:a=["no_cdm","platform_error","plugin_error"];break;case R.Wf:a=this.g?["platform_error","plugin_error"]:["no_cdm","platform_error","plugin_error"];break;case R.Xf:switch(this.V){case "FFFFD000":a=["device_needs_service","platform_error"];break;case "48444350":a=["unsupported_output","platform_error"];break;case "00000024":a=["private_mode"]}break;case R.Li:a=["unsupported_output"]}!a&&ke(this.g)&& | |
(a=["internet_connection_problem"]);if(!a)switch(this.g){case N.ag:a=["should_upgrade"];break;case N.Hi:case N.Tf:a=["should_signout_and_signin"];break;case N.Ii:a=["internet_connection_problem"];break;case N.Ui:case N.Vi:case N.Ri:a=["storage_quota"];break;case N.hn:case N.fn:case N.jn:case N.gn:case N.qi:a=["platform_error","plugin_error"];break;case N.Pl:case N.ui:case N.vi:a=["private_mode"]}switch(this.g){case N.wi:case N.Ti:case N.Wi:case N.$f:v.io&&(a=["please_call"])}a=a||[];a.push(kg+this.errorCode); | |
this.g&&a.push(""+this.g);a={display:{code:this.Nc,text:this.Ae},messageIdList:a};this.Sc&&(a.nccpActionId=this.Sc);this.Tc&&(a.mslErrorCode=this.Tc);return a};var R={mc:7001,je:7010,Yl:7014,zi:7016,yi:7017,Bi:7018,Ai:7020,Ci:7022,pm:7029,om:7031,km:7041,lm:7042,mm:7043,gm:7051,$l:7052,hm:7053,im:7054,Hu:7055,Ku:7056,Ou:7057,am:7058,xi:7059,Ju:7060,Iu:7061,Nu:7062,bm:7063,dm:7064,cm:7065,em:7066,fm:7067,Pu:7068,Zl:7069,Lu:7081,Mu:7082,jm:7083,ym:7111,Am:7113,zm:7115,Bm:7117,Im:7121,Em:7123,Fm:7125, | |
Xu:7130,dv:7131,bv:7133,Mm:7202,Sm:7330,nv:7331,Ki:7332,Tm:7333,Li:7334,Ni:7351,Mi:7352,Rm:7353,Wf:7354,Zf:7355,Ji:7356,Yf:7357,Xm:7358,Nm:7359,pv:7360,Um:7361,Xf:7363,Vf:7364,Vm:7365,Ym:7367,Zm:7371,$m:7373,en:7375,dn:7376,cn:7377,ov:7379,bn:7381,Wm:7385,Om:7391,Pm:7392,Qm:7393,Sl:7400,me:7500,ie:7502,Of:7510,An:7600,kn:7601,Cn:7602,ln:7603,Pi:7604,Bn:7605,qn:7620,un:7621,rn:7622,sn:7623,wn:7624,mn:7625,tn:7626,yn:7627,vn:7628,pn:7631,zn:7632,xn:7633,nn:7634},N={mc:1001,Ub:1003,Nl:1011,Ol:1013,Ml:1015, | |
si:1101,ti:1102,kd:1103,ri:1104,Rf:1105,ld:1106,cb:1107,Qf:1108,Ul:1110,ke:1203,le:1204,vm:1250,Qu:1251,Tu:1252,Ru:1253,Uu:1254,Su:1255,Ql:1260,Du:1261,yu:1262,Cu:1263,Bu:1264,Au:1265,zu:1266,Rl:1269,av:1303,Jm:1305,Uf:1309,cv:1311,ev:1312,$u:1313,Zu:1315,Yu:1317,Dm:1321,Cm:1323,Km:1331,Hi:1333,Ii:1337,fv:1341,Gm:1343,Hm:1344,Fc:1402,tv:1403,Ui:1405,Vi:1407,Si:1411,Ti:1412,Nn:1414,Wi:1415,Qi:1417,$f:1418,Ri:1421,Jn:1423,uv:1425,Gn:1427,In:1429,Hn:1431,Kn:1432,Mn:1451,Ln:1453,mv:1501,lv:1502,gv:1504, | |
jv:1506,hv:1508,kv:1515,qi:1553,Pl:1555,hn:1603,fn:1605,jn:1607,gn:1609,sv:1625,qv:1627,rv:1629,Fu:1701,Tl:1713,Gu:1715,Eu:1721,Pf:1723,ui:1802,Xl:1803,vi:1804,Wl:1805,wi:1807,Vl:1809,Vu:1901,wm:1911,Fi:1913,xm:1915,Di:1931,Gi:1933,Ei:1935,Tf:1957,ag:2103,On:2105,Pn:2107},yg,Wb,Jg,Yh,li={};(function(){var a=new ra.r("loadAsync"),b=[];Wb=function(a,c){b.push({Wq:c,So:a})};yg=Mb(function(c){function d(){var c,k,l;if(c=b.shift())try{k=c.Wq,g=l=c.So,h.yb(),h.tc(),k(function(a){a.c?d():(a.errorCode=a.errorCode|| | |
l,f(a))})}catch(m){a.error("Exception while loading component",m),f({errorCode:l,g:N.Nl,D:""+m})}else f(ta)}function f(a){Yh=ia();f=p;h.yb();c(a)}Jg=ia();var g=0,h=new Ob(v.lo,function(){a.error("Load timed out");f({errorCode:g,g:N.Ol})});d()})})();var ck=/^[0-9.]*$/,dk=/^([a-fA-F0-9]*:){2}[a-fA-F0-9:.]*$/,wa={};(function(){wa.gw=function(a,b){return a<b?-1:a===b?0:1};wa.Ag=function(a,b){return a===b};wa.lw=function(a){return null===a?"BUCKETS_NULL":wa.Od(a)?"BUCKETS_UNDEFINED":wa.Kq(a)?a:a.toString()}; | |
wa.Hq=function(a){return"function"===typeof a};wa.Od=function(a){return a===h};wa.Kq=function(a){return"[object String]"===Kb.prototype.toString.call(a)};wa.zz=function(a){return wa.Hq(a)?function(b,c){return-1*a(b,c)}:function(a,b){return a<b?1:a===b?0:-1}};wa.Wv=function(a){return function(b,c){return 0===a(b,c)}};wa.ja=function(){this.ra=this.Z=null;this.Ca=0};wa.ja.prototype.add=function(a,b){wa.Od(b)&&(b=this.Ca);if(0>b||b>this.Ca||wa.Od(a))return!1;var c=this.createNode(a);if(0===this.Ca)this.ra= | |
this.Z=c;else if(b===this.Ca)this.ra=this.ra.next=c;else if(0===b)c.next=this.Z,this.Z=c;else{var d=this.Pk(b-1);c.next=d.next;d.next=c}this.Ca++;return!0};wa.ja.prototype.first=function(){return null!==this.Z?this.Z.element:h};wa.ja.prototype.W=function(){return null!==this.ra?this.ra.element:h};wa.ja.prototype.indexOf=function(a,b){var c=b||wa.Ag;if(wa.Od(a))return-1;for(var d=this.Z,f=0;null!==d;){if(c(d.element,a))return f;f++;d=d.next}return-1};wa.ja.prototype.contains=function(a,b){return 0<= | |
this.indexOf(a,b)};wa.ja.prototype.remove=function(a,b){var c=b||wa.Ag;if(1>this.Ca||wa.Od(a))return!1;for(var d=null,f=this.Z;null!==f;){if(c(f.element,a))return f===this.Z?(this.Z=this.Z.next,f===this.ra&&(this.ra=null)):(f===this.ra&&(this.ra=d),d.next=f.next,f.next=null),this.Ca--,!0;d=f;f=f.next}return!1};wa.ja.prototype.clear=function(){this.ra=this.Z=null;this.Ca=0};wa.ja.prototype.equals=function(a,b){var c=b||wa.Ag;return a instanceof wa.ja&&this.size()===a.size()?this.Fp(this.Z,a.Z,c):!1}; | |
wa.ja.prototype.Fp=function(a,b,c){for(;null!==a;){if(!c(a.element,b.element))return!1;a=a.next;b=b.next}return!0};wa.ja.prototype.Ks=function(){if(!(0>=this.Ca)){if(1===this.Ca)this.ra=this.Z=null;else{var a=this.Pk(-1);null===a?this.Z=this.Z.next:a.next===this.ra&&(this.ra=a);null!==a&&(a.next=a.next.next)}this.Ca--}};wa.ja.prototype.forEach=function(a){for(var b=this.Z;null!==b&&!1!==a(b.element);)b=b.next};wa.ja.prototype.reverse=function(){for(var a=null,b=this.Z,c=null;null!==b;)c=b.next,b.next= | |
a,a=b,b=c;c=this.Z;this.Z=this.ra;this.ra=c};wa.ja.prototype.size=function(){return this.Ca};wa.ja.prototype.Pk=function(a){if(0>a||a>=this.Ca)return null;if(a===this.Ca-1)return this.ra;for(var b=this.Z,c=0;c<a;c++)b=b.next;return b};wa.ja.prototype.createNode=function(a){return{element:a,next:null}};wa.Bb=function(){this.list=new wa.ja};wa.Bb.prototype.Qc=function(a){return this.list.add(a)};wa.Bb.prototype.Mc=function(){if(0!==this.list.size()){var a=this.list.first();this.list.Ks();return a}return h}; | |
wa.Bb.prototype.mf=function(){return 0!==this.list.size()?this.list.first():h};wa.Bb.prototype.size=function(){return this.list.size()};wa.Bb.prototype.contains=function(a,b){return this.list.contains(a,b)};wa.Bb.prototype.clear=function(){this.list.clear()};wa.Bb.prototype.forEach=function(a){this.list.forEach(a)}})();var ek=function(){function a(b){if(Ua(b)){b=b.toLowerCase();if("#"==b[0]){if(7==b.length)return b;if(4==b.length)return"#"+b[1]+b[1]+b[2]+b[2]+b[3]+b[3]}return Rl[b]}}function b(a, | |
c,d){c=c[a];0<=c||(c=wc(a));if(0<=c)return va(c,d)}function d(a,b){var c=a.length,f=a[c-1];if("t"===f)return wc(a)*b|0;if("s"===f)return"m"===a[c-2]?wc(a)|0:1E3*wc(a)|0;if((c=a.match(J))&&4<=c.length)return 1E3*(3600*Jc(c[1],10)+60*Jc(c[2],10)+wc(c[3]))|0;throw new Wa("dfxp-badtime");}function f(a,b,c,d,g){var k;if(a){var l=a.style;c=l?c[l]:h;d=(l=a.region)?d[l]:h;for(var m=l=g.length,n,r,q,x,t,m=0;m<l;m++)if(n=g[m],r=a[n],r===h&&c&&(r=c[n]),r===h&&d&&(r=d[n]),r!==h&&r!==b[n]){if(!k)for(k={},q=0;q< | |
l;q++)x=g[q],t=b[x],t!==h&&(k[x]=t);k[n]=r}}return k||b}function g(a,b,c,d,k,l,m,r,q){function x(a,g,p){var z=a[$b],w=z.style||g.style||"",C=z.region||g.region||"",A,E;w||C?(A=w+"/"+C,E=c[A]):E=b;if(!E){E=b;var B;B=oc(d);n(B,k[w]);E=t(E,B,m,r,q);c[w+"/"]=E;C&&(n(B,l[C]),n(B,k[w]),E=t(E,B,m,r,q),c[A]=E)}if(!p)a:{for(p=G.length;p--;)if(z[G[p]]!==h){p=!0;break a}p=void 0}p&&(z=f(z,g,k,l,P),E=t(E,z,m,r,q));g=(a=a[lh])&&a.length;for(w=0;w<g;w++)C=a[w],qa(C)?M.test(C[ng])?u++:x(C,z,p):(v.push({text:C,lineBreaks:u, | |
style:E}),u=0)}var v=[],u=0;x(a,d,!1);0<u&&v.push({text:"",lineBreaks:u,style:b});return v}function l(a,b,c,d,f,g,h,k){var m;c&&(c=F[c]||"top",a.verticalAlignment!==c&&(a.verticalAlignment=c));d&&(c=K[d]||"left",a.horizontalAlignment!==c&&(a.horizontalAlignment=c));var n;f?((n=k[f])?(d=n.marginLeft,c=n.marginTop):(m=f.split(" "),d=u(m[0],h.x)||0,c=u(m[1],h.y)||0,n={Va:0,marginLeft:d,marginTop:c,eo:d*b.eh+b.Hd,ho:c*b.mi+b.Lf},30>k.Va&&(k.Va++,k[f]=n)),a.marginLeft=n.eo,a.marginTop=n.ho):(c=d=0,(n= | |
k["default"])||(k["default"]=n={Va:0}));g&&(f=n[g],f||(m=g.split(" "),f={fo:(1-(d+(u(m[0],h.x)||0)))*b.eh+b.Hd,co:(1-(c+(u(m[1],h.y)||0)))*b.mi+b.Lf},30>n.Va&&(n.Va++,n[g]=f)),a.marginRight=f.fo,a.marginBottom=f.co)}function m(a,b,c,d,f){var g=a.displayAlign,h=a.textAlign,k=a.origin;a=a.extent;c=oc(c);l(c,b,g,h,k,a,d,f);c.id=U++;return c}function q(c,d,f,g){var h=b(f.characterSize||d.characterSize,Sl,2)||1,k;k=(k=c.fontSize)&&ca.test(k)?Ma(C(k),25,200):void 0;h*=k/100||1;k=c.textOutline;var l,m,n; | |
if(k&&"none"!=k){m=k.split(" ");var r;Q.test(m)?(r=0,n=c.color):(r=1,n=a(m[0]));l=v(m[r]);m=v(m[r+1])}return{characterStyle:f.characterStyle||Tl[c.fontFamily]||d.characterStyle,characterSize:h*g,characterColor:a(f.characterColor||c.color||d.characterColor),characterOpacity:b(kb(f.characterOpacity,c.opacity,d.characterOpacity),Zh,1),characterEdgeAttributes:f.characterEdgeAttributes||k&&("none"===k?Ul:m?ch:ni)||d.characterEdgeAttributes,characterEdgeColor:a(f.characterEdgeColor||n||d.characterEdgeColor), | |
characterEdgeWidth:l,characterEdgeBlur:m,characterItalic:"italic"===c.fontStyle,characterUnderline:"underline"===c.textDecoration,backgroundColor:a(f.backgroundColor||c.backgroundColor||d.backgroundColor),backgroundOpacity:b(kb(f.backgroundOpacity,c.opacity,d.backgroundOpacity),Zh,1)}}function t(a,b,d,f,g){b=q(b,d,f,g);var h;c(b,function(b,c){c!==a[b]&&(h||(h=Gg(a)),h[b]=c)});return h||a}function x(a,b,c,d,g,h,k,m){var n=a[$b];c=f(a[$b],b,c,g,D);b=c.region;a=n.displayAlign;c=c.textAlign;g=n.origin; | |
n=n.extent;b||a||c||g||n?((d=d[b])?d=Gg(d):a||g||n?(d=Gg(y),d.id=U++):d=Gg(I),l(d,h,a,c,g,n,k,m)):d=I;return d}function v(a){a=C(a);return k(a,0,100)?a:0}function u(a,b){var c=a[a.length-1];if("%"===c)return Ma(.01*wc(a),0,1);if("c"===c)return Ma(C(a)/b,0,1)}function w(a){for(var b=a.length,c=a[--b].endTime;b--;)c=va(a[b].endTime,c);return c}function A(b){c(b,function(c,d){0<=c.toLowerCase().indexOf("color")&&(b[c]=a(d))})}function B(a,b){var c=a.extent,d=a.pixelAspectRatio,f,g,h={Hd:0,eh:1,Lf:0, | |
mi:1};c&&(c=c.split(" "),2<=c.length&&(d=(d||"").split(" "),f=wc(c[0])*(wc(d[0])||1),g=wc(c[1])*(wc(d[1])||1)),f=0<f&&0<g?f/g:1280/720,d=b||1280/720,c=f/d,.01<yc(d-f)&&d>=f&&(h.Hd=(1-c)/2,h.eh=c));return h}function O(a,b){var c;if(c=a.cellResolution)if(c=c.split(" "),2<=c.length){var d=C(c[0]);c=C(c[1]);if(0<d&&0<c)return{x:d,y:c}}c=a.extent;var f,g;if(c&&(c=c.split(" "),2<=c.length)){var d=C(c[0]),h=C(c[1]);if(c=a.pixelAspectRatio)c=c.split(" "),f=C(c[0]),g=C(c[1]);if(d&&h)return 1.5<d*(f||1)/(h* | |
(g||1))?Hj:Ij}return 1.5<b?Hj:Ij}var U=1,F={before:"top",center:"center",after:"bottom"},K={left:"left",start:"left",center:"center",right:"right",end:"right"},I={id:U++,verticalAlignment:"bottom",horizontalAlignment:"center",marginTop:.1,marginLeft:.1,marginRight:.1,marginBottom:.1},y={id:U++,verticalAlignment:"top",horizontalAlignment:"left",marginTop:0,marginLeft:0,marginRight:0,marginBottom:0},G="fontFamily fontSize fontStyle textDecoration color opacity backgroundColor textOutline".split(" "), | |
P=G.concat(["style","region"]),D=["region","textAlign","displayAlign","extent","origin"],J=/^([0-9]+):([0-9]+):([0-9.]+)$/,M=/^br$/i,ca=/^[0-9]{1,3}%$/,Q=/^[0-9]/;return function(c,k,l,t,u){function v(){try{for(var a;Ua;)if(R=Ua[$b],ha.push({id:U++,startTime:d(R.begin,J),endTime:d(R.end,J),region:x(Ua,Bb,ca,hb,Q,M,Y,Ca),textNodes:g(Ua,Qa,qa,ia,ca,Q,Ha,ba,cb)}),Ua=Ua[Qb],a=gf(),100<a-ma){ma=Qh.now();na=$a(v,1);return}}catch(b){K({g:N.Pf,D:L(b)});return}na=$a(F,1)}function F(){try{var a=function(a, | |
d){for(var f,g=[],h={},k,l=c.length;l--;)f=c[l],k=f.region.id,h[k]||(h[k]=1,g.unshift(f));(f=b[b.length-1])&&f.endTime==a&&Id(f.blocks,g)?f.endTime=d:b.push({id:U++,startTime:a,endTime:d,blocks:g})};if(!ha.length){K({c:!0,entries:[]});return}Xb(ha);var b=[],c=[],d=ha[0],f,g=ha[0].startTime,h,k;for(h=1;c.length||d;){for(;!c.length||d&&d.startTime==g;)c.push(d),g=d.startTime,d=ha[h++];f=w(c);if(!d||f<=d.startTime)for(a(g,f),g=f,k=c.length;k--;)c[k].endTime<=g&&c.splice(k,1);else a(g,d.startTime),g= | |
d.startTime,c.push(d),d=ha[h++]}for(h=b.length;h--;)b[h].index=h,b[h].previous=b[h-1],b[h].next=b[h+1]}catch(l){K({g:N.Pf,D:L(l)});return}K({c:!0,entries:b})}function K(a){$a(function(){I.abort=p;u(a)},1)}var I={abort:function(){na&&pb(na)}};try{var G=c[$b],J=1E3/(C(G.tickRate)||1),M=B(G,k),V=n(y,{marginLeft:M.Hd,marginTop:M.Lf,marginRight:M.Hd,marginBottom:M.Lf}),ca={},Q={},hb={},R,T,Z,W=c.head,da=c.body,Y=O(G,k),cb=1/Y.y*M.mi,Ha=n({characterStyle:"PROPORTIONAL_SANS_SERIF",characterColor:"#EBEB64", | |
characterEdgeAttributes:ch,characterEdgeColor:"#000000",characterSize:1},l,{kf:!0}),ba=t||{},Ca={Va:0};if(W){var fa=W.styling;if(fa)for(Z=fa.style;Z;)R=Z[$b],A(R),ca[R.id]=R,Z=Z[Qb];var fc=W.layout;if(fc)for(var Na=fc.region;Na;){R=Na[$b];var oa=R.id;T=oc(ca[R.style]);T=n(T,R);for(Z=Na.style;Z;)n(T,Z[$b]),Z=Z[Qb];A(T);Q[oa]=T;hb[oa]=m(T,M,V,Y,Ca);Na=Na[Qb]}}var ga=da.div,Ua=ga.p,ha=[],ia={},ia=f(da[$b],ia,ca,Q,P),ia=f(ga[$b],ia,ca,Q,P),Bb={},Bb=f(da[$b],Bb,ca,Q,D),Bb=f(ga[$b],Bb,ca,Q,D),Qa=q(ia,Ha, | |
ba,cb);n(Qa,{windowColor:a(ba.windowColor||Ha.windowColor),windowOpacity:b(kb(ba.windowOpacity,Ha.windowOpacity),Zh,1),cellResolution:Y},{kf:!0});var qa={};ga.p=h;ga[lh]=[]}catch(sa){K({g:N.Pf,D:L(sa)});return}var ma=gf(),na;na=$a(v,1);return I}}(),Tl={"default":"PROPORTIONAL_SANS_SERIF",monospaceSansSerif:"MONOSPACED_SANS_SERIF",monospaceSerif:"MONOSPACED_SERIF",proportionalSansSerif:"PROPORTIONAL_SANS_SERIF",proportionalSerif:"PROPORTIONAL_SERIF",casual:"CASUAL",cursive:"CURSIVE",smallCapitals:"SMALL_CAPITALS", | |
monospace:"MONOSPACED_SANS_SERIF",sansSerif:"PROPORTIONAL_SANS_SERIF",serif:"PROPORTIONAL_SERIF"},Sl={SMALL:.5,MEDIUM:1,LARGE:2},Zh={NONE:0,SEMI_TRANSPARENT:.5,OPAQUE:1},Rl={black:"#000000",silver:"#c0c0c0",gray:"#808080",white:"#ffffff",maroon:"#800000",red:"#ff0000",purple:"#800080",fuchsia:"#ff00ff",magenta:"#ff00ff",green:"#00ff00",lime:"#00ff00",olive:"#808000",yellow:"#ffff00",navy:"#000080",blue:"#0000ff",teal:"#008080",aqua:"#00ffff",cyan:"#00ffff",orange:"#ffa500",pink:"#ffc0cb"},Ul="NONE", | |
gk="RAISED",hk="DEPRESSED",ni="UNIFORM",ch="DROP_SHADOW",Ij={x:40,y:19},Hj={x:52,y:19},fk=10,dh={"class":"player-timedtext-text-container"},$h;Wb(R.gm,function(a){function b(){Sh?Sh.requestQuota(g,c,d):Il.requestQuota(Bj,g,c,d)}function c(d){d>=g?($h=d,a(ta)):h?(f.error("Quota request granted insufficent bytes"),a({g:N.Vi})):(h=!0,b())}function d(){f.error("Request quota error");a({g:N.Ui})}var f=new ra.r("RequestQuota"),g=v.Ot,h;0<g?b():($h=0,a(ta))});var oi;Wb(R.$l,function(a){var b=new ra.r("FileSystem"); | |
"fs"!=v.wl?a(ta):Hl(Bj,$h,function(b){oi=b;a(ta)},function(){b.error("Error calling requestFileSystem");a({g:N.Ri})})});var qi={},pi={create:!0},jk={create:!0,exclusive:!0},ib;Wb(R.hm,function(a){var b;switch(v.wl){case "fs":b=Ne;break;case "idb":b=ne;break;case "none":b=Rg}b(function(b){b.c?(ib=b.di,a(ta)):a(b)})});var ce;Wb(R.im,function(a){function b(){b=p;var a=qb(d,v.Yq);jb.addListener(Lc,function(b){b&&b.isPopStateEvent?f.trace("popstate event, Lock timers can stay"):(c(g,function(a,b){Ec.removeItem(b.Ac)}), | |
yb(a))},-1)}function d(){var a=Nb();c(g,function(b,c){Ec.setItem(c.Ac,a)})}var f=new ra.r("StorageLock"),g={};ce={$i:function(a,c){function d(){Ec.setItem(l,h);var a={Ac:l};g[l]=a;f.trace("Lock acquired",{Name:a.Ac});c({c:!0,bf:a})}if(Ec){b();var h=Nb(),l="lock-"+a;try{if(l in Ec){var m=C(Ec.getItem(l)),n;k(m,0,void 0)&&(n=m);1E3*yc(h-n)<v.Xq?c({c:!1}):(f.error("Lock was expired or invalid, ignoring",{Epoch:h,LockEpoch:n}),d())}else d()}catch(r){f.error("Error acquiring Lock",r),c({g:N.Ub,D:L(r)})}}else Rh? | |
c({g:N.Ln,D:L(Rh)}):c({g:N.Mn})},Js:function(a,b){if(Ec){try{Ec.removeItem(a.Ac),delete g[a.Ac],f.trace("Lock released",{Name:a.Ac})}catch(c){f.error("Unable to release Lock",{Name:a.Ac},c)}b&&b(ta)}}};v.Ep?ce.$i("session",function(b){ce.nl=b;a(ta)}):a(ta)});Wb(R.jm,function(a){Fd()?Dc&&Dc.generateKey&&Dc.importKey&&Dc.unwrapKey?"PSK"!=v.kg&&"MGK"!=v.kg||Gl?(hc("wcs"),Db(Dc.generateKey({name:"AES-CBC",length:128},!0,["encrypt","decrypt"])).then(function(){hc("wcdone");a(ta)},function(b){b=""+b;var c; | |
0<=b.indexOf("missing crypto.subtle")?c=N.ag:0<=b.indexOf("timeout waiting for iframe to load")&&(c=N.Pn);a({g:c,D:b})})):a({g:N.On}):a({g:N.ag}):a(ta)});var v,lg,xh;Wb(R.am,function(a){var b=v.dr,c=-6/(b-2-2);if(k(b,1)){var d=[],f=ua(ia()/1E3);qb(function(){var a=ua(ia()/1E3);if(a!=f){for(var b=va(a-f,30);b--;)d.push(0);(b=Ba(d.length-31,0))&&d.splice(0,b);f=a}d[d.length-1]++},1E3/b);xh={dq:function(){for(var a=[],f=d.length-1;f--;){var g=d[f];a.unshift(0>=g?9:1>=g?8:g>=b-1?0:lb((g-2)*c+7))}return a}}}a(ta)}); | |
var ac,Bi=/^(SDK-|SLW32-|SLW64-|SLMAC-|.{10})([A-Z0-9-=]{4,})$/,mg;Wb(R.xi,function(a){function b(g){Ua(g)&&Ua(c)?(ac=new Tg(g,c,d,f),hc("devdone"),a(ta)):a({g:N.qi})}var c=Th,d,f,g=new ra.r("Device");hc("devs");ib.load("deviceid",function(d){function k(){ib.save("deviceid",l,!1,function(d){d.c?b(c+l):a(d)})}var l;d.c&&(l=d.data);Ua(l)?(f="storage",b(c+l)):d.g==N.Fc?v.Kg&&If()?ic(function(a){a.c?(l=a.content,f="downloaded from server"):(g.error("Error downloading esn",fb(a)),f="generated: error downloading", | |
l=He());k()}):(f="generated: "+(v.Kg?"netflix id not device bound":"no config esnurl"),l=He(),k()):(d.c=h,a(d))})});var nd=function(){function b(){f.A(Vl);f.A(De)}function c(){f.A(ai);f.A(De)}var d=new ra.r("Http"),f=new Hb,g=0;Wb(R.je,function(a){v.lu&&(D.addEventListener("online",b),D.addEventListener("offline",c),ud=Md);a(ta)});return{addEventListener:f.addListener,removeEventListener:f.removeListener,R:function(b,c,k){function l(){P&&(pb(P),P=null);P=$a(k?u:t,G?U:O)}function m(){m=p;P&&(pb(P), | |
P=null);f.removeListener(ai,q);y&&(y.onreadystatechange=null,y.onprogress=null,y.onerror=null,y.onload=null,y.onabort=null);I.c?(b.i&&(b.i.Sq=ia()),z.trace("Download success",C)):(b.i&&(b.i.ix=ia()),I.g!=N.cb?z.warn("Download failed",C,fb(I)):z.trace("Download aborted",C));var a=A;A=h;for(var c=a.length;c--;)(function(){var b=a[c];Aa(function(){b(I)})})();f.A(Wl,I,!0)}function n(a,b,c){I.c=!1;I.g=a;a=ia();I.B.O=I.B.O||a;I.B.L=I.B.L||a;0<b&&(I.Ia=I.V=b);c&&(I.D=c);m()}function q(){ud()||(n(N.ri),y.abort())} | |
function t(){n(G?N.ld:N.Rf);y.abort()}function u(){I.c===h&&(k.Rk++,k.fs.ping(k))}function w(a){n(N.cb);try{!a&&y&&y.abort()}catch(b){}}var z=b.Ma&&b.Ma.log&&new b.Ma.log.r("Http")||d,C={Num:g++},A=[c],B={requestTime:ia()},S,O=b.Yb||v.Yb,U=b.Td||v.Td,I=function(){var a=p,c=p;return{N:b,type:b.responseType,B:B,abort:w,timeout:t,aj:function(a){m!==p&&A&&A.unshift(a)},Sk:function(b){a(b)},ty:function(a){c(a)},Oz:function(b){a=b},Nz:function(a){c=a}}}();k&&(k.stream=b.stream,k.H=b.za[0],k.St=l,k.Sj=t); | |
var y,G,P;f.A(Xl,I,!0);Aa(function(){if(a(b.url))try{Jf(b,I),S=I.url,C.Url=S,ud()?(z.trace("Download starting",C),y=new Di,y.onreadystatechange=function(){if(2==y.readyState){G=!0;B.O=ia();y.onreadystatechange=null;l();for(var a=I,c=y.getAllResponseHeaders().split("\n"),d=c.length,f,g,h={};d--;)if(f=c[d])g=f.indexOf(": "),1<=g&&g<f.length-1&&(h[f.substr(0,g)]=f.substr(g+2));a.headers=h;v.K&&I.Sk({timestamp:B.O,connect:!0,mediaRequest:b,start:B.requestTime,rt:[B.O-B.requestTime]})}},y.onprogress=function(a){G= | |
!0;B.Y=a.loaded;l();v.K&&(a={mediaRequest:b,bytes:a.loaded,tempstamp:ia()},I.Sk(a))},y.onload=function(){if(m!==p){var a;B.L=ia();B.O=B.O||B.L;if(200<=y.status&&299>=y.status)if(a=jc(y,I),b.hc)try{I.content=b.hc(a,I),I.c=!0,v.K&&(I.parsed=!0,I.Pa=a)}catch(c){z.warn("Exception parsing response",c,C),n(N.Qf,h,L(c))}else v.K&&(I.parsed=!1),I.content=a,I.c=!0;else n(N.kd,y.status);m()}},y.onabort=w,y.onerror=function(){0<y.status?n(N.kd,y.status):n(N.si)},Oe(y,S,!1,b),l(),f.addListener(ai,q)):Aa(n.bind(h, | |
N.ri))}catch(c){z.error("Exception starting download",c,C),n(N.ti)}else n(N.Ul)});return I}}}(),ud=ca,Xl=1,Wl=2,Vl=3,ai=4,De=5,kh=1,Ci=2,Cc=3,$b="$attributes",lh="$children",ng="$name",zb="$text",xk="$parent",Qb="$sibling",wk=1,yk=3,zk=4,Ak=9,de;Wb(R.bm,function(a){function b(f){g({esn:ac.vc,esnPrefix:ac.Oj,authenticationType:v.kg,authenticationKeyNames:v.oo,systemKeyWrapFormat:v.Vt,serverIdentityId:"MSL_TRUSTED_NETWORK_SERVER_KEY",serverIdentityKeyData:B,storeState:f,notifyMilestone:hc,log:q},{result:function(a){c(a)}, | |
timeout:function(){a({g:N.Fi})},error:function(b){a(d(N.Fi,h,b))}})}function c(b){function f(){A&&ib.save(u,h,!1,function(a){a.c||q.error("Error persisting msl store",fb(a))})}var g=new Eb(100),h,m=k.extend({init:function(a){this.Yi=a},getResponse:function(a,b,c){b=this.Yi;var d=b.Sd.kh||d;a=oa(a.body)?Eg(a.body):a.body;a={url:b.url,Dh:a,withCredentials:!0,Eb:"nccp-"+b.hf};b=this.Yi.timeout;a.Yb=b;a.Td=b;var f=d.R(a,function(a){try{if(a.c)c.result({body:a.content});else throw n(new l("HTTP error, SubCode: "+ | |
a.g+(a.Ia?", HttpCode: "+a.Ia:"")),{cadmiumResponse:a});}catch(b){c.error(b)}});return{abort:function(){f.abort()}}}});t&&b.addEventHandler("shouldpersist",function(a){h=a.storeState;g.pb(f)});de={send:function(a,c){var f=a.Sd,g=f.X,h=g&&Ue(g),k={nccpMethod:a.hf,nonReplayable:a.Qk,encrypted:a.Nj,userId:a.El,body:a.body,serviceTokens:a.zf,timeout:2*a.timeout,httpLocation:new m(a),allowTokenRefresh:A};f.Lj?(k.email=f.Lj,k.password=f.bs||""):f.ia?(k.netflixId=f.ia,k.secureNetflixId=f.$a):f.Ik?(k.mdxControllerToken= | |
f.Ik,k.mdxPin=f.pr,k.mdxNonce=f.or,k.mdxEncryptedPinB64=f.nr,k.mdxSignature=f.qr):w&&h&&h.zk?(f=h.Xc(),k.netflixId=f.ia,k.secureNetflixId=f.$a):h&&(k.getIdCookies=function(){var a=h.Xc();return{netflixId:a.ia,secureNetflixId:a.$a}});b.send(k,{result:function(a){w&&k.netflixId&&(w=!1);c({c:!0,body:a.body,zf:a.serviceTokens})},timeout:function(){c({g:N.Gi})},error:function(a){var f=b.isErrorReauth(a)?N.Tf:b.isErrorHeader(a)?N.Ei:N.Di,g=b.getErrorCode(a);c(d(f,g,a))}})},Do:function(a,c){b.buildPlayDataRequest({nccpMethod:a.hf, | |
nonReplayable:a.Qk,encrypted:a.Nj,userId:a.El,body:a.body,serviceTokens:a.zf,timeout:a.timeout,allowTokenRefresh:!1},{result:function(a){c({c:!0,body:a})},timeout:function(){c({g:N.Gi})},error:function(a){var f=b.isErrorReauth(a)?N.Tf:b.isErrorHeader(a)?N.Ei:N.Di,g=b.getErrorCode(a);c(d(f,g,a))}})},wh:b};a(ta)}function d(a,b,c){var f,g;a={g:a,Tc:b};if(c){if(f=c.cadmiumResponse)return f;f=c.errorMessage||""+c;if(g=c.stack)g=""+g,f=0<=g.indexOf(f)?g:f+g;g=C(c.internalCode)||C(c.error&&c.error.internalCode)}f&& | |
(a.D=f);g&&(a.V=g);return a}if(Fd())if(wf&&Dc&&Dc.unwrapKey){try{var f=D.netflix.msl,g=f.createMslClient,k=f.IHttpLocation,l=f.MslIoException}catch(m){a({g:N.wm});return}var q=new ra.r("Msl"),f=v.yr,t=v.zr,u=v.Ie?"mslstoretest":"mslstore",p=ce.nl,w=!0,A=!p||p.c,B=Bc(v.Ie?"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm84o+RfF7KdJgbE6lggYAdUxOArfgCsGCq33+kwAK/Jmf3VnNo1NOGlRpLQUFAqYRqG29u4wl8fH0YCn0v8JNjrxPWP83Hf5Xdnh7dHHwHSMc0LxA2MyYlGzn3jOF5dG/3EUmUKPEjK/SKnxeKfNRKBWnm0K1rzCmMUpiZz1pxgEB/cIJow6FrDAt2Djt4L1u6sJ/FOy/zA1Hf4mZhytgabDfapxAzsks+HF9rMr3wXW5lSP6y2lM+gjjX/bjqMLJQ6iqDi6++7ScBh0oNHmgUxsSFE3aBRBaCL1kz0HOYJe26UqJqMLQ71SwvjgM+KnxZvKa1ZHzQ+7vFTwE7+yxwIDAQAB": | |
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlibeiUhffUDs6QqZiB+jXH/MNgITf7OOcMzuSv4G3JysWkc0aPbT3vkCVaxdjNtw50zo2Si8I24z3/ggS3wZaF//lJ/jgA70siIL6J8kBt8zy3x+tup4Dc0QZH0k1oxzQxM90FB5x+UP0hORqQEUYZCGZ9RbZ/WNV70TAmFkjmckutWN9DtR6WUdAQWr0HxsxI9R05nz5qU2530AfQ95h+WGZqnRoG0W6xO1X05scyscNQg0PNCy3nfKBG+E6uIl5JB4dpc9cgSNgkfAIeuPURhpD0jHkJ/+4ytpdsXAGmwYmoJcCSE1TJyYYoExuoaE8gLFeM01xXK5VINU7/eWjQIDAQAB");f?ib.remove(u,function(){b()}):t?ib.load(u,function(c){c.c?b(c.data):c.g==N.Fc?b():(q.error("Error loading msl store", | |
fb(c)),ib.remove(u,function(c){c.c?b():a(c)}))}):b()}else a({g:N.xm});else a(ta)});Wb(R.Zl,function(a){var b=v.Ie,c;c=b?"browsertest":"browser";b=new Nf(c,b?"NetflixIdTest":"NetflixId",b?"SecureNetflixIdTest":"SecureNetflixId");jf=og[c]=b;a(ta)});qe.prototype={Uc:!1,Mh:!1,$e:0,ne:jh,$g:function(){return"acc-"+this.X},load:function(a){var b=this,c=b.X;ib.load(b.$g(),function(d){var f;d.c&&(f=d.data);f&&(b.Uc=!0,b.$e=f.lastAccessTime||0,b.ne=f.UILanguages||jh,b.ia=f.netflixId,b.$a=f.secureNetflixId, | |
b.Eo=f.cTicket,b.Fo=C(f.cTicketExpiration)||0,b.Rq=f.keyPairHash,b.Nr=f.nrdpStorage,de&&(b.Mh=!!de.wh.hasUserIdToken(c)));a(ta)})},save:function(){this.Uc=!0;ib.save(this.$g(),{lastAccessTime:this.$e,UILanguages:this.ne,netflixId:this.ia,secureNetflixId:this.$a,cTicket:this.Eo,cTicketExpiration:this.Fo,keyPairHash:this.Rq,nrdpStorage:this.Nr})},remove:function(a){var b=this,d=b.X;ib.remove(b.$g(),function(){var f=[];c(b,function(a){f.push(a)});for(var g=f.length;g--;)delete b[f[g]];b.X=d;de&&de.wh.removeUserIdToken(d); | |
a(ta)})},Xc:function(){return{ia:this.ia,$a:this.$a}},ql:p,No:p};var og={},Ei={},jf,Lb;Wb(R.dm,function(a){ib.load("deviceparameters",function(b){function c(a,b,f,g){a=d[a];return k(a,f,g)?a:b}var d={};b.c&&(d=b.data);Lb={Th:c("servertimeoffset",0,h,h),vf:c("retrycontrol",3,0,1E3),gf:c("mintimeout",59,0,1E3),qh:c("loginterval",60,0,1E3),uh:c("maxlogsize",2E6,100,1E9),df:d.loglevel||"error",Sh:!!d.sendheartbeats,Jd:c("heartbeatinterval",60,1,1E3),zh:function(){xc.A(xf);ib.save("deviceparameters",{servertimeoffset:Lb.Th, | |
retrycontrol:Lb.vf,mintimeout:Lb.gf,loginterval:Lb.qh,maxlogsize:Lb.uh,loglevel:Lb.df,sendheartbeats:Lb.Sh,heartbeatinterval:Lb.Jd})}};a(ta)})});var Rb;Wb(R.cm,function(a){var b=v.gc;(new ra.r("Nccp")).info("Creating NCCP instance",{Url:b.rc,Version:b.Hh,Msl:Fd()});Fd()?(Rb=new Te(b,Lb,de,ac),a(ta)):a({g:N.Ml})});var xc=new Hb,Dk="resume",Ek="suspend",Cd="interval",xf=1,ph=4,rd;Wb(R.em,function(a){function b(){var a={browserua:lc,browserhref:ff.href,browserdm:""+vb.documentMode,initstart:Jg,initdelay:Yh- | |
Jg};"undefined"!==typeof nrdp&&nrdp.device&&(a.firmware_version=nrdp.device.firmwareVersion);cg(a);var d=Yd&&Yd.timing;d&&v.ar.map(function(b){var c=d[b];c&&(a["pt_"+b]=c-ld)});var f=new Sd(xg&&xg.Ma,"startup","info",a);c(f)}function c(a){m.push(a);Aa(function(){xc.A(3,{$q:a});for(var b=m,c=b.length,f=c*q;c--;)f+=b[c].Wj().length;f>Lb.uh?d():h()})}function d(a,b){b=b||p;if(m.length||a){g();xc.A(ph);var c=m;m=[];Rb.cr(c,{kh:nd,log:new ra.r("Nccp"),X:jf.X},b)}else b(ta);h()}function f(){var a=Lb.qh; | |
t!=a&&(t=a,g(),h())}function g(){n&&(pb(n),n=null)}function h(){n||(n=$a(k,1E3*t))}function k(){g();d()}var l=new ra.r("NccpLogBatcher"),m=[],n,q,t;l.Dg=!0;q=33+ac.vc.length;xc.addListener(xf,f);f();yg(function(){Aa(b)});rd={al:c,flush:function(a,b){l.trace("Flushing");g();xc.A(2);Aa(function(){d(a,b)})}};a(ta)});(function(){function a(b){l.push(b)}function b(){xc.removeListener(xf,b);xc.removeListener(2,c);ra.removeSink(a);ra.addSink(f);d()}function c(){g=v.gc.Ke?wb[v.gc.Ke]:h[Lb.df];d()}function d(){var a= | |
l;l=[];for(var b=a.length,c=0;c<b;c++)f(a[c])}function f(a){if(!a.Dg&&a.level<=g){var b={debugMessage:a.message,debugCategory:a.category};n(b,a.fields,{prefix:"debug"});a=new Sd(a.Ma,"debug",k[a.level],b);rd.al(a)}}var g,h={fatal:wb.FATAL,error:wb.ERROR,warn:wb.WARN,info:wb.INFO,debug:wb.DEBUG},k={};k[wb.FATAL]="fatal";k[wb.ERROR]="error";k[wb.WARN]="warn";k[wb.INFO]="info";k[wb.TRACE]="debug";k[wb.DEBUG]="debug";var l=[];ra.addSink(a);xc.addListener(xf,function(){g=v.gc.Ke?wb[v.gc.Ke]:h[Lb.df]}); | |
xc.addListener(xf,b);xc.addListener(2,c)})();var od="PRIMARY",lf={assistive:"ASSISTIVE",closedcaptions:"ASSISTIVE",directorscommentary:"COMMENTARY",comentary:"COMMENTARY",subtitles:od,primary:od};Sd.prototype.Wj=function(){this.Xi||(this.Xi=Ag(this.data));return this.Xi};var bc=1,mf=2,Sb=4,qg=8,nf=16,rg=32,oh=64,Ce,qh;Wb(R.fm,function(a){var b=new ra.r("PlayDataManager");v.yf&&v.dd?ib.load(v.dd,function(c){if(c.c){var d=c.data,f;try{f=mb.parse(d)}catch(g){}}f?(Ce=f,sd.length||$e(h,function(a){a.c&& | |
hd()})):c.g!=N.Fc&&(b.error("Unable to parse persisted playdata"),hd());a(ta)}):a(ta)});var Oi="HistoricalBandwidth",Qi="none",Hk="dayOfWeekTimeOfDay",Pi="timeofDay",tg;ed.prototype={Gb:function(){},Aa:function(){},Fa:function(){},Ib:function(){}};var Ri=[];uc(function(a){function b(a){if(a.lower&&a.height>O)return a.height>=l()}function d(){var b=a.C.value==qd&&a.state.value==eb;G?b||(yb(G),I=G=h,P&&(yb(J),J=h)):b&&(G=qb(f,1E3),P&&(J=qb(g,D)))}function f(){var b=a.Ya.value,b=(b=b&&b.stream)&&b.height; | |
if(0<b){var c=ia(),d=a.ha.xc();if(I&&2E3>c-I.time&&b==I.height){var g=d-I.pp,h=t[b];h||(t[b]=h=[],b>O&&(B.push(b),A(B)));0<g&&!(U<b)&&(U=b);h.push(g);h.length>y&&h.shift();(h=p[b])||(p[b]=h={});var k=h[g];h[g]=k?k+1:1}I={time:c,pp:d,height:b};a.nf.ut(t)}}function g(){ib.save(bi,{xid:a.qa,data:p})}function k(){a.addEventListener(Ab,function(){g()});w=[];ib.load(Jj,function(a){a.c&&(w=a.data);var b={};ib.load(bi,function(a){a.c&&(b=a.data);b&&b.data&&Kb.keys(b.data).length&&(w.push(b),w.length>P&&w.shift(), | |
ib.save(Jj,w),ib.save(bi,{}))})})}function l(){!N&&v.Kj&&v.Ge&&a.xe<v.Kj[M]&&(L=va(L,v.Ge),a.te.set({reason:"droppedFramesPreviousSession",height:v.Ge}));N=!0;if(U){var b=B.length,c,d,f;for(c=0;c<b;c++)if(d=B[c],d>=U&&d<L&&(f=t[d])&&re(u,f)&&L!=d)return q.warn("Restricting resolution due to high number of dropped frames",{MaxHeight:d}),a.te.set({reason:"droppedFrames",height:d}),v.up?(v.K||a.S.wd(function(a){return a.sf.k.height>=d}),Aa(a.n.lp)):Aa(a.n.ze),v.Ge=L=d;U=h}return L}function m(){var a= | |
{};p&&B.forEach(function(b){var d=p[b];if(d){var f=0,g=0;c(d,function(a,b){g+=C(a);f+=b});a[b]=g/f}});return a}function n(a){var b={};a.forEach(function(a){b[a]={}});p&&(A(a),B.forEach(function(d){var f=p[d];if(f){var g=0,h=0;c(f,function(a,b){g+=b});var k=Kb.keys(f);A(k);for(var l=k.length-1,m=k[l],n=a.length-1;0<=n;n--){for(var r=a[n];m>=r&&0<=l;)(m=f[m])&&(h+=m),m=k[--l];b[r][d]=lb(h/g*100)}}}));return b}var q=new a.log.r("DFF"),t={},u=v.tp,p={},w=[],B=[],I,y=v.rp,O=v.sp,L=1E5,U,G,P=v.xp,D=v.wp, | |
J,M=Zb.hardwareConcurrency||0,N;if(v.qp)return P&&a.addEventListener(pg,k),a.Ad={Sp:m,lq:n},a.state.addListener(d),a.C.addListener(d),{Ng:"df",Dc:b}});var Jj="DroppedFramesHistory",bi="DroppedFramesSession";uc(function(a){return{Ng:"op",Dc:function(b){if(b=b.nh){var c=a.ha;if(c&&c.Ug())return b}}}});Cj&&uc(vc);var rh=12.8,sh=5120,Kk=1,Lk=2E3,Jk=.8,Ik=10,Si=1024;Tc.prototype={Gb:function(){return this.Q.value.P},Aa:function(){return this.Tb.value.P},Fa:function(){var a=this;return a.Aa().filter(function(b){return!a.ff.Dc(b)})}, | |
Ib:function(){var a=this.ad;return a?ia()-a:0}};var Mk=0,sd=[],Ui=[],Vi=[],wh=1,zg=3,xg,wg=1E4*Nb()+ua(1E4*ef()),Ji=wg,rf=1,Ab=2,pf=3,mj=4,ae=5,Wc=6,pg=7,Gi=8,vg=9,Ck=10,oj=11,uh=12,Ti=13,pj=14,Hi=15,Ni=16,hf=21,$d=22,be=30,Xi=31,sg=41,th=51,Gh=52,Fh=53,Ah="network",jl="media",Hh=1,Ki=2,Li=3,qf=0,cc=1,eb=2,vh=3,ug=4,nc=1,dc=2,mc=3,Tb=1,qd=2,of=3,Kc=4,Nk="playback";Ic(wh,function(a){function b(c){if(c.newValue>=cc){a.state.removeListener(b);var d;try{var f=""+Nb();Ec.setItem("player$test",f);var h= | |
Ec.getItem("player$test");Ec.removeItem("player$test");d=f==h?"success":"mism"}catch(k){d="ex: "+k}c="type=openplay&sev=info&locstor="+Hg(d)+"&browserdm=";var m;try{m=""+vb.documentMode}catch(n){m="ex: "+n}l(c+Hg(m));u=ia();g()}}function d(){k("type=startplay&sev=info&outcome=success")}function f(){var b=a.la;if(b){var d="type=startplay&sev=error&outcome=error",g={};Td(g,b);c(g,function(a,b){d+="&"+Hg(a)+"="+Hg(b||"")});k(d)}else k("type=startplay&sev=info&outcome=abort")}function g(){var a=w.shift(); | |
if(0<a){var b=Ba(a-(ia()-u),0);t=$a(function(){l("type=startstall&sev=info&kt="+a);g()},b)}}function h(){k("type=startplay&sev=info&outcome=unload")}function k(b){k=p;b+="&initstart="+Jg+"&initend="+Yh;l(b);pb(t);a.removeEventListener(Wc,d);a.removeEventListener(Ab,f);jb.removeListener(Lc,h)}function l(b){b=C+"&jsoffms="+ia()+"&soffms="+a.Ib()+"&do="+Zb.onLine+"&"+b+"&"+Y(n({},li,{prefix:"im_"}))+"&"+Y(n({},a.lb,{prefix:"sm_"}));m.R({url:q,Dh:b,withCredentials:!0,headers:{"Content-Type":"application/x-www-form-urlencoded"}, | |
Eb:"track"},p)}var m=a.xa,q=v.bu,t,u,w=v.au.slice(),C;if(v.$t&&q){C="cat=cadplayback&dev="+Wd(nh)+"&ep="+Wd(Th)+"&ver="+Wd("2.0000.453.011")+"&jssid="+Be+"&xid="+a.qa+"&pbi="+a.index+"&groupName="+Wd(v.Qe);if(Uc){var A=n({},Uc,{prefix:"pi_"});C+="&"+Y(A)}a.state.addListener(b);a.addEventListener(Wc,d);a.addEventListener(Ab,f);jb.addListener(Lc,h,-1)}});var sb="audio",Za="video",mh="timedtext",Fi="trickplay",Sk=2292,Tk=.006,Qk=2918,Rk=.0065,Bd={qc:function(a,b){var c=this;b&&(c=c.filter(zd));return c.reduce(function(b, | |
c){return b&&yc(b.f-a)<yc(c.f-a)?b:c})},ea:function(a,b){var c=this;b&&(c=c.filter(zd));return c.reduce(function(b,c){return c.f>a&&c.f<b.f?c:b},c[c.length-1])},fa:function(a,b){var c=this;b&&(c=c.filter(zd));return c.reduce(function(b,c){return c.f<a&&c.f>b.f?c:b},c[0])},ce:function(a){var b=this.map(function(a){return a.f});kd.isArray(a)&&(b=ob(b,a));return b}},td=1,Bh=2,sf=4,Yi=8,Uk=Bh|sf,Vk=0,Wi=1,Wk=1E6,zh=1,$i=2,Zi=3;Ic(wh,function(a){function b(c){(c=c.N)&&4E3<c.length&&(a.removeEventListener(hf, | |
b),Aa(function(){for(var b=2E3,c=Yd.now(),d=c,f=[],g=0;g<b;g++){for(var h=10;h--;)a.Wt=Oa.atan2(h,h);h=Yd.now();f.push(h-d);d=h}c=d-c;h=c/b;d=[];for(g=0;g<f.length;g++)f[g]>5*h&&d.push(g);g=d.reduce(function(a,b){return a+f[b]},0);c-=g;b-=d.length;0!=c&&(a.xe=Oa.round(b/c))}))}a.addEventListener(hf,b)});var Xk=1,dj=2,aj=1,bj=1,Bg=2,Ch=1,Yk=1,cj=1,ej,tf,Cg,lj=Ed&&vf&&uf&&vf.prototype.play,el=lj&&(vf.prototype.webkitGenerateKeyRequest||Mc),mk=!0,ui=Ed&&Ed.isTypeSupported&&Ed.isTypeSupported('audio/mp4; codecs="mp4a.a6"'), | |
dl=0,cl=1,ij=2,bl=3,al=4,$k=5,hj=1,gj=2,fj=3,jj=4,kj=5,Zk={clearkey:function(a,b){return za(b)},fps:function(a,b){var c;b.children.forEach(function(a){"pssh"==a.type&&"29701FE4-3CC7-4A34-8C5B-AE90C7439A47"==a.zd&&(c=a.data)});if(!c)throw new Wa("no-netflix-pssh");var d="skd://netflix/"+P(c);return jd(d)}},Dh=50,il=1E3,ml=0,nj=1,kl=2,Ih=3,pl=0,nl="showsubtitle",ol="removesubtitle";Ic(zg,function(a){function b(d){if(d.ctrlKey&&d.altKey&&d.shiftKey&&84==d.keyCode){var f=Fa("INPUT",h,h,{type:"file"}); | |
f.addEventListener("change",function(){var b=f.files[0];if(b){var d=b.name;c.info("Loading file",{FileName:d});var g=new ri;g.readAsText(b);g.addEventListener("load",function(){var b=a.lc;Kd(g.result,b.width/b.height,v.zl,v.Al,function(b){b.c?(b=b=a.kc.fg(b.entries,d),a.T.set(b)):c.error("Inavlid custom DFXP")})})}});f.click()}}var c=new a.log.r("TimedTextCustomTrack");if(v.xg){c.info("Loading url",{Url:v.xg});var d=a.kc.fg(v.xg,"custom");a.T.set(d)}jb.addListener(Dd,b);a.addEventListener(Ab,function(){jb.removeListener(Dd, | |
b)})});var rj=0,Lh=1,Kh=2,ql=3,qj=4;Ic(zg,function(a){v.Bp&&(a.jA=new Nj(a))});Ic(zg,function(a){v.$d&&(a.Cc=new gi(a))});var Mi=1,Mh=1,tj=2,Dg=3,Nh=4,uj=[137,66,73,70,13,10,26,10],rl=0,vj=44,ul="loadedtracks",Aj="loadedmetadata",xl="loaded",El="error",Fl="closed",wj="currenttimechanged",xj="bufferedtimechanged",Bl="durationchanged",Cl="videosizechanged",Ph="pausedchanged",Oh="endedchanged",yl="busychanged",Dl="audiotracklistchanged",zl="audiotrackchanged",zj="timedtexttracklistchanged",yj="timedtexttrackchanged", | |
Al="trickplayframeschanged",vl="mutedchanged",wl="volumechanged",sl="showsubtitle",tl="removesubtitle",ci={};Wb(R.je,function(a){function b(a,c){return{encrypt:function(b,c){var d=U(b)?jd(b):b,f=wf.getRandomValues(new bb(16));Db(Dc.encrypt({name:"AES-CBC",iv:f},a,d)).then(function(a){a=new bb(a);var b=[],d=new Vc(b);d.pi(2);d.Kl(f);d.Kl(a);a=P(b);c({success:!0,encryptedDataAsn1Base64:a})},function(){c({success:!1})})},decrypt:function(b,c){var d=Ld(b);Db(Dc.decrypt({name:"AES-CBC",iv:d.Qq},a,d.Cp)).then(function(a){a= | |
new bb(a);c({success:!0,text:Eg(a)})},function(){c({success:!1})})},hmac:function(a,b){var d=U(a)?jd(a):a;Db(Dc.sign({name:"HMAC",hash:{name:"SHA-256"}},c,d)).then(function(a){a=new bb(a);b({success:!0,hmacBase64:P(a)})},function(){b({success:!1})})}}}ci.mdx={getEsn:function(){return ac.vc},getServerEpoch:function(){return Rb.Fd()},createCryptoContext:function(a){var b=de.wh.getStateForMdx(jf.X),c=b.cryptoContext,d=b.masterToken,b=b.userIdToken;d&&b?(d=["1",P(mb.stringify(d.toJSON())),P(mb.stringify(b.toJSON()))].join(), | |
a({success:!0,cryptoContext:{cTicket:d,encrypt:function(a,b){var d=U(a)?jd(a):a;c.encrypt(d,{result:function(a){a=P(a);b({success:!0,mslEncryptionEnvelopeBase64:a})},timeout:function(){b({success:!1})},error:function(){b({success:!1})}})},decrypt:function(a,b){var d=Bc(a);c.decrypt(d,{result:function(a){b({success:!0,text:Eg(a)})},timeout:function(){b({success:!1})},error:function(){b({success:!1})}})},hmac:function(a,b){var d=U(a)?jd(a):a;c.sign(d,{result:function(a){b({success:!0,hmacBase64:P(a)})}, | |
timeout:function(){b({success:!1})},error:function(){b({success:!1})}})}}})):a({success:!1})},createCryptoContextFromSharedSecret:function(a,c){var d=Bc(a),f=d.subarray(32,48),d=d.subarray(0,32);if(16!=f.length||32!=d.length)throw new Wa("Bad shared secret");Xd.all([Db(Dc.importKey("raw",f,{name:"AES-CBC"},!1,["encrypt","decrypt"])),Db(Dc.importKey("raw",d,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]))]).then(function(a){c({success:!0,cryptoContext:b(a[0],a[1])})},function(){c({success:!1})})}}; | |
a(ta)});D.netflix=D.netflix||{};D.netflix.player={VideoSession:function(){var a=this;Sg(arguments);a.createPlayer=function(a,b){var c,d,f;b&&(qa(b)?(c={Ea:b.trackingId,fd:b.sessionParams,qe:b.authParams},d=b.trailerMode,f=b.manifest):c={Ea:b});c=new Sj(b.accountKey,a,c,d,f);d=b.clipStart;f=b.clipDuration;return 0<d||0<f?Tj(c,d,f):c};a.closeAllPlayers=function(a){Vd(function(){a&&a()})};a.init=function(b){yg(function(c){c.c?(n(a,ci),b&&b(n({success:!0},ci))):b&&(c=(new Ib(c.errorCode||R.je,c,void 0)).ii(), | |
b({success:!1,error:c}))})};a.applyConfig=function(a){lg(a)}},diag:{togglePanel:function(a,b){var c;switch(a){case "info":c=sd.map(function(a){return a.nf});break;case "streams":c=sd.map(function(a){return a.Wk});break;case "log":c=[sj]}c&&c.forEach(function(a){Z(b)?b?a.show():a.hh():a.toggle()})},addNccpLogMessageSink:function(a){xc.addListener(3,function(b){a({data:b.$q.data})})}},log:new ra.r("Ext"),LogLevel:wb,addLogSink:function(a){Ee.push(a)},getVersion:function(){return"2.0000.453.011"}}})(window)}, | |
{11:11,3:3,4:4,5:5,6:6}],2:[function(y,D){function h(){this.t=this.t||{};this.md=this.md||void 0}function P(h){return"function"===typeof h}function ca(h){return"object"===typeof h&&null!==h}D.Ja=h;h.EventEmitter=h;h.prototype.t=void 0;h.prototype.md=void 0;h.ep=10;h.prototype.setMaxListeners=function(h){if("number"!==typeof h||0>h||isNaN(h))throw TypeError("n must be a positive number");this.md=h;return this};h.prototype.emit=function(h){var p,y,D,oa;this.t||(this.t={});if("error"===h&&(!this.t.error|| | |
ca(this.t.error)&&!this.t.error.length)){p=arguments[1];if(p instanceof Error)throw p;throw TypeError('Uncaught, unspecified "error" event.');}y=this.t[h];if(void 0===y)return!1;if(P(y))switch(arguments.length){case 1:y.call(this);break;case 2:y.call(this,arguments[1]);break;case 3:y.call(this,arguments[1],arguments[2]);break;default:p=arguments.length;D=Array(p-1);for(oa=1;oa<p;oa++)D[oa-1]=arguments[oa];y.apply(this,D)}else if(ca(y)){p=arguments.length;D=Array(p-1);for(oa=1;oa<p;oa++)D[oa-1]=arguments[oa]; | |
y=y.slice();p=y.length;for(oa=0;oa<p;oa++)y[oa].apply(this,D)}return!0};h.prototype.addListener=function(y,p){var D;if(!P(p))throw TypeError("listener must be a function");this.t||(this.t={});this.t.my&&this.emit("newListener",y,P(p.$c)?p.$c:p);this.t[y]?ca(this.t[y])?this.t[y].push(p):this.t[y]=[this.t[y],p]:this.t[y]=p;ca(this.t[y])&&!this.t[y].su&&(D=void 0===this.md?h.ep:this.md)&&0<D&&this.t[y].length>D&&(this.t[y].su=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.", | |
this.t[y].length),"function"===typeof console.trace&&console.trace());return this};h.prototype.on=h.prototype.addListener;h.prototype.once=function(h,p){function y(){this.removeListener(h,y);D||(D=!0,p.apply(this,arguments))}if(!P(p))throw TypeError("listener must be a function");var D=!1;y.$c=p;this.on(h,y);return this};h.prototype.removeListener=function(h,p){var y,D,oa;if(!P(p))throw TypeError("listener must be a function");if(!this.t||!this.t[h])return this;y=this.t[h];oa=y.length;D=-1;if(y=== | |
p||P(y.$c)&&y.$c===p)delete this.t[h],this.t.removeListener&&this.emit("removeListener",h,p);else if(ca(y)){for(;0<oa--;)if(y[oa]===p||y[oa].$c&&y[oa].$c===p){D=oa;break}if(0>D)return this;1===y.length?(y.length=0,delete this.t[h]):y.splice(D,1);this.t.removeListener&&this.emit("removeListener",h,p)}return this};h.prototype.removeAllListeners=function(h){var p;if(!this.t)return this;if(!this.t.removeListener)return 0===arguments.length?this.t={}:this.t[h]&&delete this.t[h],this;if(0===arguments.length){for(p in this.t)"removeListener"!== | |
p&&this.removeAllListeners(p);this.removeAllListeners("removeListener");this.t={};return this}p=this.t[h];if(P(p))this.removeListener(h,p);else for(;p.length;)this.removeListener(h,p[p.length-1]);delete this.t[h];return this};h.prototype.listeners=function(h){return this.t&&this.t[h]?P(this.t[h])?[this.t[h]]:this.t[h].slice():[]};h.listenerCount=function(h,p){return h.t&&h.t[p]?P(h.t[p])?1:h.t[p].length:0}},{}],3:[function(y,D){function h(b,a,h){for(var p="",f=0,c=b.length,n=c-2,y;f<n;){y=(b[f++]<< | |
16)+(b[f++]<<8)+b[f++];if(!(0<=y&&16777215>=y))throw Error("not bytes");p+=a[y>>>18]+a[y>>>12&63]+a[y>>>6&63]+a[y&63]}if(f==n){y=(b[f++]<<8)+b[f++];if(!(0<=y&&65535>=y))throw Error("not bytes");p+=a[y>>>10]+a[y>>>4&63]+a[y<<2&63]+h}else if(f==c-1){y=b[f++];if(!(0<=y&&255>=y))throw Error("not bytes");p+=a[y>>>2]+a[y<<4&63]+h+h}return p}var P=Array.prototype.slice,ca=P.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),O=P.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"), | |
p={},Z={},qa={},oa={},b=/\s+/g;[ca,O].forEach(function(b){for(var a=b.length,h;a--;)h=b[a],p[h]=a<<18,Z[h]=a<<12,qa[h]=a<<6,oa[h]=a});D.Ja={Ig:function(b){return h(b,ca,"=")},Aw:function(b){return h(b,O,"")},yg:function(h){h=h.replace(b,"");var a=h.length,y;y=h.charAt(a-1);"="!==y&&"."!==y||a--;y=h.charAt(a-1);"="!==y&&"."!==y||a--;y=3*(a>>2);var P=0;switch(a%4){case 2:P=1;break;case 3:P=2;break;case 1:throw Error("bad base64");}for(var a=new Uint8Array(y+P),f=0,c=0,n;c<y;){n=p[h[f++]]+Z[h[f++]]+ | |
qa[h[f++]]+oa[h[f++]];if(!(0<=n&&16777215>=n))throw Error("bad base64");a[c++]=n>>>16;a[c++]=n>>>8&255;a[c++]=n&255}if(0<P&&(n=p[h[f++]]+Z[h[f++]],a[c++]=n>>>16,1<P&&(n+=qa[h[f++]],a[c++]=n>>>8&255),!(0<=n&&16776960>=n&&0===(n&(1<P?255:65535)))))throw Error("bad base64");return a}}},{}],4:[function(y,D){function h(h){this.buffer=h;this.position=0}h.prototype={seek:function(h){this.position=h},skip:function(h){this.position+=h},Ka:function(){return this.buffer.length-this.position},ba:function(){return this.buffer[this.position++]}, | |
na:function(h){var y=this.position;this.position+=h;h=this.buffer;return h.subarray?h.subarray(y,this.position):h.slice(y,this.position)},I:function(h){for(var y=0;h--;)y=256*y+this.buffer[this.position++];return y},Pb:function(h){for(var y="";h--;)y+=String.fromCharCode(this.buffer[this.position++]);return y},Es:function(){for(var h="",y;y=this.ba();)h+=String.fromCharCode(y);return h},M:function(){return this.I(2)},l:function(){return this.I(4)},oa:function(){return this.I(8)},cl:function(){return this.I(2)/ | |
256},Lh:function(){return this.I(4)/65536},Yd:function(h){for(var y,D="";h--;)y=this.ba(),D+="0123456789ABCDEF"[y>>>4]+"0123456789ABCDEF"[y&15];return D},rf:function(){return this.Yd(4)+"-"+this.Yd(2)+"-"+this.Yd(2)+"-"+this.Yd(2)+"-"+this.Yd(6)},Fs:function(h){for(var y=0,D=0;D<h;D++)y+=this.ba()<<(D<<3);return y},Zd:function(){return this.Fs(4)},pi:function(h){this.buffer[this.position++]=h},Ll:function(h,y){this.position+=y;for(var D=1;D<=y;D++)this.buffer[this.position-D]=h&255,h=Math.floor(h/ | |
256)},wu:function(h){for(var y=h.length,D=0;D<y;D++)this.buffer[this.position++]=h[D]},he:function(h,y){this.wu(h.na(y))}};D.Ja=h},{}],5:[function(y,D){function h(a,b,h){this.type=a;this.size=b;this.Y=h}function P(b){var c;a:{c=b.position;var k,p;if(8<=b.Ka()){k=b.l();p=b.Pb(4);if(!U.test(p))throw b.seek(c),Error("mp4-badtype");if(1==k){if(8>b.Ka()){b.seek(c);c=void 0;break a}k=b.oa()}if(!(8<=k))throw b.seek(c),Error("mp4-badsize");if("uuid"==p){if(16>b.Ka()){b.seek(c);c=void 0;break a}p=b.rf()}c= | |
{type:p,offset:c,size:k,Y:c+k-b.position}}else c=void 0}if(c&&c.Y<=b.Ka()){var y=c.type;k=c.size;var D=c.Y;p=new h(y,k,D);y=Ua[y];if(b.Ka()<D)throw Error("mp4-shortcontent");y?(D=new a(b.na(D)),y(p,D)):b.skip(D);b.seek(c.offset);p.Pa=b.na(k);return p}}function ca(a,b){for(var h=[],k={},p,y;0<b.Ka();){p=P(b);if(!p)throw Error("mp4-badchildren");y=p.type;h.push(p);k[y]||(k[y]=p)}a.children=h;a.Og=k}function O(a,b){a.version=b.I(1);a.wc=b.I(3)}function p(a,b){b.skip(6);a.cp=b.M();b.skip(8);a.Uv=b.M(); | |
a.wf=b.M();b.skip(4);a.Iz=b.M();b.skip(2);ca(a,b)}function Z(a,b){b.skip(6);a.cp=b.M();b.skip(16);a.width=b.M();a.height=b.M();a.bx=b.l();a.mA=b.l();b.skip(4);a.Ow=b.M();var h=b.ba();a.Yv=b.Pb(h);b.skip(31-h);a.depth=b.M();b.skip(2);ca(a,b)}function qa(a,b){O(a,b);a.fw=b.I(3);a.jw=b.ba();a.oh=b.na(16)}function oa(a,b){for(var h=[],k;b--;)k=a.M(),h.push(a.na(k));return h}function b(a){var b=a.na(2);a={Hz:b[1]>>1&7,il:!!(b[1]&1),Bz:a.M()};k(a,(b[0]<<8|b[1])>>4);return a}function k(a,b){a.Cz=b>>4&3; | |
a.Gz=b>>2&3;a.Ez=b&3;return a}var a=y(4),U=/^[a-zA-Z0-9-]{4,4}$/;h.prototype.ub=function(a){var b=this;a=a.split("/");var h,k,p,y;for(p=0;p<a.length&&b;p++){k=a[p].split("|");h=void 0;for(y=0;y<k.length&&!h;y++)h=k[y],h=b.Og&&b.Og[h];b=h}return b};h.prototype.toString=function(){return"["+this.type+"]"};var Ua={ftyp:function(a,b){a.Cx=b.Pb(4);a.gy=b.l();for(a.vj=[];4<=b.Ka();)a.vj.push(b.Pb(4))},moov:ca,sidx:function(a,b){O(a,b);a.qz=b.l();a.Ff=b.l();a.sw=1<=a.version?b.oa():b.l();a.Jp=1<=a.version? | |
b.oa():b.l();b.skip(2);for(var h=b.M(),k=[],p,y;h--;){p=b.l();y=p>>31;if(0!==y)throw Error("mp4-badsdix");p&=2147483647;y=b.l();b.skip(4);k.push({size:p,duration:y})}a.Is=k},moof:ca,mvhd:function(a,b){O(a,b);var h=1<=a.version?8:4;a.wg=b.I(h);a.modificationTime=b.I(h);a.Ff=b.l();a.duration=b.I(h);a.oz=b.Lh();a.volume=b.cl();b.skip(70);a.ny=b.l()},pssh:function(a,b){O(a,b);a.zd=b.rf();var h=b.l();a.data=b.na(h)},trak:ca,mdia:ca,minf:ca,stbl:ca,stsd:function(a,b){O(a,b);b.l();ca(a,b)},encv:Z,avc1:Z, | |
mp4a:p,enca:p,"ec-3":p,avcC:function(a,b){a.version=b.ba();a.Kv=b.ba();a.lz=b.ba();a.Jv=b.ba();a.mx=(b.ba()&3)+1;a.Mz=oa(b,b.ba()&31);a.gz=oa(b,b.ba())},pasp:function(a,b){a.Re=b.l();a.Mf=b.l()},sinf:ca,frma:function(a,b){a.dw=b.Pb(4)},schm:function(a,b){O(a,b);a.$s=b.Pb(4);a.Kz=b.l();a.wc&1&&(a.Jz=b.Es())},schi:ca,tenc:qa,mvex:ca,trex:function(a,c){O(a,c);a.U=c.l();a.kw=c.l();a.fp=c.l();a.gp=c.l();a.Bg=b(c)},traf:ca,tfhd:function(a,c){O(a,c);a.U=c.l();var h=a.wc;h&1&&(a.Nv=c.oa());h&2&&(a.Dz=c.l()); | |
h&8&&(a.fp=c.l());h&16&&(a.gp=c.l());h&32&&(a.Bg=b(c))},saio:function(a,b){O(a,b);a.wc&1&&(a.so=b.l(),a.uo=b.l());for(var h=1<=a.version?8:4,k=b.l(),p=[];k--;)p.push(b.I(h));a.Xs=p},mdat:function(a,b){a.data=b.na(b.Ka())},tkhd:function(a,b){O(a,b);var h=1<=a.version?8:4;a.wg=b.I(h);a.modificationTime=b.I(h);a.U=b.l();b.skip(4);a.duration=b.I(h);b.skip(8);a.jx=b.M();a.Dv=b.M();a.volume=b.cl();b.skip(2);b.skip(36);a.width=b.Lh();a.height=b.Lh()},mdhd:function(a,b){O(a,b);var h=1<=a.version?8:4;a.wg= | |
b.I(h);a.modificationTime=b.I(h);a.Ff=b.l();a.duration=b.I(h);h=b.M();a.language=String.fromCharCode((h>>10&31)+96)+String.fromCharCode((h>>5&31)+96)+String.fromCharCode((h&31)+96);b.skip(2)},mfhd:function(a,b){O(a,b);a.Lz=b.l()},tfdt:function(a,b){O(a,b);a.Ov=b.I(1<=a.version?8:4);8==b.Ka()&&b.skip(8)},saiz:function(a,b){O(a,b);a.wc&1&&(a.so=b.l(),a.uo=b.l());for(var h=b.ba(),k=b.l(),p=[];k--;)p.push(h||b.ba());a.Fz=p},trun:function(a,c){O(a,c);var h=c.l(),k=a.wc;k&1&&(a.ew=c.l());k&4&&(a.Lw=b(c)); | |
for(var p=[],y;h--;)y={},k&256&&(y.duration=c.l()),k&512&&(y.size=c.l()),k&1024&&(y.wc=c.l()),k&2048&&(y.Xv=c.l()),p.push(y);a.Ys=p},sdtp:function(a,b){O(a,b);for(var h=[];0<b.Ka();)h.push(k({},b.ba()));a.Ys=h},"4E657466-6C69-7850-6966-665374726D21":function(a,b){O(a,b);a.fileSize=b.oa();a.Ff=b.oa();a.duration=b.oa();a.sy=b.oa();a.Sz=b.oa();1<=a.version&&(a.iy=b.oa(),a.jy=b.l(),a.Tr=b.oa(),a.Kp=b.l(),a.Jw=b.rf())},"A2394F52-5A9B-4F14-A244-6C427C648DF4":function(a,b){O(a,b);a.wc&1&&(a.Cv=b.I(3),a.gx= | |
b.ba(),a.hx=b.rf());a.Az=b.l();a.ro=b.na(b.Ka())},"4E657466-6C69-7846-7261-6D6552617465":function(a,b){O(a,b);a.Qr=b.l();a.jp=b.M()},"8974DBCE-7BE7-4C51-84F9-7148F9882554":qa};D.Ja={pz:function(b,c){var h=new a(b);c&&h.seek(c);return P(h)},Ds:function(b,c){if(!b)throw Error("mp4-badinput");var h=new a(b),k=[],p;for(c&&h.seek(c);p=P(h);)k.push(p);return k}}},{4:4}],6:[function(y,D){function h(h){this.Cb.info("show subtitle called at "+this.Vb()+" for displayTime "+h.displayTime);this.emit("showsubtitle", | |
h)}function P(h){this.Cb.info("remove subtitle called at "+this.Vb()+" for remove time "+(h.displayTime+h.duration));this.emit("removesubtitle",h)}var ca=y(2).EventEmitter,O=y(10),p=y(9)(),Z=y(7),qa=function b(k,a){var p=this,y;if(!(p instanceof b))return new b(k,a);ca.call(p);p.Cb=k.Gk||console;p.od=k.N;p.Vb=k.dk;p.ua=null;"undefined"!==typeof a.type&&(p.Wn=a.type,p.Cb.warn("using deprecated 'type' in subtitle manager, please use subtitle profile instead"));p.Zi=a.profile;p.rd=a.url;p.cg=a.Jh;p.Sn= | |
a.rs;p.Qn=a.ip;y={url:p.rd,N:p.od,Jh:p.cg,xml:a.xml,rs:p.Sn,ip:p.Qn};if("nflx-cmisc"===p.Zi||"image"===p.Wn)y.offset=a.tr,y.size=a.ur,p.qd=new Z(y);else throw Error("SubtitleManager: "+p.Zi+" is an unsupported profile");p.qd.on("ready",function(){p.Cb.info("ready event fired by subtitle stream");p.emit("ready");p.ua=new O(p.Vb,p.qd.Yp.bind(p.qd),p.Cb);p.ua.on("showsubtitle",h.bind(p));p.ua.on("removesubtitle",P.bind(p))});p.qd.on("error",p.emit.bind(p,"error"))};qa.prototype=Object.create(ca.prototype); | |
qa.prototype.Ec=function(b){null!==this.ua&&this.ua.Ec(b)};qa.prototype.stop=function(){this.Cb.info("stop called");this.qd.removeAllListeners(["ready"]);null!==this.ua&&this.ua.stop()};qa.prototype.pause=function(){this.Cb.info("pause called");null!==this.ua&&this.ua.pause()};qa=p([{N:"function",dk:"function",Gk:"object"},"object"],qa);D.Ja=qa},{10:10,2:2,7:7,9:9}],7:[function(y,D){function h(a){oc.call(this);this.rd=a.url;this.od=a.N;this.Yp=qa;this.cg=a.Jh||0;this.Un=this.pd=this.Gc=null;this.oe= | |
{};this.bg={};this.od({url:this.rd,offset:a.offset,size:a.size,responseType:"binary"},ca.bind(this))}function P(a){if(!a)throw Error("Assertion Failed");}function ca(a,b){if(a)this.emit(Xb.ERROR,Bb(a,Fb.rm));else try{var c=new kb(b),f=p(c);this.Gc=f;var h=f.startOffset,k=f.entries.reduce(function(a,b){return a+b.size},0);if(k){var n={url:this.rd,offset:h,size:k};this.emit(Xb.um,this.Gc);this.od(n,O.bind(this))}else this.emit(Xb.ERROR,Bb({},Fb.Lm))}catch(y){this.emit(Xb.ERROR,Bb(y,Fb.sm))}}function O(a, | |
b){var f=this;if(a)f.emit(Xb.ERROR,Bb(a,Fb.Dn));else{var h=new kb(b),k=0,n=[],p=[],y=0;try{f.Gc.entries.forEach(function(a){var b={},c=0;h.position=k;b.identifier=h.Pb(4);P("sidx"===b.identifier);b.yq=h.na(36);b.duration=h.I(4);b.Va=h.M();b.entries=[];for(b.ec=[];c<b.Va;){var f={};f.Zb=h.I(4);f.duration=h.I(4);f.Wr=h.M();f.Xr=h.M();f.At=h.M();f.Bt=h.M();f.zc=h.oa();f.sk=h.I(4);c++;b.entries.push(f)}n.push(b);a.tl=b;c=b.entries;c.length&&(b.startTime=c[0].Zb,b.endTime=c[c.length-1].Zb+c[c.length-1].duration); | |
p.push.apply(p,b.entries);k+=a.size;y++})}catch(D){f.emit(Xb.ERROR,Bb(D,Fb.En));return}f.pd=n;f.Un=p;f.emit(Xb.Fn,this.pd);var U=Z.call(f,f.cg);U.length?c.call(f,U,function(){f.emit(Xb.Oi)}):f.emit(Xb.Oi)}}function p(a){var b={};a.position=0;b.identifier=a.Pb(4);P("midx"===b.identifier);b.version=a.I(4);P(0===b.version);b.yq=a.na(36);b.wg=a.oa();b.dz=a.oa();b.sa=a.oa();b.Vs=a.M();b.Ws=a.M();b.language=a.na(16);b.aA=a.na(16);b.startOffset=a.oa();b.Va=a.M();for(var c=[],f=0;f<b.Va;f++){var h={};h.duration= | |
a.I(4);h.size=a.M();c.push(h)}b.entries=c;return b}function Z(a){var b=[],c;P(n(a));var f=this.oe,h=f.Af,k=f.index,p;h&&(0===k&&a<=h.startTime?(p=!0,c=f):a>=h.startTime&&a<=h.endTime?(p=!0,c=f):(f=this.pd[k+1])&&a>=h.endTime&&a<=f.endTime&&(p=!0,c={Af:f,index:k+1}));if(!p)for(h=this.Gc.entries,k=h.length,p=0;p<k;p++)if(f=h[p].tl,a<=f.startTime||a>f.startTime&&a<=f.endTime){c={Af:h[p].tl,index:p};break}c&&(this.oe=c);if(!c)return b;a=c.Af;c=this.pd[c.index+1];a.ec.length||b.push(a);c&&!c.ec.length&& | |
b.push(c);return b}function qa(a){var f=Z.call(this,a);f.length&&c.call(this,f);var h=this.oe.Af,k=this.oe.index,f=[],k=n(k)&&this.pd[k+1];h&&h.ec.length&&(f=oa(h,a,[],this.Gc));k&&k.ec.length&&(a=oa(k,a,f,this.Gc),f.push.apply(f,a));return b(f)}function oa(a,b,c,h){var k=a.entries,n=k.length,p=[],y,D=0;if(!k.length)return p;for(;D<n;){y=k[D];if(y.Zb<=b)y.Zb+y.duration>=b&&p.push(f(y,a.ec[D],h));else{var P=p.length&&p[p.length-1]||c.length&&c[c.length-1];if(P&&P.Zb>b&&P.Zb!==y.Zb)break;P.zc!==y.zc&& | |
p.push(f(y,a.ec[D],h))}D++}return p}function b(b){return b.map(function(c,f){var h=c.duration,n;n=b.slice(f+1).filter(k.bind(null,c)).map(a).reduce(U,0);c.duration=h+n;return c}).reduce(function(a,b){Ua(a,b.id)||a.push(b);return a},[])}function k(a,b){return a.id===b.id&&a.displayTime+a.duration===b.displayTime}function a(a){return a.duration}function U(a,b){return a+b}function Ua(a,b){return a.some(function(a){return a.id===b})}function f(a,b,c){var f={};f.displayTime=a.Zb;f.duration=a.duration; | |
f.originX=a.Wr;f.originY=a.Xr;f.sizeX=a.At;f.sizeY=a.Bt;f.imageData=b;f.id=a.zc;f.rootContainerExtentX=c.Vs;f.rootContainerExtentY=c.Ws;return f}function c(a,b){var c=this,f=a[0],h=a[a.length-1],k,p;0<f.Va&&(k=f.entries[0].zc,p=f.entries[f.entries.length-1]);0<h.Va&&(n(k)||(k=h.entries[0].zc),p=h.entries[h.entries.length-1]);if(k){var f=p.zc+p.sk-k,y="o_"+k+"s_"+f;c.bg[y]||(c.bg[y]=!0,c.od({url:c.rd,offset:k,size:f},function(f,h){setTimeout(function(){delete c.bg[y]},1E3);if(f)b&&b(f);else{var n= | |
new kb(h);a.forEach(function(a){a.entries.forEach(function(b,c){n.position=b.zc-k;a.ec[c]=n.na(b.sk);var f=a.ec[c];P("P"==String.fromCharCode(f[1]));P("N"==String.fromCharCode(f[2]));P("G"==String.fromCharCode(f[3]))})});b&&b(null)}}))}else b&&b(null)}function n(a){return"undefined"!==typeof a}function Bb(a,b){var c=Object.create(a);a.errorString=b;return c}var oc=y(2).EventEmitter,kb=y(8),Xb=h.events={um:"midxready",Fn:"sidxready",Oi:"ready",ERROR:"error"},Fb={rm:"midxdownloaderror",sm:"midxparseerror", | |
Lm:"nosidxfoundinmidx",Dn:"sidxdownloaderror",En:"sidxparseerror"};h.prototype=Object.create(oc.prototype);h.prototype.constructor=h;D.Ja=h},{2:2,8:8}],8:[function(y,D){D.Ja=y(4)},{4:4}],9:[function(y,D){function h(h){return Object.keys(h).every(function(y){return"function"===typeof h[y]})}D.Ja=function(y){function D(b,h,a){a="undefined"!==typeof a.key?"Types: expected "+a.key:"Types: expected argument "+a.index;throw new TypeError(a+(" to be '"+b+"' but found '"+h+"'"));}function O(b,h,a){var p= | |
qa[b];"undefined"!==typeof p?p(h)||D(b,h,a):b!==typeof h&&D(b,h,a)}function p(b,h){var a;a=b.filter(function(a){return"object"!==typeof a&&-1===oa.indexOf(a)});a=a.concat(b.filter(function(a){return"object"===typeof a}).reduce(function(a,b){return a.concat(Object.keys(b).map(function(a){return b[a]}).filter(function(a){return-1===oa.indexOf(a)}))},[]));if(0<a.length)throw Error(a.join(",")+" are invalid types");return function(){var a=Array.prototype.slice.call(arguments);if(a.length!==b.length)throw new TypeError("Types: unexpected number of arguments"); | |
b.forEach(function(b,f){var c=a[f];if("string"===typeof b)O(b,c,{index:f});else if("object"===typeof b)Object.keys(b).forEach(function(a){O(b[a],c[a],{key:a})});else throw Error("Types: unexpected type in type array");});return h.apply(this,a)}}var Z="number boolean string object function symbol".split(" "),qa;qa={array:function(b){return Array.isArray(b)}};if("undefined"!==typeof y){if("object"!==typeof y||!h(y))throw new TypeError("Types: extensions must be an object of type definitions");Object.keys(y).forEach(function(b){if("undefined"!== | |
typeof qa[b]||"undefined"!==typeof Z[b])throw new TypeError("Types: attempting to override a built in type with "+b);qa[b]=y[b]})}var oa=Object.keys(qa).concat(Z);return p(["array","function"],p)}},{}],10:[function(y,D){function h(h,b){return b.reduce(P.bind(this,h),[])}function P(h,b,k){var a=k.displayTime-h;h=k.displayTime+k.duration-h;var p=0<b.length?b[0].timeout:Infinity;return 0<a&&a<p?[{timeout:a,type:"showsubtitle",Bw:k}]:a===p?b.concat([{timeout:a,type:"showsubtitle",Bw:k}]):0<h&&h<p?[{timeout:h, | |
type:"removesubtitle",Bw:k}]:h===p?b.concat([{timeout:h,type:"removesubtitle",Bw:k}]):b}function ca(h,b){return-1<b.map(function(b){return b.id}).indexOf(h.id)}function O(h,b){return h.filter(function(h){return h!==b})}var p=y(2).EventEmitter,Z=y(9)({}),qa=function b(h,a,y){if(!(this instanceof b))return new b(h,a,y);p.call(this);var D=this;D.Vb=h;D.Rn=a;D.Wb=[];D.Cb=y||console;D.ua=setTimeout(function(){D.Ec(h())},10)};qa.prototype=Object.create(p.prototype);qa.prototype.stop=function(){var b=this; | |
clearTimeout(b.ua);b.Wb.forEach(function(h){b.emit("removesubtitle",h)});b.Wb=[]};qa.prototype.pause=function(){clearTimeout(this.ua)};qa.prototype.Ec=function(b,k){var a=this,p=a.Vb(),y;clearTimeout(this.ua);y=a.Rn(p);k="number"===typeof k?k:0;a.Wb.forEach(function(b){b.displayTime<=p&&p<b.displayTime+b.duration||(a.Wb=O(a.Wb,b),a.emit("removesubtitle",b))});null!==y&&0<y.length?(y.forEach(function(b){b.displayTime<=p&&p<b.displayTime+b.duration&&!ca(b,a.Wb)&&(a.emit("showsubtitle",b),a.Wb=a.Wb.concat([b]))}), | |
y=h(a.Vb(),y),0<y.length&&(a.ua=setTimeout(function(){a.Ec(a.Vb())},y[0].timeout))):(y=250*Math.pow(2,k),a.Cb.warn("rebuffering subtitles, checking buffer again in "+y+"ms"),a.ua=setTimeout(function(){a.Ec(a.Vb(),k+1)},y))};D.Ja=Z(["function","function","object"],qa)},{2:2,9:9}],11:[function(y,D){D.Ja={Ig:function(h){var y=h.length,D;D=0;var O,p=0,Z;if(!(0<=y))throw Error("bad string");for(O=y;O--;)Z=h.charCodeAt(O),128>Z?D++:D=2048>Z?D+2:D+3;D=new Uint8Array(D);for(O=0;O<y;O++)Z=h.charCodeAt(O), | |
128>Z?D[p++]=Z:(2048>Z?D[p++]=192|Z>>>6:(D[p++]=224|Z>>>12,D[p++]=128|Z>>>6&63),D[p++]=128|Z&63);return D},yg:function(h){for(var y=0,D,O=h.length,p="";y<O;){D=h[y++];if(!(0<=D&&255>=D))throw Error("bad utf8");if(D&128)if(192===(D&224))D=((D&31)<<6)+(h[y++]&63);else if(224===(D&240))D=((D&15)<<12)+((h[y++]&63)<<6)+(h[y++]&63);else throw Error("unsupported utf8 character");p+=String.fromCharCode(D)}return p}}},{}]},{},[1])})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment