Changeset 220188 in webkit


Ignore:
Timestamp:
Aug 2, 2017 11:18:08 PM (7 years ago)
Author:
Devin Rousso
Message:

Web Inspector: add stack trace information for each RecordingAction
https://bugs.webkit.org/show_bug.cgi?id=174663

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/ScriptCallFrame.h:

Add operator== so that when a ScriptCallFrame object is held in a Vector, calling find
with an existing value doesn't need require a functor and can use existing code.

  • interpreter/StackVisitor.h:
  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::isWasmFrame const): Inlined in header.

Source/WebCore:

Tests: inspector/canvas/recording-2d.html

inspector/model/recording.html

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):
(WebCore::InspectorCanvas::buildAction):

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Models/Recording.js:

(WI.Recording.prototype.swizzle):
Add Array type for swizzling array values.

  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction):
(WI.RecordingAction.fromPayload):
(WI.RecordingAction.prototype.get trace):
(WI.RecordingAction.prototype.swizzle):
(WI.RecordingAction.prototype.toJSON):

  • UserInterface/Views/RecordingTraceDetailsSidebarPanel.js: Added.

(WI.RecordingTraceDetailsSidebarPanel):
(WI.RecordingTraceDetailsSidebarPanel.disallowInstanceForClass):
(WI.RecordingTraceDetailsSidebarPanel.prototype.inspect):
(WI.RecordingTraceDetailsSidebarPanel.prototype.set recording):
(WI.RecordingTraceDetailsSidebarPanel.prototype.updateActionIndex):

  • UserInterface/Views/RecordingTraceDetailsSidebarPanel.css: Added.

(.sidebar > .panel.details.recording-trace > .content > .call-frame):
(.sidebar > .details.recording-trace > .content > .no-trace-data):
(.sidebar > .details.recording-trace > .content > .no-trace-data > .message):

  • UserInterface/Views/RecordingTabContentView.js:

(WI.RecordingTabContentView):

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/CallFrameView.css:

(.call-frame):
(body[dir=ltr] .call-frame .icon):
(body[dir=rtl] .call-frame .icon):
Apply the same trailing margin for CallFrameView icons as TreeElement.

LayoutTests:

  • inspector/canvas/recording-2d-expected.txt:
  • inspector/canvas/recording-2d.html:
  • inspector/model/recording-expected.txt:
  • inspector/model/recording.html:
Location:
trunk
Files:
1 added
20 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r220185 r220188  
     12017-08-02  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: add stack trace information for each RecordingAction
     4        https://bugs.webkit.org/show_bug.cgi?id=174663
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        * inspector/canvas/recording-2d-expected.txt:
     9        * inspector/canvas/recording-2d.html:
     10        * inspector/model/recording-expected.txt:
     11        * inspector/model/recording.html:
     12
    1132017-08-02  Chris Dumez  <cdumez@apple.com>
    214
  • trunk/LayoutTests/inspector/canvas/recording-2d-expected.txt

    r220008 r220188  
    5656            5,
    5757            0
     58          ],
     59          [
     60            4,
     61            6,
     62            7,
     63            9,
     64            11,
     65            13,
     66            16,
     67            18,
     68            20
    5869          ]
    5970        ],
     
    6778            10,
    6879            1
     80          ],
     81          [
     82            21,
     83            6,
     84            22,
     85            9,
     86            11,
     87            13,
     88            16,
     89            18,
     90            20
    6991          ]
    7092        ]
     
    7496  "data": [
    7597    "#000000",
    76     "arc"
     98    "arc",
     99    "",
     100    "inspector/canvas/recording-2d.html",
     101    [
     102      2,
     103      3,
     104      58,
     105      42
     106    ],
     107    "ignoreException",
     108    [
     109      5,
     110      3,
     111      45,
     112      10
     113    ],
     114    [
     115      2,
     116      3,
     117      58,
     118      28
     119    ],
     120    "f",
     121    [
     122      8,
     123      3,
     124      378,
     125      24
     126    ],
     127    "performActions",
     128    [
     129      10,
     130      3,
     131      382,
     132      6
     133    ],
     134    "global code",
     135    [
     136      12,
     137      2,
     138      1,
     139      15
     140    ],
     141    "evaluateWithScopeExtension",
     142    "[native code]",
     143    [
     144      14,
     145      15,
     146      0,
     147      0
     148    ],
     149    "_evaluateOn",
     150    [
     151      17,
     152      2,
     153      128,
     154      29
     155    ],
     156    "_evaluateAndWrap",
     157    [
     158      19,
     159      2,
     160      122,
     161      108
     162    ],
     163    [
     164      2,
     165      3,
     166      59,
     167      42
     168    ],
     169    [
     170      2,
     171      3,
     172      59,
     173      28
     174    ]
    77175  ]
    78176}
     
    131229            5,
    132230            0
     231          ],
     232          [
     233            4,
     234            6,
     235            7,
     236            9,
     237            11,
     238            13,
     239            16,
     240            18,
     241            20
    133242          ]
    134243        ],
     
    142251            10,
    143252            1
    144           ]
    145         ]
    146       ]
    147     },
    148     {
    149       "actions": [
    150         [
    151           2,
     253          ],
     254          [
     255            21,
     256            6,
     257            22,
     258            9,
     259            11,
     260            13,
     261            16,
     262            18,
     263            20
     264          ]
     265        ]
     266      ]
     267    },
     268    {
     269      "actions": [
     270        [
     271          23,
    152272          [
    153273            1,
     
    156276            4,
    157277            5
    158           ]
    159         ]
    160       ]
    161     },
    162     {
    163       "actions": [
    164         [
    165           3,
    166           []
    167         ]
    168       ]
    169     },
    170     {
    171       "actions": [
    172         [
    173           4,
     278          ],
     279          [
     280            24,
     281            6,
     282            25,
     283            9
     284          ]
     285        ]
     286      ]
     287    },
     288    {
     289      "actions": [
     290        [
     291          26,
     292          [],
     293          [
     294            27,
     295            9
     296          ]
     297        ]
     298      ]
     299    },
     300    {
     301      "actions": [
     302        [
     303          28,
    174304          [
    175305            1,
     
    179309            5,
    180310            6
    181           ]
    182         ]
    183       ]
    184     },
    185     {
    186       "actions": [
    187         [
    188           5,
    189           []
    190         ]
    191       ]
    192     },
    193     {
    194       "actions": [
    195         [
    196           6,
     311          ],
     312          [
     313            29,
     314            9
     315          ]
     316        ]
     317      ]
     318    },
     319    {
     320      "actions": [
     321        [
     322          30,
     323          [],
     324          [
     325            31,
     326            9
     327          ]
     328        ]
     329      ]
     330    },
     331    {
     332      "actions": [
     333        [
     334          32,
    197335          [
    198336            1,
     
    200338            3,
    201339            4
    202           ]
    203         ]
    204       ]
    205     },
    206     {
    207       "actions": [
    208         [
    209           7,
    210           []
    211         ]
    212       ]
    213     },
    214     {
    215       "actions": [
    216         [
    217           8,
    218           [
    219             9
    220           ]
    221         ],
    222         [
    223           8,
    224           [
    225             10
    226           ]
    227         ],
    228         [
    229           8,
    230           [
    231             11,
    232             9
    233           ]
    234         ],
    235         [
    236           8,
    237           [
    238             12,
    239             10
    240           ]
    241         ]
    242       ]
    243     },
    244     {
    245       "actions": [
    246         [
    247           13,
    248           []
    249         ]
    250       ]
    251     },
    252     {
    253       "actions": [
    254         [
    255           14,
    256           []
    257         ]
    258       ]
    259     },
    260     {
    261       "actions": [
    262         [
    263           15,
    264           [
    265             16
    266           ]
    267         ],
    268         [
    269           15,
     340          ],
     341          [
     342            33,
     343            9
     344          ]
     345        ]
     346      ]
     347    },
     348    {
     349      "actions": [
     350        [
     351          34,
     352          [],
     353          [
     354            35,
     355            9
     356          ]
     357        ]
     358      ]
     359    },
     360    {
     361      "actions": [
     362        [
     363          36,
     364          [
     365            37
     366          ],
     367          [
     368            38,
     369            9
     370          ]
     371        ],
     372        [
     373          36,
     374          [
     375            39
     376          ],
     377          [
     378            40,
     379            9
     380          ]
     381        ],
     382        [
     383          36,
     384          [
     385            41,
     386            37
     387          ],
     388          [
     389            42,
     390            9
     391          ]
     392        ],
     393        [
     394          36,
     395          [
     396            43,
     397            39
     398          ],
     399          [
     400            44,
     401            9
     402          ]
     403        ]
     404      ]
     405    },
     406    {
     407      "actions": [
     408        [
     409          45,
     410          [],
     411          [
     412            46,
     413            9
     414          ]
     415        ]
     416      ]
     417    },
     418    {
     419      "actions": [
     420        [
     421          47,
     422          [],
     423          [
     424            48,
     425            9
     426          ]
     427        ]
     428      ]
     429    },
     430    {
     431      "actions": [
     432        [
     433          49,
     434          [
     435            50
     436          ],
     437          [
     438            51,
     439            6,
     440            52,
     441            9
     442          ]
     443        ],
     444        [
     445          49,
    270446          [
    271447            2,
    272448            3
    273           ]
    274         ]
    275       ]
    276     },
    277     {
    278       "actions": [
    279         [
    280           17,
     449          ],
     450          [
     451            53,
     452            6,
     453            54,
     454            9
     455          ]
     456        ]
     457      ]
     458    },
     459    {
     460      "actions": [
     461        [
     462          55,
    281463          [
    282464            1,
     
    284466            3,
    285467            4
    286           ]
    287         ]
    288       ]
    289     },
    290     {
    291       "actions": [
    292         [
    293           18,
    294           [
    295             19,
    296             20
    297           ]
    298         ],
    299         [
    300           18,
    301           [
    302             21,
    303             22
    304           ]
    305         ],
    306         [
    307           18,
    308           [
    309             23,
    310             24
    311           ]
    312         ]
    313       ]
    314     },
    315     {
    316       "actions": [
    317         [
    318           25,
     468          ],
     469          [
     470            56,
     471            6,
     472            57,
     473            9
     474          ]
     475        ]
     476      ]
     477    },
     478    {
     479      "actions": [
     480        [
     481          58,
     482          [
     483            59,
     484            60
     485          ],
     486          [
     487            61,
     488            6,
     489            62,
     490            9
     491          ]
     492        ],
     493        [
     494          58,
     495          [
     496            63,
     497            64
     498          ],
     499          [
     500            65,
     501            6,
     502            66,
     503            9
     504          ]
     505        ],
     506        [
     507          58,
     508          [
     509            67,
     510            68
     511          ],
     512          [
     513            69,
     514            6,
     515            70,
     516            9
     517          ]
     518        ]
     519      ]
     520    },
     521    {
     522      "actions": [
     523        [
     524          71,
    319525          [
    320526            1,
     
    324530            5,
    325531            6
    326           ]
    327         ]
    328       ]
    329     },
    330     {
    331       "actions": [
    332         [
    333           26,
    334           []
    335         ],
    336         [
    337           26,
    338           [
    339             27
    340           ]
    341         ]
    342       ]
    343     },
    344     {
    345       "actions": [
    346         [
    347           28,
    348           [
    349             29
    350           ]
    351         ],
    352         [
    353           28,
    354           [
    355             11,
    356             29
    357           ]
    358         ]
    359       ]
    360     },
    361     {
    362       "actions": [
    363         [
    364           30,
    365           [
    366             19,
     532          ],
     533          [
     534            72,
     535            6,
     536            73,
     537            9
     538          ]
     539        ]
     540      ]
     541    },
     542    {
     543      "actions": [
     544        [
     545          74,
     546          [],
     547          [
     548            75,
     549            9
     550          ]
     551        ],
     552        [
     553          74,
     554          [
     555            76
     556          ],
     557          [
     558            77,
     559            9
     560          ]
     561        ]
     562      ]
     563    },
     564    {
     565      "actions": [
     566        [
     567          78,
     568          [
     569            79
     570          ],
     571          [
     572            80,
     573            9
     574          ]
     575        ],
     576        [
     577          78,
     578          [
     579            41,
     580            79
     581          ],
     582          [
     583            81,
     584            9
     585          ]
     586        ]
     587      ]
     588    },
     589    {
     590      "actions": [
     591        [
     592          82,
     593          [
     594            59,
    367595            1,
    368596            2
    369           ]
    370         ],
    371         [
    372           30,
    373           [
    374             21,
     597          ],
     598          [
     599            83,
     600            6,
     601            84,
     602            9
     603          ]
     604        ],
     605        [
     606          82,
     607          [
     608            63,
    375609            3,
    376610            4
    377           ]
    378         ],
    379         [
    380           30,
    381           [
    382             23,
     611          ],
     612          [
     613            85,
     614            6,
     615            86,
     616            9
     617          ]
     618        ],
     619        [
     620          82,
     621          [
     622            67,
    383623            5,
    384624            6
    385           ]
    386         ],
    387         [
    388           30,
    389           [
    390             19,
     625          ],
     626          [
     627            87,
     628            6,
     629            88,
     630            9
     631          ]
     632        ],
     633        [
     634          82,
     635          [
     636            59,
    391637            7,
    392638            8,
    393639            9,
    394640            10
    395           ]
    396         ],
    397         [
    398           30,
    399           [
    400             21,
     641          ],
     642          [
     643            89,
     644            6,
     645            90,
     646            9
     647          ]
     648        ],
     649        [
     650          82,
     651          [
     652            63,
    401653            11,
    402654            12,
    403655            13,
    404656            14
    405           ]
    406         ],
    407         [
    408           30,
    409           [
    410             23,
     657          ],
     658          [
     659            91,
     660            6,
     661            92,
     662            9
     663          ]
     664        ],
     665        [
     666          82,
     667          [
     668            67,
    411669            15,
    412670            16,
    413671            17,
    414672            18
    415           ]
    416         ],
    417         [
    418           30,
    419           [
    420             19,
     673          ],
     674          [
     675            93,
     676            6,
     677            94,
     678            9
     679          ]
     680        ],
     681        [
     682          82,
     683          [
     684            59,
    421685            19,
    422686            20,
     
    427691            25,
    428692            26
    429           ]
    430         ],
    431         [
    432           30,
    433           [
    434             21,
     693          ],
     694          [
     695            95,
     696            6,
     697            96,
     698            9
     699          ]
     700        ],
     701        [
     702          82,
     703          [
     704            63,
    435705            27,
    436706            28,
     
    441711            33,
    442712            34
    443           ]
    444         ],
    445         [
    446           30,
    447           [
    448             23,
     713          ],
     714          [
     715            97,
     716            6,
     717            98,
     718            9
     719          ]
     720        ],
     721        [
     722          82,
     723          [
     724            67,
    449725            35,
    450726            36,
     
    455731            41,
    456732            42
    457           ]
    458         ]
    459       ]
    460     },
    461     {
    462       "actions": [
    463         [
    464           31,
    465           [
    466             19,
     733          ],
     734          [
     735            99,
     736            6,
     737            100,
     738            9
     739          ]
     740        ]
     741      ]
     742    },
     743    {
     744      "actions": [
     745        [
     746          101,
     747          [
     748            59,
    467749            1,
    468750            2,
     
    473755            7,
    474756            8,
    475             32
    476           ]
    477         ],
    478         [
    479           31,
    480           [
    481             19,
     757            2
     758          ],
     759          [
     760            102,
     761            9
     762          ]
     763        ],
     764        [
     765          101,
     766          [
     767            59,
    482768            9,
    483769            10,
     
    488774            15,
    489775            16,
    490             27
    491           ]
    492         ]
    493       ]
    494     },
    495     {
    496       "actions": [
    497         [
    498           33,
     776            76
     777          ],
     778          [
     779            103,
     780            9
     781          ]
     782        ]
     783      ]
     784    },
     785    {
     786      "actions": [
     787        [
     788          104,
    499789          [
    500790            1,
     
    506796            7,
    507797            0
    508           ]
    509         ],
    510         [
    511           33,
     798          ],
     799          [
     800            105,
     801            6,
     802            106,
     803            9
     804          ]
     805        ],
     806        [
     807          104,
    512808          [
    513809            8,
     
    519815            14,
    520816            1
    521           ]
    522         ]
    523       ]
    524     },
    525     {
    526       "actions": [
    527         [
    528           34,
    529           [
    530             9
    531           ]
    532         ],
    533         [
    534           34,
    535           [
    536             10
    537           ]
    538         ],
    539         [
    540           34,
    541           [
    542             11,
    543             9
    544           ]
    545         ],
    546         [
    547           34,
    548           [
    549             12,
    550             10
    551           ]
    552         ]
    553       ]
    554     },
    555     {
    556       "actions": [
    557         [
    558           35,
     817          ],
     818          [
     819            107,
     820            6,
     821            108,
     822            9
     823          ]
     824        ]
     825      ]
     826    },
     827    {
     828      "actions": [
     829        [
     830          109,
     831          [
     832            37
     833          ],
     834          [
     835            110,
     836            9
     837          ]
     838        ],
     839        [
     840          109,
     841          [
     842            39
     843          ],
     844          [
     845            111,
     846            9
     847          ]
     848        ],
     849        [
     850          109,
     851          [
     852            41,
     853            37
     854          ],
     855          [
     856            112,
     857            9
     858          ]
     859        ],
     860        [
     861          109,
     862          [
     863            43,
     864            39
     865          ],
     866          [
     867            113,
     868            9
     869          ]
     870        ]
     871      ]
     872    },
     873    {
     874      "actions": [
     875        [
     876          114,
    559877          [
    560878            1,
     
    562880            3,
    563881            4
    564           ]
    565         ]
    566       ]
    567     },
    568     {
    569       "actions": [
    570         [
    571           36,
    572           []
    573         ],
    574         [
    575           36,
    576           [
    577             27
    578           ]
    579         ],
    580         [
    581           36,
    582           [
    583             38
    584           ]
    585         ],
    586         [
    587           36,
    588           [
    589             40
    590           ]
    591         ],
    592         [
    593           36,
    594           [
    595             44
    596           ]
    597         ]
    598       ]
    599     },
    600     {
    601       "actions": [
    602         [
    603           45,
    604           [
    605             20,
     882          ],
     883          [
     884            115,
     885            9
     886          ]
     887        ]
     888      ]
     889    },
     890    {
     891      "actions": [
     892        [
     893          116,
     894          [],
     895          [
     896            117,
     897            9
     898          ]
     899        ],
     900        [
     901          116,
     902          [
     903            76
     904          ],
     905          [
     906            118,
     907            9
     908          ]
     909        ],
     910        [
     911          116,
     912          [
     913            120
     914          ],
     915          [
     916            121,
     917            9
     918          ]
     919        ],
     920        [
     921          116,
     922          [
     923            123
     924          ],
     925          [
     926            124,
     927            9
     928          ]
     929        ],
     930        [
     931          116,
     932          [
     933            128
     934          ],
     935          [
     936            129,
     937            9
     938          ]
     939        ]
     940      ]
     941    },
     942    {
     943      "actions": [
     944        [
     945          130,
     946          [
     947            60,
    606948            1,
    607949            2
    608           ]
    609         ],
    610         [
    611           45,
    612           [
    613             22,
     950          ],
     951          [
     952            131,
     953            9
     954          ]
     955        ],
     956        [
     957          130,
     958          [
     959            64,
    614960            3,
    615961            4,
    616962            5
    617           ]
    618         ]
    619       ]
    620     },
    621     {
    622       "actions": [
    623         [
    624           46,
    625           []
    626         ],
    627         [
    628           46,
    629           [
    630             27
    631           ]
    632         ]
    633       ]
    634     },
    635     {
    636       "actions": [
    637         [
    638           47,
     963          ],
     964          [
     965            132,
     966            9
     967          ]
     968        ]
     969      ]
     970    },
     971    {
     972      "actions": [
     973        [
     974          133,
     975          [],
     976          [
     977            134,
     978            9
     979          ]
     980        ],
     981        [
     982          133,
     983          [
     984            76
     985          ],
     986          [
     987            135,
     988            9
     989          ]
     990        ]
     991      ]
     992    },
     993    {
     994      "actions": [
     995        [
     996          136,
    639997          [
    640998            1,
     
    6421000            3,
    6431001            4
    644           ]
    645         ]
    646       ]
    647     },
    648     {
    649       "actions": [
    650         [
    651           48,
    652           []
    653         ]
    654       ]
    655     },
    656     {
    657       "actions": [
    658         [
    659           49,
    660           []
    661         ]
    662       ]
    663     },
    664     {
    665       "actions": [
    666         [
    667           50,
    668           []
    669         ],
    670         [
    671           50,
     1002          ],
     1003          [
     1004            137,
     1005            6,
     1006            138,
     1007            9
     1008          ]
     1009        ]
     1010      ]
     1011    },
     1012    {
     1013      "actions": [
     1014        [
     1015          139,
     1016          [],
     1017          [
     1018            140,
     1019            9
     1020          ]
     1021        ]
     1022      ]
     1023    },
     1024    {
     1025      "actions": [
     1026        [
     1027          141,
     1028          [],
     1029          [
     1030            142,
     1031            9
     1032          ]
     1033        ]
     1034      ]
     1035    },
     1036    {
     1037      "actions": [
     1038        [
     1039          143,
     1040          [],
     1041          [
     1042            144,
     1043            9
     1044          ]
     1045        ],
     1046        [
     1047          143,
    6721048          [
    6731049            0
    674           ]
    675         ]
    676       ]
    677     },
    678     {
    679       "actions": [
    680         [
    681           51,
    682           []
    683         ],
    684         [
    685           51,
    686           [
    687             27
    688           ]
    689         ]
    690       ]
    691     },
    692     {
    693       "actions": [
    694         [
    695           52,
    696           []
    697         ],
    698         [
    699           52,
     1050          ],
     1051          [
     1052            145,
     1053            9
     1054          ]
     1055        ]
     1056      ]
     1057    },
     1058    {
     1059      "actions": [
     1060        [
     1061          146,
     1062          [],
     1063          [
     1064            147,
     1065            9
     1066          ]
     1067        ],
     1068        [
     1069          146,
     1070          [
     1071            76
     1072          ],
     1073          [
     1074            148,
     1075            9
     1076          ]
     1077        ]
     1078      ]
     1079    },
     1080    {
     1081      "actions": [
     1082        [
     1083          149,
     1084          [],
     1085          [
     1086            150,
     1087            9
     1088          ]
     1089        ],
     1090        [
     1091          149,
    7001092          [
    7011093            1
    702           ]
    703         ]
    704       ]
    705     },
    706     {
    707       "actions": [
    708         [
    709           53,
    710           []
    711         ],
    712         [
    713           53,
    714           [
    715             54
    716           ]
    717         ]
    718       ]
    719     },
    720     {
    721       "actions": [
    722         [
    723           55,
    724           [
    725             11,
     1094          ],
     1095          [
     1096            151,
     1097            9
     1098          ]
     1099        ]
     1100      ]
     1101    },
     1102    {
     1103      "actions": [
     1104        [
     1105          152,
     1106          [],
     1107          [
     1108            153,
     1109            9
     1110          ]
     1111        ],
     1112        [
     1113          152,
     1114          [
     1115            154
     1116          ],
     1117          [
     1118            155,
     1119            9
     1120          ]
     1121        ]
     1122      ]
     1123    },
     1124    {
     1125      "actions": [
     1126        [
     1127          156,
     1128          [
     1129            41,
    7261130            5,
    7271131            6,
    728             9
    729           ]
    730         ],
    731         [
    732           55,
    733           [
    734             12,
     1132            37
     1133          ],
     1134          [
     1135            157,
     1136            9
     1137          ]
     1138        ],
     1139        [
     1140          156,
     1141          [
     1142            43,
    7351143            7,
    7361144            8,
    737             10
    738           ]
    739         ],
    740         [
    741           55,
     1145            39
     1146          ],
     1147          [
     1148            158,
     1149            9
     1150          ]
     1151        ],
     1152        [
     1153          156,
    7421154          [
    7431155            9,
    7441156            10,
    745             9
    746           ]
    747         ],
    748         [
    749           55,
     1157            37
     1158          ],
     1159          [
     1160            159,
     1161            9
     1162          ]
     1163        ],
     1164        [
     1165          156,
    7501166          [
    7511167            11,
    7521168            12,
    753             10
    754           ]
    755         ]
    756       ]
    757     },
    758     {
    759       "actions": [
    760         [
    761           56,
    762           [
    763             11,
     1169            39
     1170          ],
     1171          [
     1172            160,
     1173            9
     1174          ]
     1175        ]
     1176      ]
     1177    },
     1178    {
     1179      "actions": [
     1180        [
     1181          161,
     1182          [
     1183            41,
    7641184            3,
    7651185            4
    766           ]
    767         ],
    768         [
    769           56,
     1186          ],
     1187          [
     1188            162,
     1189            9
     1190          ]
     1191        ],
     1192        [
     1193          161,
    7701194          [
    7711195            5,
    7721196            6
    773           ]
    774         ]
    775       ]
    776     },
    777     {
    778       "actions": [
    779         [
    780           57,
    781           []
    782         ],
    783         [
    784           57,
    785           [
    786             27
    787           ]
    788         ]
    789       ]
    790     },
    791     {
    792       "actions": [
    793         [
    794           58,
    795           []
    796         ],
    797         [
    798           58,
     1197          ],
     1198          [
     1199            163,
     1200            9
     1201          ]
     1202        ]
     1203      ]
     1204    },
     1205    {
     1206      "actions": [
     1207        [
     1208          164,
     1209          [],
     1210          [
     1211            165,
     1212            9
     1213          ]
     1214        ],
     1215        [
     1216          164,
     1217          [
     1218            76
     1219          ],
     1220          [
     1221            166,
     1222            9
     1223          ]
     1224        ]
     1225      ]
     1226    },
     1227    {
     1228      "actions": [
     1229        [
     1230          167,
     1231          [],
     1232          [
     1233            168,
     1234            9
     1235          ]
     1236        ],
     1237        [
     1238          167,
    7991239          [
    8001240            1
    801           ]
    802         ]
    803       ]
    804     },
    805     {
    806       "actions": [
    807         [
    808           59,
    809           []
    810         ],
    811         [
    812           59,
    813           [
    814             27
    815           ]
    816         ]
    817       ]
    818     },
    819     {
    820       "actions": [
    821         [
    822           60,
     1241          ],
     1242          [
     1243            169,
     1244            9
     1245          ]
     1246        ]
     1247      ]
     1248    },
     1249    {
     1250      "actions": [
     1251        [
     1252          170,
     1253          [],
     1254          [
     1255            171,
     1256            9
     1257          ]
     1258        ],
     1259        [
     1260          170,
     1261          [
     1262            76
     1263          ],
     1264          [
     1265            172,
     1266            9
     1267          ]
     1268        ]
     1269      ]
     1270    },
     1271    {
     1272      "actions": [
     1273        [
     1274          173,
    8231275          [
    8241276            1,
    8251277            2
    826           ]
    827         ]
    828       ]
    829     },
    830     {
    831       "actions": [
    832         [
    833           61,
    834           []
    835         ],
    836         [
    837           61,
     1278          ],
     1279          [
     1280            174,
     1281            9
     1282          ]
     1283        ]
     1284      ]
     1285    },
     1286    {
     1287      "actions": [
     1288        [
     1289          175,
     1290          [],
     1291          [
     1292            176,
     1293            9
     1294          ]
     1295        ],
     1296        [
     1297          175,
    8381298          [
    8391299            1
    840           ]
    841         ]
    842       ]
    843     },
    844     {
    845       "actions": [
    846         [
    847           62,
    848           [
    849             27
    850           ]
    851         ]
    852       ]
    853     },
    854     {
    855       "actions": [
    856         [
    857           63,
    858           []
    859         ],
    860         [
    861           63,
     1300          ],
     1301          [
     1302            177,
     1303            9
     1304          ]
     1305        ]
     1306      ]
     1307    },
     1308    {
     1309      "actions": [
     1310        [
     1311          178,
     1312          [
     1313            76
     1314          ],
     1315          [
     1316            179,
     1317            9
     1318          ]
     1319        ]
     1320      ]
     1321    },
     1322    {
     1323      "actions": [
     1324        [
     1325          180,
     1326          [],
     1327          [
     1328            181,
     1329            9
     1330          ]
     1331        ],
     1332        [
     1333          180,
    8621334          [
    8631335            1
    864           ]
    865         ]
    866       ]
    867     },
    868     {
    869       "actions": [
    870         [
    871           64,
     1336          ],
     1337          [
     1338            182,
     1339            9
     1340          ]
     1341        ]
     1342      ]
     1343    },
     1344    {
     1345      "actions": [
     1346        [
     1347          183,
    8721348          [
    8731349            1,
    8741350            2
    875           ]
    876         ]
    877       ]
    878     },
    879     {
    880       "actions": [
    881         [
    882           65,
    883           [
    884             16,
     1351          ],
     1352          [
     1353            184,
     1354            9
     1355          ]
     1356        ]
     1357      ]
     1358    },
     1359    {
     1360      "actions": [
     1361        [
     1362          185,
     1363          [
     1364            50,
    8851365            5,
    8861366            6
    887           ]
    888         ],
    889         [
    890           65,
    891           [
    892             66,
     1367          ],
     1368          [
     1369            186,
     1370            9
     1371          ]
     1372        ],
     1373        [
     1374          185,
     1375          [
     1376            187,
    8931377            7,
    8941378            8,
     
    8971381            11,
    8981382            12
    899           ]
    900         ]
    901       ]
    902     },
    903     {
    904       "actions": [
    905         [
    906           67,
     1383          ],
     1384          [
     1385            188,
     1386            9
     1387          ]
     1388        ]
     1389      ]
     1390    },
     1391    {
     1392      "actions": [
     1393        [
     1394          189,
    9071395          [
    9081396            1,
     
    9101398            3,
    9111399            4
    912           ]
    913         ]
    914       ]
    915     },
    916     {
    917       "actions": [
    918         [
    919           68,
     1400          ],
     1401          [
     1402            190,
     1403            9
     1404          ]
     1405        ]
     1406      ]
     1407    },
     1408    {
     1409      "actions": [
     1410        [
     1411          191,
    9201412          [
    9211413            1,
     
    9231415            3,
    9241416            4
    925           ]
    926         ]
    927       ]
    928     },
    929     {
    930       "actions": [
    931         [
    932           69,
    933           []
    934         ]
    935       ]
    936     },
    937     {
    938       "actions": [
    939         [
    940           70,
    941           []
    942         ]
    943       ]
    944     },
    945     {
    946       "actions": [
    947         [
    948           71,
     1417          ],
     1418          [
     1419            192,
     1420            9
     1421          ]
     1422        ]
     1423      ]
     1424    },
     1425    {
     1426      "actions": [
     1427        [
     1428          193,
     1429          [],
     1430          [
     1431            194,
     1432            9
     1433          ]
     1434        ]
     1435      ]
     1436    },
     1437    {
     1438      "actions": [
     1439        [
     1440          195,
     1441          [],
     1442          [
     1443            196,
     1444            9
     1445          ]
     1446        ]
     1447      ]
     1448    },
     1449    {
     1450      "actions": [
     1451        [
     1452          197,
    9491453          [
    9501454            1
    951           ]
    952         ]
    953       ]
    954     },
    955     {
    956       "actions": [
    957         [
    958           72,
    959           []
    960         ]
    961       ]
    962     },
    963     {
    964       "actions": [
    965         [
    966           73,
     1455          ],
     1456          [
     1457            198,
     1458            9
     1459          ]
     1460        ]
     1461      ]
     1462    },
     1463    {
     1464      "actions": [
     1465        [
     1466          199,
     1467          [],
     1468          [
     1469            200,
     1470            9
     1471          ]
     1472        ]
     1473      ]
     1474    },
     1475    {
     1476      "actions": [
     1477        [
     1478          201,
    9671479          [
    9681480            1,
    9691481            2
    970           ]
    971         ]
    972       ]
    973     },
    974     {
    975       "actions": [
    976         [
    977           74,
     1482          ],
     1483          [
     1484            202,
     1485            9
     1486          ]
     1487        ]
     1488      ]
     1489    },
     1490    {
     1491      "actions": [
     1492        [
     1493          203,
    9781494          [
    9791495            null
    980           ]
    981         ],
    982         [
    983           74,
     1496          ],
     1497          [
     1498            204,
     1499            9
     1500          ]
     1501        ],
     1502        [
     1503          203,
    9841504          [
    9851505            1
    986           ]
    987         ]
    988       ]
    989     },
    990     {
    991       "actions": [
    992         [
    993           75,
     1506          ],
     1507          [
     1508            205,
     1509            9
     1510          ]
     1511        ]
     1512      ]
     1513    },
     1514    {
     1515      "actions": [
     1516        [
     1517          206,
     1518          [
     1519            207
     1520          ],
     1521          [
     1522            208,
     1523            9
     1524          ]
     1525        ],
     1526        [
     1527          206,
    9941528          [
    9951529            76
    996           ]
    997         ],
    998         [
    999           75,
    1000           [
    1001             27
    1002           ]
    1003         ]
    1004       ]
    1005     },
    1006     {
    1007       "actions": [
    1008         [
    1009           77,
    1010           [
    1011             20
    1012           ]
    1013         ],
    1014         [
    1015           77,
    1016           [
    1017             22,
     1530          ],
     1531          [
     1532            209,
     1533            9
     1534          ]
     1535        ]
     1536      ]
     1537    },
     1538    {
     1539      "actions": [
     1540        [
     1541          210,
     1542          [
     1543            60
     1544          ],
     1545          [
     1546            211,
     1547            9
     1548          ]
     1549        ],
     1550        [
     1551          210,
     1552          [
     1553            64,
    10181554            1
    1019           ]
    1020         ],
    1021         [
    1022           77,
     1555          ],
     1556          [
     1557            212,
     1558            9
     1559          ]
     1560        ],
     1561        [
     1562          210,
    10231563          [
    10241564            2,
    10251565            1
    1026           ]
    1027         ],
    1028         [
    1029           77,
     1566          ],
     1567          [
     1568            213,
     1569            9
     1570          ]
     1571        ],
     1572        [
     1573          210,
    10301574          [
    10311575            3,
    10321576            4
    1033           ]
    1034         ],
    1035         [
    1036           77,
     1577          ],
     1578          [
     1579            214,
     1580            9
     1581          ]
     1582        ],
     1583        [
     1584          210,
    10371585          [
    10381586            5,
     
    10401588            7,
    10411589            8
    1042           ]
    1043         ],
    1044         [
    1045           77,
     1590          ],
     1591          [
     1592            215,
     1593            9
     1594          ]
     1595        ],
     1596        [
     1597          210,
    10461598          [
    10471599            9,
     
    10501602            12,
    10511603            13
    1052           ]
    1053         ]
    1054       ]
    1055     },
    1056     {
    1057       "actions": [
    1058         [
    1059           78,
     1604          ],
     1605          [
     1606            216,
     1607            9
     1608          ]
     1609        ]
     1610      ]
     1611    },
     1612    {
     1613      "actions": [
     1614        [
     1615          217,
     1616          [
     1617            207
     1618          ],
     1619          [
     1620            218,
     1621            9
     1622          ]
     1623        ],
     1624        [
     1625          217,
    10601626          [
    10611627            76
    1062           ]
    1063         ],
    1064         [
    1065           78,
    1066           [
    1067             27
    1068           ]
    1069         ]
    1070       ]
    1071     },
    1072     {
    1073       "actions": [
    1074         [
    1075           79,
     1628          ],
     1629          [
     1630            219,
     1631            9
     1632          ]
     1633        ]
     1634      ]
     1635    },
     1636    {
     1637      "actions": [
     1638        [
     1639          220,
    10761640          [
    10771641            [
     
    10791643              2
    10801644            ]
    1081           ]
    1082         ]
    1083       ]
    1084     },
    1085     {
    1086       "actions": [
    1087         [
    1088           80,
     1645          ],
     1646          [
     1647            221,
     1648            9
     1649          ]
     1650        ]
     1651      ]
     1652    },
     1653    {
     1654      "actions": [
     1655        [
     1656          222,
     1657          [
     1658            207
     1659          ],
     1660          [
     1661            223,
     1662            9
     1663          ]
     1664        ],
     1665        [
     1666          222,
    10891667          [
    10901668            76
    1091           ]
    1092         ],
    1093         [
    1094           80,
    1095           [
    1096             27
    1097           ]
    1098         ]
    1099       ]
    1100     },
    1101     {
    1102       "actions": [
    1103         [
    1104           81,
     1669          ],
     1670          [
     1671            224,
     1672            9
     1673          ]
     1674        ]
     1675      ]
     1676    },
     1677    {
     1678      "actions": [
     1679        [
     1680          225,
    11051681          [
    11061682            null
    1107           ]
    1108         ],
    1109         [
    1110           81,
     1683          ],
     1684          [
     1685            226,
     1686            9
     1687          ]
     1688        ],
     1689        [
     1690          225,
    11111691          [
    11121692            1
    1113           ]
    1114         ]
    1115       ]
    1116     },
    1117     {
    1118       "actions": [
    1119         [
    1120           82,
     1693          ],
     1694          [
     1695            227,
     1696            9
     1697          ]
     1698        ]
     1699      ]
     1700    },
     1701    {
     1702      "actions": [
     1703        [
     1704          228,
    11211705          [
    11221706            null
    1123           ]
    1124         ],
    1125         [
    1126           82,
     1707          ],
     1708          [
     1709            229,
     1710            9
     1711          ]
     1712        ],
     1713        [
     1714          228,
    11271715          [
    11281716            1
    1129           ]
    1130         ]
    1131       ]
    1132     },
    1133     {
    1134       "actions": [
    1135         [
    1136           83,
     1717          ],
     1718          [
     1719            230,
     1720            9
     1721          ]
     1722        ]
     1723      ]
     1724    },
     1725    {
     1726      "actions": [
     1727        [
     1728          231,
    11371729          [
    11381730            1,
    11391731            2,
    11401732            3,
    1141             84
    1142           ]
    1143         ],
    1144         [
    1145           83,
     1733            232
     1734          ],
     1735          [
     1736            233,
     1737            9
     1738          ]
     1739        ],
     1740        [
     1741          231,
    11461742          [
    11471743            4,
    11481744            5,
    11491745            6,
    1150             27,
     1746            76,
    11511747            7
    1152           ]
    1153         ],
    1154         [
    1155           83,
     1748          ],
     1749          [
     1750            234,
     1751            9
     1752          ]
     1753        ],
     1754        [
     1755          231,
    11561756          [
    11571757            8,
     
    11601760            11,
    11611761            1
    1162           ]
    1163         ],
    1164         [
    1165           83,
     1762          ],
     1763          [
     1764            235,
     1765            9
     1766          ]
     1767        ],
     1768        [
     1769          231,
    11661770          [
    11671771            12,
     
    11701774            15,
    11711775            16
    1172           ]
    1173         ],
    1174         [
    1175           83,
     1776          ],
     1777          [
     1778            236,
     1779            9
     1780          ]
     1781        ],
     1782        [
     1783          231,
    11761784          [
    11771785            17,
     
    11821790            22,
    11831791            23
    1184           ]
    1185         ],
    1186         [
    1187           83,
     1792          ],
     1793          [
     1794            237,
     1795            9
     1796          ]
     1797        ],
     1798        [
     1799          231,
    11881800          [
    11891801            24,
     
    11951807            30,
    11961808            31
    1197           ]
    1198         ]
    1199       ]
    1200     },
    1201     {
    1202       "actions": [
    1203         [
    1204           85,
    1205           [
    1206             20
    1207           ]
    1208         ],
    1209         [
    1210           85,
    1211           [
    1212             22,
     1809          ],
     1810          [
     1811            238,
     1812            9
     1813          ]
     1814        ]
     1815      ]
     1816    },
     1817    {
     1818      "actions": [
     1819        [
     1820          239,
     1821          [
     1822            60
     1823          ],
     1824          [
     1825            240,
     1826            9
     1827          ]
     1828        ],
     1829        [
     1830          239,
     1831          [
     1832            64,
    12131833            1
    1214           ]
    1215         ],
    1216         [
    1217           85,
     1834          ],
     1835          [
     1836            241,
     1837            9
     1838          ]
     1839        ],
     1840        [
     1841          239,
    12181842          [
    12191843            2,
    12201844            1
    1221           ]
    1222         ],
    1223         [
    1224           85,
     1845          ],
     1846          [
     1847            242,
     1848            9
     1849          ]
     1850        ],
     1851        [
     1852          239,
    12251853          [
    12261854            3,
    12271855            4
    1228           ]
    1229         ],
    1230         [
    1231           85,
     1856          ],
     1857          [
     1858            243,
     1859            9
     1860          ]
     1861        ],
     1862        [
     1863          239,
    12321864          [
    12331865            5,
     
    12351867            7,
    12361868            8
    1237           ]
    1238         ],
    1239         [
    1240           85,
     1869          ],
     1870          [
     1871            244,
     1872            9
     1873          ]
     1874        ],
     1875        [
     1876          239,
    12411877          [
    12421878            9,
     
    12451881            12,
    12461882            13
    1247           ]
    1248         ]
    1249       ]
    1250     },
    1251     {
    1252       "actions": [
    1253         [
    1254           86,
     1883          ],
     1884          [
     1885            245,
     1886            9
     1887          ]
     1888        ]
     1889      ]
     1890    },
     1891    {
     1892      "actions": [
     1893        [
     1894          246,
    12551895          [
    12561896            1,
     
    12601900            5,
    12611901            6
    1262           ]
    1263         ],
    1264         [
    1265           86,
     1902          ],
     1903          [
     1904            247,
     1905            9
     1906          ]
     1907        ],
     1908        [
     1909          246,
    12661910          [
    12671911            [
     
    12731917              0
    12741918            ]
    1275           ]
    1276         ],
    1277         [
    1278           86,
     1919          ],
     1920          [
     1921            248,
     1922            6,
     1923            249,
     1924            9
     1925          ]
     1926        ],
     1927        [
     1928          246,
    12791929          [
    12801930            [
     
    12861936              12
    12871937            ]
    1288           ]
    1289         ]
    1290       ]
    1291     },
    1292     {
    1293       "actions": [
    1294         [
    1295           87,
    1296           []
    1297         ],
    1298         [
    1299           87,
     1938          ],
     1939          [
     1940            250,
     1941            6,
     1942            251,
     1943            9
     1944          ]
     1945        ]
     1946      ]
     1947    },
     1948    {
     1949      "actions": [
     1950        [
     1951          252,
     1952          [],
     1953          [
     1954            253,
     1955            9
     1956          ]
     1957        ],
     1958        [
     1959          252,
    13001960          [
    13011961            1
    1302           ]
    1303         ]
    1304       ]
    1305     },
    1306     {
    1307       "actions": [
    1308         [
    1309           88,
    1310           []
    1311         ],
    1312         [
    1313           88,
    1314           [
    1315             27
    1316           ]
    1317         ]
    1318       ]
    1319     },
    1320     {
    1321       "actions": [
    1322         [
    1323           89,
    1324           []
    1325         ],
    1326         [
    1327           89,
     1962          ],
     1963          [
     1964            254,
     1965            9
     1966          ]
     1967        ]
     1968      ]
     1969    },
     1970    {
     1971      "actions": [
     1972        [
     1973          255,
     1974          [],
     1975          [
     1976            256,
     1977            9
     1978          ]
     1979        ],
     1980        [
     1981          255,
     1982          [
     1983            76
     1984          ],
     1985          [
     1986            257,
     1987            9
     1988          ]
     1989        ]
     1990      ]
     1991    },
     1992    {
     1993      "actions": [
     1994        [
     1995          258,
     1996          [],
     1997          [
     1998            259,
     1999            9
     2000          ]
     2001        ],
     2002        [
     2003          258,
    13282004          [
    13292005            1
    1330           ]
    1331         ]
    1332       ]
    1333     },
    1334     {
    1335       "actions": [
    1336         [
    1337           90,
    1338           []
    1339         ],
    1340         [
    1341           90,
     2006          ],
     2007          [
     2008            260,
     2009            9
     2010          ]
     2011        ]
     2012      ]
     2013    },
     2014    {
     2015      "actions": [
     2016        [
     2017          261,
     2018          [],
     2019          [
     2020            262,
     2021            9
     2022          ]
     2023        ],
     2024        [
     2025          261,
    13422026          [
    13432027            1
    1344           ]
    1345         ]
    1346       ]
    1347     },
    1348     {
    1349       "actions": [
    1350         [
    1351           91,
    1352           []
    1353         ],
    1354         [
    1355           91,
    1356           [
    1357             11
    1358           ]
    1359         ]
    1360       ]
    1361     },
    1362     {
    1363       "actions": [
    1364         [
    1365           92,
     2028          ],
     2029          [
     2030            263,
     2031            9
     2032          ]
     2033        ]
     2034      ]
     2035    },
     2036    {
     2037      "actions": [
     2038        [
     2039          264,
     2040          [],
     2041          [
     2042            265,
     2043            9
     2044          ]
     2045        ],
     2046        [
     2047          264,
     2048          [
     2049            41
     2050          ],
     2051          [
     2052            266,
     2053            9
     2054          ]
     2055        ]
     2056      ]
     2057    },
     2058    {
     2059      "actions": [
     2060        [
     2061          267,
    13662062          [
    13672063            1,
     
    13692065            3,
    13702066            4
    1371           ]
    1372         ]
    1373       ]
    1374     },
    1375     {
    1376       "actions": [
    1377         [
    1378           93,
    1379           []
    1380         ],
    1381         [
    1382           93,
    1383           [
    1384             27
    1385           ]
    1386         ],
    1387         [
    1388           93,
    1389           [
    1390             38
    1391           ]
    1392         ],
    1393         [
    1394           93,
    1395           [
    1396             40
    1397           ]
    1398         ],
    1399         [
    1400           93,
    1401           [
    1402             44
    1403           ]
    1404         ]
    1405       ]
    1406     },
    1407     {
    1408       "actions": [
    1409         [
    1410           94,
    1411           [
    1412             20,
     2067          ],
     2068          [
     2069            268,
     2070            9
     2071          ]
     2072        ]
     2073      ]
     2074    },
     2075    {
     2076      "actions": [
     2077        [
     2078          269,
     2079          [],
     2080          [
     2081            270,
     2082            9
     2083          ]
     2084        ],
     2085        [
     2086          269,
     2087          [
     2088            76
     2089          ],
     2090          [
     2091            271,
     2092            9
     2093          ]
     2094        ],
     2095        [
     2096          269,
     2097          [
     2098            120
     2099          ],
     2100          [
     2101            272,
     2102            9
     2103          ]
     2104        ],
     2105        [
     2106          269,
     2107          [
     2108            123
     2109          ],
     2110          [
     2111            273,
     2112            9
     2113          ]
     2114        ],
     2115        [
     2116          269,
     2117          [
     2118            128
     2119          ],
     2120          [
     2121            274,
     2122            9
     2123          ]
     2124        ]
     2125      ]
     2126    },
     2127    {
     2128      "actions": [
     2129        [
     2130          275,
     2131          [
     2132            60,
    14132133            1,
    14142134            2
    1415           ]
    1416         ],
    1417         [
    1418           94,
    1419           [
    1420             22,
     2135          ],
     2136          [
     2137            276,
     2138            9
     2139          ]
     2140        ],
     2141        [
     2142          275,
     2143          [
     2144            64,
    14212145            3,
    14222146            4,
    14232147            5
    1424           ]
    1425         ]
    1426       ]
    1427     },
    1428     {
    1429       "actions": [
    1430         [
    1431           95,
    1432           []
    1433         ],
    1434         [
    1435           95,
    1436           [
    1437             27
    1438           ]
    1439         ]
    1440       ]
    1441     },
    1442     {
    1443       "actions": [
    1444         [
    1445           96,
    1446           []
    1447         ],
    1448         [
    1449           96,
    1450           [
    1451             27
    1452           ]
    1453         ]
    1454       ]
    1455     },
    1456     {
    1457       "actions": [
    1458         [
    1459           97,
     2148          ],
     2149          [
     2150            277,
     2151            9
     2152          ]
     2153        ]
     2154      ]
     2155    },
     2156    {
     2157      "actions": [
     2158        [
     2159          278,
     2160          [],
     2161          [
     2162            279,
     2163            9
     2164          ]
     2165        ],
     2166        [
     2167          278,
     2168          [
     2169            76
     2170          ],
     2171          [
     2172            280,
     2173            9
     2174          ]
     2175        ]
     2176      ]
     2177    },
     2178    {
     2179      "actions": [
     2180        [
     2181          281,
     2182          [],
     2183          [
     2184            282,
     2185            9
     2186          ]
     2187        ],
     2188        [
     2189          281,
     2190          [
     2191            76
     2192          ],
     2193          [
     2194            283,
     2195            9
     2196          ]
     2197        ]
     2198      ]
     2199    },
     2200    {
     2201      "actions": [
     2202        [
     2203          284,
    14602204          [
    14612205            1,
     
    14652209            5,
    14662210            6
    1467           ]
    1468         ]
    1469       ]
    1470     },
    1471     {
    1472       "actions": [
    1473         [
    1474           98,
     2211          ],
     2212          [
     2213            285,
     2214            9
     2215          ]
     2216        ]
     2217      ]
     2218    },
     2219    {
     2220      "actions": [
     2221        [
     2222          286,
    14752223          [
    14762224            1,
    14772225            2
    1478           ]
    1479         ]
    1480       ]
    1481     },
    1482     {
    1483       "actions": [
    1484         [
    1485           99,
    1486           []
    1487         ]
    1488       ]
    1489     },
    1490     {
    1491       "actions": [
    1492         [
    1493           100,
     2226          ],
     2227          [
     2228            287,
     2229            9
     2230          ]
     2231        ]
     2232      ]
     2233    },
     2234    {
     2235      "actions": [
     2236        [
     2237          288,
     2238          [],
     2239          [
     2240            289,
     2241            9
     2242          ]
     2243        ]
     2244      ]
     2245    },
     2246    {
     2247      "actions": [
     2248        [
     2249          290,
    14942250          [
    14952251            1,
     
    14972253            3,
    14982254            4
    1499           ]
    1500         ]
    1501       ]
    1502     },
    1503     {
    1504       "actions": [
    1505         [
    1506           101,
    1507           []
    1508         ],
    1509         [
    1510           101,
     2255          ],
     2256          [
     2257            291,
     2258            6,
     2259            292,
     2260            9
     2261          ]
     2262        ]
     2263      ]
     2264    },
     2265    {
     2266      "actions": [
     2267        [
     2268          293,
     2269          [],
     2270          [
     2271            294,
     2272            9
     2273          ]
     2274        ],
     2275        [
     2276          293,
    15112277          [
    15122278            1
    1513           ]
    1514         ]
    1515       ]
    1516     },
    1517     {
    1518       "actions": [
    1519         [
    1520           102,
    1521           []
    1522         ],
    1523         [
    1524           102,
     2279          ],
     2280          [
     2281            295,
     2282            9
     2283          ]
     2284        ]
     2285      ]
     2286    },
     2287    {
     2288      "actions": [
     2289        [
     2290          296,
     2291          [],
     2292          [
     2293            297,
     2294            9
     2295          ]
     2296        ],
     2297        [
     2298          296,
    15252299          [
    15262300            [
     
    15282302              2
    15292303            ]
    1530           ]
    1531         ]
    1532       ]
    1533     },
    1534     {
    1535       "actions": [
    1536         [
    1537           103,
    1538           []
    1539         ],
    1540         [
    1541           103,
     2304          ],
     2305          [
     2306            298,
     2307            9
     2308          ]
     2309        ]
     2310      ]
     2311    },
     2312    {
     2313      "actions": [
     2314        [
     2315          299,
     2316          [],
     2317          [
     2318            300,
     2319            9
     2320          ]
     2321        ],
     2322        [
     2323          299,
    15422324          [
    15432325            1
    1544           ]
    1545         ]
    1546       ]
    1547     },
    1548     {
    1549       "actions": [
    1550         [
    1551           104,
    1552           [
    1553             16,
     2326          ],
     2327          [
     2328            301,
     2329            9
     2330          ]
     2331        ]
     2332      ]
     2333    },
     2334    {
     2335      "actions": [
     2336        [
     2337          302,
     2338          [
     2339            50,
    15542340            5,
    15552341            6
    1556           ]
    1557         ],
    1558         [
    1559           104,
    1560           [
    1561             66,
     2342          ],
     2343          [
     2344            303,
     2345            9
     2346          ]
     2347        ],
     2348        [
     2349          302,
     2350          [
     2351            187,
    15622352            7,
    15632353            8,
     
    15662356            11,
    15672357            12
     2358          ],
     2359          [
     2360            304,
     2361            9
    15682362          ]
    15692363        ]
     
    15742368    "#000000",
    15752369    "arc",
     2370    "",
     2371    "inspector/canvas/recording-2d.html",
     2372    [
     2373      2,
     2374      3,
     2375      58,
     2376      42
     2377    ],
     2378    "ignoreException",
     2379    [
     2380      5,
     2381      3,
     2382      45,
     2383      10
     2384    ],
     2385    [
     2386      2,
     2387      3,
     2388      58,
     2389      28
     2390    ],
     2391    "f",
     2392    [
     2393      8,
     2394      3,
     2395      378,
     2396      24
     2397    ],
     2398    "performActions",
     2399    [
     2400      10,
     2401      3,
     2402      382,
     2403      6
     2404    ],
     2405    "global code",
     2406    [
     2407      12,
     2408      2,
     2409      1,
     2410      15
     2411    ],
     2412    "evaluateWithScopeExtension",
     2413    "[native code]",
     2414    [
     2415      14,
     2416      15,
     2417      0,
     2418      0
     2419    ],
     2420    "_evaluateOn",
     2421    [
     2422      17,
     2423      2,
     2424      128,
     2425      29
     2426    ],
     2427    "_evaluateAndWrap",
     2428    [
     2429      19,
     2430      2,
     2431      122,
     2432      108
     2433    ],
     2434    [
     2435      2,
     2436      3,
     2437      59,
     2438      42
     2439    ],
     2440    [
     2441      2,
     2442      3,
     2443      59,
     2444      28
     2445    ],
    15762446    "arcTo",
     2447    [
     2448      2,
     2449      3,
     2450      62,
     2451      44
     2452    ],
     2453    [
     2454      2,
     2455      3,
     2456      62,
     2457      28
     2458    ],
    15772459    "beginPath",
     2460    [
     2461      2,
     2462      3,
     2463      65,
     2464      26
     2465    ],
    15782466    "bezierCurveTo",
     2467    [
     2468      2,
     2469      3,
     2470      68,
     2471      30
     2472    ],
    15792473    "canvas",
     2474    [
     2475      2,
     2476      3,
     2477      71,
     2478      16
     2479    ],
    15802480    "clearRect",
     2481    [
     2482      2,
     2483      3,
     2484      74,
     2485      26
     2486    ],
    15812487    "clearShadow",
     2488    [
     2489      2,
     2490      3,
     2491      77,
     2492      28
     2493    ],
    15822494    "clip",
    15832495    "nonzero",
     2496    [
     2497      2,
     2498      3,
     2499      80,
     2500      21
     2501    ],
    15842502    "evenodd",
     2503    [
     2504      2,
     2505      3,
     2506      81,
     2507      21
     2508    ],
    15852509    "M1 2",
     2510    [
     2511      2,
     2512      3,
     2513      82,
     2514      21
     2515    ],
    15862516    "M3 4",
     2517    [
     2518      2,
     2519      3,
     2520      83,
     2521      21
     2522    ],
    15872523    "closePath",
     2524    [
     2525      2,
     2526      3,
     2527      86,
     2528      26
     2529    ],
    15882530    "commit",
     2531    [
     2532      2,
     2533      3,
     2534      89,
     2535      23
     2536    ],
    15892537    "createImageData",
    15902538    [
     
    16102558      4
    16112559    ],
     2560    [
     2561      2,
     2562      3,
     2563      92,
     2564      54
     2565    ],
     2566    [
     2567      2,
     2568      3,
     2569      92,
     2570      28
     2571    ],
     2572    [
     2573      2,
     2574      3,
     2575      93,
     2576      54
     2577    ],
     2578    [
     2579      2,
     2580      3,
     2581      93,
     2582      28
     2583    ],
    16122584    "createLinearGradient",
     2585    [
     2586      2,
     2587      3,
     2588      96,
     2589      59
     2590    ],
     2591    [
     2592      2,
     2593      3,
     2594      96,
     2595      28
     2596    ],
    16132597    "createPattern",
    16142598    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAABNJREFUCB1j/M/AAEQMDEwgAgQAHxcCAmtAm/sAAAAASUVORK5CYII=",
    16152599    "testA",
     2600    [
     2601      2,
     2602      3,
     2603      99,
     2604      52
     2605    ],
     2606    [
     2607      2,
     2608      3,
     2609      99,
     2610      28
     2611    ],
    16162612    "data:,",
    16172613    "testB",
     2614    [
     2615      2,
     2616      3,
     2617      100,
     2618      52
     2619    ],
     2620    [
     2621      2,
     2622      3,
     2623      100,
     2624      28
     2625    ],
    16182626    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAAAtJREFUCB1jYEAHAAASAAGAFMrMAAAAAElFTkSuQmCC",
    16192627    "testC",
     2628    [
     2629      2,
     2630      3,
     2631      101,
     2632      52
     2633    ],
     2634    [
     2635      2,
     2636      3,
     2637      101,
     2638      28
     2639    ],
    16202640    "createRadialGradient",
     2641    [
     2642      2,
     2643      3,
     2644      104,
     2645      59
     2646    ],
     2647    [
     2648      2,
     2649      3,
     2650      104,
     2651      28
     2652    ],
    16212653    "direction",
     2654    [
     2655      2,
     2656      3,
     2657      107,
     2658      16
     2659    ],
    16222660    "test",
     2661    [
     2662      2,
     2663      3,
     2664      108,
     2665      16
     2666    ],
    16232667    "drawFocusIfNeeded",
    16242668    "element",
     2669    [
     2670      2,
     2671      3,
     2672      111,
     2673      34
     2674    ],
     2675    [
     2676      2,
     2677      3,
     2678      112,
     2679      34
     2680    ],
    16252681    "drawImage",
     2682    [
     2683      2,
     2684      3,
     2685      115,
     2686      48
     2687    ],
     2688    [
     2689      2,
     2690      3,
     2691      115,
     2692      28
     2693    ],
     2694    [
     2695      2,
     2696      3,
     2697      116,
     2698      48
     2699    ],
     2700    [
     2701      2,
     2702      3,
     2703      116,
     2704      28
     2705    ],
     2706    [
     2707      2,
     2708      3,
     2709      117,
     2710      48
     2711    ],
     2712    [
     2713      2,
     2714      3,
     2715      117,
     2716      28
     2717    ],
     2718    [
     2719      2,
     2720      3,
     2721      118,
     2722      48
     2723    ],
     2724    [
     2725      2,
     2726      3,
     2727      118,
     2728      28
     2729    ],
     2730    [
     2731      2,
     2732      3,
     2733      119,
     2734      48
     2735    ],
     2736    [
     2737      2,
     2738      3,
     2739      119,
     2740      28
     2741    ],
     2742    [
     2743      2,
     2744      3,
     2745      120,
     2746      48
     2747    ],
     2748    [
     2749      2,
     2750      3,
     2751      120,
     2752      28
     2753    ],
     2754    [
     2755      2,
     2756      3,
     2757      121,
     2758      48
     2759    ],
     2760    [
     2761      2,
     2762      3,
     2763      121,
     2764      28
     2765    ],
     2766    [
     2767      2,
     2768      3,
     2769      122,
     2770      48
     2771    ],
     2772    [
     2773      2,
     2774      3,
     2775      122,
     2776      28
     2777    ],
     2778    [
     2779      2,
     2780      3,
     2781      123,
     2782      48
     2783    ],
     2784    [
     2785      2,
     2786      3,
     2787      123,
     2788      28
     2789    ],
    16262790    "drawImageFromRect",
    1627     "",
     2791    [
     2792      2,
     2793      3,
     2794      126,
     2795      34
     2796    ],
     2797    [
     2798      2,
     2799      3,
     2800      127,
     2801      34
     2802    ],
    16282803    "ellipse",
     2804    [
     2805      2,
     2806      3,
     2807      130,
     2808      46
     2809    ],
     2810    [
     2811      2,
     2812      3,
     2813      130,
     2814      28
     2815    ],
     2816    [
     2817      2,
     2818      3,
     2819      131,
     2820      46
     2821    ],
     2822    [
     2823      2,
     2824      3,
     2825      131,
     2826      28
     2827    ],
    16292828    "fill",
     2829    [
     2830      2,
     2831      3,
     2832      134,
     2833      21
     2834    ],
     2835    [
     2836      2,
     2837      3,
     2838      135,
     2839      21
     2840    ],
     2841    [
     2842      2,
     2843      3,
     2844      136,
     2845      21
     2846    ],
     2847    [
     2848      2,
     2849      3,
     2850      137,
     2851      21
     2852    ],
    16302853    "fillRect",
     2854    [
     2855      2,
     2856      3,
     2857      140,
     2858      25
     2859    ],
    16312860    "fillStyle",
     2861    [
     2862      2,
     2863      3,
     2864      143,
     2865      16
     2866    ],
     2867    [
     2868      2,
     2869      3,
     2870      144,
     2871      16
     2872    ],
    16322873    "linear-gradient",
    16332874    [
    1634       37,
     2875      119,
    16352876      [
    16362877        1,
     
    16412882      []
    16422883    ],
     2884    [
     2885      2,
     2886      3,
     2887      145,
     2888      16
     2889    ],
    16432890    "radial-gradient",
    16442891    [
    1645       39,
     2892      122,
    16462893      [
    16472894        1,
     
    16542901      []
    16552902    ],
     2903    [
     2904      2,
     2905      3,
     2906      146,
     2907      16
     2908    ],
    16562909    "pattern",
    16572910    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAAXNSR0IArs4c6QAAABNJREFUCB1j/M/AAEQMDEwgAgQAHxcCAmtAm/sAAAAASUVORK5CYII=",
    16582911    "no-repeat",
    16592912    [
    1660       41,
    1661       42,
    1662       43
     2913      125,
     2914      126,
     2915      127
     2916    ],
     2917    [
     2918      2,
     2919      3,
     2920      147,
     2921      16
    16632922    ],
    16642923    "fillText",
     2924    [
     2925      2,
     2926      3,
     2927      150,
     2928      25
     2929    ],
     2930    [
     2931      2,
     2932      3,
     2933      151,
     2934      25
     2935    ],
    16652936    "font",
     2937    [
     2938      2,
     2939      3,
     2940      154,
     2941      16
     2942    ],
     2943    [
     2944      2,
     2945      3,
     2946      155,
     2947      16
     2948    ],
    16662949    "getImageData",
     2950    [
     2951      2,
     2952      3,
     2953      158,
     2954      51
     2955    ],
     2956    [
     2957      2,
     2958      3,
     2959      158,
     2960      28
     2961    ],
    16672962    "getLineDash",
     2963    [
     2964      2,
     2965      3,
     2966      161,
     2967      28
     2968    ],
    16682969    "getTransform",
     2970    [
     2971      2,
     2972      3,
     2973      164,
     2974      29
     2975    ],
    16692976    "globalAlpha",
     2977    [
     2978      2,
     2979      3,
     2980      167,
     2981      16
     2982    ],
     2983    [
     2984      2,
     2985      3,
     2986      168,
     2987      16
     2988    ],
    16702989    "globalCompositeOperation",
     2990    [
     2991      2,
     2992      3,
     2993      171,
     2994      16
     2995    ],
     2996    [
     2997      2,
     2998      3,
     2999      172,
     3000      16
     3001    ],
    16713002    "imageSmoothingEnabled",
     3003    [
     3004      2,
     3005      3,
     3006      175,
     3007      16
     3008    ],
     3009    [
     3010      2,
     3011      3,
     3012      176,
     3013      16
     3014    ],
    16723015    "imageSmoothingQuality",
     3016    [
     3017      2,
     3018      3,
     3019      179,
     3020      16
     3021    ],
    16733022    "low",
     3023    [
     3024      2,
     3025      3,
     3026      180,
     3027      16
     3028    ],
    16743029    "isPointInPath",
     3030    [
     3031      2,
     3032      3,
     3033      183,
     3034      30
     3035    ],
     3036    [
     3037      2,
     3038      3,
     3039      184,
     3040      30
     3041    ],
     3042    [
     3043      2,
     3044      3,
     3045      185,
     3046      30
     3047    ],
     3048    [
     3049      2,
     3050      3,
     3051      186,
     3052      30
     3053    ],
    16753054    "isPointInStroke",
     3055    [
     3056      2,
     3057      3,
     3058      189,
     3059      32
     3060    ],
     3061    [
     3062      2,
     3063      3,
     3064      190,
     3065      32
     3066    ],
    16763067    "lineCap",
     3068    [
     3069      2,
     3070      3,
     3071      193,
     3072      16
     3073    ],
     3074    [
     3075      2,
     3076      3,
     3077      194,
     3078      16
     3079    ],
    16773080    "lineDashOffset",
     3081    [
     3082      2,
     3083      3,
     3084      197,
     3085      16
     3086    ],
     3087    [
     3088      2,
     3089      3,
     3090      198,
     3091      16
     3092    ],
    16783093    "lineJoin",
     3094    [
     3095      2,
     3096      3,
     3097      201,
     3098      16
     3099    ],
     3100    [
     3101      2,
     3102      3,
     3103      202,
     3104      16
     3105    ],
    16793106    "lineTo",
     3107    [
     3108      2,
     3109      3,
     3110      205,
     3111      23
     3112    ],
    16803113    "lineWidth",
     3114    [
     3115      2,
     3116      3,
     3117      208,
     3118      16
     3119    ],
     3120    [
     3121      2,
     3122      3,
     3123      209,
     3124      16
     3125    ],
    16813126    "measureText",
     3127    [
     3128      2,
     3129      3,
     3130      212,
     3131      28
     3132    ],
    16823133    "miterLimit",
     3134    [
     3135      2,
     3136      3,
     3137      215,
     3138      16
     3139    ],
     3140    [
     3141      2,
     3142      3,
     3143      216,
     3144      16
     3145    ],
    16833146    "moveTo",
     3147    [
     3148      2,
     3149      3,
     3150      219,
     3151      23
     3152    ],
    16843153    "putImageData",
     3154    [
     3155      2,
     3156      3,
     3157      222,
     3158      29
     3159    ],
    16853160    [
    16863161      [
     
    17133188      3
    17143189    ],
     3190    [
     3191      2,
     3192      3,
     3193      223,
     3194      29
     3195    ],
    17153196    "quadraticCurveTo",
     3197    [
     3198      2,
     3199      3,
     3200      226,
     3201      33
     3202    ],
    17163203    "rect",
     3204    [
     3205      2,
     3206      3,
     3207      229,
     3208      21
     3209    ],
    17173210    "resetTransform",
     3211    [
     3212      2,
     3213      3,
     3214      232,
     3215      31
     3216    ],
    17183217    "restore",
     3218    [
     3219      2,
     3220      3,
     3221      235,
     3222      24
     3223    ],
    17193224    "rotate",
     3225    [
     3226      2,
     3227      3,
     3228      238,
     3229      23
     3230    ],
    17203231    "save",
     3232    [
     3233      2,
     3234      3,
     3235      241,
     3236      21
     3237    ],
    17213238    "scale",
     3239    [
     3240      2,
     3241      3,
     3242      244,
     3243      22
     3244    ],
    17223245    "setAlpha",
     3246    [
     3247      2,
     3248      3,
     3249      247,
     3250      25
     3251    ],
     3252    [
     3253      2,
     3254      3,
     3255      248,
     3256      25
     3257    ],
    17233258    "setCompositeOperation",
    17243259    "undefined",
     3260    [
     3261      2,
     3262      3,
     3263      251,
     3264      38
     3265    ],
     3266    [
     3267      2,
     3268      3,
     3269      252,
     3270      38
     3271    ],
    17253272    "setFillColor",
     3273    [
     3274      2,
     3275      3,
     3276      255,
     3277      29
     3278    ],
     3279    [
     3280      2,
     3281      3,
     3282      256,
     3283      29
     3284    ],
     3285    [
     3286      2,
     3287      3,
     3288      257,
     3289      29
     3290    ],
     3291    [
     3292      2,
     3293      3,
     3294      258,
     3295      29
     3296    ],
     3297    [
     3298      2,
     3299      3,
     3300      259,
     3301      29
     3302    ],
     3303    [
     3304      2,
     3305      3,
     3306      260,
     3307      29
     3308    ],
    17263309    "setLineCap",
     3310    [
     3311      2,
     3312      3,
     3313      263,
     3314      27
     3315    ],
     3316    [
     3317      2,
     3318      3,
     3319      264,
     3320      27
     3321    ],
    17273322    "setLineDash",
     3323    [
     3324      2,
     3325      3,
     3326      267,
     3327      28
     3328    ],
    17283329    "setLineJoin",
     3330    [
     3331      2,
     3332      3,
     3333      270,
     3334      28
     3335    ],
     3336    [
     3337      2,
     3338      3,
     3339      271,
     3340      28
     3341    ],
    17293342    "setLineWidth",
     3343    [
     3344      2,
     3345      3,
     3346      274,
     3347      29
     3348    ],
     3349    [
     3350      2,
     3351      3,
     3352      275,
     3353      29
     3354    ],
    17303355    "setMiterLimit",
     3356    [
     3357      2,
     3358      3,
     3359      278,
     3360      30
     3361    ],
     3362    [
     3363      2,
     3364      3,
     3365      279,
     3366      30
     3367    ],
    17313368    "setShadow",
    17323369    "",
     3370    [
     3371      2,
     3372      3,
     3373      282,
     3374      26
     3375    ],
     3376    [
     3377      2,
     3378      3,
     3379      283,
     3380      26
     3381    ],
     3382    [
     3383      2,
     3384      3,
     3385      284,
     3386      26
     3387    ],
     3388    [
     3389      2,
     3390      3,
     3391      285,
     3392      26
     3393    ],
     3394    [
     3395      2,
     3396      3,
     3397      286,
     3398      26
     3399    ],
     3400    [
     3401      2,
     3402      3,
     3403      287,
     3404      26
     3405    ],
    17333406    "setStrokeColor",
     3407    [
     3408      2,
     3409      3,
     3410      290,
     3411      31
     3412    ],
     3413    [
     3414      2,
     3415      3,
     3416      291,
     3417      31
     3418    ],
     3419    [
     3420      2,
     3421      3,
     3422      292,
     3423      31
     3424    ],
     3425    [
     3426      2,
     3427      3,
     3428      293,
     3429      31
     3430    ],
     3431    [
     3432      2,
     3433      3,
     3434      294,
     3435      31
     3436    ],
     3437    [
     3438      2,
     3439      3,
     3440      295,
     3441      31
     3442    ],
    17343443    "setTransform",
     3444    [
     3445      2,
     3446      3,
     3447      298,
     3448      29
     3449    ],
     3450    [
     3451      2,
     3452      3,
     3453      299,
     3454      51
     3455    ],
     3456    [
     3457      2,
     3458      3,
     3459      299,
     3460      28
     3461    ],
     3462    [
     3463      2,
     3464      3,
     3465      300,
     3466      51
     3467    ],
     3468    [
     3469      2,
     3470      3,
     3471      300,
     3472      28
     3473    ],
    17353474    "shadowBlur",
     3475    [
     3476      2,
     3477      3,
     3478      303,
     3479      16
     3480    ],
     3481    [
     3482      2,
     3483      3,
     3484      304,
     3485      16
     3486    ],
    17363487    "shadowColor",
     3488    [
     3489      2,
     3490      3,
     3491      307,
     3492      16
     3493    ],
     3494    [
     3495      2,
     3496      3,
     3497      308,
     3498      16
     3499    ],
    17373500    "shadowOffsetX",
     3501    [
     3502      2,
     3503      3,
     3504      311,
     3505      16
     3506    ],
     3507    [
     3508      2,
     3509      3,
     3510      312,
     3511      16
     3512    ],
    17383513    "shadowOffsetY",
     3514    [
     3515      2,
     3516      3,
     3517      315,
     3518      16
     3519    ],
     3520    [
     3521      2,
     3522      3,
     3523      316,
     3524      16
     3525    ],
    17393526    "stroke",
     3527    [
     3528      2,
     3529      3,
     3530      319,
     3531      23
     3532    ],
     3533    [
     3534      2,
     3535      3,
     3536      320,
     3537      23
     3538    ],
    17403539    "strokeRect",
     3540    [
     3541      2,
     3542      3,
     3543      323,
     3544      27
     3545    ],
    17413546    "strokeStyle",
     3547    [
     3548      2,
     3549      3,
     3550      326,
     3551      16
     3552    ],
     3553    [
     3554      2,
     3555      3,
     3556      327,
     3557      16
     3558    ],
     3559    [
     3560      2,
     3561      3,
     3562      328,
     3563      16
     3564    ],
     3565    [
     3566      2,
     3567      3,
     3568      329,
     3569      16
     3570    ],
     3571    [
     3572      2,
     3573      3,
     3574      330,
     3575      16
     3576    ],
    17423577    "strokeText",
     3578    [
     3579      2,
     3580      3,
     3581      333,
     3582      27
     3583    ],
     3584    [
     3585      2,
     3586      3,
     3587      334,
     3588      27
     3589    ],
    17433590    "textAlign",
     3591    [
     3592      2,
     3593      3,
     3594      337,
     3595      16
     3596    ],
     3597    [
     3598      2,
     3599      3,
     3600      338,
     3601      16
     3602    ],
    17443603    "textBaseline",
     3604    [
     3605      2,
     3606      3,
     3607      341,
     3608      16
     3609    ],
     3610    [
     3611      2,
     3612      3,
     3613      342,
     3614      16
     3615    ],
    17453616    "transform",
     3617    [
     3618      2,
     3619      3,
     3620      345,
     3621      26
     3622    ],
    17463623    "translate",
     3624    [
     3625      2,
     3626      3,
     3627      348,
     3628      26
     3629    ],
    17473630    "webkitBackingStorePixelRatio",
     3631    [
     3632      2,
     3633      3,
     3634      351,
     3635      16
     3636    ],
    17483637    "webkitGetImageDataHD",
     3638    [
     3639      2,
     3640      3,
     3641      354,
     3642      59
     3643    ],
     3644    [
     3645      2,
     3646      3,
     3647      354,
     3648      28
     3649    ],
    17493650    "webkitImageSmoothingEnabled",
     3651    [
     3652      2,
     3653      3,
     3654      357,
     3655      16
     3656    ],
     3657    [
     3658      2,
     3659      3,
     3660      358,
     3661      16
     3662    ],
    17503663    "webkitLineDash",
     3664    [
     3665      2,
     3666      3,
     3667      361,
     3668      16
     3669    ],
     3670    [
     3671      2,
     3672      3,
     3673      362,
     3674      16
     3675    ],
    17513676    "webkitLineDashOffset",
    1752     "webkitPutImageDataHD"
     3677    [
     3678      2,
     3679      3,
     3680      365,
     3681      16
     3682    ],
     3683    [
     3684      2,
     3685      3,
     3686      366,
     3687      16
     3688    ],
     3689    "webkitPutImageDataHD",
     3690    [
     3691      2,
     3692      3,
     3693      369,
     3694      37
     3695    ],
     3696    [
     3697      2,
     3698      3,
     3699      370,
     3700      37
     3701    ]
    17533702  ]
    17543703}
     
    18103759            5,
    18113760            0
     3761          ],
     3762          [
     3763            8,
     3764            10,
     3765            11,
     3766            13,
     3767            15,
     3768            17,
     3769            20,
     3770            22,
     3771            24
    18123772          ]
    18133773        ]
     
    18263786    ],
    18273787    "#ffffff",
    1828     "arc"
     3788    "arc",
     3789    "",
     3790    "inspector/canvas/recording-2d.html",
     3791    [
     3792      6,
     3793      7,
     3794      58,
     3795      42
     3796    ],
     3797    "ignoreException",
     3798    [
     3799      9,
     3800      7,
     3801      45,
     3802      10
     3803    ],
     3804    [
     3805      6,
     3806      7,
     3807      58,
     3808      28
     3809    ],
     3810    "f",
     3811    [
     3812      12,
     3813      7,
     3814      378,
     3815      24
     3816    ],
     3817    "performActions",
     3818    [
     3819      14,
     3820      7,
     3821      382,
     3822      6
     3823    ],
     3824    "global code",
     3825    [
     3826      16,
     3827      6,
     3828      1,
     3829      15
     3830    ],
     3831    "evaluateWithScopeExtension",
     3832    "[native code]",
     3833    [
     3834      18,
     3835      19,
     3836      0,
     3837      0
     3838    ],
     3839    "_evaluateOn",
     3840    [
     3841      21,
     3842      6,
     3843      128,
     3844      29
     3845    ],
     3846    "_evaluateAndWrap",
     3847    [
     3848      23,
     3849      6,
     3850      122,
     3851      108
     3852    ]
    18293853  ]
    18303854}
  • trunk/LayoutTests/inspector/canvas/recording-2d.html

    r220119 r220188  
    390390    let suite = InspectorTest.createAsyncSuite("Canvas.recording2D");
    391391
     392    function sanitizeURL(url) {
     393        return url.replace(/^.*?LayoutTests\//, "");
     394    }
     395
    392396    function getCanvas() {
    393397        let canvases = WI.canvasManager.canvases.filter((canvas) => canvas.contextType === WI.Canvas.ContextType.Canvas2D);
     
    410414
    411415            let json = event.data.recording.toJSON();
     416            json.data = json.data.map((item) => {
     417                if (typeof item !== "string")
     418                    return item;
     419
     420                return sanitizeURL(item);
     421            });
    412422            InspectorTest.log(JSON.stringify(json, null, 2));
    413423        })
  • trunk/LayoutTests/inspector/model/recording-expected.txt

    r220119 r220188  
    7171        [
    7272          -1,
     73          [],
    7374          []
    7475        ]
     
    100101        [
    101102          null,
     103          [],
    102104          []
    103105        ]
     
    131133          [
    132134            0
     135          ],
     136          [
     137            0
    133138          ]
    134139        ]
  • trunk/LayoutTests/inspector/model/recording.html

    r220119 r220188  
    116116                                null,
    117117                                null,
     118                                null,
    118119                            ],
    119120                        ],
     
    142143                                0,
    143144                                [0],
     145                                [0],
    144146                            ],
    145147                        ],
  • trunk/Source/JavaScriptCore/ChangeLog

    r220186 r220188  
     12017-08-02  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: add stack trace information for each RecordingAction
     4        https://bugs.webkit.org/show_bug.cgi?id=174663
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        * inspector/ScriptCallFrame.h:
     9        Add `operator==` so that when a ScriptCallFrame object is held in a Vector, calling `find`
     10        with an existing value doesn't need require a functor and can use existing code.
     11
     12        * interpreter/StackVisitor.h:
     13        * interpreter/StackVisitor.cpp:
     14        (JSC::StackVisitor::Frame::isWasmFrame const): Inlined in header.
     15
    1162017-08-02  Yusuke Suzuki  <utatane.tea@gmail.com>
    217
  • trunk/Source/JavaScriptCore/inspector/ScriptCallFrame.h

    r209062 r220188  
    5353    bool isNative() const;
    5454
     55    bool operator==(const ScriptCallFrame& other) const { return isEqual(other); }
     56
    5557    Ref<Inspector::Protocol::Console::CallFrame> buildInspectorObject() const;
    5658
  • trunk/Source/JavaScriptCore/interpreter/StackVisitor.cpp

    r216597 r220188  
    226226#endif // ENABLE(DFG_JIT)
    227227
    228 bool StackVisitor::Frame::isWasmFrame() const
    229 {
    230     return m_isWasmFrame;
    231 }
    232 
    233228StackVisitor::Frame::CodeType StackVisitor::Frame::codeType() const
    234229{
  • trunk/Source/JavaScriptCore/interpreter/StackVisitor.h

    r216597 r220188  
    7878        bool isNativeFrame() const { return !codeBlock() && !isWasmFrame(); }
    7979        bool isInlinedFrame() const { return !!inlineCallFrame(); }
    80         bool isWasmFrame() const;
     80        bool isWasmFrame() const { return m_isWasmFrame; }
    8181        Wasm::IndexOrName const wasmFunctionIndexOrName()
    8282        {
     
    8989        JS_EXPORT_PRIVATE String toString() const;
    9090
    91         intptr_t sourceID();
     91        JS_EXPORT_PRIVATE intptr_t sourceID();
    9292
    9393        CodeType codeType() const;
  • trunk/Source/WebCore/ChangeLog

    r220186 r220188  
     12017-08-02  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: add stack trace information for each RecordingAction
     4        https://bugs.webkit.org/show_bug.cgi?id=174663
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        Tests: inspector/canvas/recording-2d.html
     9               inspector/model/recording.html
     10
     11        * inspector/InspectorCanvas.h:
     12        * inspector/InspectorCanvas.cpp:
     13        (WebCore::InspectorCanvas::indexForData):
     14        (WebCore::InspectorCanvas::buildAction):
     15
    1162017-08-02  Yusuke Suzuki  <utatane.tea@gmail.com>
    217
  • trunk/Source/WebCore/inspector/InspectorCanvas.cpp

    r220008 r220188  
    4646#include "InspectorPageAgent.h"
    4747#include "InstrumentingAgents.h"
     48#include "JSMainThreadExecState.h"
    4849#include "Pattern.h"
    4950#include "SVGPathUtilities.h"
     
    5960#endif
    6061#include <inspector/IdentifiersFactory.h>
     62#include <interpreter/CallFrame.h>
     63#include <interpreter/StackVisitor.h>
    6164
    6265using namespace Inspector;
     
    277280        [&] (const CanvasPattern* canvasPattern) { item = buildArrayForCanvasPattern(*canvasPattern); },
    278281        [&] (const ImageData* imageData) { item = buildArrayForImageData(*imageData); },
     282        [&] (const ScriptCallFrame& scriptCallFrame) {
     283            auto array = Inspector::Protocol::Array<double>::create();
     284            array->addItem(indexForData(scriptCallFrame.functionName()));
     285            array->addItem(indexForData(scriptCallFrame.sourceURL()));
     286            array->addItem(static_cast<int>(scriptCallFrame.lineNumber()));
     287            array->addItem(static_cast<int>(scriptCallFrame.columnNumber()));
     288            item = WTFMove(array);
     289        },
    279290        [&] (const String& value) { item = InspectorValue::create(value); }
    280291    );
     
    444455    action->addItem(WTFMove(parametersData));
    445456
     457    RefPtr<Inspector::Protocol::Array<double>> trace = Inspector::Protocol::Array<double>::create();
     458    if (JSC::CallFrame* callFrame = JSMainThreadExecState::currentState()->vm().topCallFrame) {
     459        callFrame->iterate([&] (JSC::StackVisitor& visitor) {
     460            // Only skip Native frames if they are the first frame (e.g. CanvasRenderingContext2D.prototype.save).
     461            if (!trace->length() && visitor->isNativeFrame())
     462                return JSC::StackVisitor::Continue;
     463
     464            unsigned line = 0;
     465            unsigned column = 0;
     466            visitor->computeLineAndColumn(line, column);
     467
     468            ScriptCallFrame scriptCallFrame(visitor->functionName(), visitor->sourceURL(), static_cast<JSC::SourceID>(visitor->sourceID()), line, column);
     469            trace->addItem(indexForData(scriptCallFrame));
     470
     471            return JSC::StackVisitor::Continue;
     472        });
     473    }
     474    action->addItem(WTFMove(trace));
     475
    446476    return action;
    447477}
  • trunk/Source/WebCore/inspector/InspectorCanvas.h

    r220008 r220188  
    2929#include <inspector/InspectorProtocolObjects.h>
    3030#include <inspector/InspectorValues.h>
     31#include <inspector/ScriptCallFrame.h>
    3132#include <wtf/HashMap.h>
    3233#include <wtf/Ref.h>
     
    8990#endif
    9091        ImageData*,
     92        Inspector::ScriptCallFrame,
    9193        String
    9294    > DuplicateDataVariant;
  • trunk/Source/WebInspectorUI/ChangeLog

    r220180 r220188  
     12017-08-02  Devin Rousso  <drousso@apple.com>
     2
     3        Web Inspector: add stack trace information for each RecordingAction
     4        https://bugs.webkit.org/show_bug.cgi?id=174663
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        * Localizations/en.lproj/localizedStrings.js:
     9        * UserInterface/Main.html:
     10
     11        * UserInterface/Models/Recording.js:
     12        (WI.Recording.prototype.swizzle):
     13        Add Array type for swizzling array values.
     14
     15        * UserInterface/Models/RecordingAction.js:
     16        (WI.RecordingAction):
     17        (WI.RecordingAction.fromPayload):
     18        (WI.RecordingAction.prototype.get trace):
     19        (WI.RecordingAction.prototype.swizzle):
     20        (WI.RecordingAction.prototype.toJSON):
     21
     22        * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js: Added.
     23        (WI.RecordingTraceDetailsSidebarPanel):
     24        (WI.RecordingTraceDetailsSidebarPanel.disallowInstanceForClass):
     25        (WI.RecordingTraceDetailsSidebarPanel.prototype.inspect):
     26        (WI.RecordingTraceDetailsSidebarPanel.prototype.set recording):
     27        (WI.RecordingTraceDetailsSidebarPanel.prototype.updateActionIndex):
     28        * UserInterface/Views/RecordingTraceDetailsSidebarPanel.css: Added.
     29        (.sidebar > .panel.details.recording-trace > .content > .call-frame):
     30        (.sidebar > .details.recording-trace > .content > .no-trace-data):
     31        (.sidebar > .details.recording-trace > .content > .no-trace-data > .message):
     32
     33        * UserInterface/Views/RecordingTabContentView.js:
     34        (WI.RecordingTabContentView):
     35
     36        * UserInterface/Views/RecordingActionTreeElement.js:
     37        (WI.RecordingActionTreeElement.prototype.populateContextMenu):
     38
     39        * UserInterface/Views/CallFrameView.css:
     40        (.call-frame):
     41        (body[dir=ltr] .call-frame .icon):
     42        (body[dir=rtl] .call-frame .icon):
     43        Apply the same trailing margin for CallFrameView icons as TreeElement.
     44
    1452017-08-02  Devin Rousso  <drousso@apple.com>
    246
  • trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js

    r220114 r220188  
    594594localizedStrings["No Results Found"] = "No Results Found";
    595595localizedStrings["No Search Results"] = "No Search Results";
     596localizedStrings["No Trace Data"] = "No Trace Data";
    596597localizedStrings["No Watch Expressions"] = "No Watch Expressions";
    597598localizedStrings["No matching ARIA role"] = "No matching ARIA role";
  • trunk/Source/WebInspectorUI/UserInterface/Main.html

    r220119 r220188  
    143143    <link rel="stylesheet" href="Views/RecordingContentView.css">
    144144    <link rel="stylesheet" href="Views/RecordingStateDetailsSidebarPanel.css">
     145    <link rel="stylesheet" href="Views/RecordingTraceDetailsSidebarPanel.css">
    145146    <link rel="stylesheet" href="Views/RecordingNavigationSidebarPanel.css">
    146147    <link rel="stylesheet" href="Views/RenderingFrameTimelineOverviewGraph.css">
     
    654655    <script src="Views/RecordingNavigationSidebarPanel.js"></script>
    655656    <script src="Views/RecordingStateDetailsSidebarPanel.js"></script>
     657    <script src="Views/RecordingTraceDetailsSidebarPanel.js"></script>
    656658    <script src="Views/RenderingFrameTimelineDataGridNode.js"></script>
    657659    <script src="Views/RenderingFrameTimelineOverviewGraph.js"></script>
  • trunk/Source/WebInspectorUI/UserInterface/Models/Recording.js

    r220119 r220188  
    130130                let data = this._data[index];
    131131                switch (type) {
     132                case WI.Recording.Swizzle.Array:
     133                    if (Array.isArray(data))
     134                        this._swizzle[index][type] = data;
     135                    break;
    132136                case WI.Recording.Swizzle.CanvasStyle:
    133137                    if (Array.isArray(data)) {
     
    203207
    204208WI.Recording.Swizzle = {
     209    Array: "Array",
    205210    CanvasStyle: "CanvasStyle",
    206211    Element: "Element",
  • trunk/Source/WebInspectorUI/UserInterface/Models/RecordingAction.js

    r220119 r220188  
    2626WI.RecordingAction = class RecordingAction
    2727{
    28     constructor(name, parameters)
     28    constructor(name, parameters, trace)
    2929    {
    3030        this._payloadName = name;
    3131        this._payloadParameters = parameters;
     32        this._payloadTrace = trace;
    3233
    3334        this._name = "";
    3435        this._parameters = [];
     36        this._trace = [];
    3537
    3638        this._valid = true;
     
    4446    // Static
    4547
    46     // Payload format: [name, parameters]
     48    // Payload format: [name, parameters, trace]
    4749    static fromPayload(payload)
    4850    {
     
    5557        if (!Array.isArray(payload[1]))
    5658            payload[1] = [];
     59
     60        if (!Array.isArray(payload[2]))
     61            payload[2] = [];
    5762
    5863        return new WI.RecordingAction(...payload);
     
    7277    get name() { return this._name; }
    7378    get parameters() { return this._parameters; }
     79    get trace() { return this._trace; }
    7480
    7581    get valid() { return this._valid; }
     
    96102            return swizzled;
    97103        });
     104
     105        for (let item of this._payloadTrace) {
     106            try {
     107                let array = recording.swizzle(item, WI.Recording.Swizzle.Array);
     108                let callFrame = WI.CallFrame.fromPayload(WI.mainTarget, {
     109                    functionName: recording.swizzle(array[0], WI.Recording.Swizzle.String),
     110                    url: recording.swizzle(array[1], WI.Recording.Swizzle.String),
     111                    lineNumber: array[2],
     112                    columnNumber: array[3],
     113                });
     114                this._trace.push(callFrame);
     115            } catch { }
     116        }
    98117
    99118        this._isFunction = WI.RecordingAction.isFunctionForType(recording.type, this._name);
     
    131150    toJSON()
    132151    {
    133         return [this._payloadName, this._payloadParameters];
     152        return [this._payloadName, this._payloadParameters, this._payloadTrace];
    134153    }
    135154};
  • trunk/Source/WebInspectorUI/UserInterface/Views/CallFrameView.css

    r214846 r220188  
    2525
    2626.call-frame {
     27    overflow: hidden;
     28    text-overflow: ellipsis;
    2729    white-space: nowrap;
    2830    cursor: pointer;
     31
     32    --icon-margin-end: 3px;
    2933}
    3034
     
    3438    width: 16px;
    3539    height: 16px;
     40}
     41
     42body[dir=ltr] .call-frame .icon {
     43    margin-right: var(--icon-margin-end);
     44}
     45
     46body[dir=rtl] .call-frame .icon {
     47    margin-left: var(--icon-margin-end);
    3648}
    3749
  • trunk/Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js

    r220119 r220188  
    175175        contextMenu.appendSeparator();
    176176
     177        let callFrame = this.representedObject.trace[0];
     178        if (callFrame) {
     179            contextMenu.appendItem(WI.UIString("Reveal in Resources Tab"), () => {
     180                WI.showSourceCodeLocation(callFrame.sourceCodeLocation, {
     181                    ignoreNetworkTab: true,
     182                    ignoreSearchTab: true,
     183                });
     184            });
     185
     186            contextMenu.appendSeparator();
     187        }
     188
    177189        super.populateContextMenu(contextMenu, event);
    178190    }
  • trunk/Source/WebInspectorUI/UserInterface/Views/RecordingTabContentView.js

    r220119 r220188  
    3232
    3333        const navigationSidebarPanelConstructor = WI.RecordingNavigationSidebarPanel;
    34         const detailsSidebarPanelConstructors = [WI.RecordingStateDetailsSidebarPanel, WI.CanvasDetailsSidebarPanel];
     34        const detailsSidebarPanelConstructors = [WI.RecordingStateDetailsSidebarPanel, WI.RecordingTraceDetailsSidebarPanel, WI.CanvasDetailsSidebarPanel];
    3535        const disableBackForward = true;
    3636        let flexibleNavigationItem = new WI.ScrubberNavigationItem;
  • trunk/Source/WebInspectorUI/UserInterface/Views/RecordingTraceDetailsSidebarPanel.css

    r220187 r220188  
    11/*
    2  * Copyright (C) 2013 Apple Inc. All rights reserved.
     2 * Copyright (C) 2017 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 .call-frame {
    27     white-space: nowrap;
    28     cursor: pointer;
     26.sidebar > .panel.details.recording-trace > .content > .call-frame {
     27    height: 20px;
     28    padding: 2px 5px;
    2929}
    3030
    31 .call-frame .icon {
    32     display: inline-block;
    33     vertical-align: top;
    34     width: 16px;
    35     height: 16px;
     31.sidebar > .details.recording-trace > .content > .no-trace-data {
     32    display: flex;
     33    justify-content: center;
     34    align-items: center;
     35    position: absolute;
     36    top: 0;
     37    right: 0;
     38    bottom: 0;
     39    left: 0;
     40    padding: 0;
     41    overflow: hidden;
    3642}
    3743
    38 .call-frame .titles {
     44.sidebar > .details.recording-trace > .content > .no-trace-data > .message {
    3945    display: inline-block;
     46    padding: 5px 15px 6px;
     47    font-size: 13px;
     48    white-space: nowrap;
     49    color: white;
     50    text-shadow: hsla(0, 0%, 0%, 0.2) 0 1px 0;
     51    background-color: hsla(0, 0%, 0%, 0.15);
     52    box-shadow: inset hsla(0, 0%, 0%, 0.2) 0 1px 0, hsla(0, 0%, 100%, 0.4) 0 1px 0;
     53    border-radius: 6px;
    4054}
    41 
    42 .call-frame .subtitle,
    43 .call-frame .subtitle .source-link {
    44     color: hsla(0, 0%, 0%, 0.6);
    45     text-decoration: none;
    46 }
    47 
    48 .call-frame:hover .subtitle .source-link,
    49 .call-frame:focus .subtitle .source-link {
    50     color: hsl(210, 0%, 0%);
    51 }
    52 
    53 .call-frame .subtitle:empty {
    54     display: none;
    55 }
    56 
    57 .call-frame .subtitle {
    58     font-size: inherit;
    59 }
    60 
    61 .call-frame .colon {
    62     background-color: red;
    63 }
    64 
    65 .call-frame .separator {
    66     white-space: nowrap;
    67     color: hsla(0, 0%, 0%, 0.2);
    68 }
Note: See TracChangeset for help on using the changeset viewer.