inlaweb-lib-dynamodb 1.0.4 → 1.0.5

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.
@@ -20,41 +20,59 @@ class DynamoLib {
20
20
  this.logger = new logger_1.Logger();
21
21
  }
22
22
  async putItem(tableName, item) {
23
- const params = {
24
- TableName: tableName,
25
- Item: item,
26
- ReturnItemCollectionMetrics: "SIZE",
27
- ReturnConsumedCapacity: "TOTAL",
28
- };
29
- this.logger.debug(`PutItem: ${JSON.stringify(params)}`);
30
- const result = await this.docClient.send(new lib_dynamodb_1.PutCommand(params));
31
- this.logger.debug(`PutItem Result: ${JSON.stringify(result)}`);
23
+ try {
24
+ const params = {
25
+ TableName: tableName,
26
+ Item: item,
27
+ ReturnItemCollectionMetrics: "SIZE",
28
+ ReturnConsumedCapacity: "TOTAL",
29
+ };
30
+ this.logger.debug(`PutItem: ${JSON.stringify(params)}`);
31
+ const result = await this.docClient.send(new lib_dynamodb_1.PutCommand(params));
32
+ this.logger.debug(`PutItem Result: ${JSON.stringify(result)}`);
33
+ }
34
+ catch (error) {
35
+ this.logger.error(error.message);
36
+ throw error;
37
+ }
32
38
  }
33
39
  async getItem(tableName, key, projectionExpression) {
34
- const params = {
35
- TableName: tableName,
36
- Key: key,
37
- ReturnConsumedCapacity: "TOTAL",
38
- };
39
- const projection = this.buildProjectionExpression(projectionExpression);
40
- if (projection) {
41
- params.ProjectionExpression = projection.projectionExpression;
42
- params.ExpressionAttributeNames = projection.expressionAttributeNames;
43
- }
44
- this.logger.debug(`GetItem: ${JSON.stringify(params)}`);
45
- const response = await this.docClient.send(new lib_dynamodb_1.GetCommand(params));
46
- this.logger.debug(`GetItem Result: ${JSON.stringify(response)}`);
47
- if (response.Item) {
48
- return response.Item;
49
- }
50
- return undefined;
40
+ try {
41
+ const params = {
42
+ TableName: tableName,
43
+ Key: key,
44
+ ReturnConsumedCapacity: "TOTAL",
45
+ };
46
+ const projection = this.buildProjectionExpression(projectionExpression);
47
+ if (projection) {
48
+ params.ProjectionExpression = projection.projectionExpression;
49
+ params.ExpressionAttributeNames = projection.expressionAttributeNames;
50
+ }
51
+ this.logger.debug(`GetItem: ${JSON.stringify(params)}`);
52
+ const response = await this.docClient.send(new lib_dynamodb_1.GetCommand(params));
53
+ this.logger.debug(`GetItem Result: ${JSON.stringify(response)}`);
54
+ if (response.Item) {
55
+ return response.Item;
56
+ }
57
+ return;
58
+ }
59
+ catch (error) {
60
+ this.logger.error(error.message);
61
+ throw error;
62
+ }
51
63
  }
52
64
  async updateItem(params) {
53
- const itemUpdate = this.createUpdateParams(params);
54
- this.logger.debug(`UpdateItem: ${JSON.stringify(itemUpdate.Update)}`);
55
- const result = await this.docClient.send(new lib_dynamodb_1.UpdateCommand(itemUpdate.Update));
56
- this.logger.debug(`UpdateItem Result: ${JSON.stringify(result)}`);
57
- return true;
65
+ try {
66
+ const itemUpdate = this.createUpdateParams(params);
67
+ this.logger.debug(`UpdateItem: ${JSON.stringify(itemUpdate.Update)}`);
68
+ const result = await this.docClient.send(new lib_dynamodb_1.UpdateCommand(itemUpdate.Update));
69
+ this.logger.debug(`UpdateItem Result: ${JSON.stringify(result)}`);
70
+ return true;
71
+ }
72
+ catch (error) {
73
+ this.logger.error(error.message);
74
+ throw error;
75
+ }
58
76
  }
59
77
  async query(params) {
60
78
  try {
@@ -166,19 +184,25 @@ class DynamoLib {
166
184
  }
167
185
  }
168
186
  async saveBatch(table, items) {
169
- const executions = this.createBatch(items);
170
- for (let i = 0; i < executions.length; i++) {
171
- const params = {
172
- RequestItems: {
173
- [table]: executions[i]
174
- },
175
- ReturnConsumedCapacity: "TOTAL",
176
- };
177
- this.logger.debug(`BatchWrite: ${JSON.stringify(params)}`);
178
- const response = await this.docClient.send(new lib_dynamodb_1.BatchWriteCommand(params));
179
- this.logger.debug(`BatchWrite Result: ${JSON.stringify(response)}`);
187
+ try {
188
+ const executions = this.createBatch(items);
189
+ for (let i = 0; i < executions.length; i++) {
190
+ const params = {
191
+ RequestItems: {
192
+ [table]: executions[i]
193
+ },
194
+ ReturnConsumedCapacity: "TOTAL",
195
+ };
196
+ this.logger.debug(`BatchWrite: ${JSON.stringify(params)}`);
197
+ const response = await this.docClient.send(new lib_dynamodb_1.BatchWriteCommand(params));
198
+ this.logger.debug(`BatchWrite Result: ${JSON.stringify(response)}`);
199
+ }
200
+ return true;
201
+ }
202
+ catch (error) {
203
+ this.logger.error(error.message);
204
+ throw error;
180
205
  }
181
- return true;
182
206
  }
183
207
  createBatch(items) {
184
208
  const executions = [];
@@ -193,17 +217,23 @@ class DynamoLib {
193
217
  return executions;
194
218
  }
195
219
  async writeTransactions(items, limit) {
196
- const executions = this.createWriteTransactions(items, limit);
197
- for (let i = 0; i < executions.length; i++) {
198
- const params = {
199
- TransactItems: executions[i],
200
- ReturnConsumedCapacity: "TOTAL",
201
- };
202
- this.logger.debug(`TransactWrite: ${JSON.stringify(params)}`);
203
- const response = await this.docClient.send(new lib_dynamodb_1.TransactWriteCommand(params));
204
- this.logger.debug(`TransactWrite Result: ${JSON.stringify(response)}`);
220
+ try {
221
+ const executions = this.createWriteTransactions(items, limit);
222
+ for (let i = 0; i < executions.length; i++) {
223
+ const params = {
224
+ TransactItems: executions[i],
225
+ ReturnConsumedCapacity: "TOTAL",
226
+ };
227
+ this.logger.debug(`TransactWrite: ${JSON.stringify(params)}`);
228
+ const response = await this.docClient.send(new lib_dynamodb_1.TransactWriteCommand(params));
229
+ this.logger.debug(`TransactWrite Result: ${JSON.stringify(response)}`);
230
+ }
231
+ return true;
232
+ }
233
+ catch (error) {
234
+ this.logger.error(error.message);
235
+ throw error;
205
236
  }
206
- return true;
207
237
  }
208
238
  createWriteTransactions(items, limit) {
209
239
  const executions = [];
@@ -288,48 +318,60 @@ class DynamoLib {
288
318
  updateObject.Update.UpdateExpression += " ";
289
319
  }
290
320
  async getId(table, entity, username, quantity) {
291
- let item = await this.getItem(table, { PK: "COUN", SK: entity }, "order");
292
- if (!item) {
293
- item = {
294
- PK: "COUN",
295
- SK: entity,
296
- entity: "COUN",
297
- order: 0,
298
- creationUser: username,
299
- creationDate: moment_timezone_1.default.tz(new Date(), "America/Bogota").format("YYYY-MM-DD"),
321
+ try {
322
+ let item = await this.getItem(table, { PK: "COUN", SK: entity }, "order");
323
+ if (!item) {
324
+ item = {
325
+ PK: "COUN",
326
+ SK: entity,
327
+ entity: "COUN",
328
+ order: 0,
329
+ creationUser: username,
330
+ creationDate: moment_timezone_1.default.tz(new Date(), "America/Bogota").format("YYYY-MM-DD"),
331
+ };
332
+ await this.putItem(table, item);
333
+ }
334
+ const params = {
335
+ TableName: table,
336
+ Key: { PK: "COUN", SK: entity },
337
+ UpdateExpression: `SET #id = #id + :increment`,
338
+ ExpressionAttributeNames: { "#id": "order" },
339
+ ExpressionAttributeValues: { ":increment": quantity || 1 },
340
+ ReturnValues: "UPDATED_OLD"
300
341
  };
301
- await this.putItem(table, item);
302
- }
303
- const params = {
304
- TableName: table,
305
- Key: { PK: "COUN", SK: entity },
306
- UpdateExpression: `SET #id = #id + :increment`,
307
- ExpressionAttributeNames: { "#id": "order" },
308
- ExpressionAttributeValues: { ":increment": quantity || 1 },
309
- ReturnValues: "UPDATED_OLD"
310
- };
311
- this.logger.debug(`GetId: ${JSON.stringify(params)}`);
312
- const result = await this.docClient.send(new lib_dynamodb_1.UpdateCommand(params));
313
- this.logger.debug(`GetId Result: ${JSON.stringify(result)}`);
314
- if (result.Attributes)
315
- return result.Attributes.order + 1;
316
- return 1;
342
+ this.logger.debug(`GetId: ${JSON.stringify(params)}`);
343
+ const result = await this.docClient.send(new lib_dynamodb_1.UpdateCommand(params));
344
+ this.logger.debug(`GetId Result: ${JSON.stringify(result)}`);
345
+ if (result.Attributes)
346
+ return result.Attributes.order + 1;
347
+ return 1;
348
+ }
349
+ catch (error) {
350
+ this.logger.error(error.message);
351
+ throw error;
352
+ }
317
353
  }
318
354
  async validatePermission(table, entity, action, profile) {
319
- let result;
320
- let searchParameters = {
321
- indexName: "GSI2",
322
- parameters: [
323
- { name: "entity", value: "PERM", operator: "=" },
324
- { name: "relation2", value: `${profile}|${entity}|${action}`, operator: "=" },
325
- ],
326
- };
327
- let permissionQuery = await this.query({ tableName: table, searchParameters });
328
- if (permissionQuery && permissionQuery.length > 0) {
329
- result = permissionQuery[0];
330
- return result.type === "ALL" ? "ALL" : "OWNS";
355
+ try {
356
+ let result;
357
+ let searchParameters = {
358
+ indexName: "GSI2",
359
+ parameters: [
360
+ { name: "entity", value: "PERM", operator: "=" },
361
+ { name: "relation2", value: `${profile}|${entity}|${action}`, operator: "=" },
362
+ ],
363
+ };
364
+ let permissionQuery = await this.query({ tableName: table, searchParameters });
365
+ if (permissionQuery && permissionQuery.length > 0) {
366
+ result = permissionQuery[0];
367
+ return result.type === "ALL" ? "ALL" : "OWNS";
368
+ }
369
+ throw new Error("UNAUTHORIZE_REQUEST");
370
+ }
371
+ catch (error) {
372
+ this.logger.error(error.message);
373
+ throw error;
331
374
  }
332
- throw new Error("UNAUTHORIZE_REQUEST");
333
375
  }
334
376
  }
335
377
  exports.DynamoLib = DynamoLib;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inlaweb-lib-dynamodb",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/types/index.d.ts",
6
6
  "scripts": {
@@ -1,22 +0,0 @@
1
- {
2
- "configurations": [
3
- {
4
- "type": "node",
5
- "request": "launch",
6
- "name": "Launch Program",
7
- "program": "${workspaceFolder}/${input:programPath}",
8
- "preLaunchTask": "build"
9
- }
10
- ],
11
- "inputs": [
12
- {
13
- "type": "pickString",
14
- "id": "programPath",
15
- "description": "Select the entry point for your program",
16
- "options": [
17
- "dist/index.js",
18
- "src/index.ts"
19
- ]
20
- }
21
- ]
22
- }
package/.vscode/task.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "tasks": [
3
- {
4
- "type": "shell",
5
- "label": "build",
6
- "command": "npm",
7
- "args": [
8
- "run",
9
- "build"
10
- ]
11
- }
12
- ]
13
- }
@@ -1,180 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1742306457851" clover="3.2.0">
3
- <project timestamp="1742306457851" name="All files">
4
- <metrics statements="171" coveredstatements="171" conditionals="52" coveredconditionals="52" methods="25" coveredmethods="25" elements="248" coveredelements="248" complexity="0" loc="171" ncloc="171" packages="1" files="1" classes="1"/>
5
- <file name="index.ts" path="/media/jfmedinae/9E32FD7232FD502F/Windows/Proyectos/Commons/inlaweb-lib-dynamodb/src/index.ts">
6
- <metrics statements="171" coveredstatements="171" conditionals="52" coveredconditionals="52" methods="25" coveredmethods="25"/>
7
- <line num="1" count="1" type="stmt"/>
8
- <line num="2" count="1" type="stmt"/>
9
- <line num="3" count="1" type="stmt"/>
10
- <line num="5" count="1" type="stmt"/>
11
- <line num="7" count="1" type="stmt"/>
12
- <line num="8" count="6" type="stmt"/>
13
- <line num="9" count="1" type="stmt"/>
14
- <line num="10" count="1" type="stmt"/>
15
- <line num="13" count="1" type="stmt"/>
16
- <line num="19" count="20" type="stmt"/>
17
- <line num="20" count="20" type="stmt"/>
18
- <line num="21" count="20" type="stmt"/>
19
- <line num="25" count="1" type="stmt"/>
20
- <line num="31" count="1" type="stmt"/>
21
- <line num="32" count="1" type="stmt"/>
22
- <line num="33" count="1" type="stmt"/>
23
- <line num="37" count="2" type="stmt"/>
24
- <line num="42" count="2" type="stmt"/>
25
- <line num="43" count="2" type="cond" truecount="1" falsecount="0"/>
26
- <line num="44" count="1" type="stmt"/>
27
- <line num="45" count="1" type="stmt"/>
28
- <line num="47" count="2" type="stmt"/>
29
- <line num="48" count="2" type="stmt"/>
30
- <line num="49" count="2" type="stmt"/>
31
- <line num="50" count="2" type="cond" truecount="1" falsecount="0"/>
32
- <line num="51" count="1" type="stmt"/>
33
- <line num="53" count="1" type="stmt"/>
34
- <line num="57" count="1" type="stmt"/>
35
- <line num="58" count="1" type="stmt"/>
36
- <line num="59" count="1" type="stmt"/>
37
- <line num="60" count="1" type="stmt"/>
38
- <line num="61" count="1" type="stmt"/>
39
- <line num="65" count="8" type="stmt"/>
40
- <line num="66" count="8" type="stmt"/>
41
- <line num="67" count="8" type="stmt"/>
42
- <line num="68" count="8" type="stmt"/>
43
- <line num="69" count="7" type="stmt"/>
44
- <line num="70" count="7" type="cond" truecount="1" falsecount="0"/>
45
- <line num="71" count="6" type="stmt"/>
46
- <line num="73" count="1" type="stmt"/>
47
- <line num="75" count="1" type="stmt"/>
48
- <line num="76" count="1" type="stmt"/>
49
- <line num="82" count="8" type="stmt"/>
50
- <line num="84" count="8" type="stmt"/>
51
- <line num="91" count="8" type="cond" truecount="1" falsecount="0"/>
52
- <line num="92" count="3" type="stmt"/>
53
- <line num="94" count="8" type="cond" truecount="1" falsecount="0"/>
54
- <line num="95" count="3" type="stmt"/>
55
- <line num="97" count="8" type="cond" truecount="1" falsecount="0"/>
56
- <line num="98" count="3" type="stmt"/>
57
- <line num="100" count="8" type="cond" truecount="1" falsecount="0"/>
58
- <line num="101" count="8" type="stmt"/>
59
- <line num="104" count="8" type="cond" truecount="3" falsecount="0"/>
60
- <line num="105" count="1" type="stmt"/>
61
- <line num="113" count="8" type="stmt"/>
62
- <line num="114" count="15" type="stmt"/>
63
- <line num="117" count="8" type="stmt"/>
64
- <line num="125" count="15" type="cond" truecount="3" falsecount="0"/>
65
- <line num="127" count="15" type="cond" truecount="4" falsecount="0"/>
66
- <line num="129" count="1" type="stmt"/>
67
- <line num="130" count="1" type="stmt"/>
68
- <line num="132" count="1" type="stmt"/>
69
- <line num="133" count="1" type="stmt"/>
70
- <line num="134" count="1" type="stmt"/>
71
- <line num="136" count="6" type="stmt"/>
72
- <line num="137" count="6" type="stmt"/>
73
- <line num="139" count="7" type="stmt"/>
74
- <line num="140" count="7" type="stmt"/>
75
- <line num="143" count="15" type="stmt"/>
76
- <line num="144" count="15" type="stmt"/>
77
- <line num="152" count="6" type="cond" truecount="2" falsecount="0"/>
78
- <line num="153" count="2" type="stmt"/>
79
- <line num="155" count="6" type="cond" truecount="5" falsecount="0"/>
80
- <line num="157" count="1" type="stmt"/>
81
- <line num="158" count="1" type="stmt"/>
82
- <line num="160" count="1" type="stmt"/>
83
- <line num="161" count="1" type="stmt"/>
84
- <line num="163" count="1" type="stmt"/>
85
- <line num="164" count="1" type="stmt"/>
86
- <line num="166" count="1" type="stmt"/>
87
- <line num="167" count="1" type="stmt"/>
88
- <line num="169" count="2" type="stmt"/>
89
- <line num="170" count="2" type="stmt"/>
90
- <line num="175" count="10" type="cond" truecount="1" falsecount="0"/>
91
- <line num="176" count="9" type="stmt"/>
92
- <line num="178" count="1" type="stmt"/>
93
- <line num="179" count="1" type="cond" truecount="1" falsecount="0"/>
94
- <line num="180" count="1" type="stmt"/>
95
- <line num="181" count="1" type="stmt"/>
96
- <line num="182" count="1" type="stmt"/>
97
- <line num="183" count="2" type="stmt"/>
98
- <line num="184" count="2" type="stmt"/>
99
- <line num="186" count="1" type="stmt"/>
100
- <line num="187" count="1" type="stmt"/>
101
- <line num="192" count="1" type="stmt"/>
102
- <line num="193" count="1" type="stmt"/>
103
- <line num="194" count="1" type="stmt"/>
104
- <line num="200" count="1" type="stmt"/>
105
- <line num="201" count="1" type="stmt"/>
106
- <line num="202" count="1" type="stmt"/>
107
- <line num="204" count="1" type="stmt"/>
108
- <line num="208" count="1" type="stmt"/>
109
- <line num="209" count="1" type="stmt"/>
110
- <line num="210" count="1" type="stmt"/>
111
- <line num="211" count="1" type="stmt"/>
112
- <line num="213" count="1" type="stmt"/>
113
- <line num="214" count="2" type="stmt"/>
114
- <line num="215" count="2" type="stmt"/>
115
- <line num="217" count="1" type="stmt"/>
116
- <line num="221" count="1" type="stmt"/>
117
- <line num="222" count="1" type="stmt"/>
118
- <line num="223" count="1" type="stmt"/>
119
- <line num="227" count="1" type="stmt"/>
120
- <line num="228" count="1" type="stmt"/>
121
- <line num="229" count="1" type="stmt"/>
122
- <line num="231" count="1" type="stmt"/>
123
- <line num="235" count="1" type="stmt"/>
124
- <line num="236" count="1" type="stmt"/>
125
- <line num="237" count="1" type="stmt"/>
126
- <line num="238" count="1" type="stmt"/>
127
- <line num="240" count="1" type="stmt"/>
128
- <line num="241" count="2" type="stmt"/>
129
- <line num="242" count="2" type="stmt"/>
130
- <line num="244" count="1" type="stmt"/>
131
- <line num="248" count="2" type="stmt"/>
132
- <line num="250" count="2" type="stmt"/>
133
- <line num="251" count="2" type="stmt"/>
134
- <line num="252" count="2" type="cond" truecount="1" falsecount="0"/>
135
- <line num="253" count="2" type="cond" truecount="1" falsecount="0"/>
136
- <line num="255" count="2" type="stmt"/>
137
- <line num="266" count="2" type="cond" truecount="3" falsecount="0"/>
138
- <line num="267" count="2" type="stmt"/>
139
- <line num="270" count="2" type="cond" truecount="3" falsecount="0"/>
140
- <line num="271" count="1" type="stmt"/>
141
- <line num="274" count="2" type="cond" truecount="3" falsecount="0"/>
142
- <line num="275" count="1" type="stmt"/>
143
- <line num="278" count="2" type="stmt"/>
144
- <line num="279" count="2" type="stmt"/>
145
- <line num="284" count="3" type="stmt"/>
146
- <line num="286" count="3" type="stmt"/>
147
- <line num="288" count="3" type="stmt"/>
148
- <line num="289" count="7" type="cond" truecount="4" falsecount="0"/>
149
- <line num="290" count="7" type="stmt"/>
150
- <line num="291" count="7" type="stmt"/>
151
- <line num="292" count="7" type="stmt"/>
152
- <line num="296" count="3" type="stmt"/>
153
- <line num="298" count="3" type="stmt"/>
154
- <line num="302" count="1" type="stmt"/>
155
- <line num="304" count="1" type="stmt"/>
156
- <line num="306" count="1" type="stmt"/>
157
- <line num="308" count="1" type="stmt"/>
158
- <line num="309" count="1" type="stmt"/>
159
- <line num="310" count="1" type="stmt"/>
160
- <line num="313" count="1" type="stmt"/>
161
- <line num="315" count="1" type="stmt"/>
162
- <line num="319" count="2" type="stmt"/>
163
- <line num="320" count="2" type="cond" truecount="1" falsecount="0"/>
164
- <line num="321" count="2" type="stmt"/>
165
- <line num="329" count="2" type="stmt"/>
166
- <line num="331" count="2" type="stmt"/>
167
- <line num="339" count="2" type="stmt"/>
168
- <line num="340" count="2" type="stmt"/>
169
- <line num="341" count="2" type="stmt"/>
170
- <line num="342" count="2" type="cond" truecount="1" falsecount="0"/>
171
- <line num="343" count="1" type="stmt"/>
172
- <line num="349" count="3" type="stmt"/>
173
- <line num="356" count="3" type="stmt"/>
174
- <line num="357" count="3" type="cond" truecount="3" falsecount="0"/>
175
- <line num="358" count="2" type="stmt"/>
176
- <line num="359" count="2" type="cond" truecount="2" falsecount="0"/>
177
- <line num="361" count="1" type="stmt"/>
178
- </file>
179
- </project>
180
- </coverage>
@@ -1,2 +0,0 @@
1
- {"/media/jfmedinae/9E32FD7232FD502F/Windows/Proyectos/Commons/inlaweb-lib-dynamodb/src/index.ts": {"path":"/media/jfmedinae/9E32FD7232FD502F/Windows/Proyectos/Commons/inlaweb-lib-dynamodb/src/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":58}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":157}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":54}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":37}},"4":{"start":{"line":7,"column":33},"end":{"line":11,"column":2}},"5":{"start":{"line":8,"column":31},"end":{"line":8,"column":61}},"6":{"start":{"line":9,"column":31},"end":{"line":9,"column":59}},"7":{"start":{"line":10,"column":34},"end":{"line":10,"column":49}},"8":{"start":{"line":19,"column":8},"end":{"line":19,"column":45}},"9":{"start":{"line":20,"column":8},"end":{"line":20,"column":66}},"10":{"start":{"line":21,"column":8},"end":{"line":21,"column":35}},"11":{"start":{"line":25,"column":34},"end":{"line":30,"column":10}},"12":{"start":{"line":31,"column":8},"end":{"line":31,"column":64}},"13":{"start":{"line":32,"column":24},"end":{"line":32,"column":73}},"14":{"start":{"line":33,"column":8},"end":{"line":33,"column":71}},"15":{"start":{"line":37,"column":34},"end":{"line":41,"column":10}},"16":{"start":{"line":42,"column":27},"end":{"line":42,"column":79}},"17":{"start":{"line":43,"column":8},"end":{"line":46,"column":9}},"18":{"start":{"line":44,"column":12},"end":{"line":44,"column":74}},"19":{"start":{"line":45,"column":12},"end":{"line":45,"column":82}},"20":{"start":{"line":47,"column":8},"end":{"line":47,"column":64}},"21":{"start":{"line":48,"column":25},"end":{"line":48,"column":74}},"22":{"start":{"line":49,"column":8},"end":{"line":49,"column":73}},"23":{"start":{"line":50,"column":8},"end":{"line":52,"column":9}},"24":{"start":{"line":51,"column":12},"end":{"line":51,"column":38}},"25":{"start":{"line":53,"column":8},"end":{"line":53,"column":25}},"26":{"start":{"line":57,"column":27},"end":{"line":57,"column":58}},"27":{"start":{"line":58,"column":8},"end":{"line":58,"column":78}},"28":{"start":{"line":59,"column":23},"end":{"line":59,"column":86}},"29":{"start":{"line":60,"column":8},"end":{"line":60,"column":74}},"30":{"start":{"line":61,"column":8},"end":{"line":61,"column":20}},"31":{"start":{"line":65,"column":8},"end":{"line":77,"column":9}},"32":{"start":{"line":66,"column":44},"end":{"line":66,"column":73}},"33":{"start":{"line":67,"column":12},"end":{"line":67,"column":70}},"34":{"start":{"line":68,"column":29},"end":{"line":68,"column":84}},"35":{"start":{"line":69,"column":12},"end":{"line":69,"column":75}},"36":{"start":{"line":70,"column":12},"end":{"line":72,"column":13}},"37":{"start":{"line":71,"column":16},"end":{"line":71,"column":45}},"38":{"start":{"line":73,"column":12},"end":{"line":73,"column":19}},"39":{"start":{"line":75,"column":12},"end":{"line":75,"column":56}},"40":{"start":{"line":76,"column":12},"end":{"line":76,"column":24}},"41":{"start":{"line":82,"column":27},"end":{"line":82,"column":103}},"42":{"start":{"line":84,"column":40},"end":{"line":89,"column":10}},"43":{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},"44":{"start":{"line":92,"column":12},"end":{"line":92,"column":85}},"45":{"start":{"line":94,"column":8},"end":{"line":96,"column":9}},"46":{"start":{"line":95,"column":12},"end":{"line":95,"column":61}},"47":{"start":{"line":97,"column":8},"end":{"line":99,"column":9}},"48":{"start":{"line":98,"column":12},"end":{"line":98,"column":83}},"49":{"start":{"line":100,"column":8},"end":{"line":102,"column":9}},"50":{"start":{"line":101,"column":12},"end":{"line":101,"column":69}},"51":{"start":{"line":104,"column":8},"end":{"line":111,"column":9}},"52":{"start":{"line":105,"column":12},"end":{"line":110,"column":15}},"53":{"start":{"line":113,"column":8},"end":{"line":115,"column":11}},"54":{"start":{"line":114,"column":12},"end":{"line":114,"column":70}},"55":{"start":{"line":117,"column":8},"end":{"line":117,"column":26}},"56":{"start":{"line":125,"column":8},"end":{"line":125,"column":107}},"57":{"start":{"line":125,"column":66},"end":{"line":125,"column":107}},"58":{"start":{"line":127,"column":8},"end":{"line":141,"column":9}},"59":{"start":{"line":129,"column":16},"end":{"line":129,"column":109}},"60":{"start":{"line":130,"column":16},"end":{"line":130,"column":22}},"61":{"start":{"line":132,"column":16},"end":{"line":132,"column":127}},"62":{"start":{"line":133,"column":16},"end":{"line":133,"column":93}},"63":{"start":{"line":134,"column":16},"end":{"line":134,"column":22}},"64":{"start":{"line":136,"column":16},"end":{"line":136,"column":75}},"65":{"start":{"line":137,"column":16},"end":{"line":137,"column":22}},"66":{"start":{"line":139,"column":16},"end":{"line":139,"column":107}},"67":{"start":{"line":140,"column":16},"end":{"line":140,"column":22}},"68":{"start":{"line":143,"column":8},"end":{"line":143,"column":79}},"69":{"start":{"line":144,"column":8},"end":{"line":144,"column":83}},"70":{"start":{"line":152,"column":8},"end":{"line":153,"column":42}},"71":{"start":{"line":152,"column":37},"end":{"line":152,"column":72}},"72":{"start":{"line":153,"column":13},"end":{"line":153,"column":42}},"73":{"start":{"line":155,"column":8},"end":{"line":171,"column":9}},"74":{"start":{"line":157,"column":16},"end":{"line":157,"column":85}},"75":{"start":{"line":158,"column":16},"end":{"line":158,"column":22}},"76":{"start":{"line":160,"column":16},"end":{"line":160,"column":109}},"77":{"start":{"line":161,"column":16},"end":{"line":161,"column":22}},"78":{"start":{"line":163,"column":16},"end":{"line":163,"column":81}},"79":{"start":{"line":164,"column":16},"end":{"line":164,"column":22}},"80":{"start":{"line":166,"column":16},"end":{"line":166,"column":77}},"81":{"start":{"line":167,"column":16},"end":{"line":167,"column":22}},"82":{"start":{"line":169,"column":16},"end":{"line":169,"column":107}},"83":{"start":{"line":170,"column":16},"end":{"line":170,"column":22}},"84":{"start":{"line":175,"column":8},"end":{"line":177,"column":9}},"85":{"start":{"line":176,"column":12},"end":{"line":176,"column":29}},"86":{"start":{"line":178,"column":23},"end":{"line":178,"column":54}},"87":{"start":{"line":179,"column":8},"end":{"line":188,"column":9}},"88":{"start":{"line":180,"column":39},"end":{"line":180,"column":41}},"89":{"start":{"line":181,"column":55},"end":{"line":181,"column":57}},"90":{"start":{"line":182,"column":12},"end":{"line":185,"column":15}},"91":{"start":{"line":183,"column":16},"end":{"line":183,"column":53}},"92":{"start":{"line":184,"column":16},"end":{"line":184,"column":62}},"93":{"start":{"line":186,"column":12},"end":{"line":186,"column":69}},"94":{"start":{"line":187,"column":12},"end":{"line":187,"column":70}},"95":{"start":{"line":192,"column":27},"end":{"line":192,"column":50}},"96":{"start":{"line":193,"column":8},"end":{"line":203,"column":9}},"97":{"start":{"line":193,"column":21},"end":{"line":193,"column":22}},"98":{"start":{"line":194,"column":27},"end":{"line":199,"column":14}},"99":{"start":{"line":200,"column":12},"end":{"line":200,"column":71}},"100":{"start":{"line":201,"column":29},"end":{"line":201,"column":85}},"101":{"start":{"line":202,"column":12},"end":{"line":202,"column":80}},"102":{"start":{"line":204,"column":8},"end":{"line":204,"column":20}},"103":{"start":{"line":208,"column":39},"end":{"line":208,"column":41}},"104":{"start":{"line":209,"column":40},"end":{"line":209,"column":68}},"105":{"start":{"line":210,"column":8},"end":{"line":212,"column":9}},"106":{"start":{"line":210,"column":21},"end":{"line":210,"column":22}},"107":{"start":{"line":211,"column":12},"end":{"line":211,"column":31}},"108":{"start":{"line":213,"column":8},"end":{"line":216,"column":11}},"109":{"start":{"line":214,"column":33},"end":{"line":214,"column":60}},"110":{"start":{"line":215,"column":12},"end":{"line":215,"column":78}},"111":{"start":{"line":217,"column":8},"end":{"line":217,"column":26}},"112":{"start":{"line":221,"column":27},"end":{"line":221,"column":69}},"113":{"start":{"line":222,"column":8},"end":{"line":230,"column":9}},"114":{"start":{"line":222,"column":21},"end":{"line":222,"column":22}},"115":{"start":{"line":223,"column":27},"end":{"line":226,"column":14}},"116":{"start":{"line":227,"column":12},"end":{"line":227,"column":74}},"117":{"start":{"line":228,"column":29},"end":{"line":228,"column":88}},"118":{"start":{"line":229,"column":12},"end":{"line":229,"column":83}},"119":{"start":{"line":231,"column":8},"end":{"line":231,"column":20}},"120":{"start":{"line":235,"column":41},"end":{"line":235,"column":43}},"121":{"start":{"line":236,"column":40},"end":{"line":236,"column":71}},"122":{"start":{"line":237,"column":8},"end":{"line":239,"column":9}},"123":{"start":{"line":237,"column":21},"end":{"line":237,"column":22}},"124":{"start":{"line":238,"column":12},"end":{"line":238,"column":31}},"125":{"start":{"line":240,"column":8},"end":{"line":243,"column":11}},"126":{"start":{"line":241,"column":33},"end":{"line":241,"column":63}},"127":{"start":{"line":242,"column":12},"end":{"line":242,"column":71}},"128":{"start":{"line":244,"column":8},"end":{"line":244,"column":26}},"129":{"start":{"line":248,"column":98},"end":{"line":248,"column":104}},"130":{"start":{"line":250,"column":8},"end":{"line":250,"column":35}},"131":{"start":{"line":251,"column":8},"end":{"line":251,"column":87}},"132":{"start":{"line":252,"column":8},"end":{"line":252,"column":84}},"133":{"start":{"line":252,"column":51},"end":{"line":252,"column":84}},"134":{"start":{"line":253,"column":8},"end":{"line":253,"column":84}},"135":{"start":{"line":253,"column":51},"end":{"line":253,"column":84}},"136":{"start":{"line":255,"column":25},"end":{"line":264,"column":10}},"137":{"start":{"line":266,"column":8},"end":{"line":268,"column":9}},"138":{"start":{"line":267,"column":12},"end":{"line":267,"column":80}},"139":{"start":{"line":270,"column":8},"end":{"line":272,"column":9}},"140":{"start":{"line":271,"column":12},"end":{"line":271,"column":80}},"141":{"start":{"line":274,"column":8},"end":{"line":276,"column":9}},"142":{"start":{"line":275,"column":12},"end":{"line":275,"column":76}},"143":{"start":{"line":278,"column":8},"end":{"line":278,"column":93}},"144":{"start":{"line":279,"column":8},"end":{"line":279,"column":26}},"145":{"start":{"line":284,"column":8},"end":{"line":284,"column":64}},"146":{"start":{"line":286,"column":32},"end":{"line":286,"column":67}},"147":{"start":{"line":288,"column":8},"end":{"line":294,"column":9}},"148":{"start":{"line":289,"column":12},"end":{"line":293,"column":13}},"149":{"start":{"line":290,"column":16},"end":{"line":290,"column":84}},"150":{"start":{"line":291,"column":16},"end":{"line":291,"column":88}},"151":{"start":{"line":292,"column":16},"end":{"line":292,"column":95}},"152":{"start":{"line":296,"column":8},"end":{"line":296,"column":97}},"153":{"start":{"line":298,"column":8},"end":{"line":298,"column":52}},"154":{"start":{"line":302,"column":35},"end":{"line":302,"column":43}},"155":{"start":{"line":304,"column":8},"end":{"line":304,"column":64}},"156":{"start":{"line":306,"column":32},"end":{"line":306,"column":67}},"157":{"start":{"line":308,"column":8},"end":{"line":311,"column":9}},"158":{"start":{"line":309,"column":12},"end":{"line":309,"column":80}},"159":{"start":{"line":310,"column":12},"end":{"line":310,"column":84}},"160":{"start":{"line":313,"column":8},"end":{"line":313,"column":97}},"161":{"start":{"line":315,"column":8},"end":{"line":315,"column":52}},"162":{"start":{"line":319,"column":19},"end":{"line":319,"column":89}},"163":{"start":{"line":320,"column":8},"end":{"line":330,"column":9}},"164":{"start":{"line":321,"column":12},"end":{"line":328,"column":14}},"165":{"start":{"line":329,"column":12},"end":{"line":329,"column":44}},"166":{"start":{"line":331,"column":37},"end":{"line":338,"column":10}},"167":{"start":{"line":339,"column":8},"end":{"line":339,"column":62}},"168":{"start":{"line":340,"column":23},"end":{"line":340,"column":75}},"169":{"start":{"line":341,"column":8},"end":{"line":341,"column":69}},"170":{"start":{"line":342,"column":8},"end":{"line":342,"column":65}},"171":{"start":{"line":342,"column":30},"end":{"line":342,"column":65}},"172":{"start":{"line":343,"column":8},"end":{"line":343,"column":17}},"173":{"start":{"line":349,"column":31},"end":{"line":355,"column":10}},"174":{"start":{"line":356,"column":30},"end":{"line":356,"column":94}},"175":{"start":{"line":357,"column":8},"end":{"line":360,"column":9}},"176":{"start":{"line":358,"column":12},"end":{"line":358,"column":40}},"177":{"start":{"line":359,"column":12},"end":{"line":359,"column":58}},"178":{"start":{"line":361,"column":8},"end":{"line":361,"column":47}},"179":{"start":{"line":13,"column":0},"end":{"line":13,"column":13}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":9},"end":{"line":8,"column":10}},"loc":{"start":{"line":8,"column":31},"end":{"line":8,"column":61}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":9},"end":{"line":9,"column":10}},"loc":{"start":{"line":9,"column":31},"end":{"line":9,"column":59}}},"2":{"name":"(anonymous_3)","decl":{"start":{"line":10,"column":12},"end":{"line":10,"column":13}},"loc":{"start":{"line":10,"column":34},"end":{"line":10,"column":49}}},"3":{"name":"(anonymous_4)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":null}},"loc":{"start":{"line":18,"column":4},"end":{"line":22,"column":5}}},"4":{"name":"(anonymous_5)","decl":{"start":{"line":24,"column":4},"end":{"line":24,"column":9}},"loc":{"start":{"line":24,"column":51},"end":{"line":34,"column":5}}},"5":{"name":"(anonymous_6)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":9}},"loc":{"start":{"line":36,"column":84},"end":{"line":54,"column":5}}},"6":{"name":"(anonymous_7)","decl":{"start":{"line":56,"column":4},"end":{"line":56,"column":9}},"loc":{"start":{"line":56,"column":40},"end":{"line":62,"column":5}}},"7":{"name":"(anonymous_8)","decl":{"start":{"line":64,"column":4},"end":{"line":64,"column":9}},"loc":{"start":{"line":64,"column":122},"end":{"line":79,"column":5}}},"8":{"name":"(anonymous_9)","decl":{"start":{"line":81,"column":12},"end":{"line":81,"column":28}},"loc":{"start":{"line":81,"column":132},"end":{"line":118,"column":5}}},"9":{"name":"(anonymous_10)","decl":{"start":{"line":113,"column":51},"end":{"line":113,"column":52}},"loc":{"start":{"line":113,"column":78},"end":{"line":115,"column":9}}},"10":{"name":"(anonymous_11)","decl":{"start":{"line":120,"column":12},"end":{"line":120,"column":28}},"loc":{"start":{"line":123,"column":27},"end":{"line":145,"column":5}}},"11":{"name":"(anonymous_12)","decl":{"start":{"line":147,"column":12},"end":{"line":147,"column":33}},"loc":{"start":{"line":150,"column":27},"end":{"line":172,"column":5}}},"12":{"name":"(anonymous_13)","decl":{"start":{"line":174,"column":12},"end":{"line":174,"column":37}},"loc":{"start":{"line":174,"column":78},"end":{"line":189,"column":5}}},"13":{"name":"(anonymous_14)","decl":{"start":{"line":182,"column":27},"end":{"line":182,"column":28}},"loc":{"start":{"line":182,"column":37},"end":{"line":185,"column":13}}},"14":{"name":"(anonymous_15)","decl":{"start":{"line":191,"column":4},"end":{"line":191,"column":9}},"loc":{"start":{"line":191,"column":52},"end":{"line":205,"column":5}}},"15":{"name":"(anonymous_16)","decl":{"start":{"line":207,"column":12},"end":{"line":207,"column":23}},"loc":{"start":{"line":207,"column":41},"end":{"line":218,"column":5}}},"16":{"name":"(anonymous_17)","decl":{"start":{"line":213,"column":22},"end":{"line":213,"column":23}},"loc":{"start":{"line":213,"column":38},"end":{"line":216,"column":9}}},"17":{"name":"(anonymous_18)","decl":{"start":{"line":220,"column":4},"end":{"line":220,"column":9}},"loc":{"start":{"line":220,"column":60},"end":{"line":232,"column":5}}},"18":{"name":"(anonymous_19)","decl":{"start":{"line":234,"column":4},"end":{"line":234,"column":27}},"loc":{"start":{"line":234,"column":60},"end":{"line":245,"column":5}}},"19":{"name":"(anonymous_20)","decl":{"start":{"line":240,"column":22},"end":{"line":240,"column":23}},"loc":{"start":{"line":240,"column":38},"end":{"line":243,"column":9}}},"20":{"name":"(anonymous_21)","decl":{"start":{"line":247,"column":4},"end":{"line":247,"column":22}},"loc":{"start":{"line":247,"column":42},"end":{"line":280,"column":5}}},"21":{"name":"(anonymous_22)","decl":{"start":{"line":282,"column":12},"end":{"line":282,"column":34}},"loc":{"start":{"line":282,"column":116},"end":{"line":299,"column":5}}},"22":{"name":"(anonymous_23)","decl":{"start":{"line":301,"column":12},"end":{"line":301,"column":40}},"loc":{"start":{"line":301,"column":84},"end":{"line":316,"column":5}}},"23":{"name":"(anonymous_24)","decl":{"start":{"line":318,"column":4},"end":{"line":318,"column":9}},"loc":{"start":{"line":318,"column":82},"end":{"line":344,"column":5}}},"24":{"name":"(anonymous_25)","decl":{"start":{"line":346,"column":4},"end":{"line":346,"column":9}},"loc":{"start":{"line":346,"column":91},"end":{"line":362,"column":5}}}},"branchMap":{"0":{"loc":{"start":{"line":43,"column":8},"end":{"line":46,"column":9}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":46,"column":9}}]},"1":{"loc":{"start":{"line":50,"column":8},"end":{"line":52,"column":9}},"type":"if","locations":[{"start":{"line":50,"column":8},"end":{"line":52,"column":9}}]},"2":{"loc":{"start":{"line":70,"column":12},"end":{"line":72,"column":13}},"type":"if","locations":[{"start":{"line":70,"column":12},"end":{"line":72,"column":13}}]},"3":{"loc":{"start":{"line":87,"column":38},"end":{"line":87,"column":80}},"type":"binary-expr","locations":[{"start":{"line":87,"column":38},"end":{"line":87,"column":74}},{"start":{"line":87,"column":78},"end":{"line":87,"column":80}}]},"4":{"loc":{"start":{"line":91,"column":8},"end":{"line":93,"column":9}},"type":"if","locations":[{"start":{"line":91,"column":8},"end":{"line":93,"column":9}}]},"5":{"loc":{"start":{"line":94,"column":8},"end":{"line":96,"column":9}},"type":"if","locations":[{"start":{"line":94,"column":8},"end":{"line":96,"column":9}}]},"6":{"loc":{"start":{"line":97,"column":8},"end":{"line":99,"column":9}},"type":"if","locations":[{"start":{"line":97,"column":8},"end":{"line":99,"column":9}}]},"7":{"loc":{"start":{"line":100,"column":8},"end":{"line":102,"column":9}},"type":"if","locations":[{"start":{"line":100,"column":8},"end":{"line":102,"column":9}}]},"8":{"loc":{"start":{"line":104,"column":8},"end":{"line":111,"column":9}},"type":"if","locations":[{"start":{"line":104,"column":8},"end":{"line":111,"column":9}}]},"9":{"loc":{"start":{"line":104,"column":12},"end":{"line":104,"column":61}},"type":"binary-expr","locations":[{"start":{"line":104,"column":12},"end":{"line":104,"column":29}},{"start":{"line":104,"column":33},"end":{"line":104,"column":61}}]},"10":{"loc":{"start":{"line":125,"column":8},"end":{"line":125,"column":107}},"type":"if","locations":[{"start":{"line":125,"column":8},"end":{"line":125,"column":107}}]},"11":{"loc":{"start":{"line":125,"column":12},"end":{"line":125,"column":64}},"type":"binary-expr","locations":[{"start":{"line":125,"column":12},"end":{"line":125,"column":23}},{"start":{"line":125,"column":27},"end":{"line":125,"column":64}}]},"12":{"loc":{"start":{"line":127,"column":8},"end":{"line":141,"column":9}},"type":"switch","locations":[{"start":{"line":128,"column":12},"end":{"line":130,"column":22}},{"start":{"line":131,"column":12},"end":{"line":134,"column":22}},{"start":{"line":135,"column":12},"end":{"line":137,"column":22}},{"start":{"line":138,"column":12},"end":{"line":140,"column":22}}]},"13":{"loc":{"start":{"line":152,"column":8},"end":{"line":153,"column":42}},"type":"if","locations":[{"start":{"line":152,"column":8},"end":{"line":153,"column":42}},{"start":{"line":153,"column":13},"end":{"line":153,"column":42}}]},"14":{"loc":{"start":{"line":155,"column":8},"end":{"line":171,"column":9}},"type":"switch","locations":[{"start":{"line":156,"column":12},"end":{"line":158,"column":22}},{"start":{"line":159,"column":12},"end":{"line":161,"column":22}},{"start":{"line":162,"column":12},"end":{"line":164,"column":22}},{"start":{"line":165,"column":12},"end":{"line":167,"column":22}},{"start":{"line":168,"column":12},"end":{"line":170,"column":22}}]},"15":{"loc":{"start":{"line":175,"column":8},"end":{"line":177,"column":9}},"type":"if","locations":[{"start":{"line":175,"column":8},"end":{"line":177,"column":9}}]},"16":{"loc":{"start":{"line":179,"column":8},"end":{"line":188,"column":9}},"type":"if","locations":[{"start":{"line":179,"column":8},"end":{"line":188,"column":9}}]},"17":{"loc":{"start":{"line":252,"column":8},"end":{"line":252,"column":84}},"type":"if","locations":[{"start":{"line":252,"column":8},"end":{"line":252,"column":84}}]},"18":{"loc":{"start":{"line":253,"column":8},"end":{"line":253,"column":84}},"type":"if","locations":[{"start":{"line":253,"column":8},"end":{"line":253,"column":84}}]},"19":{"loc":{"start":{"line":266,"column":8},"end":{"line":268,"column":9}},"type":"if","locations":[{"start":{"line":266,"column":8},"end":{"line":268,"column":9}}]},"20":{"loc":{"start":{"line":266,"column":12},"end":{"line":266,"column":64}},"type":"binary-expr","locations":[{"start":{"line":266,"column":12},"end":{"line":266,"column":40}},{"start":{"line":266,"column":44},"end":{"line":266,"column":64}}]},"21":{"loc":{"start":{"line":270,"column":8},"end":{"line":272,"column":9}},"type":"if","locations":[{"start":{"line":270,"column":8},"end":{"line":272,"column":9}}]},"22":{"loc":{"start":{"line":270,"column":12},"end":{"line":270,"column":64}},"type":"binary-expr","locations":[{"start":{"line":270,"column":12},"end":{"line":270,"column":40}},{"start":{"line":270,"column":44},"end":{"line":270,"column":64}}]},"23":{"loc":{"start":{"line":274,"column":8},"end":{"line":276,"column":9}},"type":"if","locations":[{"start":{"line":274,"column":8},"end":{"line":276,"column":9}}]},"24":{"loc":{"start":{"line":274,"column":12},"end":{"line":274,"column":70}},"type":"binary-expr","locations":[{"start":{"line":274,"column":12},"end":{"line":274,"column":43}},{"start":{"line":274,"column":47},"end":{"line":274,"column":70}}]},"25":{"loc":{"start":{"line":289,"column":12},"end":{"line":293,"column":13}},"type":"if","locations":[{"start":{"line":289,"column":12},"end":{"line":293,"column":13}}]},"26":{"loc":{"start":{"line":289,"column":16},"end":{"line":289,"column":107}},"type":"binary-expr","locations":[{"start":{"line":289,"column":16},"end":{"line":289,"column":51}},{"start":{"line":289,"column":55},"end":{"line":289,"column":89}},{"start":{"line":289,"column":93},"end":{"line":289,"column":107}}]},"27":{"loc":{"start":{"line":320,"column":8},"end":{"line":330,"column":9}},"type":"if","locations":[{"start":{"line":320,"column":8},"end":{"line":330,"column":9}}]},"28":{"loc":{"start":{"line":336,"column":54},"end":{"line":336,"column":67}},"type":"binary-expr","locations":[{"start":{"line":336,"column":54},"end":{"line":336,"column":62}},{"start":{"line":336,"column":66},"end":{"line":336,"column":67}}]},"29":{"loc":{"start":{"line":342,"column":8},"end":{"line":342,"column":65}},"type":"if","locations":[{"start":{"line":342,"column":8},"end":{"line":342,"column":65}}]},"30":{"loc":{"start":{"line":357,"column":8},"end":{"line":360,"column":9}},"type":"if","locations":[{"start":{"line":357,"column":8},"end":{"line":360,"column":9}}]},"31":{"loc":{"start":{"line":357,"column":12},"end":{"line":357,"column":57}},"type":"binary-expr","locations":[{"start":{"line":357,"column":12},"end":{"line":357,"column":27}},{"start":{"line":357,"column":31},"end":{"line":357,"column":57}}]},"32":{"loc":{"start":{"line":359,"column":19},"end":{"line":359,"column":57}},"type":"cond-expr","locations":[{"start":{"line":359,"column":43},"end":{"line":359,"column":48}},{"start":{"line":359,"column":51},"end":{"line":359,"column":57}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":6,"6":1,"7":1,"8":20,"9":20,"10":20,"11":1,"12":1,"13":1,"14":1,"15":2,"16":2,"17":2,"18":1,"19":1,"20":2,"21":2,"22":2,"23":2,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":8,"32":8,"33":8,"34":8,"35":7,"36":7,"37":6,"38":1,"39":1,"40":1,"41":8,"42":8,"43":8,"44":3,"45":8,"46":3,"47":8,"48":3,"49":8,"50":8,"51":8,"52":1,"53":8,"54":15,"55":8,"56":15,"57":1,"58":15,"59":1,"60":1,"61":1,"62":1,"63":1,"64":6,"65":6,"66":7,"67":7,"68":15,"69":15,"70":6,"71":4,"72":2,"73":6,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":2,"83":2,"84":10,"85":9,"86":1,"87":1,"88":1,"89":1,"90":1,"91":2,"92":2,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":2,"110":2,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":2,"127":2,"128":1,"129":2,"130":2,"131":2,"132":2,"133":2,"134":2,"135":2,"136":2,"137":2,"138":2,"139":2,"140":1,"141":2,"142":1,"143":2,"144":2,"145":3,"146":3,"147":3,"148":7,"149":7,"150":7,"151":7,"152":3,"153":3,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":2,"163":2,"164":2,"165":2,"166":2,"167":2,"168":2,"169":2,"170":2,"171":1,"172":1,"173":3,"174":3,"175":3,"176":2,"177":2,"178":1,"179":1},"f":{"0":6,"1":1,"2":1,"3":20,"4":1,"5":2,"6":1,"7":8,"8":8,"9":15,"10":15,"11":6,"12":10,"13":2,"14":1,"15":1,"16":2,"17":1,"18":1,"19":2,"20":2,"21":3,"22":1,"23":2,"24":3},"b":{"0":[1],"1":[1],"2":[6],"3":[8,8],"4":[3],"5":[3],"6":[3],"7":[8],"8":[1],"9":[8,1],"10":[1],"11":[15,7],"12":[1,1,6,7],"13":[4,2],"14":[1,1,1,1,2],"15":[9],"16":[1],"17":[2],"18":[2],"19":[2],"20":[2,2],"21":[1],"22":[2,1],"23":[1],"24":[2,1],"25":[7],"26":[7,7,7],"27":[2],"28":[2,2],"29":[1],"30":[2],"31":[3,3],"32":[1,1]}}
2
- }