{"version":3,"mappings":"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","names":["i0","_","static","event","this","ifKey","keys","keysToCheck","split","some","k","key","KeysPipe","transform","value","Object","ɵfac","ɵpipe","pure","NgOtpInputComponent","constructor","keysPipe","config","length","onInputChange","EventEmitter","inputControls","Array","componentKey","Math","random","toString","substring","Date","getTime","inputType","_a","_b","isPasswordInput","allowNumbersOnly","ngOnInit","otpForm","FormGroup","index","addControl","getControlName","FormControl","valueChanges","subscribe","v","controls","forEach","val","setValue","rebuildValue","ngAfterViewInit","disableAutoFocus","containerItem","document","getElementById","ele","getElementsByClassName","focus","idx","onKeyDown","$event","inputIdx","KeyboardUtil","ifSpacebar","preventDefault","onInput","validateNumber","currentVal","target","stopPropagation","onKeyUp","nextInputId","appendKey","prevInputId","ifRightArrow","setSelected","ifLeftArrow","ifBackspaceOrDelete","ifValidKeyCode","test","id","eleId","focusTo","setSelectionRange","setTimeout","inp","isMobile","navigator","userAgent","allowKeyCodes","includes","keyCode","isNaN","reset","replace","from","c","get","indexOfElementToFocus","ctrlVal","isLengthExceed","isCaseTransformEnabled","letterCase","toLocaleLowerCase","transformedVal","toUpperCase","toLowerCase","formCtrl","emit","handlePaste","e","clipboardData","window","pastedData","getData","ɵcmp","selectors","directives","i2","i3","pipes","styles","NgOtpInputModule","ɵmod","ɵinj","imports","CommonModule","FormsModule","ReactiveFormsModule","root","f","module","exports","nacl","util","s","TypeError","decodeUTF8","i","d","unescape","encodeURIComponent","b","Uint8Array","charCodeAt","encodeUTF8","arr","push","String","fromCharCode","decodeURIComponent","escape","join","atob","Buffer","encodeBase64","decodeBase64","validateBase64","prototype","slice","call","len","btoa","gf","init","r","Float64Array","randombytes","Error","_0","_9","gf0","gf1","_121665","D","D2","X","Y","I","x","h","l","xi","y","yi","n","vn","out","o","p","u","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","sigma","cpos","m","mpos","z","crypto_core_salsa20","crypto_core_hsalsa20","sn","crypto_stream_salsa20","crypto_stream_salsa20_xor","poly1305","t0","t1","t2","t3","t4","t5","t6","t7","buffer","Uint16Array","pad","leftover","fin","outpos","update","finish","hpos","crypto_onetimeauth","crypto_verify_16","crypto_stream_xor","crypto_stream","crypto_onetimeauth_verify","a","floor","q","t","j","car25519","sel25519","pack25519","crypto_verify_32","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","M","S","unpack25519","A","Z","x32","subarray","x16","inv25519","crypto_scalarmult","crypto_scalarmult_base","blocks","bytes","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","hibit","h0","h1","h2","h3","h4","h5","h6","h7","h8","h9","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","mac","macpos","mask","g","want","crypto_box_afternm","crypto_secretbox","crypto_box_open_afternm","crypto_secretbox_open","K","hh","hl","bh1","bh2","bh4","bh5","bh6","bh7","bl1","bl2","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hashblocks_hl","ts64","tx","ty","zi","par25519","set25519","cswap","add","scalarmult","pk","sk","seeded","crypto_hash","scalarbase","pack","crypto","L","carry","modL","sm","smlen","reduce","chk","num","den","den2","den4","den6","neq25519","mlen","arguments","lowlevel","crypto_box_beforenm","crypto_box","crypto_box_open","crypto_box_keypair","crypto_sign","crypto_sign_keypair","crypto_sign_open","crypto_secretbox_KEYBYTES","crypto_secretbox_NONCEBYTES","crypto_secretbox_ZEROBYTES","crypto_secretbox_BOXZEROBYTES","crypto_scalarmult_BYTES","crypto_scalarmult_SCALARBYTES","crypto_box_PUBLICKEYBYTES","crypto_box_SECRETKEYBYTES","crypto_box_BEFORENMBYTES","crypto_box_NONCEBYTES","crypto_box_ZEROBYTES","crypto_box_BOXZEROBYTES","crypto_sign_BYTES","crypto_sign_PUBLICKEYBYTES","crypto_sign_SECRETKEYBYTES","crypto_sign_SEEDBYTES","crypto_hash_BYTES","randomBytes","secretbox","msg","nonce","checkArrayTypes","checkLengths","open","box","keyLength","nonceLength","overheadLength","scalarMult","base","scalarLength","groupElementLength","publicKey","secretKey","before","after","keyPair","fromSecretKey","publicKeyLength","secretKeyLength","sharedKeyLength","sign","signedMsg","tmp","detached","sig","verify","fromSeed","seed","seedLength","signatureLength","hash","hashLength","setPRNG","fn","self","msCrypto","getRandomValues","min","cleanup","require","InputTrimDirective","ngControl","valueAccessor","original","registerOnChange","trim","LowerCaseDirective","TogglePasswordDirective","el","renderer","parent","nativeElement","parentNode","container","createElement","setAttribute","icon","onclick","pElem","nextElementSibling","type","appendChild","DOCUMENT","Divider","layout","containerClass","align","wf","i1","DividerModule","ProgressSpinner","strokeWidth","fill","animationDuration","ProgressSpinnerModule"],"sources":["webpack:///node_modules/ng-otp-input/fesm2015/ng-otp-input.js","webpack:///node_modules/tweetnacl-util/nacl-util.js","webpack:///node_modules/tweetnacl/nacl-fast.js","webpack:///src/app/directives/InputTrim.directive.ts","webpack:///src/app/directives/LowerCase.directive.ts","webpack:///src/app/directives/togglePassword.directive.ts","webpack:///node_modules/primeng/fesm2015/primeng-divider.mjs","webpack:///node_modules/primeng/fesm2015/primeng-progressspinner.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Pipe, EventEmitter, Component, Input, Output, NgModule } from '@angular/core';\nimport * as i3 from '@angular/forms';\nimport { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nclass KeyboardUtil {\r\n static ifBackspaceOrDelete(event) {\r\n return this.ifKey(event, 'Backspace;Delete;Del');\r\n }\r\n static ifRightArrow(event) {\r\n return this.ifKey(event, 'ArrowRight;Right');\r\n }\r\n static ifLeftArrow(event) {\r\n return this.ifKey(event, 'ArrowLeft;Left');\r\n }\r\n static ifSpacebar(event) {\r\n return this.ifKey(event, 'Spacebar; '); //don't remove the space after ; as this will check for space key\r\n }\r\n static ifKey(event, keys) {\r\n let keysToCheck = keys.split(';');\r\n return keysToCheck.some(k => k === event.key);\r\n }\r\n}\n\nclass KeysPipe {\r\n transform(value) {\r\n return Object.keys(value);\r\n }\r\n}\r\n/** @nocollapse */ KeysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\r\n/** @nocollapse */ KeysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: KeysPipe, name: \"keys\" });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: KeysPipe, decorators: [{\r\n type: Pipe,\r\n args: [{\r\n name: 'keys'\r\n }]\r\n }] });\n\nclass NgOtpInputComponent {\r\n constructor(keysPipe) {\r\n this.keysPipe = keysPipe;\r\n this.config = { length: 4 };\r\n // tslint:disable-next-line: no-output-on-prefix\r\n this.onInputChange = new EventEmitter();\r\n this.inputControls = new Array(this.config.length);\r\n this.componentKey = Math.random()\r\n .toString(36)\r\n .substring(2) + new Date().getTime().toString(36);\r\n }\r\n get inputType() {\r\n var _a, _b;\r\n return ((_a = this.config) === null || _a === void 0 ? void 0 : _a.isPasswordInput)\r\n ? 'password'\r\n : ((_b = this.config) === null || _b === void 0 ? void 0 : _b.allowNumbersOnly)\r\n ? 'tel'\r\n : 'text';\r\n }\r\n ngOnInit() {\r\n this.otpForm = new FormGroup({});\r\n for (let index = 0; index < this.config.length; index++) {\r\n this.otpForm.addControl(this.getControlName(index), new FormControl());\r\n }\r\n this.otpForm.valueChanges.subscribe((v) => {\r\n this.keysPipe.transform(this.otpForm.controls).forEach((k) => {\r\n var val = this.otpForm.controls[k].value;\r\n if (val && val.length > 1) {\r\n if (val.length >= this.config.length) {\r\n this.setValue(val);\r\n }\r\n else {\r\n this.rebuildValue();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n ngAfterViewInit() {\r\n if (!this.config.disableAutoFocus) {\r\n const containerItem = document.getElementById(`c_${this.componentKey}`);\r\n if (containerItem) {\r\n const ele = containerItem.getElementsByClassName('otp-input')[0];\r\n if (ele && ele.focus) {\r\n ele.focus();\r\n }\r\n }\r\n }\r\n }\r\n getControlName(idx) {\r\n return `ctrl_${idx}`;\r\n }\r\n onKeyDown($event, inputIdx) {\r\n if (KeyboardUtil.ifSpacebar($event)) {\r\n $event.preventDefault();\r\n return false;\r\n }\r\n }\r\n onInput($event) {\r\n let newVal = this.currentVal ? `${this.currentVal}${$event.target.value}` : $event.target.value;\r\n if (this.config.allowNumbersOnly && !this.validateNumber(newVal)) {\r\n $event.target.value = '';\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n return;\r\n }\r\n }\r\n onKeyUp($event, inputIdx) {\r\n const nextInputId = this.appendKey(`otp_${inputIdx + 1}`);\r\n const prevInputId = this.appendKey(`otp_${inputIdx - 1}`);\r\n if (KeyboardUtil.ifRightArrow($event)) {\r\n $event.preventDefault();\r\n this.setSelected(nextInputId);\r\n return;\r\n }\r\n if (KeyboardUtil.ifLeftArrow($event)) {\r\n $event.preventDefault();\r\n this.setSelected(prevInputId);\r\n return;\r\n }\r\n if (KeyboardUtil.ifBackspaceOrDelete($event) && !$event.target.value) {\r\n this.setSelected(prevInputId);\r\n this.rebuildValue();\r\n return;\r\n }\r\n if (!$event.target.value) {\r\n return;\r\n }\r\n if (this.ifValidKeyCode($event)) {\r\n this.setSelected(nextInputId);\r\n }\r\n this.rebuildValue();\r\n }\r\n validateNumber(val) {\r\n return val && /^\\d*\\.?\\d*$/.test(val);\r\n }\r\n appendKey(id) {\r\n return `${id}_${this.componentKey}`;\r\n }\r\n setSelected(eleId) {\r\n this.focusTo(eleId);\r\n const ele = document.getElementById(eleId);\r\n if (ele && ele.setSelectionRange) {\r\n setTimeout(() => {\r\n ele.setSelectionRange(0, 1);\r\n }, 0);\r\n }\r\n }\r\n ifValidKeyCode(event) {\r\n const inp = event.key;\r\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n return (isMobile ||\r\n /[a-zA-Z0-9-_]/.test(inp) ||\r\n (this.config.allowKeyCodes &&\r\n this.config.allowKeyCodes.includes(event.keyCode)));\r\n }\r\n focusTo(eleId) {\r\n const ele = document.getElementById(eleId);\r\n if (ele) {\r\n ele.focus();\r\n }\r\n }\r\n // method to set component value\r\n setValue(value) {\r\n if (this.config.allowNumbersOnly && isNaN(value)) {\r\n return;\r\n }\r\n this.otpForm.reset();\r\n if (!value) {\r\n this.rebuildValue();\r\n return;\r\n }\r\n value = value.toString().replace(/\\s/g, ''); // remove whitespace\r\n Array.from(value).forEach((c, idx) => {\r\n if (this.otpForm.get(this.getControlName(idx))) {\r\n this.otpForm.get(this.getControlName(idx)).setValue(c);\r\n }\r\n });\r\n if (!this.config.disableAutoFocus) {\r\n const containerItem = document.getElementById(`c_${this.componentKey}`);\r\n var indexOfElementToFocus = value.length < this.config.length ? value.length : (this.config.length - 1);\r\n let ele = containerItem.getElementsByClassName('otp-input')[indexOfElementToFocus];\r\n if (ele && ele.focus) {\r\n ele.focus();\r\n }\r\n }\r\n this.rebuildValue();\r\n }\r\n rebuildValue() {\r\n var _a;\r\n let val = '';\r\n this.keysPipe.transform(this.otpForm.controls).forEach(k => {\r\n if (this.otpForm.controls[k].value) {\r\n let ctrlVal = this.otpForm.controls[k].value;\r\n let isLengthExceed = ctrlVal.length > 1;\r\n let isCaseTransformEnabled = !this.config.allowNumbersOnly && this.config.letterCase && (this.config.letterCase.toLocaleLowerCase() == 'upper' || this.config.letterCase.toLocaleLowerCase() == 'lower');\r\n ctrlVal = ctrlVal[0];\r\n let transformedVal = isCaseTransformEnabled ? this.config.letterCase.toLocaleLowerCase() == 'upper' ? ctrlVal.toUpperCase() : ctrlVal.toLowerCase() : ctrlVal;\r\n if (isCaseTransformEnabled && transformedVal == ctrlVal) {\r\n isCaseTransformEnabled = false;\r\n }\r\n else {\r\n ctrlVal = transformedVal;\r\n }\r\n val += ctrlVal;\r\n if (isLengthExceed || isCaseTransformEnabled) {\r\n this.otpForm.controls[k].setValue(ctrlVal);\r\n }\r\n }\r\n });\r\n if ((_a = this.formCtrl) === null || _a === void 0 ? void 0 : _a.setValue) {\r\n this.formCtrl.setValue(val);\r\n }\r\n this.onInputChange.emit(val);\r\n this.currentVal = val;\r\n }\r\n handlePaste(e) {\r\n // Get pasted data via clipboard API\r\n let clipboardData = e.clipboardData || window['clipboardData'];\r\n if (clipboardData) {\r\n var pastedData = clipboardData.getData('Text');\r\n }\r\n // Stop data actually being pasted into div\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (!pastedData || (this.config.allowNumbersOnly && !this.validateNumber(pastedData))) {\r\n return;\r\n }\r\n this.setValue(pastedData);\r\n }\r\n}\r\n/** @nocollapse */ NgOtpInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: NgOtpInputComponent, deps: [{ token: KeysPipe }], target: i0.ɵɵFactoryTarget.Component });\r\n/** @nocollapse */ NgOtpInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.16\", type: NgOtpInputComponent, selector: \"ng-otp-input\", inputs: { config: \"config\", formCtrl: \"formCtrl\" }, outputs: { onInputChange: \"onInputChange\" }, ngImport: i0, template: \"
\\r\\n \\r\\n
\", styles: [\".otp-input{width:50px;height:50px;border-radius:4px;border:solid 1px #c5c5c5;text-align:center;font-size:32px}.ng-otp-input-wrapper .otp-input:not(:last-child){margin-right:8px}@media screen and (max-width: 767px){.otp-input{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.otp-input{width:30px;font-size:18px;height:30px}}\\n\"], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i3.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { type: i3.PatternValidator, selector: \"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]\", inputs: [\"pattern\"] }, { type: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i3.FormControlDirective, selector: \"[formControl]\", inputs: [\"disabled\", \"formControl\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }], pipes: { \"keys\": KeysPipe } });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: NgOtpInputComponent, decorators: [{\r\n type: Component,\r\n args: [{\r\n // tslint:disable-next-line: component-selector\r\n selector: 'ng-otp-input',\r\n templateUrl: './ng-otp-input.component.html',\r\n styleUrls: ['./ng-otp-input.component.scss']\r\n }]\r\n }], ctorParameters: function () { return [{ type: KeysPipe }]; }, propDecorators: { config: [{\r\n type: Input\r\n }], onInputChange: [{\r\n type: Output\r\n }], formCtrl: [{\r\n type: Input\r\n }] } });\n\nclass NgOtpInputModule {\r\n}\r\n/** @nocollapse */ NgOtpInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: NgOtpInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\n/** @nocollapse */ NgOtpInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: NgOtpInputModule, declarations: [NgOtpInputComponent, KeysPipe], imports: [CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule], exports: [NgOtpInputComponent] });\r\n/** @nocollapse */ NgOtpInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: NgOtpInputModule, providers: [KeysPipe], imports: [[\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ]] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: NgOtpInputModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n declarations: [NgOtpInputComponent, KeysPipe],\r\n exports: [NgOtpInputComponent],\r\n providers: [KeysPipe]\r\n }]\r\n }] });\n\nclass Config {\r\n}\n\n/*\r\n * Public API Surface of ng-otp-input\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { NgOtpInputComponent, Config as NgOtpInputConfig, NgOtpInputModule };\n","// Written in 2014-2016 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n(function(root, f) {\n 'use strict';\n if (typeof module !== 'undefined' && module.exports) module.exports = f();\n else if (root.nacl) root.nacl.util = f();\n else {\n root.nacl = {};\n root.nacl.util = f();\n }\n}(this, function() {\n 'use strict';\n\n var util = {};\n\n function validateBase64(s) {\n if (!(/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/.test(s))) {\n throw new TypeError('invalid encoding');\n }\n }\n\n util.decodeUTF8 = function(s) {\n if (typeof s !== 'string') throw new TypeError('expected string');\n var i, d = unescape(encodeURIComponent(s)), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n util.encodeUTF8 = function(arr) {\n var i, s = [];\n for (i = 0; i < arr.length; i++) s.push(String.fromCharCode(arr[i]));\n return decodeURIComponent(escape(s.join('')));\n };\n\n if (typeof atob === 'undefined') {\n // Node.js\n\n if (typeof Buffer.from !== 'undefined') {\n // Node v6 and later\n util.encodeBase64 = function (arr) { // v6 and later\n return Buffer.from(arr).toString('base64');\n };\n\n util.decodeBase64 = function (s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(Buffer.from(s, 'base64'), 0));\n };\n\n } else {\n // Node earlier than v6\n util.encodeBase64 = function (arr) { // v6 and later\n return (new Buffer(arr)).toString('base64');\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(new Buffer(s, 'base64'), 0));\n };\n }\n\n } else {\n // Browsers\n\n util.encodeBase64 = function(arr) {\n var i, s = [], len = arr.length;\n for (i = 0; i < len; i++) s.push(String.fromCharCode(arr[i]));\n return btoa(s.join(''));\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n var i, d = atob(s), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n }\n\n return util;\n\n}));\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = (x[j] + 128) >> 8;\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i, mlen;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n mlen = -1;\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n mlen = n;\n return mlen;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n var t, i;\n for (i = 0; i < arguments.length; i++) {\n if ((t = Object.prototype.toString.call(arguments[i])) !== '[object Uint8Array]')\n throw new TypeError('unexpected type ' + t + ', use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\n// TODO: Completely remove this in v0.15.\nif (!nacl.util) {\n nacl.util = {};\n nacl.util.decodeUTF8 = nacl.util.encodeUTF8 = nacl.util.encodeBase64 = nacl.util.decodeBase64 = function() {\n throw new Error('nacl.util moved into separate package: https://github.com/dchest/tweetnacl-util-js');\n };\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return false;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return false;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n if (arguments.length !== 2)\n throw new Error('nacl.sign.open accepts 2 arguments; did you mean to use nacl.sign.detached.verify?');\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","import {Directive} from \"@angular/core\";\r\nimport {ControlValueAccessor, NgControl} from \"@angular/forms\";\r\n\r\n@Directive({ selector: '[inputTrim]' })\r\nexport class InputTrimDirective {\r\n constructor(private ngControl: NgControl) {\r\n trimValueAccessor(ngControl.valueAccessor)\r\n }\r\n}\r\n\r\nfunction trimValueAccessor(valueAccessor: ControlValueAccessor) {\r\n const original = valueAccessor.registerOnChange;\r\n\r\n valueAccessor.registerOnChange = (fn: (_: unknown) => void) => {\r\n return original.call(valueAccessor, (value: unknown) => {\r\n return fn(typeof value === 'string' ? value.trim() : value);\r\n });\r\n };\r\n}","import {Directive} from \"@angular/core\";\r\nimport {ControlValueAccessor, NgControl} from \"@angular/forms\";\r\n\r\n@Directive({ selector: '[inputLower]' })\r\nexport class LowerCaseDirective {\r\n constructor(private ngControl: NgControl) {\r\n trimValueAccessor(ngControl.valueAccessor)\r\n }\r\n}\r\n\r\nfunction trimValueAccessor(valueAccessor: ControlValueAccessor) {\r\n const original = valueAccessor.registerOnChange;\r\n\r\n valueAccessor.registerOnChange = (fn: (_: unknown) => void) => {\r\n return original.call(valueAccessor, (value: unknown) => {\r\n return fn(typeof value === 'string' ? value.toLowerCase() : value);\r\n });\r\n };\r\n}","import {AfterViewInit, Directive, ElementRef, Inject, Input, Renderer2} from \"@angular/core\";\r\nimport {DOCUMENT} from \"@angular/common\";\r\n\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[password-toggle]'\r\n})\r\nexport class TogglePasswordDirective implements AfterViewInit {\r\n\r\n @Input() value:string;\r\n\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n @Inject(DOCUMENT) private document: Document\r\n ) { }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n const parent = this.el.nativeElement.parentNode;\r\n const container = this.document.createElement('span');\r\n container.setAttribute( \"class\", \"p-input-icon-right\" );\r\n const icon = this.document.createElement('i');\r\n icon.onclick = (event) => {\r\n const pElem = event.target['nextElementSibling'];\r\n if (pElem.type === \"password\") {\r\n pElem.type = \"text\";\r\n icon.setAttribute( \"class\", \"pi pi-eye-slash\" );\r\n } else {\r\n pElem.type = \"password\";\r\n icon.setAttribute( \"class\", \"pi pi-eye\" );\r\n }\r\n }\r\n icon.setAttribute( \"class\", \"pi pi-eye\" );\r\n container.appendChild(icon);\r\n container.appendChild(this.el.nativeElement);\r\n this.renderer.appendChild(parent,container );\r\n }\r\n\r\n}\r\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nclass Divider {\n constructor() {\n this.layout = \"horizontal\";\n this.type = \"solid\";\n }\n containerClass() {\n return {\n 'p-divider p-component': true,\n 'p-divider-horizontal': this.layout === \"horizontal\",\n 'p-divider-vertical': this.layout === \"vertical\",\n 'p-divider-solid': this.type === \"solid\",\n 'p-divider-dashed': this.type === \"dashed\",\n 'p-divider-dotted': this.type === \"dotted\",\n 'p-divider-left': this.layout === 'horizontal' && (!this.align || this.align === 'left'),\n 'p-divider-center': (this.layout === 'horizontal' && this.align === 'center') || (this.layout === 'vertical' && (!this.align || this.align === 'center')),\n 'p-divider-right': this.layout === 'horizontal' && this.align === 'right',\n 'p-divider-top': this.layout === 'vertical' && (this.align === 'top'),\n 'p-divider-bottom': this.layout === 'vertical' && this.align === 'bottom'\n };\n }\n}\nDivider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: Divider, deps: [], target: i0.ɵɵFactoryTarget.Component });\nDivider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.2.7\", type: Divider, selector: \"p-divider\", inputs: { styleClass: \"styleClass\", style: \"style\", layout: \"layout\", type: \"type\", align: \"align\" }, host: { classAttribute: \"p-element\" }, ngImport: i0, template: `\n
\n
\n \n
\n
\n `, isInline: true, styles: [\".p-divider-horizontal{display:flex;width:100%;position:relative;align-items:center}.p-divider-horizontal:before{position:absolute;display:block;top:50%;left:0;width:100%;content:\\\"\\\"}.p-divider-horizontal.p-divider-left{justify-content:flex-start}.p-divider-horizontal.p-divider-right{justify-content:flex-end}.p-divider-horizontal.p-divider-center{justify-content:center}.p-divider-content{z-index:1}.p-divider-vertical{min-height:100%;margin:0 1rem;display:flex;position:relative;justify-content:center}.p-divider-vertical:before{position:absolute;display:block;top:0;left:50%;height:100%;content:\\\"\\\"}.p-divider-vertical.p-divider-top{align-items:flex-start}.p-divider-vertical.p-divider-center{align-items:center}.p-divider-vertical.p-divider-bottom{align-items:flex-end}.p-divider-solid.p-divider-horizontal:before{border-top-style:solid}.p-divider-solid.p-divider-vertical:before{border-left-style:solid}.p-divider-dashed.p-divider-horizontal:before{border-top-style:dashed}.p-divider-dashed.p-divider-vertical:before{border-left-style:dashed}.p-divider-dotted.p-divider-horizontal:before{border-top-style:dotted}.p-divider-dotted.p-divider-horizontal:before{border-left-style:dotted}\\n\"], directives: [{ type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: Divider, decorators: [{\n type: Component,\n args: [{ selector: 'p-divider', template: `\n
\n
\n \n
\n
\n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n 'class': 'p-element'\n }, styles: [\".p-divider-horizontal{display:flex;width:100%;position:relative;align-items:center}.p-divider-horizontal:before{position:absolute;display:block;top:50%;left:0;width:100%;content:\\\"\\\"}.p-divider-horizontal.p-divider-left{justify-content:flex-start}.p-divider-horizontal.p-divider-right{justify-content:flex-end}.p-divider-horizontal.p-divider-center{justify-content:center}.p-divider-content{z-index:1}.p-divider-vertical{min-height:100%;margin:0 1rem;display:flex;position:relative;justify-content:center}.p-divider-vertical:before{position:absolute;display:block;top:0;left:50%;height:100%;content:\\\"\\\"}.p-divider-vertical.p-divider-top{align-items:flex-start}.p-divider-vertical.p-divider-center{align-items:center}.p-divider-vertical.p-divider-bottom{align-items:flex-end}.p-divider-solid.p-divider-horizontal:before{border-top-style:solid}.p-divider-solid.p-divider-vertical:before{border-left-style:solid}.p-divider-dashed.p-divider-horizontal:before{border-top-style:dashed}.p-divider-dashed.p-divider-vertical:before{border-left-style:dashed}.p-divider-dotted.p-divider-horizontal:before{border-top-style:dotted}.p-divider-dotted.p-divider-horizontal:before{border-left-style:dotted}\\n\"] }]\n }], propDecorators: { styleClass: [{\n type: Input\n }], style: [{\n type: Input\n }], layout: [{\n type: Input\n }], type: [{\n type: Input\n }], align: [{\n type: Input\n }] } });\nclass DividerModule {\n}\nDividerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: DividerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nDividerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: DividerModule, declarations: [Divider], imports: [CommonModule], exports: [Divider] });\nDividerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: DividerModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: DividerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [Divider],\n declarations: [Divider]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Divider, DividerModule };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\nclass ProgressSpinner {\n constructor() {\n this.strokeWidth = \"2\";\n this.fill = \"none\";\n this.animationDuration = \"2s\";\n }\n}\nProgressSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: ProgressSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component });\nProgressSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.2.7\", type: ProgressSpinner, selector: \"p-progressSpinner\", inputs: { style: \"style\", styleClass: \"styleClass\", strokeWidth: \"strokeWidth\", fill: \"fill\", animationDuration: \"animationDuration\" }, host: { classAttribute: \"p-element\" }, ngImport: i0, template: `\n
\n \n \n \n
\n `, isInline: true, styles: [\".p-progress-spinner{position:relative;margin:0 auto;width:100px;height:100px;display:inline-block}.p-progress-spinner:before{content:\\\"\\\";display:block;padding-top:100%}.p-progress-spinner-svg{animation:p-progress-spinner-rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.p-progress-spinner-circle{stroke-dasharray:89,200;stroke-dashoffset:0;stroke:#d62d20;animation:p-progress-spinner-dash 1.5s ease-in-out infinite,p-progress-spinner-color 6s ease-in-out infinite;stroke-linecap:round}@keyframes p-progress-spinner-rotate{to{transform:rotate(360deg)}}@keyframes p-progress-spinner-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes p-progress-spinner-color{to,0%{stroke:#d62d20}40%{stroke:#0057e7}66%{stroke:#008744}80%,90%{stroke:#ffa700}}\\n\"], directives: [{ type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: ProgressSpinner, decorators: [{\n type: Component,\n args: [{ selector: 'p-progressSpinner', template: `\n
\n \n \n \n
\n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n 'class': 'p-element'\n }, styles: [\".p-progress-spinner{position:relative;margin:0 auto;width:100px;height:100px;display:inline-block}.p-progress-spinner:before{content:\\\"\\\";display:block;padding-top:100%}.p-progress-spinner-svg{animation:p-progress-spinner-rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.p-progress-spinner-circle{stroke-dasharray:89,200;stroke-dashoffset:0;stroke:#d62d20;animation:p-progress-spinner-dash 1.5s ease-in-out infinite,p-progress-spinner-color 6s ease-in-out infinite;stroke-linecap:round}@keyframes p-progress-spinner-rotate{to{transform:rotate(360deg)}}@keyframes p-progress-spinner-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes p-progress-spinner-color{to,0%{stroke:#d62d20}40%{stroke:#0057e7}66%{stroke:#008744}80%,90%{stroke:#ffa700}}\\n\"] }]\n }], propDecorators: { style: [{\n type: Input\n }], styleClass: [{\n type: Input\n }], strokeWidth: [{\n type: Input\n }], fill: [{\n type: Input\n }], animationDuration: [{\n type: Input\n }] } });\nclass ProgressSpinnerModule {\n}\nProgressSpinnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: ProgressSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nProgressSpinnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: ProgressSpinnerModule, declarations: [ProgressSpinner], imports: [CommonModule], exports: [ProgressSpinner] });\nProgressSpinnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: ProgressSpinnerModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.7\", ngImport: i0, type: ProgressSpinnerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [ProgressSpinner],\n declarations: [ProgressSpinner]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ProgressSpinner, ProgressSpinnerModule };\n"]}