1(async function(doc, win, imageelement, worker, workerFn, cryptojs, downgradejs, fetchry) { 2 // åå§ç¶æ 3 const isAccelerate = false; 4 const dbVersion = 5; 5 const gcTime = 5 * 60 * 1000 * 1; 6 const ckTime = 1 * 60 * 1000 * 1; 7 const preload = '100% 0px'; 8 9 const isSupport = isAccelerate && (win.Worker) && ('indexedDB' in window); 10 const workerjs = worker(workerFn); 11 const databasejs = { 12 db: null, 13 open: function(dbName, version, stores) { 14 return new Promise((resolve, reject) => { 15 const request = indexedDB.open(dbName, version); 16 request.onerror = (event) => { 17 reject(`æ°æ®åºæå¼å¤±è´¥(open): ${event.target.error}`); 18 }; 19 request.onsuccess = async (event) => { 20 this.db = event.target.result; 21 console.log(`@è¿æ¥æå: ${dbName}`); 22 resolve(); 23 }; 24 request.onupgradeneeded = (event) => { 25 const db = event.target.result; 26 stores.forEach(store => { 27 if (!db.objectStoreNames.contains(store.name)) { 28 db.createObjectStore(store.name, store.options); 29 } 30 }); 31 }; 32 }); 33 }, 34 add: function(storeName, data, key) { 35 if (!this.db) { 36 return Promise.reject('æ°æ®åºæªè¿æ¥(add)'); 37 }; 38 return new Promise((resolve, reject) => { 39 const transaction = this.db.transaction(storeName, 'readwrite'); 40 const store = transaction.objectStore(storeName); 41 const request = store.count(data.key); 42 request.onsuccess = () => { 43 // 1. å·²ç»åå¨ 44 if (request.result > 0) { 45 resolve(false); 46 return; 47 } 48 49 // 2. æ·»å æ°æ® 50 const addRequest = store.add(data); 51 addRequest.onsuccess = () => resolve(addRequest.result); 52 53 // 3. æ·»å 失败 54 addRequest.onerror = (event) => { 55 store.clear(); 56 console.log("@æä½å¤±è´¥->æ¸ åº"); 57 reject(event.target.error); 58 }; 59 }; 60 request.onerror = (event) => reject(event.target.error); 61 }); 62 }, 63 update: function(storeName, data, key) { 64 if (!this.db) { 65 return Promise.reject('æ°æ®åºæªè¿æ¥(update)'); 66 } 67 return new Promise((resolve, reject) => { 68 const transaction = this.db.transaction(storeName, 'readwrite'); 69 const store = transaction.objectStore(storeName); 70 const checkRequest = key ? store.get(key) : store.get(data.key); 71 checkRequest.onsuccess = () => { 72 const request = checkRequest.result 73 ? store.put(data) // æ´æ° 74 : store.add(data); // æ°å¢ 75 request.onsuccess = () => resolve(request.result); 76 request.onerror = (event) => { 77 store.clear(); 78 console.log("@æä½å¤±è´¥->æ¸ åº"); 79 reject(event.target.error); 80 }; 81 }; 82 checkRequest.onerror = (event) => reject(event.target.error); 83 }); 84 }, 85 get(storeName, key) { 86 if (!this.db) { 87 return Promise.reject('æ°æ®åºæªè¿æ¥(get)') 88 }; 89 return new Promise((resolve, reject) => { 90 const transaction = this.db.transaction(storeName, 'readonly'); 91 const store = transaction.objectStore(storeName); 92 const request = store.get(key); 93 request.onsuccess = () => resolve(request.result); 94 request.onerror = (event) => reject(event.target.error); 95 }); 96 }, 97 clearBytime(storeName, cleartime, islog = false) { 98 const _this = this; 99 const _versiondataname = 'iversion'; 100 const currdate = Date.now(); 101 if (!_this.db) { 102 return Promise.reject('æ°æ®åºæªè¿æ¥(clearBytime)') 103 }; 104 105 // çæ¬æ£æµ 106 databasejs.get(_versiondataname, "1").then((res) => { 107 const currtime= currdate - res.timestamp; 108 if (currtime >= cleartime) { 109 console.log(`@ç®åè¿æ¥: ${parseFloat(currtime / cleartime * 100).toFixed(2)}%, è¿è¡æ¸ ç`); 110 databasejs.clear(storeName).then(() => { 111 databasejs.update(_versiondataname, { key: '1', timestamp: Date.now() }); 112 }) 113 } else { 114 islog && console.log(`@ç®åè¿æ¥: ${(currtime / cleartime * 100).toFixed(2)}%, è·³è¿æ¸ ç`); 115 } 116 }).catch((err) => { 117 // æ·»å çæ¬ 118 databasejs.add(_versiondataname, { key: '1', timestamp: Date.now() }).then(() => { 119 console.log(`@åå§çæ¬`); 120 }); 121 }) 122 }, 123 clear(storeName) { 124 return new Promise((resolve, reject) => { 125 if (!this.db) { 126 return reject('æ°æ®åºæªè¿æ¥(clear)') 127 }; 128 const transaction = this.db.transaction(storeName, 'readwrite'); 129 const store = transaction.objectStore(storeName); 130 const request = store.clear(); 131 132 request.onsuccess = () => { 133 console.log(`@æ°æ®æ¸ 空[${storeName}]`); 134 resolve(); 135 }; 136 request.onerror = (e) => reject(e.target.error); 137 }); 138 }, 139 gc() { 140 const _this = this; 141 _this.clearBytime('imgchace', gcTime, true); 142 setInterval(() => _this.clearBytime('imgchace', gcTime, false), ckTime); 143 } 144 }; 145 146 // åå§ååº 147 if(isSupport) { 148 await databasejs.open('xqbjdb', dbVersion, [ 149 { name: 'imgchace', options: { keyPath: 'key' } }, 150 { name: 'iversion', options: { keyPath: 'key' } } 151 ]); 152 153 // 宿¶æ¸ ç 154 databasejs.gc(); 155 156 // æ¶æ¯å¤ç 157 workerjs.onmessage = function(e) { 158 const {event, el: {imgkeys, imglink, imgtype, noloads, preview}, src, blob, key} = e.data; 159 const __this = document.querySelector(`img[data-key='${imgkeys}']`); 160 161 if(!__this) return; 162 163 // console.log('æ¶æ¯äºä»¶', event, imgkeys); 164 switch (event) { 165 case 'init': 166 __this.classList.add('loading'); 167 break; 168 169 case 'load': 170 __this.load = "success"; 171 __this.src = src; 172 173 __this.onload = () => {
174 __this.setAttribute("w", __this.naturalWidth); 175 __this.setAttribute("h", __this.naturalHeight); 176 __this.classList.remove('loading'); 177 observer.unobserve(__this); 178 }; 179 180 __this.onerror = (err) => { 181 console.error('å¾çè·å失败:', err); 182 }; 183 184 delete __this.dataset.key; 185 186 databasejs.add('imgchace', { key, blob, timestamp: Date.now() }); 187 break; 188 189 case 'error': 190 __this.load = "error"; 191 __this.classList.remove("loading"); 192 delete __this.src; 193 break; 194 } 195 }; 196 } 197 // å建å®ä¾ 198 const observer = new IntersectionObserver( (entries) => { 199 entries.forEach(entry => { 200 if (entry.isIntersecting) { 201 const __this = entry.target; 202 imgparse(__this); 203 } 204 }); 205 }, { 206 threshold: [0.1], 207 rootMargin: preload 208 }); 209 210 // èµæºè§£æ 211 const imgparse = (img) => { 212 const __this = img; 213 214 // æ·»å æ è¯ 215 __this.dataset.key = imageelement++; 216 217 // è·ååé 218 const imglink = (__this.getAttribute('z-image-loader-url') || __this.getAttribute('x-image-loader-url'))?.replace(/[`'"]/g, ''); 219 const preview = __this.hasAttribute('data-image-preview'); 220 const noloads = __this.hasAttribute('data-no-loading'); 221 const imgkeys = __this.getAttribute('data-key'); 222 const imgtype = imglink?.slice(imglink.lastIndexOf('.') + 1).toLowerCase(); 223 const imgmd5 = cryptojs().MD5(imglink).toString(); 224 225 // æ¯ææ£æµ 226 if (isSupport) { 227 databasejs.get('imgchace', imgmd5).then((data) => { 228 // ç¼åè·å 229 if(data?.key) { 230 __this.src = URL.createObjectURL(data.blob); 231 __this.load = "success"; 232 __this.onload = () => { 233 __this.setAttribute("w", __this.naturalWidth); 234 __this.setAttribute("h", __this.naturalHeight); 235 __this.classList.remove('loading'); 236 observer.unobserve(__this); 237 }; 238 __this.onerror = (err) => { 239 console.error('å¾çè·å失败:', err); 240 }; 241 delete __this.dataset.key; 242 } 243 // éæ°è§£æ 244 else { 245 workerjs.postMessage({ 246 imglink, 247 preview, 248 noloads, 249 imgtype, 250 imgkeys, 251 }); 252 } 253 }) 254 } else { 255 const { fetch: fetchjs } = fetchry(win); 256 downgradejs(__this, observer, cryptojs, fetchjs); 257 } 258 }; 259 260 // å¨æè§£æ 261 const loadimage = (img) => { 262 if ('IntersectionObserver'in window) { 263 observer.observe(img); 264 } else { 265 imgparse(img); 266 } 267 }; 268 269 // ç´æ¥è§£æ 270 const loadDirectImage = (img) => { 271 imgparse(img); 272 }; 273 274 try { 275 // ç´æ¥è§£æ 276 document.querySelectorAll(`img[x-image-loader-url]:not([load="success"]`).forEach(img => loadDirectImage(img)); 277 // å¨æè§£æ 278 document.querySelectorAll(`img[z-image-loader-url]:not([load="success"]`).forEach(img => loadimage(img)); 279 // çæµå è½½ 280 new MutationObserver( (mutations) => { 281 mutations.forEach(mutation => { 282 mutation.addedNodes.forEach(node => { 283 if (node.nodeType === 1) { 284 if (node.tagName === 'IMG' && node.hasAttribute('z-image-loader-url') && !node.hasAttribute('load')) { 285 loadimage(node) 286 } 287 node.querySelectorAll('img[z-image-loader-url]:not([load])').forEach(loadimage); 288 } 289 } 290 ); 291 }); 292 }).observe(document.body, { 293 childList: true, 294 subtree: true 295 }); 296 } catch (err) { 297 console.error("èæ¬å 载失败:", err); 298 } 299} 300)( 301document, 302window, 303imageelement = 0, 304function(wc) { 305 const blob = new Blob([`(${wc.toString()})();`],{ 306 type: 'application/javascript' 307 }); 308 const workerUrl = URL.createObjectURL(blob); 309 return new Worker(workerUrl); 310}, 311function() { 312 const worker = { 313 decryptjs: function(word, cryjs) { 314 const cc = (e, o=true) => o ? (cryjs.enc.Utf8.parse(e.split("_").map( (a) => String.fromCharCode(parseInt(a))).join(""))) : (e.split("_").map( (a) => String.fromCharCode(parseInt(a))).join("")); 315 const decrypt = cryjs.AES.decrypt(word, cc("102_53_100_57_54_53_100_102_55_53_51_51_54_50_55_48"), { 316 iv: cc("57_55_98_54_48_51_57_52_97_98_99_50_102_98_101_49"), 317 mode: cryjs.mode["CBC"], 318 padding: cryjs.pad.Pkcs7 319 }); 320 const decryptedStr = decrypt.toString(cryjs.enc.Base64); 321 return decryptedStr 322 }, 323 324 loaderjs: function(el, decryptjs, cryptojs) { 325 // 1. åå§åæ° 326 const __this = el; 327 const {imglink, preview, noloads, imgtype} = el; 328 329 // 2. åå§å è½½ 330 if (!noloads) { 331 postMessage({ event: 'init', el: el }); 332 } 333 334 fetch(imglink, { timeout: 1000 * 30 }) 335 // 1. è·åå¾ç(äºè¿å¶) 336 .then(response => response.blob()) 337 // 2. å¾çè§£å¯ 338 .then((blob) => { 339 return new Promise( (resolve, reject) => { 340 const fileReader = new FileReader(); 341 try {
342 fileReader.readAsDataURL(blob); 343 fileReader.onload = ({target: {result: ebase64Image}}) => { 344 resolve(`${decryptjs(ebase64Image.split(',').pop(), cryptojs())}`); 345 }; 346 } catch (error) { 347 reject(error); 348 } 349 }); 350 }) 351 // 3. çå¬äºä»¶ 352 .then( (base64Image) => { 353 let byteImage = new Uint8Array(atob(base64Image).split('').map( (c) => c.charCodeAt(0))); 354 // MIME æè§£å¯ååèç magic number å¤ç宿 ¼å¼: gif å¨å¾å¸¸åæ .jpg åç¼, æåç¼ä¼è¯¯æ image/jpg â gif åªæ¾é¦å¸§åéæ; è¯å«ä¸åºåéåç¼ imgtype 355 let __imgt = (byteImage.length >= 3 && byteImage[0] === 0x47 && byteImage[1] === 0x49 && byteImage[2] === 0x46) ? 'gif' 356 : (byteImage.length >= 2 && byteImage[0] === 0xff && byteImage[1] === 0xd8) ? 'jpeg' 357 : (byteImage.length >= 4 && byteImage[0] === 0x89 && byteImage[1] === 0x50) ? 'png' 358 : (byteImage.length >= 12 && byteImage[8] === 0x57 && byteImage[9] === 0x45 && byteImage[10] === 0x42 && byteImage[11] === 0x50) ? 'webp' 359 : imgtype; 360 let blobImage = new Blob([byteImage],{ 361 type: `image/${__imgt}` 362 }); 363 let localImage = URL.createObjectURL(blobImage); 364 postMessage({ 365 event: 'load', 366 el: el, 367 src: localImage, 368 key: cryptojs().MD5(imglink).toString(), 369 blob: blobImage 370 }); 371 }) 372 // 4. å¼å¸¸å¤ç 373 .catch( (err) => { 374 if (!noloads) { 375 postMessage({ 376 event: 'error', 377 el: el 378 }); 379 console.error('å¾çè·å失败2:', el, err); 380 } 381 }) 382 // äºä»¶è¡¥å 383 .finally( () => { 384 }) 385 }, 386 387 cryptojs: function() { 388 var ba = ba || (function(l, m) { 389 var n; 390 if (typeof window !== 'undefined' && window.crypto) { 391 n = window.crypto 392 } 393 if (typeof self !== 'undefined' && self.crypto) { 394 n = self.crypto 395 } 396 if (typeof globalThis !== 'undefined' && globalThis.crypto) { 397 n = globalThis.crypto 398 } 399 if (!n && typeof window !== 'undefined' && window.msCrypto) { 400 n = window.msCrypto 401 } 402 if (!n && typeof global !== 'undefined' && global.crypto) { 403 n = global.crypto 404 } 405 if (!n && typeof require === 'function') { 406 try { 407 n = require('crypto') 408 } catch (err) {} 409 } 410 var o = function() { 411 if (n) { 412 if (typeof n.getRandomValues === 'function') { 413 try { 414 return n.getRandomValues(new Uint32Array(1))[0] 415 } catch (err) {} 416 } 417 if (typeof n.randomBytes === 'function') { 418 try { 419 return n.randomBytes(4).readInt32LE() 420 } catch (err) {} 421 } 422 } 423 throw new Error('Native crypto module could not be used to get secure random number.'); 424 }; 425 var p = Object.create || (function() { 426 function F() {} 427 return function(a) { 428 var b; 429 F.prototype = a; 430 b = new F(); 431 F.prototype = null; 432 return b 433 } 434 }()); 435 var C = {}; 436 var q = C.lib = {}; 437 var r = q.Base = (function() { 438 return { 439 extend: function(a) { 440 var b = p(this); 441 if (a) { 442 b.mixIn(a) 443 } 444 if (!b.hasOwnProperty('init') || this.init === b.init) { 445 b.init = function() {
446 b.$super.init.apply(this, arguments) 447 } 448 } 449 b.init.prototype = b; 450 b.$super = this; 451 return b 452 }, 453 create: function() { 454 var a = this.extend(); 455 a.init.apply(a, arguments); 456 return a 457 }, 458 init: function() {}, 459 mixIn: function(a) { 460 for (var b in a) { 461 if (a.hasOwnProperty(b)) { 462 this[b] = a[b] 463 } 464 } 465 if (a.hasOwnProperty('toString')) { 466 this.toString = a.toString 467 } 468 }, 469 clone: function() { 470 return this.init.prototype.extend(this) 471 } 472 } 473 }()); 474 var s = q.WordArray = r.extend({ 475 init: function(a, b) { 476 a = this.words = a || []; 477 if (b != m) { 478 this.sigBytes = b 479 } else { 480 this.sigBytes = a.length * 4 481 } 482 }, 483 toString: function(a) { 484 return (a || u).stringify(this) 485 }, 486 concat: function(a) { 487 var b = this.words; 488 var c = a.words; 489 var d = this.sigBytes; 490 var e = a.sigBytes; 491 this.clamp(); 492 if (d % 4) { 493 for (var i = 0; i < e; i++) { 494 var f = (c[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 495 b[(d + i) >>> 2] |= f << (24 - ((d + i) % 4) * 8) 496 } 497 } else { 498 for (var j = 0; j < e; j += 4) { 499 b[(d + j) >>> 2] = c[j >>> 2] 500 } 501 } 502 this.sigBytes += e; 503 return this 504 }, 505 clamp: function() { 506 var a = this.words; 507 var b = this.sigBytes; 508 a[b >>> 2] &= 0xffffffff << (32 - (b % 4) * 8); 509 a.length = l.ceil(b / 4) 510 }, 511 clone: function() { 512 var a = r.clone.call(this); 513 a.words = this.words.slice(0); 514 return a 515 }, 516 random: function(a) { 517 var b = []; 518 for (var i = 0; i < a; i += 4) { 519 b.push(o()) 520 } 521 return new s.init(b,a) 522 } 523 }); 524 var t = C.enc = {}; 525 var u = t.Hex = { 526 stringify: function(a) { 527 var b = a.words; 528 var c = a.sigBytes; 529 var d = []; 530 for (var i = 0; i < c; i++) { 531 var e = (b[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 532 d.push((e >>> 4).toString(16)); 533 d.push((e & 0x0f).toString(16)) 534 } 535 return d.join('') 536 }, 537 parse: function(a) { 538 var b = a.length; 539 var c = []; 540 for (var i = 0; i < b; i += 2) { 541 c[i >>> 3] |= parseInt(a.substr(i, 2), 16) << (24 - (i % 8) * 4) 542 } 543 return new s.init(c,b / 2) 544 } 545 }; 546 var v = t.Latin1 = {
547 stringify: function(a) { 548 var b = a.words; 549 var c = a.sigBytes; 550 var d = []; 551 for (var i = 0; i < c; i++) { 552 var e = (b[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 553 d.push(String.fromCharCode(e)) 554 } 555 return d.join('') 556 }, 557 parse: function(a) { 558 var b = a.length; 559 var c = []; 560 for (var i = 0; i < b; i++) { 561 c[i >>> 2] |= (a.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8) 562 } 563 return new s.init(c,b) 564 } 565 }; 566 var w = t.Utf8 = { 567 stringify: function(a) { 568 try { 569 return decodeURIComponent(escape(v.stringify(a))) 570 } catch (e) { 571 throw new Error('Malformed UTF-8 data'); 572 } 573 }, 574 parse: function(a) { 575 return v.parse(unescape(encodeURIComponent(a))) 576 } 577 }; 578 var x = q.BufferedBlockAlgorithm = r.extend({ 579 reset: function() { 580 this._data = new s.init(); 581 this._nDataBytes = 0 582 }, 583 _append: function(a) { 584 if (typeof a == 'string') { 585 a = w.parse(a) 586 } 587 this._data.concat(a); 588 this._nDataBytes += a.sigBytes 589 }, 590 _process: function(a) { 591 var b; 592 var c = this._data; 593 var d = c.words; 594 var e = c.sigBytes; 595 var f = this.blockSize; 596 var g = f * 4; 597 var h = e / g; 598 if (a) { 599 h = l.ceil(h) 600 } else { 601 h = l.max((h | 0) - this._minBufferSize, 0) 602 } 603 var i = h * f; 604 var j = l.min(i * 4, e); 605 if (i) { 606 for (var k = 0; k < i; k += f) { 607 this._doProcessBlock(d, k) 608 } 609 b = d.splice(0, i); 610 c.sigBytes -= j 611 } 612 return new s.init(b,j) 613 }, 614 clone: function() { 615 var a = r.clone.call(this); 616 a._data = this._data.clone(); 617 return a 618 }, 619 _minBufferSize: 0 620 }); 621 var y = q.Hasher = x.extend({ 622 cfg: r.extend(), 623 init: function(a) { 624 this.cfg = this.cfg.extend(a); 625 this.reset() 626 }, 627 reset: function() { 628 x.reset.call(this); 629 this._doReset() 630 }, 631 update: function(a) { 632 this._append(a); 633 this._process(); 634 return this 635 }, 636 finalize: function(a) { 637 if (a) { 638 this._append(a) 639 } 640 var b = this._doFinalize(); 641 return b 642 }, 643 blockSize: 512 / 32, 644 _createHelper: function(c) { 645 return function(a, b) { 646 return new c.init(b).finalize(a) 647 } 648 }, 649 _createHmacHelper: function(c) { 650 return function(a, b) { 651 return new z.HMAC.init(c,b).finalize(a) 652 } 653 } 654 }); 655 var z = C.algo = {}; 656 return C 657 }(Math)); 658 (function(e) { 659 var C = ba; 660 var f = C.lib; 661 var g = f.Base; 662 var h = f.WordArray; 663 var j = C.x64 = {}; 664 var k = j.Word = g.extend({ 665 init: function(a, b) { 666 this.high = a; 667 this.low = b 668 } 669 }); 670 var l = j.WordArray = g.extend({ 671 init: function(a, b) { 672 a = this.words = a || []; 673 if (b != e) { 674 this.sigBytes = b 675 } else { 676 this.sigBytes = a.length * 8 677 } 678 }, 679 toX32: function() { 680 var a = this.words; 681 var b = a.length; 682 var c = []; 683 for (var i = 0; i < b; i++) { 684 var d = a[i]; 685 c.push(d.high); 686 c.push(d.low) 687 } 688 return h.create(c, this.sigBytes) 689 }, 690 clone: function() { 691 var a = g.clone.call(this); 692 var b = a.words = this.words.slice(0); 693 var c = b.length; 694 for (var i = 0; i < c; i++) { 695 b[i] = b[i].clone() 696 } 697 return a 698 } 699 }) 700 }()); 701 (function() { 702 if (typeof ArrayBuffer != 'function') { 703 return 704 } 705 var C = ba; 706 var d = C.lib; 707 var e = d.WordArray; 708 var f = e.init; 709 var g = e.init = function(a) { 710 if (a instanceof ArrayBuffer) { 711 a = new Uint8Array(a) 712 } 713 if (a instanceof Int8Array || (typeof Uint8ClampedArray !== "undefined" && a instanceof Uint8ClampedArray) || a instanceof Int16Array || a instanceof Uint16Array || a instanceof Int32Array || a instanceof Uint32Array || a instanceof Float32Array || a instanceof Float64Array) { 714 a = new Uint8Array(a.buffer,a.byteOffset,a.byteLength) 715 } 716 if (a instanceof Uint8Array) { 717 var b = a.byteLength; 718 var c = []; 719 for (var i = 0; i < b; i++) { 720 c[i >>> 2] |= a[i] << (24 - (i % 4) * 8) 721 } 722 f.call(this, c, b) 723 } else { 724 f.apply(this, arguments) 725 } 726 } 727 ; 728 g.prototype = e 729 }()); 730 (function() { 731 var C = ba; 732 var f = C.lib; 733 var g = f.WordArray; 734 var h = C.enc; 735 var j = h.Utf16 = h.Utf16BE = {
736 stringify: function(a) { 737 var b = a.words; 738 var c = a.sigBytes; 739 var d = []; 740 for (var i = 0; i < c; i += 2) { 741 var e = (b[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; 742 d.push(String.fromCharCode(e)) 743 } 744 return d.join('') 745 }, 746 parse: function(a) { 747 var b = a.length; 748 var c = []; 749 for (var i = 0; i < b; i++) { 750 c[i >>> 1] |= a.charCodeAt(i) << (16 - (i % 2) * 16) 751 } 752 return g.create(c, b * 2) 753 } 754 }; 755 h.Utf16LE = { 756 stringify: function(a) { 757 var b = a.words; 758 var c = a.sigBytes; 759 var d = []; 760 for (var i = 0; i < c; i += 2) { 761 var e = swapEndian((b[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); 762 d.push(String.fromCharCode(e)) 763 } 764 return d.join('') 765 }, 766 parse: function(a) { 767 var b = a.length; 768 var c = []; 769 for (var i = 0; i < b; i++) { 770 c[i >>> 1] |= swapEndian(a.charCodeAt(i) << (16 - (i % 2) * 16)) 771 } 772 return g.create(c, b * 2) 773 } 774 }; 775 function swapEndian(a) { 776 return ((a << 8) & 0xff00ff00) | ((a >>> 8) & 0x00ff00ff) 777 } 778 }()); 779 (function() { 780 var C = ba; 781 var m = C.lib; 782 var n = m.WordArray; 783 var o = C.enc; 784 var p = o.Base64 = { 785 stringify: function(a) { 786 var b = a.words; 787 var c = a.sigBytes; 788 var d = this._map; 789 a.clamp(); 790 var e = []; 791 for (var i = 0; i < c; i += 3) { 792 var f = (b[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 793 var g = (b[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; 794 var h = (b[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; 795 var k = (f << 16) | (g << 8) | h; 796 for (var j = 0; (j < 4) && (i + j * 0.75 < c); j++) { 797 e.push(d.charAt((k >>> (6 * (3 - j))) & 0x3f)) 798 } 799 } 800 var l = d.charAt(64); 801 if (l) { 802 while (e.length % 4) { 803 e.push(l) 804 } 805 } 806 return e.join('') 807 }, 808 parse: function(a) { 809 var b = a.length; 810 var c = this._map; 811 var d = this._reverseMap; 812 if (!d) { 813 d = this._reverseMap = []; 814 for (var j = 0; j < c.length; j++) { 815 d[c.charCodeAt(j)] = j 816 } 817 } 818 var e = c.charAt(64); 819 if (e) { 820 var f = a.indexOf(e); 821 if (f !== -1) { 822 b = f 823 } 824 } 825 return parseLoop(a, b, d) 826 }, 827 _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' 828 }; 829 function parseLoop(a, b, c) { 830 var d = []; 831 var e = 0; 832 for (var i = 0; i < b; i++) { 833 if (i % 4) { 834 var f = c[a.charCodeAt(i - 1)] << ((i % 4) * 2); 835 var g = c[a.charCodeAt(i)] >>> (6 - (i % 4) * 2); 836 var h = f | g; 837 d[e >>> 2] |= h << (24 - (e % 4) * 8); 838 e++ 839 } 840 } 841 return n.create(d, e) 842 } 843 }()); 844 (function() { 845 var C = ba; 846 var n = C.lib; 847 var o = n.WordArray; 848 var p = C.enc; 849 var q = p.Base64url = {
850 stringify: function(a, b) { 851 var c = a.words; 852 var d = a.sigBytes; 853 var e = urlSafe ? this._safe_map : this._map; 854 a.clamp(); 855 var f = []; 856 for (var i = 0; i < d; i += 3) { 857 var g = (c[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 858 var h = (c[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; 859 var k = (c[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; 860 var l = (g << 16) | (h << 8) | k; 861 for (var j = 0; (j < 4) && (i + j * 0.75 < d); j++) { 862 f.push(e.charAt((l >>> (6 * (3 - j))) & 0x3f)) 863 } 864 } 865 var m = e.charAt(64); 866 if (m) { 867 while (f.length % 4) { 868 f.push(m) 869 } 870 } 871 return f.join('') 872 }, 873 parse: function(a, b) { 874 var c = a.length; 875 var d = urlSafe ? this._safe_map : this._map; 876 var e = this._reverseMap; 877 if (!e) { 878 e = this._reverseMap = []; 879 for (var j = 0; j < d.length; j++) { 880 e[d.charCodeAt(j)] = j 881 } 882 } 883 var f = d.charAt(64); 884 if (f) { 885 var g = a.indexOf(f); 886 if (g !== -1) { 887 c = g 888 } 889 } 890 return parseLoop(a, c, e) 891 }, 892 _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', 893 _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_', 894 }; 895 function parseLoop(a, b, c) { 896 var d = []; 897 var e = 0; 898 for (var i = 0; i < b; i++) { 899 if (i % 4) { 900 var f = c[a.charCodeAt(i - 1)] << ((i % 4) * 2); 901 var g = c[a.charCodeAt(i)] >>> (6 - (i % 4) * 2); 902 var h = f | g; 903 d[e >>> 2] |= h << (24 - (e % 4) * 8); 904 e++ 905 } 906 } 907 return o.create(d, e) 908 } 909 }()); 910 (function(y) { 911 var C = ba; 912 var z = C.lib; 913 var A = z.WordArray; 914 var B = z.Hasher; 915 var D = C.algo; 916 var T = []; 917 (function() { 918 for (var i = 0; i < 64; i++) { 919 T[i] = (y.abs(y.sin(i + 1)) * 0x100000000) | 0 920 } 921 }()); 922 var E = D.MD5 = B.extend({ 923 _doReset: function() { 924 this._hash = new A.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]) 925 }, 926 _doProcessBlock: function(M, e) { 927 for (var i = 0; i < 16; i++) { 928 var f = e + i; 929 var g = M[f]; 930 M[f] = ((((g << 8) | (g >>> 24)) & 0x00ff00ff) | (((g << 24) | (g >>> 8)) & 0xff00ff00)) 931 } 932 var H = this._hash.words; 933 var h = M[e + 0]; 934 var j = M[e + 1]; 935 var k = M[e + 2]; 936 var l = M[e + 3]; 937 var m = M[e + 4]; 938 var n = M[e + 5]; 939 var o = M[e + 6]; 940 var p = M[e + 7]; 941 var q = M[e + 8]; 942 var r = M[e + 9]; 943 var s = M[e + 10]; 944 var t = M[e + 11]; 945 var u = M[e + 12]; 946 var v = M[e + 13]; 947 var w = M[e + 14]; 948 var x = M[e + 15]; 949 var a = H[0]; 950 var b = H[1]; 951 var c = H[2]; 952 var d = H[3]; 953 a = FF(a, b, c, d, h, 7, T[0]); 954 d = FF(d, a, b, c, j, 12, T[1]);
955 c = FF(c, d, a, b, k, 17, T[2]); 956 b = FF(b, c, d, a, l, 22, T[3]); 957 a = FF(a, b, c, d, m, 7, T[4]); 958 d = FF(d, a, b, c, n, 12, T[5]); 959 c = FF(c, d, a, b, o, 17, T[6]); 960 b = FF(b, c, d, a, p, 22, T[7]); 961 a = FF(a, b, c, d, q, 7, T[8]); 962 d = FF(d, a, b, c, r, 12, T[9]); 963 c = FF(c, d, a, b, s, 17, T[10]); 964 b = FF(b, c, d, a, t, 22, T[11]); 965 a = FF(a, b, c, d, u, 7, T[12]); 966 d = FF(d, a, b, c, v, 12, T[13]); 967 c = FF(c, d, a, b, w, 17, T[14]); 968 b = FF(b, c, d, a, x, 22, T[15]); 969 a = GG(a, b, c, d, j, 5, T[16]); 970 d = GG(d, a, b, c, o, 9, T[17]); 971 c = GG(c, d, a, b, t, 14, T[18]); 972 b = GG(b, c, d, a, h, 20, T[19]); 973 a = GG(a, b, c, d, n, 5, T[20]); 974 d = GG(d, a, b, c, s, 9, T[21]); 975 c = GG(c, d, a, b, x, 14, T[22]); 976 b = GG(b, c, d, a, m, 20, T[23]); 977 a = GG(a, b, c, d, r, 5, T[24]); 978 d = GG(d, a, b, c, w, 9, T[25]); 979 c = GG(c, d, a, b, l, 14, T[26]); 980 b = GG(b, c, d, a, q, 20, T[27]); 981 a = GG(a, b, c, d, v, 5, T[28]); 982 d = GG(d, a, b, c, k, 9, T[29]); 983 c = GG(c, d, a, b, p, 14, T[30]); 984 b = GG(b, c, d, a, u, 20, T[31]); 985 a = HH(a, b, c, d, n, 4, T[32]); 986 d = HH(d, a, b, c, q, 11, T[33]); 987 c = HH(c, d, a, b, t, 16, T[34]); 988 b = HH(b, c, d, a, w, 23, T[35]); 989 a = HH(a, b, c, d, j, 4, T[36]); 990 d = HH(d, a, b, c, m, 11, T[37]); 991 c = HH(c, d, a, b, p, 16, T[38]); 992 b = HH(b, c, d, a, s, 23, T[39]); 993 a = HH(a, b, c, d, v, 4, T[40]); 994 d = HH(d, a, b, c, h, 11, T[41]); 995 c = HH(c, d, a, b, l, 16, T[42]); 996 b = HH(b, c, d, a, o, 23, T[43]); 997 a = HH(a, b, c, d, r, 4, T[44]); 998 d = HH(d, a, b, c, u, 11, T[45]); 999 c = HH(c, d, a, b, x, 16, T[46]); 1000 b = HH(b, c, d, a, k, 23, T[47]); 1001 a = II(a, b, c, d, h, 6, T[48]); 1002 d = II(d, a, b, c, p, 10, T[49]); 1003 c = II(c, d, a, b, w, 15, T[50]); 1004 b = II(b, c, d, a, n, 21, T[51]); 1005 a = II(a, b, c, d, u, 6, T[52]); 1006 d = II(d, a, b, c, l, 10, T[53]); 1007 c = II(c, d, a, b, s, 15, T[54]); 1008 b = II(b, c, d, a, j, 21, T[55]); 1009 a = II(a, b, c, d, q, 6, T[56]); 1010 d = II(d, a, b, c, x, 10, T[57]); 1011 c = II(c, d, a, b, o, 15, T[58]); 1012 b = II(b, c, d, a, v, 21, T[59]); 1013 a = II(a, b, c, d, m, 6, T[60]); 1014 d = II(d, a, b, c, t, 10, T[61]); 1015 c = II(c, d, a, b, k, 15, T[62]); 1016 b = II(b, c, d, a, r, 21, T[63]); 1017 H[0] = (H[0] + a) | 0; 1018 H[1] = (H[1] + b) | 0; 1019 H[2] = (H[2] + c) | 0; 1020 H[3] = (H[3] + d) | 0 1021 }, 1022 _doFinalize: function() { 1023 var a = this._data; 1024 var b = a.words; 1025 var c = this._nDataBytes * 8; 1026 var d = a.sigBytes * 8; 1027 b[d >>> 5] |= 0x80 << (24 - d % 32); 1028 var e = y.floor(c / 0x100000000); 1029 var f = c; 1030 b[(((d + 64) >>> 9) << 4) + 15] = ((((e << 8) | (e >>> 24)) & 0x00ff00ff) | (((e << 24) | (e >>> 8)) & 0xff00ff00)); 1031 b[(((d + 64) >>> 9) << 4) + 14] = ((((f << 8) | (f >>> 24)) & 0x00ff00ff) | (((f << 24) | (f >>> 8)) & 0xff00ff00)); 1032 a.sigBytes = (b.length + 1) * 4; 1033 this._process(); 1034 var g = this._hash; 1035 var H = g.words; 1036 for (var i = 0; i < 4; i++) { 1037 var h = H[i]; 1038 H[i] = (((h << 8) | (h >>> 24)) & 0x00ff00ff) | (((h << 24) | (h >>> 8)) & 0xff00ff00) 1039 } 1040 return g 1041 }, 1042 clone: function() { 1043 var a = B.clone.call(this); 1044 a._hash = this._hash.clone(); 1045 return a 1046 } 1047 }); 1048 function FF(a, b, c, d, x, s, t) { 1049 var n = a + ((b & c) | (~b & d)) + x + t; 1050 return ((n << s) | (n >>> (32 - s))) + b 1051 } 1052 function GG(a, b, c, d, x, s, t) { 1053 var n = a + ((b & d) | (c & ~d)) + x + t; 1054 return ((n << s) | (n >>> (32 - s))) + b 1055 } 1056 function HH(a, b, c, d, x, s, t) { 1057 var n = a + (b ^ c ^ d) + x + t; 1058 return ((n << s) | (n >>> (32 - s))) + b 1059 } 1060 function II(a, b, c, d, x, s, t) { 1061 var n = a + (c ^ (b | ~d)) + x + t; 1062 return ((n << s) | (n >>> (32 - s))) + b 1063 } 1064 C.MD5 = B._createHelper(E); 1065 C.HmacMD5 = B._createHmacHelper(E) 1066 }(Math)); 1067 (function() { 1068 var C = ba; 1069 var g = C.lib; 1070 var h = g.WordArray; 1071 var j = g.Hasher; 1072 var k = C.algo; 1073 var W = []; 1074 var l = k.SHA1 = j.extend({ 1075 _doReset: function() { 1076 this._hash = new h.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]) 1077 }, 1078 _doProcessBlock: function(M, f) { 1079 var H = this._hash.words; 1080 var a = H[0]; 1081 var b = H[1]; 1082 var c = H[2]; 1083 var d = H[3]; 1084 var e = H[4]; 1085 for (var i = 0; i < 80; i++) { 1086 if (i < 16) { 1087 W[i] = M[f + i] | 0 1088 } else { 1089 var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; 1090 W[i] = (n << 1) | (n >>> 31) 1091 } 1092 var t = ((a << 5) | (a >>> 27)) + e + W[i]; 1093 if (i < 20) { 1094 t += ((b & c) | (~b & d)) + 0x5a827999 1095 } else if (i < 40) { 1096 t += (b ^ c ^ d) + 0x6ed9eba1 1097 } else if (i < 60) { 1098 t += ((b & c) | (b & d) | (c & d))
1098- 0x70e44324 1099 } else { 1100 t += (b ^ c ^ d) - 0x359d3e2a 1101 } 1102 e = d; 1103 d = c; 1104 c = (b << 30) | (b >>> 2); 1105 b = a; 1106 a = t 1107 } 1108 H[0] = (H[0] + a) | 0; 1109 H[1] = (H[1] + b) | 0; 1110 H[2] = (H[2] + c) | 0; 1111 H[3] = (H[3] + d) | 0; 1112 H[4] = (H[4] + e) | 0 1113 }, 1114 _doFinalize: function() { 1115 var a = this._data; 1116 var b = a.words; 1117 var c = this._nDataBytes * 8; 1118 var d = a.sigBytes * 8; 1119 b[d >>> 5] |= 0x80 << (24 - d % 32); 1120 b[(((d + 64) >>> 9) << 4) + 14] = Math.floor(c / 0x100000000); 1121 b[(((d + 64) >>> 9) << 4) + 15] = c; 1122 a.sigBytes = b.length * 4; 1123 this._process(); 1124 return this._hash 1125 }, 1126 clone: function() { 1127 var a = j.clone.call(this); 1128 a._hash = this._hash.clone(); 1129 return a 1130 } 1131 }); 1132 C.SHA1 = j._createHelper(l); 1133 C.HmacSHA1 = j._createHmacHelper(l) 1134 }()); 1135 (function(u) { 1136 var C = ba; 1137 var v = C.lib; 1138 var w = v.WordArray; 1139 var x = v.Hasher; 1140 var y = C.algo; 1141 var H = []; 1142 var K = []; 1143 (function() { 1144 function isPrime(n) { 1145 var a = u.sqrt(n); 1146 for (var b = 2; b <= a; b++) { 1147 if (!(n % b)) { 1148 return false 1149 } 1150 } 1151 return true 1152 } 1153 function getFractionalBits(n) { 1154 return ((n - (n | 0)) * 0x100000000) | 0 1155 } 1156 var n = 2; 1157 var c = 0; 1158 while (c < 64) { 1159 if (isPrime(n)) { 1160 if (c < 8) { 1161 H[c] = getFractionalBits(u.pow(n, 1 / 2)) 1162 } 1163 K[c] = getFractionalBits(u.pow(n, 1 / 3)); 1164 c++ 1165 } 1166 n++ 1167 } 1168 }()); 1169 var W = []; 1170 var z = y.SHA256 = x.extend({ 1171 _doReset: function() { 1172 this._hash = new w.init(H.slice(0)) 1173 }, 1174 _doProcessBlock: function(M, j) { 1175 var H = this._hash.words; 1176 var a = H[0]; 1177 var b = H[1]; 1178 var c = H[2]; 1179 var d = H[3]; 1180 var e = H[4]; 1181 var f = H[5]; 1182 var g = H[6]; 1183 var h = H[7]; 1184 for (var i = 0; i < 64; i++) { 1185 if (i < 16) { 1186 W[i] = M[j + i] | 0 1187 } else { 1188 var k = W[i - 15]; 1189 var l = ((k << 25) | (k >>> 7)) ^ ((k << 14) | (k >>> 18)) ^ (k >>> 3); 1190 var m = W[i - 2]; 1191 var n = ((m << 15) | (m >>> 17)) ^ ((m << 13) | (m >>> 19)) ^ (m >>> 10); 1192 W[i] = l + W[i - 7] + n + W[i - 16] 1193 } 1194 var o = (e & f) ^ (~e & g); 1195 var p = (a & b) ^ (a & c) ^ (b & c); 1196 var q = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); 1197 var r = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); 1198 var s = h + r + o + K[i] + W[i]; 1199 var t = q + p; 1200 h = g; 1201 g = f; 1202 f = e; 1203 e = (d + s) | 0; 1204 d = c; 1205 c = b; 1206 b = a; 1207 a = (s + t) | 0 1208 } 1209 H[0] = (H[0] + a) | 0; 1210 H[1] = (H[1] + b) | 0; 1211 H[2] = (H[2] + c) | 0; 1212 H[3] = (H[3] + d) | 0; 1213 H[4] = (H[4] + e) | 0; 1214 H[5] = (H[5] + f) | 0; 1215 H[6] = (H[6] + g) | 0; 1216 H[7] = (H[7] + h) | 0 1217 }, 1218 _doFinalize: function() { 1219 var a = this._data; 1220 var b = a.words; 1221 var c = this._nDataBytes * 8; 1222 var d = a.sigBytes * 8; 1223 b[d >>> 5] |= 0x80 << (24 - d % 32); 1224 b[(((d + 64) >>> 9) << 4) + 14] = u.floor(c / 0x100000000); 1225 b[(((d + 64) >>> 9) << 4) + 15] = c; 1226 a.sigBytes = b.length * 4; 1227 this._process(); 1228 return this._hash 1229 }, 1230 clone: function() { 1231 var a = x.clone.call(this); 1232 a._hash = this._hash.clone(); 1233 return a 1234 } 1235 }); 1236 C.SHA256 = x._createHelper(z); 1237 C.HmacSHA256 = x._createHmacHelper(z) 1238 }(Math)); 1239 (function() { 1240 var C = ba; 1241 var b = C.lib; 1242 var c = b.WordArray; 1243 var d = C.algo; 1244 var e = d.SHA256; 1245 var f = d.SHA224 = e.extend({ 1246 _doReset: function() { 1247 this._hash = new c.init([0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4]) 1248 }, 1249 _doFinalize: function() { 1250 var a = e._doFinalize.call(this); 1251 a.sigBytes -= 4; 1252 return a 1253 } 1254 }); 1255 C.SHA224 = e._createHelper(f); 1256 C.HmacSHA224 = e._createHmacHelper(f) 1257 }()); 1258 (function() { 1259 var C = ba; 1260 var bb = C.lib; 1261 var bc = bb.Hasher; 1262 var bd = C.x64; 1263 var be = bd.Word; 1264 var bf = bd.WordArray; 1265 var bg = C.algo; 1266 function X64Word_create() { 1267 return be.create.apply(be, arguments) 1268 } 1269 var K = [X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb
1269605d019), X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)]; 1270 var W = []; 1271 (function() { 1272 for (var i = 0; i < 80; i++) { 1273 W[i] = X64Word_create() 1274 } 1275 }()); 1276 var bh = bg.SHA512 = bc.extend({ 1277 _doReset: function() { 1278 this._hash = new bf.init([new be.init(0x6a09e667,0xf3bcc908), new be.init(0xbb67ae85,0x84caa73b), new be.init(0x3c6ef372,0xfe94f82b), new be.init(0xa54ff53a,0x5f1d36f1), new be.init(0x510e527f,0xade682d1), new be.init(0x9b05688c,0x2b3e6c1f), new be.init(0x1f83d9ab,0xfb41bd6b), new be.init(0x5be0cd19,0x137e2179)]) 1279 }, 1280 _doProcessBlock: function(M, a) { 1281 var H = this._hash.words; 1282 var b = H[0]; 1283 var c = H[1]; 1284 var d = H[2]; 1285 var e = H[3]; 1286 var f = H[4]; 1287 var g = H[5]; 1288 var h = H[6]; 1289 var j = H[7]; 1290 var k = b.high; 1291 var l = b.low; 1292 var m = c.high; 1293 var n = c.low; 1294 var o = d.high; 1295 var p = d.low; 1296 var q = e.high; 1297 var r = e.low; 1298 var s = f.high; 1299 var t = f.low; 1300 var u = g.high; 1301 var v = g.low; 1302 var w = h.high; 1303 var x = h.low; 1304 var y = j.high; 1305 var z = j.low; 1306 var A = k; 1307 var B = l; 1308 var C = m; 1309 var D = n; 1310 var E = o; 1311 var F = p; 1312 var G = q; 1313 var I = r; 1314 var J = s; 1315 var L = t; 1316 var N = u; 1317 var O = v; 1318 var P = w; 1319 var Q = x; 1320 var R = y; 1321 var S = z; 1322 for (var i = 0; i < 80; i++) { 1323 var T; 1324 var U; 1325 var V = W[i]; 1326 if (i < 16) { 1327 U = V.high = M[a + i * 2] | 0; 1328 T = V.low = M[a + i * 2 + 1] | 0 1329 } else { 1330 var X = W[i - 15]; 1331 var Y = X.high; 1332 var Z = X.low; 1333 var bi = ((Y >>> 1) | (Z << 31)) ^ ((Y >>> 8) | (Z << 24)) ^ (Y >>> 7); 1334 var bj = ((Z >>> 1) | (Y << 31)) ^ ((Z >>> 8) | (Y << 24)) ^ ((Z >>> 7) | (Y << 25)); 1335 var bk = W[i - 2]; 1336 var bm = bk.high; 1337 var bn = bk.low; 1338 var bo = ((bm >>> 19) | (bn << 13)) ^ ((bm << 3) | (bn >>> 29)) ^ (bm >>> 6); 1339 var bp = ((bn >>> 19) | (bm << 13)) ^ ((bn << 3) | (bm >>> 29)) ^ ((bn >>> 6) | (bm << 26)); 1340 var bq = W[i - 7]; 1341 var bs = bq.high; 1342 var bt = bq.low; 1343 var bu = W[i - 16]; 1344 var bv = bu.high; 1345 var bw = bu.low; 1346 T = bj + bt; 1347 U = bi + bs + ((T >>> 0) < (bj >>> 0) ? 1 : 0); 1348 T = T + bp; 1349 U = U + bo + ((T >>> 0) < (bp >>> 0) ? 1 : 0); 1350 T = T + bw; 1351 U = U + bv + ((T >>> 0) < (bw >>> 0) ? 1 : 0); 1352 V.high = U; 1353 V.low = T 1354 } 1355 var bx = (J & N) ^ (~J & P); 1356 var by = (L & O) ^ (~L & Q); 1357 var bz = (A & C) ^ (A & E) ^ (C & E); 1358 var bA = (B & D) ^ (B & F) ^ (D & F); 1359 var bB = ((A >>> 28) | (B << 4)) ^ ((A << 30) | (B >>> 2)) ^ ((A << 25) | (B >>> 7)); 1360 var bC = ((B >>> 28) | (A << 4)) ^ ((B << 30) | (A >>> 2)) ^ ((B << 25) | (A >>> 7)); 1361 var bD = ((J >>> 14) | (L << 18)) ^ ((J >>> 18) | (L << 14)) ^ ((J << 23) | (L >>> 9)); 1362 var bE = ((L >>> 14) | (J << 18)) ^ ((L >>> 18) | (J << 14)) ^ ((L << 23) | (J >>> 9)); 1363 var bF = K[i]; 1364 var bG = bF.high; 1365 var bH = bF.low; 1366 var bI = S + bE; 1367 var bJ = R + bD + ((bI >>> 0) < (S >>> 0) ? 1 : 0); 1368 var bI = bI + by; 1369 var bJ = bJ + bx + ((bI >>> 0) < (by >>> 0) ? 1 : 0); 1370 var bI = bI + bH; 1371 var bJ = bJ + bG + ((bI >>> 0) < (bH >>> 0) ? 1 : 0); 1372 var bI = bI + T; 1373 var bJ = bJ + U + ((bI >>> 0) < (T >>> 0) ? 1 : 0); 1374 var bK = bC + bA; 1375 var bL = bB + bz + ((bK >>> 0) < (bC >>> 0) ? 1 : 0); 1376 R = P; 1377 S = Q; 1378 P = N; 1379 Q = O; 1380 N = J; 1381 O = L; 1382 L = (I + bI) | 0; 1383 J = (G + bJ + ((L >>> 0) < (I >>> 0) ? 1 : 0)) | 0; 1384 G = E; 1385 I = F; 1386 E = C; 1387 F = D; 1388 C = A; 1389 D = B; 1390 B = (bI + bK) | 0; 1391 A = (bJ + bL + ((B >>> 0) < (bI >>> 0) ? 1 : 0)) | 0 1392 } 1393 l = b.low = (l + B); 1394 b.high = (k + A + ((l >>> 0) < (B >>> 0) ? 1 : 0)); 1395 n = c.low = (n + D); 1396 c.high = (m + C + ((n >>> 0) < (D >>> 0) ? 1 : 0)); 1397 p = d.low = (p + F); 1398 d.high = (o + E + ((p >>> 0) < (F >>> 0) ? 1 : 0)); 1399 r = e.low = (r + I); 1400 e.high = (q + G + ((r >>> 0) < (I >>> 0) ? 1 : 0)); 1401 t = f.low = (t + L); 1402 f.high = (s + J + ((t >>> 0) < (L >>> 0) ? 1 : 0)); 1403 v = g.low = (v + O); 1404 g.high = (u + N + ((v >>> 0) < (O >>> 0) ? 1 : 0)); 1405 x = h.low = (x + Q); 1406 h.high = (w + P + ((x >>> 0) < (Q >>> 0) ? 1 : 0)); 1407 z = j.low = (z + S); 1408 j.high = (y + R + ((z >>> 0) < (S >>> 0) ? 1 : 0)) 1409 }, 1410 _doFinalize: function() { 1411 var a = this._data; 1412 var b = a.words; 1413 var c = this._nDataBytes * 8; 1414 var d = a.sigBytes * 8; 1415 b[d >>> 5] |= 0x80 << (24 - d % 32); 1416 b[(((d + 128) >>> 10) << 5) + 30] = Math.floor(c / 0x100000000); 1417 b[(((d + 128) >>> 10) << 5) + 31] = c; 1418 a.sigBytes = b.length * 4; 1419 this._process(); 1420 var e = this._hash.toX32(); 1421 return e 1422 }, 1423 clone: function() { 1424 var a = bc.clone.call(this); 1425 a._hash = this._hash.clone(); 1426 return a 1427 }, 1428 blockSize: 1024 / 32 1429 }); 1430 C.SHA512 = bc._createHelper(bh); 1431 C.HmacSHA512 = bc._createHmacHelper(bh) 1432 }()); 1433 (function() { 1434 var C = ba; 1435 var b = C.x64; 1436 var c = b.Word; 1437 var d = b.WordArray; 1438 var e = C.algo; 1439 var f = e.SHA512; 1440 var g = e.SHA384 = f.extend({ 1441 _doReset: function() { 1442 this._hash = new d.init([new c.init(0xcbbb9d5d,0xc1059ed8), new c.init(0x629a292a,0x367cd507), new c.init(0x9159015a,0x3070dd17), new c.init(0x152fecd8,0xf70e5939), new c.init(0x67332667,0xffc00b31), new c.init(0x8eb44a87,0x68581511), new c.init(0xdb0c2e0d,0x64f98fa7), new c.init(0x47b5481d,0xbefa4fa4)]) 1443 }, 1444 _doFinalize: function() { 1445 var a = f._doFinalize.call(this); 1446 a.sigBytes -= 16; 1447 return a 1448 } 1449 }); 1450 C.SHA384 = f._createHelper(g); 1451 C.HmacSHA384 = f._createHmacHelper(g) 1452 }()); 1453 (function(D) { 1454 var C = ba; 1455 var E = C.lib; 1456 var F = E.WordArray; 1457 var G = E.Hasher; 1458 var H = C.x64; 1459 var I = H.Word; 1460 var J = C.algo; 1461 var K = []; 1462 var L = []; 1463 var N = []; 1464 (function() { 1465 var x = 1 1466 , y = 0; 1467 for (var t = 0; t < 24; t++) { 1468 K[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; 1469 var a = y % 5; 1470 var b = (2 * x + 3 * y) % 5; 1471 x = a; 1472 y = b 1473 } 1474 for (var x = 0; x < 5; x++) { 1475 for (var y = 0; y < 5; y++) { 1476 L[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5 1477 } 1478 } 1479 var c = 0x01; 1480 for (var i = 0; i < 24; i++) { 1481 var d = 0; 1482 var e = 0; 1483 for (var j = 0; j < 7; j++) { 1484 if (c & 0x01) { 1485 var f = (1 << j) - 1; 1486 if (f < 32) { 1487 e ^= 1 << f 1488 } else { 1489 d ^= 1 << (f - 32) 1490 } 1491 } 1492 if (c & 0x80) { 1493 c = (c << 1) ^ 0x71 1494 } else { 1495 c <<= 1 1496 } 1497 } 1498 N[i] = I.create(d, e) 1499 } 1500 }()); 1501 var T = []; 1502 (function() { 1503 for (var i = 0; i < 25; i++) { 1504 T[i] = I.create() 1505 } 1506 }()); 1507 var O = J.SHA3 = G.extend({ 1508 cfg: G.cfg.extend({ 1509 outputLength: 512 1510 }), 1511 _doReset: function() { 1512 var a = this._state = []; 1513 for (var i = 0; i < 25; i++) { 1514 a[i] = new I.init() 1515 } 1516 this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 1517 }, 1518 _doProcessBlock: function(M, a) { 1519 var b = this._state; 1520 var c = this.blockSize / 2; 1521 for (var i = 0; i < c; i++) { 1522 var d = M[a + 2 * i]; 1523 var e = M[a + 2 * i + 1]; 1524 d = ((((d << 8) | (d >>> 24)) & 0x00ff00ff) | (((d << 24) | (d >>> 8)) & 0xff00ff00)); 1525 e = ((((e << 8) | (e >>> 24)) & 0x00ff00ff) | (((e << 24) | (e >>> 8)) & 0xff00ff00)); 1526 var f = b[i]; 1527 f.high ^= e; 1528 f.low ^= d 1529 } 1530 for (var g = 0; g < 24; g++) { 1531 for (var x = 0; x < 5; x++) { 1532 var h = 0 1533 , o = 0; 1534 for (var y = 0; y < 5; y++) { 1535 var f = b[x + 5 * y]; 1536 h ^= f.high; 1537 o ^= f.low 1538 } 1539 var j = T[x]; 1540 j.high = h; 1541 j.low = o 1542 } 1543 for (var x = 0; x < 5; x++) { 1544 var k = T[(x + 4) % 5]; 1545 var l = T[(x + 1) % 5]; 1546 var m = l.high; 1547
1547 var n = l.low; 1548 var h = k.high ^ ((m << 1) | (n >>> 31)); 1549 var o = k.low ^ ((n << 1) | (m >>> 31)); 1550 for (var y = 0; y < 5; y++) { 1551 var f = b[x + 5 * y]; 1552 f.high ^= h; 1553 f.low ^= o 1554 } 1555 } 1556 for (var p = 1; p < 25; p++) { 1557 var h; 1558 var o; 1559 var f = b[p]; 1560 var q = f.high; 1561 var r = f.low; 1562 var s = K[p]; 1563 if (s < 32) { 1564 h = (q << s) | (r >>> (32 - s)); 1565 o = (r << s) | (q >>> (32 - s)) 1566 } else { 1567 h = (r << (s - 32)) | (q >>> (64 - s)); 1568 o = (q << (s - 32)) | (r >>> (64 - s)) 1569 } 1570 var t = T[L[p]]; 1571 t.high = h; 1572 t.low = o 1573 } 1574 var u = T[0]; 1575 var v = b[0]; 1576 u.high = v.high; 1577 u.low = v.low; 1578 for (var x = 0; x < 5; x++) { 1579 for (var y = 0; y < 5; y++) { 1580 var p = x + 5 * y; 1581 var f = b[p]; 1582 var w = T[p]; 1583 var z = T[((x + 1) % 5) + 5 * y]; 1584 var A = T[((x + 2) % 5) + 5 * y]; 1585 f.high = w.high ^ (~z.high & A.high); 1586 f.low = w.low ^ (~z.low & A.low) 1587 } 1588 } 1589 var f = b[0]; 1590 var B = N[g]; 1591 f.high ^= B.high; 1592 f.low ^= B.low 1593 } 1594 }, 1595 _doFinalize: function() { 1596 var a = this._data; 1597 var b = a.words; 1598 var c = this._nDataBytes * 8; 1599 var d = a.sigBytes * 8; 1600 var e = this.blockSize * 32; 1601 b[d >>> 5] |= 0x1 << (24 - d % 32); 1602 b[((D.ceil((d + 1) / e) * e) >>> 5) - 1] |= 0x80; 1603 a.sigBytes = b.length * 4; 1604 this._process(); 1605 var f = this._state; 1606 var g = this.cfg.outputLength / 8; 1607 var h = g / 8; 1608 var j = []; 1609 for (var i = 0; i < h; i++) { 1610 var k = f[i]; 1611 var l = k.high; 1612 var m = k.low; 1613 l = ((((l << 8) | (l >>> 24)) & 0x00ff00ff) | (((l << 24) | (l >>> 8)) & 0xff00ff00)); 1614 m = ((((m << 8) | (m >>> 24)) & 0x00ff00ff) | (((m << 24) | (m >>> 8)) & 0xff00ff00)); 1615 j.push(m); 1616 j.push(l) 1617 } 1618 return new F.init(j,g) 1619 }, 1620 clone: function() { 1621 var a = G.clone.call(this); 1622 var b = a._state = this._state.slice(0); 1623 for (var i = 0; i < 25; i++) { 1624 b[i] = b[i].clone() 1625 } 1626 return a 1627 } 1628 }); 1629 C.SHA3 = G._createHelper(O); 1630 C.HmacSHA3 = G._createHmacHelper(O) 1631 }(Math)); 1632 (function(m) { 1633 var C = ba; 1634 var o = C.lib; 1635 var p = o.WordArray; 1636 var q = o.Hasher; 1637 var r = C.algo; 1638 var s = p.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); 1639 var u = p.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); 1640 var v = p.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]); 1641 var w = p.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]); 1642 var A = p.create([0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); 1643 var B = p.create([0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); 1644 var D = r.RIPEMD160 = q.extend({ 1645 _doReset: function() { 1646 this._hash = p.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]) 1647 }, 1648 _doProcessBlock: function(M, a) { 1649 for (var i = 0; i < 16; i++) { 1650 var b = a + i; 1651 var c = M[b]; 1652 M[b] = ((((c << 8) | (c >>> 24)) & 0x00ff00ff) | (((c << 24) | (c >>> 8)) & 0xff00ff00)) 1653 } 1654 var H = this._hash.words; 1655 var d = A.words; 1656 var e = B.words; 1657 var f = s.words; 1658 var g = u.words; 1659 var h = v.words; 1660 var j = w.words; 1661 var k, bl, cl, dl, el; 1662 var l, br, cr, dr, er; 1663 l = k = H[0]; 1664 br = bl = H[1]; 1665 cr = cl = H[2]; 1666 dr = dl = H[3]; 1667 er = el = H[4]; 1668 var t; 1669 for (var i = 0; i < 80; i += 1) { 1670 t = (k + M[a + f[i]]) | 0; 1671 if (i < 16) { 1672 t += f1(bl, cl, dl) + d[0] 1673 } else if (i < 32) { 1674 t += f2(bl, cl, dl) + d[1] 1675 } else if (i < 48) { 1676 t += f3(bl, cl, dl) + d[2] 1677 } else if (i < 64) { 1678 t += f4(bl, cl, dl) + d[3] 1679 } else { 1680 t += f5(bl, cl, dl) + d[4] 1681 } 1682 t = t | 0; 1683 t = rotl(t, h[i]); 1684 t = (t + el) | 0; 1685 k = el; 1686 el = dl; 1687 dl = rotl(cl, 10); 1688 cl = bl; 1689 bl = t; 1690 t = (l + M[a + g[i]]) | 0; 1691 if (i < 16) { 1692 t += f5(br, cr, dr) + e[0] 1693 } else if (i < 32) {
1694 t += f4(br, cr, dr) + e[1] 1695 } else if (i < 48) { 1696 t += f3(br, cr, dr) + e[2] 1697 } else if (i < 64) { 1698 t += f2(br, cr, dr) + e[3] 1699 } else { 1700 t += f1(br, cr, dr) + e[4] 1701 } 1702 t = t | 0; 1703 t = rotl(t, j[i]); 1704 t = (t + er) | 0; 1705 l = er; 1706 er = dr; 1707 dr = rotl(cr, 10); 1708 cr = br; 1709 br = t 1710 } 1711 t = (H[1] + cl + dr) | 0; 1712 H[1] = (H[2] + dl + er) | 0; 1713 H[2] = (H[3] + el + l) | 0; 1714 H[3] = (H[4] + k + br) | 0; 1715 H[4] = (H[0] + bl + cr) | 0; 1716 H[0] = t 1717 }, 1718 _doFinalize: function() { 1719 var a = this._data; 1720 var b = a.words; 1721 var c = this._nDataBytes * 8; 1722 var d = a.sigBytes * 8; 1723 b[d >>> 5] |= 0x80 << (24 - d % 32); 1724 b[(((d + 64) >>> 9) << 4) + 14] = ((((c << 8) | (c >>> 24)) & 0x00ff00ff) | (((c << 24) | (c >>> 8)) & 0xff00ff00)); 1725 a.sigBytes = (b.length + 1) * 4; 1726 this._process(); 1727 var e = this._hash; 1728 var H = e.words; 1729 for (var i = 0; i < 5; i++) { 1730 var f = H[i]; 1731 H[i] = (((f << 8) | (f >>> 24)) & 0x00ff00ff) | (((f << 24) | (f >>> 8)) & 0xff00ff00) 1732 } 1733 return e 1734 }, 1735 clone: function() { 1736 var a = q.clone.call(this); 1737 a._hash = this._hash.clone(); 1738 return a 1739 } 1740 }); 1741 function f1(x, y, z) { 1742 return ((x) ^ (y) ^ (z)) 1743 } 1744 function f2(x, y, z) { 1745 return (((x) & (y)) | ((~x) & (z))) 1746 } 1747 function f3(x, y, z) { 1748 return (((x) | (~(y))) ^ (z)) 1749 } 1750 function f4(x, y, z) { 1751 return (((x) & (z)) | ((y) & (~(z)))) 1752 } 1753 function f5(x, y, z) { 1754 return ((x) ^ ((y) | (~(z)))) 1755 } 1756 function rotl(x, n) { 1757 return (x << n) | (x >>> (32 - n)) 1758 } 1759 C.RIPEMD160 = q._createHelper(D); 1760 C.HmacRIPEMD160 = q._createHmacHelper(D) 1761 }(Math)); 1762 (function() { 1763 var C = ba; 1764 var j = C.lib; 1765 var k = j.Base; 1766 var l = C.enc; 1767 var m = l.Utf8; 1768 var n = C.algo; 1769 var o = n.HMAC = k.extend({ 1770 init: function(a, b) { 1771 a = this._hasher = new a.init(); 1772 if (typeof b == 'string') { 1773 b = m.parse(b) 1774 } 1775 var c = a.blockSize; 1776 var d = c * 4; 1777 if (b.sigBytes > d) { 1778 b = a.finalize(b) 1779 } 1780 b.clamp(); 1781 var e = this._oKey = b.clone(); 1782 var f = this._iKey = b.clone(); 1783 var g = e.words; 1784 var h = f.words; 1785 for (var i = 0; i < c; i++) { 1786 g[i] ^= 0x5c5c5c5c; 1787 h[i] ^= 0x36363636 1788 } 1789 e.sigBytes = f.sigBytes = d; 1790 this.reset() 1791 }, 1792 reset: function() { 1793 var a = this._hasher; 1794 a.reset(); 1795 a.update(this._iKey) 1796 }, 1797 update: function(a) { 1798 this._hasher.update(a); 1799 return this 1800 }, 1801 finalize: function(a) { 1802 var b = this._hasher; 1803 var c = b.finalize(a); 1804 b.reset();
1805 var d = b.finalize(this._oKey.clone().concat(c)); 1806 return d 1807 } 1808 }) 1809 }()); 1810 (function() { 1811 var C = ba; 1812 var r = C.lib; 1813 var s = r.Base; 1814 var t = r.WordArray; 1815 var u = C.algo; 1816 var v = u.SHA1; 1817 var w = u.HMAC; 1818 var x = u.PBKDF2 = s.extend({ 1819 cfg: s.extend({ 1820 keySize: 128 / 32, 1821 hasher: v, 1822 iterations: 1 1823 }), 1824 init: function(a) { 1825 this.cfg = this.cfg.extend(a) 1826 }, 1827 compute: function(a, b) { 1828 var c = this.cfg; 1829 var d = w.create(c.hasher, a); 1830 var e = t.create(); 1831 var f = t.create([0x00000001]); 1832 var g = e.words; 1833 var h = f.words; 1834 var k = c.keySize; 1835 var l = c.iterations; 1836 while (g.length < k) { 1837 var m = d.update(b).finalize(f); 1838 d.reset(); 1839 var n = m.words; 1840 var o = n.length; 1841 var p = m; 1842 for (var i = 1; i < l; i++) { 1843 p = d.finalize(p); 1844 d.reset(); 1845 var q = p.words; 1846 for (var j = 0; j < o; j++) { 1847 n[j] ^= q[j] 1848 } 1849 } 1850 e.concat(m); 1851 h[0]++ 1852 } 1853 e.sigBytes = k * 4; 1854 return e 1855 } 1856 }); 1857 C.PBKDF2 = function(a, b, c) { 1858 return x.create(c).compute(a, b) 1859 } 1860 }()); 1861 (function() { 1862 var C = ba; 1863 var k = C.lib; 1864 var l = k.Base; 1865 var m = k.WordArray; 1866 var n = C.algo; 1867 var o = n.MD5; 1868 var p = n.EvpKDF = l.extend({ 1869 cfg: l.extend({ 1870 keySize: 128 / 32, 1871 hasher: o, 1872 iterations: 1 1873 }), 1874 init: function(a) { 1875 this.cfg = this.cfg.extend(a) 1876 }, 1877 compute: function(a, b) { 1878 var c; 1879 var d = this.cfg; 1880 var e = d.hasher.create(); 1881 var f = m.create(); 1882 var g = f.words; 1883 var h = d.keySize; 1884 var j = d.iterations; 1885 while (g.length < h) { 1886 if (c) { 1887 e.update(c) 1888 } 1889 c = e.update(a).finalize(b); 1890 e.reset(); 1891 for (var i = 1; i < j; i++) { 1892 c = e.finalize(c); 1893 e.reset() 1894 } 1895 f.concat(c) 1896 } 1897 f.sigBytes = h * 4; 1898 return f 1899 } 1900 }); 1901 C.EvpKDF = function(a, b, c) { 1902 return p.create(c).compute(a, b) 1903 } 1904 }()); 1905 ba.lib.Cipher || (function(h) { 1906 var C = ba; 1907 var j = C.lib; 1908 var k = j.Base; 1909 var l = j.WordArray; 1910 var m = j.BufferedBlockAlgorithm; 1911 var n = C.enc; 1912 var o = n.Utf8; 1913 var p = n.Base64; 1914 var q = C.algo; 1915 var r = q.EvpKDF; 1916 var s = j.Cipher = m.extend({ 1917 cfg: k.extend(), 1918 createEncryptor: function(a, b) { 1919 return this.create(this._ENC_XFORM_MODE, a, b) 1920 }, 1921 createDecryptor: function(a, b) { 1922 return this.create(this._DEC_XFORM_MODE, a, b) 1923 }, 1924 init: function(a, b, c) { 1925 this.cfg = this.cfg.extend(c); 1926 this._xformMode = a; 1927 this._key = b; 1928 this.reset() 1929 }, 1930 reset: function() { 1931 m.reset.call(this); 1932 this._doReset() 1933 }, 1934 process: function(a) { 1935 this._append(a); 1936 return this._process() 1937 }, 1938 finalize: function(a) { 1939 if (a) { 1940 this._append(a) 1941 } 1942 var b = this._doFinalize(); 1943 return b 1944 }, 1945 keySize: 128 / 32, 1946 ivSize: 128 / 32, 1947 _ENC_XFORM_MODE: 1, 1948 _DEC_XFORM_MODE: 2, 1949 _createHelper: (function() { 1950 function selectCipherStrategy(a) { 1951 if (typeof a == 'string') { 1952 return H 1953 } else { 1954 return E 1955 } 1956 } 1957 return function(d) { 1958 return { 1959 encrypt: function(a, b, c) { 1960 return selectCipherStrategy(b).encrypt
1960(d, a, b, c) 1961 }, 1962 decrypt: function(a, b, c) { 1963 return selectCipherStrategy(b).decrypt(d, a, b, c) 1964 } 1965 } 1966 } 1967 }()) 1968 }); 1969 var t = j.StreamCipher = s.extend({ 1970 _doFinalize: function() { 1971 var a = this._process(!!'flush'); 1972 return a 1973 }, 1974 blockSize: 1 1975 }); 1976 var u = C.mode = {}; 1977 var v = j.BlockCipherMode = k.extend({ 1978 createEncryptor: function(a, b) { 1979 return this.Encryptor.create(a, b) 1980 }, 1981 createDecryptor: function(a, b) { 1982 return this.Decryptor.create(a, b) 1983 }, 1984 init: function(a, b) { 1985 this._cipher = a; 1986 this._iv = b 1987 } 1988 }); 1989 var w = u.CBC = (function() { 1990 var f = v.extend(); 1991 f.Encryptor = f.extend({ 1992 processBlock: function(a, b) { 1993 var c = this._cipher; 1994 var d = c.blockSize; 1995 xorBlock.call(this, a, b, d); 1996 c.encryptBlock(a, b); 1997 this._prevBlock = a.slice(b, b + d) 1998 } 1999 }); 2000 f.Decryptor = f.extend({ 2001 processBlock: function(a, b) { 2002 var c = this._cipher; 2003 var d = c.blockSize; 2004 var e = a.slice(b, b + d); 2005 c.decryptBlock(a, b); 2006 xorBlock.call(this, a, b, d); 2007 this._prevBlock = e 2008 } 2009 }); 2010 function xorBlock(a, b, c) { 2011 var d; 2012 var e = this._iv; 2013 if (e) { 2014 d = e; 2015 this._iv = h 2016 } else { 2017 d = this._prevBlock 2018 } 2019 for (var i = 0; i < c; i++) { 2020 a[b + i] ^= d[i] 2021 } 2022 } 2023 return f 2024 }()); 2025 var x = C.pad = {}; 2026 var y = x.Pkcs7 = { 2027 pad: function(a, b) { 2028 var c = b * 4; 2029 var d = c - a.sigBytes % c; 2030 var e = (d << 24) | (d << 16) | (d << 8) | d; 2031 var f = []; 2032 for (var i = 0; i < d; i += 4) { 2033 f.push(e) 2034 } 2035 var g = l.create(f, d); 2036 a.concat(g) 2037 }, 2038 unpad: function(a) { 2039 var b = a.words[(a.sigBytes - 1) >>> 2] & 0xff;
2040 a.sigBytes -= b 2041 } 2042 }; 2043 var z = j.BlockCipher = s.extend({ 2044 cfg: s.cfg.extend({ 2045 mode: w, 2046 padding: y 2047 }), 2048 reset: function() { 2049 var a; 2050 s.reset.call(this); 2051 var b = this.cfg; 2052 var c = b.iv; 2053 var d = b.mode; 2054 if (this._xformMode == this._ENC_XFORM_MODE) { 2055 a = d.createEncryptor 2056 } else { 2057 a = d.createDecryptor; 2058 this._minBufferSize = 1 2059 } 2060 if (this._mode && this._mode.__creator == a) { 2061 this._mode.init(this, c && c.words) 2062 } else { 2063 this._mode = a.call(d, this, c && c.words); 2064 this._mode.__creator = a 2065 } 2066 }, 2067 _doProcessBlock: function(a, b) { 2068 this._mode.processBlock(a, b) 2069 }, 2070 _doFinalize: function() { 2071 var a; 2072 var b = this.cfg.padding; 2073 if (this._xformMode == this._ENC_XFORM_MODE) { 2074 b.pad(this._data, this.blockSize); 2075 a = this._process(!!'flush') 2076 } else { 2077 a = this._process(!!'flush'); 2078 b.unpad(a) 2079 } 2080 return a 2081 }, 2082 blockSize: 128 / 32 2083 }); 2084 var A = j.CipherParams = k.extend({ 2085 init: function(a) { 2086 this.mixIn(a) 2087 }, 2088 toString: function(a) { 2089 return (a || this.formatter).stringify(this) 2090 } 2091 }); 2092 var B = C.format = {}; 2093 var D = B.OpenSSL = { 2094 stringify: function(a) { 2095 var b; 2096 var c = a.ciphertext; 2097 var d = a.salt; 2098 if (d) { 2099 b = l.create([0x53616c74, 0x65645f5f]).concat(d).concat(c) 2100 } else { 2101 b = c 2102 } 2103 return b.toString(p) 2104 }, 2105 parse: function(a) { 2106 var b; 2107 var c = p.parse(a); 2108 var d = c.words; 2109 if (d[0] == 0x53616c74 && d[1] == 0x65645f5f) { 2110 b = l.create(d.slice(2, 4)); 2111 d.splice(0, 4); 2112 c.sigBytes -= 16 2113 } 2114 return A.create({ 2115 ciphertext: c, 2116 salt: b 2117 }) 2118 } 2119 }; 2120 var E = j.SerializableCipher = k.extend({ 2121 cfg: k.extend({ 2122 format: D 2123 }), 2124 encrypt: function(a, b, c, d) { 2125 d = this.cfg.extend(d); 2126 var e = a.createEncryptor(c, d); 2127 var f = e.finalize(b); 2128 var g = e.cfg; 2129 return A.create({ 2130 ciphertext: f, 2131 key: c, 2132 iv: g.iv, 2133 algorithm: a, 2134 mode: g.mode, 2135 padding: g.padding, 2136 blockSize: a.blockSize, 2137 formatter: d.format 2138 }) 2139 }, 2140 decrypt: function(a, b, c, d) { 2141 d = this.cfg.extend(d); 2142 b = this._parse(b, d.format); 2143 var e = a.createDecryptor(c, d).finalize(b.ciphertext); 2144 return e 2145 }, 2146 _parse: function(a, b) { 2147 if (typeof a == 'string') { 2148 return b.parse(a, this) 2149 } else { 2150 return a 2151 } 2152 } 2153 }); 2154 var F = C.kdf = {}; 2155 var G = F.OpenSSL = { 2156 execute: function(a, b, c, d) { 2157 if (!d) { 2158 d = l.random(64 / 8) 2159 } 2160 var e = r.create({ 2161 keySize: b + c 2162 }).compute(a, d); 2163 var f = l.create(e.words.slice(b), c * 4); 2164 e.sigBytes = b * 4; 2165 return A.create({ 2166 key: e, 2167 iv: f, 2168 salt: d 2169 }) 2170 } 2171 }; 2172 var H = j.PasswordBasedCipher = E.extend({ 2173 cfg: E.cfg.extend({ 2174 kdf: G 2175 }), 2176 encrypt: function(a, b, c, d) { 2177 d = this.cfg.extend(d); 2178 var e = d.kdf.execute(c, a.keySize, a.ivSize); 2179 d.iv = e.iv; 2180 var f = E.encrypt.call(this, a, b, e.key, d); 2181 f.mixIn(e); 2182 return f 2183 }, 2184 decrypt: function(a, b, c, d) { 2185 d = this.cfg.extend(d); 2186 b = this._parse(b, d.format); 2187 var e = d.kdf.execute(c, a.keySize, a.ivSize, b.salt); 2188 d.iv = e.iv; 2189 var f = E.decrypt.call(this, a, b, e.key, d); 2190 return f 2191 } 2192 }) 2193 }()); 2194 ba.mode.CFB = (function() { 2195 var g = ba.lib.BlockCipherMode.extend(); 2196 g.Encryptor = g.extend({ 2197 processBlock: function(a, b) { 2198 var c = this._cipher; 2199 var d = c.blockSize; 2200 generateKeystreamAndEncrypt.call(this, a, b, d, c); 2201 this._prevBlock = a.slice(b, b + d) 2202 } 2203 }); 2204 g.Decryptor = g.extend({ 2205 processBlock: function(a, b) { 2206 var c = this._cipher; 2207 var d = c.blockSize; 2208 var e = a.slice(b, b + d); 2209 generateKeystreamAndEncrypt.call(this, a, b, d, c); 2210 this._prevBlock = e 2211 } 2212 }); 2213 function generateKeystreamAndEncrypt(a, b, c, d) { 2214 var e; 2215 var f = this._iv; 2216 if (f) { 2217 e = f.slice(0); 2218 this._iv = undefined 2219 } else { 2220 e = this._prevBlock 2221 } 2222 d.encryptBlock(e, 0); 2223 for (var i = 0; i < c; i++) { 2224 a[b + i] ^= e[i] 2225 } 2226 } 2227 return g 2228 }()); 2229 ba.mode.CTR = (function() { 2230 var h = ba.lib.BlockCipherMode.extend(); 2231 var j = h.Encryptor = h.extend({ 2232 processBlock: function(a, b) { 2233 var c = this._cipher; 2234 var d = c.blockSize; 2235 var e = this._iv; 2236 var f = this._counter; 2237 if (e) { 2238 f = this._counter = e.slice(0); 2239 this._iv = undefined 2240 } 2241 var g = f.slice(0); 2242 c.encryptBlock(g, 0); 2243 f[d - 1] = (f[d - 1] + 1) | 0; 2244 for (var i = 0; i < d; i++) { 2245 a[b + i] ^= g[i] 2246 } 2247 } 2248 }); 2249 h.Decryptor = j; 2250 return h 2251 }()); 2252 ba.mode.CTRGladman = (function() { 2253 var h = ba.lib.BlockCipherMode.extend(); 2254 function incWord(a) { 2255 if (((a >> 24) & 0xff) === 0xff) { 2256 var b = (a >> 16) & 0xff;
2257 var c = (a >> 8) & 0xff; 2258 var d = a & 0xff; 2259 if (b === 0xff) { 2260 b = 0; 2261 if (c === 0xff) { 2262 c = 0; 2263 if (d === 0xff) { 2264 d = 0 2265 } else { 2266 ++d 2267 } 2268 } else { 2269 ++c 2270 } 2271 } else { 2272 ++b 2273 } 2274 a = 0; 2275 a += (b << 16); 2276 a += (c << 8); 2277 a += d 2278 } else { 2279 a += (0x01 << 24) 2280 } 2281 return a 2282 } 2283 function incCounter(a) { 2284 if ((a[0] = incWord(a[0])) === 0) { 2285 a[1] = incWord(a[1]) 2286 } 2287 return a 2288 } 2289 var j = h.Encryptor = h.extend({ 2290 processBlock: function(a, b) { 2291 var c = this._cipher; 2292 var d = c.blockSize; 2293 var e = this._iv; 2294 var f = this._counter; 2295 if (e) { 2296 f = this._counter = e.slice(0); 2297 this._iv = undefined 2298 } 2299 incCounter(f); 2300 var g = f.slice(0); 2301 c.encryptBlock(g, 0); 2302 for (var i = 0; i < d; i++) { 2303 a[b + i] ^= g[i] 2304 } 2305 } 2306 }); 2307 h.Decryptor = j; 2308 return h 2309 }()); 2310 ba.mode.OFB = (function() { 2311 var g = ba.lib.BlockCipherMode.extend(); 2312 var h = g.Encryptor = g.extend({ 2313 processBlock: function(a, b) { 2314 var c = this._cipher; 2315 var d = c.blockSize; 2316 var e = this._iv; 2317 var f = this._keystream; 2318 if (e) { 2319 f = this._keystream = e.slice(0); 2320 this._iv = undefined 2321 } 2322 c.encryptBlock(f, 0); 2323 for (var i = 0; i < d; i++) { 2324 a[b + i] ^= f[i] 2325 } 2326 } 2327 }); 2328 g.Decryptor = h; 2329 return g 2330 }()); 2331 ba.mode.ECB = (function() { 2332 var c = ba.lib.BlockCipherMode.extend(); 2333 c.Encryptor = c.extend({ 2334 processBlock: function(a, b) { 2335 this._cipher.encryptBlock(a, b) 2336 } 2337 }); 2338 c.Decryptor = c.extend({ 2339 processBlock: function(a, b) { 2340 this._cipher.decryptBlock(a, b) 2341 } 2342 }); 2343 return c 2344 }()); 2345 ba.pad.AnsiX923 = { 2346 pad: function(a, b) { 2347 var c = a.sigBytes; 2348 var d = b * 4; 2349 var e = d - c % d; 2350 var f = c + e - 1; 2351 a.clamp(); 2352 a.words[f >>> 2] |= e << (24 - (f % 4) * 8); 2353 a.sigBytes += e 2354 }, 2355 unpad: function(a) { 2356 var b = a.words[(a.sigBytes - 1) >>> 2] & 0xff;
2357 a.sigBytes -= b 2358 } 2359 }; 2360 ba.pad.Iso10126 = { 2361 pad: function(a, b) { 2362 var c = b * 4; 2363 var d = c - a.sigBytes % c; 2364 a.concat(ba.lib.WordArray.random(d - 1)).concat(ba.lib.WordArray.create([d << 24], 1)) 2365 }, 2366 unpad: function(a) { 2367 var b = a.words[(a.sigBytes - 1) >>> 2] & 0xff; 2368 a.sigBytes -= b 2369 } 2370 }; 2371 ba.pad.Iso97971 = { 2372 pad: function(a, b) { 2373 a.concat(ba.lib.WordArray.create([0x80000000], 1)); 2374 ba.pad.ZeroPadding.pad(a, b) 2375 }, 2376 unpad: function(a) { 2377 ba.pad.ZeroPadding.unpad(a); 2378 a.sigBytes-- 2379 } 2380 }; 2381 ba.pad.ZeroPadding = { 2382 pad: function(a, b) { 2383 var c = b * 4; 2384 a.clamp(); 2385 a.sigBytes += c - ((a.sigBytes % c) || c) 2386 }, 2387 unpad: function(a) { 2388 var b = a.words; 2389 var i = a.sigBytes - 1; 2390 for (var i = a.sigBytes - 1; i >= 0; i--) { 2391 if (((b[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { 2392 a.sigBytes = i + 1; 2393 break 2394 } 2395 } 2396 } 2397 }; 2398 ba.pad.NoPadding = { 2399 pad: function() {}, 2400 unpad: function() {} 2401 }; 2402 (function(c) { 2403 var C = ba; 2404 var d = C.lib; 2405 var e = d.CipherParams; 2406 var f = C.enc; 2407 var g = f.Hex; 2408 var h = C.format; 2409 var i = h.Hex = { 2410 stringify: function(a) { 2411 return a.ciphertext.toString(g) 2412 }, 2413 parse: function(a) { 2414 var b = g.parse(a); 2415 return e.create({ 2416 ciphertext: b 2417 }) 2418 } 2419 } 2420 }()); 2421 (function() { 2422 var C = ba; 2423 var s = C.lib; 2424 var u = s.BlockCipher; 2425 var v = C.algo; 2426 var w = []; 2427 var y = []; 2428 var z = []; 2429 var A = []; 2430 var B = []; 2431 var D = []; 2432 var E = []; 2433 var F = []; 2434 var G = []; 2435 var H = []; 2436 (function() { 2437 var d = []; 2438 for (var i = 0; i < 256; i++) { 2439 if (i < 128) { 2440 d[i] = i << 1 2441 } else { 2442 d[i] = (i << 1) ^ 0x11b 2443 } 2444 } 2445 var x = 0; 2446 var a = 0; 2447 for (var i = 0; i < 256; i++) { 2448 var b = a ^ (a << 1) ^ (a << 2) ^ (a << 3) ^ (a << 4); 2449 b = (b >>> 8) ^ (b & 0xff) ^ 0x63; 2450 w[x] = b; 2451 y[b] = x; 2452 var c = d[x]; 2453 var e = d[c]; 2454 var f = d[e]; 2455 var t = (d[b] * 0x101) ^ (b * 0x1010100); 2456 z[x] = (t << 24) | (t >>> 8); 2457 A[x] = (t << 16) | (t >>> 16); 2458 B[x] = (t << 8) | (t >>> 24); 2459 D[x] = t; 2460 var t = (f * 0x1010101) ^ (e * 0x10001) ^ (c * 0x101) ^ (x * 0x1010100); 2461 E[b] = (t << 24) | (t >>> 8); 2462 F[b] = (t << 16) | (t >>> 16); 2463 G[b] = (t << 8) | (t >>> 24); 2464 H[b] = t; 2465 if (!x) { 2466 x = a = 1 2467 } else { 2468 x = c ^ d[d[d[f ^ c]]]; 2469 a ^= d[d[a]] 2470 } 2471 } 2472 }()); 2473 var I = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; 2474 var J = v.AES = u.extend({ 2475 _doReset: function() { 2476 var t; 2477 if (this._nRounds && this._keyPriorReset === this._key) { 2478 return 2479 } 2480 var a = this._keyPriorReset = this._key; 2481 var b = a.words; 2482 var c = a.sigBytes / 4;
2483 var d = this._nRounds = c + 6; 2484 var e = (d + 1) * 4; 2485 var f = this._keySchedule = []; 2486 for (var g = 0; g < e; g++) { 2487 if (g < c) { 2488 f[g] = b[g] 2489 } else { 2490 t = f[g - 1]; 2491 if (!(g % c)) { 2492 t = (t << 8) | (t >>> 24); 2493 t = (w[t >>> 24] << 24) | (w[(t >>> 16) & 0xff] << 16) | (w[(t >>> 8) & 0xff] << 8) | w[t & 0xff]; 2494 t ^= I[(g / c) | 0] << 24 2495 } else if (c > 6 && g % c == 4) { 2496 t = (w[t >>> 24] << 24) | (w[(t >>> 16) & 0xff] << 16) | (w[(t >>> 8) & 0xff] << 8) | w[t & 0xff] 2497 } 2498 f[g] = f[g - c] ^ t 2499 } 2500 } 2501 var h = this._invKeySchedule = []; 2502 for (var i = 0; i < e; i++) { 2503 var g = e - i; 2504 if (i % 4) { 2505 var t = f[g] 2506 } else { 2507 var t = f[g - 4] 2508 } 2509 if (i < 4 || g <= 4) { 2510 h[i] = t 2511 } else { 2512 h[i] = E[w[t >>> 24]] ^ F[w[(t >>> 16) & 0xff]] ^ G[w[(t >>> 8) & 0xff]] ^ H[w[t & 0xff]] 2513 } 2514 } 2515 }, 2516 encryptBlock: function(M, a) { 2517 this._doCryptBlock(M, a, this._keySchedule, z, A, B, D, w) 2518 }, 2519 decryptBlock: function(M, a) { 2520 var t = M[a + 1]; 2521 M[a + 1] = M[a + 3]; 2522 M[a + 3] = t; 2523 this._doCryptBlock(M, a, this._invKeySchedule, E, F, G, H, y); 2524 var t = M[a + 1]; 2525 M[a + 1] = M[a + 3]; 2526 M[a + 3] = t 2527 }, 2528 _doCryptBlock: function(M, a, b, c, d, e, f, g) {
vendor: 16,187 bytes, lines 2529-2912
2529 var h = this._nRounds; 2530 var i = M[a] ^ b[0]; 2531 var j = M[a + 1] ^ b[1]; 2532 var k = M[a + 2] ^ b[2]; 2533 var l = M[a + 3] ^ b[3]; 2534 var m = 4; 2535 for (var n = 1; n < h; n++) { 2536 var o = c[i >>> 24] ^ d[(j >>> 16) & 0xff] ^ e[(k >>> 8) & 0xff] ^ f[l & 0xff] ^ b[m++]; 2537 var p = c[j >>> 24] ^ d[(k >>> 16) & 0xff] ^ e[(l >>> 8) & 0xff] ^ f[i & 0xff] ^ b[m++]; 2538 var q = c[k >>> 24] ^ d[(l >>> 16) & 0xff] ^ e[(i >>> 8) & 0xff] ^ f[j & 0xff] ^ b[m++]; 2539 var r = c[l >>> 24] ^ d[(i >>> 16) & 0xff] ^ e[(j >>> 8) & 0xff] ^ f[k & 0xff] ^ b[m++]; 2540 i = o; 2541 j = p; 2542 k = q; 2543 l = r 2544 } 2545 var o = ((g[i >>> 24] << 24) | (g[(j >>> 16) & 0xff] << 16) | (g[(k >>> 8) & 0xff] << 8) | g[l & 0xff]) ^ b[m++]; 2546 var p = ((g[j >>> 24] << 24) | (g[(k >>> 16) & 0xff] << 16) | (g[(l >>> 8) & 0xff] << 8) | g[i & 0xff]) ^ b[m++]; 2547 var q = ((g[k >>> 24] << 24) | (g[(l >>> 16) & 0xff] << 16) | (g[(i >>> 8) & 0xff] << 8) | g[j & 0xff]) ^ b[m++]; 2548 var r = ((g[l >>> 24] << 24) | (g[(i >>> 16) & 0xff] << 16) | (g[(j >>> 8) & 0xff] << 8) | g[k & 0xff]) ^ b[m++]; 2549 M[a] = o; 2550 M[a + 1] = p; 2551 M[a + 2] = q; 2552 M[a + 3] = r 2553 }, 2554 keySize: 256 / 32 2555 }); 2556 C.AES = u._createHelper(J) 2557 }()); 2558 (function() { 2559 var C = ba; 2560 var k = C.lib; 2561 var l = k.WordArray; 2562 var m = k.BlockCipher; 2563 var n = C.algo; 2564 var o = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4]; 2565 var p = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32]; 2566 var q = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; 2567 var r = [{ 2568 0x0: 0x808200, 2569 0x10000000: 0x8000, 2570 0x20000000: 0x808002, 2571 0x30000000: 0x2, 2572 0x40000000: 0x200, 2573 0x50000000: 0x808202, 2574 0x60000000: 0x800202, 2575 0x70000000: 0x800000, 2576 0x80000000: 0x202, 2577 0x90000000: 0x800200, 2578 0xa0000000: 0x8200, 2579 0xb0000000: 0x808000, 2580 0xc0000000: 0x8002, 2581 0xd0000000: 0x800002, 2582 0xe0000000: 0x0, 2583 0xf0000000: 0x8202, 2584 0x8000000: 0x0, 2585 0x18000000: 0x808202, 2586 0x28000000: 0x8202, 2587 0x38000000: 0x8000, 2588 0x48000000: 0x808200, 2589 0x58000000: 0x200, 2590 0x68000000: 0x808002, 2591 0x78000000: 0x2, 2592 0x88000000: 0x800200, 2593 0x98000000: 0x8200, 2594 0xa8000000: 0x808000, 2595 0xb8000000: 0x800202, 2596 0xc8000000: 0x800002, 2597 0xd8000000: 0x8002, 2598 0xe8000000: 0x202, 2599 0xf8000000: 0x800000, 2600 0x1: 0x8000, 2601 0x10000001: 0x2, 2602 0x20000001: 0x808200, 2603 0x30000001: 0x800000, 2604 0x40000001: 0x808002, 2605 0x50000001: 0x8200, 2606 0x60000001: 0x200, 2607 0x70000001: 0x800202, 2608 0x80000001: 0x808202, 2609 0x90000001: 0x808000, 2610 0xa0000001: 0x800002, 2611 0xb0000001: 0x8202, 2612 0xc0000001: 0x202, 2613 0xd0000001: 0x800200, 2614 0xe0000001: 0x8002, 2615 0xf0000001: 0x0, 2616 0x8000001: 0x808202, 2617 0x18000001: 0x808000, 2618 0x28000001: 0x800000, 2619 0x38000001: 0x200, 2620 0x48000001: 0x8000, 2621 0x58000001: 0x800002, 2622 0x68000001: 0x2, 2623 0x78000001: 0x8202, 2624 0x88000001: 0x8002, 2625 0x98000001: 0x800202, 2626 0xa8000001: 0x202, 2627 0xb8000001: 0x808200, 2628 0xc8000001: 0x800200, 2629 0xd8000001: 0x0, 2630 0xe8000001: 0x8200, 2631 0xf8000001: 0x808002 2632 }, { 2633 0x0: 0x40084010, 2634 0x1000000: 0x4000, 2635 0x2000000: 0x80000, 2636 0x3000000: 0x40080010, 2637 0x4000000: 0x40000010, 2638 0x5000000: 0x40084000, 2639 0x6000000: 0x40004000, 2640 0x7000000: 0x10, 2641 0x8000000: 0x84000, 2642 0x9000000: 0x40004010, 2643 0xa000000: 0x40000000, 2644 0xb000000: 0x84010, 2645 0xc000000: 0x80010, 2646 0xd000000: 0x0, 2647 0xe000000: 0x4010, 2648 0xf000000: 0x40080000, 2649 0x800000: 0x40004000, 2650 0x1800000: 0x84010, 2651 0x2800000: 0x10, 2652 0x3800000: 0x40004010, 2653 0x4800000: 0x40084010, 2654 0x5800000: 0x40000000, 2655 0x6800000: 0x80000, 2656 0x7800000: 0x40080010, 2657 0x8800000: 0x80010, 2658 0x9800000: 0x0, 2659 0xa800000: 0x4000, 2660 0xb800000: 0x40080000, 2661 0xc800000: 0x40000010, 2662 0xd800000: 0x84000, 2663 0xe800000: 0x40084000, 2664 0xf800000: 0x4010, 2665 0x10000000: 0x0, 2666 0x11000000: 0x40080010, 2667 0x12000000: 0x40004010, 2668 0x13000000: 0x40084000, 2669 0x14000000: 0x40080000, 2670 0x15000000: 0x10, 2671 0x16000000: 0x84010, 2672 0x17000000: 0x4000, 2673 0x18000000: 0x4010, 2674 0x19000000: 0x80000, 2675 0x1a000000: 0x80010, 2676 0x1b000000: 0x40000010, 2677 0x1c000000: 0x84000, 2678 0x1d000000: 0x40004000, 2679 0x1e000000: 0x40000000, 2680 0x1f000000: 0x40084010, 2681 0x10800000: 0x84010, 2682 0x11800000: 0x80000, 2683 0x12800000: 0x40080000, 2684 0x13800000: 0x4000, 2685 0x14800000: 0x40004000, 2686 0x15800000: 0x40084010, 2687 0x16800000: 0x10, 2688 0x17800000: 0x40000000, 2689 0x18800000: 0x40084000, 2690 0x19800000: 0x40000010, 2691 0x1a800000: 0x40004010, 2692 0x1b800000: 0x80010, 2693 0x1c800000: 0x0, 2694 0x1d800000: 0x4010, 2695 0x1e800000: 0x40080010, 2696 0x1f800000: 0x84000 2697 }, { 2698 0x0: 0x104, 2699 0x100000: 0x0, 2700 0x200000: 0x4000100, 2701 0x300000: 0x10104, 2702 0x400000: 0x10004, 2703 0x500000: 0x4000004, 2704 0x600000: 0x4010104, 2705 0x700000: 0x4010000, 2706 0x800000: 0x4000000, 2707 0x900000: 0x4010100, 2708 0xa00000: 0x10100, 2709 0xb00000: 0x4010004, 2710 0xc00000: 0x4000104, 2711 0xd00000: 0x10000, 2712 0xe00000: 0x4, 2713 0xf00000: 0x100, 2714 0x80000: 0x4010100, 2715 0x180000: 0x4010004, 2716 0x280000: 0x0, 2717 0x380000: 0x4000100, 2718 0x480000: 0x4000004, 2719 0x580000: 0x10000, 2720 0x680000: 0x10004, 2721 0x780000: 0x104, 2722 0x880000: 0x4, 2723 0x980000: 0x100, 2724 0xa80000: 0x4010000, 2725 0xb80000: 0x10104, 2726 0xc80000: 0x10100, 2727 0xd80000: 0x4000104, 2728 0xe80000: 0x4010104, 2729 0xf80000: 0x4000000, 2730 0x1000000: 0x4010100, 2731 0x1100000: 0x10004, 2732 0x1200000: 0x10000, 2733 0x1300000: 0x4000100, 2734 0x1400000: 0x100, 2735 0x1500000: 0x4010104, 2736 0x1600000: 0x4000004, 2737 0x1700000: 0x0, 2738 0x1800000: 0x4000104, 2739 0x1900000: 0x4000000, 2740 0x1a00000: 0x4, 2741 0x1b00000: 0x10100, 2742 0x1c00000: 0x4010000, 2743 0x1d00000: 0x104, 2744 0x1e00000: 0x10104, 2745 0x1f00000: 0x4010004, 2746 0x1080000: 0x4000000, 2747 0x1180000: 0x104, 2748 0x1280000: 0x4010100, 2749 0x1380000: 0x0, 2750 0x1480000: 0x10004, 2751 0x1580000: 0x4000100, 2752 0x1680000: 0x100, 2753 0x1780000: 0x4010004, 2754 0x1880000: 0x10000, 2755 0x1980000: 0x4010104, 2756 0x1a80000: 0x10104, 2757 0x1b80000: 0x4000004, 2758 0x1c80000: 0x4000104, 2759 0x1d80000: 0x4010000, 2760 0x1e80000: 0x4, 2761 0x1f80000: 0x10100 2762 }, { 2763 0x0: 0x80401000, 2764 0x10000: 0x80001040, 2765 0x20000: 0x401040, 2766 0x30000: 0x80400000, 2767 0x40000: 0x0, 2768 0x50000: 0x401000, 2769 0x60000: 0x80000040, 2770 0x70000: 0x400040, 2771 0x80000: 0x80000000, 2772 0x90000: 0x400000, 2773 0xa0000: 0x40, 2774 0xb0000: 0x80001000, 2775 0xc0000: 0x80400040, 2776 0xd0000: 0x1040, 2777 0xe0000: 0x1000, 2778 0xf0000: 0x80401040, 2779 0x8000: 0x80001040, 2780 0x18000: 0x40, 2781 0x28000: 0x80400040, 2782 0x38000: 0x80001000, 2783 0x48000: 0x401000, 2784 0x58000: 0x80401040, 2785 0x68000: 0x0, 2786 0x78000: 0x80400000, 2787 0x88000: 0x1000, 2788 0x98000: 0x80401000, 2789 0xa8000: 0x400000, 2790 0xb8000: 0x1040, 2791 0xc8000: 0x80000000, 2792 0xd8000: 0x400040, 2793 0xe8000: 0x401040, 2794 0xf8000: 0x80000040, 2795 0x100000: 0x400040, 2796 0x110000: 0x401000, 2797 0x120000: 0x80000040, 2798 0x130000: 0x0, 2799 0x140000: 0x1040, 2800 0x150000: 0x80400040, 2801 0x160000: 0x80401000, 2802 0x170000: 0x80001040, 2803 0x180000: 0x80401040, 2804 0x190000: 0x80000000, 2805 0x1a0000: 0x80400000, 2806 0x1b0000: 0x401040, 2807 0x1c0000: 0x80001000, 2808 0x1d0000: 0x400000, 2809 0x1e0000: 0x40, 2810 0x1f0000: 0x1000, 2811 0x108000: 0x80400000, 2812 0x118000: 0x80401040, 2813 0x128000: 0x0, 2814 0x138000: 0x401000, 2815 0x148000: 0x400040, 2816 0x158000: 0x80000000, 2817 0x168000: 0x80001040, 2818 0x178000: 0x40, 2819 0x188000: 0x80000040, 2820 0x198000: 0x1000, 2821 0x1a8000: 0x80001000, 2822 0x1b8000: 0x80400040, 2823 0x1c8000: 0x1040, 2824 0x1d8000: 0x80401000, 2825 0x1e8000: 0x400000, 2826 0x1f8000: 0x401040 2827 }, { 2828 0x0: 0x80, 2829 0x1000: 0x1040000, 2830 0x2000: 0x40000, 2831 0x3000: 0x20000000, 2832 0x4000: 0x20040080, 2833 0x5000: 0x1000080, 2834 0x6000: 0x21000080, 2835 0x7000: 0x40080, 2836 0x8000: 0x1000000, 2837 0x9000: 0x20040000, 2838 0xa000: 0x20000080, 2839 0xb000: 0x21040080, 2840 0xc000: 0x21040000, 2841 0xd000: 0x0, 2842 0xe000: 0x1040080, 2843 0xf000: 0x21000000, 2844 0x800: 0x1040080, 2845 0x1800: 0x21000080, 2846 0x2800: 0x80, 2847 0x3800: 0x1040000, 2848 0x4800: 0x40000, 2849 0x5800: 0x20040080, 2850 0x6800: 0x21040000, 2851 0x7800: 0x20000000, 2852 0x8800: 0x20040000, 2853 0x9800: 0x0, 2854 0xa800: 0x21040080, 2855 0xb800: 0x1000080, 2856 0xc800: 0x20000080, 2857 0xd800: 0x21000000, 2858 0xe800: 0x1000000, 2859 0xf800: 0x40080, 2860 0x10000: 0x40000, 2861 0x11000: 0x80, 2862 0x12000: 0x20000000, 2863 0x13000: 0x21000080, 2864 0x14000: 0x1000080, 2865 0x15000: 0x21040000, 2866 0x16000: 0x20040080, 2867 0x17000: 0x1000000, 2868 0x18000: 0x21040080, 2869 0x19000: 0x21000000, 2870 0x1a000: 0x1040000, 2871 0x1b000: 0x20040000, 2872 0x1c000: 0x40080, 2873 0x1d000: 0x20000080, 2874 0x1e000: 0x0, 2875 0x1f000: 0x1040080, 2876 0x10800: 0x21000080, 2877 0x11800: 0x1000000, 2878 0x12800: 0x1040000, 2879 0x13800: 0x20040080, 2880 0x14800: 0x20000000, 2881 0x15800: 0x1040080, 2882 0x16800: 0x80, 2883 0x17800: 0x21040000, 2884 0x18800: 0x40080, 2885 0x19800: 0x21040080, 2886 0x1a800: 0x0, 2887 0x1b800: 0x21000000, 2888 0x1c800: 0x1000080, 2889 0x1d800: 0x40000, 2890 0x1e800: 0x20040000, 2891 0x1f800: 0x20000080 2892 }, { 2893 0x0: 0x10000008, 2894 0x100: 0x2000, 2895 0x200: 0x10200000, 2896 0x300: 0x10202008, 2897 0x400: 0x10002000, 2898 0x500: 0x200000, 2899 0x600: 0x200008, 2900 0x700: 0x10000000, 2901 0x800: 0x0, 2902 0x900: 0x10002008, 2903 0xa00: 0x202000, 2904 0xb00: 0x8, 2905 0xc00: 0x10200008, 2906 0xd00: 0x202008, 2907 0xe00: 0x2008, 2908 0xf00: 0x10202000, 2909 0x80: 0x10200000, 2910 0x180: 0x10202008, 2911 0x280: 0x8, 2912 0x380: 0x200000,
2913 0x480: 0x202008, 2914 0x580: 0x10000008, 2915 0x680: 0x10002000, 2916 0x780: 0x2008, 2917 0x880: 0x200008, 2918 0x980: 0x2000, 2919 0xa80: 0x10002008, 2920 0xb80: 0x10200008, 2921 0xc80: 0x0, 2922 0xd80: 0x10202000, 2923 0xe80: 0x202000, 2924 0xf80: 0x10000000, 2925 0x1000: 0x10002000, 2926 0x1100: 0x10200008, 2927 0x1200: 0x10202008, 2928 0x1300: 0x2008, 2929 0x1400: 0x200000, 2930 0x1500: 0x10000000, 2931 0x1600: 0x10000008, 2932 0x1700: 0x202000, 2933 0x1800: 0x202008, 2934 0x1900: 0x0, 2935 0x1a00: 0x8, 2936 0x1b00: 0x10200000, 2937 0x1c00: 0x2000, 2938 0x1d00: 0x10002008, 2939 0x1e00: 0x10202000, 2940 0x1f00: 0x200008, 2941 0x1080: 0x8, 2942 0x1180: 0x202000, 2943 0x1280: 0x200000, 2944 0x1380: 0x10000008, 2945 0x1480: 0x10002000, 2946 0x1580: 0x2008, 2947 0x1680: 0x10202008, 2948 0x1780: 0x10200000, 2949 0x1880: 0x10202000, 2950 0x1980: 0x10200008, 2951 0x1a80: 0x2000, 2952 0x1b80: 0x202008, 2953 0x1c80: 0x200008, 2954 0x1d80: 0x0, 2955 0x1e80: 0x10000000, 2956 0x1f80: 0x10002008 2957 }, { 2958 0x0: 0x100000, 2959 0x10: 0x2000401, 2960 0x20: 0x400, 2961 0x30: 0x100401, 2962 0x40: 0x2100401, 2963 0x50: 0x0, 2964 0x60: 0x1, 2965 0x70: 0x2100001, 2966 0x80: 0x2000400, 2967 0x90: 0x100001, 2968 0xa0: 0x2000001, 2969 0xb0: 0x2100400, 2970 0xc0: 0x2100000, 2971 0xd0: 0x401, 2972 0xe0: 0x100400, 2973 0xf0: 0x2000000, 2974 0x8: 0x2100001, 2975 0x18: 0x0, 2976 0x28: 0x2000401, 2977 0x38: 0x2100400, 2978 0x48: 0x100000, 2979 0x58: 0x2000001, 2980 0x68: 0x2000000, 2981 0x78: 0x401, 2982 0x88: 0x100401, 2983 0x98: 0x2000400, 2984 0xa8: 0x2100000, 2985 0xb8: 0x100001, 2986 0xc8: 0x400, 2987 0xd8: 0x2100401, 2988 0xe8: 0x1, 2989 0xf8: 0x100400, 2990 0x100: 0x2000000, 2991 0x110: 0x100000, 2992 0x120: 0x2000401, 2993 0x130: 0x2100001, 2994 0x140: 0x100001, 2995 0x150: 0x2000400, 2996 0x160: 0x2100400, 2997 0x170: 0x100401, 2998 0x180: 0x401, 2999 0x190: 0x2100401, 3000 0x1a0: 0x100400, 3001 0x1b0: 0x1, 3002 0x1c0: 0x0, 3003 0x1d0: 0x2100000, 3004 0x1e0: 0x2000001, 3005 0x1f0: 0x400, 3006 0x108: 0x100400, 3007 0x118: 0x2000401, 3008 0x128: 0x2100001, 3009 0x138: 0x1, 3010 0x148: 0x2000000, 3011 0x158: 0x100000, 3012 0x168: 0x401, 3013 0x178: 0x2100400, 3014 0x188: 0x2000001, 3015 0x198: 0x2100000, 3016 0x1a8: 0x0, 3017 0x1b8: 0x2100401, 3018 0x1c8: 0x100401, 3019 0x1d8: 0x400, 3020 0x1e8: 0x2000400, 3021 0x1f8: 0x100001 3022 }, { 3023 0x0: 0x8000820, 3024 0x1: 0x20000, 3025 0x2: 0x8000000, 3026 0x3: 0x20, 3027 0x4: 0x20020, 3028 0x5: 0x8020820, 3029 0x6: 0x8020800, 3030 0x7: 0x800, 3031 0x8: 0x8020000, 3032 0x9: 0x8000800, 3033 0xa: 0x20800, 3034 0xb: 0x8020020, 3035 0xc: 0x820, 3036 0xd: 0x0, 3037 0xe: 0x8000020, 3038 0xf: 0x20820, 3039 0x80000000: 0x800, 3040 0x80000001: 0x8020820, 3041 0x80000002: 0x8000820, 3042 0x80000003: 0x8000000, 3043 0x80000004: 0x8020000, 3044 0x80000005: 0x20800, 3045 0x80000006: 0x20820, 3046 0x80000007: 0x20, 3047 0x80000008: 0x8000020, 3048 0x80000009: 0x820, 3049 0x8000000a: 0x20020, 3050 0x8000000b: 0x8020800, 3051 0x8000000c: 0x0, 3052 0x8000000d: 0x8020020, 3053 0x8000000e: 0x8000800, 3054 0x8000000f: 0x20000, 3055 0x10: 0x20820, 3056 0x11: 0x8020800, 3057 0x12: 0x20, 3058 0x13: 0x800, 3059 0x14: 0x8000800, 3060 0x15: 0x8000020, 3061 0x16: 0x8020020, 3062 0x17: 0x20000, 3063 0x18: 0x0, 3064 0x19: 0x20020, 3065 0x1a: 0x8020000, 3066 0x1b: 0x8000820, 3067 0x1c: 0x8020820,
3068 0x1d: 0x20800, 3069 0x1e: 0x820, 3070 0x1f: 0x8000000, 3071 0x80000010: 0x20000, 3072 0x80000011: 0x800, 3073 0x80000012: 0x8020020, 3074 0x80000013: 0x20820, 3075 0x80000014: 0x20, 3076 0x80000015: 0x8020000, 3077 0x80000016: 0x8000000, 3078 0x80000017: 0x8000820, 3079 0x80000018: 0x8020820, 3080 0x80000019: 0x8000020, 3081 0x8000001a: 0x8000800, 3082 0x8000001b: 0x0, 3083 0x8000001c: 0x20800, 3084 0x8000001d: 0x820, 3085 0x8000001e: 0x20020, 3086 0x8000001f: 0x8020800 3087 }]; 3088 var s = [0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f]; 3089 var u = n.DES = m.extend({ 3090 _doReset: function() { 3091 var a = this._key; 3092 var b = a.words; 3093 var c = []; 3094 for (var i = 0; i < 56; i++) { 3095 var d = o[i] - 1; 3096 c[i] = (b[d >>> 5] >>> (31 - d % 32)) & 1 3097 } 3098 var e = this._subKeys = []; 3099 for (var f = 0; f < 16; f++) { 3100 var g = e[f] = []; 3101 var h = q[f]; 3102 for (var i = 0; i < 24; i++) { 3103 g[(i / 6) | 0] |= c[((p[i] - 1) + h) % 28] << (31 - i % 6); 3104 g[4 + ((i / 6) | 0)] |= c[28 + (((p[i + 24] - 1) + h) % 28)] << (31 - i % 6) 3105 } 3106 g[0] = (g[0] << 1) | (g[0] >>> 31); 3107 for (var i = 1; i < 7; i++) { 3108 g[i] = g[i] >>> ((i - 1) * 4 + 3) 3109 } 3110 g[7] = (g[7] << 5) | (g[7] >>> 27) 3111 } 3112 var j = this._invSubKeys = []; 3113 for (var i = 0; i < 16; i++) { 3114 j[i] = e[15 - i] 3115 } 3116 }, 3117 encryptBlock: function(M, a) { 3118 this._doCryptBlock(M, a, this._subKeys) 3119 }, 3120 decryptBlock: function(M, a) { 3121 this._doCryptBlock(M, a, this._invSubKeys) 3122 }, 3123 _doCryptBlock: function(M, a, b) { 3124 this._lBlock = M[a]; 3125 this._rBlock = M[a + 1]; 3126 exchangeLR.call(this, 4, 0x0f0f0f0f); 3127 exchangeLR.call(this, 16, 0x0000ffff); 3128 exchangeRL.call(this, 2, 0x33333333); 3129 exchangeRL.call(this, 8, 0x00ff00ff); 3130 exchangeLR.call(this, 1, 0x55555555); 3131 for (var c = 0; c < 16; c++) { 3132 var d = b[c]; 3133 var e = this._lBlock; 3134 var g = this._rBlock; 3135 var f = 0; 3136 for (var i = 0; i < 8; i++) { 3137 f |= r[i][((g ^ d[i]) & s[i]) >>> 0] 3138 } 3139 this._lBlock = g; 3140 this._rBlock = e ^ f 3141 } 3142 var t = this._lBlock; 3143 this._lBlock = this._rBlock; 3144 this._rBlock = t; 3145 exchangeLR.call(this, 1, 0x55555555); 3146 exchangeRL.call(this, 8, 0x00ff00ff); 3147 exchangeRL.call(this, 2, 0x33333333); 3148 exchangeLR.call(this, 16, 0x0000ffff); 3149 exchangeLR.call(this, 4, 0x0f0f0f0f); 3150 M[a] = this._lBlock; 3151 M[a + 1] = this._rBlock 3152 }, 3153 keySize: 64 / 32, 3154 ivSize: 64 / 32, 3155 blockSize: 64 / 32 3156 }); 3157 function exchangeLR(a, b) { 3158 var t = ((this._lBlock >>> a) ^ this._rBlock) & b; 3159 this._rBlock ^= t; 3160 this._lBlock ^= t << a 3161 } 3162 function exchangeRL(a, b) { 3163 var t = ((this._rBlock >>> a) ^ this._lBlock) & b; 3164 this._lBlock ^= t; 3165 this._rBlock ^= t << a 3166 } 3167 C.DES = m._createHelper(u); 3168 var v = n.TripleDES = m.extend({ 3169 _doReset: function() { 3170 var a = this._key; 3171 var b = a.words; 3172 if (b.length !== 2 && b.length !== 4 && b.length < 6) { 3173 throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); 3174 } 3175 var c = b.slice(0, 2); 3176 var d = b.length < 4 ? b.slice(0, 2) : b.slice(2, 4); 3177 var e = b.length < 6 ? b.slice(0, 2) : b.slice(4, 6); 3178 this._des1 = u.createEncryptor(l.create(c)); 3179 this._des2 = u.createEncryptor(l.create(d)); 3180 this._des3 = u.createEncryptor(l.create(e)) 3181 }, 3182 encryptBlock: function(M, a) { 3183 this._des1.encryptBlock(M, a); 3184 this._des2.decryptBlock(M, a); 3185 this._des3.encryptBlock(M, a) 3186 }, 3187 decryptBlock: function(M, a) { 3188 this._des3.decryptBlock(M, a); 3189 this._des2.encryptBlock(M, a); 3190 this._des1.decryptBlock(M, a) 3191 }, 3192 keySize: 192 / 32, 3193 ivSize: 64 / 32, 3194 blockSize: 64 / 32 3195 }); 3196 C.TripleDES = m._createHelper(v) 3197 }()); 3198 (function() { 3199 var C = ba; 3200 var f = C.lib; 3201 var g = f.StreamCipher; 3202 var h = C.algo; 3203 var k = h.RC4 = g.extend({ 3204 _doReset: function() { 3205 var a = this._key; 3206 var b = a.words; 3207 var c = a.sigBytes; 3208 var S = this._S = []; 3209 for (var i = 0; i < 256; i++) { 3210 S[i] = i 3211 } 3212 for (var i = 0, j = 0; i < 256; i++) { 3213 var d = i % c; 3214 var e = (b[d >>> 2] >>> (24 - (d % 4) * 8)) & 0xff;
3215 j = (j + S[i] + e) % 256; 3216 var t = S[i]; 3217 S[i] = S[j]; 3218 S[j] = t 3219 } 3220 this._i = this._j = 0 3221 }, 3222 _doProcessBlock: function(M, a) { 3223 M[a] ^= generateKeystreamWord.call(this) 3224 }, 3225 keySize: 256 / 32, 3226 ivSize: 0 3227 }); 3228 function generateKeystreamWord() { 3229 var S = this._S; 3230 var i = this._i; 3231 var j = this._j; 3232 var a = 0; 3233 for (var n = 0; n < 4; n++) { 3234 i = (i + 1) % 256; 3235 j = (j + S[i]) % 256; 3236 var t = S[i]; 3237 S[i] = S[j]; 3238 S[j] = t; 3239 a |= S[(S[i] + S[j]) % 256] << (24 - n * 8) 3240 } 3241 this._i = i; 3242 this._j = j; 3243 return a 3244 } 3245 C.RC4 = g._createHelper(k); 3246 var l = h.RC4Drop = k.extend({ 3247 cfg: k.cfg.extend({ 3248 drop: 192 3249 }), 3250 _doReset: function() { 3251 k._doReset.call(this); 3252 for (var i = this.cfg.drop; i > 0; i--) { 3253 generateKeystreamWord.call(this) 3254 } 3255 } 3256 }); 3257 C.RC4Drop = g._createHelper(l) 3258 }()); 3259 (function() { 3260 var C = ba; 3261 var j = C.lib; 3262 var k = j.StreamCipher; 3263 var l = C.algo; 3264 var S = []; 3265 var m = []; 3266 var G = []; 3267 var n = l.Rabbit = k.extend({ 3268 _doReset: function() { 3269 var K = this._key.words; 3270 var a = this.cfg.iv; 3271 for (var i = 0; i < 4; i++) { 3272 K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00) 3273 } 3274 var X = this._X = [K[0], (K[3] << 16) | (K[2] >>> 16), K[1], (K[0] << 16) | (K[3] >>> 16), K[2], (K[1] << 16) | (K[0] >>> 16), K[3], (K[2] << 16) | (K[1] >>> 16)]; 3275 var C = this._C = [(K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)]; 3276 this._b = 0; 3277 for (var i = 0; i < 4; i++) { 3278 nextState.call(this) 3279 } 3280 for (var i = 0; i < 8; i++) { 3281 C[i] ^= X[(i + 4) & 7] 3282 } 3283 if (a) { 3284 var b = a.words; 3285 var c = b[0]; 3286 var d = b[1]; 3287 var e = (((c << 8) | (c >>> 24)) & 0x00ff00ff) | (((c << 24) | (c >>> 8)) & 0xff00ff00); 3288 var f = (((d << 8) | (d >>> 24)) & 0x00ff00ff) | (((d << 24) | (d >>> 8)) & 0xff00ff00); 3289 var g = (e >>> 16) | (f & 0xffff0000); 3290 var h = (f << 16) | (e & 0x0000ffff); 3291 C[0] ^= e; 3292 C[1] ^= g; 3293 C[2] ^= f; 3294 C[3] ^= h; 3295 C[4] ^= e; 3296 C[5] ^= g; 3297 C[6] ^= f; 3298 C[7] ^= h; 3299 for (var i = 0; i < 4; i++) { 3300 nextState.call(this) 3301 } 3302 } 3303 }, 3304 _doProcessBlock: function(M, a) { 3305 var X = this._X; 3306 nextState.call(this); 3307 S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); 3308 S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); 3309 S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); 3310 S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); 3311 for (var i = 0; i < 4; i++) { 3312 S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); 3313 M[a + i] ^= S[i] 3314 } 3315 }, 3316 blockSize: 128 / 32, 3317 ivSize: 64 / 32 3318 }); 3319 function nextState() { 3320 var X = this._X; 3321 var C = this._C; 3322 for (var i = 0; i < 8; i++) { 3323 m[i] = C[i] 3324 }
vendor: 5,285 bytes, lines 3325-3415
3325 C[0] = (C[0] + 0x4d34d34d + this._b) | 0; 3326 C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (m[0] >>> 0) ? 1 : 0)) | 0; 3327 C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (m[1] >>> 0) ? 1 : 0)) | 0; 3328 C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (m[2] >>> 0) ? 1 : 0)) | 0; 3329 C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (m[3] >>> 0) ? 1 : 0)) | 0; 3330 C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (m[4] >>> 0) ? 1 : 0)) | 0; 3331 C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (m[5] >>> 0) ? 1 : 0)) | 0; 3332 C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (m[6] >>> 0) ? 1 : 0)) | 0; 3333 this._b = (C[7] >>> 0) < (m[7] >>> 0) ? 1 : 0; 3334 for (var i = 0; i < 8; i++) { 3335 var a = X[i] + C[i]; 3336 var b = a & 0xffff; 3337 var c = a >>> 16; 3338 var d = ((((b * b) >>> 17) + b * c) >>> 15) + c * c; 3339 var e = (((a & 0xffff0000) * a) | 0) + (((a & 0x0000ffff) * a) | 0); 3340 G[i] = d ^ e 3341 } 3342 X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; 3343 X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; 3344 X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; 3345 X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; 3346 X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; 3347 X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; 3348 X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; 3349 X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0 3350 } 3351 C.Rabbit = k._createHelper(n) 3352 }()); 3353 (function() { 3354 var C = ba; 3355 var j = C.lib; 3356 var k = j.StreamCipher; 3357 var l = C.algo; 3358 var S = []; 3359 var m = []; 3360 var G = []; 3361 var n = l.RabbitLegacy = k.extend({ 3362 _doReset: function() { 3363 var K = this._key.words; 3364 var a = this.cfg.iv; 3365 var X = this._X = [K[0], (K[3] << 16) | (K[2] >>> 16), K[1], (K[0] << 16) | (K[3] >>> 16), K[2], (K[1] << 16) | (K[0] >>> 16), K[3], (K[2] << 16) | (K[1] >>> 16)]; 3366 var C = this._C = [(K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)]; 3367 this._b = 0; 3368 for (var i = 0; i < 4; i++) { 3369 nextState.call(this) 3370 } 3371 for (var i = 0; i < 8; i++) { 3372 C[i] ^= X[(i + 4) & 7] 3373 } 3374 if (a) { 3375 var b = a.words; 3376 var c = b[0]; 3377 var d = b[1]; 3378 var e = (((c << 8) | (c >>> 24)) & 0x00ff00ff) | (((c << 24) | (c >>> 8)) & 0xff00ff00); 3379 var f = (((d << 8) | (d >>> 24)) & 0x00ff00ff) | (((d << 24) | (d >>> 8)) & 0xff00ff00); 3380 var g = (e >>> 16) | (f & 0xffff0000); 3381 var h = (f << 16) | (e & 0x0000ffff); 3382 C[0] ^= e; 3383 C[1] ^= g; 3384 C[2] ^= f; 3385 C[3] ^= h; 3386 C[4] ^= e; 3387 C[5] ^= g; 3388 C[6] ^= f; 3389 C[7] ^= h; 3390 for (var i = 0; i < 4; i++) { 3391 nextState.call(this) 3392 } 3393 } 3394 }, 3395 _doProcessBlock: function(M, a) { 3396 var X = this._X; 3397 nextState.call(this); 3398 S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); 3399 S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); 3400 S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); 3401 S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); 3402 for (var i = 0; i < 4; i++) { 3403 S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); 3404 M[a + i] ^= S[i] 3405 } 3406 }, 3407 blockSize: 128 / 32, 3408 ivSize: 64 / 32 3409 }); 3410 function nextState() { 3411 var X = this._X; 3412 var C = this._C; 3413 for (var i = 0; i < 8; i++) { 3414 m[i] = C[i] 3415 }
3416 C[0] = (C[0] + 0x4d34d34d + this._b) | 0; 3417 C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (m[0] >>> 0) ? 1 : 0)) | 0; 3418 C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (m[1] >>> 0) ? 1 : 0)) | 0; 3419 C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (m[2] >>> 0) ? 1 : 0)) | 0; 3420 C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (m[3] >>> 0) ? 1 : 0)) | 0; 3421 C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (m[4] >>> 0) ? 1 : 0)) | 0; 3422 C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (m[5] >>> 0) ? 1 : 0)) | 0; 3423 C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (m[6] >>> 0) ? 1 : 0)) | 0; 3424 this._b = (C[7] >>> 0) < (m[7] >>> 0) ? 1 : 0; 3425 for (var i = 0; i < 8; i++) { 3426 var a = X[i] + C[i]; 3427 var b = a & 0xffff; 3428 var c = a >>> 16; 3429 var d = ((((b * b) >>> 17) + b * c) >>> 15) + c * c; 3430 var e = (((a & 0xffff0000) * a) | 0) + (((a & 0x0000ffff) * a) | 0); 3431 G[i] = d ^ e 3432 } 3433 X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; 3434 X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; 3435 X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; 3436 X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; 3437 X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; 3438 X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; 3439 X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; 3440 X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0 3441 } 3442 C.RabbitLegacy = k._createHelper(n) 3443 }()); 3444 return ba 3445 }, 3446 }; 3447 3448 // ====================== Worker 主é»è¾ ====================== 3449 onmessage = function(e) { 3450 const {imglink, preview, noloads, imgtype, imgkeys} = e.data; 3451 3452 // 3453 worker.loaderjs({ 3454 imgkeys, 3455 imglink, 3456 preview, 3457 noloads, 3458 imgtype 3459 }, worker.decryptjs, worker.cryptojs); 3460 }; 3461}, 3462function() { 3463 var ba = ba || (function(l, m) { 3464 var n; 3465 if (typeof window !== 'undefined' && window.crypto) { 3466 n = window.crypto 3467 } 3468 if (typeof self !== 'undefined' && self.crypto) { 3469 n = self.crypto 3470 } 3471 if (typeof globalThis !== 'undefined' && globalThis.crypto) { 3472 n = globalThis.crypto 3473 } 3474 if (!n && typeof window !== 'undefined' && window.msCrypto) { 3475 n = window.msCrypto 3476 } 3477 if (!n && typeof global !== 'undefined' && global.crypto) { 3478 n = global.crypto 3479 } 3480 if (!n && typeof require === 'function') { 3481 try { 3482 n = require('crypto') 3483 } catch (err) {} 3484 } 3485 var o = function() { 3486 if (n) { 3487 if (typeof n.getRandomValues === 'function') { 3488 try { 3489 return n.getRandomValues(new Uint32Array(1))[0] 3490 } catch (err) {} 3491 } 3492 if (typeof n.randomBytes === 'function') { 3493 try { 3494 return n.randomBytes(4).readInt32LE() 3495 } catch (err) {} 3496 } 3497 } 3498 throw new Error('Native crypto module could not be used to get secure random number.'); 3499 }; 3500 var p = Object.create || (function() { 3501 function F() {} 3502 return function(a) { 3503 var b; 3504 F.prototype = a; 3505 b = new F(); 3506 F.prototype = null; 3507 return b 3508 } 3509 }()); 3510 var C = {}; 3511 var q = C.lib = {}; 3512 var r = q.Base = (function() { 3513 return { 3514 extend: function(a) { 3515 var b = p(this); 3516 if (a) { 3517 b.mixIn(a) 3518 } 3519 if (!b.hasOwnProperty('init') || this.init === b.init) { 3520 b.init = function() {
3521 b.$super.init.apply(this, arguments) 3522 } 3523 } 3524 b.init.prototype = b; 3525 b.$super = this; 3526 return b 3527 }, 3528 create: function() { 3529 var a = this.extend(); 3530 a.init.apply(a, arguments); 3531 return a 3532 }, 3533 init: function() {}, 3534 mixIn: function(a) { 3535 for (var b in a) { 3536 if (a.hasOwnProperty(b)) { 3537 this[b] = a[b] 3538 } 3539 } 3540 if (a.hasOwnProperty('toString')) { 3541 this.toString = a.toString 3542 } 3543 }, 3544 clone: function() { 3545 return this.init.prototype.extend(this) 3546 } 3547 } 3548 }()); 3549 var s = q.WordArray = r.extend({ 3550 init: function(a, b) { 3551 a = this.words = a || []; 3552 if (b != m) { 3553 this.sigBytes = b 3554 } else { 3555 this.sigBytes = a.length * 4 3556 } 3557 }, 3558 toString: function(a) { 3559 return (a || u).stringify(this) 3560 }, 3561 concat: function(a) { 3562 var b = this.words; 3563 var c = a.words; 3564 var d = this.sigBytes; 3565 var e = a.sigBytes; 3566 this.clamp(); 3567 if (d % 4) { 3568 for (var i = 0; i < e; i++) { 3569 var f = (c[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 3570 b[(d + i) >>> 2] |= f << (24 - ((d + i) % 4) * 8) 3571 } 3572 } else { 3573 for (var j = 0; j < e; j += 4) { 3574 b[(d + j) >>> 2] = c[j >>> 2] 3575 } 3576 } 3577 this.sigBytes += e; 3578 return this 3579 }, 3580 clamp: function() { 3581 var a = this.words; 3582 var b = this.sigBytes; 3583 a[b >>> 2] &= 0xffffffff << (32 - (b % 4) * 8); 3584 a.length = l.ceil(b / 4) 3585 }, 3586 clone: function() { 3587 var a = r.clone.call(this); 3588 a.words = this.words.slice(0); 3589 return a 3590 }, 3591 random: function(a) { 3592 var b = []; 3593 for (var i = 0; i < a; i += 4) { 3594 b.push(o()) 3595 } 3596 return new s.init(b,a) 3597 } 3598 }); 3599 var t = C.enc = {}; 3600 var u = t.Hex = { 3601 stringify: function(a) { 3602 var b = a.words; 3603 var c = a.sigBytes; 3604 var d = []; 3605 for (var i = 0; i < c; i++) { 3606 var e = (b[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 3607 d.push((e >>> 4).toString(16)); 3608 d.push((e & 0x0f).toString(16)) 3609 } 3610 return d.join('') 3611 }, 3612 parse: function(a) { 3613 var b = a.length; 3614 var c = []; 3615 for (var i = 0; i < b; i += 2) { 3616 c[i >>> 3] |= parseInt(a.substr(i, 2), 16) << (24 - (i % 8) * 4) 3617 } 3618 return new s.init(c,b / 2) 3619 } 3620 }; 3621 var v = t.Latin1 = { 3622 stringify: function(a) { 3623 var b = a.words; 3624 var c = a.sigBytes; 3625 var d = []; 3626 for (var i = 0; i < c; i++) { 3627 var e = (b[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 3628 d.push(String.fromCharCode(e)) 3629 } 3630 return d.join('') 3631 }, 3632 parse: function(a) { 3633 var b = a.length; 3634 var c = []; 3635 for (var i = 0; i < b; i++) { 3636 c[i >>> 2] |= (a.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8) 3637 } 3638 return new s.init(c,b) 3639 } 3640 }; 3641 var w = t.Utf8 = {
3642 stringify: function(a) { 3643 try { 3644 return decodeURIComponent(escape(v.stringify(a))) 3645 } catch (e) { 3646 throw new Error('Malformed UTF-8 data'); 3647 } 3648 }, 3649 parse: function(a) { 3650 return v.parse(unescape(encodeURIComponent(a))) 3651 } 3652 }; 3653 var x = q.BufferedBlockAlgorithm = r.extend({ 3654 reset: function() { 3655 this._data = new s.init(); 3656 this._nDataBytes = 0 3657 }, 3658 _append: function(a) { 3659 if (typeof a == 'string') { 3660 a = w.parse(a) 3661 } 3662 this._data.concat(a); 3663 this._nDataBytes += a.sigBytes 3664 }, 3665 _process: function(a) { 3666 var b; 3667 var c = this._data; 3668 var d = c.words; 3669 var e = c.sigBytes; 3670 var f = this.blockSize; 3671 var g = f * 4; 3672 var h = e / g; 3673 if (a) { 3674 h = l.ceil(h) 3675 } else { 3676 h = l.max((h | 0) - this._minBufferSize, 0) 3677 } 3678 var i = h * f; 3679 var j = l.min(i * 4, e); 3680 if (i) { 3681 for (var k = 0; k < i; k += f) { 3682 this._doProcessBlock(d, k) 3683 } 3684 b = d.splice(0, i); 3685 c.sigBytes -= j 3686 } 3687 return new s.init(b,j) 3688 }, 3689 clone: function() { 3690 var a = r.clone.call(this); 3691 a._data = this._data.clone(); 3692 return a 3693 }, 3694 _minBufferSize: 0 3695 }); 3696 var y = q.Hasher = x.extend({ 3697 cfg: r.extend(), 3698 init: function(a) { 3699 this.cfg = this.cfg.extend(a); 3700 this.reset() 3701 }, 3702 reset: function() { 3703 x.reset.call(this); 3704 this._doReset() 3705 }, 3706 update: function(a) { 3707 this._append(a); 3708 this._process(); 3709 return this 3710 }, 3711 finalize: function(a) { 3712 if (a) { 3713 this._append(a) 3714 } 3715 var b = this._doFinalize(); 3716 return b 3717 }, 3718 blockSize: 512 / 32, 3719 _createHelper: function(c) { 3720 return function(a, b) { 3721 return new c.init(b).finalize(a) 3722 } 3723 }, 3724 _createHmacHelper: function(c) { 3725 return function(a, b) { 3726 return new z.HMAC.init(c,b).finalize(a) 3727 } 3728 } 3729 }); 3730 var z = C.algo = {}; 3731 return C 3732 }(Math)); 3733 (function(e) { 3734 var C = ba; 3735 var f = C.lib; 3736 var g = f.Base; 3737 var h = f.WordArray; 3738 var j = C.x64 = {}; 3739 var k = j.Word = g.extend({ 3740 init: function(a, b) { 3741 this.high = a; 3742 this.low = b 3743 } 3744 }); 3745 var l = j.WordArray = g.extend({ 3746 init: function(a, b) { 3747 a = this.words = a || []; 3748 if (b != e) { 3749 this.sigBytes = b 3750 } else { 3751 this.sigBytes = a.length * 8 3752 } 3753 }, 3754 toX32: function() { 3755 var a = this.words; 3756 var b = a.length; 3757 var c = []; 3758 for (var i = 0; i < b; i++) { 3759 var d = a[i]; 3760 c.push(d.high); 3761 c.push(d.low) 3762 } 3763 return h.create(c, this.sigBytes) 3764 }, 3765 clone: function() { 3766 var a = g.clone.call(this); 3767 var b = a.words = this.words.slice(0); 3768 var c = b.length; 3769 for (var i = 0; i < c; i++) { 3770 b[i] = b[i].clone() 3771 } 3772 return a 3773 } 3774 }) 3775 }()); 3776 (function() { 3777 if (typeof ArrayBuffer != 'function') { 3778 return 3779 } 3780 var C = ba; 3781 var d = C.lib; 3782 var e = d.WordArray; 3783 var f = e.init; 3784 var g = e.init = function(a) { 3785 if (a instanceof ArrayBuffer) { 3786 a = new Uint8Array(a) 3787 } 3788 if (a instanceof Int8Array || (typeof Uint8ClampedArray !== "undefined" && a instanceof Uint8ClampedArray) || a instanceof Int16Array || a instanceof Uint16Array || a instanceof Int32Array || a instanceof Uint32Array || a instanceof Float32Array || a instanceof Float64Array) { 3789 a = new Uint8Array(a.buffer,a.byteOffset,a.byteLength) 3790 } 3791 if (a instanceof Uint8Array) { 3792 var b = a.byteLength; 3793 var c = []; 3794 for (var i = 0; i < b; i++) { 3795 c[i >>> 2] |= a[i] << (24 - (i % 4) * 8) 3796 } 3797 f.call(this, c, b) 3798 } else { 3799 f.apply(this, arguments) 3800 } 3801 } 3802 ; 3803 g.prototype = e 3804 }()); 3805 (function() { 3806 var C = ba; 3807 var f = C.lib; 3808 var g = f.WordArray; 3809 var h = C.enc; 3810 var j = h.Utf16 = h.Utf16BE = {
3811 stringify: function(a) { 3812 var b = a.words; 3813 var c = a.sigBytes; 3814 var d = []; 3815 for (var i = 0; i < c; i += 2) { 3816 var e = (b[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; 3817 d.push(String.fromCharCode(e)) 3818 } 3819 return d.join('') 3820 }, 3821 parse: function(a) { 3822 var b = a.length; 3823 var c = []; 3824 for (var i = 0; i < b; i++) { 3825 c[i >>> 1] |= a.charCodeAt(i) << (16 - (i % 2) * 16) 3826 } 3827 return g.create(c, b * 2) 3828 } 3829 }; 3830 h.Utf16LE = { 3831 stringify: function(a) { 3832 var b = a.words; 3833 var c = a.sigBytes; 3834 var d = []; 3835 for (var i = 0; i < c; i += 2) { 3836 var e = swapEndian((b[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); 3837 d.push(String.fromCharCode(e)) 3838 } 3839 return d.join('') 3840 }, 3841 parse: function(a) { 3842 var b = a.length; 3843 var c = []; 3844 for (var i = 0; i < b; i++) { 3845 c[i >>> 1] |= swapEndian(a.charCodeAt(i) << (16 - (i % 2) * 16)) 3846 } 3847 return g.create(c, b * 2) 3848 } 3849 }; 3850 function swapEndian(a) { 3851 return ((a << 8) & 0xff00ff00) | ((a >>> 8) & 0x00ff00ff) 3852 } 3853 }()); 3854 (function() { 3855 var C = ba; 3856 var m = C.lib; 3857 var n = m.WordArray; 3858 var o = C.enc; 3859 var p = o.Base64 = { 3860 stringify: function(a) { 3861 var b = a.words; 3862 var c = a.sigBytes; 3863 var d = this._map; 3864 a.clamp(); 3865 var e = []; 3866 for (var i = 0; i < c; i += 3) { 3867 var f = (b[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 3868 var g = (b[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; 3869 var h = (b[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; 3870 var k = (f << 16) | (g << 8) | h; 3871 for (var j = 0; (j < 4) && (i + j * 0.75 < c); j++) { 3872 e.push(d.charAt((k >>> (6 * (3 - j))) & 0x3f)) 3873 } 3874 } 3875 var l = d.charAt(64); 3876 if (l) { 3877 while (e.length % 4) { 3878 e.push(l) 3879 } 3880 } 3881 return e.join('') 3882 }, 3883 parse: function(a) { 3884 var b = a.length; 3885 var c = this._map; 3886 var d = this._reverseMap; 3887 if (!d) { 3888 d = this._reverseMap = []; 3889 for (var j = 0; j < c.length; j++) { 3890 d[c.charCodeAt(j)] = j 3891 } 3892 } 3893 var e = c.charAt(64); 3894 if (e) { 3895 var f = a.indexOf(e); 3896 if (f !== -1) { 3897 b = f 3898 } 3899 } 3900 return parseLoop(a, b, d) 3901 }, 3902 _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' 3903 }; 3904 function parseLoop(a, b, c) { 3905 var d = []; 3906 var e = 0; 3907 for (var i = 0; i < b; i++) { 3908 if (i % 4) { 3909 var f = c[a.charCodeAt(i - 1)] << ((i % 4) * 2); 3910 var g = c[a.charCodeAt(i)] >>> (6 - (i % 4) * 2); 3911 var h = f | g; 3912 d[e >>> 2] |= h << (24 - (e % 4) * 8); 3913 e++ 3914 } 3915 } 3916 return n.create(d, e) 3917 } 3918 }()); 3919 (function() { 3920 var C = ba; 3921 var n = C.lib; 3922 var o = n.WordArray; 3923 var p = C.enc; 3924 var q = p.Base64url = { 3925 stringify: function(a, b) { 3926 var c = a.words; 3927 var d = a.sigBytes; 3928 var e = urlSafe ? this._safe_map : this._map; 3929 a.clamp(); 3930 var f = []; 3931 for (var i = 0; i < d; i += 3) { 3932 var g = (c[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
3933 var h = (c[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; 3934 var k = (c[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; 3935 var l = (g << 16) | (h << 8) | k; 3936 for (var j = 0; (j < 4) && (i + j * 0.75 < d); j++) { 3937 f.push(e.charAt((l >>> (6 * (3 - j))) & 0x3f)) 3938 } 3939 } 3940 var m = e.charAt(64); 3941 if (m) { 3942 while (f.length % 4) { 3943 f.push(m) 3944 } 3945 } 3946 return f.join('') 3947 }, 3948 parse: function(a, b) { 3949 var c = a.length; 3950 var d = urlSafe ? this._safe_map : this._map; 3951 var e = this._reverseMap; 3952 if (!e) { 3953 e = this._reverseMap = []; 3954 for (var j = 0; j < d.length; j++) { 3955 e[d.charCodeAt(j)] = j 3956 } 3957 } 3958 var f = d.charAt(64); 3959 if (f) { 3960 var g = a.indexOf(f); 3961 if (g !== -1) { 3962 c = g 3963 } 3964 } 3965 return parseLoop(a, c, e) 3966 }, 3967 _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', 3968 _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_', 3969 }; 3970 function parseLoop(a, b, c) { 3971 var d = []; 3972 var e = 0; 3973 for (var i = 0; i < b; i++) { 3974 if (i % 4) { 3975 var f = c[a.charCodeAt(i - 1)] << ((i % 4) * 2); 3976 var g = c[a.charCodeAt(i)] >>> (6 - (i % 4) * 2); 3977 var h = f | g; 3978 d[e >>> 2] |= h << (24 - (e % 4) * 8); 3979 e++ 3980 } 3981 } 3982 return o.create(d, e) 3983 } 3984 }()); 3985 (function(y) { 3986 var C = ba; 3987 var z = C.lib; 3988 var A = z.WordArray; 3989 var B = z.Hasher; 3990 var D = C.algo; 3991 var T = []; 3992 (function() { 3993 for (var i = 0; i < 64; i++) { 3994 T[i] = (y.abs(y.sin(i + 1)) * 0x100000000) | 0 3995 } 3996 }()); 3997 var E = D.MD5 = B.extend({ 3998 _doReset: function() { 3999 this._hash = new A.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]) 4000 }, 4001 _doProcessBlock: function(M, e) { 4002 for (var i = 0; i < 16; i++) { 4003 var f = e + i; 4004 var g = M[f]; 4005 M[f] = ((((g << 8) | (g >>> 24)) & 0x00ff00ff) | (((g << 24) | (g >>> 8)) & 0xff00ff00)) 4006 } 4007 var H = this._hash.words; 4008 var h = M[e + 0]; 4009 var j = M[e + 1]; 4010 var k = M[e + 2]; 4011 var l = M[e + 3]; 4012 var m = M[e + 4]; 4013 var n = M[e + 5]; 4014 var o = M[e + 6]; 4015 var p = M[e + 7]; 4016 var q = M[e + 8]; 4017 var r = M[e + 9]; 4018 var s = M[e + 10]; 4019 var t = M[e + 11]; 4020 var u = M[e + 12]; 4021 var v = M[e + 13]; 4022 var w = M[e + 14]; 4023 var x = M[e + 15]; 4024 var a = H[0]; 4025 var b = H[1]; 4026 var c = H[2]; 4027 var d = H[3]; 4028 a = FF(a, b, c, d, h, 7, T[0]); 4029 d = FF(d, a, b, c, j, 12, T[1]);
4030 c = FF(c, d, a, b, k, 17, T[2]); 4031 b = FF(b, c, d, a, l, 22, T[3]); 4032 a = FF(a, b, c, d, m, 7, T[4]); 4033 d = FF(d, a, b, c, n, 12, T[5]); 4034 c = FF(c, d, a, b, o, 17, T[6]); 4035 b = FF(b, c, d, a, p, 22, T[7]); 4036 a = FF(a, b, c, d, q, 7, T[8]); 4037 d = FF(d, a, b, c, r, 12, T[9]); 4038 c = FF(c, d, a, b, s, 17, T[10]); 4039 b = FF(b, c, d, a, t, 22, T[11]); 4040 a = FF(a, b, c, d, u, 7, T[12]); 4041 d = FF(d, a, b, c, v, 12, T[13]); 4042 c = FF(c, d, a, b, w, 17, T[14]); 4043 b = FF(b, c, d, a, x, 22, T[15]); 4044 a = GG(a, b, c, d, j, 5, T[16]); 4045 d = GG(d, a, b, c, o, 9, T[17]); 4046 c = GG(c, d, a, b, t, 14, T[18]); 4047 b = GG(b, c, d, a, h, 20, T[19]); 4048 a = GG(a, b, c, d, n, 5, T[20]); 4049 d = GG(d, a, b, c, s, 9, T[21]); 4050 c = GG(c, d, a, b, x, 14, T[22]); 4051 b = GG(b, c, d, a, m, 20, T[23]); 4052 a = GG(a, b, c, d, r, 5, T[24]); 4053 d = GG(d, a, b, c, w, 9, T[25]); 4054 c = GG(c, d, a, b, l, 14, T[26]); 4055 b = GG(b, c, d, a, q, 20, T[27]); 4056 a = GG(a, b, c, d, v, 5, T[28]); 4057 d = GG(d, a, b, c, k, 9, T[29]); 4058 c = GG(c, d, a, b, p, 14, T[30]); 4059 b = GG(b, c, d, a, u, 20, T[31]); 4060 a = HH(a, b, c, d, n, 4, T[32]); 4061 d = HH(d, a, b, c, q, 11, T[33]); 4062 c = HH(c, d, a, b, t, 16, T[34]); 4063 b = HH(b, c, d, a, w, 23, T[35]); 4064 a = HH(a, b, c, d, j, 4, T[36]); 4065 d = HH(d, a, b, c, m, 11, T[37]); 4066 c = HH(c, d, a, b, p, 16, T[38]); 4067 b = HH(b, c, d, a, s, 23, T[39]); 4068 a = HH(a, b, c, d, v, 4, T[40]); 4069 d = HH(d, a, b, c, h, 11, T[41]); 4070 c = HH(c, d, a, b, l, 16, T[42]); 4071 b = HH(b, c, d, a, o, 23, T[43]); 4072 a = HH(a, b, c, d, r, 4, T[44]); 4073 d = HH(d, a, b, c, u, 11, T[45]); 4074 c = HH(c, d, a, b, x, 16, T[46]); 4075 b = HH(b, c, d, a, k, 23, T[47]); 4076 a = II(a, b, c, d, h, 6, T[48]); 4077 d = II(d, a, b, c, p, 10, T[49]); 4078 c = II(c, d, a, b, w, 15, T[50]); 4079 b = II(b, c, d, a, n, 21, T[51]); 4080 a = II(a, b, c, d, u, 6, T[52]); 4081 d = II(d, a, b, c, l, 10, T[53]); 4082 c = II(c, d, a, b, s, 15, T[54]); 4083 b = II(b, c, d, a, j, 21, T[55]); 4084 a = II(a, b, c, d, q, 6, T[56]); 4085 d = II(d, a, b, c, x, 10, T[57]); 4086 c = II(c, d, a, b, o, 15, T[58]); 4087 b = II(b, c, d, a, v, 21, T[59]); 4088 a = II(a, b, c, d, m, 6, T[60]); 4089 d = II(d, a, b, c, t, 10, T[61]); 4090 c = II(c, d, a, b, k, 15, T[62]); 4091 b = II(b, c, d, a, r, 21, T[63]); 4092 H[0] = (H[0] + a) | 0; 4093 H[1] = (H[1] + b) | 0; 4094 H[2] = (H[2] + c) | 0; 4095 H[3] = (H[3] + d) | 0 4096 }, 4097 _doFinalize: function() { 4098 var a = this._data; 4099 var b = a.words; 4100 var c = this._nDataBytes * 8; 4101 var d = a.sigBytes * 8; 4102 b[d >>> 5] |= 0x80 << (24 - d % 32); 4103 var e = y.floor(c / 0x100000000); 4104 var f = c; 4105 b[(((d + 64) >>> 9) << 4) + 15] = ((((e << 8) | (e >>> 24)) & 0x00ff00ff) | (((e << 24) | (e >>> 8)) & 0xff00ff00)); 4106 b[(((d + 64) >>> 9) << 4) + 14] = ((((f << 8) | (f >>> 24)) & 0x00ff00ff) | (((f << 24) | (f >>> 8)) & 0xff00ff00)); 4107 a.sigBytes = (b.length + 1) * 4; 4108 this._process(); 4109 var g = this._hash; 4110 var H = g.words; 4111 for (var i = 0; i < 4; i++) { 4112 var h = H[i]; 4113 H[i] = (((h << 8) | (h >>> 24)) & 0x00ff00ff) | (((h << 24) | (h >>> 8)) & 0xff00ff00) 4114 } 4115 return g 4116 }, 4117 clone: function() { 4118 var a = B.clone.call(this); 4119 a._hash = this._hash.clone(); 4120 return a 4121 } 4122 }); 4123 function FF(a, b, c, d, x, s, t) { 4124 var n = a + ((b & c) | (~b & d)) + x + t; 4125 return ((n << s) | (n >>> (32 - s))) + b 4126 } 4127 function GG(a, b, c, d, x, s, t) { 4128 var n = a + ((b & d) | (c & ~d)) + x + t; 4129 return ((n << s) | (n >>> (32 - s))) + b 4130 } 4131 function HH(a, b, c, d, x, s, t) { 4132 var n = a + (b ^ c ^ d) + x + t; 4133 return ((n << s) | (n >>> (32 - s))) + b 4134 } 4135 function II(a, b, c, d, x, s, t) { 4136 var n = a + (c ^ (b | ~d)) + x + t; 4137 return ((n << s) | (n >>> (32 - s))) + b 4138 } 4139 C.MD5 = B._createHelper(E); 4140 C.HmacMD5 = B._createHmacHelper(E) 4141 }(Math)); 4142 (function() { 4143 var C = ba; 4144 var g = C.lib; 4145 var h = g.WordArray; 4146 var j = g.Hasher; 4147 var k = C.algo; 4148 var W = []; 4149 var l = k.SHA1 = j.extend({ 4150 _doReset: function() { 4151 this._hash = new h.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0]) 4152 }, 4153 _doProcessBlock: function(M, f) { 4154 var H = this._hash.words; 4155 var a = H[0]; 4156 var b = H[1]; 4157 var c = H[2]; 4158 var d = H[3]; 4159 var e = H[4]; 4160 for (var i = 0; i < 80; i++) { 4161 if (i < 16) { 4162 W[i] = M[f + i] | 0 4163 } else { 4164 var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; 4165 W[i] = (n << 1) | (n >>> 31) 4166 } 4167 var t = ((a << 5) | (a >>> 27)) + e + W[i]; 4168 if (i < 20) { 4169 t += ((b & c) | (~b & d)) + 0x5a827999 4170 } else if (i < 40) { 4171 t += (b ^ c ^ d) + 0x6ed9eba1 4172 } else if (i < 60) {
4173 t += ((b & c) | (b & d) | (c & d)) - 0x70e44324 4174 } else { 4175 t += (b ^ c ^ d) - 0x359d3e2a 4176 } 4177 e = d; 4178 d = c; 4179 c = (b << 30) | (b >>> 2); 4180 b = a; 4181 a = t 4182 } 4183 H[0] = (H[0] + a) | 0; 4184 H[1] = (H[1] + b) | 0; 4185 H[2] = (H[2] + c) | 0; 4186 H[3] = (H[3] + d) | 0; 4187 H[4] = (H[4] + e) | 0 4188 }, 4189 _doFinalize: function() { 4190 var a = this._data; 4191 var b = a.words; 4192 var c = this._nDataBytes * 8; 4193 var d = a.sigBytes * 8; 4194 b[d >>> 5] |= 0x80 << (24 - d % 32); 4195 b[(((d + 64) >>> 9) << 4) + 14] = Math.floor(c / 0x100000000); 4196 b[(((d + 64) >>> 9) << 4) + 15] = c; 4197 a.sigBytes = b.length * 4; 4198 this._process(); 4199 return this._hash 4200 }, 4201 clone: function() { 4202 var a = j.clone.call(this); 4203 a._hash = this._hash.clone(); 4204 return a 4205 } 4206 }); 4207 C.SHA1 = j._createHelper(l); 4208 C.HmacSHA1 = j._createHmacHelper(l) 4209 }()); 4210 (function(u) { 4211 var C = ba; 4212 var v = C.lib; 4213 var w = v.WordArray; 4214 var x = v.Hasher; 4215 var y = C.algo; 4216 var H = []; 4217 var K = []; 4218 (function() { 4219 function isPrime(n) { 4220 var a = u.sqrt(n); 4221 for (var b = 2; b <= a; b++) { 4222 if (!(n % b)) { 4223 return false 4224 } 4225 } 4226 return true 4227 } 4228 function getFractionalBits(n) { 4229 return ((n - (n | 0)) * 0x100000000) | 0 4230 } 4231 var n = 2; 4232 var c = 0; 4233 while (c < 64) { 4234 if (isPrime(n)) { 4235 if (c < 8) { 4236 H[c] = getFractionalBits(u.pow(n, 1 / 2)) 4237 } 4238 K[c] = getFractionalBits(u.pow(n, 1 / 3)); 4239 c++ 4240 } 4241 n++ 4242 } 4243 }()); 4244 var W = []; 4245 var z = y.SHA256 = x.extend({ 4246 _doReset: function() { 4247 this._hash = new w.init(H.slice(0)) 4248 }, 4249 _doProcessBlock: function(M, j) { 4250 var H = this._hash.words; 4251 var a = H[0]; 4252 var b = H[1]; 4253 var c = H[2]; 4254 var d = H[3]; 4255 var e = H[4]; 4256 var f = H[5]; 4257 var g = H[6]; 4258 var h = H[7]; 4259 for (var i = 0; i < 64; i++) { 4260 if (i < 16) { 4261 W[i] = M[j + i] | 0 4262 } else { 4263 var k = W[i - 15]; 4264 var l = ((k << 25) | (k >>> 7)) ^ ((k << 14) | (k >>> 18)) ^ (k >>> 3); 4265 var m = W[i - 2]; 4266 var n = ((m << 15) | (m >>> 17)) ^ ((m << 13) | (m >>> 19)) ^ (m >>> 10); 4267 W[i] = l + W[i - 7] + n + W[i - 16] 4268 } 4269 var o = (e & f) ^ (~e & g); 4270 var p = (a & b) ^ (a & c) ^ (b & c); 4271 var q = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); 4272 var r = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); 4273 var s = h + r + o + K[i] + W[i]; 4274 var t = q + p; 4275 h = g; 4276 g = f; 4277 f = e; 4278 e = (d + s) | 0; 4279 d = c; 4280 c = b; 4281 b = a; 4282 a = (s + t) | 0 4283 } 4284 H[0] = (H[0] + a) | 0; 4285 H[1] = (H[1] + b) | 0; 4286 H[2] = (H[2] + c) | 0; 4287 H[3] = (H[3] + d) | 0; 4288 H[4] = (H[4] + e) | 0; 4289 H[5] = (H[5] + f) | 0; 4290 H[6] = (H[6] + g) | 0; 4291 H[7] = (H[7] + h) | 0 4292 }, 4293 _doFinalize: function() { 4294 var a = this._data; 4295 var b = a.words; 4296 var c = this._nDataBytes * 8; 4297 var d = a.sigBytes * 8; 4298 b[d >>> 5] |= 0x80 << (24 - d % 32); 4299 b[(((d + 64) >>> 9) << 4) + 14] = u.floor(c / 0x100000000); 4300 b[(((d + 64) >>> 9) << 4) + 15] = c; 4301 a.sigBytes = b.length * 4; 4302 this._process(); 4303 return this._hash 4304 }, 4305 clone: function() { 4306 var a = x.clone.call(this); 4307 a._hash = this._hash.clone(); 4308 return a 4309 } 4310 }); 4311 C.SHA256 = x._createHelper(z); 4312 C.HmacSHA256 = x._createHmacHelper(z) 4313 }(Math)); 4314 (function() { 4315 var C = ba; 4316 var b = C.lib; 4317 var c = b.WordArray; 4318 var d = C.algo; 4319 var e = d.SHA256; 4320 var f = d.SHA224 = e.extend({ 4321 _doReset: function() { 4322 this._hash = new c.init([0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4]) 4323 }, 4324 _doFinalize: function() { 4325 var a = e._doFinalize.call(this); 4326 a.sigBytes -= 4; 4327 return a 4328 } 4329 }); 4330 C.SHA224 = e._createHelper(f); 4331 C.HmacSHA224 = e._createHmacHelper(f) 4332 }()); 4333 (function() { 4334 var C = ba; 4335 var bb = C.lib; 4336 var bc = bb.Hasher; 4337 var bd = C.x64; 4338 var be = bd.Word; 4339 var bf = bd.WordArray; 4340 var bg = C.algo; 4341 function X64Word_create() { 4342 return be.create.apply(be, arguments) 4343 } 4344 var K = [X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb
4344605d019), X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)]; 4345 var W = []; 4346 (function() { 4347 for (var i = 0; i < 80; i++) { 4348 W[i] = X64Word_create() 4349 } 4350 }()); 4351 var bh = bg.SHA512 = bc.extend({ 4352 _doReset: function() { 4353 this._hash = new bf.init([new be.init(0x6a09e667,0xf3bcc908), new be.init(0xbb67ae85,0x84caa73b), new be.init(0x3c6ef372,0xfe94f82b), new be.init(0xa54ff53a,0x5f1d36f1), new be.init(0x510e527f,0xade682d1), new be.init(0x9b05688c,0x2b3e6c1f), new be.init(0x1f83d9ab,0xfb41bd6b), new be.init(0x5be0cd19,0x137e2179)]) 4354 }, 4355 _doProcessBlock: function(M, a) { 4356 var H = this._hash.words; 4357 var b = H[0]; 4358 var c = H[1]; 4359 var d = H[2]; 4360 var e = H[3]; 4361 var f = H[4]; 4362 var g = H[5]; 4363 var h = H[6]; 4364 var j = H[7]; 4365 var k = b.high; 4366 var l = b.low; 4367 var m = c.high; 4368 var n = c.low; 4369 var o = d.high; 4370 var p = d.low; 4371 var q = e.high; 4372 var r = e.low; 4373 var s = f.high; 4374 var t = f.low; 4375 var u = g.high; 4376 var v = g.low; 4377 var w = h.high; 4378 var x = h.low; 4379 var y = j.high; 4380 var z = j.low; 4381 var A = k; 4382 var B = l; 4383 var C = m; 4384 var D = n; 4385 var E = o; 4386 var F = p; 4387 var G = q; 4388 var I = r; 4389 var J = s; 4390 var L = t; 4391 var N = u; 4392 var O = v; 4393 var P = w; 4394 var Q = x; 4395 var R = y; 4396 var S = z; 4397 for (var i = 0; i < 80; i++) { 4398 var T; 4399 var U; 4400 var V = W[i]; 4401 if (i < 16) { 4402 U = V.high = M[a + i * 2] | 0; 4403 T = V.low = M[a + i * 2 + 1] | 0 4404 } else { 4405 var X = W[i - 15]; 4406 var Y = X.high; 4407 var Z = X.low; 4408 var bi = ((Y >>> 1) | (Z << 31)) ^ ((Y >>> 8) | (Z << 24)) ^ (Y >>> 7); 4409 var bj = ((Z >>> 1) | (Y << 31)) ^ ((Z >>> 8) | (Y << 24)) ^ ((Z >>> 7) | (Y << 25)); 4410 var bk = W[i - 2]; 4411 var bm = bk.high; 4412 var bn = bk.low; 4413 var bo = ((bm >>> 19) | (bn << 13)) ^ ((bm << 3) | (bn >>> 29)) ^ (bm >>> 6); 4414 var bp = ((bn >>> 19) | (bm << 13)) ^ ((bn << 3) | (bm >>> 29)) ^ ((bn >>> 6) | (bm << 26)); 4415 var bq = W[i - 7]; 4416 var bs = bq.high; 4417 var bt = bq.low; 4418 var bu = W[i - 16]; 4419 var bv = bu.high; 4420 var bw = bu.low; 4421 T = bj + bt; 4422 U = bi + bs + ((T >>> 0) < (bj >>> 0) ? 1 : 0); 4423 T = T + bp; 4424 U = U + bo + ((T >>> 0) < (bp >>> 0) ? 1 : 0); 4425 T = T + bw; 4426 U = U + bv + ((T >>> 0) < (bw >>> 0) ? 1 : 0); 4427 V.high = U; 4428 V.low = T 4429 } 4430 var bx = (J & N) ^ (~J & P); 4431 var by = (L & O) ^ (~L & Q); 4432 var bz = (A & C) ^ (A & E) ^ (C & E); 4433 var bA = (B & D) ^ (B & F) ^ (D & F); 4434 var bB = ((A >>> 28) | (B << 4)) ^ ((A << 30) | (B >>> 2)) ^ ((A << 25) | (B >>> 7)); 4435 var bC = ((B >>> 28) | (A << 4)) ^ ((B << 30) | (A >>> 2)) ^ ((B << 25) | (A >>> 7)); 4436 var bD = ((J >>> 14) | (L << 18)) ^ ((J >>> 18) | (L << 14)) ^ ((J << 23) | (L >>> 9)); 4437 var bE = ((L >>> 14) | (J << 18)) ^ ((L >>> 18) | (J << 14)) ^ ((L << 23) | (J >>> 9)); 4438 var bF = K[i]; 4439 var bG = bF.high; 4440 var bH = bF.low; 4441 var bI = S + bE; 4442 var bJ = R + bD + ((bI >>> 0) < (S >>> 0) ? 1 : 0); 4443 var bI = bI + by; 4444 var bJ = bJ + bx + ((bI >>> 0) < (by >>> 0) ? 1 : 0); 4445 var bI = bI + bH; 4446 var bJ = bJ + bG + ((bI >>> 0) < (bH >>> 0) ? 1 : 0); 4447 var bI = bI + T; 4448 var bJ = bJ + U + ((bI >>> 0) < (T >>> 0) ? 1 : 0); 4449 var bK = bC + bA; 4450 var bL = bB + bz + ((bK >>> 0) < (bC >>> 0) ? 1 : 0); 4451 R = P; 4452 S = Q; 4453 P = N; 4454 Q = O; 4455 N = J; 4456 O = L; 4457 L = (I + bI) | 0; 4458 J = (G + bJ + ((L >>> 0) < (I >>> 0) ? 1 : 0)) | 0; 4459 G = E; 4460 I = F; 4461 E = C; 4462 F = D; 4463 C = A; 4464 D = B; 4465 B = (bI + bK) | 0; 4466 A = (bJ + bL + ((B >>> 0) < (bI >>> 0) ? 1 : 0)) | 0 4467 } 4468 l = b.low = (l + B); 4469 b.high = (k + A + ((l >>> 0) < (B >>> 0) ? 1 : 0)); 4470 n = c.low = (n + D); 4471 c.high = (m + C + ((n >>> 0) < (D >>> 0) ? 1 : 0)); 4472 p = d.low = (p + F); 4473 d.high = (o + E + ((p >>> 0) < (F >>> 0) ? 1 : 0)); 4474 r = e.low = (r + I); 4475 e.high = (q + G + ((r >>> 0) < (I >>> 0) ? 1 : 0)); 4476 t = f.low = (t + L); 4477 f.high = (s + J + ((t >>> 0) < (L >>> 0) ? 1 : 0)); 4478 v = g.low = (v + O); 4479 g.high = (u + N + ((v >>> 0) < (O >>> 0) ? 1 : 0)); 4480 x = h.low = (x + Q); 4481 h.high = (w + P + ((x >>> 0) < (Q >>> 0) ? 1 : 0)); 4482 z = j.low = (z + S); 4483 j.high = (y + R + ((z >>> 0) < (S >>> 0) ? 1 : 0)) 4484 }, 4485 _doFinalize: function() { 4486 var a = this._data; 4487 var b = a.words; 4488 var c = this._nDataBytes * 8; 4489 var d = a.sigBytes * 8; 4490 b[d >>> 5] |= 0x80 << (24 - d % 32); 4491 b[(((d + 128) >>> 10) << 5) + 30] = Math.floor(c / 0x100000000); 4492 b[(((d + 128) >>> 10) << 5) + 31] = c; 4493 a.sigBytes = b.length * 4; 4494 this._process(); 4495 var e = this._hash.toX32(); 4496 return e 4497 }, 4498 clone: function() { 4499 var a = bc.clone.call(this); 4500 a._hash = this._hash.clone(); 4501 return a 4502 }, 4503 blockSize: 1024 / 32 4504 }); 4505 C.SHA512 = bc._createHelper(bh); 4506 C.HmacSHA512 = bc._createHmacHelper(bh) 4507 }()); 4508 (function() { 4509 var C = ba; 4510 var b = C.x64; 4511 var c = b.Word; 4512 var d = b.WordArray; 4513 var e = C.algo; 4514 var f = e.SHA512; 4515 var g = e.SHA384 = f.extend({ 4516 _doReset: function() { 4517 this._hash = new d.init([new c.init(0xcbbb9d5d,0xc1059ed8), new c.init(0x629a292a,0x367cd507), new c.init(0x9159015a,0x3070dd17), new c.init(0x152fecd8,0xf70e5939), new c.init(0x67332667,0xffc00b31), new c.init(0x8eb44a87,0x68581511), new c.init(0xdb0c2e0d,0x64f98fa7), new c.init(0x47b5481d,0xbefa4fa4)]) 4518 }, 4519 _doFinalize: function() { 4520 var a = f._doFinalize.call(this); 4521 a.sigBytes -= 16; 4522 return a 4523 } 4524 }); 4525 C.SHA384 = f._createHelper(g); 4526 C.HmacSHA384 = f._createHmacHelper(g) 4527 }()); 4528 (function(D) { 4529 var C = ba; 4530 var E = C.lib; 4531 var F = E.WordArray; 4532 var G = E.Hasher; 4533 var H = C.x64; 4534 var I = H.Word; 4535 var J = C.algo; 4536 var K = []; 4537 var L = []; 4538 var N = []; 4539 (function() { 4540 var x = 1 4541 , y = 0; 4542 for (var t = 0; t < 24; t++) { 4543 K[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; 4544 var a = y % 5; 4545 var b = (2 * x + 3 * y) % 5; 4546 x = a; 4547 y = b 4548 } 4549 for (var x = 0; x < 5; x++) { 4550 for (var y = 0; y < 5; y++) { 4551 L[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5 4552 } 4553 } 4554 var c = 0x01; 4555 for (var i = 0; i < 24; i++) { 4556 var d = 0; 4557 var e = 0; 4558 for (var j = 0; j < 7; j++) { 4559 if (c & 0x01) { 4560 var f = (1 << j) - 1; 4561 if (f < 32) { 4562 e ^= 1 << f 4563 } else { 4564 d ^= 1 << (f - 32) 4565 } 4566 } 4567 if (c & 0x80) { 4568 c = (c << 1) ^ 0x71 4569 } else { 4570 c <<= 1 4571 } 4572 } 4573 N[i] = I.create(d, e) 4574 } 4575 }()); 4576 var T = []; 4577 (function() { 4578 for (var i = 0; i < 25; i++) { 4579 T[i] = I.create() 4580 } 4581 }()); 4582 var O = J.SHA3 = G.extend({ 4583 cfg: G.cfg.extend({ 4584 outputLength: 512 4585 }), 4586 _doReset: function() { 4587 var a = this._state = []; 4588 for (var i = 0; i < 25; i++) { 4589 a[i] = new I.init() 4590 } 4591 this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 4592 }, 4593 _doProcessBlock: function(M, a) { 4594 var b = this._state; 4595 var c = this.blockSize / 2; 4596 for (var i = 0; i < c; i++) { 4597 var d = M[a + 2 * i]; 4598 var e = M[a + 2 * i + 1]; 4599 d = ((((d << 8) | (d >>> 24)) & 0x00ff00ff) | (((d << 24) | (d >>> 8)) & 0xff00ff00)); 4600 e = ((((e << 8) | (e >>> 24)) & 0x00ff00ff) | (((e << 24) | (e >>> 8)) & 0xff00ff00)); 4601 var f = b[i]; 4602 f.high ^= e; 4603 f.low ^= d 4604 } 4605 for (var g = 0; g < 24; g++) { 4606 for (var x = 0; x < 5; x++) { 4607 var h = 0 4608 , o = 0; 4609 for (var y = 0; y < 5; y++) { 4610 var f = b[x + 5 * y]; 4611 h ^= f.high; 4612 o ^= f.low 4613 } 4614 var j = T[x]; 4615 j.high = h; 4616 j.low = o 4617 } 4618 for (var x = 0; x < 5; x++) { 4619 var k = T[(x + 4) % 5]; 4620 var l = T[(x + 1) % 5]; 4621 var m = l.high; 4622 var n = l.low; 4623 var h = k.high ^ ((m << 1) | (n >>> 31)); 4624 var o = k.low ^ ((n << 1) | (m >>> 31)); 4625 for (var y = 0; y < 5; y++) { 4626 var f = b[x + 5 * y]; 4627 f.high ^= h; 4628 f.low ^= o 4629 } 4630 } 4631 for (var p = 1; p < 25; p++) { 4632 var h; 4633 var o; 4634 var f = b[p]; 4635 var q = f.high; 4636 var r = f.low; 4637 var s = K[p]; 4638 if (s < 32) { 4639 h = (q << s) | (r >>> (32 - s)); 4640 o = (r << s) | (q >>> (32 - s)) 4641 } else { 4642 h = (r << (s - 32)) | (q >>> (64 - s)); 4643 o = (q << (s - 32)) | (r >>> (64 - s)) 4644 } 4645 var t = T[L[p]]; 4646 t.high = h; 4647 t.low = o 4648 } 4649 var u = T[0]; 4650 var v = b[0]; 4651 u.high = v.high; 4652 u.low = v.low; 4653 for (var x = 0; x < 5; x++) { 4654 for (var y = 0; y < 5; y++) { 4655 var p = x + 5 * y; 4656 var f = b[p]; 4657 var w = T[p]; 4658 var z = T[((x + 1) % 5) + 5 * y]; 4659 var A = T[((x + 2) % 5) + 5 * y]; 4660 f.high = w.high ^ (~z.high & A.high); 4661 f.low = w.low ^ (~z.low & A.low) 4662 } 4663 } 4664 var f = b[0]; 4665 var B = N[g]; 4666 f.high ^= B.high; 4667 f.low ^= B.low 4668 } 4669 }, 4670 _doFinalize: function() { 4671 var a = this._data; 4672 var b = a.words; 4673 var c = this._nDataBytes * 8; 4674 var d = a.sigBytes * 8; 4675 var e = this.blockSize * 32; 4676
4676 b[d >>> 5] |= 0x1 << (24 - d % 32); 4677 b[((D.ceil((d + 1) / e) * e) >>> 5) - 1] |= 0x80; 4678 a.sigBytes = b.length * 4; 4679 this._process(); 4680 var f = this._state; 4681 var g = this.cfg.outputLength / 8; 4682 var h = g / 8; 4683 var j = []; 4684 for (var i = 0; i < h; i++) { 4685 var k = f[i]; 4686 var l = k.high; 4687 var m = k.low; 4688 l = ((((l << 8) | (l >>> 24)) & 0x00ff00ff) | (((l << 24) | (l >>> 8)) & 0xff00ff00)); 4689 m = ((((m << 8) | (m >>> 24)) & 0x00ff00ff) | (((m << 24) | (m >>> 8)) & 0xff00ff00)); 4690 j.push(m); 4691 j.push(l) 4692 } 4693 return new F.init(j,g) 4694 }, 4695 clone: function() { 4696 var a = G.clone.call(this); 4697 var b = a._state = this._state.slice(0); 4698 for (var i = 0; i < 25; i++) { 4699 b[i] = b[i].clone() 4700 } 4701 return a 4702 } 4703 }); 4704 C.SHA3 = G._createHelper(O); 4705 C.HmacSHA3 = G._createHmacHelper(O) 4706 }(Math)); 4707 (function(m) { 4708 var C = ba; 4709 var o = C.lib; 4710 var p = o.WordArray; 4711 var q = o.Hasher; 4712 var r = C.algo; 4713 var s = p.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); 4714 var u = p.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); 4715 var v = p.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]); 4716 var w = p.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]); 4717 var A = p.create([0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); 4718 var B = p.create([0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); 4719 var D = r.RIPEMD160 = q.extend({ 4720 _doReset: function() { 4721 this._hash = p.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]) 4722 }, 4723 _doProcessBlock: function(M, a) { 4724 for (var i = 0; i < 16; i++) { 4725 var b = a + i; 4726 var c = M[b]; 4727 M[b] = ((((c << 8) | (c >>> 24)) & 0x00ff00ff) | (((c << 24) | (c >>> 8)) & 0xff00ff00)) 4728 } 4729 var H = this._hash.words; 4730 var d = A.words; 4731 var e = B.words; 4732 var f = s.words; 4733 var g = u.words; 4734 var h = v.words; 4735 var j = w.words; 4736 var k, bl, cl, dl, el; 4737 var l, br, cr, dr, er; 4738 l = k = H[0]; 4739 br = bl = H[1]; 4740 cr = cl = H[2]; 4741 dr = dl = H[3]; 4742 er = el = H[4]; 4743 var t; 4744 for (var i = 0; i < 80; i += 1) { 4745 t = (k + M[a + f[i]]) | 0; 4746 if (i < 16) { 4747 t += f1(bl, cl, dl) + d[0] 4748 } else if (i < 32) { 4749 t += f2(bl, cl, dl) + d[1] 4750 } else if (i < 48) { 4751 t += f3(bl, cl, dl) + d[2] 4752 } else if (i < 64) { 4753 t += f4(bl, cl, dl) + d[3] 4754 } else { 4755 t += f5(bl, cl, dl) + d[4] 4756 } 4757 t = t | 0; 4758 t = rotl(t, h[i]); 4759 t = (t + el) | 0; 4760 k = el; 4761 el = dl; 4762 dl = rotl(cl, 10); 4763 cl = bl; 4764 bl = t; 4765 t = (l + M[a + g[i]]) | 0; 4766 if (i < 16) { 4767 t += f5(br, cr, dr) + e[0] 4768 } else if (i < 32) {
4769 t += f4(br, cr, dr) + e[1] 4770 } else if (i < 48) { 4771 t += f3(br, cr, dr) + e[2] 4772 } else if (i < 64) { 4773 t += f2(br, cr, dr) + e[3] 4774 } else { 4775 t += f1(br, cr, dr) + e[4] 4776 } 4777 t = t | 0; 4778 t = rotl(t, j[i]); 4779 t = (t + er) | 0; 4780 l = er; 4781 er = dr; 4782 dr = rotl(cr, 10); 4783 cr = br; 4784 br = t 4785 } 4786 t = (H[1] + cl + dr) | 0; 4787 H[1] = (H[2] + dl + er) | 0; 4788 H[2] = (H[3] + el + l) | 0; 4789 H[3] = (H[4] + k + br) | 0; 4790 H[4] = (H[0] + bl + cr) | 0; 4791 H[0] = t 4792 }, 4793 _doFinalize: function() { 4794 var a = this._data; 4795 var b = a.words; 4796 var c = this._nDataBytes * 8; 4797 var d = a.sigBytes * 8; 4798 b[d >>> 5] |= 0x80 << (24 - d % 32); 4799 b[(((d + 64) >>> 9) << 4) + 14] = ((((c << 8) | (c >>> 24)) & 0x00ff00ff) | (((c << 24) | (c >>> 8)) & 0xff00ff00)); 4800 a.sigBytes = (b.length + 1) * 4; 4801 this._process(); 4802 var e = this._hash; 4803 var H = e.words; 4804 for (var i = 0; i < 5; i++) { 4805 var f = H[i]; 4806 H[i] = (((f << 8) | (f >>> 24)) & 0x00ff00ff) | (((f << 24) | (f >>> 8)) & 0xff00ff00) 4807 } 4808 return e 4809 }, 4810 clone: function() { 4811 var a = q.clone.call(this); 4812 a._hash = this._hash.clone(); 4813 return a 4814 } 4815 }); 4816 function f1(x, y, z) { 4817 return ((x) ^ (y) ^ (z)) 4818 } 4819 function f2(x, y, z) { 4820 return (((x) & (y)) | ((~x) & (z))) 4821 } 4822 function f3(x, y, z) { 4823 return (((x) | (~(y))) ^ (z)) 4824 } 4825 function f4(x, y, z) { 4826 return (((x) & (z)) | ((y) & (~(z)))) 4827 } 4828 function f5(x, y, z) { 4829 return ((x) ^ ((y) | (~(z)))) 4830 } 4831 function rotl(x, n) { 4832 return (x << n) | (x >>> (32 - n)) 4833 } 4834 C.RIPEMD160 = q._createHelper(D); 4835 C.HmacRIPEMD160 = q._createHmacHelper(D) 4836 }(Math)); 4837 (function() { 4838 var C = ba; 4839 var j = C.lib; 4840 var k = j.Base; 4841 var l = C.enc; 4842 var m = l.Utf8; 4843 var n = C.algo; 4844 var o = n.HMAC = k.extend({ 4845 init: function(a, b) { 4846 a = this._hasher = new a.init(); 4847 if (typeof b == 'string') { 4848 b = m.parse(b) 4849 } 4850 var c = a.blockSize; 4851 var d = c * 4; 4852 if (b.sigBytes > d) { 4853 b = a.finalize(b) 4854 } 4855 b.clamp(); 4856 var e = this._oKey = b.clone(); 4857 var f = this._iKey = b.clone(); 4858 var g = e.words; 4859 var h = f.words; 4860 for (var i = 0; i < c; i++) { 4861 g[i] ^= 0x5c5c5c5c; 4862 h[i] ^= 0x36363636 4863 } 4864 e.sigBytes = f.sigBytes = d; 4865 this.reset() 4866 }, 4867 reset: function() { 4868 var a = this._hasher; 4869 a.reset(); 4870 a.update(this._iKey) 4871 }, 4872 update: function(a) { 4873 this._hasher.update(a); 4874 return this 4875 }, 4876 finalize: function(a) { 4877 var b = this._hasher; 4878 var c = b.finalize(a); 4879 b.reset(); 4880 var d = b.finalize(this._oKey.clone().concat(c)); 4881 return d 4882 } 4883 }) 4884 }()); 4885 (function() { 4886 var C = ba; 4887 var r = C.lib; 4888 var s = r.Base; 4889 var t = r.WordArray; 4890 var u = C.algo; 4891 var v = u.SHA1; 4892 var w = u.HMAC; 4893 var x = u.PBKDF2 = s.extend({ 4894 cfg: s.extend({ 4895 keySize: 128 / 32, 4896 hasher: v, 4897 iterations: 1 4898 }), 4899 init: function(a) { 4900 this.cfg = this.cfg.extend(a) 4901 }, 4902 compute: function(a, b) { 4903 var c = this.cfg; 4904 var d = w.create(c.hasher, a); 4905 var e = t.create(); 4906 var f = t.create([0x00000001]); 4907 var g = e.words; 4908 var h = f.words; 4909 var k = c.keySize; 4910 var l = c.iterations; 4911 while (g.length < k) { 4912 var m = d.update(b).finalize(f); 4913 d.reset(); 4914 var n = m.words; 4915 var o = n.length; 4916 var p = m; 4917 for (var i = 1; i < l; i++) { 4918 p = d.finalize(p); 4919 d.reset(); 4920 var q = p.words; 4921 for (var j = 0; j < o; j++) { 4922 n[j] ^= q[j] 4923 } 4924 } 4925 e.concat(m); 4926 h[0]++ 4927 } 4928 e.sigBytes = k * 4; 4929 return e 4930 } 4931 }); 4932 C.PBKDF2 = function(a, b, c) { 4933 return x.create(c).compute(a, b) 4934 } 4935 }()); 4936 (function() { 4937 var C = ba; 4938 var k = C.lib; 4939 var l = k.Base; 4940 var m = k.WordArray; 4941 var n = C.algo; 4942 var o = n.MD5; 4943 var p = n.EvpKDF = l.extend({ 4944 cfg: l.extend({ 4945 keySize: 128 / 32, 4946 hasher: o, 4947 iterations: 1 4948 }), 4949 init: function(a) { 4950 this.cfg = this.cfg.extend(a) 4951 }, 4952 compute: function(a, b) { 4953 var c; 4954 var d = this.cfg; 4955 var e = d.hasher.create(); 4956 var f = m.create(); 4957 var g = f.words; 4958 var h = d.keySize; 4959 var j = d.iterations; 4960 while (g.length < h) { 4961 if (c) { 4962 e.update(c) 4963 } 4964 c = e.update(a).finalize(b); 4965 e.reset(); 4966 for (var i = 1; i < j; i++) { 4967 c = e.finalize(c); 4968 e.reset() 4969 } 4970 f.concat(c) 4971 } 4972 f.sigBytes = h * 4; 4973 return f 4974 } 4975 }); 4976 C.EvpKDF = function(a, b, c) { 4977 return p.create(c).compute(a, b) 4978 } 4979 }()); 4980 ba.lib.Cipher || (function(h) { 4981 var C = ba; 4982 var j = C.lib; 4983 var k = j.Base; 4984 var l = j.WordArray; 4985 var m = j.BufferedBlockAlgorithm; 4986 var n = C.enc; 4987 var o = n.Utf8; 4988 var p = n.Base64; 4989 var q = C.algo; 4990 var r = q.EvpKDF; 4991 var s = j.Cipher = m.extend({ 4992 cfg: k.extend(), 4993 createEncryptor: function(a, b) { 4994 return this.create(this._ENC_XFORM_MODE, a, b) 4995 }, 4996 createDecryptor: function(a, b) { 4997 return this.create(this._DEC_XFORM_MODE, a, b) 4998 }, 4999 init: function(a, b, c) { 5000 this.cfg = this.cfg.extend(c); 5001 this._xformMode = a; 5002 this._key = b; 5003 this.reset() 5004 }, 5005 reset: function() { 5006 m.reset.call(this); 5007 this._doReset() 5008 }, 5009 process: function(a) { 5010 this._append(a); 5011 return this._process() 5012 }, 5013 finalize: function(a) { 5014 if (a) { 5015 this._append(a) 5016 } 5017 var b = this._doFinalize(); 5018 return b 5019 }, 5020 keySize: 128 / 32, 5021 ivSize: 128 / 32, 5022 _ENC_XFORM_MODE: 1, 5023 _DEC_XFORM_MODE: 2, 5024 _createHelper: (function() { 5025 function selectCipherStrategy(a) { 5026 if (typeof a == 'string') { 5027 return H 5028 } else { 5029 return E 5030 } 5031 } 5032 return function(d) { 5033 return { 5034 encrypt: function(a, b, c) { 5035 return selectCipherStrategy(b).encrypt
5035(d, a, b, c) 5036 }, 5037 decrypt: function(a, b, c) { 5038 return selectCipherStrategy(b).decrypt(d, a, b, c) 5039 } 5040 } 5041 } 5042 }()) 5043 }); 5044 var t = j.StreamCipher = s.extend({ 5045 _doFinalize: function() { 5046 var a = this._process(!!'flush'); 5047 return a 5048 }, 5049 blockSize: 1 5050 }); 5051 var u = C.mode = {}; 5052 var v = j.BlockCipherMode = k.extend({ 5053 createEncryptor: function(a, b) { 5054 return this.Encryptor.create(a, b) 5055 }, 5056 createDecryptor: function(a, b) { 5057 return this.Decryptor.create(a, b) 5058 }, 5059 init: function(a, b) { 5060 this._cipher = a; 5061 this._iv = b 5062 } 5063 }); 5064 var w = u.CBC = (function() { 5065 var f = v.extend(); 5066 f.Encryptor = f.extend({ 5067 processBlock: function(a, b) { 5068 var c = this._cipher; 5069 var d = c.blockSize; 5070 xorBlock.call(this, a, b, d); 5071 c.encryptBlock(a, b); 5072 this._prevBlock = a.slice(b, b + d) 5073 } 5074 }); 5075 f.Decryptor = f.extend({ 5076 processBlock: function(a, b) { 5077 var c = this._cipher; 5078 var d = c.blockSize; 5079 var e = a.slice(b, b + d); 5080 c.decryptBlock(a, b); 5081 xorBlock.call(this, a, b, d); 5082 this._prevBlock = e 5083 } 5084 }); 5085 function xorBlock(a, b, c) { 5086 var d; 5087 var e = this._iv; 5088 if (e) { 5089 d = e; 5090 this._iv = h 5091 } else { 5092 d = this._prevBlock 5093 } 5094 for (var i = 0; i < c; i++) { 5095 a[b + i] ^= d[i] 5096 } 5097 } 5098 return f 5099 }()); 5100 var x = C.pad = {}; 5101 var y = x.Pkcs7 = { 5102 pad: function(a, b) { 5103 var c = b * 4; 5104 var d = c - a.sigBytes % c; 5105 var e = (d << 24) | (d << 16) | (d << 8) | d; 5106 var f = []; 5107 for (var i = 0; i < d; i += 4) { 5108 f.push(e) 5109 } 5110 var g = l.create(f, d); 5111 a.concat(g) 5112 }, 5113 unpad: function(a) { 5114 var b = a.words[(a.sigBytes - 1) >>> 2] & 0xff;
5115 a.sigBytes -= b 5116 } 5117 }; 5118 var z = j.BlockCipher = s.extend({ 5119 cfg: s.cfg.extend({ 5120 mode: w, 5121 padding: y 5122 }), 5123 reset: function() { 5124 var a; 5125 s.reset.call(this); 5126 var b = this.cfg; 5127 var c = b.iv; 5128 var d = b.mode; 5129 if (this._xformMode == this._ENC_XFORM_MODE) { 5130 a = d.createEncryptor 5131 } else { 5132 a = d.createDecryptor; 5133 this._minBufferSize = 1 5134 } 5135 if (this._mode && this._mode.__creator == a) { 5136 this._mode.init(this, c && c.words) 5137 } else { 5138 this._mode = a.call(d, this, c && c.words); 5139 this._mode.__creator = a 5140 } 5141 }, 5142 _doProcessBlock: function(a, b) { 5143 this._mode.processBlock(a, b) 5144 }, 5145 _doFinalize: function() { 5146 var a; 5147 var b = this.cfg.padding; 5148 if (this._xformMode == this._ENC_XFORM_MODE) { 5149 b.pad(this._data, this.blockSize); 5150 a = this._process(!!'flush') 5151 } else { 5152 a = this._process(!!'flush'); 5153 b.unpad(a) 5154 } 5155 return a 5156 }, 5157 blockSize: 128 / 32 5158 }); 5159 var A = j.CipherParams = k.extend({ 5160 init: function(a) { 5161 this.mixIn(a) 5162 }, 5163 toString: function(a) { 5164 return (a || this.formatter).stringify(this) 5165 } 5166 }); 5167 var B = C.format = {}; 5168 var D = B.OpenSSL = { 5169 stringify: function(a) { 5170 var b; 5171 var c = a.ciphertext; 5172 var d = a.salt; 5173 if (d) { 5174 b = l.create([0x53616c74, 0x65645f5f]).concat(d).concat(c) 5175 } else { 5176 b = c 5177 } 5178 return b.toString(p) 5179 }, 5180 parse: function(a) { 5181 var b; 5182 var c = p.parse(a); 5183 var d = c.words; 5184 if (d[0] == 0x53616c74 && d[1] == 0x65645f5f) { 5185 b = l.create(d.slice(2, 4)); 5186 d.splice(0, 4); 5187 c.sigBytes -= 16 5188 } 5189 return A.create({ 5190 ciphertext: c, 5191 salt: b 5192 }) 5193 } 5194 }; 5195 var E = j.SerializableCipher = k.extend({ 5196 cfg: k.extend({ 5197 format: D 5198 }), 5199 encrypt: function(a, b, c, d) { 5200 d = this.cfg.extend(d); 5201 var e = a.createEncryptor(c, d); 5202 var f = e.finalize(b); 5203 var g = e.cfg; 5204 return A.create({ 5205 ciphertext: f, 5206 key: c, 5207 iv: g.iv, 5208 algorithm: a, 5209 mode: g.mode, 5210 padding: g.padding, 5211 blockSize: a.blockSize, 5212 formatter: d.format 5213 }) 5214 }, 5215 decrypt: function(a, b, c, d) { 5216 d = this.cfg.extend(d); 5217 b = this._parse(b, d.format); 5218 var e = a.createDecryptor(c, d).finalize(b.ciphertext); 5219 return e 5220 }, 5221 _parse: function(a, b) { 5222 if (typeof a == 'string') { 5223 return b.parse(a, this) 5224 } else { 5225 return a 5226 } 5227 } 5228 }); 5229 var F = C.kdf = {}; 5230 var G = F.OpenSSL = { 5231 execute: function(a, b, c, d) { 5232 if (!d) { 5233 d = l.random(64 / 8) 5234 } 5235 var e = r.create({ 5236 keySize: b + c 5237 }).compute(a, d); 5238 var f = l.create(e.words.slice(b), c * 4); 5239 e.sigBytes = b * 4; 5240 return A.create({ 5241 key: e, 5242 iv: f, 5243 salt: d 5244 }) 5245 } 5246 }; 5247 var H = j.PasswordBasedCipher = E.extend({ 5248 cfg: E.cfg.extend({ 5249 kdf: G 5250 }), 5251 encrypt: function(a, b, c, d) { 5252 d = this.cfg.extend(d); 5253 var e = d.kdf.execute(c, a.keySize, a.ivSize); 5254 d.iv = e.iv; 5255 var f = E.encrypt.call(this, a, b, e.key, d); 5256 f.mixIn(e); 5257 return f 5258 }, 5259 decrypt: function(a, b, c, d) { 5260 d = this.cfg.extend(d); 5261 b = this._parse(b, d.format); 5262 var e = d.kdf.execute(c, a.keySize, a.ivSize, b.salt); 5263 d.iv = e.iv; 5264 var f = E.decrypt.call(this, a, b, e.key, d); 5265 return f 5266 } 5267 }) 5268 }()); 5269 ba.mode.CFB = (function() { 5270 var g = ba.lib.BlockCipherMode.extend(); 5271 g.Encryptor = g.extend({ 5272 processBlock: function(a, b) { 5273 var c = this._cipher; 5274 var d = c.blockSize; 5275 generateKeystreamAndEncrypt.call(this, a, b, d, c); 5276 this._prevBlock = a.slice(b, b + d) 5277 } 5278 }); 5279 g.Decryptor = g.extend({ 5280 processBlock: function(a, b) { 5281 var c = this._cipher; 5282 var d = c.blockSize; 5283 var e = a.slice(b, b + d); 5284 generateKeystreamAndEncrypt.call(this, a, b, d, c); 5285 this._prevBlock = e 5286 } 5287 }); 5288 function generateKeystreamAndEncrypt(a, b, c, d) { 5289 var e; 5290 var f = this._iv; 5291 if (f) { 5292 e = f.slice(0); 5293 this._iv = undefined 5294 } else { 5295 e = this._prevBlock 5296 } 5297 d.encryptBlock(e, 0); 5298 for (var i = 0; i < c; i++) { 5299 a[b + i] ^= e[i] 5300 } 5301 } 5302 return g 5303 }()); 5304 ba.mode.CTR = (function() { 5305 var h = ba.lib.BlockCipherMode.extend(); 5306 var j = h.Encryptor = h.extend({ 5307 processBlock: function(a, b) { 5308 var c = this._cipher; 5309 var d = c.blockSize; 5310 var e = this._iv; 5311 var f = this._counter; 5312 if (e) { 5313 f = this._counter = e.slice(0); 5314 this._iv = undefined 5315 } 5316 var g = f.slice(0); 5317 c.encryptBlock(g, 0); 5318 f[d - 1] = (f[d - 1] + 1) | 0; 5319 for (var i = 0; i < d; i++) { 5320 a[b + i] ^= g[i] 5321 } 5322 } 5323 }); 5324 h.Decryptor = j; 5325 return h 5326 }()); 5327 ba.mode.CTRGladman = (function() { 5328 var h = ba.lib.BlockCipherMode.extend(); 5329 function incWord(a) { 5330 if (((a >> 24) & 0xff) === 0xff) { 5331 var b = (a >> 16) & 0xff;
5332 var c = (a >> 8) & 0xff; 5333 var d = a & 0xff; 5334 if (b === 0xff) { 5335 b = 0; 5336 if (c === 0xff) { 5337 c = 0; 5338 if (d === 0xff) { 5339 d = 0 5340 } else { 5341 ++d 5342 } 5343 } else { 5344 ++c 5345 } 5346 } else { 5347 ++b 5348 } 5349 a = 0; 5350 a += (b << 16); 5351 a += (c << 8); 5352 a += d 5353 } else { 5354 a += (0x01 << 24) 5355 } 5356 return a 5357 } 5358 function incCounter(a) { 5359 if ((a[0] = incWord(a[0])) === 0) { 5360 a[1] = incWord(a[1]) 5361 } 5362 return a 5363 } 5364 var j = h.Encryptor = h.extend({ 5365 processBlock: function(a, b) { 5366 var c = this._cipher; 5367 var d = c.blockSize; 5368 var e = this._iv; 5369 var f = this._counter; 5370 if (e) { 5371 f = this._counter = e.slice(0); 5372 this._iv = undefined 5373 } 5374 incCounter(f); 5375 var g = f.slice(0); 5376 c.encryptBlock(g, 0); 5377 for (var i = 0; i < d; i++) { 5378 a[b + i] ^= g[i] 5379 } 5380 } 5381 }); 5382 h.Decryptor = j; 5383 return h 5384 }()); 5385 ba.mode.OFB = (function() { 5386 var g = ba.lib.BlockCipherMode.extend(); 5387 var h = g.Encryptor = g.extend({ 5388 processBlock: function(a, b) { 5389 var c = this._cipher; 5390 var d = c.blockSize; 5391 var e = this._iv; 5392 var f = this._keystream; 5393 if (e) { 5394 f = this._keystream = e.slice(0); 5395 this._iv = undefined 5396 } 5397 c.encryptBlock(f, 0); 5398 for (var i = 0; i < d; i++) { 5399 a[b + i] ^= f[i] 5400 } 5401 } 5402 }); 5403 g.Decryptor = h; 5404 return g 5405 }()); 5406 ba.mode.ECB = (function() { 5407 var c = ba.lib.BlockCipherMode.extend(); 5408 c.Encryptor = c.extend({ 5409 processBlock: function(a, b) { 5410 this._cipher.encryptBlock(a, b) 5411 } 5412 }); 5413 c.Decryptor = c.extend({ 5414 processBlock: function(a, b) { 5415 this._cipher.decryptBlock(a, b) 5416 } 5417 }); 5418 return c 5419 }()); 5420 ba.pad.AnsiX923 = { 5421 pad: function(a, b) { 5422 var c = a.sigBytes; 5423 var d = b * 4; 5424 var e = d - c % d; 5425 var f = c + e - 1; 5426 a.clamp(); 5427 a.words[f >>> 2] |= e << (24 - (f % 4) * 8); 5428 a.sigBytes += e 5429 }, 5430 unpad: function(a) { 5431 var b = a.words[(a.sigBytes - 1) >>> 2] & 0xff;
5432 a.sigBytes -= b 5433 } 5434 }; 5435 ba.pad.Iso10126 = { 5436 pad: function(a, b) { 5437 var c = b * 4; 5438 var d = c - a.sigBytes % c; 5439 a.concat(ba.lib.WordArray.random(d - 1)).concat(ba.lib.WordArray.create([d << 24], 1)) 5440 }, 5441 unpad: function(a) { 5442 var b = a.words[(a.sigBytes - 1) >>> 2] & 0xff; 5443 a.sigBytes -= b 5444 } 5445 }; 5446 ba.pad.Iso97971 = { 5447 pad: function(a, b) { 5448 a.concat(ba.lib.WordArray.create([0x80000000], 1)); 5449 ba.pad.ZeroPadding.pad(a, b) 5450 }, 5451 unpad: function(a) { 5452 ba.pad.ZeroPadding.unpad(a); 5453 a.sigBytes-- 5454 } 5455 }; 5456 ba.pad.ZeroPadding = { 5457 pad: function(a, b) { 5458 var c = b * 4; 5459 a.clamp(); 5460 a.sigBytes += c - ((a.sigBytes % c) || c) 5461 }, 5462 unpad: function(a) { 5463 var b = a.words; 5464 var i = a.sigBytes - 1; 5465 for (var i = a.sigBytes - 1; i >= 0; i--) { 5466 if (((b[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { 5467 a.sigBytes = i + 1; 5468 break 5469 } 5470 } 5471 } 5472 }; 5473 ba.pad.NoPadding = { 5474 pad: function() {}, 5475 unpad: function() {} 5476 }; 5477 (function(c) { 5478 var C = ba; 5479 var d = C.lib; 5480 var e = d.CipherParams; 5481 var f = C.enc; 5482 var g = f.Hex; 5483 var h = C.format; 5484 var i = h.Hex = { 5485 stringify: function(a) { 5486 return a.ciphertext.toString(g) 5487 }, 5488 parse: function(a) { 5489 var b = g.parse(a); 5490 return e.create({ 5491 ciphertext: b 5492 }) 5493 } 5494 } 5495 }()); 5496 (function() { 5497 var C = ba; 5498 var s = C.lib; 5499 var u = s.BlockCipher; 5500 var v = C.algo; 5501 var w = []; 5502 var y = []; 5503 var z = []; 5504 var A = []; 5505 var B = []; 5506 var D = []; 5507 var E = []; 5508 var F = []; 5509 var G = []; 5510 var H = []; 5511 (function() { 5512 var d = []; 5513 for (var i = 0; i < 256; i++) { 5514 if (i < 128) { 5515 d[i] = i << 1 5516 } else { 5517 d[i] = (i << 1) ^ 0x11b 5518 } 5519 } 5520 var x = 0; 5521 var a = 0; 5522 for (var i = 0; i < 256; i++) { 5523 var b = a ^ (a << 1) ^ (a << 2) ^ (a << 3) ^ (a << 4); 5524 b = (b >>> 8) ^ (b & 0xff) ^ 0x63; 5525 w[x] = b; 5526 y[b] = x; 5527 var c = d[x]; 5528 var e = d[c]; 5529 var f = d[e]; 5530 var t = (d[b] * 0x101) ^ (b * 0x1010100); 5531 z[x] = (t << 24) | (t >>> 8); 5532 A[x] = (t << 16) | (t >>> 16); 5533 B[x] = (t << 8) | (t >>> 24); 5534 D[x] = t; 5535 var t = (f * 0x1010101) ^ (e * 0x10001) ^ (c * 0x101) ^ (x * 0x1010100); 5536 E[b] = (t << 24) | (t >>> 8); 5537 F[b] = (t << 16) | (t >>> 16); 5538 G[b] = (t << 8) | (t >>> 24); 5539 H[b] = t; 5540 if (!x) { 5541 x = a = 1 5542 } else { 5543 x = c ^ d[d[d[f ^ c]]]; 5544 a ^= d[d[a]] 5545 } 5546 } 5547 }()); 5548 var I = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; 5549 var J = v.AES = u.extend({ 5550 _doReset: function() { 5551 var t; 5552 if (this._nRounds && this._keyPriorReset === this._key) { 5553 return 5554 } 5555 var a = this._keyPriorReset = this._key; 5556 var b = a.words; 5557 var c = a.sigBytes / 4;
5558 var d = this._nRounds = c + 6; 5559 var e = (d + 1) * 4; 5560 var f = this._keySchedule = []; 5561 for (var g = 0; g < e; g++) { 5562 if (g < c) { 5563 f[g] = b[g] 5564 } else { 5565 t = f[g - 1]; 5566 if (!(g % c)) { 5567 t = (t << 8) | (t >>> 24); 5568 t = (w[t >>> 24] << 24) | (w[(t >>> 16) & 0xff] << 16) | (w[(t >>> 8) & 0xff] << 8) | w[t & 0xff]; 5569 t ^= I[(g / c) | 0] << 24 5570 } else if (c > 6 && g % c == 4) { 5571 t = (w[t >>> 24] << 24) | (w[(t >>> 16) & 0xff] << 16) | (w[(t >>> 8) & 0xff] << 8) | w[t & 0xff] 5572 } 5573 f[g] = f[g - c] ^ t 5574 } 5575 } 5576 var h = this._invKeySchedule = []; 5577 for (var i = 0; i < e; i++) { 5578 var g = e - i; 5579 if (i % 4) { 5580 var t = f[g] 5581 } else { 5582 var t = f[g - 4] 5583 } 5584 if (i < 4 || g <= 4) { 5585 h[i] = t 5586 } else { 5587 h[i] = E[w[t >>> 24]] ^ F[w[(t >>> 16) & 0xff]] ^ G[w[(t >>> 8) & 0xff]] ^ H[w[t & 0xff]] 5588 } 5589 } 5590 }, 5591 encryptBlock: function(M, a) { 5592 this._doCryptBlock(M, a, this._keySchedule, z, A, B, D, w) 5593 }, 5594 decryptBlock: function(M, a) { 5595 var t = M[a + 1]; 5596 M[a + 1] = M[a + 3]; 5597 M[a + 3] = t; 5598 this._doCryptBlock(M, a, this._invKeySchedule, E, F, G, H, y); 5599 var t = M[a + 1]; 5600 M[a + 1] = M[a + 3]; 5601 M[a + 3] = t 5602 }, 5603 _doCryptBlock: function(M, a, b, c, d, e, f, g) {
5604 var h = this._nRounds; 5605 var i = M[a] ^ b[0]; 5606 var j = M[a + 1] ^ b[1]; 5607 var k = M[a + 2] ^ b[2]; 5608 var l = M[a + 3] ^ b[3]; 5609 var m = 4; 5610 for (var n = 1; n < h; n++) { 5611 var o = c[i >>> 24] ^ d[(j >>> 16) & 0xff] ^ e[(k >>> 8) & 0xff] ^ f[l & 0xff] ^ b[m++]; 5612 var p = c[j >>> 24] ^ d[(k >>> 16) & 0xff] ^ e[(l >>> 8) & 0xff] ^ f[i & 0xff] ^ b[m++]; 5613 var q = c[k >>> 24] ^ d[(l >>> 16) & 0xff] ^ e[(i >>> 8) & 0xff] ^ f[j & 0xff] ^ b[m++]; 5614 var r = c[l >>> 24] ^ d[(i >>> 16) & 0xff] ^ e[(j >>> 8) & 0xff] ^ f[k & 0xff] ^ b[m++]; 5615 i = o; 5616 j = p; 5617 k = q; 5618 l = r 5619 } 5620 var o = ((g[i >>> 24] << 24) | (g[(j >>> 16) & 0xff] << 16) | (g[(k >>> 8) & 0xff] << 8) | g[l & 0xff]) ^ b[m++]; 5621 var p = ((g[j >>> 24] << 24) | (g[(k >>> 16) & 0xff] << 16) | (g[(l >>> 8) & 0xff] << 8) | g[i & 0xff]) ^ b[m++]; 5622 var q = ((g[k >>> 24] << 24) | (g[(l >>> 16) & 0xff] << 16) | (g[(i >>> 8) & 0xff] << 8) | g[j & 0xff]) ^ b[m++]; 5623 var r = ((g[l >>> 24] << 24) | (g[(i >>> 16) & 0xff] << 16) | (g[(j >>> 8) & 0xff] << 8) | g[k & 0xff]) ^ b[m++]; 5624 M[a] = o; 5625 M[a + 1] = p; 5626 M[a + 2] = q; 5627 M[a + 3] = r 5628 }, 5629 keySize: 256 / 32 5630 }); 5631 C.AES = u._createHelper(J) 5632 }()); 5633 (function() { 5634 var C = ba; 5635 var k = C.lib; 5636 var l = k.WordArray; 5637 var m = k.BlockCipher; 5638 var n = C.algo; 5639 var o = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4]; 5640 var p = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32]; 5641 var q = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; 5642 var r = [{ 5643 0x0: 0x808200, 5644 0x10000000: 0x8000, 5645 0x20000000: 0x808002, 5646 0x30000000: 0x2, 5647 0x40000000: 0x200, 5648 0x50000000: 0x808202, 5649 0x60000000: 0x800202, 5650 0x70000000: 0x800000, 5651 0x80000000: 0x202, 5652 0x90000000: 0x800200, 5653 0xa0000000: 0x8200, 5654 0xb0000000: 0x808000, 5655 0xc0000000: 0x8002, 5656 0xd0000000: 0x800002, 5657 0xe0000000: 0x0, 5658 0xf0000000: 0x8202, 5659 0x8000000: 0x0, 5660 0x18000000: 0x808202, 5661 0x28000000: 0x8202, 5662 0x38000000: 0x8000, 5663 0x48000000: 0x808200, 5664 0x58000000: 0x200, 5665 0x68000000: 0x808002, 5666 0x78000000: 0x2, 5667 0x88000000: 0x800200, 5668 0x98000000: 0x8200, 5669 0xa8000000: 0x808000, 5670 0xb8000000: 0x800202, 5671 0xc8000000: 0x800002, 5672 0xd8000000: 0x8002, 5673 0xe8000000: 0x202, 5674 0xf8000000: 0x800000, 5675 0x1: 0x8000, 5676 0x10000001: 0x2, 5677 0x20000001: 0x808200, 5678 0x30000001: 0x800000, 5679 0x40000001: 0x808002, 5680 0x50000001: 0x8200, 5681 0x60000001: 0x200, 5682 0x70000001: 0x800202, 5683 0x80000001: 0x808202, 5684 0x90000001: 0x808000, 5685 0xa0000001: 0x800002, 5686 0xb0000001: 0x8202, 5687 0xc0000001: 0x202, 5688 0xd0000001: 0x800200, 5689 0xe0000001: 0x8002, 5690 0xf0000001: 0x0, 5691 0x8000001: 0x808202, 5692 0x18000001: 0x808000, 5693 0x28000001: 0x800000, 5694 0x38000001: 0x200, 5695 0x48000001: 0x8000, 5696 0x58000001: 0x800002, 5697 0x68000001: 0x2, 5698 0x78000001: 0x8202, 5699 0x88000001: 0x8002, 5700 0x98000001: 0x800202, 5701 0xa8000001: 0x202, 5702 0xb8000001: 0x808200, 5703 0xc8000001: 0x800200, 5704 0xd8000001: 0x0, 5705 0xe8000001: 0x8200, 5706 0xf8000001: 0x808002 5707 }, { 5708 0x0: 0x40084010, 5709 0x1000000: 0x4000, 5710 0x2000000: 0x80000, 5711 0x3000000: 0x40080010, 5712 0x4000000: 0x40000010, 5713 0x5000000: 0x40084000, 5714 0x6000000: 0x40004000, 5715 0x7000000: 0x10, 5716 0x8000000: 0x84000, 5717 0x9000000: 0x40004010, 5718 0xa000000: 0x40000000, 5719 0xb000000: 0x84010, 5720 0xc000000: 0x80010, 5721 0xd000000: 0x0, 5722 0xe000000: 0x4010, 5723 0xf000000: 0x40080000, 5724 0x800000: 0x40004000, 5725 0x1800000: 0x84010, 5726 0x2800000: 0x10, 5727 0x3800000: 0x40004010, 5728 0x4800000: 0x40084010, 5729 0x5800000: 0x40000000, 5730 0x6800000: 0x80000, 5731 0x7800000: 0x40080010, 5732 0x8800000: 0x80010, 5733 0x9800000: 0x0, 5734 0xa800000: 0x4000, 5735 0xb800000: 0x40080000, 5736 0xc800000: 0x40000010, 5737 0xd800000: 0x84000, 5738 0xe800000: 0x40084000, 5739 0xf800000: 0x4010, 5740 0x10000000: 0x0, 5741 0x11000000: 0x40080010, 5742 0x12000000: 0x40004010, 5743 0x13000000: 0x40084000, 5744 0x14000000: 0x40080000, 5745 0x15000000: 0x10, 5746 0x16000000: 0x84010, 5747 0x17000000: 0x4000, 5748 0x18000000: 0x4010, 5749 0x19000000: 0x80000, 5750 0x1a000000: 0x80010, 5751 0x1b000000: 0x40000010, 5752 0x1c000000: 0x84000, 5753 0x1d000000: 0x40004000, 5754 0x1e000000: 0x40000000, 5755 0x1f000000: 0x40084010, 5756 0x10800000: 0x84010, 5757 0x11800000: 0x80000, 5758 0x12800000: 0x40080000, 5759 0x13800000: 0x4000, 5760 0x14800000: 0x40004000, 5761 0x15800000: 0x40084010, 5762 0x16800000: 0x10, 5763 0x17800000: 0x40000000, 5764 0x18800000: 0x40084000, 5765 0x19800000: 0x40000010, 5766 0x1a800000: 0x40004010, 5767 0x1b800000: 0x80010, 5768 0x1c800000: 0x0, 5769 0x1d800000: 0x4010, 5770 0x1e800000: 0x40080010, 5771 0x1f800000: 0x84000 5772 }, { 5773 0x0: 0x104, 5774 0x100000: 0x0, 5775 0x200000: 0x4000100, 5776 0x300000: 0x10104, 5777 0x400000: 0x10004, 5778 0x500000: 0x4000004, 5779 0x600000: 0x4010104, 5780 0x700000: 0x4010000, 5781 0x800000: 0x4000000, 5782 0x900000: 0x4010100, 5783 0xa00000: 0x10100, 5784 0xb00000: 0x4010004, 5785 0xc00000: 0x4000104, 5786 0xd00000: 0x10000, 5787 0xe00000: 0x4, 5788 0xf00000: 0x100, 5789 0x80000: 0x4010100, 5790 0x180000: 0x4010004, 5791 0x280000: 0x0, 5792 0x380000: 0x4000100, 5793 0x480000: 0x4000004, 5794 0x580000: 0x10000, 5795 0x680000: 0x10004, 5796 0x780000: 0x104, 5797 0x880000: 0x4, 5798 0x980000: 0x100, 5799 0xa80000: 0x4010000, 5800 0xb80000: 0x10104, 5801 0xc80000: 0x10100, 5802 0xd80000: 0x4000104, 5803 0xe80000: 0x4010104, 5804 0xf80000: 0x4000000, 5805 0x1000000: 0x4010100, 5806 0x1100000: 0x10004, 5807 0x1200000: 0x10000, 5808 0x1300000: 0x4000100, 5809 0x1400000: 0x100, 5810 0x1500000: 0x4010104, 5811 0x1600000: 0x4000004, 5812 0x1700000: 0x0, 5813 0x1800000: 0x4000104, 5814 0x1900000: 0x4000000, 5815 0x1a00000: 0x4, 5816 0x1b00000: 0x10100, 5817 0x1c00000: 0x4010000, 5818 0x1d00000: 0x104, 5819 0x1e00000: 0x10104, 5820 0x1f00000: 0x4010004, 5821 0x1080000: 0x4000000, 5822 0x1180000: 0x104, 5823 0x1280000: 0x4010100, 5824 0x1380000: 0x0, 5825 0x1480000: 0x10004, 5826 0x1580000: 0x4000100, 5827 0x1680000: 0x100, 5828 0x1780000: 0x4010004, 5829 0x1880000: 0x10000, 5830 0x1980000: 0x4010104, 5831 0x1a80000: 0x10104, 5832 0x1b80000: 0x4000004, 5833 0x1c80000: 0x4000104, 5834 0x1d80000: 0x4010000, 5835 0x1e80000: 0x4, 5836 0x1f80000: 0x10100 5837 }, { 5838 0x0: 0x80401000, 5839 0x10000: 0x80001040, 5840 0x20000: 0x401040, 5841 0x30000: 0x80400000, 5842 0x40000: 0x0, 5843 0x50000: 0x401000, 5844 0x60000: 0x80000040, 5845 0x70000: 0x400040, 5846 0x80000: 0x80000000, 5847 0x90000: 0x400000, 5848 0xa0000: 0x40, 5849 0xb0000: 0x80001000, 5850 0xc0000: 0x80400040, 5851 0xd0000: 0x1040, 5852 0xe0000: 0x1000, 5853 0xf0000: 0x80401040, 5854 0x8000: 0x80001040, 5855 0x18000: 0x40, 5856 0x28000: 0x80400040, 5857 0x38000: 0x80001000, 5858 0x48000: 0x401000, 5859 0x58000: 0x80401040, 5860 0x68000: 0x0, 5861 0x78000: 0x80400000, 5862 0x88000: 0x1000, 5863 0x98000: 0x80401000, 5864 0xa8000: 0x400000, 5865 0xb8000: 0x1040, 5866 0xc8000: 0x80000000, 5867 0xd8000: 0x400040, 5868 0xe8000: 0x401040, 5869 0xf8000: 0x80000040, 5870 0x100000: 0x400040, 5871 0x110000: 0x401000, 5872 0x120000: 0x80000040, 5873 0x130000: 0x0, 5874 0x140000: 0x1040, 5875 0x150000: 0x80400040, 5876 0x160000: 0x80401000, 5877 0x170000: 0x80001040, 5878 0x180000: 0x80401040, 5879 0x190000: 0x80000000, 5880 0x1a0000: 0x80400000, 5881 0x1b0000: 0x401040, 5882 0x1c0000: 0x80001000, 5883 0x1d0000: 0x400000, 5884 0x1e0000: 0x40, 5885 0x1f0000: 0x1000, 5886 0x108000: 0x80400000, 5887 0x118000: 0x80401040, 5888 0x128000: 0x0, 5889 0x138000: 0x401000, 5890 0x148000: 0x400040, 5891 0x158000: 0x80000000, 5892 0x168000: 0x80001040, 5893 0x178000: 0x40, 5894 0x188000: 0x80000040, 5895 0x198000: 0x1000, 5896 0x1a8000: 0x80001000, 5897 0x1b8000: 0x80400040, 5898 0x1c8000: 0x1040, 5899 0x1d8000: 0x80401000, 5900 0x1e8000: 0x400000, 5901 0x1f8000: 0x401040 5902 }, { 5903 0x0: 0x80, 5904 0x1000: 0x1040000, 5905 0x2000: 0x40000, 5906 0x3000: 0x20000000, 5907 0x4000: 0x20040080, 5908 0x5000: 0x1000080, 5909 0x6000: 0x21000080, 5910 0x7000: 0x40080, 5911 0x8000: 0x1000000, 5912 0x9000: 0x20040000, 5913 0xa000: 0x20000080, 5914 0xb000: 0x21040080, 5915 0xc000: 0x21040000, 5916 0xd000: 0x0, 5917 0xe000: 0x1040080, 5918 0xf000: 0x21000000, 5919 0x800: 0x1040080, 5920 0x1800: 0x21000080, 5921 0x2800: 0x80, 5922 0x3800: 0x1040000, 5923 0x4800: 0x40000, 5924 0x5800: 0x20040080, 5925 0x6800: 0x21040000, 5926 0x7800: 0x20000000, 5927 0x8800: 0x20040000, 5928 0x9800: 0x0, 5929 0xa800: 0x21040080, 5930 0xb800: 0x1000080, 5931 0xc800: 0x20000080, 5932 0xd800: 0x21000000, 5933 0xe800: 0x1000000, 5934 0xf800: 0x40080, 5935 0x10000: 0x40000, 5936 0x11000: 0x80, 5937 0x12000: 0x20000000, 5938 0x13000: 0x21000080, 5939 0x14000: 0x1000080, 5940 0x15000: 0x21040000, 5941 0x16000: 0x20040080, 5942 0x17000: 0x1000000, 5943 0x18000: 0x21040080, 5944 0x19000: 0x21000000, 5945 0x1a000: 0x1040000, 5946 0x1b000: 0x20040000, 5947 0x1c000: 0x40080, 5948 0x1d000: 0x20000080, 5949 0x1e000: 0x0, 5950 0x1f000: 0x1040080, 5951 0x10800: 0x21000080, 5952 0x11800: 0x1000000, 5953 0x12800: 0x1040000, 5954 0x13800: 0x20040080, 5955 0x14800: 0x20000000, 5956 0x15800: 0x1040080, 5957 0x16800: 0x80, 5958 0x17800: 0x21040000, 5959 0x18800: 0x40080, 5960 0x19800: 0x21040080, 5961 0x1a800: 0x0, 5962 0x1b800: 0x21000000, 5963 0x1c800: 0x1000080, 5964 0x1d800: 0x40000, 5965 0x1e800: 0x20040000, 5966 0x1f800: 0x20000080 5967 }, { 5968 0x0: 0x10000008, 5969 0x100: 0x2000, 5970 0x200: 0x10200000, 5971 0x300: 0x10202008, 5972 0x400: 0x10002000, 5973 0x500: 0x200000, 5974 0x600: 0x200008, 5975 0x700: 0x10000000, 5976 0x800: 0x0, 5977 0x900: 0x10002008, 5978 0xa00: 0x202000, 5979 0xb00: 0x8, 5980 0xc00: 0x10200008, 5981 0xd00: 0x202008, 5982 0xe00: 0x2008, 5983 0xf00: 0x10202000, 5984 0x80: 0x10200000, 5985 0x180: 0x10202008, 5986 0x280: 0x8, 5987 0x380: 0x200000,
5988 0x480: 0x202008, 5989 0x580: 0x10000008, 5990 0x680: 0x10002000, 5991 0x780: 0x2008, 5992 0x880: 0x200008, 5993 0x980: 0x2000, 5994 0xa80: 0x10002008, 5995 0xb80: 0x10200008, 5996 0xc80: 0x0, 5997 0xd80: 0x10202000, 5998 0xe80: 0x202000, 5999 0xf80: 0x10000000, 6000 0x1000: 0x10002000, 6001 0x1100: 0x10200008, 6002 0x1200: 0x10202008, 6003 0x1300: 0x2008, 6004 0x1400: 0x200000, 6005 0x1500: 0x10000000, 6006 0x1600: 0x10000008, 6007 0x1700: 0x202000, 6008 0x1800: 0x202008, 6009 0x1900: 0x0, 6010 0x1a00: 0x8, 6011 0x1b00: 0x10200000, 6012 0x1c00: 0x2000, 6013 0x1d00: 0x10002008, 6014 0x1e00: 0x10202000, 6015 0x1f00: 0x200008, 6016 0x1080: 0x8, 6017 0x1180: 0x202000, 6018 0x1280: 0x200000, 6019 0x1380: 0x10000008, 6020 0x1480: 0x10002000, 6021 0x1580: 0x2008, 6022 0x1680: 0x10202008, 6023 0x1780: 0x10200000, 6024 0x1880: 0x10202000, 6025 0x1980: 0x10200008, 6026 0x1a80: 0x2000, 6027 0x1b80: 0x202008, 6028 0x1c80: 0x200008, 6029 0x1d80: 0x0, 6030 0x1e80: 0x10000000, 6031 0x1f80: 0x10002008 6032 }, { 6033 0x0: 0x100000, 6034 0x10: 0x2000401, 6035 0x20: 0x400, 6036 0x30: 0x100401, 6037 0x40: 0x2100401, 6038 0x50: 0x0, 6039 0x60: 0x1, 6040 0x70: 0x2100001, 6041 0x80: 0x2000400, 6042 0x90: 0x100001, 6043 0xa0: 0x2000001, 6044 0xb0: 0x2100400, 6045 0xc0: 0x2100000, 6046 0xd0: 0x401, 6047 0xe0: 0x100400, 6048 0xf0: 0x2000000, 6049 0x8: 0x2100001, 6050 0x18: 0x0, 6051 0x28: 0x2000401, 6052 0x38: 0x2100400, 6053 0x48: 0x100000, 6054 0x58: 0x2000001, 6055 0x68: 0x2000000, 6056 0x78: 0x401, 6057 0x88: 0x100401, 6058 0x98: 0x2000400, 6059 0xa8: 0x2100000, 6060 0xb8: 0x100001, 6061 0xc8: 0x400, 6062 0xd8: 0x2100401, 6063 0xe8: 0x1, 6064 0xf8: 0x100400, 6065 0x100: 0x2000000, 6066 0x110: 0x100000, 6067 0x120: 0x2000401, 6068 0x130: 0x2100001, 6069 0x140: 0x100001, 6070 0x150: 0x2000400, 6071 0x160: 0x2100400, 6072 0x170: 0x100401, 6073 0x180: 0x401, 6074 0x190: 0x2100401, 6075 0x1a0: 0x100400, 6076 0x1b0: 0x1, 6077 0x1c0: 0x0, 6078 0x1d0: 0x2100000, 6079 0x1e0: 0x2000001, 6080 0x1f0: 0x400, 6081 0x108: 0x100400, 6082 0x118: 0x2000401, 6083 0x128: 0x2100001, 6084 0x138: 0x1, 6085 0x148: 0x2000000, 6086 0x158: 0x100000, 6087 0x168: 0x401, 6088 0x178: 0x2100400, 6089 0x188: 0x2000001, 6090 0x198: 0x2100000, 6091 0x1a8: 0x0, 6092 0x1b8: 0x2100401, 6093 0x1c8: 0x100401, 6094 0x1d8: 0x400, 6095 0x1e8: 0x2000400, 6096 0x1f8: 0x100001 6097 }, { 6098 0x0: 0x8000820, 6099 0x1: 0x20000, 6100 0x2: 0x8000000, 6101 0x3: 0x20, 6102 0x4: 0x20020, 6103 0x5: 0x8020820, 6104 0x6: 0x8020800, 6105 0x7: 0x800, 6106 0x8: 0x8020000, 6107 0x9: 0x8000800, 6108 0xa: 0x20800, 6109 0xb: 0x8020020, 6110 0xc: 0x820, 6111 0xd: 0x0, 6112 0xe: 0x8000020, 6113 0xf: 0x20820, 6114 0x80000000: 0x800, 6115 0x80000001: 0x8020820, 6116 0x80000002: 0x8000820, 6117 0x80000003: 0x8000000, 6118 0x80000004: 0x8020000, 6119 0x80000005: 0x20800, 6120 0x80000006: 0x20820, 6121 0x80000007: 0x20, 6122 0x80000008: 0x8000020, 6123 0x80000009: 0x820, 6124 0x8000000a: 0x20020, 6125 0x8000000b: 0x8020800, 6126 0x8000000c: 0x0, 6127 0x8000000d: 0x8020020, 6128 0x8000000e: 0x8000800, 6129 0x8000000f: 0x20000, 6130 0x10: 0x20820, 6131 0x11: 0x8020800, 6132 0x12: 0x20, 6133 0x13: 0x800, 6134 0x14: 0x8000800, 6135 0x15: 0x8000020, 6136 0x16: 0x8020020, 6137 0x17: 0x20000, 6138 0x18: 0x0, 6139 0x19: 0x20020, 6140 0x1a: 0x8020000, 6141 0x1b: 0x8000820, 6142 0x1c: 0x8020820,
6143 0x1d: 0x20800, 6144 0x1e: 0x820, 6145 0x1f: 0x8000000, 6146 0x80000010: 0x20000, 6147 0x80000011: 0x800, 6148 0x80000012: 0x8020020, 6149 0x80000013: 0x20820, 6150 0x80000014: 0x20, 6151 0x80000015: 0x8020000, 6152 0x80000016: 0x8000000, 6153 0x80000017: 0x8000820, 6154 0x80000018: 0x8020820, 6155 0x80000019: 0x8000020, 6156 0x8000001a: 0x8000800, 6157 0x8000001b: 0x0, 6158 0x8000001c: 0x20800, 6159 0x8000001d: 0x820, 6160 0x8000001e: 0x20020, 6161 0x8000001f: 0x8020800 6162 }]; 6163 var s = [0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f]; 6164 var u = n.DES = m.extend({ 6165 _doReset: function() { 6166 var a = this._key; 6167 var b = a.words; 6168 var c = []; 6169 for (var i = 0; i < 56; i++) { 6170 var d = o[i] - 1; 6171 c[i] = (b[d >>> 5] >>> (31 - d % 32)) & 1 6172 } 6173 var e = this._subKeys = []; 6174 for (var f = 0; f < 16; f++) { 6175 var g = e[f] = []; 6176 var h = q[f]; 6177 for (var i = 0; i < 24; i++) { 6178 g[(i / 6) | 0] |= c[((p[i] - 1) + h) % 28] << (31 - i % 6); 6179 g[4 + ((i / 6) | 0)] |= c[28 + (((p[i + 24] - 1) + h) % 28)] << (31 - i % 6) 6180 } 6181 g[0] = (g[0] << 1) | (g[0] >>> 31); 6182 for (var i = 1; i < 7; i++) { 6183 g[i] = g[i] >>> ((i - 1) * 4 + 3) 6184 } 6185 g[7] = (g[7] << 5) | (g[7] >>> 27) 6186 } 6187 var j = this._invSubKeys = []; 6188 for (var i = 0; i < 16; i++) { 6189 j[i] = e[15 - i] 6190 } 6191 }, 6192 encryptBlock: function(M, a) { 6193 this._doCryptBlock(M, a, this._subKeys) 6194 }, 6195 decryptBlock: function(M, a) { 6196 this._doCryptBlock(M, a, this._invSubKeys) 6197 }, 6198 _doCryptBlock: function(M, a, b) { 6199 this._lBlock = M[a]; 6200 this._rBlock = M[a + 1]; 6201 exchangeLR.call(this, 4, 0x0f0f0f0f); 6202 exchangeLR.call(this, 16, 0x0000ffff); 6203 exchangeRL.call(this, 2, 0x33333333); 6204 exchangeRL.call(this, 8, 0x00ff00ff); 6205 exchangeLR.call(this, 1, 0x55555555); 6206 for (var c = 0; c < 16; c++) { 6207 var d = b[c]; 6208 var e = this._lBlock; 6209 var g = this._rBlock; 6210 var f = 0; 6211 for (var i = 0; i < 8; i++) { 6212 f |= r[i][((g ^ d[i]) & s[i]) >>> 0] 6213 } 6214 this._lBlock = g; 6215 this._rBlock = e ^ f 6216 } 6217 var t = this._lBlock; 6218 this._lBlock = this._rBlock; 6219 this._rBlock = t; 6220 exchangeLR.call(this, 1, 0x55555555); 6221 exchangeRL.call(this, 8, 0x00ff00ff); 6222 exchangeRL.call(this, 2, 0x33333333); 6223 exchangeLR.call(this, 16, 0x0000ffff); 6224 exchangeLR.call(this, 4, 0x0f0f0f0f); 6225 M[a] = this._lBlock; 6226 M[a + 1] = this._rBlock 6227 }, 6228 keySize: 64 / 32, 6229 ivSize: 64 / 32, 6230 blockSize: 64 / 32 6231 }); 6232 function exchangeLR(a, b) { 6233 var t = ((this._lBlock >>> a) ^ this._rBlock) & b; 6234 this._rBlock ^= t; 6235 this._lBlock ^= t << a 6236 } 6237 function exchangeRL(a, b) { 6238 var t = ((this._rBlock >>> a) ^ this._lBlock) & b; 6239 this._lBlock ^= t; 6240 this._rBlock ^= t << a 6241 } 6242 C.DES = m._createHelper(u); 6243 var v = n.TripleDES = m.extend({ 6244 _doReset: function() { 6245 var a = this._key; 6246 var b = a.words; 6247 if (b.length !== 2 && b.length !== 4 && b.length < 6) { 6248 throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.'); 6249 } 6250 var c = b.slice(0, 2); 6251 var d = b.length < 4 ? b.slice(0, 2) : b.slice(2, 4); 6252 var e = b.length < 6 ? b.slice(0, 2) : b.slice(4, 6); 6253 this._des1 = u.createEncryptor(l.create(c)); 6254 this._des2 = u.createEncryptor(l.create(d)); 6255 this._des3 = u.createEncryptor(l.create(e)) 6256 }, 6257 encryptBlock: function(M, a) { 6258 this._des1.encryptBlock(M, a); 6259 this._des2.decryptBlock(M, a); 6260 this._des3.encryptBlock(M, a) 6261 }, 6262 decryptBlock: function(M, a) { 6263 this._des3.decryptBlock(M, a); 6264 this._des2.encryptBlock(M, a); 6265 this._des1.decryptBlock(M, a) 6266 }, 6267 keySize: 192 / 32, 6268 ivSize: 64 / 32, 6269 blockSize: 64 / 32 6270 }); 6271 C.TripleDES = m._createHelper(v) 6272 }()); 6273 (function() { 6274 var C = ba; 6275 var f = C.lib; 6276 var g = f.StreamCipher; 6277 var h = C.algo; 6278 var k = h.RC4 = g.extend({ 6279 _doReset: function() { 6280 var a = this._key; 6281 var b = a.words; 6282 var c = a.sigBytes; 6283 var S = this._S = []; 6284 for (var i = 0; i < 256; i++) { 6285 S[i] = i 6286 } 6287 for (var i = 0, j = 0; i < 256; i++) { 6288 var d = i % c; 6289 var e = (b[d >>> 2] >>> (24 - (d % 4) * 8)) & 0xff;
6290 j = (j + S[i] + e) % 256; 6291 var t = S[i]; 6292 S[i] = S[j]; 6293 S[j] = t 6294 } 6295 this._i = this._j = 0 6296 }, 6297 _doProcessBlock: function(M, a) { 6298 M[a] ^= generateKeystreamWord.call(this) 6299 }, 6300 keySize: 256 / 32, 6301 ivSize: 0 6302 }); 6303 function generateKeystreamWord() { 6304 var S = this._S; 6305 var i = this._i; 6306 var j = this._j; 6307 var a = 0; 6308 for (var n = 0; n < 4; n++) { 6309 i = (i + 1) % 256; 6310 j = (j + S[i]) % 256; 6311 var t = S[i]; 6312 S[i] = S[j]; 6313 S[j] = t; 6314 a |= S[(S[i] + S[j]) % 256] << (24 - n * 8) 6315 } 6316 this._i = i; 6317 this._j = j; 6318 return a 6319 } 6320 C.RC4 = g._createHelper(k); 6321 var l = h.RC4Drop = k.extend({ 6322 cfg: k.cfg.extend({ 6323 drop: 192 6324 }), 6325 _doReset: function() { 6326 k._doReset.call(this); 6327 for (var i = this.cfg.drop; i > 0; i--) { 6328 generateKeystreamWord.call(this) 6329 } 6330 } 6331 }); 6332 C.RC4Drop = g._createHelper(l) 6333 }()); 6334 (function() { 6335 var C = ba; 6336 var j = C.lib; 6337 var k = j.StreamCipher; 6338 var l = C.algo; 6339 var S = []; 6340 var m = []; 6341 var G = []; 6342 var n = l.Rabbit = k.extend({ 6343 _doReset: function() { 6344 var K = this._key.words; 6345 var a = this.cfg.iv; 6346 for (var i = 0; i < 4; i++) { 6347 K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00) 6348 } 6349 var X = this._X = [K[0], (K[3] << 16) | (K[2] >>> 16), K[1], (K[0] << 16) | (K[3] >>> 16), K[2], (K[1] << 16) | (K[0] >>> 16), K[3], (K[2] << 16) | (K[1] >>> 16)]; 6350 var C = this._C = [(K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)]; 6351 this._b = 0; 6352 for (var i = 0; i < 4; i++) { 6353 nextState.call(this) 6354 } 6355 for (var i = 0; i < 8; i++) { 6356 C[i] ^= X[(i + 4) & 7] 6357 } 6358 if (a) { 6359 var b = a.words; 6360 var c = b[0]; 6361 var d = b[1]; 6362 var e = (((c << 8) | (c >>> 24)) & 0x00ff00ff) | (((c << 24) | (c >>> 8)) & 0xff00ff00); 6363 var f = (((d << 8) | (d >>> 24)) & 0x00ff00ff) | (((d << 24) | (d >>> 8)) & 0xff00ff00); 6364 var g = (e >>> 16) | (f & 0xffff0000); 6365 var h = (f << 16) | (e & 0x0000ffff); 6366 C[0] ^= e; 6367 C[1] ^= g; 6368 C[2] ^= f; 6369 C[3] ^= h; 6370 C[4] ^= e; 6371 C[5] ^= g; 6372 C[6] ^= f; 6373 C[7] ^= h; 6374 for (var i = 0; i < 4; i++) { 6375 nextState.call(this) 6376 } 6377 } 6378 }, 6379 _doProcessBlock: function(M, a) { 6380 var X = this._X; 6381 nextState.call(this); 6382 S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); 6383 S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); 6384 S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); 6385 S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); 6386 for (var i = 0; i < 4; i++) { 6387 S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); 6388 M[a + i] ^= S[i] 6389 } 6390 }, 6391 blockSize: 128 / 32, 6392 ivSize: 64 / 32 6393 }); 6394 function nextState() { 6395 var X = this._X; 6396 var C = this._C; 6397 for (var i = 0; i < 8; i++) { 6398 m[i] = C[i] 6399 }
vendor: 4,557 bytes, lines 6400-6490
6400 C[0] = (C[0] + 0x4d34d34d + this._b) | 0; 6401 C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (m[0] >>> 0) ? 1 : 0)) | 0; 6402 C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (m[1] >>> 0) ? 1 : 0)) | 0; 6403 C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (m[2] >>> 0) ? 1 : 0)) | 0; 6404 C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (m[3] >>> 0) ? 1 : 0)) | 0; 6405 C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (m[4] >>> 0) ? 1 : 0)) | 0; 6406 C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (m[5] >>> 0) ? 1 : 0)) | 0; 6407 C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (m[6] >>> 0) ? 1 : 0)) | 0; 6408 this._b = (C[7] >>> 0) < (m[7] >>> 0) ? 1 : 0; 6409 for (var i = 0; i < 8; i++) { 6410 var a = X[i] + C[i]; 6411 var b = a & 0xffff; 6412 var c = a >>> 16; 6413 var d = ((((b * b) >>> 17) + b * c) >>> 15) + c * c; 6414 var e = (((a & 0xffff0000) * a) | 0) + (((a & 0x0000ffff) * a) | 0); 6415 G[i] = d ^ e 6416 } 6417 X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; 6418 X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; 6419 X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; 6420 X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; 6421 X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; 6422 X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; 6423 X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; 6424 X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0 6425 } 6426 C.Rabbit = k._createHelper(n) 6427 }()); 6428 (function() { 6429 var C = ba; 6430 var j = C.lib; 6431 var k = j.StreamCipher; 6432 var l = C.algo; 6433 var S = []; 6434 var m = []; 6435 var G = []; 6436 var n = l.RabbitLegacy = k.extend({ 6437 _doReset: function() { 6438 var K = this._key.words; 6439 var a = this.cfg.iv; 6440 var X = this._X = [K[0], (K[3] << 16) | (K[2] >>> 16), K[1], (K[0] << 16) | (K[3] >>> 16), K[2], (K[1] << 16) | (K[0] >>> 16), K[3], (K[2] << 16) | (K[1] >>> 16)]; 6441 var C = this._C = [(K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)]; 6442 this._b = 0; 6443 for (var i = 0; i < 4; i++) { 6444 nextState.call(this) 6445 } 6446 for (var i = 0; i < 8; i++) { 6447 C[i] ^= X[(i + 4) & 7] 6448 } 6449 if (a) { 6450 var b = a.words; 6451 var c = b[0]; 6452 var d = b[1]; 6453 var e = (((c << 8) | (c >>> 24)) & 0x00ff00ff) | (((c << 24) | (c >>> 8)) & 0xff00ff00); 6454 var f = (((d << 8) | (d >>> 24)) & 0x00ff00ff) | (((d << 24) | (d >>> 8)) & 0xff00ff00); 6455 var g = (e >>> 16) | (f & 0xffff0000); 6456 var h = (f << 16) | (e & 0x0000ffff); 6457 C[0] ^= e; 6458 C[1] ^= g; 6459 C[2] ^= f; 6460 C[3] ^= h; 6461 C[4] ^= e; 6462 C[5] ^= g; 6463 C[6] ^= f; 6464 C[7] ^= h; 6465 for (var i = 0; i < 4; i++) { 6466 nextState.call(this) 6467 } 6468 } 6469 }, 6470 _doProcessBlock: function(M, a) { 6471 var X = this._X; 6472 nextState.call(this); 6473 S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); 6474 S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); 6475 S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); 6476 S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); 6477 for (var i = 0; i < 4; i++) { 6478 S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); 6479 M[a + i] ^= S[i] 6480 } 6481 }, 6482 blockSize: 128 / 32, 6483 ivSize: 64 / 32 6484 }); 6485 function nextState() { 6486 var X = this._X; 6487 var C = this._C; 6488 for (var i = 0; i < 8; i++) { 6489 m[i] = C[i] 6490 }
6491 C[0] = (C[0] + 0x4d34d34d + this._b) | 0; 6492 C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (m[0] >>> 0) ? 1 : 0)) | 0; 6493 C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (m[1] >>> 0) ? 1 : 0)) | 0; 6494 C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (m[2] >>> 0) ? 1 : 0)) | 0; 6495 C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (m[3] >>> 0) ? 1 : 0)) | 0; 6496 C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (m[4] >>> 0) ? 1 : 0)) | 0; 6497 C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (m[5] >>> 0) ? 1 : 0)) | 0; 6498 C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (m[6] >>> 0) ? 1 : 0)) | 0; 6499 this._b = (C[7] >>> 0) < (m[7] >>> 0) ? 1 : 0; 6500 for (var i = 0; i < 8; i++) { 6501 var a = X[i] + C[i]; 6502 var b = a & 0xffff; 6503 var c = a >>> 16; 6504 var d = ((((b * b) >>> 17) + b * c) >>> 15) + c * c; 6505 var e = (((a & 0xffff0000) * a) | 0) + (((a & 0x0000ffff) * a) | 0); 6506 G[i] = d ^ e 6507 } 6508 X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; 6509 X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; 6510 X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; 6511 X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; 6512 X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; 6513 X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; 6514 X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; 6515 X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0 6516 } 6517 C.RabbitLegacy = k._createHelper(n) 6518 }()); 6519 return ba 6520}, 6521function (el, observer, cryptojs, fetchjs) { 6522 // 1. åå§åæ° 6523 const __this = el; 6524 const imglink = (__this.getAttribute('z-image-loader-url') || __this.getAttribute('x-image-loader-url'))?.replace(/[`'"]/g, ''); 6525 const preview = __this.getAttribute('data-image-preview') ? true : false; 6526 const noloads = __this.getAttribute('data-no-loading') ? true : false; 6527 const imgtype = imglink.split('.').pop(); 6528 const decryptjs = function(word, cryjs) { 6529 const cc = (e, o=true) => o ? (cryjs.enc.Utf8.parse(e.split("_").map( (a) => String.fromCharCode(parseInt(a))).join(""))) : (e.split("_").map( (a) => String.fromCharCode(parseInt(a))).join("")); 6530 const decrypt = cryjs.AES.decrypt(word, cc("102_53_100_57_54_53_100_102_55_53_51_51_54_50_55_48"), { 6531 iv: cc("57_55_98_54_48_51_57_52_97_98_99_50_102_98_101_49"), 6532 mode: cryjs.mode["CBC"], 6533 padding: cryjs.pad.Pkcs7 6534 }); 6535 const decryptedStr = decrypt.toString(cryjs.enc.Base64); 6536 return decryptedStr 6537 }; 6538 6539 // 2. åå§å è½½ 6540 if (!noloads) { 6541 __this.classList.add('loading'); 6542 } 6543 6544 // 1. è·åå¾ç(äºè¿å¶) 6545 fetchjs(imglink, { timeout: 1000 * 30 }).then(response => response.blob()) 6546 6547 // 2. å¾çè§£å¯ 6548 .then((blob) => { 6549 return new Promise((resolve, reject) => { 6550 const fileReader = new FileReader(); 6551 try { 6552 fileReader.readAsDataURL(blob); 6553 fileReader.onload = ({ target: { result: ebase64Image } }) => { 6554 resolve(`${decryptjs(ebase64Image.split(',').pop(), cryptojs())}`); 6555 }; 6556 } catch (error) { 6557 reject(error); 6558 } 6559 }); 6560 }) 6561 6562 // 3. çå¬äºä»¶ 6563 .then((base64Image) => { 6564 let byteImage = new Uint8Array(atob(base64Image).split('').map((c) => c.charCodeAt(0))); 6565 // MIME æè§£å¯ååèç magic number å¤ç宿 ¼å¼: gif å¨å¾å¸¸åæ .jpg åç¼, æåç¼ä¼è¯¯æ image/jpg â gif åªæ¾é¦å¸§åéæ; è¯å«ä¸åºåéåç¼ imgtype 6566 let __imgt = (byteImage.length >= 3 && byteImage[0] === 0x47 && byteImage[1] === 0x49 && byteImage[2] === 0x46) ? 'gif' 6567 : (byteImage.length >= 2 && byteImage[0] === 0xff && byteImage[1] === 0xd8) ? 'jpeg' 6568 : (byteImage.length >
6568= 4 && byteImage[0] === 0x89 && byteImage[1] === 0x50) ? 'png' 6569 : (byteImage.length >= 12 && byteImage[8] === 0x57 && byteImage[9] === 0x45 && byteImage[10] === 0x42 && byteImage[11] === 0x50) ? 'webp' 6570 : imgtype; 6571 let blobImage = new Blob([byteImage], { type: `image/${__imgt}` }); 6572 let localImage = URL.createObjectURL(blobImage); 6573 6574 // å¾çæµè§ 6575 // preview && __this.addEventListener("click", function () { 6576 // showImagePreview({ 6577 // images: [localImage], closeable: true, showIndex: false 6578 // }); 6579 // }); 6580 6581 // å¾çå è½½ 6582 __this.setAttribute("load", "success"); 6583 __this.setAttribute('src', `${localImage}`); 6584 __this.onload = () => { 6585 __this.setAttribute("w", __this.naturalWidth); 6586 __this.setAttribute("h", __this.naturalHeight); 6587 __this.classList.remove('loading'); 6588 6589 // åæ¢è§¦å 6590 observer.unobserve(el); 6591 }; 6592 6593 __this.onerror = (err) => { 6594 console.error('å¾çè·å失败:', err); 6595 }; 6596 }) 6597 6598 // 4. å¼å¸¸å¤ç 6599 .catch((err) => { 6600 !noloads && __this.setAttribute('src', err) && __this.setAttribute('class', (__this.getAttribute('class')).split(" loading").join("")); 6601 console.error('å¾çè·å失败2:', err); 6602 }) 6603 6604 .finally(() => { 6605 // äºä»¶è¡¥å 6606 }) 6607}, 6608 6609(function(j){'use strict';var k=(typeof globalThis!=='undefined'&&globalThis)||(typeof self!=='undefined'&&self)||(typeof k!=='undefined'&&k);var l={searchParams:'URLSearchParams'in k,iterable:'Symbol'in k&&'iterator'in Symbol,blob:'FileReader'in k&&'Blob'in k&&(function(){try{new Blob();return true}catch(e){return false}})(),formData:'FormData'in k,arrayBuffer:'ArrayBuffer'in k};function isDataView(a){return a&&DataView.prototype.isPrototypeOf(a)}if(l.arrayBuffer){var m=['[object Int8Array]','[object Uint8Array]','[object Uint8ClampedArray]','[object Int16Array]','[object Uint16Array]','[object Int32Array]','[object Uint32Array]','[object Float32Array]','[object Float64Array]'];var n=ArrayBuffer.isView||function(a){return a&&m.indexOf(Object.prototype.toString.call(a))>-1}}function normalizeName(a){if(typeof a!=='string'){a=String(a)}if(/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(a)||a===''){throw new TypeError('Invalid character in header field name: "'+a+'"')}return a.toLowerCase()}function normalizeValue(a){if(typeof a!=='string'){a=String(a)}return a}function iteratorFor(b){var c={next:function(){var a=b.shift();return{done:a===undefined,value:a}}};if(l.iterable){c[Symbol.iterator]=function(){return c}}return c}function Headers(c){this.map={};if(c instanceof Headers){c.forEach(function(a,b){this.append(b,a)},this)}else if(Array.isArray(c)){c.forEach(function(a){this.append(a[0],a[1])},this)}else if(c){Object.getOwnPropertyNames(c).forEach(function(a){this.append(a,c[a])},this)}}Headers.prototype.append=function(a,b){a=normalizeName(a);b=normalizeValue(b);var c=this.map[a];this.map[a]=c?c+', '+b:b};Headers.prototype['delete']=function(a){delete this.map[normalizeName(a)]};Headers.prototype.get=function(a){a=normalizeName(a);return this.has(a)?this.map[a]:null};Headers.prototype.has=function(a){return this.map.hasOwnProperty(normalizeName(a))};Headers.prototype.set=function(a,b){this.map[normalizeName(a)]=normalizeValue(b)};Headers.prototype.forEach=function(a,b){for(var c in this.map){if(this.map.hasOwnProperty(c)){a.call(b,this.map[c],c,this)}}};Headers.prototype.keys=function(){var c=[];this.forEach(function(a,b){c.push(b)});return iteratorFor(c)};Headers.prototype.values=function(){var b=[];this.forEach(function(a){b.push(a)});return iteratorFor(b)};Headers.prototype.entries=function(){var c=[];this.forEach(function(a,b){c.push([b,a])});return iteratorFor(c)};if(l.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries}function consumed(a){if(a.bodyUsed){return Promise.reject(new TypeError('Already read'))}a.bodyUsed=true}function fileReaderReady(c){return new Promise(function(a,b){c.onload=function(){a(c.result)};c.onerror=function(){b(c.error)}})}function readBlobAsArrayBuffer(a){var b=new FileReader();var c=fileReaderReady(b);b.readAsArrayBuffer(a);return c}function readBlobAsText(a){var b=new FileReader();var c=fileReaderReady(b);b.readAsText(a);return c}function readArrayBufferAsText(a){var b=new Uint8Array(a);var c=new Array(b.length);for(var i=0;i<b.length;i++){c[i]=String.fromCharCode(b[i])}return c.join('')}function bufferClone(a){if(a.slice){return a.slice(0)}else{var b=new Uint8Array(a.byteLength);b.set(new Uint8Array(a));return b.buffer}}function Body(){this.bodyUsed=false;this._initBody=function(a){this.bodyUsed=this.bodyUsed;this._bodyInit=a;if(!a){this._bodyText=''}else if(typeof a==='string'){this._bodyText=a}else if(l.blob&&Blob.prototype.isPrototypeOf(a)){this._bodyBlob=a}else if(l.formData&&FormData.prototype.isPrototypeOf(a)){this._bodyFormData=a}else if(l.searchParams&&URLSearchParams.prototype.isPrototypeOf(a)){this._bodyText=a.toString()}else if(l.arrayBuffer&&l.blob&&isDataView(a)){this._bodyArrayBuffer=bufferClone(a.buffer);this._bodyInit=new Blob([this._bodyArrayBuffer])}else if(l.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(a)||n(a))){this._bodyArrayBuffer=bufferClone(a)}else{this._bodyText=a=Object.prototype.toString.call(a)}if(!this.headers.get('content-type')){if(typeof a==='string'){this.headers.set('content-type','text/plain;charset=UTF-8')}else if(this._bodyBlob&&this._bodyBlob.type){this.headers.set('content-type',this._bodyBlob.type)}else if(l.searchParams&&URLSearchParams.prototype.isPrototypeOf(a)){this.headers.set('content-type','application/x-www-form-urlencoded;charset=UTF-8')}}};if(l.blob){this.blob=function(){var a=consumed(this);if(a){return a}if(this._bodyBlob){return Promise.resolve(this._bodyBlob)}else if(this._bodyArrayBuffer){return Promise.resolve(new Blob([this._bodyArrayBuffer]))}else if(this._bodyFormData){throw new Error('could not read FormData body as blob')}else{return Promise.resolve(new Blob([this._bodyText]))}};this.arrayBuffer=function(){if(this._bodyArrayBuffer){var a=consumed(this);if(a){return a}if(ArrayBuffer.isView(this._bodyArrayBuffer)){return Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength))}else{return Promise.resolve(this._bodyArrayBuffer)}}else{return this.blob().then(readBlobAsArrayBuffer)}}}this.text=function(){var a=consumed(this);if(a){return a}if(this._bodyBlob){return readBlobAsText(this._bodyBlob)}else if(this._bodyArrayBuffer){return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))}else if(this._bodyFormData){throw new Error('could not read FormData body as text')}else{return Promise.resolve(this._bodyText)}};if(l.formData){this.formData=function(){return this.text().then(decode)}}this.json=function(){return this.text().then(JSON.parse)};return this}var o=['DELETE','GET','HEAD','OPTIONS','POST','PUT'];function normalizeMethod(a){var b=a.toUpperCase();return o.indexOf(b)>-1?b:a}
6609function Request(a,b){if(!(this instanceof Request)){throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.')}b=b||{};var c=b.body;if(a instanceof Request){if(a.bodyUsed){throw new TypeError('Already read')}this.url=a.url;this.credentials=a.credentials;if(!b.headers){this.headers=new Headers(a.headers)}this.method=a.method;this.mode=a.mode;this.signal=a.signal;if(!c&&a._bodyInit!=null){c=a._bodyInit;a.bodyUsed=true}}else{this.url=String(a)}this.credentials=b.credentials||this.credentials||'same-origin';if(b.headers||!this.headers){this.headers=new Headers(b.headers)}this.method=normalizeMethod(b.method||this.method||'GET');this.mode=b.mode||this.mode||null;this.signal=b.signal||this.signal;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&c){throw new TypeError('Body not allowed for GET or HEAD requests')}this._initBody(c);if(this.method==='GET'||this.method==='HEAD'){if(b.cache==='no-store'||b.cache==='no-cache'){var d=/([?&])_=[^&]*/;if(d.test(this.url)){this.url=this.url.replace(d,'$1_='+new Date().getTime())}else{var e=/\?/;this.url+=(e.test(this.url)?'&':'?')+'_='+new Date().getTime()}}}}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit})};function decode(e){var f=new FormData();e.trim().split('&').forEach(function(a){if(a){var b=a.split('=');var c=b.shift().replace(/\+/g,' ');var d=b.join('=').replace(/\+/g,' ');f.append(decodeURIComponent(c),decodeURIComponent(d))}});return f}function parseHeaders(e){var f=new Headers();var g=e.replace(/\r?\n[\t ]+/g,' ');g.split('\r').map(function(a){return a.indexOf('\n')===0?a.substr(1,a.length):a}).forEach(function(a){var b=a.split(':');var c=b.shift().trim();if(c){var d=b.join(':').trim();f.append(c,d)}});return f}Body.call(Request.prototype);function Response(a,b){if(!(this instanceof Response)){throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.')}if(!b){b={}}this.type='default';this.status=b.status===undefined?200:b.status;this.ok=this.status>=200&&this.status<300;this.statusText=b.statusText===undefined?'':''+b.statusText;this.headers=new Headers(b.headers);this.url=b.url||'';this._initBody(a)}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url})};Response.error=function(){var a=new Response(null,{status:0,statusText:''});a.type='error';return a};var p=[301,302,303,307,308];Response.redirect=function(a,b){if(p.indexOf(b)===-1){throw new RangeError('Invalid status code')}return new Response(null,{status:b,headers:{location:a}})};j.DOMException=k.DOMException;try{new j.DOMException()}catch(err){j.DOMException=function(a,b){this.message=a;this.name=b;var c=Error(a);this.stack=c.stack};j.DOMException.prototype=Object.create(Error.prototype);j.DOMException.prototype.constructor=j.DOMException}function fetch(h,i){return new Promise(function(c,d){var f=new Request(h,i);if(f.signal&&f.signal.aborted){return d(new j.DOMException('Aborted','AbortError'))}var g=new XMLHttpRequest();function abortXhr(){g.abort()}g.onload=function(){var a={status:g.status,statusText:g.statusText,headers:parseHeaders(g.getAllResponseHeaders()||'')};a.url='responseURL'in g?g.responseURL:a.headers.get('X-Request-URL');var b='response'in g?g.response:g.responseText;setTimeout(function(){c(new Response(b,a))},0)};g.onerror=function(){setTimeout(function(){d(new TypeError('Network request failed'))},0)};g.ontimeout=function(){setTimeout(function(){d(new TypeError('Network request failed'))},0)};g.onabort=function(){setTimeout(function(){d(new j.DOMException('Aborted','AbortError'))},0)};function fixUrl(a){try{return a===''&&k.location.href?k.location.href:a}catch(e){return a}}g.open(f.method,fixUrl(f.url),true);if(f.credentials==='include'){g.withCredentials=true}else if(f.credentials==='omit'){g.withCredentials=false}if('responseType'in g){if(l.blob){g.responseType='blob'}else if(l.arrayBuffer&&f.headers.get('Content-Type')&&f.headers.get('Content-Type').indexOf('application/octet-stream')!==-1){g.responseType='arraybuffer'}}if(i&&typeof i.headers==='object'&&!(i.headers instanceof Headers)){Object.getOwnPropertyNames(i.headers).forEac
6609h(function(a){g.setRequestHeader(a,normalizeValue(i.headers[a]))})}else{f.headers.forEach(function(a,b){g.setRequestHeader(b,a)})}if(f.signal){f.signal.addEventListener('abort',abortXhr);g.onreadystatechange=function(){if(g.readyState===4){f.signal.removeEventListener('abort',abortXhr)}}}g.send(typeof f._bodyInit==='undefined'?null:f._bodyInit)})}fetch.polyfill=true;return{fetch,Headers,Request,Response}}) 6610);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.