arkanalyzer 1.0.30 → 1.0.31
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/lib/callgraph/pointerAnalysis/PTAUtils.d.ts +9 -3
- package/lib/callgraph/pointerAnalysis/PTAUtils.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PTAUtils.js +32 -18
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +17 -1
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +48 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts +48 -18
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +424 -257
- package/lib/core/base/Local.js +2 -2
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +7 -6
- package/lib/core/common/TypeInference.d.ts +1 -0
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +18 -3
- package/package.json +2 -2
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { ClassSignature, MethodSignature } from '../../core/model/ArkSignature';
|
|
2
2
|
export declare function IsCollectionClass(classSignature: ClassSignature): boolean;
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export declare enum BuiltApiType {
|
|
4
|
+
SetAdd = 0,
|
|
5
|
+
MapSet = 1,
|
|
6
|
+
FunctionCall = 2,
|
|
7
|
+
FunctionApply = 3,
|
|
8
|
+
FunctionBind = 4,
|
|
9
|
+
NotBuiltIn = 5
|
|
10
|
+
}
|
|
11
|
+
export declare function getBuiltInApiType(method: MethodSignature): BuiltApiType;
|
|
6
12
|
//# sourceMappingURL=PTAUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PTAUtils.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PTAUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhF,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAMzE;AAED,
|
|
1
|
+
{"version":3,"file":"PTAUtils.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PTAUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhF,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAMzE;AAED,oBAAY,YAAY;IACpB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,YAAY,IAAA;IACZ,UAAU,IAAA;CACb;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAyBvE"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.getBuiltInApiType = exports.BuiltApiType = exports.IsCollectionClass = void 0;
|
|
18
18
|
function IsCollectionClass(classSignature) {
|
|
19
19
|
if (classSignature.toString().endsWith('lib.es2015.collection.d.ts: Set') ||
|
|
20
20
|
classSignature.toString().endsWith('lib.es2015.collection.d.ts: Map')) {
|
|
@@ -23,24 +23,38 @@ function IsCollectionClass(classSignature) {
|
|
|
23
23
|
return false;
|
|
24
24
|
}
|
|
25
25
|
exports.IsCollectionClass = IsCollectionClass;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
var BuiltApiType;
|
|
27
|
+
(function (BuiltApiType) {
|
|
28
|
+
BuiltApiType[BuiltApiType["SetAdd"] = 0] = "SetAdd";
|
|
29
|
+
BuiltApiType[BuiltApiType["MapSet"] = 1] = "MapSet";
|
|
30
|
+
BuiltApiType[BuiltApiType["FunctionCall"] = 2] = "FunctionCall";
|
|
31
|
+
BuiltApiType[BuiltApiType["FunctionApply"] = 3] = "FunctionApply";
|
|
32
|
+
BuiltApiType[BuiltApiType["FunctionBind"] = 4] = "FunctionBind";
|
|
33
|
+
BuiltApiType[BuiltApiType["NotBuiltIn"] = 5] = "NotBuiltIn";
|
|
34
|
+
})(BuiltApiType = exports.BuiltApiType || (exports.BuiltApiType = {}));
|
|
35
|
+
function getBuiltInApiType(method) {
|
|
36
|
+
let methodSigStr = method.toString();
|
|
37
|
+
const regex = /lib\.es5\.d\.ts: Function\.(call|apply|bind)\(/;
|
|
38
|
+
if (methodSigStr.endsWith('lib.es2015.collection.d.ts: Set.add(T)')) {
|
|
39
|
+
return BuiltApiType.SetAdd;
|
|
29
40
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
exports.IsCollectionAPI = IsCollectionAPI;
|
|
33
|
-
function IsCollectionSetAdd(method) {
|
|
34
|
-
if (method.toString().endsWith('lib.es2015.collection.d.ts: Set.add(T)')) {
|
|
35
|
-
return true;
|
|
41
|
+
else if (methodSigStr.endsWith('lib.es2015.collection.d.ts: Map.set(K, V)')) {
|
|
42
|
+
return BuiltApiType.MapSet;
|
|
36
43
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
else {
|
|
45
|
+
const match = methodSigStr.match(regex);
|
|
46
|
+
if (match) {
|
|
47
|
+
const functionName = match[1];
|
|
48
|
+
switch (functionName) {
|
|
49
|
+
case 'call':
|
|
50
|
+
return BuiltApiType.FunctionCall;
|
|
51
|
+
case 'apply':
|
|
52
|
+
return BuiltApiType.FunctionApply;
|
|
53
|
+
case 'bind':
|
|
54
|
+
return BuiltApiType.FunctionBind;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
43
57
|
}
|
|
44
|
-
return
|
|
58
|
+
return BuiltApiType.NotBuiltIn;
|
|
45
59
|
}
|
|
46
|
-
exports.
|
|
60
|
+
exports.getBuiltInApiType = getBuiltInApiType;
|
|
@@ -8,6 +8,7 @@ import { Local } from '../../core/base/Local';
|
|
|
8
8
|
import { MethodSignature } from '../../core/model/ArkSignature';
|
|
9
9
|
import { ContextID } from './Context';
|
|
10
10
|
import { ExportInfo } from '../../core/model/ArkExport';
|
|
11
|
+
import { BuiltApiType } from './PTAUtils';
|
|
11
12
|
import { IPtsCollection } from './PtsDS';
|
|
12
13
|
export type PagNodeType = Value;
|
|
13
14
|
export declare enum PagEdgeKind {
|
|
@@ -175,9 +176,23 @@ export declare class PagParamNode extends PagNode {
|
|
|
175
176
|
}
|
|
176
177
|
export declare class PagFuncNode extends PagNode {
|
|
177
178
|
private methodSignature;
|
|
178
|
-
|
|
179
|
+
private thisPt;
|
|
180
|
+
private methodType;
|
|
181
|
+
private originCallSite;
|
|
182
|
+
private argsOffset;
|
|
183
|
+
private originCid;
|
|
184
|
+
constructor(id: NodeID, cid: number | undefined, r: Value, stmt?: Stmt, method?: MethodSignature, thisInstanceID?: NodeID);
|
|
179
185
|
setMethod(method: MethodSignature): void;
|
|
180
186
|
getMethod(): MethodSignature;
|
|
187
|
+
setThisPt(thisPt: NodeID): void;
|
|
188
|
+
getThisPt(): NodeID;
|
|
189
|
+
setCS(callsite: CallSite): void;
|
|
190
|
+
getCS(): CallSite;
|
|
191
|
+
setArgsOffset(offset: number): void;
|
|
192
|
+
getArgsOffset(): number;
|
|
193
|
+
getMethodType(): BuiltApiType;
|
|
194
|
+
setOriginCid(cid: ContextID): void;
|
|
195
|
+
getOriginCid(): ContextID;
|
|
181
196
|
}
|
|
182
197
|
/**
|
|
183
198
|
* almost same as PagNewExprNode, used only for globalThis and its field reference
|
|
@@ -201,6 +216,7 @@ export declare class Pag extends BaseExplicitGraph {
|
|
|
201
216
|
getOrClonePagNode(src: PagNode, basePt: NodeID): PagNode;
|
|
202
217
|
getOrClonePagFieldNode(src: PagInstanceFieldNode, basePt: NodeID): PagInstanceFieldNode | undefined;
|
|
203
218
|
getOrClonePagContainerFieldNode(basePt: NodeID, src?: PagArrayNode, base?: Local): PagInstanceFieldNode | undefined;
|
|
219
|
+
getOrClonePagFuncNode(basePt: NodeID): PagFuncNode | undefined;
|
|
204
220
|
addPagNode(cid: ContextID, value: PagNodeType, stmt?: Stmt, refresh?: boolean): PagNode;
|
|
205
221
|
private handleLocalNode;
|
|
206
222
|
private handleInstanceFieldNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AACzG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAiB,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAA+B,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzI,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAK9C,OAAO,EAAiD,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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"}
|
|
@@ -329,6 +329,9 @@ class PagNode extends BaseExplicitGraph_1.BaseNode {
|
|
|
329
329
|
if (this.getKind() === PagNodeKind.ThisRef) {
|
|
330
330
|
label = label + `\n${this.value.toString()}`;
|
|
331
331
|
}
|
|
332
|
+
if (this.getKind() === PagNodeKind.Function) {
|
|
333
|
+
label = label + ` thisPt:{${this.getThisPt()}}`;
|
|
334
|
+
}
|
|
332
335
|
if (this.stmt) {
|
|
333
336
|
label = label + `\n${this.stmt.toString()}`;
|
|
334
337
|
let method = (_a = this.stmt.getCfg()) === null || _a === void 0 ? void 0 : _a.getDeclaringMethod().getSubSignature().toString();
|
|
@@ -479,18 +482,51 @@ class PagParamNode extends PagNode {
|
|
|
479
482
|
exports.PagParamNode = PagParamNode;
|
|
480
483
|
class PagFuncNode extends PagNode {
|
|
481
484
|
// TODO: may add obj interface
|
|
482
|
-
constructor(id, cid = undefined, r, stmt, method) {
|
|
485
|
+
constructor(id, cid = undefined, r, stmt, method, thisInstanceID) {
|
|
483
486
|
super(id, cid, r, PagNodeKind.Function, stmt);
|
|
487
|
+
this.argsOffset = 0;
|
|
484
488
|
if (method) {
|
|
485
489
|
this.methodSignature = method;
|
|
490
|
+
this.methodType = (0, PTAUtils_1.getBuiltInApiType)(method);
|
|
491
|
+
}
|
|
492
|
+
if (thisInstanceID) {
|
|
493
|
+
this.thisPt = thisInstanceID;
|
|
486
494
|
}
|
|
487
495
|
}
|
|
488
496
|
setMethod(method) {
|
|
489
497
|
this.methodSignature = method;
|
|
498
|
+
this.methodType = (0, PTAUtils_1.getBuiltInApiType)(method);
|
|
490
499
|
}
|
|
491
500
|
getMethod() {
|
|
492
501
|
return this.methodSignature;
|
|
493
502
|
}
|
|
503
|
+
setThisPt(thisPt) {
|
|
504
|
+
this.thisPt = thisPt;
|
|
505
|
+
}
|
|
506
|
+
getThisPt() {
|
|
507
|
+
return this.thisPt;
|
|
508
|
+
}
|
|
509
|
+
setCS(callsite) {
|
|
510
|
+
this.originCallSite = callsite;
|
|
511
|
+
}
|
|
512
|
+
getCS() {
|
|
513
|
+
return this.originCallSite;
|
|
514
|
+
}
|
|
515
|
+
setArgsOffset(offset) {
|
|
516
|
+
this.argsOffset = offset;
|
|
517
|
+
}
|
|
518
|
+
getArgsOffset() {
|
|
519
|
+
return this.argsOffset;
|
|
520
|
+
}
|
|
521
|
+
getMethodType() {
|
|
522
|
+
return this.methodType;
|
|
523
|
+
}
|
|
524
|
+
setOriginCid(cid) {
|
|
525
|
+
this.originCid = cid;
|
|
526
|
+
}
|
|
527
|
+
getOriginCid() {
|
|
528
|
+
return this.originCid;
|
|
529
|
+
}
|
|
494
530
|
}
|
|
495
531
|
exports.PagFuncNode = PagFuncNode;
|
|
496
532
|
/**
|
|
@@ -609,6 +645,17 @@ class Pag extends BaseExplicitGraph_1.BaseExplicitGraph {
|
|
|
609
645
|
}
|
|
610
646
|
return undefined;
|
|
611
647
|
}
|
|
648
|
+
getOrClonePagFuncNode(basePt) {
|
|
649
|
+
let baseNode = this.getNode(basePt);
|
|
650
|
+
if (baseNode instanceof PagFuncNode) {
|
|
651
|
+
let clonedFuncNode = this.getOrClonePagNode(baseNode, basePt);
|
|
652
|
+
return clonedFuncNode;
|
|
653
|
+
}
|
|
654
|
+
else {
|
|
655
|
+
logger.error(`Error clone func node ${baseNode.getValue()}`);
|
|
656
|
+
return undefined;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
612
659
|
addPagNode(cid, value, stmt, refresh = true) {
|
|
613
660
|
let id = this.nodeNum + 1;
|
|
614
661
|
let pagNode;
|
|
@@ -3,6 +3,7 @@ import { Scene } from '../../Scene';
|
|
|
3
3
|
import { Stmt } from '../../core/base/Stmt';
|
|
4
4
|
import { ArkThisRef } from '../../core/base/Ref';
|
|
5
5
|
import { Value } from '../../core/base/Value';
|
|
6
|
+
import { ArkMethod } from '../../core/model/ArkMethod';
|
|
6
7
|
import { Local } from '../../core/base/Local';
|
|
7
8
|
import { NodeID } from '../../core/graph/BaseExplicitGraph';
|
|
8
9
|
import { ContextID } from './Context';
|
|
@@ -61,34 +62,48 @@ export declare class PagBuilder {
|
|
|
61
62
|
buildPagFromFuncPag(funcID: FuncID, cid: ContextID): void;
|
|
62
63
|
addEdgesFromFuncPag(funcPag: FuncPag, cid: ContextID, funcID: FuncID): boolean;
|
|
63
64
|
addCallsEdgesFromFuncPag(funcPag: FuncPag, cid: ContextID): boolean;
|
|
64
|
-
|
|
65
|
-
* process Storage API
|
|
66
|
-
* @returns boolean: check if the cs represent a Storage API, no matter the API will success or fail
|
|
67
|
-
*/
|
|
68
|
-
private processStorage;
|
|
69
|
-
private processStorageSetOrCreate;
|
|
70
|
-
private processStorageLink;
|
|
71
|
-
private processStorageProp;
|
|
72
|
-
private processStorageSet;
|
|
73
|
-
private processStorageGet;
|
|
74
|
-
private getPropertyName;
|
|
75
|
-
addDynamicCallSite(funcPag: FuncPag, funcID: FuncID): void;
|
|
65
|
+
addDynamicCallSite(funcPag: FuncPag, funcID: FuncID, cid: ContextID): void;
|
|
76
66
|
addUnknownCallSite(funcPag: FuncPag, funcID: FuncID): void;
|
|
77
67
|
addDynamicCallEdge(cs: DynCallSite | CallSite, baseClassPTNode: NodeID, cid: ContextID): NodeID[];
|
|
68
|
+
/**
|
|
69
|
+
* all possible callee methods of a dynamic call site
|
|
70
|
+
* handle both PtrInvokeExpr and InstanceInvokeExpr
|
|
71
|
+
*/
|
|
78
72
|
private getDynamicCallee;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
73
|
+
processNormalMethodPagCallEdge(staticCS: CallSite, cid: ContextID, calleeCid: ContextID, baseClassPTNode: NodeID): NodeID[];
|
|
74
|
+
/**
|
|
75
|
+
* include container API, Function API
|
|
76
|
+
*/
|
|
77
|
+
processBuiltInMethodPagCallEdge(staticCS: CallSite, cid: ContextID, calleeCid: ContextID, baseClassPTNode: NodeID): NodeID[];
|
|
78
|
+
private processContainerPagCallEdge;
|
|
79
|
+
private handleFunctionCall;
|
|
80
|
+
private handleFunctionApply;
|
|
81
|
+
private handleFunctionBind;
|
|
82
|
+
private addThisEdge;
|
|
83
|
+
private setFunctionThisPt;
|
|
82
84
|
handleUnkownDynamicCall(cs: DynCallSite, cid: ContextID): NodeID[];
|
|
83
85
|
handleUnprocessedCallSites(processedCallSites: Set<DynCallSite>): NodeID[];
|
|
84
86
|
private addThisRefCallEdge;
|
|
85
|
-
|
|
87
|
+
private recordThisRefNode;
|
|
88
|
+
addStaticPagCallEdge(cs: CallSite, callerCid: ContextID, calleeCid?: ContextID, ptNode?: PagNode): NodeID[];
|
|
89
|
+
/**
|
|
90
|
+
* only process the param PAG edge for invoke stmt
|
|
91
|
+
*/
|
|
92
|
+
private addCallParamPagEdge;
|
|
93
|
+
/**
|
|
94
|
+
* temporary solution for foreach
|
|
95
|
+
* deprecate when foreach is handled by built-in method
|
|
96
|
+
* connect the element node with the value inside foreach
|
|
97
|
+
*/
|
|
98
|
+
private addForeachParamPagEdge;
|
|
99
|
+
/**
|
|
100
|
+
* process the return value PAG edge for invoke stmt
|
|
101
|
+
*/
|
|
102
|
+
addCallReturnPagEdge(calleeMethod: ArkMethod, callStmt: Stmt, callerCid: ContextID, calleeCid: ContextID): NodeID[];
|
|
86
103
|
addStaticPagCallReturnEdge(cs: CallSite, callerCid: ContextID, calleeCid: ContextID): NodeID[];
|
|
87
|
-
addCallParamPagEdge(params: Value[], cs: CallSite, callerCid: ContextID, calleeCid: ContextID): NodeID[];
|
|
88
104
|
private addSDKMethodPagCallEdge;
|
|
89
105
|
private addSDKMethodReturnPagEdge;
|
|
90
106
|
private addSDKMethodParamPagEdge;
|
|
91
|
-
private processContainerPagCallEdge;
|
|
92
107
|
getOrNewPagNode(cid: ContextID, v: PagNodeType, s?: Stmt): PagNode;
|
|
93
108
|
/**
|
|
94
109
|
* return ThisRef PAG node according to cid, a cid has a unique ThisRef node
|
|
@@ -123,6 +138,17 @@ export declare class PagBuilder {
|
|
|
123
138
|
private funcPagDfs;
|
|
124
139
|
getGlobalThisValue(): Local;
|
|
125
140
|
private getEdgeKindForAssignStmt;
|
|
141
|
+
/**
|
|
142
|
+
* process Storage API
|
|
143
|
+
* @returns boolean: check if the cs represent a Storage API, no matter the API will success or fail
|
|
144
|
+
*/
|
|
145
|
+
private processStorage;
|
|
146
|
+
private processStorageSetOrCreate;
|
|
147
|
+
private processStorageLink;
|
|
148
|
+
private processStorageProp;
|
|
149
|
+
private processStorageSet;
|
|
150
|
+
private processStorageGet;
|
|
151
|
+
private getPropertyName;
|
|
126
152
|
/**
|
|
127
153
|
* get storageType enum with method's Declaring ClassName
|
|
128
154
|
*
|
|
@@ -166,5 +192,9 @@ export declare class PagBuilder {
|
|
|
166
192
|
getExportVariableMap(src: Local): Local[];
|
|
167
193
|
addEdgesFromInterFuncPag(interFuncPag: InterFuncPag, cid: ContextID): boolean;
|
|
168
194
|
getRetriggerNodes(): NodeID[];
|
|
195
|
+
addUpdatedNode(nodeID: NodeID, diffPT: IPtsCollection<NodeID>): void;
|
|
196
|
+
getUpdatedNodes(): Map<number, IPtsCollection<number>>;
|
|
197
|
+
resetUpdatedNodes(): void;
|
|
198
|
+
private transferArrayValues;
|
|
169
199
|
}
|
|
170
200
|
//# sourceMappingURL=PagBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PagBuilder.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PagBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAoC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAA+C,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAUxF,OAAO,EAMH,UAAU,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"PagBuilder.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PagBuilder.ts"],"names":[],"mappings":"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"}
|