From 079910df5719e2dd386936f1f3b4a2d17c8c8576 Mon Sep 17 00:00:00 2001 From: gmihaly-lmi <78744537+gmihaly-lmi@users.noreply.github.com> Date: Tue, 9 Feb 2021 13:41:11 +0100 Subject: [PATCH] js generation from coffeescript javascripts generated from coffeescript with release.sh --- dist/jsOTP-es5.js | 11 ++++------- dist/jsOTP-es5.min.js | 2 +- dist/jsOTP-es5.min.js.gz | Bin 6518 -> 6617 bytes dist/jsOTP.js | 5 +++-- dist/jsOTP.min.js | 2 +- dist/jsOTP.min.js.gz | Bin 6241 -> 6338 bytes js/jsOTP.js | 5 +++-- 7 files changed, 12 insertions(+), 13 deletions(-) diff --git a/dist/jsOTP-es5.js b/dist/jsOTP-es5.js index 31bb8f6..fd22f0a 100644 --- a/dist/jsOTP-es5.js +++ b/dist/jsOTP-es5.js @@ -5,11 +5,7 @@ var _createClass = function () { function defineProperties(target, props) { for function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } (function () { - var Hotp, Totp, global; - - if (global === void 0 && window !== void 0) { - global = window; - } + var Hotp, Totp; Totp = function () { // pass in the secret, code dom element, ticker dom element @@ -40,7 +36,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons }, { key: "base32tohex", value: function base32tohex(base32) { - var base32chars, bits, chunk, hex, i, val; + var base32chars, bits, checklength, chunk, hex, i, val; base32chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"; bits = ""; hex = ""; @@ -50,8 +46,9 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons bits += this.leftpad(val.toString(2), 5, "0"); i++; } + checklength = bits.length - bits.length % 8; i = 0; - while (i + 4 <= bits.length) { + while (i + 4 <= checklength) { chunk = bits.substr(i, 4); hex = hex + parseInt(chunk, 2).toString(16); i += 4; diff --git a/dist/jsOTP-es5.min.js b/dist/jsOTP-es5.min.js index d914f36..27f995f 100644 --- a/dist/jsOTP-es5.min.js +++ b/dist/jsOTP-es5.min.js @@ -4,4 +4,4 @@ * (2) and a modified js OTP implementation found on JSFiddle */ -"use strict";var _createClass=function(){function r(r,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:30,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6;if(_classCallCheck(this,r),this.expiry=e,this.length=n,this.length>8||this.length<6)throw"Error: invalid code length"}return _createClass(r,[{key:"dec2hex",value:function(r){return(r<15.5?"0":"")+Math.round(r).toString(16)}},{key:"hex2dec",value:function(r){return parseInt(r,16)}},{key:"base32tohex",value:function(r){var e,n,t,o,i;for("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",e="",t="",o=0;o=r.length&&(r=Array(e+1-r.length).join(n)+r),r}},{key:"getOtp",value:function(r){var e,n,t,o,i,h,w,u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(new Date).getTime();if(t=this.base32tohex(r),e=Math.round(u/1e3),w=this.leftpad(this.dec2hex(Math.floor(e/this.expiry)),16,"0"),(h=new jsSHA("SHA-1","HEX")).setHMACKey(t,"HEX"),h.update(w),"KEY MUST BE IN BYTE INCREMENTS"===(n=h.getHMAC("HEX")))throw"Error: hex key must be in byte increments";return o=this.hex2dec(n.substring(n.length-1)),i=(i=(this.hex2dec(n.substr(2*o,8))&this.hex2dec("7fffffff"))+"").length>this.length?i.substr(i.length-this.length,this.length):this.leftpad(i,this.length,"0")}}]),r}(),r=function(){function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:6;if(_classCallCheck(this,r),this.length=e,this.length>8||this.length<6)throw"Error: invalid code length"}return _createClass(r,[{key:"uintToString",value:function(r){var e;return e=String.fromCharCode.apply(null,r),decodeURIComponent(escape(e))}},{key:"getOtp",value:function(r,e){var n,t,o,i,h;return(i=new jsSHA("SHA-1","TEXT")).setHMACKey(r,"TEXT"),i.update(this.uintToString(new Uint8Array(this.intToBytes(e)))),n=i.getHMAC("HEX"),h=(127&(t=this.hexToBytes(n))[o=15&t[19]])<<24|(255&t[o+1])<<16|(255&t[o+2])<<8|255&t[o+3],(h+="").substr(h.length-this.length,this.length)}},{key:"intToBytes",value:function(r){var e,n;for(e=[],n=7;n>=0;)e[n]=255&r,r>>=8,--n;return e}},{key:"hexToBytes",value:function(r){var e,n,t;for(n=[],t=0,e=r.length;t>>3,0!=a%2)throw new Error("String of HEX type must be in byte increments");for(o=0;o>>1)+u)>>>2;t.length<=h;)t.push(0);t[h]|=i<<8*(3-w%4)}return{value:t,binLen:4*a+n}}function t(r,e,n){var t,o,i,h,w,u=[];for(u=e||[0],i=(n=n||0)>>>3,o=0;o>>2,u.length<=h&&u.push(0),u[h]|=t<<8*(3-w%4);return{value:u,binLen:8*r.length+n}}function o(r,e,n){var t,o,i,h,w,u,a,d,l=[],f=0;if(l=e||[0],u=(n=n||0)>>>3,-1===r.search(/^[a-zA-Z0-9=+\/]+$/))throw new Error("Invalid character in base-64 string");if(w=r.indexOf("="),r=r.replace(/\=/g,""),-1!==w&&w>>2;l.length<=a;)l.push(0);l[a]|=(i>>>16-8*o&255)<<8*(3-d%4),f+=1}}return{value:l,binLen:8*f+n}}function i(r,e){var n,t,o="",i=4*r.length;for(n=0;n>>2]>>>8*(3-n%4),o+="0123456789abcdef".charAt(t>>>4&15)+"0123456789abcdef".charAt(15&t);return e.outputUpper?o.toUpperCase():o}function h(r,e){var n,t,o,i,h,w,u="",a=4*r.length;for(n=0;n>>2,h=r.length<=i?0:r[i],i=n+2>>>2,w=r.length<=i?0:r[i],o=(r[n>>>2]>>>8*(3-n%4)&255)<<16|(h>>>8*(3-(n+1)%4)&255)<<8|w>>>8*(3-(n+2)%4)&255,t=0;t<4;t+=1)8*n+6*t<=32*r.length?u+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(o>>>6*(3-t)&63):u+=e.b64Pad;return u}function w(r){var e,n,t="",o=4*r.length;for(e=0;e>>2]>>>8*(3-e%4)&255,t+=String.fromCharCode(n);return t}function u(r){var e,n={outputUpper:!1,b64Pad:"="};if(e=r||{},n.outputUpper=e.outputUpper||!1,n.b64Pad=e.b64Pad||"=","boolean"!=typeof n.outputUpper)throw new Error("Invalid outputUpper formatting option");if("string"!=typeof n.b64Pad)throw new Error("Invalid b64Pad formatting option");return n}function a(r,e){var i;switch(e){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw new Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(r){case"HEX":i=n;break;case"TEXT":i=function(r,n,t){return function(r,e,n,t){var o,i,h,w,u,a,d=[],l=[],f=0;if(d=n||[0],w=(t=t||0)>>>3,"UTF8"===e)for(i=0;i(o=r.charCodeAt(i))?l.push(o):2048>o?(l.push(192|o>>>6),l.push(128|63&o)):55296>o||57344<=o?l.push(224|o>>>12,128|o>>>6&63,128|63&o):(i+=1,o=65536+((1023&o)<<10|1023&r.charCodeAt(i)),l.push(240|o>>>18,128|o>>>12&63,128|o>>>6&63,128|63&o)),h=0;h>>2;d.length<=u;)d.push(0);d[u]|=l[h]<<8*(3-a%4),f+=1}else if("UTF16BE"===e||"UTF16LE"===e)for(i=0;i>>8),u=(a=f+w)>>>2;d.length<=u;)d.push(0);d[u]|=o<<8*(2-a%4),f+=2}return{value:d,binLen:8*f+t}}(r,e,n,t)};break;case"B64":i=o;break;case"BYTES":i=t;break;default:throw new Error("format must be HEX, TEXT, B64, or BYTES")}return i}function d(r,e){return r<>>32-e}function l(r,e){return r>>>e|r<<32-e}function f(r,n){var t=new e(r.highOrder,r.lowOrder);return 32>=n?new e(t.highOrder>>>n|t.lowOrder<<32-n&4294967295,t.lowOrder>>>n|t.highOrder<<32-n&4294967295):new e(t.lowOrder>>>n-32|t.highOrder<<64-n&4294967295,t.highOrder>>>n-32|t.lowOrder<<64-n&4294967295)}function s(r,e){return r>>>e}function O(r,n){return 32>=n?new e(r.highOrder>>>n,r.lowOrder>>>n|r.highOrder<<32-n&4294967295):new e(0,r.highOrder>>>n-32)}function g(r,e,n){return r^e^n}function c(r,e,n){return r&e^~r&n}function p(r,n,t){return new e(r.highOrder&n.highOrder^~r.highOrder&t.highOrder,r.lowOrder&n.lowOrder^~r.lowOrder&t.lowOrder)}function S(r,e,n){return r&e^r&n^e&n}function E(r,n,t){return new e(r.highOrder&n.highOrder^r.highOrder&t.highOrder^n.highOrder&t.highOrder,r.lowOrder&n.lowOrder^r.lowOrder&t.lowOrder^n.lowOrder&t.lowOrder)}function A(r){return l(r,2)^l(r,13)^l(r,22)}function v(r){var n=f(r,28),t=f(r,34),o=f(r,39);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function H(r){return l(r,6)^l(r,11)^l(r,25)}function T(r){var n=f(r,14),t=f(r,18),o=f(r,41);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function b(r){return l(r,7)^l(r,18)^s(r,3)}function P(r){var n=f(r,1),t=f(r,8),o=O(r,7);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function U(r){return l(r,17)^l(r,19)^s(r,10)}function y(r){var n=f(r,19),t=f(r,61),o=O(r,6);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function C(r,e){var n=(65535&r)+(65535&e);return(65535&(r>>>16)+(e>>>16)+(n>>>16))<<16|65535&n}function k(r,e,n,t){var o=(65535&r)+(65535&e)+(65535&n)+(65535&t);return(65535&(r>>>16)+(e>>>16)+(n>>>16)+(t>>>16)+(o>>>16))<<16|65535&o}function m(r,e,n,t,o){var i=(65535&r)+(65535&e)+(65535&n)+(65535&t)+(65535&o);return(65535&(r>>>16)+(e>>>16)+(n>>>16)+(t>>>16)+(o>>>16)+(i>>>16))<<16|65535&i}function L(r,n){var t,o,i;return t=(65535&r.lowOrder)+(65535&n.lowOrder),i=(65535&(o=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t>>>16)))<<16|65535&t,t=(65535&r.highOrder)+(65535&n.highOrder)+(o>>>16),new e((65535&(o=(r.highOrder>>>16)+(n.highOrder>>>16)+(t>>>16)))<<16|65535&t,i)}function R(r,n,t,o){var i,h,w;return i=(65535&r.lowOrder)+(65535&n.lowOrder)+(65535&t.lowOrder)+(65535&o.lowOrder),w=(65535&(h=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t.lowOrder>>>16)+(o.lowOrder>>>16)+(i>>>16)))<<16|65535&i,i=(65535&r.highOrder)+(65535&n.highOrder)+(65535&t.highOrder)+(65535&o.highOrder)+(h>>>16),new e((65535&(h=(r.highOrder>>>16)+(n.highOrder>>>16)+(t.highOrder>>>16)+(o.highOrder>>>16)+(i>>>16)))<<16|65535&i,w)}function x(r,n,t,o,i){var h,w,u;return h=(65535&r.lowOrder)+(65535&n.lowOrder)+(65535&t.lowOrder)+(65535&o.lowOrder)+(65535&i.lowOrder),u=(65535&(w=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t.lowOrder>>>16)+(o.lowOrder>>>16)+(i.lowOrder>>>16)+(h>>>16)))<<16|65535&h,h=(65535&r.highOrder)+(65535&n.highOrder)+(65535&t.highOrder)+(65535&o.highOrder)+(65535&i.highOrder)+(w>>>16),new e((65535&(w=(r.highOrder>>>16)+(n.highOrder>>>16)+(t.highOrder>>>16)+(o.highOrder>>>16)+(i.highOrder>>>16)+(h>>>16)))<<16|65535&h,u)}function B(r){var n,t,o;if("SHA-1"===r&&1&SUPPORTED_ALGS)n=[1732584193,4023233417,2562383102,271733878,3285377520];else{if(!(6&SUPPORTED_ALGS))throw new Error("No SHA variants supported");switch(t=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],o=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],r){case"SHA-224":n=t;break;case"SHA-256":n=o;break;case"SHA-384":n=[new e(3418070365,t[0]),new e(1654270250,t[1]),new e(2438529370,t[2]),new e(355462360,t[3]),new e(1731405415,t[4]),new e(41048885895,t[5]),new e(3675008525,t[6]),new e(1203062813,t[7])];break;case"SHA-512":n=[new e(o[0],4089235720),new e(o[1],2227873595),new e(o[2],4271175723),new e(o[3],1595750129),new e(o[4],2917565137),new e(o[5],725511199),new e(o[6],4215389547),new e(o[7],327033209)];break;default:throw new Error("Unknown SHA variant")}}return n}function _(r,e){var n,t,o,i,h,w,u,a=[],l=c,f=g,s=S,O=d,p=C,E=m;for(n=e[0],t=e[1],o=e[2],i=e[3],h=e[4],u=0;u<80;u+=1)a[u]=u<16?r[u]:O(a[u-3]^a[u-8]^a[u-14]^a[u-16],1),w=u<20?E(O(n,5),l(t,o,i),h,1518500249,a[u]):u<40?E(O(n,5),f(t,o,i),h,1859775393,a[u]):u<60?E(O(n,5),s(t,o,i),h,2400959708,a[u]):E(O(n,5),f(t,o,i),h,3395469782,a[u]),h=i,i=o,o=O(t,30),t=n,n=w;return e[0]=p(n,e[0]),e[1]=p(t,e[1]),e[2]=p(o,e[2]),e[3]=p(i,e[3]),e[4]=p(h,e[4]),e}function D(r,e,n,t){var o,i,h;for(h=15+(e+65>>>9<<4);r.length<=h;)r.push(0);for(r[e>>>5]|=128<<24-e%32,r[h]=e+n,i=r.length,o=0;og)throw new Error("numRounds must a integer >= 1");if("SHA-1"===A&&1&SUPPORTED_ALGS)f=512,s=_,O=D,l=160;else if(6&SUPPORTED_ALGS&&(s=function(r,e){return X(r,e,A)},O=function(r,e,n,t){return function(r,e,n,t,o){var i,h,w,u,a;if(("SHA-224"===o||"SHA-256"===o)&&2&SUPPORTED_ALGS)w=15+(e+65>>>9<<4),a=16;else{if("SHA-384"!==o&&"SHA-512"!==o||!(4&SUPPORTED_ALGS))throw new Error("Unexpected error in SHA-2 implementation");w=31+(e+129>>>10<<5),a=32}for(;r.length<=w;)r.push(0);for(r[e>>>5]|=128<<24-e%32,r[w]=e+n,h=r.length,i=0;i>>3)/4-1,uh/8){for(;w.length<=l;)w.push(0);w[l]&=4294967040}for(d=0;d<=l;d+=1)T[d]=909522486^w[d],b[d]=1549556828^w[d];o=s(T,o),p=f,H=!0},this.update=function(r){var e,n,t,i,h,w=0,u=f>>>5;for(n=(e=d(r,S,E)).binLen,i=e.value,t=n>>>5,h=0;h>>5),E=n%f,P=!0},this.getHash=function(r,e){var n,t,a;if(!0===H)throw new Error("Cannot call getHash after setting HMAC key");switch(a=u(e),r){case"HEX":n=function(r){return i(r,a)};break;case"B64":n=function(r){return h(r,a)};break;case"BYTES":n=w;break;default:throw new Error("format must be HEX, B64, or BYTES")}if(!1===v)for(o=O(S,E,p,o),t=1;tKlRa{#njYj@Mgmi^wpLU>L4N^!-g zN^jc=i-hoK9-&F-hR!uviY>(V(^l>yE z&%&Sf?*H^tYqvJ$$hOH=8vUXd|x~nwG%6l3+x%?Q8vhFyXL~-~!P3B>meFdDX`zid&GVSIj4YOqm zT`Sxniy{A3isN=WRm1K)O|m5WI>$|oWw{K4Sa@@zYW-TzixHXND45NTrs3#Qp>;G- z@2RO0#fvP6M`1EiLQTu2X|ht{aHX7K(&IFRX^Ue~qoB-Kdg% z$!1uhAKqc~VnpZ%>D7{)x+pDvptswflW45y_x$GOxjuX#U-S%}#kZg3JD=t9vwYaI z`%rt^9N9EluoU*gu^WDwN9k8TEUt>l{aC&_aMx?;a$px$YvtDJ!JzOvfQ*uHs1!q5 zl{4jtgcr`g!P&jmI2?&-_@%}2fa%pnODk`y>3~~Z>p@Fz^;#{h^D@Y$-IS65W4c*# zilC3LRBj_|STQH&6PWkzIhA>kF2ZMV1|0H(m%$=5M3&qEDEAyiB1>4rrhUqt*2BZ2 zN5_w!Jbm`d^A|5)oxJ|_&FR_O-+q7h{tsc8mhH4y=(k!dp+6ClEE=R$l4(=_`;T`c zl#4GX6E*FQra}5JQzKIQ?HpNi1iY$-kni}VQzqFw7^~C9E<$4#gY7gHbvilX*srpD zzdHHZEueMGfgkrZG-w5GA1^yj(L5vU)nXPO<6*@ZAM1vTKOUD z@B_cH2MR^%KTOl$s|xvkCDythlPFeWt%ER4>jkdD>?E82fScHgE&s16qf#|^gs9cJ zSnn*lhPf$=vcld{ykKECS_;nPeI6PbTWxwKzbIo~%|}mW37it%ml6;j<#ypT75N7U z9~Y-jAF3_<+2<|RdV2h>rD@$om_2>@@aTE?6>cenY}#GU#{jIZG}d~4{9bwa_Vi3S zJXW5)QV!pr(edcb@yp{^XQwUS_YnTrbIaU>W33D~Ay>YkYOp1R%*Fh1eoG4YI2T>ie z)l$-3xrAxG4Ua_fz1-+GH$w_E6@UJjBL4kCT$bMOA1%GhD9+BxOujRZD&K~FF|a#H zlj|cCq9d%+4d(ONS2bSFW&|Csg7EE|XGh8PJc*&M8ZJh`JXFzLzni$!mvbgk*VnQE zM7vVp?D*Z;Rt}_<)erroM zxc{OI<~2X`&xg>;>Bk4C^BPe)pAe)hJvi`Pw!a_Oj+Wc#_oruB*;KGV=If||b$iPO zVPA{8^W|cyHVwB@lNt#%UqpPz7uD)QzGMX^4HE2syJ7hWT2D4dUKAHox=3%d zF3~f!ctFeP@9EpuuTS2b9Y4Bw_~OYa6u&29uTwcJ!me;>bTvImLCyWNG2Z z6xTXSQchrxP*x@%)FvzZu5115d^%kF5rTeCHTG9On_5|xz7;{0G3=jSgmKT@3p((B zZR_j~TO-tR49m*M(Wa3L!_@A8eK;shL7%8vYDCFl@4I_R8>Ln&V`z*RViQbwvzZ06CXyx_Arx(O z#$q2~*6~)BU)sG#*tQq3ejXFRA^zlx#y=M|praa!Fb zy2&z|FSC3f@*vsVk@S)V|8z%Z&$AeM1iSSJNDo6J0eU~S2$Z4Iy1)+n=z-o#&m+qG zxFho0t6jGfU)^Pj(jU~7rT>ATq6O8(I&Ohuurtd>xD{M=TptuQvK}vFqG2a0vY2AnAvMKSrR08`cSH zJv+Pj9=J}mY}PEhl$Q0sNnz2u$5{ckhw5@e6$kWSy+$*SHa6qj1o>aN$A zg0(J_WEKW->z+@I3O#FMqPxqIGzjG>y$-T0Z+i3M6%Ijbl~qcbx>)+|S&RESC#?BQ zZKj|}gs8t*MHvb@u1Cn2*4wkkZmU%YZpy{ea&aQKJ!De9SRfYgp386GHn;P1gVfq+Z`9o64mYN* zMjZ~k0VKNaaE0#Za$%Y98?Q(ric^y3Q*q%QpgeE1a!{HFW$jJ0p3qJAAbFsc67Gq0 zocjuYA&j|Z!bhNMek1sRj27s>sAD!5TF&UidHnPi{G-Z zjq6r4K3}30&A?*H_7l|YC!8%nDiQWoz>y1(WmTB`rANLMeR4}nw()SgjS*<-w9iQL zl1loy8v75BCpm0U!xo!Ob1XN_?B=Ep#~V484{eh|IoXiCKRZ4pY1aQvW);a@=M|EL zDU=;d!Mu556?0XrR*9OF9~UWK-be?7aGg@ni+yQJG20x3`xrGCYz~@G0#AJkUjUg;x4gIDJD>!vi!^-#$23vO*hYV zmi3f%OC)_HB_!m@F1Sy(;MyfzUc!|#;A|5vH!HZ@t>BvcpM`t51=lIzy4nZIPeU5| zdJAm@HphCBKl_hDeY*vfS6ICQE7zsLU$?+|6QZ1Ry)-?h})v%wrICDE6H77DtEz&xx?~3S>>?l-|4VQ z6iGf@);?VQjXu03neMQ|luiGBuT~n$veiycul{CF-xlpwdMP>oux?`%0r`84;*%M@ zM{c)yd-KbP7W?PiF@)us+%uSoy{j+`lRMxYwlG`+yICe23^82CWrlDq!*ML35Bs!% zEPhC1Z%=yrjmfJ-0SpDeq9D!|%3?X6CutUrTUzxlB=gS=TG8RUA(+QaZs|5Q!!8$& zE|v!vj(srm*( zS-4>e2aoF9@N`p{q@!b)E*{37->^K_GdTB{uyx%P!V@O5go_cjfmJL3u{pmhhku z#G)1(mSw_iHc5?U4hK5xKuuGdwbAJ4v(w^+xY9_H^Q61Bh*luPKFtRONZb0k| zwc)lt78jB}3BBtvb=MPy{_M_3kz@1(&tP0cL>iki}3XNV|)#StoAt<9b90p7-+;$#)eVccqd zsV4EPi#uL;v!Hk-HewV1iY@$8cH)oO+&^N+{&n@s95NdH8e~D7?AjMhlM1^4A7=ECGTO7Dq9$^Gd4R$#Y`h#QjM2#7&KU0f7 z0f^kD>9MS#}k^h_jr0yGa z4ZMdX+U>f8+{*#nQ_b&pmA7&DWgd>uMwE~w^vy8`zV)M7G?^3M)qz(4ZwRO_0QC)^ zegV|ifch0sKLhF+pdJJ298h206mL1>;u~{JNjb$q&^zpyl5&Xyk}|*nm1m5DO&K0j zX}N-LuLdXmD@xQW%2D-K|7!1${V9E^`ZfPj_3M!RA`3gb5O=WP@8?&;{Dt2iDtxAC zyU2SnqKz;8rQ&RJbSpJ9WlhsY{K0RP(^l*l&0~pB0IUfO}8h!k?>o z^w4W+l%%mAK&2(LyHHnbLPcXL<>ZBm&}w$Vl!_O4J}#OTrQ!vWEiRfBrQ!vWEiRfA zr6Nrl7u|_c@dCi&qAS6OxD4_Wy0qzXoS)F8LzlDs1eZ74tfSplpP(XqDd+61UYq)rx+XAOTw?QO0^;%B+LztixU|g8W zH7p_^m1H; zgwS1-Q{f8k8kh}C#sgjOY*!}|2N)b(9%>oj8x9PGQ&2$SIGi&MRs@y>V}SJu@DdON z8&nMH>K33FG*$j_#52*Z4Tm@rj7dz16A42n0W;Bo%EfcA7l$oK1sGN*3u6c<8%U-D z&!C&Y!oW%-&cynlqaJR!m;qeWa%`A|0CK2kx!|TCI66SMx(T~^7{NUqDiYnp0}x`O zoX{~)L(g<=ZZq5RKoc#?W-j<4x()cBhuP44Fgb^p$t(0-#v<%+8f@*D#8bc>p$d#` zlaH7nlzdqHengIN+4z&=i4*m_`IkVrXh3lEL)2BZ)~JLavD1$+|wE$%Gdb7?UMcqNT-PLJI|~)d+48VFDu* zgbz?p10A~vab zOGV7K3^9x5L3lo9J?NKH20U0VW;F0SG^X&RG!PIlY{7%pgBBuqU>l+zC|=V9Es0ek zDG*s2BNS=ZJ^UtC*NA=?ODBc=!pMhJ$*c%`CFUF>q=L2*FhLVClo~Mnpr16If_>5C zBa#9z;Rw=2tvP1|#dU`$FJ|3U$VjElxd31c0}furhiTmU2Uy{RSu#Wvh{O`cMx)4| z`nv4+O1hOX?LLA{$?n1W!{9U10hjn^BDcYld=mv9`R9h0@A&5vzUpFP@1Dgoe;xdO zQ|F@#HL?@XjQjqkeEf|im%DG@B1Z4}9NYtllqm>);AR(^FCLCrlzChiIpknb`}xCs z+q;mxsIHANImAgv4sjvD+sGz@YxyfE1n?U-7=TKOI3^ipQ=`J7;!XkBuw{)=jVds84eU5wNek& zt5Xk^PCc|Wl=V?GRnC+9d+@|2^8lK6mir1>GxH6U9nh8XcCV6Fj7gb_RGCMWXH-c= zl|q~vb#SJlv%9@}FHzU`9)VoH+S+VYUz?2rH6*7oavBG2`70PThR* z8Ig4A=%iyF7m`r{9>P7(On=v7$J77Ive?a?>~n9m>+xu^y_I5KhrSPm{Mnn-2g=%G zQk@>EF`w{KT=Z{3jO*j^AlQXE44ALC^L+M458Y}9p`Li^7`8q>jr)4-!wVisSgbbr zdi5u3R+ss1X?64IpLD~MKkP#v_|m;BdA?A2LFql?H+^sG`+Z$K7*ulAR|SOt&MW1D zC3^n5_@^i+&zJ8qUF}%OYp()KVL()2rHvV0kNwJ+;p%ohJ(YC@83@0rvn(%6SFe7S zH_u?GXS{L7MB>fuY%0MVL3zMhf3NU0xZ^dDBk=nq8)WL@xR5*V1~wd_#)5%Gc+iTV zak7-aJ};}(01=7CK-8NO-dwVf@pEw5Lbj6g8nV4)sfDNuRrjn=E&b|jaV|Hi0(9rC zYR|F^mS?5UF;!=B;g7$b$qG?W)66|pIJ!%@dAnfj(~Ou0@t`2z1r5#iO8%0*+K2b+ zZfdoGCaHSuMw{Ag$Xu4*+z*`M=#7I{Q~7{_y5w_3TgA529;2?G%y4oI#S-D34`m^8M>VB2Y=hgf6 XzinR~$(2_JbMo?Upe#vW7exR7N1e}7 literal 6518 zcmV-+8Hwf}iwFo_?DARy0BUnjR8TEtb2Tn)X>KlRa{$#`>2ljP5dPn%U^J~tMzBJF zw`Dq$!|9ngt(`Wl>vU*~vY5!EOHonN$bI&H3tpfkH}3VLnT$v-fW_Xs072io`;m56 zdy>pz?L50YOVT90&d;p@3}_D*}4CsC>$FY@?}CQQ@c5hk~^MLLdi?cvd5 zZI+zJ={%MLg`q|1Sc|mFY@AGzc&q`(;qh}VxxAXimvLG|MUti3BwL^xZoWKvl8nc* z_@le`KKiJ)n8(_@$dmJ;H+mc8+Rx{C92N1SSu~%AlSO(?gLUJ5eXHeq&SE@gxlaAl z&>W?E@o*NW7sYgx4hF`1f)`#i9DJTHWES7@lY8B)M3W?RQMp zdmGIbaW6@=qTknx;WAH(s?A`BXRqV)VmOW`Ng6-Tv#U5S-sw5eyoukj!nnT9<6@Dg zT0?itQo!F=;I!Y*^>}!dXGK=LyF#PE3JF6e7GGcM#;6_&L68U@MYGwXX?*^sc3=W#aCV#6q=dA8Kjc&Qx&=|P@DG`&Yrnr4M|j`7fq#HB^}-_X`GuJwk_ zQf8QfrK7i5GSjIP7@*Q+Fd7sm8dBM(#cY2RP1l*c`{ zly6VUbr+(Cg@BOrY#eK4mtLjzj_pEUC+}evyS;IIE~fFXJtj?Sw-H)i*#++QxHEL_ z_srgIuV)ONM#XfPle?hLu*i;z9B!&}7Y4>koWLi5_hy{hRg}-;FVX^Zr~}WUd2ERy z+e%QWIcc*jW65YjhV9fP<-+X&?{NlUsU;gl;ux!WmdN71u zj}`Qj!5Oo?ymm$-2|ql12y=>mJ)G$I@O&EO4+=dare9payB>jB-GHeL!b&BR;wl>J zNh=j$Fo!{M2FnHmNwFkiVDE)-Lr04H`QmI|pq1G$g+bWJCuO1|WI`0$qe_fLBe`ns z4XH_|X~Z56_p2cnl*ohM4a-xrBVlX^K+7ig{pSXjZYs#XTNd23vMjAs;Fe*Jba?EQ1!}dy2n7 zh1@N*q)$U4;r0CJ^9OnlKRdj~dY>P>>>0*z9v7cKeeme3_?=!^F@(Q}beWjp!wf3`;*UH=UR2orfC}}149S-J_P{;qReRXj+W4>YZJFPu$QvL&V z1NeNcL?!UtPihQFJ(bd`Ml55u>l|vE6#Dh`DH)oMpZ_Lie>m<|kv9HMBkdwdi{r|Z zZ}g)|w_vvHIGp6!FHuNBhsNN0AGCj#iQ)LrU4zm3rjCu}2@edg_ zS#t_D4RtO&)Hsce*F#dnILSip^otW7oSqtcd%|An!XZF5-~`}q3lIeGSM{TH3LhVY zFzVWVrysE2R+25#JLBbN-X7W1jz=GU6d0*QojtxPYXo;_`yuPmHUVxu|^-(NF%gVa-8 zg>m&TrHB057*gG)SCy8mi;rGBe}4Gw@xkMtAAJ4U5g5PI(yq92T$){}(&S=#n4@M7 z^Ge*=vV4xOn*mJ%qe+wm!=i@oGC!bVhO4s$Mc8z;GL8NHeTyM3M4t$y1g*-?(l|8~ zsIWGTirqhpw?><|_o7h-@ySv*2{)yjRZ?cj{8{u&PmEj5eV$<%f~vUyVgY>$Ub#a5NVQP|wMJ?o{BjmNRisZwM0_r)hqL!?gnB*WEB$9TvXld{F7d7o{ zA!#oZ+D9GQ7d7qv-Fm(b3)zk4!p3YyJ~IKa(B13?gW2Io($Hoc<>yoV-m8;n=eGwt zKbkv1IQZ$_>EPpgTQvH`y4J{us8-o=ZEar0ds)UTfx50Idtncb2S6TQ&7$*IzxPvk z?}8yPfe2dC^!v+3s5j5~Y4~ZmcHNw_GMxe(7p;2W{kHMGv?(Px*iP-~DFtvWE79!M(PQo}OefMEg7L-Ar+;CJb{q zYe`}h>f>-y8~m&>nrLLq8iSvmL@*jXA?I*+{JU8nq1LEuX#5E{n*iZ;*9&H?B~3ae zl&ob&qzXvJZtP8xTrTUAQCivhNlFBs;zv%J(xl*`*NUJNQ?Fh`6zFRAxnm4&?n5cg zXwt+mTNGD|LM}Y+XWb>pZr0L2?a<%40PzuR=OZFMECT?_{R1vN6xPv*JGpP}<|oN1 zqh=wSm)n}NP~RpB(npn*r!`#1JVx8*ua-)Ss9RWRy!NOdLHl>pfqS>u3oX&Gaep!R zH>|T1xeTx_5m6X@*D`j2JRY98_VZ|5D`L@#da2~)YK6Hj;28ABd)X)^`coK6+>uV) z@HyC4@1fRdR(kEU3uW5yyb{rig>`V6{RrPgU~?JH{lpn$n8PhTYW) zC|K_-%Vu$u_U?p~sF1Tdh;9x`N+%6+xQvQICcP`-pbUn+DoVAetEq3sTDEUP*wizv zn4;DZlF@vb6bR^eK8MHjUK~I1d%N{5cOM?8PhaEd3>EyF5o{+~%!=I&isBTdHwb9T z2Exd+3K`R~T&qzT*VW{CIk_xwci~B+at?yYLYjbW)zsOVQ^3;JO13)b4au#O;l^QF zX1HZYMRb$lO5Ty>;?m)%cbgp&*r|j|R9yJ`de%whRMOn9VsB>b3e)!Yv-^4l;el95 zA2L`40g9Dt^)tiRbsQ16``K#cc$SR~kgUcdge^yLK{J*J;C`$byQ>pj@GjSJEO(&m z+!TOQOfgsTew{>CqqfZwwNKcpS!&#y6H%FBj;4FFS{~CT6`@dwkcyUNDjGMzZ!t2) zO)46nERc$3sA8)06E*24o?$B)dZ`Ugs$jLME$(KG)D&zgf^`P>`{@QHBNwP&lw&*6!v6?io_tcoZhM!nchT9+S}E?+g|dwcOJC!-fT%93K%=|t`E3SGOMu;15|k+dA9l}o!~VR^Gy zX(Ep$_QUjk*|li868dyi)ZNQ@(!MPMJ8(S_I83&+UE86XeU04`eRs%?CAy9oBQ#r z-}AoG<7zFwt`m;V?LEdS4aK?{RQ>6;?%sl1K`Z1RZJ`esUd1Yj2Y-pg8z_90{w2!S z39oQ`fStF^zJBRk!gxg&Zk1P|YVHB`EnkdHs14z%kareU%;jBRj5<84e5$-<3O@=H z3gy{0az9@q*R9Cq6}hSh9Cyj(c1}kO9EcaNm@$R=WEo~#7bHZ zY3zSX>Wei}c};6j(#lPx^Sd=-gPK~G*W|kYExC`Bl~SlvX@LzoV^H12_2kvFp3C(m z+T;2rEpN)DjqIg5@SC+_ZOatRUE16gx1M&O7xhiHNrI z%-#-drXJo%EtceVVrg`^3Ca}VEgRuYZz;SDNQ-Vw-(7{XA$blio*_UxmDB4e_7KKbPJ{zit-=UX-rxG7T)zMGulV)_j$kjX2igY8}3=c z@ogSh%*NVPSeDH_)E%y{d<&~tCOmYpe9vc=@EyzZ9ATc0XaQNCuyNOsZtj>o%QTRo zfv_aPD-3PExVp;nA|CgQdM~61Pb`|z)67_HX!ln1*Tp_~_wUn8g7hP9TJH%BnpSDPtk9&PYIv^FynE>+!ENsii_J!pUSTtbEacro~C8*Wn z@W8VPstL8-fNhS=65n_HfZ$Gx#DzpnpeL}~Vi6FsD|~JN?425?>-;!eDEwq#0`}ww z!g4%e)>twyff8JJz6UWoEm)v842^r}ZM9$vyFTa#ins_`uni;u`nnFcycP_Nc-U{? z(4ErRCDh!pz^L7J1`n_jNF1gT7^ffF2Y8XbNwa0DnlT*}*xcv)`GyT|7L{9K=hzXu zVDs>Z9fo6e6+U7I;bpb^9h1-sTsT>6OhQR;fe@y+fawJ`V-|ZperOve!X`<$Kq$DM z<8Jp*2VloKeMJ|)yl}g^x)3B1EV>Kx{(*jolRS|AOfT~UNaPOpp?6^ijPPQ!dCyjQ zPTHR67r^{D2Znp=`JlQJ=A=?U~1ydft+|_HL0)*qj}*3-*xx%pS9s>ff`uV%&enlTJ{tYLSP$`sA$GqWViWYo@Y&+>3@e?VVabof zH|%A2$)1E~?2GUP`yqVGo`s*YuVC%3Vfo*MpEY@-iGg=8MZe#KkUNrqJG%Yhtnwno zfvNZ$X+(ny zK4iZsZ>qkLZ>qjIWnZem0WZM=O!)oD#i`uz`%#C^uxl*=kM%Ef-0YBj(-reQkpS*g z5Ke)6628=D?3unW*lS%HhQYqWc!?E`3WNKB-i3dqOY5O+>TnD`BCxbz3p6j;go4Jj z^+^C>TJ1`hT=8d&ryB#moE{Upk&l8Nr*tD9EqYwijeNA}aX~lo(V@qPZsem&k7K%# zj~+eF=!PDz*Q*ZfH-8qMAoL?g3nU(dsUWaz57{0u#12qg*dA^J!6_(t77JV+_#XNr z_L)ASR1jDQS&jt^p6xSad=vzh5E$iB#^olA2qh8f1KZ@xH9Zso!oyUyaDAV!VdDU~ z+Vd?RYXn+PE7*LBko(r)MfgCJ4 zK5A17WtjzHO&f9x(1QmiSfp|f0{{dfS0FXIsH!X&fsY^qaGJAxGlW6=XrB`QHScVr<$EI5E#5C9Ahr6PWO+XB_N zMTz23Y3G#{DGD(lL&*VigcN;LCYxsbw638(gHI8&f#-U*gKe`K%uit(0%}9G(?BUO zK@GNz$%CK;Tc;#_ObNqKaM+letOvAuq6IrZVmh!)m~@Mq0vnZ^FdD~GaC=0bYr7^X zv<3Uo+-|qv;1sq6D-EcqRk$$$w@82{bgjTSutRO+y@3iBM7rz4;6SGW2d6Mh z3y8Q12B$788I>OQ6fkiLZFn9GM3pVE>XO}BU73SdiYJ`hLje=7(6DgH6cl&>xCt*t zu(1@lAZBe8MKD>DD{wFi1A_14Ab_e=(kd!lm?mVTz@=IP_@)VGQ{XmP0SugD+CYI* zZS1-pMJ`tX6St1*I&c$D?Jlchh|KZ=NA2%}OcPG#z@1e%v1_~JZ5_5OvS2LKEa7%^ zWf8kB!i^VLt^yWhBEAnWELnlebpY%P^I9t0COCZ8gl#(t+&PtT)TaohPU}i-S%}&Q zyb9bSwy-iJYf$0DE@FY_1c>np9PB~}Sc5|CicgVpu{8Bv3$!Y5PD-Q*Yhz*sPRezV zPaHU#iig<6Vv8dZsV-~Fa6pSvOs>EkvMEa-8h{`L?h@SfOw1jq{lTq|RT7GBp;GA+ zm9*l8#)JY7$Uj}$B|sQdLPe=tcp_4hrNBACeeh*MF$$cxwYZN&0x>9X3vgQILo=p| z$CfT+!Q6t*yp9wDtkXq`SK!31q__nyv6`7ZCWm+<%p1MIN^H52#2nwVQHr#F z?<2ZlKFY&z9S{6F4S(=T+7&^rgw8=B8EDG^ZP1uhN(m}IC{H#>vHAj)R7pWFW&rMZ z8_rQd;XegEX4APVw7cy{7Xk(uNbrGAcedLOM8>3DGVW3(hDifN2IJHyj~zd$56rBe z6Yea@&avt@*%56A9N^|H4jexSap>uD`Z*@>8T~xRV|kcZKc~Yp?{Uz%KIgMqmFH%# z%s3z7E4^>&$mM*s;#9qtAIM$Y3EKm~7xc0V&HERdtEgspdB`EcDyoPta8PPL)OgS6 z?jgS2vWGYcv2LT)1a>qYV+jHIjq2kiTdMT-L&eVf{FhQ>Z;fkUQ9Jy}!K3z_M6>qY zSj=YK#cZ~1F}vJY;Ijx^Y+b5m-KA>w?=MxCp~Z@)Hld2Qf7gKiZ-OBk={CBZMz7oGDI&dYPQlg@fg*^(RI`0s+1X~unuX}HVVfTu z&VJrueJ^CPC zCo+;MvtSbuUrrEB%Rx9XMpuJyi7KdWUJ@Du6;b-hggtL4mLKB5K*H@`3P#)Qb@QwK z3Qc7;^H`qOZmg+&4T+sk9Lr{%!_jHD@yU4kVMerZ()5PT)2j345mb7u@i&g3t{*-n zDRAk7<)-za4t=pJl6Dbte6w&-ezQO=8Jjg`T+#P{{+dIIz2H{pB$_`JI=`LJNx~5A z6i4vk^!VQ4|0VqL%Yi4iP(e9csRjCL7^)7)56()Fm#?+tav;M~EBWhDulZ{eVf_(8 z`PVc0{qj1DF30!F+xD+fG<-g}Ht8||this.length<6)throw"Error: invalid code length"}dec2hex(r){return(r<15.5?"0":"")+Math.round(r).toString(16)}hex2dec(r){return parseInt(r,16)}base32tohex(r){var e,n,t,o,h;for("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",e="",t="",o=0;o=r.length&&(r=Array(e+1-r.length).join(n)+r),r}getOtp(r,e=(new Date).getTime()){var n,t,o,h,i,w,d;if(o=this.base32tohex(r),n=Math.round(e/1e3),d=this.leftpad(this.dec2hex(Math.floor(n/this.expiry)),16,"0"),(w=new jsSHA("SHA-1","HEX")).setHMACKey(o,"HEX"),w.update(d),"KEY MUST BE IN BYTE INCREMENTS"===(t=w.getHMAC("HEX")))throw"Error: hex key must be in byte increments";return h=this.hex2dec(t.substring(t.length-1)),i=(i=(this.hex2dec(t.substr(2*h,8))&this.hex2dec("7fffffff"))+"").length>this.length?i.substr(i.length-this.length,this.length):this.leftpad(i,this.length,"0")}},r=class{constructor(r=6){if(this.length=r,this.length>8||this.length<6)throw"Error: invalid code length"}uintToString(r){var e;return e=String.fromCharCode.apply(null,r),decodeURIComponent(escape(e))}getOtp(r,e){var n,t,o,h,i;return(h=new jsSHA("SHA-1","TEXT")).setHMACKey(r,"TEXT"),h.update(this.uintToString(new Uint8Array(this.intToBytes(e)))),n=h.getHMAC("HEX"),i=(127&(t=this.hexToBytes(n))[o=15&t[19]])<<24|(255&t[o+1])<<16|(255&t[o+2])<<8|255&t[o+3],(i+="").substr(i.length-this.length,this.length)}intToBytes(r){var e,n;for(e=[],n=7;n>=0;)e[n]=255&r,r>>=8,--n;return e}hexToBytes(r){var e,n,t;for(n=[],t=0,e=r.length;t>>3,0!=u%2)throw new Error("String of HEX type must be in byte increments");for(o=0;o>>1)+d)>>>2;t.length<=i;)t.push(0);t[i]|=h<<8*(3-w%4)}return{value:t,binLen:4*u+n}}function t(r,e,n){var t,o,h,i,w,d=[];for(d=e||[0],h=(n=n||0)>>>3,o=0;o>>2,d.length<=i&&d.push(0),d[i]|=t<<8*(3-w%4);return{value:d,binLen:8*r.length+n}}function o(r,e,n){var t,o,h,i,w,d,u,a,l=[],s=0;if(l=e||[0],d=(n=n||0)>>>3,-1===r.search(/^[a-zA-Z0-9=+\/]+$/))throw new Error("Invalid character in base-64 string");if(w=r.indexOf("="),r=r.replace(/\=/g,""),-1!==w&&w>>2;l.length<=u;)l.push(0);l[u]|=(h>>>16-8*o&255)<<8*(3-a%4),s+=1}}return{value:l,binLen:8*s+n}}function h(r,e){var n,t,o="",h=4*r.length;for(n=0;n>>2]>>>8*(3-n%4),o+="0123456789abcdef".charAt(t>>>4&15)+"0123456789abcdef".charAt(15&t);return e.outputUpper?o.toUpperCase():o}function i(r,e){var n,t,o,h,i,w,d="",u=4*r.length;for(n=0;n>>2,i=r.length<=h?0:r[h],h=n+2>>>2,w=r.length<=h?0:r[h],o=(r[n>>>2]>>>8*(3-n%4)&255)<<16|(i>>>8*(3-(n+1)%4)&255)<<8|w>>>8*(3-(n+2)%4)&255,t=0;t<4;t+=1)8*n+6*t<=32*r.length?d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(o>>>6*(3-t)&63):d+=e.b64Pad;return d}function w(r){var e,n,t="",o=4*r.length;for(e=0;e>>2]>>>8*(3-e%4)&255,t+=String.fromCharCode(n);return t}function d(r){var e,n={outputUpper:!1,b64Pad:"="};if(e=r||{},n.outputUpper=e.outputUpper||!1,n.b64Pad=e.b64Pad||"=","boolean"!=typeof n.outputUpper)throw new Error("Invalid outputUpper formatting option");if("string"!=typeof n.b64Pad)throw new Error("Invalid b64Pad formatting option");return n}function u(r,e){var h;switch(e){case"UTF8":case"UTF16BE":case"UTF16LE":break;default:throw new Error("encoding must be UTF8, UTF16BE, or UTF16LE")}switch(r){case"HEX":h=n;break;case"TEXT":h=function(r,n,t){return function(r,e,n,t){var o,h,i,w,d,u,a=[],l=[],s=0;if(a=n||[0],w=(t=t||0)>>>3,"UTF8"===e)for(h=0;h(o=r.charCodeAt(h))?l.push(o):2048>o?(l.push(192|o>>>6),l.push(128|63&o)):55296>o||57344<=o?l.push(224|o>>>12,128|o>>>6&63,128|63&o):(h+=1,o=65536+((1023&o)<<10|1023&r.charCodeAt(h)),l.push(240|o>>>18,128|o>>>12&63,128|o>>>6&63,128|63&o)),i=0;i>>2;a.length<=d;)a.push(0);a[d]|=l[i]<<8*(3-u%4),s+=1}else if("UTF16BE"===e||"UTF16LE"===e)for(h=0;h>>8),d=(u=s+w)>>>2;a.length<=d;)a.push(0);a[d]|=o<<8*(2-u%4),s+=2}return{value:a,binLen:8*s+t}}(r,e,n,t)};break;case"B64":h=o;break;case"BYTES":h=t;break;default:throw new Error("format must be HEX, TEXT, B64, or BYTES")}return h}function a(r,e){return r<>>32-e}function l(r,e){return r>>>e|r<<32-e}function s(r,n){var t=new e(r.highOrder,r.lowOrder);return 32>=n?new e(t.highOrder>>>n|t.lowOrder<<32-n&4294967295,t.lowOrder>>>n|t.highOrder<<32-n&4294967295):new e(t.lowOrder>>>n-32|t.highOrder<<64-n&4294967295,t.highOrder>>>n-32|t.lowOrder<<64-n&4294967295)}function f(r,e){return r>>>e}function O(r,n){return 32>=n?new e(r.highOrder>>>n,r.lowOrder>>>n|r.highOrder<<32-n&4294967295):new e(0,r.highOrder>>>n-32)}function g(r,e,n){return r^e^n}function c(r,e,n){return r&e^~r&n}function S(r,n,t){return new e(r.highOrder&n.highOrder^~r.highOrder&t.highOrder,r.lowOrder&n.lowOrder^~r.lowOrder&t.lowOrder)}function p(r,e,n){return r&e^r&n^e&n}function E(r,n,t){return new e(r.highOrder&n.highOrder^r.highOrder&t.highOrder^n.highOrder&t.highOrder,r.lowOrder&n.lowOrder^r.lowOrder&t.lowOrder^n.lowOrder&t.lowOrder)}function A(r){return l(r,2)^l(r,13)^l(r,22)}function H(r){var n=s(r,28),t=s(r,34),o=s(r,39);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function T(r){return l(r,6)^l(r,11)^l(r,25)}function v(r){var n=s(r,14),t=s(r,18),o=s(r,41);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function b(r){return l(r,7)^l(r,18)^f(r,3)}function P(r){var n=s(r,1),t=s(r,8),o=O(r,7);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function U(r){return l(r,17)^l(r,19)^f(r,10)}function m(r){var n=s(r,19),t=s(r,61),o=O(r,6);return new e(n.highOrder^t.highOrder^o.highOrder,n.lowOrder^t.lowOrder^o.lowOrder)}function C(r,e){var n=(65535&r)+(65535&e);return(65535&(r>>>16)+(e>>>16)+(n>>>16))<<16|65535&n}function L(r,e,n,t){var o=(65535&r)+(65535&e)+(65535&n)+(65535&t);return(65535&(r>>>16)+(e>>>16)+(n>>>16)+(t>>>16)+(o>>>16))<<16|65535&o}function y(r,e,n,t,o){var h=(65535&r)+(65535&e)+(65535&n)+(65535&t)+(65535&o);return(65535&(r>>>16)+(e>>>16)+(n>>>16)+(t>>>16)+(o>>>16)+(h>>>16))<<16|65535&h}function R(r,n){var t,o,h;return t=(65535&r.lowOrder)+(65535&n.lowOrder),h=(65535&(o=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t>>>16)))<<16|65535&t,t=(65535&r.highOrder)+(65535&n.highOrder)+(o>>>16),new e((65535&(o=(r.highOrder>>>16)+(n.highOrder>>>16)+(t>>>16)))<<16|65535&t,h)}function x(r,n,t,o){var h,i,w;return h=(65535&r.lowOrder)+(65535&n.lowOrder)+(65535&t.lowOrder)+(65535&o.lowOrder),w=(65535&(i=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t.lowOrder>>>16)+(o.lowOrder>>>16)+(h>>>16)))<<16|65535&h,h=(65535&r.highOrder)+(65535&n.highOrder)+(65535&t.highOrder)+(65535&o.highOrder)+(i>>>16),new e((65535&(i=(r.highOrder>>>16)+(n.highOrder>>>16)+(t.highOrder>>>16)+(o.highOrder>>>16)+(h>>>16)))<<16|65535&h,w)}function B(r,n,t,o,h){var i,w,d;return i=(65535&r.lowOrder)+(65535&n.lowOrder)+(65535&t.lowOrder)+(65535&o.lowOrder)+(65535&h.lowOrder),d=(65535&(w=(r.lowOrder>>>16)+(n.lowOrder>>>16)+(t.lowOrder>>>16)+(o.lowOrder>>>16)+(h.lowOrder>>>16)+(i>>>16)))<<16|65535&i,i=(65535&r.highOrder)+(65535&n.highOrder)+(65535&t.highOrder)+(65535&o.highOrder)+(65535&h.highOrder)+(w>>>16),new e((65535&(w=(r.highOrder>>>16)+(n.highOrder>>>16)+(t.highOrder>>>16)+(o.highOrder>>>16)+(h.highOrder>>>16)+(i>>>16)))<<16|65535&i,d)}function k(r){var n,t,o;if("SHA-1"===r&&1&SUPPORTED_ALGS)n=[1732584193,4023233417,2562383102,271733878,3285377520];else{if(!(6&SUPPORTED_ALGS))throw new Error("No SHA variants supported");switch(t=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428],o=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],r){case"SHA-224":n=t;break;case"SHA-256":n=o;break;case"SHA-384":n=[new e(3418070365,t[0]),new e(1654270250,t[1]),new e(2438529370,t[2]),new e(355462360,t[3]),new e(1731405415,t[4]),new e(41048885895,t[5]),new e(3675008525,t[6]),new e(1203062813,t[7])];break;case"SHA-512":n=[new e(o[0],4089235720),new e(o[1],2227873595),new e(o[2],4271175723),new e(o[3],1595750129),new e(o[4],2917565137),new e(o[5],725511199),new e(o[6],4215389547),new e(o[7],327033209)];break;default:throw new Error("Unknown SHA variant")}}return n}function D(r,e){var n,t,o,h,i,w,d,u=[],l=c,s=g,f=p,O=a,S=C,E=y;for(n=e[0],t=e[1],o=e[2],h=e[3],i=e[4],d=0;d<80;d+=1)u[d]=d<16?r[d]:O(u[d-3]^u[d-8]^u[d-14]^u[d-16],1),w=d<20?E(O(n,5),l(t,o,h),i,1518500249,u[d]):d<40?E(O(n,5),s(t,o,h),i,1859775393,u[d]):d<60?E(O(n,5),f(t,o,h),i,2400959708,u[d]):E(O(n,5),s(t,o,h),i,3395469782,u[d]),i=h,h=o,o=O(t,30),t=n,n=w;return e[0]=S(n,e[0]),e[1]=S(t,e[1]),e[2]=S(o,e[2]),e[3]=S(h,e[3]),e[4]=S(i,e[4]),e}function G(r,e,n,t){var o,h,i;for(i=15+(e+65>>>9<<4);r.length<=i;)r.push(0);for(r[e>>>5]|=128<<24-e%32,r[i]=e+n,h=r.length,o=0;og)throw new Error("numRounds must a integer >= 1");if("SHA-1"===A&&1&SUPPORTED_ALGS)s=512,f=D,O=G,l=160;else if(6&SUPPORTED_ALGS&&(f=function(r,e){return _(r,e,A)},O=function(r,e,n,t){return function(r,e,n,t,o){var h,i,w,d,u;if(("SHA-224"===o||"SHA-256"===o)&&2&SUPPORTED_ALGS)w=15+(e+65>>>9<<4),u=16;else{if("SHA-384"!==o&&"SHA-512"!==o||!(4&SUPPORTED_ALGS))throw new Error("Unexpected error in SHA-2 implementation");w=31+(e+129>>>10<<5),u=32}for(;r.length<=w;)r.push(0);for(r[e>>>5]|=128<<24-e%32,r[w]=e+n,i=r.length,h=0;h>>3)/4-1,di/8){for(;w.length<=l;)w.push(0);w[l]&=4294967040}for(a=0;a<=l;a+=1)v[a]=909522486^w[a],b[a]=1549556828^w[a];o=f(v,o),S=s,T=!0},this.update=function(r){var e,n,t,h,i,w=0,d=s>>>5;for(n=(e=a(r,p,E)).binLen,h=e.value,t=n>>>5,i=0;i>>5),E=n%s,P=!0},this.getHash=function(r,e){var n,t,u;if(!0===T)throw new Error("Cannot call getHash after setting HMAC key");switch(u=d(e),r){case"HEX":n=function(r){return h(r,u)};break;case"B64":n=function(r){return i(r,u)};break;case"BYTES":n=w;break;default:throw new Error("format must be HEX, B64, or BYTES")}if(!1===H)for(o=O(p,E,S,o),t=1;tKlRa{#njYjfMSw*B5;!Dw!ENDFod5Clm} zbS8k>jVDQt)qj)@? zMnCM_{ox1ma*yy(rzx?|4-EYE?uJSstLZ`!0`ezc_{mCG!^y^!3_}7o`#qi?i<4ZH!yO@l!`?)zG zHQvl-QT7n{Ov_?XFRbi#na@UJGj8=17IPVFVX;ZCS0GNpr~ z#(Z%OUz!spEtdAe#xOY(>sG|Nq3l=oOK)ljhzpi9c8z-cAguN7b`c%-vuyOmgnYLa zTYDeUI588emsu>kxr*}Rd`9bpW)dxp!%-etdyt;S*Q9jejm8&j$;N#|T3Q-n-Ek}l zwJ3=0^2o8+c->^hMIB7V?8|9N*1D?&FHFrgLlPCAh4*uEY9oBhr^tNMJ zd-EuN^5Xu(XVDikt%Pj3x0sEggE_WX=h@La#nB*fEpj8FUIv^o*U;8(gT$sr{9aLNaJ~@cFUyHwT}0^@-BHW zuVaBjxi~cO|JJ#t*qJcjvbt+`JKkmaAJFxXZFM4RS$r?9SBUGaw7YuxTl?!ltluk) zesjaJt))h*GF4s4{@c2;h?D%Z4)Z$qYkNjvd1LP~ORpayD<9&~z0qto{bDAI>69Vn zU>*qHyngyHy`H5B{9#7(i_t7HBg@jFdn1smEzHTb@H#zud%6){SuJIgI=~85*YML) zZy@l?tScrI_a7i&<^;&1B$;dk9K{0{UKg=gd%b=nv8=N+Vum`}{MJJhhL8d9gQSl$aoy-R{XU7~EK zOSETn*6`~MD+VZ>`3ya;yqM5Mc4O^bjHc7VDOR5VoxFMV>iG5P(c$m+pFcimzF|aVD3xxCuO`PCT7Q!T>9V|zZkh*@xAS`lT7R(Hy&Fj}q7 z>>8z(@+7=%>9n#mi{~##FVO?PYj2c^d=w}1Hph{yql-Ms>dg`2%g{`r6t{X~Qcm>i znm7n!G{e&Ow$;zi;^8WsAdq)VXLtFdv~Eg=!-msEw4XEZv*%H=FLxF_#6V-~{2R7L zxD^=2wUH<5MlKE0xC8d#=*=Y$po#-7kQPb04Ab7Ez|O`k_HK7vV`t+6d#+*cuVEk8 z*!`V)zcm%oZ-xsSu_@)v9AM$Q={Evqm!qk{o6#t{n3#9ppN)3^xWD_Gy&HtRf8QPU z{^#x%k3QY>S`kF(?Yl}EWdnm7vFj2`*F32cqH-bj_p)d<9bH7`-G7I7uNaCAK->w# zWw*O*jQZ_8{}ukLqQKksB)6ebpggpd0zAn2TE>)CAi$r%ttwx}YrdSU{*3>P&M(H% z<<%tq@Ns&bq_h9c=K12&^7EHJY+iChKj__U`C)vP7G>ApRXeGcSWRi=<*o(9MQDz~ zc^&Z6CTJFYYuW_-^lX8kF(;H9YS-UMyC|zx6+t_i89O9p1)8xmJj&@oTlxFJGhAUzz51nB4Bz?7kJQ(y<-%eCHI9-lT0907kcNc$1tPY@{4nsuT^&)zn! z2L4iSo44DJwQa+%T3GDg;j9F^kLq$m6$cbywL)J{^zaGSf@!tFV@aiDqwZ>jC0OS? zO{dW)>D&paQK4t8E%fcOq)kG3%C1LwUNpTKX;2o!PF1C}rOU0qy=r-X>w*oZY0R`} z6JgSyFXJ2q9oHAgn9iHiM}B9&9&+{INWXfHtMe=xee5H4MvG~_e+yBRfHo6=nl{ji z%%~P)Mw%J*Qr1nic~)&sq;(&e)GzlaWCb~fu%%EGQq93s6G!C@QfsZfQFGHf+=#jw zb+{!R((jQ|whS-h^0hFQi>A?KewvQLlY_Bcds=-eB5r%cd29C@j#5mSrm%HN|h-w?<7X z8l8>Nil$&ORr^^q?I)Uo5L4LK0Y@%CmepbMryluQ_Q?$`+1kV1E@q&q)0rYIN-F8+ z(<_AUMxGY1MFU%`H_egWH1nIACLC|{Sbm@+g>t$kdv|(tLejkd7nxNicav907G_X( zFazrriB+yuvsz=)ru?W(`RYbC7(}a#f?n)uM~dnCB;3cW!C-yToD#62k;M@gCztlb z!m{SD(o`Nt9E8cea%$dA#q!B2Z>AUfBwZ;287NN#sQk^nYHIW7t-02Iy}bU&t|Qi; zQgU;LH8kb?7SP6Yt2M&qZA-N`k4p<}(LP(>Pcv4bVfGyw+AO;TS_5{q@!l?bAHCNq z|HbC*ZuI{DvaUAcWTU>`0^Uv9F`m_KV^@>l4dds1_kB%~A*C{KAYa)>dPqoD2Ph0eO3 zx^AhakEVo%JlzKObOWxc;PMKto&lfM;c{8S<$euU@_!cY`379Cg6muFDL)-;>Z=X3 zHP`~{aq;Xw3iZtfR9<5ZO03-0CSPxW4QjNC*KpN83-_URQVLC?7H&7QdetbZH?OYE ztT9fNf zQ*ADK`;E!V)Bp?vz~WJo&yD$FHcPWS8h5PvT}U3DIkcn4ZAY+xOYYhVhhd)!&lW)t zfZ9kIaG?T^fuh^M;kzEXI_BAqEnLP`AZ<_iP5`7fhOQJoy#|DiUSK439iYE!L(ChokdE()0181Y8nNTL z5^hr@b=oyN=xhTuEiD_df>^u z>66mC9%=i5a9mH=^(rZp00kEwtm)!_)rbXVBhcVYPdKgE8N%Ly3q)K5typ4_0CSbg z9j_I`Bc5?C~1j>0eXpO}!*a{O?L+K7xY!4HfO<44lxA-g{w`1prj z!z|9m!*GmJa4*AX|Ja0J*BQR2AHV$JvigM)I5pVuK-l+=%wscQu>RC6`vf3zm;3O$ zkO8B0t^M&pYBT5BOy3QVd=3gmJyU5jFWZ?y+IE1+wqMQMww&X@FGy-%l#`$0>I2xY<-N^oe}6Y6=%!THUVLEb+&olI&y1*>B;? z#q~K(I){kl$KiAKd-#Pt3eVZo@C|zx-e)hvQ}zte{sEEyOZcMc8%+(ogDtwP+tM+HK0BL z)K7qV1gIx~`u3)L%bAqlm=j9M7(asEVJDQ7WBec~7x+Qt8R17!h9^{7uHf6N!EyhJ z67`C5)ciTT+WE--(7sgtTzskedB}d!g*{%1d)V;Tv#Vk8!tXZ|KC`U-Lh#spYGSZU z@lC(j?@=M(ZYAMVxaZ;T=9Impzn%JE7J*^0U+{dfDiRd|_l~}WKQoKyq1V(XNuzK9 zmB!HS&|I=P6^&TS$wL#N)t-bY6%X-zQZ_A0#X}@pQZ_3}#X}@pQZ^|{MOri|yA!42 zA%G=iSAr37xhMv7spxW44CvCM%V{yd<;^DR=yuH)X!M+;N2BieC{sZorH5{h8X^Ob z3+Z7P2u?-Gb6B8w;Cq~2xVvano*kf~3F$gm!IM5i#|I&BguqjZIxe>nM4&|A2h!$D z*&av$S{dU~DBq{m7!S~^J>T*1JXZokVJi>`PQ8{B{}2+C0*nhw`Ho8j1Z#nL;Xmnl z5_2Vx;z4XsQWBqeL; z6M!xR%D0Kc0R~5xhguH!h6h7o2nt9XhjYfkiomj946r@{UIK!kK*gZ0?E;EJOBEkS z0*Q9*c*L1tOkzr$NEkW^n28NkKAwZUIBY>Gz_2!17*jymKr%ge2HgY}238_*68nRW z2Dss41#nT3A+WD!2=sA65YcC5MrT%&@oWMK>CU+rrZED z(RCH`!4J`G!2bfQhUSCCIlN3>q3<#-VTaRTYflnS0e6HdFt#EeF+nH+8+1w(+t@H1 z1M5Ox1eJsX!8)Y_)RHhMkEoqjGExvREC$MfaD){>PB+UO!uV~?p{8;Y{daM2uG9#L~1o{pd}mt10vY9=^Sc;B-)g{ z`ZAojqOE)c9B^uKXo|o@Oe2CdF*H?(WH3GMX=2h8-ayLvO1CYkswi%qb(=$1swbS% zLlcv(@UT!63Yr|s3L9CBV&iCXLCQ*yB805XH93?;03r7|7_%lPuY&0!G+`r6Ubqzp z6_fx+Q%gvS0t7hDb2?5st$0d#RJoKUCT(4X?2x|hSW&QJn9T9uT1^ghQ9dM+4(Y7P zNnNQZ+t$=_D1vcNbCCPGuN+cWq1Qe>Nw^fC=P&_;oUQO^4$e^ed}!-A8O|zPUy3kVv>&91ww$O{y*-4WNDw*h_ zE--0YsZv{ju{A3oS2@}uXaX@5&((wC=XZ}QWZ8u5o+!QNN68W|G%26>uuYH zqJPB=ut0=WSF$bJsm&C|5U+13*1iSVphU7Q%#jL9jmPSC9zh5tnEu*;*U$x z)Zyj*;$bFG$N*;XB4{=UyeU-CV@G6S-jIf&28O2CpV3SCthS7>igibLK2|;Gm!}MP zuwUxg!0*tQ!jsZK-~qh`JZL@ALIe+#A^L&h84gU6*WK{&d5^IhbQbC(1V1dSCC^cmGK|fg!itLLfACVM*@h-XHxEC*cS%~I~&_wtqRe&U};etpM3AMjC=iJg0rXZ}5kf#LaRqQ>kDX~z8^Jv{tQ z%4PoLi_hrYiIEh#8zfRSA$Y^XE{HETr&(0pU6UL_WKl)DiTAxr+4C!IR9!<{cGM7a ziM);3gnKQ2Lka=>=7wI<5v8v!km?hHnWr2tSgx< zPZE42K>nmNRn6>FHT&_YYAHuPX9GvVa<8{o1f0)ksPfTP>7jga>7mr6hlWF0-Kk1Q z=Q)T1d7`O2K-517g>1d@2FecTB6(A&q7`FOmLgTK@68e^KXbXpyaAXTdmT+tf$Cfa#g+U{1m&|Jwdg9r>OM!ki zV3dwn!igoE+QMlIQd578YVH>;h;Z9#yX??2ZL)R}O*(b+**?LfQ%9E_>zGSM1?Yq} zPb_~|x6|eSb(`g}RekOyc`wZh`zXcy9L7Fo@-Js8^j((b>QkqOGUgLriktqGhk1QE zodkzam*>LWJ`SV5dl*(b2-V|#$F###%`q-|P3JYQB&?G(+$H~zv$_rQZEKhh|7RFp z0^%6@5|;5~+6?dJqO8qud9%AcmlcBy34hJAj4tb;Ufh?BLm29i4MP?ZA8*22iOdlx z53<%jN_=$h_#KiXEtKt!T32&zK~ zCzd2Kes-@K$hI=BAS)!P7C}W+Eyz%fMA^?5GF1%FwX>}}OX4Q|NN`SNU*=-|u`f$R zK}O6oRXDmUnf{V9_AxW&^YqoNAtS({x2R!8sw{<}P E02eG-n*aa+ literal 6241 zcmV-n7@p@JiwFqj?DARy0BUnjR8TH$X>KlRa{$#`d2`!D6#t(YzJuxkBh{N!ySn2j zowQ9UN1H-YuHZ6Cti+;@6l57wYV+Coz16j{9SGMSbUL>5cK7YO-`m4^aR2@HwENoA zWEyK1+4XsnCh3(XVLCUo*(BQiai*QW)gI+ZlxnB*Jbt4I)AVXPA-#ptO3dK=}RrSzM00?aau%0lBL>ZHb*x+e0uUU8IPwJ ze*eMy@4f$?emPGssEcmA`#H+BoW;X9yqHF_*}ID@ofY}~qR4VR4=t0$p=-QLF7;xP z%y#2nZj$_Mm^1k{jnk`Q62|J=fxlcTuluf1O!92eJIeDc-_w%x=V+RYA&qgYm0fzP zaeN^r@h^IAyvyTao~L@g&z)W8VbARC^?JtOc~nexb7BX5c8lz!$RS9byT%IR1je^x zwVNoP#h;{wo-^uj9?fD)6q%f$-+m`7+i|@fWYFuef zOuV|eiSx&xPB#n|55h`nm&Hvq)+a5O!e9=ABn*}f29jb)#K7JUmLeDpvKJIfGytF~$Ra5Y~+L`!I&XJdfV$fbY~`WB11_N%hni z8eEpbuSCxhwqWBS3@a-+@9K%Ap`!Ho0go+% zjk_|EFSYH+-j~x1;z=JUwhGyDw-leg2#Km6XD81N^&UQUc#rj-9evX?jNMsWJbQll z__O$}o>f4$*qz^u!Gk_FSnso=Z?)&IPENH)N7^SZv`62b()Z&pkDedBI6diwVW=13 zV)v@VqgQyl)(=9pH}PBTdOj<(^BCR$=P&5{BA1Rk>(y$Rl)TpFT}bVg8Z0X5?{F}e zggX9j?W>FX6XqL6zth_DF3W$QZUE=1{Z?_>he?egsi#s}Rc|-;IvPpTHYxPgisjoP zOA}PuFp~e%Ffvcl;=;fUmy% z>H^yr(@HT%kID4WyBquQWI9lBKFlCO>By6CQ_@)_ zX_m}hL@)G-ai_TvCW#$Z~{ZVuUk8d4{c*rD*PRA&*Qy4n zeL(WzMgjF)R1rreefAIP&+WGZx=R0#J2nXLk7!5vnutlSvtZR*oh;sXm zYinf!>lrlb0;uc4s23t~r`gR<`K*}# zy!hqquO=^xK|dHgXbZyRER$i^-*N9}ien{BhL^LJB+f%U3TL&!PaC6|4~=PK@YAz7 zj7Fc3bGSSH{j86$YE(89eF)BGK)C99!L+rcS;vGXYuOIrACj>fdn-dQNKW@B!?d#X zvy=!N;X_WE(xl*`*NUJNQ?IUu3v{*n+%X2X_o1|9G$~;>n-@3pLRQcZvu-WDm$mdK z9r{}rAU@{X`Ir+QmH`0e^8uG03hQXZJ$Y#EuV)@HyC4tD$~rmMrbGV`bX#onjVy z_c$ww-9vO)QN%%suv{Xqr>gmcsxhG*!_tb&hTY{7C|K`2%cgOZ_U?t0sF1Tdh;9!{ zN+%6+xQ>cKCcPWtpbUn+DoVAetEq3tTDEUP*wi$wnC7h`Oop>XQXrt?{Q@4-dv*HM z@9ou(+nP!y*qn?XQRHV{UpRmhl@azx z-Ge6$%Q*-pi(>+|B@~%dvoKY_($-40I_V9`t&`!RFfB9OBBa8&$#5m_$Z~P%@aR2h zv%>^-D&Z0p7yf~sby7K%G!LuTn;Cn;wEctZpv9P>ZtTd6w5(i=Wu2plHc+OF-;&A!H7iM~5z#}eI9uHBuXX>9v97&f~btq?9ZCDk?_mlE2- zecqjqnB>)-Oe(&J<;zOECF&h0bCDh+TT*7!wU)(Cc zg{rw{b?uUdGipP4D&&(z6?6F%7{d&rE2Yhop>$29i8CH2)Bsl28&C~4)U()oIg z*r2A?+WA^o%NQ$-QklIS+Do7$y#bRCUQB zzd0khn^+nhZh|sJc#B4O$sL8a0cp{#>AS0NHo3ciYtlDiSqGMERYY=UMQnmf{CD7H zp{VOotu8hx6(-kYwZf8rQ(-k|qUdnk=y35b>Tm;+Y>`94l7C;T6^9+zVymVX|FWhf z=nhPe73IIF)0ngXEWGPuFxp4%_j$j2Ok&{hhI^K9e47Urv$1v+mSuAfb%!e~-@KF-oi5d;BB8`}=Ja08E_L^nZ)?|8`S=x17{aB$EO*rw%6us9ExaB&et zh(OrP5k7jj7G`lkh!Y6mj99gYB4sQD)|qLuqHN)gOYm$RZuzqRS!qNNI;J-*7Yih8 zlhn4wT?eFsITK*sfQ4=O*uJnl0*eN0IgSmrxdgRZ93FT!K{cVa8?eo>S>pSS9}wJW zk+_hk3G@VZTPy-Xc7@L^fW471TIa{%Lg6O^6R;;g5SHT!v&NEv36$W%^F4^!X~6=$ zVQAb#Z>t4c*!4j_P{c*hf^8rP(ARai<+WgF#KV3AhwhZlE}`a*1xD?*GkAcNK;kf! zz!?46KESK=O`0uI)r{$AeRH4h$t@e+Y+i1OU0_G-id}{`>^O|rN%)u@g>S3f@0f&E z;ER*h#w3&pz957IUtoHS&6x4Nj}O|0nPZbA93vDw%<;5$tOKxPjb782Uw(1B`gS2m zBv^D8=EEcX7*|pt{i$B&36RJg?nCdw4jAFZX7j$S^qjRl(Jz4WS%KB`bd{c$ZBJ}> znE^VRe${guI?IAy;MBe-JAqe9&ly$S=w+EyiKp0GZi)^PQ+NVI^kCqV(`!Kw@>S4l zMi27UqSpyM$XAa^N}$zrp@KodT+7oq4@$C3}~9>JE0V zu#HCt{Mc1TK+CZS7si7WoYjM?)2;GY%f-3P6FRu1duBSAA5elRlnr+x>N)$SJ-z-x z&s%cW&KB8>U9w|##on+d>|^!=d&)jx-?A6%NA?-}j{V9$WnZwb*w?U0N)mb#!NQO> zXY0TvUyXiWtcUpH5W8P*unGEI_+oy2j+M?6Sn|i==j?~@EqfZCvrocT?A!2=y$Da) zXR!7kVfkN$&zro_#K3!)qTg>q$URBGJ>CBEtnw{L}@U?4rNHWKv zZ-QO{dSj6KB}n}Rq&@XAoT>KezPifIa7JYj4w`Zn37X2@MV!V zrsR}!d?E5g_;Sg^Qwl9t(CyX!@$iZq^@@B{|02A)|AzgloK$@wPpZBcu}@XtfS2F_ zCj9#BY9u%OzSE&I>{?5}$NDEa9(KsS=^OJsl>qKk5Ke)67XF}5*$cWm^`kBg!(d-w zyu=Deg~5GGXW^ge(t2o{I*h=_94w957|jbdqo9$rJ_#U9t6d3`D?Y(^dNA2*R6 z@>S4lLJ#uQqSpmI$XAe1_z9_V$oUUgu<`FVJT(2pD~ zka!TLg21*tWP8LAJ3w(^dw2{4r=a9nEO2??d+3kYXZnazL0}sh;?SO6+J$MWP*L3Z` z$5aj~24VWX00V;i7O(}#mX1Il-=rcAWN^zRVOXd)JO~PpC;_R);T&5}5Ryy6K-DK~ zP6dLCQVi^x4oI;Gl{_2?Y!8C;sAhsN!4?pK9%K?!CMKxzF%I(LkOi>-!I~stbV14H zq3W{0q63u>tyIL>m>=b6fCe8JP>VXA3$YM^94tCMYEuhknFV4^8*&TKg9j#9q;d}f z00bgg&@snEN$9({e&{*@%0$O;nUDGq*#`Ar0Bjaa0YpQ~q!l`safo(dl392*)hVbQ z!HR>i=mDt`l^~ltvXCJb96&7y0EUNB5g)#7foeRWMDeJ!^U8`8g&2^b?gKcB-AZWqXh@_7xVHgSy8*`KO zfL2emUcWyy>2Xg16Q|II=fOZ! z*%GTR*{#);Ie4Xb!pS`pF!2fv3ztkmfd_z_@L~iTOMwew)<#hTlQp>l2eU9B_&zQI zs7fWRqSA$FLPiQ)sx^Rbns7D+Zj%+jz&WN36gbt!uIo|cauqOf>$t81H}TZ&vO0#y zEH7}>{yxYw;bacnS%nk3woBgDVap;5#zM^!Zbw%ZvFjq-c!A|AU_mD0`vAj|6}Vgn zz|JtQrNV83!*@;CwxhtEk&L50MKE<*S8B^b)JEV{;2yDsl_6P!3MY0E3p^)4j91`b z7ec@q6lzy|ij<3`sqb2#Re^I-B1Kpm6Dx31u7iByz}Zwh#4Z+F9Fa(MSzCq!T9jgP z1@4edSpv}j1SxQr;I3z4?m+DiZhfqhP;?8GN}s5t6)!X<6nH@X>C!F%!k`i=O5MT} zk(w+8&I#^=FB6JU;KZ%PeIycyL4jL<(=s2LF;zUabRi4o7Ifxyq!?hGE>gS#Cw3i= zTnqV8fs=AMtO75&1u>=~1^6mQT11&Z6$;7+m}et8LLqP7e9uNH()zuR=!W?y55sjl@b5JI!7FK31i2DA z2ZdyyEeEtgV^S$4sQjQj*&xO03sh1i1;LmBxZ`a&M+Jrd6!e%)_pZ?Hwj*5#7-S&9 z2R=R7ZaWYelXl6tOO+TV4G6AWxCh$3Zyu@pHnOMJ|%QNqA=efS;vs{+cILde>tt3fa}Y zu)Pp`MTcEzKDgRkMK#0AOAZlMQAK=(i&6)n#(PG05Akrz9^x#-x{X#7*wOeHO9;qs zSYI#MQl(!uLh797{~$$nXsm!m?eGT|kJ>YdX6?JNn9aJ2*=*ZlcCoR*XLE3|b*Y+l zm#W#nzf@g>7AI6LdFI%8_@UW( zK+|AukYsDkx1!u4I^4#l?Mm95qz^$K7JbJdezsyWoqTH zm0p{J0wSr~$UBXq+bBAXR=3gWG}_%pyVK}&8=baM-7>FDsN(J4HK6~SV8}+gjc%vW z>o$6dNLS4**g7Im1TmOuwuhCSZHBCAh%Otp`KMzXcf&@jG4|#dstPa&eQr_z;hog~ zc#_TH&hE38%(OHsI!7tZbilpJ!Z-S%QT~>t{pr(YhHAqnWvL+%Xo9ZOO(F<|{PA2g z#b){Vtp>E1wI1RnF*&p7Frm;cUF0Jn+lgjtgu?FCZq9 zkyH_-n=m{b8jB_jFV3c;epuZg!-BuLXE{D-P~CYfb&e3IBkCB@M&i$B(I~{q5lbGd zT3;{l%FYRf#Szx`t}lEE9A@FA{xf1YN{ty67Urrngi=n85p;i!E6o5ENht%TI+Vbr zZMw*K!;Tt}(Wyi!GTNG_zSTw5f^Mjejm2QLAEwClM8>4bEZ9WEFDHnm#UR9wwoV4& z0##7mydX3NDx&nm8GG4KEPq@F18GR^9d%ewUq>X45n#ycuvAnO{SW|lpiJebe z%VwR+(P>9s_00zmGT*pqdQ0b|>b!Xcm5w$3#ue1{%cmp-E`6}vv_96MFLpxGE<%pq zEL@epS)i7TO&c?==z9ivvlM&5tI_rm%|2%sxTahJOM-i@xu56j2)4+u1T zK3y4my?I);kJ}$I#J^C2m_6LmMt{FxJ_Y{rd$;b|eGTjHr+e*FzAJxb8$MlCKf?SS L(xZY+YC!-1Jck}j diff --git a/js/jsOTP.js b/js/jsOTP.js index 4896746..6d93bb3 100644 --- a/js/jsOTP.js +++ b/js/jsOTP.js @@ -21,7 +21,7 @@ } base32tohex(base32) { - var base32chars, bits, chunk, hex, i, val; + var base32chars, bits, checklength, chunk, hex, i, val; base32chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"; bits = ""; hex = ""; @@ -31,8 +31,9 @@ bits += this.leftpad(val.toString(2), 5, "0"); i++; } + checklength = bits.length - bits.length % 8; i = 0; - while (i + 4 <= bits.length) { + while (i + 4 <= checklength) { chunk = bits.substr(i, 4); hex = hex + parseInt(chunk, 2).toString(16); i += 4;