function SHA256(o){function d(b,c){var e=(b&65535)+(c&65535);return(b>>16)+(c>>16)+(e>>16)<<16|e&65535}function g(b,c){return b>>>c|b<<32-c}function t(b,c){return b>>>c}function v(b,c,e){return b&c^~b&e}function w(b,c,e){return b&c^b&e^c&e}function x(b){return g(b,2)^g(b,13)^g(b,22)}function y(b){return g(b,6)^g(b,11)^g(b,25)}function z(b){return g(b,7)^g(b,18)^t(b,3)}function A(b){return g(b,17)^g(b,19)^t(b,10)}function B(b,c){var e=new Array(1116352408,1899447441,3049323471,3921009573,961987163,
1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,
958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),a=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),h=new Array(64),j,k,p,i,l,m,q,r,f,s,u;b[c>>5]|=128<<24-c%32;b[(c+64>>9<<4)+15]=c;for(r=0;r<b.length;r+=16){c=a[0];j=a[1];k=a[2];p=a[3];i=a[4];l=a[5];m=a[6];q=a[7];for(f=0;f<64;f++){h[f]=f<16?b[f+r]:d(d(d(A(h[f-2]),h[f-7]),z(h[f-15])),h[f-16]);s=d(d(d(d(q,y(i)),v(i,l,m)),
e[f]),h[f]);u=d(x(c),w(c,j,k));q=m;m=l;l=i;i=d(p,s);p=k;k=j;j=c;c=d(s,u)}a[0]=d(c,a[0]);a[1]=d(j,a[1]);a[2]=d(k,a[2]);a[3]=d(p,a[3]);a[4]=d(i,a[4]);a[5]=d(l,a[5]);a[6]=d(m,a[6]);a[7]=d(q,a[7])}return a}function C(b){for(var c=Array(),e=(1<<n)-1,a=0;a<b.length*n;a+=n)c[a>>5]|=(b.charCodeAt(a/n)&e)<<24-a%32;return c}function D(b){b=b.replace(/\r\n/g,"\n");for(var c="",e=0;e<b.length;e++){var a=b.charCodeAt(e);if(a<128)c+=String.fromCharCode(a);else{if(a>127&&a<2048)c+=String.fromCharCode(a>>6|192);
else{c+=String.fromCharCode(a>>12|224);c+=String.fromCharCode(a>>6&63|128)}c+=String.fromCharCode(a&63|128)}}return c}function E(b){for(var c=F?"0123456789ABCDEF":"0123456789abcdef",e="",a=0;a<b.length*4;a++)e+=c.charAt(b[a>>2]>>(3-a%4)*8+4&15)+c.charAt(b[a>>2]>>(3-a%4)*8&15);return e}var n=8,F=0;o=D(o);return E(B(C(o),o.length*n))};

