Commit 849dbcbf authored by 王明明's avatar 王明明

初始化

parents
This source diff could not be displayed because it is too large. You can view the blob instead.
//babel库及文件模块导入
const fs = require('fs');
//babel库相关,解析,转换,构建,生产
const parser = require("@babel/parser");
const traverse = require("@babel/traverse").default;
const types = require("@babel/types");
// const {replaceWith} = require("cheerio/lib/api/manipulation");
const generator = require("@babel/generator").default;
// const YY = require('./test')
// console.log(YY)
//读取文件
let encode_file = "./sss.js",
decode_file = "./src_out.js";
// let encode_file = "./jiyan.js",decode_file = "./decode_result.js";
if (process.argv.length > 2) {
encode_file = process.argv[2];
}
if (process.argv.length > 3) {
decode_file = process.argv[3];
}
let jscode = fs.readFileSync(encode_file, { encoding: "utf-8" });
//转换为ast树
let ast = parser.parse(jscode);
traverse(ast, {
VariableDeclaration(path){
let node = path.node;
let declarations = node.declarations;
if (declarations.length == 0 && types.isVariableDeclarator(declarations[0])){}
let variable = declarations[0]
let {id, init} = variable;
if (types.isArrayExpression(init) && init.elements.length > 100){
let eles = init.elements;
let hasNotFunc = false;
eles.forEach(e=>{
if (!types.isFunctionExpression(e)){
hasNotFunc = true
}
})
if (hasNotFunc)return;
let cases = []
eles.forEach((e,i)=>{
cases.push(types.SwitchCase(types.NumericLiteral(i), [types.ReturnStatement(e)]))
})
console.log()
let res = types.FunctionDeclaration(id,[types.Identifier('key')], types.BlockStatement([types.SwitchStatement(types.Identifier('key'), cases)]))
path.replaceWith(res)
}
}
})
let { code } = generator(ast, {
minified:false,
// jsescOption:{
// quotes: "double",
// wrap: true,
// minimal: false
// }
});
fs.writeFile(decode_file, code, (err) => {});
\ No newline at end of file
import struct
def pack(a, b):
byte1 = struct.pack('B', a)
byte2 = struct.pack('B', b)
# 合并两个字节为一个值
combined_bytes = byte1 + byte2
# 将两个字节还原为数字315
result = struct.unpack('H', combined_bytes)[0]
return result
res = [0,0,6,10,177,236,89,83,15,0,0,0,19,27,255,228,76,194,104,181,20,19,41,200,94,85,220,134,83,93,18,129,0,13,160,66,173,183,255,236,24,140,204,182,47,109,175,0,15,236,59,220,125,120,16,158,148,205,167,187,134,134,125,188,0,0,0,28,2,108,65,181,176,167,23,72,90,175,26,122,249,41,20,94,240,163,67,174,118,193,242,234,67,156,92,157,0,0,0,30,70,193,140,230,246,45,185,123,25,191,177,165,81,225,226,190,110,123,165,243,203,231,213,50,215,118,124,147,64,54,0,0,0,0,0,5,176,44,229,194,64,0,0,0,0,0,6,209,141,254,234,93,145,0,6,194,255,146,52,141,75,0,13,216,95,2,6,172,161,121,27,244,244,116,52,234,0,0,0,5,177,55,149,220,11,0,0,0,7,237,168,3,160,255,223,241,0,0,0,7,4,70,69,129,193,85,65,0,5,209,173,162,23,110,0,0,0,9,233,15,181,197,31,57,231,217,22,0,5,100,56,205,84,95,0,13,127,2,168,48,153,157,41,167,178,249,24,220,172,0,12,70,84,49,77,166,111,143,133,22,4,54,145,0,0,0,0,0,7,50,191,1,190,106,174,77,0,0,0,94,45,165,126,190,251,39,175,201,36,140,35,106,99,249,150,243,47,148,16,2,56,33,182,7,21,108,126,138,192,135,61,13,214,241,6,67,69,172,189,190,34,143,110,233,131,149,245,250,39,19,205,59,239,40,163,206,244,214,143,10,37,228,106,210,205,150,66,60,85,117,237,70,7,137,124,199,245,6,20,49,151,154,194,70,77,31,197,215,237,49,118,134,100,238,0,29,163,139,60,160,101,216,176,255,172,149,121,136,219,66,88,30,114,83,81,88,236,192,58,149,75,168,95,234,224,0,6,31,233,185,16,47,137,0,5,226,201,137,196,239,0,9,59,229,113,7,237,114,1,211,5,0,0,0,6,209,37,153,202,210,35,0,0,0,129,1,2,177,230,246,206,84,135,176,104,88,46,89,227,208,75,182,253,112,124,148,143,119,208,161,26,89,97,242,211,135,32,74,104,161,43,219,162,249,24,37,7,109,242,18,11,129,243,194,242,77,6,7,172,247,137,170,13,11,123,227,178,21,203,4,237,239,76,229,30,184,105,2,234,184,20,242,59,137,25,34,142,158,181,147,152,159,201,101,248,31,164,64,66,61,86,240,39,220,148,124,128,47,8,196,204,37,178,63,175,54,152,239,124,194,193,107,11,103,9,14,238,8,81,124,241,72,163,46,209,0,0,0,0,0,0,0,0,0,0,0,0,0,6,67,58,223,126,66,39,0,234,1,114,108,112,62,72,237,59,152,134,14,179,181,85,161,22,146,122,231,16,60,93,80,205,8,107,120,209,195,141,29,163,23,112,217,198,159,191,175,202,105,220,112,214,250,235,2,190,169,143,249,77,20,148,59,57,38,198,61,84,246,38,15,192,99,91,172,10,222,67,110,105,32,202,149,146,84,49,20,39,229,121,136,62,210,193,253,179,141,232,55,244,99,117,142,231,214,21,51,34,102,14,184,102,206,187,135,235,121,54,168,144,164,142,225,253,111,40,173,171,185,154,121,84,75,8,245,6,100,187,198,106,248,20,183,48,225,136,11,65,220,220,12,1,242,61,249,20,251,49,252,26,240,29,102,219,220,35,3,223,40,76,83,86,112,78,44,129,121,237,108,51,216,65,215,9,83,178,156,145,251,116,66,192,199,188,31,132,231,52,134,197,139,45,194,141,166,12,46,71,222,85,24,253,164,97,59,164,21,62,42,103,200,179,156,132,114,82,225,181,47,55,45,126,46,138,176,235,35,107,99,193,187,185,136,0,5,137,12,255,25,54,0,8,246,56,89,107,54,140,121,32,0,0,0,20,180,142,90,253,156,185,49,251,152,23,164,121,34,164,154,77,47,155,225,124,0,0,0,5,174,240,54,47,64,0,0,0,187,2,156,58,61,179,94,42,247,145,229,54,77,170,98,187,22,65,196,250,238,161,122,177,59,59,126,139,146,186,190,86,233,244,177,58,208,243,162,138,198,175,59,121,213,170,151,55,247,43,49,168,1,166,100,162,31,6,252,65,226,81,159,183,133,155,214,78,135,101,101,209,89,65,0,155,164,240,87,97,59,13,95,220,168,59,30,48,64,28,127,248,229,77,71,78,128,97,103,106,224,172,52,31,253,107,22,50,25,137,57,156,185,225,58,212,244,175,60,47,174,125,148,223,202,111,147,62,134,154,144,131,135,35,84,159,225,158,227,91,61,22,37,66,132,213,156,57,142,131,244,210,247,48,11,214,16,14,255,26,32,156,94,82,75,92,133,136,22,175,76,226,225,17,113,168,252,189,245,208,88,214,223,0,140,44,37,17,58,140,79,20,88,25,187,248,83,59,199,166,113,38,219,144,114,106,244,44,205,215,48,90,92,135,65,141,21,60,120,192,157,243,94,242,41,166,74,37,16,105,153,141,170,14,145,201,215,246,244,3,250,139,127,116,111,166,133,249,122,90,79,75,192,202,87,228,210,176,182,2,143,179,14,40,240,83,208,37,173,130,242,117,250,87,62,252,60,156,2,212,176,239,211,31,58,148,221,128,70,112,28,80,168,239,170,122,239,147,151,213,85,85,184,168,7,20,114,189,191,198,44,170,174,197,247,137,220,0,60,218,38,155,99,45,196,235,3,118,46,221,147,58,114,162,167,50,231,47,120,227,41,6,154,222,103,229,213,212,23,90,37,191,15,162,100,53,73,244,255,179,178,77,135,176,206,55,192,150,84,140,11,118,24,152,39,78,34,176,177,0,6,178,212,111,215,188,196,0]
res = [ 0,0,6,233,138,135,172,45,203,0,0,0,23,120,58,144,110,8,125,195,161,42,78,160,183,50,104,214,75,147,33,245,226,207,161,76,0,13,12,73,122,233,72,164,0,74,137,14,158,81,133,0,15,179,203,185,164,237,59,248,253,53,195,187,34,109,202,160,0,0,0,28,27,68,154,107,25,196,116,169,178,127,22,169,190,237,101,130,33,240,17,10,144,224,170,190,166,185,190,187,0,0,0,29,159,128,223,13,199,69,186,212,66,183,208,193,219,244,251,130,226,135,20,251,181,225,127,112,107,245,153,85,168,0,0,0,0,0,5,202,11,125,52,78,0,0,0,0,0,6,186,249,38,144,145,111,0,6,44,65,51,171,123,210,0,13,136,115,51,148,63,92,58,145,2,87,161,226,209,0,0,0,5,205,102,109,169,252,0,0,0,7,30,5,63,190,94,129,61,0,0,0,7,196,11,144,57,98,10,222,0,5,171,217,88,240,9,0,0,0,9,57,58,235,209,13,169,41,183,167,0,5,227,147,141,132,196,0,13,250,27,27,163,151,49,34,91,147,224,201,236,233,0,12,247,194,221,211,246,73,236,181,167,220,5,144,0,0,0,0,0,7,242,86,191,65,118,229,171,0,0,0,94,71,251,63,67,143,86,79,96,87,193,2,217,231,250,240,22,118,255,204,168,84,58,104,177,44,239,0,136,117,45,19,139,233,98,53,70,90,0,194,81,3,60,253,142,102,116,45,136,80,77,171,109,160,146,127,107,244,86,136,175,90,29,244,159,125,24,67,221,101,145,254,3,40,114,10,95,69,117,94,16,102,97,152,8,49,67,214,24,143,239,31,249,111,149,0,29,178,0,204,2,234,226,137,27,120,94,164,164,15,104,123,124,61,47,134,170,19,139,18,12,202,200,122,3,242,0,6,155,42,207,172,51,27,0,5,5,16,193,25,51,0,9,12,215,113,186,42,127,106,126,176,0,0,0,6,30,151,160,74,164,49,0,0,0,129,1,146,242,105,57,27,10,18,172,220,214,175,15,121,0,83,179,120,23,111,244,8,10,122,57,244,163,57,106,87,128,104,179,239,32,26,86,231,120,35,19,169,227,248,214,8,31,130,99,168,20,67,79,24,247,241,156,157,250,240,12,237,134,108,96,229,116,53,7,67,167,127,174,24,70,228,43,35,33,66,33,167,95,170,39,131,239,119,2,197,8,125,199,197,84,21,45,252,87,225,17,139,69,132,56,28,201,119,64,213,122,36,125,21,184,66,17,184,59,98,236,74,169,251,240,129,147,218,22,38,0,0,0,0,0,0,0,0,0,0,0,0,0,6,173,61,104,107,157,253,0,234,1,124,216,227,124,228,57,192,144,234,234,164,104,181,9,5,28,130,126,6,11,45,90,46,241,221,184,132,177,67,111,116,64,106,120,172,173,62,178,131,20,245,56,143,86,35,32,156,192,86,13,152,95,172,102,223,72,203,190,57,121,245,93,76,13,106,16,159,158,29,211,92,135,138,67,219,103,240,121,139,162,15,240,249,218,11,65,171,101,197,3,68,158,152,180,214,105,89,81,56,75,23,188,85,169,222,54,63,140,221,1,67,240,149,107,143,99,181,220,113,114,202,250,30,128,47,40,21,73,155,150,103,149,31,232,86,170,239,133,93,145,186,248,204,94,240,213,27,198,108,247,8,22,105,197,240,72,40,30,238,159,69,197,17,112,57,152,166,104,99,78,158,65,177,149,97,214,7,202,113,7,132,245,109,60,11,204,226,136,212,65,165,161,121,172,252,112,114,233,90,76,233,186,3,22,93,18,100,200,37,189,156,69,156,75,104,173,171,235,8,74,73,38,106,62,246,155,82,88,95,46,230,105,9,21,0,5,15,131,216,122,70,0,8,42,250,77,14,157,76,206,25,0,0,0,21,206,156,190,216,185,200,35,108,27,4,222,175,130,232,104,93,156,57,40,14,22,0,0,0,5,111,133,250,206,115,0,0,0,187,2,234,70,171,114,78,43,254,146,121,88,203,240,79,231,78,46,175,89,49,108,210,207,22,45,47,48,212,72,106,197,154,73,139,239,81,106,109,102,221,219,252,144,207,196,41,84,175,221,103,210,242,210,154,48,60,84,181,136,129,29,59,8,123,89,239,193,187,76,41,240,134,190,237,70,56,197,52,118,145,187,221,182,103,76,200,160,117,48,16,209,157,111,118,63,107,160,3,116,114,197,173,246,38,112,83,89,86,30,61,132,59,67,90,110,101,174,231,183,19,60,77,71,145,245,41,199,47,145,228,159,176,117,243,191,183,123,250,235,119,25,137,115,120,156,180,35,76,206,4,79,37,242,30,8,196,106,126,58,142,189,65,175,51,197,43,117,244,237,153,203,117,77,102,161,106,141,233,138,77,220,19,95,103,238,92,143,31,97,164,255,45,221,2,226,241,151,223,60,179,226,29,153,151,199,166,171,124,133,94,161,211,249,117,105,59,24,2,191,234,44,101,64,193,56,129,2,16,60,55,227,197,185,50,21,209,22,245,126,191,206,221,70,75,200,241,112,163,191,172,193,88,124,204,134,195,153,70,236,78,185,249,41,139,206,211,214,169,220,248,81,154,168,241,31,182,146,22,208,238,203,240,166,222,103,101,175,181,171,52,94,30,144,147,138,40,238,70,137,133,76,141,89,0,85,91,233,165,38,52,46,56,73,242,45,90,0,60,188,46,213,99,108,25,63,109,247,115,254,221,172,175,209,224,205,14,148,223,39,250,254,196,100,133,36,73,220,125,3,71,242,58,252,33,115,42,146,89,119,16,245,54,253,134,96,160,154,125,221,126,10,235,188,38,23,154,217,246,0]
res = [ 0,0,6,22,28,65,7,164,223,0,0,0,23,22,28,65,7,183,145,117,190,31,123,51,118,230,142,205,183,107,86,171,40,176,138,217,0,13,22,28,65,7,56,135,184,128,104,102,87,131,177,0,15,22,28,65,7,154,153,19,57,14,107,105,128,154,114,36,0,0,0,28,22,28,65,7,196,89,246,60,36,84,18,103,194,112,24,13,32,204,217,39,196,44,14,21,134,185,193,69,0,0,0,30,22,28,65,7,247,65,225,213,125,172,96,129,32,225,210,16,33,11,201,31,145,233,31,245,79,114,16,145,69,41,0,0,0,0,0,5,22,28,65,7,193,0,0,0,0,0,6,22,28,65,7,176,61,0,6,22,28,65,7,66,107,0,13,22,28,65,7,101,155,222,234,51,182,241,139,223,0,0,0,5,22,28,65,7,193,0,0,0,7,22,28,65,7,208,84,47,0,0,0,7,22,28,65,7,146,139,163,0,5,22,28,65,7,40,0,0,0,9,22,28,65,7,255,247,229,132,235,0,5,22,28,65,7,244,0,13,22,28,65,7,139,181,75,165,189,120,183,145,116,0,12,22,28,65,7,155,9,47,195,168,53,52,96,0,0,0,0,0,7,22,28,65,7,69,196,126,0,0,0,94,22,28,65,7,55,210,129,47,138,173,181,125,83,131,107,169,4,161,81,43,50,83,174,222,34,32,254,13,25,47,191,138,119,174,26,80,177,144,81,21,185,103,104,189,197,141,234,147,166,20,86,146,89,35,198,128,197,94,188,8,128,248,100,148,3,36,90,30,140,97,232,0,243,42,176,128,10,199,103,131,246,151,172,93,178,35,150,213,134,142,178,78,24,107,0,29,22,28,65,7,144,218,40,28,74,249,227,56,111,223,174,203,181,243,120,136,77,66,254,143,233,112,176,81,201,0,6,22,28,65,7,250,61,0,5,22,28,65,7,152,0,9,22,28,65,7,176,7,166,21,169,0,0,0,6,22,28,65,7,0,156,0,0,0,129,1,22,28,65,7,132,15,135,25,100,233,209,210,44,4,193,134,73,76,25,23,57,139,60,15,104,13,63,101,33,145,118,128,152,83,120,179,64,86,41,187,252,209,64,54,219,190,188,148,99,3,221,2,73,56,72,166,84,106,96,47,199,12,29,216,132,227,25,159,128,171,6,43,230,202,23,13,84,212,206,46,53,142,242,35,94,224,22,59,245,201,22,254,18,99,161,152,13,175,124,201,217,96,168,57,48,175,161,142,120,191,213,187,95,244,198,147,211,4,158,145,157,16,145,7,163,178,57,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,6,22,28,65,7,109,33,0,234,1,22,28,65,7,59,209,8,2,159,102,191,73,5,168,35,189,176,246,23,78,94,255,165,148,21,9,47,200,166,84,181,122,80,78,40,128,220,128,127,137,249,70,123,157,178,98,68,243,202,244,246,140,199,251,98,89,119,134,114,138,20,161,107,52,37,126,240,18,124,199,129,246,113,92,112,71,126,57,118,231,170,10,41,12,99,11,41,186,60,134,21,160,140,156,196,131,149,44,169,147,19,182,176,139,73,175,175,232,75,189,107,223,141,4,69,49,150,91,48,218,231,58,150,151,125,3,164,78,30,164,166,233,38,103,234,100,134,127,55,152,162,3,37,52,82,228,85,229,20,219,61,178,143,75,193,80,29,10,100,228,38,153,202,63,170,38,207,56,229,84,150,46,71,108,137,191,135,116,202,76,121,29,129,35,147,71,111,69,243,243,9,232,141,177,216,40,27,36,91,185,69,241,2,17,214,228,57,158,217,45,86,42,71,38,79,72,80,17,181,170,59,162,49,107,217,48,106,161,183,202,159,184,131,4,0,5,22,28,65,7,122,0,8,22,28,65,7,14,88,1,11,0,0,0,19,22,28,65,7,4,142,23,103,89,221,26,202,254,171,12,62,192,46,24,0,0,0,5,22,28,65,7,77,0,0,0,187,2,22,28,65,7,174,172,66,133,170,222,153,193,235,190,52,146,254,207,134,202,206,113,203,248,101,68,226,123,123,168,201,83,37,6,176,3,156,37,131,64,155,45,133,48,196,243,109,187,37,155,7,42,203,133,115,239,169,35,244,136,82,124,208,117,41,190,2,139,36,209,5,94,89,204,165,59,172,78,46,148,99,165,21,87,65,187,50,136,205,176,159,91,186,89,112,96,5,184,209,250,15,231,127,220,56,138,113,24,253,155,226,181,167,5,13,10,233,74,233,68,50,204,163,246,177,93,99,178,40,116,29,29,190,34,117,146,137,149,61,49,58,173,54,28,46,133,161,65,228,166,232,75,21,192,199,96,109,158,192,141,43,109,155,91,110,80,136,132,160,230,213,28,200,154,176,63,114,224,51,73,88,246,246,201,43,56,103,232,59,56,60,151,71,140,113,16,95,148,18,116,239,188,229,194,161,204,213,158,15,129,122,62,100,148,222,91,110,216,191,155,1,74,181,159,245,15,7,55,124,84,210,48,202,178,237,95,13,34,225,42,218,33,183,72,162,208,107,34,68,19,24,117,43,28,129,213,212,28,81,107,104,150,129,82,46,56,117,204,17,102,173,2,40,81,28,161,34,25,188,142,153,16,236,72,201,105,0,69,207,245,148,26,82,168,12,79,129,248,145,109,184,171,153,180,38,103,12,137,251,145,126,247,153,154,214,0,5,22,28,65,7,255,0,6,22,28,65,7,245,94,0]
# real
res = [ 0,0,6,22,28,65,7,185,248,0,0,0,23,22,28,65,7,183,145,117,190,255,247,55,118,230,142,205,183,107,182,39,44,176,138,217,0,13,22,28,65,7,56,135,184,128,104,102,87,131,177,0,15,22,28,65,7,174,180,123,87,93,117,29,179,199,66,38,0,0,0,26,22,28,65,7,196,89,246,60,109,110,36,84,134,51,91,35,38,198,206,36,196,49,4,72,145,214,0,0,0,30,22,28,65,7,227,66,225,213,125,172,96,129,32,225,210,16,33,11,201,31,145,233,31,245,87,112,16,136,65,41,0,0,0,0,0,5,22,28,65,7,195,0,0,0,0,0,6,22,28,65,7,176,59,0,6,22,28,65,7,66,107,0,13,22,28,65,7,101,155,222,234,51,182,241,139,223,0,0,0,5,22,28,65,7,193,0,0,0,7,22,28,65,7,148,92,45,0,0,0,7,22,28,65,7,146,139,163,0,5,22,28,65,7,40,0,0,0,9,22,28,65,7,229,180,149,201,252,0,5,22,28,65,7,244,0,13,22,28,65,7,137,145,83,167,189,125,183,145,116,0,12,22,28,65,7,155,9,47,195,152,37,52,96,0,0,0,0,0,7,22,28,65,7,69,196,126,0,0,0,94,22,28,65,7,55,147,150,5,156,131,192,124,83,131,107,169,50,132,93,48,104,65,248,219,33,7,241,27,114,22,160,150,79,217,91,127,167,152,111,90,177,85,20,222,154,170,211,179,250,78,65,221,72,56,214,182,253,80,140,57,131,236,99,250,3,34,35,29,148,71,239,67,219,118,177,146,18,237,12,131,246,151,172,93,178,35,150,213,134,142,178,78,24,107,0,47,22,28,65,7,154,218,40,30,74,249,225,56,111,221,174,203,190,243,120,138,77,66,242,143,233,113,176,81,167,109,92,128,4,42,191,127,149,20,29,78,193,22,206,40,35,152,120,0,6,22,28,65,7,250,63,0,5,22,28,65,7,152,0,9,22,28,65,7,165,81,176,116,170,0,0,0,6,22,28,65,7,0,156,0,0,0,129,1,22,28,65,7,132,15,135,25,100,233,209,210,44,4,193,134,73,76,25,23,57,139,60,15,104,13,63,101,33,145,118,128,152,83,120,179,64,86,41,187,252,209,64,54,219,190,188,148,99,3,221,2,73,56,72,166,84,106,96,47,199,12,29,216,132,227,25,159,128,171,6,43,230,202,23,13,84,212,206,46,53,142,242,35,94,224,22,59,245,201,22,254,18,99,161,152,13,175,124,201,217,96,168,57,48,175,161,142,120,191,213,187,95,244,198,147,211,4,158,145,157,16,145,7,163,178,57,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,6,22,28,65,7,109,33,0,234,1,22,28,65,7,59,209,8,2,159,102,191,73,5,168,35,189,176,246,23,78,94,255,165,148,21,9,47,200,166,84,181,122,80,78,40,128,220,128,127,137,249,70,123,157,178,98,68,243,202,244,246,140,199,251,98,89,119,134,114,138,20,161,107,52,37,126,240,18,124,199,129,246,113,92,112,71,126,57,118,231,170,10,41,12,99,11,41,186,60,134,21,160,140,156,196,131,149,44,169,147,19,182,176,139,73,175,175,232,75,189,107,223,141,4,69,49,150,91,48,218,231,58,150,151,125,3,164,78,30,164,166,233,38,103,234,100,134,127,55,152,162,3,37,52,82,228,85,229,20,219,61,178,143,75,193,80,29,10,100,228,38,153,202,63,170,38,207,56,229,84,150,46,71,108,137,191,135,116,202,76,121,29,129,35,147,71,111,69,243,243,9,232,141,177,216,40,27,36,91,185,69,241,2,17,214,228,57,158,217,45,86,42,71,38,79,72,80,17,181,170,59,162,49,107,217,48,106,161,183,202,159,184,131,4,0,5,22,28,65,7,122,0,8,22,28,65,7,14,88,1,11,0,0,0,19,22,28,65,7,4,142,23,103,89,221,26,202,254,171,12,62,192,46,24,0,0,0,5,22,28,65,7,77,0,0,0,187,2,22,28,65,7,174,172,66,133,170,222,153,193,235,174,99,146,254,207,134,202,206,113,203,248,101,68,226,123,123,168,201,83,37,6,176,3,131,18,131,64,155,45,133,48,196,243,109,187,37,155,31,38,207,149,109,239,169,35,244,142,82,124,192,34,41,190,2,139,36,209,5,94,89,204,165,59,172,78,46,148,99,165,21,87,65,187,50,136,205,176,159,91,186,89,112,96,5,184,209,250,15,231,127,220,56,138,113,24,253,155,226,181,167,5,13,10,233,74,233,68,50,204,163,246,177,93,99,178,40,116,29,29,190,34,117,146,137,149,61,49,58,173,54,28,46,133,161,65,228,166,232,75,21,192,199,96,109,158,192,141,43,109,155,91,110,80,136,132,160,230,213,28,200,154,176,63,114,224,51,73,88,246,246,201,43,56,103,232,59,56,60,151,71,140,113,16,95,148,18,116,239,188,229,194,161,204,213,158,15,129,122,62,100,148,222,91,110,216,191,155,1,74,181,159,245,15,7,55,124,84,210,48,202,178,237,95,13,34,225,42,218,33,183,72,162,208,107,34,68,19,24,117,43,28,129,213,212,28,81,107,104,150,129,82,46,56,117,204,17,102,173,2,40,81,28,161,34,25,188,142,153,16,236,72,201,105,0,69,207,245,148,26,82,168,12,79,129,248,145,109,184,171,153,180,38,103,12,137,251,145,126,247,155,155,214,0,5,22,28,65,7,255,0,6,22,28,65,7,245,94,0]
res = [0,0,6,22,28,65,7,164,223,0,0,0,23,22,28,65,7,183,145,117,190,31,11,122,118,230,142,205,183,107,86,219,97,176,138,217,0,13,22,28,65,7,56,135,184,128,104,102,87,131,177,0,15,22,28,65,7,154,153,19,57,14,107,105,128,154,114,36,0,0,0,28,22,28,65,7,196,89,246,60,36,84,18,103,194,112,24,13,32,204,217,39,196,44,14,21,134,185,193,69,0,0,0,30,22,28,65,7,246,71,225,213,125,172,96,129,32,225,210,16,33,11,201,31,145,233,31,245,77,114,16,151,66,41,0,0,0,0,0,5,22,28,65,7,193,0,0,0,0,0,6,22,28,65,7,176,61,0,6,22,28,65,7,66,107,0,13,22,28,65,7,101,155,222,234,51,182,241,139,223,0,0,0,5,22,28,65,7,193,0,0,0,7,22,28,65,7,208,84,47,0,0,0,7,22,28,65,7,146,139,163,0,5,22,28,65,7,40,0,0,0,9,22,28,65,7,255,247,229,132,235,0,5,22,28,65,7,244,0,13,22,28,65,7,139,181,75,165,189,120,183,145,116,0,12,22,28,65,7,155,9,47,195,168,53,52,96,0,0,0,0,0,7,22,28,65,7,69,196,126,0,0,0,94,22,28,65,7,55,210,129,47,138,173,181,125,83,131,107,169,4,161,81,43,50,83,174,222,34,32,254,13,25,47,191,138,119,174,26,80,177,144,81,21,185,103,104,189,197,141,234,147,166,20,86,146,89,35,198,128,197,94,188,8,128,248,100,148,3,36,90,30,140,97,232,0,243,42,176,128,10,199,103,131,246,151,172,93,178,35,150,213,134,142,178,78,24,107,0,29,22,28,65,7,144,218,40,28,74,249,227,56,111,223,174,203,181,243,120,136,77,66,254,143,233,112,176,81,201,0,6,22,28,65,7,250,61,0,5,22,28,65,7,152,0,9,22,28,65,7,176,7,166,21,169,0,0,0,6,22,28,65,7,0,156,0,0,0,129,1,22,28,65,7,132,15,135,25,100,233,209,210,44,4,193,134,73,76,25,23,57,139,60,15,104,13,63,101,33,145,118,128,152,83,120,179,64,86,41,187,252,209,64,54,219,190,188,148,99,3,221,2,73,56,72,166,84,106,96,47,199,12,29,216,132,227,25,159,128,171,6,43,230,202,23,13,84,212,206,46,53,142,242,35,94,224,22,59,245,201,22,254,18,99,161,152,13,175,124,201,217,96,168,57,48,175,161,142,120,191,213,187,95,244,198,147,211,4,158,145,157,16,145,7,163,178,57,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,6,22,28,65,7,109,33,0,234,1,22,28,65,7,59,209,8,2,159,102,191,73,5,168,35,189,176,246,23,78,94,255,165,148,21,9,47,200,166,84,181,122,80,78,40,128,220,128,127,137,249,70,123,157,178,98,68,243,202,244,246,140,199,251,98,89,119,134,114,138,20,161,107,52,37,126,240,18,124,199,129,246,113,92,112,71,126,57,118,231,170,10,41,12,99,11,41,186,60,134,21,160,140,156,196,131,149,44,169,147,19,182,176,139,73,175,175,232,75,189,107,223,141,4,69,49,150,91,48,218,231,58,150,151,125,3,164,78,30,164,166,233,38,103,234,100,134,127,55,152,162,3,37,52,82,228,85,229,20,219,61,178,143,75,193,80,29,10,100,228,38,153,202,63,170,38,207,56,229,84,150,46,71,108,137,191,135,116,202,76,121,29,129,35,147,71,111,69,243,243,9,232,141,177,216,40,27,36,91,185,69,241,2,17,214,228,57,158,217,45,86,42,71,38,79,72,80,17,181,170,59,162,49,107,217,48,106,161,183,202,159,184,131,4,0,5,22,28,65,7,122,0,8,22,28,65,7,14,88,1,11,0,0,0,19,22,28,65,7,4,142,23,103,89,221,26,202,254,171,12,62,192,46,24,0,0,0,5,22,28,65,7,77,0,0,0,187,2,22,28,65,7,174,172,66,133,170,222,153,193,235,190,52,146,254,207,134,202,206,113,203,248,101,68,226,123,123,168,201,83,37,6,176,3,156,37,131,64,155,45,133,48,196,243,109,187,37,155,7,42,203,133,115,239,169,35,244,136,82,124,208,117,41,190,2,139,36,209,5,94,89,204,165,59,172,78,46,148,99,165,21,87,65,187,50,136,205,176,159,91,186,89,112,96,5,184,209,250,15,231,127,220,56,138,113,24,253,155,226,181,167,5,13,10,233,74,233,68,50,204,163,246,177,93,99,178,40,116,29,29,190,34,117,146,137,149,61,49,58,173,54,28,46,133,161,65,228,166,232,75,21,192,199,96,109,158,192,141,43,109,155,91,110,80,136,132,160,230,213,28,200,154,176,63,114,224,51,73,88,246,246,201,43,56,103,232,59,56,60,151,71,140,113,16,95,148,18,116,239,188,229,194,161,204,213,158,15,129,122,62,100,148,222,91,110,216,191,155,1,74,181,159,245,15,7,55,124,84,210,48,202,178,237,95,13,34,225,42,218,33,183,72,162,208,107,34,68,19,24,117,43,28,129,213,212,28,81,107,104,150,129,82,46,56,117,204,17,102,173,2,40,81,28,161,34,25,188,142,153,16,236,72,201,105,0,69,207,245,148,26,82,168,12,79,129,248,145,109,184,171,153,180,38,103,12,137,251,145,126,247,153,154,214,0,5,22,28,65,7,255,0,6,22,28,65,7,245,94,0]
# real
res = [0,0,6,22,28,65,7,185,248,0,0,0,23,22,28,65,7,183,145,117,190,255,247,55,118,230,142,205,183,107,182,39,44,176,138,217,0,13,22,28,65,7,56,135,184,128,104,102,87,131,177,0,15,22,28,65,7,174,180,123,87,93,117,29,179,199,66,38,0,0,0,26,22,28,65,7,196,89,246,60,109,110,36,84,134,51,91,35,38,198,206,36,196,49,4,72,145,214,0,0,0,30,22,28,65,7,230,66,225,213,125,172,96,129,32,225,210,16,33,11,201,31,145,233,31,245,68,117,16,128,64,41,0,0,0,0,0,5,22,28,65,7,195,0,0,0,0,0,6,22,28,65,7,176,59,0,6,22,28,65,7,66,107,0,13,22,28,65,7,101,155,222,234,51,182,241,139,223,0,0,0,5,22,28,65,7,193,0,0,0,7,22,28,65,7,148,92,45,0,0,0,7,22,28,65,7,146,139,163,0,5,22,28,65,7,40,0,0,0,9,22,28,65,7,229,180,149,201,252,0,5,22,28,65,7,244,0,13,22,28,65,7,137,145,83,167,189,125,183,145,116,0,12,22,28,65,7,155,9,47,195,152,37,52,96,0,0,0,0,0,7,22,28,65,7,69,196,126,0,0,0,94,22,28,65,7,55,147,150,5,156,131,192,124,83,131,107,169,50,132,93,48,104,65,248,219,33,7,241,27,114,22,160,150,79,217,91,127,167,152,111,90,177,85,20,222,154,170,211,179,250,78,65,221,72,56,214,182,253,80,140,57,131,236,99,250,3,34,35,29,148,71,239,67,219,118,177,146,18,237,12,131,246,151,172,93,178,35,150,213,134,142,178,78,24,107,0,47,22,28,65,7,154,218,40,30,74,249,225,56,111,221,174,203,190,243,120,138,77,66,242,143,233,113,176,81,167,109,92,128,4,42,191,127,149,20,29,78,193,22,206,40,35,152,120,0,6,22,28,65,7,250,60,0,5,22,28,65,7,152,0,9,22,28,65,7,165,81,176,116,170,0,0,0,6,22,28,65,7,0,156,0,0,0,129,1,22,28,65,7,132,15,135,25,100,233,209,210,44,4,193,134,73,76,25,23,57,139,60,15,104,13,63,101,33,145,118,128,152,83,120,179,64,86,41,187,252,209,64,54,219,190,188,148,99,3,221,2,73,56,72,166,84,106,96,47,199,12,29,216,132,227,25,159,128,171,6,43,230,202,23,13,84,212,206,46,53,142,242,35,94,224,22,59,245,201,22,254,18,99,161,152,13,175,124,201,217,96,168,57,48,175,161,142,120,191,213,187,95,244,198,147,211,4,158,145,157,16,145,7,163,178,57,106,5,0,0,0,0,0,0,0,0,0,0,0,0,0,6,22,28,65,7,109,33,0,234,1,22,28,65,7,59,209,8,2,159,102,191,73,5,168,35,189,176,246,23,78,94,255,165,148,21,9,47,200,166,84,181,122,80,78,40,128,220,128,127,137,249,70,123,157,178,98,68,243,202,244,246,140,199,251,98,89,119,134,114,138,20,161,107,52,37,126,240,18,124,199,129,246,113,92,112,71,126,57,118,231,170,10,41,12,99,11,41,186,60,134,21,160,140,156,196,131,149,44,169,147,19,182,176,139,73,175,175,232,75,189,107,223,141,4,69,49,150,91,48,218,231,58,150,151,125,3,164,78,30,164,166,233,38,103,234,100,134,127,55,152,162,3,37,52,82,228,85,229,20,219,61,178,143,75,193,80,29,10,100,228,38,153,202,63,170,38,207,56,229,84,150,46,71,108,137,191,135,116,202,76,121,29,129,35,147,71,111,69,243,243,9,232,141,177,216,40,27,36,91,185,69,241,2,17,214,228,57,158,217,45,86,42,71,38,79,72,80,17,181,170,59,162,49,107,217,48,106,161,183,202,159,184,131,4,0,5,22,28,65,7,122,0,8,22,28,65,7,14,88,1,11,0,0,0,19,22,28,65,7,4,142,23,103,89,221,26,202,254,171,12,62,192,46,24,0,0,0,5,22,28,65,7,77,0,0,0,187,2,22,28,65,7,174,172,66,133,170,222,153,193,235,174,99,146,254,207,134,202,206,113,203,248,101,68,226,123,123,168,201,83,37,6,176,3,131,18,131,64,155,45,133,48,196,243,109,187,37,155,31,38,207,157,66,239,169,35,244,142,82,124,192,34,41,190,2,139,36,209,5,94,89,204,165,59,172,78,46,148,99,165,21,87,65,187,50,136,205,176,159,91,186,89,112,96,5,184,209,250,15,231,127,220,56,138,113,24,253,155,226,181,167,5,13,10,233,74,233,68,50,204,163,246,177,93,99,178,40,116,29,29,190,34,117,146,137,149,61,49,58,173,54,28,46,133,161,65,228,166,232,75,21,192,199,96,109,158,192,141,43,109,155,91,110,80,136,132,160,230,213,28,200,154,176,63,114,224,51,73,88,246,246,201,43,56,103,232,59,56,60,151,71,140,113,16,95,148,18,116,239,188,229,194,161,204,213,158,15,129,122,62,100,148,222,91,110,216,191,155,1,74,181,159,245,15,7,55,124,84,210,48,202,178,237,95,13,34,225,42,218,33,183,72,162,208,107,34,68,19,24,117,43,28,129,213,212,28,81,107,104,150,129,82,46,56,117,204,17,102,173,2,40,81,28,161,34,25,188,142,153,16,236,72,201,105,0,69,207,245,148,26,82,168,12,79,129,248,145,109,184,171,153,180,38,103,12,137,251,145,126,247,128,152,214,0,5,22,28,65,7,255,0,6,22,28,65,7,245,94,0]
res = [0,0,6,22,28,65,7,102,157,0,0,0,5,22,28,65,7,96,0,0,0,19,22,28,65,7,126,253,124,215,147,82,25,112,56,199,31,70,83,8,180,0,9,22,28,65,7,39,223,47,169,69,0,0,0,129,1,22,28,65,7,214,14,236,62,164,125,64,172,153,235,0,77,7,168,151,85,87,81,89,196,177,96,103,166,83,163,234,138,29,180,222,24,224,51,233,230,112,2,39,196,85,30,114,114,224,76,153,146,230,115,107,25,34,87,190,254,60,88,163,75,88,83,187,15,133,247,22,149,80,209,197,104,12,167,109,100,210,35,193,174,81,83,135,140,190,44,209,117,217,218,87,184,235,215,36,82,215,103,75,76,155,134,217,174,155,148,97,33,182,33,30,77,28,78,57,175,76,223,166,1,145,199,227,151,192,0,13,22,28,65,7,101,202,160,48,241,232,156,85,166,0,26,22,28,65,7,122,74,129,24,163,13,82,194,126,102,35,59,233,181,178,252,194,136,130,113,131,89,0,0,0,0,0,5,22,28,65,7,13,0,234,1,22,28,65,7,123,220,143,88,154,91,137,20,173,90,76,23,101,91,199,206,80,58,186,211,155,251,132,187,127,246,57,66,118,230,103,174,252,29,1,224,189,192,248,242,66,165,243,117,69,160,99,132,53,76,137,199,46,208,27,141,152,74,120,183,29,234,233,46,139,89,85,173,143,139,127,188,46,136,153,144,220,218,117,124,138,209,186,175,78,171,193,125,92,198,74,71,226,74,116,104,80,89,164,112,165,5,62,46,149,209,75,93,153,14,4,95,71,139,150,104,252,209,232,196,162,113,184,41,48,69,47,172,27,222,81,129,119,50,24,23,3,30,44,35,197,34,238,166,35,133,18,125,152,17,136,207,66,239,121,100,145,137,37,208,220,86,145,238,211,36,31,14,94,169,176,218,55,20,102,12,63,158,18,87,87,63,36,8,74,92,141,184,227,57,231,148,204,129,99,248,8,214,139,28,186,65,171,56,145,49,8,224,83,23,51,114,150,219,9,185,107,13,222,123,65,28,115,82,17,83,80,117,134,50,0,5,22,28,65,7,236,0,0,0,0,0,0,0,5,22,28,65,7,79,0,13,22,28,65,7,103,90,165,203,241,58,119,17,38,0,6,22,28,65,7,197,250,0,0,0,47,22,28,65,7,152,211,221,163,229,121,217,200,236,133,188,243,121,205,229,104,79,175,60,127,28,165,84,247,150,95,113,214,213,158,213,252,163,143,66,169,129,86,120,127,50,231,110,0,6,22,28,65,7,81,41,0,30,22,28,65,7,189,112,255,148,153,123,143,172,238,162,245,127,34,220,2,27,169,164,40,8,206,229,238,13,190,216,0,6,22,28,65,7,62,168,0,9,22,28,65,7,244,84,56,20,73,0,15,22,28,65,7,63,251,119,140,102,218,6,219,171,186,100,0,5,22,28,65,7,25,0,6,22,28,65,7,137,58,0,0,0,0,0,12,22,28,65,7,147,249,90,5,153,191,119,128,0,94,22,28,65,7,79,93,77,61,182,7,4,142,2,167,220,196,130,205,150,50,36,100,171,112,63,136,17,116,23,207,179,201,137,49,217,177,86,241,99,148,250,29,132,15,156,208,251,203,239,55,175,9,103,0,189,50,222,219,246,160,83,83,171,136,112,35,222,208,166,121,157,130,247,115,150,97,186,106,128,76,36,80,145,103,237,202,209,208,186,112,232,185,63,81,0,0,0,5,22,28,65,7,126,0,7,22,28,65,7,6,171,197,0,6,22,28,65,7,163,175,0,5,22,28,65,7,247,0,19,22,28,65,7,150,92,195,237,131,90,86,113,29,127,155,167,240,88,237,0,5,22,28,65,7,176,0,0,0,0,0,0,0,0,0,13,22,28,65,7,249,225,143,186,127,182,199,53,34,0,0,0,6,22,28,65,7,21,61,0,7,22,28,65,7,28,249,132,0,0,0,0,0,0,0,0,0,0,0,8,22,28,65,7,8,216,96,71,0,7,22,28,65,7,5,75,111,0,0,0,0,0,187,2,22,28,65,7,121,147,153,138,86,36,246,234,208,156,43,51,183,85,172,21,94,180,243,198,91,155,26,122,187,191,83,168,5,94,11,101,248,205,73,40,115,10,83,28,37,192,0,192,142,149,107,168,251,37,126,13,208,49,59,71,110,157,101,19,143,104,140,153,72,64,227,215,159,243,133,134,147,105,236,185,127,92,190,21,247,74,133,60,20,171,131,122,56,100,2,254,229,225,220,80,153,43,51,244,234,107,82,8,227,59,124,232,241,1,78,233,96,230,84,33,224,129,186,139,40,147,72,127,142,130,14,13,104,240,101,158,60,148,136,150,129,192,218,9,154,136,75,2,145,117,115,141,114,52,93,244,244,46,247,75,226,16,151,128,174,154,227,33,179,203,166,21,223,136,29,19,61,30,15,38,176,247,8,43,159,188,138,24,157,136,236,86,74,38,134,98,250,239,238,35,24,71,29,170,245,138,190,140,244,241,8,110,11,26,254,120,0,99,159,199,96,219,80,158,224,248,133,72,205,91,196,120,71,226,144,176,1,17,167,125,51,73,150,198,47,148,147,30,153,31,123,151,114,58,213,168,47,208,131,245,109,165,115,8,108,42,24,12,176,149,111,117,120,127,185,142,49,176,201,187,169,160,147,159,119,173,54,112,173,68,72,16,134,124,254,116,168,194,188,70,157,105,115,41,31,95,44,36,118,33,207,144,172,214,6,0,0,0]
while len(res) != 0:
a = res[0]
if a != 0:
if a > 128:
a1 = res[0]
a2 = res[1]
if a2 > 1:
a = pack(a1-128, a2-1)+1
else:
a += 1
# else:
# if a > 150:
# a1 = res[0]
# a2 = res[1]
# a += pack(a1-128,a2-1)
tmp = res[1:a+1]
print(a, ','.join([str(x) for x in tmp]))
res = res[a+1:]
else:
res = res[1:]
# import struct
#
# # 将数字315转换为两个字节
# bytes_data = struct.pack('H', 315)
#
# # 将两个字节分别转换回整数187和2
# int1, int2 = struct.unpack('BB', bytes_data)
#
# print(int1) # 输出:187
# print(int2) # 输出:2
#
#
# # 将整数187和2分别转换为一个字节
# byte1 = struct.pack('B', 59)
# byte2 = struct.pack('B', 1)
#
# # 合并两个字节为一个值
# combined_bytes = byte1 + byte2
#
# # 将两个字节还原为数字315
# result = struct.unpack('H', combined_bytes)[0]
#
# print(result) # 输出:315
#
#
#
import struct
# 假设四字节数据为 b'\x01\x02\x03\x04'
# 使用 struct 模块将其转换为一个整数
num = struct.unpack('<i', bytes([22,28,65,7]))[0]
print(num)
def pack(a, b,c,d):
byte1 = struct.pack('B', a)
byte2 = struct.pack('B', b)
byte3 = struct.pack('B', c)
byte4 = struct.pack('B', d)
# 合并两个字节为一个值
combined_bytes = byte1 + byte2 + byte3+byte4
# 将两个字节还原为数字315
result = struct.unpack('HHHH', combined_bytes)[0]
return result
print(pack(22,28,65,7))
\ No newline at end of file
const fs = require('fs');
//babel库相关,解析,转换,构建,生产
const parser = require("@babel/parser");
const traverse = require("@babel/traverse").default;
const types = require("@babel/types");
// const {replaceWith} = require("cheerio/lib/api/manipulation");
const generator = require("@babel/generator").default;
const print = console.log;
// const YY = require('./test')
// console.log(YY)
//读取文件
let encode_file = "./src_out.js",
decode_file = "./src_decode.js";
// let encode_file = "./jiyan.js",decode_file = "./decode_result.js";
if (process.argv.length > 2) {
encode_file = process.argv[2];
}
if (process.argv.length > 3) {
decode_file = process.argv[3];
}
let jscode = fs.readFileSync(encode_file, {encoding: "utf-8"});
//转换为ast树
let ast = parser.parse(jscode);
const {
decodeString,
decodedBytecode,
opcodeHandlerMap,
encodedStringArray,
parameterArray
} = require('./utils');
const { log } = require('console');
var globalObject$1 = {},
globalObject$2 = {};
var emptyObject = globalObject$2;
var globalEmptyObj = Object.create(null);
function customArr() {
var GM = [];
return GM;
}
function Registers() {
this.reg = [];
this.init = function (Gs) {
this.reg[Gs] = {
v: void 0
};
};
this.get = function (GZ) {
return this.reg[GZ].v;
};
this.set = function (Gj, Go) {
if (Array.isArray(Go) && typeof Go[0] === 'number'){
// print(ha, hX+'')
}
// (ha === 13 || ha === 10|| ha === 8) &&
if ( Array.isArray(Go) && Go.length === 60){
// print(ha,'\n',hX)
idx+= 1;
// print(arrs['arr60' + idx])
Go = new Proxy(Go, {
set(target, propKey, value, receiver){ //拦截对象属性的设置,比如proxy.foo = v或proxy['foo'] = v,返回一个布尔值。
const temp = Reflect.set(target,propKey,value,receiver);
print(`${'arr60' + idx} -> set ${propKey} value -> ${value}`);
// if (propKey == 'pathname')debugger;
if (propKey === '27')debugger;
return temp;
}
})
// debugger;
}
// (Gj === 14 || Gj === 10|| Gj === 8) &&
if ( Gj === 9 &&Array.isArray(Go) && Go.length > 1000){
print(Gj,'\t\t',Go + "")
// debugger;
}
if ((Gj === 30) && Go && Go.length === 6){
debugger
}
if ( Array.isArray(Go) && Go.length === 9){
print(times, Go+'')
// debugger
}
this.reg[Gj].v = Go;
};
this.clone = function () {
var GH = new Registers();
GH.reg = [].slice !== [].slice ? this.reg.slice(0) : this.reg.slice(0);
return GH;
};
}
function VirtualMachine(programCounter, opcodeHandlerCounter, registers, window) {
this.stack = customArr();
this.yStack = customArr();
this.vStack = customArr();
this.opcodeHandlerCounter = opcodeHandlerCounter;
this.programCounter = programCounter;
this.registers = registers;
this.window$1 = window == null ? window : Object(window);
this.window$2 = window;
this.reg = 0;
this.next = function () {
var result = opcodeHandlerMap[this.opcodeHandlerCounter][decodedBytecode[this.programCounter++]];
this.opcodeHandlerCounter = result[0];
return result[1];
};
}
function _newVmContext(programCounter, opcodeHandlerCounter, prevRegisters, _paramA, _paramC, isParamDUndefined, _paramD) {
var vmStart = function () {
"use strict";
var registers = prevRegisters.clone();
var vmContext = new VirtualMachine(programCounter, opcodeHandlerCounter, registers, this);
var ih,
iR,
ib = Math.min(arguments.length, _paramC.length);
if (isParamDUndefined) {
registers.init(_paramD);
registers.set(_paramD, arguments);
}
for (ih = 0, iR = _paramA.length; ih < iR; ++ih) {
registers.init(_paramA[ih]);
}
for (ih = 0; ih < ib; ++ih) {
registers.set(_paramC[ih], arguments[ih]);
}
for (ih = ib; ih < _paramC.length; ++ih) {
registers.set(_paramC[ih], void 0);
}
return _vmStart(vmContext);
};
return vmStart;
}
function tryExecInstruction(opcodeHandler, vmContext) {
try {
return opcodeHandler(vmContext);
} catch (GR) {
console.log(GR);
catchExecError(GR, vmContext);
}
}
function catchExecError(Gz, vmContext) {
var Gm = vmContext.vStack.pop();
for (var GJ = 0; GJ < Gm.c; ++GJ) {
vmContext.yStack.pop();
}
vmContext.yStack.push({
N: true,
z: Gz
});
vmContext.programCounter = Gm.Y;
vmContext.opcodeHandlerCounter = Gm.K;
}
function _vmStart(vmContext) {
// var key = `${vmContext.programCounter}:${vmContext.opcodeHandlerCounter}`;
// if (!stackTrace[key]) {
// stackTrace[key] = [];
// }
// var currentTrace = [];
// stackTrace[key].push(currentTrace);
var opcode, iJ;
for (;;) {
if (emptyObject !== globalObject$2) {
iJ = emptyObject;
emptyObject = globalObject$2;
return iJ;
}
opcode = vmContext.next();
if (Array.isArray(vmContext.stack[0]) && vmContext.stack[0].length === 60 && Array.isArray(vmContext.stack[0][0])){
let res = [];
vmContext.stack[0].forEach((e,i)=>{
if(e && e.length == 2){
res.push(i +'==' +e[1].length +'=>')
res.push(e[1]+'')
}else {
res.push(i+'==0=>iii' )
}
})
print([].slice.call(res).join('iii'))
}
print({opcodeHandlerCounter: vmContext.opcodeHandlerCounter, programCounter: vmContext.programCounter, reg: vmContext.reg})
print('opCode', opcode, [].slice.call(vmContext.stack))
if (vmContext.vStack.length === 0) {
instructionHandlers(opcode, vmContext)
} else {
tryExecInstruction(instructionHandlers[opcode], vmContext)
}
}
}
function _initVm(programCounter, opcodeHandlerCounter, previousRegister, _paramA, _paramB, _paramC, _paramD, _paramE) {
var registers = new Registers();
var isParamDUndefined = _paramD !== void 0;
for (var i = 0; i < _paramB.length; ++i) {
registers.reg[_paramB[i]] = previousRegister.reg[_paramB[i]];
}
var vmContext = _newVmContext(programCounter, opcodeHandlerCounter, registers, _paramA, _paramC, isParamDUndefined, _paramD);
if (_paramE !== void 0) {
registers.init(_paramE);
registers.set(_paramE, vmContext);
}
return vmContext;
}
_initVm(0, 0, null, [3, 2, 0, 1], [], [], void 0, void 0)();
function createOpcodeFunction(PQ, Pr, PO, PB) {
"use strict";
var iS = parameterArray[PQ];
return _initVm(Pr, PO, PB, iS.C, iS.v, iS.t, iS.V, iS.l);
}
function instructionHandlers(opcode, vmContext) {
switch (opcode){
case 10:
Object.defineProperty(vmContext.stack[vmContext.stack.length - 3], vmContext.stack[vmContext.stack.length - 2], {
writable: true,
configurable: true,
enumerable: true,
value: vmContext.stack[vmContext.stack.length - 1]
});
vmContext.stack[vmContext.stack.length - 3] = vmContext.stack[vmContext.stack.length - 3];
vmContext.stack.length -= 2;
break;
case 18:
var byte$0 = decodedBytecode[vmContext.programCounter];
var byte$1 = decodedBytecode[vmContext.programCounter + 1];
var byte$2 = decodedBytecode[vmContext.programCounter + 2] << 16 | (decodedBytecode[vmContext.programCounter + 3] << 8 | decodedBytecode[vmContext.programCounter + 4]);
var byte$3 = decodedBytecode[vmContext.programCounter + 5];
vmContext.programCounter += 6;
var stack$0Pointer = vmContext.stack.length - 1;
var stack$0 = vmContext.stack[vmContext.stack.length - 1];
vmContext.registers.set(byte$0, stack$0);
var stack$1Pointer = vmContext.stack.length - 2;
var stack$1 = vmContext.stack[vmContext.stack.length - 2];
vmContext.registers.set(byte$1, stack$1);
var stackLength$0 = vmContext.stack.length - 2;
vmContext.stack[stackLength$0] = byte$3;
vmContext.stack[stackLength$0 + 1] = byte$2;
break;
case 59:
var byte$0 = decodedBytecode[vmContext.programCounter] << 8 | decodedBytecode[vmContext.programCounter + 1];
vmContext.programCounter += 2;
vmContext.stack[vmContext.stack.length - 2] = createOpcodeFunction(byte$0, vmContext.stack[vmContext.stack.length - 1], vmContext.stack[vmContext.stack.length - 2], vmContext.registers);
vmContext.stack.length -= 1;
break;
case 84:
var rawString$0 = encodedStringArray[decodedBytecode[vmContext.programCounter] << 8 | decodedBytecode[vmContext.programCounter + 1]];
vmContext.programCounter += 2;
vmContext.stack[vmContext.stack.length] = rawString$0;
break;
case 87:
vmContext.stack[vmContext.stack.length - 2] = vmContext.stack[vmContext.stack.length - 2][vmContext.stack[vmContext.stack.length - 1]];
vmContext.stack.length -= 1;
break;
case 104:
var byte$0 = decodedBytecode[vmContext.programCounter];
vmContext.programCounter += 1;
vmContext.stack[vmContext.stack.length] = byte$0;
break;
case 117:
var byte$0 = decodedBytecode[vmContext.programCounter];
vmContext.programCounter += 1;
vmContext.stack[vmContext.stack.length] = vmContext.registers.get(byte$0);
break;
case 120:
var byte$0 = decodedBytecode[vmContext.programCounter] << 16 | (decodedBytecode[vmContext.programCounter + 1] << 8 | decodedBytecode[vmContext.programCounter + 2]);
var byte$1 = decodedBytecode[vmContext.programCounter + 3];
vmContext.programCounter += 4;
decodedBytecode[byte$0] = byte$1;
break;
case 128:
var byte$0 = decodedBytecode[vmContext.programCounter];
vmContext.programCounter += 1;
vmContext.registers.set(byte$0, vmContext.stack[vmContext.stack.length - 1]);
vmContext.stack.length -= 1;
break;
case 129:
var byte$0 = decodedBytecode[vmContext.programCounter];
var rawString$0 = encodedStringArray[decodedBytecode[vmContext.programCounter + 1] << 8 | decodedBytecode[vmContext.programCounter + 2]];
vmContext.programCounter += 3;
var array$0 = [];
var stackLength$0 = vmContext.stack.length;
vmContext.stack[stackLength$0] = array$0;
vmContext.stack[stackLength$0 + 1] = byte$0;
vmContext.stack[stackLength$0 + 2] = rawString$0;
break;
case 134:
var byte$0 = decodedBytecode[vmContext.programCounter] << 8 | decodedBytecode[vmContext.programCounter + 1];
vmContext.programCounter += 2;
vmContext.stack[vmContext.stack.length] = byte$0;
break;
case 138:
var byte$0 = decodedBytecode[vmContext.programCounter] << 8 | decodedBytecode[vmContext.programCounter + 1];
vmContext.programCounter += 2;
vmContext.stack[vmContext.stack.length] = byte$0;
break;
case 139:
vmContext.programCounter = vmContext.reg.F;
vmContext.opcodeHandlerCounter = vmContext.reg.K;
break;
case 152:
vmContext.stack[vmContext.stack.length - 2] = vmContext.stack[vmContext.stack.length - 2] < vmContext.stack[vmContext.stack.length - 1];
vmContext.stack.length -= 1;
break;
case 187:
var EK = decodedBytecode[vmContext.programCounter] << 8 | decodedBytecode[vmContext.programCounter + 1];
vmContext.programCounter += 2;
var Ey = vmContext.stack[vmContext.stack.length - 1];
var Ep = Ey + "," + EK;
var Ex = globalEmptyObj[Ep];
if (typeof Ex !== "undefined") {
vmContext.stack[vmContext.stack.length - 1] = Ex;
return;
}
var Es = encodedStringArray[EK];
var EZ = decodeString(Es);
var Ej = decodeString(Ey);
var Eo = EZ[0] + Ej[0] & 255;
var EH = "";
for (var Eq = 1; Eq < EZ.length; ++Eq) {
EH += String.fromCharCode(Ej[Eq] ^ EZ[Eq] ^ Eo);
}
vmContext.stack[vmContext.stack.length - 1] = globalEmptyObj[Ep] = EH;
break;
case 188:
var ET = encodedStringArray[decodedBytecode[vmContext.programCounter] << 8 | decodedBytecode[vmContext.programCounter + 1]];
vmContext.programCounter += 2;
if (!(ET in window)) {
throw new ReferenceError(ET + " is not defined.");
}
vmContext.stack[vmContext.stack.length] = window[ET];
break;
case 211:
var cy = decodedBytecode[vmContext.programCounter] << 16 | (decodedBytecode[vmContext.programCounter + 1] << 8 | decodedBytecode[vmContext.programCounter + 2]);
var cp = decodedBytecode[vmContext.programCounter + 3];
vmContext.programCounter += 4;
vmContext.reg = {
F: vmContext.programCounter,
K: vmContext.opcodeHandlerCounter
};
vmContext.programCounter = cy;
vmContext.opcodeHandlerCounter = cp;
break;
case 217:
var cF = decodedBytecode[vmContext.programCounter];
var ch = decodedBytecode[vmContext.programCounter + 1];
vmContext.programCounter += 2;
if (!vmContext.stack[vmContext.stack.length - 1]) {
vmContext.programCounter = cF;
vmContext.opcodeHandlerCounter = ch;
}
vmContext.stack.length -= 1;
break;
case 235:
vmContext.programCounter = vmContext.stack[vmContext.stack.length - 1];
vmContext.opcodeHandlerCounter = vmContext.stack[vmContext.stack.length - 2];
vmContext.stack.length -= 2;
break;
}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
bases = 'BXla8YOr4V2kxHMQcFf-SZAvim5dThL7_ENRbp=uIt9oGDgy1sKzj0Pnwqe3C6JWU'
print(bases[43])
print(len(bases))
s = 'hLaTGlqY8ei_QEhez=0xPexJsBVxrpT3ImaHFb59Ext3hN5pgKH1-4qwzlpAgbSDL=g_AY5dRq0PKvRcIL=GieFupgYI8XFqrLoHk4DJC0uzQM1mOBAQ-o_kbhSW2CgYO=9GV0HeaY4hW0vW4Vcn8JYZZ4nPIPBSbj3LYekNyfser4_e72C8QtHD_WJSr_FS1yOvXwBWPFDsZmSDLRVjzg1XHD1CK9GMGV0_behtYMshIPZXeLhnr3lxkpE26oc5_1Ll2VY9PS6WhWThdPqIPRPLvdVgAr0P7BEhjhZwpycl-_MCcf=EPdM1PhA6TAmSwlhmr9tCWrDgNOxZSwCTNbyz6R06oi_Ife7WrGIX205HLyFVrX=G24mJvLGkWG8RK-mtw_dqk08wRiS6jEK2=2Z-rJMXD=uBCBvDdHR==6vvREK86XW2Vt1vryw5D=mLE=J3wGqXjWvEVvbYw3GHW-EjcMlP4CJpE9qVgvIHLNPaQC3lVtPnGp=6xZjxFIp9Vnu6rmJ5IFzDLvKFEG5u09Nsq3BTN6FVT-_IGFHrGo=HIV3BGJkqxK3SDvyXrhwAKOvvsRa1PK_0Gzauio76b8WJ8uIjWh8F-bmEckuJxSc4rvGn-ibkbRlbd9IZswY2AKW69H7sGZZ06vzth=j84SJ2t9WmN69ZVcyB3IjBKqr19qa1DrdbN3pXswEFlIK33y4uI_laR2zlX_=rLbJ33CeZr6y_r4J4T8rRNzAtIpgtZPHIZFGnvnfAA53momGadRBdNmaa-yevnBf06KwPROY_VG16srsgrqKyIg4EX5-Tl1FFySn_GRbAsoK7T4z2b0XmDl-0=yQZcv-gZZoBylWkniMZgcl1Mue11K9sffSDHE4svWfvGRHE1BZvy-VfJexXAcnaTe8_9iw1sp1I5KaNLqIgTTTygwVZ50RIzYdBgyhYZwjehihhYAmjzkhjrrfuy58SDByh7ZCskWbfXkpY-yii5YedybDTa-4blEjKMqvo6GBJm00Sjr_TrD-x7iCCvkrulryFvv6sfRptQcNBdfxCMJ5Sz_68ZgTJ=HNWXLrTOK_ZaNrLzxReTeVaGoG9zr4KyPyfcoV5WHKKZ9bjJIe2sNuTrAaIyyyVot6OjYpDmnrJOTb09XrfJDz94LdNp5_Ld6jZHshN6GM4QWPx9JRndrOcEy_=KXx4p6yPa3JWodSmNcV8WP6WBHuevf8QkTLJ8VXQqauBzrobs4MdOwsJWAz3PYaY34ssyKuDJ_V1m9yxEKMr9_4xDo8VgoBPxCEhzoti3VIGZ8G0=a9QuFGb-=-HJuuhfuf2cD_cZl57kIkHQitPD3aVIBgcrBt4oPYLeRlezvB8Ja7EptY7CnP=T0ooIeE=-SLG3NOnkraQ2ezC8fK_2HDY4JsFvYA_Q6O5Ol=e6MPwX=qJV90d2ZBLwqX4ZLQ3_gwhhG0KtOc5pNorXK=gj6OdoaOxKXLroMmH3L4=tHl-xsDGzKuBa-yQifjgrIxsB6E0jxmHHA_V=XyPO5EwYMmMK6yVi6naBcRdABu3STQ3ABVoJRY0bEhiTuu4gSbz=BKwtvBZMfEbupkB8NKCB1sjrS6_XM=xOh5kW=SyId1x_XZJCb47wuHndX_4tk5Thz8sNsgtFIMzcliPyZ9wmCCVdHOOxQfdm6Z1wpJM-a1zLLEasdhhrjCVAeI=Eo_YmCj'
res = []
for i in s:
res.append(bases.index(i))
print(res)
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button onclick="sendXHr()">发送xhr请求</button>
</body>
</html>
<script>
Date.now = function now() { return 1685096207545 };
Date.parse = function () { return 1685096207545 };
Date.prototype.valueOf = function () { return 1685096207545 };
Date.prototype.getTime = function () { return 1685096207545 };
Date.prototype.toString = function () { return 1685096207545 };
Performance.prototype.now = function now(){ return Number('1685096207545'.slice(8))}
Math.random = function random() { return 0.08636862211354912 };
</script>
<script src="src_out.js"></script>
<!--<script src="https://www.jetblue.com/js/src/jb-74873.js"></script>-->
<script>
function sendXHr() {
var xhr = new XMLHttpRequest();
let h = { "accept": "application/json",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
"api-version": "v3",
"application-channel": "Desktop_Web",
"booking-application-type": "NGB",
"cache-control": "no-cache",
"content-type": "application/json",
}
xhr.open('POST', "https://jbrest.jetblue.com/lfs-rwb/outboundLFS", false);
for (let hKey in h) {
xhr.setRequestHeader(hKey, h[hKey])
}
try{
xhr.send('{\"tripType\":\"oneWay\",\"from\":\"ZLA\",\"to\":\"NAS\",\"depart\":\"2023-05-11\",\"cabin\":\"economy\",\"refundable\":false,\"dates\":{\"before\":\"3\",\"after\":\"3\"},\"pax\":{\"ADT\":1,\"CHD\":0,\"INF\":0,\"UNN\":0},\"redempoint\":false,\"pointsBreakup\":{\"option\":\"\",\"value\":0},\"isMultiCity\":false}"');
}catch (e){}
console.log(xhr.headers)
return xhr.headers
}
console.log('当前times', window.times)
!function(){
var websocket = new WebSocket("ws://127.0.0.1:5000/browser");
websocket.onopen = function(){
var info = 'browser:start:' + location.href
console.log(info);
websocket.send(info)
}
websocket.onmessage = function(e){
var info = JSON.parse(e.data)
console.log('websocket.onmessage', info)
// 这里处理请求参数以及对应rpc函数调用,返回参数用字符串传递回 websocket。回传字符串即可。
var ret = sendXHr()
websocket.send(JSON.stringify(ret))
}
}()
debugger
try {
sendXHr()
}catch (e){}
console.log('结束times', window.times)
</script>
\ No newline at end of file
import random
import time
import requests
import json
headers = {
"Host": "jbrest.jetblue.com",
"application-channel": "Desktop_Web",
"sec-ch-ua-platform": "\"macOS\"",
"sec-ch-ua-mobile": "?0",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
"booking-application-type": "NGB",
"content-type": "application/json",
"accept": "application/json",
"api-version": "v3",
"origin": "https://www.jetblue.com",
"sec-fetch-site": "same-site",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"referer": "https://www.jetblue.com/booking/flights?from=LAS&to=BOS&depart=2023-07-10&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
}
for i in range(100):
t1 = time.time()
# r = requests.get('http://127.0.0.1:5000/getinfo').json()['message']
r = requests.get('http://127.0.0.1:3001').json()
print(time.time() - t1,r)
# r = {
# "x-1itxwo9i-a": "F7Pgtv2oFJ6SRuiVu1hHGyVjT-E9519oQfgqVh4t7nDGry-oz_jYCRNHUfHRa5UEuU_NCnLpA1UAxW1qJ15de9rk3vXe7e9fliEH2x_f29j_-yESHK-kqhqP47HxOQqYor7JAwTlSZCRVps8dD-Sshe-kxmGeWG==sd1gfTtXb5oOW5innE_63r=6y37msgHgbZsKsr3m-Nqrg8Gs_2zZnjo3fJbU8eOViydixp9pZbueCL5AuZmCx-0Ug_Y8Z12hfhoVKQ2k8sWUWMNYbn1b7___KrGD_6VdHnekp6W0RERVtsILg92QqEg4HZ0=jDX6vAzyNdvzYVfvMYi5MarM1Y=MulNJIyOk9pabwUjA05dTVl_8vQb0YW=QCzLPrykflJmh38xJl__AJ-rMzn86-LxO4WKkE7z0Xig92=p6LyRjUymVqVqG2ibJAHUuEtEUDB947ansxUMnECeDlOOYQdY4ugI5wg4hSU6eF0ItNvniaEx1LydsUPDtJv85MJyhPN0beZa4p0NvQ8X8uX9dXLd7TQ2mvKylBjXh_ktY-Aq=D3S7S7Mm-_2XVqP6La0q3Df1E60QNv9NMYOeM59ZSE5Uz0zFfkVOOS_dYgH5kXKPVIykG0miBDCz4n0qB1UbMkieVLYvAtjztKo1bzTrJvtOr6Y=w3_Knt-OAfM=TEajT3vq9Ls93u6dgEKY-uaz2qznd5Kl7kfdMXLiajx0hO8Zz8f_5gUenqAjLOITx4nAAo-6X-EW6tBBvaqE84Qd3jfn78R4=sIRvi2GnGwdYWlhGNYb471Omw1meParxDs8BCrKP-7hkug7x8pnXsnwWqY2-QnWN4h9HZTm1iEUv1S9nOEDpWYA23V6t7P-UsiIA_CgGjELouWoIyH8zF9odiU4CS-MtQaSAhISprP5khjPvGF6ZKkJvFPptGbB3ekf=IISkQxI-NXDgt6YW4A0x=3U_jsqI2NqqiMgXpZkrRrkn73k3ZZKCOmIz9WmEaoO1AjF-p5=laojmo2NyU50Pk3ezup_m3qJbDMXgkbjekfsSOXAf6xADyNXSv==9vHWewHA3A9VVKftrWrJhYuaBBjx4jEIuXH3XS1iHDC_zzEHfgKbPD4_eHLNl=Kg5EjYsqt7FkQ51_dh7azeiwkfLSniDoYVi9y-NBEALzFMbGXoB2SMgN1QmVfkGm2LJz5Hgy5e7CNiso-iM7Ph8dflu8RVjxvAF_eed231SwmQl8ZBAwMNR1HWq4HSoQigu4GlMRBxz_gQX1uVr_y=StEhSXhXZ1Q_DhPmvu8BO5BgbmjflDX3tRnmw9bW5kplXxAMHNkdAoyKbjXatV1ewFw6AjnE=GgAfaY3NKJMg3n=g_BrZvRwzhZgqqX-nfZlSdAneIbyqlreiJLoRHo734_UsdfY9Y5ejsnedgMHsNb_w=D4F_wDnv83fbZtrn4agkqLHfqxe6=iXzkRXsCC616=7GKBU7S3NJVyjX=TQsoRZPEfKs3F-37GbGwCoE-nDSeRiUWNjCo6rxj4DBuSsQKV=uhzvyaiNk-Qt=UlXQ3pG4j=lJ8=ovKSFQ_qSooL06-zk5oXJxe9u1Q1X5wKkE6iVEDWPl_EWd93MuVeheO2h7asXj3hzXsmXqG2G6r6bZPQhFW5I1_qmiOsD=hSfH8p7K5FPLTY=yaVDWSGHVWpkyt9CdvwE_aOiDwaCUT=tSqAOvFd6s6nj4__RavtRxtFL",
# "x-1itxwo9i-b": "qi0wsc",
# "x-1itxwo9i-c": "AEASLFKIAQAAdHv22v9hQ7HEhomgqgCgqzMhv-7h3Wivo3sNSYlTTGjk4QJh",
# "x-1itxwo9i-d": "ABaAhIjBCKHFgQGAAYIQgISi0aIA5JmBzvpDzz8AiVNMaOThAmEAAAAAH29cNgBzkpfthkGqgU6X0kPmJ3sq",
# "x-1itxwo9i-f": "A_hnLlKIAQAAx4PMly6tJ4mWsxWi_E8mIiwAt0BDrYdxTCXXD7gMu06EQeEsAS0rIPCucn0ewH9eCOfvosJeCA==",
# "x-1itxwo9i-z": "q"
# }
headers.update(r)
print(len(headers['x-1itxwo9i-a']))
url = "https://jbrest.jetblue.com/lfs-rwb/outboundLFS"
data = {
"tripType": "oneWay",
"from": "LAS",
"to": "BOS",
"depart": "2023-07-10",
"cabin": "economy",
"refundable": False,
"dates": {
"before": "3",
"after": "3"
},
"pax": {
"ADT": 1,
"CHD": 0,
"INF": 0,
"UNN": 0
},
"redempoint": False,
"pointsBreakup": {
"option": "",
"value": 0
},
"isMultiCity": False,
"isDomestic": False
}
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000,11149))}'
proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
print(proxy)
response = requests.post(url, headers=headers, json=data, proxies={
'http':proxy,
'https':proxy,
})
print(response.text)
if response.status_code == 200:
# proxy = requests.post('http://ymx-lcc.unififi.com/proxy/get-proxy', json={
# 'type':'headerB6'
# })
uri = 'http://lcc.unififi.com/header/add'
r = requests.post(uri, json={
'brush_fromto': 'LAS-BOS',
'brush_fromdate': '2023-05-22',
'brush_header': headers,
'brush_proxy':proxy,
'brush_mode':'shopping',
'brush_name':'js',
'brush_type':'headerB6',
})
print(r.text)
{"_id":{"$oid":"fff3ce580bcb2f818f3b7f91"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ffeb177176585dd8d9f0b67f"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1020"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1536"},"innerheight":{"$numberInt":"698"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ffe73b6db265f35d1a3035cb"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1018"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"928"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ffdf8e1a6b6025c26ae5a7ab"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.58","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"806"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"854"},"innerwidth":{"$numberInt":"1280"},"innerheight":{"$numberInt":"735"},"outerwidth":{"$numberInt":"1280"}}}}}
{"_id":{"$oid":"ffd77f0a91115fe626b6166a"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"2400"},"availheight":{"$numberInt":"1300"},"width":{"$numberInt":"2400"},"height":{"$numberInt":"1350"},"innerwidth":{"$numberInt":"2400"},"innerheight":{"$numberInt":"1159"},"outerwidth":{"$numberInt":"2420"}}}}}
{"_id":{"$oid":"ffbd4c150b6528ca4f8c91d5"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"938"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ffba932c31f8795775a604f1"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"922"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ffb8ea852b065bf399dd66f0"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1695"},"innerheight":{"$numberInt":"845"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ffb8116843ef54d7851e399d"},"env":{"arg100":{"ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15","screen":{"availwidth":{"$numberInt":"1728"},"availheight":{"$numberInt":"1079"},"width":{"$numberInt":"1728"},"height":{"$numberInt":"1117"},"innerwidth":{"$numberInt":"1728"},"innerheight":{"$numberInt":"1027"},"outerwidth":{"$numberInt":"1728"}}}}}
{"_id":{"$oid":"ffb80ecda54c394be8fabee9"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ffb76f8daf9c6594fa7167cb"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1366"},"availheight":{"$numberInt":"728"},"width":{"$numberInt":"1366"},"height":{"$numberInt":"768"},"innerwidth":{"$numberInt":"1826"},"innerheight":{"$numberInt":"782"},"outerwidth":{"$numberInt":"1386"}}}}}
{"_id":{"$oid":"ffae1460146b5a0627b15f81"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ffa6e82bb95b9c6bc50a97d6"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"680"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"720"},"innerwidth":{"$numberInt":"1391"},"innerheight":{"$numberInt":"599"},"outerwidth":{"$numberInt":"1252"}}}}}
{"_id":{"$oid":"ff9e028a9784d63b4d424fa9"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"936"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ff85e7018cfb449e1a0982e1"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1440"},"availheight":{"$numberInt":"920"},"width":{"$numberInt":"1440"},"height":{"$numberInt":"960"},"innerwidth":{"$numberInt":"1440"},"innerheight":{"$numberInt":"759"},"outerwidth":{"$numberInt":"159"}}}}}
{"_id":{"$oid":"ff84c13ec4080a5f9fe9601c"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"946"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ff7e33e3bf3334e728286095"},"env":{"arg100":{"ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"705"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"800"},"innerwidth":{"$numberInt":"1256"},"innerheight":{"$numberInt":"611"},"outerwidth":{"$numberInt":"1256"}}}}}
{"_id":{"$oid":"ff74b66e2c1a07e0d589e56c"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"1800"},"availheight":{"$numberInt":"1075"},"width":{"$numberInt":"1800"},"height":{"$numberInt":"1125"},"innerwidth":{"$numberInt":"1800"},"innerheight":{"$numberInt":"934"},"outerwidth":{"$numberInt":"1820"}}}}}
{"_id":{"$oid":"ff72b34882996c8cb4cc6c8f"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ff53b908d5e82df89cd811dc"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35","screen":{"availwidth":{"$numberInt":"1440"},"availheight":{"$numberInt":"860"},"width":{"$numberInt":"1440"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1440"},"innerheight":{"$numberInt":"789"},"outerwidth":{"$numberInt":"1440"}}}}}
{"_id":{"$oid":"ff507db505245b8ffe22c8c6"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"969"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ff4ced64523b5a6be4b04e62"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"929"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ff362983a225e0905e7f01a3"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ff346753cc339758fc1943b3"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"672"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"720"},"innerwidth":{"$numberInt":"1415"},"innerheight":{"$numberInt":"631"},"outerwidth":{"$numberInt":"1280"}}}}}
{"_id":{"$oid":"ff3227984b70ed6d9bc363f5"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"929"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ff2b08daabab6ba3fbed1339"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1600"},"availheight":{"$numberInt":"852"},"width":{"$numberInt":"1600"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1600"},"innerheight":{"$numberInt":"734"},"outerwidth":{"$numberInt":"1600"}}}}}
{"_id":{"$oid":"ff150a9498c98ab86f86622b"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1536"},"availheight":{"$numberInt":"816"},"width":{"$numberInt":"1536"},"height":{"$numberInt":"864"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"892"},"outerwidth":{"$numberInt":"1536"}}}}}
{"_id":{"$oid":"ff08cf333ae04b7f99da3319"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"2133"},"innerheight":{"$numberInt":"1041"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"ff03b99f0ba73dff1484c1f9"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36","screen":{"availwidth":{"$numberInt":"1440"},"availheight":{"$numberInt":"860"},"width":{"$numberInt":"1440"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1440"},"innerheight":{"$numberInt":"758"},"outerwidth":{"$numberInt":"1440"}}}}}
{"_id":{"$oid":"fefaf668cf65c9156452791b"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.58","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1863"},"innerheight":{"$numberInt":"960"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fefac7cc072631e0ca490411"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1680"},"availheight":{"$numberInt":"1010"},"width":{"$numberInt":"1680"},"height":{"$numberInt":"1050"},"innerwidth":{"$numberInt":"1680"},"innerheight":{"$numberInt":"939"},"outerwidth":{"$numberInt":"1680"}}}}}
{"_id":{"$oid":"fef2813a151c1b34c29fc013"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42","screen":{"availwidth":{"$numberInt":"1536"},"availheight":{"$numberInt":"920"},"width":{"$numberInt":"1536"},"height":{"$numberInt":"960"},"innerwidth":{"$numberInt":"1482"},"innerheight":{"$numberInt":"818"},"outerwidth":{"$numberInt":"1536"}}}}}
{"_id":{"$oid":"feda6a14a1b5070e9ba86b00"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"1787"},"availheight":{"$numberInt":"960"},"width":{"$numberInt":"1787"},"height":{"$numberInt":"1005"},"innerwidth":{"$numberInt":"1787"},"innerheight":{"$numberInt":"834"},"outerwidth":{"$numberInt":"1796"}}}}}
{"_id":{"$oid":"fed341a58c021ee80bbba5cd"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"999"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"881"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fed30901d1d37847135b2808"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1160"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1200"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"1042"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fecd2b134e0ce2844cf05a71"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1745"},"innerheight":{"$numberInt":"874"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fec622d994e3c01b6eea9498"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"1600"},"availheight":{"$numberInt":"840"},"width":{"$numberInt":"1600"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1600"},"innerheight":{"$numberInt":"699"},"outerwidth":{"$numberInt":"1618"}}}}}
{"_id":{"$oid":"feb447f219c5d20319f87887"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1440"},"availheight":{"$numberInt":"860"},"width":{"$numberInt":"1440"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1440"},"innerheight":{"$numberInt":"789"},"outerwidth":{"$numberInt":"1440"}}}}}
{"_id":{"$oid":"feb403b7e4758c1513c086d7"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"927"},"outerwidth":{"$numberInt":"1936"}}}}}
{"_id":{"$oid":"fe9abb6ef85a33ac64bed638"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1872"},"innerheight":{"$numberInt":"909"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fe933d80cfc6cf8c804544c2"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1366"},"availheight":{"$numberInt":"728"},"width":{"$numberInt":"1366"},"height":{"$numberInt":"768"},"innerwidth":{"$numberInt":"1366"},"innerheight":{"$numberInt":"657"},"outerwidth":{"$numberInt":"1366"}}}}}
{"_id":{"$oid":"fe8c8ca27f55536539043d80"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"927"},"outerwidth":{"$numberInt":"1936"}}}}}
{"_id":{"$oid":"fe85729022a21f427f0d0a69"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1018"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"900"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fe7e74e25dfaae4810e3f28f"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"999"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"2133"},"innerheight":{"$numberInt":"995"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fe7d13dfa1852932d6e0f379"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1536"},"availheight":{"$numberInt":"824"},"width":{"$numberInt":"1536"},"height":{"$numberInt":"864"},"innerwidth":{"$numberInt":"1536"},"innerheight":{"$numberInt":"754"},"outerwidth":{"$numberInt":"0"}}}}}
{"_id":{"$oid":"fe51bf955d25de51ed17807a"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1914"},"innerheight":{"$numberInt":"936"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fe488004911dbde5660c6d09"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"927"},"outerwidth":{"$numberInt":"1936"}}}}}
{"_id":{"$oid":"fe3a0ad6e88f82403af02118"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"936"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fe2e9fb88b4786446e968038"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35","screen":{"availwidth":{"$numberInt":"1440"},"availheight":{"$numberInt":"920"},"width":{"$numberInt":"1440"},"height":{"$numberInt":"960"},"innerwidth":{"$numberInt":"1385"},"innerheight":{"$numberInt":"849"},"outerwidth":{"$numberInt":"1440"}}}}}
{"_id":{"$oid":"fe28edc709b878175499d4b0"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1745"},"innerheight":{"$numberInt":"845"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fe27867455fcc0596895c9a3"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1600"},"availheight":{"$numberInt":"870"},"width":{"$numberInt":"1600"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1600"},"innerheight":{"$numberInt":"767"},"outerwidth":{"$numberInt":"1600"}}}}}
{"_id":{"$oid":"fe2649e3dd21df49838ccf79"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"672"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"720"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"854"},"outerwidth":{"$numberInt":"1280"}}}}}
{"_id":{"$oid":"fe24325ffb53f092f0e73127"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.197.400 QQBrowser/11.7.5287.400","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"944"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fe0ceddb5bff60ff56064eb4"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"752"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"800"},"innerwidth":{"$numberInt":"1280"},"innerheight":{"$numberInt":"681"},"outerwidth":{"$numberInt":"1280"}}}}}
{"_id":{"$oid":"fe0a3b93107c5e2cc317972c"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1440"},"availheight":{"$numberInt":"870"},"width":{"$numberInt":"1440"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1440"},"innerheight":{"$numberInt":"752"},"outerwidth":{"$numberInt":"1440"}}}}}
{"_id":{"$oid":"fe0976588f1b436737568c53"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fdff0af32e22b63e1a53118a"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1270"},"innerheight":{"$numberInt":"750"},"outerwidth":{"$numberInt":"1270"}}}}}
{"_id":{"$oid":"fdecc52214790c56946b186e"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1440"},"availheight":{"$numberInt":"860"},"width":{"$numberInt":"1440"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1440"},"innerheight":{"$numberInt":"703"},"outerwidth":{"$numberInt":"1440"}}}}}
{"_id":{"$oid":"fdd440d365e417f29b61e094"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1366"},"availheight":{"$numberInt":"728"},"width":{"$numberInt":"1366"},"height":{"$numberInt":"768"},"innerwidth":{"$numberInt":"1813"},"innerheight":{"$numberInt":"832"},"outerwidth":{"$numberInt":"1366"}}}}}
{"_id":{"$oid":"fdd368020337e390b5ca93fe"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"922"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fdd092a300129f23469ddb68"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"672"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"720"},"innerwidth":{"$numberInt":"1280"},"innerheight":{"$numberInt":"569"},"outerwidth":{"$numberInt":"1280"}}}}}
{"_id":{"$oid":"fdcf1a4d2cdc9afdca7373a6"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36","screen":{"availwidth":{"$numberInt":"1536"},"availheight":{"$numberInt":"824"},"width":{"$numberInt":"1536"},"height":{"$numberInt":"864"},"innerwidth":{"$numberInt":"1230"},"innerheight":{"$numberInt":"902"},"outerwidth":{"$numberInt":"999"}}}}}
{"_id":{"$oid":"fdc145f40b4135071df87f5e"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1366"},"availheight":{"$numberInt":"728"},"width":{"$numberInt":"1366"},"height":{"$numberInt":"768"},"innerwidth":{"$numberInt":"1360"},"innerheight":{"$numberInt":"624"},"outerwidth":{"$numberInt":"1366"}}}}}
{"_id":{"$oid":"fdbf9823395f7d02ad3f16c7"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1366"},"availheight":{"$numberInt":"728"},"width":{"$numberInt":"1366"},"height":{"$numberInt":"768"},"innerwidth":{"$numberInt":"1366"},"innerheight":{"$numberInt":"625"},"outerwidth":{"$numberInt":"1366"}}}}}
{"_id":{"$oid":"fdbce913e3fec7b08dc7740d"},"env":{"arg100":{"ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"741"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"800"},"innerwidth":{"$numberInt":"1240"},"innerheight":{"$numberInt":"679"},"outerwidth":{"$numberInt":"1240"}}}}}
{"_id":{"$oid":"fdb373ca3acd637cde2f54e8"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"916"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fdb11e836271381ca1fee78b"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"899"},"outerwidth":{"$numberInt":"1936"}}}}}
{"_id":{"$oid":"fdad6dbc4714fdff4f6ce85d"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"908"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fda27c202f98b451070a713d"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1914"},"innerheight":{"$numberInt":"936"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fd9f83b8135f7f4f9122f5c0"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1536"},"availheight":{"$numberInt":"816"},"width":{"$numberInt":"1536"},"height":{"$numberInt":"864"},"innerwidth":{"$numberInt":"1536"},"innerheight":{"$numberInt":"692"},"outerwidth":{"$numberInt":"1536"}}}}}
{"_id":{"$oid":"fd9ceaa0f06c3cf7ffa6cff3"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1018"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"899"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fd966083eb5b4b26927f2657"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"940"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fd947f3584fd0d9c30916989"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1280"},"availheight":{"$numberInt":"770"},"width":{"$numberInt":"1280"},"height":{"$numberInt":"800"},"innerwidth":{"$numberInt":"2560"},"innerheight":{"$numberInt":"1334"},"outerwidth":{"$numberInt":"1280"}}}}}
{"_id":{"$oid":"fd8e1db7556e9fb833a0e69f"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1872"},"innerheight":{"$numberInt":"938"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fd8684f14f10e29cd3d44f7e"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.58","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1863"},"innerheight":{"$numberInt":"961"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fd843aa22187dca878cb853d"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1536"},"availheight":{"$numberInt":"864"},"width":{"$numberInt":"1536"},"height":{"$numberInt":"864"},"innerwidth":{"$numberInt":"1536"},"innerheight":{"$numberInt":"760"},"outerwidth":{"$numberInt":"1536"}}}}}
{"_id":{"$oid":"fd73e33fd4e56328e896c862"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.62","screen":{"availwidth":{"$numberInt":"1600"},"availheight":{"$numberInt":"860"},"width":{"$numberInt":"1600"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1725"},"innerheight":{"$numberInt":"841"},"outerwidth":{"$numberInt":"1600"}}}}}
{"_id":{"$oid":"fd720e052f41ca06b079cd43"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1366"},"availheight":{"$numberInt":"728"},"width":{"$numberInt":"1366"},"height":{"$numberInt":"768"},"innerwidth":{"$numberInt":"1821"},"innerheight":{"$numberInt":"773"},"outerwidth":{"$numberInt":"1366"}}}}}
{"_id":{"$oid":"fd6ff7779d3dc775da97c819"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"929"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fd6d1a0f720d1b8a46ff1b96"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1386"},"innerheight":{"$numberInt":"878"},"outerwidth":{"$numberInt":"1386"}}}}}
{"_id":{"$oid":"fd6c995379c630cb0ea6d04c"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1366"},"availheight":{"$numberInt":"728"},"width":{"$numberInt":"1366"},"height":{"$numberInt":"768"},"innerwidth":{"$numberInt":"1366"},"innerheight":{"$numberInt":"657"},"outerwidth":{"$numberInt":"1366"}}}}}
{"_id":{"$oid":"fd6c6d5aaedec02542997150"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0","screen":{"availwidth":{"$numberInt":"1596"},"availheight":{"$numberInt":"1003"},"width":{"$numberInt":"1596"},"height":{"$numberInt":"1064"},"innerwidth":{"$numberInt":"1596"},"innerheight":{"$numberInt":"860"},"outerwidth":{"$numberInt":"1591"}}}}}
{"_id":{"$oid":"fd50d92ae3ceadb4a80d5277"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"916"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fd1561d8adbb05f1ba0885c2"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.100","screen":{"availwidth":{"$numberInt":"1600"},"availheight":{"$numberInt":"860"},"width":{"$numberInt":"1600"},"height":{"$numberInt":"900"},"innerwidth":{"$numberInt":"1600"},"innerheight":{"$numberInt":"789"},"outerwidth":{"$numberInt":"1600"}}}}}
{"_id":{"$oid":"fd0e7734f57e30c118e5f92e"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.100","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1873"},"innerheight":{"$numberInt":"969"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fd058403350fa5231677bf15"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1419"},"innerheight":{"$numberInt":"701"},"outerwidth":{"$numberInt":"160"}}}}}
{"_id":{"$oid":"fcf53de64a24dd246a90ca36"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.68","screen":{"availwidth":{"$numberInt":"1536"},"availheight":{"$numberInt":"816"},"width":{"$numberInt":"1536"},"height":{"$numberInt":"864"},"innerwidth":{"$numberInt":"1479"},"innerheight":{"$numberInt":"746"},"outerwidth":{"$numberInt":"1536"}}}}}
{"_id":{"$oid":"fcf2c317efc6d2ec34f1aa16"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1865"},"innerheight":{"$numberInt":"969"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fcede9e7906dda1ea47abd09"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1876"},"innerheight":{"$numberInt":"944"},"outerwidth":{"$numberInt":"1876"}}}}}
{"_id":{"$oid":"fced080e7725a24672c57323"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1050"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"947"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fce9201a30bc8506438fc055"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1914"},"innerheight":{"$numberInt":"936"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fce8552043414e83a52685a5"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1032"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"2258"},"innerheight":{"$numberInt":"1135"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fce7d44d21701c1af4c2c422"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.64","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fce3635d559eaebb2a64e6d8"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1366"},"availheight":{"$numberInt":"728"},"width":{"$numberInt":"1366"},"height":{"$numberInt":"768"},"innerwidth":{"$numberInt":"1366"},"innerheight":{"$numberInt":"657"},"outerwidth":{"$numberInt":"1366"}}}}}
{"_id":{"$oid":"fce1634626b00cb909a36d3f"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35","screen":{"availwidth":{"$numberInt":"1536"},"availheight":{"$numberInt":"816"},"width":{"$numberInt":"1536"},"height":{"$numberInt":"864"},"innerwidth":{"$numberInt":"1419"},"innerheight":{"$numberInt":"738"},"outerwidth":{"$numberInt":"1488"}}}}}
{"_id":{"$oid":"fcde113139997f70f95dabed"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"2560"},"availheight":{"$numberInt":"1440"},"width":{"$numberInt":"2560"},"height":{"$numberInt":"1440"},"innerwidth":{"$numberInt":"2578"},"innerheight":{"$numberInt":"1016"},"outerwidth":{"$numberInt":"2337"}}}}}
{"_id":{"$oid":"fcd451c87b1b7ceed9e7ec85"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.95 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1872"},"innerheight":{"$numberInt":"909"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fcd1ccd788d02faa67d1154c"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1603"},"availheight":{"$numberInt":"854"},"width":{"$numberInt":"1603"},"height":{"$numberInt":"902"},"innerwidth":{"$numberInt":"1604"},"innerheight":{"$numberInt":"783"},"outerwidth":{"$numberInt":"1603"}}}}}
{"_id":{"$oid":"fcc86b48485ae28e0b716c65"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
{"_id":{"$oid":"fcc3dc2d589ff23cf8a6e18f"},"env":{"arg100":{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36","screen":{"availwidth":{"$numberInt":"1920"},"availheight":{"$numberInt":"1040"},"width":{"$numberInt":"1920"},"height":{"$numberInt":"1080"},"innerwidth":{"$numberInt":"1920"},"innerheight":{"$numberInt":"937"},"outerwidth":{"$numberInt":"1920"}}}}}
# This is a sample Python script.
# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
def print_hi(name):
# Use a breakpoint in the code line below to debug your script.
print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint.
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print_hi('PyCharm')
# See PyCharm help at https://www.jetbrains.com/help/pycharm/
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
window = global;
createPrototype = function (name, obj) {
Object.assign(obj, {
constructor: function (){},
// name: name,
prototype: {
get function(){
},
toString: function () {
return `'function ${name}() { [native code] }'`
// throw new TypeError('Illegal invocation')
}
},
toString: function () {
return `'function ${name}() { [native code] }'`
}
})
// Object.defineProperty(obj.prototype, {
// [Symbol.toStringTag]: {value:name,writable:false,enumerable:false,configurable:true},
// prototype: {
// toString: function (){
// return `'function ${name}() { [native code] }'`
// // throw new TypeError('Illegal invocation')
// }
// },
// })
return obj
}
window.CustomEvent = createPrototype('CustomEvent', {
initCustomEvent: function (){
debugger
}
})
Object.defineProperties(window.CustomEvent, {
detail: {
},
constructor: {
value: function () {},
writable: true, enumerable: false, configurable: true
},
[Symbol.iterator]: {
value: function (){}
},
[Symbol.toStringTag]: {
value:function () {
}
}
})
Object.defineProperties(window.CustomEvent.prototype, {
detail: {
get :function (){},
set :function (){},
enumerable: true, configurable: true,
},
constructor: {
value: function () {},
writable: true, enumerable: false, configurable: true
},
[Symbol.iterator]: {
value: function (){}
},
[Symbol.toStringTag]: {
value:function () {
}
}
})
var v_saf;!function(){var n=Function.toString,t=[],i=[],o=[].indexOf.bind(t),e=[].push.bind(t),r=[].push.bind(i);function u(n,t){return-1==o(n)&&(e(n),r(`function ${t||n.name||""}() { [native code] }`)),n}Object.defineProperty(Function.prototype,"toString",{enumerable:!1,configurable:!0,writable:!0,value:function(){return"function"==typeof this&&i[o(this)]||n.call(this)}}),u(Function.prototype.toString,"toString"),v_saf=u}();
function _inherits(t, e) {
t.prototype = Object.create(e.prototype, {
constructor: { value: t, writable: true, configurable: true }
}), e && Object.setPrototypeOf(t, e) }
// Object.defineProperty(Object.prototype, Symbol.toStringTag, {
// get() { return Object.getPrototypeOf(this).constructor.name }
// });
// Object.defineProperty(window.CustomEvent.prototype.detail, 'get', {
// value: function(){}
// })
EventTarget = v_saf(function EventTarget(){;})
Screen = v_saf(function Screen(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Screen, EventTarget)
Object.defineProperties(Screen.prototype, {
availWidth: { enumerable: true, configurable: true},
availHeight: { enumerable: true, configurable: true},
width: {set:undefined,get:function width() { throw TypeError("legal invocation")}, enumerable: true, configurable: true},
height: { enumerable: true, configurable: true},
colorDepth: { enumerable: true, configurable: true},
pixelDepth: { enumerable: true, configurable: true},
availLeft: { enumerable: true, configurable: true},
availTop: { enumerable: true, configurable: true},
orientation: { enumerable: true, configurable: true},
onchange: { enumerable: true, configurable: true},
isExtended: { enumerable: true, configurable: true},
[Symbol.toStringTag]: {value:"Screen",writable:false,enumerable:false,configurable:true},
})
// Object.defineProperty(Screen.prototype, 'width', {
// value: function (){
// throw TypeError("Illegal constructor")
// },
// set:undefined,get:function () {}, enumerable: true, configurable: true
// })
console.log(Screen.prototype.width)
console.log(Object.getOwnPropertyDescriptor(Screen.prototype, 'width'))
\ No newline at end of file
package main
import (
"encoding/binary"
"strconv"
)
type Encoding struct {
encode [64]byte
decodeMap [256]byte
padChar rune
strict bool
}
const (
StdPadding rune = '=' // Standard padding character
NoPadding rune = -1 // No padding
decodeMapInitialize = "" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" +
"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
)
const encodeStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
const encodeURL = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
func (enc *Encoding) Encode(dst, src []byte) {
if len(src) == 0 {
return
}
// enc is a pointer receiver, so the use of enc.encode within the hot
// loop below means a nil check at every operation. Lift that nil check
// outside of the loop to speed up the encoder.
_ = enc.encode
di, si := 0, 0
n := (len(src) / 3) * 3
for si < n {
// Convert 3x 8bit source bytes into 4 bytes
val := uint(src[si+0])<<16 | uint(src[si+1])<<8 | uint(src[si+2])
dst[di+0] = enc.encode[val>>18&0x3F]
dst[di+1] = enc.encode[val>>12&0x3F]
dst[di+2] = enc.encode[val>>6&0x3F]
dst[di+3] = enc.encode[val&0x3F]
si += 3
di += 4
}
remain := len(src) - si
if remain == 0 {
return
}
// Add the remaining small block
val := uint(src[si+0]) << 16
if remain == 2 {
val |= uint(src[si+1]) << 8
}
dst[di+0] = enc.encode[val>>18&0x3F]
dst[di+1] = enc.encode[val>>12&0x3F]
switch remain {
case 2:
dst[di+2] = enc.encode[val>>6&0x3F]
if enc.padChar != NoPadding {
dst[di+3] = byte(enc.padChar)
}
case 1:
if enc.padChar != NoPadding {
dst[di+2] = byte(enc.padChar)
dst[di+3] = byte(enc.padChar)
}
}
}
// EncodeToString returns the base64 encoding of src.
func (enc *Encoding) EncodeToString(src []byte) string {
buf := make([]byte, enc.EncodedLen(len(src)))
enc.Encode(buf, src)
return string(buf)
}
func (enc *Encoding) EncodedLen(n int) int {
if enc.padChar == NoPadding {
return (n*8 + 5) / 6 // minimum # chars at 6 bits per char
}
return (n + 2) / 3 * 4 // minimum # 4-char quanta, 3 bytes each
}
func NewEncoding(encoder string) *Encoding {
if len(encoder) != 64 {
panic("encoding alphabet is not 64-bytes long")
}
for i := 0; i < len(encoder); i++ {
if encoder[i] == '\n' || encoder[i] == '\r' {
panic("encoding alphabet contains newline character")
}
}
e := new(Encoding)
e.padChar = NoPadding
copy(e.encode[:], encoder)
copy(e.decodeMap[:], decodeMapInitialize)
for i := 0; i < len(encoder); i++ {
e.decodeMap[encoder[i]] = byte(i)
}
return e
}
func (enc *Encoding) DecodeString(s string) ([]byte, error) {
dbuf := make([]byte, enc.DecodedLen(len(s)))
n, err := enc.Decode(dbuf, []byte(s))
return dbuf[:n], err
}
// assemble32 assembles 4 base64 digits into 3 bytes.
// Each digit comes from the decode map, and will be 0xff
// if it came from an invalid character.
func assemble32(n1, n2, n3, n4 byte) (dn uint32, ok bool) {
// Check that all the digits are valid. If any of them was 0xff, their
// bitwise OR will be 0xff.
if n1|n2|n3|n4 == 0xff {
return 0, false
}
return uint32(n1)<<26 |
uint32(n2)<<20 |
uint32(n3)<<14 |
uint32(n4)<<8,
true
}
// assemble64 assembles 8 base64 digits into 6 bytes.
// Each digit comes from the decode map, and will be 0xff
// if it came from an invalid character.
func assemble64(n1, n2, n3, n4, n5, n6, n7, n8 byte) (dn uint64, ok bool) {
// Check that all the digits are valid. If any of them was 0xff, their
// bitwise OR will be 0xff.
if n1|n2|n3|n4|n5|n6|n7|n8 == 0xff {
return 0, false
}
return uint64(n1)<<58 |
uint64(n2)<<52 |
uint64(n3)<<46 |
uint64(n4)<<40 |
uint64(n5)<<34 |
uint64(n6)<<28 |
uint64(n7)<<22 |
uint64(n8)<<16,
true
}
func (enc *Encoding) Decode(dst, src []byte) (n int, err error) {
if len(src) == 0 {
return 0, nil
}
// Lift the nil check outside of the loop. enc.decodeMap is directly
// used later in this function, to let the compiler know that the
// receiver can't be nil.
_ = enc.decodeMap
si := 0
for strconv.IntSize >= 64 && len(src)-si >= 8 && len(dst)-n >= 8 {
src2 := src[si : si+8]
if dn, ok := assemble64(
enc.decodeMap[src2[0]],
enc.decodeMap[src2[1]],
enc.decodeMap[src2[2]],
enc.decodeMap[src2[3]],
enc.decodeMap[src2[4]],
enc.decodeMap[src2[5]],
enc.decodeMap[src2[6]],
enc.decodeMap[src2[7]],
); ok {
binary.BigEndian.PutUint64(dst[n:], dn)
n += 6
si += 8
} else {
var ninc int
si, ninc, err = enc.decodeQuantum(dst[n:], src, si)
n += ninc
if err != nil {
return n, err
}
}
}
for len(src)-si >= 4 && len(dst)-n >= 4 {
src2 := src[si : si+4]
if dn, ok := assemble32(
enc.decodeMap[src2[0]],
enc.decodeMap[src2[1]],
enc.decodeMap[src2[2]],
enc.decodeMap[src2[3]],
); ok {
binary.BigEndian.PutUint32(dst[n:], dn)
n += 3
si += 4
} else {
var ninc int
si, ninc, err = enc.decodeQuantum(dst[n:], src, si)
n += ninc
if err != nil {
return n, err
}
}
}
for si < len(src) {
var ninc int
si, ninc, err = enc.decodeQuantum(dst[n:], src, si)
n += ninc
if err != nil {
return n, err
}
}
return n, err
}
// corresponding to n bytes of base64-encoded data.
func (enc *Encoding) DecodedLen(n int) int {
if enc.padChar == NoPadding {
// Unpadded data may end with partial block of 2-3 characters.
return n * 6 / 8
}
// Padded base64 should always be a multiple of 4 characters in length.
return n / 4 * 3
}
type CorruptInputError int64
func (e CorruptInputError) Error() string {
return "illegal base64 data at input byte " + strconv.FormatInt(int64(e), 10)
}
func (enc *Encoding) decodeQuantum(dst, src []byte, si int) (nsi, n int, err error) {
// Decode quantum using the base64 alphabet
var dbuf [4]byte
dlen := 4
// Lift the nil check outside of the loop.
_ = enc.decodeMap
for j := 0; j < len(dbuf); j++ {
if len(src) == si {
switch {
case j == 0:
return si, 0, nil
case j == 1, enc.padChar != NoPadding:
return si, 0, CorruptInputError(si - j)
}
dlen = j
break
}
in := src[si]
si++
out := enc.decodeMap[in]
if out != 0xff {
dbuf[j] = out
continue
}
if in == '\n' || in == '\r' {
j--
continue
}
if rune(in) != enc.padChar {
return si, 0, CorruptInputError(si - 1)
}
// We've reached the end and there's padding
switch j {
case 0, 1:
// incorrect padding
return si, 0, CorruptInputError(si - 1)
case 2:
// "==" is expected, the first "=" is already consumed.
// skip over newlines
for si < len(src) && (src[si] == '\n' || src[si] == '\r') {
si++
}
if si == len(src) {
// not enough padding
return si, 0, CorruptInputError(len(src))
}
if rune(src[si]) != enc.padChar {
// incorrect padding
return si, 0, CorruptInputError(si - 1)
}
si++
}
// skip over newlines
for si < len(src) && (src[si] == '\n' || src[si] == '\r') {
si++
}
if si < len(src) {
// trailing garbage
err = CorruptInputError(si)
}
dlen = j
break
}
// Convert 4x 6bit source bytes into 3 bytes
val := uint(dbuf[0])<<18 | uint(dbuf[1])<<12 | uint(dbuf[2])<<6 | uint(dbuf[3])
dbuf[2], dbuf[1], dbuf[0] = byte(val>>0), byte(val>>8), byte(val>>16)
switch dlen {
case 4:
dst[2] = dbuf[2]
dbuf[2] = 0
fallthrough
case 3:
dst[1] = dbuf[1]
if enc.strict && dbuf[2] != 0 {
return si, 0, CorruptInputError(si - 1)
}
dbuf[1] = 0
fallthrough
case 2:
dst[0] = dbuf[0]
if enc.strict && (dbuf[1] != 0 || dbuf[2] != 0) {
return si, 0, CorruptInputError(si - 2)
}
}
return si, dlen - 1, err
}
func main() {
std := "BXla8YOr4V2kxHMQcFf-SZAvim5dThL7_ENRbp=uIt9oGDgy1sKzj0Pnwqe3C6JW"
println(std[35:36])
println(len(std))
var StdEncoding = NewEncoding(std)
tt := []byte{251, 240, 245, 165, 251, 240, 245, 165, 146, 50, 107, 240, 187, 186, 216, 244, 88, 89, 131, 6, 3, 188, 143, 115, 97, 23, 193, 228, 84, 42, 55, 86, 22, 136, 77, 3, 24, 155, 208, 105, 96, 122, 131, 228, 212, 242, 78, 135, 212, 126, 120, 232, 189, 233, 127, 190, 232, 124, 151, 202, 136, 113, 143, 184, 37, 247, 143, 218, 80, 56, 114, 252, 151, 180, 22, 5, 109, 116, 78, 93, 219, 202, 104, 93, 214, 178, 243, 78, 245, 132, 109, 220, 139, 21, 143, 140, 49, 179, 59, 134, 187, 122, 8, 150, 130, 69, 45, 65, 40, 87, 105, 134, 37, 224, 8, 168, 207, 16, 85, 68, 4, 98, 41, 249, 3, 38, 84, 17, 233, 3, 36, 50, 80, 243, 122, 179, 65, 229, 244, 110, 63, 27, 221, 4, 167, 207, 220, 125, 123, 189, 81, 173, 197, 10, 148, 237, 100, 223, 217, 145, 200, 186, 115, 179, 135, 191, 233, 89, 151, 78, 35, 91, 60, 144, 141, 226, 185, 191, 192, 69, 88, 83, 161, 253, 63, 252, 59, 23, 24, 51, 179, 46, 81, 218, 66, 135, 230, 145, 182, 122, 23, 109, 55, 194, 125, 184, 22, 248, 229, 107, 6, 127, 48, 70, 126, 54, 150, 114, 181, 122, 168, 16, 248, 228, 189, 20, 163, 110, 20, 73, 165, 249, 147, 214, 171, 82, 217, 14, 189, 129, 193, 56, 91, 36, 20, 5, 38, 28, 99, 162, 125, 68, 26, 105, 136, 85, 32, 184, 173, 125, 156, 213, 151, 137, 81, 215, 83, 64, 105, 14, 149, 238, 106, 62, 39, 118, 119, 66, 19, 253, 198, 253, 157, 36, 230, 243, 41, 107, 201, 207, 232, 162, 48, 127, 33, 248, 78, 129, 192, 228, 139, 57, 195, 95, 181, 118, 203, 182, 219, 157, 66, 34, 50, 91, 235, 74, 52, 171, 20, 3, 53, 36, 147, 22, 185, 157, 126, 42, 37, 144, 220, 83, 164, 255, 185, 53, 70, 241, 136, 38, 12, 134, 166, 188, 52, 107, 215, 5, 7, 41, 226, 139, 160, 161, 20, 90, 61, 66, 175, 211, 114, 79, 1, 200, 193, 82, 226, 5, 83, 106, 135, 138, 71, 37, 84, 245, 207, 29, 170, 58, 120, 62, 41, 196, 222, 137, 222, 253, 121, 191, 122, 111, 63, 106, 195, 222, 155, 188, 248, 164, 211, 219, 112, 102, 149, 10, 252, 146, 213, 248, 170, 28, 42, 218, 169, 189, 203, 183, 93, 19, 143, 1, 129, 247, 48, 246, 129, 43, 75, 169, 179, 4, 186, 190, 26, 62, 117, 85, 231, 243, 212, 141, 214, 163, 89, 45, 156, 237, 169, 218, 78, 164, 9, 252, 16, 229, 46, 16, 120, 41, 12, 205, 244, 130, 218, 237, 232, 64, 40, 50, 184, 101, 174, 60, 60, 122, 195, 79, 198, 191, 133, 119, 100, 92, 93, 215, 156, 45, 132, 193, 21, 114, 154, 90, 196, 208, 143, 80, 98, 180, 81, 246, 146, 121, 178, 161, 55, 34, 207, 90, 155, 30, 66, 90, 253, 135, 102, 251, 69, 91, 162, 170, 116, 60, 190, 87, 70, 106, 157, 102, 162, 36, 57, 208, 86, 118, 61, 74, 65, 118, 177, 139, 168, 244, 25, 92, 45, 242, 254, 52, 187, 201, 103, 236, 39, 79, 223, 51, 209, 7, 184, 102, 47, 15, 95, 235, 218, 198, 124, 42, 19, 17, 19, 235, 0, 108, 241, 19, 150, 162, 181, 56, 247, 225, 45, 21, 102, 91, 90, 28, 215, 129, 0, 195, 134, 174, 166, 245, 58, 129, 188, 46, 237, 222, 19, 117, 69, 237, 238, 242, 77, 208, 160, 98, 120, 110, 153, 233, 22, 153, 138, 118, 212, 206, 192, 107, 185, 171, 103, 16, 110, 241, 37, 106, 79, 2, 176, 212, 135, 151, 33, 26, 18, 254, 150, 51, 101, 58, 199, 235, 244, 115, 207, 130, 205, 0, 224, 209, 69, 103, 110, 146, 39, 136, 82, 128, 235, 128, 238, 192, 249, 6, 131, 21, 9, 29, 230, 182, 87, 168, 28, 126, 91, 176, 23, 73, 192, 136, 248, 220, 3, 141, 55, 148, 40, 223, 115, 247, 229, 217, 9, 99, 23, 168, 248, 22, 38, 29, 15, 13, 68, 185, 165, 194, 218, 170, 106, 30, 62, 220, 191, 64, 72, 185, 178, 42, 243, 44, 140, 68, 32, 18, 150, 23, 105, 234, 91, 157, 195, 141, 106, 109, 157, 127, 218, 0, 96, 148, 7, 44, 21, 226, 5, 67, 248, 26, 9, 122, 199, 235, 60, 125, 97, 186, 25, 238, 18, 223, 218, 66, 253, 209, 165, 77, 40, 50, 154, 30, 132, 63, 75, 249, 112, 213, 89, 73, 102, 80, 16, 250, 210, 204, 179, 55, 234, 83, 56, 170, 201, 145, 183, 225, 31, 1, 250, 4, 6, 226, 194, 17, 154, 201, 152, 83, 126, 101, 27, 121, 130, 128, 55, 118, 173, 90, 194, 140, 8, 94, 95, 135, 235, 15, 145, 20, 186, 222, 163, 100, 182, 102, 50, 208, 13, 41, 89, 126, 164, 126, 42, 72, 175, 82, 116, 190, 29, 204, 170, 111, 54, 2, 125, 201, 165, 121, 170, 226, 47, 243, 27, 167, 43, 31, 34, 149, 80, 8, 126, 82, 179, 208, 69, 243, 232, 100, 146, 13, 89, 176, 41, 204, 136, 21, 178, 35, 250, 49, 13, 252, 21, 67, 98, 122, 28, 216, 24, 35, 221, 154, 91, 146, 89, 244, 89, 90, 151, 65, 1, 16, 145, 67, 123, 111, 82, 232, 218, 48, 21, 49, 147, 73, 224, 142, 109, 217, 154, 21, 35, 9, 192, 33, 123, 45, 127, 45, 226, 199, 172, 78, 56, 187, 74, 139, 38, 247, 52, 44, 140, 220, 172, 13, 151, 7, 194, 29, 242, 194, 128, 215, 158, 172, 151, 157, 148, 241, 138, 237, 241, 238, 0, 129, 176, 153, 202, 245, 72, 18, 115, 243, 180, 53, 133, 205, 42, 123, 209, 149, 242, 97, 124, 78, 156, 83, 130, 211, 156, 15, 176, 87, 144, 174, 11, 5, 67, 168, 73, 65, 18, 147, 170, 178, 84, 180, 85, 201, 221, 244, 124, 123, 144, 223, 235, 5, 227, 23, 138, 194, 87, 191, 146, 240, 24, 204, 77, 54, 225, 55, 17, 17, 110, 70, 110, 77, 116, 116, 223, 35, 18, 21, 206, 65, 115, 22, 175, 66, 223, 100, 113, 158, 252, 235, 110, 232, 38, 95, 12, 174, 149, 80, 28, 197, 196, 73, 243, 84, 123, 67, 12, 180, 98, 163, 136, 83, 184, 4, 175, 239, 203, 108, 119, 151, 53, 38, 211, 42, 187, 187, 62, 126, 141, 23, 74, 111, 6, 46, 99, 29, 180, 63, 163, 101, 98, 31, 211, 123, 123, 229, 134, 9, 154, 117, 73, 85, 36, 219, 74, 143, 7, 1, 143, 173, 176, 184, 186, 127, 119, 4, 184, 162, 190, 73, 207, 5, 246, 165, 225, 150, 46, 184, 69, 197, 82, 107, 232, 9, 11, 9, 104, 208, 18, 161, 223, 72, 178, 210, 181, 61, 206, 63, 215, 244, 163, 110, 193, 53, 198, 235, 174, 97, 144, 48, 240, 59, 97, 230, 214, 91, 11, 150, 171, 133, 76, 243, 41, 217, 253, 65, 18, 252, 125, 15, 142, 203, 104, 5, 21, 102, 79, 127, 215, 227, 229, 78, 211, 179, 144, 237, 140, 61, 112, 207, 126, 196, 91, 153, 169, 110, 251, 161, 19, 151, 155, 114, 235, 78, 3, 178, 125, 17, 214, 67, 63, 138, 100, 8, 203, 158, 190, 13, 211, 148, 184, 98, 118, 226, 178, 106, 116, 100, 239, 81, 71, 27, 223, 216, 105, 13, 0, 106, 116, 111, 137, 11, 72, 239, 77, 132, 112, 196, 11, 117, 218, 41, 146, 119, 176, 1, 77, 20}
//tt = []byte{152, 152, 173, 13, 213, 89, 176, 163, 211, 233, 0, 72, 149, 64, 235, 246, 173, 206, 185, 63, 223, 157, 147, 212, 152, 7, 11, 80, 213, 54, 128, 56, 214, 101, 166, 91, 85, 209, 90, 77, 35, 144, 180, 25, 38, 32, 202, 139, 87, 206, 35, 36, 187, 166, 229, 59, 98, 238, 108, 10, 89, 140, 95, 11, 231, 19, 3, 115, 225, 84, 42, 216, 116, 17, 254, 178, 133, 177, 214, 99, 203, 70, 218, 231, 66, 154, 210, 139, 169, 169, 168, 14, 61, 88, 246, 109, 144, 101, 32, 83, 211, 124, 28, 86, 144, 148, 198, 100, 190, 219, 255, 82, 79, 134, 224, 221, 40, 8, 78, 73, 151, 96, 210, 205, 179, 15, 57, 1, 237, 101, 4, 249, 181, 156, 45, 38, 237, 165, 33, 81, 112, 7, 199, 204, 174, 32, 77, 208, 97, 40, 77, 110, 201, 239, 118, 187, 218, 8, 107, 105, 73, 236, 179, 153, 42, 254, 36, 52, 74, 95, 218, 21, 199, 54, 11, 227, 165, 33, 58, 218, 131, 143, 66, 105, 128, 213, 13, 236, 145, 83, 227, 172, 183, 82, 216, 75, 38, 1, 64, 204, 236, 188, 24, 147, 162, 162, 25, 86, 142, 17, 5, 86, 67, 56, 34, 155, 45, 193, 203, 158, 219, 192, 38, 89, 131, 207, 202, 169, 206, 238, 244, 140, 94, 199, 222, 40, 250, 135, 203, 48, 228, 234, 77, 245, 88, 120, 156, 246, 166, 188, 174, 134, 40, 27, 90, 165, 33, 220, 121, 159, 92, 205, 230, 216, 32, 18, 206, 192, 109, 148, 192, 3, 193, 104, 94, 165, 22, 218, 55, 4, 164, 176, 174, 18, 174, 225, 251, 62, 81, 211, 15, 176, 252, 184, 147, 215, 169, 57, 159, 174, 175, 124, 60, 133, 10, 239, 89, 83, 73, 118, 189, 83, 249, 204, 212, 68, 204, 211, 67, 128, 70, 133, 31, 217, 225, 239, 54, 223, 41, 97, 61, 163, 115, 29, 26, 95, 78, 158, 176, 10, 233, 141, 83, 33, 109, 42, 172, 62, 114, 34, 58, 32, 55, 254, 128, 77, 255, 92, 99, 253, 32, 207, 107, 117, 62, 64, 145, 169, 152, 202, 117, 216, 34, 159, 99, 112, 119, 76, 92, 200, 196, 158, 183, 237, 103, 73, 192, 174, 66, 228, 214, 251, 149, 236, 190, 242, 214, 92, 146, 211, 168, 145, 111, 0, 248, 146, 27, 198, 139, 154, 231, 189, 91, 30, 2, 83, 119, 148, 207, 170, 234, 108, 61, 225, 216, 137, 164, 195, 69, 150, 36, 103, 241, 107, 79, 203, 218, 51, 104, 221, 118, 128, 49, 116, 67, 89, 167, 244, 145, 56, 130, 105, 14, 72, 152, 192, 123, 88, 134, 224, 56, 159, 50, 30, 123, 0, 24, 244, 184, 133, 108, 3, 99, 229, 222, 208, 3, 22, 95, 225, 18, 114, 218, 191, 50, 162, 28, 34, 153, 239, 16, 227, 104, 70, 237, 238, 192, 153, 5, 52, 189, 91, 135, 77, 133, 120, 129, 40, 226, 233, 54, 87, 232, 72, 159, 68, 126, 68, 243, 157, 141, 194, 38, 182, 44, 22, 79, 127, 32, 48, 138, 179, 34, 3, 121, 211, 113, 105, 233, 23, 147, 150, 132, 4, 21, 224, 43, 237, 17, 78, 143, 161, 237, 78, 229, 120, 132, 19, 85, 171, 29, 208, 121, 250, 184, 201, 219, 54, 243, 32, 119, 146, 182, 221, 250, 67, 89, 37, 226, 201, 128, 46, 27, 24, 51, 63, 139, 155, 135, 91, 10, 72, 146, 162, 13, 239, 29, 121, 182, 89, 18, 37, 3, 250, 178, 172, 118, 144, 193, 202, 167, 211, 1, 221, 34, 114, 83, 121, 215, 18, 67, 166, 175, 52, 199, 2, 233, 169, 98, 13, 198, 44, 219, 121, 95, 51, 233, 109, 172, 96, 40, 76, 52, 235, 116, 58, 24, 248, 242, 249, 105, 205, 27, 116, 162, 235, 25, 198, 61, 232, 104, 130, 124, 225, 179, 54, 146, 174, 17, 101, 148, 253, 149, 32, 83, 140, 131, 47, 183, 142, 135, 166, 169, 92, 98, 136, 41, 61, 163, 66, 28, 176, 226, 151, 130, 77, 205, 91, 142, 97, 173, 216, 62, 80, 27, 101, 75, 59, 151, 206, 205, 15, 192, 116, 125, 73, 110, 194, 61, 66, 231, 18, 46, 107, 161, 38, 180, 18, 204, 34, 158, 200, 20, 242, 12, 196, 129, 171, 162, 100, 184, 60, 31, 8, 63, 137, 208, 94, 252, 12, 171, 160, 65, 32, 78, 124, 83, 171, 66, 26, 43, 86, 63, 244, 180, 162, 89, 104, 198, 142, 77, 240, 135, 109, 128, 192, 99, 39, 42, 236, 87, 100, 12, 71, 50, 67, 179, 206, 144, 24, 244, 89, 71, 187, 132, 18, 201, 86, 108, 237, 92, 10, 216, 148, 235, 110, 218, 231, 129, 168, 167, 232, 189, 48, 28, 228, 106, 97, 47, 73, 47, 209, 184, 108, 109, 221, 144, 161, 161, 67, 41, 120, 130, 136, 86, 234, 36, 99, 101, 59, 58, 42, 230, 126, 28, 89, 29, 198, 73, 182, 140, 14, 210, 195, 178, 10, 13, 144, 23, 170, 21, 134, 94, 188, 174, 174, 65, 232, 114, 237, 203, 227, 178, 64, 246, 172, 54, 201, 113, 115, 255, 250, 236, 45, 43, 168, 27, 39, 134, 82, 219, 40, 179, 37, 30, 180, 180, 192, 123, 65, 207, 57, 25, 140, 23, 102, 203, 203, 69, 10, 147, 130, 121, 55, 147, 1, 129, 157, 191, 96, 7, 99, 85, 196, 0, 66, 96, 167, 42, 40, 151, 209, 82, 205, 215, 71, 225, 154, 104, 146, 240, 88, 3, 194, 191, 62, 229, 185, 83, 214, 86, 246, 6, 161, 187, 70, 15, 80, 171, 71, 23, 183, 79, 104, 69, 232, 231, 114, 18, 129, 169, 86, 200, 227, 65, 177, 94, 19, 146, 198, 86, 82, 124, 81, 182, 165, 55, 120, 234, 138, 215, 110, 220, 215, 112, 143, 5, 206, 204, 87, 10, 205, 95, 224, 94, 217, 39, 137, 119, 191, 72, 11, 152, 198, 30, 57, 141, 12, 89, 27, 195, 227, 190, 252, 236, 134, 114, 185, 222, 234, 123, 76, 244, 159, 167, 165, 8, 172, 189, 171, 161, 169, 145, 92, 20, 149, 103, 68, 220, 76, 52, 118, 221, 87, 140, 215, 128, 65, 152, 42, 62, 160, 47, 64, 4, 21, 239, 95, 191, 9, 98, 57, 20, 125, 221, 228, 23, 69, 241, 63, 61, 110, 249, 75, 4, 176, 9, 188, 181, 202, 149, 227, 17, 29, 73, 157, 0, 12, 118, 218, 159, 170, 88, 133, 93, 185, 219, 77, 151, 169, 31, 173, 136, 3, 146, 124, 189, 101, 234, 135, 0, 19, 232, 241, 87, 224, 61, 164, 79, 0, 164, 240, 249, 213, 89, 103, 108, 80, 75, 168, 225, 179, 194, 214, 137, 34, 133, 154, 208, 30, 211, 58, 186, 115, 140, 35, 68, 86, 88, 158, 141, 118, 29, 124, 0, 136, 175, 4, 167, 64, 82, 17, 65, 60, 110, 147, 95, 101, 78, 212, 135, 124, 105, 234, 148, 128, 56, 33, 89, 148, 69, 127, 52, 142, 171, 236, 169, 74, 78, 160, 43, 192, 86, 77, 189, 219, 141, 94, 95, 6, 252, 72, 232, 115, 67, 168, 212, 185, 41, 249, 156, 140, 211, 12, 76, 63, 46, 65, 41, 232, 4, 53, 51, 1, 99, 143, 196, 60, 42, 2, 80, 5, 227, 35, 41, 54, 127, 114, 151, 52, 206, 51, 15, 193, 149, 65, 255, 4, 62, 150, 254, 53, 231, 182, 125, 217, 116, 62, 176, 13, 225, 107, 90, 43, 39, 252, 65, 12, 138, 86, 254}
//t2 := []byte{0, 0, 6, 116, 95, 183, 151, 92, 248, 0, 0, 0, 15, 34, 193, 235, 206, 97, 213, 231, 83, 33, 96, 77, 87, 232, 154, 95, 0, 13, 85, 59, 229, 243, 104, 178, 199, 234, 2, 63, 41, 194, 177, 0, 15, 65, 132, 224, 127, 237, 119, 71, 135, 162, 109, 33, 177, 82, 26, 156, 0, 0, 0, 28, 204, 235, 40, 223, 186, 187, 224, 123, 38, 45, 253, 156, 124, 163, 111, 25, 102, 67, 98, 241, 247, 212, 120, 238, 57, 189, 203, 163, 0, 0, 0, 30, 107, 160, 27, 140, 220, 33, 132, 95, 198, 108, 192, 146, 14, 154, 44, 167, 97, 91, 142, 3, 200, 32, 247, 95, 167, 26, 104, 66, 158, 168, 0, 0, 0, 0, 0, 5, 225, 98, 60, 85, 128, 0, 0, 0, 0, 0, 6, 225, 210, 160, 173, 145, 104, 0, 6, 0, 246, 58, 121, 27, 163, 0, 13, 10, 25, 179, 222, 188, 183, 135, 172, 104, 153, 184, 162, 132, 0, 0, 0, 5, 145, 52, 241, 84, 147, 0, 0, 0, 7, 141, 180, 234, 49, 107, 103, 91, 0, 0, 0, 7, 42, 33, 0, 247, 227, 42, 219, 0, 5, 145, 24, 254, 237, 174, 0, 0, 0, 9, 9, 151, 175, 223, 38, 19, 142, 168, 40, 0, 5, 230, 230, 64, 154, 76, 0, 13, 120, 219, 35, 152, 180, 219, 189, 89, 70, 200, 76, 51, 224, 0, 12, 5, 169, 156, 247, 149, 222, 96, 129, 105, 231, 25, 2, 0, 0, 0, 0, 0, 7, 24, 44, 236, 230, 224, 245, 173, 0, 0, 0, 94, 201, 7, 84, 81, 106, 196, 246, 183, 73, 40, 46, 38, 56, 196, 196, 172, 254, 93, 141, 88, 240, 222, 207, 79, 44, 231, 107, 222, 24, 202, 112, 41, 39, 33, 170, 80, 225, 30, 65, 76, 116, 90, 17, 236, 182, 242, 205, 185, 90, 4, 107, 0, 149, 82, 176, 146, 133, 148, 249, 120, 169, 50, 84, 151, 219, 14, 102, 150, 70, 147, 136, 213, 80, 210, 205, 99, 190, 23, 124, 137, 118, 199, 186, 249, 142, 147, 143, 197, 255, 2, 141, 97, 212, 114, 0, 29, 36, 119, 142, 248, 58, 233, 227, 107, 0, 38, 168, 58, 238, 69, 233, 90, 116, 228, 230, 25, 225, 38, 63, 43, 90, 227, 113, 63, 161, 0, 6, 74, 23, 161, 92, 142, 151, 0, 5, 178, 187, 232, 60, 25, 0, 9, 177, 62, 5, 4, 81, 189, 157, 97, 163, 0, 0, 0, 6, 9, 26, 166, 133, 34, 58, 0, 0, 0, 129, 1, 96, 91, 89, 14, 213, 22, 85, 239, 25, 192, 175, 198, 24, 95, 39, 205, 164, 111, 34, 148, 218, 158, 61, 68, 223, 66, 203, 17, 201, 45, 228, 120, 56, 207, 40, 245, 125, 96, 127, 173, 211, 143, 172, 70, 150, 1, 72, 12, 66, 137, 94, 50, 27, 200, 152, 4, 93, 49, 14, 221, 88, 23, 242, 49, 81, 35, 109, 144, 129, 44, 65, 160, 101, 77, 186, 67, 27, 182, 216, 38, 80, 87, 232, 115, 245, 229, 46, 94, 197, 52, 156, 141, 177, 232, 17, 156, 107, 46, 244, 161, 125, 68, 68, 219, 248, 142, 221, 176, 231, 232, 165, 200, 68, 74, 11, 120, 105, 15, 223, 55, 107, 48, 125, 32, 49, 142, 103, 230, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 109, 112, 94, 152, 199, 0, 234, 1, 96, 65, 180, 3, 232, 253, 23, 235, 42, 86, 252, 56, 161, 227, 140, 2, 18, 40, 12, 202, 194, 100, 130, 5, 145, 230, 110, 157, 213, 120, 229, 197, 26, 145, 189, 163, 39, 245, 48, 232, 135, 4, 197, 102, 138, 138, 94, 133, 145, 28, 160, 92, 197, 127, 59, 3, 22, 165, 158, 52, 53, 235, 170, 192, 27, 246, 161, 229, 151, 37, 203, 226, 107, 182, 231, 154, 255, 180, 112, 10, 126, 2, 64, 183, 37, 57, 123, 13, 193, 135, 171, 87, 100, 61, 97, 164, 18, 183, 191, 211, 204, 129, 24, 189, 88, 129, 44, 91, 206, 207, 192, 86, 181, 229, 215, 140, 115, 25, 50, 33, 152, 16, 112, 194, 5, 48, 60, 130, 70, 247, 161, 230, 174, 156, 48, 251, 211, 246, 85, 198, 18, 238, 99, 183, 66, 31, 236, 86, 201, 38, 4, 191, 94, 23, 171, 86, 233, 143, 122, 215, 219, 74, 80, 249, 76, 247, 11, 97, 1, 176, 208, 120, 141, 91, 80, 211, 91, 31, 101, 241, 146, 193, 50, 147, 176, 97, 52, 160, 181, 13, 215, 91, 51, 226, 61, 56, 100, 102, 35, 54, 160, 91, 231, 45, 253, 227, 203, 64, 216, 76, 201, 25, 231, 95, 9, 173, 188, 70, 32, 161, 48, 92, 80, 212, 202, 168, 181, 251, 104, 182, 153, 37, 205, 21, 0, 5, 134, 117, 180, 95, 79, 0, 8, 73, 144, 70, 241, 241, 71, 50, 195, 0, 0, 0, 20, 19, 45, 126, 174, 245, 138, 92, 145, 153, 217, 223, 179, 191, 165, 12, 241, 87, 73, 34, 12, 0, 0, 0, 5, 15, 242, 126, 98, 237, 0, 0, 0, 187, 2, 151, 63, 120, 245, 184, 34, 144, 57, 192, 80, 151, 64, 231, 126, 36, 131, 136, 170, 211, 134, 126, 143, 221, 141, 132, 140, 235, 119, 143, 89, 188, 24, 100, 96, 95, 206, 215, 12, 148, 211, 123, 30, 118, 130, 196, 202, 234, 216, 194, 159, 6, 237, 49, 242, 44, 10, 154, 170, 145, 112, 175, 240, 61, 128, 197, 111, 42, 223, 159, 90, 204, 73, 8, 97, 236, 77, 127, 12, 220, 237, 172, 194, 137, 45, 64, 147, 33, 243, 0, 106, 246, 177, 205, 144, 79, 95, 148, 212, 14, 195, 139, 121, 63, 148, 239, 135, 137, 199, 4, 85, 201, 50, 21, 16, 207, 77, 28, 26, 168, 134, 134, 98, 99, 211, 65, 179, 199, 122, 185, 96, 19, 0, 247, 137, 164, 33, 136, 46, 120, 199, 242, 21, 41, 239, 37, 240, 54, 156, 33, 193, 51, 196, 114, 217, 43, 171, 4, 56, 31, 229, 244, 255, 15, 20, 58, 118, 52, 203, 252, 30, 254, 45, 168, 201, 2, 123, 92, 32, 243, 187, 206, 127, 63, 12, 235, 135, 200, 148, 183, 197, 163, 224, 125, 231, 193, 105, 173, 30, 41, 31, 29, 104, 250, 61, 17, 142, 135, 233, 216, 209, 228, 110, 90, 137, 251, 135, 64, 174, 234, 182, 0, 100, 252, 184, 141, 79, 248, 204, 139, 239, 8, 100, 45, 14, 15, 14, 153, 247, 18, 186, 79, 184, 27, 57, 81, 215, 130, 247, 97, 212, 230, 90, 220, 245, 200, 235, 155, 196, 17, 55, 2, 99, 12, 18, 71, 160, 231, 113, 191, 160, 55, 114, 128, 67, 232, 46, 161, 53, 27, 128, 91, 109, 82, 240, 216, 242, 176, 42, 176, 15, 104, 137, 3, 141, 58, 201, 172, 174, 232, 96, 113, 75, 233, 99, 133, 228, 86, 75, 72, 176, 192, 97, 209, 128, 205, 0, 60, 195, 73, 200, 28, 61, 194, 78, 33, 75, 153, 123, 215, 111, 160, 7, 105, 67, 93, 43, 198, 83, 32, 240, 167, 141, 172, 243, 105, 188, 64, 84, 77, 7, 224, 178, 172, 121, 210, 210, 58, 97, 30, 71, 107, 46, 172, 211, 148, 5, 134, 11, 224, 66, 137, 130, 236, 6, 73, 119, 19, 0}
//t3 := []byte{0, 0, 6, 116, 95, 183, 151, 92, 248, 0, 0, 0, 15, 34, 193, 235, 206, 97, 213, 231, 83, 33, 96, 77, 87, 232, 154, 95, 0, 13, 85, 59, 229, 243, 104, 178, 199, 234, 2, 63, 41, 194, 177, 0, 15, 65, 132, 224, 127, 237, 119, 71, 135, 162, 109, 33, 177, 82, 26, 156, 0, 0, 0, 28, 204, 235, 40, 223, 186, 187, 224, 123, 38, 45, 253, 156, 124, 163, 111, 25, 102, 67, 98, 241, 247, 212, 120, 238, 57, 189, 203, 163, 0, 0, 0, 30, 107, 160, 27, 140, 220, 33, 132, 95, 198, 108, 192, 146, 14, 154, 44, 167, 97, 91, 142, 3, 200, 32, 247, 95, 167, 26, 104, 66, 158, 168, 0, 0, 0, 0, 0, 5, 225, 98, 60, 85, 128, 0, 0, 0, 0, 0, 6, 225, 210, 160, 173, 145, 104, 0, 6, 0, 246, 58, 121, 27, 163, 0, 13, 10, 25, 179, 222, 188, 183, 135, 172, 104, 153, 184, 162, 132, 0, 0, 0, 5, 145, 52, 241, 84, 147, 0, 0, 0, 7, 141, 180, 234, 49, 107, 103, 91, 0, 0, 0, 7, 42, 33, 0, 247, 227, 42, 219, 0, 5, 145, 24, 254, 237, 174, 0, 0, 0, 9, 9, 151, 175, 223, 38, 19, 142, 168, 40, 0, 5, 230, 230, 64, 154, 76, 0, 13, 120, 219, 35, 152, 180, 219, 189, 89, 70, 200, 76, 51, 224, 0, 12, 5, 169, 156, 247, 149, 222, 96, 129, 105, 231, 25, 2, 0, 0, 0, 0, 0, 7, 24, 44, 236, 230, 224, 245, 173, 0, 0, 0, 94, 201, 7, 84, 81, 106, 196, 246, 183, 73, 40, 46, 38, 56, 196, 196, 172, 254, 93, 141, 88, 240, 222, 207, 79, 44, 231, 107, 222, 24, 202, 112, 41, 39, 33, 170, 80, 225, 30, 65, 76, 116, 90, 17, 236, 182, 242, 205, 185, 90, 4, 107, 0, 149, 82, 176, 146, 133, 148, 249, 120, 169, 50, 84, 151, 219, 14, 102, 150, 70, 147, 136, 213, 80, 210, 205, 99, 190, 23, 124, 137, 118, 199, 186, 249, 142, 147, 143, 197, 255, 2, 141, 97, 212, 114, 0, 29, 36, 119, 142, 248, 58, 233, 227, 107, 0, 38, 168, 58, 238, 69, 233, 90, 116, 228, 230, 25, 225, 38, 63, 43, 90, 227, 113, 63, 161, 0, 6, 74, 23, 161, 92, 142, 151, 0, 5, 178, 187, 232, 60, 25, 0, 9, 177, 62, 5, 4, 81, 189, 157, 97, 163, 0, 0, 0, 6, 9, 26, 166, 133, 34, 58, 0, 0, 0, 129, 1, 96, 91, 89, 14, 213, 22, 85, 239, 25, 192, 175, 198, 24, 95, 39, 205, 164, 111, 34, 148, 218, 158, 61, 68, 223, 66, 203, 17, 201, 45, 228, 120, 56, 207, 40, 245, 125, 96, 127, 173, 211, 143, 172, 70, 150, 1, 72, 12, 66, 137, 94, 50, 27, 200, 152, 4, 93, 49, 14, 221, 88, 23, 242, 49, 81, 35, 109, 144, 129, 44, 65, 160, 101, 77, 186, 67, 27, 182, 216, 38, 80, 87, 232, 115, 245, 229, 46, 94, 197, 52, 156, 141, 177, 232, 17, 156, 107, 46, 244, 161, 125, 68, 68, 219, 248, 142, 221, 176, 231, 232, 165, 200, 68, 74, 11, 120, 105, 15, 223, 55, 107, 48, 125, 32, 49, 142, 103, 230, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 194, 109, 112, 94, 152, 199, 0, 234, 1, 96, 65, 180, 3, 232, 253, 23, 235, 42, 86, 252, 56, 161, 227, 140, 2, 18, 40, 12, 202, 194, 100, 130, 5, 145, 230, 110, 157, 213, 120, 229, 197, 26, 145, 189, 163, 39, 245, 48, 232, 135, 4, 197, 102, 138, 138, 94, 133, 145, 28, 160, 92, 197, 127, 59, 3, 22, 165, 158, 52, 53, 235, 170, 192, 27, 246, 161, 229, 151, 37, 203, 226, 107, 182, 231, 154, 255, 180, 112, 10, 126, 2, 64, 183, 37, 57, 123, 13, 193, 135, 171, 87, 100, 61, 97, 164, 18, 183, 191, 211, 204, 129, 24, 189, 88, 129, 44, 91, 206, 207, 192, 86, 181, 229, 215, 140, 115, 25, 50, 33, 152, 16, 112, 194, 5, 48, 60, 130, 70, 247, 161, 230, 174, 156, 48, 251, 211, 246, 85, 198, 18, 238, 99, 183, 66, 31, 236, 86, 201, 38, 4, 191, 94, 23, 171, 86, 233, 143, 122, 215, 219, 74, 80, 249, 76, 247, 11, 97, 1, 176, 208, 120, 141, 91, 80, 211, 91, 31, 101, 241, 146, 193, 50, 147, 176, 97, 52, 160, 181, 13, 215, 91, 51, 226, 61, 56, 100, 102, 35, 54, 160, 91, 231, 45, 253, 227, 203, 64, 216, 76, 201, 25, 231, 95, 9, 173, 188, 70, 32, 161, 48, 92, 80, 212, 202, 168, 181, 251, 104, 182, 153, 37, 205, 21, 0, 5, 134, 117, 180, 95, 79, 0, 8, 73, 144, 70, 241, 241, 71, 50, 195, 0, 0, 0, 20, 19, 45, 126, 174, 245, 138, 92, 145, 153, 217, 223, 179, 191, 165, 12, 241, 87, 73, 34, 12, 0, 0, 0, 5, 15, 242, 126, 98, 237, 0, 0, 0, 187, 2, 151, 63, 120, 245, 184, 34, 144, 57, 192, 80, 151, 64, 231, 126, 36, 131, 136, 170, 211, 134, 126, 143, 221, 141, 132, 140, 235, 119, 143, 89, 188, 24, 100, 96, 95, 206, 215, 12, 148, 211, 123, 30, 118, 130, 196, 202, 234, 216, 194, 159, 6, 237, 49, 242, 44, 10, 154, 170, 145, 112, 175, 240, 61, 128, 197, 111, 42, 223, 159, 90, 204, 73, 8, 97, 236, 77, 127, 12, 220, 237, 172, 194, 137, 45, 64, 147, 33, 243, 0, 106, 246, 177, 205, 144, 79, 95, 148, 212, 14, 195, 139, 121, 63, 148, 239, 135, 137, 199, 4, 85, 201, 50, 21, 16, 207, 77, 28, 26, 168, 134, 134, 98, 99, 211, 65, 179, 199, 122, 185, 96, 19, 0, 247, 137, 164, 33, 136, 46, 120, 199, 242, 21, 41, 239, 37, 240, 54, 156, 33, 193, 51, 196, 114, 217, 43, 171, 4, 56, 31, 229, 244, 255, 15, 20, 58, 118, 52, 203, 252, 30, 254, 45, 168, 201, 2, 123, 92, 32, 243, 187, 206, 127, 63, 12, 235, 135, 200, 148, 183, 197, 163, 224, 125, 231, 193, 105, 173, 30, 41, 31, 29, 104, 250, 61, 17, 142, 135, 233, 216, 209, 228, 110, 90, 137, 251, 135, 64, 174, 234, 182, 0, 100, 252, 184, 141, 79, 248, 204, 139, 239, 8, 100, 45, 14, 15, 14, 153, 247, 18, 186, 79, 184, 27, 57, 81, 215, 130, 247, 97, 212, 230, 90, 220, 245, 200, 235, 155, 196, 17, 55, 2, 99, 12, 18, 71, 160, 231, 113, 191, 160, 55, 114, 128, 67, 232, 46, 161, 53, 27, 128, 91, 109, 82, 240, 216, 242, 176, 42, 176, 15, 104, 137, 3, 141, 58, 201, 172, 174, 232, 96, 113, 75, 233, 99, 133, 228, 86, 75, 72, 176, 192, 97, 209, 128, 205, 0, 60, 195, 73, 200, 28, 61, 194, 78, 33, 75, 153, 123, 215, 111, 160, 7, 105, 67, 93, 43, 198, 83, 32, 240, 167, 141, 172, 243, 105, 188, 64, 84, 77, 7, 224, 178, 172, 121, 210, 210, 58, 97, 30, 71, 107, 46, 172, 211, 148, 5, 134, 11, 224, 66, 137, 130, 236, 6, 73, 119, 19, 0, 6, 182, 222, 72, 80, 196, 205, 0}
println(len(tt))
r := StdEncoding.EncodeToString(tt)
println(r)
println(len(r))
res := "DmNrgTRviCyH=DGq4BYYEK=Yp2A=A9wMf4G8KZ4B9_DcQ769zkats-MOSfcDcM8ddl_pmSEpnZWB2vbq8SoQtGTWqp-i0q9w3FtMOTY7F7BvoWPiwFGLb6bEmL6Jk-7JJkzNRI5eGiq49BR_TX8a-SJgo1JMd6X0aFuLiYZV6tc8GtT9ptt-CuQsdZj5PhdyO7vmYyNPH190BIAk7PoaPOfFTfRiFXs7KOfMl_FOz2_txuBFEwz4cFaHNau_omAMBRItV=O0G3B-gvS6GOXNiYt3glcxQffFbQ0IkgMRj78i8fTNgcH0Sy0GXDbjuTGy9eQPth0Aax3n6IJHL4CN53fPgBv6AlBQGZQP13OgLTz3sAoms6=1oazrD1HlJ1-lxl-sSXyvkwV4ue_k8icr0gJJjqh8awERQVYEbGMkVIuq8WaZ8-IrGfXF9Fujh4i8dSBCHWOLv-4OPJ1gnIvO2e5iv_wlbpf_F-GbQgRh_HFDypaRlI1zwkd7b0KLKlChf_RJezx_04vvPIDNkOzLYJk7E36=IGeaN2MeYT1DGzuwAF8jdjgadFlJeMNuToy9IsS4pyDaYSydz5vpwVt_IzQFWjrHtvXzjK-9=MybK=ILVLjp2EpyN4Q00ovvOLzXGWP-2708QXPynEFTCYe6R3KgdPXEWukS=e7x6sfisrLSYt3SXqpvvV8Gz0SPLfIlZ15nX6Lq7eTm2zFjPoE5-fbsthwV_oOVCjXAGPY-9fjrO=Yec31nhH8RuViJQ3X6fKvXnnQXIAShvNFz=QDnyQOJM-2Hm-IME7bNtPJtYB_XmODRhlPAQAroxPBGWX4Pxts621i9cXz0Md4yp9Qb3q5fADSqOcIV9KIz7M4zOz1IAjZzrqMcT6JoQ3hFS0AzprGplyPW3E=KRH-iRf3qCJcBmde-6aHyAjNnWX6xHi2n=H0e4KIij=W-3bG__DpB0pS1wJsL79iqaWOKlKDn-PXhAB3BoLTWGvzymABnjgixo-xt_esCQ-vIsmCMirztavz0jvCtQgutMhYo5eGIxt-KQnL7yC4tPQZKff_tqOrF=EE79hDkfkXDvxy4abQlcPweGXLCw7jzppi-cky8nCFdlraXbuOjYSu3RTr9A_4k1ka2aJuzTKD37NEFTltc7TIazbaXD8KZW7oEBN1Pihy8yclrwM=9Hzz8Y221sj96tioEsqhLO1crfSkhG03haDXxhFHYWsGXmqFhCBjB5iDX_uIYmRxIoRzzRDTrj=Y7fgD_eoZpfYAn9rC__6nt=H3oRbZDxObSqR=uyDYe9cteHnKVt5poY6QWSG2JQWTf_aJEd4rSQF5_S-q5Nqqjp9gNmOq7b5ZJ6xprz-GlYQBuWrJeGAj4=jRbW89f=ZOqFFTXmSRSpTJ9n41oMvN9pul8z-GirMHCbJy32-5n=78PsWOh=HmDaqk2xaDqm0eAL05o9Px6i5Y2qjtoDCbtus4HJZGNxvsvyjKQ7NcnwhM=eN73eYXMHRjtRXNwo72WRvSH72LC-Dh_AV_FozGG0jGAKbBj43IDM7tLogPubpprExZwmgnHRApVBTMb8xuTm8Lrqi4-apVBERjWKZbHcuixHn0nXbABkS88CXDKhAM4Ah_6OBB--hDL293hGPDrf9h7lXfV_e3K8xZL2WkLPunZxQ0DAEEc7ARNvbqi6sXrWYWVNeuuHGFGrkK=aIB"
t, err := StdEncoding.DecodeString(res)
if err != nil {
panic(err)
}
println(t)
//StdEncoding.
}
This source diff could not be displayed because it is too large. You can view the blob instead.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
</html>
<script>
!function(){
var websocket = new WebSocket("ws://127.0.0.1:5000/browser");
websocket.onopen = function(){
var info = 'browser:start:' + location.href
console.log(info);
websocket.send(info)
}
websocket.onmessage = function(e){
var info = JSON.parse(e.data)
console.log('websocket.onmessage', info)
// 这里处理请求参数以及对应rpc函数调用,返回参数用字符串传递回 websocket。回传字符串即可。
$.ajax({
type: 'POST',
url: '/api/match2023/4',
data: {'page': 2, 'yt4': '5WRckXmx+H0dKOXNcU3Q+OWcLSXN9ZFljLRgndE54Oi9teC1WDRF1Xi0SBWN+HG9fYyZJGW1bXTpUM1RTTD9SDnAaRVB1ZTJYL11HAU1bNXx7KXJUT1wH'},
dataType: 'json',
success: function (resp){
console.log(resp);
websocket.send(resp)
}
});
}
}()
</script>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
import base64
b = [4259891, 7733370, 5111874, 6357065, 4259921, 4259905, 4522074, 5111915, 7864391, 6357098, 5111875, 3276852, 7077961, 2949185, 7405649, 5439600, 5701733, 5767243, 6881364, 7077989, 3342422, 3670137, 4259895, 4915275, 7602242, 7405643, 7602296, 3342440, 5111893, 6750311, 4259940, 4784196, 7209050, 6357109, 6488168, 5898290, 7798856, 3670081, 4259919, 6684790, 4259905, 4259905, 4259905, 3997757, 3276902, 4259909, 4849717, 7340107, 7929917, 7995494, 5374022, 4718657, 7012459, 5767221, 4456504, 3276898, 6946892, 7995508, 6881349, 5439567, 5636172, 7471212, 7471180, 4718637, 6226030, 5505144, 5570675, 3670120, 5832814, 5505069, 3145800, 3276848, 4259945, 4784205, 6684739, 7012456, 3276904, 7929907, 6488125, 5898290, 4718642, 6619242, 4718693, 5242960, 6226029, 3735641, 4522094, 3670098, 7667780, 4456568, 6750294, 5832794, 4849775, 5767252, 5832752, 4587622, 3997780, 6422644, 3407956, 5111860]
t = b''
for i in b:
t += i.to_bytes(4, byteorder='little')
print(t)
print(base64.b64encode(t).decode())
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
const {VM, VMScript} = require("vm2");
const crypto = require('crypto')
const fs = require('fs')
function readFile(name){
var data = fs.readFileSync(name);
return data.toString()
}
const vm = new VM({
sandbox: {
'crypto':crypto,
'Blob':Blob,
'URL':URL,
'DOMException':DOMException,
'FormData':FormData,
'MessageChannel':MessageChannel,
'ReadableStream':ReadableStream,
'TextDecoderStream':TextDecoderStream,
'TextEncoderStream':TextEncoderStream,
'TransformStream':TransformStream,
'URLSearchParams':URLSearchParams,
'fetch':fetch,
'setTimeout':setTimeout,
'clearInterval':clearInterval,
}
});
let envCode = readFile("env.js")
let srcCode = readFile("src.js")
let code = envCode + "\n\n\n" + srcCode
code += `
function getargs(){
var xhr = new XMLHttpRequest();
xhr.open('POST', "https://www.southwest.com/api/air-booking/v1/air-booking/page/air/booking/shopping", false);
xhr.send('{"adultPassengersCount":"1","adultsCount":"1","departureDate":"2023-05-27","departureTimeOfDay":"ALL_DAY","destinationAirportCode":"LAS","fareType":"USD","int":"HOMEQBOMAIR","originationAirportCode":"BOS","passengerType":"ADULT","reset":"true","returnDate":"","returnTimeOfDay":"ALL_DAY","tripType":"oneway","application":"air-booking","site":"southwest"}')
// console.log(xhr.headers)
console.log('结束times', times)
console.log(medias.join('|||'))
return JSON.stringify(xhr.headers);
}
`
const script = new VMScript(code,`${__dirname}/debug.js`);
// 运行脚本文件
vm.run(script);
console.log('vm.getGlobal("XMLHttpRequest")', vm.getGlobal("getargs"))
var xhr = vm.getGlobal("getargs");
console.log(xhr())
import requests
import json
import time
headers = {
"Host": "www.southwest.com",
"x-user-experience-id": "9f32a51e-c800-4b25-b9df-08b380a4b011",
"authorization": "null null",
"x-api-idtoken": "null",
"sec-ch-ua-platform": "\"macOS\"",
"x-channel-id": "southwest",
"x-app-id": "air-booking",
"sec-ch-ua-mobile": "?0",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
"content-type": "application/json",
"accept": "application/json, text/javascript, */*; q=0.01",
"x-api-key": "l7xx944d175ea25f4b9c903a583ea82a1c4c",
"origin": "https://www.southwest.com",
"sec-fetch-site": "same-origin",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"referer": "https://www.southwest.com/air/booking/select.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
}
t1 = time.time()
r = {
"sec-ch-ua": "\"Chromium\";v=\"112\", \"Google Chrome\";v=\"112\", \"Not:A-Brand\";v=\"99\"",
"EE30zvQLWf-a": "N0o1dKGE3CQx6-GKMzR4rtouSIvGBU0SMlXHLblfyz_KHqs=Be6bs=o7nxpe7u1=6unACUmZX61dqMyH4MEbZaPswmfmuxEjl=ryRLWk-oqU908OoleSQzCGaH1vfl-W7m4zXbUnPhiWD6luOHW0X6mS_SsPRVn6OYGXMva1psKNPWviLdt2V_YZvGSHFMnBe4bhxNk6uAXqUhKQwhlfDfSN=NymLzRqN-N04RvdQE5iEC5yN7dVtIfFe0aVt=QJy-9oj3i5GaxFonO69WavqvzChSRHuuS6pq8Dx6gjyy=GG669NDGr0rxjGOrdJ4uX2HC-QXx0S-bI0ZO8sEhikg3Hm5Fq08RHk1Zz1bRMUQkyi5L6lPfexq9K=zzKNJOKNqG0w-WbBvZg6NpXUgpN9-Y2qdyh4YUFqh00CgKX6EiMJ6CVL-NsbsBxCK0=7GP-dDqHG5Qq_02oHiLV16jXx8XESD5O9lfJwmkywN3e05GPA3zYGkRcIEO0xJW0iWr5s8n2BHoaucot_WnhZGhLN3fhnMaMGoJPowdRJBfaFLVPGP6pLg9AygrdVcgFkBH97SLpqI6nX6BRuweFe801D-bRmFBgCwUZfMJolV8eOBcR_n4FUpDe=rQc0swfyHgm0pA539DE5zBEWs9xU_lqf2CqGudeYUMwXMlS7NAcIOa-e_QDVNAbidCIdVUBJYYUWImltLfXco_VwIYzmNANSu3owYwo6M2hFFbMp2IJasxhUvM4a15C0XxHOaHAhnj3J9UpEu0YeFsqdep01=lc3WJMHC-0F6eCFgsYB0yuVPSDES8hXzQcxyXs4BRj5MDa3tcK9NfseRcClb7wQRV1SNR0qrBau0RdHMvApd_jJCP-Ca-FkZhO4CH_GnPGmGa0Fy7pJ2-LAstKDe_tJRgGhvYeZztJGgvPj_hiMMBJKzWbgE_GtoyVgyd9ey09BxQXwge9Gp4-GYcuy8WCAKyisry264=igi7c9hznnmo9dktDRJlVHA5SzOuSAQlaLL-64rK=tdmpgnFcJCKGxMsoF2A2mozMaKaQc5ds5JNXbenQcBuw7O6nc3Z8fsE2Gszy9RFl7GMXjI1KIi5LLhDxuXrtAyxS0nQQqboe3N-4ZMJLk7eiiXlA-_0joZvBh9OEb3wx01N-pi2FdY0-aZK0_wKchGfcoNp1x-P4pXHUe5sEAsmNd4V=mIINrdUV_BC0ykt9jiUn_5KD2BptjJOR89FWcUoEJJvX3ySfexV6Qx074AjzneDfmRNKq=9M84UtCpamVhYnLs13ENdapCPZ-3ziH03fcwa=gKLsBazLEBdNj0-1vP_bE-fS7DdxnchM6opAX7-NGm9BHioqpdiNSu0SKPixSuem0p4uacux1RA025IwqhdFsb_VzR92grkZ1jfkzCRVy1uOdmYJCI4xr0EQImP8tQA2ZWIrqpWkHUQbw26-e3bIAH-irrqtmMuJcFZ7XVwuwec9oq-PfmC3OMB0HpXtPN5vnzfC-Mu1QyMyuQdeXMfR3V=kMeByE9U1339XCtWHeaL2gH1FEcNU_3l7MVhBUiCisQeQomfixyy=N=HkzMM0pQ6cYuV5ONrBfnm0pz0PAly7AUBxsuE8ywJiiQ-6WYalldskuO05C4J8Qq8dP3LEjep4Mne-qnV3voaLWc09ofzl=SL8ln5sXdyAi80n0rJjhFBDccFt4cjrPymH0HE6rH0fIDw-wEwW2noxg2x8__sl7pR9S0JbFXoQKR5RCcfOoh5a_P476PaLW=R5wrP4NHD-n9sb",
"EE30zvQLWf-z": "q",
"sec-ch-ua-mobile": "?0",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
"EE30zvQLWf-b": "-ntu4jq",
"Content-Type": "text/plain;charset=UTF-8",
"EE30zvQLWf-d": "ABaChIjBDKGNgUGAQZIQhISi0eIApJmBDgDkapxi2jdlhP____-c1sW-AMbw7ooMg7NqFwz0R5MpGoc",
"Referer": "",
"EE30zvQLWf-c": "AKBBdRCIAQAAz4Uwquo2h4gyuGt2lMzpV2EK3mHXmvclcTyS-eRqnGLaN2WE",
"EE30zvQLWf-f": "A2iAeRCIAQAAT5srQTpvdAPDkqdULuTzzaBmwBVXI_Dp9Q1sY0R5B_CIq4SwAT3gXZuuchZ2wH8AAOfvAAAAAA==",
"sec-ch-ua-platform": "\"macOS\""
}
r = {
'ee30zvqlwf-f': 'A7BcPxmIAQAAX_87deQmX9d9wSoD6ivvefVGI2iYMrvmgHuTdm_e_C70bVW3AdIDnZauchZ2wH8AAOfvAAAAAA==',
'ee30zvqlwf-b': 'bquhjx',
'ee30zvqlwf-c': 'AEDgPBmIAQAAwzFO0rWyyOOSJIGbmXjRaVDIivb6RsyTe3MegTNL64awlIgW',
'ee30zvqlwf-d': 'ABaChIjBDKGNgUGAQZIQhISi0eIApJmBDgAzS-uGsJSIFv____-c1sW-APp9ZS942BJoSyMX3LpALro',
'ee30zvqlwf-z': 'q',
'ee30zvqlwf-a': 'KttFMwV=XhWe8m=qNOIuh1dvY3cpRfWpUoeRI9gyr5E6EYIuBY7_9GPklDMW1zgc_Yg8wvgfUU=6rfssP9eNUoNjDt2d4M8XRMNVocQkgeme=j4DTHOxgnh4aNQDtl8DiNb=f4Iu-9vYKLgnTy3C2_IKpsGsoGI26rIK0UaJWJBQBpiTPDrGdhw7pZRlABXBmtiQpOv26iaUZ=Al2NZguvvkBY2L4Na5r3QbjAXNEWA=sIZoWREC7u8l7LPekbeCDfJ-jxJtqpwaVYV2nww7VuzNYddBEWiMECF2pZmY21i7TdXlWf6feZTIOGEnrk1Gc_v6i-rpBaZb5xMOgF_j--WTgDkWz36DpEjNnDsdvoVCP4Rvb_TPovQYCMa7fWKt0NKQdq_5koHdOLrvT1X5b0t_ZI716XQzamrQmxeX9vcTtMU4JF5tqjaLY_EefK=VpFbDQ=idaj6EFlHGvATaFwdgyyR9H_1goKgURipWLDqt3m90icJpkVonkvZh63BnbvC=0nwP2bIEErnH20ohrzKhXbRXMDwre4u6vAHrUvc83jWuM9EjU_v1Il48Vr=xYeLU8OarutfC3IFmtvYbOJTmcekfUVtfiA5hZUsblLgRXD-7EuZe8WCG=z443_DkVNLbPusKLliwyJv6Lfh5APw4DivMCx=_C4fYqXJtqVcvolufLG-pnbU2W3p-XM0hOayite28OBnWJnKP5=eJ7F=8Nfw4Go3kpAOQjg_a4rNO=GWC9cV64dtaeaKqP_hhBxv=CXXwTVt2om=hCacW4ixdMn6jCvLLD01=HCLJV4L2rWm_vAhCg7zg6PVMkCO5wT_CarTpqjo9ew5CVMFRJtzYyviZhO_jEp_Js0zI7o0Eox5sWiqApRmfNtWD34z9tMTB4EiRHsAdZc_QrnUZZGOv6vAvo6PHJcmBgD0u6mTAF3LD0Ic8OgW06IRiMTuZyRrrhApcNgkV-mcZ6riPH18QXQTvMbVAo2vcLF3O7lUy60tCizt3-yR-7PFfRIW0QGNHNi583pjx0XrttUzchWbF8-OgZddw_KEX-ReT-_ft-dfnaEF3Co7J4GUNsDLJDfMOCsnk-aoBnFWsWQDuldvdfG2K1Jqen=Gb7QBecoWUb3zNCqcD-qoX7NUH4geEulnXFJk_onOAyIsVGlxER=6ZrvH-65QDMzTRyHBjmTZNKzvjqVEtU8jt8E4fqxR0ezJytu1HUsKYQix2qAuh1PPm=gRaUg4JFzU281W28T-DNzAAVP2fYwA5_lf6wiXAzJotXL7kNUu=CJyJh-MvZ4HEtFhziNVjYuY3dNxDCVue8B6959IWT3HfGjZc1rytY2pF8MI1RO7=xX_saboXvrI1Bu53WZ=-sFf419c1boiNFxsEuCD29jIYsCijTvTEFEMt60ZsGOyWGayafFb7pVb4__jvAuN10MbXpABFUci4JgAIiKyzq_utQTmiUJ2wau1HFtv74agDHtB79mk8x7WjAiL618XOAuWEacX3ukIlDjVODaingyY20QQ9KxYG88VkOzvBF7CDYIg1KQWkrymbnUpkIlIEoetFpXOW_IDGT8KDNJI5Va-nOtkI4rHuL6OwsfT6pKtWqBajJKZOHdDGwksjflC6PN2GPrurHNotL2Gc4eGXOQEVUb8HBtn08EoDZrlG1WjPkOAEGEsg_G0vVDsgoQdsbUBeGMH-EGsRC4F2rTQ3YlJluN=JXRG3riLVh=kto7_HInBGrh5927X4rqGVEfzh8s_7xAXJHuY-Pr=knLrKMgiK1rWyCRK-wjbit6g8XMyT84Oyrv4sLv4JAVOCI5=iBrrwUKFlbV6gmUglhVTAsRwJOqA'
}
r = requests.get('http://127.0.0.1:3000').json()
print(r)
print(len(r['ee30zvqlwf-a']))
headers.update(r)
cookies = {
# "swa_FPID": "979f55f3-3505-4286-b5ae-ffa57f781e9c",
# "PIM-SESSION-ID": "r0oQ3eThtpuj8xnh",
# "akacd_PIM-prd_ah_rollout": "3860618795~rv=34~id=529740719b41df7d578fb1c734df575b",
# "at_check": "true",
# "AMCVS_65D316D751E563EC0A490D4C%40AdobeOrg": "1",
# "s_ecid": "MCMID%7C38608080011084723602059661987147614374",
# "s_cc": "true",
# "nmstat": "09922a4e-6c23-b688-7043-f7e4ef8fd137",
# "_mibhv": "anon-1683166002770-9292342780_4971",
# "_up": "1.2.1441922756.1683166051",
# "QSI_HistorySession": "https%3A%2F%2Fwww.southwest.com%2Fair%2Fbooking%2Findex.html%3FadultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-05-05%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DLAS%26fareType%3DUSD%26from%3D%26int%3DHOMEQBOMAIR%26originationAirportCode%3DBOS%26passengerType%3DADULT%26promoCode%3D%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26to%3D%26tripType%3Doneway%26validate%3Dtrue~1683166057541%7Chttps%3A%2F%2Fwww.southwest.com%2Fair%2Fbooking%2Findex.html%3FadultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-05-27%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DLAS%26fareType%3DUSD%26int%3DHOMEQBOMAIR%26originationAirportCode%3DBOS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue~1683193032649",
# "AMCV_65D316D751E563EC0A490D4C%40AdobeOrg": "1176715910%7CMCIDTS%7C19490%7CMCMID%7C38608080011084723602059661987147614374%7CMCAAMLH-1684464095%7C11%7CMCAAMB-1684464095%7CRKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y%7CMCOPTOUT-1683866495s%7CNONE%7CMCAID%7CNONE%7CvVersion%7C5.4.0",
# "X-AK-PIM-INJECT": "sync",
# "weiygrety": "CCZfHKo6",
# "sRpK_XA_swc": "%7B%22_rt%22%3A%22DQM3F%2FlXkinE8CmqnymaredHUrCQ3ACk7UkW4jjI0vA%3D%22%2C%22_fr%22%3A20000%2C%22c%22%3A%22aTRzT0JNSng5SUNMTXlQdg%3D%3DzFQWN_z1f8OSxci89H5pjkM69h4eoilYo9djU-MobgbVu8Oq5fNvZLmCwWL22wxjzT6eeX9V1RaBBehKtuuQq7y-Hw5_yVTQtTqHO7a5wYkc5lA%3D%22%2C%22dc%22%3A%22102%22%2C%22mf%22%3A0%2C%22fr%22%3A%22ynVPTJn3OPNk6d4jppxwcg%3D%3DpJ9fKwW9L6YvZhoXBL532NzA1cKCdOnOYyxm8JJe4r852eD4zVnTr1Z5mH1nf-ltZuv0uvQwVmll1EotUoEq686NVCXah4kM0jQ1SMONr4tKcEw%3D%22%2C%22ct%22%3A%22N0xqfP9dvTHN%2FDf8tmCks8VeBP%2BV4BCh1nwA8E4%3D%22%7D",
# "sRpK8nqm_sc": "A7jdguSHAQAAvGAV4-pBus2_QMHAbjyCMQPtXSF3ZLx0OTg9nNCmPQ2f1PC4AS0rIPCuchZ2wH8AAOfvAAAAAA|1|1|dbbde5436776cb4ede26634196258aef6eb75b3a",
# "valid_promo": "false",
# "akavpau_prd_non_vision": "1683861974~id=cf4ad2656adf247dcc90f8be173d5b8b",
# "s_gpv_pn": "BOOK%3AAIR%3APlan%20Trip%20Page",
# "RT": "\"z=1&dm=southwest.com&si=f0f36887-7d75-406b-a966-d0fedf492c24&ss=lhjzl3dj&sl=1&tt=1&bcn=%2F%2F684d0d43.akstat.io%2F\"",
# "akavpau_prd_rogue_api": "1683862274~id=ef05250d45fab128362eb90a479f12b3",
# "akavpau_prd_air_booking": "1683863134~id=4923d5208366ca09c3a5499fb74eb5e4",
# "mbox": "PC#bafdf1525d6e4a36be6240ba96165263.32_0#1747107335|session#2ffd9bdfaffd4341b552e1c0a670610b#1683864395",
# "s_sq": "swaprod%3D%2526c.%2526a.%2526activitymap.%2526page%253DBOOK%25253AAIR%25253APlan%252520Trip%252520Page%2526link%253DSearch%2526region%253Dswa-content%2526pageIDType%253D1%2526.activitymap%2526.a%2526.c"
}
url = "https://www.southwest.com/api/air-booking/v1/air-booking/page/air/booking/shopping"
data = {
"originationAirportCode": "LAS",
"destinationAirportCode": "BOS",
"departureDate": "2023-07-14",
"departureTimeOfDay": "ALL_DAY",
"returnTimeOfDay": "ALL_DAY",
"adultPassengersCount": "1",
"tripType": "oneway",
"fareType": "USD",
"passengerType": "ADULT",
"adultsCount": "1",
"int": "HOMEQBOMAIR",
"reset": "true",
"returnDate": "",
"application": "air-booking",
"site": "southwest"
}
data = json.dumps(data, separators=(',', ':'))
for i in range(10):
response = requests.post(url, headers=headers, data=data, proxies={
'http': 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600',
'https': 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600',
}, cookies=cookies, verify=False)
print(response.text)
print(response)
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
var v_saf;!function(){var n=Function.toString,t=[],i=[],o=[].indexOf.bind(t),e=[].push.bind(t),r=[].push.bind(i);function u(n,t){return-1==o(n)&&(e(n),r(`function ${t||n.name||""}() { [native code] }`)),n}Object.defineProperty(Function.prototype,"toString",{enumerable:!1,configurable:!0,writable:!0,value:function(){return"function"==typeof this&&i[o(this)]||n.call(this)}}),u(Function.prototype.toString,"toString"),v_saf=u}();
function _inherits(t, e) {
t.prototype = Object.create(e.prototype, {
constructor: { value: t, writable: !0, configurable: !0 }
}), e && Object.setPrototypeOf(t, e) }
Object.defineProperty(Object.prototype, Symbol.toStringTag, {
get() { return Object.getPrototypeOf(this).constructor.name }
});
var v_new_toggle = true
Object.freeze(console)//only for javascript-obfuscator anti console debug.
var v_console_logger = console.log
var v_console_log = function(){if (!v_new_toggle){ v_console_logger.apply(this, arguments) }}
var v_random = (function() { var seed = 276951438; return function random() { return seed = (seed * 9301 + 49297) % 233280, (seed / 233280)} })()
var v_new = function(v){var temp=v_new_toggle; v_new_toggle = true; var r = new v; v_new_toggle = temp; return r}
EventTarget = v_saf(function EventTarget(){;})
CanvasRenderingContext2D = v_saf(function CanvasRenderingContext2D(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
WebGLRenderingContext = v_saf(function WebGLRenderingContext(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };
function WebGLBuffer(){}
function WebGLProgram(){}
function WebGLShader(){}
this._toggle = {}
this.createBuffer = function(){ v_console_log(' [*] WebGLRenderingContext -> createBuffer[func]'); return v_new(WebGLBuffer) }
this.createProgram = function(){ v_console_log(' [*] WebGLRenderingContext -> createProgram[func]'); return v_new(WebGLProgram) }
this.createShader = function(){ v_console_log(' [*] WebGLRenderingContext -> createShader[func]'); return v_new(WebGLShader) }
this.getSupportedExtensions = function(){
v_console_log(' [*] WebGLRenderingContext -> getSupportedExtensions[func]')
return [
"ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_color_buffer_half_float", "EXT_disjoint_timer_query", "EXT_float_blend", "EXT_frag_depth",
"EXT_shader_texture_lod", "EXT_texture_compression_bptc", "EXT_texture_compression_rgtc", "EXT_texture_filter_anisotropic", "WEBKIT_EXT_texture_filter_anisotropic", "EXT_sRGB",
"KHR_parallel_shader_compile", "OES_element_index_uint", "OES_fbo_render_mipmap", "OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear",
"OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_compressed_texture_s3tc",
"WEBKIT_WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info", "WEBGL_debug_shaders",
"WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture","WEBGL_draw_buffers","WEBGL_lose_context","WEBKIT_WEBGL_lose_context","WEBGL_multi_draw",
]
}
var self = this
this.getExtension = function(key){
v_console_log(' [*] WebGLRenderingContext -> getExtension[func]:', key)
class WebGLDebugRendererInfo{
get UNMASKED_VENDOR_WEBGL(){self._toggle[37445]=1;return 37445}
get UNMASKED_RENDERER_WEBGL(){self._toggle[37446]=1;return 37446}
}
class EXTTextureFilterAnisotropic{}
class WebGLLoseContext{
loseContext(){}
restoreContext(){}
}
if (key == 'WEBGL_debug_renderer_info'){ var r = new WebGLDebugRendererInfo }
if (key == 'EXT_texture_filter_anisotropic'){ var r = new EXTTextureFilterAnisotropic }
if (key == 'WEBGL_lose_context'){ var r = new WebGLLoseContext }
else{ var r = new WebGLDebugRendererInfo }
return r
}
this.getParameter = function(key){
v_console_log(' [*] WebGLRenderingContext -> getParameter[func]:', key)
if (this._toggle[key]){
if (key == 37445){ return "Google Inc. (NVIDIA)" }
if (key == 37446){ return "ANGLE (NVIDIA, NVIDIA GeForce GTX 1050 Ti Direct3D11 vs_5_0 ps_5_0, D3D11-27.21.14.5671)" }
}else{
if (key == 33902){ return new Float32Array([1,1]) }
if (key == 33901){ return new Float32Array([1,1024]) }
if (key == 35661){ return 32 }
if (key == 34047){ return 16 }
if (key == 34076){ return 16384 }
if (key == 36349){ return 1024 }
if (key == 34024){ return 16384 }
if (key == 34930){ return 16 }
if (key == 3379){ return 16384 }
if (key == 36348){ return 30 }
if (key == 34921){ return 16 }
if (key == 35660){ return 16 }
if (key == 36347){ return 4095 }
if (key == 3386){ return new Int32Array([32767, 32767]) }
if (key == 3410){ return 8 }
if (key == 7937){ return "WebKit WebGL" }
if (key == 35724){ return "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)" }
if (key == 3415){ return 0 }
if (key == 7936){ return "WebKit" }
if (key == 7938){ return "WebGL 1.0 (OpenGL ES 2.0 Chromium)" }
if (key == 3411){ return 8 }
if (key == 3412){ return 8 }
if (key == 3413){ return 8 }
if (key == 3414){ return 24 }
return null
}
}
this.getContextAttributes = function(){
v_console_log(' [*] WebGLRenderingContext -> getContextAttributes[func]')
return {
alpha: true,
antialias: true,
depth: true,
desynchronized: false,
failIfMajorPerformanceCaveat: false,
powerPreference: "default",
premultipliedAlpha: true,
preserveDrawingBuffer: false,
stencil: false,
xrCompatible: false,
}
}
this.getShaderPrecisionFormat = function(a,b){
v_console_log(' [*] WebGLRenderingContext -> getShaderPrecisionFormat[func]')
function WebGLShaderPrecisionFormat(){}
var r1 = v_new(WebGLShaderPrecisionFormat)
r1.rangeMin = 127
r1.rangeMax = 127
r1.precision = 23
var r2 = v_new(WebGLShaderPrecisionFormat)
r2.rangeMin = 31
r2.rangeMax = 30
r2.precision = 0
if (a == 35633 && b == 36338){ return r1 } if (a == 35633 && b == 36337){ return r1 } if (a == 35633 && b == 36336){ return r1 }
if (a == 35633 && b == 36341){ return r2 } if (a == 35633 && b == 36340){ return r2 } if (a == 35633 && b == 36339){ return r2 }
if (a == 35632 && b == 36338){ return r1 } if (a == 35632 && b == 36337){ return r1 } if (a == 35632 && b == 36336){ return r1 }
if (a == 35632 && b == 36341){ return r2 } if (a == 35632 && b == 36340){ return r2 } if (a == 35632 && b == 36339){ return r2 }
throw Error('getShaderPrecisionFormat')
}
v_saf(this.createBuffer, 'createBuffer')
v_saf(this.createProgram, 'createProgram')
v_saf(this.createShader, 'createShader')
v_saf(this.getSupportedExtensions, 'getSupportedExtensions')
v_saf(this.getExtension, 'getExtension')
v_saf(this.getParameter, 'getParameter')
v_saf(this.getContextAttributes, 'getContextAttributes')
v_saf(this.getShaderPrecisionFormat, 'getShaderPrecisionFormat')})
Node = v_saf(function Node(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Node, EventTarget)
Element = v_saf(function Element(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Element, Node)
HTMLElement = v_saf(function HTMLElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLElement, Element)
HTMLAnchorElement = v_saf(function HTMLAnchorElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };v_hook_href(this, 'HTMLAnchorElement', location.href)}); _inherits(HTMLAnchorElement, HTMLElement)
HTMLMediaElement = v_saf(function HTMLMediaElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLMediaElement, HTMLElement)
Window = v_saf(function Window(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Window, EventTarget)
Screen = v_saf(function Screen(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Screen, EventTarget)
Document = v_saf(function Document(){;}); _inherits(Document, Node)
HTMLDocument = v_saf(function HTMLDocument(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };Object.defineProperty(this, 'location', {get(){return location}})}); _inherits(HTMLDocument, Document)
HTMLHeadElement = v_saf(function HTMLHeadElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLHeadElement, HTMLElement)
HTMLBodyElement = v_saf(function HTMLBodyElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLBodyElement, HTMLElement)
Navigator = v_saf(function Navigator(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };this._plugins = typeof PluginArray=='undefined'?[]:v_new(PluginArray); this._mimeTypes = typeof MimeTypeArray=='undefined'?[]:v_new(MimeTypeArray)})
PluginArray = v_saf(function PluginArray(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };
this[0]=v_new(Plugin);this[0].description="Portable Document Format";this[0].filename="internal-pdf-viewer";this[0].length=2;this[0].name="PDF Viewer";
this[1]=v_new(Plugin);this[1].description="Portable Document Format";this[1].filename="internal-pdf-viewer";this[1].length=2;this[1].name="Chrome PDF Viewer";
this[2]=v_new(Plugin);this[2].description="Portable Document Format";this[2].filename="internal-pdf-viewer";this[2].length=2;this[2].name="Chromium PDF Viewer";
this[3]=v_new(Plugin);this[3].description="Portable Document Format";this[3].filename="internal-pdf-viewer";this[3].length=2;this[3].name="Microsoft Edge PDF Viewer";
this[4]=v_new(Plugin);this[4].description="Portable Document Format";this[4].filename="internal-pdf-viewer";this[4].length=2;this[4].name="WebKit built-in PDF";})
Plugin = v_saf(function Plugin(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
MimeTypeArray = v_saf(function MimeTypeArray(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };
this[0]=v_new(Plugin);this[0].description="Portable Document Format";this[0].enabledPlugin={"0":{},"1":{}};this[0].suffixes="pdf";this[0].type="application/pdf";
this[1]=v_new(Plugin);this[1].description="Portable Document Format";this[1].enabledPlugin={"0":{},"1":{}};this[1].suffixes="pdf";this[1].type="text/pdf";})
MimeType = v_saf(function MimeType(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
CSSStyleDeclaration = v_saf(function CSSStyleDeclaration(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
Location = v_saf(function Location(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
HTMLCanvasElement = v_saf(function HTMLCanvasElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLCanvasElement, HTMLElement)
Performance = v_saf(function Performance(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(Performance, EventTarget)
PerformanceEntry = v_saf(function PerformanceEntry(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
PerformanceElementTiming = v_saf(function PerformanceElementTiming(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PerformanceElementTiming, PerformanceEntry)
PerformanceEventTiming = v_saf(function PerformanceEventTiming(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PerformanceEventTiming, PerformanceEntry)
PerformanceLongTaskTiming = v_saf(function PerformanceLongTaskTiming(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PerformanceLongTaskTiming, PerformanceEntry)
PerformanceMark = v_saf(function PerformanceMark(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PerformanceMark, PerformanceEntry)
PerformanceMeasure = v_saf(function PerformanceMeasure(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PerformanceMeasure, PerformanceEntry)
PerformanceNavigation = v_saf(function PerformanceNavigation(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
PerformanceResourceTiming = v_saf(function PerformanceResourceTiming(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PerformanceResourceTiming, PerformanceEntry)
PerformanceNavigationTiming = v_saf(function PerformanceNavigationTiming(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PerformanceNavigationTiming, PerformanceResourceTiming)
PerformanceObserver = v_saf(function PerformanceObserver(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
PerformanceObserverEntryList = v_saf(function PerformanceObserverEntryList(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
PerformancePaintTiming = v_saf(function PerformancePaintTiming(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PerformancePaintTiming, PerformanceEntry)
PerformanceServerTiming = v_saf(function PerformanceServerTiming(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
PerformanceTiming = v_saf(function PerformanceTiming(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
Image = v_saf(function Image(){;return v_new(HTMLImageElement)})
HTMLImageElement = v_saf(function HTMLImageElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLImageElement, HTMLElement)
HTMLUnknownElement = v_saf(function HTMLUnknownElement(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(HTMLUnknownElement, HTMLElement)
XMLHttpRequestEventTarget = v_saf(function XMLHttpRequestEventTarget(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(XMLHttpRequestEventTarget, EventTarget)
XMLHttpRequest = v_saf(function XMLHttpRequest(){;}); _inherits(XMLHttpRequest, XMLHttpRequestEventTarget)
Storage = v_saf(function Storage(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
DOMTokenList = v_saf(function DOMTokenList(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
Touch = v_saf(function Touch(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
UIEvent = v_saf(function UIEvent(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(UIEvent, Event)
TouchEvent = v_saf(function TouchEvent(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(TouchEvent, UIEvent)
Event = v_saf(function Event(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };})
MouseEvent = v_saf(function MouseEvent(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(MouseEvent, UIEvent)
PointerEvent = v_saf(function PointerEvent(){if (!v_new_toggle){ throw TypeError("Illegal constructor") };}); _inherits(PointerEvent, MouseEvent)
Object.defineProperties(EventTarget.prototype, {
[Symbol.toStringTag]: {value:"EventTarget",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(CanvasRenderingContext2D.prototype, {
textBaseline: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> textBaseline[set]", [].slice.call(arguments)); }},
font: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> font[set]", [].slice.call(arguments)); }},
fillStyle: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> fillStyle[set]", [].slice.call(arguments)); }},
shadowOffsetX: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> shadowOffsetX[set]", [].slice.call(arguments)); }},
shadowOffsetY: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> shadowOffsetY[set]", [].slice.call(arguments)); }},
shadowBlur: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> shadowBlur[set]", [].slice.call(arguments)); }},
shadowColor: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> shadowColor[set]", [].slice.call(arguments)); }},
fillText: {value: v_saf(function fillText(){v_console_log(" [*] CanvasRenderingContext2D -> fillText[func]", [].slice.call(arguments));})},
drawImage: {value: v_saf(function drawImage(){v_console_log(" [*] CanvasRenderingContext2D -> drawImage[func]", [].slice.call(arguments));})},
fill: {value: v_saf(function fill(){v_console_log(" [*] CanvasRenderingContext2D -> fill[func]", [].slice.call(arguments));})},
[Symbol.toStringTag]: {value:"CanvasRenderingContext2D",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(WebGLRenderingContext.prototype, {
DEPTH_BUFFER_BIT: {"value":256,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BUFFER_BIT: {"value":1024,"writable":false,"enumerable":true,"configurable":false},
COLOR_BUFFER_BIT: {"value":16384,"writable":false,"enumerable":true,"configurable":false},
POINTS: {"value":0,"writable":false,"enumerable":true,"configurable":false},
LINES: {"value":1,"writable":false,"enumerable":true,"configurable":false},
LINE_LOOP: {"value":2,"writable":false,"enumerable":true,"configurable":false},
LINE_STRIP: {"value":3,"writable":false,"enumerable":true,"configurable":false},
TRIANGLES: {"value":4,"writable":false,"enumerable":true,"configurable":false},
TRIANGLE_STRIP: {"value":5,"writable":false,"enumerable":true,"configurable":false},
TRIANGLE_FAN: {"value":6,"writable":false,"enumerable":true,"configurable":false},
ZERO: {"value":0,"writable":false,"enumerable":true,"configurable":false},
ONE: {"value":1,"writable":false,"enumerable":true,"configurable":false},
SRC_COLOR: {"value":768,"writable":false,"enumerable":true,"configurable":false},
ONE_MINUS_SRC_COLOR: {"value":769,"writable":false,"enumerable":true,"configurable":false},
SRC_ALPHA: {"value":770,"writable":false,"enumerable":true,"configurable":false},
ONE_MINUS_SRC_ALPHA: {"value":771,"writable":false,"enumerable":true,"configurable":false},
DST_ALPHA: {"value":772,"writable":false,"enumerable":true,"configurable":false},
ONE_MINUS_DST_ALPHA: {"value":773,"writable":false,"enumerable":true,"configurable":false},
DST_COLOR: {"value":774,"writable":false,"enumerable":true,"configurable":false},
ONE_MINUS_DST_COLOR: {"value":775,"writable":false,"enumerable":true,"configurable":false},
SRC_ALPHA_SATURATE: {"value":776,"writable":false,"enumerable":true,"configurable":false},
FUNC_ADD: {"value":32774,"writable":false,"enumerable":true,"configurable":false},
BLEND_EQUATION: {"value":32777,"writable":false,"enumerable":true,"configurable":false},
BLEND_EQUATION_RGB: {"value":32777,"writable":false,"enumerable":true,"configurable":false},
BLEND_EQUATION_ALPHA: {"value":34877,"writable":false,"enumerable":true,"configurable":false},
FUNC_SUBTRACT: {"value":32778,"writable":false,"enumerable":true,"configurable":false},
FUNC_REVERSE_SUBTRACT: {"value":32779,"writable":false,"enumerable":true,"configurable":false},
BLEND_DST_RGB: {"value":32968,"writable":false,"enumerable":true,"configurable":false},
BLEND_SRC_RGB: {"value":32969,"writable":false,"enumerable":true,"configurable":false},
BLEND_DST_ALPHA: {"value":32970,"writable":false,"enumerable":true,"configurable":false},
BLEND_SRC_ALPHA: {"value":32971,"writable":false,"enumerable":true,"configurable":false},
CONSTANT_COLOR: {"value":32769,"writable":false,"enumerable":true,"configurable":false},
ONE_MINUS_CONSTANT_COLOR: {"value":32770,"writable":false,"enumerable":true,"configurable":false},
CONSTANT_ALPHA: {"value":32771,"writable":false,"enumerable":true,"configurable":false},
ONE_MINUS_CONSTANT_ALPHA: {"value":32772,"writable":false,"enumerable":true,"configurable":false},
BLEND_COLOR: {"value":32773,"writable":false,"enumerable":true,"configurable":false},
ARRAY_BUFFER: {"value":34962,"writable":false,"enumerable":true,"configurable":false},
ELEMENT_ARRAY_BUFFER: {"value":34963,"writable":false,"enumerable":true,"configurable":false},
ARRAY_BUFFER_BINDING: {"value":34964,"writable":false,"enumerable":true,"configurable":false},
ELEMENT_ARRAY_BUFFER_BINDING: {"value":34965,"writable":false,"enumerable":true,"configurable":false},
STREAM_DRAW: {"value":35040,"writable":false,"enumerable":true,"configurable":false},
STATIC_DRAW: {"value":35044,"writable":false,"enumerable":true,"configurable":false},
DYNAMIC_DRAW: {"value":35048,"writable":false,"enumerable":true,"configurable":false},
BUFFER_SIZE: {"value":34660,"writable":false,"enumerable":true,"configurable":false},
BUFFER_USAGE: {"value":34661,"writable":false,"enumerable":true,"configurable":false},
CURRENT_VERTEX_ATTRIB: {"value":34342,"writable":false,"enumerable":true,"configurable":false},
FRONT: {"value":1028,"writable":false,"enumerable":true,"configurable":false},
BACK: {"value":1029,"writable":false,"enumerable":true,"configurable":false},
FRONT_AND_BACK: {"value":1032,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_2D: {"value":3553,"writable":false,"enumerable":true,"configurable":false},
CULL_FACE: {"value":2884,"writable":false,"enumerable":true,"configurable":false},
BLEND: {"value":3042,"writable":false,"enumerable":true,"configurable":false},
DITHER: {"value":3024,"writable":false,"enumerable":true,"configurable":false},
STENCIL_TEST: {"value":2960,"writable":false,"enumerable":true,"configurable":false},
DEPTH_TEST: {"value":2929,"writable":false,"enumerable":true,"configurable":false},
SCISSOR_TEST: {"value":3089,"writable":false,"enumerable":true,"configurable":false},
POLYGON_OFFSET_FILL: {"value":32823,"writable":false,"enumerable":true,"configurable":false},
SAMPLE_ALPHA_TO_COVERAGE: {"value":32926,"writable":false,"enumerable":true,"configurable":false},
SAMPLE_COVERAGE: {"value":32928,"writable":false,"enumerable":true,"configurable":false},
NO_ERROR: {"value":0,"writable":false,"enumerable":true,"configurable":false},
INVALID_ENUM: {"value":1280,"writable":false,"enumerable":true,"configurable":false},
INVALID_VALUE: {"value":1281,"writable":false,"enumerable":true,"configurable":false},
INVALID_OPERATION: {"value":1282,"writable":false,"enumerable":true,"configurable":false},
OUT_OF_MEMORY: {"value":1285,"writable":false,"enumerable":true,"configurable":false},
CW: {"value":2304,"writable":false,"enumerable":true,"configurable":false},
CCW: {"value":2305,"writable":false,"enumerable":true,"configurable":false},
LINE_WIDTH: {"value":2849,"writable":false,"enumerable":true,"configurable":false},
ALIASED_POINT_SIZE_RANGE: {"value":33901,"writable":false,"enumerable":true,"configurable":false},
ALIASED_LINE_WIDTH_RANGE: {"value":33902,"writable":false,"enumerable":true,"configurable":false},
CULL_FACE_MODE: {"value":2885,"writable":false,"enumerable":true,"configurable":false},
FRONT_FACE: {"value":2886,"writable":false,"enumerable":true,"configurable":false},
DEPTH_RANGE: {"value":2928,"writable":false,"enumerable":true,"configurable":false},
DEPTH_WRITEMASK: {"value":2930,"writable":false,"enumerable":true,"configurable":false},
DEPTH_CLEAR_VALUE: {"value":2931,"writable":false,"enumerable":true,"configurable":false},
DEPTH_FUNC: {"value":2932,"writable":false,"enumerable":true,"configurable":false},
STENCIL_CLEAR_VALUE: {"value":2961,"writable":false,"enumerable":true,"configurable":false},
STENCIL_FUNC: {"value":2962,"writable":false,"enumerable":true,"configurable":false},
STENCIL_FAIL: {"value":2964,"writable":false,"enumerable":true,"configurable":false},
STENCIL_PASS_DEPTH_FAIL: {"value":2965,"writable":false,"enumerable":true,"configurable":false},
STENCIL_PASS_DEPTH_PASS: {"value":2966,"writable":false,"enumerable":true,"configurable":false},
STENCIL_REF: {"value":2967,"writable":false,"enumerable":true,"configurable":false},
STENCIL_VALUE_MASK: {"value":2963,"writable":false,"enumerable":true,"configurable":false},
STENCIL_WRITEMASK: {"value":2968,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BACK_FUNC: {"value":34816,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BACK_FAIL: {"value":34817,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BACK_PASS_DEPTH_FAIL: {"value":34818,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BACK_PASS_DEPTH_PASS: {"value":34819,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BACK_REF: {"value":36003,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BACK_VALUE_MASK: {"value":36004,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BACK_WRITEMASK: {"value":36005,"writable":false,"enumerable":true,"configurable":false},
VIEWPORT: {"value":2978,"writable":false,"enumerable":true,"configurable":false},
SCISSOR_BOX: {"value":3088,"writable":false,"enumerable":true,"configurable":false},
COLOR_CLEAR_VALUE: {"value":3106,"writable":false,"enumerable":true,"configurable":false},
COLOR_WRITEMASK: {"value":3107,"writable":false,"enumerable":true,"configurable":false},
UNPACK_ALIGNMENT: {"value":3317,"writable":false,"enumerable":true,"configurable":false},
PACK_ALIGNMENT: {"value":3333,"writable":false,"enumerable":true,"configurable":false},
MAX_TEXTURE_SIZE: {"value":3379,"writable":false,"enumerable":true,"configurable":false},
MAX_VIEWPORT_DIMS: {"value":3386,"writable":false,"enumerable":true,"configurable":false},
SUBPIXEL_BITS: {"value":3408,"writable":false,"enumerable":true,"configurable":false},
RED_BITS: {"value":3410,"writable":false,"enumerable":true,"configurable":false},
GREEN_BITS: {"value":3411,"writable":false,"enumerable":true,"configurable":false},
BLUE_BITS: {"value":3412,"writable":false,"enumerable":true,"configurable":false},
ALPHA_BITS: {"value":3413,"writable":false,"enumerable":true,"configurable":false},
DEPTH_BITS: {"value":3414,"writable":false,"enumerable":true,"configurable":false},
STENCIL_BITS: {"value":3415,"writable":false,"enumerable":true,"configurable":false},
POLYGON_OFFSET_UNITS: {"value":10752,"writable":false,"enumerable":true,"configurable":false},
POLYGON_OFFSET_FACTOR: {"value":32824,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_BINDING_2D: {"value":32873,"writable":false,"enumerable":true,"configurable":false},
SAMPLE_BUFFERS: {"value":32936,"writable":false,"enumerable":true,"configurable":false},
SAMPLES: {"value":32937,"writable":false,"enumerable":true,"configurable":false},
SAMPLE_COVERAGE_VALUE: {"value":32938,"writable":false,"enumerable":true,"configurable":false},
SAMPLE_COVERAGE_INVERT: {"value":32939,"writable":false,"enumerable":true,"configurable":false},
COMPRESSED_TEXTURE_FORMATS: {"value":34467,"writable":false,"enumerable":true,"configurable":false},
DONT_CARE: {"value":4352,"writable":false,"enumerable":true,"configurable":false},
FASTEST: {"value":4353,"writable":false,"enumerable":true,"configurable":false},
NICEST: {"value":4354,"writable":false,"enumerable":true,"configurable":false},
GENERATE_MIPMAP_HINT: {"value":33170,"writable":false,"enumerable":true,"configurable":false},
BYTE: {"value":5120,"writable":false,"enumerable":true,"configurable":false},
UNSIGNED_BYTE: {"value":5121,"writable":false,"enumerable":true,"configurable":false},
SHORT: {"value":5122,"writable":false,"enumerable":true,"configurable":false},
UNSIGNED_SHORT: {"value":5123,"writable":false,"enumerable":true,"configurable":false},
INT: {"value":5124,"writable":false,"enumerable":true,"configurable":false},
UNSIGNED_INT: {"value":5125,"writable":false,"enumerable":true,"configurable":false},
FLOAT: {"value":5126,"writable":false,"enumerable":true,"configurable":false},
DEPTH_COMPONENT: {"value":6402,"writable":false,"enumerable":true,"configurable":false},
ALPHA: {"value":6406,"writable":false,"enumerable":true,"configurable":false},
RGB: {"value":6407,"writable":false,"enumerable":true,"configurable":false},
RGBA: {"value":6408,"writable":false,"enumerable":true,"configurable":false},
LUMINANCE: {"value":6409,"writable":false,"enumerable":true,"configurable":false},
LUMINANCE_ALPHA: {"value":6410,"writable":false,"enumerable":true,"configurable":false},
UNSIGNED_SHORT_4_4_4_4: {"value":32819,"writable":false,"enumerable":true,"configurable":false},
UNSIGNED_SHORT_5_5_5_1: {"value":32820,"writable":false,"enumerable":true,"configurable":false},
UNSIGNED_SHORT_5_6_5: {"value":33635,"writable":false,"enumerable":true,"configurable":false},
FRAGMENT_SHADER: {"value":35632,"writable":false,"enumerable":true,"configurable":false},
VERTEX_SHADER: {"value":35633,"writable":false,"enumerable":true,"configurable":false},
MAX_VERTEX_ATTRIBS: {"value":34921,"writable":false,"enumerable":true,"configurable":false},
MAX_VERTEX_UNIFORM_VECTORS: {"value":36347,"writable":false,"enumerable":true,"configurable":false},
MAX_VARYING_VECTORS: {"value":36348,"writable":false,"enumerable":true,"configurable":false},
MAX_COMBINED_TEXTURE_IMAGE_UNITS: {"value":35661,"writable":false,"enumerable":true,"configurable":false},
MAX_VERTEX_TEXTURE_IMAGE_UNITS: {"value":35660,"writable":false,"enumerable":true,"configurable":false},
MAX_TEXTURE_IMAGE_UNITS: {"value":34930,"writable":false,"enumerable":true,"configurable":false},
MAX_FRAGMENT_UNIFORM_VECTORS: {"value":36349,"writable":false,"enumerable":true,"configurable":false},
SHADER_TYPE: {"value":35663,"writable":false,"enumerable":true,"configurable":false},
DELETE_STATUS: {"value":35712,"writable":false,"enumerable":true,"configurable":false},
LINK_STATUS: {"value":35714,"writable":false,"enumerable":true,"configurable":false},
VALIDATE_STATUS: {"value":35715,"writable":false,"enumerable":true,"configurable":false},
ATTACHED_SHADERS: {"value":35717,"writable":false,"enumerable":true,"configurable":false},
ACTIVE_UNIFORMS: {"value":35718,"writable":false,"enumerable":true,"configurable":false},
ACTIVE_ATTRIBUTES: {"value":35721,"writable":false,"enumerable":true,"configurable":false},
SHADING_LANGUAGE_VERSION: {"value":35724,"writable":false,"enumerable":true,"configurable":false},
CURRENT_PROGRAM: {"value":35725,"writable":false,"enumerable":true,"configurable":false},
NEVER: {"value":512,"writable":false,"enumerable":true,"configurable":false},
LESS: {"value":513,"writable":false,"enumerable":true,"configurable":false},
EQUAL: {"value":514,"writable":false,"enumerable":true,"configurable":false},
LEQUAL: {"value":515,"writable":false,"enumerable":true,"configurable":false},
GREATER: {"value":516,"writable":false,"enumerable":true,"configurable":false},
NOTEQUAL: {"value":517,"writable":false,"enumerable":true,"configurable":false},
GEQUAL: {"value":518,"writable":false,"enumerable":true,"configurable":false},
ALWAYS: {"value":519,"writable":false,"enumerable":true,"configurable":false},
KEEP: {"value":7680,"writable":false,"enumerable":true,"configurable":false},
REPLACE: {"value":7681,"writable":false,"enumerable":true,"configurable":false},
INCR: {"value":7682,"writable":false,"enumerable":true,"configurable":false},
DECR: {"value":7683,"writable":false,"enumerable":true,"configurable":false},
INVERT: {"value":5386,"writable":false,"enumerable":true,"configurable":false},
INCR_WRAP: {"value":34055,"writable":false,"enumerable":true,"configurable":false},
DECR_WRAP: {"value":34056,"writable":false,"enumerable":true,"configurable":false},
VENDOR: {"value":7936,"writable":false,"enumerable":true,"configurable":false},
RENDERER: {"value":7937,"writable":false,"enumerable":true,"configurable":false},
VERSION: {"value":7938,"writable":false,"enumerable":true,"configurable":false},
NEAREST: {"value":9728,"writable":false,"enumerable":true,"configurable":false},
LINEAR: {"value":9729,"writable":false,"enumerable":true,"configurable":false},
NEAREST_MIPMAP_NEAREST: {"value":9984,"writable":false,"enumerable":true,"configurable":false},
LINEAR_MIPMAP_NEAREST: {"value":9985,"writable":false,"enumerable":true,"configurable":false},
NEAREST_MIPMAP_LINEAR: {"value":9986,"writable":false,"enumerable":true,"configurable":false},
LINEAR_MIPMAP_LINEAR: {"value":9987,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_MAG_FILTER: {"value":10240,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_MIN_FILTER: {"value":10241,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_WRAP_S: {"value":10242,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_WRAP_T: {"value":10243,"writable":false,"enumerable":true,"configurable":false},
TEXTURE: {"value":5890,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_CUBE_MAP: {"value":34067,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_BINDING_CUBE_MAP: {"value":34068,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_CUBE_MAP_POSITIVE_X: {"value":34069,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_CUBE_MAP_NEGATIVE_X: {"value":34070,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_CUBE_MAP_POSITIVE_Y: {"value":34071,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_CUBE_MAP_NEGATIVE_Y: {"value":34072,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_CUBE_MAP_POSITIVE_Z: {"value":34073,"writable":false,"enumerable":true,"configurable":false},
TEXTURE_CUBE_MAP_NEGATIVE_Z: {"value":34074,"writable":false,"enumerable":true,"configurable":false},
MAX_CUBE_MAP_TEXTURE_SIZE: {"value":34076,"writable":false,"enumerable":true,"configurable":false},
TEXTURE0: {"value":33984,"writable":false,"enumerable":true,"configurable":false},
TEXTURE1: {"value":33985,"writable":false,"enumerable":true,"configurable":false},
TEXTURE2: {"value":33986,"writable":false,"enumerable":true,"configurable":false},
TEXTURE3: {"value":33987,"writable":false,"enumerable":true,"configurable":false},
TEXTURE4: {"value":33988,"writable":false,"enumerable":true,"configurable":false},
TEXTURE5: {"value":33989,"writable":false,"enumerable":true,"configurable":false},
TEXTURE6: {"value":33990,"writable":false,"enumerable":true,"configurable":false},
TEXTURE7: {"value":33991,"writable":false,"enumerable":true,"configurable":false},
TEXTURE8: {"value":33992,"writable":false,"enumerable":true,"configurable":false},
TEXTURE9: {"value":33993,"writable":false,"enumerable":true,"configurable":false},
TEXTURE10: {"value":33994,"writable":false,"enumerable":true,"configurable":false},
TEXTURE11: {"value":33995,"writable":false,"enumerable":true,"configurable":false},
TEXTURE12: {"value":33996,"writable":false,"enumerable":true,"configurable":false},
TEXTURE13: {"value":33997,"writable":false,"enumerable":true,"configurable":false},
TEXTURE14: {"value":33998,"writable":false,"enumerable":true,"configurable":false},
TEXTURE15: {"value":33999,"writable":false,"enumerable":true,"configurable":false},
TEXTURE16: {"value":34000,"writable":false,"enumerable":true,"configurable":false},
TEXTURE17: {"value":34001,"writable":false,"enumerable":true,"configurable":false},
TEXTURE18: {"value":34002,"writable":false,"enumerable":true,"configurable":false},
TEXTURE19: {"value":34003,"writable":false,"enumerable":true,"configurable":false},
TEXTURE20: {"value":34004,"writable":false,"enumerable":true,"configurable":false},
TEXTURE21: {"value":34005,"writable":false,"enumerable":true,"configurable":false},
TEXTURE22: {"value":34006,"writable":false,"enumerable":true,"configurable":false},
TEXTURE23: {"value":34007,"writable":false,"enumerable":true,"configurable":false},
TEXTURE24: {"value":34008,"writable":false,"enumerable":true,"configurable":false},
TEXTURE25: {"value":34009,"writable":false,"enumerable":true,"configurable":false},
TEXTURE26: {"value":34010,"writable":false,"enumerable":true,"configurable":false},
TEXTURE27: {"value":34011,"writable":false,"enumerable":true,"configurable":false},
TEXTURE28: {"value":34012,"writable":false,"enumerable":true,"configurable":false},
TEXTURE29: {"value":34013,"writable":false,"enumerable":true,"configurable":false},
TEXTURE30: {"value":34014,"writable":false,"enumerable":true,"configurable":false},
TEXTURE31: {"value":34015,"writable":false,"enumerable":true,"configurable":false},
ACTIVE_TEXTURE: {"value":34016,"writable":false,"enumerable":true,"configurable":false},
REPEAT: {"value":10497,"writable":false,"enumerable":true,"configurable":false},
CLAMP_TO_EDGE: {"value":33071,"writable":false,"enumerable":true,"configurable":false},
MIRRORED_REPEAT: {"value":33648,"writable":false,"enumerable":true,"configurable":false},
FLOAT_VEC2: {"value":35664,"writable":false,"enumerable":true,"configurable":false},
FLOAT_VEC3: {"value":35665,"writable":false,"enumerable":true,"configurable":false},
FLOAT_VEC4: {"value":35666,"writable":false,"enumerable":true,"configurable":false},
INT_VEC2: {"value":35667,"writable":false,"enumerable":true,"configurable":false},
INT_VEC3: {"value":35668,"writable":false,"enumerable":true,"configurable":false},
INT_VEC4: {"value":35669,"writable":false,"enumerable":true,"configurable":false},
BOOL: {"value":35670,"writable":false,"enumerable":true,"configurable":false},
BOOL_VEC2: {"value":35671,"writable":false,"enumerable":true,"configurable":false},
BOOL_VEC3: {"value":35672,"writable":false,"enumerable":true,"configurable":false},
BOOL_VEC4: {"value":35673,"writable":false,"enumerable":true,"configurable":false},
FLOAT_MAT2: {"value":35674,"writable":false,"enumerable":true,"configurable":false},
FLOAT_MAT3: {"value":35675,"writable":false,"enumerable":true,"configurable":false},
FLOAT_MAT4: {"value":35676,"writable":false,"enumerable":true,"configurable":false},
SAMPLER_2D: {"value":35678,"writable":false,"enumerable":true,"configurable":false},
SAMPLER_CUBE: {"value":35680,"writable":false,"enumerable":true,"configurable":false},
VERTEX_ATTRIB_ARRAY_ENABLED: {"value":34338,"writable":false,"enumerable":true,"configurable":false},
VERTEX_ATTRIB_ARRAY_SIZE: {"value":34339,"writable":false,"enumerable":true,"configurable":false},
VERTEX_ATTRIB_ARRAY_STRIDE: {"value":34340,"writable":false,"enumerable":true,"configurable":false},
VERTEX_ATTRIB_ARRAY_TYPE: {"value":34341,"writable":false,"enumerable":true,"configurable":false},
VERTEX_ATTRIB_ARRAY_NORMALIZED: {"value":34922,"writable":false,"enumerable":true,"configurable":false},
VERTEX_ATTRIB_ARRAY_POINTER: {"value":34373,"writable":false,"enumerable":true,"configurable":false},
VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: {"value":34975,"writable":false,"enumerable":true,"configurable":false},
IMPLEMENTATION_COLOR_READ_TYPE: {"value":35738,"writable":false,"enumerable":true,"configurable":false},
IMPLEMENTATION_COLOR_READ_FORMAT: {"value":35739,"writable":false,"enumerable":true,"configurable":false},
COMPILE_STATUS: {"value":35713,"writable":false,"enumerable":true,"configurable":false},
LOW_FLOAT: {"value":36336,"writable":false,"enumerable":true,"configurable":false},
MEDIUM_FLOAT: {"value":36337,"writable":false,"enumerable":true,"configurable":false},
HIGH_FLOAT: {"value":36338,"writable":false,"enumerable":true,"configurable":false},
LOW_INT: {"value":36339,"writable":false,"enumerable":true,"configurable":false},
MEDIUM_INT: {"value":36340,"writable":false,"enumerable":true,"configurable":false},
HIGH_INT: {"value":36341,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER: {"value":36160,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER: {"value":36161,"writable":false,"enumerable":true,"configurable":false},
RGBA4: {"value":32854,"writable":false,"enumerable":true,"configurable":false},
RGB5_A1: {"value":32855,"writable":false,"enumerable":true,"configurable":false},
RGB565: {"value":36194,"writable":false,"enumerable":true,"configurable":false},
DEPTH_COMPONENT16: {"value":33189,"writable":false,"enumerable":true,"configurable":false},
STENCIL_INDEX8: {"value":36168,"writable":false,"enumerable":true,"configurable":false},
DEPTH_STENCIL: {"value":34041,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_WIDTH: {"value":36162,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_HEIGHT: {"value":36163,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_INTERNAL_FORMAT: {"value":36164,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_RED_SIZE: {"value":36176,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_GREEN_SIZE: {"value":36177,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_BLUE_SIZE: {"value":36178,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_ALPHA_SIZE: {"value":36179,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_DEPTH_SIZE: {"value":36180,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_STENCIL_SIZE: {"value":36181,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: {"value":36048,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: {"value":36049,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: {"value":36050,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: {"value":36051,"writable":false,"enumerable":true,"configurable":false},
COLOR_ATTACHMENT0: {"value":36064,"writable":false,"enumerable":true,"configurable":false},
DEPTH_ATTACHMENT: {"value":36096,"writable":false,"enumerable":true,"configurable":false},
STENCIL_ATTACHMENT: {"value":36128,"writable":false,"enumerable":true,"configurable":false},
DEPTH_STENCIL_ATTACHMENT: {"value":33306,"writable":false,"enumerable":true,"configurable":false},
NONE: {"value":0,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_COMPLETE: {"value":36053,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_INCOMPLETE_ATTACHMENT: {"value":36054,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: {"value":36055,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_INCOMPLETE_DIMENSIONS: {"value":36057,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_UNSUPPORTED: {"value":36061,"writable":false,"enumerable":true,"configurable":false},
FRAMEBUFFER_BINDING: {"value":36006,"writable":false,"enumerable":true,"configurable":false},
RENDERBUFFER_BINDING: {"value":36007,"writable":false,"enumerable":true,"configurable":false},
MAX_RENDERBUFFER_SIZE: {"value":34024,"writable":false,"enumerable":true,"configurable":false},
INVALID_FRAMEBUFFER_OPERATION: {"value":1286,"writable":false,"enumerable":true,"configurable":false},
UNPACK_FLIP_Y_WEBGL: {"value":37440,"writable":false,"enumerable":true,"configurable":false},
UNPACK_PREMULTIPLY_ALPHA_WEBGL: {"value":37441,"writable":false,"enumerable":true,"configurable":false},
CONTEXT_LOST_WEBGL: {"value":37442,"writable":false,"enumerable":true,"configurable":false},
UNPACK_COLORSPACE_CONVERSION_WEBGL: {"value":37443,"writable":false,"enumerable":true,"configurable":false},
BROWSER_DEFAULT_WEBGL: {"value":37444,"writable":false,"enumerable":true,"configurable":false},
[Symbol.toStringTag]: {value:"WebGLRenderingContext",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Node.prototype, {
ELEMENT_NODE: {"value":1,"writable":false,"enumerable":true,"configurable":false},
ATTRIBUTE_NODE: {"value":2,"writable":false,"enumerable":true,"configurable":false},
TEXT_NODE: {"value":3,"writable":false,"enumerable":true,"configurable":false},
CDATA_SECTION_NODE: {"value":4,"writable":false,"enumerable":true,"configurable":false},
ENTITY_REFERENCE_NODE: {"value":5,"writable":false,"enumerable":true,"configurable":false},
ENTITY_NODE: {"value":6,"writable":false,"enumerable":true,"configurable":false},
PROCESSING_INSTRUCTION_NODE: {"value":7,"writable":false,"enumerable":true,"configurable":false},
COMMENT_NODE: {"value":8,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_NODE: {"value":9,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_TYPE_NODE: {"value":10,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_FRAGMENT_NODE: {"value":11,"writable":false,"enumerable":true,"configurable":false},
NOTATION_NODE: {"value":12,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_POSITION_DISCONNECTED: {"value":1,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_POSITION_PRECEDING: {"value":2,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_POSITION_FOLLOWING: {"value":4,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_POSITION_CONTAINS: {"value":8,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_POSITION_CONTAINED_BY: {"value":16,"writable":false,"enumerable":true,"configurable":false},
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: {"value":32,"writable":false,"enumerable":true,"configurable":false},
[Symbol.toStringTag]: {value:"Node",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Element.prototype, {
[Symbol.toStringTag]: {value:"Element",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLElement.prototype, {
onmouseenter: {"enumerable":true,"configurable":true},
onmouseleave: {"enumerable":true,"configurable":true},
[Symbol.toStringTag]: {value:"HTMLElement",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLAnchorElement.prototype, {
href: {get(){ v_console_log(" [*] HTMLAnchorElement -> href[get]", "http://xn--ekk/");return "http://xn--ekk/" },set(){ v_console_log(" [*] HTMLAnchorElement -> href[set]", [].slice.call(arguments));return "http://xn--ekk/" }},
host: {get(){ v_console_log(" [*] HTMLAnchorElement -> host[get]", "ponos.zeronaught.com");return "ponos.zeronaught.com" }},
protocol: {get(){ v_console_log(" [*] HTMLAnchorElement -> protocol[get]", "https:");return "https:" }},
pathname: {get(){ v_console_log(" [*] HTMLAnchorElement -> pathname[get]", "/0");return "/0" }},
search: {get(){ v_console_log(" [*] HTMLAnchorElement -> search[get]", "?a=22a94427081eb8b3faade27031c844aeedb00212&b=A2iAeRCIAQAAT5srQTpvdAPDkqdULuTzzaBmwBVXI_Dp9Q1sY0R5B_CIq4SwAT3gXZuuchZ2wH8AAOfvAAAAAA==&c=-510806152");return "?a=22a94427081eb8b3faade27031c844aeedb00212&b=A2iAeRCIAQAAT5srQTpvdAPDkqdULuTzzaBmwBVXI_Dp9Q1sY0R5B_CIq4SwAT3gXZuuchZ2wH8AAOfvAAAAAA==&c=-510806152" }},
hash: {get(){ v_console_log(" [*] HTMLAnchorElement -> hash[get]", "");return "" }},
port: {get(){ v_console_log(" [*] HTMLAnchorElement -> port[get]", "");return "" }},
hostname: {get(){ v_console_log(" [*] HTMLAnchorElement -> hostname[get]", "ponos.zeronaught.com");return "ponos.zeronaught.com" }},
[Symbol.toStringTag]: {value:"HTMLAnchorElement",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLMediaElement.prototype, {
canPlayType: {value: v_saf(function canPlayType(){v_console_log(" [*] HTMLMediaElement -> canPlayType[func]", [].slice.call(arguments));})},
NETWORK_EMPTY: {"value":0,"writable":false,"enumerable":true,"configurable":false},
NETWORK_IDLE: {"value":1,"writable":false,"enumerable":true,"configurable":false},
NETWORK_LOADING: {"value":2,"writable":false,"enumerable":true,"configurable":false},
NETWORK_NO_SOURCE: {"value":3,"writable":false,"enumerable":true,"configurable":false},
HAVE_NOTHING: {"value":0,"writable":false,"enumerable":true,"configurable":false},
HAVE_METADATA: {"value":1,"writable":false,"enumerable":true,"configurable":false},
HAVE_CURRENT_DATA: {"value":2,"writable":false,"enumerable":true,"configurable":false},
HAVE_FUTURE_DATA: {"value":3,"writable":false,"enumerable":true,"configurable":false},
HAVE_ENOUGH_DATA: {"value":4,"writable":false,"enumerable":true,"configurable":false},
[Symbol.toStringTag]: {value:"HTMLMediaElement",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Window.prototype, {
TEMPORARY: {"value":0,"writable":false,"enumerable":true,"configurable":false},
PERSISTENT: {"value":1,"writable":false,"enumerable":true,"configurable":false},
[Symbol.toStringTag]: {value:"Window",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Screen.prototype, {
[Symbol.toStringTag]: {value:"Screen",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Document.prototype, {
onreadystatechange: {"enumerable":true,"configurable":true},
onmouseenter: {"enumerable":true,"configurable":true},
onmouseleave: {"enumerable":true,"configurable":true},
[Symbol.toStringTag]: {value:"Document",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLDocument.prototype, {
[Symbol.toStringTag]: {value:"HTMLDocument",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLHeadElement.prototype, {
[Symbol.toStringTag]: {value:"HTMLHeadElement",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLBodyElement.prototype, {
[Symbol.toStringTag]: {value:"HTMLBodyElement",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Navigator.prototype, {
[Symbol.toStringTag]: {value:"Navigator",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PluginArray.prototype, {
[Symbol.toStringTag]: {value:"PluginArray",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Plugin.prototype, {
[Symbol.toStringTag]: {value:"Plugin",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(MimeTypeArray.prototype, {
[Symbol.toStringTag]: {value:"MimeTypeArray",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(MimeType.prototype, {
[Symbol.toStringTag]: {value:"MimeType",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(CSSStyleDeclaration.prototype, {
[Symbol.toStringTag]: {value:"CSSStyleDeclaration",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Location.prototype, {
[Symbol.toStringTag]: {value:"Location",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLCanvasElement.prototype, {
[Symbol.toStringTag]: {value:"HTMLCanvasElement",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Performance.prototype, {
[Symbol.toStringTag]: {value:"Performance",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceEntry.prototype, {
[Symbol.toStringTag]: {value:"PerformanceEntry",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceElementTiming.prototype, {
[Symbol.toStringTag]: {value:"PerformanceElementTiming",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceEventTiming.prototype, {
[Symbol.toStringTag]: {value:"PerformanceEventTiming",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceLongTaskTiming.prototype, {
[Symbol.toStringTag]: {value:"PerformanceLongTaskTiming",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceMark.prototype, {
[Symbol.toStringTag]: {value:"PerformanceMark",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceMeasure.prototype, {
[Symbol.toStringTag]: {value:"PerformanceMeasure",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceNavigation.prototype, {
TYPE_NAVIGATE: {"value":0,"writable":false,"enumerable":true,"configurable":false},
TYPE_RELOAD: {"value":1,"writable":false,"enumerable":true,"configurable":false},
TYPE_BACK_FORWARD: {"value":2,"writable":false,"enumerable":true,"configurable":false},
TYPE_RESERVED: {"value":255,"writable":false,"enumerable":true,"configurable":false},
[Symbol.toStringTag]: {value:"PerformanceNavigation",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceResourceTiming.prototype, {
[Symbol.toStringTag]: {value:"PerformanceResourceTiming",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceNavigationTiming.prototype, {
[Symbol.toStringTag]: {value:"PerformanceNavigationTiming",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceObserver.prototype, {
[Symbol.toStringTag]: {value:"PerformanceObserver",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceObserverEntryList.prototype, {
[Symbol.toStringTag]: {value:"PerformanceObserverEntryList",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformancePaintTiming.prototype, {
[Symbol.toStringTag]: {value:"PerformancePaintTiming",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceServerTiming.prototype, {
[Symbol.toStringTag]: {value:"PerformanceServerTiming",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PerformanceTiming.prototype, {
[Symbol.toStringTag]: {value:"PerformanceTiming",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Image.prototype, {
[Symbol.toStringTag]: {value:"Image",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLImageElement.prototype, {
[Symbol.toStringTag]: {value:"HTMLImageElement",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(HTMLUnknownElement.prototype, {
[Symbol.toStringTag]: {value:"HTMLUnknownElement",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(XMLHttpRequestEventTarget.prototype, {
[Symbol.toStringTag]: {value:"XMLHttpRequestEventTarget",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(XMLHttpRequest.prototype, {
UNSENT: {"value":0,"writable":false,"enumerable":true,"configurable":false},
OPENED: {"value":1,"writable":false,"enumerable":true,"configurable":false},
HEADERS_RECEIVED: {"value":2,"writable":false,"enumerable":true,"configurable":false},
LOADING: {"value":3,"writable":false,"enumerable":true,"configurable":false},
DONE: {"value":4,"writable":false,"enumerable":true,"configurable":false},
[Symbol.toStringTag]: {value:"XMLHttpRequest",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Storage.prototype, {
[Symbol.toStringTag]: {value:"Storage",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(DOMTokenList.prototype, {
[Symbol.toStringTag]: {value:"DOMTokenList",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Touch.prototype, {
[Symbol.toStringTag]: {value:"Touch",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(UIEvent.prototype, {
[Symbol.toStringTag]: {value:"UIEvent",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(TouchEvent.prototype, {
[Symbol.toStringTag]: {value:"TouchEvent",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(Event.prototype, {
NONE: {"value":0,"writable":false,"enumerable":true,"configurable":false},
CAPTURING_PHASE: {"value":1,"writable":false,"enumerable":true,"configurable":false},
AT_TARGET: {"value":2,"writable":false,"enumerable":true,"configurable":false},
BUBBLING_PHASE: {"value":3,"writable":false,"enumerable":true,"configurable":false},
[Symbol.toStringTag]: {value:"Event",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(MouseEvent.prototype, {
[Symbol.toStringTag]: {value:"MouseEvent",writable:false,enumerable:false,configurable:true},
})
Object.defineProperties(PointerEvent.prototype, {
[Symbol.toStringTag]: {value:"PointerEvent",writable:false,enumerable:false,configurable:true},
})
if (typeof __dirname != 'undefined'){ __dirname = undefined }
if (typeof __filename != 'undefined'){ __filename = undefined }
if (typeof require != 'undefined'){ require = undefined }
if (typeof exports != 'undefined'){ exports = undefined }
if (typeof module != 'undefined'){ module = undefined }
if (typeof Buffer != 'undefined'){ Buffer = undefined }
var __globalThis__ = typeof global != 'undefined' ? global : this
var window = new Proxy(v_new(Window), {
get(a,b){ return a[b] || __globalThis__[b] },
set(a,b,c){
if (b == 'onclick' && typeof c == 'function') { window.addEventListener('click', c) }
if (b == 'onmousedown' && typeof c == 'function') { window.addEventListener('mousedown', c) }
if (b == 'onmouseup' && typeof c == 'function') { window.addEventListener('mouseup', c) }
__globalThis__[b] = a[b] = c
},
})
var v_hasOwnProperty = Object.prototype.hasOwnProperty
Object.prototype.hasOwnProperty = v_saf(function hasOwnProperty(){
if (this == window){ return v_hasOwnProperty.apply(__globalThis__, arguments) }
return v_hasOwnProperty.apply(this, arguments)
})
Object.defineProperties(__globalThis__, {[Symbol.toStringTag]:{value:'Window'}})
Object.defineProperties(__globalThis__, Object.getOwnPropertyDescriptors(window))
Object.setPrototypeOf(__globalThis__, Object.getPrototypeOf(window))
window.parent = window
window.top = window
window.frames = window
window.self = window
window.document = v_new(HTMLDocument)
window.location = v_new(Location)
window.navigator = v_new(Navigator)
window.screen = v_new(Screen)
window.clientInformation = navigator
window.performance = v_new(Performance)
window.sessionStorage = v_new(Storage)
window.localStorage = v_new(Storage)
function _createElement(name){
var htmlmap = {"HTMLElement":["abbr","address","article","aside","b","bdi","bdo","cite","code","dd","dfn","dt","em","figcaption","figure","footer","header","hgroup","i","kbd","main","mark","nav","noscript","rp","rt","ruby","s","samp","section","small","strong","sub","summary","sup","u","var","wbr"],"HTMLAnchorElement":["a"],"HTMLMediaElement":[],"HTMLHeadElement":["head"],"HTMLBodyElement":["body"],"HTMLCanvasElement":["canvas"],"HTMLImageElement":["img"],"HTMLUnknownElement":[]}
var ret, htmlmapkeys = Object.keys(htmlmap)
name = name.toLocaleLowerCase()
for (var i = 0; i < htmlmapkeys.length; i++) {
if (htmlmap[htmlmapkeys[i]].indexOf(name) != -1){
ret = v_new(window[htmlmapkeys[i]])
break
}
}
if (!ret){ ret = v_new(HTMLUnknownElement) }
if (typeof CSSStyleDeclaration != 'undefined') { ret.v_style = v_new(CSSStyleDeclaration) }
ret.v_tagName = name.toUpperCase()
return ret
}
function init_cookie(cookie){
var cache = (cookie || "").trim();
if (!cache){
cache = ''
}else if (cache.charAt(cache.length-1) != ';'){
cache += '; '
}else{
cache += ' '
}
Object.defineProperty(Document.prototype, 'cookie', {
get: function() {
var r = cache.slice(0,cache.length-2);
v_console_log(' [*] document -> cookie[get]', r)
return r
},
set: function(c) {
v_console_log(' [*] document -> cookie[set]', c)
var ncookie = c.split(";")[0].split("=");
if (!ncookie.slice(1).join('')){
return c
}
var key = ncookie[0].trim()
var val = ncookie.slice(1).join('').trim()
var newc = key+'='+val
var flag = false;
var temp = cache.split("; ").map(function(a) {
if (a.split("=")[0] === key) {
flag = true;
return newc;
}
return a;
})
cache = temp.join("; ");
if (!flag) {
cache += newc + "; ";
}
return cache;
}
});
}
function v_hook_href(obj, name, initurl){
var r = Object.defineProperty(obj, 'href', {
get: function(){
if (!(this.protocol) && !(this.host)){
r = ''
}else{
r = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + this.pathname + this.search + this.hash;
}
v_console_log(` [*] ${name||obj.constructor.name} -> href[get]:`, JSON.stringify(r))
return r
},
set: function(href){
href = href.trim()
v_console_log(` [*] ${name||obj.constructor.name} -> href[set]:`, JSON.stringify(href))
if (href.startsWith("http://") || href.startsWith("https://")){/*ok*/}
else if(href.startsWith("//")){ href = (this.protocol?this.protocol:'http:') + href}
else{ href = this.protocol+"//"+this.host + (this.port?":"+this.port:"") + '/' + ((href[0]=='/')?href.slice(1):href) }
var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
this.protocol = a[1] ? a[1] : "";
this.host = a[2] ? a[2] : "";
this.port = a[3] ? a[3] : "";
this.pathname = a[4] ? a[4] : "";
this.search = a[5] ? a[5] : "";
this.hash = a[6] ? a[6] : "";
this.hostname = this.host;
this.origin = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "");
}
});
if (initurl && initurl.trim()){ var temp=v_new_toggle; v_new_toggle = true; r.href = initurl; v_new_toggle = temp; }
return r
}
function v_hook_storage(){
Storage.prototype.clear = v_saf(function(){ v_console_log(` [*] Storage -> clear[func]:`); var self=this;Object.keys(self).forEach(function (key) { delete self[key]; }); }, 'clear')
Storage.prototype.getItem = v_saf(function(key){ v_console_log(` [*] Storage -> getItem[func]:`, key); var r = (this.hasOwnProperty(key)?String(this[key]):null); return r}, 'getItem')
Storage.prototype.setItem = v_saf(function(key, val){ v_console_log(` [*] Storage -> setItem[func]:`, key, val); this[key] = (val === undefined)?null:String(val) }, 'setItem')
Storage.prototype.key = v_saf(function(key){ v_console_log(` [*] Storage -> key[func]:`, key); return Object.keys(this)[key||0];} , 'key')
Storage.prototype.removeItem = v_saf(function(key){ v_console_log(` [*] Storage -> removeItem[func]:`, key); delete this[key];}, 'removeItem')
Object.defineProperty(Storage.prototype, 'length', {get: function(){
if(this===Storage.prototype){ throw TypeError('Illegal invocation') }return Object.keys(this).length
}})
window.sessionStorage = new Proxy(sessionStorage,{ set:function(a,b,c){ v_console_log(` [*] Storage -> [set]:`, b, c); return a[b]=String(c)}, get:function(a,b){ v_console_log(` [*] Storage -> [get]:`, b, a[b]); return a[b]},})
window.localStorage = new Proxy(localStorage,{ set:function(a,b,c){ v_console_log(` [*] Storage -> [set]:`, b, c); return a[b]=String(c)}, get:function(a,b){ v_console_log(` [*] Storage -> [get]:`, b, a[b]); return a[b]},})
}
function v_init_document(){
Document.prototype.getElementById = v_saf(function getElementById(name){ var r = v_getele(name, 'getElementById'); v_console_log(' [*] Document -> getElementById', name, r); return r })
Document.prototype.querySelector = v_saf(function querySelector(name){ var r = v_getele(name, 'querySelector'); v_console_log(' [*] Document -> querySelector', name, r); return r })
Document.prototype.getElementsByClassName = v_saf(function getElementsByClassName(name){ var r = v_geteles(name, 'getElementsByClassName'); v_console_log(' [*] Document -> getElementsByClassName', name, r); return r })
Document.prototype.getElementsByName = v_saf(function getElementsByName(name){ var r = v_geteles(name, 'getElementsByName'); v_console_log(' [*] Document -> getElementsByName', name, r); return r })
Document.prototype.getElementsByTagName = v_saf(function getElementsByTagName(name){ var r = v_geteles(name, 'getElementsByTagName'); v_console_log(' [*] Document -> getElementsByTagName', name, r); return r })
Document.prototype.getElementsByTagNameNS = v_saf(function getElementsByTagNameNS(name){ var r = v_geteles(name, 'getElementsByTagNameNS'); v_console_log(' [*] Document -> getElementsByTagNameNS', name, r); return r })
Document.prototype.querySelectorAll = v_saf(function querySelectorAll(name){ var r = v_geteles(name, 'querySelectorAll'); v_console_log(' [*] Document -> querySelectorAll', name, r); return r })
var v_head = v_new(HTMLHeadElement)
var v_body = v_new(HTMLBodyElement)
Object.defineProperties(Document.prototype, {
head: {get(){ v_console_log(" [*] Document -> head[get]", v_head);return v_head }},
body: {get(){ v_console_log(" [*] Document -> body[get]", v_body);return v_body }},
})
}
function v_init_canvas(){
HTMLCanvasElement.prototype.getContext = function(){if (arguments[0]=='2d'){var r = v_new(CanvasRenderingContext2D); return r}; if (arguments[0]=='webgl' || arguments[0]=='experimental-webgl'){var r = v_new(WebGLRenderingContext); r._canvas = this; return r}; return null}
HTMLCanvasElement.prototype.toDataURL = function(){return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAEYklEQVR4Xu3UAQkAAAwCwdm/9HI83BLIOdw5AgQIRAQWySkmAQIEzmB5AgIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlAABg+UHCBDICBisTFWCEiBgsPwAAQIZAYOVqUpQAgQMlh8gQCAjYLAyVQlKgIDB8gMECGQEDFamKkEJEDBYfoAAgYyAwcpUJSgBAgbLDxAgkBEwWJmqBCVAwGD5AQIEMgIGK1OVoAQIGCw/QIBARsBgZaoSlACBB1YxAJfjJb2jAAAAAElFTkSuQmCC"}
}
var v_start_stamp = +new Date
var v_fake_stamp = +new Date
function v_init_event_target(){
v_events = {}
function add_event(_this, x){
if (!v_events[x[0]]){
v_events[x[0]] = []
}
v_events[x[0]].push([_this, x[1].bind(_this)])
}
function _mk_mouse_event(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget){
if (type == 'click'){
var m = new v_saf(function PointerEvent(){})
m.pointerType = "mouse"
}else{
var m = new v_saf(function MouseEvent(){})
}
m.isTrusted = true
m.type = type
m.canBubble = canBubble
m.cancelable = cancelable
m.view = view
m.detail = detail
m.screenX = screenX; m.movementX = screenX
m.screenY = screenY; m.movementY = screenY
m.clientX = clientX; m.layerX = clientX; m.offsetX = clientX; m.pageX = clientX; m.x = clientX;
m.clientY = clientY; m.layerY = clientY; m.offsetY = clientY; m.pageY = clientY; m.y = clientY;
m.ctrlKey = ctrlKey
m.altKey = altKey
m.shiftKey = shiftKey
m.metaKey = metaKey
m.button = button
m.relatedTarget = relatedTarget
return m
}
function make_mouse(type, x, y){
return _mk_mouse_event(type, true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null)
}
function mouse_click(x, y){
for (var i = 0; i < (v_events['click'] || []).length; i++) { v_events['click'][i][1](make_mouse('click', x, y)) }
for (var i = 0; i < (v_events['mousedown'] || []).length; i++) { v_events['mousedown'][i][1](make_mouse('mousedown', x, y)) }
for (var i = 0; i < (v_events['mouseup'] || []).length; i++) { v_events['mouseup'][i][1](make_mouse('mouseup', x, y)) }
}
var offr = Math.random()
function make_touch(_this, type, x, y, timeStamp){
var offx = Math.random()
var offy = Math.random()
var t = v_new(new v_saf(function Touch(){}))
t = clientX = offx + x
t = clientY = offy + y
t = force = 1
t = identifier = 0
t = pageX = offx + x
t = pageY = offy + y
t = radiusX = 28 + offr
t = radiusY = 28 + offr
t = rotationAngle = 0
t = screenX = 0
t = screenY = 0
var e = v_new(new v_saf(function TouchEvent(){}))
e.isTrusted = true
e.altKey = false
e.bubbles = true
e.cancelBubble = false
e.cancelable = false
e.changedTouches = e.targetTouches = e.touches = [t]
e.composed = true
e.ctrlKey = false
e.currentTarget = null
e.defaultPrevented = false
e.detail = 0
e.eventPhase = 0
e.metaKey = false
e.path = _this == window ? [window] : [_this, window]
e.returnValue = true
e.shiftKey = false
e.sourceCapabilities = new v_saf(function InputDeviceCapabilities(){this.firesTouchEvents = true})
e.srcElement = _this
e.target = _this
e.type = type
e.timeStamp = timeStamp == undefined ? (new Date - v_start_stamp) : ((v_fake_stamp += Math.random()*20) - v_start_stamp)
e.view = window
e.which = 0
return e
}
function make_trace(x1, y1, x2, y2){
// 贝塞尔曲线
function step_len(x1, y1, x2, y2){
var ln = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
return (ln / 10) ^ 0
}
var slen = step_len(x1, y1, x2, y2)
if (slen < 3){
return []
}
function factorial(x){
for(var y = 1; x > 1; x--) {
y *= x
}
return y;
}
var lp = Math.random()
var rp = Math.random()
var xx1 = (x1 + (x2 - x1) / 12 * (4-lp*4)) ^ 0
var yy1 = (y1 + (y2 - y1) / 12 * (8+lp*4)) ^ 0
var xx2 = (x1 + (x2 - x1) / 12 * (8+rp*4)) ^ 0
var yy2 = (y1 + (y2 - y1) / 12 * (4-rp*4)) ^ 0
var points = [[x1, y1], [xx1, yy1], [xx2, yy2], [x2, y2]]
var N = points.length
var n = N - 1
var traces = []
var step = slen
for (var T = 0; T < step+1; T++) {
var t = T*(1/step)
var x = 0
var y = 0
for (var i = 0; i < N; i++) {
var B = factorial(n)*t**i*(1-t)**(n-i)/(factorial(i)*factorial(n-i))
x += points[i][0]*B
y += points[i][1]*B
}
traces.push([x^0, y^0])
}
return traces
}
function touch(x1, y1, x2, y2){
if (x2 == undefined && y2 == undefined){
x2 = x1
y2 = y1
}
var traces = make_trace(x1, y1, x2, y2)
console.log('traces:', traces)
for (var i = 0; i < (v_events['touchstart'] || []).length; i++) { v_events['touchstart'][i][1](make_touch(v_events['touchstart'][i][0], 'touchstart', x1, y1)) }
for (var j = 0; j < traces.length; j++) {
var x = traces[j][0]
var y = traces[j][0]
for (var i = 0; i < (v_events['touchmove'] || []).length; i++) { v_events['touchmove'][i][1](make_touch(v_events['touchmove'][i][0], 'touchmove', x, y)) }
}
for (var i = 0; i < (v_events['touchend'] || []).length; i++) { v_events['touchend'][i][1](make_touch(v_events['touchend'][i][0], 'touchend', x2, y2)) }
}
function mouse_move(x1, y1, x2, y2){
if (x2 == undefined && y2 == undefined){
x2 = x1
y2 = y1
}
var traces = make_trace(x1, y1, x2, y2)
console.log('traces:', traces)
for (var j = 0; j < traces.length; j++) {
var x = traces[j][0]
var y = traces[j][0]
for (var i = 0; i < (v_events['mousemove'] || []).length; i++) { v_events['mousemove'][i][1](make_touch(v_events['mousemove'][i][0], 'mousemove', x, y)) }
}
}
window.make_mouse = make_mouse
window.mouse_click = mouse_click
window.mouse_move = mouse_move
window.touch = touch
EventTarget.prototype.addEventListener = function(){v_console_log(' [*] EventTarget -> addEventListener[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
EventTarget.prototype.dispatchEvent = function(){v_console_log(' [*] EventTarget -> dispatchEvent[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
EventTarget.prototype.removeEventListener = function(){v_console_log(' [*] EventTarget -> removeEventListener[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
}
function v_init_Element_prototype(){
Element.prototype.getAnimations = Element.prototype.getAnimations || v_saf(function getAnimations(){v_console_log(" [*] Element -> getAnimations[func]", [].slice.call(arguments));})
Element.prototype.getAttribute = Element.prototype.getAttribute || v_saf(function getAttribute(){v_console_log(" [*] Element -> getAttribute[func]", [].slice.call(arguments));})
Element.prototype.getAttributeNS = Element.prototype.getAttributeNS || v_saf(function getAttributeNS(){v_console_log(" [*] Element -> getAttributeNS[func]", [].slice.call(arguments));})
Element.prototype.getAttributeNames = Element.prototype.getAttributeNames || v_saf(function getAttributeNames(){v_console_log(" [*] Element -> getAttributeNames[func]", [].slice.call(arguments));})
Element.prototype.getAttributeNode = Element.prototype.getAttributeNode || v_saf(function getAttributeNode(){v_console_log(" [*] Element -> getAttributeNode[func]", [].slice.call(arguments));})
Element.prototype.getAttributeNodeNS = Element.prototype.getAttributeNodeNS || v_saf(function getAttributeNodeNS(){v_console_log(" [*] Element -> getAttributeNodeNS[func]", [].slice.call(arguments));})
Element.prototype.getBoundingClientRect = Element.prototype.getBoundingClientRect || v_saf(function getBoundingClientRect(){v_console_log(" [*] Element -> getBoundingClientRect[func]", [].slice.call(arguments));})
Element.prototype.getClientRects = Element.prototype.getClientRects || v_saf(function getClientRects(){v_console_log(" [*] Element -> getClientRects[func]", [].slice.call(arguments));})
Element.prototype.getElementsByClassName = Element.prototype.getElementsByClassName || v_saf(function getElementsByClassName(){v_console_log(" [*] Element -> getElementsByClassName[func]", [].slice.call(arguments));})
Element.prototype.getElementsByTagName = Element.prototype.getElementsByTagName || v_saf(function getElementsByTagName(){v_console_log(" [*] Element -> getElementsByTagName[func]", [].slice.call(arguments));})
Element.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS || v_saf(function getElementsByTagNameNS(){v_console_log(" [*] Element -> getElementsByTagNameNS[func]", [].slice.call(arguments));})
Element.prototype.getInnerHTML = Element.prototype.getInnerHTML || v_saf(function getInnerHTML(){v_console_log(" [*] Element -> getInnerHTML[func]", [].slice.call(arguments));})
Element.prototype.hasAttribute = Element.prototype.hasAttribute || v_saf(function hasAttribute(){v_console_log(" [*] Element -> hasAttribute[func]", [].slice.call(arguments));})
Element.prototype.hasAttributeNS = Element.prototype.hasAttributeNS || v_saf(function hasAttributeNS(){v_console_log(" [*] Element -> hasAttributeNS[func]", [].slice.call(arguments));})
Element.prototype.hasAttributes = Element.prototype.hasAttributes || v_saf(function hasAttributes(){v_console_log(" [*] Element -> hasAttributes[func]", [].slice.call(arguments));})
Element.prototype.hasPointerCapture = Element.prototype.hasPointerCapture || v_saf(function hasPointerCapture(){v_console_log(" [*] Element -> hasPointerCapture[func]", [].slice.call(arguments));})
Element.prototype.webkitMatchesSelector = Element.prototype.webkitMatchesSelector || v_saf(function webkitMatchesSelector(){v_console_log(" [*] Element -> webkitMatchesSelector[func]", [].slice.call(arguments));})
}
function v_init_DOMTokenList_prototype(){
DOMTokenList.prototype.add = DOMTokenList.prototype.add || v_saf(function add(){v_console_log(" [*] DOMTokenList -> add[func]", [].slice.call(arguments));})
DOMTokenList.prototype.contains = DOMTokenList.prototype.contains || v_saf(function contains(){v_console_log(" [*] DOMTokenList -> contains[func]", [].slice.call(arguments));})
DOMTokenList.prototype.entries = DOMTokenList.prototype.entries || v_saf(function entries(){v_console_log(" [*] DOMTokenList -> entries[func]", [].slice.call(arguments));})
DOMTokenList.prototype.forEach = DOMTokenList.prototype.forEach || v_saf(function forEach(){v_console_log(" [*] DOMTokenList -> forEach[func]", [].slice.call(arguments));})
DOMTokenList.prototype.item = DOMTokenList.prototype.item || v_saf(function item(){v_console_log(" [*] DOMTokenList -> item[func]", [].slice.call(arguments));})
DOMTokenList.prototype.keys = DOMTokenList.prototype.keys || v_saf(function keys(){v_console_log(" [*] DOMTokenList -> keys[func]", [].slice.call(arguments));})
DOMTokenList.prototype.length = DOMTokenList.prototype.length || v_saf(function length(){v_console_log(" [*] DOMTokenList -> length[func]", [].slice.call(arguments));})
DOMTokenList.prototype.remove = DOMTokenList.prototype.remove || v_saf(function remove(){v_console_log(" [*] DOMTokenList -> remove[func]", [].slice.call(arguments));})
DOMTokenList.prototype.replace = DOMTokenList.prototype.replace || v_saf(function replace(){v_console_log(" [*] DOMTokenList -> replace[func]", [].slice.call(arguments));})
DOMTokenList.prototype.supports = DOMTokenList.prototype.supports || v_saf(function supports(){v_console_log(" [*] DOMTokenList -> supports[func]", [].slice.call(arguments));})
DOMTokenList.prototype.toggle = DOMTokenList.prototype.toggle || v_saf(function toggle(){v_console_log(" [*] DOMTokenList -> toggle[func]", [].slice.call(arguments));})
}
function v_init_CSSStyleDeclaration_prototype(){
CSSStyleDeclaration.prototype["zoom"] = ''
CSSStyleDeclaration.prototype["resize"] = ''
CSSStyleDeclaration.prototype["text-rendering"] = ''
CSSStyleDeclaration.prototype["text-align-last"] = ''
}
function v_init_PointerEvent_prototype(){
PointerEvent.prototype.getCoalescedEvents = v_saf(function getCoalescedEvents(){v_console_log(" [*] PointerEvent -> getCoalescedEvents[func]", [].slice.call(arguments));})
PointerEvent.prototype.getPredictedEvents = v_saf(function getPredictedEvents(){v_console_log(" [*] PointerEvent -> getPredictedEvents[func]", [].slice.call(arguments));})
}
function v_init_PerformanceTiming_prototype(){
try{
Object.defineProperties(PerformanceTiming.prototype, {
connectEnd: {set: undefined, enumerable: true, configurable: true, get: v_saf(function connectEnd(){v_console_log(" [*] PerformanceTiming -> connectEnd[get]", [].slice.call(arguments));})},
connectStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function connectStart(){v_console_log(" [*] PerformanceTiming -> connectStart[get]", [].slice.call(arguments));})},
domComplete: {set: undefined, enumerable: true, configurable: true, get: v_saf(function domComplete(){v_console_log(" [*] PerformanceTiming -> domComplete[get]", [].slice.call(arguments));})},
domContentLoadedEventEnd: {set: undefined, enumerable: true, configurable: true, get: v_saf(function domContentLoadedEventEnd(){v_console_log(" [*] PerformanceTiming -> domContentLoadedEventEnd[get]", [].slice.call(arguments));})},
domContentLoadedEventStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function domContentLoadedEventStart(){v_console_log(" [*] PerformanceTiming -> domContentLoadedEventStart[get]", [].slice.call(arguments));})},
domInteractive: {set: undefined, enumerable: true, configurable: true, get: v_saf(function domInteractive(){v_console_log(" [*] PerformanceTiming -> domInteractive[get]", [].slice.call(arguments));})},
domLoading: {set: undefined, enumerable: true, configurable: true, get: v_saf(function domLoading(){v_console_log(" [*] PerformanceTiming -> domLoading[get]", [].slice.call(arguments));})},
domainLookupEnd: {set: undefined, enumerable: true, configurable: true, get: v_saf(function domainLookupEnd(){v_console_log(" [*] PerformanceTiming -> domainLookupEnd[get]", [].slice.call(arguments));})},
domainLookupStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function domainLookupStart(){v_console_log(" [*] PerformanceTiming -> domainLookupStart[get]", [].slice.call(arguments));})},
fetchStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function fetchStart(){v_console_log(" [*] PerformanceTiming -> fetchStart[get]", [].slice.call(arguments));})},
loadEventEnd: {set: undefined, enumerable: true, configurable: true, get: v_saf(function loadEventEnd(){v_console_log(" [*] PerformanceTiming -> loadEventEnd[get]", [].slice.call(arguments));})},
loadEventStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function loadEventStart(){v_console_log(" [*] PerformanceTiming -> loadEventStart[get]", [].slice.call(arguments));})},
navigationStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function navigationStart(){v_console_log(" [*] PerformanceTiming -> navigationStart[get]", [].slice.call(arguments));})},
redirectEnd: {set: undefined, enumerable: true, configurable: true, get: v_saf(function redirectEnd(){v_console_log(" [*] PerformanceTiming -> redirectEnd[get]", [].slice.call(arguments));})},
redirectStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function redirectStart(){v_console_log(" [*] PerformanceTiming -> redirectStart[get]", [].slice.call(arguments));})},
requestStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function requestStart(){v_console_log(" [*] PerformanceTiming -> requestStart[get]", [].slice.call(arguments));})},
responseEnd: {set: undefined, enumerable: true, configurable: true, get: v_saf(function responseEnd(){v_console_log(" [*] PerformanceTiming -> responseEnd[get]", [].slice.call(arguments));})},
responseStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function responseStart(){v_console_log(" [*] PerformanceTiming -> responseStart[get]", [].slice.call(arguments));})},
secureConnectionStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function secureConnectionStart(){v_console_log(" [*] PerformanceTiming -> secureConnectionStart[get]", [].slice.call(arguments));})},
unloadEventEnd: {set: undefined, enumerable: true, configurable: true, get: v_saf(function unloadEventEnd(){v_console_log(" [*] PerformanceTiming -> unloadEventEnd[get]", [].slice.call(arguments));})},
unloadEventStart: {set: undefined, enumerable: true, configurable: true, get: v_saf(function unloadEventStart(){v_console_log(" [*] PerformanceTiming -> unloadEventStart[get]", [].slice.call(arguments));})},
})
}catch(e){}
}
function mk_atob_btoa(r){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);return{atob:function(r){var a,e,o,h,c,i,n;for(i=r.length,c=0,n="";c<i;){do{a=t[255&r.charCodeAt(c++)]}while(c<i&&-1==a);if(-1==a)break;do{e=t[255&r.charCodeAt(c++)]}while(c<i&&-1==e);if(-1==e)break;n+=String.fromCharCode(a<<2|(48&e)>>4);do{if(61==(o=255&r.charCodeAt(c++)))return n;o=t[o]}while(c<i&&-1==o);if(-1==o)break;n+=String.fromCharCode((15&e)<<4|(60&o)>>2);do{if(61==(h=255&r.charCodeAt(c++)))return n;h=t[h]}while(c<i&&-1==h);if(-1==h)break;n+=String.fromCharCode((3&o)<<6|h)}return n},btoa:function(r){var t,e,o,h,c,i;for(o=r.length,e=0,t="";e<o;){if(h=255&r.charCodeAt(e++),e==o){t+=a.charAt(h>>2),t+=a.charAt((3&h)<<4),t+="==";break}if(c=r.charCodeAt(e++),e==o){t+=a.charAt(h>>2),t+=a.charAt((3&h)<<4|(240&c)>>4),t+=a.charAt((15&c)<<2),t+="=";break}i=r.charCodeAt(e++),t+=a.charAt(h>>2),t+=a.charAt((3&h)<<4|(240&c)>>4),t+=a.charAt((15&c)<<2|(192&i)>>6),t+=a.charAt(63&i)}return t}}}
var atob_btoa = mk_atob_btoa()
window.btoa = window.btoa || v_saf(atob_btoa.btoa, 'btoa')
window.atob = window.atob || v_saf(atob_btoa.atob, 'atob')
init_cookie("")
v_hook_href(window.location, 'location', "file:///Users/wang/WebstormProjects/akm2.0/shape/wn/wn.index.html")
v_hook_storage()
v_init_document()
v_init_canvas()
v_init_event_target()
v_init_Element_prototype()
v_init_DOMTokenList_prototype()
v_init_CSSStyleDeclaration_prototype()
v_init_PointerEvent_prototype()
v_init_PerformanceTiming_prototype()
window.innerWidth = 1380
window.innerHeight = 859
window.outerHeight = 970
window.outerWidth = 2560
window.isSecureContext = true
window.origin = location.origin
function v_getele(name, func){
return null
}
function v_geteles(name, func){
return null
}
var v_Date = Date;
var v_base_time = +new Date;
(function(){
function ftime(){
return new v_Date() - v_base_time + v_to_time
}
Date = function(_Date) {
var bind = Function.bind;
var unbind = bind.bind(bind);
function instantiate(constructor, args) {
return new (unbind(constructor, null).apply(null, args));
}
var names = Object.getOwnPropertyNames(_Date);
for (var i = 0; i < names.length; i++) {
if (names[i]in Date)
continue;
var desc = Object.getOwnPropertyDescriptor(_Date, names[i]);
Object.defineProperty(Date, names[i], desc);
}
function Date() {
var date = instantiate(_Date, [ftime()]);
return date;
}
Date.prototype = _Date.prototype
return v_saf(Date);
}(Date);
Date.now = v_saf(function now(){ return ftime() })
})();
var v_to_time = +new v_Date
// var v_to_time = +new v_Date('Sat Sep 03 2022 11:11:58 GMT+0800') // 自定义起始时间
v_new_toggle = undefined;
Object.defineProperties(CanvasRenderingContext2D.prototype, {
filleStyleVal: {value:'', writable:true},
rectVal: {value:'', writable:true},
// filleStyleVal: {value:'', writable:true},
fillRect: {
value: v_saf(function fillRect() {
v_console_log(" [*] CanvasRenderingContext2D -> fillRect[func]", [].slice.call(arguments));
this.rectVal = arguments;
})
},
arc: {value: v_saf(function arc(){v_console_log(" [*] CanvasRenderingContext2D -> arc[func]", [].slice.call(arguments));})},
createLinearGradient: {value: v_saf(function createLinearGradient(){v_console_log(" [*] CanvasRenderingContext2D -> createLinearGradient[func]", [].slice.call(arguments));})},
moveTo: {value: v_saf(function moveTo(){v_console_log(" [*] CanvasRenderingContext2D -> moveTo[func]", [].slice.call(arguments)); this.moveToText = arguments;})},
lineTo: {value: v_saf(function lineTo(){v_console_log(" [*] CanvasRenderingContext2D -> lineTo[func]", [].slice.call(arguments)); this.lineToText = arguments })},
getImageData: {
value: v_saf(function getImageData() {
v_console_log(" [*] CanvasRenderingContext2D -> getImageData[func]", [].slice.call(arguments));
let t = v_new(ImageData)
if (arguments[0] == 18 && arguments[1] == 90){
console.log('ggiggg')
t.data = Uint8ClampedArray.from([214, 122, 6, 255])
t.width = 1;
t.height = 1;
}
if (arguments[0] == 38 && arguments[1] == 77){
console.log('ggiggg')
t.data = Uint8ClampedArray.from([255, 255, 255, 255])
t.width = 1;
t.height = 1;
}
t.imageData = arguments;
console.log(t)
return t
})
},
measureText: {
value: v_saf(function measureText() {
v_console_log(" [*] CanvasRenderingContext2D -> measureText[func]", [].slice.call(arguments));
let t = v_new(TextMetrics)
t.text = arguments
t.fontval = this.fontVal
console.log(t, this)
return t
})
},
fillText: {value: v_saf(function fillText(){v_console_log(" [*] CanvasRenderingContext2D -> fillText[func]", [].slice.call(arguments)); this.fillTextVal = arguments})},
fillStyle: {
set() {
v_console_log(" [*] CanvasRenderingContext2D -> fillStyle[set]", [].slice.call(arguments));
this.filleStyleVal = arguments;
},
get(){
v_console_log(" [*] CanvasRenderingContext2D -> fillStyle[get]", [].slice.call(arguments));
return this.filleStyleVal
}
},
lineWidth: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> lineWidth[set]", [].slice.call(arguments)); }},
strokeStyle: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> strokeStyle[set]", [].slice.call(arguments)); }, get() { v_console_log(" [*] CanvasRenderingContext2D -> strokeStyle[get]", [].slice.call(arguments)); }},
textBaseline: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> textBaseline[set]", [].slice.call(arguments)); }},
font: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> font[set]", [].slice.call(arguments)); this.fontVal = arguments[0]; this.fontVal = arguments[0] }},
shadowOffsetX: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> shadowOffsetX[set]", [].slice.call(arguments));this.shadowOffsetXText = arguments[0] }},
shadowOffsetY: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> shadowOffsetY[set]", [].slice.call(arguments)); this.shadowOffsetYText = arguments[0] }},
shadowBlur: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> shadowBlur[set]", [].slice.call(arguments)); this.shadowBlurText = arguments[0] }},
shadowColor: {set(){ v_console_log(" [*] CanvasRenderingContext2D -> shadowColor[set]", [].slice.call(arguments)); this.shadowColorText = arguments[0]}},
beginPath: {value: v_saf(function beginPath(){v_console_log(" [*] CanvasRenderingContext2D -> beginPath[func]", [].slice.call(arguments));})},
stroke: {value: v_saf(function stroke(){v_console_log(" [*] CanvasRenderingContext2D -> stroke[func]", [].slice.call(arguments));})},
closePath: {value: v_saf(function closePath(){v_console_log(" [*] CanvasRenderingContext2D -> closePath[func]", [].slice.call(arguments));})},
fill: {value: v_saf(function fill(){v_console_log(" [*] CanvasRenderingContext2D -> fill[func]", [].slice.call(arguments));})},
drawImage: {value: v_saf(function drawImage(){v_console_log(" [*] CanvasRenderingContext2D -> drawImage[func]", [].slice.call(arguments));})},
[Symbol.toStringTag]: {value:"CanvasRenderingContext2D",writable:false,enumerable:false,configurable:true},
})
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button onclick="sendXHr()">发送xhr请求</button>
</body>
</html>
<script src="src.js"></script>
<script>
document.addEventListener("visibilitychange", (eee) => {
console.log(eee)
});
var _send = XMLHttpRequest.prototype.send;
var _setRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
let hreaders = {};
XMLHttpRequest.prototype.send = function (){
console.log("send", arguments);
_send.apply(this, arguments)
}
XMLHttpRequest.prototype.setRequestHeader = function (k,v){
this.hreaders[k] = v
hreaders[k] = v
_setRequestHeader.apply(this, arguments);
}
function sendXHr() {
var xhr = new XMLHttpRequest();
let h = { "accept": "application/json",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
"api-version": "v3",
"application-channel": "Desktop_Web",
"booking-application-type": "NGB",
"cache-control": "no-cache",
"content-type": "application/json",
}
console.log('当前times', times)
// debug = true;
var xhr = new XMLHttpRequest();
xhr.open('POST', "https://www.southwest.com/api/air-booking/v1/air-booking/page/air/booking/shopping", false);
xhr.send('')
console.log(hreaders)
console.log('结束times', times)
debugger
}
console.log('当前times', window.times)
try {
sendXHr()
}catch (e){
console.log(e)
}
console.log('结束times', window.times)
debugger;
</script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment