@wppconnect/server 2.0.1 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +98 -28
- package/dist/config/upload.js +1 -1
- package/dist/config.js +8 -2
- package/dist/controller/catalogController.js +296 -29
- package/dist/controller/deviceController.js +875 -30
- package/dist/controller/encryptController.js +14 -2
- package/dist/controller/groupController.js +343 -9
- package/dist/controller/labelsController.js +68 -1
- package/dist/controller/messageController.js +289 -40
- package/dist/controller/miscController.js +221 -0
- package/dist/controller/orderController.js +27 -3
- package/dist/controller/sessionController.js +313 -8
- package/dist/controller/statusController.js +53 -5
- package/dist/index.js +7 -7
- package/dist/mapper/index.js +2 -2
- package/dist/middleware/auth.js +16 -15
- package/dist/middleware/healthCheck.js +15 -1
- package/dist/middleware/statusConnection.js +2 -1
- package/dist/routes/index.js +741 -710
- package/dist/swagger-backup.json +21463 -0
- package/dist/swagger.js +100 -0
- package/dist/swagger.json +5132 -20462
- package/dist/types/express/index.d.js +2 -0
- package/dist/util/chatWootClient.js +49 -45
- package/dist/util/createSessionUtil.js +55 -45
- package/dist/util/db/mongodb/db.js +7 -7
- package/dist/util/functions.js +31 -23
- package/dist/util/getAllTokens.js +1 -1
- package/dist/util/logger.js +22 -22
- package/dist/util/manageSession.js +130 -0
- package/dist/util/sessionUtil.js +5 -3
- package/dist/util/tokenStore/FileTokenStore/FileTokenStore.js +7 -7
- package/dist/util/tokenStore/mongodbTokenStory.js +2 -3
- package/dist/util/tokenStore/redisTokenStory.js +25 -25
- package/docker-compose.yml +1 -1
- package/package.json +39 -32
- package/wppconnect_tokens/wppconnect.json +0 -0
- package/dist/types/Request.js +0 -2
- package/wppconnect_tokens/bugpromo.data.json +0 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# WPPConnect Team
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
## _WPPConnect Server_
|
|
5
4
|
|
|
6
5
|
[](https://www.npmjs.com/package/@wppconnect/server)
|
|
@@ -11,8 +10,6 @@
|
|
|
11
10
|
[](https://github.com/wppconnect-team/wppconnect-server/actions/workflows/build.yml)
|
|
12
11
|
[](https://github.com/release-it/release-it)
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
13
|
Wppconnect Server is a ready-to-use API, just download, install, and start using, simple as that.
|
|
17
14
|
|
|
18
15
|
- Javascript ES6
|
|
@@ -27,7 +24,8 @@ Wppconnect Server is a ready-to-use API, just download, install, and start using
|
|
|
27
24
|
[](https://www.youtube.com/c/wppconnect)
|
|
28
25
|
|
|
29
26
|
## Documentations
|
|
30
|
-
|
|
27
|
+
|
|
28
|
+
Access our documentation on [postman](https://documenter.getpostman.com/view/9139457/TzshF4jQ)
|
|
31
29
|
|
|
32
30
|
Access our documentation on [Swagger](https://wppconnect.io/swagger/wppconnect-server)
|
|
33
31
|
|
|
@@ -74,6 +72,7 @@ npm install
|
|
|
74
72
|
sudo apt-get install -y libxshmfence-dev libgbm-dev wget unzip fontconfig locales gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
|
|
75
73
|
|
|
76
74
|
```
|
|
75
|
+
|
|
77
76
|
## Install google chrome
|
|
78
77
|
|
|
79
78
|
```sh
|
|
@@ -104,49 +103,120 @@ yarn build
|
|
|
104
103
|
|
|
105
104
|
# Configuration
|
|
106
105
|
|
|
107
|
-
This server use config.
|
|
106
|
+
This server use config.ts file to define some options, default values are:
|
|
108
107
|
|
|
109
108
|
```javascript
|
|
110
109
|
{
|
|
111
110
|
/* secret key to genereta access token */
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
//
|
|
116
|
-
|
|
111
|
+
secretKey: 'THISISMYSECURETOKEN',
|
|
112
|
+
host: 'http://localhost',
|
|
113
|
+
port: '21465',
|
|
114
|
+
// Device name for show on whatsapp device
|
|
115
|
+
deviceName: 'WppConnect',
|
|
116
|
+
poweredBy: 'WPPConnect-Server',
|
|
117
117
|
// starts all sessions when starting the server.
|
|
118
|
-
|
|
118
|
+
startAllSession: true,
|
|
119
|
+
tokenStoreType: 'file',
|
|
119
120
|
// sets the maximum global listeners. 0 = infinity.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
maxListeners: 15,
|
|
122
|
+
// create userDataDir for each puppeteer instance for working with Multi Device
|
|
123
|
+
customUserDataDir: './userDataDir/',
|
|
124
|
+
webhook: {
|
|
125
|
+
// set default webhook
|
|
126
|
+
url: null,
|
|
123
127
|
// automatically downloads files to upload to the webhook
|
|
124
|
-
|
|
128
|
+
autoDownload: true,
|
|
129
|
+
// enable upload to s3
|
|
130
|
+
uploadS3: false,
|
|
131
|
+
// set default bucket name on aws s3
|
|
132
|
+
awsBucketName: '',
|
|
125
133
|
//marks messages as read when the webhook returns ok
|
|
126
|
-
|
|
134
|
+
readMessage: true,
|
|
127
135
|
//sends all unread messages to the webhook when the server starts
|
|
128
|
-
|
|
136
|
+
allUnreadOnStart: false,
|
|
137
|
+
// send all events of message status (read, sended, etc)
|
|
138
|
+
listenAcks: true,
|
|
139
|
+
// send all events of contacts online or offline for webook and socket
|
|
140
|
+
onPresenceChanged: true,
|
|
141
|
+
// send all events of groups participants changed for webook and socket
|
|
142
|
+
onParticipantsChanged: true,
|
|
143
|
+
// send all events of reacted messages for webook and socket
|
|
144
|
+
onReactionMessage: true,
|
|
145
|
+
// send all events of poll messages for webook and socket
|
|
146
|
+
onPollResponse: true,
|
|
147
|
+
// send all events of revoked messages for webook and socket
|
|
148
|
+
onRevokedMessage: true,
|
|
149
|
+
// send all events of labels for webook and socket
|
|
150
|
+
onLabelUpdated: true,
|
|
151
|
+
},
|
|
152
|
+
// send data to chatwoot
|
|
153
|
+
chatwoot: {
|
|
154
|
+
sendQrCode: true,
|
|
155
|
+
sendStatus: true,
|
|
129
156
|
},
|
|
130
157
|
//functionality that archives conversations, runs when the server starts
|
|
131
|
-
|
|
132
|
-
|
|
158
|
+
archive: {
|
|
159
|
+
enable: false,
|
|
133
160
|
//maximum interval between filings.
|
|
134
|
-
|
|
135
|
-
|
|
161
|
+
waitTime: 10,
|
|
162
|
+
daysToArchive: 45,
|
|
163
|
+
},
|
|
164
|
+
log: {
|
|
165
|
+
level: 'silly', // Before open a issue, change level to silly and retry a action
|
|
166
|
+
logger: ['console', 'file'],
|
|
167
|
+
},
|
|
168
|
+
// create options for using on wppconnect-lib
|
|
169
|
+
createOptions: {
|
|
170
|
+
browserArgs: [
|
|
171
|
+
'--disable-web-security',
|
|
172
|
+
'--no-sandbox',
|
|
173
|
+
'--disable-web-security',
|
|
174
|
+
'--aggressive-cache-discard',
|
|
175
|
+
'--disable-cache',
|
|
176
|
+
'--disable-application-cache',
|
|
177
|
+
'--disable-offline-load-stale-cache',
|
|
178
|
+
'--disk-cache-size=0',
|
|
179
|
+
'--disable-background-networking',
|
|
180
|
+
'--disable-default-apps',
|
|
181
|
+
'--disable-extensions',
|
|
182
|
+
'--disable-sync',
|
|
183
|
+
'--disable-translate',
|
|
184
|
+
'--hide-scrollbars',
|
|
185
|
+
'--metrics-recording-only',
|
|
186
|
+
'--mute-audio',
|
|
187
|
+
'--no-first-run',
|
|
188
|
+
'--safebrowsing-disable-auto-update',
|
|
189
|
+
'--ignore-certificate-errors',
|
|
190
|
+
'--ignore-ssl-errors',
|
|
191
|
+
'--ignore-certificate-errors-spki-list',
|
|
192
|
+
],
|
|
193
|
+
},
|
|
194
|
+
mapper: {
|
|
195
|
+
enable: false,
|
|
196
|
+
prefix: 'tagone-',
|
|
136
197
|
},
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
198
|
+
// Configurations for connect with database
|
|
199
|
+
db: {
|
|
200
|
+
mongodbDatabase: 'tokens',
|
|
201
|
+
mongodbCollection: '',
|
|
202
|
+
mongodbUser: '',
|
|
203
|
+
mongodbPassword: '',
|
|
204
|
+
mongodbHost: '',
|
|
205
|
+
mongoIsRemote: true,
|
|
206
|
+
mongoURLRemote: '',
|
|
207
|
+
mongodbPort: 27017,
|
|
208
|
+
redisHost: 'localhost',
|
|
209
|
+
redisPort: 6379,
|
|
210
|
+
redisPassword: '',
|
|
211
|
+
redisDb: 0,
|
|
212
|
+
redisPrefix: 'docker',
|
|
140
213
|
},
|
|
141
|
-
"createOptions": {
|
|
142
|
-
"browserArgs": ["--no-sandbox"]
|
|
143
|
-
}
|
|
144
214
|
}
|
|
145
215
|
```
|
|
146
216
|
|
|
147
217
|
# Secret Key
|
|
148
218
|
|
|
149
|
-
Your `secretKey` is inside the `config.
|
|
219
|
+
Your `secretKey` is inside the `config.ts` file. You must change the default value to one that only you know.
|
|
150
220
|
|
|
151
221
|
<!--  -->
|
|
152
222
|
|
package/dist/config/upload.js
CHANGED
|
@@ -29,4 +29,4 @@ var _path = _interopRequireDefault(require("path")); /*
|
|
|
29
29
|
* See the License for the specific language governing permissions and
|
|
30
30
|
* limitations under the License.
|
|
31
31
|
*/const storage = _multer.default.diskStorage({ destination: function (req, file, cb) {const __dirname = _path.default.resolve(_path.default.dirname(''));cb(null, _path.default.resolve(__dirname, 'uploads'));}, filename: function (req, file, cb) {const filename = `wppConnect-${Date.now()}-${file.originalname}`;cb(null, filename);} });const uploads = (0, _multer.default)({ storage: storage });var _default = uploads;exports.default = _default;
|
|
32
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbXVsdGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGF0aCIsInN0b3JhZ2UiLCJtdWx0ZXIiLCJkaXNrU3RvcmFnZSIsImRlc3RpbmF0aW9uIiwicmVxIiwiZmlsZSIsImNiIiwiX19kaXJuYW1lIiwicGF0aCIsInJlc29sdmUiLCJkaXJuYW1lIiwiZmlsZW5hbWUiLCJEYXRlIiwibm93Iiwib3JpZ2luYWxuYW1lIiwidXBsb2FkcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3VwbG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjEgV1BQQ29ubmVjdCBUZWFtXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgbXVsdGVyIGZyb20gJ211bHRlcic7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuY29uc3Qgc3RvcmFnZSA9IG11bHRlci5kaXNrU3RvcmFnZSh7XG4gIGRlc3RpbmF0aW9uOiBmdW5jdGlvbiAocmVxLCBmaWxlLCBjYikge1xuICAgIGNvbnN0IF9fZGlybmFtZSA9IHBhdGgucmVzb2x2ZShwYXRoLmRpcm5hbWUoJycpKTtcbiAgICBjYihudWxsLCBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAndXBsb2FkcycpKTtcbiAgfSxcbiAgZmlsZW5hbWU6IGZ1bmN0aW9uIChyZXEsIGZpbGUsIGNiKSB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBgd3BwQ29ubmVjdC0ke0RhdGUubm93KCl9LSR7ZmlsZS5vcmlnaW5hbG5hbWV9YDtcbiAgICBjYihudWxsLCBmaWxlbmFtZSk7XG4gIH0sXG59KTtcblxuY29uc3QgdXBsb2FkcyA9IG11bHRlcih7IHN0b3JhZ2U6IHN0b3JhZ2UgfSk7XG5leHBvcnQgZGVmYXVsdCB1cGxvYWRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUEsVUFBd0IsQ0FoQnhCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUlBLE1BQU1FLE9BQU8sR0FBR0MsZUFBTSxDQUFDQyxXQUFXLENBQUMsRUFDakNDLFdBQVcsRUFBRSxTQUFBQSxDQUFVQyxHQUFHLEVBQUVDLElBQUksRUFBRUMsRUFBRSxFQUFFLENBQ3BDLE1BQU1DLFNBQVMsR0FBR0MsYUFBSSxDQUFDQyxPQUFPLENBQUNELGFBQUksQ0FBQ0UsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ2hESixFQUFFLENBQUMsSUFBSSxFQUFFRSxhQUFJLENBQUNDLE9BQU8sQ0FBQ0YsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQzlDLENBQUMsRUFDREksUUFBUSxFQUFFLFNBQUFBLENBQVVQLEdBQUcsRUFBRUMsSUFBSSxFQUFFQyxFQUFFLEVBQUUsQ0FDakMsTUFBTUssUUFBUSxHQUFJLGNBQWFDLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUUsSUFBR1IsSUFBSSxDQUFDUyxZQUFhLEVBQUMsQ0FDaEVSLEVBQUUsQ0FBQyxJQUFJLEVBQUVLLFFBQVEsQ0FBQyxDQUNwQixDQUFDLENBQ0gsQ0FBQyxDQUFDLENBRUYsTUFBTUksT0FBTyxHQUFHLElBQUFkLGVBQU0sRUFBQyxFQUFFRCxPQUFPLEVBQUVBLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBZ0IsUUFBQSxHQUM5QkQsT0FBTyxDQUFBRSxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
|
package/dist/config.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
url: null,
|
|
13
13
|
autoDownload: true,
|
|
14
14
|
uploadS3: false,
|
|
15
|
+
awsBucketName: '',
|
|
15
16
|
readMessage: true,
|
|
16
17
|
allUnreadOnStart: false,
|
|
17
18
|
listenAcks: true,
|
|
@@ -19,7 +20,12 @@
|
|
|
19
20
|
onParticipantsChanged: true,
|
|
20
21
|
onReactionMessage: true,
|
|
21
22
|
onPollResponse: true,
|
|
22
|
-
onRevokedMessage: true
|
|
23
|
+
onRevokedMessage: true,
|
|
24
|
+
onLabelUpdated: true
|
|
25
|
+
},
|
|
26
|
+
chatwoot: {
|
|
27
|
+
sendQrCode: true,
|
|
28
|
+
sendStatus: true
|
|
23
29
|
},
|
|
24
30
|
archive: {
|
|
25
31
|
enable: false,
|
|
@@ -75,4 +81,4 @@
|
|
|
75
81
|
redisPrefix: 'docker'
|
|
76
82
|
}
|
|
77
83
|
};exports.default = _default;
|
|
78
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZWNyZXRLZXkiLCJob3N0IiwicG9ydCIsImRldmljZU5hbWUiLCJwb3dlcmVkQnkiLCJzdGFydEFsbFNlc3Npb24iLCJ0b2tlblN0b3JlVHlwZSIsIm1heExpc3RlbmVycyIsImN1c3RvbVVzZXJEYXRhRGlyIiwid2ViaG9vayIsInVybCIsImF1dG9Eb3dubG9hZCIsInVwbG9hZFMzIiwiYXdzQnVja2V0TmFtZSIsInJlYWRNZXNzYWdlIiwiYWxsVW5yZWFkT25TdGFydCIsImxpc3RlbkFja3MiLCJvblByZXNlbmNlQ2hhbmdlZCIsIm9uUGFydGljaXBhbnRzQ2hhbmdlZCIsIm9uUmVhY3Rpb25NZXNzYWdlIiwib25Qb2xsUmVzcG9uc2UiLCJvblJldm9rZWRNZXNzYWdlIiwib25MYWJlbFVwZGF0ZWQiLCJjaGF0d29vdCIsInNlbmRRckNvZGUiLCJzZW5kU3RhdHVzIiwiYXJjaGl2ZSIsImVuYWJsZSIsIndhaXRUaW1lIiwiZGF5c1RvQXJjaGl2ZSIsImxvZyIsImxldmVsIiwibG9nZ2VyIiwiY3JlYXRlT3B0aW9ucyIsImJyb3dzZXJBcmdzIiwibWFwcGVyIiwicHJlZml4IiwiZGIiLCJtb25nb2RiRGF0YWJhc2UiLCJtb25nb2RiQ29sbGVjdGlvbiIsIm1vbmdvZGJVc2VyIiwibW9uZ29kYlBhc3N3b3JkIiwibW9uZ29kYkhvc3QiLCJtb25nb0lzUmVtb3RlIiwibW9uZ29VUkxSZW1vdGUiLCJtb25nb2RiUG9ydCIsInJlZGlzSG9zdCIsInJlZGlzUG9ydCIsInJlZGlzUGFzc3dvcmQiLCJyZWRpc0RiIiwicmVkaXNQcmVmaXgiLCJleHBvcnRzIiwiZGVmYXVsdCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIHNlY3JldEtleTogJ1RISVNJU01ZU0VDVVJFVE9LRU4nLFxuICBob3N0OiAnaHR0cDovL2xvY2FsaG9zdCcsXG4gIHBvcnQ6ICcyMTQ2NScsXG4gIGRldmljZU5hbWU6ICdXcHBDb25uZWN0JyxcbiAgcG93ZXJlZEJ5OiAnV1BQQ29ubmVjdC1TZXJ2ZXInLFxuICBzdGFydEFsbFNlc3Npb246IHRydWUsXG4gIHRva2VuU3RvcmVUeXBlOiAnZmlsZScsXG4gIG1heExpc3RlbmVyczogMTUsXG4gIGN1c3RvbVVzZXJEYXRhRGlyOiAnLi91c2VyRGF0YURpci8nLFxuICB3ZWJob29rOiB7XG4gICAgdXJsOiBudWxsLFxuICAgIGF1dG9Eb3dubG9hZDogdHJ1ZSxcbiAgICB1cGxvYWRTMzogZmFsc2UsXG4gICAgYXdzQnVja2V0TmFtZTogJycsXG4gICAgcmVhZE1lc3NhZ2U6IHRydWUsXG4gICAgYWxsVW5yZWFkT25TdGFydDogZmFsc2UsXG4gICAgbGlzdGVuQWNrczogdHJ1ZSxcbiAgICBvblByZXNlbmNlQ2hhbmdlZDogdHJ1ZSxcbiAgICBvblBhcnRpY2lwYW50c0NoYW5nZWQ6IHRydWUsXG4gICAgb25SZWFjdGlvbk1lc3NhZ2U6IHRydWUsXG4gICAgb25Qb2xsUmVzcG9uc2U6IHRydWUsXG4gICAgb25SZXZva2VkTWVzc2FnZTogdHJ1ZSxcbiAgICBvbkxhYmVsVXBkYXRlZDogdHJ1ZSxcbiAgfSxcbiAgY2hhdHdvb3Q6IHtcbiAgICBzZW5kUXJDb2RlOiB0cnVlLFxuICAgIHNlbmRTdGF0dXM6IHRydWUsXG4gIH0sXG4gIGFyY2hpdmU6IHtcbiAgICBlbmFibGU6IGZhbHNlLFxuICAgIHdhaXRUaW1lOiAxMCxcbiAgICBkYXlzVG9BcmNoaXZlOiA0NSxcbiAgfSxcbiAgbG9nOiB7XG4gICAgbGV2ZWw6ICdzaWxseScsIC8vIEJlZm9yZSBvcGVuIGEgaXNzdWUsIGNoYW5nZSBsZXZlbCB0byBzaWxseSBhbmQgcmV0cnkgYSBhY3Rpb25cbiAgICBsb2dnZXI6IFsnY29uc29sZScsICdmaWxlJ10sXG4gIH0sXG4gIGNyZWF0ZU9wdGlvbnM6IHtcbiAgICBicm93c2VyQXJnczogW1xuICAgICAgJy0tZGlzYWJsZS13ZWItc2VjdXJpdHknLFxuICAgICAgJy0tbm8tc2FuZGJveCcsXG4gICAgICAnLS1kaXNhYmxlLXdlYi1zZWN1cml0eScsXG4gICAgICAnLS1hZ2dyZXNzaXZlLWNhY2hlLWRpc2NhcmQnLFxuICAgICAgJy0tZGlzYWJsZS1jYWNoZScsXG4gICAgICAnLS1kaXNhYmxlLWFwcGxpY2F0aW9uLWNhY2hlJyxcbiAgICAgICctLWRpc2FibGUtb2ZmbGluZS1sb2FkLXN0YWxlLWNhY2hlJyxcbiAgICAgICctLWRpc2stY2FjaGUtc2l6ZT0wJyxcbiAgICAgICctLWRpc2FibGUtYmFja2dyb3VuZC1uZXR3b3JraW5nJyxcbiAgICAgICctLWRpc2FibGUtZGVmYXVsdC1hcHBzJyxcbiAgICAgICctLWRpc2FibGUtZXh0ZW5zaW9ucycsXG4gICAgICAnLS1kaXNhYmxlLXN5bmMnLFxuICAgICAgJy0tZGlzYWJsZS10cmFuc2xhdGUnLFxuICAgICAgJy0taGlkZS1zY3JvbGxiYXJzJyxcbiAgICAgICctLW1ldHJpY3MtcmVjb3JkaW5nLW9ubHknLFxuICAgICAgJy0tbXV0ZS1hdWRpbycsXG4gICAgICAnLS1uby1maXJzdC1ydW4nLFxuICAgICAgJy0tc2FmZWJyb3dzaW5nLWRpc2FibGUtYXV0by11cGRhdGUnLFxuICAgICAgJy0taWdub3JlLWNlcnRpZmljYXRlLWVycm9ycycsXG4gICAgICAnLS1pZ25vcmUtc3NsLWVycm9ycycsXG4gICAgICAnLS1pZ25vcmUtY2VydGlmaWNhdGUtZXJyb3JzLXNwa2ktbGlzdCcsXG4gICAgXSxcbiAgfSxcbiAgbWFwcGVyOiB7XG4gICAgZW5hYmxlOiBmYWxzZSxcbiAgICBwcmVmaXg6ICd0YWdvbmUtJyxcbiAgfSxcbiAgZGI6IHtcbiAgICBtb25nb2RiRGF0YWJhc2U6ICd0b2tlbnMnLFxuICAgIG1vbmdvZGJDb2xsZWN0aW9uOiAnJyxcbiAgICBtb25nb2RiVXNlcjogJycsXG4gICAgbW9uZ29kYlBhc3N3b3JkOiAnJyxcbiAgICBtb25nb2RiSG9zdDogJycsXG4gICAgbW9uZ29Jc1JlbW90ZTogdHJ1ZSxcbiAgICBtb25nb1VSTFJlbW90ZTogJycsXG4gICAgbW9uZ29kYlBvcnQ6IDI3MDE3LFxuICAgIHJlZGlzSG9zdDogJ2xvY2FsaG9zdCcsXG4gICAgcmVkaXNQb3J0OiA2Mzc5LFxuICAgIHJlZGlzUGFzc3dvcmQ6ICcnLFxuICAgIHJlZGlzRGI6IDAsXG4gICAgcmVkaXNQcmVmaXg6ICdkb2NrZXInLFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Im1IQUFlO0VBQ2JBLFNBQVMsRUFBRSxxQkFBcUI7RUFDaENDLElBQUksRUFBRSxrQkFBa0I7RUFDeEJDLElBQUksRUFBRSxPQUFPO0VBQ2JDLFVBQVUsRUFBRSxZQUFZO0VBQ3hCQyxTQUFTLEVBQUUsbUJBQW1CO0VBQzlCQyxlQUFlLEVBQUUsSUFBSTtFQUNyQkMsY0FBYyxFQUFFLE1BQU07RUFDdEJDLFlBQVksRUFBRSxFQUFFO0VBQ2hCQyxpQkFBaUIsRUFBRSxnQkFBZ0I7RUFDbkNDLE9BQU8sRUFBRTtJQUNQQyxHQUFHLEVBQUUsSUFBSTtJQUNUQyxZQUFZLEVBQUUsSUFBSTtJQUNsQkMsUUFBUSxFQUFFLEtBQUs7SUFDZkMsYUFBYSxFQUFFLEVBQUU7SUFDakJDLFdBQVcsRUFBRSxJQUFJO0lBQ2pCQyxnQkFBZ0IsRUFBRSxLQUFLO0lBQ3ZCQyxVQUFVLEVBQUUsSUFBSTtJQUNoQkMsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QkMscUJBQXFCLEVBQUUsSUFBSTtJQUMzQkMsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QkMsY0FBYyxFQUFFLElBQUk7SUFDcEJDLGdCQUFnQixFQUFFLElBQUk7SUFDdEJDLGNBQWMsRUFBRTtFQUNsQixDQUFDO0VBQ0RDLFFBQVEsRUFBRTtJQUNSQyxVQUFVLEVBQUUsSUFBSTtJQUNoQkMsVUFBVSxFQUFFO0VBQ2QsQ0FBQztFQUNEQyxPQUFPLEVBQUU7SUFDUEMsTUFBTSxFQUFFLEtBQUs7SUFDYkMsUUFBUSxFQUFFLEVBQUU7SUFDWkMsYUFBYSxFQUFFO0VBQ2pCLENBQUM7RUFDREMsR0FBRyxFQUFFO0lBQ0hDLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDaEJDLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNO0VBQzVCLENBQUM7RUFDREMsYUFBYSxFQUFFO0lBQ2JDLFdBQVcsRUFBRTtJQUNYLHdCQUF3QjtJQUN4QixjQUFjO0lBQ2Qsd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUM1QixpQkFBaUI7SUFDakIsNkJBQTZCO0lBQzdCLG9DQUFvQztJQUNwQyxxQkFBcUI7SUFDckIsaUNBQWlDO0lBQ2pDLHdCQUF3QjtJQUN4QixzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsMEJBQTBCO0lBQzFCLGNBQWM7SUFDZCxnQkFBZ0I7SUFDaEIsb0NBQW9DO0lBQ3BDLDZCQUE2QjtJQUM3QixxQkFBcUI7SUFDckIsdUNBQXVDOztFQUUzQyxDQUFDO0VBQ0RDLE1BQU0sRUFBRTtJQUNOUixNQUFNLEVBQUUsS0FBSztJQUNiUyxNQUFNLEVBQUU7RUFDVixDQUFDO0VBQ0RDLEVBQUUsRUFBRTtJQUNGQyxlQUFlLEVBQUUsUUFBUTtJQUN6QkMsaUJBQWlCLEVBQUUsRUFBRTtJQUNyQkMsV0FBVyxFQUFFLEVBQUU7SUFDZkMsZUFBZSxFQUFFLEVBQUU7SUFDbkJDLFdBQVcsRUFBRSxFQUFFO0lBQ2ZDLGFBQWEsRUFBRSxJQUFJO0lBQ25CQyxjQUFjLEVBQUUsRUFBRTtJQUNsQkMsV0FBVyxFQUFFLEtBQUs7SUFDbEJDLFNBQVMsRUFBRSxXQUFXO0lBQ3RCQyxTQUFTLEVBQUUsSUFBSTtJQUNmQyxhQUFhLEVBQUUsRUFBRTtJQUNqQkMsT0FBTyxFQUFFLENBQUM7SUFDVkMsV0FBVyxFQUFFO0VBQ2Y7QUFDRixDQUFDLENBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUFBQyxRQUFBIn0=
|