Repository: alibaba/anyproxy
Branch: master
Commit: b93f948107b9
Files: 165
Total size: 1.5 MB
Directory structure:
gitextract_zmx3jyvr/
├── .eslintignore
├── .eslintrc
├── .github/
│ └── ISSUE_TEMPLATE.md
├── .gitignore
├── .npmignore
├── .travis.yml
├── CHANGELOG
├── LICENSE
├── README.md
├── babel.config.js
├── bin/
│ ├── anyproxy
│ ├── anyproxy-ca
│ ├── rootCACheck.js
│ └── startServer.js
├── build_scripts/
│ ├── build-doc-site.sh
│ └── prebuild-doc.js
├── docs/
│ ├── CNAME
│ ├── README.md
│ ├── assets/
│ │ ├── auto-lang.js
│ │ ├── main.js
│ │ └── website.css
│ ├── cn/
│ │ ├── index.html
│ │ ├── search_index.json
│ │ └── src_doc.md
│ ├── en/
│ │ ├── index.html
│ │ ├── search_index.json
│ │ └── src_doc.md
│ ├── gitbook/
│ │ ├── fonts/
│ │ │ └── fontawesome/
│ │ │ └── FontAwesome.otf
│ │ ├── gitbook-plugin-fontsettings/
│ │ │ ├── fontsettings.js
│ │ │ └── website.css
│ │ ├── gitbook-plugin-highlight/
│ │ │ ├── ebook.css
│ │ │ └── website.css
│ │ ├── gitbook-plugin-lunr/
│ │ │ └── search-lunr.js
│ │ ├── gitbook-plugin-search/
│ │ │ ├── search-engine.js
│ │ │ ├── search.css
│ │ │ └── search.js
│ │ ├── gitbook-plugin-sharing/
│ │ │ └── buttons.js
│ │ ├── gitbook.js
│ │ ├── style.css
│ │ └── theme.js
│ ├── index.html
│ └── search_index.json
├── docs-src/
│ ├── CNAME
│ ├── LANGS.md
│ ├── README.md
│ ├── _layouts/
│ │ └── layout.html
│ ├── assets/
│ │ ├── auto-lang.js
│ │ ├── main.js
│ │ └── website.css
│ ├── book.json
│ ├── cn/
│ │ ├── README.md
│ │ ├── SUMMARY.md
│ │ ├── _layouts/
│ │ │ ├── layout.html
│ │ │ └── website/
│ │ │ └── summary.html
│ │ └── src_doc.md
│ └── en/
│ ├── README.md
│ ├── SUMMARY.md
│ ├── _layouts/
│ │ ├── layout.html
│ │ └── website/
│ │ └── summary.html
│ ├── book.json
│ └── src_doc.md
├── jest.config.js
├── lib/
│ ├── certMgr.js
│ ├── configUtil.js
│ ├── httpsServerMgr.js
│ ├── log.js
│ ├── recorder.js
│ ├── requestErrorHandler.js
│ ├── requestHandler.js
│ ├── ruleLoader.js
│ ├── rule_default.js
│ ├── systemProxyMgr.js
│ ├── util.js
│ ├── webInterface.js
│ ├── wsServer.js
│ └── wsServerMgr.js
├── module_sample/
│ ├── core_reload.js
│ ├── https_config.js
│ ├── normal_use.js
│ └── simple_use.js
├── package.json
├── proxy.js
├── resource/
│ ├── 502.pug
│ ├── cert_download.pug
│ └── cert_error.pug
├── rule_sample/
│ ├── sample_modify_request_data.js
│ ├── sample_modify_request_header.js
│ ├── sample_modify_request_path.js
│ ├── sample_modify_request_protocol.js
│ ├── sample_modify_response_data.js
│ ├── sample_modify_response_header.js
│ ├── sample_modify_response_statuscode.js
│ └── sample_use_local_response.js
├── test/
│ ├── __snapshots__/
│ │ └── basic.spec.js.snap
│ ├── basic.spec.js
│ ├── fixtures/
│ │ ├── someRule.js
│ │ └── upload.txt
│ ├── lib/
│ │ ├── httpsServerMgr.spec.js
│ │ ├── ruleLoader.spec.js
│ │ └── util.spec.js
│ ├── rule/
│ │ ├── beforeDealHttpsRequest.spec.js
│ │ ├── beforeSendRequest.spec.js
│ │ ├── beforeSendResponse.js
│ │ └── onError.spec.js
│ ├── util.js
│ └── web/
│ ├── curlUtil.spec.js
│ └── webInterface.spec.js
└── web/
├── index.html
├── postcss.config.js
├── src/
│ ├── action/
│ │ ├── globalStatusAction.js
│ │ └── recordAction.js
│ ├── common/
│ │ ├── ApiUtil.js
│ │ ├── Constant.js
│ │ ├── WsUtil.js
│ │ ├── apiUtil.js
│ │ ├── commonUtil.js
│ │ ├── constant.js
│ │ ├── curlUtil.js
│ │ ├── promiseUtil.js
│ │ └── wsUtil.js
│ ├── component/
│ │ ├── download-root-ca.jsx
│ │ ├── download-root-ca.less
│ │ ├── header-menu.jsx
│ │ ├── header-menu.less
│ │ ├── json-viewer.jsx
│ │ ├── json-viewer.less
│ │ ├── left-menu.jsx
│ │ ├── left-menu.less
│ │ ├── map-local.jsx
│ │ ├── map-local.less
│ │ ├── modal-panel.jsx
│ │ ├── modal-panel.less
│ │ ├── record-detail.jsx
│ │ ├── record-detail.less
│ │ ├── record-filter.jsx
│ │ ├── record-filter.less
│ │ ├── record-list-diff-worker.jsx
│ │ ├── record-panel.jsx
│ │ ├── record-panel.less
│ │ ├── record-request-detail.jsx
│ │ ├── record-response-detail.jsx
│ │ ├── record-row.jsx
│ │ ├── record-row.less
│ │ ├── record-worker.jsx
│ │ ├── record-ws-message-detail.jsx
│ │ ├── record-ws-message-detail.less
│ │ ├── resizable-panel.jsx
│ │ ├── resizable-panel.less
│ │ ├── table-panel.jsx
│ │ ├── table-panel.less
│ │ ├── title-bar.jsx
│ │ ├── title-bar.less
│ │ └── ws-listener.jsx
│ ├── index.jsx
│ ├── index.less
│ ├── reducer/
│ │ ├── globalStatusReducer.js
│ │ ├── requestRecordReducer.js
│ │ └── rootReducer.js
│ ├── saga/
│ │ └── rootSaga.js
│ └── style/
│ ├── animate.less
│ ├── antd-constant.less
│ ├── antd-reset.global.less
│ ├── common.less
│ └── constant.less
└── webpack.config.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .eslintignore
================================================
node_modules
dist
web
web2
resource
*.sh
docs
================================================
FILE: .eslintrc
================================================
{
"extends": "airbnb",
"parser": "babel-eslint",
"env": {
"browser": true,
"node": true,
"es6": true,
"jest": true
},
"globals": {
"React": true,
"ReactDOM": true,
"Zepto": true,
"JsBridgeUtil": true
},
"rules": {
"semi": [0],
"comma-dangle": [0],
"global-require": [0],
"no-alert": [0],
"no-console": [0],
"no-param-reassign": [0],
"max-len": [0],
"func-names": [0],
"no-underscore-dangle": [0],
"no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": false }],
"object-shorthand": [0],
"arrow-body-style": [0],
"no-new": [0],
"strict": [0],
"no-script-url": [0],
"spaced-comment": [0],
"no-empty": [0],
"no-constant-condition": [0],
"no-else-return": [0],
"no-use-before-define": [0],
"no-unused-expressions": [0],
"no-class-assign": [0],
"new-cap": [0],
"array-callback-return": [0],
"prefer-template": [0],
"no-restricted-syntax": [0],
"no-trailing-spaces": [0],
"import/no-unresolved": [0],
"jsx-a11y/img-has-alt": [0],
"camelcase": [0],
"consistent-return": [0],
"guard-for-in": [0],
"one-var": [0],
"react/wrap-multilines": [0],
"react/no-multi-comp": [0],
"react/jsx-no-bind": [0],
"react/prop-types": [0],
"react/prefer-stateless-function": [0],
"react/jsx-first-prop-new-line": [0],
"react/sort-comp": [0],
"import/no-extraneous-dependencies": [0],
"import/extensions": [0],
"react/forbid-prop-types": [0],
"react/require-default-props": [0],
"class-methods-use-this": [0],
"jsx-a11y/no-static-element-interactions": [0],
"react/no-did-mount-set-state": [0],
"jsx-a11y/alt-text": [0],
"import/no-dynamic-require": [0],
"no-extra-boolean-cast": [0],
"no-lonely-if": [0],
"no-plusplus": [0],
"generator-star-spacing": ["error", {"before": true, "after": false}],
"require-yield": [0],
"arrow-parens": [0],
"no-template-curly-in-string": [0],
"no-mixed-operators": [0]
}
}
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
Plese fill the template when you reporting a new issue, thanks!
#### Which platform are you running AnyProxy
#### The version of the AnyProxy
#### Your expected behavior of AnyProxy
#### The actual behavior of AnyProxy
#### The log of the error
================================================
FILE: .gitignore
================================================
cert/**/*.srl
cert/**/*.key
cert/**/*.crt
cert/**/*.csr
web/build/.module-cache/
test/report/*.txt
tmp.txt
.*.swp
._*
.DS_Store
.vscode
.git
.hg
.lock-wscript
.svn
.wafpickle-*
.vscode
CVS
npm-debug.log
logs
*.log
pids
*.pid
*.seed
lib-cov
coverage
.grunt
build/Release
node_modules
.lock-wscript
temp
dist
test/report
*.tgz
doc_compiled.md
docs-md/cn/doc.md
docs-md/en/doc.md
docs/gitbook/gitbook-plugin-livereload/
node_modules
================================================
FILE: .npmignore
================================================
cert/**/*.srl
cert/**/*.key
cert/**/*.crt
cert/**/*.csr
web/build/.module-cache/
tmp.txt
.*.swp
._*
.DS_Store
.git
.hg
.lock-wscript
.svn
.wafpickle-*
CVS
npm-debug.log
logs
*.log
pids
*.pid
*.seed
lib-cov
coverage
.grunt
node_modules
.lock-wscript
temp
releases
rule_sample
test
*.tgz
================================================
FILE: .travis.yml
================================================
language: node_js
node_js:
- 12
before_script:
- node ./bin/anyproxy-ca -g
================================================
FILE: CHANGELOG
================================================
22 Dec 2016: AnyProxy 4.0.0-beta:
* to AnyProxy rules: all the rule interfaces are asynchronous now, you can write them in a Promise way
* to the UI, rewrite the code and enhance the user experience
26 Feb 2016: AnyProxy 3.10.4:
* let users assign the port for web socket in AnyProxy cli
19 Sep 2016: AnyProxy 3.10.3:
* fix the cert path issue with Windows
* split out the cert management to an independent module
* add unit tests to AnyProxy
29 Apr 2016: AnyProxy 3.10.0:
* using node-forge to generate HTTPS certificates instead of openssl
29 Apr 2016: AnyProxy 3.9.1:
* update SHA1 to SHA256 for openssl certificates
19 Nov 2015: AnyProxy 3.8.1:
* bugfix for image content in web GUI
19 Nov 2015: AnyProxy 3.8.1:
* bugfix for image content in web GUI
16 Nov 2015: AnyProxy 3.8.0:
* optimize the memory strategy
2 Oct 2015: AnyProxy 3.7.7:
* bugfix for proxy.close() ref #36
9 Sep 2015: AnyProxy 3.7.6:
* optimize detail panel, ref #35
3 Sep 2015: AnyProxy 3.7.5:
* bugfix for intercepting urls like http://a.com?url=http://b.com
19 Aug 2015: AnyProxy 3.7.4:
* bugfix for intercepting urls like http://a.com?url=http://b.com
31 July 2015: AnyProxy 3.7.3:
* show lastest 100 records when visit the web ui
* save map-local config file to local file
* show an indicator when filter or map-local is in use
31 July 2015: AnyProxy 3.7.2:
* bugfix for issue #29
28 July 2015: AnyProxy 3.7.1:
* fix a bug about deflate compression
20 July 2015: AnyProxy 3.7.0:
* add a map-local panel on web ui, now you can easily map some request to your local files
1 July 2015: AnyProxy 3.6.0:
* add a filter on web ui
1 July 2015: AnyProxy 3.5.2:
* optimize the row height on web ui
18 June 2015: AnyProxy 3.5.1:
* print a hint when using SNI features in node <0.12
* Ref : https://github.com/alibaba/anyproxy/issues/25
18 June 2015: AnyProxy 3.5.0:
* it's a formal release of 3.4.0@beta.
27 Apr 2015: AnyProxy 3.4.0@beta:
* optimize web server and web socket interface
20 Apr 2015: AnyProxy 3.3.1:
* now you can assign your own port for web gui
31 Mar 2015: AnyProxy 3.3.0:
* optimize https features in windows
* add switch to mute the console
20 Mar 2015: AnyProxy 3.2.5:
* bugfix for internal https server
19 Mar 2015: AnyProxy 3.2.4:
* bugfix for absolute rule path
23 Feb 2015: AnyProxy 3.2.2:
* [bugfix for relative rule path](https://github.com/alibaba/anyproxy/pull/18)
10 Feb 2015: AnyProxy 3.2.1:
* bugfix for 3.2.0
10 Feb 2015: AnyProxy 3.2.0:
* using SNI when intercepting https requests
28 Jan 2015: AnyProxy 3.1.2:
* thanks to iconv-lite, almost webpage with any charset can be correctly decoded in web interface.
28 Jan 2015: AnyProxy 3.1.1:
* convert GBK to UTF8 in web interface
22 Jan 2015: AnyProxy 3.1.0:
* will NOT intercept https request by default. Use ``anyproxy --intercept`` to turn on this feature.
12 Jan 2015: AnyProxy 3.0.4:
* show anyproxy version by --version
12 Jan 2015: AnyProxy 3.0.3:
* Bugfix: https throttle
9 Jan 2015: AnyProxy 3.0.2:
* UI improvement: add link and qr code to root CA file.
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
AnyProxy
----------------
[![NPM version][npm-image]][npm-url]
[![node version][node-image]][node-url]
[![npm download][download-image]][download-url]
[](https://travis-ci.org/alibaba/anyproxy)
[npm-image]: https://img.shields.io/npm/v/anyproxy.svg?style=flat-square
[npm-url]: https://npmjs.org/package/anyproxy
[node-image]: https://img.shields.io/badge/node.js-%3E=_6.0.0-green.svg?style=flat-square
[node-url]: http://nodejs.org/download/
[download-image]: https://img.shields.io/npm/dm/anyproxy.svg?style=flat-square
[download-url]: https://npmjs.org/package/anyproxy
AnyProxy is A fully configurable HTTP/HTTPS proxy in NodeJS.
Home page : [AnyProxy.io](http://anyproxy.io)
Issue: https://github.com/alibaba/anyproxy/issues
AnyProxy是一个基于NodeJS的,可供插件配置的HTTP/HTTPS代理服务器。
主页:[AnyProxy.io](http://anyproxy.io),访问可能需要稳定的国际网络环境

----------------
Legacy doc of version 3.x : https://github.com/alibaba/anyproxy/wiki/3.x-docs
================================================
FILE: babel.config.js
================================================
if (process.env.NODE_ENV === 'test') {
module.exports = {};
} else {
module.exports = {
presets: [
'es2015',
'stage-0'
]
};
}
================================================
FILE: bin/anyproxy
================================================
#!/usr/bin/env node
'use strict';
const program = require('commander'),
color = require('colorful'),
co = require('co'),
packageInfo = require('../package.json'),
util = require('../lib/util'),
rootCACheck = require('./rootCACheck'),
startServer = require('./startServer'),
logUtil = require('../lib/log');
program
.version(packageInfo.version)
.option('-p, --port [value]', 'proxy port, 8001 for default')
.option('-w, --web [value]', 'web GUI port, 8002 for default')
.option('-r, --rule [value]', 'path for rule file,')
.option('-l, --throttle [value]', 'throttle speed in kb/s (kbyte / sec)')
.option('-i, --intercept', 'intercept(decrypt) https requests when root CA exists')
.option('-s, --silent', 'do not print anything into terminal')
.option('-c, --clear', 'clear all the certificates and temp files')
.option('--ws-intercept', 'intercept websocket')
.option('--ignore-unauthorized-ssl', 'ignore all ssl error')
.parse(process.argv);
if (program.clear) {
require('../lib/certMgr').clearCerts(() => {
util.deleteFolderContentsRecursive(util.getAnyProxyTmpPath());
console.log(color.green('done !'));
process.exit(0);
});
} else if (program.root) {
require('../lib/certMgr').generateRootCA(() => {
process.exit(0);
});
} else {
co(function *() {
if (program.silent) {
logUtil.setPrintStatus(false);
}
if (program.intercept) {
try {
yield rootCACheck();
} catch (e) {
console.error(e);
}
}
return startServer(program);
})
}
================================================
FILE: bin/anyproxy-ca
================================================
#!/usr/bin/env node
'use strict'
// exist-false, trusted-false : create CA
// exist-true, trusted-false : trust CA
// exist-true, trusted-true : all things done
const program = require('commander');
const color = require('colorful');
const certMgr = require('../lib/certMgr');
const AnyProxy = require('../proxy');
const exec = require('child_process').exec;
const co = require('co');
const path = require('path');
const inquirer = require('inquirer');
program
.option('-c, --clear', 'clear all the tmp certificates and root CA')
.option('-g, --generate', 'generate a new rootCA')
.parse(process.argv);
function openFolderOfFile(filePath) {
const platform = process.platform;
if (/^win/.test(platform)) {
exec('start .', { cwd: path.dirname(filePath) });
} else if (/darwin/.test(platform)) {
exec(`open -R ${filePath}`);
}
}
function guideToGenrateCA() {
AnyProxy.utils.certMgr.generateRootCA((error, keyPath, crtPath) => {
if (!error) {
const certDir = path.dirname(keyPath);
console.log(`The cert is generated at ${certDir}. Please trust the ${color.bold('rootCA.crt')}.`);
openFolderOfFile(crtPath);
} else {
console.error('failed to generate rootCA', error);
}
});
}
function guideToTrustCA() {
const certPath = AnyProxy.utils.certMgr.getRootCAFilePath();
if (certPath) {
openFolderOfFile(certPath);
} else {
console.error('failed to get cert path');
}
}
if (program.clear) {
AnyProxy.utils.certMgr.clearCerts(() => {
console.log(color.green('done !'));
});
} else if (program.generate) {
guideToGenrateCA();
} else {
console.log('detecting CA status...');
co(certMgr.getCAStatus)
.then(status => {
if (!status.exist) {
console.log('AnyProxy CA does not exist.');
const questions = [{
type: 'confirm',
name: 'ifCreate',
message: 'Would you like to generate one ?',
default: true
}];
inquirer.prompt(questions).then(answers => {
if (answers.ifCreate) {
guideToGenrateCA();
}
});
} else if (!status.trusted) {
if (/^win/.test(process.platform)) {
console.log('AnyProxy CA exists, make sure it has been trusted');
} else {
console.log('AnyProxy CA exists, but not be trusted');
const questions = [{
type: 'confirm',
name: 'ifGotoTrust',
message: 'Would you like to open the folder and trust it ?',
default: true
}];
inquirer.prompt(questions).then(answers => {
if (answers.ifGotoTrust) {
guideToTrustCA();
}
});
}
// AnyProxy.utils.certMgr.clearCerts()
} else {
console.log(color.green('AnyProxy CA has already been trusted'));
}
})
.catch(e => {
console.log(e);
})
}
================================================
FILE: bin/rootCACheck.js
================================================
/**
* check if root CA exists and installed
* will prompt to generate when needed
*/
const thunkify = require('thunkify');
const AnyProxy = require('../proxy');
const logUtil = require('../lib/log');
const certMgr = AnyProxy.utils.certMgr;
function checkRootCAExists() {
return certMgr.isRootCAFileExists();
}
module.exports = function *() {
try {
if (!checkRootCAExists()) {
logUtil.warn('Missing root CA, generating now');
yield thunkify(certMgr.generateRootCA)();
yield certMgr.trustRootCA();
} else {
const isCATrusted = yield thunkify(certMgr.ifRootCATrusted)();
if (!isCATrusted) {
logUtil.warn('ROOT CA NOT INSTALLED YET');
yield certMgr.trustRootCA();
}
}
} catch (e) {
console.error(e);
}
};
================================================
FILE: bin/startServer.js
================================================
/**
* start the AnyProxy server
*/
const ruleLoader = require('../lib/ruleLoader');
const logUtil = require('../lib/log');
const AnyProxy = require('../proxy');
module.exports = function startServer(program) {
let proxyServer;
// load rule module
new Promise((resolve, reject) => {
if (program.rule) {
resolve(ruleLoader.requireModule(program.rule));
} else {
resolve(null);
}
})
.catch(e => {
logUtil.printLog('Failed to load rule file', logUtil.T_ERR);
logUtil.printLog(e, logUtil.T_ERR);
process.exit();
})
//start proxy
.then(ruleModule => {
proxyServer = new AnyProxy.ProxyServer({
type: 'http',
port: program.port || 8001,
throttle: program.throttle,
rule: ruleModule,
webInterface: {
enable: true,
webPort: program.web,
},
wsIntercept: program.wsIntercept,
forceProxyHttps: program.intercept,
dangerouslyIgnoreUnauthorized: !!program.ignoreUnauthorizedSsl,
silent: program.silent
});
// proxyServer.on('ready', () => {});
proxyServer.start();
})
.catch(e => {
logUtil.printLog(e, logUtil.T_ERR);
if (e && e.code) {
logUtil.printLog('code ' + e.code, logUtil.T_ERR);
}
logUtil.printLog(e.stack, logUtil.T_ERR);
});
process.on('exit', (code) => {
if (code > 0) {
logUtil.printLog('AnyProxy is about to exit with code: ' + code, logUtil.T_ERR);
}
process.exit();
});
//exit cause ctrl+c
process.on('SIGINT', () => {
try {
proxyServer && proxyServer.close();
} catch (e) {
console.error(e);
}
process.exit();
});
process.on('uncaughtException', (err) => {
let errorTipText = 'got an uncaught exception, is there anything goes wrong in your rule file ?\n';
try {
if (err && err.stack) {
errorTipText += err.stack;
} else {
errorTipText += err;
}
} catch (e) { }
logUtil.printLog(errorTipText, logUtil.T_ERR);
try {
proxyServer && proxyServer.close();
} catch (e) { }
process.exit();
});
}
================================================
FILE: build_scripts/build-doc-site.sh
================================================
#!/bin/bash
## get into the "build_scripts" folder regardless of the excution directory
parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
cd "$parent_path/.."
## compile the doc
node ./build_scripts/prebuild-doc.js
gitbook build ./docs-src ./docs
## push the doc into github
# git add ./docs
# git commit -m 'building docs'
# git push origin
================================================
FILE: build_scripts/prebuild-doc.js
================================================
const fs = require('fs');
const path = require('path');
const textTpl = [
'```bash',
'anyproxy --rule {{url}}',
'```',
'```js',
'{{content}}',
'```'
].join('\n');
/**
*
* @param {*} config
* @param {string} config.input input markdown path
* @param {string} config.ouput output markdown path
*/
function mergeMdWithRuleFile(config) {
const doc = fs.readFileSync(config.input, { encoding: 'utf8' });
const rules = doc.match(/\{\{sample-rule:([\S]+)\}\}/g).map((rawToReplace) => ({
raw: rawToReplace,
url: rawToReplace.replace(/\{\{sample-rule:([\S]+)\}\}/g, ($0, $1) => {
return $1;
})
}));
const tasks = rules.map((item) => (
new Promise((resolve, reject) => {
fs.readFile(item.url, 'utf8', (err, data) => {
if (!err) {
const result = Object.assign({}, item);
result.content = data;
resolve(result);
} else {
reject(err);
}
});
})
));
// fetch all samples
return Promise.all(tasks)
.then((results) => {
// merge to doc
let resultDoc = doc;
results.forEach((item) => {
const contentToInsert = textTpl.replace('{{url}}', item.url).replace('{{content}}', item.content);
resultDoc = resultDoc.replace(item.raw, contentToInsert);
});
fs.writeFileSync(config.output, resultDoc);
}, (fail) => {
console.log('failed to load resource');
console.log(fail);
process.exit();
})
.catch(e => {
console.log(e);
process.exit();
});
}
Promise.all([
{
input: path.join(__dirname, '../docs-src/cn/src_doc.md'),
output: path.join(__dirname, '../docs-src/cn/README.md'),
},
{
input: path.join(__dirname, '../docs-src/en/src_doc.md'),
output: path.join(__dirname, '../docs-src/en/README.md'),
}
].map(mergeMdWithRuleFile)).then(result => {
console.log('done');
}).catch(e => {
console.log('err');
console.log(e);
});
================================================
FILE: docs/CNAME
================================================
anyproxy.io
================================================
FILE: docs/README.md
================================================
# THIS IS AUTO GENERATED FILE, DO NOT EDIT THE HTML DIRECTLY.
# YOU CAN EDIT THE SOURCE IN docs-md FOLDER
================================================
FILE: docs/assets/auto-lang.js
================================================
/* eslint no-var: off */
/**
* detect if the browser is in UTF-8 zone
* @return boolean
*/
function isUTF8Zone() {
return new Date().getTimezoneOffset() === -480;
}
/**
* detect if the browser is already in a locale view
*/
function isInLocaleView() {
return /(cn|en)/i.test(location.href);
}
function initDefaultLocaleAndStatic() {
if (!isInLocaleView()) {
location.href = isUTF8Zone() ? '/cn' : 'en';
}
}
initDefaultLocaleAndStatic();
================================================
FILE: docs/assets/main.js
================================================
/* eslint no-var: off */
function injectBaiduStatic() {
var _hmt = _hmt || [];
var hm = document.createElement('script');
var s = document.getElementsByTagName('script')[0];
hm.src = '//hm.baidu.com/hm.js?4e51565b7d471fd6623c163a8fd79e07';
s.parentNode.insertBefore(hm, s);
}
injectBaiduStatic();
================================================
FILE: docs/assets/website.css
================================================
.book .book-summary ul.summary li.active>a, .book .book-summary ul.summary li a:hover {
color: #008cff;
background: transparent;
text-decoration: none !important;
}
h1 {
color: #2674BA;
}
h2 {
color: #0099CC;
}
h3 {
color: #108ee9;
}
h4 {
color: #662D91;
}
h5 {
color: #444444;
}
.gitbook-link {
display: none !important;
}
.summary-title-span {
position: relative !important;
padding: 0 !important;
}
.rule-title:after,
.sample-title:after {
font-size: 12px;
padding: 0 3px;
border-radius: 3px;
color: #fff;
}
.rule-title:after{
content: 'rule';
background-color: #108ee9;
}
.sample-title:after {
content: 'sample';
background-color: #00a854;
}
.page-inner {
max-width: 1000px !important;
}
================================================
FILE: docs/cn/index.html
================================================
port {number} required, port number of proxy server
rule {object} your rule module
throttle {number} throttle in kb/s, unlimited for default
forceProxyHttps {boolean} in force intercept all https request, default to false
silent {boolean} if keep silent in console, false for default false
dangerouslyIgnoreUnauthorized {boolean} if ignore certificate error in request, default to false
wsIntercept {boolean} whether to intercept websocket, default to false
webInterface {object} config for web interface
enable {boolean} if enable web interface, default to false
webPort {number} port number for web interface
Event: ready
emit when proxy server is ready
sample
proxy.on('ready', function() { })
Event: error
emit when error happened inside proxy server
sample
proxy.on('error', function() { })
Method: start
start proxy server
sample
proxy.start();
Method: close
close proxy server
sample
proxy.close();
AnyProxy.utils.systemProxyMgr
manage the system proxy config. sudo password may be required
sample
// set 127.0.0.1:8001 as system http server
AnyProxy.utils.systemProxyMgr.enableGlobalProxy('127.0.0.1', '8001');
// disable global proxy server
AnyProxy.utils.systemProxyMgr.disableGlobalProxy();
AnyProxy.utils.certMgr
Manage certificates of AnyProxy
AnyProxy.utils.certMgr.ifRootCAFileExists()
detect if AnyProx rootCA exists
AnyProxy.utils.certMgr.generateRootCA(callback)
generate a rootCA
Sample
const AnyProxy = require('anyproxy');
const exec = require('child_process').exec;
if (!AnyProxy.utils.certMgr.ifRootCAFileExists()) {
AnyProxy.utils.certMgr.generateRootCA((error, keyPath) => {
// let users to trust this CA before using proxyif (!error) {
const certDir = require('path').dirname(keyPath);
console.log('The cert is generated at', certDir);
const isWin = /^win/.test(process.platform);
if (isWin) {
exec('start .', { cwd: certDir });
} else {
exec('open .', { cwd: certDir });
}
} else {
console.error('error when generating rootCA', error);
}
});
}
Proxy Https
AnyProxy does NOT intercept https requests by default. To view decrypted info, you have to config the CA certificate.
Under the hood, AnyProxy decryptes https requests by man-in-the-middle attack. Users have to trust the CA cert in advance. Otherwise, client side will issue errors about unsecure network.
generate certifycates and intercept
anyproxy-ca #generate root CA. manually trust it after that.
anyproxy --intercept #launch anyproxy and intercept all https traffic
The wss requests will be handled automatically when the HTTPS intercept is turned on, but AnyProxy will not record the data by default. You need to specify the --ws-intercept to tell AnyProxy to record it.
Rule Introduction
AnyProxy provides the ability to load your own rules written in javascript. With rule module, you could customize the logic to handle requests.
Make sure your rule file is got from a trusted source. Otherwise, you may face some unknown security risk.
Rule module could do the following stuff:
intercept and modify the request which is being sent
editable fields include request header, body, target address
intercept and modify the response from server
editable fields include response status code, header, body
intercept https requests, modify request and response
sample
Target
write a rule module to append some text to the response of GET http://httpbin.org/user-agent, and delay the response for 5 seconds
Click Root CA in web ui, and follow the instruction to install
trust root CA in iOS after 10.3
Besides installing root CA, you have to "turn on" the certificate for web manually in settings - general - about - Certificate Trust Settings. Otherwire, safari will not trust the root CA generated by AnyProxy.
trust root CA in Android
First of all, you need to download the root CA by clicking Root CA in web ui, and then scan the QR code.
Installing CA in Android could be different based on the system, we list some common steps as below, but you can find the right way in you system with similar menu path.
The downloaded CA file can be directly installed by clicking, this is the easist way
You need to install the CA file from other menu, such as:
Settings -> Security & Location > Encryption & credentials -> Install from storage, and find your CA file to install
Settings -> Security -> Install from SD card, and find you CA file to install
There are several file extensions of CA file which may not be compatible with all kinds of Android phones. .crt file is the most popular, while a few systems could only use .cer file such as OPPO R15. In AnyProxy, you can choose the type of certificate you need before installing.
config iOS/Android proxy server
proxy settings are placed in wifi setting
iOS
Android
FAQ
Q: can not deal https request in rule module.
A: Any of these options could be used to change the way AnyProxy deall https requests
config --intercept when luanching AnyProxy via cli, or use forceProxyHttps when using as an npm module
place a beforeDealHttpsRequest function in your rule file and determine which request to intercept by your own.
Q: get an error says function is not yieldable
A: Rule module is driven by co. The functions inside should be yieldable, i.e. return a promise or be a generator function.
Q: The connection is not private
AnyProxy will propmt this message when the certification of the site you're visiting is not issued by a common known CA. This happens when the certification is self-signed. If you know and trust it, you can ignore the error as below.
If you run AnyProxy by command line
Pass in the option --ignore-unauthorized-ssl to ignore the certification errors, please mind that the option will be active for all connections.
anyproxy -i --ignore-unauthorized-ssl
If you run AnyProxy by Nodejs
Pass in the option dangerouslyIgnoreUnauthorized:true, like this:
This is also a global option, all certification errors will be ignored
With the help of AnyProxy Rule
You can change the request with rule of course. For this scenario, all you need is to pass in an option to Nodejs Http.rquest, as we do in AnyProxy. A simple demo below:
module.exports = {
*beforeSendRequest(requestDetail) {
if (requestDetail.url.indexOf('https://the-site-you-know.com') === 0) {
const newRequestOptions = requestDetail.requestOptions;
// set rejectUnauthorized as false
newRequestOptions.rejectUnauthorized = false;
return {
requestOptions: newRequestOptions
};
}
},
};
And we get a bonous here, AnyProxy will only ignore the errors for the site(s) we want it to!
results matching ""
No results matching ""
================================================
FILE: docs/en/search_index.json
================================================
{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["\"content","\"curl/7.43.0\"","\"data\":","\"https\"","\"i","\"thi","\"turn","\"user","\"x","#gener","#global","#launch","#local","&","&&","'","'...'","'...',","'/',","'/index.html';","'/redirect/to/another/path';","'127.0.0.1'","'8001');","'8008';","';","'a","'anyproxy';","'anyproxy.io',","'anyproxy/0.0.0';","'application/json'","'cach","'close',","'content","'get',","'get';","'hello","'http',","'http';","'http://anyproxy.io/',","'http://httpbin.org/get?show_env=1'","'http://httpbin.org/us","'https'","'https',","'i","'image/gif',","'keep","'mi","'origin","'proxi","'rule","'text/html'","'thi","'user","'{\"hello\":","(!anyproxy.utils.certmgr.ifrootcafileexists())","(!error)","()","(e)","(iswin)","(requestdetail.url","(requestdetail.url.indexof('http://httpbin.org')","(requestdetail.url.indexof('http://httpbin.org/post')","(requestdetail.url.indexof('http://httpbin.org/us","(requestdetail.url.indexof('https://httpbin.org/us","(requestdetail.url.indexof('https://th","*/","*/}","*beforedealhttpsrequest(requestdetail)","*beforesendrequest(requestdetail)","*beforesendresponse(requestdetail,","*onconnecterror(requestdetail,","*onerror(requestdetail,","+=",",",".",".',","...","...,","./myrulepkg/","./rule.j",".cer",".crt","/*","//","//when","/^win/.test(process.platform);","0)","10.3","10000,","1080","127.0.0.1:8001","127.0.0.1:8001,","127.0.0.1:8001/index.html","1,write","2,","200,","3,","3.x:","4,","404","404;","443;","5","5000);","5s","80,","8001","8001,","8002","=","===","=>",">","[switchyomega]","_re","_req","_req:","_res:","a:","abil","abliti","activ","add","address","advanc","advance.","agent","agent\":","agent'","agent')","agent':","agent']","agent,","alive',","all,","alway","android","anyprox","anyproxi","anyproxy',","anyproxy,","anyproxy.","anyproxy.io,","anyproxy.proxycore(options);","anyproxy.proxyserv","anyproxy.proxyserver(options)","anyproxy.proxyserver(options);","anyproxy.utils.certmgr","anyproxy.utils.certmgr.generaterootca((error,","anyproxy.utils.certmgr.generaterootca(callback)","anyproxy.utils.certmgr.ifrootcafileexists()","anyproxy.utils.systemproxymgr","anyproxy.utils.systemproxymgr.disableglobalproxy();","anyproxy.utils.systemproxymgr.enableglobalproxy('127.0.0.1',","anyproxyin","anyproxyins.start();","append","appendix:how","apt","as:","at',","attack","attack.","automat","base","be","befor","beforedealhttpsrequest","beforedealhttpsrequest(requestdetail)","beforesendrequest","beforesendrequest(requestdetail)","beforesendrespons","beforesendresponse(requestdetail,","below,","below.","below:","besid","bodi","body,","body:","bonou","browser","browser.","by']","by:","by:anyproxi","ca","ca,","ca.","call","card,","caus","cert","certdir","certdir);","certif","certificate.","certificates,","certificates.","certifyc","chang","chart","choos","chrome","class:","cli,","cli.","click","clicking,","client","client,","close","co","co.","code","code,","code.","collect","command","common","compat","config","config.","configur","connect","connection':","connection:","connections.","console,","console.error('error","console.log('th","const","content","content,","control':","couldn't","course.","creat","credenti","curl","curl:","custom","cwd:","d","dangerouslyignoreunauthor","dangerouslyignoreunauthorized:","dangerouslyignoreunauthorized:true,","data","data\"","data'","data',","deal","dealed.","deall","debian","decrypt","default","default.","defin","delay","demo","design","detect","determin","differ","directli","disabl","dn","doubl","download","driven","due","dure","e.g.","easist","edit","emit","enabl","enable:","encrypt","end","entir","error","error)","error);","errors,","event:","example(https://chrome.google.com/webstore/detail/padekgcemlokbadohgkifijomclgjgif)为例","except","exec","exec('open","exec('start","exist","expect","extens","extent","face","fail","failure,","fals","false,","false;","faq","feature,","features:","few","field","file","file,","file.","file:","find","finish","first","flow","follow","follows.","forc","forceproxyhttp","forceproxyhttps:","forward","found","frequent","full","fulli","function","function()","function.","g","gener","get","github:","give","global","go,","gui","guid","h","hack","hacked!","hacked!';","handl","handling.","happen","header","header,","header:","headers:","headersar","help","here","here,","here.","hood,","host","host:","hostname:","http","http.rquest,","http/1.1","http/http","http://....j","http://127.0.0.1:8001","http://127.0.0.1:8002","http://127.0.0.1:8002,","http://httpbin.org","http://httpbin.org/","http://httpbin.org/post","http://httpbin.org/us","http://localhost:8008/index.html","httpbin.org","httpbin.org,","https://github.com/alibaba/anyproxi","https://httpbin.org/us","https://nodejs.org/api/http.html#http_http_request_options_callback","https://sample.com/rule.j","i.e.","ignor","import","in.","includ","influenc","info","info,","insid","instal","installing.","instruct","intercept","interest","interfac","interface,","introduct","invok","io","ios/android","issu","iswin","it,","it.","javascript.","js","kb/s,","keep","keypath)","kind","know","know.com')","known","launch","launching,","legaci","line","line,","list","load","local","localrespons","locat","log","logic","login","longer.","luanch","make","man","manag","manual","menu","menu,","messag","method","method,","method:","middl","mind","modifi","modul","module,","module.","module.export","myrulepkg","nativ","need","network.","new","newli","newopt","newoption.path","newoption.port","newrequestopt","newrequestoptions.headers['us","newrequestoptions.hostnam","newrequestoptions.method","newrequestoptions.path","newrequestoptions.port","newrequestoptions.rejectunauthor","newrespons","newresponse.bodi","newresponse.header['x","newresponse.statuscod","node.j","nodej","nodejs.","nothing,","now","npm","null","null;","number","object","object.","object.assign({},","offer","on","on\"","on,","onconnecterror","onconnecterror(requestdetail,","one.","onerror","onerror(requestdetail,","onlin","oppo","option","option,","optional,","osx","otherwire,","otherwise,","own.","page","param","part","pass","password","path.","path:","phones.","place","pleas","point","popular,","port","port:","post","privat","process","promis","promise((resolve,","propmt","protocol","protocol\":","protocol,","protocol:","protocol,i.e.","provid","proxi","proxy.close();","proxy.on('error',","proxy.on('ready',","proxy.start();","proxyserv","proxyserver.close();","proxyserver.on('error',","proxyserver.on('ready',","proxyserver.start();","q:","qr","quest","r15.","read","readi","receiv","record","redirect","ref:","refer","reject)","rejectunauthor","replac","request","request,","request.","requestdata","requestdata:","requestdetail","requestdetail.protocol","requestdetail.requestoptions);","requestdetail.requestoptions;","requestdetail;","requesting,","requestopt","requestoptions:","requests,","requests.","requir","require('anyproxy');","require('child_process').exec;","require('http').request","require('myrulemodule'),","require('path').dirname(keypath);","require()","required,","resolve({","respons","response\"}'","response',","response:","responsedetail","responsedetail)","responsedetail.response);","responsedetail.response;","return","right","risk.","root","rootca","rootca',","rootca.crt","rule","rule:","rule_sample/sample_modify_request_data.j","rule_sample/sample_modify_request_header.j","rule_sample/sample_modify_request_path.j","rule_sample/sample_modify_request_protocol.j","rule_sample/sample_modify_response_data.j","rule_sample/sample_modify_response_header.j","rule_sample/sample_modify_response_statuscode.j","rule_sample/sample_use_local_response.j","run","safari","safe","same","sampl","sample.j","sample:","save","scan","scenario,","sd","second","seconds.","secur","security.","see","self","send","sent","server","server,","server.","set","settimeout(()","settings.","sever","side","signed.","silent","silent:","similar","simpl","simplifi","site","site(s)","situation.","skip","someth","source.","specifi","ssl","start","statu","statuscod","statuscode:","step","storage,","stuff:","such","sudo","summari","summary,","summary:","support","sure","system","system,","take","target","tell","test","test:","text","text/plain\"","that.","this:","throttl","throttle:","time","timeout","tip","to!","toward","traffic","tri","true","true,","true;","trust","turn","type","type':","type:","typic","ubuntu","ui,","unauthor","under","unknown","unlimit","unsecur","untrust","url","url:","us","use,","user","user.","users,","usual","valid","valu","var","via","view","visit","want","warning:","way","web","webinterfac","webinterface:","webport","webport:","websocket","websocket,","whether","wifi","window","without","work","world'","write","written","ws","wsintercept","wsintercept:","wss","x","yieldabl","yieldable,","you'r","{","{boolean}","{number}","{object}","{string}","}","})","});","},","};","中文文档",":"]},"length":1},"tokenStore":{"root":{"0":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.003589053387169134}}}},"1":{"0":{"0":{"0":{"0":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"docs":{}},"docs":{}},"8":{"0":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"docs":{}},"docs":{},".":{"3":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"信":{"docs":{},"任":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"docs":{}}},"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"0":{"1":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}},",":{"docs":{},"访":{"docs":{},"问":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},",":{"docs":{},"编":{"docs":{},"写":{"docs":{},"规":{"docs":{},"则":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"2":{"0":{"0":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}},"docs":{}},"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"3":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{},"x":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"4":{"0":{"4":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},";":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"docs":{}},"4":{"3":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"docs":{}},"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"0":{"docs":{},"的":{"docs":{},"主":{"docs":{},"要":{"docs":{},"变":{"docs":{},"化":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}},",":{"docs":{},"欢":{"docs":{},"迎":{"docs":{},"提":{"docs":{},"供":{"docs":{},"反":{"docs":{},"馈":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}},"docs":{}}},"5":{"0":{"0":{"0":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"docs":{}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"8":{"0":{"0":{"1":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"2":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"docs":{}},"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"docs":{}},"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"/":{"7":{"docs":{},".":{"4":{"3":{"docs":{},".":{"0":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"#":{"docs":{},"全":{"docs":{},"局":{"docs":{},"包":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"启":{"docs":{},"动":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},",":{"docs":{},"并":{"docs":{},"解":{"docs":{},"析":{"docs":{},"所":{"docs":{},"有":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"地":{"docs":{},"包":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"生":{"docs":{},"成":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{},",":{"docs":{},"生":{"docs":{},"成":{"docs":{},"后":{"docs":{},"需":{"docs":{},"要":{"docs":{},"手":{"docs":{},"动":{"docs":{},"信":{"docs":{},"任":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"l":{"docs":{},"a":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"&":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"&":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"'":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"8":{"0":{"0":{"1":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"8":{"docs":{},"'":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},".":{"docs":{},".":{"docs":{},".":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"/":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{},"'":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"/":{"docs":{},"t":{"docs":{},"o":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"'":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},"a":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"'":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"/":{"0":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},"'":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"j":{"docs":{},"s":{"docs":{},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},".":{"docs":{},"i":{"docs":{},"o":{"docs":{},"/":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"?":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{},"_":{"docs":{},"e":{"docs":{},"n":{"docs":{},"v":{"docs":{},"=":{"1":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"docs":{}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"m":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"f":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"m":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}}},"h":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"{":{"docs":{},"\"":{"docs":{},"h":{"docs":{},"e":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"(":{"docs":{},"!":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},".":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"g":{"docs":{},"r":{"docs":{},".":{"docs":{},"i":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"i":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},".":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},".":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"o":{"docs":{},"f":{"docs":{},"(":{"docs":{},"'":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"'":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"'":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"*":{"docs":{},"/":{"docs":{"./":{"ref":"./","tf":0.007178106774338268}},"}":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"*":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}},"+":{"docs":{},"=":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}},".":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},".":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"/":{"docs":{},"m":{"docs":{},"y":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{},"/":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"/":{"docs":{},"*":{"docs":{"./":{"ref":"./","tf":0.00762673844773441}}},"/":{"docs":{"./":{"ref":"./","tf":0.006280843427545985}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"这":{"docs":{},"里":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"同":{"docs":{},"时":{"docs":{},"加":{"docs":{},"上":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"^":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{},"/":{"docs":{},".":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"=":{"docs":{"./":{"ref":"./","tf":0.020188425302826378}},"=":{"docs":{},"=":{"docs":{"./":{"ref":"./","tf":0.004486316733961417}}}},">":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}}}},">":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},"=":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"关":{"docs":{},"于":{"docs":{},"本":{"docs":{},"机":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"证":{"docs":{},"书":{"docs":{},"信":{"docs":{},"任":{"docs":{},"设":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}},"通":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"q":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"a":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005383580080753701}},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"'":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},")":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"]":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}}}}},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"i":{"docs":{"./":{"ref":"./","tf":0.03230148048452221}}},"y":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},".":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"i":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0014738393515106854}},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"g":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"(":{"docs":{},"(":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"m":{"docs":{},"g":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"(":{"docs":{},"'":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"s":{"docs":{},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}},"使":{"docs":{},"用":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},"加":{"docs":{},"载":{"docs":{},"本":{"docs":{},"地":{"docs":{},"规":{"docs":{},"则":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"在":{"docs":{},"参":{"docs":{},"数":{"docs":{},"里":{"docs":{},"传":{"docs":{},"入":{"docs":{},"一":{"docs":{},"个":{"docs":{},"本":{"docs":{},"地":{"docs":{},"的":{"docs":{},"n":{"docs":{},"p":{"docs":{},"m":{"docs":{},"包":{"docs":{},"路":{"docs":{},"径":{"docs":{},",":{"docs":{},"或":{"docs":{},"是":{"docs":{},"某":{"docs":{},"个":{"docs":{},"全":{"docs":{},"局":{"docs":{},"安":{"docs":{},"装":{"docs":{},"的":{"docs":{},"n":{"docs":{},"p":{"docs":{},"m":{"docs":{},"包":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"作":{"docs":{},"为":{"docs":{},"一":{"docs":{},"个":{"docs":{},"n":{"docs":{},"p":{"docs":{},"m":{"docs":{},"模":{"docs":{},"块":{"docs":{},"使":{"docs":{},"用":{"docs":{},",":{"docs":{},"整":{"docs":{},"合":{"docs":{},"进":{"docs":{},"其":{"docs":{},"他":{"docs":{},"工":{"docs":{},"具":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}},"向":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"发":{"docs":{},"送":{"docs":{},"请":{"docs":{},"求":{"docs":{},"前":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"并":{"docs":{},"带":{"docs":{},"上":{"docs":{},"参":{"docs":{},"数":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"发":{"docs":{},"送":{"docs":{},"请":{"docs":{},"求":{"docs":{},"前":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{},"并":{"docs":{},"带":{"docs":{},"上":{"docs":{},"参":{"docs":{},"数":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"在":{"docs":{},"与":{"docs":{},"目":{"docs":{},"标":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"建":{"docs":{},"立":{"docs":{},"连":{"docs":{},"接":{"docs":{},"的":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"发":{"docs":{},"生":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"这":{"docs":{},"个":{"docs":{},"方":{"docs":{},"法":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"了":{"docs":{},"二":{"docs":{},"次":{"docs":{},"开":{"docs":{},"发":{"docs":{},"的":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"j":{"docs":{},"s":{"docs":{},"编":{"docs":{},"写":{"docs":{},"自":{"docs":{},"己":{"docs":{},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},"(":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"来":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"网":{"docs":{},"络":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"逻":{"docs":{},"辑":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"收":{"docs":{},"到":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},"时":{"docs":{},",":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{},"并":{"docs":{},"带":{"docs":{},"上":{"docs":{},"参":{"docs":{},"数":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"开":{"docs":{},"放":{"docs":{},"式":{"docs":{},"的":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"由":{"docs":{},"模":{"docs":{},"块":{"docs":{},"做":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"新":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"或":{"docs":{},"返":{"docs":{},"回":{"docs":{},"响":{"docs":{},"应":{"docs":{},"内":{"docs":{},"容":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"默":{"docs":{},"认":{"docs":{},"不":{"docs":{},"对":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},"做":{"docs":{},"处":{"docs":{},"理":{"docs":{},",":{"docs":{},"如":{"docs":{},"需":{"docs":{},"看":{"docs":{},"到":{"docs":{},"明":{"docs":{},"文":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"配":{"docs":{},"置":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"i":{"docs":{},"x":{"docs":{},":":{"docs":{},"h":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}},"t":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},")":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"提":{"docs":{},"前":{"docs":{},"信":{"docs":{},"任":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"c":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"d":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"v":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"b":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"e":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"s":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"o":{"docs":{},"d":{"docs":{},"y":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}},"三":{"docs":{},"个":{"docs":{},"字":{"docs":{},"段":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"等":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},")":{"docs":{},",":{"docs":{},"甚":{"docs":{},"至":{"docs":{},"是":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"地":{"docs":{},"址":{"docs":{},"等":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}}}},"n":{"docs":{},"o":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"y":{"docs":{},"'":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"c":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.01031852848811126}},"方":{"docs":{},"法":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},",":{"docs":{},"按":{"docs":{},"提":{"docs":{},"示":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"二":{"docs":{},"维":{"docs":{},"码":{"docs":{},"即":{"docs":{},"可":{"docs":{},"安":{"docs":{},"装":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.004037685060565276}}}},"r":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"i":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.005383580080753701}},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"y":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"i":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},"o":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"d":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},")":{"docs":{},"、":{"docs":{},"响":{"docs":{},"应":{"docs":{},"头":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"(":{"docs":{},"'":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"'":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.008524001794526694}}}},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"'":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"f":{"docs":{},"i":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.00493494840735756}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"u":{"docs":{},"l":{"docs":{},"d":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.005383580080753701}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}},"w":{"docs":{},"d":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"o":{"docs":{},"o":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"s":{"docs":{},"l":{"docs":{},"y":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}},"\"":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"'":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.003589053387169134}},".":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"m":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"o":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},"s":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"u":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"g":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"c":{"docs":{},"r":{"docs":{},"y":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"t":{"docs":{},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.006729475100942127}},")":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"(":{"docs":{},"'":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"(":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"c":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},".":{"docs":{},"g":{"docs":{},"o":{"docs":{},"o":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"/":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"/":{"docs":{},"p":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"k":{"docs":{},"g":{"docs":{},"c":{"docs":{},"e":{"docs":{},"m":{"docs":{},"l":{"docs":{},"o":{"docs":{},"k":{"docs":{},"b":{"docs":{},"a":{"docs":{},"d":{"docs":{},"o":{"docs":{},"h":{"docs":{},"g":{"docs":{},"k":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"j":{"docs":{},"o":{"docs":{},"m":{"docs":{},"c":{"docs":{},"l":{"docs":{},"g":{"docs":{},"j":{"docs":{},"g":{"docs":{},"i":{"docs":{},"f":{"docs":{},")":{"docs":{},"为":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},".":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}},"a":{"docs":{},"s":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.003589053387169134}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"q":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"c":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.006280843427545985}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"n":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},".":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"g":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.004486316733961417}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},"主":{"docs":{},"页":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"a":{"docs":{},"b":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"v":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}},"o":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"u":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"e":{"docs":{},"d":{"docs":{},"!":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"'":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}}}}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},")":{"docs":{},",":{"docs":{},"请":{"docs":{},"求":{"docs":{},"体":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},":":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},")":{"docs":{},"、":{"docs":{},"响":{"docs":{},"应":{"docs":{},"内":{"docs":{},"容":{"docs":{},"等":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"l":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.014804845222072678}},"/":{"1":{"docs":{},".":{"1":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"docs":{}}},"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"0":{"1":{"docs":{"./":{"ref":"./","tf":0.004486316733961417}}},"2":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"/":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.004486316733961417}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"8":{"0":{"0":{"8":{"docs":{},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}}}}}}}},"s":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"b":{"docs":{},"a":{"docs":{},"b":{"docs":{},"a":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"j":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{},"#":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"_":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"连":{"docs":{},"接":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"出":{"docs":{},"错":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}},"代":{"docs":{},"理":{"docs":{},"配":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.0014738393515106854}}}}}},"的":{"docs":{},"代":{"docs":{},"理":{"docs":{},"模":{"docs":{},"式":{"docs":{},"中":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"的":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"是":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}},".":{"docs":{},"r":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}}}}}},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.008075370121130552}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.008972633467922835}},"`":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"按":{"docs":{},"n":{"docs":{},"p":{"docs":{},"m":{"docs":{},"模":{"docs":{},"块":{"docs":{},"启":{"docs":{},"动":{"docs":{},"时":{"docs":{},"配":{"docs":{},"置":{"docs":{},"`":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"`":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"替":{"docs":{},"换":{"docs":{},"证":{"docs":{},"书":{"docs":{},"并":{"docs":{},"解":{"docs":{},"析":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"后":{"docs":{},"才":{"docs":{},"会":{"docs":{},"从":{"docs":{},"界":{"docs":{},"面":{"docs":{},"上":{"docs":{},"看":{"docs":{},"到":{"docs":{},"相":{"docs":{},"应":{"docs":{},"内":{"docs":{},"容":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":10.001345895020188}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}}}},"f":{"docs":{},"l":{"docs":{},"u":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"o":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"v":{"docs":{},"o":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"o":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"s":{"docs":{},"系":{"docs":{},"统":{"docs":{},"信":{"docs":{},"任":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"s":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}},".":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"t":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"'":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"b":{"docs":{},"/":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}},"g":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"a":{"docs":{},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"u":{"docs":{},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},":":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"n":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"i":{"docs":{},"d":{"docs":{},"d":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"e":{"docs":{},")":{"docs":{},",":{"docs":{},"用":{"docs":{},"户":{"docs":{},"必":{"docs":{},"须":{"docs":{},"信":{"docs":{},"任":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{},",":{"docs":{},"才":{"docs":{},"能":{"docs":{},"进":{"docs":{},"行":{"docs":{},"后":{"docs":{},"续":{"docs":{},"流":{"docs":{},"程":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.012113055181695828}}}}},"u":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.008972633467922835}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00493494840735756}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"y":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"k":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},".":{"docs":{},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"[":{"docs":{},"'":{"docs":{},"u":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"r":{"docs":{},"e":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.005383580080753701}},"e":{"docs":{},".":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"[":{"docs":{},"'":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"e":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}}}},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"p":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.003589053387169134}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},";":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"(":{"docs":{},"{":{"docs":{},"}":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}}}}}}}}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"\"":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.004486316733961417}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"s":{"docs":{},"x":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"系":{"docs":{},"统":{"docs":{},"信":{"docs":{},"任":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"w":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}}}}}},"w":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"g":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}}}},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}},":":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"p":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"\"":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},":":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},",":{"docs":{},"i":{"docs":{},".":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.016150740242261104}}},"y":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"'":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"y":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"c":{"docs":{},"l":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"'":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"y":{"docs":{},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}},"p":{"docs":{},"m":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"h":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}},"q":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"r":{"1":{"5":{"docs":{},")":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"docs":{}},"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},"f":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.02332884701659937}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},":":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.004037685060565276}},".":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},";":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}}}}}}}}}}}}}}}},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}}},".":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"i":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"e":{"docs":{},"(":{"docs":{},"'":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"'":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}}}}},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"'":{"docs":{},")":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"y":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"'":{"docs":{},")":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"'":{"docs":{},")":{"docs":{},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"(":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"'":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"{":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.014804845222072678}},"e":{"docs":{},"\"":{"docs":{},"}":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},":":{"docs":{"./":{"ref":"./","tf":0.007178106774338268}}},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},")":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}}},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},";":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},";":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.016150740242261104}}}}}},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005832211754149843}},"c":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"'":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.021085688649618663}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"_":{"docs":{},"s":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"/":{"docs":{},"s":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"_":{"docs":{},"m":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"h":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"_":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"接":{"docs":{},"口":{"docs":{},"文":{"docs":{},"档":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"样":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"模":{"docs":{},"块":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"s":{"docs":{},"k":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"s":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00493494840735756}},"e":{"docs":{},".":{"docs":{},"j":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}},":":{"docs":{"./":{"ref":"./","tf":0.003589053387169134}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}},"v":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"f":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"(":{"docs":{},"(":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"l":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.004486316733961417}}},"t":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.008075370121130552}},",":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"t":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"(":{"docs":{},"s":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"u":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"d":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"g":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"s":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}}}}}}}}},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"u":{"docs":{},"f":{"docs":{},"f":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"u":{"docs":{},"d":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"e":{"docs":{},"n":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"k":{"docs":{},"i":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},":":{"docs":{"./":{"ref":"./","tf":0.003589053387169134}}}}},"x":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"/":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"t":{"docs":{},"t":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"a":{"docs":{},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"i":{"docs":{},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"o":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0026917900403768506}}}}}},"!":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},",":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},";":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"或":{"docs":{},"者":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{},"表":{"docs":{},"示":{"docs":{},"是":{"docs":{},"否":{"docs":{},"需":{"docs":{},"要":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"替":{"docs":{},"换":{"docs":{},"证":{"docs":{},"书":{"docs":{},"并":{"docs":{},"解":{"docs":{},"析":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.005383580080753701}},")":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"a":{"docs":{},"f":{"docs":{},"f":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"'":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"a":{"docs":{},"k":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}}}}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"p":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"u":{"docs":{},"i":{"docs":{},"中":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"n":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"l":{"docs":{},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"s":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"s":{"docs":{"./":{"ref":"./","tf":0.009421265141318977}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"v":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}},"u":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}}},"i":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},"e":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"s":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.001794526693584567}}}}}}},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.0031404217137729925}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"e":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"版":{"docs":{},"界":{"docs":{},"面":{"docs":{},"端":{"docs":{},"口":{"docs":{},"号":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"8":{"0":{"0":{"2":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"配":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"重":{"docs":{},"构":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"s":{"docs":{},"系":{"docs":{},"统":{"docs":{},"信":{"docs":{},"任":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"o":{"docs":{},"r":{"docs":{},"l":{"docs":{},"d":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"k":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}},"s":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"r":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}},"y":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}},"h":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}},"x":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}},"y":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"'":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}},"{":{"docs":{"./":{"ref":"./","tf":0.03947958725886048}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0022431583669807087}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.003589053387169134}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"}":{"docs":{"./":{"ref":"./","tf":0.0013458950201884253}}}}}}}}}},"|":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"}":{"docs":{"./":{"ref":"./","tf":0.013458950201884253}},")":{"docs":{"./":{"ref":"./","tf":0.0008972633467922835}},";":{"docs":{"./":{"ref":"./","tf":0.004037685060565276}}}},",":{"docs":{"./":{"ref":"./","tf":0.008972633467922835}}},";":{"docs":{"./":{"ref":"./","tf":0.01256168685509197}}}},"下":{"docs":{},"载":{"docs":{},"后":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"可":{"docs":{},"以":{"docs":{},"直":{"docs":{},"接":{"docs":{},"单":{"docs":{},"击":{"docs":{},"打":{"docs":{},"开":{"docs":{},"并":{"docs":{},"安":{"docs":{},"装":{"docs":{},",":{"docs":{},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},"是":{"docs":{},"最":{"docs":{},"简":{"docs":{},"单":{"docs":{},"的":{"docs":{},",":{"docs":{},"直":{"docs":{},"接":{"docs":{},"安":{"docs":{},"装":{"docs":{},"即":{"docs":{},"可":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"不":{"docs":{},"做":{"docs":{},"任":{"docs":{},"何":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{},"此":{"docs":{},"时":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"会":{"docs":{},"返":{"docs":{},"回":{"docs":{},"一":{"docs":{},"个":{"docs":{},"默":{"docs":{},"认":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"页":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"返":{"docs":{},"回":{"docs":{},"n":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0014738393515106854}}}}}}}}}}}}}},"同":{"docs":{},"安":{"docs":{},"卓":{"docs":{},"系":{"docs":{},"统":{"docs":{},"支":{"docs":{},"持":{"docs":{},"安":{"docs":{},"装":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"文":{"docs":{},"件":{"docs":{},"类":{"docs":{},"型":{"docs":{},"不":{"docs":{},"尽":{"docs":{},"相":{"docs":{},"同":{"docs":{},",":{"docs":{},"大":{"docs":{},"多":{"docs":{},"支":{"docs":{},"持":{"docs":{},"安":{"docs":{},"装":{"docs":{},"拓":{"docs":{},"展":{"docs":{},"名":{"docs":{},"为":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"启":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"代":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}},"中":{"docs":{},"把":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"证":{"docs":{},"书":{"docs":{},"的":{"docs":{},"开":{"docs":{},"关":{"docs":{},"打":{"docs":{},"开":{"docs":{},",":{"docs":{},"否":{"docs":{},"则":{"docs":{},"s":{"docs":{},"a":{"docs":{},"f":{"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"将":{"docs":{},"报":{"docs":{},"错":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"文":{"docs":{},"文":{"docs":{},"档":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}},"为":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}},"什":{"docs":{},"么":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"能":{"docs":{},"进":{"docs":{},"入":{"docs":{},"处":{"docs":{},"理":{"docs":{},"函":{"docs":{},"数":{"docs":{},"?":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}},"主":{"docs":{},"要":{"docs":{},"特":{"docs":{},"性":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"举":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}},",":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},":":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"从":{"docs":{},"s":{"docs":{},"d":{"docs":{},"卡":{"docs":{},"安":{"docs":{},"装":{"docs":{},"证":{"docs":{},"书":{"docs":{},"。":{"docs":{},"找":{"docs":{},"到":{"docs":{},"你":{"docs":{},"下":{"docs":{},"载":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"进":{"docs":{},"行":{"docs":{},"安":{"docs":{},"装":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}},"存":{"docs":{},"储":{"docs":{},"设":{"docs":{},"备":{"docs":{},"安":{"docs":{},"装":{"docs":{},"。":{"docs":{},"找":{"docs":{},"到":{"docs":{},"你":{"docs":{},"下":{"docs":{},"载":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"进":{"docs":{},"行":{"docs":{},"安":{"docs":{},"装":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"理":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"发":{"docs":{},"生":{"docs":{},"错":{"docs":{},"误":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"启":{"docs":{},"动":{"docs":{},"完":{"docs":{},"成":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"都":{"docs":{},"在":{"docs":{},"w":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"设":{"docs":{},"置":{"docs":{},"中":{"docs":{},"配":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},"以":{"docs":{},"c":{"docs":{},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"的":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"y":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"插":{"docs":{},"件":{"docs":{},"为":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}},"下":{"docs":{},"任":{"docs":{},"意":{"docs":{},"一":{"docs":{},"项":{"docs":{},"都":{"docs":{},"能":{"docs":{},"用":{"docs":{},"来":{"docs":{},"改":{"docs":{},"变":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"的":{"docs":{},"处":{"docs":{},"理":{"docs":{},"特":{"docs":{},"性":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}},"几":{"docs":{},"种":{"docs":{},"返":{"docs":{},"回":{"docs":{},"都":{"docs":{},"是":{"docs":{},"合":{"docs":{},"法":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.002210759027266028}}}}}}}}}}}}},"作":{"docs":{},"为":{"docs":{},"n":{"docs":{},"p":{"docs":{},"m":{"docs":{},"模":{"docs":{},"块":{"docs":{},"使":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"全":{"docs":{},"局":{"docs":{},"模":{"docs":{},"块":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}},"你":{"docs":{},"可":{"docs":{},"以":{"docs":{},"通":{"docs":{},"过":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"使":{"docs":{},"用":{"docs":{},"n":{"docs":{},"p":{"docs":{},"m":{"docs":{},"包":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"举":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"在":{"docs":{},"线":{"docs":{},"地":{"docs":{},"址":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"本":{"docs":{},"地":{"docs":{},"数":{"docs":{},"据":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"路":{"docs":{},"径":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"修":{"docs":{},"改":{"docs":{},"发":{"docs":{},"送":{"docs":{},"到":{"docs":{"./":{"ref":"./","tf":0.0014738393515106854}}}}},"请":{"docs":{},"求":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"协":{"docs":{},"议":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}},",":{"docs":{},"如":{"docs":{},"强":{"docs":{},"制":{"docs":{},"改":{"docs":{},"用":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"发":{"docs":{},"起":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}},"参":{"docs":{},"数":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"头":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"数":{"docs":{},"据":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"的":{"docs":{},"目":{"docs":{},"标":{"docs":{},"地":{"docs":{},"址":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"内":{"docs":{},"容":{"docs":{},"并":{"docs":{},"延":{"docs":{},"迟":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"头":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}},"关":{"docs":{},"闭":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"全":{"docs":{},"局":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}},"其":{"docs":{},"他":{"docs":{},"命":{"docs":{},"令":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"创":{"docs":{},"建":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"加":{"docs":{},"密":{"docs":{},"与":{"docs":{},"凭":{"docs":{},"据":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"即":{"docs":{},"将":{"docs":{},"发":{"docs":{},"送":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"供":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"(":{"docs":{},"'":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"'":{"docs":{},")":{"docs":{},".":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"作":{"docs":{},"为":{"docs":{},"使":{"docs":{},"用":{"docs":{},"。":{"docs":{},"详":{"docs":{},"见":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"j":{"docs":{},"s":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{},"/":{"docs":{},"a":{"docs":{},"p":{"docs":{},"i":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},".":{"docs":{},"h":{"docs":{},"t":{"docs":{},"m":{"docs":{},"l":{"docs":{},"#":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"_":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"_":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"原":{"docs":{},"始":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"返":{"docs":{},"回":{"docs":{},"对":{"docs":{},"象":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},"双":{"docs":{},"击":{"docs":{},"打":{"docs":{},"开":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}},"发":{"docs":{},"送":{"docs":{},"响":{"docs":{},"应":{"docs":{},"前":{"docs":{},"处":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"请":{"docs":{},"求":{"docs":{},"前":{"docs":{},"拦":{"docs":{},"截":{"docs":{},"处":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}},"只":{"docs":{},"有":{"docs":{},"返":{"docs":{},"回":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},"时":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"才":{"docs":{},"会":{"docs":{},"尝":{"docs":{},"试":{"docs":{},"替":{"docs":{},"换":{"docs":{},"证":{"docs":{},"书":{"docs":{},"、":{"docs":{},"解":{"docs":{},"析":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"。":{"docs":{},"否":{"docs":{},"则":{"docs":{},"只":{"docs":{},"做":{"docs":{},"数":{"docs":{},"据":{"docs":{},"流":{"docs":{},"转":{"docs":{},"发":{"docs":{},",":{"docs":{},"无":{"docs":{},"法":{"docs":{},"看":{"docs":{},"到":{"docs":{},"明":{"docs":{},"文":{"docs":{},"数":{"docs":{},"据":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"函":{"docs":{},"数":{"docs":{},",":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"普":{"docs":{},"通":{"docs":{},"的":{"docs":{},"字":{"docs":{},"符":{"docs":{},"串":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}},"修":{"docs":{},"改":{"docs":{},"内":{"docs":{},"容":{"docs":{},"包":{"docs":{},"括":{"docs":{},"请":{"docs":{},"求":{"docs":{},"头":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}},"的":{"docs":{},"内":{"docs":{},"容":{"docs":{},"包":{"docs":{},"括":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}},"同":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"中":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"中":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{"./":{"ref":"./","tf":0.0014738393515106854}}}}}}}}}}}}}}}}}}}}}}}},"启":{"docs":{},"动":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},",":{"docs":{},"加":{"docs":{},"载":{"docs":{},"规":{"docs":{},"则":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"后":{"docs":{},"将":{"docs":{},"终":{"docs":{},"端":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"配":{"docs":{},"置":{"docs":{},"为":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"0":{"1":{"docs":{},"即":{"docs":{},"可":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}},"命":{"docs":{},"令":{"docs":{},"行":{"docs":{},"启":{"docs":{},"动":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"时":{"docs":{},"配":{"docs":{},"置":{"docs":{},"`":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"端":{"docs":{},"口":{"docs":{},"号":{"8":{"0":{"0":{"1":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"启":{"docs":{},"动":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"在":{"docs":{"./":{"ref":"./","tf":0.0014738393515106854}},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"j":{"docs":{},"s":{"docs":{},"代":{"docs":{},"码":{"docs":{},"中":{"docs":{},"启":{"docs":{},"动":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{},"高":{"docs":{},"级":{"docs":{},"设":{"docs":{},"置":{"docs":{},"中":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"代":{"docs":{},"理":{"docs":{},"即":{"docs":{},"可":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"构":{"docs":{},"造":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"实":{"docs":{},"例":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},",":{"docs":{},"传":{"docs":{},"入":{"docs":{},"参":{"docs":{},"数":{"docs":{},"d":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"s":{"docs":{},"l":{"docs":{},"y":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"u":{"docs":{},"n":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"处":{"docs":{},"理":{"docs":{},"过":{"docs":{},"程":{"docs":{},"中":{"docs":{},"发":{"docs":{},"生":{"docs":{},"错":{"docs":{},"误":{"docs":{},"时":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"会":{"docs":{},"调":{"docs":{},"用":{"docs":{},"o":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"并":{"docs":{},"提":{"docs":{},"供":{"docs":{},"对":{"docs":{},"应":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"信":{"docs":{},"息":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"基":{"docs":{},"于":{"docs":{},"n":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},".":{"docs":{},"j":{"docs":{},"s":{"docs":{},",":{"docs":{},"开":{"docs":{},"放":{"docs":{},"二":{"docs":{},"次":{"docs":{},"开":{"docs":{},"发":{"docs":{},"能":{"docs":{},"力":{"docs":{},",":{"docs":{},"允":{"docs":{},"许":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"请":{"docs":{},"求":{"docs":{},"处":{"docs":{},"理":{"docs":{},"逻":{"docs":{},"辑":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"流":{"docs":{},"程":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}},"图":{"docs":{},"如":{"docs":{},"下":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"多":{"docs":{},"数":{"docs":{},"场":{"docs":{},"景":{"docs":{},"下":{"docs":{},",":{"docs":{},"错":{"docs":{},"误":{"docs":{},"会":{"docs":{},"在":{"docs":{},"请":{"docs":{},"求":{"docs":{},"目":{"docs":{},"标":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"的":{"docs":{},"时":{"docs":{},"候":{"docs":{},"发":{"docs":{},"生":{"docs":{},",":{"docs":{},"比":{"docs":{},"如":{"docs":{},"d":{"docs":{},"n":{"docs":{},"s":{"docs":{},"解":{"docs":{},"析":{"docs":{},"失":{"docs":{},"败":{"docs":{},"、":{"docs":{},"请":{"docs":{},"求":{"docs":{},"超":{"docs":{},"时":{"docs":{},"等":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"如":{"docs":{},"下":{"docs":{},"几":{"docs":{},"种":{"docs":{},"方":{"docs":{},"案":{"docs":{},"都":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"来":{"docs":{},"引":{"docs":{},"用":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"何":{"docs":{},"引":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"果":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"返":{"docs":{},"回":{"docs":{},"了":{"docs":{},"响":{"docs":{},"应":{"docs":{},"内":{"docs":{},"容":{"docs":{},",":{"docs":{},"则":{"docs":{},"立":{"docs":{},"即":{"docs":{},"把":{"docs":{},"此":{"docs":{},"响":{"docs":{},"应":{"docs":{},"返":{"docs":{},"回":{"docs":{},"到":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"(":{"docs":{},"而":{"docs":{},"不":{"docs":{},"再":{"docs":{},"发":{"docs":{},"送":{"docs":{},"到":{"docs":{},"真":{"docs":{},"正":{"docs":{},"的":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},")":{"docs":{},",":{"docs":{},"流":{"docs":{},"程":{"docs":{},"结":{"docs":{},"束":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{},"了":{"docs":{},"全":{"docs":{},"局":{"docs":{},"解":{"docs":{},"析":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"的":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"则":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"会":{"docs":{},"略":{"docs":{},"过":{"docs":{},"这":{"docs":{},"个":{"docs":{},"调":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"要":{"docs":{},"启":{"docs":{},"用":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"解":{"docs":{},"析":{"docs":{},",":{"docs":{},"请":{"docs":{},"在":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"启":{"docs":{},"动":{"docs":{},"前":{"docs":{},"自":{"docs":{},"行":{"docs":{},"调":{"docs":{},"用":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},".":{"docs":{},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"s":{"docs":{},".":{"docs":{},"c":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"m":{"docs":{},"g":{"docs":{},"r":{"docs":{},"相":{"docs":{},"关":{"docs":{},"方":{"docs":{},"法":{"docs":{},"生":{"docs":{},"成":{"docs":{},"证":{"docs":{},"书":{"docs":{},",":{"docs":{},"并":{"docs":{},"引":{"docs":{},"导":{"docs":{},"用":{"docs":{},"户":{"docs":{},"信":{"docs":{},"任":{"docs":{},"安":{"docs":{},"装":{"docs":{},"。":{"docs":{},"或":{"docs":{},"引":{"docs":{},"导":{"docs":{},"用":{"docs":{},"户":{"docs":{},"使":{"docs":{},"用":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"安":{"docs":{},"全":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}},"性":{"docs":{},"与":{"docs":{},"位":{"docs":{},"置":{"docs":{},"信":{"docs":{},"息":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"卓":{"docs":{},"系":{"docs":{},"统":{"docs":{},"信":{"docs":{},"任":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}},"装":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}},"c":{"docs":{},"a":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"对":{"docs":{},"于":{"docs":{},"d":{"docs":{},"e":{"docs":{},"b":{"docs":{},"i":{"docs":{},"a":{"docs":{},"n":{"docs":{},"或":{"docs":{},"者":{"docs":{},"u":{"docs":{},"b":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"u":{"docs":{},"系":{"docs":{},"统":{"docs":{},",":{"docs":{},"在":{"docs":{},"安":{"docs":{},"装":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"之":{"docs":{},"前":{"docs":{},",":{"docs":{},"可":{"docs":{},"能":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"安":{"docs":{},"装":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"发":{"docs":{},"示":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"引":{"docs":{},"入":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"当":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"请":{"docs":{},"求":{"docs":{},"经":{"docs":{},"过":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"时":{"docs":{},",":{"docs":{},"具":{"docs":{},"体":{"docs":{},"处":{"docs":{},"理":{"docs":{},"过":{"docs":{},"程":{"docs":{},"是":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"收":{"docs":{},"到":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},"时":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"可":{"docs":{},"以":{"docs":{},"替":{"docs":{},"换":{"docs":{},"证":{"docs":{},"书":{"docs":{},",":{"docs":{},"对":{"docs":{},"请":{"docs":{},"求":{"docs":{},"做":{"docs":{},"明":{"docs":{},"文":{"docs":{},"解":{"docs":{},"析":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"启":{"docs":{},"用":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"代":{"docs":{},"理":{"docs":{},"时":{"docs":{},",":{"docs":{},"w":{"docs":{},"s":{"docs":{},"s":{"docs":{},"也":{"docs":{},"会":{"docs":{},"被":{"docs":{},"代":{"docs":{},"理":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"不":{"docs":{},"会":{"docs":{},"被":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"记":{"docs":{},"录":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"开":{"docs":{},"启":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"访":{"docs":{},"问":{"docs":{},"特":{"docs":{},"定":{"docs":{},"的":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"站":{"docs":{},"点":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"会":{"docs":{},"提":{"docs":{},"示":{"docs":{},"该":{"docs":{},"站":{"docs":{},"点":{"docs":{},"不":{"docs":{},"是":{"docs":{},"一":{"docs":{},"个":{"docs":{},"安":{"docs":{},"全":{"docs":{},"的":{"docs":{},"网":{"docs":{},"站":{"docs":{},",":{"docs":{},"这":{"docs":{},"通":{"docs":{},"常":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"站":{"docs":{},"点":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"设":{"docs":{},"置":{"docs":{},"不":{"docs":{},"能":{"docs":{},"被":{"docs":{},"正":{"docs":{},"确":{"docs":{},"识":{"docs":{},"别":{"docs":{},"导":{"docs":{},"致":{"docs":{},"的":{"docs":{},"(":{"docs":{},"比":{"docs":{},"如":{"docs":{},",":{"docs":{},"站":{"docs":{},"点":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"是":{"docs":{},"自":{"docs":{},"签":{"docs":{},"发":{"docs":{},"的":{"docs":{},")":{"docs":{},"。":{"docs":{},"如":{"docs":{},"果":{"docs":{},"您":{"docs":{},"信":{"docs":{},"任":{"docs":{},"该":{"docs":{},"网":{"docs":{},"站":{"docs":{},",":{"docs":{},"可":{"docs":{},"以":{"docs":{},"用":{"docs":{},"以":{"docs":{},"下":{"docs":{},"方":{"docs":{},"式":{"docs":{},"来":{"docs":{},"继":{"docs":{},"续":{"docs":{},"访":{"docs":{},"问":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"选":{"docs":{},",":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"端":{"docs":{},"口":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},"快":{"docs":{},"速":{"docs":{},"开":{"docs":{},"始":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"我":{"docs":{},"们":{"docs":{},"自":{"docs":{},"然":{"docs":{},"也":{"docs":{},"可":{"docs":{},"以":{"docs":{},"借":{"docs":{},"助":{"docs":{},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"来":{"docs":{},"实":{"docs":{},"现":{"docs":{},"这":{"docs":{},"个":{"docs":{},"效":{"docs":{},"果":{"docs":{},",":{"docs":{},"而":{"docs":{},"且":{"docs":{},"我":{"docs":{},"们":{"docs":{},"还":{"docs":{},"可":{"docs":{},"以":{"docs":{},"控":{"docs":{},"制":{"docs":{},"到":{"docs":{},"只":{"docs":{},"允":{"docs":{},"许":{"docs":{},"指":{"docs":{},"定":{"docs":{},"网":{"docs":{},"址":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"对":{"docs":{},"不":{"docs":{},"在":{"docs":{},"列":{"docs":{},"表":{"docs":{},"的":{"docs":{},"网":{"docs":{},"址":{"docs":{},",":{"docs":{},"进":{"docs":{},"行":{"docs":{},"证":{"docs":{},"书":{"docs":{},"的":{"docs":{},"强":{"docs":{},"验":{"docs":{},"证":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{},".":{"docs":{},"o":{"docs":{},"r":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"找":{"docs":{},"到":{"docs":{},"刚":{"docs":{},"刚":{"docs":{},"导":{"docs":{},"入":{"docs":{},"的":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"证":{"docs":{},"书":{"docs":{},",":{"docs":{},"配":{"docs":{},"置":{"docs":{},"为":{"docs":{},"信":{"docs":{},"任":{"docs":{},"(":{"docs":{},"a":{"docs":{},"l":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"把":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}},"响":{"docs":{},"应":{"docs":{},"信":{"docs":{},"息":{"docs":{},"返":{"docs":{},"回":{"docs":{},"给":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},"所":{"docs":{},"有":{"docs":{},"发":{"docs":{},"送":{"docs":{},"到":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"用":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"协":{"docs":{},"议":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"拦":{"docs":{},"截":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"对":{"docs":{},"内":{"docs":{},"容":{"docs":{},"做":{"docs":{},"修":{"docs":{},"改":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}},"发":{"docs":{},"送":{"docs":{},"到":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"并":{"docs":{},"修":{"docs":{},"改":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"响":{"docs":{},"应":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"正":{"docs":{},"在":{"docs":{},"发":{"docs":{},"送":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}},"提":{"docs":{},"供":{"docs":{},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"界":{"docs":{},"面":{"docs":{},",":{"docs":{},"用":{"docs":{},"以":{"docs":{},"观":{"docs":{},"察":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}},"了":{"docs":{},"多":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"可":{"docs":{},"在":{"docs":{},"下":{"docs":{},"载":{"docs":{},"安":{"docs":{},"装":{"docs":{},"时":{"docs":{},"选":{"docs":{},"择":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"支":{"docs":{},"持":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"的":{"docs":{},"解":{"docs":{},"析":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},"收":{"docs":{},"集":{"docs":{},"请":{"docs":{},"求":{"docs":{},"所":{"docs":{},"有":{"docs":{},"请":{"docs":{},"求":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"改":{"docs":{},"成":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"并":{"docs":{},"发":{"docs":{},"送":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},"文":{"docs":{},"件":{"docs":{},"(":{"docs":{},"已":{"docs":{},"知":{"docs":{},"如":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}},"时":{"docs":{},",":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"参":{"docs":{},"数":{"docs":{},"内":{"docs":{},"容":{"docs":{},"大":{"docs":{},"致":{"docs":{},"如":{"docs":{},"下":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"参":{"docs":{},"数":{"docs":{},"内":{"docs":{},"容":{"docs":{},"大":{"docs":{},"致":{"docs":{},"如":{"docs":{},"下":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"否":{"docs":{},"启":{"docs":{},"用":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{},"版":{"docs":{},"界":{"docs":{},"面":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}},"处":{"docs":{},"理":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}},"屏":{"docs":{},"蔽":{"docs":{},"所":{"docs":{},"有":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"输":{"docs":{},"出":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"开":{"docs":{},"启":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"代":{"docs":{},"理":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"强":{"docs":{},"制":{"docs":{},"拦":{"docs":{},"截":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},",":{"docs":{},"忽":{"docs":{},"略":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"忽":{"docs":{},"略":{"docs":{},"请":{"docs":{},"求":{"docs":{},"中":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"错":{"docs":{},"误":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"f":{"docs":{},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}},"必":{"docs":{},"选":{"docs":{},"字":{"docs":{},"段":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"本":{"docs":{},"文":{"docs":{},"档":{"docs":{},"的":{"docs":{},"适":{"docs":{},"用":{"docs":{},"范":{"docs":{},"围":{"docs":{},"是":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},"质":{"docs":{},"是":{"docs":{},"中":{"docs":{},"间":{"docs":{},"人":{"docs":{},"攻":{"docs":{},"击":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}},"来":{"docs":{},"加":{"docs":{},"载":{"docs":{},"模":{"docs":{},"块":{"docs":{},"并":{"docs":{},"体":{"docs":{},"验":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"忽":{"docs":{},"略":{"docs":{},"证":{"docs":{},"书":{"docs":{},"认":{"docs":{},"证":{"docs":{},"的":{"docs":{},"错":{"docs":{},"误":{"docs":{},"。":{"docs":{},"需":{"docs":{},"要":{"docs":{},"注":{"docs":{},"意":{"docs":{},"的":{"docs":{},"是":{"docs":{},",":{"docs":{},"该":{"docs":{},"参":{"docs":{},"数":{"docs":{},"是":{"docs":{},"全":{"docs":{},"局":{"docs":{},"生":{"docs":{},"效":{"docs":{},"的":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"你":{"docs":{},"在":{"docs":{},"此":{"docs":{},"期":{"docs":{},"间":{"docs":{},"访":{"docs":{},"问":{"docs":{},"了":{"docs":{},"其":{"docs":{},"他":{"docs":{},"未":{"docs":{},"知":{"docs":{},"的":{"docs":{},"网":{"docs":{},"站":{"docs":{},",":{"docs":{},"他":{"docs":{},"们":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"问":{"docs":{},"题":{"docs":{},"也":{"docs":{},"会":{"docs":{},"被":{"docs":{},"忽":{"docs":{},"略":{"docs":{},",":{"docs":{},"这":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"带":{"docs":{},"来":{"docs":{},"安":{"docs":{},"全":{"docs":{},"隐":{"docs":{},"患":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"查":{"docs":{},"看":{"docs":{},"请":{"docs":{},"求":{"docs":{},"信":{"docs":{},"息":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}},"校":{"docs":{},"验":{"docs":{},"系":{"docs":{},"统":{"docs":{},"内":{"docs":{},"是":{"docs":{},"否":{"docs":{},"存":{"docs":{},"在":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"的":{"docs":{},"根":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}},"样":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"根":{"docs":{},"据":{"docs":{},"请":{"docs":{},"求":{"docs":{},"参":{"docs":{},"数":{"docs":{},",":{"docs":{},"向":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"发":{"docs":{},"出":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"接":{"docs":{},"收":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"响":{"docs":{},"应":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}},"模":{"docs":{},"块":{"docs":{},"介":{"docs":{},"绍":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"此":{"docs":{},"处":{"docs":{},"无":{"docs":{},"法":{"docs":{},"控":{"docs":{},"制":{"docs":{},"向":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"无":{"docs":{},"需":{"docs":{},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}},"注":{"docs":{},"意":{"docs":{},":":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"引":{"docs":{},"用":{"docs":{},"规":{"docs":{},"则":{"docs":{},"前":{"docs":{},",":{"docs":{},"请":{"docs":{},"务":{"docs":{},"必":{"docs":{},"确":{"docs":{},"保":{"docs":{},"文":{"docs":{},"件":{"docs":{},"来":{"docs":{},"源":{"docs":{},"可":{"docs":{},"靠":{"docs":{},",":{"docs":{},"以":{"docs":{},"免":{"docs":{},"发":{"docs":{},"生":{"docs":{},"安":{"docs":{},"全":{"docs":{},"问":{"docs":{},"题":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{},"规":{"docs":{},"则":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"访":{"docs":{},"问":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"0":{"2":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}},"点":{"docs":{},"击":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"然":{"docs":{},"后":{"docs":{},",":{"docs":{},"安":{"docs":{},"装":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}},"生":{"docs":{},"成":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"的":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},",":{"docs":{},"完":{"docs":{},"成":{"docs":{},"后":{"docs":{},"请":{"docs":{},"引":{"docs":{},"导":{"docs":{},"用":{"docs":{},"户":{"docs":{},"信":{"docs":{},"任":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"t":{"docs":{},"文":{"docs":{},"件":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"证":{"docs":{},"书":{"docs":{},"并":{"docs":{},"解":{"docs":{},"析":{"docs":{},"所":{"docs":{},"有":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},"用":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"发":{"docs":{},"请":{"docs":{},"求":{"docs":{},"测":{"docs":{},"试":{"docs":{},"的":{"docs":{},"方":{"docs":{},"法":{"docs":{},"如":{"docs":{},"下":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},"测":{"docs":{},"试":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"测":{"docs":{},"试":{"docs":{},":":{"docs":{},"配":{"docs":{},"置":{"docs":{},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"代":{"docs":{},"理":{"docs":{},"为":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}},"的":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},"会":{"docs":{},"被":{"docs":{},"解":{"docs":{},"析":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"数":{"docs":{},"据":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}},"u":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"证":{"docs":{},"书":{"docs":{},"文":{"docs":{},"件":{"docs":{},",":{"docs":{},"少":{"docs":{},"部":{"docs":{},"分":{"docs":{},"仅":{"docs":{},"支":{"docs":{},"持":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"请":{"docs":{},"求":{"docs":{},"全":{"docs":{},"部":{"docs":{},"改":{"docs":{},"到":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},",":{"docs":{},"使":{"docs":{},"用":{"docs":{},"本":{"docs":{},"地":{"docs":{},"数":{"docs":{},"据":{"docs":{},"代":{"docs":{},"替":{"docs":{},"服":{"docs":{},"务":{"docs":{},"端":{"docs":{},"返":{"docs":{},"回":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{},"里":{"docs":{},"加":{"docs":{},"上":{"docs":{},"测":{"docs":{},"试":{"docs":{},"信":{"docs":{},"息":{"docs":{},",":{"docs":{},"并":{"docs":{},"延":{"docs":{},"迟":{"5":{"docs":{},"秒":{"docs":{},"返":{"docs":{},"回":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"docs":{}}}}}}}}}}}}},"头":{"docs":{},"里":{"docs":{},"加":{"docs":{},"上":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"最":{"docs":{},"后":{"docs":{},"追":{"docs":{},"加":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"的":{"docs":{},"签":{"docs":{},"名":{"docs":{},",":{"docs":{},"并":{"docs":{},"延":{"docs":{},"迟":{"5":{"docs":{},"秒":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"状":{"docs":{},"态":{"docs":{},"码":{"docs":{},"都":{"docs":{},"改":{"docs":{},"成":{"4":{"0":{"4":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"直":{"docs":{},"接":{"docs":{},"请":{"docs":{},"求":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"客":{"docs":{},"户":{"docs":{},"端":{"docs":{},",":{"docs":{},"不":{"docs":{},"再":{"docs":{},"发":{"docs":{},"起":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"其":{"docs":{},"中":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}},"相":{"docs":{},"比":{"3":{"docs":{},".":{"docs":{},"x":{"docs":{},"版":{"docs":{},"本":{"docs":{},",":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}},"docs":{}}},"确":{"docs":{},"认":{"docs":{},"将":{"docs":{},"证":{"docs":{},"书":{"docs":{},"添":{"docs":{},"加":{"docs":{},"到":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{},"或":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"示":{"docs":{},"例":{"docs":{"./":{"ref":"./","tf":0.0029476787030213707}}}},"简":{"docs":{},"介":{"docs":{"./":{"ref":"./","tf":10}}},"化":{"docs":{},"了":{"docs":{},"规":{"docs":{},"则":{"docs":{},"文":{"docs":{},"件":{"docs":{},"内":{"docs":{},"的":{"docs":{},"接":{"docs":{},"口":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"管":{"docs":{},"理":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"系":{"docs":{},"统":{"docs":{},"的":{"docs":{},"全":{"docs":{},"局":{"docs":{},"代":{"docs":{},"理":{"docs":{},"配":{"docs":{},"置":{"docs":{},",":{"docs":{},"方":{"docs":{},"法":{"docs":{},"调":{"docs":{},"用":{"docs":{},"时":{"docs":{},"可":{"docs":{},"能":{"docs":{},"会":{"docs":{},"弹":{"docs":{},"出":{"docs":{},"密":{"docs":{},"码":{"docs":{},"框":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}},"类":{"docs":{},"似":{"docs":{},"这":{"docs":{},"种":{"docs":{},"报":{"docs":{},"错":{"docs":{},"都":{"docs":{},"是":{"docs":{},"因":{"docs":{},"为":{"docs":{},"系":{"docs":{},"统":{"docs":{},"没":{"docs":{},"有":{"docs":{},"信":{"docs":{},"任":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"生":{"docs":{},"成":{"docs":{},"的":{"docs":{},"c":{"docs":{},"a":{"docs":{},"所":{"docs":{},"造":{"docs":{},"成":{"docs":{},"的":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"经":{"docs":{},"过":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"后":{"docs":{},",":{"docs":{},"期":{"docs":{},"望":{"docs":{},"的":{"docs":{},"返":{"docs":{},"回":{"docs":{},"如":{"docs":{},"下":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"被":{"docs":{},"明":{"docs":{},"文":{"docs":{},"解":{"docs":{},"析":{"docs":{},"后":{"docs":{},"的":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"处":{"docs":{},"理":{"docs":{},"流":{"docs":{},"程":{"docs":{},"同":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"一":{"docs":{},"致":{"docs":{},"。":{"docs":{},"未":{"docs":{},"明":{"docs":{},"文":{"docs":{},"解":{"docs":{},"析":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"会":{"docs":{},"再":{"docs":{},"进":{"docs":{},"入":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},"做":{"docs":{},"处":{"docs":{},"理":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"规":{"docs":{},"则":{"docs":{},"文":{"docs":{},"件":{"docs":{},"中":{"docs":{},",":{"docs":{},"除":{"docs":{},"了":{"docs":{},"s":{"docs":{},"u":{"docs":{},"m":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},",":{"docs":{},"都":{"docs":{},"是":{"docs":{},"由":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}},"内":{"docs":{},"提":{"docs":{},"供":{"docs":{},"`":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"`":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"返":{"docs":{},"回":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},")":{"docs":{},"全":{"docs":{},"面":{"docs":{},"支":{"docs":{},"持":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"和":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}},"模":{"docs":{},"块":{"docs":{},"应":{"docs":{},"该":{"docs":{},"符":{"docs":{},"合":{"docs":{},"c":{"docs":{},"m":{"docs":{},"d":{"docs":{},"规":{"docs":{},"范":{"docs":{},",":{"docs":{},"一":{"docs":{},"个":{"docs":{},"典":{"docs":{},"型":{"docs":{},"的":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},"代":{"docs":{},"码":{"docs":{},"结":{"docs":{},"构":{"docs":{},"如":{"docs":{},"下":{"docs":{},"。":{"docs":{},"模":{"docs":{},"块":{"docs":{},"中":{"docs":{},"所":{"docs":{},"有":{"docs":{},"方":{"docs":{},"法":{"docs":{},"都":{"docs":{},"是":{"docs":{},"可":{"docs":{},"选":{"docs":{},"的":{"docs":{},",":{"docs":{},"只":{"docs":{},"需":{"docs":{},"实":{"docs":{},"现":{"docs":{},"业":{"docs":{},"务":{"docs":{},"感":{"docs":{},"兴":{"docs":{},"趣":{"docs":{},"的":{"docs":{},"部":{"docs":{},"分":{"docs":{},"即":{"docs":{},"可":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"是":{"docs":{},"用":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"的":{"docs":{},"介":{"docs":{},"绍":{"docs":{},"文":{"docs":{},"案":{"docs":{},",":{"docs":{},"用":{"docs":{},"于":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},"提":{"docs":{},"示":{"docs":{},"用":{"docs":{},"户":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}},"能":{"docs":{},"力":{"docs":{},"范":{"docs":{},"围":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}},"解":{"docs":{},"析":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"请":{"docs":{},"求":{"docs":{},"的":{"docs":{},"原":{"docs":{},"理":{"docs":{},"是":{"docs":{},"中":{"docs":{},"间":{"docs":{},"人":{"docs":{},"攻":{"docs":{},"击":{"docs":{},"(":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}},"警":{"docs":{},"告":{"docs":{},":":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{},"和":{"docs":{},"系":{"docs":{},"统":{"docs":{},"安":{"docs":{},"全":{"docs":{},"息":{"docs":{},"息":{"docs":{},"相":{"docs":{},"关":{"docs":{},",":{"docs":{},"建":{"docs":{},"议":{"docs":{},"亲":{"docs":{},"自":{"docs":{},"生":{"docs":{},"成":{"docs":{},",":{"docs":{},"并":{"docs":{},"妥":{"docs":{},"善":{"docs":{},"保":{"docs":{},"管":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"设":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.002210759027266028}},"属":{"docs":{},"性":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"访":{"docs":{},"问":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"0":{"2":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}},"证":{"docs":{},"书":{"docs":{},"下":{"docs":{},"载":{"docs":{},"到":{"docs":{},"指":{"docs":{},"定":{"docs":{},"目":{"docs":{},"录":{"docs":{},"后":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"从":{"docs":{},"其":{"docs":{},"他":{"docs":{},"入":{"docs":{},"口":{"docs":{},"进":{"docs":{},"行":{"docs":{},"安":{"docs":{},"装":{"docs":{},",":{"docs":{},"包":{"docs":{},"括":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"请":{"docs":{},"求":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}},"使":{"docs":{},"用":{"docs":{},"的":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"或":{"docs":{},"者":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},"出":{"docs":{},"错":{"docs":{},"的":{"docs":{},"事":{"docs":{},"件":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"的":{"docs":{},"原":{"docs":{},"始":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0014738393515106854}}}}}}}}}}}},"目":{"docs":{},"标":{"docs":{},"的":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},",":{"docs":{},"受":{"docs":{},"制":{"docs":{},"于":{"docs":{},"协":{"docs":{},"议":{"docs":{},",":{"docs":{},"这":{"docs":{},"里":{"docs":{},"无":{"docs":{},"法":{"docs":{},"获":{"docs":{},"取":{"docs":{},"完":{"docs":{},"整":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"调":{"docs":{},"用":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},"b":{"docs":{},"e":{"docs":{},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"如":{"docs":{},"果":{"docs":{},"返":{"docs":{},"回":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"e":{"docs":{},",":{"docs":{},"会":{"docs":{},"明":{"docs":{},"文":{"docs":{},"解":{"docs":{},"析":{"docs":{},"这":{"docs":{},"个":{"docs":{},"请":{"docs":{},"求":{"docs":{},",":{"docs":{},"其":{"docs":{},"他":{"docs":{},"请":{"docs":{},"求":{"docs":{},"不":{"docs":{},"处":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"e":{"docs":{},"方":{"docs":{},"法":{"docs":{},",":{"docs":{},"由":{"docs":{},"模":{"docs":{},"块":{"docs":{},"对":{"docs":{},"响":{"docs":{},"应":{"docs":{},"内":{"docs":{},"容":{"docs":{},"进":{"docs":{},"行":{"docs":{},"处":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"运":{"docs":{},"行":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}},"返":{"docs":{},"回":{"docs":{},"值":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"错":{"docs":{},"误":{"docs":{},"页":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}},"这":{"docs":{},"里":{"docs":{},"提":{"docs":{},"供":{"docs":{},"一":{"docs":{},"些":{"docs":{},"样":{"docs":{},"例":{"docs":{},",":{"docs":{},"来":{"docs":{},"讲":{"docs":{},"解":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},"的":{"docs":{},"常":{"docs":{},"见":{"docs":{},"用":{"docs":{},"法":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}},"通":{"docs":{},"过":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{},"请":{"docs":{},"求":{"docs":{},":":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}},"启":{"docs":{},"动":{"docs":{},"参":{"docs":{},"数":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}},"自":{"docs":{},"定":{"docs":{},"义":{"docs":{},"的":{"docs":{},"r":{"docs":{},"u":{"docs":{},"l":{"docs":{},"e":{"docs":{},"来":{"docs":{},"修":{"docs":{},"改":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"这":{"docs":{},"种":{"docs":{},"方":{"docs":{},"式":{"docs":{},"初":{"docs":{},"始":{"docs":{},"化":{"docs":{},"的":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},",":{"docs":{},"其":{"docs":{},"配":{"docs":{},"置":{"docs":{},"也":{"docs":{},"是":{"docs":{},"全":{"docs":{},"局":{"docs":{},"性":{"docs":{},"的":{"docs":{},",":{"docs":{},"所":{"docs":{},"有":{"docs":{},"网":{"docs":{},"站":{"docs":{},"的":{"docs":{},"证":{"docs":{},"书":{"docs":{},"问":{"docs":{},"题":{"docs":{},"都":{"docs":{},"会":{"docs":{},"被":{"docs":{},"忽":{"docs":{},"略":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"配":{"docs":{},"置":{"1":{"2":{"7":{"docs":{},".":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"docs":{},":":{"8":{"0":{"0":{"1":{"docs":{},"为":{"docs":{},"全":{"docs":{},"局":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"代":{"docs":{},"理":{"docs":{},"服":{"docs":{},"务":{"docs":{},"器":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}}},"docs":{}},"docs":{}},"docs":{},"i":{"docs":{},"o":{"docs":{},"s":{"docs":{},"/":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"r":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{},"系":{"docs":{},"统":{"docs":{},"代":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}},"o":{"docs":{},"s":{"docs":{},"x":{"docs":{},"系":{"docs":{},"统":{"docs":{},"代":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}},"启":{"docs":{},"动":{"docs":{},"端":{"docs":{},"口":{"docs":{},",":{"docs":{},"如":{"1":{"0":{"8":{"0":{"docs":{},"端":{"docs":{},"口":{"docs":{},"启":{"docs":{},"动":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}},"浏":{"docs":{},"览":{"docs":{},"器":{"docs":{},"h":{"docs":{},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"代":{"docs":{},"理":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"附":{"docs":{},"录":{"docs":{},":":{"docs":{},"如":{"docs":{},"何":{"docs":{},"信":{"docs":{},"任":{"docs":{},"c":{"docs":{},"a":{"docs":{},"证":{"docs":{},"书":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}},"限":{"docs":{},"速":{"docs":{},"值":{"docs":{},",":{"docs":{},"单":{"docs":{},"位":{"docs":{},"k":{"docs":{},"b":{"docs":{},"/":{"docs":{},"s":{"docs":{},",":{"docs":{},"默":{"docs":{},"认":{"docs":{},"不":{"docs":{},"限":{"docs":{},"速":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},"除":{"docs":{},"了":{"docs":{},"上":{"docs":{},"述":{"docs":{},"证":{"docs":{},"书":{"docs":{},"安":{"docs":{},"装":{"docs":{},"过":{"docs":{},"程":{"docs":{},",":{"docs":{},"还":{"docs":{},"需":{"docs":{},"要":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}},"需":{"docs":{},"要":{"docs":{},"编":{"docs":{},"写":{"docs":{},"一":{"docs":{},"个":{"docs":{},"规":{"docs":{},"则":{"docs":{},"模":{"docs":{},"块":{"docs":{},",":{"docs":{},"在":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}},"首":{"docs":{},"先":{"docs":{},"和":{"docs":{},"i":{"docs":{},"o":{"docs":{},"s":{"docs":{},"类":{"docs":{},"似":{"docs":{},",":{"docs":{},"需":{"docs":{},"要":{"docs":{},"先":{"docs":{},"扫":{"docs":{},"描":{"docs":{},"证":{"docs":{},"书":{"docs":{},"的":{"docs":{},"二":{"docs":{},"维":{"docs":{},"码":{"docs":{},"进":{"docs":{},"行":{"docs":{},"下":{"docs":{},"载":{"docs":{},"。":{"docs":{},"然":{"docs":{},"后":{"docs":{},"不":{"docs":{},"同":{"docs":{},"的":{"docs":{},"安":{"docs":{},"卓":{"docs":{},"系":{"docs":{},"统":{"docs":{},"安":{"docs":{},"装":{"docs":{},"证":{"docs":{},"书":{"docs":{},"的":{"docs":{},"方":{"docs":{},"式":{"docs":{},"可":{"docs":{},"能":{"docs":{},"有":{"docs":{},"所":{"docs":{},"不":{"docs":{},"同":{"docs":{},",":{"docs":{},"但":{"docs":{},"是":{"docs":{},"安":{"docs":{},"装":{"docs":{},"的":{"docs":{},"步":{"docs":{},"骤":{"docs":{},"是":{"docs":{},"类":{"docs":{},"似":{"docs":{},"的":{"docs":{},",":{"docs":{},"我":{"docs":{},"们":{"docs":{},"列":{"docs":{},"举":{"docs":{},"了":{"docs":{},"几":{"docs":{},"种":{"docs":{},"类":{"docs":{},"型":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"驱":{"docs":{},"动":{"docs":{},"的":{"docs":{},",":{"docs":{},"函":{"docs":{},"数":{"docs":{},"需":{"docs":{},"要":{"docs":{},"满":{"docs":{},"足":{"docs":{},"y":{"docs":{},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"。":{"docs":{},"可":{"docs":{},"以":{"docs":{},"使":{"docs":{},"用":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"方":{"docs":{},"法":{"docs":{},"或":{"docs":{},"是":{"docs":{},"返":{"docs":{},"回":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}},"返":{"docs":{},"回":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"或":{"docs":{},"使":{"docs":{},"用":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"函":{"docs":{},"数":{"docs":{},"。":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{},"界":{"docs":{},"面":{"docs":{},"上":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"所":{"docs":{},"有":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"信":{"docs":{},"息":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}}}},"界":{"docs":{},"面":{"docs":{},"上":{"docs":{},"能":{"docs":{},"看":{"docs":{},"到":{"docs":{},"刚":{"docs":{},"才":{"docs":{},"的":{"docs":{},"请":{"docs":{},"求":{"docs":{},"信":{"docs":{},"息":{"docs":{"./":{"ref":"./","tf":0.0007369196757553427}}}}}}}}}}}}}}}},",":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}},"[":{"docs":{},"s":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"y":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"g":{"docs":{},"a":{"docs":{},"]":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}}}}}},"j":{"docs":{},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}}}}}}}}}},"s":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},":":{"docs":{"./":{"ref":"./","tf":0.00044863167339614175}}}},"length":1376},"corpusTokens":["\"content","\"curl/7.43.0\"","\"data\":","\"https\"","\"i","\"thi","\"turn","\"user","\"x","#gener","#global","#launch","#local","#全局包","#启动anyproxy,并解析所有https请求","#本地包","#生成rootca证书,生成后需要手动信任","&","&&","'","'...'","'...',","'/',","'/index.html';","'/redirect/to/another/path';","'127.0.0.1'","'8001');","'8008';","';","'a","'anyproxy';","'anyproxy.io',","'anyproxy/0.0.0';","'application/json'","'cach","'close',","'content","'get',","'get';","'hello","'http',","'http';","'http://anyproxy.io/',","'http://httpbin.org/get?show_env=1'","'http://httpbin.org/us","'https'","'https',","'i","'image/gif',","'keep","'mi","'origin","'proxi","'rule","'text/html'","'thi","'user","'{\"hello\":","(!anyproxy.utils.certmgr.ifrootcafileexists())","(!error)","()","(e)","(iswin)","(requestdetail.url","(requestdetail.url.indexof('http://httpbin.org')","(requestdetail.url.indexof('http://httpbin.org/post')","(requestdetail.url.indexof('http://httpbin.org/us","(requestdetail.url.indexof('https://httpbin.org/us","(requestdetail.url.indexof('https://th","*/","*/}","*beforedealhttpsrequest(requestdetail)","*beforesendrequest(requestdetail)","*beforesendresponse(requestdetail,","*onconnecterror(requestdetail,","*onerror(requestdetail,","*true*","+=",",",".",".',","...","...,","./myrulepkg/","./rule.j",".cer",".crt","/*","//","//when","//这里也可以同时加上requestopt","/^win/.test(process.platform);","0)","1.","10.3","10.3信任ca证书","10000,","1080","127.0.0.1:8001","127.0.0.1:8001,","127.0.0.1:8001/index.html","127.0.0.1:8001,访问","1,write","1,编写规则","2,","2.","200,","3,","3.x:","4,","4.0的主要变化:","4.0,欢迎提供反馈","404","404;","443;","5","5000);","5s","80,","8001","8001,","8002","=","===","=>",">",">=",">关于本机",">证书信任设置",">通用","[switchyomega]","_re","_req","_req:","_res:","a:","abil","abliti","activ","add","address","advanc","advance.","agent","agent\":","agent'","agent')","agent':","agent']","agent,","alive',","all,","alway","android","anyprox","anyproxi","anyproxy',","anyproxy,","anyproxy.","anyproxy.io","anyproxy.io,","anyproxy.proxycore(options);","anyproxy.proxyserv","anyproxy.proxyserver(options)","anyproxy.proxyserver(options);","anyproxy.utils.certmgr","anyproxy.utils.certmgr.generaterootca((error,","anyproxy.utils.certmgr.generaterootca(callback)","anyproxy.utils.certmgr.ifrootcafileexists()","anyproxy.utils.systemproxymgr","anyproxy.utils.systemproxymgr.disableglobalproxy();","anyproxy.utils.systemproxymgr.enableglobalproxy('127.0.0.1',","anyproxyin","anyproxyins.start();","anyproxy使用require()加载本地规则,你可以在参数里传入一个本地的npm包路径,或是某个全局安装的npm包","anyproxy可以作为一个npm模块使用,整合进其他工具。","anyproxy向客户端发送请求前,会调用beforesendresponse,并带上参数requestdetail","anyproxy向服务端发送请求前,会调用beforesendrequest,并带上参数requestdetail","anyproxy在与目标https服务器建立连接的过程中,如果发生错误,anyproxy会调用这个方法","anyproxy提供了二次开发的能力,你可以用js编写自己的规则模块(rule),来自定义网络请求的处理逻辑。","anyproxy收到https请求时,会调用beforedealhttpsrequest,并带上参数requestdetail","anyproxy是一个开放式的http代理服务器。","anyproxy调用规则模块beforesendrequest方法,由模块做处理,返回新的请求参数,或返回响应内容","anyproxy默认不对https请求做处理,如需看到明文信息,需要配置ca证书","append","appendix:how","apt","as:","at',","attack","attack.","attack),需要客户端提前信任anyproxy生成的ca","automat","base","be","befor","beforedealhttpsrequest","beforedealhttpsrequest(requestdetail)","beforesendrequest","beforesendrequest(requestdetail)","beforesendrespons","beforesendresponse(requestdetail,","below,","below.","below:","besid","bodi","body,","body:","body三个字段","body等","body),甚至是请求的目标地址等","bonou","browser","browser.","by']","by:","by:anyproxi","ca","ca,","ca.","call","card,","caus","ca方法。","ca,按提示扫描二维码即可安装","cert","certdir","certdir);","certif","certificate.","certificates,","certificates.","certifyc","chang","chart","choos","chrome","class:","cli,","cli.","click","clicking,","client","client,","close","co","co.","code","code)、响应头(respons","code,","code.","collect","command","common","compat","config","config.","configur","connect","connection':","connection:","connections.","console,","console.error('error","console.log('th","const","content","content,","control':","couldn't","course.","creat","credenti","curl","curl:","custom","cwd:","d","dangerouslyignoreunauthor","dangerouslyignoreunauthorized:","dangerouslyignoreunauthorized:true,","data","data\"","data'","data',","deal","dealed.","deall","debian","decrypt","default","default.","defin","delay","demo","design","detect","determin","differ","directli","disabl","dn","doc","doubl","download","driven","due","dure","e.g.","easist","edit","emit","enabl","enable:","encrypt","end","english","entir","error","error)","error);","errors,","event:","example(https://chrome.google.com/webstore/detail/padekgcemlokbadohgkifijomclgjgif)为例","except","exec","exec('open","exec('start","exist","expect","extens","extent","face","fail","failure,","fals","false,","false;","faq","feature,","features:","few","field","file","file,","file.","file:","find","finish","first","flow","follow","follows.","forc","forceproxyhttp","forceproxyhttps:","forward","found","frequent","full","fulli","function","function()","function.","g","gener","get","github:","github主页:https://github.com/alibaba/anyproxi","give","global","go,","gui","guid","h","hack","hacked!","hacked!';","handl","handling.","happen","header","header),请求体(request","header,","header:","headers:","headersar","header)、响应内容等","help","here","here,","here.","hood,","host","host:","hostname:","http","http.rquest,","http/1.1","http/http","http://....j","http://127.0.0.1:8001","http://127.0.0.1:8002","http://127.0.0.1:8002,","http://httpbin.org","http://httpbin.org/","http://httpbin.org/post","http://httpbin.org/us","http://localhost:8008/index.html","httpbin.org","httpbin.org,","https://github.com/alibaba/anyproxi","https://httpbin.org/us","https://nodejs.org/api/http.html#http_http_request_options_callback","https://sample.com/rule.j","https连接服务器出错","http代理配置","http的代理模式中,这里的request是connect请求","i.e.","ignor","import","in.","includ","influenc","info","info,","insid","instal","installing.","instruct","intercept","intercept`参数,按npm模块启动时配置`forceproxyhttps`参数,所有https请求都会被替换证书并解析","intercept后才会从界面上看到相应内容。","interest","interfac","interface,","introduct","invok","io","ios/android","ios系统信任ca证书","issu","iswin","it,","it.","javascript.","js","kb/s,","keep","keypath)","kind","know","know.com')","known","launch","launching,","legaci","line","line,","list","load","local","localrespons","locat","log","logic","login","longer.","luanch","make","man","manag","manual","menu","menu,","messag","method","method,","method:","middl","middle),用户必须信任anyproxy生成的ca证书,才能进行后续流程","mind","modifi","modul","module,","module.","module.export","myrulepkg","nativ","need","network.","new","newli","newopt","newoption.path","newoption.port","newrequestopt","newrequestoptions.headers['us","newrequestoptions.hostnam","newrequestoptions.method","newrequestoptions.path","newrequestoptions.port","newrequestoptions.rejectunauthor","newrespons","newresponse.bodi","newresponse.header['x","newresponse.statuscod","node.j","nodej","nodejs.","nothing,","now","npm","null","null;","number","object","object.","object.assign({},","offer","on","on\"","on,","onconnecterror","onconnecterror(requestdetail,","one.","onerror","onerror(requestdetail,","onlin","oppo","option","option,","optional,","osx","osx系统信任ca证书","otherwire,","otherwise,","over","own.","page","param","part","pass","password","path.","path:","phones.","place","pleas","point","popular,","port","port:","post","privat","process","promis","promise((resolve,","propmt","protocol","protocol\":","protocol,","protocol:","protocol,i.e.","provid","proxi","proxy.close();","proxy.on('error',","proxy.on('ready',","proxy.start();","proxyserv","proxyserver.close();","proxyserver.on('error',","proxyserver.on('ready',","proxyserver.start();","q:","qr","quest","r15.","r15),anyproxi","read","readi","receiv","record","redirect","ref:","refer","reject)","rejectunauthor","replac","request","request,","request.","requestdata","requestdata:","requestdetail","requestdetail.protocol","requestdetail.requestoptions);","requestdetail.requestoptions;","requestdetail;","requesting,","requestopt","requestoptions:","requests,","requests.","requir","require('anyproxy');","require('child_process').exec;","require('http').request","require('myrulemodule'),","require('path').dirname(keypath);","require()","required,","resolve({","respons","response\"}'","response',","response:","responsedetail","responsedetail)","responsedetail.response);","responsedetail.response;","return","right","risk.","root","rootca","rootca',","rootca.crt","rule","rule:","rule_sample/sample_modify_request_data.j","rule_sample/sample_modify_request_header.j","rule_sample/sample_modify_request_path.j","rule_sample/sample_modify_request_protocol.j","rule_sample/sample_modify_response_data.j","rule_sample/sample_modify_response_header.j","rule_sample/sample_modify_response_statuscode.j","rule_sample/sample_use_local_response.j","rule接口文档","rule样例","rule模块","run","safari","safe","same","sampl","sample.j","sample:","save","scan","scenario,","sd","second","seconds.","secur","security.","see","self","send","sent","server","server,","server.","set","settimeout(()","settings.","sever","side","signed.","silent","silent:","similar","simpl","simplifi","site","site(s)","situation.","skip","someth","source.","specifi","ssl","start","statu","statuscod","statuscode:","step","storage,","string","stuff:","such","sudo","summari","summary():","summary,","summary:","summary:str","support","sure","system","system,","take","target","tell","test","test:","text","text/plain\"","that.","this:","throttl","throttle:","time","timeout","tip","to!","toward","traffic","tri","true","true,","true;","true或者false,表示是否需要anyproxy替换证书并解析http","trust","trust)","turn","type","type':","type:","typic","ubuntu","ui,","ui中的","unauthor","under","unknown","unlimit","unsecur","untrust","url","url:","us","use,","user","user.","users,","usual","valid","valu","var","via","view","visit","want","warning:","way","web","webinterfac","webinterface:","webport","webport:","websocket","websocket,","web版界面端口号,默认8002","web版界面配置","web版界面重构","whether","wifi","window","windows系统信任ca证书","without","work","world'","write","written","ws","wsintercept","wsintercept:","wss","x","yieldabl","yieldable,","you'r","{","{boolean}","{number}","{object}","{string}","|","}","})","});","},","};","下载后的证书可以直接单击打开并安装,这种方式是最简单的,直接安装即可","不做任何处理。此时anyproxy会返回一个默认的错误页。","不做任何处理,返回null","不同安卓系统支持安装的证书文件类型不尽相同,大多支持安装拓展名为","不开启websocket代理","中把anyproxy证书的开关打开,否则safari将报错。","中文文档","为","为什么https请求不能进入处理函数?","主要特性包括:","举例","举例,请求","举例:请求","从sd卡安装证书。找到你下载的证书文件,进行安装","从存储设备安装。找到你下载的证书文件,进行安装","代理http","代理websocket","代理服务器发生错误","代理服务器启动完成","代理服务器都在wifi设置中配置","以chrome的switchyomega插件为例","以下任意一项都能用来改变https的处理特性:","以下几种返回都是合法的","作为npm模块使用","作为全局模块","你可以通过","使用npm包","使用举例","使用在线地址","使用本地数据","使用本地路径anyproxi","使用示例","修改发送到","修改请求bodi","修改请求协议","修改请求协议,如强制改用https发起请求","修改请求参数","修改请求头","修改请求数据","修改请求的目标地址","修改返回内容并延迟","修改返回头","修改返回状态码","修改返回的内容","修改返回的状态码","关闭代理服务器","关闭全局代理服务器","其他命令","创建代理服务器","加密与凭据","即将发送的请求配置,供require('http').request作为使用。详见:https://nodejs.org/api/http.html#http_http_request_options_callback","原始的服务端返回对象","双击打开rootca.crt","发送响应前处理","发送请求前拦截处理","只有返回true时,anyproxy才会尝试替换证书、解析https。否则只做数据流转发,无法看到明文数据。","可以是一个函数,也可以是一个普通的字符串","可修改内容包括请求头(request","可修改的内容包括http状态码(statu","同beforedealhttpsrequest中的参数","同beforesendrequest中的参数","启动","启动anyproxy,加载规则","启动代理服务器","启动后将终端http代理服务器配置为127.0.0.1:8001即可","命令行启动anyproxy时配置`","命令行启动anyproxy,默认端口号8001","命令行直接启动","在","在nodejs代码中启动","在wifi高级设置中,配置http代理即可","在构造anyproxy实例的时候,传入参数dangerouslyignoreunauthorized:true,","在请求处理过程中发生错误时,anyproxy会调用onerror方法,并提供对应的错误信息","基于node.js,开放二次开发能力,允许自定义请求处理逻辑","处理流程","处理流程图如下","多数场景下,错误会在请求目标服务器的时候发生,比如dns解析失败、请求超时等","如下几种方案都可以用来引用规则模块:","如下:","如何引用","如果beforesendrequest返回了响应内容,则立即把此响应返回到客户端(而不再发送到真正的服务端),流程结束。","如果配置了全局解析https的参数,则anyproxy会略过这个调用","如要启用https解析,请在代理服务器启动前自行调用anyproxy.utils.certmgr相关方法生成证书,并引导用户信任安装。或引导用户使用anyproxi","安全","安全性与位置信息","安卓系统信任ca证书","安装","安装ca:","对于debian或者ubuntu系统,在安装anyproxy之前,可能还需要安装","开发示例","引入","当http请求经过代理服务器时,具体处理过程是:","当代理服务器收到https请求时,anyproxy可以替换证书,对请求做明文解析。","当启用https代理时,wss也会被代理,但是不会被anyproxy记录。需要开启","当访问特定的https站点,anyproxy会提示该站点不是一个安全的网站,这通常是因为站点的证书设置不能被正确识别导致的(比如,站点的证书是自签发的)。如果您信任该网站,可以用以下方式来继续访问:","必选,代理服务器端口","快速开始","我们自然也可以借助自定义的rule来实现这个效果,而且我们还可以控制到只允许指定网址的证书错误,对不在列表的网址,进行证书的强验证。","所有http://httpbin.org","找到刚刚导入的anyproxy证书,配置为信任(alway","把","把响应信息返回给客户端","把所有发送到","把用http协议请求的","拦截https请求,对内容做修改","拦截发送到","拦截并修改服务端响应","拦截并修改正在发送的请求","提供gui界面,用以观察请求","提供了多种类型的证书文件,可在下载安装时选择。","提示","支持https的解析","收集请求所有请求参数,包括method,","改成https并发送","文件(已知如","时,requestdetail参数内容大致如下","时,responsedetail参数内容大致如下","是否启用web版界面,默认fals","是否处理https请求","是否屏蔽所有console输出,默认fals","是否开启websocket代理,默认fals","是否强制拦截所有的https,忽略规则模块的返回,默认fals","是否忽略请求中的证书错误,默认fals","是必选字段","服务端的返回信息,包括statuscod","本文档的适用范围是anyproxi","本质是中间人攻击(man","来加载模块并体验","来忽略证书认证的错误。需要注意的是,该参数是全局生效的,如果你在此期间访问了其他未知的网站,他们的证书问题也会被忽略,这可能会带来安全隐患。","查看请求信息","校验系统内是否存在anyproxy的根证书","样例","根据请求参数,向服务端发出请求,接收服务端响应。","模块介绍","此处无法控制向客户端的返回信息,无需返回值。","注意:http","注意:引用规则前,请务必确保文件来源可靠,以免发生安全问题","测试规则","浏览器访问http://127.0.0.1:8002","点击web","然后,安装anyproxi","生成anyproxy的rootca,完成后请引导用户信任.crt文件","生成证书并解析所有https请求","用curl发请求测试的方法如下","用curl测试","用浏览器测试:配置浏览器http代理为","的https请求会被解析","的post数据","的user","的证书文件,少部分仅支持","的请求全部改到","的请求,使用本地数据代替服务端返回","的返回值里加上测试信息,并延迟5秒返回","的返回头里加上","的返回最后追加anyproxy的签名,并延迟5秒","的返回状态码都改成404","直接请求服务器:curl","直接返回客户端,不再发起请求,其中statuscod","相比3.x版本,anyproxi","确认将证书添加到login或system","示例","简介","简化了规则文件内的接口","管理anyproxy的证书","管理系统的全局代理配置,方法调用时可能会弹出密码框","类似这种报错都是因为系统没有信任anyproxy生成的ca所造成的","经过代理服务器后,期望的返回如下","自定义规则模块","被明文解析后的https请求,处理流程同http一致。未明文解析请求不会再进入规则模块做处理。","规则文件中,除了summary,都是由","规则文件内提供`beforedealhttpsrequest`方法,返回","规则文件(rule)全面支持promise和gener","规则模块应该符合cmd规范,一个典型的规则模块代码结构如下。模块中所有方法都是可选的,只需实现业务感兴趣的部分即可。","规则模块是用","规则模块的介绍文案,用于anyproxy提示用户,","规则模块的能力范围包括:","解析https请求的原理是中间人攻击(man","警告:ca证书和系统安全息息相关,建议亲自生成,并妥善保管","设置","设置属性","访问http://127.0.0.1:8002","证书下载到指定目录后,需要从其他入口进行安装,包括:","证书配置","请求bodi","请求url","请求使用的协议,http或者http","请求出错的事件","请求的原始request","请求目标的host,受制于协议,这里无法获取完整url","调用规则模块beforedealhttpsrequest方法,如果返回true,会明文解析这个请求,其他请求不处理","调用规则模块beforesendresponse方法,由模块对响应内容进行处理","运行","返回值","返回自定义错误页","这里提供一些样例,来讲解规则模块的常见用法","通过代理服务器请求:curl","通过启动参数","通过自定义的rule来修改","通过这种方式初始化的anyproxy,其配置也是全局性的,所有网站的证书问题都会被忽略","配置127.0.0.1:8001为全局http代理服务器","配置ios/android系统代理","配置osx系统代理","配置启动端口,如1080端口启动","配置浏览器http代理","附录:如何信任ca证书","限速值,单位kb/s,默认不限速","除了上述证书安装过程,还需要在","需要编写一个规则模块,在","首先和ios类似,需要先扫描证书的二维码进行下载。然后不同的安卓系统安装证书的方式可能有所不同,但是安装的步骤是类似的,我们列举了几种类型。","驱动的,函数需要满足yieldable。可以使用generator方法或是返回promise。","驱动的,函数需要满足yieldable。可以返回promise或使用generator函数。",",web界面上能看到所有的请求信息",",界面上能看到刚才的请求信息",":"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"AnyProxy\nAnyProxy is a fully configurable http/https proxy in NodeJS.\nRef: 中文文档\nGithub:\n\nhttps://github.com/alibaba/anyproxy\n\nFeatures:\n\nOffer you the ablity to handle http traffic by invoking a js module\nIntercept https\nGUI webinterface\n\nChange Logs since 3.x:\n\nSupport Promise and Generator in rule module\nSimplified interface in rule module\nA newly designed web interface\n\n\nGetting Start\ninstall\nTo Debian and Ubuntu users, you may need to install nodejs-legacy at the same time\nsudo apt-get install nodejs-legacy\n\nThen install the AnyProxy\nnpm install -g anyproxy\n\nlaunch\n\nstart AnyProxy in command line, with default port 8001\n\nanyproxy\n\n\nnow you can use http proxy server by 127.0.0.1:8001\nvisit http://127.0.0.1:8002 to see the http requests\n\noptions\n\nspecify the port of http proxy\n\nanyproxy --port 1080\n\nUse AnyProxy as an npm module\nAnyProxy can be used as an npm module\n\nTo enable https feature, please guide users to use anyproxy-ca in cli. Or use methods under AnyProxy.utils.certMgr to generate certificates.\n\n\ninstall\n\nnpm i anyproxy --save\n\n\nsample\n\nconst AnyProxy = require('anyproxy');\nconst options = {\n port: 8001,\n rule: require('myRuleModule'),\n webInterface: {\n enable: true,\n webPort: 8002\n },\n throttle: 10000,\n forceProxyHttps: false,\n wsIntercept: false,\n silent: false\n};\nconst proxyServer = new AnyProxy.ProxyServer(options);\n\nproxyServer.on('ready', () => { /* */ });\nproxyServer.on('error', (e) => { /* */ });\nproxyServer.start();\n\n//when finished\nproxyServer.close();\n\n\nClass: AnyProxy.proxyServer\n\ncreate a proxy server\nconst proxy = new AnyProxy.proxyServer(options)\n\n\noptions\n\nport {number} required, port number of proxy server\nrule {object} your rule module\nthrottle {number} throttle in kb/s, unlimited for default\nforceProxyHttps {boolean} in force intercept all https request, default to false\nsilent {boolean} if keep silent in console, false for default false\ndangerouslyIgnoreUnauthorized {boolean} if ignore certificate error in request, default to false\nwsIntercept {boolean} whether to intercept websocket, default to false\nwebInterface {object} config for web interface\nenable {boolean} if enable web interface, default to false\nwebPort {number} port number for web interface\n\n\n\n\nEvent: ready\n\nemit when proxy server is ready\nsample\n\nproxy.on('ready', function() { })\n\n\nEvent: error\n\nemit when error happened inside proxy server\nsample\n\nproxy.on('error', function() { })\n\n\nMethod: start\n\nstart proxy server\nsample\n\nproxy.start();\n\n\nMethod: close\n\nclose proxy server\nsample\n\nproxy.close();\n\n\n\n\nAnyProxy.utils.systemProxyMgr\n\nmanage the system proxy config. sudo password may be required\nsample\n\n// set 127.0.0.1:8001 as system http server\nAnyProxy.utils.systemProxyMgr.enableGlobalProxy('127.0.0.1', '8001');\n\n// disable global proxy server\nAnyProxy.utils.systemProxyMgr.disableGlobalProxy();\n\n\nAnyProxy.utils.certMgr\n\nManage certificates of AnyProxy\nAnyProxy.utils.certMgr.ifRootCAFileExists()\ndetect if AnyProx rootCA exists\n\n\nAnyProxy.utils.certMgr.generateRootCA(callback)\ngenerate a rootCA\n\n\nSample\n\n const AnyProxy = require('anyproxy');\n const exec = require('child_process').exec;\n\n if (!AnyProxy.utils.certMgr.ifRootCAFileExists()) {\n AnyProxy.utils.certMgr.generateRootCA((error, keyPath) => {\n // let users to trust this CA before using proxy\n if (!error) {\n const certDir = require('path').dirname(keyPath);\n console.log('The cert is generated at', certDir);\n const isWin = /^win/.test(process.platform);\n if (isWin) {\n exec('start .', { cwd: certDir });\n } else {\n exec('open .', { cwd: certDir });\n }\n } else {\n console.error('error when generating rootCA', error);\n }\n });\n }\n\n\n\nProxy Https\n\nAnyProxy does NOT intercept https requests by default. To view decrypted info, you have to config the CA certificate.\n\n\nUnder the hood, AnyProxy decryptes https requests by man-in-the-middle attack. Users have to trust the CA cert in advance. Otherwise, client side will issue errors about unsecure network.\n\n\ngenerate certifycates and intercept\n\nanyproxy-ca #generate root CA. manually trust it after that.\nanyproxy --intercept #launch anyproxy and intercept all https traffic\n\n\nAppendix:how to trust CA\n\nProxy WebSocket\nanyproxy --ws-intercept\n\n\nThe wss requests will be handled automatically when the HTTPS intercept is turned on, but AnyProxy will not record the data by default. You need to specify the --ws-intercept to tell AnyProxy to record it.\n\nRule Introduction\nAnyProxy provides the ability to load your own rules written in javascript. With rule module, you could customize the logic to handle requests.\n\nMake sure your rule file is got from a trusted source. Otherwise, you may face some unknown security risk.\n\nRule module could do the following stuff:\n\nintercept and modify the request which is being sent\neditable fields include request header, body, target address\n\n\nintercept and modify the response from server\neditable fields include response status code, header, body\n\n\nintercept https requests, modify request and response\n\nsample\n\nTarget\n\nwrite a rule module to append some text to the response of GET http://httpbin.org/user-agent, and delay the response for 5 seconds\n\n\nStep 1,Write the rule file, save as sample.js\n// file: sample.js\nmodule.exports = {\n summary: 'a rule to hack response',\n *beforeSendResponse(requestDetail, responseDetail) {\n if (requestDetail.url === 'http://httpbin.org/user-agent') {\n const newResponse = responseDetail.response;\n newResponse.body += '- AnyProxy Hacked!';\n\n return new Promise((resolve, reject) => {\n setTimeout(() => { // delay\n resolve({ response: newResponse });\n }, 5000);\n });\n }\n },\n};\n\n\nStep 2, start AnyProxy and load the rule file\n\nrun anyproxy --rule sample.js\n\n\nStep 3, test\n\nuse curl\ncurl http://httpbin.org/user-agent --proxy http://127.0.0.1:8001\n\n\nuse browser. Point the http proxy of browser to 127.0.0.1:8001, then visit http://httpbin.org/user-agent\n\nthe expected response from proxy is\n\n\n{\n \"user-agent\": \"curl/7.43.0\"\n}\n- AnyProxy Hacked!\n\nStep 4, view the request log\n\nvisit http://127.0.0.1:8002, the request just sent should be listed here\n\n\n\nhow does it work\n\nThe flow chart is as follows\n\n\n\nWhen got an http request, the entire process of proxy server is\n\nAnyProxy collects all the quest info, include method, header, body\nAnyProxy calls beforeSendRequest of the rule module. Rule module deal the request, return new request param or response content\nIf beforeSendRequest returns the response content, AnyProxy will send the response to client without sending to target server. The process ends here.\nSend request to target server, collect response\nCall beforeSendResponse of the rule module. Rule module deal the response data\nSend response to client\n\n\nWhen AnyProxy get https request, it could replace the certificate and decrypt the request data\n\nAnyProxy calls beforeDealHttpsRequest of the rule module\nIf the function returns true, AnyProxy will do the man-in-the-middle attack to it. Otherwise, the request will not be dealed.\n\n\n\nhow to load rule module\n\nuse local file\nanyproxy --rule ./rule.js\n\n\nuse an online rule file\nanyproxy --rule https://sample.com/rule.js\n\n\nuse an npm module\n\nAnyProxy uses require() to load rule module. You could either load a local npm module or a global-installed one.\n\nanyproxy --rule ./myRulePkg/ #local module\nnpm i -g myRulePkg && anyproxy --rule myRulePkg #global-installed module\n\n\n\nRule module interface\nA typical rule module is as follows. All the functions are optional, just write the part you are interested in.\nmodule.exports = {\n // introduction\n summary: 'my customized rule for AnyProxy',\n // intercept before send request to server\n *beforeSendRequest(requestDetail) { /* ... */ },\n // deal response before send to client\n *beforeSendResponse(requestDetail, responseDetail) { /* ... */ },\n // if deal https request\n *beforeDealHttpsRequest(requestDetail) { /* ... */ },\n // error happened when dealing requests\n *onError(requestDetail, error) { /* ... */ },\n // error happened when connect to https server\n *onConnectError(requestDetail, error) { /* ... */ }\n};\n\n\nAll functions in your rule file, except summary, are all driven by co . They should be yieldable, i.e. return a promise or be a generator function.\n\nsummary\nsummary\n\nIntroduction of this rule file. AnyProxy will read this field and give some tip to user.\n\nbeforeSendRequest\nbeforeSendRequest(requestDetail)\n\nBefore sending request to server, AnyProxy will call beforeSendRequest with param requestDetail\nrequestDetail\nprotocol {string} the protocol to use, http or https\nrequestOptions {object} the options of the request-to-go, a param of require('http').request . ref: https://nodejs.org/api/http.html#http_http_request_options_callback\nrequestData {object} request body\nurl {string} request url\n_req {object} the native node.js request object\n\n\ne.g. When requesting anyproxy.io, requestDetail is something like the following\n{\n protocol: 'http',\n url: 'http://anyproxy.io/',\n requestOptions: {\n hostname: 'anyproxy.io',\n port: 80,\n path: '/',\n method: 'GET',\n headers: {\n Host: 'anyproxy.io',\n 'Proxy-Connection': 'keep-alive',\n 'User-Agent': '...'\n }\n },\n requestData: '...',\n _req: { /* ... */}\n}\n\n\nAny of these return values are valid\n\ndo nothing, and return null\n\nreturn null;\n\n\nmodify the request protocol,i.e. force use https\n\nreturn {\n protocol: 'https'\n};\n\n\nmodify request param\n\nvar newOption = Object.assign({}, requestDetail.requestOptions);\nnewOption.path = '/redirect/to/another/path';\nreturn {\n requestOptions: newOption\n};\n\n\nmodify request body\n\nreturn {\n requestData: 'my new request data'\n // requestOptions can also be used here\n};\n\n\ngive response to the client, not sending request any longer. statusCode headersare required is this situation.\n\nreturn {\n response: {\n statusCode: 200,\n header: { 'content-type': 'text/html' },\n body: 'this could be a or '\n }\n};\n\n\n\nbeforeSendResponse\nbeforeSendResponse(requestDetail, responseDetail)\n\nBefore sending response to client, AnyProxy will call beforeSendResponse with param requestDetail responseDetail\nrequestDetail is the same param as in beforeSendRequest\nresponseDetail\nresponse {object} the response from server, includes statusCode header body\n_res {object} the native node.js response object\n\n\ne.g. When requesting anyproxy.io, responseDetail is something like the following\n{\n response: {\n statusCode: 200,\n header: {\n 'Content-Type': 'image/gif',\n Connection: 'close',\n 'Cache-Control': '...'\n },\n body: '...'\n },\n _res: { /* ... */ }\n}\n\n\nAny of these return values are valid\n\ndo nothing, and return null\n\nreturn null;\n\n\nmodify the response status code\n\nvar newResponse = Object.assign({}, responseDetail.response);\nnewResponse.statusCode = 404;\nreturn {\n response: newResponse\n};\n\n\nmodify the response content\n\nvar newResponse = Object.assign({}, responseDetail.response);\nnewResponse.body += '--from anyproxy--';\nreturn {\n response: newResponse\n};\n\n\n\nbeforeDealHttpsRequest\nbeforeDealHttpsRequest(requestDetail)\n\nWhen receiving https request, AnyProxy will call beforeDealHttpsRequest with param requestDetail\nIf configed with forceProxyHttps in launching, AnyProxy will skip calling this method\nOnly by returning true, AnyProxy will try to replace the certificate and intercept the https request.\nrequestDetail\nhost {string} the target host to request. Due to the request protocol, full url couldn't be got here\n_req {object} the native node.js request object. The _req here refers to the CONNECT request.\n\n\nreturn value\ntrue or false, whether AnyProxy should intercept the https request\n\n\n\nonError\nonError(requestDetail, error)\n\nAnyProxy will call this method when an error happened in request handling.\nErrors usually are issued during requesting, e.g. DNS failure, request timeout\nrequestDetail is the same one as in beforeSendRequest\nAny of these return values are valid\n\ndo nothing, and AnyProxy will response a default error page\n\nreturn null;\n\n\nreturn a customized error page\n\nreturn {\n response: {\n statusCode: 200,\n header: { 'content-type': 'text/html' },\n body: 'this could be a or '\n }\n};\n\n\n\nonConnectError\nonConnectError(requestDetail, error)\n\nAnyProxy will call this method when failed to connect target server in https request\nrequestDetail is the same one as in beforeDealHttpsRequest\nno return value is required\n\nRule Samples\n\nhere are some samples about frequently used rule file\ntry these samples by anyproxy --rule http://....js\nhow to test with curl:\nrequest the server directly curl http://httpbin.org/\nrequest the server via proxy curl http://httpbin.org/ --proxy http://127.0.0.1:8001\n\n\n\nuse local response\n\nintercept the request towards http://httpbin.org , return the local-defined response\n\nanyproxy --rule rule_sample/sample_use_local_response.js\n\n/* \n sample: \n intercept all requests toward httpbin.org, use a local response\n test:\n curl http://httpbin.org/user-agent --proxy http://127.0.0.1:8001\n*/\nmodule.exports = {\n *beforeSendRequest(requestDetail) {\n const localResponse = {\n statusCode: 200,\n header: { 'Content-Type': 'application/json' },\n body: '{\"hello\": \"this is local response\"}'\n };\n if (requestDetail.url.indexOf('http://httpbin.org') === 0) {\n return {\n response: localResponse\n };\n }\n },\n};\n\nmodify request header\n\nmodify the user-agent sent to httpbin.org\n\nanyproxy --rule rule_sample/sample_modify_request_header.js\n\n/* \n sample: \n modify the user-agent in requests toward httpbin.org\n test:\n curl http://httpbin.org/user-agent --proxy http://127.0.0.1:8001\n*/\nmodule.exports = {\n *beforeSendRequest(requestDetail) {\n if (requestDetail.url.indexOf('http://httpbin.org') === 0) {\n const newRequestOptions = requestDetail.requestOptions;\n newRequestOptions.headers['User-Agent'] = 'AnyProxy/0.0.0';\n return {\n requestOptions: newRequestOptions\n };\n }\n },\n};\n\nmodify request body\n\nmodify the post body of http://httpbin.org/post\n\nanyproxy --rule rule_sample/sample_modify_request_data.js\n\n/*\n sample:\n modify the post data towards http://httpbin.org/post\n test:\n curl -H \"Content-Type: text/plain\" -X POST -d 'original post data' http://httpbin.org/post --proxy http://127.0.0.1:8001\n expected response:\n { \"data\": \"i-am-anyproxy-modified-post-data\" }\n*/\nmodule.exports = {\n summary: 'Rule to modify request data',\n *beforeSendRequest(requestDetail) {\n if (requestDetail.url.indexOf('http://httpbin.org/post') === 0) {\n return {\n requestData: 'i-am-anyproxy-modified-post-data'\n };\n }\n },\n};\n\nmodify the request target\n\nsend all the request towards http://httpbin.org/ to http://httpbin.org/user-agent\n\nanyproxy --rule rule_sample/sample_modify_request_path.js\n\n/*\n sample:\n redirect all https://httpbin.org/user-agent requests to http://localhost:8008/index.html\n test:\n curl https://httpbin.org/user-agent --proxy http://127.0.0.1:8001\n expected response:\n 'hello world' from 127.0.0.1:8001/index.html\n*/\nmodule.exports = {\n *beforeSendRequest(requestDetail) {\n if (requestDetail.url.indexOf('https://httpbin.org/user-agent') === 0) {\n const newRequestOptions = requestDetail.requestOptions;\n requestDetail.protocol = 'http';\n newRequestOptions.hostname = '127.0.0.1'\n newRequestOptions.port = '8008';\n newRequestOptions.path = '/index.html';\n newRequestOptions.method = 'GET';\n return requestDetail;\n }\n },\n *beforeDealHttpsRequest(requestDetail) {\n return true;\n }\n};\n\nmodify request protocol\n\nmodify the http request towards http://httpbin.org to https\n\nanyproxy --rule rule_sample/sample_modify_request_protocol.js\n\n/* \n sample: \n redirect all http requests of httpbin.org to https\n test:\n curl 'http://httpbin.org/get?show_env=1' --proxy http://127.0.0.1:8001\n expected response:\n { \"X-Forwarded-Protocol\": \"https\" }\n*/\nmodule.exports = {\n *beforeSendRequest(requestDetail) {\n if (requestDetail.url.indexOf('http://httpbin.org') === 0) {\n const newOption = requestDetail.requestOptions;\n newOption.port = 443;\n return {\n protocol: 'https',\n requestOptions: newOption\n };\n }\n }\n};\n\nmodify response status code\n\nmodify all status code from http://httpbin.org to 404\n\nanyproxy --rule rule_sample/sample_modify_response_statuscode.js\n\n/* \n sample: \n modify all status code of http://httpbin.org/ to 404\n test:\n curl -I 'http://httpbin.org/user-agent' --proxy http://127.0.0.1:8001\n expected response:\n HTTP/1.1 404 Not Found\n*/\nmodule.exports = {\n *beforeSendResponse(requestDetail, responseDetail) {\n if (requestDetail.url.indexOf('http://httpbin.org') === 0) {\n const newResponse = responseDetail.response;\n newResponse.statusCode = 404;\n return {\n response: newResponse\n };\n }\n }\n};\n\nmodify the response header\n\nadd X-Proxy-By:AnyProxy to the response header from http://httpbin.org/user-agent\n\nanyproxy --rule rule_sample/sample_modify_response_header.js\n\n/* \n sample: \n modify response header of http://httpbin.org/user-agent\n test:\n curl -I 'http://httpbin.org/user-agent' --proxy http://127.0.0.1:8001\n expected response:\n X-Proxy-By: AnyProxy\n*/\nmodule.exports = {\n *beforeSendResponse(requestDetail, responseDetail) {\n if (requestDetail.url.indexOf('http://httpbin.org/user-agent') === 0) {\n const newResponse = responseDetail.response;\n newResponse.header['X-Proxy-By'] = 'AnyProxy';\n return {\n response: newResponse\n };\n }\n }\n};\n\nmodify response data and delay\n\nappend some info to the response of http://httpbin.org/user-agent, then delay the response for 5 seconds.\n\nanyproxy --rule rule_sample/sample_modify_response_data.js\n\n/* \n sample: \n modify response data of http://httpbin.org/user-agent\n test:\n curl 'http://httpbin.org/user-agent' --proxy http://127.0.0.1:8001\n expected response:\n { \"user-agent\": \"curl/7.43.0\" } -- AnyProxy Hacked! --\n*/\n\nmodule.exports = {\n *beforeSendResponse(requestDetail, responseDetail) {\n if (requestDetail.url === 'http://httpbin.org/user-agent') {\n const newResponse = responseDetail.response;\n newResponse.body += '-- AnyProxy Hacked! --';\n return new Promise((resolve, reject) => {\n setTimeout(() => { // delay the response for 5s\n resolve({ response: newResponse });\n }, 5000);\n });\n }\n },\n};\n\nConfig Certification\nConfig root CA in OSX\n\nthis kind of errors is usually caused by untrusted root CA\n\n\n\nWarning: please keep your root CA safe since it may influence your system security.\n\ninstall :\n\ndouble click rootCA.crt\n\nadd cert into login or system\n\n\n\n\nfind the newly imported AnyProxy certificates, configured as Always Trust\n\n\nConfig root CA in windows\n\nConfig OSX system proxy\n\nthe config is in wifi - advanced\n\n\nconfig http proxy server\n\ntake Chrome extent [SwitchyOmega] as an example(https://chrome.google.com/webstore/detail/padekgcemlokbadohgkifijomclgjgif)为例\n\n\ntrust root CA in iOS\n\nClick Root CA in web ui, and follow the instruction to install\n\n\ntrust root CA in iOS after 10.3\n\nBesides installing root CA, you have to \"turn on\" the certificate for web manually in settings - general - about - Certificate Trust Settings. Otherwire, safari will not trust the root CA generated by AnyProxy.\n\n\ntrust root CA in Android\nFirst of all, you need to download the root CA by clicking Root CA in web ui, and then scan the QR code.\nInstalling CA in Android could be different based on the system, we list some common steps as below, but you can find the right way in you system with similar menu path.\n\nThe downloaded CA file can be directly installed by clicking, this is the easist way\nYou need to install the CA file from other menu, such as:\nSettings -> Security & Location > Encryption & credentials -> Install from storage, and find your CA file to install\nSettings -> Security -> Install from SD card, and find you CA file to install\n\n\n\nThere are several file extensions of CA file which may not be compatible with all kinds of Android phones. .crt file is the most popular, while a few systems could only use .cer file such as OPPO R15. In AnyProxy, you can choose the type of certificate you need before installing.\nconfig iOS/Android proxy server\n\nproxy settings are placed in wifi setting\n\niOS\n\n\n\n\nAndroid\n\n\nFAQ\nQ: can not deal https request in rule module.\n\nA: Any of these options could be used to change the way AnyProxy deall https requests\nconfig --intercept when luanching AnyProxy via cli, or use forceProxyHttps when using as an npm module\nplace a beforeDealHttpsRequest function in your rule file and determine which request to intercept by your own.\n\n\n\nQ: get an error says function is not yieldable\n\nA: Rule module is driven by co. The functions inside should be yieldable, i.e. return a promise or be a generator function.\n\nQ: The connection is not private\nAnyProxy will propmt this message when the certification of the site you're visiting is not issued by a common known CA. This happens when the certification is self-signed. If you know and trust it, you can ignore the error as below.\n\nIf you run AnyProxy by command line\nPass in the option --ignore-unauthorized-ssl to ignore the certification errors, please mind that the option will be active for all connections.\nanyproxy -i --ignore-unauthorized-ssl\n\n\nIf you run AnyProxy by Nodejs\nPass in the option dangerouslyIgnoreUnauthorized:true, like this:\nconst options = {\n ...,\n dangerouslyIgnoreUnauthorized: true\n};\n\nconst anyproxyIns = new AnyProxy.ProxyCore(options);\nanyproxyIns.start();\n\nThis is also a global option, all certification errors will be ignored\n\nWith the help of AnyProxy Rule\nYou can change the request with rule of course. For this scenario, all you need is to pass in an option to Nodejs Http.rquest, as we do in AnyProxy. A simple demo below:\nmodule.exports = {\n *beforeSendRequest(requestDetail) {\n if (requestDetail.url.indexOf('https://the-site-you-know.com') === 0) {\n const newRequestOptions = requestDetail.requestOptions;\n // set rejectUnauthorized as false\n newRequestOptions.rejectUnauthorized = false;\n return {\n requestOptions: newRequestOptions\n };\n }\n },\n};\n\nAnd we get a bonous here, AnyProxy will only ignore the errors for the site(s) we want it to!\n\n\n"}}}
================================================
FILE: docs/en/src_doc.md
================================================
AnyProxy
===================
AnyProxy is a fully configurable http/https proxy in NodeJS.
Ref: [中文文档](../cn)
Github:
* https://github.com/alibaba/anyproxy
Features:
* Offer you the ablity to handle http traffic by invoking a js module
* Intercept https
* GUI webinterface
Change Logs since 3.x:
* Support Promise and Generator in rule module
* Simplified interface in rule module
* A newly designed web interface
# Getting Start
### install
To Debian and Ubuntu users, you may need to install `nodejs-legacy` at the same time
```bash
sudo apt-get install nodejs-legacy
```
Then install the AnyProxy
```bash
npm install -g anyproxy
```
### launch
* start AnyProxy in command line, with default port 8001
```bash
anyproxy
```
* now you can use http proxy server by 127.0.0.1:8001
* visit http://127.0.0.1:8002 to see the http requests
### options
* specify the port of http proxy
```bash
anyproxy --port 1080
```
### Use AnyProxy as an npm module
AnyProxy can be used as an npm module
> To enable https feature, please guide users to use `anyproxy-ca` in cli. Or use methods under `AnyProxy.utils.certMgr` to generate certificates.
* install
```bash
npm i anyproxy --save
```
* sample
```js
const AnyProxy = require('anyproxy');
const options = {
port: 8001,
rule: require('myRuleModule'),
webInterface: {
enable: true,
webPort: 8002
},
throttle: 10000,
forceProxyHttps: false,
wsIntercept: false,
silent: false
};
const proxyServer = new AnyProxy.ProxyServer(options);
proxyServer.on('ready', () => { /* */ });
proxyServer.on('error', (e) => { /* */ });
proxyServer.start();
//when finished
proxyServer.close();
```
* Class: AnyProxy.proxyServer
* create a proxy server
```js
const proxy = new AnyProxy.proxyServer(options)
```
* `options`
* `port` {number} required, port number of proxy server
* `rule` {object} your rule module
* `throttle` {number} throttle in kb/s, unlimited for default
* `forceProxyHttps` {boolean} in force intercept all https request, default to `false`
* `silent` {boolean} if keep silent in console, false for default `false`
* `dangerouslyIgnoreUnauthorized` {boolean} if ignore certificate error in request, default to `false`
* `wsIntercept` {boolean} whether to intercept websocket, default to `false`
* `webInterface` {object} config for web interface
* `enable` {boolean} if enable web interface, default to `false`
* `webPort` {number} port number for web interface
* Event: `ready`
* emit when proxy server is ready
* sample
```js
proxy.on('ready', function() { })
```
* Event: `error`
* emit when error happened inside proxy server
* sample
```js
proxy.on('error', function() { })
```
* Method: `start`
* start proxy server
* sample
```js
proxy.start();
```
* Method: `close`
* close proxy server
* sample
```js
proxy.close();
```
* AnyProxy.utils.systemProxyMgr
* manage the system proxy config. sudo password may be required
* sample
```js
// set 127.0.0.1:8001 as system http server
AnyProxy.utils.systemProxyMgr.enableGlobalProxy('127.0.0.1', '8001');
// disable global proxy server
AnyProxy.utils.systemProxyMgr.disableGlobalProxy();
```
* AnyProxy.utils.certMgr
* Manage certificates of AnyProxy
* `AnyProxy.utils.certMgr.ifRootCAFileExists()`
* detect if AnyProx rootCA exists
* `AnyProxy.utils.certMgr.generateRootCA(callback)`
* generate a rootCA
* Sample
```js
const AnyProxy = require('anyproxy');
const exec = require('child_process').exec;
if (!AnyProxy.utils.certMgr.ifRootCAFileExists()) {
AnyProxy.utils.certMgr.generateRootCA((error, keyPath) => {
// let users to trust this CA before using proxy
if (!error) {
const certDir = require('path').dirname(keyPath);
console.log('The cert is generated at', certDir);
const isWin = /^win/.test(process.platform);
if (isWin) {
exec('start .', { cwd: certDir });
} else {
exec('open .', { cwd: certDir });
}
} else {
console.error('error when generating rootCA', error);
}
});
}
```
# Proxy Https
* AnyProxy does NOT intercept https requests by default. To view decrypted info, you have to config the CA certificate.
> Under the hood, AnyProxy decryptes https requests by man-in-the-middle attack. Users have to trust the CA cert in advance. Otherwise, client side will issue errors about unsecure network.
* generate certifycates and intercept
```bash
anyproxy-ca #generate root CA. manually trust it after that.
anyproxy --intercept #launch anyproxy and intercept all https traffic
```
* [Appendix:how to trust CA](#config-certification)
# Proxy WebSocket
```bash
anyproxy --ws-intercept
```
> The `wss` requests will be handled automatically when the `HTTPS` intercept is turned on, but AnyProxy will not record the data by default. You need to specify the `--ws-intercept` to tell AnyProxy to record it.
# Rule Introduction
AnyProxy provides the ability to load your own rules written in javascript. With rule module, you could customize the logic to handle requests.
> Make sure your rule file is got from a trusted source. Otherwise, you may face some unknown security risk.
Rule module could do the following stuff:
* intercept and modify the request which is being sent
* editable fields include request header, body, target address
* intercept and modify the response from server
* editable fields include response status code, header, body
* intercept https requests, modify request and response
### sample
* Target
* write a rule module to append some text to the response of GET http://httpbin.org/user-agent, and delay the response for 5 seconds
* Step 1,Write the rule file, save as sample.js
```js
// file: sample.js
module.exports = {
summary: 'a rule to hack response',
*beforeSendResponse(requestDetail, responseDetail) {
if (requestDetail.url === 'http://httpbin.org/user-agent') {
const newResponse = responseDetail.response;
newResponse.body += '- AnyProxy Hacked!';
return new Promise((resolve, reject) => {
setTimeout(() => { // delay
resolve({ response: newResponse });
}, 5000);
});
}
},
};
```
* Step 2, start AnyProxy and load the rule file
* run `anyproxy --rule sample.js`
* Step 3, test
* use curl
```bash
curl http://httpbin.org/user-agent --proxy http://127.0.0.1:8001
```
* use browser. Point the http proxy of browser to 127.0.0.1:8001, then visit http://httpbin.org/user-agent
* the expected response from proxy is
```
{
"user-agent": "curl/7.43.0"
}
- AnyProxy Hacked!
```
* Step 4, view the request log
* visit http://127.0.0.1:8002, the request just sent should be listed here
### how does it work
* The flow chart is as follows
* When got an http request, the entire process of proxy server is
* AnyProxy collects all the quest info, include method, header, body
* AnyProxy calls `beforeSendRequest` of the rule module. Rule module deal the request, return new request param or response content
* If `beforeSendRequest` returns the response content, AnyProxy will send the response to client without sending to target server. The process ends here.
* Send request to target server, collect response
* Call `beforeSendResponse` of the rule module. Rule module deal the response data
* Send response to client
* When AnyProxy get https request, it could replace the certificate and decrypt the request data
* AnyProxy calls `beforeDealHttpsRequest` of the rule module
* If the function returns `true`, AnyProxy will do the man-in-the-middle attack to it. Otherwise, the request will not be dealed.
### how to load rule module
* use local file
```bash
anyproxy --rule ./rule.js
```
* use an online rule file
```bash
anyproxy --rule https://sample.com/rule.js
```
* use an npm module
* AnyProxy uses `require()` to load rule module. You could either load a local npm module or a global-installed one.
```bash
anyproxy --rule ./myRulePkg/ #local module
npm i -g myRulePkg && anyproxy --rule myRulePkg #global-installed module
```
# Rule module interface
A typical rule module is as follows. All the functions are optional, just write the part you are interested in.
```js
module.exports = {
// introduction
summary: 'my customized rule for AnyProxy',
// intercept before send request to server
*beforeSendRequest(requestDetail) { /* ... */ },
// deal response before send to client
*beforeSendResponse(requestDetail, responseDetail) { /* ... */ },
// if deal https request
*beforeDealHttpsRequest(requestDetail) { /* ... */ },
// error happened when dealing requests
*onError(requestDetail, error) { /* ... */ },
// error happened when connect to https server
*onConnectError(requestDetail, error) { /* ... */ }
};
```
> All functions in your rule file, except summary, are all driven by [co](https://www.npmjs.com/package/co) . They should be yieldable, i.e. return a promise or be a generator function.
### summary
#### summary
* Introduction of this rule file. AnyProxy will read this field and give some tip to user.
### beforeSendRequest
#### beforeSendRequest(requestDetail)
* Before sending request to server, AnyProxy will call `beforeSendRequest` with param `requestDetail`
* `requestDetail`
* `protocol` {string} the protocol to use, http or https
* `requestOptions` {object} the options of the request-to-go, a param of require('http').request . ref: https://nodejs.org/api/http.html#http_http_request_options_callback
* `requestData` {object} request body
* `url` {string} request url
* `_req` {object} the native node.js request object
* e.g. When requesting *anyproxy.io*, `requestDetail` is something like the following
```js
{
protocol: 'http',
url: 'http://anyproxy.io/',
requestOptions: {
hostname: 'anyproxy.io',
port: 80,
path: '/',
method: 'GET',
headers: {
Host: 'anyproxy.io',
'Proxy-Connection': 'keep-alive',
'User-Agent': '...'
}
},
requestData: '...',
_req: { /* ... */}
}
```
* Any of these return values are valid
* do nothing, and return null
```js
return null;
```
* modify the request protocol,i.e. force use https
```js
return {
protocol: 'https'
};
```
* modify request param
```js
var newOption = Object.assign({}, requestDetail.requestOptions);
newOption.path = '/redirect/to/another/path';
return {
requestOptions: newOption
};
```
* modify request body
```js
return {
requestData: 'my new request data'
// requestOptions can also be used here
};
```
* give response to the client, not sending request any longer. `statusCode` `headers`are required is this situation.
```js
return {
response: {
statusCode: 200,
header: { 'content-type': 'text/html' },
body: 'this could be a or '
}
};
```
### beforeSendResponse
#### beforeSendResponse(requestDetail, responseDetail)
* Before sending response to client, AnyProxy will call `beforeSendResponse` with param `requestDetail` `responseDetail`
* `requestDetail` is the same param as in `beforeSendRequest`
* `responseDetail`
* `response` {object} the response from server, includes `statusCode` `header` `body`
* `_res` {object} the native node.js response object
* e.g. When requesting *anyproxy.io*, `responseDetail` is something like the following
```js
{
response: {
statusCode: 200,
header: {
'Content-Type': 'image/gif',
Connection: 'close',
'Cache-Control': '...'
},
body: '...'
},
_res: { /* ... */ }
}
```
* Any of these return values are valid
* do nothing, and return null
```js
return null;
```
* modify the response status code
```js
var newResponse = Object.assign({}, responseDetail.response);
newResponse.statusCode = 404;
return {
response: newResponse
};
```
* modify the response content
```js
var newResponse = Object.assign({}, responseDetail.response);
newResponse.body += '--from anyproxy--';
return {
response: newResponse
};
```
### beforeDealHttpsRequest
#### beforeDealHttpsRequest(requestDetail)
* When receiving https request, AnyProxy will call `beforeDealHttpsRequest` with param `requestDetail`
* If configed with `forceProxyHttps` in launching, AnyProxy will skip calling this method
* Only by returning true, AnyProxy will try to replace the certificate and intercept the https request.
* `requestDetail`
* `host` {string} the target host to request. Due to the request protocol, full url couldn't be got here
* `_req` {object} the native node.js request object. The `_req` here refers to the CONNECT request.
* return value
* `true` or `false`, whether AnyProxy should intercept the https request
### onError
#### onError(requestDetail, error)
* AnyProxy will call this method when an error happened in request handling.
* Errors usually are issued during requesting, e.g. DNS failure, request timeout
* `requestDetail` is the same one as in `beforeSendRequest`
* Any of these return values are valid
* do nothing, and AnyProxy will response a default error page
```js
return null;
```
* return a customized error page
```js
return {
response: {
statusCode: 200,
header: { 'content-type': 'text/html' },
body: 'this could be a or '
}
};
```
### onConnectError
#### onConnectError(requestDetail, error)
* AnyProxy will call this method when failed to connect target server in https request
* `requestDetail` is the same one as in `beforeDealHttpsRequest`
* no return value is required
# Rule Samples
* here are some samples about frequently used rule file
* try these samples by `anyproxy --rule http://....js`
* how to test with curl:
* request the server directly `curl http://httpbin.org/`
* request the server via proxy `curl http://httpbin.org/ --proxy http://127.0.0.1:8001`
### use local response
* intercept the request towards http://httpbin.org , return the local-defined response
{{sample-rule:rule_sample/sample_use_local_response.js}}
### modify request header
* modify the user-agent sent to httpbin.org
{{sample-rule:rule_sample/sample_modify_request_header.js}}
### modify request body
* modify the post body of http://httpbin.org/post
{{sample-rule:rule_sample/sample_modify_request_data.js}}
### modify the request target
* send all the request towards http://httpbin.org/ to http://httpbin.org/user-agent
{{sample-rule:rule_sample/sample_modify_request_path.js}}
### modify request protocol
* modify the http request towards http://httpbin.org to https
{{sample-rule:rule_sample/sample_modify_request_protocol.js}}
### modify response status code
* modify all status code from http://httpbin.org to 404
{{sample-rule:rule_sample/sample_modify_response_statuscode.js}}
### modify the response header
* add X-Proxy-By:AnyProxy to the response header from http://httpbin.org/user-agent
{{sample-rule:rule_sample/sample_modify_response_header.js}}
### modify response data and delay
* append some info to the response of http://httpbin.org/user-agent, then delay the response for 5 seconds.
{{sample-rule:rule_sample/sample_modify_response_data.js}}
# Config Certification
### Config root CA in OSX
* this kind of errors is usually caused by untrusted root CA
> Warning: please keep your root CA safe since it may influence your system security.
install :
* double click *rootCA.crt*
* add cert into login or system
* find the newly imported AnyProxy certificates, configured as **Always Trust**
### Config root CA in windows
### Config OSX system proxy
* the config is in wifi - advanced
### config http proxy server
* take Chrome extent [SwitchyOmega] as an example(https://chrome.google.com/webstore/detail/padekgcemlokbadohgkifijomclgjgif)为例
### trust root CA in iOS
* Click *Root CA* in web ui, and follow the instruction to install
### trust root CA in iOS after 10.3
* Besides installing root CA, you have to "turn on" the certificate for web manually in *settings - general - about - Certificate Trust Settings*. Otherwire, safari will not trust the root CA generated by AnyProxy.
### trust root CA in Android
First of all, you need to download the root CA by clicking *Root CA* in web ui, and then scan the QR code.
Installing CA in Android could be different based on the system, we list some common steps as below, but you can find the right way in you system with similar menu path.
* The downloaded CA file can be directly installed by clicking, this is the easist way
* You need to install the CA file from other menu, such as:
* Settings -> Security & Location > Encryption & credentials -> Install from storage, and find your CA file to install
* Settings -> Security -> Install from SD card, and find you CA file to install
There are several file extensions of CA file which may not be compatible with all kinds of Android phones. `.crt` file is the most popular, while a few systems could only use .cer file such as OPPO R15. In AnyProxy, you can choose the type of certificate you need before installing.
### config iOS/Android proxy server
* proxy settings are placed in wifi setting
* iOS
* Android
# FAQ
### Q: can not deal https request in rule module.
* A: Any of these options could be used to change the way AnyProxy deall https requests
1. config `--intercept` when luanching AnyProxy via cli, or use `forceProxyHttps` when using as an npm module
2. place a `beforeDealHttpsRequest` function in your rule file and determine which request to intercept by your own.
### Q: get an error says *function is not yieldable*
* A: Rule module is driven by [co](https://www.npmjs.com/package/co). The functions inside should be yieldable, i.e. return a promise or be a generator function.
### Q: The connection is not private
AnyProxy will propmt this message when the certification of the site you're visiting is not issued by a common known CA. This happens when the certification is self-signed. If you know and trust it, you can ignore the error as below.
- If you run AnyProxy by command line
Pass in the option `--ignore-unauthorized-ssl` to ignore the certification errors, please mind that the option will be active for all connections.
```bash
anyproxy -i --ignore-unauthorized-ssl
```
- If you run AnyProxy by Nodejs
Pass in the option `dangerouslyIgnoreUnauthorized:true`, like this:
```js
const options = {
...,
dangerouslyIgnoreUnauthorized: true
};
const anyproxyIns = new AnyProxy.ProxyCore(options);
anyproxyIns.start();
```
*This is also a global option, all certification errors will be ignored*
- With the help of AnyProxy Rule
You can change the request with rule of course. For this scenario, all you need is to pass in an option to Nodejs `Http.rquest`, as we do in AnyProxy. A simple demo below:
```js
module.exports = {
*beforeSendRequest(requestDetail) {
if (requestDetail.url.indexOf('https://the-site-you-know.com') === 0) {
const newRequestOptions = requestDetail.requestOptions;
// set rejectUnauthorized as false
newRequestOptions.rejectUnauthorized = false;
return {
requestOptions: newRequestOptions
};
}
},
};
```
And we get a bonous here, AnyProxy will only ignore the errors for the site(s) we want it to!
================================================
FILE: docs/gitbook/gitbook-plugin-fontsettings/fontsettings.js
================================================
require(['gitbook', 'jquery'], function(gitbook, $) {
// Configuration
var MAX_SIZE = 4,
MIN_SIZE = 0,
BUTTON_ID;
// Current fontsettings state
var fontState;
// Default themes
var THEMES = [
{
config: 'white',
text: 'White',
id: 0
},
{
config: 'sepia',
text: 'Sepia',
id: 1
},
{
config: 'night',
text: 'Night',
id: 2
}
];
// Default font families
var FAMILIES = [
{
config: 'serif',
text: 'Serif',
id: 0
},
{
config: 'sans',
text: 'Sans',
id: 1
}
];
// Return configured themes
function getThemes() {
return THEMES;
}
// Modify configured themes
function setThemes(themes) {
THEMES = themes;
updateButtons();
}
// Return configured font families
function getFamilies() {
return FAMILIES;
}
// Modify configured font families
function setFamilies(families) {
FAMILIES = families;
updateButtons();
}
// Save current font settings
function saveFontSettings() {
gitbook.storage.set('fontState', fontState);
update();
}
// Increase font size
function enlargeFontSize(e) {
e.preventDefault();
if (fontState.size >= MAX_SIZE) return;
fontState.size++;
saveFontSettings();
}
// Decrease font size
function reduceFontSize(e) {
e.preventDefault();
if (fontState.size <= MIN_SIZE) return;
fontState.size--;
saveFontSettings();
}
// Change font family
function changeFontFamily(configName, e) {
if (e && e instanceof Event) {
e.preventDefault();
}
var familyId = getFontFamilyId(configName);
fontState.family = familyId;
saveFontSettings();
}
// Change type of color theme
function changeColorTheme(configName, e) {
if (e && e instanceof Event) {
e.preventDefault();
}
var $book = gitbook.state.$book;
// Remove currently applied color theme
if (fontState.theme !== 0)
$book.removeClass('color-theme-'+fontState.theme);
// Set new color theme
var themeId = getThemeId(configName);
fontState.theme = themeId;
if (fontState.theme !== 0)
$book.addClass('color-theme-'+fontState.theme);
saveFontSettings();
}
// Return the correct id for a font-family config key
// Default to first font-family
function getFontFamilyId(configName) {
// Search for plugin configured font family
var configFamily = $.grep(FAMILIES, function(family) {
return family.config == configName;
})[0];
// Fallback to default font family
return (!!configFamily)? configFamily.id : 0;
}
// Return the correct id for a theme config key
// Default to first theme
function getThemeId(configName) {
// Search for plugin configured theme
var configTheme = $.grep(THEMES, function(theme) {
return theme.config == configName;
})[0];
// Fallback to default theme
return (!!configTheme)? configTheme.id : 0;
}
function update() {
var $book = gitbook.state.$book;
$('.font-settings .font-family-list li').removeClass('active');
$('.font-settings .font-family-list li:nth-child('+(fontState.family+1)+')').addClass('active');
$book[0].className = $book[0].className.replace(/\bfont-\S+/g, '');
$book.addClass('font-size-'+fontState.size);
$book.addClass('font-family-'+fontState.family);
if(fontState.theme !== 0) {
$book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, '');
$book.addClass('color-theme-'+fontState.theme);
}
}
function init(config) {
// Search for plugin configured font family
var configFamily = getFontFamilyId(config.family),
configTheme = getThemeId(config.theme);
// Instantiate font state object
fontState = gitbook.storage.get('fontState', {
size: config.size || 2,
family: configFamily,
theme: configTheme
});
update();
}
function updateButtons() {
// Remove existing fontsettings buttons
if (!!BUTTON_ID) {
gitbook.toolbar.removeButton(BUTTON_ID);
}
// Create buttons in toolbar
BUTTON_ID = gitbook.toolbar.createButton({
icon: 'fa fa-font',
label: 'Font Settings',
className: 'font-settings',
dropdown: [
[
{
text: 'A',
className: 'font-reduce',
onClick: reduceFontSize
},
{
text: 'A',
className: 'font-enlarge',
onClick: enlargeFontSize
}
],
$.map(FAMILIES, function(family) {
family.onClick = function(e) {
return changeFontFamily(family.config, e);
};
return family;
}),
$.map(THEMES, function(theme) {
theme.onClick = function(e) {
return changeColorTheme(theme.config, e);
};
return theme;
})
]
});
}
// Init configuration at start
gitbook.events.bind('start', function(e, config) {
var opts = config.fontsettings;
// Generate buttons at start
updateButtons();
// Init current settings
init(opts);
});
// Expose API
gitbook.fontsettings = {
enlargeFontSize: enlargeFontSize,
reduceFontSize: reduceFontSize,
setTheme: changeColorTheme,
setFamily: changeFontFamily,
getThemes: getThemes,
setThemes: setThemes,
getFamilies: getFamilies,
setFamilies: setFamilies
};
});
================================================
FILE: docs/gitbook/gitbook-plugin-fontsettings/website.css
================================================
/*
* Theme 1
*/
.color-theme-1 .dropdown-menu {
background-color: #111111;
border-color: #7e888b;
}
.color-theme-1 .dropdown-menu .dropdown-caret .caret-inner {
border-bottom: 9px solid #111111;
}
.color-theme-1 .dropdown-menu .buttons {
border-color: #7e888b;
}
.color-theme-1 .dropdown-menu .button {
color: #afa790;
}
.color-theme-1 .dropdown-menu .button:hover {
color: #73553c;
}
/*
* Theme 2
*/
.color-theme-2 .dropdown-menu {
background-color: #2d3143;
border-color: #272a3a;
}
.color-theme-2 .dropdown-menu .dropdown-caret .caret-inner {
border-bottom: 9px solid #2d3143;
}
.color-theme-2 .dropdown-menu .buttons {
border-color: #272a3a;
}
.color-theme-2 .dropdown-menu .button {
color: #62677f;
}
.color-theme-2 .dropdown-menu .button:hover {
color: #f4f4f5;
}
.book .book-header .font-settings .font-enlarge {
line-height: 30px;
font-size: 1.4em;
}
.book .book-header .font-settings .font-reduce {
line-height: 30px;
font-size: 1em;
}
.book.color-theme-1 .book-body {
color: #704214;
background: #f3eacb;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section {
background: #f3eacb;
}
.book.color-theme-2 .book-body {
color: #bdcadb;
background: #1c1f2b;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section {
background: #1c1f2b;
}
.book.font-size-0 .book-body .page-inner section {
font-size: 1.2rem;
}
.book.font-size-1 .book-body .page-inner section {
font-size: 1.4rem;
}
.book.font-size-2 .book-body .page-inner section {
font-size: 1.6rem;
}
.book.font-size-3 .book-body .page-inner section {
font-size: 2.2rem;
}
.book.font-size-4 .book-body .page-inner section {
font-size: 4rem;
}
.book.font-family-0 {
font-family: Georgia, serif;
}
.book.font-family-1 {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal {
color: #704214;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a {
color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 {
color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 {
border-color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 {
color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr {
background-color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote {
border-color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
background: #fdf6e3;
color: #657b83;
border-color: #f8df9c;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight {
background-color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td {
border-color: #f5d06c;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr {
color: inherit;
background-color: #fdf6e3;
border-color: #444444;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) {
background-color: #fbeecb;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal {
color: #bdcadb;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a {
color: #3eb1d0;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 {
color: #fffffa;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 {
border-color: #373b4e;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 {
color: #373b4e;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr {
background-color: #373b4e;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote {
border-color: #373b4e;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
color: #9dbed8;
background: #2d3143;
border-color: #2d3143;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight {
background-color: #282a39;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td {
border-color: #3b3f54;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr {
color: #b6c2d2;
background-color: #2d3143;
border-color: #3b3f54;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) {
background-color: #35394b;
}
.book.color-theme-1 .book-header {
color: #afa790;
background: transparent;
}
.book.color-theme-1 .book-header .btn {
color: #afa790;
}
.book.color-theme-1 .book-header .btn:hover {
color: #73553c;
background: none;
}
.book.color-theme-1 .book-header h1 {
color: #704214;
}
.book.color-theme-2 .book-header {
color: #7e888b;
background: transparent;
}
.book.color-theme-2 .book-header .btn {
color: #3b3f54;
}
.book.color-theme-2 .book-header .btn:hover {
color: #fffff5;
background: none;
}
.book.color-theme-2 .book-header h1 {
color: #bdcadb;
}
.book.color-theme-1 .book-body .navigation {
color: #afa790;
}
.book.color-theme-1 .book-body .navigation:hover {
color: #73553c;
}
.book.color-theme-2 .book-body .navigation {
color: #383f52;
}
.book.color-theme-2 .book-body .navigation:hover {
color: #fffff5;
}
/*
* Theme 1
*/
.book.color-theme-1 .book-summary {
color: #afa790;
background: #111111;
border-right: 1px solid rgba(0, 0, 0, 0.07);
}
.book.color-theme-1 .book-summary .book-search {
background: transparent;
}
.book.color-theme-1 .book-summary .book-search input,
.book.color-theme-1 .book-summary .book-search input:focus {
border: 1px solid transparent;
}
.book.color-theme-1 .book-summary ul.summary li.divider {
background: #7e888b;
box-shadow: none;
}
.book.color-theme-1 .book-summary ul.summary li i.fa-check {
color: #33cc33;
}
.book.color-theme-1 .book-summary ul.summary li.done > a {
color: #877f6a;
}
.book.color-theme-1 .book-summary ul.summary li a,
.book.color-theme-1 .book-summary ul.summary li span {
color: #877f6a;
background: transparent;
font-weight: normal;
}
.book.color-theme-1 .book-summary ul.summary li.active > a,
.book.color-theme-1 .book-summary ul.summary li a:hover {
color: #704214;
background: transparent;
font-weight: normal;
}
/*
* Theme 2
*/
.book.color-theme-2 .book-summary {
color: #bcc1d2;
background: #2d3143;
border-right: none;
}
.book.color-theme-2 .book-summary .book-search {
background: transparent;
}
.book.color-theme-2 .book-summary .book-search input,
.book.color-theme-2 .book-summary .book-search input:focus {
border: 1px solid transparent;
}
.book.color-theme-2 .book-summary ul.summary li.divider {
background: #272a3a;
box-shadow: none;
}
.book.color-theme-2 .book-summary ul.summary li i.fa-check {
color: #33cc33;
}
.book.color-theme-2 .book-summary ul.summary li.done > a {
color: #62687f;
}
.book.color-theme-2 .book-summary ul.summary li a,
.book.color-theme-2 .book-summary ul.summary li span {
color: #c1c6d7;
background: transparent;
font-weight: 600;
}
.book.color-theme-2 .book-summary ul.summary li.active > a,
.book.color-theme-2 .book-summary ul.summary li a:hover {
color: #f4f4f5;
background: #252737;
font-weight: 600;
}
================================================
FILE: docs/gitbook/gitbook-plugin-highlight/ebook.css
================================================
pre,
code {
/* http://jmblog.github.io/color-themes-for-highlightjs */
/* Tomorrow Comment */
/* Tomorrow Red */
/* Tomorrow Orange */
/* Tomorrow Yellow */
/* Tomorrow Green */
/* Tomorrow Aqua */
/* Tomorrow Blue */
/* Tomorrow Purple */
}
pre .hljs-comment,
code .hljs-comment,
pre .hljs-title,
code .hljs-title {
color: #8e908c;
}
pre .hljs-variable,
code .hljs-variable,
pre .hljs-attribute,
code .hljs-attribute,
pre .hljs-tag,
code .hljs-tag,
pre .hljs-regexp,
code .hljs-regexp,
pre .hljs-deletion,
code .hljs-deletion,
pre .ruby .hljs-constant,
code .ruby .hljs-constant,
pre .xml .hljs-tag .hljs-title,
code .xml .hljs-tag .hljs-title,
pre .xml .hljs-pi,
code .xml .hljs-pi,
pre .xml .hljs-doctype,
code .xml .hljs-doctype,
pre .html .hljs-doctype,
code .html .hljs-doctype,
pre .css .hljs-id,
code .css .hljs-id,
pre .css .hljs-class,
code .css .hljs-class,
pre .css .hljs-pseudo,
code .css .hljs-pseudo {
color: #c82829;
}
pre .hljs-number,
code .hljs-number,
pre .hljs-preprocessor,
code .hljs-preprocessor,
pre .hljs-pragma,
code .hljs-pragma,
pre .hljs-built_in,
code .hljs-built_in,
pre .hljs-literal,
code .hljs-literal,
pre .hljs-params,
code .hljs-params,
pre .hljs-constant,
code .hljs-constant {
color: #f5871f;
}
pre .ruby .hljs-class .hljs-title,
code .ruby .hljs-class .hljs-title,
pre .css .hljs-rules .hljs-attribute,
code .css .hljs-rules .hljs-attribute {
color: #eab700;
}
pre .hljs-string,
code .hljs-string,
pre .hljs-value,
code .hljs-value,
pre .hljs-inheritance,
code .hljs-inheritance,
pre .hljs-header,
code .hljs-header,
pre .hljs-addition,
code .hljs-addition,
pre .ruby .hljs-symbol,
code .ruby .hljs-symbol,
pre .xml .hljs-cdata,
code .xml .hljs-cdata {
color: #718c00;
}
pre .css .hljs-hexcolor,
code .css .hljs-hexcolor {
color: #3e999f;
}
pre .hljs-function,
code .hljs-function,
pre .python .hljs-decorator,
code .python .hljs-decorator,
pre .python .hljs-title,
code .python .hljs-title,
pre .ruby .hljs-function .hljs-title,
code .ruby .hljs-function .hljs-title,
pre .ruby .hljs-title .hljs-keyword,
code .ruby .hljs-title .hljs-keyword,
pre .perl .hljs-sub,
code .perl .hljs-sub,
pre .javascript .hljs-title,
code .javascript .hljs-title,
pre .coffeescript .hljs-title,
code .coffeescript .hljs-title {
color: #4271ae;
}
pre .hljs-keyword,
code .hljs-keyword,
pre .javascript .hljs-function,
code .javascript .hljs-function {
color: #8959a8;
}
pre .hljs,
code .hljs {
display: block;
background: white;
color: #4d4d4c;
padding: 0.5em;
}
pre .coffeescript .javascript,
code .coffeescript .javascript,
pre .javascript .xml,
code .javascript .xml,
pre .tex .hljs-formula,
code .tex .hljs-formula,
pre .xml .javascript,
code .xml .javascript,
pre .xml .vbscript,
code .xml .vbscript,
pre .xml .css,
code .xml .css,
pre .xml .hljs-cdata,
code .xml .hljs-cdata {
opacity: 0.5;
}
================================================
FILE: docs/gitbook/gitbook-plugin-highlight/website.css
================================================
.book .book-body .page-wrapper .page-inner section.normal pre,
.book .book-body .page-wrapper .page-inner section.normal code {
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
/* Tomorrow Comment */
/* Tomorrow Red */
/* Tomorrow Orange */
/* Tomorrow Yellow */
/* Tomorrow Green */
/* Tomorrow Aqua */
/* Tomorrow Blue */
/* Tomorrow Purple */
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-title {
color: #8e908c;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-deletion,
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype,
.book .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype,
.book .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype,
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-id,
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-class,
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo {
color: #c82829;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-params,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-constant {
color: #f5871f;
}
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute {
color: #eab700;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-value,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-value,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-header,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-addition,
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
color: #718c00;
}
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor,
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor {
color: #3e999f;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-function,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-function,
.book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator,
.book .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator,
.book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .python .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub,
.book .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub,
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title {
color: #4271ae;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function,
.book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function {
color: #8959a8;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book .book-body .page-wrapper .page-inner section.normal code .hljs {
display: block;
background: white;
color: #4d4d4c;
padding: 0.5em;
}
.book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript,
.book .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript,
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .xml,
.book .book-body .page-wrapper .page-inner section.normal code .javascript .xml,
.book .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
.book .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .javascript,
.book .book-body .page-wrapper .page-inner section.normal code .xml .javascript,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript,
.book .book-body .page-wrapper .page-inner section.normal code .xml .vbscript,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .css,
.book .book-body .page-wrapper .page-inner section.normal code .xml .css,
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
opacity: 0.5;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
/*
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
*/
/* Solarized Green */
/* Solarized Cyan */
/* Solarized Blue */
/* Solarized Yellow */
/* Solarized Orange */
/* Solarized Red */
/* Solarized Violet */
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs {
display: block;
padding: 0.5em;
background: #fdf6e3;
color: #657b83;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template_comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template_comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-header,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-header,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctype,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctype,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pi,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pi,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-javadoc,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-javadoc {
color: #93a1a1;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-winutils,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-winutils,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .method,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .method,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-tag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-tag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-request,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-request,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-status,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-status,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .nginx .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .nginx .hljs-title {
color: #859900;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-command,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-command,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag .hljs-value,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-tag .hljs-value,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-rules .hljs-value,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-rules .hljs-value,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-phpdoc,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-phpdoc,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-hexcolor,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-hexcolor,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_url,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_url {
color: #2aa198;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-localvars,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-localvars,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-chunk,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-chunk,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-decorator,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-decorator,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-identifier,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-identifier,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .vhdl .hljs-literal,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .vhdl .hljs-literal,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-id,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-id,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-function,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-function {
color: #268bd2;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-body,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-body,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .smalltalk .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .smalltalk .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-constant,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-parent,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-parent,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .haskell .hljs-type,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .haskell .hljs-type,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_reference,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_reference {
color: #b58900;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-shebang,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-shebang,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-change,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-change,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-special,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-special,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr_selector,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr_selector,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-cdata,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-cdata,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .clojure .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .clojure .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-header {
color: #cb4b16;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-important,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-important {
color: #dc322f;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_label,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_label {
color: #6c71c4;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula {
background: #eee8d5;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
/* Tomorrow Night Bright Theme */
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
/* Tomorrow Comment */
/* Tomorrow Red */
/* Tomorrow Orange */
/* Tomorrow Yellow */
/* Tomorrow Green */
/* Tomorrow Aqua */
/* Tomorrow Blue */
/* Tomorrow Purple */
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title {
color: #969896;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-id,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-class,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo {
color: #d54e53;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-constant {
color: #e78c45;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute {
color: #e7c547;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-value,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-value,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-header,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-addition,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
color: #b9ca4a;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor {
color: #70c0b1;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-function,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-function,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title {
color: #7aa6da;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function {
color: #c397d8;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs {
display: block;
background: black;
color: #eaeaea;
padding: 0.5em;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .xml,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .xml,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .javascript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .javascript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .vbscript,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .css,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .css,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
opacity: 0.5;
}
================================================
FILE: docs/gitbook/gitbook-plugin-lunr/search-lunr.js
================================================
require([
'gitbook',
'jquery'
], function(gitbook, $) {
// Define global search engine
function LunrSearchEngine() {
this.index = null;
this.store = {};
this.name = 'LunrSearchEngine';
}
// Initialize lunr by fetching the search index
LunrSearchEngine.prototype.init = function() {
var that = this;
var d = $.Deferred();
$.getJSON(gitbook.state.basePath+'/search_index.json')
.then(function(data) {
// eslint-disable-next-line no-undef
that.index = lunr.Index.load(data.index);
that.store = data.store;
d.resolve();
});
return d.promise();
};
// Search for a term and return results
LunrSearchEngine.prototype.search = function(q, offset, length) {
var that = this;
var results = [];
if (this.index) {
results = $.map(this.index.search(q), function(result) {
var doc = that.store[result.ref];
return {
title: doc.title,
url: doc.url,
body: doc.summary || doc.body
};
});
}
return $.Deferred().resolve({
query: q,
results: results.slice(0, length),
count: results.length
}).promise();
};
// Set gitbook research
gitbook.events.bind('start', function(e, config) {
var engine = gitbook.search.getEngine();
if (!engine) {
gitbook.search.setEngine(LunrSearchEngine, config);
}
});
});
================================================
FILE: docs/gitbook/gitbook-plugin-search/search-engine.js
================================================
require([
'gitbook',
'jquery'
], function(gitbook, $) {
// Global search objects
var engine = null;
var initialized = false;
// Set a new search engine
function setEngine(Engine, config) {
initialized = false;
engine = new Engine(config);
init(config);
}
// Initialize search engine with config
function init(config) {
if (!engine) throw new Error('No engine set for research. Set an engine using gitbook.research.setEngine(Engine).');
return engine.init(config)
.then(function() {
initialized = true;
gitbook.events.trigger('search.ready');
});
}
// Launch search for query q
function query(q, offset, length) {
if (!initialized) throw new Error('Search has not been initialized');
return engine.search(q, offset, length);
}
// Get stats about search
function getEngine() {
return engine? engine.name : null;
}
function isInitialized() {
return initialized;
}
// Initialize gitbook.search
gitbook.search = {
setEngine: setEngine,
getEngine: getEngine,
query: query,
isInitialized: isInitialized
};
});
================================================
FILE: docs/gitbook/gitbook-plugin-search/search.css
================================================
/*
This CSS only styled the search results section, not the search input
It defines the basic interraction to hide content when displaying results, etc
*/
#book-search-results .search-results {
display: none;
}
#book-search-results .search-results ul.search-results-list {
list-style-type: none;
padding-left: 0;
}
#book-search-results .search-results ul.search-results-list li {
margin-bottom: 1.5rem;
padding-bottom: 0.5rem;
/* Highlight results */
}
#book-search-results .search-results ul.search-results-list li p em {
background-color: rgba(255, 220, 0, 0.4);
font-style: normal;
}
#book-search-results .search-results .no-results {
display: none;
}
#book-search-results.open .search-results {
display: block;
}
#book-search-results.open .search-noresults {
display: none;
}
#book-search-results.no-results .search-results .has-results {
display: none;
}
#book-search-results.no-results .search-results .no-results {
display: block;
}
================================================
FILE: docs/gitbook/gitbook-plugin-search/search.js
================================================
require([
'gitbook',
'jquery'
], function(gitbook, $) {
var MAX_RESULTS = 15;
var MAX_DESCRIPTION_SIZE = 500;
var usePushState = (typeof history.pushState !== 'undefined');
// DOM Elements
var $body = $('body');
var $bookSearchResults;
var $searchInput;
var $searchList;
var $searchTitle;
var $searchResultsCount;
var $searchQuery;
// Throttle search
function throttle(fn, wait) {
var timeout;
return function() {
var ctx = this, args = arguments;
if (!timeout) {
timeout = setTimeout(function() {
timeout = null;
fn.apply(ctx, args);
}, wait);
}
};
}
function displayResults(res) {
$bookSearchResults.addClass('open');
var noResults = res.count == 0;
$bookSearchResults.toggleClass('no-results', noResults);
// Clear old results
$searchList.empty();
// Display title for research
$searchResultsCount.text(res.count);
$searchQuery.text(res.query);
// Create an
element for each result
res.results.forEach(function(res) {
var $li = $('
', {
'class': 'search-results-item'
});
var $title = $('