Commit 2b166467 authored by wang's avatar wang

222

parent 1ede0d52
let plugins = navigator.plugins;
let plgs = {}
function getObj(r) {
return {
description: r.description,
suffixes: r.suffixes,
type: r.type,
}
}
for (let i = 0; i < plugins.length; i++) {
let p = plugins.item(i);
let pi = {}
let keys = ['0','1', 'application/pdf', 'text/pdf', 'description', 'filename', 'length', 'name'];
for (const key of keys) {
let r = p[key];
if (typeof r === 'object'){
r = getObj(r)
r.enabledPlugin = [];
}
pi[key] = r
}
plgs[i] = pi
}
......@@ -19,7 +19,6 @@ headers = {
"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):
......@@ -66,6 +65,7 @@ for i in range(100):
"isDomestic": False
}
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}'
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# proxy = 'http://127.0.0.1:7890'
session.proxies = {
......@@ -92,4 +92,4 @@ for i in range(100):
'brush_type':'headerB6',
})
print(r.text)
time.sleep(1)
time.sleep(3)
This source diff could not be displayed because it is too large. You can view the blob instead.
let proxy = function (tt, name) {
return new Proxy(tt, {
get(target, p, receiver) {
let res = Reflect.get(target, p, receiver);
console.log(`${name} get`, p, typeof res)
if (!['_registeredHandlers', 'window', '_currentEvent', '_eventListenerss'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
return proxy(res, `${name}.${p}`)
}
return res;
}
})
}
"use strict";
const vm = require("vm");
const webIDLConversions = require("webidl-conversions");
......@@ -246,6 +259,32 @@ function Window(options) {
// vm initialization is deferred until script processing is activated
this._globalProxy = this;
this._globalProxy = new Proxy(this._globalProxy, {
get(target, p, receiver) {
// if (p === 'addEventListener'){
// debugger;
// }
let res = Reflect.get(target, p, receiver);
if (p !== 'debug'){
console.log('window get', p, typeof res)
}
// console.log(Reflect.get(target, '_cf_chl_ctx', receiver))
if (!['_registeredHandlers', 'window', '_currentEvent', 'performance','debug','_eventListenerss'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
return proxy(res, p)
}
return res;
},
// set(target, p, newValue, receiver) {
// console.log('set window', p, newValue)
// if (typeof newValue === 'string' && newValue.startsWith('3g')) {
// _console(newValue)
// // process.exit(0)
// }
// return Reflect.set(target, p, newValue, receiver)
// }
})
Object.defineProperty(idlUtils.implForWrapper(this), idlUtils.wrapperSymbol, { get: () => this._globalProxy });
// List options explicitly to be clear which are passed through
......@@ -372,6 +411,9 @@ function Window(options) {
get self() {
return window._globalProxy;
},
get window() {
return window._globalProxy;
},
get parent() {
return window._parent;
},
......
......@@ -35,7 +35,7 @@ class EventImpl {
this._dispatchFlag = false;
this._path = [];
this.isTrusted = privateData.isTrusted || false;
this.isTrusted = true;
this.timeStamp = Date.now();
}
......@@ -176,7 +176,7 @@ class EventImpl {
this._stopImmediatePropagationFlag = false;
this._canceledFlag = false;
this.isTrusted = false;
this.isTrusted = true;
this.target = null;
this.bubbles = bubbles;
this.cancelable = cancelable;
......
......@@ -61,6 +61,13 @@ class EventTargetImpl {
callback,
options
});
if (!window._eventListenerss[type]){
window._eventListenerss[type] = []
}
window._eventListenerss[type].push({
callback,
options
});
}
removeEventListener(type, callback, options) {
......@@ -101,7 +108,7 @@ class EventTargetImpl {
]);
}
// eventImpl.isTrusted = false;
eventImpl.isTrusted = true;
// _console('dispatch', eventImpl)
return this._dispatch(eventImpl);
}
......@@ -292,11 +299,15 @@ function innerInvokeEventListeners(eventImpl, listeners, phase, itemInShadowTree
const { type, target } = eventImpl;
const wrapper = idlUtils.wrapperForImpl(target);
if (!listeners[type] && ['mousemove', 'keydown'].includes(type)){
listeners = window._eventListenerss
}
if (!listeners || !listeners[type]) {
return found;
}
if (type === 'mousemove'){
debugger
}
// Copy event listeners before iterating since the list can be modified during the iteration.
const handlers = listeners[type].slice();
......
......@@ -32,7 +32,9 @@ class MouseEventImpl extends UIEventImpl {
this.screenX = screenX;
this.screenY = screenY;
this.clientX = clientX;
this.pageX = clientX;
this.clientY = clientY;
this.pageY = clientY;
this.ctrlKey = ctrlKey;
this.altKey = altKey;
this.shiftKey = shiftKey;
......
......@@ -38,8 +38,8 @@ class UIEventImpl extends EventImpl {
initUIEvent(type, bubbles, cancelable, view, detail) {
if (view !== null) {
if (!isWindow(view)) {
throw new TypeError(`Failed to execute 'initUIEvent' on '${this.constructor.name.replace(/Impl$/, "")}': ` +
"parameter 4 is not of type 'Window'.");
// throw new TypeError(`Failed to execute 'initUIEvent' on '${this.constructor.name.replace(/Impl$/, "")}': ` +
// "parameter 4 is not of type 'Window'.");
}
}
......
......@@ -99,7 +99,7 @@ exports.install = (globalObject, globalNames) => {
for (let nextItem of tmp) {
if (exports.is(nextItem)) {
nextItem = utils.implForWrapper(nextItem);
} else if (utils.isArrayBuffer(nextItem)) {
// } else if (utils.isArrayBuffer(nextItem)) {
} else if (ArrayBuffer.isView(nextItem)) {
} else {
nextItem = conversions["USVString"](nextItem, {
......
......@@ -232,6 +232,11 @@ exports.install = (globalObject, globalNames) => {
return utils.tryWrapperForImpl(esValue[implSymbol].getElementsByClassName(...args));
}
featurePolicy() {
return function FeaturePolicy(){
}()
}
createElement(localName) {
// _console('createElement', localName);
const esValue = this !== null && this !== undefined ? this : globalObject;
......
......@@ -50,13 +50,14 @@ exports._internalSetup = (wrapper, globalObject) => {
wrapper,
Object.getOwnPropertyDescriptors({
get isTrusted() {
const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) {
throw new TypeError("'get isTrusted' called on an object that is not a valid instance of Event.");
}
return esValue[implSymbol]["isTrusted"];
return true
// const esValue = this !== null && this !== undefined ? this : globalObject;
//
// if (!exports.is(esValue)) {
// throw new TypeError("'get isTrusted' called on an object that is not a valid instance of Event.");
// }
//
// return esValue[implSymbol]["isTrusted"];
}
})
);
......
......@@ -94,21 +94,20 @@ exports.install = (globalObject, globalNames) => {
}
addEventListener(type, callback) {
// console.log('__addevent', type)
if (type==='click'){
callback({
isTrusted: true,
// pointerType: 'mouse',
// screenX: 258,
// screenY:391,
// timeStamp: 29703.25499999523,
// x: 23,
// y:39,
})
}
// if (type==='click'){
//
// callback({
// isTrusted: true,
// // pointerType: 'mouse',
// // screenX: 258,
// // screenY:391,
// // timeStamp: 29703.25499999523,
// // x: 23,
// // y:39,
//
// })
// }
const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) {
throw new TypeError("'addEventListener' called on an object that is not a valid instance of EventTarget.");
......
let proxy = function (tt, name) {
return new Proxy(tt, {
get(target, p, receiver) {
let res = Reflect.get(target, p, receiver);
console.log(`${name} get`, p, typeof res, res)
return res;
}
})
}
"use strict";
const conversions = require("webidl-conversions");
......@@ -111,7 +120,9 @@ exports.install = (globalObject, globalNames) => {
curArg = MouseEventInit.convert(curArg, { context: "Failed to construct 'MouseEvent': parameter 2" });
args.push(curArg);
}
return exports.setup(Object.create(new.target.prototype), globalObject, args);
let res = exports.setup(Object.create(new.target.prototype), globalObject, args);
// res = proxy(res, 'newInitMouseEvent')
return res;
}
getModifierState(keyArg) {
......@@ -319,10 +330,12 @@ exports.install = (globalObject, globalNames) => {
}
args.push(curArg);
}
return esValue[implSymbol].initMouseEvent(...args);
let res = esValue[implSymbol].initMouseEvent(...args);
return res;
}
get screenX() {
console.log('screenX')
const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) {
......@@ -351,7 +364,15 @@ exports.install = (globalObject, globalNames) => {
return esValue[implSymbol]["clientX"];
}
get pageX() {
const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) {
throw new TypeError("'get pageX' called on an object that is not a valid instance of MouseEvent.");
}
return esValue[implSymbol]["clientX"];
}
get clientY() {
const esValue = this !== null && this !== undefined ? this : globalObject;
......@@ -361,7 +382,15 @@ exports.install = (globalObject, globalNames) => {
return esValue[implSymbol]["clientY"];
}
get pageY() {
const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) {
throw new TypeError("'get pageY' called on an object that is not a valid instance of MouseEvent.");
}
return esValue[implSymbol]["clientY"];
}
get ctrlKey() {
const esValue = this !== null && this !== undefined ? this : globalObject;
......@@ -439,6 +468,8 @@ exports.install = (globalObject, globalNames) => {
screenY: { enumerable: true },
clientX: { enumerable: true },
clientY: { enumerable: true },
pageX: { enumerable: true },
pageY: { enumerable: true },
ctrlKey: { enumerable: true },
shiftKey: { enumerable: true },
altKey: { enumerable: true },
......@@ -456,7 +487,7 @@ exports.install = (globalObject, globalNames) => {
Object.defineProperty(globalObject, interfaceName, {
configurable: true,
writable: true,
value: MouseEvent
value: utils.v_saf(MouseEvent)
});
};
......
......@@ -85,7 +85,7 @@ var v_saf;
var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i);
function u(n, t, tag) {
return -1 == o(n) && (e(n), r(`function ${tag ? tag : ""}${t || n.name || ""}() { [native code] }`. replaceAll('get get', 'get'))), n
return -1 == o(n) && (e(n), r(`function ${tag ? tag : ""}${t || n.name || ""}() { [native code] }`.replaceAll('get get', 'get'))), n
}
Object.defineProperty(Function.prototype, "toString", {
......@@ -176,6 +176,41 @@ exports.install = (globalObject, globalNames) => {
return esValue[implSymbol]["productSub"];
}
get userAgentData() {
return {
"brands": [{"brand": "Not/A)Brand", "version": "99"}, {
"brand": "Google Chrome",
"version": "115"
}, {"brand": "Chromium", "version": "115"}], "mobile": false, "platform": "macOS",
getHighEntropyValues: function (e) {
console.log('getHighEntropyValues', e)
return {
then: function () {
return {
"architecture": "arm",
"brands": [
{
"brand": "Not/A)Brand",
"version": "99"
},
{
"brand": "Google Chrome",
"version": "115"
},
{
"brand": "Chromium",
"version": "115"
}
],
"mobile": false,
"platform": "macOS"
}
}
}
}
}
}
get userAgent() {
const esValue = this !== null && this !== undefined ? this : globalObject;
......@@ -247,8 +282,6 @@ exports.install = (globalObject, globalNames) => {
}
get hardwareConcurrency() {
const esValue = this !== null && this !== undefined ? this : globalObject;
......@@ -290,37 +323,37 @@ exports.install = (globalObject, globalNames) => {
}, undefined, 'get ')
},
mimeTypes: {enumerable: true,
get:v_saf(function mimeTypes() {
const esValue = this !== null && this !== undefined ? this : globalObject;
mimeTypes: {
enumerable: true,
get: v_saf(function mimeTypes() {
const esValue = this !== null && this !== undefined ? this : globalObject;
if (!exports.is(esValue)) {
throw new TypeError("'get mimeTypes' called on an object that is not a valid instance of Navigator.");
}
if (!exports.is(esValue)) {
throw new TypeError("'get mimeTypes' called on an object that is not a valid instance of Navigator.");
}
return utils.getSameObject(this, "mimeTypes", () => {
return utils.tryWrapperForImpl(esValue[implSymbol]["mimeTypes"]);
});
})},
return utils.getSameObject(this, "mimeTypes", () => {
return utils.tryWrapperForImpl(esValue[implSymbol]["mimeTypes"]);
});
})
},
hardwareConcurrency: {enumerable: true},
[Symbol.toStringTag]: {value: "Navigator", configurable: true}
});
let r = {}
Object.keys(Navigator.prototype).forEach(e=>{
r[e] = {
}
if (Object.getOwnPropertyDescriptor(Navigator.prototype, e)['value']){
r[e]['value']= v_saf(Object.getOwnPropertyDescriptor(Navigator.prototype, e)['value'])
}
Object.keys(Navigator.prototype).forEach(e => {
r[e] = {}
if (Object.getOwnPropertyDescriptor(Navigator.prototype, e)['value']) {
r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(Navigator.prototype, e)['value'])
}
if (Object.getOwnPropertyDescriptor(Navigator.prototype, e)['get']){
r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(Navigator.prototype, e)['get'],undefined, 'get ')
}
})
Object.defineProperties(Navigator.prototype, r)
if (Object.getOwnPropertyDescriptor(Navigator.prototype, e)['get']) {
r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(Navigator.prototype, e)['get'], undefined, 'get ')
}
})
Object.defineProperties(Navigator.prototype, r)
if (globalObject[ctorRegistrySymbol] === undefined) {
......
......@@ -213,6 +213,8 @@ exports.install = (globalObject, globalNames) => {
return esValue[implSymbol]["which"];
}
}
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}();
Object.defineProperties(UIEvent.prototype, {
initUIEvent: { enumerable: true },
view: { enumerable: true },
......@@ -228,7 +230,7 @@ exports.install = (globalObject, globalNames) => {
Object.defineProperty(globalObject, interfaceName, {
configurable: true,
writable: true,
value: UIEvent
value: v_saf(UIEvent)
});
};
......
......@@ -290,7 +290,6 @@ exports.install = (globalObject, globalNames) => {
}
send() {
console.log('xhr send', arguments)
console.log(this.headers)
return
const esValue = this !== null && this !== undefined ? this : globalObject;
......
......@@ -61,10 +61,29 @@ function isArrayIndexPropName(P) {
}
return true;
}
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, tag) {
return -1 == o(n) && (e(n), r(`function ${tag ? tag : ""}${t || n.name || ""}() { [native code] }`.replaceAll("get get", 'get'))), 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
}();
const byteLengthGetter =
Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, "byteLength").get;
function isArrayBuffer(value) {
if (value.includes('Offscreen')){
return true;
}
try {
byteLengthGetter.call(value);
return true;
......@@ -107,6 +126,7 @@ const asyncIteratorInit = Symbol("async iterator initialization steps");
const asyncIteratorEOI = Symbol("async iterator end of iteration");
module.exports = exports = {
v_saf,
isObject,
hasOwn,
wrapperSymbol,
......
......@@ -2,121 +2,163 @@
const idlUtils = require("../generated/utils");
var plugins = {
"0":
{
"description":"Portable Document Format",
"filename": "internal-pdf-viewer",
"length": 2,
"name": "PDF Viewer",
"text/pdf":{
"description":
"Portable Document Format", "suffixes":
"pdf", "type":
"text/pdf"
},
"application/pdf": {
description: "Portable Document Format",
enabledPlugin: [],
suffixes: "pdf",
type: "application/pdf",
}
}
,
"1":
{
"description":
"Portable Document Format", "filename":
"internal-pdf-viewer", "length":
2, "name":
"Chrome PDF Viewer", "text/pdf":
{
"description":
"Portable Document Format", "suffixes":
"pdf", "type":
"text/pdf"
},
"application/pdf": {
description: "Portable Document Format",
enabledPlugin: [],
suffixes: "pdf",
type: "application/pdf",
}
}
,
"2":
{
"description":
"Portable Document Format", "filename":
"internal-pdf-viewer", "length":
2, "name":
"Chromium PDF Viewer", "text/pdf":
{
"description":
"Portable Document Format", "suffixes":
"pdf", "type":
"text/pdf"
},
"application/pdf": {
description: "Portable Document Format",
enabledPlugin: [],
suffixes: "pdf",
type: "application/pdf",
}
}
,
"3":
{
"description":
"Portable Document Format", "filename":
"internal-pdf-viewer", "length":
2, "name":
"Microsoft Edge PDF Viewer", "text/pdf":
{
"description":
"Portable Document Format", "suffixes":
"pdf", "type":
"text/pdf"
},
"application/pdf": {
description: "Portable Document Format",
enabledPlugin: [],
suffixes: "pdf",
type: "application/pdf",
}
}
,
"4":
{
"description":
"Portable Document Format", "filename":
"internal-pdf-viewer", "length":
2, "name":
"WebKit built-in PDF", "text/pdf":
{
"description":
"Portable Document Format", "suffixes":
"pdf", "type":
"text/pdf"
},
"application/pdf": {
description: "Portable Document Format",
enabledPlugin: [],
suffixes: "pdf",
type: "application/pdf",
}
}
"0": {
"0": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"1": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"application/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"text/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"description": "Portable Document Format",
"filename": "internal-pdf-viewer",
"length": 2,
"name": "PDF Viewer"
},
"1": {
"0": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"1": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"application/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"text/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"description": "Portable Document Format",
"filename": "internal-pdf-viewer",
"length": 2,
"name": "Chrome PDF Viewer"
},
"2": {
"0": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"1": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"application/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"text/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"description": "Portable Document Format",
"filename": "internal-pdf-viewer",
"length": 2,
"name": "Chromium PDF Viewer"
},
"3": {
"0": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"1": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"application/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"text/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"description": "Portable Document Format",
"filename": "internal-pdf-viewer",
"length": 2,
"name": "Microsoft Edge PDF Viewer"
},
"4": {
"0": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"1": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"application/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "application/pdf",
"enabledPlugin": []
},
"text/pdf": {
"description": "Portable Document Format",
"suffixes": "pdf",
"type": "text/pdf",
"enabledPlugin": []
},
"description": "Portable Document Format",
"filename": "internal-pdf-viewer",
"length": 2,
"name": "WebKit built-in PDF"
}
}
let proxy = function (tt, name) {
return new Proxy(tt, {
get(target, p, receiver) {
let res = Reflect.get(target, p, receiver);
console.log(`${name} get`, p, typeof res)
if (name.startsWith('plugins') && (p === '0' || p === '1')) {
return proxy({description: "Portable Document Format",
enabledPlugin: [],
suffixes: "pdf",
type: "application/pdf",}, name + '.' + p)
}
return res;
}
})
......@@ -130,7 +172,7 @@ exports.implementation = class PluginArray {
}
item() {
console.log('getPlugin idx', arguments[0], plugins[arguments[0]])
console.log('getPlugin idx', arguments[0])
return proxy( plugins[arguments[0]], 'plugins.'+arguments[0])
// switch (arguments[0]){
// case 2:
......
var proxy = function (tt, name) {
return new Proxy(tt, {
get(target, p, receiver) {
let res = Reflect.get(target, p, receiver);
console.log(`${name} get`, p, typeof res)
return res;
}
})
}
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, tag) {
return -1 == o(n) && (e(n), r(`function ${tag ? tag : ""}${t || n.name || ""}() { [native code] }`.replaceAll("get get", 'get'))), 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
}();
"use strict";
const HTMLElementImpl = require("./HTMLElement-impl").implementation;
const notImplemented = require("../../browser/not-implemented");
......@@ -41,33 +67,1027 @@ class HTMLCanvasElementImpl extends HTMLElementImpl {
}
}
if (contextId === 'webgl') {
let t = function WebGLRenderingContext() {
var v_new_toggle = true
var v_new = function (v) {
var temp = v_new_toggle;
v_new_toggle = true;
var r = new v;
v_new_toggle = temp;
return r
}
t.getExtension = function (info) {
let r = function WebGLDebugRendererInfo() {
};
let tt = {};
Object.defineProperties(tt, {
UNMASKED_VENDOR_WEBGL: {value: 37445},
UNMASKED_RENDERER_WEBGL: {value: 37446},
})
r.__proto__ = tt
var WebGLRenderingContext = v_saf(function WebGLRenderingContext() {
if (!v_new_toggle) {
throw TypeError("Illegal constructor")
}
;
return r
}
t.getParameter = function (a) {
switch (a) {
case 37445:
return 'Google Inc. (Intel Inc.)';
break;
function WebGLBuffer() {
}
case 37446:
return 'ANGLE (Intel Inc., Intel(R) UHD Graphics 630, OpenGL 4.1)';
break;
function WebGLProgram() {
}
return 1;
}
function WebGLShader() {
}
this._toggle = {}
this.createBuffer = function () {
v_console_log(' [*] WebGLRenderingContext -> createBuffer[func]');
return v_new(WebGLBuffer)
}
this.bindBuffer = function (target, buffer) {
v_console_log(' [*] WebGLRenderingContext -> bindBuffer[func]', target, buffer);
return v_new(WebGLBuffer)
}
this.getAttribLocation = function (program, name) {
v_console_log(' [*] WebGLRenderingContext -> getAttribLocation[func]', program, name);
}
this.vertexAttribPointer = function (index, size, type, normalized, stride, offset) {
v_console_log(' [*] WebGLRenderingContext -> vertexAttribPointer[func]', index, size, type, normalized, stride, offset);
}
this.enableVertexAttribArray = function (index) {
v_console_log(' [*] WebGLRenderingContext -> enableVertexAttribArray[func]', index);
}
this.useProgram = function (index) {
v_console_log(' [*] WebGLRenderingContext -> useProgram[func]', index);
}
this.getUniformLocation = function (program, name) {
v_console_log(' [*] WebGLRenderingContext -> getUniformLocation[func]', program, name);
}
this.uniform4fv = function (program, name) {
v_console_log(' [*] WebGLRenderingContext -> uniform4fv[func]', program, name);
}
this.drawArrays = function (mode, first, count) {
v_console_log(' [*] WebGLRenderingContext -> drawArrays[func]', mode, first, count);
}
this.readPixels = function (x, y, width, height, format, type, pixels) {
for (let i = 0; i < pixels.length-1; i++) {
pixels.fill(parseInt(Math.random()*210 + 10), i ,i+1)
}
v_console_log(' [*] WebGLRenderingContext -> readPixels[func]', x, y, width, height, format, type, pixels)
}
this.bufferData = function (target, size, srcData, usage, srcOffSet, length) {
v_console_log(' [*] WebGLRenderingContext -> bufferData[func]', target, size, srcData, usage, srcOffSet, length);
return v_new(WebGLBuffer)
}
this.createProgram = function () {
v_console_log(' [*] WebGLRenderingContext -> createProgram[func]');
return v_new(WebGLProgram)
}
this.createShader = function (a) {
v_console_log(' [*] WebGLRenderingContext -> createShader[func]', a);
return v_new(WebGLShader)
}
this.shaderSource = function (shader, originalSource) {
v_console_log(' [*] WebGLRenderingContext -> shaderSource[func]', shader, originalSource);
this._originalSource = originalSource;
}
this.compileShader = function (shader) {
v_console_log(' [*] WebGLRenderingContext -> compileShader[func]', shader);
// this._originalSource = originalSource;
}
this.getShaderParameter = function (shader, pname) {
v_console_log(' [*] WebGLRenderingContext -> getShaderParameter[func]', shader, pname);
switch (pname) {
case 35713:
return true;
break;
}
}
this.attachShader = function (program, shader) {
v_console_log(' [*] WebGLRenderingContext -> attachShader[func]', program, shader);
}
this.linkProgram = function (program, shader) {
v_console_log(' [*] WebGLRenderingContext -> linkProgram[func]', program, shader);
}
this.getProgramParameter = function (program, pname) {
v_console_log(' [*] WebGLRenderingContext -> getProgramParameter[func]', program, pname);
if (pname === 35714) {
return true;
}
}
this.getSupportedExtensions = function () {
// window.debug = true;
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 proxy(r, 'new ' + key)
}
this.getParameter = function (key) {
v_console_log(' [*] WebGLRenderingContext -> getParameter[func]:', key)
this._toggle = {
3413: 8,
3412: 8,
3411: 8,
3410: 8,
3414: 24,
35661: 32,
34076: 16384,
36349: 1024,
34024: 16384,
34930: 16,
3379: 16384,
36348: 31,
34921: 16,
35660: 16,
36347: 1024,
7937: 'WebKit:WebGL',
35724: 'WebGL:GLSL:ES:1.0:(OpenGL:ES:GLSL:ES:1.0:Chromium)',
3415: 0,
7936: 'WebKit',
7938: 'WebGL:1.0:(OpenGL:ES:2.0:Chromium)',
37445: null,
37446: null,
34047: null
}
if (this._toggle[key]) {
return this._toggle[key]
} else {
if (key == 33902) {
return new Float32Array([1, 1])
}
if (key == 33901) {
return new Float32Array([1, 64])
}
if (key == 35661) {
return 32
}
if (key == 34047) {
return null
}
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([16384, 16384])
}
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]', a, b)
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')
})
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
},
})
// let t = proxy(new WebGLRenderingContext, 'WebGLRenderingContext11')
let t = new WebGLRenderingContext()
return t
}
return this._context;
......@@ -89,7 +1109,7 @@ class HTMLCanvasElementImpl extends HTMLElementImpl {
// ctx.fillRect(parseInt(Math.random() * 20 + 20), parseInt(Math.random() * 20 + 20), parseInt(Math.random() * 20 + 20), parseInt(Math.random() * 20 + 20)); // 把(10,10)位置大小为130x130的矩形涂色
if (this.width > 100 && this.height > 100) {
for (let i = 0; i < randInt(10, 20); i++) {
let ctx = canvas.getContext('2d');
let ctx = canvas.getContext('2d');
let color = Math.floor(Math.random() * 150);
ctx.fillStyle = "rgba(" + color + "," + color + "," + color + ",1)";
......
......@@ -22,6 +22,7 @@
"express": "^4.18.2",
"fingerprint-generator": "^2.1.37",
"form-data": "^4.0.0",
"ghost-cursor": "^1.1.18",
"html-encoding-sniffer": "^2.0.1",
"http-proxy-agent": "^4.0.1",
"https-proxy-agent": "^5.0.0",
......@@ -76,6 +77,11 @@
"node": ">= 6"
}
},
"node_modules/@types/bezier-js": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@types/bezier-js/-/bezier-js-4.1.0.tgz",
"integrity": "sha512-ElU16s8E6Pr6magp8ihwH1O8pbUJASbMND/qgUc9RsLmP3lMLHiDMRXdjtaObwW5GPtOVYOsXDUIhTIluT+yaw=="
},
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
......@@ -217,6 +223,15 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/bezier-js": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-6.1.4.tgz",
"integrity": "sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==",
"funding": {
"type": "individual",
"url": "https://github.com/Pomax/bezierjs/blob/master/FUNDING.md"
}
},
"node_modules/body-parser": {
"version": "1.20.1",
"resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz",
......@@ -812,6 +827,15 @@
"has-symbols": "^1.0.3"
}
},
"node_modules/ghost-cursor": {
"version": "1.1.18",
"resolved": "https://registry.npmjs.org/ghost-cursor/-/ghost-cursor-1.1.18.tgz",
"integrity": "sha512-fIdA8W3/X6IHGc+lPKYCVE3bUoH44CHbpaVbXaOKgdDvMJa53T0798iik54uc7Dj/iUAeR2Q74vw5J5WpGOwIw==",
"dependencies": {
"@types/bezier-js": "4",
"bezier-js": "^6.1.3"
}
},
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
......
......@@ -9,8 +9,6 @@
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.2",
"fingerprint-generator": "^2.1.37",
"abab": "^2.0.5",
"acorn": "^8.4.1",
"acorn-globals": "^6.0.0",
......@@ -21,7 +19,10 @@
"decimal.js": "^10.3.1",
"domexception": "^2.0.1",
"escodegen": "^2.0.0",
"express": "^4.18.2",
"fingerprint-generator": "^2.1.37",
"form-data": "^4.0.0",
"ghost-cursor": "^1.1.18",
"html-encoding-sniffer": "^2.0.1",
"http-proxy-agent": "^4.0.1",
"https-proxy-agent": "^5.0.0",
......
......@@ -86,15 +86,7 @@ window.TransformStream = v_saf(function TransformStream() {})
window.SubmitEvent = v_saf(function SubmitEvent() {})
proxy = function (tt, name) {
return new Proxy(tt, {
get(target, p, receiver) {
let res = Reflect.get(target, p, receiver);
console.log(`${name} get`, p, typeof res)
return res;
}
})
}
window.CSS = proxy({
supports: function (){
print('CSS.supports', arguments)
......
......@@ -4520,8 +4520,9 @@ var ops = [];
vmContext.programCounter = cE.z;
vmContext.opcodeHandlerCounter = cE.K;
}, function (vmContext) {
print('vmContext.stack[vmContext.stack.length - 2] instanceof', vmContext.stack[vmContext.stack.length - 2], vmContext.stack[vmContext.stack.length - 1])
vmContext.stack[vmContext.stack.length - 2] = vmContext.stack[vmContext.stack.length - 2] instanceof vmContext.stack[vmContext.stack.length - 1];
let res = vmContext.stack[vmContext.stack.length - 2] instanceof vmContext.stack[vmContext.stack.length - 1];;
print('vmContext.stack[vmContext.stack.length - 2] instanceof', vmContext.stack[vmContext.stack.length - 2], vmContext.stack[vmContext.stack.length - 1], '=>>', res)
vmContext.stack[vmContext.stack.length - 2] = res
vmContext.stack.length -= 1;
}, function (vmContext) {
var cP = decodedBytecode[vmContext.programCounter];
......
......@@ -13,6 +13,7 @@ s = '0==6=>iii22,28,65,7,102,157iii1==0=>iiiiii2==5=>iii22,28,65,7,96iii3==0=>ii
s = '0==6=>iii22,28,65,7,102,157iii1==36=>iii22,28,65,7,2,152,67,75,124,111,73,78,177,164,192,36,189,67,101,195,63,245,5,132,205,48,80,19,33,121,53,159,241,220,144,171iii2==5=>iii22,28,65,7,96iii3==0=>iiiiii4==19=>iii22,28,65,7,126,87,219,22,131,68,169,176,217,6,230,188,231,110,238iii5==9=>iii22,28,65,7,39,223,47,169,69iii6==30=>iii22,28,65,7,28,63,161,247,61,171,175,49,244,45,192,151,21,226,154,227,21,220,43,126,130,50,213,118,112,38iii7==129=>iii22,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,192iii8==13=>iii22,28,65,7,101,202,160,48,241,232,156,85,166iii9==26=>iii22,28,65,7,122,74,129,24,163,13,82,194,126,102,37,59,233,181,178,252,194,136,130,113,131,89iii10==6=>iii22,28,65,7,115,109iii11==49=>iii22,28,65,7,142,131,208,109,133,16,61,96,112,76,38,65,113,27,24,90,194,212,143,181,34,73,13,182,28,120,51,137,156,133,248,172,87,134,30,105,233,145,24,193,4,99,32,135,225iii12==5=>iii22,28,65,7,13iii13==234=>iii22,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,50iii14==24=>iii22,28,65,7,238,230,52,226,84,124,104,238,104,209,48,130,230,4,198,203,204,1,155,89iii15==0=>iiiiii16==11=>iii22,28,65,7,161,38,234,171,21,179,183iii17==903=>iii22,28,65,7,84,227,115,128,250,245,242,253,236,2,166,144,224,121,72,232,41,192,16,117,164,167,59,106,181,23,113,57,34,80,87,181,90,188,175,193,80,98,97,235,169,242,74,148,113,93,24,140,248,123,145,33,228,53,17,50,243,81,223,134,34,101,149,206,42,188,75,73,129,39,82,66,176,18,153,201,209,247,178,58,202,164,186,232,1,93,69,56,70,96,126,114,54,28,192,183,160,1,25,180,56,89,138,21,36,126,161,156,198,115,246,127,54,233,51,100,185,134,75,199,26,66,211,47,187,218,165,227,12,233,19,251,137,251,64,161,140,89,18,170,246,231,129,176,244,39,135,81,56,62,22,15,34,25,156,8,177,120,8,77,9,46,248,24,130,120,92,223,137,76,122,220,50,15,248,169,162,136,186,102,114,175,255,6,136,141,16,145,173,57,39,179,94,103,150,60,159,14,226,4,240,213,30,154,0,143,171,220,164,78,160,168,145,92,117,190,199,125,34,119,175,194,72,44,61,225,225,215,78,215,172,100,56,101,219,249,95,25,110,231,57,45,249,74,33,60,24,97,84,122,232,196,137,177,160,170,14,93,175,114,53,160,45,20,7,201,224,89,75,72,251,247,32,12,68,134,205,237,26,249,104,241,111,248,29,138,115,250,195,39,182,204,205,121,236,28,147,101,230,35,46,60,32,116,226,111,195,43,113,8,14,35,125,78,188,87,83,215,60,67,169,143,85,75,203,62,72,76,211,178,124,183,220,92,70,140,2,140,60,226,148,211,249,113,57,79,189,82,15,62,218,183,68,51,115,63,127,95,187,250,67,131,245,225,75,185,69,72,147,25,5,63,99,3,120,130,121,106,123,247,129,49,160,75,190,76,69,139,91,57,17,163,163,90,76,111,246,53,24,231,123,135,164,80,204,120,221,236,28,40,231,154,115,14,190,18,76,36,68,113,208,216,169,106,125,226,228,103,134,47,63,243,149,171,164,241,32,155,189,221,116,167,194,58,173,73,5,6,224,9,72,96,62,100,78,72,146,248,153,70,161,207,72,118,7,74,153,72,226,95,145,221,189,11,117,98,79,199,51,34,69,127,136,85,127,195,1,115,114,207,40,73,56,51,189,84,1,12,140,171,25,86,197,182,243,102,187,123,133,30,15,105,34,243,130,184,168,5,131,142,111,40,17,0,179,244,107,19,136,252,63,180,247,141,102,122,22,185,130,50,31,187,183,233,253,20,72,202,220,81,216,38,237,30,173,166,67,210,29,200,222,15,145,131,0,189,240,176,123,224,193,102,66,21,178,217,223,247,100,75,155,123,197,2,131,166,160,157,198,92,240,219,11,249,4,131,238,60,178,255,204,236,96,65,230,103,124,181,118,144,6,69,41,84,149,21,110,133,191,167,199,139,25,255,253,61,124,20,12,250,144,220,15,201,40,166,115,32,47,57,33,49,8,236,77,154,175,170,67,56,217,34,202,44,3,133,74,113,242,181,58,53,147,192,150,160,107,13,234,138,46,196,219,218,222,41,11,143,206,242,51,196,172,10,181,93,208,240,152,45,111,190,148,26,107,210,86,253,70,5,18,53,51,23,123,210,44,4,157,41,15,153,252,206,28,9,75,141,203,38,5,1,173,22,80,144,105,135,201,124,220,241,232,88,9,220,53,1,197,204,205,254,168,205,91,237,241,1,116,55,34,170,232,167,245,84,242,238,216,52,93,211,176,131,17,168,114,31,139,76,0,94,125,178,65,44,133,57,61,202,195,178,38,37,71,42,60,252,46,189,94,17,47,42,251,112,181,234,141,231,21,144,96,131,75,47,25,12,170,106,121,251,149,167,114,138,73,216,244,191,205,163,17,96,4,114,81,248,138,157,212,65,73,53,69,152,15,12,45,254,118,209,144,4,222,7,93,82,215,97,119,37,136,56,216,237,197,213,3,14,221,208,147,210,20,28,20,47,46,4,135,8,118,56,44,28,71,103,101,254,142,241,244,131,145,114,27,64,75,234,200,154,51,145,234,184,130,246,238iii18==5=>iii22,28,65,7,79iii19==13=>iii22,28,65,7,103,90,165,203,241,58,119,17,38iii20==6=>iii22,28,65,7,210,250iii21==5=>iii22,28,65,7,239iii22==47=>iii22,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,110iii23==6=>iii22,28,65,7,81,57iii24==30=>iii22,28,65,7,180,116,255,136,156,123,143,172,238,162,245,127,34,220,2,27,169,164,40,8,206,229,238,13,187,216iii25==6=>iii22,28,65,7,62,168iii26==9=>iii22,28,65,7,244,84,56,20,73iii27==15=>iii22,28,65,7,46,251,126,156,98,219,4,219,171,187,100iii28==5=>iii22,28,65,7,25iii29==6=>iii22,28,65,7,137,58iii30==60=>iii22,28,65,7,118,215,215,155,199,252,129,66,82,192,85,94,173,143,125,21,253,96,219,128,183,134,143,148,18,30,255,246,106,12,28,155,96,133,9,32,51,153,23,165,176,64,4,133,21,142,42,124,59,106,101,99,192,29,220,243iii31==0=>iiiiii32==12=>iii22,28,65,7,147,249,90,5,153,191,119,128iii33==94=>iii22,28,65,7,79,93,3,77,182,20,49,228,3,167,220,196,130,239,171,92,14,52,168,47,0,169,37,88,81,240,165,153,132,41,163,203,68,241,96,184,211,63,241,97,250,149,246,214,218,112,218,28,42,22,165,6,244,205,210,145,100,83,155,201,119,35,216,195,178,74,143,141,180,91,202,96,168,114,170,39,36,80,145,103,237,202,209,208,186,112,232,185,63,81iii34==439=>iii22,28,65,7,117,51,222,120,220,149,188,87,119,142,44,179,12,131,247,195,180,20,10,69,54,68,227,225,14,89,153,252,111,151,244,145,59,225,148,191,114,237,160,186,224,11,140,79,31,120,216,169,117,200,212,127,211,164,107,230,212,0,217,172,114,64,100,158,127,211,60,198,218,118,30,7,116,232,10,109,217,207,129,232,210,230,98,204,42,141,109,252,27,205,117,60,65,207,40,62,116,104,91,38,215,141,186,24,171,205,173,96,180,113,63,63,122,138,94,6,252,117,44,177,124,30,144,212,68,2,207,0,117,19,239,199,253,21,64,191,79,78,219,74,124,62,224,80,26,237,239,255,250,105,140,235,112,24,42,164,75,204,41,30,205,66,76,170,81,151,136,94,82,158,53,233,33,32,144,250,92,96,197,136,116,246,229,139,54,228,50,217,19,131,58,96,10,192,139,32,156,139,31,171,240,129,38,178,6,167,157,180,79,187,96,72,106,79,198,44,44,253,215,188,42,197,51,229,107,47,46,236,239,180,239,171,58,161,13,99,201,97,180,75,15,133,141,38,29,94,248,162,240,159,90,74,190,65,88,232,91,175,119,159,222,67,62,54,162,147,199,143,146,30,123,31,121,218,50,16,139,164,104,2,45,181,81,104,125,218,25,127,225,237,58,83,68,245,2,110,74,40,165,33,31,205,38,19,238,93,40,178,179,229,104,241,252,208,48,119,223,221,89,90,127,178,72,2,255,157,229,205,244,9,10,80,209,73,211,62,111,144,29,172,239,192,151,97,233,182,123,98,191,210,111,34,236,105,90,20,64,180,23,156,170,241,55,208,122,90,116,143,164,41,76,8,109,3,14,213,208,224,69,14,65,252,206,62,216,7,189,140,108,159,127,248,180,60,186,93,30,246,80,105,172,90,170,100,56,22,14,215,47,92,183,29,45,67,55,238,36,90,121,183,127,143,59,134,118,26,218,56,188,7,67,210,191,168,105iii35==5=>iii22,28,65,7,126iii36==7=>iii22,28,65,7,6,171,197iii37==6=>iii22,28,65,7,163,175iii38==5=>iii22,28,65,7,247iii39==16=>iii22,28,65,7,150,92,195,237,131,90,86,113,29,127,155,198iii40==5=>iii22,28,65,7,176iii41==18=>iii22,28,65,7,104,15,115,154,141,69,140,231,78,96,52,30,36,201iii42==38=>iii22,28,65,7,123,231,72,48,179,59,132,119,104,255,156,158,149,93,138,32,221,162,187,240,69,62,31,100,106,202,163,248,176,219,209,169,29,119iii43==5=>iii22,28,65,7,15iii44==5=>iii22,28,65,7,99iii45==13=>iii22,28,65,7,249,225,143,186,127,182,199,53,34iii46==89=>iii22,28,65,7,167,169,36,193,5,69,82,68,67,228,134,127,176,244,254,9,224,205,96,199,170,99,229,70,190,212,43,209,172,106,158,178,75,138,105,99,212,15,131,231,103,206,123,19,174,98,240,127,228,203,49,47,123,46,245,121,159,159,205,2,98,16,55,189,39,176,166,106,245,92,139,97,168,204,192,146,33,177,157,70,97,9,222,152,235iii47==6=>iii22,28,65,7,21,61iii48==536=>iii22,28,65,7,19,215,135,136,0,137,32,40,170,45,55,166,71,237,114,80,206,30,216,178,6,34,6,27,69,186,254,94,243,104,125,113,224,165,249,61,12,90,89,44,69,204,63,199,1,33,124,135,10,58,154,3,167,101,57,55,40,96,65,146,48,141,192,135,114,180,55,56,254,214,73,112,37,114,115,113,241,170,17,44,177,147,249,66,104,250,106,160,125,153,244,219,158,43,1,105,91,160,121,81,117,82,167,33,161,122,168,58,88,149,235,65,152,57,70,19,15,174,192,254,203,104,212,230,255,135,46,228,193,122,19,96,173,6,72,55,181,183,113,10,175,199,34,58,58,117,22,22,196,181,110,29,43,82,178,229,60,199,48,20,20,106,2,103,195,20,94,84,129,113,75,193,158,134,63,180,45,131,101,59,11,192,150,85,105,193,249,54,70,49,65,107,246,35,231,133,170,220,253,193,227,132,119,145,101,228,121,215,129,225,35,36,236,183,85,94,138,111,92,98,69,84,193,31,207,199,43,4,25,96,96,3,123,246,75,80,217,90,23,125,154,14,153,8,105,104,70,23,250,207,169,230,48,93,113,70,47,227,253,133,247,67,20,94,62,88,128,212,131,132,193,43,116,121,195,24,148,195,13,130,242,54,107,86,145,222,106,119,121,170,164,152,45,251,48,226,224,181,238,14,239,237,133,61,74,227,108,53,168,189,99,215,10,136,156,163,16,159,97,141,6,71,116,101,199,30,103,137,1,115,10,119,64,147,247,213,65,214,238,206,180,51,84,111,17,98,154,234,120,27,104,97,86,75,241,71,231,26,242,114,216,43,138,199,72,194,137,155,42,168,45,69,106,146,69,32,189,201,74,134,237,116,145,173,132,130,252,63,252,9,81,208,8,229,27,112,216,35,157,164,230,151,73,191,218,128,107,244,241,246,43,75,0,56,197,52,229,30,86,136,240,68,176,67,223,134,51,95,203,194,113,110,108,154,236,138,167,69,238,32,190,158,117,93,207,113,83,64,169,168,106,3,229,51,120,218,2,222,191,208,85,43,79,151,173,139,75,235,44,36,43,120,34,207,202,76,221,176,254,196,218,185,166,123,24,174,78,244,156,13,26,63,68,63,222,10,35,213,106,116,105,116,229,4,92,77,243,217,67,250,193,168,228,239,248,243,252,190,22,73,154,37,167,75,156,113,140,231,205,6,186,121iii49==5=>iii22,28,65,7,154iii50==9=>iii22,28,65,7,130,216,131,133,237iii51==106=>iii22,28,65,7,49,14,159,159,15,151,79,34,220,240,139,18,212,185,38,119,126,156,125,249,221,7,194,235,242,22,104,161,147,56,140,146,228,205,89,137,25,167,175,101,204,59,24,209,178,167,127,87,143,242,152,92,184,33,63,38,179,46,248,198,66,194,205,163,17,208,249,107,27,88,193,204,217,159,213,188,75,68,226,84,232,125,182,190,88,165,69,123,81,69,217,140,240,206,146,13,46,13,254,114,168,176iii52==13=>iii22,28,65,7,84,120,143,203,160,241,222,50,16iii53==72=>iii22,28,65,7,197,8,124,228,174,104,132,58,188,213,68,34,20,122,163,39,167,10,186,103,119,210,207,65,211,246,198,184,250,202,10,108,248,9,198,133,206,40,234,57,11,189,230,128,26,225,175,72,67,80,251,118,45,174,147,204,144,33,209,129,198,232,10,18,189,101,246,169iii54==8=>iii22,28,65,7,0,153,33,6iii55==7=>iii22,28,65,7,5,75,111iii56==6=>iii22,28,65,7,51,36iii57==94=>iii22,28,65,7,140,161,4,103,128,69,161,254,146,238,215,130,124,9,163,162,190,9,121,135,174,168,196,219,187,149,180,159,112,32,61,145,12,76,241,0,100,32,179,28,62,139,20,81,126,38,243,87,18,73,44,104,23,32,117,25,7,156,101,223,205,239,128,233,139,165,76,109,208,132,211,101,222,8,145,101,118,68,88,69,58,0,109,208,49,129,197,171,56,126iii58==316=>iii22,28,65,7,121,153,153,138,85,34,246,224,208,156,43,51,183,85,172,21,94,180,243,198,91,145,26,127,184,191,83,168,5,94,11,114,192,222,72,22,95,61,218,199,7,213,19,197,142,152,10,164,107,177,93,49,82,153,32,89,126,149,0,63,141,98,139,131,83,92,248,132,132,154,162,156,130,96,160,212,83,94,253,122,235,57,253,68,5,170,236,20,60,14,106,224,236,128,237,80,133,34,1,198,237,66,112,21,184,33,122,236,232,28,75,255,104,133,87,61,249,128,218,135,100,150,74,113,203,229,44,11,96,244,35,151,95,191,146,139,131,200,144,23,154,138,80,28,143,107,109,147,98,71,111,243,243,61,236,13,248,22,147,153,179,159,213,57,224,231,164,63,248,146,12,26,81,44,13,38,179,244,9,42,152,139,199,58,136,155,233,86,71,104,156,121,228,255,230,70,52,69,23,173,239,145,162,151,167,234,97,73,17,11,247,52,109,79,157,132,15,199,35,230,152,233,132,39,163,95,174,16,89,235,241,129,1,13,174,79,1,78,191,228,50,207,137,24,157,6,102,146,100,50,182,171,51,201,130,149,97,233,118,10,98,111,127,46,182,157,107,51,113,28,146,148,44,178,193,241,183,160,145,132,105,179,40,110,179,84,59,34,129,123,237,111,238,216,186,66,132,116,118,31,31,17,7,53,113,49,205,129,185,179,6,209iii59==24=>iii22,28,65,7,203,83,238,156,140,128,102,97,216,233,140,161,84,149,110,101,31,18,182,242'
s = '0==6=>iii22,28,65,7,102,157iii1==0=>iiiiii2==5=>iii22,28,65,7,96iii3==0=>iiiiii4==19=>iii22,28,65,7,126,253,124,215,179,20,218,149,63,199,20,103,12,58,161iii5==9=>iii22,28,65,7,39,223,47,169,69iii6==0=>iiiiii7==129=>iii22,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,192iii8==13=>iii22,28,65,7,101,202,160,48,241,232,156,85,166iii9==26=>iii22,28,65,7,122,74,129,24,163,13,82,194,126,102,37,59,233,181,178,252,194,136,130,113,131,89iii10==0=>iiiiii11==0=>iiiiii12==5=>iii22,28,65,7,13iii13==234=>iii22,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,50iii14==5=>iii22,28,65,7,236iii15==0=>iiiiii16==0=>iiiiii17==0=>iiiiii18==5=>iii22,28,65,7,79iii19==13=>iii22,28,65,7,103,90,165,203,241,58,119,17,38iii20==6=>iii22,28,65,7,221,250iii21==0=>iiiiii22==47=>iii22,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,110iii23==6=>iii22,28,65,7,81,57iii24==30=>iii22,28,65,7,180,116,255,136,156,123,143,172,238,162,245,127,34,220,2,27,169,164,40,8,206,229,238,13,187,216iii25==6=>iii22,28,65,7,62,168iii26==9=>iii22,28,65,7,244,84,56,20,73iii27==15=>iii22,28,65,7,63,251,119,140,102,218,6,219,171,186,100iii28==5=>iii22,28,65,7,25iii29==6=>iii22,28,65,7,137,58iii30==0=>iiiiii31==0=>iiiiii32==12=>iii22,28,65,7,147,249,90,5,153,191,119,128iii33==94=>iii22,28,65,7,79,93,3,77,182,20,49,228,3,167,220,196,130,239,171,92,14,52,168,47,0,169,37,88,81,240,165,153,132,41,163,203,68,241,96,184,211,63,241,97,250,149,246,214,218,112,218,28,42,22,165,6,244,205,210,145,100,83,155,201,119,35,216,195,178,74,143,141,180,91,202,96,168,114,170,39,36,80,145,103,237,202,209,208,186,112,232,185,63,81iii34==0=>iiiiii35==5=>iii22,28,65,7,126iii36==7=>iii22,28,65,7,6,171,197iii37==6=>iii22,28,65,7,163,175iii38==5=>iii22,28,65,7,247iii39==19=>iii22,28,65,7,150,92,195,237,131,90,86,113,29,127,155,167,240,88,237iii40==5=>iii22,28,65,7,176iii41==0=>iiiiii42==0=>iiiiii43==0=>iiiiii44==0=>iiiiii45==13=>iii22,28,65,7,249,225,143,186,127,182,199,53,34iii46==0=>iiiiii47==6=>iii22,28,65,7,21,61iii48==7=>iii22,28,65,7,28,249,132iii49==0=>iiiiii50==0=>iiiiii51==0=>iiiiii52==0=>iiiiii53==0=>iiiiii54==8=>iii22,28,65,7,8,216,96,71iii55==7=>iii22,28,65,7,5,75,111iii56==0=>iiiiii57==0=>iiiiii58==316=>iii22,28,65,7,121,153,153,138,85,34,246,224,208,156,43,51,183,85,172,21,94,180,243,198,91,145,26,127,184,191,83,168,5,94,11,110,224,222,72,22,95,61,218,199,7,213,19,197,142,152,10,164,107,177,93,49,82,153,32,89,126,149,0,63,141,98,139,131,83,92,248,132,132,154,162,156,130,96,160,212,83,94,253,122,235,57,253,68,5,170,236,20,60,14,106,224,236,128,237,80,133,34,1,198,237,66,112,21,184,33,122,236,232,28,75,255,104,133,87,61,249,128,218,135,100,150,74,113,203,229,44,11,96,244,35,151,95,191,146,139,131,200,144,23,154,138,80,28,143,107,109,147,98,71,111,243,243,61,236,13,248,22,147,153,179,159,213,57,224,231,164,63,248,146,12,26,81,44,13,38,179,244,9,42,152,139,199,58,136,155,233,86,71,104,156,121,228,255,230,70,52,69,23,173,239,145,162,151,167,234,97,73,17,11,247,52,109,79,157,132,15,199,35,230,152,233,132,39,163,95,174,16,89,235,241,129,1,13,174,79,1,78,191,228,50,207,137,24,157,6,102,146,100,50,182,171,51,201,130,149,97,233,118,10,98,111,127,46,182,157,107,51,113,28,146,148,44,178,193,241,183,160,145,132,105,179,40,110,179,84,59,34,129,123,237,111,238,216,186,66,132,116,118,31,31,17,7,53,113,49,205,129,185,179,6,209iii59==0=>iii'
s = '0==6=>iii79,42,5,4,67,130iii1==0=>iiiiii2==5=>iii7,115,64,188,32iii3==0=>iiiiii4==15=>iii20,55,191,184,234,32,97,202,7,202,186,173,222,75,146iii5==9=>iii235,120,131,22,112,178,56,72,203iii6==0=>iiiiii7==129=>iii171,231,13,55,161,8,245,160,253,254,133,217,35,232,186,111,167,94,114,22,61,71,233,96,168,98,247,253,194,125,138,198,254,97,237,106,127,64,7,52,120,149,86,64,195,119,48,37,13,1,68,74,139,30,182,116,250,57,177,106,34,173,129,160,163,208,34,115,40,186,94,24,203,12,234,110,43,54,206,41,223,177,187,194,163,122,243,33,220,246,150,126,230,158,129,199,18,137,128,204,201,244,53,78,131,40,15,156,8,206,133,167,40,21,150,199,66,218,43,193,64,214,132,96,5,245,187,119,203iii8==13=>iii155,123,185,6,222,147,120,29,189,43,60,148,153iii9==28=>iii215,16,55,35,191,147,36,208,25,246,33,217,235,221,116,21,156,82,16,8,97,60,164,245,80,90,126,124iii10==6=>iii44,170,254,239,53,62iii11==49=>iii251,93,253,242,185,230,73,168,250,164,158,127,46,177,247,164,190,114,166,221,229,45,26,43,56,61,90,150,110,99,242,49,131,23,136,34,68,1,232,161,250,39,33,32,169,82,129,113,122iii12==5=>iii188,229,152,21,165iii13==234=>iii12,3,195,185,194,45,181,7,12,150,155,228,184,84,239,102,221,12,246,167,109,220,88,64,169,8,132,13,250,170,243,93,218,229,195,49,14,46,45,24,104,196,210,249,187,93,100,101,165,8,150,246,127,34,130,217,220,146,154,185,148,142,85,230,54,89,64,13,158,46,47,47,176,42,186,111,107,2,99,22,11,157,1,242,205,248,64,0,36,106,32,152,214,106,216,142,189,197,151,251,111,135,56,231,48,162,40,55,177,109,99,136,59,217,122,48,189,231,114,180,77,38,91,15,129,156,2,166,54,234,31,148,238,164,79,136,33,77,109,181,164,204,29,55,140,201,126,204,36,2,39,221,46,101,187,243,136,183,230,223,37,152,3,210,100,102,135,162,68,94,99,11,149,142,59,138,153,134,112,82,25,195,88,19,250,90,68,60,249,87,172,179,45,133,83,189,92,252,126,33,158,51,132,164,18,209,69,247,135,142,77,164,207,73,194,213,215,93,60,72,211,125,245,30,97,15,186,45,208,31,9,173,10,119iii14==5=>iii94,195,123,41,253iii15==0=>iiiiii16==0=>iiiiii17==0=>iiiiii18==5=>iii193,190,196,105,77iii19==13=>iii66,32,13,187,128,177,11,50,232,236,159,149,173iii20==6=>iii126,219,56,144,99,113iii21==0=>iiiiii22==44=>iii180,81,255,69,150,61,21,92,60,53,221,2,86,240,44,139,153,3,153,206,83,59,26,26,191,204,33,246,142,27,52,227,82,197,204,42,99,143,3,75,92,89,150,44iii23==6=>iii59,70,178,219,12,120iii24==30=>iii232,39,37,240,4,38,29,172,62,75,212,208,196,230,232,3,32,86,165,156,66,127,25,99,44,24,165,144,82,63iii25==6=>iii226,190,95,229,140,208iii26==9=>iii201,40,98,148,188,56,106,55,210iii27==15=>iii7,12,166,66,68,37,66,47,239,164,90,161,13,172,244iii28==60=>iii116,212,20,145,175,196,255,26,35,174,198,191,13,146,16,93,116,77,240,110,137,243,192,218,214,42,123,252,205,29,178,84,252,21,203,146,57,152,75,93,98,179,216,151,151,27,4,82,36,251,140,98,45,231,151,149,104,169,52,212iii29==6=>iii179,80,132,106,157,173iii30==60=>iii133,247,152,119,128,122,57,116,80,161,49,87,171,222,123,249,181,163,29,142,7,66,117,14,87,45,106,7,32,32,176,118,89,12,22,105,76,173,33,49,194,13,46,84,231,42,98,240,124,233,80,26,240,184,10,58,82,119,151,140iii31==0=>iiiiii32==12=>iii143,69,204,90,189,21,143,249,201,227,2,67iii33==94=>iii174,65,177,37,50,148,162,61,142,58,35,246,244,147,227,2,112,21,98,93,252,181,231,19,40,118,224,103,1,206,18,105,32,16,158,15,222,93,221,97,51,37,199,10,165,101,42,237,7,85,104,141,156,23,31,241,163,232,12,159,72,59,148,150,148,175,157,80,213,162,170,142,14,250,81,46,82,39,135,227,121,97,9,168,84,184,230,74,166,192,198,19,215,46iii34==439=>iii125,159,211,246,22,161,121,146,223,245,125,8,251,35,185,60,243,33,5,134,9,34,64,169,218,82,66,156,125,148,37,69,162,87,238,119,187,189,231,92,175,125,94,86,183,245,81,202,80,143,36,69,8,209,68,45,232,65,84,94,0,39,244,142,44,231,65,113,215,75,60,84,110,153,83,221,49,31,187,200,87,66,173,204,241,185,19,71,182,83,137,2,179,70,104,125,246,227,33,125,237,108,198,43,175,82,29,41,166,241,49,179,140,197,181,44,39,234,29,137,245,157,253,201,224,108,7,148,130,36,110,107,232,181,97,126,112,124,179,213,118,201,58,18,255,157,162,28,73,68,71,144,207,226,9,41,139,186,3,98,58,65,224,219,213,245,166,100,51,51,46,34,175,83,25,26,161,198,203,146,73,143,162,51,117,144,10,94,185,97,33,68,126,52,97,153,11,175,107,138,98,6,160,5,154,242,204,50,44,149,145,156,66,104,20,194,246,182,183,131,254,118,92,18,244,204,226,15,5,62,30,249,20,10,41,172,64,234,166,31,233,102,164,245,246,159,29,190,55,183,237,210,227,18,1,240,221,157,182,46,244,228,116,69,174,136,28,30,10,131,160,211,215,74,131,57,38,230,106,232,64,161,1,165,44,42,91,210,68,241,27,150,63,150,90,151,214,54,226,81,110,51,142,250,196,125,165,8,210,200,129,112,187,78,252,237,120,215,79,179,26,110,250,217,239,150,175,207,40,104,67,66,150,173,118,77,172,42,108,140,241,110,98,212,71,49,140,43,135,254,211,63,148,94,150,110,74,24,248,190,118,18,70,205,128,127,51,120,47,246,148,92,11,25,156,12,77,215,195,217,41,212,104,216,80,195,90,142,169,186,75,254,196,234,92,200,247,10,34,77,149,186,43,254,34,96,47,9,170,126,49,51,148,214,146,206,122,247,57,75,244,210,19,183,136,34,12,95,119,236,254,253,57,27,176,164,108,58,224iii35==5=>iii92,98,185,222,22iii36==7=>iii145,28,131,178,27,195,246iii37==6=>iii196,47,112,80,174,234iii38==5=>iii216,219,226,127,103iii39==20=>iii140,188,190,165,100,83,215,70,57,101,1,234,17,110,15,202,145,119,123,5iii40==5=>iii70,254,81,10,193iii41==13=>iii225,187,146,158,253,160,100,147,217,235,177,167,204iii42==0=>iiiiii43==5=>iii217,86,59,119,120iii44==5=>iii79,231,58,237,232iii45==13=>iii183,52,62,251,224,218,87,131,130,9,229,85,208iii46==71=>iii204,134,160,4,87,242,29,142,90,241,182,141,169,145,144,158,173,114,71,37,93,202,231,201,176,240,147,147,189,60,2,160,56,193,43,196,80,247,170,103,163,39,20,10,101,224,218,176,87,148,255,204,13,55,237,193,131,195,113,85,28,15,140,77,189,255,141,215,193,11,87iii47==6=>iii172,151,254,91,88,181iii48==51=>iii21,230,36,185,34,80,14,145,9,121,4,10,71,251,52,69,195,163,104,60,61,35,36,160,197,10,77,81,199,115,72,156,133,81,84,161,157,199,9,102,42,146,10,194,253,145,70,20,227,67,110iii49==5=>iii11,203,68,218,71iii50==0=>iiiiii51==0=>iiiiii52==13=>iii9,181,244,241,191,109,44,44,59,115,37,244,245iii53==0=>iiiiii54==8=>iii210,123,12,47,181,173,155,228iii55==7=>iii111,20,164,104,220,202,4iii56==6=>iii61,67,11,121,54,142iii57==0=>iiiiii58==163=>iii241,149,48,80,59,247,73,71,236,4,87,245,235,184,25,147,116,53,145,246,74,117,65,83,180,103,103,123,6,149,194,243,55,53,235,151,56,218,51,252,180,149,226,68,156,48,175,169,148,107,130,130,52,251,144,223,75,77,49,116,112,89,85,28,6,206,37,231,33,105,200,106,184,114,113,243,108,18,43,215,184,114,188,35,137,109,79,104,131,150,114,236,119,155,223,245,133,188,140,96,106,36,191,87,248,59,40,232,237,41,34,166,46,101,114,70,105,172,98,219,239,98,68,102,157,42,105,21,133,56,101,84,156,51,111,231,26,78,10,176,102,59,6,118,33,126,29,144,70,142,185,190,113,28,7,192,144,101,133,232,80,50,83iii59==25=>iii111,120,162,28,242,38,99,117,226,216,31,1,104,36,188,15,36,151,175,79,200,6,228,137,228'
s = s.split('iii')
......
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