Skip to content
This repository has been archived by the owner on May 9, 2020. It is now read-only.

Cloudflare form update #287

Closed
wants to merge 1 commit into from
Closed

Cloudflare form update #287

wants to merge 1 commit into from

Conversation

elpaxel
Copy link

@elpaxel elpaxel commented Nov 26, 2019

Cloudflare changed method of the form, url and one input.

Cloudflare changed method of the form, url and one input.
@elpaxel
Copy link
Author

elpaxel commented Nov 26, 2019

#286 #285

@TravisBuddy
Copy link

Travis tests have failed

Hey @elpaxel,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.

Node.js: node

View build log

npm test
> cloudscraper@4.3.0 test /home/travis/build/codemanki/cloudscraper
> npm run lint && npm run test:typescript && nyc --reporter=html --reporter=text mocha


> cloudscraper@4.3.0 lint /home/travis/build/codemanki/cloudscraper
> eslint --ext .json --ext .js --ext .ts .


/home/travis/build/codemanki/cloudscraper/index.d.ts
  80:40  warning  Unexpected any. Specify a different type  @typescript-eslint/no-explicit-any

✖ 1 problem (0 errors, 1 warning)


> cloudscraper@4.3.0 test:typescript /home/travis/build/codemanki/cloudscraper
> tsc *.ts --noEmit && tsd



  Brotli (lib)
    ✓ should be available
    ✓ should have a decompress method
    ✓ decompress() should accept exactly 1 argument
    ✓ decompress() should accept buffer as input
    ✓ [internal] decompress() should produce the expected result
    - [external] decompress() should produce the expected result
    ✓ optional() should throw an error if the module contains an error

  Cloudscraper
    1) should handle onCaptcha promise being rejected with a falsy error
Unhandled rejection ParserError: 
### Cloudflare may have changed their technique, or there may be a bug.
### Bug Reports: https://github.com/codemanki/cloudscraper/issues
### Check the detailed exception message that follows for the cause.

Challenge form is missing secret input
    at onCaptcha (/home/travis/build/codemanki/cloudscraper/index.js:61:173)
    at onCloudflareResponse (/home/travis/build/codemanki/cloudscraper/index.js:41:8)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:232)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    2) should resolve reCAPTCHA (version as on 10.04.2019) when user calls captcha.submit()
Unhandled rejection ParserError: 
### Cloudflare may have changed their technique, or there may be a bug.
### Bug Reports: https://github.com/codemanki/cloudscraper/issues
### Check the detailed exception message that follows for the cause.

Challenge form is missing secret input
    at onCaptcha (/home/travis/build/codemanki/cloudscraper/index.js:61:173)
    at onCloudflareResponse (/home/travis/build/codemanki/cloudscraper/index.js:41:8)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:232)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    3) should callback with an error if user calls captcha.submit(error)
Unhandled rejection ParserError: 
### Cloudflare may have changed their technique, or there may be a bug.
### Bug Reports: https://github.com/codemanki/cloudscraper/issues
### Check the detailed exception message that follows for the cause.

Challenge form is missing secret input
    at onCaptcha (/home/travis/build/codemanki/cloudscraper/index.js:61:173)
    at onCloudflareResponse (/home/travis/build/codemanki/cloudscraper/index.js:41:8)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:232)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    4) should resolve reCAPTCHA (version as on 10.04.2019) when the onCaptcha promise resolves
Unhandled rejection ParserError: 
### Cloudflare may have changed their technique, or there may be a bug.
### Bug Reports: https://github.com/codemanki/cloudscraper/issues
### Check the detailed exception message that follows for the cause.

Challenge form is missing secret input
    at onCaptcha (/home/travis/build/codemanki/cloudscraper/index.js:61:173)
    at onCloudflareResponse (/home/travis/build/codemanki/cloudscraper/index.js:41:8)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:232)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    5) should callback with an error if the onCaptcha promise is rejected
Unhandled rejection ParserError: 
### Cloudflare may have changed their technique, or there may be a bug.
### Bug Reports: https://github.com/codemanki/cloudscraper/issues
### Check the detailed exception message that follows for the cause.

Challenge form is missing secret input
    at onCaptcha (/home/travis/build/codemanki/cloudscraper/index.js:61:173)
    at onCloudflareResponse (/home/travis/build/codemanki/cloudscraper/index.js:41:8)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:232)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)


  Email (lib)
    ✓ should not modify unprotected html
    ✓ should remove email protection
    ✓ should replace anchors that have a data-cfemail attribute
    ✓ should replace spans that have a data-cfemail attribute
    ✓ should be space agnostic
    ✓ should not replace nodes if they have children
    ✓ should not replace malformed html
    ✓ should account for self-closing nodes
    ✓ should update href attribute values

  Cloudscraper
    ✓ should return error if it was thrown by request
    ✓ should return error if cloudflare response is empty
    ✓ should return error if captcha is served by cloudflare
    ✓ should return error if cloudflare returned some inner error
    ✓ should add a description to 5xx range cloudflare errors
    ✓ should not error if error description is unavailable
    6) should return error if cf presented more than 3 challenges in a row
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    ✓ should return error if body is undefined
    - should return error if content-type is brotli and missing dep
    ✓ should return error if challenge page failed to be parsed
    ✓ should return error if js challenge has error during evaluation
    ✓ should return error if pass extraction fails
    ✓ should return error if challengeId extraction fails
    ✓ should return error if challenge answer is not a number
    7) should return error if it was thrown by request when solving challenge
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    8) should properly handle a case when after a challenge another one is returned
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    ✓ should return error if challenge page cookie extraction fails
    ✓ should throw a TypeError if callback is not a function (122ms)
    ✓ should throw a TypeError if requester is not a function
    ✓ should throw a TypeError if challengesToSolve is not a number
    ✓ should throw a TypeError if cloudflareMaxTimeout is not a number
    ✓ should return error if cookie setting code evaluation fails
    ✓ should not error if Error.captureStackTrace is undefined

  Headers (lib)
    ✓ should export getDefaultHeaders function
    ✓ should export caseless function
    ✓ caseless should return an object with lowercase keys
    ✓ getDefaultHeaders should always return an object with user agent
    ✓ getDefaultHeaders should always retain insertion order

  Cloudscraper
    ✓ should return requested page, in the specified encoding
    ✓ should return parsed JSON
    ✓ should decompress Brotli and return parsed JSON
    ✓ should return requested data, if cloudflare is disabled for page
    ✓ should return requested page, if cloudflare is disabled for page
    ✓ should not trigger any error if recaptcha is present in page not protected by CF
    9) should resolve challenge (version as on 21.05.2015) and then return page
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    10) should resolve challenge (version as on 09.06.2016) and then return page
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    11) should resolve challenge (version as on 13.03.2019) and then return page
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    12) should resolve challenge (version as on 21.03.2019) and then return page
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    13) should resolve challenge (version as on 10.04.2019) and then return page
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    14) should resolve 2 consequent challenges
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    ✓ should make post request with formData
    ✓ should make delete request
    ✓ should return raw data when encoding is null
    ✓ should resolve sucuri WAF (version as on 18.08.2016) and then return page
    ✓ should resolve sucuri WAF (version as on 11.08.2019) and then return page
    15) should not use proxy's uri
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    ✓ should reuse the provided cookie jar
    ✓ should define custom defaults function
    16) should decode emails
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    17) should not error when using the baseUrl option
Unhandled rejection StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
    at new StatusCodeError (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/travis/build/codemanki/cloudscraper/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:185:22)
    at onRequestComplete (/home/travis/build/codemanki/cloudscraper/index.js:73:321)
    at onRequestResponse (/home/travis/build/codemanki/cloudscraper/index.js:39:329)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/index.js:29:376)
    at Object.onceWrapper (events.js:300:26)
    at Request.emit (events.js:210:5)
    at Request.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:210:5)
    at IncomingMessage.<anonymous> (/home/travis/build/codemanki/cloudscraper/node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:299:28)
    at IncomingMessage.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1200:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

    18) should use the provided cloudflare timeout
    19) sandbox.document.getElementById should not error

  Cloudscraper
    ✓ should resolve with response body
    ✓ should resolve with full response
    ✓ should define catch
    ✓ should define finally

  Sandbox (lib)
    ✓ should export Context
    ✓ should export eval
    ✓ new Context() should return an object
    ✓ Context() should define atob
    ✓ Context() should define location.reload
    ✓ Context() should define document.createElement
    ✓ Context() should define document.geElementById


  63 passing (829ms)
  2 pending
  19 failing

  1) Cloudscraper
       should handle onCaptcha promise being rejected with a falsy error:
     Uncaught AssertionError: expected { Object (name, message) } to be an instance of CaptchaError
      at Proxy.assertInstanceOf (node_modules/chai/lib/chai/core/assertions.js:1676:10)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-captcha.js:60:27)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onCaptcha (index.js:61:164)
      at onCloudflareResponse (index.js:41:8)
      at onRequestResponse (index.js:39:232)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  2) Cloudscraper
       should resolve reCAPTCHA (version as on 10.04.2019) when user calls captcha.submit():
     Uncaught AssertionError: expected { Object (name, message) } to be null
      at Assertion.<anonymous> (node_modules/chai/lib/chai/core/assertions.js:727:10)
      at Assertion.propertyGetter (node_modules/chai/lib/chai/utils/addProperty.js:62:29)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Assertion.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:280:43)
      at Assertion.overwritingPropertyGetter (node_modules/chai/lib/chai/utils/overwriteProperty.js:79:37)
      at Object.get (<anonymous>)
      at Object.proxyGetter [as get] (node_modules/chai/lib/chai/utils/proxify.js:98:22)
      at Request._rp_callbackOrig (test/test-captcha.js:151:32)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onCaptcha (index.js:61:164)
      at onCloudflareResponse (index.js:41:8)
      at onRequestResponse (index.js:39:232)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  3) Cloudscraper
       should callback with an error if user calls captcha.submit(error):
     Uncaught AssertionError: expected { Object (name, message) } to be an instance of CaptchaError
      at Proxy.assertInstanceOf (node_modules/chai/lib/chai/core/assertions.js:1676:10)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-captcha.js:164:33)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onCaptcha (index.js:61:164)
      at onCloudflareResponse (index.js:41:8)
      at onRequestResponse (index.js:39:232)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  4) Cloudscraper
       should resolve reCAPTCHA (version as on 10.04.2019) when the onCaptcha promise resolves:
     Uncaught AssertionError: expected { Object (name, message) } to be null
      at Assertion.<anonymous> (node_modules/chai/lib/chai/core/assertions.js:727:10)
      at Assertion.propertyGetter (node_modules/chai/lib/chai/utils/addProperty.js:62:29)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Assertion.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:280:43)
      at Assertion.overwritingPropertyGetter (node_modules/chai/lib/chai/utils/overwriteProperty.js:79:37)
      at Object.get (<anonymous>)
      at Object.proxyGetter [as get] (node_modules/chai/lib/chai/utils/proxify.js:98:22)
      at Request._rp_callbackOrig (test/test-captcha.js:151:32)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onCaptcha (index.js:61:164)
      at onCloudflareResponse (index.js:41:8)
      at onRequestResponse (index.js:39:232)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  5) Cloudscraper
       should callback with an error if the onCaptcha promise is rejected:
     Uncaught AssertionError: expected { Object (name, message) } to be an instance of CaptchaError
      at Proxy.assertInstanceOf (node_modules/chai/lib/chai/core/assertions.js:1676:10)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-captcha.js:164:33)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onCaptcha (index.js:61:164)
      at onCloudflareResponse (index.js:41:8)
      at onRequestResponse (index.js:39:232)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  6) Cloudscraper
       should return error if cf presented more than 3 challenges in a row:
     Uncaught AssertionError: expected null to be an instance of CloudflareError
      at Proxy.assertInstanceOf (node_modules/chai/lib/chai/core/assertions.js:1676:10)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-errors.js:171:27)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  7) Cloudscraper
       should return error if it was thrown by request when solving challenge:
     Uncaught AssertionError: expected null to be an instance of RequestError
      at Proxy.assertInstanceOf (node_modules/chai/lib/chai/core/assertions.js:1676:10)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-errors.js:337:27)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  8) Cloudscraper
       should properly handle a case when after a challenge another one is returned:
     Uncaught AssertionError: expected null to be an instance of CaptchaError
      at Proxy.assertInstanceOf (node_modules/chai/lib/chai/core/assertions.js:1676:10)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-errors.js:370:27)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  9) Cloudscraper
       should resolve challenge (version as on 21.05.2015) and then return page:
     Uncaught AssertionError: expected Request to have been called with exact arguments {
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: 642,
    jschl_vc: "89cdff5eaa25923e0f26e29e5195dce9",
    pass: "1432194174.495-8TSfc235EQ"
  },
  realEncoding: "utf8",
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 1:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  challengesToSolve: 3,
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: 642,
    jschl_vc: "89cdff5eaa25923e0f26e29e5195dce9",
    pass: "1432194174.495-8TSfc235EQ"
  },
  realEncoding: "utf8",
  requester: function request() {},
  uri: "http://127.0.0.1:33351/test"
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 2:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  form: {
    jschl_answer: 642,
    jschl_vc: "89cdff5eaa25923e0f26e29e5195dce9",
    pass: "1432194174.495-8TSfc235EQ"
  },
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "POST",
  method: "GET",
  qs: {
    jschl_answer: 642,
    jschl_vc: "89cdff5eaa25923e0f26e29e5195dce9",
    pass: "1432194174.495-8TSfc235EQ"
  },
  realEncoding: "utf8",
  requester: function request() {},
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
      at Proxy.<anonymous> (node_modules/sinon-chai/lib/sinon-chai.js:105:18)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-index.js:180:40)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  10) Cloudscraper
       should resolve challenge (version as on 09.06.2016) and then return page:
     Uncaught AssertionError: expected Request to have been called with exact arguments {
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: 6641,
    jschl_vc: "346b959db0cfa38f9938acc11d6e1e6e",
    pass: "1465488330.6-N/NbGTg+IM"
  },
  realEncoding: "utf8",
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 1:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  challengesToSolve: 3,
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: 6641,
    jschl_vc: "346b959db0cfa38f9938acc11d6e1e6e",
    pass: "1465488330.6-N/NbGTg+IM"
  },
  realEncoding: "utf8",
  requester: function request() {},
  uri: "http://127.0.0.1:33351/test"
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 2:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  form: {
    jschl_answer: 6641,
    jschl_vc: "346b959db0cfa38f9938acc11d6e1e6e",
    pass: "1465488330.6-N/NbGTg+IM"
  },
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "POST",
  method: "GET",
  qs: {
    jschl_answer: 6641,
    jschl_vc: "346b959db0cfa38f9938acc11d6e1e6e",
    pass: "1465488330.6-N/NbGTg+IM"
  },
  realEncoding: "utf8",
  requester: function request() {},
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
      at Proxy.<anonymous> (node_modules/sinon-chai/lib/sinon-chai.js:105:18)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-index.js:217:40)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  11) Cloudscraper
       should resolve challenge (version as on 13.03.2019) and then return page:
     Uncaught AssertionError: expected Request to have been called with exact arguments {
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: "31.5879578333",
    jschl_vc: "18e0eb4e7cc844880cd9822df9d8546e",
    pass: "1552499230.142-MOc6blXorq"
  },
  realEncoding: "utf8",
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 1:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  challengesToSolve: 3,
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: "31.5879578333",
    jschl_vc: "18e0eb4e7cc844880cd9822df9d8546e",
    pass: "1552499230.142-MOc6blXorq"
  },
  realEncoding: "utf8",
  requester: function request() {},
  uri: "http://127.0.0.1:33351/test"
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 2:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  form: {
    jschl_answer: "31.5879578333",
    jschl_vc: "18e0eb4e7cc844880cd9822df9d8546e",
    pass: "1552499230.142-MOc6blXorq"
  },
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "POST",
  method: "GET",
  qs: {
    jschl_answer: "31.5879578333",
    jschl_vc: "18e0eb4e7cc844880cd9822df9d8546e",
    pass: "1552499230.142-MOc6blXorq"
  },
  realEncoding: "utf8",
  requester: function request() {},
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
      at Proxy.<anonymous> (node_modules/sinon-chai/lib/sinon-chai.js:105:18)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-index.js:254:40)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  12) Cloudscraper
       should resolve challenge (version as on 21.03.2019) and then return page:
     Uncaught AssertionError: expected Request to have been called with exact arguments {
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: "13.0802397598",
    jschl_vc: "56dea7618ea1879d5c357e2f36d8cc73",
    pass: "1553213551.122-8cmVkvFy7Q",
    s: "08ee9f79382c9f784ef868f239a0984261a28b2f-1553213547-1800-AXjMT2d0Sx0fifn2gHCBp7sjO3hmbH5Pab9lPE92HxBLetotfG2HQ0U8ioQ2CJwOMGV5pmmBmffUDmmyxIyCuRCBOxecZXzYCBZZReVFCTXgIlpXL8ZcztRhE9Bm3BNGfg=="
  },
  realEncoding: "utf8",
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 1:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  challengesToSolve: 3,
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: "13.0802397598",
    jschl_vc: "56dea7618ea1879d5c357e2f36d8cc73",
    pass: "1553213551.122-8cmVkvFy7Q",
    s: "08ee9f79382c9f784ef868f239a0984261a28b2f-1553213547-1800-AXjMT2d0Sx0fifn2gHCBp7sjO3hmbH5Pab9lPE92HxBLetotfG2HQ0U8ioQ2CJwOMGV5pmmBmffUDmmyxIyCuRCBOxecZXzYCBZZReVFCTXgIlpXL8ZcztRhE9Bm3BNGfg=="
  },
  realEncoding: "utf8",
  requester: function request() {},
  uri: "http://127.0.0.1:33351/test"
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 2:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  form: {
    jschl_answer: "13.0802397598",
    jschl_vc: "56dea7618ea1879d5c357e2f36d8cc73",
    pass: "1553213551.122-8cmVkvFy7Q"
  },
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "POST",
  method: "GET",
  qs: {
    jschl_answer: "13.0802397598",
    jschl_vc: "56dea7618ea1879d5c357e2f36d8cc73",
    pass: "1553213551.122-8cmVkvFy7Q",
    s: "08ee9f79382c9f784ef868f239a0984261a28b2f-1553213547-1800-AXjMT2d0Sx0fifn2gHCBp7sjO3hmbH5Pab9lPE92HxBLetotfG2HQ0U8ioQ2CJwOMGV5pmmBmffUDmmyxIyCuRCBOxecZXzYCBZZReVFCTXgIlpXL8ZcztRhE9Bm3BNGfg=="
  },
  realEncoding: "utf8",
  requester: function request() {},
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
      at Proxy.<anonymous> (node_modules/sinon-chai/lib/sinon-chai.js:105:18)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-index.js:290:40)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  13) Cloudscraper
       should resolve challenge (version as on 10.04.2019) and then return page:
     Uncaught AssertionError: expected Request to have been called with exact arguments {
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: "18.8766929385",
    jschl_vc: "686d6bea02e6d172aa64f102a684228c",
    pass: "1555369950.717-6S1r4kzOYK",
    s: "f3b4838af97b6cb02b3c8b1e0f149daf27dbee61-1555369946-1800-AakWW8TP/PRVIBQ2t2QmkJFEmb8TAmeIE7/GS7OUCF+d/7LncO0Zwye3YaCZyfhCfRyQogtebFuSWk2ANVV0pDSXqJ/q5qe0URcQQ2NNaGVMuPVrLh/OrUqD2QUPn0dWGA=="
  },
  realEncoding: "utf8",
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 1:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  challengesToSolve: 3,
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  qs: {
    jschl_answer: "18.8766929385",
    jschl_vc: "686d6bea02e6d172aa64f102a684228c",
    pass: "1555369950.717-6S1r4kzOYK",
    s: "f3b4838af97b6cb02b3c8b1e0f149daf27dbee61-1555369946-1800-AakWW8TP/PRVIBQ2t2QmkJFEmb8TAmeIE7/GS7OUCF+d/7LncO0Zwye3YaCZyfhCfRyQogtebFuSWk2ANVV0pDSXqJ/q5qe0URcQQ2NNaGVMuPVrLh/OrUqD2QUPn0dWGA=="
  },
  realEncoding: "utf8",
  requester: function request() {},
  uri: "http://127.0.0.1:33351/test"
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
Call 2:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  form: {
    jschl_answer: "18.8766929385",
    jschl_vc: "686d6bea02e6d172aa64f102a684228c",
    pass: "1555369950.717-6S1r4kzOYK"
  },
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "POST",
  method: "GET",
  qs: {
    jschl_answer: "18.8766929385",
    jschl_vc: "686d6bea02e6d172aa64f102a684228c",
    pass: "1555369950.717-6S1r4kzOYK",
    s: "f3b4838af97b6cb02b3c8b1e0f149daf27dbee61-1555369946-1800-AakWW8TP/PRVIBQ2t2QmkJFEmb8TAmeIE7/GS7OUCF+d/7LncO0Zwye3YaCZyfhCfRyQogtebFuSWk2ANVV0pDSXqJ/q5qe0URcQQ2NNaGVMuPVrLh/OrUqD2QUPn0dWGA=="
  },
  realEncoding: "utf8",
  requester: function request() {},
  requester: typeOf("function"),
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}
      at Proxy.<anonymous> (node_modules/sinon-chai/lib/sinon-chai.js:105:18)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-index.js:325:40)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  14) Cloudscraper
       should resolve 2 consequent challenges:
     Uncaught expected Request to have been called exactly thrice, but it was called twice
    Request({
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  challengesToSolve: 3,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  realEncoding: "utf8",
  requester: function request() {},
  resolveWithFullResponse: true,
  uri: "http://127.0.0.1:33351/test"
}) => [Request] {
  __isRequestRequest: true,
  _auth: [Auth] {
    bearerToken: null,
    hasAuth: false,
    pass: null,
    request: [Circular],
    sentAuth: false,
    user: null
  },
  _callback: function RP$callback() {},
  _callbackCalled: true,
  _destdata: true,
  _ended: true,
  _events: {
    data: function () {},
    end: function () {},
    error: function bound onceWrapper() {},
    pipe: function () {}
  },
  _eventsCount: 4,
  _jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  _maxListeners: undefined,
  _multipart: [Multipart] {
    body: null,
    boundary: "c87c01c3-9e34-4c5c-8c3b-c8ebf143df27",
    chunked: false,
    request: [Circular]
  },
  _oauth: [OAuth] { params: null, request: [Circular] },
  _qs: [Querystring] {
    lib: {
      formats: {
        RFC1738: "RFC1738",
        RFC3986: "RFC3986",
        default: "RFC3986",
        formatters: { RFC1738: function RFC1738() {}, RFC3986: function RFC3986() {} }
      },
      parse: function () {},
      stringify: function () {}
    },
    parseOptions: {  },
    request: [Circular],
    stringifyOptions: {  },
    useQuerystring: undefined
  },
  _redirect: [Redirect] {
    allowRedirect: function () {},
    followAllRedirects: true,
    followOriginalHttpMethod: false,
    followRedirect: true,
    followRedirects: true,
    maxRedirects: 10,
    redirects: [],
    redirectsFollowed: 0,
    removeRefererHeader: false,
    request: [Circular]
  },
  _rp_callbackOrig: function () {},
  _rp_options: {
    agentOptions: {
      ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
    },
    callback: function RP$callback() {},
    challengesToSolve: 3,
    cloudflareMaxTimeout: 30000,
    cloudflareTimeout: 1,
    decodeEmails: false,
    encoding: null,
    followAllRedirects: true,
    gzip: true,
    headers: {
      Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      Accept-Encoding: "gzip, deflate, br",
      Accept-Language: "en-US,en;q=0.9",
      Connection: "keep-alive",
      Host: Symbol(host),
      Upgrade-Insecure-Requests: "1",
      User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
    },
    jar: [Circular],
    method: "GET",
    realEncoding: "utf8",
    requester: function request() {},
    resolveWithFullResponse: true,
    simple: true,
    transform: undefined,
    transform2xxOnly: false,
    uri: "http://127.0.0.1:33351/test"
  },
  _rp_promise: [object Promise],
  _rp_reject: function () {},
  _rp_resolve: function () {},
  _started: true,
  _tunnel: [Tunnel] {
    proxyHeaderExclusiveList: [],
    proxyHeaderWhiteList: ["accept", "accept-charset", "accept-encoding", "accept-language", "accept-ranges", "cache-control", "content-encoding", "content-language", "content-location", "content-md5", "content-range", "content-type", "connection", "date", "expect", "max-forwards", "pragma", "referer", "te", "user-agent", "via"],
    request: [Circular]
  },
  agent: [Agent] {
    _events: { free: function () {}, newListener: function maybeEnableKeylog() {} },
    _eventsCount: 2,
    _maxListeners: undefined,
    defaultPort: 80,
    freeSockets: {  },
    keepAlive: false,
    keepAliveMsecs: 1000,
    maxFreeSockets: 256,
    maxSockets: Infinity,
    options: {
      ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA",
      path: null
    },
    protocol: "http:",
    requests: {  },
    sockets: {
      127.0.0.1:33351:: [[Socket] {
  _events: {
    agentRemove: function onRemove() {},
    close: function onClose() {},
    end: function onReadableStreamEnd() {},
    error: function bound onceWrapper() {},
    free: function onFree() {}
  },
  _eventsCount: 5,
  _hadError: false,
  _host: null,
  _httpMessage: [ClientRequest] {
    _contentLength: null,
    _ended: true,
    _events: {
      drain: function () {},
      error: function bound () {},
      prefinish: function requestOnPrefinish() {},
      response: function bound () {},
      socket: function () {}
    },
    _eventsCount: 5,
    _hasBody: true,
    _header: "POST /cdn-cgi/l/chk_jschl HTTP/1.1
Host: 127.0.0.1:33351
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Referer: http://127.0.0.1:33351/test
content-type: application/x-www-form-urlencoded
content-length: 104

",
    _headerSent: true,
    _last: true,
    _maxListeners: undefined,
    _onPendingData: function noopPendingOutput() {},
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _trailer: (empty string),
    aborted: false,
    agent: [Circular],
    chunkedEncoding: false,
    finished: true,
    maxHeadersCount: null,
    method: "POST",
    outputData: [],
    outputSize: 0,
    parser: null,
    path: "/cdn-cgi/l/chk_jschl",
    res: [IncomingMessage] {
      _consuming: false,
      _dumped: false,
      _events: {
        close: [function () {}, function () {}],
        data: function () {},
        end: [function responseOnEnd() {}, function () {}],
        error: function () {}
      },
      _eventsCount: 4,
      _maxListeners: undefined,
      _readableState: [ReadableState] {
        autoDestroy: false,
        awaitDrainWriters: null,
        buffer: [BufferList] { head: null, length: 0, tail: null },
        decoder: null,
        defaultEncoding: "utf8",
        destroyed: false,
        emitClose: true,
        emittedReadable: false,
        encoding: null,
        endEmitted: true,
        ended: true,
        errorEmitted: false,
        flowing: true,
        highWaterMark: 16384,
        length: 0,
        multiAwaitDrain: false,
        needReadable: false,
        objectMode: false,
        paused: false,
        pipes: [],
        readableListening: false,
        reading: false,
        readingMore: true,
        resumeScheduled: false,
        sync: true
      },
      aborted: false,
      body: "<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>
</body>
</html>
",
      caseless: [Caseless] {
        dict: {
          connection: "keep-alive",
          content-length: "159",
          content-security-policy: "default-src 'none'",
          content-type: "text/html; charset=utf-8",
          date: "Tue, 26 Nov 2019 19:13:58 GMT",
          x-content-type-options: "nosniff",
          x-powered-by: "Express"
        }
      },
      client: [Circular],
      complete: true,
      headers: [Circular],
      httpVersion: "1.1",
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      isCloudflare: false,
      isHTML: true,
      method: null,
      rawHeaders: ["X-Powered-By", "Express", "Content-Security-Policy", "default-src 'none'", "X-Content-Type-Options", "nosniff", "Content-Type", "text/html; charset=utf-8", "Content-Length", "159", "Date", "Tue, 26 Nov 2019 19:13:58 GMT", "Connection", "keep-alive"],
      rawTrailers: [],
      readable: false,
      req: [Circular],
      request: [Request] {
        __isRequestRequest: true,
        _auth: [Auth] {
          bearerToken: null,
          hasAuth: false,
          pass: null,
          request: [Circular],
          sentAuth: false,
          user: null
        },
        _callback: function RP$callback() {},
        _destdata: true,
        _ended: true,
        _events: {
          data: function () {},
          end: function () {},
          error: function bound onceWrapper() {},
          pipe: function () {}
        },
        _eventsCount: 4,
        _jar: [Circular],
        _maxListeners: undefined,
        _multipart: [Multipart] {
          body: null,
          boundary: "16bca76c-9160-4bda-9d64-da5aed7923c4",
          chunked: false,
          request: [Circular]
        },
        _oauth: [OAuth] { params: null, request: [Circular] },
        _qs: [Querystring] {
          lib: [Circular],
          parseOptions: {  },
          request: [Circular],
          stringifyOptions: {  },
          useQuerystring: undefined
        },
        _redirect: [Redirect] {
          allowRedirect: function () {},
          followAllRedirects: true,
          followOriginalHttpMethod: false,
          followRedirect: true,
          followRedirects: true,
          maxRedirects: 10,
          redirects: [],
          redirectsFollowed: 0,
          removeRefererHeader: false,
          request: [Circular]
        },
        _rp_callbackOrig: function () {},
        _rp_options: {
          agentOptions: [Circular],
          callback: function RP$callback() {},
          challengesToSolve: 2,
          cloudflareMaxTimeout: 30000,
          cloudflareTimeout: 1,
          decodeEmails: false,
          encoding: null,
          followAllRedirects: true,
          form: {
            jschl_answer: 3.6673459399999997,
            jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
            pass: "1543827239.915-44n9IE20mS"
          },
          gzip: true,
          headers: {
            Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
            Accept-Encoding: "gzip, deflate, br",
            Accept-Language: "en-US,en;q=0.9",
            Connection: "keep-alive",
            Host: Symbol(host),
            Referer: "http://127.0.0.1:33351/test",
            Upgrade-Insecure-Requests: "1",
            User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
          },
          jar: [Circular],
          method: "POST",
          realEncoding: "utf8",
          requester: function request() {},
          resolveWithFullResponse: true,
          simple: true,
          transform: undefined,
          transform2xxOnly: false,
          uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
        },
        _rp_promise: [object Promise],
        _rp_reject: function () {},
        _rp_resolve: function () {},
        _started: true,
        _tunnel: [Tunnel] {
          proxyHeaderExclusiveList: [],
          proxyHeaderWhiteList: [Circular],
          request: [Circular]
        },
        agent: [Circular],
        agentClass: function Agent() {},
        agentOptions: [Circular],
        body: "jschl_vc=427c2b1cd4fba29608ee81b200e94bfa&pass=1543827239.915-44n9IE20mS&jschl_answer=3.6673459399999997",
        callback: function () {},
        challengesToSolve: 2,
        cloudflareMaxTimeout: 30000,
        cloudflareTimeout: 1,
        cloudscraper: true,
        decodeEmails: false,
        dests: [],
        encoding: null,
        explicitMethod: true,
        followAllRedirects: true,
        getHeader: function () {},
        gzip: true,
        hasHeader: function () {},
        headers: {
          Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
          Accept-Encoding: "gzip, deflate, br",
          Accept-Language: "en-US,en;q=0.9",
          Connection: "keep-alive",
          Host: "127.0.0.1:33351",
          Referer: "http://127.0.0.1:33351/test",
          Upgrade-Insecure-Requests: "1",
          User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36",
          content-length: 104,
          content-type: "application/x-www-form-urlencoded"
        },
        host: "127.0.0.1",
        href: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl",
        httpModule: {
          Agent: function Agent() {},
          ClientRequest: function ClientRequest() {},
          IncomingMessage: function IncomingMessage() {},
          METHODS: ["ACL", "BIND", "CHECKOUT", "CONNECT", "COPY", "DELETE", "GET", "HEAD", "LINK", "LOCK", "M-SEARCH", "MERGE", "MKACTIVITY", "MKCALENDAR", "MKCOL", "MOVE", "NOTIFY", "OPTIONS", "PATCH", "POST", "PROPFIND", "PROPPATCH", "PURGE", "PUT", "REBIND", "REPORT", "SEARCH", "SOURCE", "SUBSCRIBE", "TRACE", "UNBIND", "UNLINK", "UNLOCK", "UNSUBSCRIBE"],
          OutgoingMessage: function OutgoingMessage() {},
          STATUS_CODES: {
            100: "Continue",
            101: "Switching Protocols",
            102: "Processing",
            103: "Early Hints",
            200: "OK",
            201: "Created",
            202: "Accepted",
            203: "Non-Authoritative Information",
            204: "No Content",
            205: "Reset Content",
            206: "Partial Content",
            207: "Multi-Status",
            208: "Already Reported",
            226: "IM Used",
            300: "Multiple Choices",
            301: "Moved Permanently",
            302: "Found",
            303: "See Other",
            304: "Not Modified",
            305: "Use Proxy",
            307: "Temporary Redirect",
            308: "Permanent Redirect",
            400: "Bad Request",
            401: "Unauthorized",
            402: "Payment Required",
            403: "Forbidden",
            404: "Not Found",
            405: "Method Not Allowed",
            406: "Not Acceptable",
            407: "Proxy Authentication Required",
            408: "Request Timeout",
            409: "Conflict",
            410: "Gone",
            411: "Length Required",
            412: "Precondition Failed",
            413: "Payload Too Large",
            414: "URI Too Long",
            415: "Unsupported Media Type",
            416: "Range Not Satisfiable",
            417: "Expectation Failed",
            418: "I'm a Teapot",
            421: "Misdirected Request",
            422: "Unprocessable Entity",
            423: "Locked",
            424: "Failed Dependency",
            425: "Too Early",
            426: "Upgrade Required",
            428: "Precondition Required",
            429: "Too Many Requests",
            431: "Request Header Fields Too Large",
            451: "Unavailable For Legal Reasons",
            500: "Internal Server Error",
            501: "Not Implemented",
            502: "Bad Gateway",
            503: "Service Unavailable",
            504: "Gateway Timeout",
            505: "HTTP Version Not Supported",
            506: "Variant Also Negotiates",
            507: "Insufficient Storage",
            508: "Loop Detected",
            509: "Bandwidth Limit Exceeded",
            510: "Not Extended",
            511: "Network Authentication Required"
          },
          Server: function Server() {},
          ServerResponse: function ServerResponse() {},
          _connectionListener: function connectionListener() {},
          createServer: function createServer() {},
          get: function get() {},
          globalAgent: [Agent] {
            _events: { free: function () {}, newListener: function maybeEnableKeylog() {} },
            _eventsCount: 2,
            _maxListeners: undefined,
            defaultPort: 80,
            freeSockets: {  },
            keepAlive: false,
            keepAliveMsecs: 1000,
            maxFreeSockets: 256,
            maxSockets: Infinity,
            options: { path: null },
            protocol: "http:",
            requests: {  },
            sockets: {  }
          },
          maxHeaderSize: 8192,
          request: function request() {}
        },
        localAddress: undefined,
        method: "POST",
        ntick: true,
        originalCookieHeader: undefined,
        originalHost: "127.0.0.1:33351",
        originalHostHeaderName: "Host",
        path: "/cdn-cgi/l/chk_jschl",
        pool: { http:: [Circular] },
        port: "33351",
        proxy: null,
        readable: true,
        realEncoding: "utf8",
        removeHeader: function () {},
        req: [Circular],
        requester: function request() {},
        resolveWithFullResponse: true,
        response: [Circular],
        responseContent: [Circular],
        setHeader: function () {},
        setHost: false,
        tunnel: false,
        uri: [Url] {
          auth: null,
          hash: null,
          host: "127.0.0.1:33351",
          hostname: "127.0.0.1",
          href: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl",
          path: "/cdn-cgi/l/chk_jschl",
          pathname: "/cdn-cgi/l/chk_jschl",
          port: "33351",
          protocol: "http:",
          query: null,
          search: null,
          slashes: true
        },
        writable: true
      },
      responseStartTime: 1574795638528,
      socket: [Circular],
      statusCode: 404,
      statusMessage: "Not Found",
      toJSON: function responseToJSON() {},
      trailers: {  },
      upgrade: false,
      url: (empty string)
    },
    reusedSocket: false,
    sendDate: false,
    shouldKeepAlive: true,
    socket: [Circular],
    socketPath: undefined,
    timeoutCb: null,
    upgradeOrConnect: false,
    useChunkedEncodingByDefault: true,
    writable: true,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kOutHeaders): {
      accept: ["Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"],
      accept-encoding: ["Accept-Encoding", "gzip, deflate, br"],
      accept-language: ["Accept-Language", "en-US,en;q=0.9"],
      connection: ["Connection", "keep-alive"],
      content-length: ["content-length", 104],
      content-type: ["content-type", "application/x-www-form-urlencoded"],
      host: ["Host", "127.0.0.1:33351"],
      referer: ["Referer", "http://127.0.0.1:33351/test"],
      upgrade-insecure-requests: ["Upgrade-Insecure-Requests", "1"],
      user-agent: ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"]
    }
  },
  _maxListeners: undefined,
  _parent: null,
  _pendingData: null,
  _pendingEncoding: (empty string),
  _readableState: [ReadableState] {
    autoDestroy: false,
    awaitDrainWriters: null,
    buffer: [BufferList] { head: null, length: 0, tail: null },
    decoder: null,
    defaultEncoding: "utf8",
    destroyed: false,
    emitClose: false,
    emittedReadable: false,
    encoding: null,
    endEmitted: false,
    ended: false,
    errorEmitted: false,
    flowing: true,
    highWaterMark: 16384,
    length: 0,
    multiAwaitDrain: false,
    needReadable: true,
    objectMode: false,
    paused: false,
    pipes: [],
    readableListening: false,
    reading: true,
    readingMore: false,
    resumeScheduled: false,
    sync: false
  },
  _server: null,
  _sockname: null,
  _writableState: [WritableState] {
    autoDestroy: false,
    bufferProcessing: false,
    bufferedRequest: null,
    bufferedRequestCount: 0,
    corked: 0,
    corkedRequestsFree: {
      entry: null,
      finish: function bound onCorkedFinish() {},
      next: { entry: null, finish: function bound onCorkedFinish() {}, next: null }
    },
    decodeStrings: false,
    defaultEncoding: "utf8",
    destroyed: false,
    emitClose: false,
    ended: false,
    ending: false,
    errorEmitted: false,
    errored: false,
    finalCalled: false,
    finished: false,
    highWaterMark: 16384,
    lastBufferedRequest: null,
    length: 0,
    needDrain: false,
    objectMode: false,
    onwrite: function bound onwrite() {},
    pendingcb: 0,
    prefinished: false,
    sync: false,
    writecb: null,
    writelen: 0,
    writing: false
  },
  allowHalfOpen: false,
  connecting: false,
  parser: null,
  readable: true,
  server: null,
  writable: true,
  Symbol(asyncId): 1819,
  Symbol(kHandle): [TCP] { onconnection: null, reading: true, Symbol(owner): [Circular] },
  Symbol(lastWriteQueueSize): 0,
  Symbol(timeout): null,
  Symbol(kBuffer): null,
  Symbol(kBufferCb): null,
  Symbol(kBufferGen): null,
  Symbol(kBytesRead): 0,
  Symbol(kBytesWritten): 0
}]
    }
  },
  agentClass: function Agent() {},
  agentOptions: [Circular],
  callback: function () {},
  challengesToSolve: 3,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  cloudscraper: true,
  decodeEmails: false,
  dests: [],
  encoding: null,
  explicitMethod: true,
  followAllRedirects: true,
  getHeader: function () {},
  gzip: true,
  hasHeader: function () {},
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: "127.0.0.1:33351",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  host: "127.0.0.1",
  href: "http://127.0.0.1:33351/test",
  httpModule: [Circular],
  localAddress: undefined,
  method: "GET",
  ntick: true,
  originalCookieHeader: undefined,
  originalHost: "127.0.0.1:33351",
  originalHostHeaderName: "Host",
  path: "/test",
  pool: [Circular],
  port: "33351",
  proxy: null,
  readable: true,
  realEncoding: "utf8",
  removeHeader: function () {},
  req: [ClientRequest] {
    _contentLength: 0,
    _ended: true,
    _events: {
      drain: function () {},
      error: function bound () {},
      prefinish: function requestOnPrefinish() {},
      response: function bound () {},
      socket: function () {}
    },
    _eventsCount: 5,
    _hasBody: true,
    _header: "GET /test HTTP/1.1
Host: 127.0.0.1:33351
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br

",
    _headerSent: true,
    _last: true,
    _maxListeners: undefined,
    _onPendingData: function noopPendingOutput() {},
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _trailer: (empty string),
    aborted: false,
    agent: [Circular],
    chunkedEncoding: false,
    finished: true,
    maxHeadersCount: null,
    method: "GET",
    outputData: [],
    outputSize: 0,
    parser: null,
    path: "/test",
    res: [IncomingMessage] {
      _consuming: false,
      _dumped: false,
      _events: {
        close: [function () {}, function () {}],
        data: function () {},
        end: [function responseOnEnd() {}, function () {}],
        error: function () {}
      },
      _eventsCount: 4,
      _maxListeners: undefined,
      _readableState: [ReadableState] {
        autoDestroy: false,
        awaitDrainWriters: null,
        buffer: [BufferList] { head: null, length: 0, tail: null },
        decoder: null,
        defaultEncoding: "utf8",
        destroyed: false,
        emitClose: true,
        emittedReadable: false,
        encoding: null,
        endEmitted: true,
        ended: true,
        errorEmitted: false,
        flowing: true,
        highWaterMark: 16384,
        length: 0,
        multiAwaitDrain: false,
        needReadable: false,
        objectMode: false,
        paused: false,
        pipes: [],
        readableListening: false,
        reading: false,
        readingMore: true,
        resumeScheduled: false,
        sync: true
      },
      aborted: false,
      body: <!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8" />
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
  <meta name="robots" content="noindex, nofollow" />
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
  <title>Just a moment...</title>
  <style type="text/css">
    html, body {width: 100%; height: 100%; margin: 0; padding: 0;}
    body {background-color: #ffffff; font-family: Helvetica, Arial, sans-serif; font-size: 100%;}
    h1 {font-size: 1.5em; color: #404040; text-align: center;}
    p {font-size: 1em; color: #404040; text-align: center; margin: 10px 0 0 0;}
    #spinner {margin: 0 auto 30px auto; display: block;}
    .attribution {margin-top: 20px;}
    @-webkit-keyframes bubbles { 33%: { -webkit-transform: translateY(10px); transform: translateY(10px); } 66% { -webkit-transform: translateY(-10px); transform: translateY(-10px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } }
    @keyframes bubbles { 33%: { -webkit-transform: translateY(10px); transform: translateY(10px); } 66% { -webkit-transform: translateY(-10px); transform: translateY(-10px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } }
    .bubbles { background-color: #404040; width:15px; height: 15px; margin:2px; border-radius:100%; -webkit-animation:bubbles 0.6s 0.07s infinite ease-in-out; animation:bubbles 0.6s 0.07s infinite ease-in-out; -webkit-animation-fill-mode:both; animation-fill-mode:both; display:inline-block; }
  </style>

    <script type="text/javascript">
  //<![CDATA[
  (function(){
    var a = function() {try{return !!window.addEventListener} catch(e) {return !1} },
    b = function(b, c) {a() ? document.addEventListener("DOMContentLoaded", b, c) : document.attachEvent("onreadystatechange", b)};
    b(function(){
      var a = document.getElementById('cf-content');a.style.display = 'block';
      setTimeout(function(){
        var s,t,o,p,b,r,e,a,k,i,n,g,f, zoqqEUY={"xzWMiyQ":+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+!![]))/+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]))};
        t = document.createElement('div');
        t.innerHTML="<a href='/'>x</a>";
        t = t.firstChild.href;r = t.match(/https?:\/\//)[0];
        t = t.substr(r.length); t = t.substr(0,t.length-1);
        a = document.getElementById('jschl-answer');
        f = document.getElementById('challenge-form');
        ;zoqqEUY.xzWMiyQ-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]))/+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(+!![]));zoqqEUY.xzWMiyQ-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+!![]))/+((!+[]+!![]+[])+(+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]));a.value = +zoqqEUY.xzWMiyQ.toFixed(10) + t.length; '; 121'
        f.action += location.hash;
        f.submit();
      }, 4000);
    }, false);
  })();
  //]]>
</script>


</head>
<body>
  <table width="100%" height="100%" cellpadding="20">
    <tr>
      <td align="center" valign="middle">
          <div class="cf-browser-verification cf-im-under-attack">
  <noscript><h1 data-translate="turn_on_js" style="color:#bd2426;">Please turn JavaScript on and reload the page.</h1></noscript>
  <div id="cf-content" style="display:none">

    <div>
      <div class="bubbles"></div>
      <div class="bubbles"></div>
      <div class="bubbles"></div>
    </div>
    <h1><span data-translate="checking_browser">Checking your browser before accessing</span> iload.to.</h1>
    <p data-translate="process_is_automatic">This process is automatic. Your browser will redirect to your requested content shortly.</p>
    <p data-translate="allow_5_secs">Please allow up to 5 seconds&hellip;</p>
  </div>

  <form id="challenge-form" action="/cdn-cgi/l/chk_jschl" method="get">
    <input type="hidden" name="jschl_vc" value="427c2b1cd4fba29608ee81b200e94bfa"/>
    <input type="hidden" name="pass" value="1543827239.915-44n9IE20mS"/>
    <input type="hidden" id="jschl-answer" name="jschl_answer"/>
  </form>
</div>


          <div class="attribution">
            <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=iuam" target="_blank" style="font-size: 12px;">DDoS protection by Cloudflare</a>
            <br>
            Ray ID: 4834ce407815974a
          </div>
      </td>

    </tr>
  </table>
</body>
</html>,
      caseless: [Caseless] {
        dict: {
          connection: "keep-alive",
          content-length: "5455",
          content-type: "text/html; charset=utf-8",
          date: "Tue, 26 Nov 2019 19:13:58 GMT",
          etag: "W/"154f-MmeM/AiI2gL6nCyCEAVIUnFjAnI"",
          server: "cloudflare",
          x-powered-by: "Express"
        }
      },
      challenge: "        var s,t,o,p,b,r,e,a,k,i,n,g,f, zoqqEUY={"xzWMiyQ":+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+!![]))/+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]))};
        t = document.createElement('div');
        t.innerHTML="<a href='/'>x</a>";
        t = t.firstChild.href;r = t.match(/https?:\/\//)[0];
        t = t.substr(r.length); t = t.substr(0,t.length-1);
        a = document.getElementById('jschl-answer');
        f = document.getElementById('challenge-form');
        ;zoqqEUY.xzWMiyQ-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]))/+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(+!![]));zoqqEUY.xzWMiyQ-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+!![]))/+((!+[]+!![]+[])+(+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]));a.value = +zoqqEUY.xzWMiyQ.toFixed(10) + t.length; '; 121'; a.value",
      client: [Socket] {
        _events: {
          agentRemove: function onRemove() {},
          close: function onClose() {},
          end: function onReadableStreamEnd() {},
          error: function bound onceWrapper() {},
          free: function onFree() {}
        },
        _eventsCount: 5,
        _hadError: false,
        _host: null,
        _httpMessage: [Circular],
        _maxListeners: undefined,
        _parent: null,
        _pendingData: null,
        _pendingEncoding: (empty string),
        _readableState: [ReadableState] {
          autoDestroy: false,
          awaitDrainWriters: null,
          buffer: [BufferList] { head: null, length: 0, tail: null },
          decoder: null,
          defaultEncoding: "utf8",
          destroyed: true,
          emitClose: false,
          emittedReadable: false,
          encoding: null,
          endEmitted: false,
          ended: false,
          errorEmitted: false,
          flowing: true,
          highWaterMark: 16384,
          length: 0,
          multiAwaitDrain: false,
          needReadable: true,
          objectMode: false,
          paused: false,
          pipes: [],
          readableListening: false,
          reading: true,
          readingMore: false,
          resumeScheduled: false,
          sync: false
        },
        _server: null,
        _sockname: null,
        _writableState: [WritableState] {
          autoDestroy: false,
          bufferProcessing: false,
          bufferedRequest: null,
          bufferedRequestCount: 0,
          corked: 0,
          corkedRequestsFree: { entry: null, finish: function bound onCorkedFinish() {}, next: null },
          decodeStrings: false,
          defaultEncoding: "utf8",
          destroyed: true,
          emitClose: false,
          ended: false,
          ending: false,
          errorEmitted: false,
          errored: false,
          finalCalled: false,
          finished: false,
          highWaterMark: 16384,
          lastBufferedRequest: null,
          length: 0,
          needDrain: false,
          objectMode: false,
          onwrite: function bound onwrite() {},
          pendingcb: 0,
          prefinished: false,
          sync: false,
          writecb: null,
          writelen: 0,
          writing: false
        },
        allowHalfOpen: false,
        connecting: false,
        parser: null,
        readable: false,
        server: null,
        writable: false,
        Symbol(asyncId): 1787,
        Symbol(kHandle): null,
        Symbol(lastWriteQueueSize): 0,
        Symbol(timeout): null,
        Symbol(kBuffer): null,
        Symbol(kBufferCb): null,
        Symbol(kBufferGen): null,
        Symbol(kBytesRead): 5701,
        Symbol(kBytesWritten): 397
      },
      complete: true,
      headers: [Circular],
      httpVersion: "1.1",
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      isCloudflare: true,
      isHTML: true,
      method: null,
      rawHeaders: ["X-Powered-By", "Express", "Server", "cloudflare", "Content-Type", "text/html; charset=utf-8", "Content-Length", "5455", "ETag", "W/"154f-MmeM/AiI2gL6nCyCEAVIUnFjAnI"", "Date", "Tue, 26 Nov 2019 19:13:58 GMT", "Connection", "keep-alive"],
      rawTrailers: [],
      readable: false,
      req: [Circular],
      request: [Circular],
      responseStartTime: 1574795638521,
      socket: [Circular],
      statusCode: 503,
      statusMessage: "Service Unavailable",
      toJSON: function responseToJSON() {},
      trailers: {  },
      upgrade: false,
      url: (empty string)
    },
    reusedSocket: false,
    sendDate: false,
    shouldKeepAlive: true,
    socket: [Circular],
    socketPath: undefined,
    timeoutCb: null,
    upgradeOrConnect: false,
    useChunkedEncodingByDefault: false,
    writable: true,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kOutHeaders): {
      accept: ["Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"],
      accept-encoding: ["Accept-Encoding", "gzip, deflate, br"],
      accept-language: ["Accept-Language", "en-US,en;q=0.9"],
      connection: ["Connection", "keep-alive"],
      host: ["Host", "127.0.0.1:33351"],
      upgrade-insecure-requests: ["Upgrade-Insecure-Requests", "1"],
      user-agent: ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"]
    }
  },
  requester: function request() {},
  resolveWithFullResponse: true,
  response: [Circular],
  responseContent: [Circular],
  setHeader: function () {},
  setHost: false,
  tunnel: false,
  uri: [Url] {
    auth: null,
    hash: null,
    host: "127.0.0.1:33351",
    hostname: "127.0.0.1",
    href: "http://127.0.0.1:33351/test",
    path: "/test",
    pathname: "/test",
    port: "33351",
    protocol: "http:",
    query: null,
    search: null,
    slashes: true
  },
  writable: true
} at request (/home/travis/build/codemanki/cloudscraper/node_modules/request/index.js:53:10)

    Request({
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  form: {
    jschl_answer: 3.6673459399999997,
    jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
    pass: "1543827239.915-44n9IE20mS"
  },
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "POST",
  realEncoding: "utf8",
  requester: function request() {},
  resolveWithFullResponse: true,
  uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
}) => [Request] {
  __isRequestRequest: true,
  _auth: [Auth] {
    bearerToken: null,
    hasAuth: false,
    pass: null,
    request: [Circular],
    sentAuth: false,
    user: null
  },
  _callback: function RP$callback() {},
  _destdata: true,
  _ended: true,
  _events: {
    data: function () {},
    end: function () {},
    error: function bound onceWrapper() {},
    pipe: function () {}
  },
  _eventsCount: 4,
  _jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  _maxListeners: undefined,
  _multipart: [Multipart] {
    body: null,
    boundary: "16bca76c-9160-4bda-9d64-da5aed7923c4",
    chunked: false,
    request: [Circular]
  },
  _oauth: [OAuth] { params: null, request: [Circular] },
  _qs: [Querystring] {
    lib: {
      formats: {
        RFC1738: "RFC1738",
        RFC3986: "RFC3986",
        default: "RFC3986",
        formatters: { RFC1738: function RFC1738() {}, RFC3986: function RFC3986() {} }
      },
      parse: function () {},
      stringify: function () {}
    },
    parseOptions: {  },
    request: [Circular],
    stringifyOptions: {  },
    useQuerystring: undefined
  },
  _redirect: [Redirect] {
    allowRedirect: function () {},
    followAllRedirects: true,
    followOriginalHttpMethod: false,
    followRedirect: true,
    followRedirects: true,
    maxRedirects: 10,
    redirects: [],
    redirectsFollowed: 0,
    removeRefererHeader: false,
    request: [Circular]
  },
  _rp_callbackOrig: function () {},
  _rp_options: {
    agentOptions: {
      ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
    },
    callback: function RP$callback() {},
    challengesToSolve: 2,
    cloudflareMaxTimeout: 30000,
    cloudflareTimeout: 1,
    decodeEmails: false,
    encoding: null,
    followAllRedirects: true,
    form: {
      jschl_answer: 3.6673459399999997,
      jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
      pass: "1543827239.915-44n9IE20mS"
    },
    gzip: true,
    headers: {
      Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      Accept-Encoding: "gzip, deflate, br",
      Accept-Language: "en-US,en;q=0.9",
      Connection: "keep-alive",
      Host: Symbol(host),
      Referer: "http://127.0.0.1:33351/test",
      Upgrade-Insecure-Requests: "1",
      User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
    },
    jar: [Circular],
    method: "POST",
    realEncoding: "utf8",
    requester: function request() {},
    resolveWithFullResponse: true,
    simple: true,
    transform: undefined,
    transform2xxOnly: false,
    uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
  },
  _rp_promise: [object Promise],
  _rp_reject: function () {},
  _rp_resolve: function () {},
  _started: true,
  _tunnel: [Tunnel] {
    proxyHeaderExclusiveList: [],
    proxyHeaderWhiteList: ["accept", "accept-charset", "accept-encoding", "accept-language", "accept-ranges", "cache-control", "content-encoding", "content-language", "content-location", "content-md5", "content-range", "content-type", "connection", "date", "expect", "max-forwards", "pragma", "referer", "te", "user-agent", "via"],
    request: [Circular]
  },
  agent: [Agent] {
    _events: { free: function () {}, newListener: function maybeEnableKeylog() {} },
    _eventsCount: 2,
    _maxListeners: undefined,
    defaultPort: 80,
    freeSockets: {  },
    keepAlive: false,
    keepAliveMsecs: 1000,
    maxFreeSockets: 256,
    maxSockets: Infinity,
    options: {
      ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA",
      path: null
    },
    protocol: "http:",
    requests: {  },
    sockets: {
      127.0.0.1:33351:: [[Socket] {
  _events: {
    agentRemove: function onRemove() {},
    close: function onClose() {},
    end: function onReadableStreamEnd() {},
    error: function bound onceWrapper() {},
    free: function onFree() {}
  },
  _eventsCount: 5,
  _hadError: false,
  _host: null,
  _httpMessage: [ClientRequest] {
    _contentLength: null,
    _ended: true,
    _events: {
      drain: function () {},
      error: function bound () {},
      prefinish: function requestOnPrefinish() {},
      response: function bound () {},
      socket: function () {}
    },
    _eventsCount: 5,
    _hasBody: true,
    _header: "POST /cdn-cgi/l/chk_jschl HTTP/1.1
Host: 127.0.0.1:33351
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Referer: http://127.0.0.1:33351/test
content-type: application/x-www-form-urlencoded
content-length: 104

",
    _headerSent: true,
    _last: true,
    _maxListeners: undefined,
    _onPendingData: function noopPendingOutput() {},
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    _trailer: (empty string),
    aborted: false,
    agent: [Circular],
    chunkedEncoding: false,
    finished: true,
    maxHeadersCount: null,
    method: "POST",
    outputData: [],
    outputSize: 0,
    parser: null,
    path: "/cdn-cgi/l/chk_jschl",
    res: [IncomingMessage] {
      _consuming: false,
      _dumped: false,
      _events: {
        close: [function () {}, function () {}],
        data: function () {},
        end: [function responseOnEnd() {}, function () {}],
        error: function () {}
      },
      _eventsCount: 4,
      _maxListeners: undefined,
      _readableState: [ReadableState] {
        autoDestroy: false,
        awaitDrainWriters: null,
        buffer: [BufferList] { head: null, length: 0, tail: null },
        decoder: null,
        defaultEncoding: "utf8",
        destroyed: false,
        emitClose: true,
        emittedReadable: false,
        encoding: null,
        endEmitted: true,
        ended: true,
        errorEmitted: false,
        flowing: true,
        highWaterMark: 16384,
        length: 0,
        multiAwaitDrain: false,
        needReadable: false,
        objectMode: false,
        paused: false,
        pipes: [],
        readableListening: false,
        reading: false,
        readingMore: true,
        resumeScheduled: false,
        sync: true
      },
      aborted: false,
      body: "<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>
</body>
</html>
",
      caseless: [Caseless] {
        dict: {
          connection: "keep-alive",
          content-length: "159",
          content-security-policy: "default-src 'none'",
          content-type: "text/html; charset=utf-8",
          date: "Tue, 26 Nov 2019 19:13:58 GMT",
          x-content-type-options: "nosniff",
          x-powered-by: "Express"
        }
      },
      client: [Circular],
      complete: true,
      headers: [Circular],
      httpVersion: "1.1",
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      isCloudflare: false,
      isHTML: true,
      method: null,
      rawHeaders: ["X-Powered-By", "Express", "Content-Security-Policy", "default-src 'none'", "X-Content-Type-Options", "nosniff", "Content-Type", "text/html; charset=utf-8", "Content-Length", "159", "Date", "Tue, 26 Nov 2019 19:13:58 GMT", "Connection", "keep-alive"],
      rawTrailers: [],
      readable: false,
      req: [Circular],
      request: [Circular],
      responseStartTime: 1574795638528,
      socket: [Circular],
      statusCode: 404,
      statusMessage: "Not Found",
      toJSON: function responseToJSON() {},
      trailers: {  },
      upgrade: false,
      url: (empty string)
    },
    reusedSocket: false,
    sendDate: false,
    shouldKeepAlive: true,
    socket: [Circular],
    socketPath: undefined,
    timeoutCb: null,
    upgradeOrConnect: false,
    useChunkedEncodingByDefault: true,
    writable: true,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kOutHeaders): {
      accept: ["Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"],
      accept-encoding: ["Accept-Encoding", "gzip, deflate, br"],
      accept-language: ["Accept-Language", "en-US,en;q=0.9"],
      connection: ["Connection", "keep-alive"],
      content-length: ["content-length", 104],
      content-type: ["content-type", "application/x-www-form-urlencoded"],
      host: ["Host", "127.0.0.1:33351"],
      referer: ["Referer", "http://127.0.0.1:33351/test"],
      upgrade-insecure-requests: ["Upgrade-Insecure-Requests", "1"],
      user-agent: ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"]
    }
  },
  _maxListeners: undefined,
  _parent: null,
  _pendingData: null,
  _pendingEncoding: (empty string),
  _readableState: [ReadableState] {
    autoDestroy: false,
    awaitDrainWriters: null,
    buffer: [BufferList] { head: null, length: 0, tail: null },
    decoder: null,
    defaultEncoding: "utf8",
    destroyed: false,
    emitClose: false,
    emittedReadable: false,
    encoding: null,
    endEmitted: false,
    ended: false,
    errorEmitted: false,
    flowing: true,
    highWaterMark: 16384,
    length: 0,
    multiAwaitDrain: false,
    needReadable: true,
    objectMode: false,
    paused: false,
    pipes: [],
    readableListening: false,
    reading: true,
    readingMore: false,
    resumeScheduled: false,
    sync: false
  },
  _server: null,
  _sockname: null,
  _writableState: [WritableState] {
    autoDestroy: false,
    bufferProcessing: false,
    bufferedRequest: null,
    bufferedRequestCount: 0,
    corked: 0,
    corkedRequestsFree: {
      entry: null,
      finish: function bound onCorkedFinish() {},
      next: { entry: null, finish: function bound onCorkedFinish() {}, next: null }
    },
    decodeStrings: false,
    defaultEncoding: "utf8",
    destroyed: false,
    emitClose: false,
    ended: false,
    ending: false,
    errorEmitted: false,
    errored: false,
    finalCalled: false,
    finished: false,
    highWaterMark: 16384,
    lastBufferedRequest: null,
    length: 0,
    needDrain: false,
    objectMode: false,
    onwrite: function bound onwrite() {},
    pendingcb: 0,
    prefinished: false,
    sync: false,
    writecb: null,
    writelen: 0,
    writing: false
  },
  allowHalfOpen: false,
  connecting: false,
  parser: null,
  readable: true,
  server: null,
  writable: true,
  Symbol(asyncId): 1819,
  Symbol(kHandle): [TCP] { onconnection: null, reading: true, Symbol(owner): [Circular] },
  Symbol(lastWriteQueueSize): 0,
  Symbol(timeout): null,
  Symbol(kBuffer): null,
  Symbol(kBufferCb): null,
  Symbol(kBufferGen): null,
  Symbol(kBytesRead): 0,
  Symbol(kBytesWritten): 0
}]
    }
  },
  agentClass: function Agent() {},
  agentOptions: [Circular],
  body: "jschl_vc=427c2b1cd4fba29608ee81b200e94bfa&pass=1543827239.915-44n9IE20mS&jschl_answer=3.6673459399999997",
  callback: function () {},
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  cloudscraper: true,
  decodeEmails: false,
  dests: [],
  encoding: null,
  explicitMethod: true,
  followAllRedirects: true,
  getHeader: function () {},
  gzip: true,
  hasHeader: function () {},
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: "127.0.0.1:33351",
    Referer: "http://127.0.0.1:33351/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36",
    content-length: 104,
    content-type: "application/x-www-form-urlencoded"
  },
  host: "127.0.0.1",
  href: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl",
  httpModule: {
    Agent: function Agent() {},
    ClientRequest: function ClientRequest() {},
    IncomingMessage: function IncomingMessage() {},
    METHODS: ["ACL", "BIND", "CHECKOUT", "CONNECT", "COPY", "DELETE", "GET", "HEAD", "LINK", "LOCK", "M-SEARCH", "MERGE", "MKACTIVITY", "MKCALENDAR", "MKCOL", "MOVE", "NOTIFY", "OPTIONS", "PATCH", "POST", "PROPFIND", "PROPPATCH", "PURGE", "PUT", "REBIND", "REPORT", "SEARCH", "SOURCE", "SUBSCRIBE", "TRACE", "UNBIND", "UNLINK", "UNLOCK", "UNSUBSCRIBE"],
    OutgoingMessage: function OutgoingMessage() {},
    STATUS_CODES: {
      100: "Continue",
      101: "Switching Protocols",
      102: "Processing",
      103: "Early Hints",
      200: "OK",
      201: "Created",
      202: "Accepted",
      203: "Non-Authoritative Information",
      204: "No Content",
      205: "Reset Content",
      206: "Partial Content",
      207: "Multi-Status",
      208: "Already Reported",
      226: "IM Used",
      300: "Multiple Choices",
      301: "Moved Permanently",
      302: "Found",
      303: "See Other",
      304: "Not Modified",
      305: "Use Proxy",
      307: "Temporary Redirect",
      308: "Permanent Redirect",
      400: "Bad Request",
      401: "Unauthorized",
      402: "Payment Required",
      403: "Forbidden",
      404: "Not Found",
      405: "Method Not Allowed",
      406: "Not Acceptable",
      407: "Proxy Authentication Required",
      408: "Request Timeout",
      409: "Conflict",
      410: "Gone",
      411: "Length Required",
      412: "Precondition Failed",
      413: "Payload Too Large",
      414: "URI Too Long",
      415: "Unsupported Media Type",
      416: "Range Not Satisfiable",
      417: "Expectation Failed",
      418: "I'm a Teapot",
      421: "Misdirected Request",
      422: "Unprocessable Entity",
      423: "Locked",
      424: "Failed Dependency",
      425: "Too Early",
      426: "Upgrade Required",
      428: "Precondition Required",
      429: "Too Many Requests",
      431: "Request Header Fields Too Large",
      451: "Unavailable For Legal Reasons",
      500: "Internal Server Error",
      501: "Not Implemented",
      502: "Bad Gateway",
      503: "Service Unavailable",
      504: "Gateway Timeout",
      505: "HTTP Version Not Supported",
      506: "Variant Also Negotiates",
      507: "Insufficient Storage",
      508: "Loop Detected",
      509: "Bandwidth Limit Exceeded",
      510: "Not Extended",
      511: "Network Authentication Required"
    },
    Server: function Server() {},
    ServerResponse: function ServerResponse() {},
    _connectionListener: function connectionListener() {},
    createServer: function createServer() {},
    get: function get() {},
    globalAgent: [Agent] {
      _events: { free: function () {}, newListener: function maybeEnableKeylog() {} },
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 80,
      freeSockets: {  },
      keepAlive: false,
      keepAliveMsecs: 1000,
      maxFreeSockets: 256,
      maxSockets: Infinity,
      options: { path: null },
      protocol: "http:",
      requests: {  },
      sockets: {  }
    },
    maxHeaderSize: 8192,
    request: function request() {}
  },
  localAddress: undefined,
  method: "POST",
  ntick: true,
  originalCookieHeader: undefined,
  originalHost: "127.0.0.1:33351",
  originalHostHeaderName: "Host",
  path: "/cdn-cgi/l/chk_jschl",
  pool: { http:: [Circular] },
  port: "33351",
  proxy: null,
  readable: true,
  realEncoding: "utf8",
  removeHeader: function () {},
  req: [Circular],
  requester: function request() {},
  resolveWithFullResponse: true,
  response: [Circular],
  responseContent: [Circular],
  setHeader: function () {},
  setHost: false,
  tunnel: false,
  uri: [Url] {
    auth: null,
    hash: null,
    host: "127.0.0.1:33351",
    hostname: "127.0.0.1",
    href: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl",
    path: "/cdn-cgi/l/chk_jschl",
    pathname: "/cdn-cgi/l/chk_jschl",
    port: "33351",
    protocol: "http:",
    query: null,
    search: null,
    slashes: true
  },
  writable: true
} at request (/home/travis/build/codemanki/cloudscraper/node_modules/request/index.js:53:10)
  AssertionError: expected Request to have been called exactly thrice, but it was called twice
      Request({
    agentOptions: {
      ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
    },
    callback: function () {},
    challengesToSolve: 3,
    cloudflareMaxTimeout: 30000,
    cloudflareTimeout: 1,
    decodeEmails: false,
    encoding: null,
    followAllRedirects: true,
    gzip: true,
    headers: {
      Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      Accept-Encoding: "gzip, deflate, br",
      Accept-Language: "en-US,en;q=0.9",
      Connection: "keep-alive",
      Host: Symbol(host),
      Upgrade-Insecure-Requests: "1",
      User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
    },
    jar: [RequestJar] {
      _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
    },
    method: "GET",
    realEncoding: "utf8",
    requester: function request() {},
    resolveWithFullResponse: true,
    uri: "http://127.0.0.1:33351/test"
  }) => [Request] {
    __isRequestRequest: true,
    _auth: [Auth] {
      bearerToken: null,
      hasAuth: false,
      pass: null,
      request: [Circular],
      sentAuth: false,
      user: null
    },
    _callback: function RP$callback() {},
    _callbackCalled: true,
    _destdata: true,
    _ended: true,
    _events: {
      data: function () {},
      end: function () {},
      error: function bound onceWrapper() {},
      pipe: function () {}
    },
    _eventsCount: 4,
    _jar: [RequestJar] {
      _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
    },
    _maxListeners: undefined,
    _multipart: [Multipart] {
      body: null,
      boundary: "c87c01c3-9e34-4c5c-8c3b-c8ebf143df27",
      chunked: false,
      request: [Circular]
    },
    _oauth: [OAuth] { params: null, request: [Circular] },
    _qs: [Querystring] {
      lib: {
        formats: {
          RFC1738: "RFC1738",
          RFC3986: "RFC3986",
          default: "RFC3986",
          formatters: { RFC1738: function RFC1738() {}, RFC3986: function RFC3986() {} }
        },
        parse: function () {},
        stringify: function () {}
      },
      parseOptions: {  },
      request: [Circular],
      stringifyOptions: {  },
      useQuerystring: undefined
    },
    _redirect: [Redirect] {
      allowRedirect: function () {},
      followAllRedirects: true,
      followOriginalHttpMethod: false,
      followRedirect: true,
      followRedirects: true,
      maxRedirects: 10,
      redirects: [],
      redirectsFollowed: 0,
      removeRefererHeader: false,
      request: [Circular]
    },
    _rp_callbackOrig: function () {},
    _rp_options: {
      agentOptions: {
        ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
      },
      callback: function RP$callback() {},
      challengesToSolve: 3,
      cloudflareMaxTimeout: 30000,
      cloudflareTimeout: 1,
      decodeEmails: false,
      encoding: null,
      followAllRedirects: true,
      gzip: true,
      headers: {
        Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        Accept-Encoding: "gzip, deflate, br",
        Accept-Language: "en-US,en;q=0.9",
        Connection: "keep-alive",
        Host: Symbol(host),
        Upgrade-Insecure-Requests: "1",
        User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
      },
      jar: [Circular],
      method: "GET",
      realEncoding: "utf8",
      requester: function request() {},
      resolveWithFullResponse: true,
      simple: true,
      transform: undefined,
      transform2xxOnly: false,
      uri: "http://127.0.0.1:33351/test"
    },
    _rp_promise: [object Promise],
    _rp_reject: function () {},
    _rp_resolve: function () {},
    _started: true,
    _tunnel: [Tunnel] {
      proxyHeaderExclusiveList: [],
      proxyHeaderWhiteList: ["accept", "accept-charset", "accept-encoding", "accept-language", "accept-ranges", "cache-control", "content-encoding", "content-language", "content-location", "content-md5", "content-range", "content-type", "connection", "date", "expect", "max-forwards", "pragma", "referer", "te", "user-agent", "via"],
      request: [Circular]
    },
    agent: [Agent] {
      _events: { free: function () {}, newListener: function maybeEnableKeylog() {} },
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 80,
      freeSockets: {  },
      keepAlive: false,
      keepAliveMsecs: 1000,
      maxFreeSockets: 256,
      maxSockets: Infinity,
      options: {
        ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA",
        path: null
      },
      protocol: "http:",
      requests: {  },
      sockets: {
        127.0.0.1:33351:: [[Socket] {
    _events: {
      agentRemove: function onRemove() {},
      close: function onClose() {},
      end: function onReadableStreamEnd() {},
      error: function bound onceWrapper() {},
      free: function onFree() {}
    },
    _eventsCount: 5,
    _hadError: false,
    _host: null,
    _httpMessage: [ClientRequest] {
      _contentLength: null,
      _ended: true,
      _events: {
        drain: function () {},
        error: function bound () {},
        prefinish: function requestOnPrefinish() {},
        response: function bound () {},
        socket: function () {}
      },
      _eventsCount: 5,
      _hasBody: true,
  
  
  
  
  
  
  
  
  
  
  
  
  ",
      _headerSent: true,
      _last: true,
      _maxListeners: undefined,
      _onPendingData: function noopPendingOutput() {},
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _trailer: (empty string),
      aborted: false,
      agent: [Circular],
      chunkedEncoding: false,
      finished: true,
      maxHeadersCount: null,
      method: "POST",
      outputData: [],
      outputSize: 0,
      parser: null,
      path: "/cdn-cgi/l/chk_jschl",
      res: [IncomingMessage] {
        _consuming: false,
        _dumped: false,
        _events: {
          close: [function () {}, function () {}],
          data: function () {},
          end: [function responseOnEnd() {}, function () {}],
          error: function () {}
        },
        _eventsCount: 4,
        _maxListeners: undefined,
        _readableState: [ReadableState] {
          autoDestroy: false,
          awaitDrainWriters: null,
          buffer: [BufferList] { head: null, length: 0, tail: null },
          decoder: null,
          defaultEncoding: "utf8",
          destroyed: false,
          emitClose: true,
          emittedReadable: false,
          encoding: null,
          endEmitted: true,
          ended: true,
          errorEmitted: false,
          flowing: true,
          highWaterMark: 16384,
          length: 0,
          multiAwaitDrain: false,
          needReadable: false,
          objectMode: false,
          paused: false,
          pipes: [],
          readableListening: false,
          reading: false,
          readingMore: true,
          resumeScheduled: false,
          sync: true
        },
        aborted: false,
        body: "<!DOCTYPE html>
  <html lang="en">
  <head>
  <meta charset="utf-8">
  <title>Error</title>
  </head>
  <body>
  <pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>
  </body>
  </html>
  ",
        caseless: [Caseless] {
          dict: {
            connection: "keep-alive",
            content-length: "159",
            content-security-policy: "default-src 'none'",
            content-type: "text/html; charset=utf-8",
            date: "Tue, 26 Nov 2019 19:13:58 GMT",
            x-content-type-options: "nosniff",
            x-powered-by: "Express"
          }
        },
        client: [Circular],
        complete: true,
        headers: [Circular],
        httpVersion: "1.1",
        httpVersionMajor: 1,
        httpVersionMinor: 1,
        isCloudflare: false,
        isHTML: true,
        method: null,
        rawHeaders: ["X-Powered-By", "Express", "Content-Security-Policy", "default-src 'none'", "X-Content-Type-Options", "nosniff", "Content-Type", "text/html; charset=utf-8", "Content-Length", "159", "Date", "Tue, 26 Nov 2019 19:13:58 GMT", "Connection", "keep-alive"],
        rawTrailers: [],
        readable: false,
        req: [Circular],
        request: [Request] {
          __isRequestRequest: true,
          _auth: [Auth] {
            bearerToken: null,
            hasAuth: false,
            pass: null,
            request: [Circular],
            sentAuth: false,
            user: null
          },
          _callback: function RP$callback() {},
          _destdata: true,
          _ended: true,
          _events: {
            data: function () {},
            end: function () {},
            error: function bound onceWrapper() {},
            pipe: function () {}
          },
          _eventsCount: 4,
          _jar: [Circular],
          _maxListeners: undefined,
          _multipart: [Multipart] {
            body: null,
            boundary: "16bca76c-9160-4bda-9d64-da5aed7923c4",
            chunked: false,
            request: [Circular]
          },
          _oauth: [OAuth] { params: null, request: [Circular] },
          _qs: [Querystring] {
            lib: [Circular],
            parseOptions: {  },
            request: [Circular],
            stringifyOptions: {  },
            useQuerystring: undefined
          },
          _redirect: [Redirect] {
            allowRedirect: function () {},
            followAllRedirects: true,
            followOriginalHttpMethod: false,
            followRedirect: true,
            followRedirects: true,
            maxRedirects: 10,
            redirects: [],
            redirectsFollowed: 0,
            removeRefererHeader: false,
            request: [Circular]
          },
          _rp_callbackOrig: function () {},
          _rp_options: {
            agentOptions: [Circular],
            callback: function RP$callback() {},
            challengesToSolve: 2,
            cloudflareMaxTimeout: 30000,
            cloudflareTimeout: 1,
            decodeEmails: false,
            encoding: null,
            followAllRedirects: true,
            form: {
              jschl_answer: 3.6673459399999997,
              jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
              pass: "1543827239.915-44n9IE20mS"
            },
            gzip: true,
            headers: {
              Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
              Accept-Encoding: "gzip, deflate, br",
              Accept-Language: "en-US,en;q=0.9",
              Connection: "keep-alive",
              Host: Symbol(host),
              Referer: "http://127.0.0.1:33351/test",
              Upgrade-Insecure-Requests: "1",
              User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
            },
            jar: [Circular],
            method: "POST",
            realEncoding: "utf8",
            requester: function request() {},
            resolveWithFullResponse: true,
            simple: true,
            transform: undefined,
            transform2xxOnly: false,
            uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
          },
          _rp_promise: [object Promise],
          _rp_reject: function () {},
          _rp_resolve: function () {},
          _started: true,
          _tunnel: [Tunnel] {
            proxyHeaderExclusiveList: [],
            proxyHeaderWhiteList: [Circular],
            request: [Circular]
          },
          agent: [Circular],
          agentClass: function Agent() {},
          agentOptions: [Circular],
          body: "jschl_vc=427c2b1cd4fba29608ee81b200e94bfa&pass=1543827239.915-44n9IE20mS&jschl_answer=3.6673459399999997",
          callback: function () {},
          challengesToSolve: 2,
          cloudflareMaxTimeout: 30000,
          cloudflareTimeout: 1,
          cloudscraper: true,
          decodeEmails: false,
          dests: [],
          encoding: null,
          explicitMethod: true,
          followAllRedirects: true,
          getHeader: function () {},
          gzip: true,
          hasHeader: function () {},
          headers: {
            Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
            Accept-Encoding: "gzip, deflate, br",
            Accept-Language: "en-US,en;q=0.9",
            Connection: "keep-alive",
            Host: "127.0.0.1:33351",
            Referer: "http://127.0.0.1:33351/test",
            Upgrade-Insecure-Requests: "1",
            User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36",
            content-length: 104,
            content-type: "application/x-www-form-urlencoded"
          },
          host: "127.0.0.1",
          href: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl",
          httpModule: {
            Agent: function Agent() {},
            ClientRequest: function ClientRequest() {},
            IncomingMessage: function IncomingMessage() {},
            METHODS: ["ACL", "BIND", "CHECKOUT", "CONNECT", "COPY", "DELETE", "GET", "HEAD", "LINK", "LOCK", "M-SEARCH", "MERGE", "MKACTIVITY", "MKCALENDAR", "MKCOL", "MOVE", "NOTIFY", "OPTIONS", "PATCH", "POST", "PROPFIND", "PROPPATCH", "PURGE", "PUT", "REBIND", "REPORT", "SEARCH", "SOURCE", "SUBSCRIBE", "TRACE", "UNBIND", "UNLINK", "UNLOCK", "UNSUBSCRIBE"],
            OutgoingMessage: function OutgoingMessage() {},
            STATUS_CODES: {
              100: "Continue",
              101: "Switching Protocols",
              102: "Processing",
              103: "Early Hints",
              200: "OK",
              201: "Created",
              202: "Accepted",
              203: "Non-Authoritative Information",
              204: "No Content",
              205: "Reset Content",
              206: "Partial Content",
              207: "Multi-Status",
              208: "Already Reported",
              226: "IM Used",
              300: "Multiple Choices",
              301: "Moved Permanently",
              302: "Found",
              303: "See Other",
              304: "Not Modified",
              305: "Use Proxy",
              307: "Temporary Redirect",
              308: "Permanent Redirect",
              400: "Bad Request",
              401: "Unauthorized",
              402: "Payment Required",
              403: "Forbidden",
              404: "Not Found",
              405: "Method Not Allowed",
              406: "Not Acceptable",
              407: "Proxy Authentication Required",
              408: "Request Timeout",
              409: "Conflict",
              410: "Gone",
              411: "Length Required",
              412: "Precondition Failed",
              413: "Payload Too Large",
              414: "URI Too Long",
              415: "Unsupported Media Type",
              416: "Range Not Satisfiable",
              417: "Expectation Failed",
              418: "I'm a Teapot",
              421: "Misdirected Request",
              422: "Unprocessable Entity",
              423: "Locked",
              424: "Failed Dependency",
              425: "Too Early",
              426: "Upgrade Required",
              428: "Precondition Required",
              429: "Too Many Requests",
              431: "Request Header Fields Too Large",
              451: "Unavailable For Legal Reasons",
              500: "Internal Server Error",
              501: "Not Implemented",
              502: "Bad Gateway",
              503: "Service Unavailable",
              504: "Gateway Timeout",
              505: "HTTP Version Not Supported",
              506: "Variant Also Negotiates",
              507: "Insufficient Storage",
              508: "Loop Detected",
              509: "Bandwidth Limit Exceeded",
              510: "Not Extended",
              511: "Network Authentication Required"
            },
            Server: function Server() {},
            ServerResponse: function ServerResponse() {},
            _connectionListener: function connectionListener() {},
            createServer: function createServer() {},
            get: function get() {},
            globalAgent: [Agent] {
              _events: { free: function () {}, newListener: function maybeEnableKeylog() {} },
              _eventsCount: 2,
              _maxListeners: undefined,
              defaultPort: 80,
              freeSockets: {  },
              keepAlive: false,
              keepAliveMsecs: 1000,
              maxFreeSockets: 256,
              maxSockets: Infinity,
              options: { path: null },
              protocol: "http:",
              requests: {  },
              sockets: {  }
            },
            maxHeaderSize: 8192,
            request: function request() {}
          },
          localAddress: undefined,
          method: "POST",
          ntick: true,
          originalCookieHeader: undefined,
          originalHost: "127.0.0.1:33351",
          originalHostHeaderName: "Host",
          path: "/cdn-cgi/l/chk_jschl",
          pool: { http:: [Circular] },
          port: "33351",
          proxy: null,
          readable: true,
          realEncoding: "utf8",
          removeHeader: function () {},
          req: [Circular],
          requester: function request() {},
          resolveWithFullResponse: true,
          response: [Circular],
          responseContent: [Circular],
          setHeader: function () {},
          setHost: false,
          tunnel: false,
          uri: [Url] {
            auth: null,
            hash: null,
            host: "127.0.0.1:33351",
            hostname: "127.0.0.1",
            href: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl",
            path: "/cdn-cgi/l/chk_jschl",
            pathname: "/cdn-cgi/l/chk_jschl",
            port: "33351",
            protocol: "http:",
            query: null,
            search: null,
            slashes: true
          },
          writable: true
        },
        responseStartTime: 1574795638528,
        socket: [Circular],
        statusCode: 404,
        statusMessage: "Not Found",
        toJSON: function responseToJSON() {},
        trailers: {  },
        upgrade: false,
        url: (empty string)
      },
      reusedSocket: false,
      sendDate: false,
      shouldKeepAlive: true,
      socket: [Circular],
      socketPath: undefined,
      timeoutCb: null,
      upgradeOrConnect: false,
      useChunkedEncodingByDefault: true,
      writable: true,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kOutHeaders): {
        accept: ["Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"],
        accept-encoding: ["Accept-Encoding", "gzip, deflate, br"],
        accept-language: ["Accept-Language", "en-US,en;q=0.9"],
        connection: ["Connection", "keep-alive"],
        content-length: ["content-length", 104],
        content-type: ["content-type", "application/x-www-form-urlencoded"],
        host: ["Host", "127.0.0.1:33351"],
        referer: ["Referer", "http://127.0.0.1:33351/test"],
        upgrade-insecure-requests: ["Upgrade-Insecure-Requests", "1"],
        user-agent: ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"]
      }
    },
    _maxListeners: undefined,
    _parent: null,
    _pendingData: null,
    _pendingEncoding: (empty string),
    _readableState: [ReadableState] {
      autoDestroy: false,
      awaitDrainWriters: null,
      buffer: [BufferList] { head: null, length: 0, tail: null },
      decoder: null,
      defaultEncoding: "utf8",
      destroyed: false,
      emitClose: false,
      emittedReadable: false,
      encoding: null,
      endEmitted: false,
      ended: false,
      errorEmitted: false,
      flowing: true,
      highWaterMark: 16384,
      length: 0,
      multiAwaitDrain: false,
      needReadable: true,
      objectMode: false,
      paused: false,
      pipes: [],
      readableListening: false,
      reading: true,
      readingMore: false,
      resumeScheduled: false,
      sync: false
    },
    _server: null,
    _sockname: null,
    _writableState: [WritableState] {
      autoDestroy: false,
      bufferProcessing: false,
      bufferedRequest: null,
      bufferedRequestCount: 0,
      corked: 0,
      corkedRequestsFree: {
        entry: null,
        finish: function bound onCorkedFinish() {},
        next: { entry: null, finish: function bound onCorkedFinish() {}, next: null }
      },
      decodeStrings: false,
      defaultEncoding: "utf8",
      destroyed: false,
      emitClose: false,
      ended: false,
      ending: false,
      errorEmitted: false,
      errored: false,
      finalCalled: false,
      finished: false,
      highWaterMark: 16384,
      lastBufferedRequest: null,
      length: 0,
      needDrain: false,
      objectMode: false,
      onwrite: function bound onwrite() {},
      pendingcb: 0,
      prefinished: false,
      sync: false,
      writecb: null,
      writelen: 0,
      writing: false
    },
    allowHalfOpen: false,
    connecting: false,
    parser: null,
    readable: true,
    server: null,
    writable: true,
    Symbol(asyncId): 1819,
    Symbol(kHandle): [TCP] { onconnection: null, reading: true, Symbol(owner): [Circular] },
    Symbol(lastWriteQueueSize): 0,
    Symbol(timeout): null,
    Symbol(kBuffer): null,
    Symbol(kBufferCb): null,
    Symbol(kBufferGen): null,
    Symbol(kBytesRead): 0,
    Symbol(kBytesWritten): 0
  }]
      }
    },
    agentClass: function Agent() {},
    agentOptions: [Circular],
    callback: function () {},
    challengesToSolve: 3,
    cloudflareMaxTimeout: 30000,
    cloudflareTimeout: 1,
    cloudscraper: true,
    decodeEmails: false,
    dests: [],
    encoding: null,
    explicitMethod: true,
    followAllRedirects: true,
    getHeader: function () {},
    gzip: true,
    hasHeader: function () {},
    headers: {
      Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      Accept-Encoding: "gzip, deflate, br",
      Accept-Language: "en-US,en;q=0.9",
      Connection: "keep-alive",
      Host: "127.0.0.1:33351",
      Upgrade-Insecure-Requests: "1",
      User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
    },
    host: "127.0.0.1",
    href: "http://127.0.0.1:33351/test",
    httpModule: [Circular],
    localAddress: undefined,
    method: "GET",
    ntick: true,
    originalCookieHeader: undefined,
    originalHost: "127.0.0.1:33351",
    originalHostHeaderName: "Host",
    path: "/test",
    pool: [Circular],
    port: "33351",
    proxy: null,
    readable: true,
    realEncoding: "utf8",
    removeHeader: function () {},
    req: [ClientRequest] {
      _contentLength: 0,
      _ended: true,
      _events: {
        drain: function () {},
        error: function bound () {},
        prefinish: function requestOnPrefinish() {},
        response: function bound () {},
        socket: function () {}
      },
      _eventsCount: 5,
      _hasBody: true,
  
  
  
  
  
  
  
  
  
  ",
      _headerSent: true,
      _last: true,
      _maxListeners: undefined,
      _onPendingData: function noopPendingOutput() {},
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _trailer: (empty string),
      aborted: false,
      agent: [Circular],
      chunkedEncoding: false,
      finished: true,
      maxHeadersCount: null,
      method: "GET",
      outputData: [],
      outputSize: 0,
      parser: null,
      path: "/test",
      res: [IncomingMessage] {
        _consuming: false,
        _dumped: false,
        _events: {
          close: [function () {}, function () {}],
          data: function () {},
          end: [function responseOnEnd() {}, function () {}],
          error: function () {}
        },
        _eventsCount: 4,
        _maxListeners: undefined,
        _readableState: [ReadableState] {
          autoDestroy: false,
          awaitDrainWriters: null,
          buffer: [BufferList] { head: null, length: 0, tail: null },
          decoder: null,
          defaultEncoding: "utf8",
          destroyed: false,
          emitClose: true,
          emittedReadable: false,
          encoding: null,
          endEmitted: true,
          ended: true,
          errorEmitted: false,
          flowing: true,
          highWaterMark: 16384,
          length: 0,
          multiAwaitDrain: false,
          needReadable: false,
          objectMode: false,
          paused: false,
          pipes: [],
          readableListening: false,
          reading: false,
          readingMore: true,
          resumeScheduled: false,
          sync: true
        },
        aborted: false,
        body: <!DOCTYPE HTML>
  <html lang="en-US">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
    <meta name="robots" content="noindex, nofollow" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <title>Just a moment...</title>
    <style type="text/css">
      html, body {width: 100%; height: 100%; margin: 0; padding: 0;}
      body {background-color: #ffffff; font-family: Helvetica, Arial, sans-serif; font-size: 100%;}
      h1 {font-size: 1.5em; color: #404040; text-align: center;}
      p {font-size: 1em; color: #404040; text-align: center; margin: 10px 0 0 0;}
      #spinner {margin: 0 auto 30px auto; display: block;}
      .attribution {margin-top: 20px;}
      @-webkit-keyframes bubbles { 33%: { -webkit-transform: translateY(10px); transform: translateY(10px); } 66% { -webkit-transform: translateY(-10px); transform: translateY(-10px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } }
      @keyframes bubbles { 33%: { -webkit-transform: translateY(10px); transform: translateY(10px); } 66% { -webkit-transform: translateY(-10px); transform: translateY(-10px); } 100% { -webkit-transform: translateY(0); transform: translateY(0); } }
      .bubbles { background-color: #404040; width:15px; height: 15px; margin:2px; border-radius:100%; -webkit-animation:bubbles 0.6s 0.07s infinite ease-in-out; animation:bubbles 0.6s 0.07s infinite ease-in-out; -webkit-animation-fill-mode:both; animation-fill-mode:both; display:inline-block; }
    </style>
  
      <script type="text/javascript">
    //<![CDATA[
    (function(){
      var a = function() {try{return !!window.addEventListener} catch(e) {return !1} },
      b = function(b, c) {a() ? document.addEventListener("DOMContentLoaded", b, c) : document.attachEvent("onreadystatechange", b)};
      b(function(){
        var a = document.getElementById('cf-content');a.style.display = 'block';
        setTimeout(function(){
          var s,t,o,p,b,r,e,a,k,i,n,g,f, zoqqEUY={"xzWMiyQ":+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+!![]))/+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]))};
          t = document.createElement('div');
          t.innerHTML="<a href='/'>x</a>";
          t = t.firstChild.href;r = t.match(/https?:\/\//)[0];
          t = t.substr(r.length); t = t.substr(0,t.length-1);
          a = document.getElementById('jschl-answer');
          f = document.getElementById('challenge-form');
          ;zoqqEUY.xzWMiyQ-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]))/+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(+!![]));zoqqEUY.xzWMiyQ-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+!![]))/+((!+[]+!![]+[])+(+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]));a.value = +zoqqEUY.xzWMiyQ.toFixed(10) + t.length; '; 121'
          f.action += location.hash;
          f.submit();
        }, 4000);
      }, false);
    })();
    //]]>
  </script>
  
  
  </head>
  <body>
    <table width="100%" height="100%" cellpadding="20">
      <tr>
        <td align="center" valign="middle">
            <div class="cf-browser-verification cf-im-under-attack">
    <noscript><h1 data-translate="turn_on_js" style="color:#bd2426;">Please turn JavaScript on and reload the page.</h1></noscript>
    <div id="cf-content" style="display:none">
  
      <div>
        <div class="bubbles"></div>
        <div class="bubbles"></div>
        <div class="bubbles"></div>
      </div>
      <h1><span data-translate="checking_browser">Checking your browser before accessing</span> iload.to.</h1>
      <p data-translate="process_is_automatic">This process is automatic. Your browser will redirect to your requested content shortly.</p>
      <p data-translate="allow_5_secs">Please allow up to 5 seconds&hellip;</p>
    </div>
  
    <form id="challenge-form" action="/cdn-cgi/l/chk_jschl" method="get">
      <input type="hidden" name="jschl_vc" value="427c2b1cd4fba29608ee81b200e94bfa"/>
      <input type="hidden" name="pass" value="1543827239.915-44n9IE20mS"/>
      <input type="hidden" id="jschl-answer" name="jschl_answer"/>
    </form>
  </div>
  
  
            <div class="attribution">
              <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=iuam" target="_blank" style="font-size: 12px;">DDoS protection by Cloudflare</a>
              <br>
              Ray ID: 4834ce407815974a
            </div>
        </td>
  
      </tr>
    </table>
  </body>
  </html>,
        caseless: [Caseless] {
          dict: {
            connection: "keep-alive",
            content-length: "5455",
            content-type: "text/html; charset=utf-8",
            date: "Tue, 26 Nov 2019 19:13:58 GMT",
            etag: "W/"154f-MmeM/AiI2gL6nCyCEAVIUnFjAnI"",
            server: "cloudflare",
            x-powered-by: "Express"
          }
        },
        challenge: "        var s,t,o,p,b,r,e,a,k,i,n,g,f, zoqqEUY={"xzWMiyQ":+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+!![]))/+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]))};
          t = document.createElement('div');
          t.innerHTML="<a href='/'>x</a>";
          t = t.firstChild.href;r = t.match(/https?:\/\//)[0];
          t = t.substr(r.length); t = t.substr(0,t.length-1);
          a = document.getElementById('jschl-answer');
          f = document.getElementById('challenge-form');
          ;zoqqEUY.xzWMiyQ-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]))/+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(+!![]));zoqqEUY.xzWMiyQ-=+((!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+[])+(!+[]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![]+!![])+(+!![]))/+((!+[]+!![]+[])+(+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![])+(+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(!+[]+!![]+!![])+(!+[]+!![]+!![]+!![]));a.value = +zoqqEUY.xzWMiyQ.toFixed(10) + t.length; '; 121'; a.value",
        client: [Socket] {
          _events: {
            agentRemove: function onRemove() {},
            close: function onClose() {},
            end: function onReadableStreamEnd() {},
            error: function bound onceWrapper() {},
            free: function onFree() {}
          },
          _eventsCount: 5,
          _hadError: false,
          _host: null,
          _httpMessage: [Circular],
          _maxListeners: undefined,
          _parent: null,
          _pendingData: null,
          _pendingEncoding: (empty string),
          _readableState: [ReadableState] {
            autoDestroy: false,
            awaitDrainWriters: null,
            buffer: [BufferList] { head: null, length: 0, tail: null },
            decoder: null,
            defaultEncoding: "utf8",
            destroyed: true,
            emitClose: false,
            emittedReadable: false,
            encoding: null,
            endEmitted: false,
            ended: false,
            errorEmitted: false,
            flowing: true,
            highWaterMark: 16384,
            length: 0,
            multiAwaitDrain: false,
            needReadable: true,
            objectMode: false,
            paused: false,
            pipes: [],
            readableListening: false,
            reading: true,
            readingMore: false,
            resumeScheduled: false,
            sync: false
          },
          _server: null,
          _sockname: null,
          _writableState: [WritableState] {
            autoDestroy: false,
            bufferProcessing: false,
            bufferedRequest: null,
            bufferedRequestCount: 0,
            corked: 0,
            corkedRequestsFree: { entry: null, finish: function bound onCorkedFinish() {}, next: null },
            decodeStrings: false,
            defaultEncoding: "utf8",
            destroyed: true,
            emitClose: false,
            ended: false,
            ending: false,
            errorEmitted: false,
            errored: false,
            finalCalled: false,
            finished: false,
            highWaterMark: 16384,
            lastBufferedRequest: null,
            length: 0,
            needDrain: false,
            objectMode: false,
            onwrite: function bound onwrite() {},
            pendingcb: 0,
            prefinished: false,
            sync: false,
            writecb: null,
            writelen: 0,
            writing: false
          },
          allowHalfOpen: false,
          connecting: false,
          parser: null,
          readable: false,
          server: null,
          writable: false,
          Symbol(asyncId): 1787,
          Symbol(kHandle): null,
          Symbol(lastWriteQueueSize): 0,
          Symbol(timeout): null,
          Symbol(kBuffer): null,
          Symbol(kBufferCb): null,
          Symbol(kBufferGen): null,
          Symbol(kBytesRead): 5701,
          Symbol(kBytesWritten): 397
        },
        complete: true,
        headers: [Circular],
        httpVersion: "1.1",
        httpVersionMajor: 1,
        httpVersionMinor: 1,
        isCloudflare: true,
        isHTML: true,
        method: null,
        rawHeaders: ["X-Powered-By", "Express", "Server", "cloudflare", "Content-Type", "text/html; charset=utf-8", "Content-Length", "5455", "ETag", "W/"154f-MmeM/AiI2gL6nCyCEAVIUnFjAnI"", "Date", "Tue, 26 Nov 2019 19:13:58 GMT", "Connection", "keep-alive"],
        rawTrailers: [],
        readable: false,
        req: [Circular],
        request: [Circular],
        responseStartTime: 1574795638521,
        socket: [Circular],
        statusCode: 503,
        statusMessage: "Service Unavailable",
        toJSON: function responseToJSON() {},
        trailers: {  },
        upgrade: false,
        url: (empty string)
      },
      reusedSocket: false,
      sendDate: false,
      shouldKeepAlive: true,
      socket: [Circular],
      socketPath: undefined,
      timeoutCb: null,
      upgradeOrConnect: false,
      useChunkedEncodingByDefault: false,
      writable: true,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kOutHeaders): {
        accept: ["Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"],
        accept-encoding: ["Accept-Encoding", "gzip, deflate, br"],
        accept-language: ["Accept-Language", "en-US,en;q=0.9"],
        connection: ["Connection", "keep-alive"],
        host: ["Host", "127.0.0.1:33351"],
        upgrade-insecure-requests: ["Upgrade-Insecure-Requests", "1"],
        user-agent: ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"]
      }
    },
    requester: function request() {},
    resolveWithFullResponse: true,
    response: [Circular],
    responseContent: [Circular],
    setHeader: function () {},
    setHost: false,
    tunnel: false,
    uri: [Url] {
      auth: null,
      hash: null,
      host: "127.0.0.1:33351",
      hostname: "127.0.0.1",
      href: "http://127.0.0.1:33351/test",
      path: "/test",
      pathname: "/test",
      port: "33351",
      protocol: "http:",
      query: null,
      search: null,
      slashes: true
    },
    writable: true
  } at request (node_modules/request/index.js:53:10)
  
      Request({
    agentOptions: {
      ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
    },
    callback: function () {},
    challengesToSolve: 2,
    cloudflareMaxTimeout: 30000,
    cloudflareTimeout: 1,
    decodeEmails: false,
    encoding: null,
    followAllRedirects: true,
    form: {
      jschl_answer: 3.6673459399999997,
      jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
      pass: "1543827239.915-44n9IE20mS"
    },
    gzip: true,
    headers: {
      Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      Accept-Encoding: "gzip, deflate, br",
      Accept-Language: "en-US,en;q=0.9",
      Connection: "keep-alive",
      Host: Symbol(host),
      Referer: "http://127.0.0.1:33351/test",
      Upgrade-Insecure-Requests: "1",
      User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
    },
    jar: [RequestJar] {
      _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
    },
    method: "POST",
    realEncoding: "utf8",
    requester: function request() {},
    resolveWithFullResponse: true,
    uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
  }) => [Request] {
    __isRequestRequest: true,
    _auth: [Auth] {
      bearerToken: null,
      hasAuth: false,
      pass: null,
      request: [Circular],
      sentAuth: false,
      user: null
    },
    _callback: function RP$callback() {},
    _destdata: true,
    _ended: true,
    _events: {
      data: function () {},
      end: function () {},
      error: function bound onceWrapper() {},
      pipe: function () {}
    },
    _eventsCount: 4,
    _jar: [RequestJar] {
      _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
    },
    _maxListeners: undefined,
    _multipart: [Multipart] {
      body: null,
      boundary: "16bca76c-9160-4bda-9d64-da5aed7923c4",
      chunked: false,
      request: [Circular]
    },
    _oauth: [OAuth] { params: null, request: [Circular] },
    _qs: [Querystring] {
      lib: {
        formats: {
          RFC1738: "RFC1738",
          RFC3986: "RFC3986",
          default: "RFC3986",
          formatters: { RFC1738: function RFC1738() {}, RFC3986: function RFC3986() {} }
        },
        parse: function () {},
        stringify: function () {}
      },
      parseOptions: {  },
      request: [Circular],
      stringifyOptions: {  },
      useQuerystring: undefined
    },
    _redirect: [Redirect] {
      allowRedirect: function () {},
      followAllRedirects: true,
      followOriginalHttpMethod: false,
      followRedirect: true,
      followRedirects: true,
      maxRedirects: 10,
      redirects: [],
      redirectsFollowed: 0,
      removeRefererHeader: false,
      request: [Circular]
    },
    _rp_callbackOrig: function () {},
    _rp_options: {
      agentOptions: {
        ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
      },
      callback: function RP$callback() {},
      challengesToSolve: 2,
      cloudflareMaxTimeout: 30000,
      cloudflareTimeout: 1,
      decodeEmails: false,
      encoding: null,
      followAllRedirects: true,
      form: {
        jschl_answer: 3.6673459399999997,
        jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
        pass: "1543827239.915-44n9IE20mS"
      },
      gzip: true,
      headers: {
        Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        Accept-Encoding: "gzip, deflate, br",
        Accept-Language: "en-US,en;q=0.9",
        Connection: "keep-alive",
        Host: Symbol(host),
        Referer: "http://127.0.0.1:33351/test",
        Upgrade-Insecure-Requests: "1",
        User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
      },
      jar: [Circular],
      method: "POST",
      realEncoding: "utf8",
      requester: function request() {},
      resolveWithFullResponse: true,
      simple: true,
      transform: undefined,
      transform2xxOnly: false,
      uri: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl"
    },
    _rp_promise: [object Promise],
    _rp_reject: function () {},
    _rp_resolve: function () {},
    _started: true,
    _tunnel: [Tunnel] {
      proxyHeaderExclusiveList: [],
      proxyHeaderWhiteList: ["accept", "accept-charset", "accept-encoding", "accept-language", "accept-ranges", "cache-control", "content-encoding", "content-language", "content-location", "content-md5", "content-range", "content-type", "connection", "date", "expect", "max-forwards", "pragma", "referer", "te", "user-agent", "via"],
      request: [Circular]
    },
    agent: [Agent] {
      _events: { free: function () {}, newListener: function maybeEnableKeylog() {} },
      _eventsCount: 2,
      _maxListeners: undefined,
      defaultPort: 80,
      freeSockets: {  },
      keepAlive: false,
      keepAliveMsecs: 1000,
      maxFreeSockets: 256,
      maxSockets: Infinity,
      options: {
        ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA",
        path: null
      },
      protocol: "http:",
      requests: {  },
      sockets: {
        127.0.0.1:33351:: [[Socket] {
    _events: {
      agentRemove: function onRemove() {},
      close: function onClose() {},
      end: function onReadableStreamEnd() {},
      error: function bound onceWrapper() {},
      free: function onFree() {}
    },
    _eventsCount: 5,
    _hadError: false,
    _host: null,
    _httpMessage: [ClientRequest] {
      _contentLength: null,
      _ended: true,
      _events: {
        drain: function () {},
        error: function bound () {},
        prefinish: function requestOnPrefinish() {},
        response: function bound () {},
        socket: function () {}
      },
      _eventsCount: 5,
      _hasBody: true,
  
  
  
  
  
  
  
  
  
  
  
  
  ",
      _headerSent: true,
      _last: true,
      _maxListeners: undefined,
      _onPendingData: function noopPendingOutput() {},
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _trailer: (empty string),
      aborted: false,
      agent: [Circular],
      chunkedEncoding: false,
      finished: true,
      maxHeadersCount: null,
      method: "POST",
      outputData: [],
      outputSize: 0,
      parser: null,
      path: "/cdn-cgi/l/chk_jschl",
      res: [IncomingMessage] {
        _consuming: false,
        _dumped: false,
        _events: {
          close: [function () {}, function () {}],
          data: function () {},
          end: [function responseOnEnd() {}, function () {}],
          error: function () {}
        },
        _eventsCount: 4,
        _maxListeners: undefined,
        _readableState: [ReadableState] {
          autoDestroy: false,
          awaitDrainWriters: null,
          buffer: [BufferList] { head: null, length: 0, tail: null },
          decoder: null,
          defaultEncoding: "utf8",
          destroyed: false,
          emitClose: true,
          emittedReadable: false,
          encoding: null,
          endEmitted: true,
          ended: true,
          errorEmitted: false,
          flowing: true,
          highWaterMark: 16384,
          length: 0,
          multiAwaitDrain: false,
          needReadable: false,
          objectMode: false,
          paused: false,
          pipes: [],
          readableListening: false,
          reading: false,
          readingMore: true,
          resumeScheduled: false,
          sync: true
        },
        aborted: false,
        body: "<!DOCTYPE html>
  <html lang="en">
  <head>
  <meta charset="utf-8">
  <title>Error</title>
  </head>
  <body>
  <pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>
  </body>
  </html>
  ",
        caseless: [Caseless] {
          dict: {
            connection: "keep-alive",
            content-length: "159",
            content-security-policy: "default-src 'none'",
            content-type: "text/html; charset=utf-8",
            date: "Tue, 26 Nov 2019 19:13:58 GMT",
            x-content-type-options: "nosniff",
            x-powered-by: "Express"
          }
        },
        client: [Circular],
        complete: true,
        headers: [Circular],
        httpVersion: "1.1",
        httpVersionMajor: 1,
        httpVersionMinor: 1,
        isCloudflare: false,
        isHTML: true,
        method: null,
        rawHeaders: ["X-Powered-By", "Express", "Content-Security-Policy", "default-src 'none'", "X-Content-Type-Options", "nosniff", "Content-Type", "text/html; charset=utf-8", "Content-Length", "159", "Date", "Tue, 26 Nov 2019 19:13:58 GMT", "Connection", "keep-alive"],
        rawTrailers: [],
        readable: false,
        req: [Circular],
        request: [Circular],
        responseStartTime: 1574795638528,
        socket: [Circular],
        statusCode: 404,
        statusMessage: "Not Found",
        toJSON: function responseToJSON() {},
        trailers: {  },
        upgrade: false,
        url: (empty string)
      },
      reusedSocket: false,
      sendDate: false,
      shouldKeepAlive: true,
      socket: [Circular],
      socketPath: undefined,
      timeoutCb: null,
      upgradeOrConnect: false,
      useChunkedEncodingByDefault: true,
      writable: true,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kOutHeaders): {
        accept: ["Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"],
        accept-encoding: ["Accept-Encoding", "gzip, deflate, br"],
        accept-language: ["Accept-Language", "en-US,en;q=0.9"],
        connection: ["Connection", "keep-alive"],
        content-length: ["content-length", 104],
        content-type: ["content-type", "application/x-www-form-urlencoded"],
        host: ["Host", "127.0.0.1:33351"],
        referer: ["Referer", "http://127.0.0.1:33351/test"],
        upgrade-insecure-requests: ["Upgrade-Insecure-Requests", "1"],
        user-agent: ["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"]
      }
    },
    _maxListeners: undefined,
    _parent: null,
    _pendingData: null,
    _pendingEncoding: (empty string),
    _readableState: [ReadableState] {
      autoDestroy: false,
      awaitDrainWriters: null,
      buffer: [BufferList] { head: null, length: 0, tail: null },
      decoder: null,
      defaultEncoding: "utf8",
      destroyed: false,
      emitClose: false,
      emittedReadable: false,
      encoding: null,
      endEmitted: false,
      ended: false,
      errorEmitted: false,
      flowing: true,
      highWaterMark: 16384,
      length: 0,
      multiAwaitDrain: false,
      needReadable: true,
      objectMode: false,
      paused: false,
      pipes: [],
      readableListening: false,
      reading: true,
      readingMore: false,
      resumeScheduled: false,
      sync: false
    },
    _server: null,
    _sockname: null,
    _writableState: [WritableState] {
      autoDestroy: false,
      bufferProcessing: false,
      bufferedRequest: null,
      bufferedRequestCount: 0,
      corked: 0,
      corkedRequestsFree: {
        entry: null,
        finish: function bound onCorkedFinish() {},
        next: { entry: null, finish: function bound onCorkedFinish() {}, next: null }
      },
      decodeStrings: false,
      defaultEncoding: "utf8",
      destroyed: false,
      emitClose: false,
      ended: false,
      ending: false,
      errorEmitted: false,
      errored: false,
      finalCalled: false,
      finished: false,
      highWaterMark: 16384,
      lastBufferedRequest: null,
      length: 0,
      needDrain: false,
      objectMode: false,
      onwrite: function bound onwrite() {},
      pendingcb: 0,
      prefinished: false,
      sync: false,
      writecb: null,
      writelen: 0,
      writing: false
    },
    allowHalfOpen: false,
    connecting: false,
    parser: null,
    readable: true,
    server: null,
    writable: true,
    Symbol(asyncId): 1819,
    Symbol(kHandle): [TCP] { onconnection: null, reading: true, Symbol(owner): [Circular] },
    Symbol(lastWriteQueueSize): 0,
    Symbol(timeout): null,
    Symbol(kBuffer): null,
    Symbol(kBufferCb): null,
    Symbol(kBufferGen): null,
    Symbol(kBytesRead): 0,
    Symbol(kBytesWritten): 0
  }]
      }
    },
    agentClass: function Agent() {},
    agentOptions: [Circular],
    body: "jschl_vc=427c2b1cd4fba29608ee81b200e94bfa&pass=1543827239.915-44n9IE20mS&jschl_answer=3.6673459399999997",
    callback: function () {},
    challengesToSolve: 2,
    cloudflareMaxTimeout: 30000,
    cloudflareTimeout: 1,
    cloudscraper: true,
    decodeEmails: false,
    dests: [],
    encoding: null,
    explicitMethod: true,
    followAllRedirects: true,
    getHeader: function () {},
    gzip: true,
    hasHeader: function () {},
    headers: {
      Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      Accept-Encoding: "gzip, deflate, br",
      Accept-Language: "en-US,en;q=0.9",
      Connection: "keep-alive",
      Host: "127.0.0.1:33351",
      Referer: "http://127.0.0.1:33351/test",
      Upgrade-Insecure-Requests: "1",
      User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36",
      content-length: 104,
      content-type: "application/x-www-form-urlencoded"
    },
    host: "127.0.0.1",
    href: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl",
    httpModule: {
      Agent: function Agent() {},
      ClientRequest: function ClientRequest() {},
      IncomingMessage: function IncomingMessage() {},
      METHODS: ["ACL", "BIND", "CHECKOUT", "CONNECT", "COPY", "DELETE", "GET", "HEAD", "LINK", "LOCK", "M-SEARCH", "MERGE", "MKACTIVITY", "MKCALENDAR", "MKCOL", "MOVE", "NOTIFY", "OPTIONS", "PATCH", "POST", "PROPFIND", "PROPPATCH", "PURGE", "PUT", "REBIND", "REPORT", "SEARCH", "SOURCE", "SUBSCRIBE", "TRACE", "UNBIND", "UNLINK", "UNLOCK", "UNSUBSCRIBE"],
      OutgoingMessage: function OutgoingMessage() {},
      STATUS_CODES: {
        100: "Continue",
        101: "Switching Protocols",
        102: "Processing",
        103: "Early Hints",
        200: "OK",
        201: "Created",
        202: "Accepted",
        203: "Non-Authoritative Information",
        204: "No Content",
        205: "Reset Content",
        206: "Partial Content",
        207: "Multi-Status",
        208: "Already Reported",
        226: "IM Used",
        300: "Multiple Choices",
        301: "Moved Permanently",
        302: "Found",
        303: "See Other",
        304: "Not Modified",
        305: "Use Proxy",
        307: "Temporary Redirect",
        308: "Permanent Redirect",
        400: "Bad Request",
        401: "Unauthorized",
        402: "Payment Required",
        403: "Forbidden",
        404: "Not Found",
        405: "Method Not Allowed",
        406: "Not Acceptable",
        407: "Proxy Authentication Required",
        408: "Request Timeout",
        409: "Conflict",
        410: "Gone",
        411: "Length Required",
        412: "Precondition Failed",
        413: "Payload Too Large",
        414: "URI Too Long",
        415: "Unsupported Media Type",
        416: "Range Not Satisfiable",
        417: "Expectation Failed",
        418: "I'm a Teapot",
        421: "Misdirected Request",
        422: "Unprocessable Entity",
        423: "Locked",
        424: "Failed Dependency",
        425: "Too Early",
        426: "Upgrade Required",
        428: "Precondition Required",
        429: "Too Many Requests",
        431: "Request Header Fields Too Large",
        451: "Unavailable For Legal Reasons",
        500: "Internal Server Error",
        501: "Not Implemented",
        502: "Bad Gateway",
        503: "Service Unavailable",
        504: "Gateway Timeout",
        505: "HTTP Version Not Supported",
        506: "Variant Also Negotiates",
        507: "Insufficient Storage",
        508: "Loop Detected",
        509: "Bandwidth Limit Exceeded",
        510: "Not Extended",
        511: "Network Authentication Required"
      },
      Server: function Server() {},
      ServerResponse: function ServerResponse() {},
      _connectionListener: function connectionListener() {},
      createServer: function createServer() {},
      get: function get() {},
      globalAgent: [Agent] {
        _events: { free: function () {}, newListener: function maybeEnableKeylog() {} },
        _eventsCount: 2,
        _maxListeners: undefined,
        defaultPort: 80,
        freeSockets: {  },
        keepAlive: false,
        keepAliveMsecs: 1000,
        maxFreeSockets: 256,
        maxSockets: Infinity,
        options: { path: null },
        protocol: "http:",
        requests: {  },
        sockets: {  }
      },
      maxHeaderSize: 8192,
      request: function request() {}
    },
    localAddress: undefined,
    method: "POST",
    ntick: true,
    originalCookieHeader: undefined,
    originalHost: "127.0.0.1:33351",
    originalHostHeaderName: "Host",
    path: "/cdn-cgi/l/chk_jschl",
    pool: { http:: [Circular] },
    port: "33351",
    proxy: null,
    readable: true,
    realEncoding: "utf8",
    removeHeader: function () {},
    req: [Circular],
    requester: function request() {},
    resolveWithFullResponse: true,
    response: [Circular],
    responseContent: [Circular],
    setHeader: function () {},
    setHost: false,
    tunnel: false,
    uri: [Url] {
      auth: null,
      hash: null,
      host: "127.0.0.1:33351",
      hostname: "127.0.0.1",
      href: "http://127.0.0.1:33351/cdn-cgi/l/chk_jschl",
      path: "/cdn-cgi/l/chk_jschl",
      pathname: "/cdn-cgi/l/chk_jschl",
      port: "33351",
      protocol: "http:",
      query: null,
      search: null,
      slashes: true
    },
    writable: true
  } at request (node_modules/request/index.js:53:10)
      at Assertion.<anonymous> (node_modules/sinon-chai/lib/sinon-chai.js:83:18)
      at Assertion.propertyGetter (node_modules/chai/lib/chai/utils/addProperty.js:62:29)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Assertion.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:280:43)
      at Assertion.overwritingPropertyGetter (node_modules/chai/lib/chai/utils/overwriteProperty.js:79:37)
      at Object.proxyGetter [as get] (node_modules/chai/lib/chai/utils/proxify.js:98:22)
      at Request._rp_callbackOrig (test/test-index.js:387:28)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  15) Cloudscraper
       should not use proxy's uri:
     Uncaught AssertionError: expected Request to have been called with exact arguments {
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://example-site.dev/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  proxy: "http://127.0.0.1:33351/",
  qs: {
    jschl_answer: 10.66734594,
    jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
    pass: "1543827239.915-44n9IE20mS"
  },
  realEncoding: "utf8",
  requester: typeOf("function"),
  uri: "http://example-site.dev/cdn-cgi/l/chk_jschl"
}
Call 1:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  challengesToSolve: 3,
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://example-site.dev/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "GET",
  proxy: "http://127.0.0.1:33351/",
  qs: {
    jschl_answer: 10.66734594,
    jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
    pass: "1543827239.915-44n9IE20mS"
  },
  realEncoding: "utf8",
  requester: function request() {},
  uri: "http://example-site.dev/test"
  requester: typeOf("function"),
  uri: "http://example-site.dev/cdn-cgi/l/chk_jschl"
}
Call 2:
{
  agentOptions: {
    ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA:!ECDHE+SHA:!AES128-SHA"
  },
  callback: function () {},
  callback: typeOf("function"),
  challengesToSolve: 2,
  cloudflareMaxTimeout: 30000,
  cloudflareTimeout: 1,
  decodeEmails: false,
  encoding: null,
  followAllRedirects: true,
  form: {
    jschl_answer: 10.66734594,
    jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
    pass: "1543827239.915-44n9IE20mS"
  },
  gzip: true,
  headers: {
    Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    Accept-Encoding: "gzip, deflate, br",
    Accept-Language: "en-US,en;q=0.9",
    Connection: "keep-alive",
    Host: Symbol(host),
    Referer: "http://example-site.dev/test",
    Upgrade-Insecure-Requests: "1",
    User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  },
  jar: [RequestJar] {
    _jar: [CookieJar] { enableLooseMode: true, store: [MemoryCookieStore] { idx: {  } } }
  },
  method: "POST",
  method: "GET",
  proxy: "http://127.0.0.1:33351/",
  qs: {
    jschl_answer: 10.66734594,
    jschl_vc: "427c2b1cd4fba29608ee81b200e94bfa",
    pass: "1543827239.915-44n9IE20mS"
  },
  realEncoding: "utf8",
  requester: function request() {},
  requester: typeOf("function"),
  uri: "http://example-site.dev/cdn-cgi/l/chk_jschl"
}
      at Proxy.<anonymous> (node_modules/sinon-chai/lib/sinon-chai.js:105:18)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-index.js:550:40)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  16) Cloudscraper
       should decode emails:
     Uncaught AssertionError: expected '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n' to include 'cloudscraper@example-site.dev'
      at Proxy.include (node_modules/chai/lib/chai/core/assertions.js:579:10)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:272:28)
      at Proxy.overwritingChainableMethodWrapper (node_modules/chai/lib/chai/utils/overwriteChainableMethod.js:60:34)
      at Proxy.chainableMethodWrapper (node_modules/chai/lib/chai/utils/addChainableMethod.js:113:49)
      at Request._rp_callbackOrig (test/test-index.js:631:23)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  17) Cloudscraper
       should not error when using the baseUrl option:

      Uncaught AssertionError: expected '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n' to equal '<!doctype html>\n\n<html lang="en">\n<head>\n  <meta charset="utf-8">\n\n  <title>The requested page</title>\n  <meta name="description" content="This page you want to parse!">\n  <meta name="author" content="Codemanki">\n\n  <link rel="stylesheet" href="css.css">\n</head>\n\n<body>\n  This is the page you want to parse\n  <script src="js/scripts.js"></script>\n</body>\n</html>\n'
      + expected - actual

      -<!DOCTYPE html>
      +<!doctype html>
      +
       <html lang="en">
       <head>
      -<meta charset="utf-8">
      -<title>Error</title>
      +  <meta charset="utf-8">
      +
      +  <title>The requested page</title>
      +  <meta name="description" content="This page you want to parse!">
      +  <meta name="author" content="Codemanki">
      +
      +  <link rel="stylesheet" href="css.css">
       </head>
      +
       <body>
      -<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>
      +  This is the page you want to parse
      +  <script src="js/scripts.js"></script>
       </body>
       </html>
      
      at Proxy.assertEqual (node_modules/chai/lib/chai/core/assertions.js:1026:12)
      at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
      at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
      at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
      at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
      at Request._rp_callbackOrig (test/test-index.js:659:26)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  18) Cloudscraper
       should use the provided cloudflare timeout:
     StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
      at new StatusCodeError (node_modules/request-promise-core/lib/errors.js:32:15)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:104:33)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

  19) Cloudscraper
       sandbox.document.getElementById should not error:
     StatusCodeError: 404 - "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<title>Error</title>\n</head>\n<body>\n<pre>Cannot POST /cdn-cgi/l/chk_jschl</pre>\n</body>\n</html>\n"
      at new StatusCodeError (node_modules/request-promise-core/lib/errors.js:32:15)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:104:33)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:185:22)
      at onRequestComplete (index.js:73:321)
      at onRequestResponse (index.js:39:329)
      at Request.<anonymous> (index.js:29:376)
      at Request.<anonymous> (node_modules/request/request.js:1161:10)
      at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
      at endReadableNT (_stream_readable.js:1200:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)



------------------|----------|----------|----------|----------|-------------------|
File              |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
------------------|----------|----------|----------|----------|-------------------|
All files         |    78.95 |    65.07 |    81.08 |    78.99 |                   |
 cloudscraper     |    76.51 |    65.91 |       75 |     76.7 |                   |
  errors.js       |      100 |    91.67 |      100 |      100 |                60 |
  index.js        |    72.84 |    63.33 |    68.42 |    73.03 |... 07,509,510,512 |
 cloudscraper/lib |    90.16 |    57.14 |    92.31 |    89.83 |                   |
  brotli.js       |    70.59 |    33.33 |    66.67 |    70.59 |    18,19,27,28,31 |
  email-decode.js |      100 |      100 |      100 |      100 |                   |
  headers.js      |    93.33 |       50 |      100 |    93.33 |                23 |
  sandbox.js      |      100 |      100 |      100 |      100 |                   |
------------------|----------|----------|----------|----------|-------------------|
npm ERR! Test failed.  See above for more details.

Node.js: 8

View build log

npm test
> cloudscraper@4.3.0 test /home/travis/build/codemanki/cloudscraper
> npm run lint && npm run test:typescript && nyc --reporter=html --reporter=text mocha


> cloudscraper@4.3.0 lint /home/travis/build/codemanki/cloudscraper
> eslint --ext .json --ext .js --ext .ts .


/home/travis/build/codemanki/cloudscraper/index.d.ts
  80:40  warning  Unexpected any. Specify a different type  @typescript-eslint/no-explicit-any

✖ 1 problem (0 errors, 1 warning)


> cloudscraper@4.3.0 test:typescript /home/travis/build/codemanki/cloudscraper
> tsc *.ts --noEmit && tsd



  Brotli (lib)
    ✓ should be available
    ✓ should have a decompress method
    ✓ decompress() should accept exactly 1 argument
    ✓ decompress() should accept buffer as input
    - [internal] decompress() should produce the expected result
    ✓ [external] decompress() should produce the expected result (603ms)
    ✓ optional() should throw an error if the module contains an error

  Cloudscraper
    1) should handle onCaptcha promise being rejected with a falsy error

/home/travis/build/codemanki/cloudscraper/node_modules/brotli/build/encode.js:3
1<process.argv.length?process.argv[1].replace(/\\/g,"/"):"unknown-program");b.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=b);process.on("uncaughtException",function(a){if(!(a instanceof y))throw a;});b.inspect=function(){return"[Emscripten Module object]"}}else if(x)b.print||(b.print=print),"undefined"!=typeof printErr&&(b.printErr=printErr),b.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)";},b.readBinary=function(a){if("function"===
                                                                                                                                                                                                                              ^
AssertionError: expected { Object (name, message) } to be an instance of CaptchaError
    at Proxy.assertInstanceOf (node_modules/chai/lib/chai/core/assertions.js:1676:10)
    at Proxy.methodWrapper (node_modules/chai/lib/chai/utils/addMethod.js:57:25)
    at doAsserterAsyncAndAddThen (node_modules/chai-as-promised/lib/chai-as-promised.js:289:22)
    at Proxy.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:255:20)
    at Proxy.overwritingMethodWrapper (node_modules/chai/lib/chai/utils/overwriteMethod.js:78:33)
    at Request._rp_callbackOrig (test/test-captcha.js:60:27)
    at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:76:39)
    at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
    at self.callback (node_modules/request/request.js:185:22)
    at onCaptcha (index.js:61:164)
    at onCloudflareResponse (index.js:41:8)
    at onRequestResponse (index.js:39:232)
    at Request.<anonymous> (index.js:29:376)
    at Request.<anonymous> (node_modules/request/request.js:1161:10)
    at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)
----------|----------|----------|----------|----------|-------------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files |        0 |        0 |        0 |        0 |                   |
----------|----------|----------|----------|----------|-------------------|
npm ERR! Test failed.  See above for more details.
TravisBuddy Request Identifier: 1a854a70-1081-11ea-a65a-5f455ab5a299

@puleeno
Copy link

puleeno commented Nov 27, 2019

@Bassintag
Copy link

Working fine for me too thanks @elpaxel, hope this will be merged soon

@codemanki
Copy link
Owner

@elpaxel thanks for the fix! I have created this new PR with additional improvements and tests. Closing your PR for now.

@codemanki codemanki closed this Nov 28, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants