JLC_CJ_TK_LocalData

TK 离线

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         JLC_CJ_TK_LocalData
// @namespace    http://tampermonkey.net/
// @version      1.2.1
// @description  TK 离线
// @author       123
// @match        https://exam.kaoshixing.com/exam/exam_start/**
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';

    /*
  * Add integers, wrapping at 2^32. This uses 16-bit operations internally
  * to work around bugs in some JS interpreters.
  */
  function safeAdd (x, y) {
    var lsw = (x & 0xffff) + (y & 0xffff)
    var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
    return (msw << 16) | (lsw & 0xffff)
  }

  /*
  * Bitwise rotate a 32-bit number to the left.
  */
  function bitRotateLeft (num, cnt) {
    return (num << cnt) | (num >>> (32 - cnt))
  }

  /*
  * These functions implement the four basic operations the algorithm uses.
  */
  function md5cmn (q, a, b, x, s, t) {
    return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
  }
  function md5ff (a, b, c, d, x, s, t) {
    return md5cmn((b & c) | (~b & d), a, b, x, s, t)
  }
  function md5gg (a, b, c, d, x, s, t) {
    return md5cmn((b & d) | (c & ~d), a, b, x, s, t)
  }
  function md5hh (a, b, c, d, x, s, t) {
    return md5cmn(b ^ c ^ d, a, b, x, s, t)
  }
  function md5ii (a, b, c, d, x, s, t) {
    return md5cmn(c ^ (b | ~d), a, b, x, s, t)
  }

  /*
  * Calculate the MD5 of an array of little-endian words, and a bit length.
  */
  function binlMD5 (x, len) {
    /* append padding */
    x[len >> 5] |= 0x80 << (len % 32)
    x[((len + 64) >>> 9 << 4) + 14] = len

    var i
    var olda
    var oldb
    var oldc
    var oldd
    var a = 1732584193
    var b = -271733879
    var c = -1732584194
    var d = 271733878

    for (i = 0; i < x.length; i += 16) {
      olda = a
      oldb = b
      oldc = c
      oldd = d

      a = md5ff(a, b, c, d, x[i], 7, -680876936)
      d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
      c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
      b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
      a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)
      d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)
      c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)
      b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)
      a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)
      d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)
      c = md5ff(c, d, a, b, x[i + 10], 17, -42063)
      b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)
      a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)
      d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)
      c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)
      b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)

      a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)
      d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)
      c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)
      b = md5gg(b, c, d, a, x[i], 20, -373897302)
      a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)
      d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)
      c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)
      b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)
      a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)
      d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)
      c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)
      b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)
      a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)
      d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)
      c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)
      b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)

      a = md5hh(a, b, c, d, x[i + 5], 4, -378558)
      d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)
      c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)
      b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)
      a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)
      d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)
      c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)
      b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)
      a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)
      d = md5hh(d, a, b, c, x[i], 11, -358537222)
      c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)
      b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)
      a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)
      d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)
      c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)
      b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)

      a = md5ii(a, b, c, d, x[i], 6, -198630844)
      d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)
      c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)
      b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)
      a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)
      d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)
      c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)
      b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)
      a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)
      d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)
      c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)
      b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)
      a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)
      d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)
      c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)
      b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)

      a = safeAdd(a, olda)
      b = safeAdd(b, oldb)
      c = safeAdd(c, oldc)
      d = safeAdd(d, oldd)
    }
    return [a, b, c, d]
  }

  /*
  * Convert an array of little-endian words to a string
  */
  function binl2rstr (input) {
    var i
    var output = ''
    var length32 = input.length * 32
    for (i = 0; i < length32; i += 8) {
      output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff)
    }
    return output
  }

  /*
  * Convert a raw string to an array of little-endian words
  * Characters >255 have their high-byte silently ignored.
  */
  function rstr2binl (input) {
    var i
    var output = []
    output[(input.length >> 2) - 1] = undefined
    for (i = 0; i < output.length; i += 1) {
      output[i] = 0
    }
    var length8 = input.length * 8
    for (i = 0; i < length8; i += 8) {
      output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32)
    }
    return output
  }

  /*
  * Calculate the MD5 of a raw string
  */
  function rstrMD5 (s) {
    return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
  }

  /*
  * Calculate the HMAC-MD5, of a key and some data (raw strings)
  */
  function rstrHMACMD5 (key, data) {
    var i
    var bkey = rstr2binl(key)
    var ipad = []
    var opad = []
    var hash
    ipad[15] = opad[15] = undefined
    if (bkey.length > 16) {
      bkey = binlMD5(bkey, key.length * 8)
    }
    for (i = 0; i < 16; i += 1) {
      ipad[i] = bkey[i] ^ 0x36363636
      opad[i] = bkey[i] ^ 0x5c5c5c5c
    }
    hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
    return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))
  }

  /*
  * Convert a raw string to a hex string
  */
  function rstr2hex (input) {
    var hexTab = '0123456789abcdef'
    var output = ''
    var x
    var i
    for (i = 0; i < input.length; i += 1) {
      x = input.charCodeAt(i)
      output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)
    }
    return output
  }

  /*
  * Encode a string as utf-8
  */
  function str2rstrUTF8 (input) {
    return unescape(encodeURIComponent(input))
  }

  /*
  * Take string arguments and return either raw or hex encoded strings
  */
  function rawMD5 (s) {
    return rstrMD5(str2rstrUTF8(s))
  }
  function hexMD5 (s) {
    return rstr2hex(rawMD5(s))
  }
  function rawHMACMD5 (k, d) {
    return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
  }
  function hexHMACMD5 (k, d) {
    return rstr2hex(rawHMACMD5(k, d))
  }

  function md5 (string, key, raw) {
    if (!key) {
      if (!raw) {
        return hexMD5(string)
      }
      return rawMD5(string)
    }
    if (!raw) {
      return hexHMACMD5(key, string)
    }
    return rawHMACMD5(key, string)
  }

  if (typeof define === 'function' && define.amd) {
    define(function () {
      return md5
    })
  } else if (typeof module === 'object' && module.exports) {
    module.exports = md5
  } else {
    $.md5 = md5
  }

    const getMD5DataList = () => ["ca150e2d665e49eebceeab0577e13c05:::ba7332585cbc8244828d08b3dfb4a9d3,0d46292793d72a1f4e3be1b70d452bde,223ecc4e012de13840ed5a5bd991799c", "4447d8223f5b8fc5c4c08597008a37dc:::790ba8e635fc3da17d47875ee3f56c2d,4e1e71dac5d233417a9a7b849ce979d3,53a899f5d9a626a7bb60b5b87d308fb0,ab5048116579f91d4af61540057a2074,6e6bc6300f4826bfbb1ded4ddd7efb95", "ba9855937f7517c04ae5d314bfb1582e:::576ab5cdd1e010253d0e9d54970ee8fa,5dd2c4d05069f38fcddf434d7ab80e96,f715a69dc4ee196fb68b89a1ed997e6b,593b04988467b351a22c0adba6ffcd32", "d1244c09704e3d74e4d2ec1334e00932:::8bc8bece9983b96b1fa136a4436e595b,d23811d36b06a34eba4133a05a268019,ee8c94de35fc574391948096eddbd8ba", "dd521cf9fddfe75e1616aef7fb6d6b98:::63e2911eef8755e64e0b74cad7d8f88a", "202b98450e4e4aeed61262617bd23ccf:::55b20f9814bc2d604796bdbb5ec5d579", "255d005a3ee930710bd09b3dba97edc2:::c7b82769a25a1b378b1d8fcd9f823566", "d2a5a1684f4b49c02a62ea532dc258e3:::ab9a5b0283e1f620f1f5d9e8481b891d", "03db82743e6c33884d82463a8d872d54:::f9e0da24ce0fa1750c3cd86419cf1381", "1fad73c757cc64d6d47f1295ea4f6570:::15b8447ecb091afbd9b9a9a11f2e369d", "add276a25ce138999a46d414fadfb29e:::bf9cf772f921f36b07a555f83a01da37", "21e0fae732119d5360799766c41d7feb:::6f5052852d7e2c1abda03f9a3d0e9fc9", "dc21b11cb9a5d470095238be3c1300ae:::ab9a5b0283e1f620f1f5d9e8481b891d", "e9e380a475a55279bff254c8d5d5f386:::f417f366cb0b365bf3a81245c85337c7", "cab88a25cc07f5b3e97c1fe73d299354:::ee6df7033a974fd2d6b73e2297a56fc1", "2c9870e07cfd3aa30c936604f4fe9adc:::5e3402d5d796dc28699cf848c727a43d", "4e07322a81351e686430cf66f1f1a353:::7ed4b025b7044d94541e35c1ef20b392", "5869000f2145fdb2976ad1f163c8cb04:::2d4288ae8ced40d87975450674399750", "cdd1dc3aa7809b77df7da6d12febbf06:::2bc44bba491bb6a8fe3b30187e4a52f8", "a317dd603db4614f425b5984a2575f35:::ea6d40b0d8ab07605cac8617c4e780ed", "d83bac8f898168c739d5fa1094cb3b71:::ee4c3df59fa88f978acd943566917fac", "6d1c810d7b7f1606c65701883b502cdb:::f095a7ba492071aaa873300601913346", "4eb3597ccae74c5785fff098ae5a2126:::59b3c8c61f560149d2bcadd192f53ae8", "e8d2a7dd96a900bbb53bf4d511435c72:::3cba9ee6b9f34d8af79d7f8315a8ff6a", "8aa10ccd0961a84703eaba63e997f97f:::625c5a8018d1f56ecfdd8c788482ca54", "4a854066761ae538e933a21a797a4932:::b9177f64012e0db7cc413d299210d6d5", "fe2c8ac74e09c172fe8ee63911c331a6:::5dd454e9c09e730e6dd589046aa2d856", "4ec60fe44cd59936581c7643ffd3421e:::8d7f5c59c30c98456e9e10c7e570b904", "c212ddd74df27b49accd05e8c99a05e5:::2fb0e0980a2d7a1b909c672865be055b", "c3758dd271b9e82be71e3761f38c89ff:::2fb0e0980a2d7a1b909c672865be055b", "a9ef6eb65e33703f1237421ac6062417:::e6ba06a5b98721c438d16cea6f093686,7f3f9e14341227b95e328d066e100ad8,5b6b477b90006d59635761fff959abc1,ffed6c3c6eb4a51e9c0107291bcc8e52,15e968cf1b0384791a44e6f42c1a03ea", "bb9644697dbdbe006ae21cb19a905495:::a833b742ce345389492e1e4bd147fbe4", "ee1a020cffd575454a5a0f4d30841d17:::bf474e43e01f22a48139dc4862b08924", "9a7fd8206041399683f289b960ee0235:::c90cd85b227a991ef671cbc22190d19e", "71a39769d14668f59a373e0b69f75189:::ea6d40b0d8ab07605cac8617c4e780ed", "d6547bbe7cc9149df3b3690122ebbcaa:::04d2001deecc3915040ae23f4ac1a0f3", "89df860d19ed70d80b55d310cd2edb11:::7fadf5e1a7c0cc2b67478ac5bc97d596", "12e0874010eee4b9b6fadca07dd56ce6:::94a5aa1a54e98366a66f21688c4bdb26", "1cd10fa354fb0a1633b03c7f08998a95:::70f49c377ce8a37ae3228bc127d38578", "c49903642bbc65cd5a118bed7267a9cb:::f779a50a1a10abbbf19db4b9dcd36919", "eb9794482c4279d9a6a1dafea6fb0ac8:::06c5fe6b9e0b562232491849643495a8", "464f8226f85b10b42dfd3076b7769d56:::dabbc9e9e3c4c1e420b706c7fb07422e", "50583f74451de255ba382dde776ef632:::9cd403aeb5cbdfb4703263bedf9257b5", "79f0e9386cd19a87026e3e829a35d102:::e9998ea0b4ab0f05f72d264be11b23db", "2c6f92bcb66eb70b30f9a6362e19c5bf:::0fa553834f6a5f4454193214cd62bc95", "833672029c4025f35df47d86f8b462e9:::cbb95ca7e5e2e428955dcc230ff269c3", "5b35080d7c6d40c9d485c4e282a572ea:::f656b848d279e0db24886e5c2965845f", "9421ed18a7f31350253b3ac7d5705c1d:::6ffc306012872410f3669a8aaee3cb97", "71b6cce9333dd94775c3e61e89d8e233:::e1cef01d87e0c847562044f40781bdf8", "4e79d6c1a9d3e831b69b5facc8b29e19:::e0e126686262c67f95ee0c6f57d000a0", "e28b2e55797bd039412945b0045dc5b8:::98517a16b43db8d331e41cab0f8325a6", "1ef07e57ca67a6d6c50c7d7137eb4cfa:::48e126a5cb5b035d517bf1075734396b", "426343a12962cd8b2ed93f409a227bd9:::3b61503b194b98217752f59c9537a8a0", "108f38a00e649766de0727763f412c37:::a2835b8c2a751ccdbc6e89c4a6cb7cc3", "adb690ed461d6e47d5cde0efeb76e37c:::2fb0e0980a2d7a1b909c672865be055b", "4d518776b20ee45a02260575a9c37b26:::2fb0e0980a2d7a1b909c672865be055b", "c891c30db94eaa772aa16e687cefe926:::55cc7cdd209806b30ebd406bc01e45be,9c9aabab3f7627ff4bb224b2738b26ea,52636511861a0e08cbe6a0eb1c27d816,ddb86dd31ce7580fe0c51651b28ba77d", "c257eaf0ceaed7d50bdc0802c857d4bf:::0185d8c71b434c1f76ff92063689be9c", "2c5b5802cfc1b4b5e91247452ea6fae2:::6f1c2eb3e2bbcc031af1e4785a21579d", "a905e70b4dada7afbf29008dfc20774b:::76d1fbc0e8dc84deb0cd73c0f611895e", "7afcd76865177ae63f495778015d7afc:::e2493faac3b606d824ced9b7c9dcf066", "06d7f2e3fe8a076887da7d13405b3339:::77aad22db8915f3eace5e93e47812054", "4a22cce870f0a05cf29ce0079aaf4282:::cf927077c1a4265b76897eeca49cf0c6", "55ca00b9a9682365ac8ebf64f74d1739:::df91b2ddf3cd8dbfbefc9f8d6e2b7df1", "16c907b9b4b5d9f316b012e50311d9ab:::dd50bdd218702af80ca3c6b0bde41a23", "4049b0321d94b6b40a1dcfec84e92673:::0cf9a398cd47f08d7dac423d3d60a8f7", "6cd387ad9b8f07443997f3979d1020ea:::15f78fd965d5a040770265ef441ddd9a", "2cd086f26e740348c70b4749b87989d2:::af73e821ae4571f635052558468d1f02", "4babd7a5814b372cbcad4b290fe2a372:::4218b6b46d2f5807ef689f6c9ef39e41", "5c5b663cb5638cf48dece67569ab1309:::655608fbedc20574a71def0aa381620c", "f00d47186221a186194090d527a8d350:::4aa71ec3708a053c836972a977829cc3", "b28ebd5ca1e5fa2be72d89c9a22223b0:::e846d57a1f72de100eca64dbee5a45bf", "ee7f64da70a40ecb5fbde73f38e3320f:::bc0f1731c5d2349ccf9f146004961ce3", "dc8882de10653553b3cf27ccc0524835:::9309cf1514c4b8950bc115d4bb8959fc", "cede9119f0ce153eb3f9e889053dcdfb:::ee6df7033a974fd2d6b73e2297a56fc1", "137df0c80f8108b62b8320d00da0fdcc:::6d733a417adc86260abe423205eee768", "bb053f3e56fddb95304029b49b8ebd74:::44123548a0947fc567e3d324ca52a241", "599ba4f213ff7c3f6300548597cf9dcf:::45a10bfaa4d5b7f6520b292ae31ef264", "0ad686e48f5530e2fd4c20cc62680731:::2fb0e0980a2d7a1b909c672865be055b", "9a202a3afb542ee15c2b036ae9dedbba:::17e3b586d47addbcb435d7379be5536d,84fed12c8ba5eb0cc4dcc104c3dc8532,e6f170d4d76ae325d81690591f8f522c", "7c2f6458695cf1ddd59b9cd7ec9e6111:::f04eafcce19cfb995a1a6d82b7521704", "f01c057e5d01fd24a60246d313e4b4dc:::f9e0da24ce0fa1750c3cd86419cf1381", "ee93536a84af5339b4df852c39fa3f70:::9e47fda622f116802ee4cbca8e314a40", "ba4c0ec244c8c6b2c89210265c690a2c:::4b7c8a31a3dd3d9c99cc898e6ccf616a", "4b3ebda4c401566c456905c594867078:::65ede7a85aae994673a164206d684641", "67e9d1b937698ddcfeaca1e1f582f835:::fd7437ffff6dfe214d55f493e69e9520", "3a9adb3d84fbac1386a4b97cfdeff084:::90847f67af3e9cef72cace54dacf46c4", "dca96d98c83ae5202fc3a11b09ce96e6:::06576b1756142b1d3703e3332e2006e7", "d7da8bf9dadc301401b0409567ce33dc:::e5dd185c2f960844fa6c44837b9ef153", "4a225835dfa816ac25dc756796c5a876:::061a9108aed79d035f47cbf93b895ac6", "538da193ea386674a5cd9642a58d8664:::2699a441a6cf2657509b563dd16a5a7c", "74a9d59c8fb7a3511c0a85afe17e49e5:::3ec2cf7ff016f07cbb5025f9cbbdd7ee", "2eac0e6c14955aeea3f2c1783af6e2bb:::dc3b8fa787e74b925f4a815bca037291", "88cf7ca858259104ce7a89874f2e90fa:::2cbcd3270e460c7d85ba0223dfecda03", "bcdd33158549f7dde13dc01bc5d10951:::33f2ee3b92aad19310e2b3e2ee1ae91c", "868bfd6d8c312189574dafdfba3675f9:::8fd38c4ee458cc862e76eb61a306fbde", "7e7b19b2ad9864832ccc81a242d8d7f2:::2350558e36f3fc9c65815b4dde1464a6", "b9e80d297b08241c41d684d20c584c3e:::2fb0e0980a2d7a1b909c672865be055b", "55daf5e9e8622b66cbdbc41510dea689:::2fb0e0980a2d7a1b909c672865be055b", "de0f200b8263dcb7dd5f060053e00087:::b3de81be53c6edf8d3829269ad0b0092,4d9de52b111051f3c4dce16a54473e27,26faea1f3d6f600daef84de0d66e2e93,08d838e1945c51cbd15c66424967df53,cfb0c05401778716b4e7b218e146e6b4", "fe88e2670c7777e1136a39140be1ac8d:::60dd2cb338fe39146747b681c104fbc3,e2fe70265fce1a398b20a3c96847cc01", "f9e078c0524554d0c8bcd8ac3ff44a88:::7f18594c72751eebe9ef9092a99b53d6", "38284da65d208b1f38dbcc0c76ea1173:::cdf5dc66792f42f643e8ab7e2dffeb46", "ac705a0b8077d7e29cbbe311d0b2aa3f:::ba9b47c8e5987d368f4526ba889144c9", "16d3da2527ca7464c221f032ab4f90b5:::04d2001deecc3915040ae23f4ac1a0f3", "ede0b5e3ce95d8bf3c470cd612980b40:::4c5d6c3a6edd517e6b996ff73b291940", "6743c1e5285e15f0a73702131638d11c:::5ac500a3d3239fa8d8a262f65ccdb793", "1226e55385299f84c6c112d51454de01:::8499b0f76bd5c14ccabd3de4d6c3ff33", "2162fbd8675589592d0f030fad96153f:::df91b2ddf3cd8dbfbefc9f8d6e2b7df1", "e626596388f78c87284bec2f2e788925:::b1118d9b82f6512e9d8b1195f119a0e5", "56341f784493e370d51a331270b64843:::e22fad6d96d0a9b64b122aa3fb614a6b", "54120d169d711599e2f34ceba5881a25:::a8aca3b4aefdaf83c708b1f38ead3bf7", "dcc8019a9504c359eaa76d6435f91b77:::ee6df7033a974fd2d6b73e2297a56fc1", "787ceca896ab61b7f76d10845052336d:::9372d183a8a38dcd7ab7ac4697837391", "27944e5a0206a841c661eb9f51dd124b:::df35607f0ae324465ee40fa1b753e188", "a44447e4273c987b23bb52bd5a58589f:::facc475ab86a7d66ee1746f4ae7e2f03", "adb87e8e81bc47a6585ede9d2bc0d326:::1f8e1788600fd97d9989544483687bd9", "fa893333ea660e37017bd445103bb5a0:::2fb0e0980a2d7a1b909c672865be055b", "59be392c65dee74fdb5b843ed62bf730:::b0084e55a9827d57e6d9f30d192aa0e6,23c800815e7c34c668b10509c4f3c363", "87056405223e662aa96b600278b3ded9:::afba1d4fe6f50f99e11236a57811df81", "8b667ef166fce6fa8eabb8b0d92dc59a:::44cbbea448beda731b0f2713b8659c7b", "5e1bb2efa778747a8b07ba35bfff96d3:::8817100f8510dcb1c1bc60f03439f3ab", "eb5e73e40b052918ab85f7d3484ab71c:::70522a4f6dc86a8377a846e1f8d0ba48", "97525a776e2b976fba9a81110ef22ad4:::0f852306c54cbbca71c2241662d1e3ed", "677315504b98b0d7ca0b17da3487956a:::d324ee2524f42a7ef7fe4180adaa84bb", "bd945fc58305de7675989515abba0ea7:::11599502c3be5110b5467ea25ef86113", "5cf9b03e86f48c82ba8a9d41bb57c636:::8a68c7643065119a2ccf860543dbbda8", "4375d0177da7cd405b33c5f3ee6e4132:::cdf5dc66792f42f643e8ab7e2dffeb46", "c652cdb2886b8a4b8966a01b8f5a4f6e:::340ae48ecfaeb1b33defc6ed7e08bc0a", "6119f5c91b6f2ebece4d489bfb3cf3dd:::f9e0da24ce0fa1750c3cd86419cf1381", "a992971aacaa3c131fdfa00d9ae39786:::a18d03f6426fa70ba5b2af152b75e973", "db592e42e02cb78e4ace33858d74c2b0:::2fb0e0980a2d7a1b909c672865be055b", "cd88f66a4edbe1909ce1395bc723689c:::9ec3de0cbbb939eb4c9fa0ac5fa24cad,a1cf4fcb335c916ca26847bd3c4322a7,61c350a92006f76ed6a1b936828b05d9", "4b5d8ed1b2611d964932fb9fdfad5453:::57729f23b7a480408a3d5dc5bb27551e", "31e42e01ed131bad07146af9cc612adc:::8036f408a0bcea997cea1ef1d970dff0", "d4468ee9d0e9b27e83b09cadb93cccdb:::ab9a5b0283e1f620f1f5d9e8481b891d", "4d35c53545f928de44de20532f7edf53:::ca228da456b741b7e800ec1971041477", "b079e97bd699649c3211996c8c406f1a:::63878b8b7b30a702a4344bf34dc597f9", "55315696f2a80bcedd08c7dc97d7445f:::d794d3f7b3a0a8fdbd7582f6cacb5de0", "228a107b838a7ac978899e1bb19f5d66:::f9f1387bbfb6344f85df73220b94ec06", "843d90598df71ad0b4610e28a3fd50f6:::ab9a5b0283e1f620f1f5d9e8481b891d", "294dd3cb08529e06126beac848113609:::e391a1e2c2ef91ef1fe35ed393baf82e", "0d5f6af2f5fe89c489ee9eb29edfc43e:::cba537cbc3a1ac3ed71e53dec8da862f", "29a9703ceae06e9cb3eaf73db4a696a7:::ae40c14cab095b8495308234a2ccf95b", "a3ebd514b8e81447f730d8757573517d:::2fb0e0980a2d7a1b909c672865be055b", "69a35dc969663e2b79083a90cf99a5f8:::2fb0e0980a2d7a1b909c672865be055b", "6e4d30d1f1e9662c92d434e7bcc1058b:::cb9180268882d6911b581fad0397ca4c,2bc44bba491bb6a8fe3b30187e4a52f8,6f5052852d7e2c1abda03f9a3d0e9fc9", "68551ec3b1e3d700ff4b6a74fb584d0c:::9749cacefa57fedf29b6669a9f297add", "9424113b4f844f82a110500b728f5b9a:::d4d62722ba64191b4ec8ef13c3c95573", "09b02af48fe61227f2739d358e3ed654:::dc3b8fa787e74b925f4a815bca037291", "52cefb8295394d073b38003b247bd523:::99c89671f19fdb049d89af193fd3acb1", "bfe73f063e7b1d01ba760e1525062494:::c8cceddd97ecce677e869f209bed47c7", "2c92c5febfd16f470908e4e5a65935ff:::c90cd85b227a991ef671cbc22190d19e", "f60e0fb35106110f951bca8c1a7b09ef:::9053f6770419193779b640e1f53d60fb", "37c54a0b2e106d7a4a9b2cfe83c8306f:::e22fad6d96d0a9b64b122aa3fb614a6b", "86aca1c157986c0310e91a8e039763f7:::d79ec5610ef568fa3f32c7ef1d813d49", "4b2a069befa474b9652844a3d5348071:::f71f6bd40b64e37e0164a5279e151daf", "98bba07c58702b47776130121d83ef1c:::d5a8db78c0d4eda506b8ecff91f839f4", "d0d4526f9a7c9532e0f98293a16b2526:::06f178bc4d2a2d85ee2604aafe880dca", "71d7e383e241da6595c3a80cb20b4662:::2fb0e0980a2d7a1b909c672865be055b", "d45de374091bc850c3757437a684847b:::2fb0e0980a2d7a1b909c672865be055b", "4f74c381320b2fa6f2a14114e4d0627c:::066f84a2bb570bd1a850352d9c389f36", "bf08f304de4abe18a688753193c1a78a:::11fe152937b8e53179f77d151219fd32", "46df9793a345a42c6513bb214b84a569:::58eb9c18a64902f439fe1a1a8c70361a", "2ed1a57b2069d24f24ebfda65a87231d:::0cdb044aba95f978ff4955e08173bfda", "0f22d9994e83061fe373fb8a73e1147d:::b9cc203809d831afec674d16959f66e8", "e2f4f2ca0b9f4d615490efe5ce06b719:::f5eff2d698df701207466ca37160637a", "cb3fa2df4761cff9cbd57ec95a922828:::39f405b0f022130a53a219a44730f91b", "bcf3bb909c655792f3ea1eda5fe2eaf7:::d8538005010b2b4627afc7a2a1d40297", "3cac4eb5952d7078d69a0e6250487cb0:::aeff2ae1df218965512ec94c01e5b88f", "18830b5f85079167dcf0a1fd3f70856a:::4b6cc992193ff84dde3206ec02705ee0", "a386f02d1457631fbdb58377ab683206:::2fb0e0980a2d7a1b909c672865be055b", "b51a3faabdde539b7c41d91f15406493:::2fb0e0980a2d7a1b909c672865be055b", "e36cd9e9447b6e30c510d426f2290a78:::c2685ea900495212d3d096071606d108,4e168ec0aab5af1f2d3ac3b7a547f071,7aa36ce490d9d19ef9b9daf17aca9cef", "77877485e85bc5b5bdbe168667f8fc52:::5cf8bb58057ee069b1b6922b2b7c9e8b", "60eab5994529e8acea9065967f0db128:::e8cda56ec709f0b06e9b68eefad154bb", "4a9b15ccce7058835baa3c9ca4f1def4:::dc3b8fa787e74b925f4a815bca037291", "3cbe87dbb2f702984960c47d9c064249:::bddbde16a471483830f43ebbc5ccdd39", "8822ebd7cb4f2c122b932d49d9ef6e09:::2ee5f14c02af6fa4611d6eb106ba136a", "86dc5b3820b44fc026e7a5e4cd294b6c:::1d759637af9da6920ba36ec0132842ae", "805251c44998f9971e78653e94d98754:::d35594f6249618023c9eaa43a9f65d84", "5986984dce766775bbf6ae31dc96fd13:::8104bd8b2ed8b823b0269f030b647f6d", "08e64b3fc3a4b045d8263f4af562848e:::33f2ee3b92aad19310e2b3e2ee1ae91c", "686c1c1c52f0a104355fb335454545c9:::a3143232802c1503db831466491edee4", "594766649c0688b6f83c2ab4c50afe33:::2fb0e0980a2d7a1b909c672865be055b", "e76613e218e31c377fed9bb747b87f4b:::ea6d40b0d8ab07605cac8617c4e780ed", "6397c990dac105b97d665aac949f73d5:::85ff0ae5e6c970b63863781cc78cc750", "c242345d61cf474068a437fc95074078:::c929a395f05a0a5c4f06ca76935fb303", "72d08477af395227ee8a0403db331468:::1e06f60ba8612a1abf8225f538b1fa3b", "c22a8c187d07987e1594a30835690d8e:::bec7b895e76e397a75a2abfe0779b232", "0f124f4d6ff2db464efd84ae46dc190f:::2ad345511942ffe5cd560fe30494ac51", "1bb81e94dafc53c0f865ca5e61124806:::31071495c7eba92de138ef1d31f92afa", "9fe6736bee7ac2ff78c7987814312570:::580867966ac9a2d9300ce366b2bd3bb5", "f0206a47f6aff48f69175da2730a5b8c:::cf927077c1a4265b76897eeca49cf0c6", "6955d3f1838689864543665d35f91cf0:::b5fe4220286520345deadaf0bceef098", "2d5e11cf8b281790235c46288f0ed548:::2fb0e0980a2d7a1b909c672865be055b", "eaf045dbb48afd88fa2021f27e31308b:::2fb0e0980a2d7a1b909c672865be055b", "9a6e03bfd4e0eab2d68e16a0b47f9a19:::8b7a237eda4d59f84bb9d0036a5a7117,e416371644d200ff5452a9a0cdde2726,b95656693a118bb50c01339e01f23f9c,7b7a050d15466a5069efe789f031cd56", "9acb215f384af20c7389ff314b2b455d:::8750694b7f09ac860840abd7dec657b3", "e167d8871f90fcf944694472c13b7f7c:::ea6d40b0d8ab07605cac8617c4e780ed", "a1d84e8fc3fc9d5e79784da6edca591a:::e30dd9eafb44f6d30f924e7cafaed72b", "485204bb9570acfe5da09a001ae322ca:::ad2ba27bb30f0605150fe47554b86dea", "0c9c9d0c0514396555cb2d48f38ba536:::86736a374771a383c6597c2668865a97", "08b46749bd7c2ba4238f5cc1a638d029:::e6183b8357b2953009905e2548ed9230", "21255181b28d7c0e98ed89d84015a150:::0dfeeb2cc9b0773856ea8ba81282da7f", "19cd9c43a9774d519a87f944ebdd2a4d:::45f60099edddb7c2860da95e5d40734e", "674a87d90f7607fb00f27f38c6dd8d4b:::3b9762d11686686222f2a307006444fb", "64e26aa7b06c8af701ada4174710d882:::2fb0e0980a2d7a1b909c672865be055b", "a4295aa27cddc038c4debeabd8e9bea6:::2fb0e0980a2d7a1b909c672865be055b", "c36392089e3221193fd9d67cf17ff0a5:::dc3b8fa787e74b925f4a815bca037291", "fc8c2dcbe1dfe9ba5ac383aeac1cc756:::58eb9c18a64902f439fe1a1a8c70361a", "c04f0c18eaa9f45757753e688b98583a:::577f670eb0eebedb3e6dd61805be169e", "0329ae536ac0ba159a7f74cd7b4c39fd:::0487a4b8c22fc19b4501e441d9530962", "fef70760b63ce64bcee430f49a375652:::f29d674da39fd2a0721f2ce8482a32e2", "8efbcb79c93247f7aac1acb9aed853d0:::3ca631145748cf6feb2ec279fcd8f32d", "b15f10493f81e5112eefb41f87d4e7be:::9309cf1514c4b8950bc115d4bb8959fc", "d85d45c9c30504ee6814a75f2e80e472:::2fb0e0980a2d7a1b909c672865be055b", "f25623b4d1ae1bf916ff09ae1ede537b:::15ea3e43395ef8690967a1804765b804,960d70c181e9862e6c59c6d5cd9cd3a2,dc932bd8919ef73df5694201ceefcff4", "6b8b7b0f85a9dffcdfd6fadfa0e6089a:::bec7b895e76e397a75a2abfe0779b232", "abe8e57ac26f4dd96a2f912602584b83:::f779a50a1a10abbbf19db4b9dcd36919", "beddb139fb9c3b03fb7abf9b4de8f93c:::e4b209b9076affb66d310560f86b9796", "23cd1564d0b58921fe3e722582b412b9:::ea6d40b0d8ab07605cac8617c4e780ed", "720ad87a25f920404f041a52c03d1e19:::5056e3184ee101986b865f49ebb10fd1", "4efcb91833c36fb2476d714df810284b:::9309cf1514c4b8950bc115d4bb8959fc", "b9af8d2edf4cccdad8f7daa40972d07b:::e22fad6d96d0a9b64b122aa3fb614a6b", "5b05237a38a0842352de8bb934e47504:::2fb0e0980a2d7a1b909c672865be055b", "84864cd5d0fdcb3ca9e3dd8f7bef540f:::87bdec74d2f4bfa55f952203aa4b3972", "e2dc2291743bda3a7c7a154361b9f820:::14f4cc93821724e200e1472da7692294", "3068b103eaa0e10e914bec50da6eb220:::26bcacd9779fe6c547215ed705a77a48", "93be44672e67b7654c0ab9c8d8bc49a9:::c90cd85b227a991ef671cbc22190d19e", "3734fa01a41db5421f3774da698fb39c:::244c22a6ce0ec5049ccd64c3f0251d37", "c5aed422a231e51edb43896d1ab9509f:::b150942ef1f4163dd28e3eaa24c4e5c1", "1c81cceb3b68dd4e5a57eb6f56e5f620:::ab8eed3a49282b1aaa47e9f6ba757788", "bd7fee44a3ac470a29b9ea60c36c5cd6:::87bdec74d2f4bfa55f952203aa4b3972", "5cd452f6b2fcfe8651be13e9b1b66e20:::8a68c7643065119a2ccf860543dbbda8", "6f6b67d0d326e0b63681cc4e59f8af8d:::a42a0dd2b83b6b79f26fd7eded3252af", "c237db214dd81d300c8e8afd72e94c78:::9605dd4172b408f742d46a972ba2e4e0", "73bba2df34659b475b7a3063d13a9011:::e87b827b05cbd0c755a751c1254507ce", "bdaaa248b7fd83dd6a989246ffc51764:::2fb0e0980a2d7a1b909c672865be055b", "8aa1431a8b1f92bfe39fa11232c8933e:::6173ced2d997b51559969f77ab656d5e", "412e30485056971f4e89f485fb2d77b1:::dc3b8fa787e74b925f4a815bca037291", "48acb99f08ce269508605f4dda366aaf:::ea6d40b0d8ab07605cac8617c4e780ed", "8ce9280088883b8d4ea8096721ec90e5:::6da78ab228a3c1f064a5073311956ca5", "349bc6ebaa54db90cfdc7e894d928c4c:::94339a303dbe3798782d5306787130c2", "dcb41dc955208b225a86be62e11e9eec:::8a68c7643065119a2ccf860543dbbda8", "07fbebcc2c96c784e873638900179266:::2699a441a6cf2657509b563dd16a5a7c", "b533132646fd8d3b2360df3b356dc121:::d574915912dacdbf0c9e1f004da0497e", "a7fb56a35a3ea96556978e0ff3bcb4a5:::2fb0e0980a2d7a1b909c672865be055b", "acf80961eb8f1c861de24ec34a40baba:::051615c5e5f5aaaa1c213053de496f61,69020ac63556dfbed3eea4b6b0236650,b6bf694f86db0bcc129c4155c33200d1,ee680f6f2f8b15694d04f3b038029dd6", "1debc77e112847e5f23155e54792b375:::63e2911eef8755e64e0b74cad7d8f88a", "2d1d1df438fe91b5226a4a9e60c0e391:::12d97434b0fc8df3034264f9c1bc521a", "93d40e978ba07f73ac4977f057fbfc38:::45f25e79e20515d7787281469a073368", "4c8eec7c2f4d2b3db8ed673ca121caa8:::137ad3d2ef5b7ede3332ed7a97d92b46", "276114501d9716cde49c9204f26c93ef:::7c4d034cfc2703c876508fe49a784353", "0fedd7dfaf1806295ebe5683ae633c35:::8a68c7643065119a2ccf860543dbbda8", "ebd9497b931516b9f33b1385f4469583:::f28f60b71555be92e578e087f8468075", "3c65f785334119654c25ac684b5fb7f8:::6eee362259c385158e65ab051c2f7efb", "7f432e75f268107e5c24bd3122f8b2da:::6f5052852d7e2c1abda03f9a3d0e9fc9", "34f37d329866f70648d11ae8182c2300:::b2c712c788d3a143206eee22fe24d9f1", "32066975e50f946e9d5b89bf936c299c:::2fb0e0980a2d7a1b909c672865be055b", "257c33044c898c37c97a832ac3e2f2c5:::c866dba9330d73ebcd59422fe531d0c1", "5e21665a7d125f8b4e63fc64c79b555f:::6f5052852d7e2c1abda03f9a3d0e9fc9", "2e735c4fc674491bb958a63c7845127e:::4acabbfcb1d721b20a87c9b6c265011a", "656f225287e1344e43f85000cbdb3710:::0d8e549faa7a79fa00f61629a08d3feb", "8e86b263730b4e8b9367db6c6e0c7e57:::2fb0e0980a2d7a1b909c672865be055b", "06b85994939f4d5dde0c6e2c52361523:::706afe8608ca1c339bfa1cfa879cc2ea", "aa6f2563e2e15176352d9fbba7890ef9:::118671eb44a26f7ec455641847b98bfc", "1a267922d719c78d4b6c13540ea10156:::09389b0ad5cea78dc99eb82657545d9e", "428668871214d415505813d351b8d71f:::21dd534bccd2adb45225f27a05ab03e3", "cb4ec702ed63c74ed5d9b66ca271119b:::2fb0e0980a2d7a1b909c672865be055b", "8b9f49f19569a4114f9da99ecb1627f5:::c90cd85b227a991ef671cbc22190d19e,85596731d28413bbc9b10fa01f080e82", "5b68c89c7fe215b7fdfc140d32959e2c:::e228da506ee4a8547769b61cf1bbaf85", "97f8b15876ffa40c76393833d470c07c:::2fb0e0980a2d7a1b909c672865be055b", "0a2c7c3ecf20535569d2926b02b335ad:::507d4d88ac8802c788a378a41941f70e", "794358d034302a824aaae197032a551c:::821ebd5af9072d67a13c9fa15c25786f", "7ed22995996be849eda8d00218f606e6:::dae9f7f2059e503437fa9a6f6f4e20cf", "a575b60f7f8049c7407f6b0f102daeff:::4fc197e190d3e8e82a198591083de6b8,fd7171913c86efd396194fffc4447d49,4f062e313b6f34a09abebeb9739f88d6,9fea2a96aebca36dab94c809838cc62b", "224942a0e268281cbb5974f5fbdc5a20:::94a5aa1a54e98366a66f21688c4bdb26", "744ad78b377355b5d0b307158b2bb8d4:::6f5052852d7e2c1abda03f9a3d0e9fc9", "f3b49f82af16987a213fdf529384d997:::c8c9518e0d746df573b9c8db9e24f9c9", "1139862985ea91238728604aa0c512e3:::1d9476ee37bf4e5cdb6fb1eab1abb173"];

    const repalceText = (text) => {
        //text = text.replace(/[\n\r  ]+/g, '')
        text = text.replace(/[\n\r ]+/g, '')
        return text.replace(/^([A-Z]\.)*/g, '')
    }

    /**
     * 在答题页面,勾选上查询到的答案
     * @returns
     */
    const renderResultInExamStartPage = async () => {
        // 当前页判断
        if (!location.href.includes('exam.kaoshixing.com/exam/exam_start')) {
            return;
        }
        // 库
        const md5DataList = getMD5DataList();

        $('.question-content').find('.question-name .pre-wrap').each(function () {
            // 题干
            let questionName = repalceText($(this).text());
            let questionObject = md5DataList.filter(questionMd5 => questionMd5.split(':::')[0] === md5(questionName));

            // 没查到题目的话,跳过当前题目
            if (questionObject.length === 0) {
                return;
            }

            questionObject = questionObject[0];
            // 拿到选项的MD5列表
            let answerMD5List = questionObject.split(":::")[1].split(',');

            // 选项MD5
            $(this).parents('.question-content').find('.answers .select').each(function () {
                let text = $(this).text().replace(/[\n\r ]+/g, '');
                let answerMD5 = md5(repalceText(text));

                // 判断题
                if (['正确', '错误'].includes(text) && answerMD5List.includes(answerMD5)) {
                    $(this).find('span.words').click();
                }
                // 单选、多选
                else {
                    // 如果选项没有内容,就认为是图片,这时候需要获取图片的地址作为md5加密的值
                    if (text.split('.')[1] === '') {
                        text += $(this).find('img').attr('src');
                        let answerMD5 = md5(repalceText(text));
                        if (answerMD5List.includes(answerMD5)) {
                            $(this).find('span.words-option').click();
                        }
                    }
                    // 是否包含在正确答案中
                    if (answerMD5List.includes(answerMD5)) {
                        $(this).find('span.words-option').click();
                    }
                }
            });
        });
    }

    //生成从minNum到maxNum的随机数
    function randomNum(minNum, maxNum) {
        switch (arguments.length) {
            case 1:
                return parseInt(Math.random() * minNum + 1, 10);
            case 2:
                return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
            default:
                return 0;
        }
    }

    /**
     * 未查询到的答案 随机选择
     */
    const rednerNotFindQuestion = () => {
        setInterval(() => {
            $('div.question-content[data-commit="false"]').each(function () {
                $(this).find(`span.words-option:eq(${randomNum(0, 3)})`).click()
                $(this).find(`span.words:eq(${randomNum(0, 1)})`).click();
            })
        }, 1000);
    }

    /**
     * 交卷按钮控制, 自动提交试卷
     */
    const buttonControl = () => {
        if ($('#endExamBtn').length === 0) {
            return;
        }
        // 取随机交卷时间
        // 30、60 是随机交卷时间:30秒到60秒之间,可以根据自己的需求修改。
        const second = randomNum(30, 60) * 1000;
        let sencond2 = second;

        let timeoutTask = setInterval(() => {
            // .attr('disabled', true)
            sencond2 = sencond2 - 1000;
            $('#endExamBtn').css({
                padding: '10px 0px'
            }).text(`自动交卷倒计时${sencond2 / 1000}秒`);
            // 去除定时
            if ((sencond2 / 1000) <= 0) {
                timeoutTask = null;
                clearInterval(timeoutTask);
                $('#endExamBtn').css({
                    padding: '10px 28px'
                }).attr('disabled', false).text('提交试卷');
            }
        }, 1000);

        // 交卷
        setTimeout(() => {
            $('#endExamBtn').click();
            $('#confirmEndExamBtn').click();
        }, second + 1000);
    }

    renderResultInExamStartPage();
    rednerNotFindQuestion();
    // 不要自动交卷,把下面这行删掉
    buttonControl();
})();