/ pydeation.sublime-workspace
pydeation.sublime-workspace
1 { 2 "auto_complete": 3 { 4 "selected_items": 5 [ 6 [ 7 "si", 8 "size" 9 ], 10 [ 11 "inter", 12 "interbrain_path" 13 ], 14 [ 15 "field", 16 "field_length" 17 ], 18 [ 19 "line", 20 "linear_field" 21 ], 22 [ 23 "lin", 24 "linear_field" 25 ], 26 [ 27 "set", 28 "set_unique_desc_ids" 29 ], 30 [ 31 "sp", 32 "specify_parameters" 33 ], 34 [ 35 "specify_ac", 36 "specify_action_parameters" 37 ], 38 [ 39 "dome", 40 "domesticated_mind" 41 ], 42 [ 43 "T", 44 "ThreeDScene" 45 ], 46 [ 47 "focus", 48 "focus_point" 49 ], 50 [ 51 "re", 52 "rel_stop" 53 ], 54 [ 55 "w", 56 "white_circle" 57 ], 58 [ 59 "ROT", 60 "ROT_P" 61 ], 62 [ 63 "left", 64 "left_semi_circle" 65 ], 66 [ 67 "U", 68 "UAngle" 69 ], 70 [ 71 "file", 72 "file_path" 73 ], 74 [ 75 "ac", 76 "actions" 77 ], 78 [ 79 "spe", 80 "specify_parameters" 81 ], 82 [ 83 "right_s", 84 "right_semi_circle" 85 ], 86 [ 87 "sn", 88 "snap_start" 89 ], 90 [ 91 "hei", 92 "height_bias" 93 ], 94 [ 95 "cur", 96 "curvature_spline" 97 ], 98 [ 99 "cy", 100 "cylinder" 101 ], 102 [ 103 "interf", 104 "interface" 105 ], 106 [ 107 "pro", 108 "projection_types" 109 ], 110 [ 111 "specif", 112 "specify_parameters" 113 ], 114 [ 115 "right", 116 "right_eye" 117 ], 118 [ 119 "spec", 120 "specify_creation" 121 ], 122 [ 123 "cus", 124 "CustomObject" 125 ], 126 [ 127 "C", 128 "CustomObject" 129 ], 130 [ 131 "rig", 132 "right_eye" 133 ], 134 [ 135 "fill", 136 "filled" 137 ], 138 [ 139 "lef", 140 "left_to_right" 141 ], 142 [ 143 "dia", 144 "diameter" 145 ], 146 [ 147 "cr", 148 "crop_talk" 149 ], 150 [ 151 "M", 152 "Membrane" 153 ], 154 [ 155 "met", 156 "meta_lens" 157 ], 158 [ 159 "d", 160 "desc_id" 161 ], 162 [ 163 "wa", 164 "warm_lens_border" 165 ], 166 [ 167 "war", 168 "warm_lens_border" 169 ], 170 [ 171 "un", 172 "un_fill" 173 ], 174 [ 175 "gr", 176 "grid_width" 177 ], 178 [ 179 "specify", 180 "specify_action_interval" 181 ], 182 [ 183 "gene", 184 "generation_mode" 185 ], 186 [ 187 "ini", 188 "initial_visibility_port" 189 ], 190 [ 191 "no", 192 "not_node_final" 193 ], 194 [ 195 "G", 196 "GetOutPort" 197 ], 198 [ 199 "o", 200 "object_ini" 201 ], 202 [ 203 "_", 204 "__class__" 205 ], 206 [ 207 "Lin", 208 "LineObject" 209 ], 210 [ 211 "mos", 212 "mospline" 213 ], 214 [ 215 "pr", 216 "priority" 217 ], 218 [ 219 "rel_s", 220 "rel_stop" 221 ], 222 [ 223 "rel", 224 "rel_start" 225 ], 226 [ 227 "in", 228 "input_spline" 229 ], 230 [ 231 "inpu", 232 "input_spline" 233 ], 234 [ 235 "spl", 236 "spline_masks" 237 ], 238 [ 239 "de", 240 "desc_id" 241 ], 242 [ 243 "explosion", 244 "explosion_radius_parameter" 245 ], 246 [ 247 "ID_BASEOBJECT_P", 248 "ID_BASEOBJECT_POSITION" 249 ], 250 [ 251 "create_dis", 252 "create_distance_nodes" 253 ], 254 [ 255 "crea", 256 "create_part_node" 257 ], 258 [ 259 "expl", 260 "explosion_radius" 261 ], 262 [ 263 "movem", 264 "movements" 265 ], 266 [ 267 "gen", 268 "generation_mode" 269 ], 270 [ 271 "mospl", 272 "mospline" 273 ], 274 [ 275 "PO", 276 "POS_Y" 277 ], 278 [ 279 "__", 280 "__init__" 281 ], 282 [ 283 "warm", 284 "warm_lens_border" 285 ], 286 [ 287 "len", 288 "lens" 289 ], 290 [ 291 "specify_", 292 "specify_relations" 293 ], 294 [ 295 "R", 296 "RED" 297 ], 298 [ 299 "gl", 300 "glow_parameter" 301 ], 302 [ 303 "Visi", 304 "VisibleMoSpline" 305 ], 306 [ 307 "sk", 308 "sketch_parameter_setup" 309 ], 310 [ 311 "sou", 312 "source_spline" 313 ], 314 [ 315 "mo", 316 "morpher" 317 ], 318 [ 319 "Insert", 320 "InsertUnder" 321 ], 322 [ 323 "dynamic_membrane_", 324 "dynamic_membrane_length_right_parameter" 325 ], 326 [ 327 "dyn", 328 "dynamic_membrane_length_left_parameter" 329 ], 330 [ 331 "desc", 332 "desc_id" 333 ], 334 [ 335 "peer", 336 "peer_count_parameter" 337 ], 338 [ 339 "peers", 340 "peers_right" 341 ], 342 [ 343 "destination", 344 "destination_splines" 345 ], 346 [ 347 "split_membrane_ac", 348 "split_membrane_action_parameter" 349 ], 350 [ 351 "split", 352 "split_distance_parameter" 353 ], 354 [ 355 "morph_comple", 356 "morph_completion_parameter" 357 ], 358 [ 359 "Spl", 360 "SplineMask" 361 ], 362 [ 363 "ed", 364 "edges" 365 ], 366 [ 367 "f", 368 "formula" 369 ], 370 [ 371 "pee", 372 "peer_color" 373 ], 374 [ 375 "split_membrane_", 376 "split_membrane_left" 377 ], 378 [ 379 "clo", 380 "clone_connector" 381 ], 382 [ 383 "impo", 384 "importlib" 385 ], 386 [ 387 "targ", 388 "target_object" 389 ], 390 [ 391 "max", 392 "max_distance_parameter" 393 ], 394 [ 395 "n", 396 "neighbour_count_parameter" 397 ], 398 [ 399 "ne", 400 "neighbour_count_parameter" 401 ], 402 [ 403 "GV_OBJECT_OBJE", 404 "GV_OBJECT_OPERATOR_OBJECT_OUT" 405 ], 406 [ 407 "a", 408 "ancient_connections" 409 ], 410 [ 411 "get_s", 412 "get_segment_count" 413 ], 414 [ 415 "anim", 416 "animations" 417 ], 418 [ 419 "zoo", 420 "zoom_animation" 421 ], 422 [ 423 "scree", 424 "screen_border" 425 ], 426 [ 427 "laptop", 428 "laptop_right" 429 ], 430 [ 431 "tar", 432 "target_radius" 433 ], 434 [ 435 "inti", 436 "__init__" 437 ], 438 [ 439 "fou", 440 "focus_point_z_parameter" 441 ], 442 [ 443 "focus_point_", 444 "focus_point_x_parameter" 445 ], 446 [ 447 "focu", 448 "focus_point_x" 449 ], 450 [ 451 "foc", 452 "focus_point_x" 453 ], 454 [ 455 "POS", 456 "POS_Z" 457 ], 458 [ 459 "ra", 460 "radius_parameter" 461 ], 462 [ 463 "tilt", 464 "tilt_parameter" 465 ], 466 [ 467 "the", 468 "theta_parameter" 469 ], 470 [ 471 "or", 472 "orbit" 473 ], 474 [ 475 "paramet", 476 "parameter_port" 477 ], 478 [ 479 "parameter", 480 "parameter_node" 481 ], 482 [ 483 "segment", 484 "segment_count_ini" 485 ], 486 [ 487 "fiel", 488 "field_length_parameter" 489 ], 490 [ 491 "Proto", 492 "ProtoAnimation" 493 ], 494 [ 495 "effects", 496 "effect_objects" 497 ], 498 [ 499 "specify_boundin", 500 "specify_bounding_box_relations" 501 ], 502 [ 503 "fr", 504 "frame_width" 505 ], 506 [ 507 "frame", 508 "frame_width" 509 ], 510 [ 511 "dis", 512 "distance_to_frame_width_ratio" 513 ], 514 [ 515 "cam", 516 "camera_objects" 517 ] 518 ] 519 }, 520 "buffers": 521 [ 522 { 523 "file": "objects/sketch_objects.py", 524 "settings": 525 { 526 "buffer_size": 6267, 527 "encoding": "UTF-8", 528 "line_ending": "Unix" 529 }, 530 "undo_stack": 531 [ 532 [ 533 5, 534 1, 535 "insert", 536 { 537 "characters": "\ns" 538 }, 539 "AwAAADEEAAAAAAAAMgQAAAAAAAAAAAAAMgQAAAAAAAA6BAAAAAAAAAAAAAA6BAAAAAAAADsEAAAAAAAAAAAAAA", 540 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAMQQAAAAAAAAxBAAAAAAAAAAAAAAAAPC/" 541 ], 542 [ 543 6, 544 1, 545 "insert_completion", 546 { 547 "completion": "self", 548 "format": "text", 549 "keep_prefix": false, 550 "must_insert": false, 551 "trigger": "self" 552 }, 553 "AgAAADoEAAAAAAAAOgQAAAAAAAABAAAAczoEAAAAAAAAPgQAAAAAAAAAAAAA", 554 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAOwQAAAAAAAA7BAAAAAAAAAAAAAAAAPC/" 555 ], 556 [ 557 7, 558 1, 559 "insert", 560 { 561 "characters": ".move_" 562 }, 563 "BgAAAD4EAAAAAAAAPwQAAAAAAAAAAAAAPwQAAAAAAABABAAAAAAAAAAAAABABAAAAAAAAEEEAAAAAAAAAAAAAEEEAAAAAAAAQgQAAAAAAAAAAAAAQgQAAAAAAABDBAAAAAAAAAAAAABDBAAAAAAAAEQEAAAAAAAAAAAAAA", 564 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAPgQAAAAAAAA+BAAAAAAAAAAAAAAAAPC/" 565 ], 566 [ 567 8, 568 1, 569 "insert", 570 { 571 "characters": "membrane" 572 }, 573 "CAAAAEQEAAAAAAAARQQAAAAAAAAAAAAARQQAAAAAAABGBAAAAAAAAAAAAABGBAAAAAAAAEcEAAAAAAAAAAAAAEcEAAAAAAAASAQAAAAAAAAAAAAASAQAAAAAAABJBAAAAAAAAAAAAABJBAAAAAAAAEoEAAAAAAAAAAAAAEoEAAAAAAAASwQAAAAAAAAAAAAASwQAAAAAAABMBAAAAAAAAAAAAAA", 574 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAARAQAAAAAAABEBAAAAAAAAAAAAAAAAPC/" 575 ], 576 [ 577 9, 578 1, 579 "insert", 580 { 581 "characters": "_in" 582 }, 583 "AwAAAEwEAAAAAAAATQQAAAAAAAAAAAAATQQAAAAAAABOBAAAAAAAAAAAAABOBAAAAAAAAE8EAAAAAAAAAAAAAA", 584 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAATAQAAAAAAABMBAAAAAAAAAAAAAAAAPC/" 585 ], 586 [ 587 10, 588 1, 589 "insert", 590 { 591 "characters": "_" 592 }, 593 "AQAAAE8EAAAAAAAAUAQAAAAAAAAAAAAA", 594 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAATwQAAAAAAABPBAAAAAAAAAAAAAAAAPC/" 595 ], 596 [ 597 11, 598 3, 599 "left_delete", 600 null, 601 "AwAAAE8EAAAAAAAATwQAAAAAAAABAAAAX04EAAAAAAAATgQAAAAAAAABAAAAbk0EAAAAAAAATQQAAAAAAAABAAAAaQ", 602 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAUAQAAAAAAABQBAAAAAAAAAAAAAAAAPC/" 603 ], 604 [ 605 12, 606 1, 607 "insert", 608 { 609 "characters": "up" 610 }, 611 "AgAAAE0EAAAAAAAATgQAAAAAAAAAAAAATgQAAAAAAABPBAAAAAAAAAAAAAA", 612 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAATQQAAAAAAABNBAAAAAAAAAAAAAAAAPC/" 613 ], 614 [ 615 13, 616 1, 617 "insert", 618 { 619 "characters": "_hierar" 620 }, 621 "BwAAAE8EAAAAAAAAUAQAAAAAAAAAAAAAUAQAAAAAAABRBAAAAAAAAAAAAABRBAAAAAAAAFIEAAAAAAAAAAAAAFIEAAAAAAAAUwQAAAAAAAAAAAAAUwQAAAAAAABUBAAAAAAAAAAAAABUBAAAAAAAAFUEAAAAAAAAAAAAAFUEAAAAAAAAVgQAAAAAAAAAAAAA", 622 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAATwQAAAAAAABPBAAAAAAAAAAAAAAAAPC/" 623 ], 624 [ 625 14, 626 1, 627 "insert", 628 { 629 "characters": "chy" 630 }, 631 "AwAAAFYEAAAAAAAAVwQAAAAAAAAAAAAAVwQAAAAAAABYBAAAAAAAAAAAAABYBAAAAAAAAFkEAAAAAAAAAAAAAA", 632 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAVgQAAAAAAABWBAAAAAAAAAAAAAAAAPC/" 633 ], 634 [ 635 15, 636 1, 637 "insert", 638 { 639 "characters": " " 640 }, 641 "AQAAAFkEAAAAAAAAWgQAAAAAAAAAAAAA", 642 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAWQQAAAAAAABZBAAAAAAAAAAAAAAAAPC/" 643 ], 644 [ 645 16, 646 1, 647 "left_delete", 648 null, 649 "AQAAAFkEAAAAAAAAWQQAAAAAAAABAAAAIA", 650 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAWgQAAAAAAABaBAAAAAAAAAAAAAAAAPC/" 651 ], 652 [ 653 17, 654 1, 655 "insert", 656 { 657 "characters": "_t" 658 }, 659 "AgAAAFkEAAAAAAAAWgQAAAAAAAAAAAAAWgQAAAAAAABbBAAAAAAAAAAAAAA", 660 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAWQQAAAAAAABZBAAAAAAAAAAAAAAAAPC/" 661 ], 662 [ 663 18, 664 1, 665 "insert", 666 { 667 "characters": "o" 668 }, 669 "AQAAAFsEAAAAAAAAXAQAAAAAAAAAAAAA", 670 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAWwQAAAAAAABbBAAAAAAAAAAAAAAAAPC/" 671 ], 672 [ 673 19, 674 1, 675 "insert", 676 { 677 "characters": " fi" 678 }, 679 "AwAAAFwEAAAAAAAAXQQAAAAAAAAAAAAAXQQAAAAAAABeBAAAAAAAAAAAAABeBAAAAAAAAF8EAAAAAAAAAAAAAA", 680 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAXAQAAAAAAABcBAAAAAAAAAAAAAAAAPC/" 681 ], 682 [ 683 20, 684 3, 685 "left_delete", 686 null, 687 "AwAAAF4EAAAAAAAAXgQAAAAAAAABAAAAaV0EAAAAAAAAXQQAAAAAAAABAAAAZlwEAAAAAAAAXAQAAAAAAAABAAAAIA", 688 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAXwQAAAAAAABfBAAAAAAAAAAAAAAAAPC/" 689 ], 690 [ 691 21, 692 1, 693 "insert", 694 { 695 "characters": "_fix_" 696 }, 697 "BQAAAFwEAAAAAAAAXQQAAAAAAAAAAAAAXQQAAAAAAABeBAAAAAAAAAAAAABeBAAAAAAAAF8EAAAAAAAAAAAAAF8EAAAAAAAAYAQAAAAAAAAAAAAAYAQAAAAAAABhBAAAAAAAAAAAAAA", 698 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAXAQAAAAAAABcBAAAAAAAAAAAAAAAAPC/" 699 ], 700 [ 701 22, 702 1, 703 "insert", 704 { 705 "characters": "offse" 706 }, 707 "BQAAAGEEAAAAAAAAYgQAAAAAAAAAAAAAYgQAAAAAAABjBAAAAAAAAAAAAABjBAAAAAAAAGQEAAAAAAAAAAAAAGQEAAAAAAAAZQQAAAAAAAAAAAAAZQQAAAAAAABmBAAAAAAAAAAAAAA", 708 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAYQQAAAAAAABhBAAAAAAAAAAAAAAAAPC/" 709 ], 710 [ 711 23, 712 1, 713 "insert", 714 { 715 "characters": "t_beh" 716 }, 717 "BQAAAGYEAAAAAAAAZwQAAAAAAAAAAAAAZwQAAAAAAABoBAAAAAAAAAAAAABoBAAAAAAAAGkEAAAAAAAAAAAAAGkEAAAAAAAAagQAAAAAAAAAAAAAagQAAAAAAABrBAAAAAAAAAAAAAA", 718 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAZgQAAAAAAABmBAAAAAAAAAAAAAAAAPC/" 719 ], 720 [ 721 24, 722 1, 723 "insert", 724 { 725 "characters": "aviour" 726 }, 727 "BgAAAGsEAAAAAAAAbAQAAAAAAAAAAAAAbAQAAAAAAABtBAAAAAAAAAAAAABtBAAAAAAAAG4EAAAAAAAAAAAAAG4EAAAAAAAAbwQAAAAAAAAAAAAAbwQAAAAAAABwBAAAAAAAAAAAAABwBAAAAAAAAHEEAAAAAAAAAAAAAA", 728 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAawQAAAAAAABrBAAAAAAAAAAAAAAAAPC/" 729 ], 730 [ 731 25, 732 1, 733 "insert_snippet", 734 { 735 "contents": "($0)" 736 }, 737 "AQAAAHEEAAAAAAAAcwQAAAAAAAAAAAAA", 738 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAcQQAAAAAAABxBAAAAAAAAAAAAAAAAPC/" 739 ], 740 [ 741 27, 742 1, 743 "insert", 744 { 745 "characters": "\n\n" 746 }, 747 "BQAAAHMEAAAAAAAAdAQAAAAAAAAAAAAAdAQAAAAAAAB8BAAAAAAAAAAAAAB8BAAAAAAAAH0EAAAAAAAAAAAAAH0EAAAAAAAAhQQAAAAAAAAAAAAAdAQAAAAAAAB0BAAAAAAAAAgAAAAgICAgICAgIA", 748 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAcwQAAAAAAABzBAAAAAAAAAAAAAAAAPC/" 749 ], 750 [ 751 28, 752 1, 753 "left_delete", 754 null, 755 "AQAAAHkEAAAAAAAAeQQAAAAAAAAEAAAAICAgIA", 756 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAfQQAAAAAAAB9BAAAAAAAAAAAAAAAAPC/" 757 ], 758 [ 759 29, 760 1, 761 "insert", 762 { 763 "characters": "def" 764 }, 765 "AwAAAHkEAAAAAAAAegQAAAAAAAAAAAAAegQAAAAAAAB7BAAAAAAAAAAAAAB7BAAAAAAAAHwEAAAAAAAAAAAAAA", 766 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAeQQAAAAAAAB5BAAAAAAAAAAAAAAAAPC/" 767 ], 768 [ 769 30, 770 1, 771 "copilot_accept_completion", 772 null, 773 "AgAAAHUEAAAAAAAAdQQAAAAAAAAHAAAAICAgIGRlZnUEAAAAAAAAtgQAAAAAAAAAAAAA", 774 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAfAQAAAAAAAB8BAAAAAAAAAAAAAAAAPC/" 775 ], 776 [ 777 31, 778 1, 779 "insert", 780 { 781 "characters": "\n" 782 }, 783 "AwAAALYEAAAAAAAAtwQAAAAAAAAAAAAAtwQAAAAAAAC7BAAAAAAAAAAAAAC7BAAAAAAAAL8EAAAAAAAAAAAAAA", 784 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAtgQAAAAAAAC2BAAAAAAAAAAAAAAAAPC/" 785 ], 786 [ 787 32, 788 1, 789 "insert", 790 { 791 "characters": "if" 792 }, 793 "AgAAAL8EAAAAAAAAwAQAAAAAAAAAAAAAwAQAAAAAAADBBAAAAAAAAAAAAAA", 794 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAvwQAAAAAAAC/BAAAAAAAAAAAAAAAAPC/" 795 ], 796 [ 797 33, 798 1, 799 "insert", 800 { 801 "characters": " self." 802 }, 803 "BgAAAMEEAAAAAAAAwgQAAAAAAAAAAAAAwgQAAAAAAADDBAAAAAAAAAAAAADDBAAAAAAAAMQEAAAAAAAAAAAAAMQEAAAAAAAAxQQAAAAAAAAAAAAAxQQAAAAAAADGBAAAAAAAAAAAAADGBAAAAAAAAMcEAAAAAAAAAAAAAA", 804 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAwQQAAAAAAADBBAAAAAAAAAAAAAAAAPC/" 805 ], 806 [ 807 34, 808 1, 809 "insert", 810 { 811 "characters": "membrane:" 812 }, 813 "CQAAAMcEAAAAAAAAyAQAAAAAAAAAAAAAyAQAAAAAAADJBAAAAAAAAAAAAADJBAAAAAAAAMoEAAAAAAAAAAAAAMoEAAAAAAAAywQAAAAAAAAAAAAAywQAAAAAAADMBAAAAAAAAAAAAADMBAAAAAAAAM0EAAAAAAAAAAAAAM0EAAAAAAAAzgQAAAAAAAAAAAAAzgQAAAAAAADPBAAAAAAAAAAAAADPBAAAAAAAANAEAAAAAAAAAAAAAA", 814 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAxwQAAAAAAADHBAAAAAAAAAAAAAAAAPC/" 815 ], 816 [ 817 35, 818 1, 819 "insert", 820 { 821 "characters": "\n" 822 }, 823 "AwAAANAEAAAAAAAA0QQAAAAAAAAAAAAA0QQAAAAAAADZBAAAAAAAAAAAAADZBAAAAAAAAN0EAAAAAAAAAAAAAA", 824 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA0AQAAAAAAADQBAAAAAAAAAAAAAAAAPC/" 825 ], 826 [ 827 36, 828 1, 829 "insert", 830 { 831 "characters": "s" 832 }, 833 "AQAAAN0EAAAAAAAA3gQAAAAAAAAAAAAA", 834 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA3QQAAAAAAADdBAAAAAAAAAAAAAAAAPC/" 835 ], 836 [ 837 37, 838 1, 839 "insert_completion", 840 { 841 "completion": "self", 842 "format": "text", 843 "keep_prefix": false, 844 "must_insert": false, 845 "trigger": "self" 846 }, 847 "AgAAAN0EAAAAAAAA3QQAAAAAAAABAAAAc90EAAAAAAAA4QQAAAAAAAAAAAAA", 848 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA3gQAAAAAAADeBAAAAAAAAAAAAAAAAPC/" 849 ], 850 [ 851 38, 852 1, 853 "insert", 854 { 855 "characters": ".membrane" 856 }, 857 "CQAAAOEEAAAAAAAA4gQAAAAAAAAAAAAA4gQAAAAAAADjBAAAAAAAAAAAAADjBAAAAAAAAOQEAAAAAAAAAAAAAOQEAAAAAAAA5QQAAAAAAAAAAAAA5QQAAAAAAADmBAAAAAAAAAAAAADmBAAAAAAAAOcEAAAAAAAAAAAAAOcEAAAAAAAA6AQAAAAAAAAAAAAA6AQAAAAAAADpBAAAAAAAAAAAAADpBAAAAAAAAOoEAAAAAAAAAAAAAA", 858 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA4QQAAAAAAADhBAAAAAAAAAAAAAAAAPC/" 859 ], 860 [ 861 39, 862 1, 863 "insert", 864 { 865 "characters": ".obj" 866 }, 867 "BAAAAOoEAAAAAAAA6wQAAAAAAAAAAAAA6wQAAAAAAADsBAAAAAAAAAAAAADsBAAAAAAAAO0EAAAAAAAAAAAAAO0EAAAAAAAA7gQAAAAAAAAAAAAA", 868 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA6gQAAAAAAADqBAAAAAAAAAAAAAAAAPC/" 869 ], 870 [ 871 40, 872 1, 873 "insert", 874 { 875 "characters": ".In" 876 }, 877 "AwAAAO4EAAAAAAAA7wQAAAAAAAAAAAAA7wQAAAAAAADwBAAAAAAAAAAAAADwBAAAAAAAAPEEAAAAAAAAAAAAAA", 878 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA7gQAAAAAAADuBAAAAAAAAAAAAAAAAPC/" 879 ], 880 [ 881 41, 882 1, 883 "insert_completion", 884 { 885 "completion": "InsertUnder", 886 "format": "text", 887 "keep_prefix": false, 888 "must_insert": false, 889 "trigger": "InsertUnder" 890 }, 891 "AgAAAO8EAAAAAAAA7wQAAAAAAAACAAAASW7vBAAAAAAAAPoEAAAAAAAAAAAAAA", 892 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA8QQAAAAAAADxBAAAAAAAAAAAAAAAAPC/" 893 ], 894 [ 895 42, 896 1, 897 "insert_snippet", 898 { 899 "contents": "($0)" 900 }, 901 "AQAAAPoEAAAAAAAA/AQAAAAAAAAAAAAA", 902 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA+gQAAAAAAAD6BAAAAAAAAAAAAAAAAPC/" 903 ], 904 [ 905 43, 906 1, 907 "copilot_accept_completion", 908 null, 909 "AgAAANEEAAAAAAAA0QQAAAAAAAArAAAAICAgICAgICAgICAgc2VsZi5tZW1icmFuZS5vYmouSW5zZXJ0VW5kZXIoKdEEAAAAAAAABAUAAAAAAAAAAAAA", 910 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA+wQAAAAAAAD7BAAAAAAAAAAAAAAAAPC/" 911 ], 912 [ 913 63, 914 3, 915 "delete_word", 916 { 917 "forward": false 918 }, 919 "AwAAAMcEAAAAAAAAxwQAAAAAAAAIAAAAbWVtYnJhbmXGBAAAAAAAAMYEAAAAAAAAAQAAAC7CBAAAAAAAAMIEAAAAAAAABAAAAHNlbGY", 920 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAzwQAAAAAAADPBAAAAAAAAAAAAAAAAPC/" 921 ], 922 [ 923 64, 924 1, 925 "insert", 926 { 927 "characters": "True" 928 }, 929 "BAAAAMIEAAAAAAAAwwQAAAAAAAAAAAAAwwQAAAAAAADEBAAAAAAAAAAAAADEBAAAAAAAAMUEAAAAAAAAAAAAAMUEAAAAAAAAxgQAAAAAAAAAAAAA", 930 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAwgQAAAAAAADCBAAAAAAAAAAAAAAAAPC/" 931 ], 932 [ 933 69, 934 1, 935 "run_macro_file", 936 { 937 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 938 }, 939 "AQAAALcEAAAAAAAAtwQAAAAAAAAQAAAAICAgICAgICBpZiBUcnVlOg", 940 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAxwQAAAAAAADHBAAAAAAAAAAAAAAAUHZA" 941 ], 942 [ 943 70, 944 1, 945 "left_delete", 946 null, 947 "AQAAALYEAAAAAAAAtgQAAAAAAAABAAAACg", 948 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAtwQAAAAAAAC3BAAAAAAAAAAAAAAAAPC/" 949 ], 950 [ 951 73, 952 1, 953 "left_delete", 954 null, 955 "AQAAAL8EAAAAAAAAvwQAAAAAAAAEAAAAICAgIA", 956 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAwwQAAAAAAADDBAAAAAAAAAAAAAAAAFVA" 957 ], 958 [ 959 130, 960 1, 961 "cut", 962 null, 963 "AQAAAL8EAAAAAAAAvwQAAAAAAAAnAAAAc2VsZi5tZW1icmFuZS5vYmouSW5zZXJ0VW5kZXIoc2VsZi5vYmop", 964 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA5gQAAAAAAAC/BAAAAAAAAAAAAAAAAExA" 965 ], 966 [ 967 134, 968 1, 969 "insert", 970 { 971 "characters": "\n" 972 }, 973 "AgAAAE8HAAAAAAAAUAcAAAAAAAAAAAAAUAcAAAAAAABcBwAAAAAAAAAAAAA", 974 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAATwcAAAAAAABPBwAAAAAAAP///////+9/" 975 ], 976 [ 977 135, 978 1, 979 "paste", 980 null, 981 "AQAAAFwHAAAAAAAAgwcAAAAAAAAAAAAA", 982 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAXAcAAAAAAABcBwAAAAAAAAAAAAAAAPC/" 983 ], 984 [ 985 137, 986 2, 987 "left_delete", 988 null, 989 "AgAAAL8EAAAAAAAAvwQAAAAAAAABAAAACrsEAAAAAAAAuwQAAAAAAAAEAAAAICAgIA", 990 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAwAQAAAAAAADABAAAAAAAAAAAAAAAUHZA" 991 ], 992 [ 993 138, 994 3, 995 "run_macro_file", 996 { 997 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 998 }, 999 "AwAAALcEAAAAAAAAtwQAAAAAAAAEAAAAICAgILYEAAAAAAAAtgQAAAAAAAABAAAACnUEAAAAAAAAdQQAAAAAAABBAAAAICAgIGRlZiBtb3ZlX21lbWJyYW5lX3VwX2hpZXJhcmNoeV90b19maXhfb2Zmc2V0X2JlaGF2aW91cihzZWxmKTo", 1000 "DQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAuwQAAAAAAAC7BAAAAAAAAAAAAAAAAPC/" 1001 ], 1002 [ 1003 139, 1004 1, 1005 "left_delete", 1006 null, 1007 "AgAAAHQEAAAAAAAAdAQAAAAAAAABAAAACnMEAAAAAAAAcwQAAAAAAAABAAAACg", 1008 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB1BAAAAAAAAHUEAAAAAAAAAAAAAAAA8L8" 1009 ], 1010 [ 1011 140, 1012 1, 1013 "run_macro_file", 1014 { 1015 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 1016 }, 1017 "AQAAADIEAAAAAAAAMgQAAAAAAABBAAAAICAgICAgICBzZWxmLm1vdmVfbWVtYnJhbmVfdXBfaGllcmFyY2h5X3RvX2ZpeF9vZmZzZXRfYmVoYXZpb3VyKCk", 1018 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABzBAAAAAAAAHMEAAAAAAAAAAAAAAAA8L8" 1019 ] 1020 ] 1021 }, 1022 { 1023 "file": "objects/abstract_objects.py", 1024 "settings": 1025 { 1026 "buffer_size": 35430, 1027 "encoding": "UTF-8", 1028 "line_ending": "Unix" 1029 }, 1030 "undo_stack": 1031 [ 1032 [ 1033 19, 1034 1, 1035 "insert", 1036 { 1037 "characters": "\n" 1038 }, 1039 "AQAAAEcCAAAAAAAASAIAAAAAAAAAAAAA", 1040 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABHAgAAAAAAAEcCAAAAAAAAAAAAAAAA8L8" 1041 ], 1042 [ 1043 20, 1044 1, 1045 "insert", 1046 { 1047 "characters": "im" 1048 }, 1049 "AgAAAEgCAAAAAAAASQIAAAAAAAAAAAAASQIAAAAAAABKAgAAAAAAAAAAAAA", 1050 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABIAgAAAAAAAEgCAAAAAAAAAAAAAAAA8L8" 1051 ], 1052 [ 1053 21, 1054 1, 1055 "insert_completion", 1056 { 1057 "completion": "import", 1058 "format": "snippet", 1059 "keep_prefix": false, 1060 "must_insert": false, 1061 "trigger": "import" 1062 }, 1063 "AgAAAEgCAAAAAAAASAIAAAAAAAACAAAAaW1IAgAAAAAAAE4CAAAAAAAAAAAAAA", 1064 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABKAgAAAAAAAEoCAAAAAAAAAAAAAAAA8L8" 1065 ], 1066 [ 1067 22, 1068 1, 1069 "copilot_accept_completion", 1070 null, 1071 "AgAAAEgCAAAAAAAASAIAAAAAAAAGAAAAaW1wb3J0SAIAAAAAAAB9AgAAAAAAAAAAAAA", 1072 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABOAgAAAAAAAE4CAAAAAAAAAAAAAAAA8L8" 1073 ], 1074 [ 1075 23, 1076 3, 1077 "delete_word", 1078 { 1079 "forward": false 1080 }, 1081 "AwAAAHECAAAAAAAAcQIAAAAAAAAMAAAAbGluZV9vYmplY3RzbgIAAAAAAABuAgAAAAAAAAMAAABhcyBhAgAAAAAAAGECAAAAAAAADQAAAGxpbmVfb2JqZWN0cyA", 1082 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB9AgAAAAAAAH0CAAAAAAAAAAAAAAAA8L8" 1083 ], 1084 [ 1085 24, 1086 1, 1087 "insert", 1088 { 1089 "characters": "helper" 1090 }, 1091 "BgAAAGECAAAAAAAAYgIAAAAAAAAAAAAAYgIAAAAAAABjAgAAAAAAAAAAAABjAgAAAAAAAGQCAAAAAAAAAAAAAGQCAAAAAAAAZQIAAAAAAAAAAAAAZQIAAAAAAABmAgAAAAAAAAAAAABmAgAAAAAAAGcCAAAAAAAAAAAAAA", 1092 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABhAgAAAAAAAGECAAAAAAAAAAAAAAAA8L8" 1093 ], 1094 [ 1095 25, 1096 1, 1097 "copilot_accept_completion", 1098 null, 1099 "AgAAAEgCAAAAAAAASAIAAAAAAAAfAAAAaW1wb3J0IHB5ZGVhdGlvbi5vYmplY3RzLmhlbHBlckgCAAAAAAAAgQIAAAAAAAAAAAAA", 1100 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABnAgAAAAAAAGcCAAAAAAAAAAAAAAAA8L8" 1101 ], 1102 [ 1103 30, 1104 1, 1105 "insert", 1106 { 1107 "characters": "helope" 1108 }, 1109 "BwAAAB1DAAAAAAAAHkMAAAAAAAAAAAAAHkMAAAAAAAAeQwAAAAAAAA4AAABlZmZlY3Rfb2JqZWN0cx5DAAAAAAAAH0MAAAAAAAAAAAAAH0MAAAAAAAAgQwAAAAAAAAAAAAAgQwAAAAAAACFDAAAAAAAAAAAAACFDAAAAAAAAIkMAAAAAAAAAAAAAIkMAAAAAAAAjQwAAAAAAAAAAAAA", 1110 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAdQwAAAAAAACtDAAAAAAAAAAAAAAAA8L8" 1111 ], 1112 [ 1113 31, 1114 1, 1115 "insert_completion", 1116 { 1117 "completion": "helper_objects", 1118 "format": "snippet", 1119 "keep_prefix": false, 1120 "must_insert": false, 1121 "trigger": "helper_objects" 1122 }, 1123 "AgAAAB1DAAAAAAAAHUMAAAAAAAAGAAAAaGVsb3BlHUMAAAAAAAArQwAAAAAAAAAAAAA", 1124 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAjQwAAAAAAACNDAAAAAAAAAAAAAAAA8L8" 1125 ], 1126 [ 1127 43, 1128 1, 1129 "insert", 1130 { 1131 "characters": "helper" 1132 }, 1133 "BgAAAEtZAAAAAAAATFkAAAAAAAAAAAAATFkAAAAAAABNWQAAAAAAAAAAAABNWQAAAAAAAE5ZAAAAAAAAAAAAAE5ZAAAAAAAAT1kAAAAAAAAAAAAAT1kAAAAAAABQWQAAAAAAAAAAAABQWQAAAAAAAFFZAAAAAAAAAAAAAA", 1134 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABLWQAAAAAAAEtZAAAAAAAAAAAAAAAA8L8" 1135 ], 1136 [ 1137 44, 1138 1, 1139 "insert", 1140 { 1141 "characters": "_objects" 1142 }, 1143 "CAAAAFFZAAAAAAAAUlkAAAAAAAAAAAAAUlkAAAAAAABTWQAAAAAAAAAAAABTWQAAAAAAAFRZAAAAAAAAAAAAAFRZAAAAAAAAVVkAAAAAAAAAAAAAVVkAAAAAAABWWQAAAAAAAAAAAABWWQAAAAAAAFdZAAAAAAAAAAAAAFdZAAAAAAAAWFkAAAAAAAAAAAAAWFkAAAAAAABZWQAAAAAAAAAAAAA", 1144 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABRWQAAAAAAAFFZAAAAAAAAAAAAAAAA8L8" 1145 ], 1146 [ 1147 45, 1148 1, 1149 "insert", 1150 { 1151 "characters": "." 1152 }, 1153 "AQAAAFlZAAAAAAAAWlkAAAAAAAAAAAAA", 1154 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABZWQAAAAAAAFlZAAAAAAAAAAAAAAAA8L8" 1155 ], 1156 [ 1157 51, 1158 1, 1159 "insert", 1160 { 1161 "characters": "solid_objec" 1162 }, 1163 "CwAAAIdZAAAAAAAAiFkAAAAAAAAAAAAAiFkAAAAAAACJWQAAAAAAAAAAAACJWQAAAAAAAIpZAAAAAAAAAAAAAIpZAAAAAAAAi1kAAAAAAAAAAAAAi1kAAAAAAACMWQAAAAAAAAAAAACMWQAAAAAAAI1ZAAAAAAAAAAAAAI1ZAAAAAAAAjlkAAAAAAAAAAAAAjlkAAAAAAACPWQAAAAAAAAAAAACPWQAAAAAAAJBZAAAAAAAAAAAAAJBZAAAAAAAAkVkAAAAAAAAAAAAAkVkAAAAAAACSWQAAAAAAAAAAAAA", 1164 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACHWQAAAAAAAIdZAAAAAAAAAAAAAAAA8L8" 1165 ], 1166 [ 1167 52, 1168 1, 1169 "insert", 1170 { 1171 "characters": "ts." 1172 }, 1173 "AwAAAJJZAAAAAAAAk1kAAAAAAAAAAAAAk1kAAAAAAACUWQAAAAAAAAAAAACUWQAAAAAAAJVZAAAAAAAAAAAAAA", 1174 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACSWQAAAAAAAJJZAAAAAAAAAAAAAAAA8L8" 1175 ], 1176 [ 1177 55, 1178 1, 1179 "duplicate_line", 1180 null, 1181 "AQAAAIICAAAAAAAAvAIAAAAAAAAAAAAA", 1182 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACBAgAAAAAAAIECAAAAAAAAAAAAAAAA8L8" 1183 ], 1184 [ 1185 59, 1186 1, 1187 "insert", 1188 { 1189 "characters": "solid_object" 1190 }, 1191 "GgAAAK0CAAAAAAAArgIAAAAAAAAAAAAArgIAAAAAAACuAgAAAAAAAA4AAABoZWxwZXJfb2JqZWN0c5sCAAAAAAAAnAIAAAAAAAAAAAAAnAIAAAAAAACcAgAAAAAAAA4AAABoZWxwZXJfb2JqZWN0c6ECAAAAAAAAogIAAAAAAAAAAAAAnAIAAAAAAACdAgAAAAAAAAAAAACjAgAAAAAAAKQCAAAAAAAAAAAAAJ0CAAAAAAAAngIAAAAAAAAAAAAApQIAAAAAAACmAgAAAAAAAAAAAACeAgAAAAAAAJ8CAAAAAAAAAAAAAKcCAAAAAAAAqAIAAAAAAAAAAAAAnwIAAAAAAACgAgAAAAAAAAAAAACpAgAAAAAAAKoCAAAAAAAAAAAAAKACAAAAAAAAoQIAAAAAAAAAAAAAqwIAAAAAAACsAgAAAAAAAAAAAAChAgAAAAAAAKICAAAAAAAAAAAAAK0CAAAAAAAArgIAAAAAAAAAAAAAogIAAAAAAACjAgAAAAAAAAAAAACvAgAAAAAAALACAAAAAAAAAAAAAKMCAAAAAAAApAIAAAAAAAAAAAAAsQIAAAAAAACyAgAAAAAAAAAAAACkAgAAAAAAAKUCAAAAAAAAAAAAALMCAAAAAAAAtAIAAAAAAAAAAAAApQIAAAAAAACmAgAAAAAAAAAAAAC1AgAAAAAAALYCAAAAAAAAAAAAAKYCAAAAAAAApwIAAAAAAAAAAAAA", 1192 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAIAAACbAgAAAAAAAKkCAAAAAAAAAAAAAAAA8L+tAgAAAAAAALsCAAAAAAAAAAAAAAAA8L8" 1193 ], 1194 [ 1195 60, 1196 1, 1197 "insert", 1198 { 1199 "characters": "s" 1200 }, 1201 "AgAAALcCAAAAAAAAuAIAAAAAAAAAAAAApwIAAAAAAACoAgAAAAAAAAAAAAA", 1202 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAIAAACnAgAAAAAAAKcCAAAAAAAAAAAAAAAA8L+3AgAAAAAAALcCAAAAAAAAAAAAAAAA8L8" 1203 ], 1204 [ 1205 104, 1206 1, 1207 "insert", 1208 { 1209 "characters": "#" 1210 }, 1211 "AQAAAAddAAAAAAAACF0AAAAAAAAAAAAA", 1212 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAHXQAAAAAAAAddAAAAAAAAAAAAAAAATEA" 1213 ], 1214 [ 1215 107, 1216 1, 1217 "insert", 1218 { 1219 "characters": "#" 1220 }, 1221 "AQAAAEFdAAAAAAAAQl0AAAAAAAAAAAAA", 1222 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABBXQAAAAAAAEFdAAAAAAAAAAAAAAAA8L8" 1223 ], 1224 [ 1225 169, 1226 1, 1227 "insert", 1228 { 1229 "characters": " fill" 1230 }, 1231 "BQAAAOd2AAAAAAAA6HYAAAAAAAAAAAAA6HYAAAAAAADpdgAAAAAAAAAAAADpdgAAAAAAAOp2AAAAAAAAAAAAAOp2AAAAAAAA63YAAAAAAAAAAAAA63YAAAAAAADsdgAAAAAAAAAAAAA", 1232 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADndgAAAAAAAOd2AAAAAAAAAAAAAAAA8L8" 1233 ], 1234 [ 1235 170, 1236 1, 1237 "insert", 1238 { 1239 "characters": "_opacity=" 1240 }, 1241 "CQAAAOx2AAAAAAAA7XYAAAAAAAAAAAAA7XYAAAAAAADudgAAAAAAAAAAAADudgAAAAAAAO92AAAAAAAAAAAAAO92AAAAAAAA8HYAAAAAAAAAAAAA8HYAAAAAAADxdgAAAAAAAAAAAADxdgAAAAAAAPJ2AAAAAAAAAAAAAPJ2AAAAAAAA83YAAAAAAAAAAAAA83YAAAAAAAD0dgAAAAAAAAAAAAD0dgAAAAAAAPV2AAAAAAAAAAAAAA", 1242 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADsdgAAAAAAAOx2AAAAAAAAAAAAAAAA8L8" 1243 ], 1244 [ 1245 171, 1246 1, 1247 "insert", 1248 { 1249 "characters": "1," 1250 }, 1251 "AgAAAPV2AAAAAAAA9nYAAAAAAAAAAAAA9nYAAAAAAAD3dgAAAAAAAAAAAAA", 1252 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD1dgAAAAAAAPV2AAAAAAAAAAAAAAAA8L8" 1253 ], 1254 [ 1255 172, 1256 1, 1257 "insert", 1258 { 1259 "characters": " " 1260 }, 1261 "AQAAAPd2AAAAAAAA+HYAAAAAAAAAAAAA", 1262 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD3dgAAAAAAAPd2AAAAAAAAAAAAAAAA8L8" 1263 ], 1264 [ 1265 173, 1266 1, 1267 "left_delete", 1268 null, 1269 "AQAAAPd2AAAAAAAA93YAAAAAAAABAAAAIA", 1270 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD4dgAAAAAAAPh2AAAAAAAAAAAAAAAA8L8" 1271 ], 1272 [ 1273 180, 1274 1, 1275 "insert", 1276 { 1277 "characters": "\n" 1278 }, 1279 "AgAAAJh4AAAAAAAAmXgAAAAAAAAAAAAAmXgAAAAAAACheAAAAAAAAAAAAAA", 1280 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACYeAAAAAAAAJh4AAAAAAAA////////738" 1281 ], 1282 [ 1283 181, 1284 1, 1285 "copilot_accept_completion", 1286 null, 1287 "AgAAAJl4AAAAAAAAmXgAAAAAAAAIAAAAICAgICAgICCZeAAAAAAAAMF4AAAAAAAAAAAAAA", 1288 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACheAAAAAAAAKF4AAAAAAAAAAAAAAAA8L8" 1289 ], 1290 [ 1291 185, 1292 2, 1293 "anaconda_auto_format", 1294 null, 1295 "AQAAAAAAAAAAAAAAo5EAAAAAAACikQAAaW1wb3J0IGltcG9ydGxpYgppbXBvcnQgcHlkZWF0aW9uLm1hdGVyaWFscwppbXBvcnRsaWIucmVsb2FkKHB5ZGVhdGlvbi5tYXRlcmlhbHMpCmZyb20gcHlkZWF0aW9uLm1hdGVyaWFscyBpbXBvcnQgRmlsbE1hdGVyaWFsLCBTa2V0Y2hNYXRlcmlhbApmcm9tIHB5ZGVhdGlvbi50YWdzIGltcG9ydCBGaWxsVGFnLCBTa2V0Y2hUYWcsIFhQcmVzc29UYWcsIEFsaWduVG9TcGxpbmVUYWcKZnJvbSBweWRlYXRpb24uY29uc3RhbnRzIGltcG9ydCBXSElURSwgU0NBTEVfWCwgU0NBTEVfWSwgU0NBTEVfWgpmcm9tIHB5ZGVhdGlvbi5hbmltYXRpb24uYW5pbWF0aW9uIGltcG9ydCBWZWN0b3JBbmltYXRpb24sIFNjYWxhckFuaW1hdGlvbiwgQ29sb3JBbmltYXRpb24KZnJvbSBweWRlYXRpb24ueHByZXNzby51c2VyZGF0YSBpbXBvcnQgKgpmcm9tIHB5ZGVhdGlvbi54cHJlc3NvLnhwcmVzc2lvbnMgaW1wb3J0IFhSZWxhdGlvbiwgWElkZW50aXR5LCBYU3BsaW5lTGVuZ3RoLCBYQm91bmRpbmdCb3gsIFhBY3Rpb24sIE1vdmVtZW50CmltcG9ydCBweWRlYXRpb24ub2JqZWN0cy5lZmZlY3Rfb2JqZWN0cyBhcyBlZmZlY3Rfb2JqZWN0cwppbXBvcnQgcHlkZWF0aW9uLm9iamVjdHMuaGVscGVyX29iamVjdHMgYXMgaGVscGVyX29iamVjdHMKaW1wb3J0IHB5ZGVhdGlvbi5vYmplY3RzLnNvbGlkX29iamVjdHMgYXMgc29saWRfb2JqZWN0cwpmcm9tIGFiYyBpbXBvcnQgQUJDLCBhYnN0cmFjdG1ldGhvZAppbXBvcnQgYzRkLnV0aWxzCmltcG9ydCBjNGQKCgpjbGFzcyBQcm90b09iamVjdChBQkMpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lPU5vbmUsIHg9MCwgeT0wLCB6PTAsIGg9MCwgcD0wLCBiPTAsIHNjYWxlPTEsIHBvc2l0aW9uPU5vbmUsIHJvdGF0aW9uPU5vbmUsIHBsYW5lPSJ4eSIpOgogICAgICAgIHNlbGYuZG9jdW1lbnQgPSBjNGQuZG9jdW1lbnRzLkdldEFjdGl2ZURvY3VtZW50KCkgICMgZ2V0IGRvY3VtZW50CiAgICAgICAgc2VsZi5zcGVjaWZ5X29iamVjdCgpCiAgICAgICAgc2VsZi5zZXRfeHByZXNzb190YWdzKCkKICAgICAgICBzZWxmLnNldF91bmlxdWVfZGVzY19pZHMoKQogICAgICAgIHNlbGYuaW5zZXJ0X3RvX2RvY3VtZW50KCkKICAgICAgICBzZWxmLnNldF9uYW1lKG5hbWU9bmFtZSkKICAgICAgICBzZWxmLnNldF9wb3NpdGlvbih4PXgsIHk9eSwgej16LCBwb3NpdGlvbj1wb3NpdGlvbikKICAgICAgICBzZWxmLnNldF9yb3RhdGlvbihoPWgsIHA9cCwgYj1iLCByb3RhdGlvbj1yb3RhdGlvbikKICAgICAgICBzZWxmLnNldF9zY2FsZShzY2FsZT1zY2FsZSkKICAgICAgICBzZWxmLnNldF9vYmplY3RfcHJvcGVydGllcygpCiAgICAgICAgc2VsZi5wbGFuZSA9IHBsYW5lCiAgICAgICAgc2VsZi5zZXRfcGxhbmUoKQogICAgICAgIHNlbGYucmVsYXRpb25zID0gW10KICAgICAgICBzZWxmLmFjdGlvbnMgPSBbXQogICAgICAgIHNlbGYueHByZXNzaW9ucyA9IHt9ICAjIGtlZXBzIHRyYWNrIG9mIGFuaW1hdG9ycywgY29tcG9zZXJzIGV0Yy4KICAgICAgICBzZWxmLmFjY2Vzc2VkX3BhcmFtZXRlcnMgPSB7fSAgIyBrZWVwcyB0cmFjayB3aGljaCBwYXJhbWV0ZXJzIGhhdmUgQWNjZXNzQ29udHJvbAogICAgICAgIHNlbGYuaGVscGVyX29iamVjdHMgPSB7fSAgIyBrZWVwcyB0cmFjayBvZiBoZWxwZXIgb2JqZWN0cyBjcmVhdGVkIGJ5IEFuaW1hdG9ycwogICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQoKICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAiIiJzZXRzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHByaW50aW5nIiIiCiAgICAgICAgcmV0dXJuIHNlbGYubmFtZQoKICAgIEBhYnN0cmFjdG1ldGhvZAogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgc2V0X3hwcmVzc29fdGFncyhzZWxmKToKICAgICAgICAiIiJpbml0aWFsaXplcyB0aGUgbmVjZXNzYXJ5IHhwcmVzc28gdGFncyBvbiB0aGUgb2JqZWN0IiIiCiAgICAgICAgIyB0aGUgY29tcG9zaXRpb24gdGFncyBob2xkIHRoZSBoaWVyYXJjaHkgb2YgY29tcG9zaXRpb25zIGFuZCBlbnN1cmUgZXhlY3V0aW9uIGZyb20gaGlnaGVzdCB0byBsb3dlc3QKICAgICAgICAjc2VsZi5jb21wb3NpdGlvbl90YWdzID0gW10KICAgICAgICAjIHRoZSBhbmltYXRvciB0YWcgaG9sZHMgdGhlIGFjdGluZyBvZiB0aGUgYW5pbWF0b3JzIG9uIHRoZSBhY3R1YWwgcGFyYW1ldGVycwogICAgICAgICMgc2V0IHByaW9yaXR5IHRvIGJlIGV4ZWN1dGVkIGxhc3QKICAgICAgICAjIHNlbGYuYW5pbWF0b3JfdGFnID0gWFByZXNzb1RhZygKICAgICAgICAjICAgIHRhcmdldD1zZWxmLCBuYW1lPSJBbmltYXRvclRhZyIsIHByaW9yaXR5PTEsIHByaW9yaXR5X21vZGU9ImV4cHJlc3Npb24iKQogICAgICAgICMgdGhlIGZyZWV6ZSB0YWcgaG9sZHMgdGhlIGZyZWV6aW5nIHhwcmVzc2lvbnMgdGhhdCBhcmUgZXhlY3V0ZWQgYmVmb3JlIHRoZSBhbmltYXRvcnMKICAgICAgICAjIHNldCBwcmlvcml0eSB0byBiZSBleGVjdXRlZCBhZnRlciBjb21wb3NpdGlvbnMgYW5kIGJlZm9yZSBhbmltYXRvcnMKICAgICAgICAjIHNlbGYuZnJlZXplX3RhZyA9IFhQcmVzc29UYWcoCiAgICAgICAgIyAgICB0YXJnZXQ9c2VsZiwgbmFtZT0iRnJlZXplVGFnIiwgcHJpb3JpdHk9MCwgcHJpb3JpdHlfbW9kZT0iYW5pbWF0aW9uIikKICAgICAgICAjIGluc2VydHMgYW4geHByZXNzbyB0YWcgdXNlZCBmb3IgY3VzdG9tIHhwcmVzc2lvbnMKICAgICAgICBzZWxmLmN1c3RvbV90YWcgPSBYUHJlc3NvVGFnKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgbmFtZT0iQ3VzdG9tVGFnIiwgcHJpb3JpdHlfbW9kZT0iZXhwcmVzc2lvbiIpCgogICAgZGVmIGFkZF9jb21wb3NpdGlvbl90YWcoc2VsZik6CiAgICAgICAgIiIiYWRkcyBhbm90aGVyIGxheWVyIHRvIHRoZSBjb21wb3NpdGlvbiBoaWVyYXJjaHkiIiIKICAgICAgICAjIHNldCBwcmlvcml0eSBhY2NvcmRpbmcgdG8gcG9zaXRpb24gaW4gY29tcG9zaXRpb24gaGllcmFyY2h5CiAgICAgICAgdGFnX25hbWUgPSAiQ29tcG9zaXRpb25UYWciICsgc3RyKGxlbihzZWxmLmNvbXBvc2l0aW9uX3RhZ3MpKQogICAgICAgIHRhZ19wcmlvcml0eSA9IC1sZW4oc2VsZi5jb21wb3NpdGlvbl90YWdzKQogICAgICAgIGNvbXBvc2l0aW9uX3RhZyA9IFhQcmVzc29UYWcoCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBuYW1lPXRhZ19uYW1lLCBwcmlvcml0eT10YWdfcHJpb3JpdHksIHByaW9yaXR5X21vZGU9ImluaXRpYWwiKQogICAgICAgIHNlbGYuY29tcG9zaXRpb25fdGFncy5hcHBlbmQoY29tcG9zaXRpb25fdGFnKQogICAgICAgIHJldHVybiBjb21wb3NpdGlvbl90YWcub2JqCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgIiIib3B0aW9uYWwgbWV0aG9kIHRvIG1ha2UgdW5pcXVlIGRlc2NJZHMgZWFzaWx5IGFjY2Vzc2libGUiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHNldF9uYW1lKHNlbGYsIG5hbWU9Tm9uZSk6CiAgICAgICAgaWYgbmFtZSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLm5hbWUgPSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXwogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICBzZWxmLm9iai5TZXROYW1lKHNlbGYubmFtZSkKCiAgICBkZWYgc2V0X3BsYW5lKHNlbGYpOgogICAgICAgICIiInNldHMgdGhlIHBsYW5lIG9mIHRoZSBjdXN0b20gb2JqZWN0IiIiCiAgICAgICAgaWYgc2VsZi5wbGFuZSA9PSAieHkiOgogICAgICAgICAgICBzZWxmLnJvdGF0ZShyb3RhdGlvbj0oMCwgMCwgMCkpCiAgICAgICAgZWxpZiBzZWxmLnBsYW5lID09ICJ5eiI6CiAgICAgICAgICAgIHNlbGYucm90YXRlKHJvdGF0aW9uPShQSSAvIDIsIDAsIDApKQogICAgICAgIGVsaWYgc2VsZi5wbGFuZSA9PSAieHoiOgogICAgICAgICAgICBzZWxmLnJvdGF0ZShyb3RhdGlvbj0oMCwgLVBJIC8gMiwgMCkpCgogICAgZGVmIHNwZWNpZnlfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICAiIiJzcGVjaWZpZXMgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIGN1c3RvbSBvYmplY3QiIiIKICAgICAgICBwYXNzCgogICAgZGVmIGluc2VydF9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgICIiImluc2VydHMgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzIGFzIHVzZXJkYXRhIiIiCiAgICAgICAgaWYgc2VsZi5wYXJhbWV0ZXJzOgogICAgICAgICAgICBzZWxmLnBhcmFtZXRlcnNfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgICAgICpzZWxmLnBhcmFtZXRlcnMsIHRhcmdldD1zZWxmLm9iaiwgbmFtZT1zZWxmLm5hbWUgKyAiUGFyYW1ldGVycyIpCgogICAgZGVmIHNwZWNpZnlfcmVsYXRpb25zKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgcmVsYXRpb25zIGJldHdlZW4gdGhlIHBhcnQncyBwYXJhbWV0ZXJzIHVzaW5nIHhwcmVzc28iIiIKICAgICAgICBwYXNzCgogICAgZGVmIHNldF9wb3NpdGlvbihzZWxmLCB4PTAsIHk9MCwgej0wLCBwb3NpdGlvbj1Ob25lLCByZWxhdGl2ZT1GYWxzZSk6CiAgICAgICAgaWYgcG9zaXRpb24gaXMgTm9uZToKICAgICAgICAgICAgcG9zaXRpb24gPSBjNGQuVmVjdG9yKHgsIHksIHopCiAgICAgICAgZWxpZiB0eXBlKHBvc2l0aW9uKSBpcyBub3QgYzRkLlZlY3RvcjoKICAgICAgICAgICAgcG9zaXRpb24gPSBjNGQuVmVjdG9yKCpwb3NpdGlvbikKICAgICAgICBpZiByZWxhdGl2ZToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfUE9TSVRJT05dICs9IHBvc2l0aW9uCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfUE9TSVRJT05dID0gcG9zaXRpb24KCiAgICBkZWYgc2V0X3JvdGF0aW9uKHNlbGYsIGg9MCwgcD0wLCBiPTAsIHJvdGF0aW9uPU5vbmUsIHJlbGF0aXZlPUZhbHNlKToKICAgICAgICBpZiByb3RhdGlvbiBpcyBOb25lOgogICAgICAgICAgICByb3RhdGlvbiA9IGM0ZC5WZWN0b3IoaCwgcCwgYikKICAgICAgICBlbGlmIHR5cGUocm90YXRpb24pIGlzIG5vdCBjNGQuVmVjdG9yOgogICAgICAgICAgICByb3RhdGlvbiA9IGM0ZC5WZWN0b3IoKnJvdGF0aW9uKQogICAgICAgIGlmIHJlbGF0aXZlOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuSURfQkFTRU9CSkVDVF9ST1RBVElPTl0gKz0gcm90YXRpb24KICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuSURfQkFTRU9CSkVDVF9ST1RBVElPTl0gPSByb3RhdGlvbgoKICAgIGRlZiBzZXRfZnJvemVuX3JvdGF0aW9uKHNlbGYsIGg9MCwgcD0wLCBiPTAsIHJvdGF0aW9uPU5vbmUsIHJlbGF0aXZlPUZhbHNlKToKICAgICAgICBpZiByb3RhdGlvbiBpcyBOb25lOgogICAgICAgICAgICByb3RhdGlvbiA9IGM0ZC5WZWN0b3IoaCwgcCwgYikKICAgICAgICBpZiByZWxhdGl2ZToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfRlJPWkVOX1JPVEFUSU9OXSArPSByb3RhdGlvbgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5JRF9CQVNFT0JKRUNUX0ZST1pFTl9ST1RBVElPTl0gPSByb3RhdGlvbgoKICAgIGRlZiBzZXRfc2NhbGUoc2VsZiwgc2NhbGU9MSwgcmVsYXRpdmU9RmFsc2UpOgogICAgICAgIGlmIHJlbGF0aXZlOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuSURfQkFTRU9CSkVDVF9TQ0FMRV0gKj0gc2NhbGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBzY2FsZSA9IGM0ZC5WZWN0b3Ioc2NhbGUsIHNjYWxlLCBzY2FsZSkKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfU0NBTEVdID0gc2NhbGUKCiAgICBkZWYgbW92ZShzZWxmLCB4PTAsIHk9MCwgej0wLCBwb3NpdGlvbj1Ob25lLCByZWxhdGl2ZT1UcnVlKToKICAgICAgICBpZiBwb3NpdGlvbiBpcyBOb25lOgogICAgICAgICAgICBwb3NpdGlvbiA9IGM0ZC5WZWN0b3IoeCwgeSwgeikKICAgICAgICBlbGlmIHR5cGUocG9zaXRpb24pIGlzIG5vdCBjNGQuVmVjdG9yOgogICAgICAgICAgICBwb3NpdGlvbiA9IGM0ZC5WZWN0b3IoKnBvc2l0aW9uKQogICAgICAgIGRlc2NyaXB0b3IgPSBjNGQuSURfQkFTRU9CSkVDVF9QT1NJVElPTgogICAgICAgIGFuaW1hdGlvbiA9IFZlY3RvckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY3JpcHRvciwgdmVjdG9yPXBvc2l0aW9uLCByZWxhdGl2ZT1yZWxhdGl2ZSkKICAgICAgICBpZiByZWxhdGl2ZToKICAgICAgICAgICAgc2VsZi5vYmpbZGVzY3JpcHRvcl0gKz0gcG9zaXRpb24KICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLm9ialtkZXNjcmlwdG9yXSA9IHBvc2l0aW9uCiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgoKICAgIGRlZiByb3RhdGUoc2VsZiwgaD0wLCBwPTAsIGI9MCwgcm90YXRpb249Tm9uZSk6CiAgICAgICAgaWYgcm90YXRpb24gaXMgTm9uZToKICAgICAgICAgICAgcm90YXRpb24gPSBjNGQuVmVjdG9yKGgsIHAsIGIpCiAgICAgICAgZWxpZiB0eXBlKHJvdGF0aW9uKSBpcyBub3QgYzRkLlZlY3RvcjoKICAgICAgICAgICAgcm90YXRpb24gPSBjNGQuVmVjdG9yKCpyb3RhdGlvbikKICAgICAgICBkZXNjcmlwdG9yID0gYzRkLklEX0JBU0VPQkpFQ1RfUk9UQVRJT04KICAgICAgICBhbmltYXRpb24gPSBWZWN0b3JBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NyaXB0b3IsIHZlY3Rvcj1yb3RhdGlvbiwgcmVsYXRpdmU9VHJ1ZSkKICAgICAgICBzZWxmLm9ialtkZXNjcmlwdG9yXSArPSByb3RhdGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgc2NhbGUoc2VsZiwgeD0wLCB5PTAsIHo9MCwgc2NhbGU9Tm9uZSk6CiAgICAgICAgaWYgc2NhbGUgaXMgTm9uZToKICAgICAgICAgICAgc2NhbGUgPSBjNGQuVmVjdG9yKHgsIHksIHopCiAgICAgICAgZWxpZiB0eXBlKHNjYWxlKSBpbiAodHVwbGUsIGxpc3QpOgogICAgICAgICAgICBzY2FsZSA9IGM0ZC5WZWN0b3IoKnNjYWxlKQogICAgICAgIGVsaWYgdHlwZShzY2FsZSkgaW4gKGludCwgZmxvYXQpOgogICAgICAgICAgICBzY2FsZSA9IGM0ZC5WZWN0b3Ioc2NhbGUsIHNjYWxlLCBzY2FsZSkKICAgICAgICBkZXNjcmlwdG9yID0gYzRkLklEX0JBU0VPQkpFQ1RfU0NBTEUKICAgICAgICBhbmltYXRpb24gPSBWZWN0b3JBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NyaXB0b3IsIHZlY3Rvcj1zY2FsZSwgcmVsYXRpdmU9VHJ1ZSwgbXVsdGlwbGljYXRpdmU9VHJ1ZSkKICAgICAgICBzZWxmLm9ialtkZXNjcmlwdG9yXSArPSBzY2FsZQogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgaW5zZXJ0X3RvX2RvY3VtZW50KHNlbGYpOgogICAgICAgIHNlbGYuZG9jdW1lbnQuSW5zZXJ0T2JqZWN0KHNlbGYub2JqKQoKICAgIGRlZiBnZXRfc2VnbWVudF9jb3VudChzZWxmKToKICAgICAgICAjIHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgc3BsaW5lIG9yIGEgc3BlY2lmaWMgc2VnbWVudAogICAgICAgIHNwbGluZV9oZWxwID0gYzRkLnV0aWxzLlNwbGluZUhlbHAoKQogICAgICAgIHNwbGluZV9oZWxwLkluaXRTcGxpbmVXaXRoKHNlbGYub2JqKQogICAgICAgIHNlZ21lbnRfY291bnQgPSBzcGxpbmVfaGVscC5HZXRTZWdtZW50Q291bnQoKQogICAgICAgIHJldHVybiBzZWdtZW50X2NvdW50CgogICAgZGVmIGdldF9sZW5ndGgoc2VsZiwgc2VnbWVudD1Ob25lKToKICAgICAgICAjIHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgc3BsaW5lIG9yIGEgc3BlY2lmaWMgc2VnbWVudAogICAgICAgIHNwbGluZV9oZWxwID0gYzRkLnV0aWxzLlNwbGluZUhlbHAoKQogICAgICAgIHNwbGluZV9oZWxwLkluaXRTcGxpbmVXaXRoKHNlbGYub2JqKQoKICAgICAgICBpZiBzZWdtZW50OgogICAgICAgICAgICBzZWdtZW50X2xlbmd0aCA9IHNwbGluZV9oZWxwLkdldFNlZ21lbnRMZW5ndGgoc2VnbWVudCkKICAgICAgICAgICAgcmV0dXJuIHNlZ21lbnRfbGVuZ3RoCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3BsaW5lX2xlbmd0aCA9IHNwbGluZV9oZWxwLkdldFNwbGluZUxlbmd0aCgpCiAgICAgICAgICAgIHJldHVybiBzcGxpbmVfbGVuZ3RoCgogICAgZGVmIGdldF9zcGxpbmVfc2VnbWVudF9sZW5ndGhzKHNlbGYpOgogICAgICAgICMgZ2V0IHRoZSBsZW5ndGggb2YgZWFjaCBzZWdtZW50CiAgICAgICAgc2VnbWVudF9sZW5ndGhzID0gW10KICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLmdldF9zZWdtZW50X2NvdW50KCkpOgogICAgICAgICAgICBzZWdtZW50X2xlbmd0aHMuYXBwZW5kKHNlbGYuZ2V0X2xlbmd0aChzZWdtZW50PWkpKQogICAgICAgIHJldHVybiBzZWdtZW50X2xlbmd0aHMKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICIiInVzZWQgdG8gc2V0IHRoZSB1bmlxdWUgcHJvcGVydGllcyBvZiBhIHNwZWNpZmljIG9iamVjdCIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgc29ydF9yZWxhdGlvbnNfYnlfcHJpb3JpdHkoc2VsZik6CiAgICAgICAgIiIic29ydHMgdGhlIHJlbGF0aW9ucyBieSBwcmlvcml0eSIiIgoKICAgICAgICAjIHJpZ2h0IG5vdyBpdCBvbHkgZW5zdXJlcyB0aGF0IHRoZSBhY3Rpb25zIGFyZSBpbnNlcnRlZCBhYm92ZSB0aGUgcmVsYXRpb25zCiAgICAgICAgIyBpbiB0aGUgZnV0dXJlIHdlIHdpbGwgaW1wbGVtZW50IHByaW9yaXR5IGFuZCBzb3J0aW5nIGJ5IHN1Yi14cHJlc3Npb24gZGVwZW5kZW5jaWVzCgogICAgICAgICMgZ2V0IG5vZGUgbWFzdGVyCiAgICAgICAgbWFzdGVyID0gc2VsZi5jdXN0b21fdGFnLm9iai5HZXROb2RlTWFzdGVyKCkKICAgICAgICBwYXJlbnQgPSBtYXN0ZXIuR2V0Um9vdCgpCgogICAgICAgICIiIgogICAgICAgICMgcmVzb3J0IGJ5IHBhcmVudCByZWZlcmVuY2UKICAgICAgICBmb3IgcmVsYXRpb24gaW4gc2VsZi5yZWxhdGlvbnM6CiAgICAgICAgICAgIGlmIHJlbGF0aW9uLnBhcmVudDoKICAgICAgICAgICAgICAgIHNlbGYucmVsYXRpb25zLnJlbW92ZShyZWxhdGlvbikKICAgICAgICAgICAgICAgIHBhcmVudF9pZHggPSBzZWxmLnJlbGF0aW9ucy5pbmRleChyZWxhdGlvbi5wYXJlbnQpCiAgICAgICAgICAgICAgICBzZWxmLnJlbGF0aW9ucy5pbnNlcnQocGFyZW50X2lkeCwgcmVsYXRpb24pCiAgICAgICAgZm9yIGFjdGlvbiBpbiBzZWxmLmFjdGlvbnM6CiAgICAgICAgICAgIGlmIGFjdGlvbi5wYXJlbnQ6CiAgICAgICAgICAgICAgICBzZWxmLmFjdGlvbnMucmVtb3ZlKGFjdGlvbikKICAgICAgICAgICAgICAgIHBhcmVudF9pZHggPSBzZWxmLmFjdGlvbnMuaW5kZXgoYWN0aW9uLnBhcmVudCkKICAgICAgICAgICAgICAgIHNlbGYuYWN0aW9ucy5pbnNlcnQocGFyZW50X2lkeCwgYWN0aW9uKQogICAgICAgICIiIgogICAgICAgIGlmIHNlbGYucmVsYXRpb25zOgogICAgICAgICAgICBmb3IgcmVsYXRpb24gaW4gc2VsZi5yZWxhdGlvbnM6CiAgICAgICAgICAgICAgICBtYXN0ZXIuSW5zZXJ0Rmlyc3QocGFyZW50LCByZWxhdGlvbi5vYmopCiAgICAgICAgaWYgc2VsZi5hY3Rpb25zOgogICAgICAgICAgICBmb3IgYWN0aW9uIGluIHNlbGYuYWN0aW9uczoKICAgICAgICAgICAgICAgIG1hc3Rlci5JbnNlcnRGaXJzdChwYXJlbnQsIGFjdGlvbi5vYmopCgoKY2xhc3MgVmlzaWJsZU9iamVjdChQcm90b09iamVjdCk6CiAgICAjIHZpc2libGUgb2JqZWN0cwoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2aXNpYmxlPVRydWUsIGNyZWF0aW9uPTAsICoqa3dhcmdzKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuY3JlYXRpb24gPSBjcmVhdGlvbgogICAgICAgIHNlbGYudmlzaWJsZSA9IHZpc2libGUKICAgICAgICBzZWxmLnNwZWNpZnlfdmlzaWJpbGl0eV9wYXJhbWV0ZXIoKQogICAgICAgIHNlbGYuaW5zZXJ0X3Zpc2liaWxpdHlfcGFyYW1ldGVyKCkKICAgICAgICBzZWxmLnNwZWNpZnlfdmlzaWJpbGl0eV9yZWxhdGlvbigpCiAgICAgICAgc2VsZi5zcGVjaWZ5X2xpdmVfYm91bmRpbmdfYm94X3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuaW5zZXJ0X2xpdmVfYm91bmRpbmdfYm94X3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuc3BlY2lmeV9saXZlX2JvdW5kaW5nX2JveF9yZWxhdGlvbigpCiAgICAgICAgc2VsZi5hZGRfYm91bmRpbmdfYm94X2luZm9ybWF0aW9uKCkKCiAgICBkZWYgc3BlY2lmeV9hY3Rpb25fcGFyYW1ldGVycyhzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHNwZWNpZnlfY3JlYXRpb25fcGFyYW1ldGVyKHNlbGYpOgogICAgICAgIHNlbGYuY3JlYXRpb25fcGFyYW1ldGVyID0gVUNvbXBsZXRpb24oCiAgICAgICAgICAgIG5hbWU9IkNyZWF0aW9uIiwgZGVmYXVsdF92YWx1ZT1zZWxmLmNyZWF0aW9uKQogICAgICAgIHNlbGYuYWN0aW9uX3BhcmFtZXRlcnMgKz0gW3NlbGYuY3JlYXRpb25fcGFyYW1ldGVyXQoKICAgIGRlZiBpbnNlcnRfYWN0aW9uX3BhcmFtZXRlcnMoc2VsZik6CiAgICAgICAgIiIiaW5zZXJ0cyB0aGUgc3BlY2lmaWVkIGFjdGlvbl9wYXJhbWV0ZXJzIGFzIHVzZXJkYXRhIiIiCiAgICAgICAgaWYgc2VsZi5hY3Rpb25fcGFyYW1ldGVyczoKICAgICAgICAgICAgc2VsZi5hY3Rpb25zX3VfZ3JvdXAgPSBVR3JvdXAoCiAgICAgICAgICAgICAgICAqc2VsZi5hY3Rpb25fcGFyYW1ldGVycywgdGFyZ2V0PXNlbGYub2JqLCBuYW1lPXNlbGYubmFtZSArICJBY3Rpb25zIikKCiAgICBkZWYgc3BlY2lmeV9hY3Rpb25zKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyBhY3Rpb25zIHRoYXQgY29vcmRpbmF0ZSBwYXJhbWV0ZXJzIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiBzcGVjaWZ5X2NyZWF0aW9uKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgY3JlYXRpb24gYWN0aW9uIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiBnZXRfY2xvbmUoc2VsZik6CiAgICAgICAgIiIiY2xvbmVzIGFuIG9iamVjdCBhbmQgaW5zZXJ0cyBpdCBpbnRvIHRoZSBzY2VuZSIiIgogICAgICAgIGNsb25lID0gc2VsZi5vYmouR2V0Q2xvbmUoKQogICAgICAgIHNlbGYuZG9jdW1lbnQuSW5zZXJ0T2JqZWN0KGNsb25lKQogICAgICAgIHJldHVybiBjbG9uZQoKICAgIGRlZiBnZXRfZWRpdGFibGUoc2VsZik6CiAgICAgICAgIiIicmV0dXJucyBhbiBlZGl0YWJsZSBjbG9uZSBvZiB0aGUgb2JqZWN0IiIiCiAgICAgICAgY2xvbmUgPSBzZWxmLmdldF9jbG9uZSgpCiAgICAgICAgZWRpdGFibGVfY2xvbmUgPSBjNGQudXRpbHMuU2VuZE1vZGVsaW5nQ29tbWFuZChjb21tYW5kPWM0ZC5NQ09NTUFORF9NQUtFRURJVEFCTEUsIGxpc3Q9WwogICAgICAgICAgICBjbG9uZV0sIG1vZGU9YzRkLk1PREVMSU5HQ09NTUFORE1PREVfQUxMLCBkb2M9c2VsZi5kb2N1bWVudClbMF0KICAgICAgICByZXR1cm4gZWRpdGFibGVfY2xvbmUKCiAgICBkZWYgYXR0YWNoX3RvKHNlbGYsIHRhcmdldCwgZGlyZWN0aW9uPSJmcm9udCIsIG9mZnNldD0wKToKICAgICAgICAiIiJwbGFjZXMgdGhlIG9iamVjdCBzdWNoIHRoYXQgdGhlIGJvdW5kaW5nIGJveGVzIHRvdWNoIGFsb25nIGEgZ2l2ZW4gZGlyZWN0aW9uIGFuZCBtYWtlcyBvYmplY3QgY2hpbGQgb2YgdGFyZ2V0IiIiCiAgICAgICAgYm91bmRpbmdfYm94ID0gc2VsZi5vYmouR2V0UmFkKCkKICAgICAgICBib3VuZGluZ19ib3hfcG9zaXRpb24gPSBzZWxmLm9iai5HZXRNcCgpCiAgICAgICAgYm91bmRpbmdfYm94X3RhcmdldCA9IHRhcmdldC5vYmouR2V0UmFkKCkKICAgICAgICBib3VuZGluZ19ib3hfcG9zaXRpb25fdGFyZ2V0ID0gdGFyZ2V0Lm9iai5HZXRNcCgpCiAgICAgICAgbmV3X3Bvc2l0aW9uID0gYm91bmRpbmdfYm94X3Bvc2l0aW9uX3RhcmdldCAtIGJvdW5kaW5nX2JveF9wb3NpdGlvbgogICAgICAgIGlmIGRpcmVjdGlvbiA9PSAidG9wIjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uLnkgKz0gYm91bmRpbmdfYm94X3RhcmdldC55ICsgYm91bmRpbmdfYm94LnkgKyBvZmZzZXQKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gImJvdHRvbSI6CiAgICAgICAgICAgIG5ld19wb3NpdGlvbi55IC09IGJvdW5kaW5nX2JveF90YXJnZXQueSArIGJvdW5kaW5nX2JveC55ICsgb2Zmc2V0CiAgICAgICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uLnggLT0gYm91bmRpbmdfYm94X3RhcmdldC54ICsgYm91bmRpbmdfYm94LnggKyBvZmZzZXQKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gInJpZ2h0IjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uLnggKz0gYm91bmRpbmdfYm94X3RhcmdldC54ICsgYm91bmRpbmdfYm94LnggKyBvZmZzZXQKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gImZyb250IjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uLnogLT0gYm91bmRpbmdfYm94X3RhcmdldC56ICsgYm91bmRpbmdfYm94LnogKyBvZmZzZXQKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gImJhY2siOgogICAgICAgICAgICBuZXdfcG9zaXRpb24ueiArPSBib3VuZGluZ19ib3hfdGFyZ2V0LnogKyBib3VuZGluZ19ib3gueiArIG9mZnNldAogICAgICAgIGlmIGRpcmVjdGlvbiA9PSAiY2VudGVyIjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uID0gYm91bmRpbmdfYm94X3Bvc2l0aW9uX3RhcmdldCAtIGJvdW5kaW5nX2JveF9wb3NpdGlvbgogICAgICAgIHNlbGYub2JqLkluc2VydFVuZGVyKHRhcmdldC5vYmopCiAgICAgICAgc2VsZi5zZXRfcG9zaXRpb24ocG9zaXRpb249bmV3X3Bvc2l0aW9uKQoKICAgIGRlZiBzcGVjaWZ5X3Zpc2liaWxpdHlfcGFyYW1ldGVyKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyB2aXNpYmlsaXR5IHBhcmFtZXRlciIiIgogICAgICAgIHNlbGYudmlzaWJpbGl0eV9wYXJhbWV0ZXIgPSBVQ2hlY2tCb3goCiAgICAgICAgICAgIG5hbWU9IlZpc2liaWxpdHkiLCBkZWZhdWx0X3ZhbHVlPXNlbGYudmlzaWJsZSkKCiAgICBkZWYgaW5zZXJ0X3Zpc2liaWxpdHlfcGFyYW1ldGVyKHNlbGYpOgogICAgICAgICIiImluc2VydHMgdGhlIHZpc2liaWxpdHkgcGFyYW1ldGVyIGFzIHVzZXJkYXRhIiIiCiAgICAgICAgc2VsZi52aXNpYmlsaXR5X3VfZ3JvdXAgPSBVR3JvdXAoCiAgICAgICAgICAgIHNlbGYudmlzaWJpbGl0eV9wYXJhbWV0ZXIsIHRhcmdldD1zZWxmLm9iaiwgbmFtZT0iVmlzaWJpbGl0eSIpCgogICAgZGVmIHNwZWNpZnlfdmlzaWJpbGl0eV9yZWxhdGlvbihzZWxmKToKICAgICAgICAiIiJsaW5rIHBhcmFtZXRlciB0byB2aXNpYmlsaXR5IiIiCiAgICAgICAgdmlzaWJpbGl0eV9yZWxhdGlvbiA9IFhSZWxhdGlvbihwYXJ0PXNlbGYsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtjNGQuSURfQkFTRU9CSkVDVF9WSVNJQklMSVRZX0VESVRPUiwgYzRkLklEX0JBU0VPQkpFQ1RfVklTSUJJTElUWV9SRU5ERVJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycz1bc2VsZi52aXNpYmlsaXR5X3BhcmFtZXRlcl0sIGZvcm11bGE9ZiIxLXtzZWxmLnZpc2liaWxpdHlfcGFyYW1ldGVyLm5hbWV9IikKCiAgICBkZWYgc3BlY2lmeV9saXZlX2JvdW5kaW5nX2JveF9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyBib3VuZGluZyBib3ggcGFyYW1ldGVycyIiIgogICAgICAgIHNlbGYud2lkdGhfcGFyYW1ldGVyID0gVUxlbmd0aChuYW1lPSJXaWR0aCIpCiAgICAgICAgc2VsZi5oZWlnaHRfcGFyYW1ldGVyID0gVUxlbmd0aChuYW1lPSJIZWlnaHQiKQogICAgICAgIHNlbGYuZGVwdGhfcGFyYW1ldGVyID0gVUxlbmd0aChuYW1lPSJEZXB0aCIpCiAgICAgICAgc2VsZi5jZW50ZXJfcGFyYW1ldGVyID0gVVZlY3RvcihuYW1lPSJDZW50ZXIiKQogICAgICAgIHNlbGYuY2VudGVyX3hfcGFyYW1ldGVyID0gVUxlbmd0aChuYW1lPSJDZW50ZXJYIikKICAgICAgICBzZWxmLmNlbnRlcl95X3BhcmFtZXRlciA9IFVMZW5ndGgobmFtZT0iQ2VudGVyWSIpCiAgICAgICAgc2VsZi5jZW50ZXJfel9wYXJhbWV0ZXIgPSBVTGVuZ3RoKG5hbWU9IkNlbnRlcloiKQogICAgICAgIHNlbGYubGl2ZV9ib3VuZGluZ19ib3hfcGFyYW1ldGVycyA9IFtzZWxmLndpZHRoX3BhcmFtZXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5oZWlnaHRfcGFyYW1ldGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlcHRoX3BhcmFtZXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jZW50ZXJfcGFyYW1ldGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNlbnRlcl94X3BhcmFtZXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jZW50ZXJfeV9wYXJhbWV0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2VudGVyX3pfcGFyYW1ldGVyXQoKICAgIGRlZiBpbnNlcnRfbGl2ZV9ib3VuZGluZ19ib3hfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICAiIiJpbnNlcnRzIHRoZSBib3VuZGluZyBib3ggcGFyYW1ldGVycyBhcyB1c2VyZGF0YSIiIgogICAgICAgIHNlbGYubGl2ZV9ib3VuZGluZ19ib3hfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgKnNlbGYubGl2ZV9ib3VuZGluZ19ib3hfcGFyYW1ldGVycywgdGFyZ2V0PXNlbGYub2JqLCBuYW1lPSJMaXZlQm91bmRpbmdCb3giKQoKICAgIGRlZiBzcGVjaWZ5X2xpdmVfYm91bmRpbmdfYm94X3JlbGF0aW9uKHNlbGYpOgogICAgICAgICIiImZlZWQgYm91bmRpbmcgYm94IGluZm9ybWF0aW9uIGludG8gcGFyYW1ldGVycyIiIgogICAgICAgIGxpdmVfYm91bmRpbmdfYm94X3JlbGF0aW9uID0gWEJvdW5kaW5nQm94KHNlbGYsIHRhcmdldD1zZWxmLCB3aWR0aF9wYXJhbWV0ZXI9c2VsZi53aWR0aF9wYXJhbWV0ZXIsIGhlaWdodF9wYXJhbWV0ZXI9c2VsZi5oZWlnaHRfcGFyYW1ldGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoX3BhcmFtZXRlcj1zZWxmLmRlcHRoX3BhcmFtZXRlciwgY2VudGVyX3BhcmFtZXRlcj1zZWxmLmNlbnRlcl9wYXJhbWV0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyX3hfcGFyYW1ldGVyPXNlbGYuY2VudGVyX3hfcGFyYW1ldGVyLCBjZW50ZXJfeV9wYXJhbWV0ZXI9c2VsZi5jZW50ZXJfeV9wYXJhbWV0ZXIsIGNlbnRlcl96X3BhcmFtZXRlcj1zZWxmLmNlbnRlcl96X3BhcmFtZXRlcikKCiAgICBkZWYgYWRkX2JvdW5kaW5nX2JveF9pbmZvcm1hdGlvbihzZWxmKToKICAgICAgICBib3VuZGluZ19ib3hfY2VudGVyLCBib3VuZGluZ19yYWRpdXMgPSBjNGQudXRpbHMuR2V0QkJveCgKICAgICAgICAgICAgc2VsZi5vYmosIHNlbGYub2JqLkdldE1nKCkpCiAgICAgICAgc2VsZi53aWR0aCA9IGJvdW5kaW5nX3JhZGl1cy54ICogMgogICAgICAgIHNlbGYuaGVpZ2h0ID0gYm91bmRpbmdfcmFkaXVzLnkgKiAyCiAgICAgICAgc2VsZi5kZXB0aCA9IGJvdW5kaW5nX3JhZGl1cy56ICogMgogICAgICAgIHNlbGYuY2VudGVyID0gYm91bmRpbmdfYm94X2NlbnRlcgoKICAgIGRlZiBnZXRfY2VudGVyKHNlbGYpOgogICAgICAgICMgcmV0dXJucyB0aGUgY2VudGVyIHBvc2l0aW9uIGZyb20gdGhlIGxpdmUgYm91bmRpbmcgYm94IGluZm9ybWF0aW9uCiAgICAgICAgY2VudGVyX3Bvc2l0aW9uID0gc2VsZi5vYmouR2V0TXAoKSAqIHNlbGYub2JqLkdldE1nKCkKICAgICAgICByZXR1cm4gY2VudGVyX3Bvc2l0aW9uCgogICAgZGVmIGdldF9yYWRpdXMoc2VsZik6CiAgICAgICAgIyByZXR1cm5zIHRoZSByYWRpdXMgZnJvbSB0aGUgbGl2ZSBib3VuZGluZyBib3ggaW5mb3JtYXRpb24KICAgICAgICBfXywgcmFkaXVzID0gYzRkLnV0aWxzLkdldEJCb3goc2VsZi5vYmosIHNlbGYub2JqLkdldE1nKCkpCiAgICAgICAgcmV0dXJuIHJhZGl1cwoKICAgIGRlZiBnZXRfZGlhbWV0ZXIoc2VsZik6CiAgICAgICAgIyByZXR1cm5zIHRoZSBkaWFtZXRlciBmcm9tIHRoZSBsb25nZXN0IHJhZGl1cyBkaW1lbnNpb24KICAgICAgICByYWRpdXMgPSBzZWxmLmdldF9yYWRpdXMoKQogICAgICAgIGRpYW1ldGVyID0gbWF4KHJhZGl1cy54LCByYWRpdXMueSwgcmFkaXVzLnopICogMgogICAgICAgIHJldHVybiBkaWFtZXRlcgoKICAgIGRlZiByZWdpc3Rlcl9jb25uZWN0aW9ucyhzZWxmLCBjb25uZWN0aW9ucyk6CiAgICAgICAgIyBzYXZlcyB0aGUgY29ubmVjdGlvbnMgZm9yIGxhdGVyIGZ1bmN0aW9uYWxpdHkgb2YgVW5Db25uZWN0CiAgICAgICAgc2VsZi5jb25uZWN0aW9ucyA9IGNvbm5lY3Rpb25zCgogICAgZGVmIGNyZWF0ZShzZWxmLCBjb21wbGV0aW9uPTEpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgY3JlYXRpb24gYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuY3JlYXRpb25fcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBTY2FsYXJBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NfaWQsIHZhbHVlX2Zpbj1jb21wbGV0aW9uKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29tcGxldGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgdW5fY3JlYXRlKHNlbGYsIGNvbXBsZXRpb249MCk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSB1bmNyZWF0aW9uIGFuaW1hdGlvbiIiIgogICAgICAgIGRlc2NfaWQgPSBzZWxmLmNyZWF0aW9uX3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIGFsaWduX3RvX3NwbGluZShzZWxmLCBzcGxpbmU9Tm9uZSk6CiAgICAgICAgc2VsZi5hbGlnbl90b19zcGxpbmVfdGFnID0gQWxpZ25Ub1NwbGluZVRhZyh0YXJnZXQ9c2VsZiwgc3BsaW5lPXNwbGluZSkKCiAgICBkZWYgd3JhcF9hcm91bmQoc2VsZiwgdGFyZ2V0PU5vbmUpOgogICAgICAgIHNlbGYuc2hyaW5rX3dyYXAgPSBoZWxwZXJfb2JqZWN0cy5TaHJpbmtXcmFwKHRhcmdldD10YXJnZXQpCiAgICAgICAgc2VsZi5zaHJpbmtfd3JhcC5vYmouSW5zZXJ0VW5kZXIoc2VsZi5vYmopCgogICAgZGVmIG1vdmVfYXhpcyhzZWxmLCBwb3NpdGlvbj0oMCwgMCwgMCkpOgogICAgICAgICIiIm1vdmVzIHRoZSBheGlzIHdpdGhvdXQgbW92aW5nIHRoZSBnZW9tZXRyeSIiIgogICAgICAgIHZlYyA9IGM0ZC5WZWN0b3IoKnBvc2l0aW9uKQogICAgICAgIHByaW50KHZlYykKICAgICAgICBwcmludChwb3NpdGlvbikKICAgICAgICBwb2ludHMgPSBzZWxmLm9iai5HZXRBbGxQb2ludHMoKQogICAgICAgIGZvciBpLCBwb2ludCBpbiBlbnVtZXJhdGUocG9pbnRzKToKICAgICAgICAgICAgcG9pbnRzW2ldID0gcG9pbnQgLSB2ZWMKICAgICAgICAgICAgaWYgaSA8IDM6CiAgICAgICAgICAgICAgICBwcmludChwb2ludHNbaV0gLSBwb2ludCkKICAgICAgICBzZWxmLm9iai5TZXRBYnNQb3Moc2VsZi5vYmouR2V0QWJzUG9zKCkgKyB2ZWMpCiAgICAgICAgc2VsZi5vYmouU2V0QWxsUG9pbnRzKHBvaW50cykKICAgICAgICBzZWxmLm9iai5NZXNzYWdlKGM0ZC5NU0dfVVBEQVRFKQogICAgICAgIGM0ZC5FdmVudEFkZCgpCgoKY2xhc3MgQ3VzdG9tT2JqZWN0KFZpc2libGVPYmplY3QpOgogICAgIiIidGhpcyBjbGFzcyBpcyB1c2VkIHRvIGNyZWF0ZSBjdXN0b20gb2JqZWN0cyB0aGF0IGFyZSBiYXNpY2FsbHkKICAgIGdyb3VwcyB3aXRoIGNvdXBsaW5nIG9mIHRoZSBjaGlsZHJlbnMgcGFyYW1ldGVycyB0aHJvdWdoIHhwcmVzc28iIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgZGlhbWV0ZXI9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgc2VsZi5wYXJ0cyA9IFtdCiAgICAgICAgc2VsZi5zcGVjaWZ5X3BhcnRzKCkKICAgICAgICBzZWxmLmluc2VydF9wYXJ0cygpCiAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gW10KICAgICAgICBzZWxmLnNwZWNpZnlfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5pbnNlcnRfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X3JlbGF0aW9ucygpCiAgICAgICAgc2VsZi5hY3Rpb25fcGFyYW1ldGVycyA9IFtdCiAgICAgICAgc2VsZi5zcGVjaWZ5X2FjdGlvbl9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLnNwZWNpZnlfY3JlYXRpb25fcGFyYW1ldGVyKCkKICAgICAgICBzZWxmLmluc2VydF9hY3Rpb25fcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X2FjdGlvbnMoKQogICAgICAgIHNlbGYuc3BlY2lmeV9jcmVhdGlvbigpCiAgICAgICAgc2VsZi5kaWFtZXRlciA9IGRpYW1ldGVyCiAgICAgICAgc2VsZi5hZGRfYm91bmRpbmdfYm94X2luZm9ybWF0aW9uKCkKICAgICAgICBzZWxmLnNwZWNpZnlfYm91bmRpbmdfYm94X3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuaW5zZXJ0X2JvdW5kaW5nX2JveF9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLnNwZWNpZnlfYm91bmRpbmdfYm94X3JlbGF0aW9ucygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X3Zpc2liaWxpdHlfaW5oZXJpdGFuY2VfcmVsYXRpb25zKCkKICAgICAgICBzZWxmLnNwZWNpZnlfcG9zaXRpb25faW5oZXJpdGFuY2UoKQogICAgICAgIHNlbGYuc29ydF9yZWxhdGlvbnNfYnlfcHJpb3JpdHkoKQoKICAgIGRlZiBzcGVjaWZ5X2NyZWF0aW9uKHNlbGYpOgogICAgICAgICIiInVzZWQgdG8gc3BlY2lmeSB0aGUgdW5pcXVlIGNyZWF0aW9uIGFuaW1hdGlvbiBmb3IgZWFjaCBpbmRpdmlkdWFsIGN1c3RvbSBvYmplY3QiIiIKICAgICAgICBwYXNzCgogICAgZGVmIGluaGVyaXRfY3JlYXRpb24oc2VsZik6CiAgICAgICAgIiIiaW5oZXJpdGluZyBjcmVhdGlvbiBmcm9tIHBhcnRzIiIiCiAgICAgICAgbW92ZW1lbnRzID0gW01vdmVtZW50KHBhcnQuY3JlYXRpb25fcGFyYW1ldGVyLCAoMCwgMSksIHBhcnQ9cGFydCkKICAgICAgICAgICAgICAgICAgICAgZm9yIHBhcnQgaW4gc2VsZi5wYXJ0c10KICAgICAgICBzZWxmLmNyZWF0aW9uX2FjdGlvbiA9IFhBY3Rpb24oKm1vdmVtZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGNvbXBsZXRpb25fcGFyYW1ldGVyPXNlbGYuY3JlYXRpb25fcGFyYW1ldGVyLCBuYW1lPSJDcmVhdGlvbiIpCgogICAgZGVmIHNwZWNpZnlfcG9zaXRpb25faW5oZXJpdGFuY2Uoc2VsZik6CiAgICAgICAgIiIidXNlZCB0byBzcGVjaWZ5IGhvdyB0aGUgcG9zaXRpb24gc2hvdWxkIGJlIGRldGVybWluZWQiIiIKICAgICAgICBwYXNzCgogICAgQGFic3RyYWN0bWV0aG9kCiAgICBkZWYgc3BlY2lmeV9wYXJ0cyhzZWxmKToKICAgICAgICAiIiJzYXZlIHBhcnRzIGFzIGF0dHJpYnV0ZXMgYW5kIHdyaXRlIHRoZW0gdG8gc2VsZi5wYXJ0cyIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgaW5zZXJ0X3BhcnRzKHNlbGYpOgogICAgICAgICIiImluc2VydHMgdGhlIHBhcnRzIGFzIGNoaWxkcmVuIiIiCiAgICAgICAgZm9yIHBhcnQgaW4gc2VsZi5wYXJ0czoKICAgICAgICAgICAgIyBjaGVjayBpZiBwYXJ0IGlzIG5vdCBhbHJlYWR5IGNoaWxkIHNvIGV4aXN0aW5nIGhpZXJhcmNoaWVzIHdvbid0IGJlIGRpc3R1cmJlZAogICAgICAgICAgICBpZiBub3QgcGFydC5vYmouR2V0VXAoKToKICAgICAgICAgICAgICAgIHBhcnQub2JqLkluc2VydFVuZGVyKHNlbGYub2JqKQogICAgICAgICAgICAgICAgcGFydC5wYXJlbnQgPSBzZWxmCiAgICAgICAgICAgICMgY2hlY2sgZm9yIG1lbWJyYW5lcwogICAgICAgICAgICBpZiBoYXNhdHRyKHBhcnQsICJtZW1icmFuZSIpOgogICAgICAgICAgICAgICAgcGFydC5tZW1icmFuZS5vYmouSW5zZXJ0VW5kZXIoc2VsZi5vYmopCiAgICAgICAgICAgICAgICBwYXJ0Lm1lbWJyYW5lLnBhcmVudCA9IHNlbGYKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT251bGwpCgogICAgZGVmIHNwZWNpZnlfdmlzaWJpbGl0eV9pbmhlcml0YW5jZV9yZWxhdGlvbnMoc2VsZik6CiAgICAgICAgIiIiaW5oZXJpdHMgdmlzaWJpbGl0eSB0byBwYXJ0cyIiIgogICAgICAgIHZpc2liaWxpdHlfcmVsYXRpb25zID0gW10KICAgICAgICBmb3IgcGFydCBpbiBzZWxmLnBhcnRzOgogICAgICAgICAgICBpZiBoYXNhdHRyKHBhcnQsICJ2aXNpYmlsaXR5X3BhcmFtZXRlciIpIGFuZCBub3QgaXNpbnN0YW5jZShwYXJ0LCBlZmZlY3Rfb2JqZWN0cy5Nb3JwaGVyKToKICAgICAgICAgICAgICAgIHZpc2liaWxpdHlfcmVsYXRpb24gPSBYSWRlbnRpdHkoCiAgICAgICAgICAgICAgICAgICAgcGFydD1wYXJ0LCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bcGFydC52aXNpYmlsaXR5X3BhcmFtZXRlci5kZXNjX2lkXSwgcGFyYW1ldGVyPXNlbGYudmlzaWJpbGl0eV9wYXJhbWV0ZXIsIG5hbWU9IlZpc2liaWxpdHlJbmhlcml0YW5jZSIpCiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5X3JlbGF0aW9ucy5hcHBlbmQodmlzaWJpbGl0eV9yZWxhdGlvbikKCiAgICBkZWYgc3BlY2lmeV9ib3VuZGluZ19ib3hfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICAiIiJzcGVjaWZpZXMgYm91bmRpbmcgYm94IHBhcmFtZXRlcnMiIiIKICAgICAgICBkZWZhdWx0X2RpYW1ldGVyID0gc2VsZi5kaWFtZXRlciBpZiBzZWxmLmRpYW1ldGVyIGVsc2UgbWF4KAogICAgICAgICAgICBzZWxmLndpZHRoLCBzZWxmLmhlaWdodCwgc2VsZi5kZXB0aCkKICAgICAgICBzZWxmLmRpYW1ldGVyX3BhcmFtZXRlciA9IFVMZW5ndGgoCiAgICAgICAgICAgIG5hbWU9IkRpYW1ldGVyIiwgZGVmYXVsdF92YWx1ZT1kZWZhdWx0X2RpYW1ldGVyKQogICAgICAgIHNlbGYuZGVmYXVsdF93aWR0aF9wYXJhbWV0ZXIgPSBVTGVuZ3RoKAogICAgICAgICAgICBuYW1lPSJEZWZhdWx0V2lkdGgiLCBkZWZhdWx0X3ZhbHVlPXNlbGYud2lkdGgpCiAgICAgICAgc2VsZi5kZWZhdWx0X2hlaWdodF9wYXJhbWV0ZXIgPSBVTGVuZ3RoKAogICAgICAgICAgICBuYW1lPSJEZWZhdWx0SGVpZ2h0IiwgZGVmYXVsdF92YWx1ZT1zZWxmLmhlaWdodCkKICAgICAgICBzZWxmLmRlZmF1bHRfZGVwdGhfcGFyYW1ldGVyID0gVUxlbmd0aCgKICAgICAgICAgICAgbmFtZT0iRGVmYXVsdERlcHRoIiwgZGVmYXVsdF92YWx1ZT1zZWxmLmRlcHRoKQogICAgICAgIHNlbGYuYm91bmRpbmdfYm94X3BhcmFtZXRlcnMgPSBbc2VsZi5kaWFtZXRlcl9wYXJhbWV0ZXIsIHNlbGYuZGVmYXVsdF93aWR0aF9wYXJhbWV0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlZmF1bHRfaGVpZ2h0X3BhcmFtZXRlciwgc2VsZi5kZWZhdWx0X2RlcHRoX3BhcmFtZXRlcl0KCiAgICBkZWYgaW5zZXJ0X2JvdW5kaW5nX2JveF9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgICIiImluc2VydHMgdGhlIGJvdW5kaW5nIGJveCBwYXJhbWV0ZXJzIiIiCiAgICAgICAgc2VsZi5ib3VuZGluZ19ib3hfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgKnNlbGYuYm91bmRpbmdfYm94X3BhcmFtZXRlcnMsIHRhcmdldD1zZWxmLm9iaiwgbmFtZT0iQm91bmRpbmdCb3giKQoKICAgIGRlZiBzcGVjaWZ5X2JvdW5kaW5nX2JveF9yZWxhdGlvbnMoc2VsZik6CiAgICAgICAgIiIiZ2l2ZXMgdGhlIGN1c3RvbSBvYmplY3QgYmFzaWMgY29udHJvbCBvdmVyIHRoZSBib3VuZGluZyBib3ggZGlhbWV0ZXIiIiIKICAgICAgICBkaWFtZXRlcl9yZWxhdGlvbiA9IFhSZWxhdGlvbihwYXJ0PXNlbGYsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtTQ0FMRV9YLCBTQ0FMRV9ZLCBTQ0FMRV9aXSwgcGFyYW1ldGVycz1bc2VsZi5kaWFtZXRlcl9wYXJhbWV0ZXIsIHNlbGYuZGVmYXVsdF93aWR0aF9wYXJhbWV0ZXIsIHNlbGYuZGVmYXVsdF9oZWlnaHRfcGFyYW1ldGVyLCBzZWxmLmRlZmF1bHRfZGVwdGhfcGFyYW1ldGVyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtdWxhPWYie3NlbGYuZGlhbWV0ZXJfcGFyYW1ldGVyLm5hbWV9L21heCh7c2VsZi5kZWZhdWx0X3dpZHRoX3BhcmFtZXRlci5uYW1lfTttYXgoe3NlbGYuZGVmYXVsdF9oZWlnaHRfcGFyYW1ldGVyLm5hbWV9O3tzZWxmLmRlZmF1bHRfZGVwdGhfcGFyYW1ldGVyLm5hbWV9KSkiKQoKCmNsYXNzIE1lbWJyYW5lKEN1c3RvbU9iamVjdCk6CiAgICAiIiJjcmVhdGVzIGEgbWVtYnJhbmUgZm9yIGFueSBnaXZlbiBzcGxpbmUgdXNpbmcgdGhlIGV4dHJ1ZGUgYW5kIGluc3RhbmNlIG9iamVjdCIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzcGxpbmUsIHRoaWNrbmVzcz0wLCBmaWxsZWQ9MCwgY29sb3I9V0hJVEUsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnNwbGluZSA9IHNwbGluZQogICAgICAgIHNlbGYudGhpY2tuZXNzID0gdGhpY2tuZXNzCiAgICAgICAgc2VsZi5maWxsZWQgPSBmaWxsZWQKICAgICAgICBzZWxmLmNvbG9yID0gY29sb3IKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgICMgc2VsZi5pbnNlcnRfdW5kZXJfc3BsaW5lKCkKCiAgICBkZWYgaW5zZXJ0X3VuZGVyX3NwbGluZShzZWxmKToKICAgICAgICBzZWxmLm9iai5JbnNlcnRVbmRlcihzZWxmLnNwbGluZS5vYmopCgogICAgZGVmIHNwZWNpZnlfcGFydHMoc2VsZik6CiAgICAgICAgc2VsZi5pbnN0YW5jZSA9IGhlbHBlcl9vYmplY3RzLkluc3RhbmNlKHNlbGYuc3BsaW5lKQogICAgICAgIHNlbGYuZXh0cnVkZSA9IHNvbGlkX29iamVjdHMuRXh0cnVkZShzZWxmLmluc3RhbmNlLCBjb2xvcj1zZWxmLmNvbG9yKQogICAgICAgIHNlbGYucGFydHMgKz0gW3NlbGYuZXh0cnVkZSwgc2VsZi5pbnN0YW5jZV0KCiAgICBkZWYgc3BlY2lmeV9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgIHNlbGYudGhpY2tuZXNzX3BhcmFtZXRlciA9IFVMZW5ndGgoCiAgICAgICAgICAgIG5hbWU9IlRoaWNrbmVzc1BhcmFtZXRlciIsIGRlZmF1bHRfdmFsdWU9c2VsZi50aGlja25lc3MpCiAgICAgICAgc2VsZi5maWxsX3BhcmFtZXRlciA9IFVDb21wbGV0aW9uKAogICAgICAgICAgICBuYW1lPSJGaWxsIiwgZGVmYXVsdF92YWx1ZT1zZWxmLmZpbGxlZCkKICAgICAgICBzZWxmLnBhcmFtZXRlcnMgKz0gW3NlbGYudGhpY2tuZXNzX3BhcmFtZXRlciwgc2VsZi5maWxsX3BhcmFtZXRlcl0KCiAgICBkZWYgc3BlY2lmeV9yZWxhdGlvbnMoc2VsZik6CiAgICAgICAgdGhpY2tuZXNzX3JlbGF0aW9uID0gWElkZW50aXR5KHBhcnQ9c2VsZi5leHRydWRlLCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bc2VsZi5leHRydWRlLmRlc2NfaWRzWyJvZmZzZXQiXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj1zZWxmLnRoaWNrbmVzc19wYXJhbWV0ZXIpCiAgICAgICAgZmlsbF9pbmhlcml0YW5jZSA9IFhJZGVudGl0eShwYXJ0PXNlbGYuZXh0cnVkZSwgd2hvbGU9c2VsZiwgZGVzY19pZHM9W3NlbGYuZXh0cnVkZS5maWxsX3BhcmFtZXRlci5kZXNjX2lkXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj1zZWxmLmZpbGxfcGFyYW1ldGVyKQogICAgICAgICNtb3NwbGluZV9jb3JyZWN0aW9uID0gWENvcnJlY3RNb1NwbGluZVRyYW5zZm9ybSgKICAgICAgICAjICAgIHNlbGYuaW5zdGFuY2UsIHRhcmdldD1zZWxmKQoKICAgIGRlZiBzcGVjaWZ5X2NyZWF0aW9uKHNlbGYpOgogICAgICAgIGNyZWF0aW9uX2FjdGlvbiA9IFhBY3Rpb24oCiAgICAgICAgICAgIE1vdmVtZW50KHNlbGYuZmlsbF9wYXJhbWV0ZXIsICgwLCAxKSksCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBjb21wbGV0aW9uX3BhcmFtZXRlcj1zZWxmLmNyZWF0aW9uX3BhcmFtZXRlciwgbmFtZT0iQ3JlYXRpb24iKQoKICAgIGRlZiBmaWxsKHNlbGYsIG9wYWNpdHkpOgogICAgICAgIHJldHVybiBzZWxmLmNyZWF0ZShvcGFjaXR5KQoKICAgIGRlZiB1bl9maWxsKHNlbGYsIG9wYWNpdHk9MCk6CiAgICAgICAgcmV0dXJuIHNlbGYuY3JlYXRlKG9wYWNpdHkpCgoKY2xhc3MgTGluZU9iamVjdChWaXNpYmxlT2JqZWN0KToKICAgICIiImxpbmUgb2JqZWN0cyBjb25zaXN0IG9mIHNwbGluZXMgYW5kIG9ubHkgcmVxdWlyZSBhIHNrZXRjaCBtYXRlcmlhbCIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb2xvcj1XSElURSwgcGxhbmU9Inh5IiwgYXJyb3dfc3RhcnQ9RmFsc2UsIGFycm93X2VuZD1GYWxzZSwgZHJhd19jb21wbGV0aW9uPTAsIG9wYWNpdHk9MSwgaGVscGVyX21vZGU9RmFsc2UsIGRyYXdfb3JkZXI9ImxvbmdfdG9fc2hvcnQiLCBmaWxsZWQ9RmFsc2UsIGZpbGxfY29sb3I9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgc2VsZi5jb2xvciA9IGNvbG9yCiAgICAgICAgc2VsZi5wbGFuZSA9IHBsYW5lCiAgICAgICAgc2VsZi5hcnJvd19zdGFydCA9IGFycm93X3N0YXJ0CiAgICAgICAgc2VsZi5hcnJvd19lbmQgPSBhcnJvd19lbmQKICAgICAgICBzZWxmLmRyYXdfY29tcGxldGlvbiA9IGRyYXdfY29tcGxldGlvbgogICAgICAgIHNlbGYub3BhY2l0eSA9IG9wYWNpdHkKICAgICAgICBzZWxmLmRyYXdfb3JkZXIgPSBkcmF3X29yZGVyCiAgICAgICAgaWYgbm90IGhlbHBlcl9tb2RlOgogICAgICAgICAgICBzZWxmLnNldF9za2V0Y2hfbWF0ZXJpYWwoKQogICAgICAgICAgICBzZWxmLnNldF9za2V0Y2hfdGFnKCkKICAgICAgICAgICAgc2VsZi5za2V0Y2hfcGFyYW1ldGVyX3NldHVwKCkKICAgICAgICAgICAgc2VsZi5zZXRfcGxhbmUoKQogICAgICAgICAgICBzZWxmLnNwbGluZV9sZW5ndGhfcGFyYW1ldGVyX3NldHVwKCkKICAgICAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gW10KICAgICAgICAgICAgc2VsZi5zcGVjaWZ5X3BhcmFtZXRlcnMoKQogICAgICAgICAgICBzZWxmLmluc2VydF9wYXJhbWV0ZXJzKCkKICAgICAgICAgICAgc2VsZi5zcGVjaWZ5X3JlbGF0aW9ucygpCiAgICAgICAgICAgIHNlbGYuYWN0aW9uX3BhcmFtZXRlcnMgPSBbXQogICAgICAgICAgICBzZWxmLnNwZWNpZnlfYWN0aW9uX3BhcmFtZXRlcnMoKQogICAgICAgICAgICBzZWxmLnNwZWNpZnlfY3JlYXRpb25fcGFyYW1ldGVyKCkKICAgICAgICAgICAgc2VsZi5pbnNlcnRfYWN0aW9uX3BhcmFtZXRlcnMoKQogICAgICAgICAgICBzZWxmLnNwZWNpZnlfYWN0aW9ucygpCiAgICAgICAgICAgIHNlbGYuc3BlY2lmeV9jcmVhdGlvbigpCiAgICAgICAgICAgIHNlbGYuc29ydF9yZWxhdGlvbnNfYnlfcHJpb3JpdHkoKQogICAgICAgIHNlbGYuZmlsbGVkID0gZmlsbGVkCiAgICAgICAgc2VsZi5maWxsX2NvbG9yID0gZmlsbF9jb2xvcgogICAgICAgIGlmIHNlbGYuZmlsbGVkOgogICAgICAgICAgICBzZWxmLmNyZWF0ZV9tZW1icmFuZSgpCgogICAgZGVmIGNyZWF0ZV9tZW1icmFuZShzZWxmKToKICAgICAgICBpZiBzZWxmLmZpbGxfY29sb3I6CiAgICAgICAgICAgIGNvbG9yID0gc2VsZi5maWxsX2NvbG9yCiAgICAgICAgZWxzZToKICAgICAgICAgICAgY29sb3IgPSBzZWxmLmNvbG9yCgogICAgICAgIHNlbGYubWVtYnJhbmUgPSBNZW1icmFuZSgKICAgICAgICAgICAgc2VsZiwgbmFtZT1zZWxmLm5hbWUgKyAiTWVtYnJhbmUiLCBjcmVhdGlvbj1UcnVlLCBjb2xvcj1jb2xvcikKCiAgICBkZWYgc3BsaW5lX2xlbmd0aF9wYXJhbWV0ZXJfc2V0dXAoc2VsZik6CiAgICAgICAgc2VsZi5zcGVjaWZ5X3NwbGluZV9sZW5ndGhfcGFyYW1ldGVyKCkKICAgICAgICBzZWxmLmluc2VydF9zcGxpbmVfbGVuZ3RoX3BhcmFtZXRlcigpCiAgICAgICAgc2VsZi5zcGVjaWZ5X3NwbGluZV9sZW5ndGhfcmVsYXRpb24oKQoKICAgIGRlZiBza2V0Y2hfcGFyYW1ldGVyX3NldHVwKHNlbGYpOgogICAgICAgIHNlbGYuc3BlY2lmeV9za2V0Y2hfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5pbnNlcnRfc2tldGNoX3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuc3BlY2lmeV9za2V0Y2hfcmVsYXRpb25zKCkKCiAgICBkZWYgc3BlY2lmeV9jcmVhdGlvbihzZWxmKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIGNyZWF0aW9uIGFjdGlvbiIiIgogICAgICAgIGNyZWF0aW9uX2FjdGlvbiA9IFhBY3Rpb24oCiAgICAgICAgICAgIE1vdmVtZW50KHNlbGYuZHJhd19wYXJhbWV0ZXIsICgwLCAxKSksCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBjb21wbGV0aW9uX3BhcmFtZXRlcj1zZWxmLmNyZWF0aW9uX3BhcmFtZXRlciwgbmFtZT0iQ3JlYXRpb24iKQogICAgICAgIHNlbGYuYWN0aW9ucy5hcHBlbmQoY3JlYXRpb25fYWN0aW9uKQoKICAgIGRlZiBzZXRfc2tldGNoX21hdGVyaWFsKHNlbGYpOgogICAgICAgIHNlbGYuc2tldGNoX21hdGVyaWFsID0gU2tldGNoTWF0ZXJpYWwoCiAgICAgICAgICAgIG5hbWU9c2VsZi5fX2NsYXNzX18uX19uYW1lX18sIGRyYXdfb3JkZXI9c2VsZi5kcmF3X29yZGVyLCBjb2xvcj1zZWxmLmNvbG9yLCBhcnJvd19zdGFydD1zZWxmLmFycm93X3N0YXJ0LCBhcnJvd19lbmQ9c2VsZi5hcnJvd19lbmQpCgogICAgZGVmIHNldF9za2V0Y2hfdGFnKHNlbGYpOgogICAgICAgIHNlbGYuc2tldGNoX3RhZyA9IFNrZXRjaFRhZyh0YXJnZXQ9c2VsZiwgbWF0ZXJpYWw9c2VsZi5za2V0Y2hfbWF0ZXJpYWwpCgogICAgZGVmIHNwZWNpZnlfc2tldGNoX3BhcmFtZXRlcnMoc2VsZik6CiAgICAgICAgc2VsZi5kcmF3X3BhcmFtZXRlciA9IFVDb21wbGV0aW9uKAogICAgICAgICAgICBuYW1lPSJEcmF3IiwgZGVmYXVsdF92YWx1ZT1zZWxmLmRyYXdfY29tcGxldGlvbikKICAgICAgICBzZWxmLm9wYWNpdHlfcGFyYW1ldGVyID0gVUNvbXBsZXRpb24oCiAgICAgICAgICAgIG5hbWU9Ik9wYWNpdHkiLCBkZWZhdWx0X3ZhbHVlPXNlbGYub3BhY2l0eSkKICAgICAgICBzZWxmLmNvbG9yX3BhcmFtZXRlciA9IFVDb2xvcigKICAgICAgICAgICAgbmFtZT0iQ29sb3IiLCBkZWZhdWx0X3ZhbHVlPXNlbGYuY29sb3IpCiAgICAgICAgc2VsZi5za2V0Y2hfcGFyYW1ldGVycyA9IFtzZWxmLmRyYXdfcGFyYW1ldGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vcGFjaXR5X3BhcmFtZXRlciwgc2VsZi5jb2xvcl9wYXJhbWV0ZXJdCgogICAgZGVmIGluc2VydF9za2V0Y2hfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICBzZWxmLmRyYXdfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgKnNlbGYuc2tldGNoX3BhcmFtZXRlcnMsIHRhcmdldD1zZWxmLm9iaiwgbmFtZT0iU2tldGNoIikKCiAgICBkZWYgc3BlY2lmeV9za2V0Y2hfcmVsYXRpb25zKHNlbGYpOgogICAgICAgIGRyYXdfcmVsYXRpb24gPSBYSWRlbnRpdHkocGFydD1zZWxmLnNrZXRjaF9tYXRlcmlhbCwgd2hvbGU9c2VsZiwgZGVzY19pZHM9W3NlbGYuc2tldGNoX21hdGVyaWFsLmRlc2NfaWRzWyJkcmF3X2NvbXBsZXRpb24iXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXI9c2VsZi5kcmF3X3BhcmFtZXRlcikKICAgICAgICBvcGFjaXR5X3JlbGF0aW9uID0gWElkZW50aXR5KHBhcnQ9c2VsZi5za2V0Y2hfbWF0ZXJpYWwsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLnNrZXRjaF9tYXRlcmlhbC5kZXNjX2lkc1sib3BhY2l0eSJdXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj1zZWxmLm9wYWNpdHlfcGFyYW1ldGVyKQogICAgICAgIGNvbG9yX3JlbGF0aW9uID0gWElkZW50aXR5KHBhcnQ9c2VsZi5za2V0Y2hfbWF0ZXJpYWwsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLnNrZXRjaF9tYXRlcmlhbC5kZXNjX2lkc1siY29sb3IiXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyPXNlbGYuY29sb3JfcGFyYW1ldGVyKQoKICAgIGRlZiBzZXRfcGxhbmUoc2VsZik6CiAgICAgICAgcGxhbmVzID0geyJ4eSI6IDAsICJ6eSI6IDEsICJ4eiI6IDJ9CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fUExBTkVdID0gcGxhbmVzW3NlbGYucGxhbmVdCgogICAgZGVmIHNwZWNpZnlfc3BsaW5lX2xlbmd0aF9wYXJhbWV0ZXIoc2VsZik6CiAgICAgICAgc2VsZi5zcGxpbmVfbGVuZ3RoX3BhcmFtZXRlciA9IFVMZW5ndGgobmFtZT0iU3BsaW5lTGVuZ3RoIikKCiAgICBkZWYgaW5zZXJ0X3NwbGluZV9sZW5ndGhfcGFyYW1ldGVyKHNlbGYpOgogICAgICAgIHNlbGYuc3BsaW5lX2xlbmd0aF91X2dyb3VwID0gVUdyb3VwKAogICAgICAgICAgICBzZWxmLnNwbGluZV9sZW5ndGhfcGFyYW1ldGVyLCB0YXJnZXQ9c2VsZi5vYmosIG5hbWU9IlNwbGluZSIpCgogICAgZGVmIHNwZWNpZnlfc3BsaW5lX2xlbmd0aF9yZWxhdGlvbihzZWxmKToKICAgICAgICBzZWxmLnNwbGluZV9sZW5ndGhfcmVsYXRpb24gPSBYU3BsaW5lTGVuZ3RoKAogICAgICAgICAgICBzcGxpbmU9c2VsZiwgd2hvbGU9c2VsZiwgcGFyYW1ldGVyPXNlbGYuc3BsaW5lX2xlbmd0aF9wYXJhbWV0ZXIpCgogICAgZGVmIGRyYXcoc2VsZiwgY29tcGxldGlvbj0xKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIGRyYXcgYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuZHJhd19wYXJhbWV0ZXIuZGVzY19pZAogICAgICAgIGFuaW1hdGlvbiA9IFNjYWxhckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY19pZCwgdmFsdWVfZmluPWNvbXBsZXRpb24pCiAgICAgICAgc2VsZi5vYmpbZGVzY19pZF0gPSBjb21wbGV0aW9uCiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgoKICAgIGRlZiB1bl9kcmF3KHNlbGYsIGNvbXBsZXRpb249MCk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSB1bmRyYXcgYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuZHJhd19wYXJhbWV0ZXIuZGVzY19pZAogICAgICAgIGFuaW1hdGlvbiA9IFNjYWxhckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY19pZCwgdmFsdWVfZmluPWNvbXBsZXRpb24pCiAgICAgICAgc2VsZi5vYmpbZGVzY19pZF0gPSBjb21wbGV0aW9uCiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgoKICAgIGRlZiBmYWRlX2luKHNlbGYsIGNvbXBsZXRpb249MSk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSBmYWRlIGluIGFuaW1hdGlvbiIiIgogICAgICAgIGRlc2NfaWQgPSBzZWxmLm9wYWNpdHlfcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBTY2FsYXJBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NfaWQsIHZhbHVlX2Zpbj1jb21wbGV0aW9uKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29tcGxldGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgZmFkZV9vdXQoc2VsZiwgY29tcGxldGlvbj0wKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIGZhZGUgb3V0IGFuaW1hdGlvbiIiIgogICAgICAgIGRlc2NfaWQgPSBzZWxmLm9wYWNpdHlfcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBTY2FsYXJBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NfaWQsIHZhbHVlX2Zpbj1jb21wbGV0aW9uKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29tcGxldGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgY2hhbmdlX2NvbG9yKHNlbGYsIGNvbG9yKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIGNvbG9yIGNoYW5nZSBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5jb2xvcl9wYXJhbWV0ZXIuZGVzY19pZAogICAgICAgIGFuaW1hdGlvbiA9IENvbG9yQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2ZWN0b3I9Y29sb3IpCiAgICAgICAgc2VsZi5vYmpbZGVzY19pZF0gPSBjb2xvcgogICAgICAgIHJldHVybiBhbmltYXRpb24KCgpjbGFzcyBTb2xpZE9iamVjdChWaXNpYmxlT2JqZWN0KToKICAgICIiInNvbGlkIG9iamVjdHMgb25seSByZXF1aXJlIGEgZmlsbCBtYXRlcmlhbCIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxsZWQ9MCwgZ2xvd2luZz0wLCBjb2xvcj1XSElURSwgZmlsbF9jb2xvcj1Ob25lLCBza2V0Y2hfY29sb3I9Tm9uZSwgZHJhd19vcmRlcj0ibG9uZ190b19zaG9ydCIsIGRyYXdfY29tcGxldGlvbj0wLCBhcnJvd19zdGFydD1GYWxzZSwgYXJyb3dfZW5kPUZhbHNlLCBmaWxsX29wYWNpdHk9MSwgc2tldGNoX29wYWNpdHk9MSwgb3V0bGluZV9vbmx5PUZhbHNlLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi5maWxsZWQgPSBmaWxsZWQKICAgICAgICBzZWxmLmdsb3dpbmcgPSBnbG93aW5nCiAgICAgICAgc2VsZi5jb2xvciA9IGNvbG9yCiAgICAgICAgc2VsZi5maWxsX2NvbG9yID0gZmlsbF9jb2xvcgogICAgICAgIHNlbGYuc2tldGNoX2NvbG9yID0gc2tldGNoX2NvbG9yCiAgICAgICAgc2VsZi5kcmF3X29yZGVyID0gZHJhd19vcmRlcgogICAgICAgIHNlbGYuZHJhd19jb21wbGV0aW9uID0gZHJhd19jb21wbGV0aW9uCiAgICAgICAgc2VsZi5hcnJvd19zdGFydCA9IGFycm93X3N0YXJ0CiAgICAgICAgc2VsZi5hcnJvd19lbmQgPSBhcnJvd19lbmQKICAgICAgICBzZWxmLnNrZXRjaF9vcGFjaXR5ID0gc2tldGNoX29wYWNpdHkKICAgICAgICBzZWxmLmZpbGxfb3BhY2l0eSA9IGZpbGxfb3BhY2l0eQogICAgICAgIHNlbGYub3V0bGluZV9vbmx5ID0gb3V0bGluZV9vbmx5CiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKICAgICAgICBzZWxmLmRlcml2ZV9jb2xvcnMoKQogICAgICAgICMgZmlsbCBzZXR1cAogICAgICAgIHNlbGYuc2V0X2ZpbGxfbWF0ZXJpYWwoKQogICAgICAgIHNlbGYuc2V0X2ZpbGxfdGFnKCkKICAgICAgICBzZWxmLmZpbGxfcGFyYW1ldGVyX3NldHVwKCkKICAgICAgICAjIHNrZXRjaCBzZXR1cAogICAgICAgIHNlbGYuc2V0X3NrZXRjaF9tYXRlcmlhbCgpCiAgICAgICAgc2VsZi5zZXRfc2tldGNoX3RhZygpCiAgICAgICAgc2VsZi5za2V0Y2hfcGFyYW1ldGVyX3NldHVwKCkKICAgICAgICBzZWxmLnBhcmFtZXRlcnMgPSBbXQogICAgICAgIHNlbGYuc3BlY2lmeV9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLmluc2VydF9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLnNwZWNpZnlfcmVsYXRpb25zKCkKICAgICAgICBzZWxmLmFjdGlvbl9wYXJhbWV0ZXJzID0gW10KICAgICAgICBzZWxmLnNwZWNpZnlfYWN0aW9uX3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuc3BlY2lmeV9jcmVhdGlvbl9wYXJhbWV0ZXIoKQogICAgICAgIHNlbGYuaW5zZXJ0X2FjdGlvbl9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLnNwZWNpZnlfYWN0aW9ucygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X2NyZWF0aW9uKCkKICAgICAgICBzZWxmLnNvcnRfcmVsYXRpb25zX2J5X3ByaW9yaXR5KCkKCiAgICBkZWYgZGVyaXZlX2NvbG9ycyhzZWxmKToKICAgICAgICBpZiBub3Qgc2VsZi5maWxsX2NvbG9yOgogICAgICAgICAgICBzZWxmLmZpbGxfY29sb3IgPSBzZWxmLmNvbG9yCiAgICAgICAgaWYgbm90IHNlbGYuc2tldGNoX2NvbG9yOgogICAgICAgICAgICBzZWxmLnNrZXRjaF9jb2xvciA9IHNlbGYuY29sb3IKCiAgICBkZWYgc3BlY2lmeV9jcmVhdGlvbihzZWxmKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIGNyZWF0aW9uIGFjdGlvbiIiIgogICAgICAgIGNyZWF0aW9uX2FjdGlvbiA9IFhBY3Rpb24oCiAgICAgICAgICAgIE1vdmVtZW50KHNlbGYuZmlsbF9wYXJhbWV0ZXIsICgxIC8gMywgMSkpLAogICAgICAgICAgICBNb3ZlbWVudChzZWxmLmRyYXdfcGFyYW1ldGVyLCAoMCwgMiAvIDMpKSwKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGNvbXBsZXRpb25fcGFyYW1ldGVyPXNlbGYuY3JlYXRpb25fcGFyYW1ldGVyLCBuYW1lPSJDcmVhdGlvbiIpCgogICAgZGVmIGZpbGxfcGFyYW1ldGVyX3NldHVwKHNlbGYpOgogICAgICAgIHNlbGYuc3BlY2lmeV9maWxsX3BhcmFtZXRlcigpCiAgICAgICAgc2VsZi5pbnNlcnRfZmlsbF9wYXJhbWV0ZXIoKQogICAgICAgIHNlbGYuc3BlY2lmeV9maWxsX3JlbGF0aW9uKCkKCiAgICBkZWYgc2V0X2ZpbGxfbWF0ZXJpYWwoc2VsZik6CiAgICAgICAgc2VsZi5maWxsX21hdGVyaWFsID0gRmlsbE1hdGVyaWFsKAogICAgICAgICAgICBuYW1lPXNlbGYubmFtZSwgZmlsbD1zZWxmLmZpbGxlZCwgY29sb3I9c2VsZi5maWxsX2NvbG9yKQoKICAgIGRlZiBzZXRfZmlsbF90YWcoc2VsZik6CiAgICAgICAgc2VsZi5maWxsX3RhZyA9IEZpbGxUYWcodGFyZ2V0PXNlbGYsIG1hdGVyaWFsPXNlbGYuZmlsbF9tYXRlcmlhbCkKCiAgICBkZWYgc3BlY2lmeV9maWxsX3BhcmFtZXRlcihzZWxmKToKICAgICAgICBzZWxmLmZpbGxfcGFyYW1ldGVyID0gVUNvbXBsZXRpb24oCiAgICAgICAgICAgIG5hbWU9IkZpbGwiLCBkZWZhdWx0X3ZhbHVlPXNlbGYuZmlsbGVkKQogICAgICAgIHNlbGYuZ2xvd19wYXJhbWV0ZXIgPSBVQ29tcGxldGlvbigKICAgICAgICAgICAgbmFtZT0iR2xvdyIsIGRlZmF1bHRfdmFsdWU9c2VsZi5nbG93aW5nKQogICAgICAgIHNlbGYuZmlsbF9wYXJhbWV0ZXJzID0gW3NlbGYuZmlsbF9wYXJhbWV0ZXIsIHNlbGYuZ2xvd19wYXJhbWV0ZXJdCgogICAgZGVmIGluc2VydF9maWxsX3BhcmFtZXRlcihzZWxmKToKICAgICAgICBzZWxmLmZpbGxfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgKnNlbGYuZmlsbF9wYXJhbWV0ZXJzLCB0YXJnZXQ9c2VsZi5vYmosIG5hbWU9IlNvbGlkIikKCiAgICBkZWYgc3BlY2lmeV9maWxsX3JlbGF0aW9uKHNlbGYpOgogICAgICAgIHNlbGYuZmlsbF9yZWxhdGlvbiA9IFhSZWxhdGlvbihwYXJ0PXNlbGYuZmlsbF9tYXRlcmlhbCwgd2hvbGU9c2VsZiwgZGVzY19pZHM9W3NlbGYuZmlsbF9tYXRlcmlhbC5kZXNjX2lkc1sidHJhbnNwYXJlbmN5Il1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzPVtzZWxmLmZpbGxfcGFyYW1ldGVyXSwgZm9ybXVsYT1mIjEte3NlbGYuZmlsbF9wYXJhbWV0ZXIubmFtZX0iKQogICAgICAgIHNlbGYuZ2xvd19yZWxhdGlvbiA9IFhSZWxhdGlvbihwYXJ0PXNlbGYuZmlsbF9tYXRlcmlhbCwgd2hvbGU9c2VsZiwgZGVzY19pZHM9W3NlbGYuZmlsbF9tYXRlcmlhbC5kZXNjX2lkc1siZ2xvd19icmlnaHRuZXNzIl1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzPVtzZWxmLmdsb3dfcGFyYW1ldGVyXSwgZm9ybXVsYT1mIntzZWxmLmdsb3dfcGFyYW1ldGVyLm5hbWV9IikKCiAgICBkZWYgZmlsbChzZWxmLCBjb21wbGV0aW9uPTEpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgZmlsbCBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5maWxsX3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIHVuX2ZpbGwoc2VsZiwgY29tcGxldGlvbj0wKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIHVuZmlsbCBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5maWxsX3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIHNrZXRjaF9wYXJhbWV0ZXJfc2V0dXAoc2VsZik6CiAgICAgICAgc2VsZi5zcGVjaWZ5X3NrZXRjaF9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLmluc2VydF9za2V0Y2hfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X3NrZXRjaF9yZWxhdGlvbnMoKQoKICAgIGRlZiBzZXRfc2tldGNoX21hdGVyaWFsKHNlbGYpOgogICAgICAgIHNlbGYuc2tldGNoX21hdGVyaWFsID0gU2tldGNoTWF0ZXJpYWwoCiAgICAgICAgICAgIG5hbWU9c2VsZi5fX2NsYXNzX18uX19uYW1lX18sIGRyYXdfb3JkZXI9c2VsZi5kcmF3X29yZGVyLCBjb2xvcj1zZWxmLnNrZXRjaF9jb2xvciwgYXJyb3dfc3RhcnQ9c2VsZi5hcnJvd19zdGFydCwgYXJyb3dfZW5kPXNlbGYuYXJyb3dfZW5kKQoKICAgIGRlZiBzZXRfc2tldGNoX3RhZyhzZWxmKToKICAgICAgICBvdXRsaW5lID0gVHJ1ZQogICAgICAgIGNyZWFzZXMgPSBUcnVlCiAgICAgICAgc3BsaW5lcyA9IFRydWUKICAgICAgICBpZiBzZWxmLm91dGxpbmVfb25seToKICAgICAgICAgICAgY3JlYXNlcyA9IEZhbHNlCiAgICAgICAgICAgIHNwbGluZXMgPSBGYWxzZQogICAgICAgIHNlbGYuc2tldGNoX3RhZyA9IFNrZXRjaFRhZygKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIG1hdGVyaWFsPXNlbGYuc2tldGNoX21hdGVyaWFsLCBzcGxpbmVzPXNwbGluZXMsIG91dGxpbmU9b3V0bGluZSwgY3JlYXNlcz1jcmVhc2VzKQoKICAgIGRlZiBzcGVjaWZ5X3NrZXRjaF9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgIHNlbGYuZHJhd19wYXJhbWV0ZXIgPSBVQ29tcGxldGlvbigKICAgICAgICAgICAgbmFtZT0iRHJhdyIsIGRlZmF1bHRfdmFsdWU9c2VsZi5kcmF3X2NvbXBsZXRpb24pCiAgICAgICAgc2VsZi5vcGFjaXR5X3BhcmFtZXRlciA9IFVDb21wbGV0aW9uKAogICAgICAgICAgICBuYW1lPSJTa2V0Y2hPcGFjaXR5IiwgZGVmYXVsdF92YWx1ZT1zZWxmLnNrZXRjaF9vcGFjaXR5KQogICAgICAgIHNlbGYuY29sb3JfcGFyYW1ldGVyID0gVUNvbG9yKAogICAgICAgICAgICBuYW1lPSJDb2xvciIsIGRlZmF1bHRfdmFsdWU9c2VsZi5za2V0Y2hfY29sb3IpCiAgICAgICAgc2VsZi5za2V0Y2hfcGFyYW1ldGVycyA9IFtzZWxmLmRyYXdfcGFyYW1ldGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vcGFjaXR5X3BhcmFtZXRlciwgc2VsZi5jb2xvcl9wYXJhbWV0ZXJdCgogICAgZGVmIGluc2VydF9za2V0Y2hfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICBzZWxmLmRyYXdfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgKnNlbGYuc2tldGNoX3BhcmFtZXRlcnMsIHRhcmdldD1zZWxmLm9iaiwgbmFtZT0iU2tldGNoIikKCiAgICBkZWYgc3BlY2lmeV9za2V0Y2hfcmVsYXRpb25zKHNlbGYpOgogICAgICAgIGRyYXdfcmVsYXRpb24gPSBYSWRlbnRpdHkocGFydD1zZWxmLnNrZXRjaF9tYXRlcmlhbCwgd2hvbGU9c2VsZiwgZGVzY19pZHM9W3NlbGYuc2tldGNoX21hdGVyaWFsLmRlc2NfaWRzWyJkcmF3X2NvbXBsZXRpb24iXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXI9c2VsZi5kcmF3X3BhcmFtZXRlcikKICAgICAgICBvcGFjaXR5X3JlbGF0aW9uID0gWElkZW50aXR5KHBhcnQ9c2VsZi5za2V0Y2hfbWF0ZXJpYWwsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLnNrZXRjaF9tYXRlcmlhbC5kZXNjX2lkc1sib3BhY2l0eSJdXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj1zZWxmLm9wYWNpdHlfcGFyYW1ldGVyKQogICAgICAgIGNvbG9yX3JlbGF0aW9uID0gWElkZW50aXR5KHBhcnQ9c2VsZi5za2V0Y2hfbWF0ZXJpYWwsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLnNrZXRjaF9tYXRlcmlhbC5kZXNjX2lkc1siY29sb3IiXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyPXNlbGYuY29sb3JfcGFyYW1ldGVyKQoKICAgIGRlZiBkcmF3KHNlbGYsIGNvbXBsZXRpb249MSk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSBkcmF3IGFuaW1hdGlvbiIiIgogICAgICAgIGRlc2NfaWQgPSBzZWxmLmRyYXdfcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBTY2FsYXJBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NfaWQsIHZhbHVlX2Zpbj1jb21wbGV0aW9uKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29tcGxldGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgdW5fZHJhdyhzZWxmLCBjb21wbGV0aW9uPTApOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgdW5kcmF3IGFuaW1hdGlvbiIiIgogICAgICAgIGRlc2NfaWQgPSBzZWxmLmRyYXdfcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBTY2FsYXJBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NfaWQsIHZhbHVlX2Zpbj1jb21wbGV0aW9uKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29tcGxldGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgZ2xvdyhzZWxmLCBjb21wbGV0aW9uPTEpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgZ2xvdyBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5nbG93X3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIHVuX2dsb3coc2VsZiwgY29tcGxldGlvbj0wKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIHVuZ2xvdyBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5nbG93X3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCg", 1296 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAFeQAAAAAAAAV5AAAAAAAAAAAAAAAA8L8" 1297 ], 1298 [ 1299 215, 1300 1, 1301 "insert", 1302 { 1303 "characters": "," 1304 }, 1305 "AQAAAAF9AAAAAAAAAn0AAAAAAAAAAAAA", 1306 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAABfQAAAAAAAAF9AAAAAAAAAAAAAAAA8L8" 1307 ], 1308 [ 1309 216, 1310 1, 1311 "insert", 1312 { 1313 "characters": " output" 1314 }, 1315 "BwAAAAJ9AAAAAAAAA30AAAAAAAAAAAAAA30AAAAAAAAEfQAAAAAAAAAAAAAEfQAAAAAAAAV9AAAAAAAAAAAAAAV9AAAAAAAABn0AAAAAAAAAAAAABn0AAAAAAAAHfQAAAAAAAAAAAAAHfQAAAAAAAAh9AAAAAAAAAAAAAAh9AAAAAAAACX0AAAAAAAAAAAAA", 1316 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAACfQAAAAAAAAJ9AAAAAAAAAAAAAAAA8L8" 1317 ], 1318 [ 1319 217, 1320 1, 1321 "insert_snippet", 1322 { 1323 "contents": "($0)" 1324 }, 1325 "AQAAAAl9AAAAAAAAC30AAAAAAAAAAAAA", 1326 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAJfQAAAAAAAAl9AAAAAAAAAAAAAAAA8L8" 1327 ], 1328 [ 1329 219, 1330 1, 1331 "insert", 1332 { 1333 "characters": "0," 1334 }, 1335 "AgAAAAp9AAAAAAAAC30AAAAAAAAAAAAAC30AAAAAAAAMfQAAAAAAAAAAAAA", 1336 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAKfQAAAAAAAAp9AAAAAAAAAAAAAAAA8L8" 1337 ], 1338 [ 1339 220, 1340 1, 1341 "insert", 1342 { 1343 "characters": " " 1344 }, 1345 "AQAAAAx9AAAAAAAADX0AAAAAAAAAAAAA", 1346 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAMfQAAAAAAAAx9AAAAAAAAAAAAAAAA8L8" 1347 ], 1348 [ 1349 221, 1350 1, 1351 "insert_completion", 1352 { 1353 "completion": "self", 1354 "format": "snippet", 1355 "keep_prefix": false, 1356 "must_insert": true, 1357 "trigger": "self" 1358 }, 1359 "AQAAAA19AAAAAAAAEX0AAAAAAAAAAAAA", 1360 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAANfQAAAAAAAA19AAAAAAAAAAAAAAAA8L8" 1361 ], 1362 [ 1363 222, 1364 1, 1365 "insert", 1366 { 1367 "characters": ".f" 1368 }, 1369 "AgAAABF9AAAAAAAAEn0AAAAAAAAAAAAAEn0AAAAAAAATfQAAAAAAAAAAAAA", 1370 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAARfQAAAAAAABF9AAAAAAAAAAAAAAAA8L8" 1371 ], 1372 [ 1373 223, 1374 1, 1375 "insert", 1376 { 1377 "characters": "ill_opacit" 1378 }, 1379 "CgAAABN9AAAAAAAAFH0AAAAAAAAAAAAAFH0AAAAAAAAVfQAAAAAAAAAAAAAVfQAAAAAAABZ9AAAAAAAAAAAAABZ9AAAAAAAAF30AAAAAAAAAAAAAF30AAAAAAAAYfQAAAAAAAAAAAAAYfQAAAAAAABl9AAAAAAAAAAAAABl9AAAAAAAAGn0AAAAAAAAAAAAAGn0AAAAAAAAbfQAAAAAAAAAAAAAbfQAAAAAAABx9AAAAAAAAAAAAABx9AAAAAAAAHX0AAAAAAAAAAAAA", 1380 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAATfQAAAAAAABN9AAAAAAAAAAAAAAAA8L8" 1381 ], 1382 [ 1383 224, 1384 1, 1385 "insert", 1386 { 1387 "characters": "s" 1388 }, 1389 "AQAAAB19AAAAAAAAHn0AAAAAAAAAAAAA", 1390 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAdfQAAAAAAAB19AAAAAAAAAAAAAAAA8L8" 1391 ], 1392 [ 1393 225, 1394 1, 1395 "left_delete", 1396 null, 1397 "AQAAAB19AAAAAAAAHX0AAAAAAAABAAAAcw", 1398 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAefQAAAAAAAB59AAAAAAAAAAAAAAAA8L8" 1399 ], 1400 [ 1401 226, 1402 1, 1403 "insert", 1404 { 1405 "characters": "y" 1406 }, 1407 "AQAAAB19AAAAAAAAHn0AAAAAAAAAAAAA", 1408 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAdfQAAAAAAAB19AAAAAAAAAAAAAAAA8L8" 1409 ], 1410 [ 1411 228, 1412 2, 1413 "anaconda_auto_format", 1414 null, 1415 "AQAAAAAAAAAAAAAA1pEAAAAAAADBkQAAaW1wb3J0IGltcG9ydGxpYgppbXBvcnQgcHlkZWF0aW9uLm1hdGVyaWFscwppbXBvcnRsaWIucmVsb2FkKHB5ZGVhdGlvbi5tYXRlcmlhbHMpCmZyb20gcHlkZWF0aW9uLm1hdGVyaWFscyBpbXBvcnQgRmlsbE1hdGVyaWFsLCBTa2V0Y2hNYXRlcmlhbApmcm9tIHB5ZGVhdGlvbi50YWdzIGltcG9ydCBGaWxsVGFnLCBTa2V0Y2hUYWcsIFhQcmVzc29UYWcsIEFsaWduVG9TcGxpbmVUYWcKZnJvbSBweWRlYXRpb24uY29uc3RhbnRzIGltcG9ydCBXSElURSwgU0NBTEVfWCwgU0NBTEVfWSwgU0NBTEVfWgpmcm9tIHB5ZGVhdGlvbi5hbmltYXRpb24uYW5pbWF0aW9uIGltcG9ydCBWZWN0b3JBbmltYXRpb24sIFNjYWxhckFuaW1hdGlvbiwgQ29sb3JBbmltYXRpb24KZnJvbSBweWRlYXRpb24ueHByZXNzby51c2VyZGF0YSBpbXBvcnQgKgpmcm9tIHB5ZGVhdGlvbi54cHJlc3NvLnhwcmVzc2lvbnMgaW1wb3J0IFhSZWxhdGlvbiwgWElkZW50aXR5LCBYU3BsaW5lTGVuZ3RoLCBYQm91bmRpbmdCb3gsIFhBY3Rpb24sIE1vdmVtZW50CmltcG9ydCBweWRlYXRpb24ub2JqZWN0cy5lZmZlY3Rfb2JqZWN0cyBhcyBlZmZlY3Rfb2JqZWN0cwppbXBvcnQgcHlkZWF0aW9uLm9iamVjdHMuaGVscGVyX29iamVjdHMgYXMgaGVscGVyX29iamVjdHMKaW1wb3J0IHB5ZGVhdGlvbi5vYmplY3RzLnNvbGlkX29iamVjdHMgYXMgc29saWRfb2JqZWN0cwpmcm9tIGFiYyBpbXBvcnQgQUJDLCBhYnN0cmFjdG1ldGhvZAppbXBvcnQgYzRkLnV0aWxzCmltcG9ydCBjNGQKCgpjbGFzcyBQcm90b09iamVjdChBQkMpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lPU5vbmUsIHg9MCwgeT0wLCB6PTAsIGg9MCwgcD0wLCBiPTAsIHNjYWxlPTEsIHBvc2l0aW9uPU5vbmUsIHJvdGF0aW9uPU5vbmUsIHBsYW5lPSJ4eSIpOgogICAgICAgIHNlbGYuZG9jdW1lbnQgPSBjNGQuZG9jdW1lbnRzLkdldEFjdGl2ZURvY3VtZW50KCkgICMgZ2V0IGRvY3VtZW50CiAgICAgICAgc2VsZi5zcGVjaWZ5X29iamVjdCgpCiAgICAgICAgc2VsZi5zZXRfeHByZXNzb190YWdzKCkKICAgICAgICBzZWxmLnNldF91bmlxdWVfZGVzY19pZHMoKQogICAgICAgIHNlbGYuaW5zZXJ0X3RvX2RvY3VtZW50KCkKICAgICAgICBzZWxmLnNldF9uYW1lKG5hbWU9bmFtZSkKICAgICAgICBzZWxmLnNldF9wb3NpdGlvbih4PXgsIHk9eSwgej16LCBwb3NpdGlvbj1wb3NpdGlvbikKICAgICAgICBzZWxmLnNldF9yb3RhdGlvbihoPWgsIHA9cCwgYj1iLCByb3RhdGlvbj1yb3RhdGlvbikKICAgICAgICBzZWxmLnNldF9zY2FsZShzY2FsZT1zY2FsZSkKICAgICAgICBzZWxmLnNldF9vYmplY3RfcHJvcGVydGllcygpCiAgICAgICAgc2VsZi5wbGFuZSA9IHBsYW5lCiAgICAgICAgc2VsZi5zZXRfcGxhbmUoKQogICAgICAgIHNlbGYucmVsYXRpb25zID0gW10KICAgICAgICBzZWxmLmFjdGlvbnMgPSBbXQogICAgICAgIHNlbGYueHByZXNzaW9ucyA9IHt9ICAjIGtlZXBzIHRyYWNrIG9mIGFuaW1hdG9ycywgY29tcG9zZXJzIGV0Yy4KICAgICAgICBzZWxmLmFjY2Vzc2VkX3BhcmFtZXRlcnMgPSB7fSAgIyBrZWVwcyB0cmFjayB3aGljaCBwYXJhbWV0ZXJzIGhhdmUgQWNjZXNzQ29udHJvbAogICAgICAgIHNlbGYuaGVscGVyX29iamVjdHMgPSB7fSAgIyBrZWVwcyB0cmFjayBvZiBoZWxwZXIgb2JqZWN0cyBjcmVhdGVkIGJ5IEFuaW1hdG9ycwogICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQoKICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAiIiJzZXRzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHByaW50aW5nIiIiCiAgICAgICAgcmV0dXJuIHNlbGYubmFtZQoKICAgIEBhYnN0cmFjdG1ldGhvZAogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHBhc3MKCiAgICBkZWYgc2V0X3hwcmVzc29fdGFncyhzZWxmKToKICAgICAgICAiIiJpbml0aWFsaXplcyB0aGUgbmVjZXNzYXJ5IHhwcmVzc28gdGFncyBvbiB0aGUgb2JqZWN0IiIiCiAgICAgICAgIyB0aGUgY29tcG9zaXRpb24gdGFncyBob2xkIHRoZSBoaWVyYXJjaHkgb2YgY29tcG9zaXRpb25zIGFuZCBlbnN1cmUgZXhlY3V0aW9uIGZyb20gaGlnaGVzdCB0byBsb3dlc3QKICAgICAgICAjc2VsZi5jb21wb3NpdGlvbl90YWdzID0gW10KICAgICAgICAjIHRoZSBhbmltYXRvciB0YWcgaG9sZHMgdGhlIGFjdGluZyBvZiB0aGUgYW5pbWF0b3JzIG9uIHRoZSBhY3R1YWwgcGFyYW1ldGVycwogICAgICAgICMgc2V0IHByaW9yaXR5IHRvIGJlIGV4ZWN1dGVkIGxhc3QKICAgICAgICAjIHNlbGYuYW5pbWF0b3JfdGFnID0gWFByZXNzb1RhZygKICAgICAgICAjICAgIHRhcmdldD1zZWxmLCBuYW1lPSJBbmltYXRvclRhZyIsIHByaW9yaXR5PTEsIHByaW9yaXR5X21vZGU9ImV4cHJlc3Npb24iKQogICAgICAgICMgdGhlIGZyZWV6ZSB0YWcgaG9sZHMgdGhlIGZyZWV6aW5nIHhwcmVzc2lvbnMgdGhhdCBhcmUgZXhlY3V0ZWQgYmVmb3JlIHRoZSBhbmltYXRvcnMKICAgICAgICAjIHNldCBwcmlvcml0eSB0byBiZSBleGVjdXRlZCBhZnRlciBjb21wb3NpdGlvbnMgYW5kIGJlZm9yZSBhbmltYXRvcnMKICAgICAgICAjIHNlbGYuZnJlZXplX3RhZyA9IFhQcmVzc29UYWcoCiAgICAgICAgIyAgICB0YXJnZXQ9c2VsZiwgbmFtZT0iRnJlZXplVGFnIiwgcHJpb3JpdHk9MCwgcHJpb3JpdHlfbW9kZT0iYW5pbWF0aW9uIikKICAgICAgICAjIGluc2VydHMgYW4geHByZXNzbyB0YWcgdXNlZCBmb3IgY3VzdG9tIHhwcmVzc2lvbnMKICAgICAgICBzZWxmLmN1c3RvbV90YWcgPSBYUHJlc3NvVGFnKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgbmFtZT0iQ3VzdG9tVGFnIiwgcHJpb3JpdHlfbW9kZT0iZXhwcmVzc2lvbiIpCgogICAgZGVmIGFkZF9jb21wb3NpdGlvbl90YWcoc2VsZik6CiAgICAgICAgIiIiYWRkcyBhbm90aGVyIGxheWVyIHRvIHRoZSBjb21wb3NpdGlvbiBoaWVyYXJjaHkiIiIKICAgICAgICAjIHNldCBwcmlvcml0eSBhY2NvcmRpbmcgdG8gcG9zaXRpb24gaW4gY29tcG9zaXRpb24gaGllcmFyY2h5CiAgICAgICAgdGFnX25hbWUgPSAiQ29tcG9zaXRpb25UYWciICsgc3RyKGxlbihzZWxmLmNvbXBvc2l0aW9uX3RhZ3MpKQogICAgICAgIHRhZ19wcmlvcml0eSA9IC1sZW4oc2VsZi5jb21wb3NpdGlvbl90YWdzKQogICAgICAgIGNvbXBvc2l0aW9uX3RhZyA9IFhQcmVzc29UYWcoCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBuYW1lPXRhZ19uYW1lLCBwcmlvcml0eT10YWdfcHJpb3JpdHksIHByaW9yaXR5X21vZGU9ImluaXRpYWwiKQogICAgICAgIHNlbGYuY29tcG9zaXRpb25fdGFncy5hcHBlbmQoY29tcG9zaXRpb25fdGFnKQogICAgICAgIHJldHVybiBjb21wb3NpdGlvbl90YWcub2JqCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgIiIib3B0aW9uYWwgbWV0aG9kIHRvIG1ha2UgdW5pcXVlIGRlc2NJZHMgZWFzaWx5IGFjY2Vzc2libGUiIiIKICAgICAgICBwYXNzCgogICAgZGVmIHNldF9uYW1lKHNlbGYsIG5hbWU9Tm9uZSk6CiAgICAgICAgaWYgbmFtZSBpcyBOb25lOgogICAgICAgICAgICBzZWxmLm5hbWUgPSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXwogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICBzZWxmLm9iai5TZXROYW1lKHNlbGYubmFtZSkKCiAgICBkZWYgc2V0X3BsYW5lKHNlbGYpOgogICAgICAgICIiInNldHMgdGhlIHBsYW5lIG9mIHRoZSBjdXN0b20gb2JqZWN0IiIiCiAgICAgICAgaWYgc2VsZi5wbGFuZSA9PSAieHkiOgogICAgICAgICAgICBzZWxmLnJvdGF0ZShyb3RhdGlvbj0oMCwgMCwgMCkpCiAgICAgICAgZWxpZiBzZWxmLnBsYW5lID09ICJ5eiI6CiAgICAgICAgICAgIHNlbGYucm90YXRlKHJvdGF0aW9uPShQSSAvIDIsIDAsIDApKQogICAgICAgIGVsaWYgc2VsZi5wbGFuZSA9PSAieHoiOgogICAgICAgICAgICBzZWxmLnJvdGF0ZShyb3RhdGlvbj0oMCwgLVBJIC8gMiwgMCkpCgogICAgZGVmIHNwZWNpZnlfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICAiIiJzcGVjaWZpZXMgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIGN1c3RvbSBvYmplY3QiIiIKICAgICAgICBwYXNzCgogICAgZGVmIGluc2VydF9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgICIiImluc2VydHMgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzIGFzIHVzZXJkYXRhIiIiCiAgICAgICAgaWYgc2VsZi5wYXJhbWV0ZXJzOgogICAgICAgICAgICBzZWxmLnBhcmFtZXRlcnNfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgICAgICpzZWxmLnBhcmFtZXRlcnMsIHRhcmdldD1zZWxmLm9iaiwgbmFtZT1zZWxmLm5hbWUgKyAiUGFyYW1ldGVycyIpCgogICAgZGVmIHNwZWNpZnlfcmVsYXRpb25zKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgcmVsYXRpb25zIGJldHdlZW4gdGhlIHBhcnQncyBwYXJhbWV0ZXJzIHVzaW5nIHhwcmVzc28iIiIKICAgICAgICBwYXNzCgogICAgZGVmIHNldF9wb3NpdGlvbihzZWxmLCB4PTAsIHk9MCwgej0wLCBwb3NpdGlvbj1Ob25lLCByZWxhdGl2ZT1GYWxzZSk6CiAgICAgICAgaWYgcG9zaXRpb24gaXMgTm9uZToKICAgICAgICAgICAgcG9zaXRpb24gPSBjNGQuVmVjdG9yKHgsIHksIHopCiAgICAgICAgZWxpZiB0eXBlKHBvc2l0aW9uKSBpcyBub3QgYzRkLlZlY3RvcjoKICAgICAgICAgICAgcG9zaXRpb24gPSBjNGQuVmVjdG9yKCpwb3NpdGlvbikKICAgICAgICBpZiByZWxhdGl2ZToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfUE9TSVRJT05dICs9IHBvc2l0aW9uCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfUE9TSVRJT05dID0gcG9zaXRpb24KCiAgICBkZWYgc2V0X3JvdGF0aW9uKHNlbGYsIGg9MCwgcD0wLCBiPTAsIHJvdGF0aW9uPU5vbmUsIHJlbGF0aXZlPUZhbHNlKToKICAgICAgICBpZiByb3RhdGlvbiBpcyBOb25lOgogICAgICAgICAgICByb3RhdGlvbiA9IGM0ZC5WZWN0b3IoaCwgcCwgYikKICAgICAgICBlbGlmIHR5cGUocm90YXRpb24pIGlzIG5vdCBjNGQuVmVjdG9yOgogICAgICAgICAgICByb3RhdGlvbiA9IGM0ZC5WZWN0b3IoKnJvdGF0aW9uKQogICAgICAgIGlmIHJlbGF0aXZlOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuSURfQkFTRU9CSkVDVF9ST1RBVElPTl0gKz0gcm90YXRpb24KICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuSURfQkFTRU9CSkVDVF9ST1RBVElPTl0gPSByb3RhdGlvbgoKICAgIGRlZiBzZXRfZnJvemVuX3JvdGF0aW9uKHNlbGYsIGg9MCwgcD0wLCBiPTAsIHJvdGF0aW9uPU5vbmUsIHJlbGF0aXZlPUZhbHNlKToKICAgICAgICBpZiByb3RhdGlvbiBpcyBOb25lOgogICAgICAgICAgICByb3RhdGlvbiA9IGM0ZC5WZWN0b3IoaCwgcCwgYikKICAgICAgICBpZiByZWxhdGl2ZToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfRlJPWkVOX1JPVEFUSU9OXSArPSByb3RhdGlvbgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5JRF9CQVNFT0JKRUNUX0ZST1pFTl9ST1RBVElPTl0gPSByb3RhdGlvbgoKICAgIGRlZiBzZXRfc2NhbGUoc2VsZiwgc2NhbGU9MSwgcmVsYXRpdmU9RmFsc2UpOgogICAgICAgIGlmIHJlbGF0aXZlOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuSURfQkFTRU9CSkVDVF9TQ0FMRV0gKj0gc2NhbGUKICAgICAgICBlbHNlOgogICAgICAgICAgICBzY2FsZSA9IGM0ZC5WZWN0b3Ioc2NhbGUsIHNjYWxlLCBzY2FsZSkKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfU0NBTEVdID0gc2NhbGUKCiAgICBkZWYgbW92ZShzZWxmLCB4PTAsIHk9MCwgej0wLCBwb3NpdGlvbj1Ob25lLCByZWxhdGl2ZT1UcnVlKToKICAgICAgICBpZiBwb3NpdGlvbiBpcyBOb25lOgogICAgICAgICAgICBwb3NpdGlvbiA9IGM0ZC5WZWN0b3IoeCwgeSwgeikKICAgICAgICBlbGlmIHR5cGUocG9zaXRpb24pIGlzIG5vdCBjNGQuVmVjdG9yOgogICAgICAgICAgICBwb3NpdGlvbiA9IGM0ZC5WZWN0b3IoKnBvc2l0aW9uKQogICAgICAgIGRlc2NyaXB0b3IgPSBjNGQuSURfQkFTRU9CSkVDVF9QT1NJVElPTgogICAgICAgIGFuaW1hdGlvbiA9IFZlY3RvckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY3JpcHRvciwgdmVjdG9yPXBvc2l0aW9uLCByZWxhdGl2ZT1yZWxhdGl2ZSkKICAgICAgICBpZiByZWxhdGl2ZToKICAgICAgICAgICAgc2VsZi5vYmpbZGVzY3JpcHRvcl0gKz0gcG9zaXRpb24KICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLm9ialtkZXNjcmlwdG9yXSA9IHBvc2l0aW9uCiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgoKICAgIGRlZiByb3RhdGUoc2VsZiwgaD0wLCBwPTAsIGI9MCwgcm90YXRpb249Tm9uZSk6CiAgICAgICAgaWYgcm90YXRpb24gaXMgTm9uZToKICAgICAgICAgICAgcm90YXRpb24gPSBjNGQuVmVjdG9yKGgsIHAsIGIpCiAgICAgICAgZWxpZiB0eXBlKHJvdGF0aW9uKSBpcyBub3QgYzRkLlZlY3RvcjoKICAgICAgICAgICAgcm90YXRpb24gPSBjNGQuVmVjdG9yKCpyb3RhdGlvbikKICAgICAgICBkZXNjcmlwdG9yID0gYzRkLklEX0JBU0VPQkpFQ1RfUk9UQVRJT04KICAgICAgICBhbmltYXRpb24gPSBWZWN0b3JBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NyaXB0b3IsIHZlY3Rvcj1yb3RhdGlvbiwgcmVsYXRpdmU9VHJ1ZSkKICAgICAgICBzZWxmLm9ialtkZXNjcmlwdG9yXSArPSByb3RhdGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgc2NhbGUoc2VsZiwgeD0wLCB5PTAsIHo9MCwgc2NhbGU9Tm9uZSk6CiAgICAgICAgaWYgc2NhbGUgaXMgTm9uZToKICAgICAgICAgICAgc2NhbGUgPSBjNGQuVmVjdG9yKHgsIHksIHopCiAgICAgICAgZWxpZiB0eXBlKHNjYWxlKSBpbiAodHVwbGUsIGxpc3QpOgogICAgICAgICAgICBzY2FsZSA9IGM0ZC5WZWN0b3IoKnNjYWxlKQogICAgICAgIGVsaWYgdHlwZShzY2FsZSkgaW4gKGludCwgZmxvYXQpOgogICAgICAgICAgICBzY2FsZSA9IGM0ZC5WZWN0b3Ioc2NhbGUsIHNjYWxlLCBzY2FsZSkKICAgICAgICBkZXNjcmlwdG9yID0gYzRkLklEX0JBU0VPQkpFQ1RfU0NBTEUKICAgICAgICBhbmltYXRpb24gPSBWZWN0b3JBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NyaXB0b3IsIHZlY3Rvcj1zY2FsZSwgcmVsYXRpdmU9VHJ1ZSwgbXVsdGlwbGljYXRpdmU9VHJ1ZSkKICAgICAgICBzZWxmLm9ialtkZXNjcmlwdG9yXSArPSBzY2FsZQogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgaW5zZXJ0X3RvX2RvY3VtZW50KHNlbGYpOgogICAgICAgIHNlbGYuZG9jdW1lbnQuSW5zZXJ0T2JqZWN0KHNlbGYub2JqKQoKICAgIGRlZiBnZXRfc2VnbWVudF9jb3VudChzZWxmKToKICAgICAgICAjIHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgc3BsaW5lIG9yIGEgc3BlY2lmaWMgc2VnbWVudAogICAgICAgIHNwbGluZV9oZWxwID0gYzRkLnV0aWxzLlNwbGluZUhlbHAoKQogICAgICAgIHNwbGluZV9oZWxwLkluaXRTcGxpbmVXaXRoKHNlbGYub2JqKQogICAgICAgIHNlZ21lbnRfY291bnQgPSBzcGxpbmVfaGVscC5HZXRTZWdtZW50Q291bnQoKQogICAgICAgIHJldHVybiBzZWdtZW50X2NvdW50CgogICAgZGVmIGdldF9sZW5ndGgoc2VsZiwgc2VnbWVudD1Ob25lKToKICAgICAgICAjIHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgc3BsaW5lIG9yIGEgc3BlY2lmaWMgc2VnbWVudAogICAgICAgIHNwbGluZV9oZWxwID0gYzRkLnV0aWxzLlNwbGluZUhlbHAoKQogICAgICAgIHNwbGluZV9oZWxwLkluaXRTcGxpbmVXaXRoKHNlbGYub2JqKQoKICAgICAgICBpZiBzZWdtZW50OgogICAgICAgICAgICBzZWdtZW50X2xlbmd0aCA9IHNwbGluZV9oZWxwLkdldFNlZ21lbnRMZW5ndGgoc2VnbWVudCkKICAgICAgICAgICAgcmV0dXJuIHNlZ21lbnRfbGVuZ3RoCiAgICAgICAgZWxzZToKICAgICAgICAgICAgc3BsaW5lX2xlbmd0aCA9IHNwbGluZV9oZWxwLkdldFNwbGluZUxlbmd0aCgpCiAgICAgICAgICAgIHJldHVybiBzcGxpbmVfbGVuZ3RoCgogICAgZGVmIGdldF9zcGxpbmVfc2VnbWVudF9sZW5ndGhzKHNlbGYpOgogICAgICAgICMgZ2V0IHRoZSBsZW5ndGggb2YgZWFjaCBzZWdtZW50CiAgICAgICAgc2VnbWVudF9sZW5ndGhzID0gW10KICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLmdldF9zZWdtZW50X2NvdW50KCkpOgogICAgICAgICAgICBzZWdtZW50X2xlbmd0aHMuYXBwZW5kKHNlbGYuZ2V0X2xlbmd0aChzZWdtZW50PWkpKQogICAgICAgIHJldHVybiBzZWdtZW50X2xlbmd0aHMKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICIiInVzZWQgdG8gc2V0IHRoZSB1bmlxdWUgcHJvcGVydGllcyBvZiBhIHNwZWNpZmljIG9iamVjdCIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgc29ydF9yZWxhdGlvbnNfYnlfcHJpb3JpdHkoc2VsZik6CiAgICAgICAgIiIic29ydHMgdGhlIHJlbGF0aW9ucyBieSBwcmlvcml0eSIiIgoKICAgICAgICAjIHJpZ2h0IG5vdyBpdCBvbHkgZW5zdXJlcyB0aGF0IHRoZSBhY3Rpb25zIGFyZSBpbnNlcnRlZCBhYm92ZSB0aGUgcmVsYXRpb25zCiAgICAgICAgIyBpbiB0aGUgZnV0dXJlIHdlIHdpbGwgaW1wbGVtZW50IHByaW9yaXR5IGFuZCBzb3J0aW5nIGJ5IHN1Yi14cHJlc3Npb24gZGVwZW5kZW5jaWVzCgogICAgICAgICMgZ2V0IG5vZGUgbWFzdGVyCiAgICAgICAgbWFzdGVyID0gc2VsZi5jdXN0b21fdGFnLm9iai5HZXROb2RlTWFzdGVyKCkKICAgICAgICBwYXJlbnQgPSBtYXN0ZXIuR2V0Um9vdCgpCgogICAgICAgICIiIgogICAgICAgICMgcmVzb3J0IGJ5IHBhcmVudCByZWZlcmVuY2UKICAgICAgICBmb3IgcmVsYXRpb24gaW4gc2VsZi5yZWxhdGlvbnM6CiAgICAgICAgICAgIGlmIHJlbGF0aW9uLnBhcmVudDoKICAgICAgICAgICAgICAgIHNlbGYucmVsYXRpb25zLnJlbW92ZShyZWxhdGlvbikKICAgICAgICAgICAgICAgIHBhcmVudF9pZHggPSBzZWxmLnJlbGF0aW9ucy5pbmRleChyZWxhdGlvbi5wYXJlbnQpCiAgICAgICAgICAgICAgICBzZWxmLnJlbGF0aW9ucy5pbnNlcnQocGFyZW50X2lkeCwgcmVsYXRpb24pCiAgICAgICAgZm9yIGFjdGlvbiBpbiBzZWxmLmFjdGlvbnM6CiAgICAgICAgICAgIGlmIGFjdGlvbi5wYXJlbnQ6CiAgICAgICAgICAgICAgICBzZWxmLmFjdGlvbnMucmVtb3ZlKGFjdGlvbikKICAgICAgICAgICAgICAgIHBhcmVudF9pZHggPSBzZWxmLmFjdGlvbnMuaW5kZXgoYWN0aW9uLnBhcmVudCkKICAgICAgICAgICAgICAgIHNlbGYuYWN0aW9ucy5pbnNlcnQocGFyZW50X2lkeCwgYWN0aW9uKQogICAgICAgICIiIgogICAgICAgIGlmIHNlbGYucmVsYXRpb25zOgogICAgICAgICAgICBmb3IgcmVsYXRpb24gaW4gc2VsZi5yZWxhdGlvbnM6CiAgICAgICAgICAgICAgICBtYXN0ZXIuSW5zZXJ0Rmlyc3QocGFyZW50LCByZWxhdGlvbi5vYmopCiAgICAgICAgaWYgc2VsZi5hY3Rpb25zOgogICAgICAgICAgICBmb3IgYWN0aW9uIGluIHNlbGYuYWN0aW9uczoKICAgICAgICAgICAgICAgIG1hc3Rlci5JbnNlcnRGaXJzdChwYXJlbnQsIGFjdGlvbi5vYmopCgoKY2xhc3MgVmlzaWJsZU9iamVjdChQcm90b09iamVjdCk6CiAgICAjIHZpc2libGUgb2JqZWN0cwoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2aXNpYmxlPVRydWUsIGNyZWF0aW9uPTAsICoqa3dhcmdzKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuY3JlYXRpb24gPSBjcmVhdGlvbgogICAgICAgIHNlbGYudmlzaWJsZSA9IHZpc2libGUKICAgICAgICBzZWxmLnNwZWNpZnlfdmlzaWJpbGl0eV9wYXJhbWV0ZXIoKQogICAgICAgIHNlbGYuaW5zZXJ0X3Zpc2liaWxpdHlfcGFyYW1ldGVyKCkKICAgICAgICBzZWxmLnNwZWNpZnlfdmlzaWJpbGl0eV9yZWxhdGlvbigpCiAgICAgICAgc2VsZi5zcGVjaWZ5X2xpdmVfYm91bmRpbmdfYm94X3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuaW5zZXJ0X2xpdmVfYm91bmRpbmdfYm94X3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuc3BlY2lmeV9saXZlX2JvdW5kaW5nX2JveF9yZWxhdGlvbigpCiAgICAgICAgc2VsZi5hZGRfYm91bmRpbmdfYm94X2luZm9ybWF0aW9uKCkKCiAgICBkZWYgc3BlY2lmeV9hY3Rpb25fcGFyYW1ldGVycyhzZWxmKToKICAgICAgICBwYXNzCgogICAgZGVmIHNwZWNpZnlfY3JlYXRpb25fcGFyYW1ldGVyKHNlbGYpOgogICAgICAgIHNlbGYuY3JlYXRpb25fcGFyYW1ldGVyID0gVUNvbXBsZXRpb24oCiAgICAgICAgICAgIG5hbWU9IkNyZWF0aW9uIiwgZGVmYXVsdF92YWx1ZT1zZWxmLmNyZWF0aW9uKQogICAgICAgIHNlbGYuYWN0aW9uX3BhcmFtZXRlcnMgKz0gW3NlbGYuY3JlYXRpb25fcGFyYW1ldGVyXQoKICAgIGRlZiBpbnNlcnRfYWN0aW9uX3BhcmFtZXRlcnMoc2VsZik6CiAgICAgICAgIiIiaW5zZXJ0cyB0aGUgc3BlY2lmaWVkIGFjdGlvbl9wYXJhbWV0ZXJzIGFzIHVzZXJkYXRhIiIiCiAgICAgICAgaWYgc2VsZi5hY3Rpb25fcGFyYW1ldGVyczoKICAgICAgICAgICAgc2VsZi5hY3Rpb25zX3VfZ3JvdXAgPSBVR3JvdXAoCiAgICAgICAgICAgICAgICAqc2VsZi5hY3Rpb25fcGFyYW1ldGVycywgdGFyZ2V0PXNlbGYub2JqLCBuYW1lPXNlbGYubmFtZSArICJBY3Rpb25zIikKCiAgICBkZWYgc3BlY2lmeV9hY3Rpb25zKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyBhY3Rpb25zIHRoYXQgY29vcmRpbmF0ZSBwYXJhbWV0ZXJzIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiBzcGVjaWZ5X2NyZWF0aW9uKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgY3JlYXRpb24gYWN0aW9uIiIiCiAgICAgICAgcGFzcwoKICAgIGRlZiBnZXRfY2xvbmUoc2VsZik6CiAgICAgICAgIiIiY2xvbmVzIGFuIG9iamVjdCBhbmQgaW5zZXJ0cyBpdCBpbnRvIHRoZSBzY2VuZSIiIgogICAgICAgIGNsb25lID0gc2VsZi5vYmouR2V0Q2xvbmUoKQogICAgICAgIHNlbGYuZG9jdW1lbnQuSW5zZXJ0T2JqZWN0KGNsb25lKQogICAgICAgIHJldHVybiBjbG9uZQoKICAgIGRlZiBnZXRfZWRpdGFibGUoc2VsZik6CiAgICAgICAgIiIicmV0dXJucyBhbiBlZGl0YWJsZSBjbG9uZSBvZiB0aGUgb2JqZWN0IiIiCiAgICAgICAgY2xvbmUgPSBzZWxmLmdldF9jbG9uZSgpCiAgICAgICAgZWRpdGFibGVfY2xvbmUgPSBjNGQudXRpbHMuU2VuZE1vZGVsaW5nQ29tbWFuZChjb21tYW5kPWM0ZC5NQ09NTUFORF9NQUtFRURJVEFCTEUsIGxpc3Q9WwogICAgICAgICAgICBjbG9uZV0sIG1vZGU9YzRkLk1PREVMSU5HQ09NTUFORE1PREVfQUxMLCBkb2M9c2VsZi5kb2N1bWVudClbMF0KICAgICAgICByZXR1cm4gZWRpdGFibGVfY2xvbmUKCiAgICBkZWYgYXR0YWNoX3RvKHNlbGYsIHRhcmdldCwgZGlyZWN0aW9uPSJmcm9udCIsIG9mZnNldD0wKToKICAgICAgICAiIiJwbGFjZXMgdGhlIG9iamVjdCBzdWNoIHRoYXQgdGhlIGJvdW5kaW5nIGJveGVzIHRvdWNoIGFsb25nIGEgZ2l2ZW4gZGlyZWN0aW9uIGFuZCBtYWtlcyBvYmplY3QgY2hpbGQgb2YgdGFyZ2V0IiIiCiAgICAgICAgYm91bmRpbmdfYm94ID0gc2VsZi5vYmouR2V0UmFkKCkKICAgICAgICBib3VuZGluZ19ib3hfcG9zaXRpb24gPSBzZWxmLm9iai5HZXRNcCgpCiAgICAgICAgYm91bmRpbmdfYm94X3RhcmdldCA9IHRhcmdldC5vYmouR2V0UmFkKCkKICAgICAgICBib3VuZGluZ19ib3hfcG9zaXRpb25fdGFyZ2V0ID0gdGFyZ2V0Lm9iai5HZXRNcCgpCiAgICAgICAgbmV3X3Bvc2l0aW9uID0gYm91bmRpbmdfYm94X3Bvc2l0aW9uX3RhcmdldCAtIGJvdW5kaW5nX2JveF9wb3NpdGlvbgogICAgICAgIGlmIGRpcmVjdGlvbiA9PSAidG9wIjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uLnkgKz0gYm91bmRpbmdfYm94X3RhcmdldC55ICsgYm91bmRpbmdfYm94LnkgKyBvZmZzZXQKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gImJvdHRvbSI6CiAgICAgICAgICAgIG5ld19wb3NpdGlvbi55IC09IGJvdW5kaW5nX2JveF90YXJnZXQueSArIGJvdW5kaW5nX2JveC55ICsgb2Zmc2V0CiAgICAgICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uLnggLT0gYm91bmRpbmdfYm94X3RhcmdldC54ICsgYm91bmRpbmdfYm94LnggKyBvZmZzZXQKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gInJpZ2h0IjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uLnggKz0gYm91bmRpbmdfYm94X3RhcmdldC54ICsgYm91bmRpbmdfYm94LnggKyBvZmZzZXQKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gImZyb250IjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uLnogLT0gYm91bmRpbmdfYm94X3RhcmdldC56ICsgYm91bmRpbmdfYm94LnogKyBvZmZzZXQKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gImJhY2siOgogICAgICAgICAgICBuZXdfcG9zaXRpb24ueiArPSBib3VuZGluZ19ib3hfdGFyZ2V0LnogKyBib3VuZGluZ19ib3gueiArIG9mZnNldAogICAgICAgIGlmIGRpcmVjdGlvbiA9PSAiY2VudGVyIjoKICAgICAgICAgICAgbmV3X3Bvc2l0aW9uID0gYm91bmRpbmdfYm94X3Bvc2l0aW9uX3RhcmdldCAtIGJvdW5kaW5nX2JveF9wb3NpdGlvbgogICAgICAgIHNlbGYub2JqLkluc2VydFVuZGVyKHRhcmdldC5vYmopCiAgICAgICAgc2VsZi5zZXRfcG9zaXRpb24ocG9zaXRpb249bmV3X3Bvc2l0aW9uKQoKICAgIGRlZiBzcGVjaWZ5X3Zpc2liaWxpdHlfcGFyYW1ldGVyKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyB2aXNpYmlsaXR5IHBhcmFtZXRlciIiIgogICAgICAgIHNlbGYudmlzaWJpbGl0eV9wYXJhbWV0ZXIgPSBVQ2hlY2tCb3goCiAgICAgICAgICAgIG5hbWU9IlZpc2liaWxpdHkiLCBkZWZhdWx0X3ZhbHVlPXNlbGYudmlzaWJsZSkKCiAgICBkZWYgaW5zZXJ0X3Zpc2liaWxpdHlfcGFyYW1ldGVyKHNlbGYpOgogICAgICAgICIiImluc2VydHMgdGhlIHZpc2liaWxpdHkgcGFyYW1ldGVyIGFzIHVzZXJkYXRhIiIiCiAgICAgICAgc2VsZi52aXNpYmlsaXR5X3VfZ3JvdXAgPSBVR3JvdXAoCiAgICAgICAgICAgIHNlbGYudmlzaWJpbGl0eV9wYXJhbWV0ZXIsIHRhcmdldD1zZWxmLm9iaiwgbmFtZT0iVmlzaWJpbGl0eSIpCgogICAgZGVmIHNwZWNpZnlfdmlzaWJpbGl0eV9yZWxhdGlvbihzZWxmKToKICAgICAgICAiIiJsaW5rIHBhcmFtZXRlciB0byB2aXNpYmlsaXR5IiIiCiAgICAgICAgdmlzaWJpbGl0eV9yZWxhdGlvbiA9IFhSZWxhdGlvbihwYXJ0PXNlbGYsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtjNGQuSURfQkFTRU9CSkVDVF9WSVNJQklMSVRZX0VESVRPUiwgYzRkLklEX0JBU0VPQkpFQ1RfVklTSUJJTElUWV9SRU5ERVJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycz1bc2VsZi52aXNpYmlsaXR5X3BhcmFtZXRlcl0sIGZvcm11bGE9ZiIxLXtzZWxmLnZpc2liaWxpdHlfcGFyYW1ldGVyLm5hbWV9IikKCiAgICBkZWYgc3BlY2lmeV9saXZlX2JvdW5kaW5nX2JveF9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgICIiInNwZWNpZmllcyBib3VuZGluZyBib3ggcGFyYW1ldGVycyIiIgogICAgICAgIHNlbGYud2lkdGhfcGFyYW1ldGVyID0gVUxlbmd0aChuYW1lPSJXaWR0aCIpCiAgICAgICAgc2VsZi5oZWlnaHRfcGFyYW1ldGVyID0gVUxlbmd0aChuYW1lPSJIZWlnaHQiKQogICAgICAgIHNlbGYuZGVwdGhfcGFyYW1ldGVyID0gVUxlbmd0aChuYW1lPSJEZXB0aCIpCiAgICAgICAgc2VsZi5jZW50ZXJfcGFyYW1ldGVyID0gVVZlY3RvcihuYW1lPSJDZW50ZXIiKQogICAgICAgIHNlbGYuY2VudGVyX3hfcGFyYW1ldGVyID0gVUxlbmd0aChuYW1lPSJDZW50ZXJYIikKICAgICAgICBzZWxmLmNlbnRlcl95X3BhcmFtZXRlciA9IFVMZW5ndGgobmFtZT0iQ2VudGVyWSIpCiAgICAgICAgc2VsZi5jZW50ZXJfel9wYXJhbWV0ZXIgPSBVTGVuZ3RoKG5hbWU9IkNlbnRlcloiKQogICAgICAgIHNlbGYubGl2ZV9ib3VuZGluZ19ib3hfcGFyYW1ldGVycyA9IFtzZWxmLndpZHRoX3BhcmFtZXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5oZWlnaHRfcGFyYW1ldGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlcHRoX3BhcmFtZXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jZW50ZXJfcGFyYW1ldGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNlbnRlcl94X3BhcmFtZXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jZW50ZXJfeV9wYXJhbWV0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2VudGVyX3pfcGFyYW1ldGVyXQoKICAgIGRlZiBpbnNlcnRfbGl2ZV9ib3VuZGluZ19ib3hfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICAiIiJpbnNlcnRzIHRoZSBib3VuZGluZyBib3ggcGFyYW1ldGVycyBhcyB1c2VyZGF0YSIiIgogICAgICAgIHNlbGYubGl2ZV9ib3VuZGluZ19ib3hfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgKnNlbGYubGl2ZV9ib3VuZGluZ19ib3hfcGFyYW1ldGVycywgdGFyZ2V0PXNlbGYub2JqLCBuYW1lPSJMaXZlQm91bmRpbmdCb3giKQoKICAgIGRlZiBzcGVjaWZ5X2xpdmVfYm91bmRpbmdfYm94X3JlbGF0aW9uKHNlbGYpOgogICAgICAgICIiImZlZWQgYm91bmRpbmcgYm94IGluZm9ybWF0aW9uIGludG8gcGFyYW1ldGVycyIiIgogICAgICAgIGxpdmVfYm91bmRpbmdfYm94X3JlbGF0aW9uID0gWEJvdW5kaW5nQm94KHNlbGYsIHRhcmdldD1zZWxmLCB3aWR0aF9wYXJhbWV0ZXI9c2VsZi53aWR0aF9wYXJhbWV0ZXIsIGhlaWdodF9wYXJhbWV0ZXI9c2VsZi5oZWlnaHRfcGFyYW1ldGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHRoX3BhcmFtZXRlcj1zZWxmLmRlcHRoX3BhcmFtZXRlciwgY2VudGVyX3BhcmFtZXRlcj1zZWxmLmNlbnRlcl9wYXJhbWV0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudGVyX3hfcGFyYW1ldGVyPXNlbGYuY2VudGVyX3hfcGFyYW1ldGVyLCBjZW50ZXJfeV9wYXJhbWV0ZXI9c2VsZi5jZW50ZXJfeV9wYXJhbWV0ZXIsIGNlbnRlcl96X3BhcmFtZXRlcj1zZWxmLmNlbnRlcl96X3BhcmFtZXRlcikKCiAgICBkZWYgYWRkX2JvdW5kaW5nX2JveF9pbmZvcm1hdGlvbihzZWxmKToKICAgICAgICBib3VuZGluZ19ib3hfY2VudGVyLCBib3VuZGluZ19yYWRpdXMgPSBjNGQudXRpbHMuR2V0QkJveCgKICAgICAgICAgICAgc2VsZi5vYmosIHNlbGYub2JqLkdldE1nKCkpCiAgICAgICAgc2VsZi53aWR0aCA9IGJvdW5kaW5nX3JhZGl1cy54ICogMgogICAgICAgIHNlbGYuaGVpZ2h0ID0gYm91bmRpbmdfcmFkaXVzLnkgKiAyCiAgICAgICAgc2VsZi5kZXB0aCA9IGJvdW5kaW5nX3JhZGl1cy56ICogMgogICAgICAgIHNlbGYuY2VudGVyID0gYm91bmRpbmdfYm94X2NlbnRlcgoKICAgIGRlZiBnZXRfY2VudGVyKHNlbGYpOgogICAgICAgICMgcmV0dXJucyB0aGUgY2VudGVyIHBvc2l0aW9uIGZyb20gdGhlIGxpdmUgYm91bmRpbmcgYm94IGluZm9ybWF0aW9uCiAgICAgICAgY2VudGVyX3Bvc2l0aW9uID0gc2VsZi5vYmouR2V0TXAoKSAqIHNlbGYub2JqLkdldE1nKCkKICAgICAgICByZXR1cm4gY2VudGVyX3Bvc2l0aW9uCgogICAgZGVmIGdldF9yYWRpdXMoc2VsZik6CiAgICAgICAgIyByZXR1cm5zIHRoZSByYWRpdXMgZnJvbSB0aGUgbGl2ZSBib3VuZGluZyBib3ggaW5mb3JtYXRpb24KICAgICAgICBfXywgcmFkaXVzID0gYzRkLnV0aWxzLkdldEJCb3goc2VsZi5vYmosIHNlbGYub2JqLkdldE1nKCkpCiAgICAgICAgcmV0dXJuIHJhZGl1cwoKICAgIGRlZiBnZXRfZGlhbWV0ZXIoc2VsZik6CiAgICAgICAgIyByZXR1cm5zIHRoZSBkaWFtZXRlciBmcm9tIHRoZSBsb25nZXN0IHJhZGl1cyBkaW1lbnNpb24KICAgICAgICByYWRpdXMgPSBzZWxmLmdldF9yYWRpdXMoKQogICAgICAgIGRpYW1ldGVyID0gbWF4KHJhZGl1cy54LCByYWRpdXMueSwgcmFkaXVzLnopICogMgogICAgICAgIHJldHVybiBkaWFtZXRlcgoKICAgIGRlZiByZWdpc3Rlcl9jb25uZWN0aW9ucyhzZWxmLCBjb25uZWN0aW9ucyk6CiAgICAgICAgIyBzYXZlcyB0aGUgY29ubmVjdGlvbnMgZm9yIGxhdGVyIGZ1bmN0aW9uYWxpdHkgb2YgVW5Db25uZWN0CiAgICAgICAgc2VsZi5jb25uZWN0aW9ucyA9IGNvbm5lY3Rpb25zCgogICAgZGVmIGNyZWF0ZShzZWxmLCBjb21wbGV0aW9uPTEpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgY3JlYXRpb24gYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuY3JlYXRpb25fcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBTY2FsYXJBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NfaWQsIHZhbHVlX2Zpbj1jb21wbGV0aW9uKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29tcGxldGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgdW5fY3JlYXRlKHNlbGYsIGNvbXBsZXRpb249MCk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSB1bmNyZWF0aW9uIGFuaW1hdGlvbiIiIgogICAgICAgIGRlc2NfaWQgPSBzZWxmLmNyZWF0aW9uX3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIGFsaWduX3RvX3NwbGluZShzZWxmLCBzcGxpbmU9Tm9uZSk6CiAgICAgICAgc2VsZi5hbGlnbl90b19zcGxpbmVfdGFnID0gQWxpZ25Ub1NwbGluZVRhZyh0YXJnZXQ9c2VsZiwgc3BsaW5lPXNwbGluZSkKCiAgICBkZWYgd3JhcF9hcm91bmQoc2VsZiwgdGFyZ2V0PU5vbmUpOgogICAgICAgIHNlbGYuc2hyaW5rX3dyYXAgPSBoZWxwZXJfb2JqZWN0cy5TaHJpbmtXcmFwKHRhcmdldD10YXJnZXQpCiAgICAgICAgc2VsZi5zaHJpbmtfd3JhcC5vYmouSW5zZXJ0VW5kZXIoc2VsZi5vYmopCgogICAgZGVmIG1vdmVfYXhpcyhzZWxmLCBwb3NpdGlvbj0oMCwgMCwgMCkpOgogICAgICAgICIiIm1vdmVzIHRoZSBheGlzIHdpdGhvdXQgbW92aW5nIHRoZSBnZW9tZXRyeSIiIgogICAgICAgIHZlYyA9IGM0ZC5WZWN0b3IoKnBvc2l0aW9uKQogICAgICAgIHByaW50KHZlYykKICAgICAgICBwcmludChwb3NpdGlvbikKICAgICAgICBwb2ludHMgPSBzZWxmLm9iai5HZXRBbGxQb2ludHMoKQogICAgICAgIGZvciBpLCBwb2ludCBpbiBlbnVtZXJhdGUocG9pbnRzKToKICAgICAgICAgICAgcG9pbnRzW2ldID0gcG9pbnQgLSB2ZWMKICAgICAgICAgICAgaWYgaSA8IDM6CiAgICAgICAgICAgICAgICBwcmludChwb2ludHNbaV0gLSBwb2ludCkKICAgICAgICBzZWxmLm9iai5TZXRBYnNQb3Moc2VsZi5vYmouR2V0QWJzUG9zKCkgKyB2ZWMpCiAgICAgICAgc2VsZi5vYmouU2V0QWxsUG9pbnRzKHBvaW50cykKICAgICAgICBzZWxmLm9iai5NZXNzYWdlKGM0ZC5NU0dfVVBEQVRFKQogICAgICAgIGM0ZC5FdmVudEFkZCgpCgoKY2xhc3MgQ3VzdG9tT2JqZWN0KFZpc2libGVPYmplY3QpOgogICAgIiIidGhpcyBjbGFzcyBpcyB1c2VkIHRvIGNyZWF0ZSBjdXN0b20gb2JqZWN0cyB0aGF0IGFyZSBiYXNpY2FsbHkKICAgIGdyb3VwcyB3aXRoIGNvdXBsaW5nIG9mIHRoZSBjaGlsZHJlbnMgcGFyYW1ldGVycyB0aHJvdWdoIHhwcmVzc28iIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgZGlhbWV0ZXI9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgc2VsZi5wYXJ0cyA9IFtdCiAgICAgICAgc2VsZi5zcGVjaWZ5X3BhcnRzKCkKICAgICAgICBzZWxmLmluc2VydF9wYXJ0cygpCiAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gW10KICAgICAgICBzZWxmLnNwZWNpZnlfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5pbnNlcnRfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X3JlbGF0aW9ucygpCiAgICAgICAgc2VsZi5hY3Rpb25fcGFyYW1ldGVycyA9IFtdCiAgICAgICAgc2VsZi5zcGVjaWZ5X2FjdGlvbl9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLnNwZWNpZnlfY3JlYXRpb25fcGFyYW1ldGVyKCkKICAgICAgICBzZWxmLmluc2VydF9hY3Rpb25fcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X2FjdGlvbnMoKQogICAgICAgIHNlbGYuc3BlY2lmeV9jcmVhdGlvbigpCiAgICAgICAgc2VsZi5kaWFtZXRlciA9IGRpYW1ldGVyCiAgICAgICAgc2VsZi5hZGRfYm91bmRpbmdfYm94X2luZm9ybWF0aW9uKCkKICAgICAgICBzZWxmLnNwZWNpZnlfYm91bmRpbmdfYm94X3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuaW5zZXJ0X2JvdW5kaW5nX2JveF9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLnNwZWNpZnlfYm91bmRpbmdfYm94X3JlbGF0aW9ucygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X3Zpc2liaWxpdHlfaW5oZXJpdGFuY2VfcmVsYXRpb25zKCkKICAgICAgICBzZWxmLnNwZWNpZnlfcG9zaXRpb25faW5oZXJpdGFuY2UoKQogICAgICAgIHNlbGYuc29ydF9yZWxhdGlvbnNfYnlfcHJpb3JpdHkoKQoKICAgIGRlZiBzcGVjaWZ5X2NyZWF0aW9uKHNlbGYpOgogICAgICAgICIiInVzZWQgdG8gc3BlY2lmeSB0aGUgdW5pcXVlIGNyZWF0aW9uIGFuaW1hdGlvbiBmb3IgZWFjaCBpbmRpdmlkdWFsIGN1c3RvbSBvYmplY3QiIiIKICAgICAgICBwYXNzCgogICAgZGVmIGluaGVyaXRfY3JlYXRpb24oc2VsZik6CiAgICAgICAgIiIiaW5oZXJpdGluZyBjcmVhdGlvbiBmcm9tIHBhcnRzIiIiCiAgICAgICAgbW92ZW1lbnRzID0gW01vdmVtZW50KHBhcnQuY3JlYXRpb25fcGFyYW1ldGVyLCAoMCwgMSksIHBhcnQ9cGFydCkKICAgICAgICAgICAgICAgICAgICAgZm9yIHBhcnQgaW4gc2VsZi5wYXJ0c10KICAgICAgICBzZWxmLmNyZWF0aW9uX2FjdGlvbiA9IFhBY3Rpb24oKm1vdmVtZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGNvbXBsZXRpb25fcGFyYW1ldGVyPXNlbGYuY3JlYXRpb25fcGFyYW1ldGVyLCBuYW1lPSJDcmVhdGlvbiIpCgogICAgZGVmIHNwZWNpZnlfcG9zaXRpb25faW5oZXJpdGFuY2Uoc2VsZik6CiAgICAgICAgIiIidXNlZCB0byBzcGVjaWZ5IGhvdyB0aGUgcG9zaXRpb24gc2hvdWxkIGJlIGRldGVybWluZWQiIiIKICAgICAgICBwYXNzCgogICAgQGFic3RyYWN0bWV0aG9kCiAgICBkZWYgc3BlY2lmeV9wYXJ0cyhzZWxmKToKICAgICAgICAiIiJzYXZlIHBhcnRzIGFzIGF0dHJpYnV0ZXMgYW5kIHdyaXRlIHRoZW0gdG8gc2VsZi5wYXJ0cyIiIgogICAgICAgIHBhc3MKCiAgICBkZWYgaW5zZXJ0X3BhcnRzKHNlbGYpOgogICAgICAgICIiImluc2VydHMgdGhlIHBhcnRzIGFzIGNoaWxkcmVuIiIiCiAgICAgICAgZm9yIHBhcnQgaW4gc2VsZi5wYXJ0czoKICAgICAgICAgICAgIyBjaGVjayBpZiBwYXJ0IGlzIG5vdCBhbHJlYWR5IGNoaWxkIHNvIGV4aXN0aW5nIGhpZXJhcmNoaWVzIHdvbid0IGJlIGRpc3R1cmJlZAogICAgICAgICAgICBpZiBub3QgcGFydC5vYmouR2V0VXAoKToKICAgICAgICAgICAgICAgIHBhcnQub2JqLkluc2VydFVuZGVyKHNlbGYub2JqKQogICAgICAgICAgICAgICAgcGFydC5wYXJlbnQgPSBzZWxmCiAgICAgICAgICAgICMgY2hlY2sgZm9yIG1lbWJyYW5lcwogICAgICAgICAgICBpZiBoYXNhdHRyKHBhcnQsICJtZW1icmFuZSIpOgogICAgICAgICAgICAgICAgcGFydC5tZW1icmFuZS5vYmouSW5zZXJ0VW5kZXIoc2VsZi5vYmopCiAgICAgICAgICAgICAgICBwYXJ0Lm1lbWJyYW5lLnBhcmVudCA9IHNlbGYKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT251bGwpCgogICAgZGVmIHNwZWNpZnlfdmlzaWJpbGl0eV9pbmhlcml0YW5jZV9yZWxhdGlvbnMoc2VsZik6CiAgICAgICAgIiIiaW5oZXJpdHMgdmlzaWJpbGl0eSB0byBwYXJ0cyIiIgogICAgICAgIHZpc2liaWxpdHlfcmVsYXRpb25zID0gW10KICAgICAgICBmb3IgcGFydCBpbiBzZWxmLnBhcnRzOgogICAgICAgICAgICBpZiBoYXNhdHRyKHBhcnQsICJ2aXNpYmlsaXR5X3BhcmFtZXRlciIpIGFuZCBub3QgaXNpbnN0YW5jZShwYXJ0LCBlZmZlY3Rfb2JqZWN0cy5Nb3JwaGVyKToKICAgICAgICAgICAgICAgIHZpc2liaWxpdHlfcmVsYXRpb24gPSBYSWRlbnRpdHkoCiAgICAgICAgICAgICAgICAgICAgcGFydD1wYXJ0LCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bcGFydC52aXNpYmlsaXR5X3BhcmFtZXRlci5kZXNjX2lkXSwgcGFyYW1ldGVyPXNlbGYudmlzaWJpbGl0eV9wYXJhbWV0ZXIsIG5hbWU9IlZpc2liaWxpdHlJbmhlcml0YW5jZSIpCiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5X3JlbGF0aW9ucy5hcHBlbmQodmlzaWJpbGl0eV9yZWxhdGlvbikKCiAgICBkZWYgc3BlY2lmeV9ib3VuZGluZ19ib3hfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICAiIiJzcGVjaWZpZXMgYm91bmRpbmcgYm94IHBhcmFtZXRlcnMiIiIKICAgICAgICBkZWZhdWx0X2RpYW1ldGVyID0gc2VsZi5kaWFtZXRlciBpZiBzZWxmLmRpYW1ldGVyIGVsc2UgbWF4KAogICAgICAgICAgICBzZWxmLndpZHRoLCBzZWxmLmhlaWdodCwgc2VsZi5kZXB0aCkKICAgICAgICBzZWxmLmRpYW1ldGVyX3BhcmFtZXRlciA9IFVMZW5ndGgoCiAgICAgICAgICAgIG5hbWU9IkRpYW1ldGVyIiwgZGVmYXVsdF92YWx1ZT1kZWZhdWx0X2RpYW1ldGVyKQogICAgICAgIHNlbGYuZGVmYXVsdF93aWR0aF9wYXJhbWV0ZXIgPSBVTGVuZ3RoKAogICAgICAgICAgICBuYW1lPSJEZWZhdWx0V2lkdGgiLCBkZWZhdWx0X3ZhbHVlPXNlbGYud2lkdGgpCiAgICAgICAgc2VsZi5kZWZhdWx0X2hlaWdodF9wYXJhbWV0ZXIgPSBVTGVuZ3RoKAogICAgICAgICAgICBuYW1lPSJEZWZhdWx0SGVpZ2h0IiwgZGVmYXVsdF92YWx1ZT1zZWxmLmhlaWdodCkKICAgICAgICBzZWxmLmRlZmF1bHRfZGVwdGhfcGFyYW1ldGVyID0gVUxlbmd0aCgKICAgICAgICAgICAgbmFtZT0iRGVmYXVsdERlcHRoIiwgZGVmYXVsdF92YWx1ZT1zZWxmLmRlcHRoKQogICAgICAgIHNlbGYuYm91bmRpbmdfYm94X3BhcmFtZXRlcnMgPSBbc2VsZi5kaWFtZXRlcl9wYXJhbWV0ZXIsIHNlbGYuZGVmYXVsdF93aWR0aF9wYXJhbWV0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlZmF1bHRfaGVpZ2h0X3BhcmFtZXRlciwgc2VsZi5kZWZhdWx0X2RlcHRoX3BhcmFtZXRlcl0KCiAgICBkZWYgaW5zZXJ0X2JvdW5kaW5nX2JveF9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgICIiImluc2VydHMgdGhlIGJvdW5kaW5nIGJveCBwYXJhbWV0ZXJzIiIiCiAgICAgICAgc2VsZi5ib3VuZGluZ19ib3hfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgKnNlbGYuYm91bmRpbmdfYm94X3BhcmFtZXRlcnMsIHRhcmdldD1zZWxmLm9iaiwgbmFtZT0iQm91bmRpbmdCb3giKQoKICAgIGRlZiBzcGVjaWZ5X2JvdW5kaW5nX2JveF9yZWxhdGlvbnMoc2VsZik6CiAgICAgICAgIiIiZ2l2ZXMgdGhlIGN1c3RvbSBvYmplY3QgYmFzaWMgY29udHJvbCBvdmVyIHRoZSBib3VuZGluZyBib3ggZGlhbWV0ZXIiIiIKICAgICAgICBkaWFtZXRlcl9yZWxhdGlvbiA9IFhSZWxhdGlvbihwYXJ0PXNlbGYsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtTQ0FMRV9YLCBTQ0FMRV9ZLCBTQ0FMRV9aXSwgcGFyYW1ldGVycz1bc2VsZi5kaWFtZXRlcl9wYXJhbWV0ZXIsIHNlbGYuZGVmYXVsdF93aWR0aF9wYXJhbWV0ZXIsIHNlbGYuZGVmYXVsdF9oZWlnaHRfcGFyYW1ldGVyLCBzZWxmLmRlZmF1bHRfZGVwdGhfcGFyYW1ldGVyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtdWxhPWYie3NlbGYuZGlhbWV0ZXJfcGFyYW1ldGVyLm5hbWV9L21heCh7c2VsZi5kZWZhdWx0X3dpZHRoX3BhcmFtZXRlci5uYW1lfTttYXgoe3NlbGYuZGVmYXVsdF9oZWlnaHRfcGFyYW1ldGVyLm5hbWV9O3tzZWxmLmRlZmF1bHRfZGVwdGhfcGFyYW1ldGVyLm5hbWV9KSkiKQoKCmNsYXNzIE1lbWJyYW5lKEN1c3RvbU9iamVjdCk6CiAgICAiIiJjcmVhdGVzIGEgbWVtYnJhbmUgZm9yIGFueSBnaXZlbiBzcGxpbmUgdXNpbmcgdGhlIGV4dHJ1ZGUgYW5kIGluc3RhbmNlIG9iamVjdCIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzcGxpbmUsIHRoaWNrbmVzcz0wLCBmaWxsZWQ9MCwgY29sb3I9V0hJVEUsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnNwbGluZSA9IHNwbGluZQogICAgICAgIHNlbGYudGhpY2tuZXNzID0gdGhpY2tuZXNzCiAgICAgICAgc2VsZi5maWxsZWQgPSBmaWxsZWQKICAgICAgICBzZWxmLmNvbG9yID0gY29sb3IKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgICMgc2VsZi5pbnNlcnRfdW5kZXJfc3BsaW5lKCkKCiAgICBkZWYgaW5zZXJ0X3VuZGVyX3NwbGluZShzZWxmKToKICAgICAgICBzZWxmLm9iai5JbnNlcnRVbmRlcihzZWxmLnNwbGluZS5vYmopCgogICAgZGVmIHNwZWNpZnlfcGFydHMoc2VsZik6CiAgICAgICAgc2VsZi5pbnN0YW5jZSA9IGhlbHBlcl9vYmplY3RzLkluc3RhbmNlKHNlbGYuc3BsaW5lKQogICAgICAgIHNlbGYuZXh0cnVkZSA9IHNvbGlkX29iamVjdHMuRXh0cnVkZShzZWxmLmluc3RhbmNlLCBjb2xvcj1zZWxmLmNvbG9yKQogICAgICAgIHNlbGYucGFydHMgKz0gW3NlbGYuZXh0cnVkZSwgc2VsZi5pbnN0YW5jZV0KCiAgICBkZWYgc3BlY2lmeV9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgIHNlbGYudGhpY2tuZXNzX3BhcmFtZXRlciA9IFVMZW5ndGgoCiAgICAgICAgICAgIG5hbWU9IlRoaWNrbmVzc1BhcmFtZXRlciIsIGRlZmF1bHRfdmFsdWU9c2VsZi50aGlja25lc3MpCiAgICAgICAgc2VsZi5maWxsX3BhcmFtZXRlciA9IFVDb21wbGV0aW9uKAogICAgICAgICAgICBuYW1lPSJGaWxsIiwgZGVmYXVsdF92YWx1ZT1zZWxmLmZpbGxlZCkKICAgICAgICBzZWxmLnBhcmFtZXRlcnMgKz0gW3NlbGYudGhpY2tuZXNzX3BhcmFtZXRlciwgc2VsZi5maWxsX3BhcmFtZXRlcl0KCiAgICBkZWYgc3BlY2lmeV9yZWxhdGlvbnMoc2VsZik6CiAgICAgICAgdGhpY2tuZXNzX3JlbGF0aW9uID0gWElkZW50aXR5KHBhcnQ9c2VsZi5leHRydWRlLCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bc2VsZi5leHRydWRlLmRlc2NfaWRzWyJvZmZzZXQiXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj1zZWxmLnRoaWNrbmVzc19wYXJhbWV0ZXIpCiAgICAgICAgZmlsbF9pbmhlcml0YW5jZSA9IFhJZGVudGl0eShwYXJ0PXNlbGYuZXh0cnVkZSwgd2hvbGU9c2VsZiwgZGVzY19pZHM9W3NlbGYuZXh0cnVkZS5maWxsX3BhcmFtZXRlci5kZXNjX2lkXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj1zZWxmLmZpbGxfcGFyYW1ldGVyKQogICAgICAgICMgbW9zcGxpbmVfY29ycmVjdGlvbiA9IFhDb3JyZWN0TW9TcGxpbmVUcmFuc2Zvcm0oCiAgICAgICAgIyAgICBzZWxmLmluc3RhbmNlLCB0YXJnZXQ9c2VsZikKCiAgICBkZWYgc3BlY2lmeV9jcmVhdGlvbihzZWxmKToKICAgICAgICBjcmVhdGlvbl9hY3Rpb24gPSBYQWN0aW9uKAogICAgICAgICAgICBNb3ZlbWVudChzZWxmLmZpbGxfcGFyYW1ldGVyLCAoMCwgMSkpLAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgY29tcGxldGlvbl9wYXJhbWV0ZXI9c2VsZi5jcmVhdGlvbl9wYXJhbWV0ZXIsIG5hbWU9IkNyZWF0aW9uIikKCiAgICBkZWYgZmlsbChzZWxmLCBvcGFjaXR5KToKICAgICAgICByZXR1cm4gc2VsZi5jcmVhdGUob3BhY2l0eSkKCiAgICBkZWYgdW5fZmlsbChzZWxmLCBvcGFjaXR5PTApOgogICAgICAgIHJldHVybiBzZWxmLmNyZWF0ZShvcGFjaXR5KQoKCmNsYXNzIExpbmVPYmplY3QoVmlzaWJsZU9iamVjdCk6CiAgICAiIiJsaW5lIG9iamVjdHMgY29uc2lzdCBvZiBzcGxpbmVzIGFuZCBvbmx5IHJlcXVpcmUgYSBza2V0Y2ggbWF0ZXJpYWwiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgY29sb3I9V0hJVEUsIHBsYW5lPSJ4eSIsIGFycm93X3N0YXJ0PUZhbHNlLCBhcnJvd19lbmQ9RmFsc2UsIGRyYXdfY29tcGxldGlvbj0wLCBvcGFjaXR5PTEsIGhlbHBlcl9tb2RlPUZhbHNlLCBkcmF3X29yZGVyPSJsb25nX3RvX3Nob3J0IiwgZmlsbGVkPUZhbHNlLCBmaWxsX2NvbG9yPU5vbmUsICoqa3dhcmdzKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuY29sb3IgPSBjb2xvcgogICAgICAgIHNlbGYucGxhbmUgPSBwbGFuZQogICAgICAgIHNlbGYuYXJyb3dfc3RhcnQgPSBhcnJvd19zdGFydAogICAgICAgIHNlbGYuYXJyb3dfZW5kID0gYXJyb3dfZW5kCiAgICAgICAgc2VsZi5kcmF3X2NvbXBsZXRpb24gPSBkcmF3X2NvbXBsZXRpb24KICAgICAgICBzZWxmLm9wYWNpdHkgPSBvcGFjaXR5CiAgICAgICAgc2VsZi5kcmF3X29yZGVyID0gZHJhd19vcmRlcgogICAgICAgIGlmIG5vdCBoZWxwZXJfbW9kZToKICAgICAgICAgICAgc2VsZi5zZXRfc2tldGNoX21hdGVyaWFsKCkKICAgICAgICAgICAgc2VsZi5zZXRfc2tldGNoX3RhZygpCiAgICAgICAgICAgIHNlbGYuc2tldGNoX3BhcmFtZXRlcl9zZXR1cCgpCiAgICAgICAgICAgIHNlbGYuc2V0X3BsYW5lKCkKICAgICAgICAgICAgc2VsZi5zcGxpbmVfbGVuZ3RoX3BhcmFtZXRlcl9zZXR1cCgpCiAgICAgICAgICAgIHNlbGYucGFyYW1ldGVycyA9IFtdCiAgICAgICAgICAgIHNlbGYuc3BlY2lmeV9wYXJhbWV0ZXJzKCkKICAgICAgICAgICAgc2VsZi5pbnNlcnRfcGFyYW1ldGVycygpCiAgICAgICAgICAgIHNlbGYuc3BlY2lmeV9yZWxhdGlvbnMoKQogICAgICAgICAgICBzZWxmLmFjdGlvbl9wYXJhbWV0ZXJzID0gW10KICAgICAgICAgICAgc2VsZi5zcGVjaWZ5X2FjdGlvbl9wYXJhbWV0ZXJzKCkKICAgICAgICAgICAgc2VsZi5zcGVjaWZ5X2NyZWF0aW9uX3BhcmFtZXRlcigpCiAgICAgICAgICAgIHNlbGYuaW5zZXJ0X2FjdGlvbl9wYXJhbWV0ZXJzKCkKICAgICAgICAgICAgc2VsZi5zcGVjaWZ5X2FjdGlvbnMoKQogICAgICAgICAgICBzZWxmLnNwZWNpZnlfY3JlYXRpb24oKQogICAgICAgICAgICBzZWxmLnNvcnRfcmVsYXRpb25zX2J5X3ByaW9yaXR5KCkKICAgICAgICBzZWxmLmZpbGxlZCA9IGZpbGxlZAogICAgICAgIHNlbGYuZmlsbF9jb2xvciA9IGZpbGxfY29sb3IKICAgICAgICBpZiBzZWxmLmZpbGxlZDoKICAgICAgICAgICAgc2VsZi5jcmVhdGVfbWVtYnJhbmUoKQoKICAgIGRlZiBjcmVhdGVfbWVtYnJhbmUoc2VsZik6CiAgICAgICAgaWYgc2VsZi5maWxsX2NvbG9yOgogICAgICAgICAgICBjb2xvciA9IHNlbGYuZmlsbF9jb2xvcgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGNvbG9yID0gc2VsZi5jb2xvcgoKICAgICAgICBzZWxmLm1lbWJyYW5lID0gTWVtYnJhbmUoCiAgICAgICAgICAgIHNlbGYsIG5hbWU9c2VsZi5uYW1lICsgIk1lbWJyYW5lIiwgY3JlYXRpb249VHJ1ZSwgY29sb3I9Y29sb3IpCgogICAgZGVmIHNwbGluZV9sZW5ndGhfcGFyYW1ldGVyX3NldHVwKHNlbGYpOgogICAgICAgIHNlbGYuc3BlY2lmeV9zcGxpbmVfbGVuZ3RoX3BhcmFtZXRlcigpCiAgICAgICAgc2VsZi5pbnNlcnRfc3BsaW5lX2xlbmd0aF9wYXJhbWV0ZXIoKQogICAgICAgIHNlbGYuc3BlY2lmeV9zcGxpbmVfbGVuZ3RoX3JlbGF0aW9uKCkKCiAgICBkZWYgc2tldGNoX3BhcmFtZXRlcl9zZXR1cChzZWxmKToKICAgICAgICBzZWxmLnNwZWNpZnlfc2tldGNoX3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuaW5zZXJ0X3NrZXRjaF9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLnNwZWNpZnlfc2tldGNoX3JlbGF0aW9ucygpCgogICAgZGVmIHNwZWNpZnlfY3JlYXRpb24oc2VsZik6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSBjcmVhdGlvbiBhY3Rpb24iIiIKICAgICAgICBjcmVhdGlvbl9hY3Rpb24gPSBYQWN0aW9uKAogICAgICAgICAgICBNb3ZlbWVudChzZWxmLmRyYXdfcGFyYW1ldGVyLCAoMCwgMSkpLAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgY29tcGxldGlvbl9wYXJhbWV0ZXI9c2VsZi5jcmVhdGlvbl9wYXJhbWV0ZXIsIG5hbWU9IkNyZWF0aW9uIikKICAgICAgICBzZWxmLmFjdGlvbnMuYXBwZW5kKGNyZWF0aW9uX2FjdGlvbikKCiAgICBkZWYgc2V0X3NrZXRjaF9tYXRlcmlhbChzZWxmKToKICAgICAgICBzZWxmLnNrZXRjaF9tYXRlcmlhbCA9IFNrZXRjaE1hdGVyaWFsKAogICAgICAgICAgICBuYW1lPXNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBkcmF3X29yZGVyPXNlbGYuZHJhd19vcmRlciwgY29sb3I9c2VsZi5jb2xvciwgYXJyb3dfc3RhcnQ9c2VsZi5hcnJvd19zdGFydCwgYXJyb3dfZW5kPXNlbGYuYXJyb3dfZW5kKQoKICAgIGRlZiBzZXRfc2tldGNoX3RhZyhzZWxmKToKICAgICAgICBzZWxmLnNrZXRjaF90YWcgPSBTa2V0Y2hUYWcodGFyZ2V0PXNlbGYsIG1hdGVyaWFsPXNlbGYuc2tldGNoX21hdGVyaWFsKQoKICAgIGRlZiBzcGVjaWZ5X3NrZXRjaF9wYXJhbWV0ZXJzKHNlbGYpOgogICAgICAgIHNlbGYuZHJhd19wYXJhbWV0ZXIgPSBVQ29tcGxldGlvbigKICAgICAgICAgICAgbmFtZT0iRHJhdyIsIGRlZmF1bHRfdmFsdWU9c2VsZi5kcmF3X2NvbXBsZXRpb24pCiAgICAgICAgc2VsZi5vcGFjaXR5X3BhcmFtZXRlciA9IFVDb21wbGV0aW9uKAogICAgICAgICAgICBuYW1lPSJPcGFjaXR5IiwgZGVmYXVsdF92YWx1ZT1zZWxmLm9wYWNpdHkpCiAgICAgICAgc2VsZi5jb2xvcl9wYXJhbWV0ZXIgPSBVQ29sb3IoCiAgICAgICAgICAgIG5hbWU9IkNvbG9yIiwgZGVmYXVsdF92YWx1ZT1zZWxmLmNvbG9yKQogICAgICAgIHNlbGYuc2tldGNoX3BhcmFtZXRlcnMgPSBbc2VsZi5kcmF3X3BhcmFtZXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub3BhY2l0eV9wYXJhbWV0ZXIsIHNlbGYuY29sb3JfcGFyYW1ldGVyXQoKICAgIGRlZiBpbnNlcnRfc2tldGNoX3BhcmFtZXRlcnMoc2VsZik6CiAgICAgICAgc2VsZi5kcmF3X3VfZ3JvdXAgPSBVR3JvdXAoCiAgICAgICAgICAgICpzZWxmLnNrZXRjaF9wYXJhbWV0ZXJzLCB0YXJnZXQ9c2VsZi5vYmosIG5hbWU9IlNrZXRjaCIpCgogICAgZGVmIHNwZWNpZnlfc2tldGNoX3JlbGF0aW9ucyhzZWxmKToKICAgICAgICBkcmF3X3JlbGF0aW9uID0gWElkZW50aXR5KHBhcnQ9c2VsZi5za2V0Y2hfbWF0ZXJpYWwsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLnNrZXRjaF9tYXRlcmlhbC5kZXNjX2lkc1siZHJhd19jb21wbGV0aW9uIl1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyPXNlbGYuZHJhd19wYXJhbWV0ZXIpCiAgICAgICAgb3BhY2l0eV9yZWxhdGlvbiA9IFhJZGVudGl0eShwYXJ0PXNlbGYuc2tldGNoX21hdGVyaWFsLCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bc2VsZi5za2V0Y2hfbWF0ZXJpYWwuZGVzY19pZHNbIm9wYWNpdHkiXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXI9c2VsZi5vcGFjaXR5X3BhcmFtZXRlcikKICAgICAgICBjb2xvcl9yZWxhdGlvbiA9IFhJZGVudGl0eShwYXJ0PXNlbGYuc2tldGNoX21hdGVyaWFsLCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bc2VsZi5za2V0Y2hfbWF0ZXJpYWwuZGVzY19pZHNbImNvbG9yIl1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj1zZWxmLmNvbG9yX3BhcmFtZXRlcikKCiAgICBkZWYgc2V0X3BsYW5lKHNlbGYpOgogICAgICAgIHBsYW5lcyA9IHsieHkiOiAwLCAienkiOiAxLCAieHoiOiAyfQogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX1BMQU5FXSA9IHBsYW5lc1tzZWxmLnBsYW5lXQoKICAgIGRlZiBzcGVjaWZ5X3NwbGluZV9sZW5ndGhfcGFyYW1ldGVyKHNlbGYpOgogICAgICAgIHNlbGYuc3BsaW5lX2xlbmd0aF9wYXJhbWV0ZXIgPSBVTGVuZ3RoKG5hbWU9IlNwbGluZUxlbmd0aCIpCgogICAgZGVmIGluc2VydF9zcGxpbmVfbGVuZ3RoX3BhcmFtZXRlcihzZWxmKToKICAgICAgICBzZWxmLnNwbGluZV9sZW5ndGhfdV9ncm91cCA9IFVHcm91cCgKICAgICAgICAgICAgc2VsZi5zcGxpbmVfbGVuZ3RoX3BhcmFtZXRlciwgdGFyZ2V0PXNlbGYub2JqLCBuYW1lPSJTcGxpbmUiKQoKICAgIGRlZiBzcGVjaWZ5X3NwbGluZV9sZW5ndGhfcmVsYXRpb24oc2VsZik6CiAgICAgICAgc2VsZi5zcGxpbmVfbGVuZ3RoX3JlbGF0aW9uID0gWFNwbGluZUxlbmd0aCgKICAgICAgICAgICAgc3BsaW5lPXNlbGYsIHdob2xlPXNlbGYsIHBhcmFtZXRlcj1zZWxmLnNwbGluZV9sZW5ndGhfcGFyYW1ldGVyKQoKICAgIGRlZiBkcmF3KHNlbGYsIGNvbXBsZXRpb249MSk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSBkcmF3IGFuaW1hdGlvbiIiIgogICAgICAgIGRlc2NfaWQgPSBzZWxmLmRyYXdfcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBTY2FsYXJBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NfaWQsIHZhbHVlX2Zpbj1jb21wbGV0aW9uKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29tcGxldGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgdW5fZHJhdyhzZWxmLCBjb21wbGV0aW9uPTApOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgdW5kcmF3IGFuaW1hdGlvbiIiIgogICAgICAgIGRlc2NfaWQgPSBzZWxmLmRyYXdfcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBTY2FsYXJBbmltYXRpb24oCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBkZXNjcmlwdG9yPWRlc2NfaWQsIHZhbHVlX2Zpbj1jb21wbGV0aW9uKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29tcGxldGlvbgogICAgICAgIHJldHVybiBhbmltYXRpb24KCiAgICBkZWYgZmFkZV9pbihzZWxmLCBjb21wbGV0aW9uPTEpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgZmFkZSBpbiBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5vcGFjaXR5X3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIGZhZGVfb3V0KHNlbGYsIGNvbXBsZXRpb249MCk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSBmYWRlIG91dCBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5vcGFjaXR5X3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIGNoYW5nZV9jb2xvcihzZWxmLCBjb2xvcik6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSBjb2xvciBjaGFuZ2UgYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuY29sb3JfcGFyYW1ldGVyLmRlc2NfaWQKICAgICAgICBhbmltYXRpb24gPSBDb2xvckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY19pZCwgdmVjdG9yPWNvbG9yKQogICAgICAgIHNlbGYub2JqW2Rlc2NfaWRdID0gY29sb3IKICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgoKY2xhc3MgU29saWRPYmplY3QoVmlzaWJsZU9iamVjdCk6CiAgICAiIiJzb2xpZCBvYmplY3RzIG9ubHkgcmVxdWlyZSBhIGZpbGwgbWF0ZXJpYWwiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsbGVkPTAsIGdsb3dpbmc9MCwgY29sb3I9V0hJVEUsIGZpbGxfY29sb3I9Tm9uZSwgc2tldGNoX2NvbG9yPU5vbmUsIGRyYXdfb3JkZXI9ImxvbmdfdG9fc2hvcnQiLCBkcmF3X2NvbXBsZXRpb249MCwgYXJyb3dfc3RhcnQ9RmFsc2UsIGFycm93X2VuZD1GYWxzZSwgZmlsbF9vcGFjaXR5PTEsIHNrZXRjaF9vcGFjaXR5PTEsIG91dGxpbmVfb25seT1GYWxzZSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuZmlsbGVkID0gZmlsbGVkCiAgICAgICAgc2VsZi5nbG93aW5nID0gZ2xvd2luZwogICAgICAgIHNlbGYuY29sb3IgPSBjb2xvcgogICAgICAgIHNlbGYuZmlsbF9jb2xvciA9IGZpbGxfY29sb3IKICAgICAgICBzZWxmLnNrZXRjaF9jb2xvciA9IHNrZXRjaF9jb2xvcgogICAgICAgIHNlbGYuZHJhd19vcmRlciA9IGRyYXdfb3JkZXIKICAgICAgICBzZWxmLmRyYXdfY29tcGxldGlvbiA9IGRyYXdfY29tcGxldGlvbgogICAgICAgIHNlbGYuYXJyb3dfc3RhcnQgPSBhcnJvd19zdGFydAogICAgICAgIHNlbGYuYXJyb3dfZW5kID0gYXJyb3dfZW5kCiAgICAgICAgc2VsZi5za2V0Y2hfb3BhY2l0eSA9IHNrZXRjaF9vcGFjaXR5CiAgICAgICAgc2VsZi5maWxsX29wYWNpdHkgPSBmaWxsX29wYWNpdHkKICAgICAgICBzZWxmLm91dGxpbmVfb25seSA9IG91dGxpbmVfb25seQogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgc2VsZi5kZXJpdmVfY29sb3JzKCkKICAgICAgICAjIGZpbGwgc2V0dXAKICAgICAgICBzZWxmLnNldF9maWxsX21hdGVyaWFsKCkKICAgICAgICBzZWxmLnNldF9maWxsX3RhZygpCiAgICAgICAgc2VsZi5maWxsX3BhcmFtZXRlcl9zZXR1cCgpCiAgICAgICAgIyBza2V0Y2ggc2V0dXAKICAgICAgICBzZWxmLnNldF9za2V0Y2hfbWF0ZXJpYWwoKQogICAgICAgIHNlbGYuc2V0X3NrZXRjaF90YWcoKQogICAgICAgIHNlbGYuc2tldGNoX3BhcmFtZXRlcl9zZXR1cCgpCiAgICAgICAgc2VsZi5wYXJhbWV0ZXJzID0gW10KICAgICAgICBzZWxmLnNwZWNpZnlfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5pbnNlcnRfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X3JlbGF0aW9ucygpCiAgICAgICAgc2VsZi5hY3Rpb25fcGFyYW1ldGVycyA9IFtdCiAgICAgICAgc2VsZi5zcGVjaWZ5X2FjdGlvbl9wYXJhbWV0ZXJzKCkKICAgICAgICBzZWxmLnNwZWNpZnlfY3JlYXRpb25fcGFyYW1ldGVyKCkKICAgICAgICBzZWxmLmluc2VydF9hY3Rpb25fcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5zcGVjaWZ5X2FjdGlvbnMoKQogICAgICAgIHNlbGYuc3BlY2lmeV9jcmVhdGlvbigpCiAgICAgICAgc2VsZi5zb3J0X3JlbGF0aW9uc19ieV9wcmlvcml0eSgpCgogICAgZGVmIGRlcml2ZV9jb2xvcnMoc2VsZik6CiAgICAgICAgaWYgbm90IHNlbGYuZmlsbF9jb2xvcjoKICAgICAgICAgICAgc2VsZi5maWxsX2NvbG9yID0gc2VsZi5jb2xvcgogICAgICAgIGlmIG5vdCBzZWxmLnNrZXRjaF9jb2xvcjoKICAgICAgICAgICAgc2VsZi5za2V0Y2hfY29sb3IgPSBzZWxmLmNvbG9yCgogICAgZGVmIHNwZWNpZnlfY3JlYXRpb24oc2VsZik6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSBjcmVhdGlvbiBhY3Rpb24iIiIKICAgICAgICBjcmVhdGlvbl9hY3Rpb24gPSBYQWN0aW9uKAogICAgICAgICAgICBNb3ZlbWVudChzZWxmLmZpbGxfcGFyYW1ldGVyLCAoMSAvIDMsIDEpLCBvdXRwdXQoMCwgc2VsZi5maWxsX29wYWNpdHkpKSwKICAgICAgICAgICAgTW92ZW1lbnQoc2VsZi5kcmF3X3BhcmFtZXRlciwgKDAsIDIgLyAzKSksCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBjb21wbGV0aW9uX3BhcmFtZXRlcj1zZWxmLmNyZWF0aW9uX3BhcmFtZXRlciwgbmFtZT0iQ3JlYXRpb24iKQoKICAgIGRlZiBmaWxsX3BhcmFtZXRlcl9zZXR1cChzZWxmKToKICAgICAgICBzZWxmLnNwZWNpZnlfZmlsbF9wYXJhbWV0ZXIoKQogICAgICAgIHNlbGYuaW5zZXJ0X2ZpbGxfcGFyYW1ldGVyKCkKICAgICAgICBzZWxmLnNwZWNpZnlfZmlsbF9yZWxhdGlvbigpCgogICAgZGVmIHNldF9maWxsX21hdGVyaWFsKHNlbGYpOgogICAgICAgIHNlbGYuZmlsbF9tYXRlcmlhbCA9IEZpbGxNYXRlcmlhbCgKICAgICAgICAgICAgbmFtZT1zZWxmLm5hbWUsIGZpbGw9c2VsZi5maWxsZWQsIGNvbG9yPXNlbGYuZmlsbF9jb2xvcikKCiAgICBkZWYgc2V0X2ZpbGxfdGFnKHNlbGYpOgogICAgICAgIHNlbGYuZmlsbF90YWcgPSBGaWxsVGFnKHRhcmdldD1zZWxmLCBtYXRlcmlhbD1zZWxmLmZpbGxfbWF0ZXJpYWwpCgogICAgZGVmIHNwZWNpZnlfZmlsbF9wYXJhbWV0ZXIoc2VsZik6CiAgICAgICAgc2VsZi5maWxsX3BhcmFtZXRlciA9IFVDb21wbGV0aW9uKAogICAgICAgICAgICBuYW1lPSJGaWxsIiwgZGVmYXVsdF92YWx1ZT1zZWxmLmZpbGxlZCkKICAgICAgICBzZWxmLmdsb3dfcGFyYW1ldGVyID0gVUNvbXBsZXRpb24oCiAgICAgICAgICAgIG5hbWU9Ikdsb3ciLCBkZWZhdWx0X3ZhbHVlPXNlbGYuZ2xvd2luZykKICAgICAgICBzZWxmLmZpbGxfcGFyYW1ldGVycyA9IFtzZWxmLmZpbGxfcGFyYW1ldGVyLCBzZWxmLmdsb3dfcGFyYW1ldGVyXQoKICAgIGRlZiBpbnNlcnRfZmlsbF9wYXJhbWV0ZXIoc2VsZik6CiAgICAgICAgc2VsZi5maWxsX3VfZ3JvdXAgPSBVR3JvdXAoCiAgICAgICAgICAgICpzZWxmLmZpbGxfcGFyYW1ldGVycywgdGFyZ2V0PXNlbGYub2JqLCBuYW1lPSJTb2xpZCIpCgogICAgZGVmIHNwZWNpZnlfZmlsbF9yZWxhdGlvbihzZWxmKToKICAgICAgICBzZWxmLmZpbGxfcmVsYXRpb24gPSBYUmVsYXRpb24ocGFydD1zZWxmLmZpbGxfbWF0ZXJpYWwsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLmZpbGxfbWF0ZXJpYWwuZGVzY19pZHNbInRyYW5zcGFyZW5jeSJdXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycz1bc2VsZi5maWxsX3BhcmFtZXRlcl0sIGZvcm11bGE9ZiIxLXtzZWxmLmZpbGxfcGFyYW1ldGVyLm5hbWV9IikKICAgICAgICBzZWxmLmdsb3dfcmVsYXRpb24gPSBYUmVsYXRpb24ocGFydD1zZWxmLmZpbGxfbWF0ZXJpYWwsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLmZpbGxfbWF0ZXJpYWwuZGVzY19pZHNbImdsb3dfYnJpZ2h0bmVzcyJdXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycz1bc2VsZi5nbG93X3BhcmFtZXRlcl0sIGZvcm11bGE9ZiJ7c2VsZi5nbG93X3BhcmFtZXRlci5uYW1lfSIpCgogICAgZGVmIGZpbGwoc2VsZiwgY29tcGxldGlvbj0xKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIGZpbGwgYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuZmlsbF9wYXJhbWV0ZXIuZGVzY19pZAogICAgICAgIGFuaW1hdGlvbiA9IFNjYWxhckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY19pZCwgdmFsdWVfZmluPWNvbXBsZXRpb24pCiAgICAgICAgc2VsZi5vYmpbZGVzY19pZF0gPSBjb21wbGV0aW9uCiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgoKICAgIGRlZiB1bl9maWxsKHNlbGYsIGNvbXBsZXRpb249MCk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSB1bmZpbGwgYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuZmlsbF9wYXJhbWV0ZXIuZGVzY19pZAogICAgICAgIGFuaW1hdGlvbiA9IFNjYWxhckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY19pZCwgdmFsdWVfZmluPWNvbXBsZXRpb24pCiAgICAgICAgc2VsZi5vYmpbZGVzY19pZF0gPSBjb21wbGV0aW9uCiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgoKICAgIGRlZiBza2V0Y2hfcGFyYW1ldGVyX3NldHVwKHNlbGYpOgogICAgICAgIHNlbGYuc3BlY2lmeV9za2V0Y2hfcGFyYW1ldGVycygpCiAgICAgICAgc2VsZi5pbnNlcnRfc2tldGNoX3BhcmFtZXRlcnMoKQogICAgICAgIHNlbGYuc3BlY2lmeV9za2V0Y2hfcmVsYXRpb25zKCkKCiAgICBkZWYgc2V0X3NrZXRjaF9tYXRlcmlhbChzZWxmKToKICAgICAgICBzZWxmLnNrZXRjaF9tYXRlcmlhbCA9IFNrZXRjaE1hdGVyaWFsKAogICAgICAgICAgICBuYW1lPXNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBkcmF3X29yZGVyPXNlbGYuZHJhd19vcmRlciwgY29sb3I9c2VsZi5za2V0Y2hfY29sb3IsIGFycm93X3N0YXJ0PXNlbGYuYXJyb3dfc3RhcnQsIGFycm93X2VuZD1zZWxmLmFycm93X2VuZCkKCiAgICBkZWYgc2V0X3NrZXRjaF90YWcoc2VsZik6CiAgICAgICAgb3V0bGluZSA9IFRydWUKICAgICAgICBjcmVhc2VzID0gVHJ1ZQogICAgICAgIHNwbGluZXMgPSBUcnVlCiAgICAgICAgaWYgc2VsZi5vdXRsaW5lX29ubHk6CiAgICAgICAgICAgIGNyZWFzZXMgPSBGYWxzZQogICAgICAgICAgICBzcGxpbmVzID0gRmFsc2UKICAgICAgICBzZWxmLnNrZXRjaF90YWcgPSBTa2V0Y2hUYWcoCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBtYXRlcmlhbD1zZWxmLnNrZXRjaF9tYXRlcmlhbCwgc3BsaW5lcz1zcGxpbmVzLCBvdXRsaW5lPW91dGxpbmUsIGNyZWFzZXM9Y3JlYXNlcykKCiAgICBkZWYgc3BlY2lmeV9za2V0Y2hfcGFyYW1ldGVycyhzZWxmKToKICAgICAgICBzZWxmLmRyYXdfcGFyYW1ldGVyID0gVUNvbXBsZXRpb24oCiAgICAgICAgICAgIG5hbWU9IkRyYXciLCBkZWZhdWx0X3ZhbHVlPXNlbGYuZHJhd19jb21wbGV0aW9uKQogICAgICAgIHNlbGYub3BhY2l0eV9wYXJhbWV0ZXIgPSBVQ29tcGxldGlvbigKICAgICAgICAgICAgbmFtZT0iU2tldGNoT3BhY2l0eSIsIGRlZmF1bHRfdmFsdWU9c2VsZi5za2V0Y2hfb3BhY2l0eSkKICAgICAgICBzZWxmLmNvbG9yX3BhcmFtZXRlciA9IFVDb2xvcigKICAgICAgICAgICAgbmFtZT0iQ29sb3IiLCBkZWZhdWx0X3ZhbHVlPXNlbGYuc2tldGNoX2NvbG9yKQogICAgICAgIHNlbGYuc2tldGNoX3BhcmFtZXRlcnMgPSBbc2VsZi5kcmF3X3BhcmFtZXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub3BhY2l0eV9wYXJhbWV0ZXIsIHNlbGYuY29sb3JfcGFyYW1ldGVyXQoKICAgIGRlZiBpbnNlcnRfc2tldGNoX3BhcmFtZXRlcnMoc2VsZik6CiAgICAgICAgc2VsZi5kcmF3X3VfZ3JvdXAgPSBVR3JvdXAoCiAgICAgICAgICAgICpzZWxmLnNrZXRjaF9wYXJhbWV0ZXJzLCB0YXJnZXQ9c2VsZi5vYmosIG5hbWU9IlNrZXRjaCIpCgogICAgZGVmIHNwZWNpZnlfc2tldGNoX3JlbGF0aW9ucyhzZWxmKToKICAgICAgICBkcmF3X3JlbGF0aW9uID0gWElkZW50aXR5KHBhcnQ9c2VsZi5za2V0Y2hfbWF0ZXJpYWwsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLnNrZXRjaF9tYXRlcmlhbC5kZXNjX2lkc1siZHJhd19jb21wbGV0aW9uIl1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyPXNlbGYuZHJhd19wYXJhbWV0ZXIpCiAgICAgICAgb3BhY2l0eV9yZWxhdGlvbiA9IFhJZGVudGl0eShwYXJ0PXNlbGYuc2tldGNoX21hdGVyaWFsLCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bc2VsZi5za2V0Y2hfbWF0ZXJpYWwuZGVzY19pZHNbIm9wYWNpdHkiXV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXI9c2VsZi5vcGFjaXR5X3BhcmFtZXRlcikKICAgICAgICBjb2xvcl9yZWxhdGlvbiA9IFhJZGVudGl0eShwYXJ0PXNlbGYuc2tldGNoX21hdGVyaWFsLCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bc2VsZi5za2V0Y2hfbWF0ZXJpYWwuZGVzY19pZHNbImNvbG9yIl1dLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj1zZWxmLmNvbG9yX3BhcmFtZXRlcikKCiAgICBkZWYgZHJhdyhzZWxmLCBjb21wbGV0aW9uPTEpOgogICAgICAgICIiInNwZWNpZmllcyB0aGUgZHJhdyBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5kcmF3X3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIHVuX2RyYXcoc2VsZiwgY29tcGxldGlvbj0wKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIHVuZHJhdyBhbmltYXRpb24iIiIKICAgICAgICBkZXNjX2lkID0gc2VsZi5kcmF3X3BhcmFtZXRlci5kZXNjX2lkCiAgICAgICAgYW5pbWF0aW9uID0gU2NhbGFyQW5pbWF0aW9uKAogICAgICAgICAgICB0YXJnZXQ9c2VsZiwgZGVzY3JpcHRvcj1kZXNjX2lkLCB2YWx1ZV9maW49Y29tcGxldGlvbikKICAgICAgICBzZWxmLm9ialtkZXNjX2lkXSA9IGNvbXBsZXRpb24KICAgICAgICByZXR1cm4gYW5pbWF0aW9uCgogICAgZGVmIGdsb3coc2VsZiwgY29tcGxldGlvbj0xKToKICAgICAgICAiIiJzcGVjaWZpZXMgdGhlIGdsb3cgYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuZ2xvd19wYXJhbWV0ZXIuZGVzY19pZAogICAgICAgIGFuaW1hdGlvbiA9IFNjYWxhckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY19pZCwgdmFsdWVfZmluPWNvbXBsZXRpb24pCiAgICAgICAgc2VsZi5vYmpbZGVzY19pZF0gPSBjb21wbGV0aW9uCiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgoKICAgIGRlZiB1bl9nbG93KHNlbGYsIGNvbXBsZXRpb249MCk6CiAgICAgICAgIiIic3BlY2lmaWVzIHRoZSB1bmdsb3cgYW5pbWF0aW9uIiIiCiAgICAgICAgZGVzY19pZCA9IHNlbGYuZ2xvd19wYXJhbWV0ZXIuZGVzY19pZAogICAgICAgIGFuaW1hdGlvbiA9IFNjYWxhckFuaW1hdGlvbigKICAgICAgICAgICAgdGFyZ2V0PXNlbGYsIGRlc2NyaXB0b3I9ZGVzY19pZCwgdmFsdWVfZmluPWNvbXBsZXRpb24pCiAgICAgICAgc2VsZi5vYmpbZGVzY19pZF0gPSBjb21wbGV0aW9uCiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbgo", 1416 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAefQAAAAAAAB59AAAAAAAAAAAAAAAA8L8" 1417 ], 1418 [ 1419 248, 1420 1, 1421 "insert", 1422 { 1423 "characters": "=" 1424 }, 1425 "AQAAAB19AAAAAAAAHn0AAAAAAAAAAAAA", 1426 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAdfQAAAAAAAB19AAAAAAAAAAAAAAAA8L8" 1427 ], 1428 [ 1429 249, 1430 1, 1431 "left_delete", 1432 null, 1433 "AQAAAB19AAAAAAAAHX0AAAAAAAABAAAAPQ", 1434 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAefQAAAAAAAB59AAAAAAAAAAAAAAAA8L8" 1435 ], 1436 [ 1437 251, 1438 1, 1439 "insert", 1440 { 1441 "characters": "=" 1442 }, 1443 "AQAAAB59AAAAAAAAH30AAAAAAAAAAAAA", 1444 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAefQAAAAAAAB59AAAAAAAAAAAAAAAA8L8" 1445 ], 1446 [ 1447 267, 1448 1, 1449 "insert", 1450 { 1451 "characters": "," 1452 }, 1453 "AQAAAPtKAAAAAAAA/EoAAAAAAAAAAAAA", 1454 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD7SgAAAAAAAPtKAAAAAAAAAAAAAAAA8L8" 1455 ], 1456 [ 1457 268, 1458 1, 1459 "insert", 1460 { 1461 "characters": " easing=" 1462 }, 1463 "CAAAAPxKAAAAAAAA/UoAAAAAAAAAAAAA/UoAAAAAAAD+SgAAAAAAAAAAAAD+SgAAAAAAAP9KAAAAAAAAAAAAAP9KAAAAAAAAAEsAAAAAAAAAAAAAAEsAAAAAAAABSwAAAAAAAAAAAAABSwAAAAAAAAJLAAAAAAAAAAAAAAJLAAAAAAAAA0sAAAAAAAAAAAAAA0sAAAAAAAAESwAAAAAAAAAAAAA", 1464 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD8SgAAAAAAAPxKAAAAAAAAAAAAAAAA8L8" 1465 ], 1466 [ 1467 269, 1468 1, 1469 "insert", 1470 { 1471 "characters": "False" 1472 }, 1473 "BQAAAARLAAAAAAAABUsAAAAAAAAAAAAABUsAAAAAAAAGSwAAAAAAAAAAAAAGSwAAAAAAAAdLAAAAAAAAAAAAAAdLAAAAAAAACEsAAAAAAAAAAAAACEsAAAAAAAAJSwAAAAAAAAAAAAA", 1474 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAESwAAAAAAAARLAAAAAAAAAAAAAAAA8L8" 1475 ], 1476 [ 1477 279, 1478 1, 1479 "cut", 1480 null, 1481 "AQAAAIRXAAAAAAAAhFcAAAAAAABEBwAAY2xhc3MgTWVtYnJhbmUoQ3VzdG9tT2JqZWN0KToKICAgICIiImNyZWF0ZXMgYSBtZW1icmFuZSBmb3IgYW55IGdpdmVuIHNwbGluZSB1c2luZyB0aGUgZXh0cnVkZSBhbmQgaW5zdGFuY2Ugb2JqZWN0IiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHNwbGluZSwgdGhpY2tuZXNzPTAsIGZpbGxlZD0wLCBjb2xvcj1XSElURSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuc3BsaW5lID0gc3BsaW5lCiAgICAgICAgc2VsZi50aGlja25lc3MgPSB0aGlja25lc3MKICAgICAgICBzZWxmLmZpbGxlZCA9IGZpbGxlZAogICAgICAgIHNlbGYuY29sb3IgPSBjb2xvcgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgIyBzZWxmLmluc2VydF91bmRlcl9zcGxpbmUoKQoKICAgIGRlZiBpbnNlcnRfdW5kZXJfc3BsaW5lKHNlbGYpOgogICAgICAgIHNlbGYub2JqLkluc2VydFVuZGVyKHNlbGYuc3BsaW5lLm9iaikKCiAgICBkZWYgc3BlY2lmeV9wYXJ0cyhzZWxmKToKICAgICAgICBzZWxmLmluc3RhbmNlID0gaGVscGVyX29iamVjdHMuSW5zdGFuY2Uoc2VsZi5zcGxpbmUpCiAgICAgICAgc2VsZi5leHRydWRlID0gc29saWRfb2JqZWN0cy5FeHRydWRlKHNlbGYuaW5zdGFuY2UsIGNvbG9yPXNlbGYuY29sb3IpCiAgICAgICAgc2VsZi5wYXJ0cyArPSBbc2VsZi5leHRydWRlLCBzZWxmLmluc3RhbmNlXQoKICAgIGRlZiBzcGVjaWZ5X3BhcmFtZXRlcnMoc2VsZik6CiAgICAgICAgc2VsZi50aGlja25lc3NfcGFyYW1ldGVyID0gVUxlbmd0aCgKICAgICAgICAgICAgbmFtZT0iVGhpY2tuZXNzUGFyYW1ldGVyIiwgZGVmYXVsdF92YWx1ZT1zZWxmLnRoaWNrbmVzcykKICAgICAgICBzZWxmLmZpbGxfcGFyYW1ldGVyID0gVUNvbXBsZXRpb24oCiAgICAgICAgICAgIG5hbWU9IkZpbGwiLCBkZWZhdWx0X3ZhbHVlPXNlbGYuZmlsbGVkKQogICAgICAgIHNlbGYucGFyYW1ldGVycyArPSBbc2VsZi50aGlja25lc3NfcGFyYW1ldGVyLCBzZWxmLmZpbGxfcGFyYW1ldGVyXQoKICAgIGRlZiBzcGVjaWZ5X3JlbGF0aW9ucyhzZWxmKToKICAgICAgICB0aGlja25lc3NfcmVsYXRpb24gPSBYSWRlbnRpdHkocGFydD1zZWxmLmV4dHJ1ZGUsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLmV4dHJ1ZGUuZGVzY19pZHNbIm9mZnNldCJdXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyPXNlbGYudGhpY2tuZXNzX3BhcmFtZXRlcikKICAgICAgICBmaWxsX2luaGVyaXRhbmNlID0gWElkZW50aXR5KHBhcnQ9c2VsZi5leHRydWRlLCB3aG9sZT1zZWxmLCBkZXNjX2lkcz1bc2VsZi5leHRydWRlLmZpbGxfcGFyYW1ldGVyLmRlc2NfaWRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyPXNlbGYuZmlsbF9wYXJhbWV0ZXIpCiAgICAgICAgIyBtb3NwbGluZV9jb3JyZWN0aW9uID0gWENvcnJlY3RNb1NwbGluZVRyYW5zZm9ybSgKICAgICAgICAjICAgIHNlbGYuaW5zdGFuY2UsIHRhcmdldD1zZWxmKQoKICAgIGRlZiBzcGVjaWZ5X2NyZWF0aW9uKHNlbGYpOgogICAgICAgIGNyZWF0aW9uX2FjdGlvbiA9IFhBY3Rpb24oCiAgICAgICAgICAgIE1vdmVtZW50KHNlbGYuZmlsbF9wYXJhbWV0ZXIsICgwLCAxKSksCiAgICAgICAgICAgIHRhcmdldD1zZWxmLCBjb21wbGV0aW9uX3BhcmFtZXRlcj1zZWxmLmNyZWF0aW9uX3BhcmFtZXRlciwgbmFtZT0iQ3JlYXRpb24iKQoKICAgIGRlZiBmaWxsKHNlbGYsIG9wYWNpdHkpOgogICAgICAgIHJldHVybiBzZWxmLmNyZWF0ZShvcGFjaXR5KQoKICAgIGRlZiB1bl9maWxsKHNlbGYsIG9wYWNpdHk9MCk6CiAgICAgICAgcmV0dXJuIHNlbGYuY3JlYXRlKG9wYWNpdHkp", 1482 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADIXgAAAAAAAIRXAAAAAAAAAAAAAAAA8L8" 1483 ], 1484 [ 1485 280, 1486 3, 1487 "left_delete", 1488 null, 1489 "AwAAAINXAAAAAAAAg1cAAAAAAAABAAAACoJXAAAAAAAAglcAAAAAAAABAAAACoFXAAAAAAAAgVcAAAAAAAABAAAACg", 1490 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACEVwAAAAAAAIRXAAAAAAAAAAAAAAAA8L8" 1491 ], 1492 [ 1493 283, 1494 1, 1495 "run_macro_file", 1496 { 1497 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 1498 }, 1499 "AQAAAIICAAAAAAAAggIAAAAAAAA3AAAAaW1wb3J0IHB5ZGVhdGlvbi5vYmplY3RzLnNvbGlkX29iamVjdHMgYXMgc29saWRfb2JqZWN0cw", 1500 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAC5AgAAAAAAALkCAAAAAAAAAAAAAAAA8L8" 1501 ], 1502 [ 1503 284, 1504 1, 1505 "left_delete", 1506 null, 1507 "AQAAAIECAAAAAAAAgQIAAAAAAAABAAAACg", 1508 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACCAgAAAAAAAIICAAAAAAAAAAAAAAAA8L8" 1509 ], 1510 [ 1511 285, 1512 1, 1513 "run_macro_file", 1514 { 1515 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 1516 }, 1517 "AQAAAEgCAAAAAAAASAIAAAAAAAA5AAAAaW1wb3J0IHB5ZGVhdGlvbi5vYmplY3RzLmhlbHBlcl9vYmplY3RzIGFzIGhlbHBlcl9vYmplY3Rz", 1518 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACBAgAAAAAAAIECAAAAAAAAAAAAAAAA8L8" 1519 ], 1520 [ 1521 286, 1522 1, 1523 "left_delete", 1524 null, 1525 "AQAAAEcCAAAAAAAARwIAAAAAAAABAAAACg", 1526 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABIAgAAAAAAAEgCAAAAAAAAAAAAAAAA8L8" 1527 ], 1528 [ 1529 287, 1530 1, 1531 "insert", 1532 { 1533 "characters": "\n" 1534 }, 1535 "AQAAAEcCAAAAAAAASAIAAAAAAAAAAAAA", 1536 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABHAgAAAAAAAEcCAAAAAAAAAAAAAAAA8L8" 1537 ], 1538 [ 1539 288, 1540 1, 1541 "copilot_accept_completion", 1542 null, 1543 "AQAAAEgCAAAAAAAAgQIAAAAAAAAAAAAA", 1544 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABIAgAAAAAAAEgCAAAAAAAAAAAAAAAA8L8" 1545 ], 1546 [ 1547 293, 1548 1, 1549 "insert", 1550 { 1551 "characters": "cus" 1552 }, 1553 "CAAAAHMCAAAAAAAAdAIAAAAAAAAAAAAAdAIAAAAAAAB0AgAAAAAAAA4AAABoZWxwZXJfb2JqZWN0c2ECAAAAAAAAYgIAAAAAAAAAAAAAYgIAAAAAAABiAgAAAAAAAA4AAABoZWxwZXJfb2JqZWN0c2cCAAAAAAAAaAIAAAAAAAAAAAAAYgIAAAAAAABjAgAAAAAAAAAAAABpAgAAAAAAAGoCAAAAAAAAAAAAAGMCAAAAAAAAZAIAAAAAAAAAAAAA", 1554 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAIAAABhAgAAAAAAAG8CAAAAAAAAAAAAAAAA8L9zAgAAAAAAAIECAAAAAAAAAAAAAAAA8L8" 1555 ], 1556 [ 1557 294, 1558 1, 1559 "insert", 1560 { 1561 "characters": "tom_objects" 1562 }, 1563 "FgAAAGsCAAAAAAAAbAIAAAAAAAAAAAAAZAIAAAAAAABlAgAAAAAAAAAAAABtAgAAAAAAAG4CAAAAAAAAAAAAAGUCAAAAAAAAZgIAAAAAAAAAAAAAbwIAAAAAAABwAgAAAAAAAAAAAABmAgAAAAAAAGcCAAAAAAAAAAAAAHECAAAAAAAAcgIAAAAAAAAAAAAAZwIAAAAAAABoAgAAAAAAAAAAAABzAgAAAAAAAHQCAAAAAAAAAAAAAGgCAAAAAAAAaQIAAAAAAAAAAAAAdQIAAAAAAAB2AgAAAAAAAAAAAABpAgAAAAAAAGoCAAAAAAAAAAAAAHcCAAAAAAAAeAIAAAAAAAAAAAAAagIAAAAAAABrAgAAAAAAAAAAAAB5AgAAAAAAAHoCAAAAAAAAAAAAAGsCAAAAAAAAbAIAAAAAAAAAAAAAewIAAAAAAAB8AgAAAAAAAAAAAABsAgAAAAAAAG0CAAAAAAAAAAAAAH0CAAAAAAAAfgIAAAAAAAAAAAAAbQIAAAAAAABuAgAAAAAAAAAAAAB/AgAAAAAAAIACAAAAAAAAAAAAAG4CAAAAAAAAbwIAAAAAAAAAAAAA", 1564 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAIAAABkAgAAAAAAAGQCAAAAAAAAAAAAAAAA8L9rAgAAAAAAAGsCAAAAAAAAAAAAAAAA8L8" 1565 ], 1566 [ 1567 303, 1568 1, 1569 "insert", 1570 { 1571 "characters": "#" 1572 }, 1573 "AQAAAEgCAAAAAAAASQIAAAAAAAAAAAAA", 1574 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABIAgAAAAAAAEgCAAAAAAAAAAAAAAAAAAA" 1575 ], 1576 [ 1577 305, 1578 1, 1579 "left_delete", 1580 null, 1581 "AQAAAEgCAAAAAAAASAIAAAAAAAABAAAAIw", 1582 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABJAgAAAAAAAEkCAAAAAAAAAAAAAAAA8L8" 1583 ], 1584 [ 1585 2, 1586 1, 1587 "insert", 1588 { 1589 "characters": "#" 1590 }, 1591 "AQAAAEgCAAAAAAAASQIAAAAAAAAAAAAA", 1592 "BAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAASAIAAAAAAABIAgAAAAAAAAAAAAAAAPC/" 1593 ], 1594 [ 1595 4, 1596 1, 1597 "left_delete", 1598 null, 1599 "AQAAAEgCAAAAAAAASAIAAAAAAAABAAAAIw", 1600 "BAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAASQIAAAAAAABJAgAAAAAAAAAAAAAAAPC/" 1601 ], 1602 [ 1603 1, 1604 1, 1605 "insert", 1606 { 1607 "characters": "#" 1608 }, 1609 "AQAAAEgCAAAAAAAASQIAAAAAAAAAAAAA", 1610 "AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAEgCAAAAAAAASAIAAAAAAAAAAAAAAADwvw" 1611 ], 1612 [ 1613 3, 1614 1, 1615 "left_delete", 1616 null, 1617 "AQAAAEgCAAAAAAAASAIAAAAAAAABAAAAIw", 1618 "AwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAEkCAAAAAAAASQIAAAAAAAAAAAAAAADwvw" 1619 ], 1620 [ 1621 6, 1622 1, 1623 "insert", 1624 { 1625 "characters": "#" 1626 }, 1627 "AQAAAEgCAAAAAAAASQIAAAAAAAAAAAAA", 1628 "AQAAAAAAAAABAAAASAIAAAAAAABIAgAAAAAAAAAAAAAAAAAA" 1629 ], 1630 [ 1631 7, 1632 1, 1633 "left_delete", 1634 null, 1635 "AQAAAEgCAAAAAAAASAIAAAAAAAABAAAAIw", 1636 "AQAAAAAAAAABAAAASQIAAAAAAABJAgAAAAAAAAAAAAAAAPC/" 1637 ] 1638 ] 1639 }, 1640 { 1641 "file": "xpresso/xpressions.py", 1642 "settings": 1643 { 1644 "buffer_size": 66772, 1645 "line_ending": "Unix" 1646 } 1647 }, 1648 { 1649 "file": "materials.py", 1650 "settings": 1651 { 1652 "buffer_size": 4352, 1653 "encoding": "UTF-8", 1654 "line_ending": "Unix" 1655 }, 1656 "undo_stack": 1657 [ 1658 [ 1659 3, 1660 1, 1661 "insert", 1662 { 1663 "characters": "\n" 1664 }, 1665 "AgAAAN8HAAAAAAAA4AcAAAAAAAAAAAAA4AcAAAAAAADoBwAAAAAAAAAAAAA", 1666 "AQAAAAAAAAABAAAA3wcAAAAAAADfBwAAAAAAAAAAAAAAAPC/" 1667 ], 1668 [ 1669 4, 1670 3, 1671 "left_delete", 1672 null, 1673 "AwAAAOQHAAAAAAAA5AcAAAAAAAAEAAAAICAgIOAHAAAAAAAA4AcAAAAAAAAEAAAAICAgIN8HAAAAAAAA3wcAAAAAAAABAAAACg", 1674 "AQAAAAAAAAABAAAA6AcAAAAAAADoBwAAAAAAAAAAAAAAAPC/" 1675 ], 1676 [ 1677 5, 1678 1, 1679 "duplicate_line", 1680 null, 1681 "AQAAAOAHAAAAAAAAHggAAAAAAAAAAAAA", 1682 "AQAAAAAAAAABAAAA3wcAAAAAAADfBwAAAAAAAAAAAAAAAPC/" 1683 ], 1684 [ 1685 6, 1686 5, 1687 "delete_word", 1688 { 1689 "forward": false 1690 }, 1691 "BQAAAA0IAAAAAAAADQgAAAAAAAAQAAAAU1BMSU5FX1RISUNLTkVTUwsIAAAAAAAACwgAAAAAAAACAAAAPSAJCAAAAAAAAAkIAAAAAAAAAgAAAF0g9QcAAAAAAAD1BwAAAAAAABQAAABPVVRMSU5FTUFUX1RISUNLTkVTU/QHAAAAAAAA9AcAAAAAAAABAAAALg", 1692 "AQAAAAAAAAABAAAAHQgAAAAAAAAdCAAAAAAAAAAAAAAAAPC/" 1693 ], 1694 [ 1695 7, 1696 4, 1697 "left_delete", 1698 null, 1699 "BAAAAPMHAAAAAAAA8wcAAAAAAAABAAAAZPIHAAAAAAAA8gcAAAAAAAABAAAANPEHAAAAAAAA8QcAAAAAAAABAAAAY/AHAAAAAAAA8AcAAAAAAAABAAAAWw", 1700 "AQAAAAAAAAABAAAA9AcAAAAAAAD0BwAAAAAAAAAAAAAAAPC/" 1701 ], 1702 [ 1703 8, 1704 1, 1705 "paste", 1706 null, 1707 "AQAAAPAHAAAAAAAADwgAAAAAAAAAAAAA", 1708 "AQAAAAAAAAABAAAA8AcAAAAAAADwBwAAAAAAAAAAAAAAAPC/" 1709 ], 1710 [ 1711 9, 1712 1, 1713 "copilot_accept_completion", 1714 null, 1715 "AgAAAOAHAAAAAAAA4AcAAAAAAAAvAAAAICAgICAgICBzZWxmLm9ialtjNGQuT1VUTElORU1BVF9GSUxURVJfU1RST0tFU13gBwAAAAAAACgIAAAAAAAAAAAAAA", 1716 "AQAAAAAAAAABAAAADwgAAAAAAAAPCAAAAAAAAAAAAAAAAPC/" 1717 ], 1718 [ 1719 10, 1720 4, 1721 "delete_word", 1722 { 1723 "forward": false 1724 }, 1725 "BAAAACEIAAAAAAAAIQgAAAAAAAAHAAAAc3Ryb2tlcxoIAAAAAAAAGggAAAAAAAAHAAAAZmlsdGVyIBgIAAAAAAAAGAgAAAAAAAACAAAAIyAWCAAAAAAAABYIAAAAAAAAAgAAACAg", 1726 "AQAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" 1727 ], 1728 [ 1729 11, 1730 1, 1731 "left_delete", 1732 null, 1733 "AQAAABUIAAAAAAAAFQgAAAAAAAABAAAAZQ", 1734 "AQAAAAAAAAABAAAAFggAAAAAAAAWCAAAAAAAAAAAAAAAAPC/" 1735 ], 1736 [ 1737 12, 1738 1, 1739 "delete_word", 1740 { 1741 "forward": false 1742 }, 1743 "AQAAABIIAAAAAAAAEggAAAAAAAADAAAAVHJ1", 1744 "AQAAAAAAAAABAAAAFQgAAAAAAAAVCAAAAAAAAAAAAAAAAPC/" 1745 ], 1746 [ 1747 13, 1748 1, 1749 "insert", 1750 { 1751 "characters": "False" 1752 }, 1753 "BQAAABIIAAAAAAAAEwgAAAAAAAAAAAAAEwgAAAAAAAAUCAAAAAAAAAAAAAAUCAAAAAAAABUIAAAAAAAAAAAAABUIAAAAAAAAFggAAAAAAAAAAAAAFggAAAAAAAAXCAAAAAAAAAAAAAA", 1754 "AQAAAAAAAAABAAAAEggAAAAAAAASCAAAAAAAAAAAAAAAAPC/" 1755 ], 1756 [ 1757 14, 1758 1, 1759 "insert", 1760 { 1761 "characters": " " 1762 }, 1763 "AQAAABcIAAAAAAAAGAgAAAAAAAAAAAAA", 1764 "AQAAAAAAAAABAAAAFwgAAAAAAAAXCAAAAAAAAAAAAAAAAPC/" 1765 ] 1766 ] 1767 }, 1768 { 1769 "file": "objects/solid_objects.py", 1770 "settings": 1771 { 1772 "buffer_size": 7107, 1773 "encoding": "UTF-8", 1774 "line_ending": "Unix" 1775 }, 1776 "undo_stack": 1777 [ 1778 [ 1779 7, 1780 1, 1781 "insert", 1782 { 1783 "characters": "=None" 1784 }, 1785 "BQAAAE0XAAAAAAAAThcAAAAAAAAAAAAAThcAAAAAAABPFwAAAAAAAAAAAABPFwAAAAAAAFAXAAAAAAAAAAAAAFAXAAAAAAAAURcAAAAAAAAAAAAAURcAAAAAAABSFwAAAAAAAAAAAAA", 1786 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAE0XAAAAAAAATRcAAAAAAAAAAAAAAADwvw" 1787 ], 1788 [ 1789 16, 1790 4, 1791 "left_delete", 1792 null, 1793 "BAAAAJQZAAAAAAAAlBkAAAAAAAABAAAAc5MZAAAAAAAAkxkAAAAAAAABAAAAcpIZAAAAAAAAkhkAAAAAAAABAAAAaZEZAAAAAAAAkRkAAAAAAAABAAAARg", 1794 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJUZAAAAAAAAlRkAAAAAAAAAAAAAAADwvw" 1795 ], 1796 [ 1797 18, 1798 1, 1799 "left_delete", 1800 null, 1801 "AQAAAJEZAAAAAAAAkRkAAAAAAAABAAAAdA", 1802 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJIZAAAAAAAAkhkAAAAAAAAAAAAAAADwvw" 1803 ], 1804 [ 1805 19, 1806 1, 1807 "insert", 1808 { 1809 "characters": "Last" 1810 }, 1811 "BAAAAJEZAAAAAAAAkhkAAAAAAAAAAAAAkhkAAAAAAACTGQAAAAAAAAAAAACTGQAAAAAAAJQZAAAAAAAAAAAAAJQZAAAAAAAAlRkAAAAAAAAAAAAA", 1812 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJEZAAAAAAAAkRkAAAAAAAAAAAAAAADwvw" 1813 ], 1814 [ 1815 27, 1816 7, 1817 "swap_line_down", 1818 null, 1819 "EAAAAGwZAAAAAAAA7RkAAAAAAAAAAAAAyRgAAAAAAADJGAAAAAAAAIEAAAAgICAgICAgICMgcmVtb3ZlIHN1cGVyZmx1b3VzIG1hdGVyaWFsIG51bGwKICAgICAgICBtYXRlcmlhbF9udWxsID0gc2VsZi5kb2N1bWVudC5HZXRGaXJzdE9iamVjdCgpCiAgICAgICAgbWF0ZXJpYWxfbnVsbC5SZW1vdmUoKQqeGQAAAAAAAB8aAAAAAAAAAAAAAOsYAAAAAAAA6xgAAAAAAACBAAAAICAgICAgICAjIHJlbW92ZSBzdXBlcmZsdW91cyBtYXRlcmlhbCBudWxsCiAgICAgICAgbWF0ZXJpYWxfbnVsbCA9IHNlbGYuZG9jdW1lbnQuR2V0Rmlyc3RPYmplY3QoKQogICAgICAgIG1hdGVyaWFsX251bGwuUmVtb3ZlKCkKxhkAAAAAAABHGgAAAAAAAAAAAAAdGQAAAAAAAB0ZAAAAAAAAgQAAACAgICAgICAgIyByZW1vdmUgc3VwZXJmbHVvdXMgbWF0ZXJpYWwgbnVsbAogICAgICAgIG1hdGVyaWFsX251bGwgPSBzZWxmLmRvY3VtZW50LkdldEZpcnN0T2JqZWN0KCkKICAgICAgICBtYXRlcmlhbF9udWxsLlJlbW92ZSgpCu4ZAAAAAAAAbxoAAAAAAAAAAAAARRkAAAAAAABFGQAAAAAAAIEAAAAgICAgICAgICMgcmVtb3ZlIHN1cGVyZmx1b3VzIG1hdGVyaWFsIG51bGwKICAgICAgICBtYXRlcmlhbF9udWxsID0gc2VsZi5kb2N1bWVudC5HZXRGaXJzdE9iamVjdCgpCiAgICAgICAgbWF0ZXJpYWxfbnVsbC5SZW1vdmUoKQoXGgAAAAAAAJgaAAAAAAAAAAAAAG0ZAAAAAAAAbRkAAAAAAACBAAAAICAgICAgICAjIHJlbW92ZSBzdXBlcmZsdW91cyBtYXRlcmlhbCBudWxsCiAgICAgICAgbWF0ZXJpYWxfbnVsbCA9IHNlbGYuZG9jdW1lbnQuR2V0Rmlyc3RPYmplY3QoKQogICAgICAgIG1hdGVyaWFsX251bGwuUmVtb3ZlKCkKMhoAAAAAAACzGgAAAAAAAAAAAACWGQAAAAAAAJYZAAAAAAAAgQAAACAgICAgICAgIyByZW1vdmUgc3VwZXJmbHVvdXMgbWF0ZXJpYWwgbnVsbAogICAgICAgIG1hdGVyaWFsX251bGwgPSBzZWxmLmRvY3VtZW50LkdldEZpcnN0T2JqZWN0KCkKICAgICAgICBtYXRlcmlhbF9udWxsLlJlbW92ZSgpCkwaAAAAAAAAzRoAAAAAAAAAAAAAzBoAAAAAAADMGgAAAAAAAAEAAAAKTBoAAAAAAABNGgAAAAAAAAAAAACxGQAAAAAAALEZAAAAAAAAgQAAACAgICAgICAgIyByZW1vdmUgc3VwZXJmbHVvdXMgbWF0ZXJpYWwgbnVsbAogICAgICAgIG1hdGVyaWFsX251bGwgPSBzZWxmLmRvY3VtZW50LkdldEZpcnN0T2JqZWN0KCkKICAgICAgICBtYXRlcmlhbF9udWxsLlJlbW92ZSgpCg", 1820 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAEkZAAAAAAAA0RgAAAAAAAAAAAAAAABMQA" 1821 ], 1822 [ 1823 34, 1824 4, 1825 "left_delete", 1826 null, 1827 "BAAAACMaAAAAAAAAIxoAAAAAAAABAAAAcyIaAAAAAAAAIhoAAAAAAAABAAAAciEaAAAAAAAAIRoAAAAAAAABAAAAaSAaAAAAAAAAIBoAAAAAAAABAAAARg", 1828 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACQaAAAAAAAAJBoAAAAAAAAAAAAAAADwvw" 1829 ], 1830 [ 1831 35, 1832 1, 1833 "insert", 1834 { 1835 "characters": "Las" 1836 }, 1837 "AwAAACAaAAAAAAAAIRoAAAAAAAAAAAAAIRoAAAAAAAAiGgAAAAAAAAAAAAAiGgAAAAAAACMaAAAAAAAAAAAAAA", 1838 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACAaAAAAAAAAIBoAAAAAAAAAAAAAAADwvw" 1839 ], 1840 [ 1841 41, 1842 1, 1843 "insert", 1844 { 1845 "characters": "Search" 1846 }, 1847 "BwAAAA0ZAAAAAAAADhkAAAAAAAAAAAAADhkAAAAAAAAOGQAAAAAAAA0AAABHZXRMYXN0T2JqZWN0DhkAAAAAAAAPGQAAAAAAAAAAAAAPGQAAAAAAABAZAAAAAAAAAAAAABAZAAAAAAAAERkAAAAAAAAAAAAAERkAAAAAAAASGQAAAAAAAAAAAAASGQAAAAAAABMZAAAAAAAAAAAAAA", 1848 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAA0ZAAAAAAAAGhkAAAAAAAAAAAAAAADwvw" 1849 ], 1850 [ 1851 42, 1852 1, 1853 "insert", 1854 { 1855 "characters": "Object(" 1856 }, 1857 "BwAAABMZAAAAAAAAFBkAAAAAAAAAAAAAFBkAAAAAAAAVGQAAAAAAAAAAAAAVGQAAAAAAABYZAAAAAAAAAAAAABYZAAAAAAAAFxkAAAAAAAAAAAAAFxkAAAAAAAAYGQAAAAAAAAAAAAAYGQAAAAAAABkZAAAAAAAAAAAAABkZAAAAAAAAGhkAAAAAAAAAAAAA", 1858 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABMZAAAAAAAAExkAAAAAAAAAAAAAAADwvw" 1859 ], 1860 [ 1861 43, 1862 1, 1863 "left_delete", 1864 null, 1865 "AQAAABkZAAAAAAAAGRkAAAAAAAABAAAAKA", 1866 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABoZAAAAAAAAGhkAAAAAAAAAAAAAAADwvw" 1867 ], 1868 [ 1869 45, 1870 1, 1871 "insert_snippet", 1872 { 1873 "contents": "\"$0\"" 1874 }, 1875 "AQAAABoZAAAAAAAAHBkAAAAAAAAAAAAA", 1876 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABoZAAAAAAAAGhkAAAAAAAAAAAAAAADwvw" 1877 ], 1878 [ 1879 46, 1880 1, 1881 "insert", 1882 { 1883 "characters": "Root" 1884 }, 1885 "BAAAABsZAAAAAAAAHBkAAAAAAAAAAAAAHBkAAAAAAAAdGQAAAAAAAAAAAAAdGQAAAAAAAB4ZAAAAAAAAAAAAAB4ZAAAAAAAAHxkAAAAAAAAAAAAA", 1886 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABsZAAAAAAAAGxkAAAAAAAAAAAAAAADwvw" 1887 ], 1888 [ 1889 50, 1890 1, 1891 "delete_word", 1892 { 1893 "forward": false 1894 }, 1895 "AQAAACIaAAAAAAAAIhoAAAAAAAANAAAAR2V0TGFzdE9iamVjdA", 1896 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAC8aAAAAAAAALxoAAAAAAAAAAAAAAADwvw" 1897 ], 1898 [ 1899 52, 1900 2, 1901 "left_delete", 1902 null, 1903 "AgAAACMaAAAAAAAAIxoAAAAAAAABAAAAKSIaAAAAAAAAIhoAAAAAAAABAAAAKA", 1904 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACQaAAAAAAAAJBoAAAAAAAAAAAAAAADwvw" 1905 ], 1906 [ 1907 53, 1908 1, 1909 "copilot_accept_completion", 1910 null, 1911 "AgAAAPwZAAAAAAAA/BkAAAAAAAAmAAAAICAgICAgICBtYXRlcmlhbF9udWxsID0gc2VsZi5kb2N1bWVudC78GQAAAAAAADsaAAAAAAAAAAAAAA", 1912 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACIaAAAAAAAAIhoAAAAAAAAAAAAAAADwvw" 1913 ], 1914 [ 1915 63, 1916 5, 1917 "swap_line_up", 1918 null, 1919 "DAAAANEZAAAAAAAA0RkAAAAAAACJAAAAICAgICAgICAjIHJlbW92ZSBzdXBlcmZsdW91cyBtYXRlcmlhbCBudWxsCiAgICAgICAgbWF0ZXJpYWxfbnVsbCA9IHNlbGYuZG9jdW1lbnQuU2VhcmNoT2JqZWN0KCJNYXRlcmlhbHMiKQogICAgICAgIG1hdGVyaWFsX251bGwuUmVtb3ZlKCnQGQAAAAAAANAZAAAAAAAAAQAAAAq2GQAAAAAAALcZAAAAAAAAAAAAALYZAAAAAAAAPxoAAAAAAAAAAAAAthkAAAAAAAC2GQAAAAAAAIoAAAAgICAgICAgICMgcmVtb3ZlIHN1cGVyZmx1b3VzIG1hdGVyaWFsIG51bGwKICAgICAgICBtYXRlcmlhbF9udWxsID0gc2VsZi5kb2N1bWVudC5TZWFyY2hPYmplY3QoIk1hdGVyaWFscyIpCiAgICAgICAgbWF0ZXJpYWxfbnVsbC5SZW1vdmUoKQqbGQAAAAAAACUaAAAAAAAAAAAAAJsZAAAAAAAAmxkAAAAAAACKAAAAICAgICAgICAjIHJlbW92ZSBzdXBlcmZsdW91cyBtYXRlcmlhbCBudWxsCiAgICAgICAgbWF0ZXJpYWxfbnVsbCA9IHNlbGYuZG9jdW1lbnQuU2VhcmNoT2JqZWN0KCJNYXRlcmlhbHMiKQogICAgICAgIG1hdGVyaWFsX251bGwuUmVtb3ZlKCkKchkAAAAAAAD8GQAAAAAAAAAAAAByGQAAAAAAAHIZAAAAAAAAigAAACAgICAgICAgIyByZW1vdmUgc3VwZXJmbHVvdXMgbWF0ZXJpYWwgbnVsbAogICAgICAgIG1hdGVyaWFsX251bGwgPSBzZWxmLmRvY3VtZW50LlNlYXJjaE9iamVjdCgiTWF0ZXJpYWxzIikKICAgICAgICBtYXRlcmlhbF9udWxsLlJlbW92ZSgpCkoZAAAAAAAA1BkAAAAAAAAAAAAAShkAAAAAAABKGQAAAAAAAIoAAAAgICAgICAgICMgcmVtb3ZlIHN1cGVyZmx1b3VzIG1hdGVyaWFsIG51bGwKICAgICAgICBtYXRlcmlhbF9udWxsID0gc2VsZi5kb2N1bWVudC5TZWFyY2hPYmplY3QoIk1hdGVyaWFscyIpCiAgICAgICAgbWF0ZXJpYWxfbnVsbC5SZW1vdmUoKQoiGQAAAAAAAKwZAAAAAAAAAAAAAA", 1920 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFoaAAAAAAAA2RkAAAAAAAAAAAAAAABMQA" 1921 ], 1922 [ 1923 64, 1924 2, 1925 "swap_line_up", 1926 null, 1927 "BAAAACIZAAAAAAAAIhkAAAAAAACKAAAAICAgICAgICAjIHJlbW92ZSBzdXBlcmZsdW91cyBtYXRlcmlhbCBudWxsCiAgICAgICAgbWF0ZXJpYWxfbnVsbCA9IHNlbGYuZG9jdW1lbnQuU2VhcmNoT2JqZWN0KCJNYXRlcmlhbHMiKQogICAgICAgIG1hdGVyaWFsX251bGwuUmVtb3ZlKCkK6xgAAAAAAAB1GQAAAAAAAAAAAADrGAAAAAAAAOsYAAAAAAAAigAAACAgICAgICAgIyByZW1vdmUgc3VwZXJmbHVvdXMgbWF0ZXJpYWwgbnVsbAogICAgICAgIG1hdGVyaWFsX251bGwgPSBzZWxmLmRvY3VtZW50LlNlYXJjaE9iamVjdCgiTWF0ZXJpYWxzIikKICAgICAgICBtYXRlcmlhbF9udWxsLlJlbW92ZSgpCskYAAAAAAAAUxkAAAAAAAAAAAAA", 1928 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAKsZAAAAAAAAKhkAAAAAAAAAAAAAAABMQA" 1929 ], 1930 [ 1931 72, 1932 1, 1933 "insert", 1934 { 1935 "characters": "\nprtin" 1936 }, 1937 "BwAAADMZAAAAAAAANBkAAAAAAAAAAAAANBkAAAAAAAA8GQAAAAAAAAAAAAA8GQAAAAAAAD0ZAAAAAAAAAAAAAD0ZAAAAAAAAPhkAAAAAAAAAAAAAPhkAAAAAAAA/GQAAAAAAAAAAAAA/GQAAAAAAAEAZAAAAAAAAAAAAAEAZAAAAAAAAQRkAAAAAAAAAAAAA", 1938 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADMZAAAAAAAAMxkAAAAAAAAAAAAAAADwvw" 1939 ], 1940 [ 1941 73, 1942 3, 1943 "left_delete", 1944 null, 1945 "AwAAAEAZAAAAAAAAQBkAAAAAAAABAAAAbj8ZAAAAAAAAPxkAAAAAAAABAAAAaT4ZAAAAAAAAPhkAAAAAAAABAAAAdA", 1946 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAEEZAAAAAAAAQRkAAAAAAAAAAAAAAADwvw" 1947 ], 1948 [ 1949 74, 1950 1, 1951 "copilot_accept_completion", 1952 null, 1953 "AgAAADQZAAAAAAAANBkAAAAAAAAKAAAAICAgICAgICBwcjQZAAAAAAAAUBkAAAAAAAAAAAAA", 1954 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAD4ZAAAAAAAAPhkAAAAAAAAAAAAAAADwvw" 1955 ], 1956 [ 1957 77, 1958 1, 1959 "insert", 1960 { 1961 "characters": "\n" 1962 }, 1963 "AgAAAMgZAAAAAAAAyRkAAAAAAAAAAAAAyRkAAAAAAADRGQAAAAAAAAAAAAA", 1964 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMgZAAAAAAAAyBkAAAAAAAD////////vfw" 1965 ], 1966 [ 1967 78, 1968 1, 1969 "insert", 1970 { 1971 "characters": "pr" 1972 }, 1973 "AgAAANEZAAAAAAAA0hkAAAAAAAAAAAAA0hkAAAAAAADTGQAAAAAAAAAAAAA", 1974 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANEZAAAAAAAA0RkAAAAAAAAAAAAAAADwvw" 1975 ], 1976 [ 1977 79, 1978 1, 1979 "copilot_accept_completion", 1980 null, 1981 "AgAAAMkZAAAAAAAAyRkAAAAAAAAKAAAAICAgICAgICBwcskZAAAAAAAA4RkAAAAAAAAAAAAA", 1982 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANMZAAAAAAAA0xkAAAAAAAAAAAAAAADwvw" 1983 ], 1984 [ 1985 87, 1986 1, 1987 "insert", 1988 { 1989 "characters": ".GetClone" 1990 }, 1991 "CQAAAAoYAAAAAAAACxgAAAAAAAAAAAAACxgAAAAAAAAMGAAAAAAAAAAAAAAMGAAAAAAAAA0YAAAAAAAAAAAAAA0YAAAAAAAADhgAAAAAAAAAAAAADhgAAAAAAAAPGAAAAAAAAAAAAAAPGAAAAAAAABAYAAAAAAAAAAAAABAYAAAAAAAAERgAAAAAAAAAAAAAERgAAAAAAAASGAAAAAAAAAAAAAASGAAAAAAAABMYAAAAAAAAAAAAAA", 1992 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAoYAAAAAAAAChgAAAAAAAAAAAAAAADwvw" 1993 ], 1994 [ 1995 88, 1996 1, 1997 "insert_snippet", 1998 { 1999 "contents": "($0)" 2000 }, 2001 "AQAAABMYAAAAAAAAFRgAAAAAAAAAAAAA", 2002 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABMYAAAAAAAAExgAAAAAAAAAAAAAAADwvw" 2003 ], 2004 [ 2005 94, 2006 1, 2007 "run_macro_file", 2008 { 2009 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 2010 }, 2011 "AQAAANQZAAAAAAAA1BkAAAAAAAAYAAAAICAgICAgICBwcmludChyb290X251bGwp", 2012 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOwZAAAAAAAA7BkAAAAAAAAAAAAAAADwvw" 2013 ], 2014 [ 2015 95, 2016 1, 2017 "left_delete", 2018 null, 2019 "AQAAANMZAAAAAAAA0xkAAAAAAAABAAAACg", 2020 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANQZAAAAAAAA1BkAAAAAAAAAAAAAAADwvw" 2021 ], 2022 [ 2023 97, 2024 1, 2025 "run_macro_file", 2026 { 2027 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 2028 }, 2029 "AQAAAD8ZAAAAAAAAPxkAAAAAAAAcAAAAICAgICAgICBwcmludChtYXRlcmlhbF9udWxsKQ", 2030 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFsZAAAAAAAAWxkAAAAAAAAAAAAAAKB3QA" 2031 ], 2032 [ 2033 98, 2034 1, 2035 "left_delete", 2036 null, 2037 "AQAAAD4ZAAAAAAAAPhkAAAAAAAABAAAACg", 2038 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAD8ZAAAAAAAAPxkAAAAAAAAAAAAAAADwvw" 2039 ], 2040 [ 2041 102, 2042 5, 2043 "left_delete", 2044 null, 2045 "BQAAAMMZAAAAAAAAwxkAAAAAAAABAAAALsIZAAAAAAAAwhkAAAAAAAABAAAAZsEZAAAAAAAAwRkAAAAAAAABAAAAbMAZAAAAAAAAwBkAAAAAAAABAAAAZb8ZAAAAAAAAvxkAAAAAAAABAAAAcw", 2046 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMQZAAAAAAAAxBkAAAAAAAAAAAAAAADwvw" 2047 ], 2048 [ 2049 106, 2050 2, 2051 "delete_word", 2052 { 2053 "forward": false 2054 }, 2055 "AgAAAA4aAAAAAAAADhoAAAAAAAABAAAALgoaAAAAAAAAChoAAAAAAAAEAAAAc2VsZg", 2056 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAA8aAAAAAAAADxoAAAAAAAAAAAAAAADwvw" 2057 ], 2058 [ 2059 109, 2060 1, 2061 "insert", 2062 { 2063 "characters": "mesh_copy" 2064 }, 2065 "CQAAAAoaAAAAAAAACxoAAAAAAAAAAAAACxoAAAAAAAAMGgAAAAAAAAAAAAAMGgAAAAAAAA0aAAAAAAAAAAAAAA0aAAAAAAAADhoAAAAAAAAAAAAADhoAAAAAAAAPGgAAAAAAAAAAAAAPGgAAAAAAABAaAAAAAAAAAAAAABAaAAAAAAAAERoAAAAAAAAAAAAAERoAAAAAAAASGgAAAAAAAAAAAAASGgAAAAAAABMaAAAAAAAAAAAAAA", 2066 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAoaAAAAAAAAChoAAAAAAAAAAAAAAADwvw" 2067 ], 2068 [ 2069 110, 2070 1, 2071 "insert", 2072 { 2073 "characters": " =" 2074 }, 2075 "AgAAABMaAAAAAAAAFBoAAAAAAAAAAAAAFBoAAAAAAAAVGgAAAAAAAAAAAAA", 2076 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABMaAAAAAAAAExoAAAAAAAAAAAAAAADwvw" 2077 ], 2078 [ 2079 111, 2080 1, 2081 "insert", 2082 { 2083 "characters": " " 2084 }, 2085 "AQAAABUaAAAAAAAAFhoAAAAAAAAAAAAA", 2086 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABUaAAAAAAAAFRoAAAAAAAAAAAAAAADwvw" 2087 ], 2088 [ 2089 113, 2090 1, 2091 "insert", 2092 { 2093 "characters": ".GetC" 2094 }, 2095 "BQAAADEaAAAAAAAAMhoAAAAAAAAAAAAAMhoAAAAAAAAzGgAAAAAAAAAAAAAzGgAAAAAAADQaAAAAAAAAAAAAADQaAAAAAAAANRoAAAAAAAAAAAAANRoAAAAAAAA2GgAAAAAAAAAAAAA", 2096 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADEaAAAAAAAAMRoAAAAAAAD////////vfw" 2097 ], 2098 [ 2099 114, 2100 1, 2101 "insert_completion", 2102 { 2103 "completion": "GetClone", 2104 "format": "text", 2105 "keep_prefix": false, 2106 "must_insert": false, 2107 "trigger": "GetClone" 2108 }, 2109 "AgAAADIaAAAAAAAAMhoAAAAAAAAEAAAAR2V0QzIaAAAAAAAAOhoAAAAAAAAAAAAA", 2110 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADYaAAAAAAAANhoAAAAAAAAAAAAAAADwvw" 2111 ], 2112 [ 2113 115, 2114 1, 2115 "insert", 2116 { 2117 "characters": ")" 2118 }, 2119 "AQAAADoaAAAAAAAAOxoAAAAAAAAAAAAA", 2120 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADoaAAAAAAAAOhoAAAAAAAAAAAAAAADwvw" 2121 ], 2122 [ 2123 116, 2124 1, 2125 "left_delete", 2126 null, 2127 "AQAAADoaAAAAAAAAOhoAAAAAAAABAAAAKQ", 2128 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADsaAAAAAAAAOxoAAAAAAAAAAAAAAADwvw" 2129 ], 2130 [ 2131 117, 2132 1, 2133 "insert_snippet", 2134 { 2135 "contents": "($0)" 2136 }, 2137 "AQAAADoaAAAAAAAAPBoAAAAAAAAAAAAA", 2138 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADoaAAAAAAAAOhoAAAAAAAAAAAAAAADwvw" 2139 ], 2140 [ 2141 121, 2142 1, 2143 "left_delete", 2144 null, 2145 "AQAAAAoYAAAAAAAAChgAAAAAAAALAAAALkdldENsb25lKCk", 2146 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAoYAAAAAAAAFRgAAAAAAAAAAAAAAADwvw" 2147 ], 2148 [ 2149 128, 2150 1, 2151 "insert", 2152 { 2153 "characters": "self." 2154 }, 2155 "BQAAAP8ZAAAAAAAAABoAAAAAAAAAAAAAABoAAAAAAAABGgAAAAAAAAAAAAABGgAAAAAAAAIaAAAAAAAAAAAAAAIaAAAAAAAAAxoAAAAAAAAAAAAAAxoAAAAAAAAEGgAAAAAAAAAAAAA", 2156 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAP8ZAAAAAAAA/xkAAAAAAAAAAAAAAADwvw" 2157 ], 2158 [ 2159 139, 2160 1, 2161 "run_macro_file", 2162 { 2163 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 2164 }, 2165 "AQAAAM8ZAAAAAAAAzxkAAAAAAAAnAAAAICAgICAgICAjIG1vdmUgb3V0IGZyb20gdW5kZXIgcm9vdCBudWxs", 2166 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPYZAAAAAAAA9hkAAAAAAAAAAAAAAEBzQA" 2167 ], 2168 [ 2169 140, 2170 1, 2171 "left_delete", 2172 null, 2173 "AQAAAM4ZAAAAAAAAzhkAAAAAAAABAAAACg", 2174 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAM8ZAAAAAAAAzxkAAAAAAAAAAAAAAADwvw" 2175 ], 2176 [ 2177 142, 2178 1, 2179 "insert", 2180 { 2181 "characters": "self." 2182 }, 2183 "BQAAALQZAAAAAAAAtRkAAAAAAAAAAAAAtRkAAAAAAAC2GQAAAAAAAAAAAAC2GQAAAAAAALcZAAAAAAAAAAAAALcZAAAAAAAAuBkAAAAAAAAAAAAAuBkAAAAAAAC5GQAAAAAAAAAAAAA", 2184 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALQZAAAAAAAAtBkAAAAAAAAAAAAAAABMQA" 2185 ], 2186 [ 2187 144, 2188 1, 2189 "insert", 2190 { 2191 "characters": ".GetClome" 2192 }, 2193 "CQAAANMZAAAAAAAA1BkAAAAAAAAAAAAA1BkAAAAAAADVGQAAAAAAAAAAAADVGQAAAAAAANYZAAAAAAAAAAAAANYZAAAAAAAA1xkAAAAAAAAAAAAA1xkAAAAAAADYGQAAAAAAAAAAAADYGQAAAAAAANkZAAAAAAAAAAAAANkZAAAAAAAA2hkAAAAAAAAAAAAA2hkAAAAAAADbGQAAAAAAAAAAAADbGQAAAAAAANwZAAAAAAAAAAAAAA", 2194 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANMZAAAAAAAA0xkAAAAAAAD////////vfw" 2195 ], 2196 [ 2197 145, 2198 1, 2199 "insert_snippet", 2200 { 2201 "contents": "($0)" 2202 }, 2203 "AQAAANwZAAAAAAAA3hkAAAAAAAAAAAAA", 2204 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANwZAAAAAAAA3BkAAAAAAAAAAAAAAADwvw" 2205 ], 2206 [ 2207 147, 2208 1, 2209 "left_delete", 2210 null, 2211 "AQAAANoZAAAAAAAA2hkAAAAAAAABAAAAbQ", 2212 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANsZAAAAAAAA2xkAAAAAAAAAAAAAAADwvw" 2213 ], 2214 [ 2215 148, 2216 1, 2217 "insert", 2218 { 2219 "characters": "n" 2220 }, 2221 "AQAAANoZAAAAAAAA2xkAAAAAAAAAAAAA", 2222 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANoZAAAAAAAA2hkAAAAAAAAAAAAAAADwvw" 2223 ], 2224 [ 2225 151, 2226 1, 2227 "run_macro_file", 2228 { 2229 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 2230 }, 2231 "AQAAAN8ZAAAAAAAA3xkAAAAAAAA/AAAAICAgICAgICBzZWxmLm1lc2hfY29weSA9IG1lc2guSW5zZXJ0QWZ0ZXIocm9vdF9udWxsKS5HZXRDbG9uZSgp", 2232 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAB4aAAAAAAAAHhoAAAAAAAD////////vfw" 2233 ], 2234 [ 2235 152, 2236 1, 2237 "left_delete", 2238 null, 2239 "AQAAAN4ZAAAAAAAA3hkAAAAAAAABAAAACg", 2240 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAN8ZAAAAAAAA3xkAAAAAAAAAAAAAAADwvw" 2241 ], 2242 [ 2243 157, 2244 1, 2245 "insert", 2246 { 2247 "characters": "clone" 2248 }, 2249 "BQAAAGEZAAAAAAAAYhkAAAAAAAAAAAAAYhkAAAAAAABjGQAAAAAAAAAAAABjGQAAAAAAAGQZAAAAAAAAAAAAAGQZAAAAAAAAZRkAAAAAAAAAAAAAZRkAAAAAAABmGQAAAAAAAAAAAAA", 2250 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAGEZAAAAAAAAYRkAAAAAAAAAAAAAAADwvw" 2251 ], 2252 [ 2253 158, 2254 1, 2255 "insert", 2256 { 2257 "characters": " of" 2258 }, 2259 "AwAAAGYZAAAAAAAAZxkAAAAAAAAAAAAAZxkAAAAAAABoGQAAAAAAAAAAAABoGQAAAAAAAGkZAAAAAAAAAAAAAA", 2260 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAGYZAAAAAAAAZhkAAAAAAAAAAAAAAADwvw" 2261 ], 2262 [ 2263 159, 2264 1, 2265 "insert", 2266 { 2267 "characters": " " 2268 }, 2269 "AQAAAGkZAAAAAAAAahkAAAAAAAAAAAAA", 2270 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAGkZAAAAAAAAaRkAAAAAAAAAAAAAAADwvw" 2271 ], 2272 [ 2273 162, 2274 1, 2275 "insert", 2276 { 2277 "characters": " and" 2278 }, 2279 "BAAAAAIaAAAAAAAAAxoAAAAAAAAAAAAAAxoAAAAAAAAEGgAAAAAAAAAAAAAEGgAAAAAAAAUaAAAAAAAAAAAAAAUaAAAAAAAABhoAAAAAAAAAAAAA", 2280 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAIaAAAAAAAAAhoAAAAAAAD////////vfw" 2281 ], 2282 [ 2283 163, 2284 1, 2285 "insert", 2286 { 2287 "characters": " mesh" 2288 }, 2289 "BQAAAAYaAAAAAAAABxoAAAAAAAAAAAAABxoAAAAAAAAIGgAAAAAAAAAAAAAIGgAAAAAAAAkaAAAAAAAAAAAAAAkaAAAAAAAAChoAAAAAAAAAAAAAChoAAAAAAAALGgAAAAAAAAAAAAA", 2290 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAYaAAAAAAAABhoAAAAAAAAAAAAAAADwvw" 2291 ], 2292 [ 2293 4, 2294 1, 2295 "left_delete", 2296 null, 2297 "AQAAANIUAAAAAAAA0hQAAAAAAAABAAAACg", 2298 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADTFAAAAAAAANMUAAAAAAAAAAAAAAAA8L8" 2299 ], 2300 [ 2301 7, 2302 1, 2303 "insert", 2304 { 2305 "characters": " " 2306 }, 2307 "AQAAACUVAAAAAAAAJhUAAAAAAAAAAAAA", 2308 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAlFQAAAAAAACUVAAAAAAAAAAAAAAAA8L8" 2309 ], 2310 [ 2311 8, 2312 1, 2313 "insert", 2314 { 2315 "characters": "size=None" 2316 }, 2317 "CQAAACYVAAAAAAAAJxUAAAAAAAAAAAAAJxUAAAAAAAAoFQAAAAAAAAAAAAAoFQAAAAAAACkVAAAAAAAAAAAAACkVAAAAAAAAKhUAAAAAAAAAAAAAKhUAAAAAAAArFQAAAAAAAAAAAAArFQAAAAAAACwVAAAAAAAAAAAAACwVAAAAAAAALRUAAAAAAAAAAAAALRUAAAAAAAAuFQAAAAAAAAAAAAAuFQAAAAAAAC8VAAAAAAAAAAAAAA", 2318 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAmFQAAAAAAACYVAAAAAAAAAAAAAAAA8L8" 2319 ], 2320 [ 2321 9, 2322 1, 2323 "insert", 2324 { 2325 "characters": "," 2326 }, 2327 "AQAAAC8VAAAAAAAAMBUAAAAAAAAAAAAA", 2328 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAvFQAAAAAAAC8VAAAAAAAAAAAAAAAA8L8" 2329 ], 2330 [ 2331 11, 2332 1, 2333 "insert", 2334 { 2335 "characters": "\nself.si" 2336 }, 2337 "CQAAAI4VAAAAAAAAjxUAAAAAAAAAAAAAjxUAAAAAAACXFQAAAAAAAAAAAACXFQAAAAAAAJgVAAAAAAAAAAAAAJgVAAAAAAAAmRUAAAAAAAAAAAAAmRUAAAAAAACaFQAAAAAAAAAAAACaFQAAAAAAAJsVAAAAAAAAAAAAAJsVAAAAAAAAnBUAAAAAAAAAAAAAnBUAAAAAAACdFQAAAAAAAAAAAACdFQAAAAAAAJ4VAAAAAAAAAAAAAA", 2338 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACOFQAAAAAAAI4VAAAAAAAAAAAAAABQfUA" 2339 ], 2340 [ 2341 13, 2342 1, 2343 "insert_completion", 2344 { 2345 "completion": "size", 2346 "format": "text", 2347 "keep_prefix": false, 2348 "must_insert": false, 2349 "trigger": "size" 2350 }, 2351 "AgAAAJwVAAAAAAAAnBUAAAAAAAACAAAAc2mcFQAAAAAAAKAVAAAAAAAAAAAAAA", 2352 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACeFQAAAAAAAJ4VAAAAAAAAAAAAAAAA8L8" 2353 ], 2354 [ 2355 14, 2356 1, 2357 "copilot_accept_completion", 2358 null, 2359 "AgAAAI8VAAAAAAAAjxUAAAAAAAARAAAAICAgICAgICBzZWxmLnNpemWPFQAAAAAAAKcVAAAAAAAAAAAAAA", 2360 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACgFQAAAAAAAKAVAAAAAAAAAAAAAAAA8L8" 2361 ], 2362 [ 2363 17, 2364 1, 2365 "insert", 2366 { 2367 "characters": "\nif" 2368 }, 2369 "BQAAADwWAAAAAAAAPRYAAAAAAAAAAAAAPRYAAAAAAABBFgAAAAAAAAAAAABBFgAAAAAAAEUWAAAAAAAAAAAAAEUWAAAAAAAARhYAAAAAAAAAAAAARhYAAAAAAABHFgAAAAAAAAAAAAA", 2370 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAA8FgAAAAAAADwWAAAAAAAA////////738" 2371 ], 2372 [ 2373 18, 2374 1, 2375 "insert", 2376 { 2377 "characters": " " 2378 }, 2379 "AQAAAEcWAAAAAAAASBYAAAAAAAAAAAAA", 2380 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABHFgAAAAAAAEcWAAAAAAAAAAAAAAAA8L8" 2381 ], 2382 [ 2383 19, 2384 1, 2385 "copilot_accept_completion", 2386 null, 2387 "AgAAAD0WAAAAAAAAPRYAAAAAAAALAAAAICAgICAgICBpZiA9FgAAAAAAAIYWAAAAAAAAAAAAAA", 2388 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABIFgAAAAAAAEgWAAAAAAAAAAAAAAAA8L8" 2389 ], 2390 [ 2391 20, 2392 9, 2393 "delete_word", 2394 { 2395 "forward": false 2396 }, 2397 "CQAAAIIWAAAAAAAAghYAAAAAAAAEAAAAc2l6ZYEWAAAAAAAAgRYAAAAAAAABAAAALn0WAAAAAAAAfRYAAAAAAAAEAAAAc2VsZnsWAAAAAAAAexYAAAAAAAACAAAAPSB5FgAAAAAAAHkWAAAAAAAAAgAAAF0gbBYAAAAAAABsFgAAAAAAAA0AAABQUklNX0NVQkVfTEVOaxYAAAAAAABrFgAAAAAAAAEAAAAuaBYAAAAAAABoFgAAAAAAAAMAAABjNGRnFgAAAAAAAGcWAAAAAAAAAQAAAFs", 2398 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACGFgAAAAAAAIYWAAAAAAAAAAAAAAAA8L8" 2399 ], 2400 [ 2401 21, 2402 3, 2403 "left_delete", 2404 null, 2405 "AwAAAGYWAAAAAAAAZhYAAAAAAAABAAAAamUWAAAAAAAAZRYAAAAAAAABAAAAYmQWAAAAAAAAZBYAAAAAAAABAAAAbw", 2406 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABnFgAAAAAAAGcWAAAAAAAAAAAAAAAA8L8" 2407 ], 2408 [ 2409 22, 2410 1, 2411 "insert", 2412 { 2413 "characters": ".wid" 2414 }, 2415 "BAAAAGQWAAAAAAAAZRYAAAAAAAAAAAAAZRYAAAAAAABmFgAAAAAAAAAAAABmFgAAAAAAAGcWAAAAAAAAAAAAAGcWAAAAAAAAaBYAAAAAAAAAAAAA", 2416 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABkFgAAAAAAAGQWAAAAAAAAAAAAAAAA8L8" 2417 ], 2418 [ 2419 23, 2420 1, 2421 "insert_completion", 2422 { 2423 "completion": "width", 2424 "format": "text", 2425 "keep_prefix": false, 2426 "must_insert": false, 2427 "trigger": "width" 2428 }, 2429 "AgAAAGUWAAAAAAAAZRYAAAAAAAADAAAAd2lkZRYAAAAAAABqFgAAAAAAAAAAAAA", 2430 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABoFgAAAAAAAGgWAAAAAAAAAAAAAAAA8L8" 2431 ], 2432 [ 2433 24, 2434 1, 2435 "insert", 2436 { 2437 "characters": " =" 2438 }, 2439 "AgAAAGoWAAAAAAAAaxYAAAAAAAAAAAAAaxYAAAAAAABsFgAAAAAAAAAAAAA", 2440 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABqFgAAAAAAAGoWAAAAAAAAAAAAAAAA8L8" 2441 ], 2442 [ 2443 25, 2444 1, 2445 "insert", 2446 { 2447 "characters": " s" 2448 }, 2449 "AgAAAGwWAAAAAAAAbRYAAAAAAAAAAAAAbRYAAAAAAABuFgAAAAAAAAAAAAA", 2450 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABsFgAAAAAAAGwWAAAAAAAAAAAAAAAA8L8" 2451 ], 2452 [ 2453 26, 2454 1, 2455 "insert_completion", 2456 { 2457 "completion": "self", 2458 "format": "snippet", 2459 "keep_prefix": false, 2460 "must_insert": false, 2461 "trigger": "self" 2462 }, 2463 "AgAAAG0WAAAAAAAAbRYAAAAAAAABAAAAc20WAAAAAAAAcRYAAAAAAAAAAAAA", 2464 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABuFgAAAAAAAG4WAAAAAAAAAAAAAAAA8L8" 2465 ], 2466 [ 2467 27, 2468 1, 2469 "insert", 2470 { 2471 "characters": ".h" 2472 }, 2473 "AgAAAHEWAAAAAAAAchYAAAAAAAAAAAAAchYAAAAAAABzFgAAAAAAAAAAAAA", 2474 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABxFgAAAAAAAHEWAAAAAAAAAAAAAAAA8L8" 2475 ], 2476 [ 2477 28, 2478 1, 2479 "copilot_accept_completion", 2480 null, 2481 "AgAAAFMWAAAAAAAAUxYAAAAAAAAgAAAAICAgICAgICAgICAgc2VsZi4ud2lkdGggPSBzZWxmLmhTFgAAAAAAAJEWAAAAAAAAAAAAAA", 2482 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABzFgAAAAAAAHMWAAAAAAAAAAAAAAAA8L8" 2483 ], 2484 [ 2485 30, 2486 2, 2487 "anaconda_auto_format", 2488 null, 2489 "AQAAAAAAAAAAAAAAxBsAAAAAAACtGwAAZnJvbSBweWRlYXRpb24ub2JqZWN0cy5hYnN0cmFjdF9vYmplY3RzIGltcG9ydCBTb2xpZE9iamVjdAppbXBvcnQgYzRkCgoKY2xhc3MgU3BoZXJlKFNvbGlkT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgcmFkaXVzPTEwMCwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYucmFkaXVzID0gcmFkaXVzCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT3NwaGVyZSkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX1NQSEVSRV9SQURdID0gc2VsZi5yYWRpdXMKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9TUEhFUkVfVFlQRV0gPSA0ICAjIHNldCB0eXBlIHRvIGljb3NhaGVkcm9uCgpjbGFzcyBDeWxpbmRlcihTb2xpZE9iamVjdCk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhZGl1cz01MCwgaGVpZ2h0PTE1MCwgb3JpZW50YXRpb249IngrIiwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYucmFkaXVzID0gcmFkaXVzCiAgICAgICAgc2VsZi5oZWlnaHQgPSBoZWlnaHQKICAgICAgICBzZWxmLm9yaWVudGF0aW9uID0gb3JpZW50YXRpb24KICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5PY3lsaW5kZXIpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBvcmllbnRhdGlvbnMgPSB7CiAgICAgICAgICAgICJ4KyI6IDAsCiAgICAgICAgICAgICJ4LSI6IDEsCiAgICAgICAgICAgICJ5KyI6IDIsCiAgICAgICAgICAgICJ5LSI6IDMsCiAgICAgICAgICAgICJ6KyI6IDQsCiAgICAgICAgICAgICJ6LSI6IDUKICAgICAgICB9CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fQVhJU10gPSBvcmllbnRhdGlvbnNbc2VsZi5vcmllbnRhdGlvbl0KICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9DWUxJTkRFUl9SQURJVVNdID0gc2VsZi5yYWRpdXMKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9DWUxJTkRFUl9IRUlHSFRdID0gc2VsZi5oZWlnaHQKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9DWUxJTkRFUl9TRUddID0gMzIKCmNsYXNzIENvbmUoU29saWRPYmplY3QpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYWRpdXM9NTAsIGhlaWdodD0xNTAsIG9yaWVudGF0aW9uPSJ4KyIsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnJhZGl1cyA9IHJhZGl1cwogICAgICAgIHNlbGYuaGVpZ2h0ID0gaGVpZ2h0CiAgICAgICAgc2VsZi5vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT2NvbmUpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBvcmllbnRhdGlvbnMgPSB7CiAgICAgICAgICAgICJ4KyI6IDAsCiAgICAgICAgICAgICJ4LSI6IDEsCiAgICAgICAgICAgICJ5KyI6IDIsCiAgICAgICAgICAgICJ5LSI6IDMsCiAgICAgICAgICAgICJ6KyI6IDQsCiAgICAgICAgICAgICJ6LSI6IDUKICAgICAgICB9CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fQVhJU10gPSBvcmllbnRhdGlvbnNbc2VsZi5vcmllbnRhdGlvbl0KICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9DT05FX0JSQURdID0gc2VsZi5yYWRpdXMKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9DT05FX0hFSUdIVF0gPSBzZWxmLmhlaWdodAogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX0NPTkVfU0VHXSA9IDMyCgpjbGFzcyBNZXRhQmFsbChTb2xpZE9iamVjdCk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsICpjaGlsZHJlbiwgaHVsbF92YWx1ZT0xLCBzdWJkaXZpc2lvbj01LCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi5jaGlsZHJlbiA9IGNoaWxkcmVuCiAgICAgICAgc2VsZi5odWxsX3ZhbHVlID0gaHVsbF92YWx1ZQogICAgICAgIHNlbGYuc3ViZGl2aXNpb24gPSBzdWJkaXZpc2lvbgogICAgICAgIHNlbGYuaW5zZXJ0X2NoaWxkcmVuKCkKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5PbWV0YWJhbGwpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBzZWxmLm9ialtjNGQuTUVUQUJBTExPQkpFQ1RfVEhSRVNIT0xEXSA9IHNlbGYuaHVsbF92YWx1ZQogICAgICAgIHNlbGYub2JqW2M0ZC5NRVRBQkFMTE9CSkVDVF9TVUJFRElUT1JdID0gc2VsZi5zdWJkaXZpc2lvbgogICAgICAgIHNlbGYub2JqW2M0ZC5NRVRBQkFMTE9CSkVDVF9TVUJSQVldID0gc2VsZi5zdWJkaXZpc2lvbgoKICAgIGRlZiBpbnNlcnRfY2hpbGRyZW4oc2VsZik6CiAgICAgICAgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW46CiAgICAgICAgICAgIGNoaWxkLm9iai5JbnNlcnRVbmRlcihzZWxmLm9iaikKCmNsYXNzIFBsYW5lKFNvbGlkT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2lkdGg9NDAwLCBoZWlnaHQ9NDAwLCB3aWR0aF9zZWdtZW50cz0xMCwgaGVpZ2h0X3NlZ21lbnRzPTEwLCBvcmllbnRhdGlvbj0ieisiLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi53aWR0aCA9IHdpZHRoCiAgICAgICAgc2VsZi5oZWlnaHQgPSBoZWlnaHQKICAgICAgICBzZWxmLndpZHRoX3NlZ21lbnRzID0gd2lkdGhfc2VnbWVudHMKICAgICAgICBzZWxmLmhlaWdodF9zZWdtZW50cyA9IGhlaWdodF9zZWdtZW50cwogICAgICAgIHNlbGYub3JpZW50YXRpb24gPSBvcmllbnRhdGlvbgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoYzRkLk9wbGFuZSkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX1BMQU5FX1dJRFRIXSA9IHNlbGYud2lkdGgKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9QTEFORV9IRUlHSFRdID0gc2VsZi5oZWlnaHQKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9QTEFORV9TVUJXXSA9IHNlbGYud2lkdGhfc2VnbWVudHMKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9QTEFORV9TVUJIXSA9IHNlbGYuaGVpZ2h0X3NlZ21lbnRzCiAgICAgICAgb3JpZW50YXRpb25zID0gewogICAgICAgICAgICAieCsiOiAwLAogICAgICAgICAgICAieC0iOiAxLAogICAgICAgICAgICAieSsiOiAyLAogICAgICAgICAgICAieS0iOiAzLAogICAgICAgICAgICAieisiOiA0LAogICAgICAgICAgICAiei0iOiA1CiAgICAgICAgfQogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX0FYSVNdID0gb3JpZW50YXRpb25zW3NlbGYub3JpZW50YXRpb25dCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc2VsZi5kZXNjX2lkcyA9IHsKICAgICAgICAgICAgIndpZHRoIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5QUklNX1BMQU5FX1dJRFRILCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAiaGVpZ2h0IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5QUklNX1BMQU5FX0hFSUdIVCwgYzRkLkRUWVBFX1JFQUwsIDApKQogICAgICAgIH0KCmNsYXNzIEV4dHJ1ZGUoU29saWRPYmplY3QpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqY2hpbGRyZW4sIG9mZnNldD0wLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi5jaGlsZHJlbiA9IGNoaWxkcmVuCiAgICAgICAgc2VsZi5vZmZzZXQgPSBvZmZzZXQKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuaW5zZXJ0X2NoaWxkcmVuKCkKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT2V4dHJ1ZGUpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBzZWxmLm9ialtjNGQuRVhUUlVERU9CSkVDVF9FWFRSVVNJT05PRkZTRVRdID0gc2VsZi5vZmZzZXQKCiAgICBkZWYgaW5zZXJ0X2NoaWxkcmVuKHNlbGYpOgogICAgICAgIGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuOgogICAgICAgICAgICBjaGlsZC5vYmouSW5zZXJ0VW5kZXIoc2VsZi5vYmopCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc2VsZi5kZXNjX2lkcyA9IHsKICAgICAgICAgICAgIm9mZnNldCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuRVhUUlVERU9CSkVDVF9FWFRSVVNJT05PRkZTRVQsIGM0ZC5EVFlQRV9SRUFMLCAwKSkKICAgICAgICB9CgpjbGFzcyBMb2Z0KFNvbGlkT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoYzRkLk9sb2Z0KQoKY2xhc3MgU3dlZXBOdXJicyhTb2xpZE9iamVjdCk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhaWw9Tm9uZSwgcHJvZmlsZT1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi5yYWlsID0gcmFpbAogICAgICAgIHNlbGYucHJvZmlsZSA9IHByb2ZpbGUKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuaW5zZXJ0X2NoaWxkcmVuKCkKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT3N3ZWVwKQoKICAgIGRlZiBpbnNlcnRfY2hpbGRyZW4oc2VsZik6CiAgICAgICAgc2VsZi5yYWlsLm9iai5JbnNlcnRVbmRlcihzZWxmLm9iaikKICAgICAgICBzZWxmLnByb2ZpbGUub2JqLkluc2VydFVuZGVyKHNlbGYub2JqKQoKICAgIGRlZiBzZXRfdW5pcXVlX2Rlc2NfaWRzKHNlbGYpOgogICAgICAgIHNlbGYuZGVzY19pZHMgPSB7CiAgICAgICAgICAgICJzdGFydF9ncm93dGgiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLlNXRUVQT0JKRUNUX1NUQVJUR1JPV1RILCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAiZW5kX2dyb3d0aCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuU1dFRVBPQkpFQ1RfR1JPV1RILCBjNGQuRFRZUEVfUkVBTCwgMCkpCiAgICAgICAgfQoKY2xhc3MgQ3ViZShTb2xpZE9iamVjdCk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpZHRoPTEwMCwgaGVpZ2h0PTEwMCwgZGVwdGg9MTAwLCBzaXplPU5vbmUsICoqa3dhcmdzKToKICAgICAgICBzZWxmLndpZHRoID0gd2lkdGgKICAgICAgICBzZWxmLmhlaWdodCA9IGhlaWdodAogICAgICAgIHNlbGYuZGVwdGggPSBkZXB0aAogICAgICAgIHNlbGYuc2l6ZSA9IHNpemUKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5PY3ViZSkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIGlmIHNlbGYuc2l6ZToKICAgICAgICAgICAgc2VsZi4ud2lkdGggPSBzZWxmLmhlaWdodCA9IHNlbGYuZGVwdGggPSBzZWxmLnNpemUKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9DVUJFX0xFTiwgYzRkLlZFQ1RPUl9YXSA9IHNlbGYud2lkdGgKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9DVUJFX0xFTiwgYzRkLlZFQ1RPUl9ZXSA9IHNlbGYuaGVpZ2h0CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fQ1VCRV9MRU4sIGM0ZC5WRUNUT1JfWl0gPSBzZWxmLmRlcHRoCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc2VsZi5kZXNjX2lkcyA9IHsKICAgICAgICAgICAgIndpZHRoIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5QUklNX0NVQkVfTEVOLCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAiaGVpZ2h0IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5QUklNX0NVQkVfTEVOLCBjNGQuRFRZUEVfUkVBTCwgMSkpLAogICAgICAgICAgICAiZGVwdGgiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLlBSSU1fQ1VCRV9MRU4sIGM0ZC5EVFlQRV9SRUFMLCAyKSkKICAgICAgICB9CgpjbGFzcyBVU0QoU29saWRPYmplY3QpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlX3BhdGg9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuZmlsZV9wYXRoID0gZmlsZV9wYXRoCiAgICAgICAgc2VsZi5leHRyYWN0X29iamVjdF9mcm9tX2ltcG9ydCgpCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBzZWxmLm1lc2gKCiAgICBkZWYgZXh0cmFjdF9vYmplY3RfZnJvbV9pbXBvcnQoc2VsZik6CiAgICAgICAgc2VsZi5kb2N1bWVudCA9IGM0ZC5kb2N1bWVudHMuR2V0QWN0aXZlRG9jdW1lbnQoKQogICAgICAgIGM0ZC5kb2N1bWVudHMuTWVyZ2VEb2N1bWVudChzZWxmLmRvY3VtZW50LCBzZWxmLmZpbGVfcGF0aCwgYzRkLlNDRU5FRklMVEVSX05PTkUpCiAgICAgICAgIyByZW1vdmUgc3VwZXJmbHVvdXMgbWF0ZXJpYWwgbnVsbAogICAgICAgIG1hdGVyaWFsX251bGwgPSBzZWxmLmRvY3VtZW50LlNlYXJjaE9iamVjdCgiTWF0ZXJpYWxzIikKICAgICAgICBtYXRlcmlhbF9udWxsLlJlbW92ZSgpCiAgICAgICAgIyBnZXQgY2xvbmUgb2YgbWVzaCBmcm9tIHJvb3QgbnVsbAogICAgICAgIHJvb3RfbnVsbCA9IHNlbGYuZG9jdW1lbnQuU2VhcmNoT2JqZWN0KCJSb290IikKICAgICAgICBzZWxmLm1lc2ggPSByb290X251bGwuR2V0RG93bigpLkdldENsb25lKCkKICAgICAgICAjIHJlbW92ZSByb290IG51bGwgYW5kIG1lc2gKICAgICAgICByb290X251bGwuUmVtb3ZlKCk", 2490 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACRFgAAAAAAAJEWAAAAAAAAAAAAAAAA8L8" 2491 ], 2492 [ 2493 35, 2494 1, 2495 "left_delete", 2496 null, 2497 "AQAAAGwWAAAAAAAAbBYAAAAAAAABAAAALg", 2498 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABtFgAAAAAAAG0WAAAAAAAAAAAAAAAA8L8" 2499 ] 2500 ] 2501 }, 2502 { 2503 "file": "objects/custom_objects.py", 2504 "settings": 2505 { 2506 "buffer_size": 87954, 2507 "encoding": "UTF-8", 2508 "line_ending": "Unix" 2509 }, 2510 "undo_stack": 2511 [ 2512 [ 2513 17, 2514 1, 2515 "insert", 2516 { 2517 "characters": "s" 2518 }, 2519 "AQAAAPROAQAAAAAA9U4BAAAAAAAAAAAA", 2520 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD0TgEAAAAAAPROAQAAAAAAAAAAAAAA8L8" 2521 ], 2522 [ 2523 32, 2524 1, 2525 "insert", 2526 { 2527 "characters": "color=W" 2528 }, 2529 "BwAAAHmNAAAAAAAAeo0AAAAAAAAAAAAAeo0AAAAAAAB7jQAAAAAAAAAAAAB7jQAAAAAAAHyNAAAAAAAAAAAAAHyNAAAAAAAAfY0AAAAAAAAAAAAAfY0AAAAAAAB+jQAAAAAAAAAAAAB+jQAAAAAAAH+NAAAAAAAAAAAAAH+NAAAAAAAAgI0AAAAAAAAAAAAA", 2530 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB5jQAAAAAAAHmNAAAAAAAAAAAAAAAA8L8" 2531 ], 2532 [ 2533 33, 2534 1, 2535 "insert", 2536 { 2537 "characters": "HITE," 2538 }, 2539 "BQAAAICNAAAAAAAAgY0AAAAAAAAAAAAAgY0AAAAAAACCjQAAAAAAAAAAAACCjQAAAAAAAIONAAAAAAAAAAAAAIONAAAAAAAAhI0AAAAAAAAAAAAAhI0AAAAAAACFjQAAAAAAAAAAAAA", 2540 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACAjQAAAAAAAICNAAAAAAAAAAAAAAAA8L8" 2541 ], 2542 [ 2543 34, 2544 1, 2545 "insert", 2546 { 2547 "characters": " " 2548 }, 2549 "AQAAAIWNAAAAAAAAho0AAAAAAAAAAAAA", 2550 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACFjQAAAAAAAIWNAAAAAAAAAAAAAAAA8L8" 2551 ], 2552 [ 2553 38, 2554 1, 2555 "insert", 2556 { 2557 "characters": "\n" 2558 }, 2559 "AgAAAOyPAAAAAAAA7Y8AAAAAAAAAAAAA7Y8AAAAAAAD1jwAAAAAAAAAAAAA", 2560 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADsjwAAAAAAAOyPAAAAAAAAAAAAAADAbUA" 2561 ], 2562 [ 2563 39, 2564 1, 2565 "copilot_accept_completion", 2566 null, 2567 "AgAAAO2PAAAAAAAA7Y8AAAAAAAAIAAAAICAgICAgICDtjwAAAAAAAAeQAAAAAAAAAAAAAA", 2568 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD1jwAAAAAAAPWPAAAAAAAAAAAAAAAA8L8" 2569 ], 2570 [ 2571 55, 2572 1, 2573 "insert", 2574 { 2575 "characters": "," 2576 }, 2577 "AQAAAOuSAAAAAAAA7JIAAAAAAAAAAAAA", 2578 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADrkgAAAAAAAOuSAAAAAAAAAAAAAAAA8L8" 2579 ], 2580 [ 2581 56, 2582 1, 2583 "insert", 2584 { 2585 "characters": " color=" 2586 }, 2587 "BwAAAOySAAAAAAAA7ZIAAAAAAAAAAAAA7ZIAAAAAAADukgAAAAAAAAAAAADukgAAAAAAAO+SAAAAAAAAAAAAAO+SAAAAAAAA8JIAAAAAAAAAAAAA8JIAAAAAAADxkgAAAAAAAAAAAADxkgAAAAAAAPKSAAAAAAAAAAAAAPKSAAAAAAAA85IAAAAAAAAAAAAA", 2588 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADskgAAAAAAAOySAAAAAAAAAAAAAAAA8L8" 2589 ], 2590 [ 2591 57, 2592 1, 2593 "insert_completion", 2594 { 2595 "completion": "self", 2596 "format": "snippet", 2597 "keep_prefix": false, 2598 "must_insert": true, 2599 "trigger": "self" 2600 }, 2601 "AQAAAPOSAAAAAAAA95IAAAAAAAAAAAAA", 2602 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADzkgAAAAAAAPOSAAAAAAAAAAAAAAAA8L8" 2603 ], 2604 [ 2605 58, 2606 1, 2607 "insert", 2608 { 2609 "characters": "-" 2610 }, 2611 "AQAAAPeSAAAAAAAA+JIAAAAAAAAAAAAA", 2612 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD3kgAAAAAAAPeSAAAAAAAAAAAAAAAA8L8" 2613 ], 2614 [ 2615 59, 2616 1, 2617 "left_delete", 2618 null, 2619 "AQAAAPeSAAAAAAAA95IAAAAAAAABAAAALQ", 2620 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD4kgAAAAAAAPiSAAAAAAAAAAAAAAAA8L8" 2621 ], 2622 [ 2623 60, 2624 1, 2625 "insert", 2626 { 2627 "characters": ".col" 2628 }, 2629 "BAAAAPeSAAAAAAAA+JIAAAAAAAAAAAAA+JIAAAAAAAD5kgAAAAAAAAAAAAD5kgAAAAAAAPqSAAAAAAAAAAAAAPqSAAAAAAAA+5IAAAAAAAAAAAAA", 2630 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD3kgAAAAAAAPeSAAAAAAAAAAAAAAAA8L8" 2631 ], 2632 [ 2633 61, 2634 1, 2635 "insert_completion", 2636 { 2637 "completion": "color", 2638 "format": "snippet", 2639 "keep_prefix": false, 2640 "must_insert": false, 2641 "trigger": "color" 2642 }, 2643 "AgAAAPiSAAAAAAAA+JIAAAAAAAADAAAAY29s+JIAAAAAAAD9kgAAAAAAAAAAAAA", 2644 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD7kgAAAAAAAPuSAAAAAAAAAAAAAAAA8L8" 2645 ], 2646 [ 2647 65, 2648 1, 2649 "insert", 2650 { 2651 "characters": "color=W" 2652 }, 2653 "BwAAABWuAAAAAAAAFq4AAAAAAAAAAAAAFq4AAAAAAAAXrgAAAAAAAAAAAAAXrgAAAAAAABiuAAAAAAAAAAAAABiuAAAAAAAAGa4AAAAAAAAAAAAAGa4AAAAAAAAargAAAAAAAAAAAAAargAAAAAAABuuAAAAAAAAAAAAABuuAAAAAAAAHK4AAAAAAAAAAAAA", 2654 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAVrgAAAAAAABWuAAAAAAAAAAAAAAAA8L8" 2655 ], 2656 [ 2657 66, 2658 1, 2659 "insert", 2660 { 2661 "characters": "HITE," 2662 }, 2663 "BQAAAByuAAAAAAAAHa4AAAAAAAAAAAAAHa4AAAAAAAAergAAAAAAAAAAAAAergAAAAAAAB+uAAAAAAAAAAAAAB+uAAAAAAAAIK4AAAAAAAAAAAAAIK4AAAAAAAAhrgAAAAAAAAAAAAA", 2664 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAcrgAAAAAAAByuAAAAAAAAAAAAAAAA8L8" 2665 ], 2666 [ 2667 67, 2668 1, 2669 "insert", 2670 { 2671 "characters": " " 2672 }, 2673 "AQAAACGuAAAAAAAAIq4AAAAAAAAAAAAA", 2674 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAhrgAAAAAAACGuAAAAAAAAAAAAAAAA8L8" 2675 ], 2676 [ 2677 70, 2678 1, 2679 "insert", 2680 { 2681 "characters": "\n" 2682 }, 2683 "AgAAAMCuAAAAAAAAwa4AAAAAAAAAAAAAwa4AAAAAAADJrgAAAAAAAAAAAAA", 2684 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADArgAAAAAAAMCuAAAAAAAAAAAAAAAA8L8" 2685 ], 2686 [ 2687 71, 2688 1, 2689 "copilot_accept_completion", 2690 null, 2691 "AgAAAMGuAAAAAAAAwa4AAAAAAAAIAAAAICAgICAgICDBrgAAAAAAANuuAAAAAAAAAAAAAA", 2692 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADJrgAAAAAAAMmuAAAAAAAAAAAAAAAA8L8" 2693 ], 2694 [ 2695 84, 2696 1, 2697 "insert", 2698 { 2699 "characters": "," 2700 }, 2701 "AQAAADmwAAAAAAAAOrAAAAAAAAAAAAAA", 2702 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAA5sAAAAAAAADmwAAAAAAAAAAAAAAAA8L8" 2703 ], 2704 [ 2705 85, 2706 1, 2707 "insert", 2708 { 2709 "characters": " color=" 2710 }, 2711 "BwAAADqwAAAAAAAAO7AAAAAAAAAAAAAAO7AAAAAAAAA8sAAAAAAAAAAAAAA8sAAAAAAAAD2wAAAAAAAAAAAAAD2wAAAAAAAAPrAAAAAAAAAAAAAAPrAAAAAAAAA/sAAAAAAAAAAAAAA/sAAAAAAAAECwAAAAAAAAAAAAAECwAAAAAAAAQbAAAAAAAAAAAAAA", 2712 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAA6sAAAAAAAADqwAAAAAAAAAAAAAAAA8L8" 2713 ], 2714 [ 2715 86, 2716 1, 2717 "insert_completion", 2718 { 2719 "completion": "self", 2720 "format": "snippet", 2721 "keep_prefix": false, 2722 "must_insert": true, 2723 "trigger": "self" 2724 }, 2725 "AQAAAEGwAAAAAAAARbAAAAAAAAAAAAAA", 2726 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABBsAAAAAAAAEGwAAAAAAAAAAAAAAAA8L8" 2727 ], 2728 [ 2729 87, 2730 1, 2731 "insert", 2732 { 2733 "characters": ".c" 2734 }, 2735 "AgAAAEWwAAAAAAAARrAAAAAAAAAAAAAARrAAAAAAAABHsAAAAAAAAAAAAAA", 2736 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABFsAAAAAAAAEWwAAAAAAAAAAAAAAAA8L8" 2737 ], 2738 [ 2739 88, 2740 1, 2741 "insert_completion", 2742 { 2743 "completion": "color", 2744 "format": "snippet", 2745 "keep_prefix": false, 2746 "must_insert": false, 2747 "trigger": "color" 2748 }, 2749 "AgAAAEawAAAAAAAARrAAAAAAAAABAAAAY0awAAAAAAAAS7AAAAAAAAAAAAAA", 2750 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABHsAAAAAAAAEewAAAAAAAAAAAAAAAA8L8" 2751 ], 2752 [ 2753 118, 2754 1, 2755 "insert", 2756 { 2757 "characters": "," 2758 }, 2759 "AQAAALWTAAAAAAAAtpMAAAAAAAAAAAAA", 2760 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAC1kwAAAAAAALWTAAAAAAAAAAAAAAAA8L8" 2761 ], 2762 [ 2763 119, 2764 1, 2765 "insert", 2766 { 2767 "characters": " color=" 2768 }, 2769 "BwAAALaTAAAAAAAAt5MAAAAAAAAAAAAAt5MAAAAAAAC4kwAAAAAAAAAAAAC4kwAAAAAAALmTAAAAAAAAAAAAALmTAAAAAAAAupMAAAAAAAAAAAAAupMAAAAAAAC7kwAAAAAAAAAAAAC7kwAAAAAAALyTAAAAAAAAAAAAALyTAAAAAAAAvZMAAAAAAAAAAAAA", 2770 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAC2kwAAAAAAALaTAAAAAAAAAAAAAAAA8L8" 2771 ], 2772 [ 2773 120, 2774 1, 2775 "insert", 2776 { 2777 "characters": "s" 2778 }, 2779 "AQAAAL2TAAAAAAAAvpMAAAAAAAAAAAAA", 2780 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAC9kwAAAAAAAL2TAAAAAAAAAAAAAAAA8L8" 2781 ], 2782 [ 2783 121, 2784 1, 2785 "insert_completion", 2786 { 2787 "completion": "self", 2788 "format": "snippet", 2789 "keep_prefix": false, 2790 "must_insert": false, 2791 "trigger": "self" 2792 }, 2793 "AgAAAL2TAAAAAAAAvZMAAAAAAAABAAAAc72TAAAAAAAAwZMAAAAAAAAAAAAA", 2794 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAC+kwAAAAAAAL6TAAAAAAAAAAAAAAAA8L8" 2795 ], 2796 [ 2797 122, 2798 1, 2799 "insert", 2800 { 2801 "characters": "." 2802 }, 2803 "AQAAAMGTAAAAAAAAwpMAAAAAAAAAAAAA", 2804 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADBkwAAAAAAAMGTAAAAAAAAAAAAAAAA8L8" 2805 ], 2806 [ 2807 123, 2808 1, 2809 "insert_completion", 2810 { 2811 "completion": "color", 2812 "format": "snippet", 2813 "keep_prefix": false, 2814 "must_insert": true, 2815 "trigger": "color" 2816 }, 2817 "AQAAAMKTAAAAAAAAx5MAAAAAAAAAAAAA", 2818 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADCkwAAAAAAAMKTAAAAAAAAAAAAAAAA8L8" 2819 ], 2820 [ 2821 127, 2822 6, 2823 "delete_word", 2824 { 2825 "forward": false 2826 }, 2827 "BgAAAPiSAAAAAAAA+JIAAAAAAAAFAAAAY29sb3L3kgAAAAAAAPeSAAAAAAAAAQAAAC7zkgAAAAAAAPOSAAAAAAAABAAAAHNlbGbykgAAAAAAAPKSAAAAAAAAAQAAAD3tkgAAAAAAAO2SAAAAAAAABQAAAGNvbG9y6pIAAAAAAADqkgAAAAAAAAMAAAAiLCA", 2828 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD9kgAAAAAAAP2SAAAAAAAAAAAAAAAA8L8" 2829 ], 2830 [ 2831 128, 2832 1, 2833 "insert", 2834 { 2835 "characters": "\"" 2836 }, 2837 "AQAAAOqSAAAAAAAA65IAAAAAAAAAAAAA", 2838 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADqkgAAAAAAAOqSAAAAAAAAAAAAAAAA8L8" 2839 ], 2840 [ 2841 130, 2842 1, 2843 "insert", 2844 { 2845 "characters": "," 2846 }, 2847 "AQAAAOuSAAAAAAAA7JIAAAAAAAAAAAAA", 2848 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADrkgAAAAAAAOuSAAAAAAAAAAAAAAAA8L8" 2849 ], 2850 [ 2851 131, 2852 1, 2853 "insert", 2854 { 2855 "characters": " he" 2856 }, 2857 "AwAAAOySAAAAAAAA7ZIAAAAAAAAAAAAA7ZIAAAAAAADukgAAAAAAAAAAAADukgAAAAAAAO+SAAAAAAAAAAAAAA", 2858 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADskgAAAAAAAOySAAAAAAAAAAAAAAAA8L8" 2859 ], 2860 [ 2861 132, 2862 1, 2863 "insert", 2864 { 2865 "characters": "lper_mode=T" 2866 }, 2867 "CwAAAO+SAAAAAAAA8JIAAAAAAAAAAAAA8JIAAAAAAADxkgAAAAAAAAAAAADxkgAAAAAAAPKSAAAAAAAAAAAAAPKSAAAAAAAA85IAAAAAAAAAAAAA85IAAAAAAAD0kgAAAAAAAAAAAAD0kgAAAAAAAPWSAAAAAAAAAAAAAPWSAAAAAAAA9pIAAAAAAAAAAAAA9pIAAAAAAAD3kgAAAAAAAAAAAAD3kgAAAAAAAPiSAAAAAAAAAAAAAPiSAAAAAAAA+ZIAAAAAAAAAAAAA+ZIAAAAAAAD6kgAAAAAAAAAAAAA", 2868 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADvkgAAAAAAAO+SAAAAAAAAAAAAAAAA8L8" 2869 ], 2870 [ 2871 133, 2872 1, 2873 "insert_completion", 2874 { 2875 "completion": "True", 2876 "format": "snippet", 2877 "keep_prefix": false, 2878 "must_insert": false, 2879 "trigger": "True" 2880 }, 2881 "AgAAAPmSAAAAAAAA+ZIAAAAAAAABAAAAVPmSAAAAAAAA/ZIAAAAAAAAAAAAA", 2882 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD6kgAAAAAAAPqSAAAAAAAAAAAAAAAA8L8" 2883 ], 2884 [ 2885 139, 2886 1, 2887 "insert", 2888 { 2889 "characters": "\n\n\n" 2890 }, 2891 "CAAAAGlQAQAAAAAAalABAAAAAAAAAAAAalABAAAAAAB2UAEAAAAAAAAAAAB2UAEAAAAAAHdQAQAAAAAAAAAAAHdQAQAAAAAAg1ABAAAAAAAAAAAAalABAAAAAABqUAEAAAAAAAwAAAAgICAgICAgICAgICB3UAEAAAAAAHhQAQAAAAAAAAAAAHhQAQAAAAAAhFABAAAAAAAAAAAAa1ABAAAAAABrUAEAAAAAAAwAAAAgICAgICAgICAgICA", 2892 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABpUAEAAAAAAGlQAQAAAAAAAAAAAAAA8L8" 2893 ], 2894 [ 2895 140, 2896 3, 2897 "left_delete", 2898 null, 2899 "AwAAAHRQAQAAAAAAdFABAAAAAAAEAAAAICAgIHBQAQAAAAAAcFABAAAAAAAEAAAAICAgIGxQAQAAAAAAbFABAAAAAAAEAAAAICAgIA", 2900 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB4UAEAAAAAAHhQAQAAAAAAAAAAAAAA8L8" 2901 ], 2902 [ 2903 141, 2904 1, 2905 "paste", 2906 null, 2907 "AQAAAGxQAQAAAAAAsFcBAAAAAAAAAAAA", 2908 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABsUAEAAAAAAGxQAQAAAAAAAAAAAAAA8L8" 2909 ], 2910 [ 2911 143, 2912 1, 2913 "left_delete", 2914 null, 2915 "AQAAAGtQAQAAAAAAa1ABAAAAAAABAAAACg", 2916 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABsUAEAAAAAAGxQAQAAAAAAAAAAAAAAAAA" 2917 ], 2918 [ 2919 156, 2920 1, 2921 "left_delete", 2922 null, 2923 "AQAAAHhSAQAAAAAAeFIBAAAAAAAOAAAAaGVscGVyX29iamVjdHM", 2924 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB4UgEAAAAAAIZSAQAAAAAAAAAAAAAA8L8" 2925 ], 2926 [ 2927 158, 2928 1, 2929 "left_delete", 2930 null, 2931 "AQAAAHhSAQAAAAAAeFIBAAAAAAABAAAALg", 2932 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB5UgEAAAAAAHlSAQAAAAAAAAAAAAAA8L8" 2933 ], 2934 [ 2935 161, 2936 1, 2937 "left_delete", 2938 null, 2939 "AQAAAKVSAQAAAAAApVIBAAAAAAANAAAAc29saWRfb2JqZWN0cw", 2940 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAClUgEAAAAAALJSAQAAAAAAAAAAAAAA8L8" 2941 ], 2942 [ 2943 163, 2944 1, 2945 "left_delete", 2946 null, 2947 "AQAAAKVSAQAAAAAApVIBAAAAAAABAAAALg", 2948 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACmUgEAAAAAAKZSAQAAAAAAAAAAAAAA8L8" 2949 ] 2950 ] 2951 }, 2952 { 2953 "file": "constants.py", 2954 "settings": 2955 { 2956 "buffer_size": 3485, 2957 "encoding": "UTF-8", 2958 "line_ending": "Unix" 2959 }, 2960 "undo_stack": 2961 [ 2962 [ 2963 3, 2964 1, 2965 "left_delete", 2966 null, 2967 "AQAAAJsBAAAAAAAAmwEAAAAAAAABAAAAMw", 2968 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJwBAAAAAAAAnAEAAAAAAAAAAAAAAADwvw" 2969 ], 2970 [ 2971 4, 2972 1, 2973 "insert", 2974 { 2975 "characters": "5" 2976 }, 2977 "AQAAAJsBAAAAAAAAnAEAAAAAAAAAAAAA", 2978 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJsBAAAAAAAAmwEAAAAAAAAAAAAAAADwvw" 2979 ], 2980 [ 2981 7, 2982 1, 2983 "left_delete", 2984 null, 2985 "AQAAAJsBAAAAAAAAmwEAAAAAAAABAAAANQ", 2986 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJwBAAAAAAAAnAEAAAAAAAAAAAAAAADwvw" 2987 ], 2988 [ 2989 8, 2990 1, 2991 "insert", 2992 { 2993 "characters": "7" 2994 }, 2995 "AQAAAJsBAAAAAAAAnAEAAAAAAAAAAAAA", 2996 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJsBAAAAAAAAmwEAAAAAAAAAAAAAAADwvw" 2997 ] 2998 ] 2999 }, 3000 { 3001 "file": "objects/line_objects.py", 3002 "settings": 3003 { 3004 "buffer_size": 15953, 3005 "encoding": "UTF-8", 3006 "line_ending": "Unix" 3007 }, 3008 "undo_stack": 3009 [ 3010 [ 3011 6, 3012 1, 3013 "insert", 3014 { 3015 "characters": "\n\n" 3016 }, 3017 "AgAAAC8LAAAAAAAAMAsAAAAAAAAAAAAAMAsAAAAAAAAxCwAAAAAAAAAAAAA", 3018 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAvCwAAAAAAAC8LAAAAAAAAAAAAAAAA8L8" 3019 ], 3020 [ 3021 8, 3022 1, 3023 "insert", 3024 { 3025 "characters": "class" 3026 }, 3027 "BQAAADALAAAAAAAAMQsAAAAAAAAAAAAAMQsAAAAAAAAyCwAAAAAAAAAAAAAyCwAAAAAAADMLAAAAAAAAAAAAADMLAAAAAAAANAsAAAAAAAAAAAAANAsAAAAAAAA1CwAAAAAAAAAAAAA", 3028 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAwCwAAAAAAADALAAAAAAAAAAAAAAAAAAA" 3029 ], 3030 [ 3031 9, 3032 1, 3033 "insert", 3034 { 3035 "characters": " Square" 3036 }, 3037 "BwAAADULAAAAAAAANgsAAAAAAAAAAAAANgsAAAAAAAA3CwAAAAAAAAAAAAA3CwAAAAAAADgLAAAAAAAAAAAAADgLAAAAAAAAOQsAAAAAAAAAAAAAOQsAAAAAAAA6CwAAAAAAAAAAAAA6CwAAAAAAADsLAAAAAAAAAAAAADsLAAAAAAAAPAsAAAAAAAAAAAAA", 3038 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAA1CwAAAAAAADULAAAAAAAAAAAAAAAA8L8" 3039 ], 3040 [ 3041 10, 3042 1, 3043 "insert_snippet", 3044 { 3045 "contents": "($0)" 3046 }, 3047 "AQAAADwLAAAAAAAAPgsAAAAAAAAAAAAA", 3048 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAA8CwAAAAAAADwLAAAAAAAAAAAAAAAA8L8" 3049 ], 3050 [ 3051 12, 3052 1, 3053 "insert", 3054 { 3055 "characters": "Lin" 3056 }, 3057 "AwAAAD0LAAAAAAAAPgsAAAAAAAAAAAAAPgsAAAAAAAA/CwAAAAAAAAAAAAA/CwAAAAAAAEALAAAAAAAAAAAAAA", 3058 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAA9CwAAAAAAAD0LAAAAAAAAAAAAAAAA8L8" 3059 ], 3060 [ 3061 13, 3062 3, 3063 "left_delete", 3064 null, 3065 "AwAAAD8LAAAAAAAAPwsAAAAAAAABAAAAbj4LAAAAAAAAPgsAAAAAAAABAAAAaT0LAAAAAAAAPQsAAAAAAAABAAAATA", 3066 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABACwAAAAAAAEALAAAAAAAAAAAAAAAA8L8" 3067 ], 3068 [ 3069 15, 3070 1, 3071 "insert", 3072 { 3073 "characters": "Rect" 3074 }, 3075 "BAAAAD0LAAAAAAAAPgsAAAAAAAAAAAAAPgsAAAAAAAA/CwAAAAAAAAAAAAA/CwAAAAAAAEALAAAAAAAAAAAAAEALAAAAAAAAQQsAAAAAAAAAAAAA", 3076 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAA9CwAAAAAAAD0LAAAAAAAAAAAAAAAA8L8" 3077 ], 3078 [ 3079 16, 3080 1, 3081 "insert_completion", 3082 { 3083 "completion": "Rectangle", 3084 "format": "text", 3085 "keep_prefix": false, 3086 "must_insert": false, 3087 "trigger": "Rectangle" 3088 }, 3089 "AgAAAD0LAAAAAAAAPQsAAAAAAAAEAAAAUmVjdD0LAAAAAAAARgsAAAAAAAAAAAAA", 3090 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABBCwAAAAAAAEELAAAAAAAAAAAAAAAA8L8" 3091 ], 3092 [ 3093 18, 3094 1, 3095 "insert", 3096 { 3097 "characters": ":" 3098 }, 3099 "AQAAAEcLAAAAAAAASAsAAAAAAAAAAAAA", 3100 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABHCwAAAAAAAEcLAAAAAAAAAAAAAAAA8L8" 3101 ], 3102 [ 3103 19, 3104 1, 3105 "insert", 3106 { 3107 "characters": "\n\ndef" 3108 }, 3109 "CAAAAEgLAAAAAAAASQsAAAAAAAAAAAAASQsAAAAAAABNCwAAAAAAAAAAAABNCwAAAAAAAE4LAAAAAAAAAAAAAE4LAAAAAAAAUgsAAAAAAAAAAAAASQsAAAAAAABJCwAAAAAAAAQAAAAgICAgTgsAAAAAAABPCwAAAAAAAAAAAABPCwAAAAAAAFALAAAAAAAAAAAAAFALAAAAAAAAUQsAAAAAAAAAAAAA", 3110 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABICwAAAAAAAEgLAAAAAAAAAAAAAAAA8L8" 3111 ], 3112 [ 3113 20, 3114 1, 3115 "insert", 3116 { 3117 "characters": " i" 3118 }, 3119 "AgAAAFELAAAAAAAAUgsAAAAAAAAAAAAAUgsAAAAAAABTCwAAAAAAAAAAAAA", 3120 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABRCwAAAAAAAFELAAAAAAAAAAAAAAAA8L8" 3121 ], 3122 [ 3123 21, 3124 1, 3125 "left_delete", 3126 null, 3127 "AQAAAFILAAAAAAAAUgsAAAAAAAABAAAAaQ", 3128 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABTCwAAAAAAAFMLAAAAAAAAAAAAAAAA8L8" 3129 ], 3130 [ 3131 22, 3132 1, 3133 "insert_completion", 3134 { 3135 "completion": "__init__", 3136 "format": "snippet", 3137 "keep_prefix": false, 3138 "must_insert": true, 3139 "trigger": "__init__" 3140 }, 3141 "AQAAAFILAAAAAAAAWgsAAAAAAAAAAAAA", 3142 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABSCwAAAAAAAFILAAAAAAAAAAAAAAAA8L8" 3143 ], 3144 [ 3145 23, 3146 1, 3147 "insert_snippet", 3148 { 3149 "contents": "($0)" 3150 }, 3151 "AQAAAFoLAAAAAAAAXAsAAAAAAAAAAAAA", 3152 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABaCwAAAAAAAFoLAAAAAAAAAAAAAAAA8L8" 3153 ], 3154 [ 3155 25, 3156 1, 3157 "insert", 3158 { 3159 "characters": "s" 3160 }, 3161 "AQAAAFsLAAAAAAAAXAsAAAAAAAAAAAAA", 3162 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABbCwAAAAAAAFsLAAAAAAAAAAAAAAAA8L8" 3163 ], 3164 [ 3165 26, 3166 1, 3167 "insert_completion", 3168 { 3169 "completion": "self", 3170 "format": "text", 3171 "keep_prefix": false, 3172 "must_insert": false, 3173 "trigger": "self" 3174 }, 3175 "AgAAAFsLAAAAAAAAWwsAAAAAAAABAAAAc1sLAAAAAAAAXwsAAAAAAAAAAAAA", 3176 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABcCwAAAAAAAFwLAAAAAAAAAAAAAAAA8L8" 3177 ], 3178 [ 3179 27, 3180 1, 3181 "insert", 3182 { 3183 "characters": "," 3184 }, 3185 "AQAAAF8LAAAAAAAAYAsAAAAAAAAAAAAA", 3186 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABfCwAAAAAAAF8LAAAAAAAAAAAAAAAA8L8" 3187 ], 3188 [ 3189 28, 3190 1, 3191 "insert", 3192 { 3193 "characters": " size=" 3194 }, 3195 "BgAAAGALAAAAAAAAYQsAAAAAAAAAAAAAYQsAAAAAAABiCwAAAAAAAAAAAABiCwAAAAAAAGMLAAAAAAAAAAAAAGMLAAAAAAAAZAsAAAAAAAAAAAAAZAsAAAAAAABlCwAAAAAAAAAAAABlCwAAAAAAAGYLAAAAAAAAAAAAAA", 3196 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABgCwAAAAAAAGALAAAAAAAAAAAAAAAA8L8" 3197 ], 3198 [ 3199 29, 3200 1, 3201 "insert", 3202 { 3203 "characters": "100" 3204 }, 3205 "AwAAAGYLAAAAAAAAZwsAAAAAAAAAAAAAZwsAAAAAAABoCwAAAAAAAAAAAABoCwAAAAAAAGkLAAAAAAAAAAAAAA", 3206 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABmCwAAAAAAAGYLAAAAAAAAAAAAAAAA8L8" 3207 ], 3208 [ 3209 30, 3210 1, 3211 "insert", 3212 { 3213 "characters": "," 3214 }, 3215 "AQAAAGkLAAAAAAAAagsAAAAAAAAAAAAA", 3216 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABpCwAAAAAAAGkLAAAAAAAAAAAAAAAA8L8" 3217 ], 3218 [ 3219 31, 3220 1, 3221 "insert", 3222 { 3223 "characters": " **kwarg" 3224 }, 3225 "CAAAAGoLAAAAAAAAawsAAAAAAAAAAAAAawsAAAAAAABsCwAAAAAAAAAAAABsCwAAAAAAAG0LAAAAAAAAAAAAAG0LAAAAAAAAbgsAAAAAAAAAAAAAbgsAAAAAAABvCwAAAAAAAAAAAABvCwAAAAAAAHALAAAAAAAAAAAAAHALAAAAAAAAcQsAAAAAAAAAAAAAcQsAAAAAAAByCwAAAAAAAAAAAAA", 3226 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABqCwAAAAAAAGoLAAAAAAAAAAAAAAAA8L8" 3227 ], 3228 [ 3229 32, 3230 1, 3231 "insert", 3232 { 3233 "characters": "s" 3234 }, 3235 "AQAAAHILAAAAAAAAcwsAAAAAAAAAAAAA", 3236 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAByCwAAAAAAAHILAAAAAAAAAAAAAAAA8L8" 3237 ], 3238 [ 3239 34, 3240 1, 3241 "insert", 3242 { 3243 "characters": ":" 3244 }, 3245 "AQAAAHQLAAAAAAAAdQsAAAAAAAAAAAAA", 3246 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB0CwAAAAAAAHQLAAAAAAAAAAAAAAAA8L8" 3247 ], 3248 [ 3249 35, 3250 1, 3251 "insert", 3252 { 3253 "characters": "\n" 3254 }, 3255 "AwAAAHULAAAAAAAAdgsAAAAAAAAAAAAAdgsAAAAAAAB6CwAAAAAAAAAAAAB6CwAAAAAAAH4LAAAAAAAAAAAAAA", 3256 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB1CwAAAAAAAHULAAAAAAAAAAAAAAAA8L8" 3257 ], 3258 [ 3259 36, 3260 1, 3261 "copilot_accept_completion", 3262 null, 3263 "AgAAAHYLAAAAAAAAdgsAAAAAAAAIAAAAICAgICAgICB2CwAAAAAAALELAAAAAAAAAAAAAA", 3264 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB+CwAAAAAAAH4LAAAAAAAAAAAAAAAA8L8" 3265 ], 3266 [ 3267 38, 3268 2, 3269 "anaconda_auto_format", 3270 null, 3271 "AQAAAAAAAAAAAAAAOD4AAAAAAAAjPgAAaW1wb3J0IHB5ZGVhdGlvbgppbXBvcnQgaW1wb3J0bGliCmltcG9ydGxpYi5yZWxvYWQocHlkZWF0aW9uLm9iamVjdHMuYWJzdHJhY3Rfb2JqZWN0cykKZnJvbSBweWRlYXRpb24ub2JqZWN0cy5hYnN0cmFjdF9vYmplY3RzIGltcG9ydCBMaW5lT2JqZWN0CmZyb20gcHlkZWF0aW9uLm9iamVjdHMuaGVscGVyX29iamVjdHMgaW1wb3J0IE51bGwsIE1vU3BsaW5lCmZyb20gcHlkZWF0aW9uLmNvbnN0YW50cyBpbXBvcnQgKgpmcm9tIHB5ZGVhdGlvbi54cHJlc3NvLnhwcmVzc2lvbnMgaW1wb3J0IFhJZGVudGl0eQppbXBvcnQgYzRkCmltcG9ydCBvcwoKCmNsYXNzIENpcmNsZShMaW5lT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgcmFkaXVzPTIwMCwgZWxsaXBzZV9yYXRpbz0xLCByaW5nX3JhdGlvPTEsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnJhZGl1cyA9IHJhZGl1cwogICAgICAgIHNlbGYuZWxsaXBzZV9yYXRpbyA9IGVsbGlwc2VfcmF0aW8KICAgICAgICBzZWxmLnJpbmdfcmF0aW8gPSByaW5nX3JhdGlvCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT3NwbGluZWNpcmNsZSkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICMgY2hlY2sgaW5wdXQgdmFsdWVzCiAgICAgICAgaWYgbm90IDAgPD0gc2VsZi5yaW5nX3JhdGlvIDw9IDE6CiAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInJpbmdfcmF0aW8gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEiKQogICAgICAgIGlmIG5vdCAwIDw9IHNlbGYuZWxsaXBzZV9yYXRpbyA8PSAxOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJyaW5nX3JhdGlvIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAxIikKICAgICAgICAjIGltcGxpY2l0IHByb3BlcnRpZXMKICAgICAgICBpZiBzZWxmLnJpbmdfcmF0aW8gIT0gMToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fQ0lSQ0xFX1JJTkddID0gVHJ1ZQogICAgICAgIGlubmVyX3JhZGl1cyA9IHNlbGYucmFkaXVzICogc2VsZi5yaW5nX3JhdGlvCiAgICAgICAgaWYgc2VsZi5lbGxpcHNlX3JhdGlvICE9IDE6CiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX0NJUkNMRV9FTExJUFNFXSA9IFRydWUKICAgICAgICBlbGxpcHNlX3JhZGl1cyA9IHNlbGYucmFkaXVzICogc2VsZi5lbGxpcHNlX3JhdGlvCiAgICAgICAgIyBzZXQgcHJvcGVydGllcwogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX0NJUkNMRV9SQURJVVNZXSA9IGVsbGlwc2VfcmFkaXVzCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fQ0lSQ0xFX0lOTkVSXSA9IGlubmVyX3JhZGl1cwogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX0NJUkNMRV9SQURJVVNdID0gc2VsZi5yYWRpdXMKICAgICAgICAjIHNldCBjb25zdGFudHMKICAgICAgICBzZWxmLm9ialtjNGQuU1BMSU5FT0JKRUNUX1NVQl0gPSAzMgoKICAgIGRlZiBzZXRfdW5pcXVlX2Rlc2NfaWRzKHNlbGYpOgogICAgICAgIHNlbGYuZGVzY19pZHMgPSB7CiAgICAgICAgICAgICJyYWRpdXMiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLlBSSU1fQ0lSQ0xFX1JBRElVUywgYzRkLkRUWVBFX1JFQUwsIDApKQogICAgICAgIH0KCmNsYXNzIFJlY3RhbmdsZShMaW5lT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2lkdGg9MTAwLCBoZWlnaHQ9MTAwLCByb3VuZGluZz1GYWxzZSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYud2lkdGggPSB3aWR0aAogICAgICAgIHNlbGYuaGVpZ2h0ID0gaGVpZ2h0CiAgICAgICAgc2VsZi5yb3VuZGluZyA9IHJvdW5kaW5nCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT3NwbGluZXJlY3RhbmdsZSkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICMgY2hlY2sgaW5wdXQgdmFsdWVzCiAgICAgICAgaWYgbm90IDAgPD0gc2VsZi5yb3VuZGluZyA8PSAxOgogICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJyb3VuZGluZyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMSIpCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fUkVDVEFOR0xFX1dJRFRIXSA9IHNlbGYud2lkdGgKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9SRUNUQU5HTEVfSEVJR0hUXSA9IHNlbGYuaGVpZ2h0CiAgICAgICAgaWYgc2VsZi5yb3VuZGluZzoKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fUkVDVEFOR0xFX1JPVU5ESU5HXSA9IFRydWUKICAgICAgICAgICAgcm91bmRpbmdfcmFkaXVzID0gc2VsZi5yb3VuZGluZyAqIG1pbihzZWxmLndpZHRoLCBzZWxmLmhlaWdodCkgLyAyCiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX1JFQ1RBTkdMRV9SQURJVVNdID0gcm91bmRpbmdfcmFkaXVzCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc2VsZi5kZXNjX2lkcyA9IHsKICAgICAgICAgICAgIndpZHRoIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5QUklNX1JFQ1RBTkdMRV9XSURUSCwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgImhlaWdodCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuUFJJTV9SRUNUQU5HTEVfSEVJR0hULCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAicm91bmRpbmdfcmFkaXVzIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5QUklNX1JFQ1RBTkdMRV9SQURJVVMsIGM0ZC5EVFlQRV9SRUFMLCAwKSkKICAgICAgICB9CgpjbGFzcyBTcXVhcmUoUmVjdGFuZ2xlKToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgc2l6ZT0xMDAsICoqa3dhcmdzKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKHdpZHRoPXNpemUsIGhlaWdodD1zaXplLCAqKmt3YXJncykKCmNsYXNzIEFyYyhMaW5lT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgcmFkaXVzPTE1MCwgc3RhcnRfYW5nbGU9MCwgZW5kX2FuZ2xlPVBJIC8gMiwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYucmFkaXVzID0gcmFkaXVzCiAgICAgICAgc2VsZi5zdGFydF9hbmdsZSA9IHN0YXJ0X2FuZ2xlCiAgICAgICAgc2VsZi5lbmRfYW5nbGUgPSBlbmRfYW5nbGUKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5Pc3BsaW5lYXJjKQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fQVJDX1JBRElVU10gPSBzZWxmLnJhZGl1cwogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX0FSQ19TVEFSVF0gPSBzZWxmLnN0YXJ0X2FuZ2xlCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fQVJDX0VORF0gPSBzZWxmLmVuZF9hbmdsZQoKICAgIGRlZiBzZXRfdW5pcXVlX2Rlc2NfaWRzKHNlbGYpOgogICAgICAgIHNlbGYuZGVzY19pZHMgPSB7CiAgICAgICAgICAgICJyYWRpdXMiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLlBSSU1fQVJDX1JBRElVUywgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgInN0YXJ0X2FuZ2xlIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5QUklNX0FSQ19TVEFSVCwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgImVuZF9hbmdsZSI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuUFJJTV9BUkNfRU5ELCBjNGQuRFRZUEVfUkVBTCwgMCkpCiAgICAgICAgfQoKY2xhc3MgU3BsaW5lKExpbmVPYmplY3QpOgogICAgIiIiY3JlYXRlcyBhIGJhc2ljIHNwbGluZSIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb2ludHM9W10sIHNwbGluZV90eXBlPSJiZXppZXIiLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi5wb2ludHMgPSBwb2ludHMKICAgICAgICBzZWxmLnNwbGluZV90eXBlID0gc3BsaW5lX3R5cGUKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuYWRkX3BvaW50c190b19zcGxpbmUoKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5Pc3BsaW5lKQoKICAgIGRlZiBhZGRfcG9pbnRzX3RvX3NwbGluZShzZWxmKToKICAgICAgICBpZiBzZWxmLnBvaW50czoKICAgICAgICAgICAgIyBjb252ZXJ0IHBvaW50cyB0byBjNGQgdmVjdG9ycwogICAgICAgICAgICBjNGRfcG9pbnRzID0gW2M0ZC5WZWN0b3IoKnBvaW50KSBpZiB0eXBlKHBvaW50KSBpbiAobGlzdCwgdHVwbGUpIGVsc2UgcG9pbnQgZm9yIHBvaW50IGluIHNlbGYucG9pbnRzXQogICAgICAgICAgICBwb2ludF9jb3VudCA9IGxlbihzZWxmLnBvaW50cykKICAgICAgICAgICAgc2VsZi5vYmouUmVzaXplT2JqZWN0KHBvaW50X2NvdW50KQogICAgICAgICAgICBzZWxmLm9iai5TZXRBbGxQb2ludHMoYzRkX3BvaW50cykKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIHNwbGluZV90eXBlcyA9IHsKICAgICAgICAgICAgImxpbmVhciI6IDAsCiAgICAgICAgICAgICJjdWJpYyI6IDEsCiAgICAgICAgICAgICJha2ltYSI6IDIsCiAgICAgICAgICAgICJiLXNwbGluZSI6IDMsCiAgICAgICAgICAgICJiZXppZXIiOiA0CiAgICAgICAgfQogICAgICAgICMgc2V0IGludGVycG9sYXRpb24KICAgICAgICBzZWxmLm9ialtjNGQuU1BMSU5FT0JKRUNUX1RZUEVdID0gc3BsaW5lX3R5cGVzW3NlbGYuc3BsaW5lX3R5cGVdCgpjbGFzcyBTVkcoU3BsaW5lKTogICMgdGFrZXMgY2FyZSBvZiBpbXBvcnRpbmcgc3ZncwoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlX25hbWUsIHg9MCwgeT0wLCB6PTAsICoqa3dhcmdzKToKICAgICAgICBzZWxmLmZpbGVfbmFtZSA9IGZpbGVfbmFtZQogICAgICAgIHNlbGYueCA9IHgKICAgICAgICBzZWxmLnkgPSB5CiAgICAgICAgc2VsZi56ID0gegogICAgICAgIHNlbGYuZXh0cmFjdF9zcGxpbmVfZnJvbV92ZWN0b3JfaW1wb3J0KCkKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuZml4X2F4ZXMoKQoKICAgIGRlZiBleHRyYWN0X3NwbGluZV9mcm9tX3ZlY3Rvcl9pbXBvcnQoc2VsZik6CiAgICAgICAgZmlsZV9wYXRoID0gb3MucGF0aC5qb2luKFNWR19QQVRILCBzZWxmLmZpbGVfbmFtZSArICIuc3ZnIikKICAgICAgICB2ZWN0b3JfaW1wb3J0ID0gYzRkLkJhc2VPYmplY3QoMTA1Nzg5OSkKICAgICAgICBzZWxmLmRvY3VtZW50ID0gYzRkLmRvY3VtZW50cy5HZXRBY3RpdmVEb2N1bWVudCgpCiAgICAgICAgc2VsZi5kb2N1bWVudC5JbnNlcnRPYmplY3QodmVjdG9yX2ltcG9ydCkKICAgICAgICB2ZWN0b3JfaW1wb3J0W2M0ZC5BUlRfRklMRV0gPSBmaWxlX3BhdGgKICAgICAgICBzZWxmLmRvY3VtZW50LkV4ZWN1dGVQYXNzZXMoCiAgICAgICAgICAgIGJ0PU5vbmUsIGFuaW1hdGlvbj1GYWxzZSwgZXhwcmVzc2lvbnM9RmFsc2UsIGNhY2hlcz1UcnVlLCBmbGFncz1jNGQuQlVJTERGTEFHU19OT05FKQogICAgICAgIHZlY3Rvcl9pbXBvcnQuUmVtb3ZlKCkKICAgICAgICBjYWNoZSA9IHZlY3Rvcl9pbXBvcnQuR2V0Q2FjaGUoKQogICAgICAgIGNhY2hlID0gY2FjaGUuR2V0RG93bigpCiAgICAgICAgY2FjaGUgPSBjYWNoZS5HZXREb3duKCkKICAgICAgICBjYWNoZSA9IGNhY2hlLkdldERvd25MYXN0KCkKICAgICAgICBzZWxmLnNwbGluZSA9IGNhY2hlLkdldENsb25lKCkKCiAgICBkZWYgZml4X2F4ZXMoc2VsZik6CiAgICAgICAgc2VsZi5kb2N1bWVudC5TZXRTZWxlY3Rpb24oc2VsZi5vYmopICAjIHNlbGVjdCBzdmcKICAgICAgICBjNGQuQ2FsbENvbW1hbmQoMTAxMTk4MikgICMgbW92ZXMgc3ZnIGF4ZXMgdG8gY2VudGVyCiAgICAgICAgc2VsZi5vYmpbYzRkLklEX0JBU0VPQkpFQ1RfUkVMX1BPU0lUSU9OXSA9IGM0ZC5WZWN0b3IoCiAgICAgICAgICAgIDAsIDAsIDApICAjIG1vdmUgc3ZnIHRvIG9yaWdpbgogICAgICAgICMgc2V0IHNwZWNpZmllZCBwb3NpdGlvbgogICAgICAgIHNlbGYuc2V0X3Bvc2l0aW9uKHg9c2VsZi54LCB5PXNlbGYueSwgej1zZWxmLnopCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gc2VsZi5zcGxpbmUKCmNsYXNzIEVkZ2VTcGxpbmUoTGluZU9iamVjdCk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvbGlkX29iamVjdCwgbW9kZT0ib3V0bGluZSIsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnNvbGlkX29iamVjdCA9IHNvbGlkX29iamVjdAogICAgICAgIHNlbGYubW9kZSA9IG1vZGUKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuaW5zZXJ0X3NvbGlkX29iamVjdCgpCiAgICAgICAgc2VsZi5maXhfdmlzaWJpbGl0eV9iZWhhdmlvdXIoKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KDEwNTcxODApCgogICAgZGVmIGluc2VydF9zb2xpZF9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5zb2xpZF9vYmplY3Qub2JqLkluc2VydFVuZGVyKHNlbGYub2JqKQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgIyBzZXQgbW9kZQogICAgICAgIG1vZGVzID0gewogICAgICAgICAgICAic3RhbmRhcmQiOiAwLAogICAgICAgICAgICAiY3VydmF0dXJlIjogMSwKICAgICAgICAgICAgImNvbnRvdXIiOiAyLAogICAgICAgICAgICAib3V0bGluZSI6IDMsCiAgICAgICAgICAgICJpbnRlcnNlY3Rpb24iOiA0LAogICAgICAgIH0KICAgICAgICBzZWxmLm9ialtjNGQuSURfTVRfRURHRVRPU1BMSU5FX01PREVfQ1lDTEVdID0gbW9kZXNbc2VsZi5tb2RlXQogICAgICAgIHNlbGYub2JqW2M0ZC5JRF9NVF9FREdFVE9TUExJTkVfUEhPTkdfQU5HTEVdID0gUEkvOQogICAgICAgICMgam9pbiBzcGxpbmUgc2VnbWVudHMgd2l0aGluIDVjbSB0aHJlc2hvbGQKICAgICAgICBzZWxmLm9ialtjNGQuSURfTVRfRURHRVRPU1BMSU5FX0VER0VTUExJTkVfSk9JTl0gPSBUcnVlCiAgICAgICAgc2VsZi5vYmpbYzRkLklEX01UX0VER0VUT1NQTElORV9FREdFU1BMSU5FX0pPSU5fVEhSRVNIT0xEXSA9IDUKCiAgICBkZWYgZml4X3Zpc2liaWxpdHlfYmVoYXZpb3VyKHNlbGYpOgogICAgICAgICIiIndlIGxpbmsgdGhlIHZpc2liaWxpdHkgb2YgdGhlIG9iamVjdCB0byB0aGUgc2tldGNoIHRhZyBzcGxpbmUgdHlwZSBmaXggdGhlIHZpc2liaWxpdHkgYmVoYXZpb3VyIiIiCiAgICAgICAgdmlzaWJpbGl0eV9yZWxhdGlvbiA9IFhJZGVudGl0eSgKICAgICAgICAgICAgcGFydD1zZWxmLnNrZXRjaF90YWcsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtzZWxmLnNrZXRjaF90YWcuZGVzY19pZHNbInJlbmRlcl9zcGxpbmVzIl1dLCBwYXJhbWV0ZXI9c2VsZi52aXNpYmlsaXR5X3BhcmFtZXRlciwgbmFtZT0iVmlzaWJpbGl0eUluaGVyaXRhbmNlIikKCmNsYXNzIFB5U3BsaW5lKExpbmVPYmplY3QpOgogICAgIiIidHVybnMgYSBjNGQgc3BsaW5lIGludG8gYSBweWRlYXRpb24gc3BsaW5lIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGlucHV0X3NwbGluZSwgc3BsaW5lX3R5cGU9ImJlemllciIsICoqa3dhcmdzKToKICAgICAgICBzZWxmLmlucHV0X3NwbGluZSA9IHNlbGYuZ2V0X3NwbGluZShpbnB1dF9zcGxpbmUpCiAgICAgICAgc2VsZi5zcGxpbmVfdHlwZSA9IHNwbGluZV90eXBlCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBkZWYgZ2V0X3NwbGluZShzZWxmLCBpbnB1dF9zcGxpbmUpOgogICAgICAgICMgdHVybnMgYW55IHByaW1pdGl2ZSBzcGxpbmUgaW50byBhIHNpbmdsZSBlZGl0YWJsZSBzcGxpbmUKICAgICAgICBpZiB0eXBlKGlucHV0X3NwbGluZSkgaXMgbm90IGM0ZC5TcGxpbmVPYmplY3Q6CiAgICAgICAgICAgIHBhc3MKICAgICAgICByZXR1cm4gaW5wdXRfc3BsaW5lCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gc2VsZi5pbnB1dF9zcGxpbmUuR2V0Q2xvbmUoKQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgc3BsaW5lX3R5cGVzID0gewogICAgICAgICAgICAibGluZWFyIjogMCwKICAgICAgICAgICAgImN1YmljIjogMSwKICAgICAgICAgICAgImFraW1hIjogMiwKICAgICAgICAgICAgImItc3BsaW5lIjogMywKICAgICAgICAgICAgImJlemllciI6IDQKICAgICAgICB9CiAgICAgICAgIyBzZXQgaW50ZXJwb2xhdGlvbgogICAgICAgIHNlbGYub2JqW2M0ZC5TUExJTkVPQkpFQ1RfVFlQRV0gPSBzcGxpbmVfdHlwZXNbc2VsZi5zcGxpbmVfdHlwZV0KCmNsYXNzIFNwbGluZVRleHQoTGluZU9iamVjdCk6CiAgICAiIiJjcmVhdGVzIHRoZSBuYXRpdmUgdGV4dCBvYmplY3Qgb2YgYzRkIGFzIG9wcG9zZWQgdG8gdGhlIGN1c3RvbWl6ZWQgdmVyc2lvbiB3aGljaCBoYXMgYWRkaXRpb25hbCBzdHJ1Y3R1cmUiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgdGV4dCwgaGVpZ2h0PTUwLCBhbmNob3I9ImNlbnRlciIsIHNlcGVyYXRlX2xldHRlcnM9RmFsc2UsIGRyYXdfb3JkZXI9ImxlZnRfdG9fcmlnaHQiLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi50ZXh0ID0gdGV4dAogICAgICAgIHNlbGYuaGVpZ2h0ID0gaGVpZ2h0CiAgICAgICAgc2VsZi5hbmNob3IgPSBhbmNob3IKICAgICAgICBzZWxmLnNlcGVyYXRlX2xldHRlcnMgPSBzZXBlcmF0ZV9sZXR0ZXJzCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhuYW1lPXRleHQsIGRyYXdfb3JkZXI9ZHJhd19vcmRlciwgKiprd2FyZ3MpCgoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5Pc3BsaW5ldGV4dCkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIGFuY2hvcnMgPSB7ImxlZnQiOiAwLCAibWlkZGxlIjogMSwgImNlbnRlciI6IDEsICJyaWdodCI6IDB9CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fVEVYVF9URVhUXSA9IHNlbGYudGV4dAogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX1RFWFRfSEVJR0hUXSA9IHNlbGYuaGVpZ2h0CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fVEVYVF9BTElHTl0gPSBhbmNob3JzW3NlbGYuYW5jaG9yXQogICAgICAgIHNlbGYub2JqW2M0ZC5QUklNX1RFWFRfU0VQQVJBVEVdID0gc2VsZi5zZXBlcmF0ZV9sZXR0ZXJzCiAgICAgICAgIyBvcHRpb25hbGx5IGNlbnRlciBvYmplY3QKICAgICAgICBpZiBzZWxmLmFuY2hvciA9PSAiY2VudGVyIjoKICAgICAgICAgICAgY2VudGVyID0gc2VsZi5nZXRfY2VudGVyKCkKICAgICAgICAgICAgc2VsZi5tb3ZlKHBvc2l0aW9uPS1jZW50ZXIpCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc2VsZi5kZXNjX2lkcyA9IHsKICAgICAgICAgICAgInRleHQiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLlBSSU1fVEVYVF9URVhULCBjNGQuRFRZUEVfU1RSSU5HLCAwKSksCiAgICAgICAgICAgICJ0ZXh0X2hlaWdodCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuUFJJTV9URVhUX0hFSUdIVCwgYzRkLkRUWVBFX1JFQUwsIDApKQogICAgICAgIH0KCmNsYXNzIFNwbGluZU1hc2soTGluZU9iamVjdCk6CiAgICAiIiJjcmVhdGVzIGEgc3BsaW5lIG1hc2siIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgKmlucHV0X3NwbGluZXMsIG1vZGU9InVuaW9uIiwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuaW5wdXRfc3BsaW5lcyA9IGlucHV0X3NwbGluZXMKICAgICAgICBzZWxmLm1vZGUgPSBtb2RlCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKICAgICAgICBzZWxmLmluc2VydF9pbnB1dF9zcGxpbmVzKCkKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdCgxMDE5Mzk2KQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgbW9kZXMgPSB7CiAgICAgICAgICAgICJ1bmlvbiI6IDAsCiAgICAgICAgICAgICJhLWIiOiAxLAogICAgICAgICAgICAiYi1hIjogMiwKICAgICAgICAgICAgImFuZCI6IDMsCiAgICAgICAgICAgICJvciI6IDQsCiAgICAgICAgICAgICJpbnRlcnNlY3Rpb24iOiA1CiAgICAgICAgfQogICAgICAgIHNlbGYub2JqW2M0ZC5NR1NQTElORU1BU0tPQkpFQ1RfTU9ERV0gPSBtb2Rlc1tzZWxmLm1vZGVdCgogICAgZGVmIGluc2VydF9pbnB1dF9zcGxpbmVzKHNlbGYpOgogICAgICAgIGZvciBzcGxpbmUgaW4gc2VsZi5pbnB1dF9zcGxpbmVzOgogICAgICAgICAgICBzcGxpbmUub2JqLkluc2VydFVuZGVyKHNlbGYub2JqKQoKICAgIGRlZiBzcGVjaWZ5X3JlbGF0aW9ucyhzZWxmKToKICAgICAgICBmb3IgaW5wdXRfc3BsaW5lIGluIHNlbGYuaW5wdXRfc3BsaW5lczoKICAgICAgICAgICAgaWYgaGFzYXR0cihpbnB1dF9zcGxpbmUsICJ2aXNpYmlsaXR5X3BhcmFtZXRlciIpOgogICAgICAgICAgICAgICAgdmlzaWJpbGl0eV9yZWxhdGlvbiA9IFhJZGVudGl0eSgKICAgICAgICAgICAgICAgICAgICAgICAgcGFydD1pbnB1dF9zcGxpbmUsIHdob2xlPXNlbGYsIGRlc2NfaWRzPVtpbnB1dF9zcGxpbmUudmlzaWJpbGl0eV9wYXJhbWV0ZXIuZGVzY19pZF0sIHBhcmFtZXRlcj1zZWxmLnZpc2liaWxpdHlfcGFyYW1ldGVyLCBuYW1lPSJWaXNpYmlsaXR5SW5oZXJpdGFuY2UiKQoKY2xhc3MgVmlzaWJsZU1vU3BsaW5lKExpbmVPYmplY3QpOgogICAgIiIiY3JlYXRlcyBhIHZpc2libGUgTW9TcGxpbmUiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZT0ic3BsaW5lIiwgZ2VuZXJhdGlvbl9tb2RlPSJldmVuIiwgcG9pbnRfY291bnQ9MTAwLCBzb3VyY2Vfc3BsaW5lPU5vbmUsIGRlc3RpbmF0aW9uX3NwbGluZT1Ob25lLCBlZmZlY3RvcnM9W10sICoqa3dhcmdzKToKICAgICAgICBzZWxmLm1vZGUgPSBtb2RlCiAgICAgICAgc2VsZi5nZW5lcmF0aW9uX21vZGUgPSBnZW5lcmF0aW9uX21vZGUKICAgICAgICBzZWxmLnBvaW50X2NvdW50ID0gcG9pbnRfY291bnQKICAgICAgICBzZWxmLnNvdXJjZV9zcGxpbmUgPSBzb3VyY2Vfc3BsaW5lCiAgICAgICAgc2VsZi5lZmZlY3RvcnMgPSBlZmZlY3RvcnMKICAgICAgICBzZWxmLmRlc3RpbmF0aW9uX3NwbGluZSA9IGRlc3RpbmF0aW9uX3NwbGluZQogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgc2VsZi5hZGRfZWZmZWN0b3JzKCkKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdCg0NDAwMDAwNTQpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICAjIGltcGxpY2l0IHByb3BlcnRpZXMKICAgICAgICBtb2RlcyA9IHsic2ltcGxlIjogMCwgInNwbGluZSI6IDEsICJ0dXJ0bGUiOiAyfQogICAgICAgIGdlbmVyYXRpb25fbW9kZXMgPSB7InZlcnRleCI6IDAsICJjb3VudCI6IDEsICJldmVuIjogMiwgInN0ZXAiOiAzfQogICAgICAgICMgc2V0IHByb3BlcnRpZXMKICAgICAgICBzZWxmLm9ialtjNGQuTUdNT1NQTElORU9CSkVDVF9NT0RFXSA9IG1vZGVzW3NlbGYubW9kZV0KICAgICAgICBzZWxmLm9ialtjNGQuTUdNT1NQTElORU9CSkVDVF9TUExJTkVfTU9ERV0gPSBnZW5lcmF0aW9uX21vZGVzW3NlbGYuZ2VuZXJhdGlvbl9tb2RlXQogICAgICAgIHNlbGYub2JqW2M0ZC5NR01PU1BMSU5FT0JKRUNUX1NQTElORV9DT1VOVF0gPSBzZWxmLnBvaW50X2NvdW50CiAgICAgICAgIyBkaXNwbGF5IGFzIHJlZ3VsYXIgc3BsaW5lCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HTU9TUExJTkVPQkpFQ1RfRElTUExBWU1PREVdID0gMAogICAgICAgIGlmIHNlbGYuc291cmNlX3NwbGluZToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HTU9TUExJTkVPQkpFQ1RfU09VUkNFX1NQTElORV0gPSBzZWxmLnNvdXJjZV9zcGxpbmUub2JqCiAgICAgICAgaWYgc2VsZi5kZXN0aW5hdGlvbl9zcGxpbmU6CiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5NR01PU1BMSU5FT0JKRUNUX0RFU1RfU1BMSU5FXSA9IHNlbGYuZGVzdGluYXRpb25fc3BsaW5lLm9iagoKICAgIGRlZiBzZXRfdW5pcXVlX2Rlc2NfaWRzKHNlbGYpOgogICAgICAgIHNlbGYuZGVzY19pZHMgPSB7CiAgICAgICAgICAgICJwb2ludF9jb3VudCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuTUdNT1NQTElORU9CSkVDVF9TUExJTkVfQ09VTlQsIGM0ZC5EVFlQRV9MT05HLCAwKSkKICAgICAgICB9CgogICAgZGVmIGFkZF9lZmZlY3RvcnMoc2VsZik6CiAgICAgICAgc2VsZi5lZmZlY3Rvcl9saXN0ID0gYzRkLkluRXhjbHVkZURhdGEoKQogICAgICAgIGZvciBlZmZlY3RvciBpbiBzZWxmLmVmZmVjdG9yczoKICAgICAgICAgICAgc2VsZi5lZmZlY3Rvcl9saXN0Lkluc2VydE9iamVjdChlZmZlY3Rvci5vYmosIDEpCiAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX01PVElPTkdFTkVSQVRPUl9FRkZFQ1RPUkxJU1RdID0gc2VsZi5lZmZlY3Rvcl9saXN0CgogICAgZGVmIGFkZF9lZmZlY3RvcihzZWxmLCBlZmZlY3Rvcik6CiAgICAgICAgc2VsZi5lZmZlY3Rvcl9saXN0Lkluc2VydE9iamVjdChlZmZlY3Rvci5vYmosIDEpCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HTU9TUExJTkVPQkpFQ1RfRUZGRUNUT1JMSVNUXSA9IHNlbGYuZWZmZWN0b3JfbGlzdAoKY2xhc3MgU3BsaW5lU3ltbWV0cnkoTGluZU9iamVjdCk6CiAgICAiIiJ0aGUgc3ltbWV0cnkgb2JqZWN0IHVzZWQgdG8gbWlycm9yIHNwbGluZSBnZW9tZXRyeSIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqaW5wdXRfc3BsaW5lcywgYXhpcz0ieCIsICoqa3dhcmdzKToKICAgICAgICBzZWxmLmlucHV0X3NwbGluZXMgPSBpbnB1dF9zcGxpbmVzCiAgICAgICAgc2VsZi5heGlzID0gYXhpcwogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgc2VsZi5pbnNlcnRfaW5wdXRfc3BsaW5lcygpCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoNTE0MikKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIGF4ZXMgPSB7IngiOiAxLCAieSI6IDIsICJ6IjogMH0KICAgICAgICBzZWxmLm9ialtjNGQuU1lNTUVUUllPQkpFQ1RfUExBTkVdID0gYXhlc1tzZWxmLmF4aXNdCgogICAgZGVmIGluc2VydF9pbnB1dF9zcGxpbmVzKHNlbGYpOgogICAgICAgIGZvciBzcGxpbmUgaW4gc2VsZi5pbnB1dF9zcGxpbmVzOgogICAgICAgICAgICBzcGxpbmUub2JqLkluc2VydFVuZGVyKHNlbGYub2JqKQoKY2xhc3MgSGVsaXgoTGluZU9iamVjdCk6CiAgICAiIiJ0aGUgaGVsaXggb2JqZWN0IiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXJ0X3JhZGl1cz0yMDAsIHN0YXJ0X2FuZ2xlPTAsIGVuZF9yYWRpdXM9MjAwLCBlbmRfYW5nbGU9MipQSSwgcmFkaWFsX2JpYXM9MS8yLCBoZWlnaHQ9MjAwLCBoZWlnaHRfYmlhcz0xLzIsIHN1YmRpdmlzaW9uPTEwMCwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuc3RhcnRfcmFkaXVzID0gc3RhcnRfcmFkaXVzCiAgICAgICAgc2VsZi5zdGFydF9hbmdsZSA9IHN0YXJ0X2FuZ2xlCiAgICAgICAgc2VsZi5lbmRfcmFkaXVzID0gZW5kX3JhZGl1cwogICAgICAgIHNlbGYuZW5kX2FuZ2xlID0gZW5kX2FuZ2xlCiAgICAgICAgc2VsZi5yYWRpYWxfYmlhcyA9IHJhZGlhbF9iaWFzCiAgICAgICAgc2VsZi5oZWlnaHQgPSBoZWlnaHQKICAgICAgICBzZWxmLmhlaWdodF9iaWFzID0gaGVpZ2h0X2JpYXMKICAgICAgICBzZWxmLnN1YmRpdmlzaW9uID0gc3ViZGl2aXNpb24KICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5Pc3BsaW5laGVsaXgpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9IRUxJWF9SQURJVVMxXSA9IHNlbGYuc3RhcnRfcmFkaXVzCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fSEVMSVhfUkFESVVTMl0gPSBzZWxmLmVuZF9yYWRpdXMKICAgICAgICBzZWxmLm9ialtjNGQuUFJJTV9IRUxJWF9TVEFSVF0gPSBzZWxmLnN0YXJ0X2FuZ2xlCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fSEVMSVhfRU5EXSA9IHNlbGYuZW5kX2FuZ2xlCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fSEVMSVhfUkFESUFMQklBU10gPSBzZWxmLnJhZGlhbF9iaWFzCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fSEVMSVhfSEVJR0hUXSA9IHNlbGYuaGVpZ2h0CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fSEVMSVhfSEVJR0hUQklBU10gPSBzZWxmLmhlaWdodF9iaWFzCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fSEVMSVhfU1VCXSA9IHNlbGYuc3ViZGl2aXNpb24KCmNsYXNzIE5TaWRlKExpbmVPYmplY3QpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhZGl1cz0xMDAsIHBvaW50X2NvdW50PTMsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnJhZGl1cyA9IHJhZGl1cwogICAgICAgIHNlbGYucG9pbnRfY291bnQgPSBwb2ludF9jb3VudAogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5Pc3BsaW5lbnNpZGUpCiAgICAKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fTlNJREVfUkFESVVTXSA9IHNlbGYucmFkaXVzCiAgICAgICAgc2VsZi5vYmpbYzRkLlBSSU1fTlNJREVfU0lERVNdID0gc2VsZi5wb2ludF9jb3VudAogICAgICAgICMgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGxpa2UgYW5nbGUgY2FuIGJlIHNldCBoZXJlIGlmIG5lY2Vzc2FyeS4KICAgIAogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc2VsZi5kZXNjX2lkcyA9IHsKICAgICAgICAgICAgInJhZGl1cyI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuUFJJTV9OU0lERV9SQURJVVMsIGM0ZC5EVFlQRV9SRUFMLCAwKSksCiAgICAgICAgICAgICJwb2ludF9jb3VudCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuUFJJTV9OU0lERV9TSURFUywgYzRkLkRUWVBFX0xPTkcsIDApKSwKICAgICAgICAgICAgIyBBZGQgRGVzY0lEcyBmb3IgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGhlcmUKICAgICAgICB9CgpjbGFzcyBUcmlhbmdsZShOU2lkZSk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgcmFkaXVzPTEwMCwgKiprd2FyZ3MpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18ocmFkaXVzPXJhZGl1cywgcG9pbnRfY291bnQ9MywgKiprd2FyZ3MpCiAgICAKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgc3VwZXIoKS5zZXRfb2JqZWN0X3Byb3BlcnRpZXMoKQogICAgICAgIHNlbGYub2JqW1JPVF9CXSA9IC1jNGQudXRpbHMuUmFkKDkwKSAgIyBSb3RhdGUgYnkgLTkwIGRlZ3JlZXMgdG8gbWFrZSB0aGUgdHJpYW5nbGUgcG9pbnQgdXB3YXJkcy4KICAgIAogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc3VwZXIoKS5zZXRfdW5pcXVlX2Rlc2NfaWRzKCkKICAgICAgICAjIEFkZCBEZXNjSUQgZm9yIHRoZSBvcmllbnRhdGlvbiBhbmQgcm90YXRpb24gaWYgbmVjZXNzYXJ5IGZvciBhbmltYXRpb24gcHVycG9zZXMuCg", 3272 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACxCwAAAAAAALELAAAAAAAAAAAAAAAA8L8" 3273 ], 3274 [ 3275 44, 3276 1, 3277 "insert", 3278 { 3279 "characters": "\n" 3280 }, 3281 "AwAAAHcLAAAAAAAAeAsAAAAAAAAAAAAAeAsAAAAAAAB8CwAAAAAAAAAAAAB8CwAAAAAAAIALAAAAAAAAAAAAAA", 3282 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAB3CwAAAAAAAHcLAAAAAAAAAAAAAAAA8L8" 3283 ], 3284 [ 3285 45, 3286 1, 3287 "insert", 3288 { 3289 "characters": "s" 3290 }, 3291 "AQAAAIALAAAAAAAAgQsAAAAAAAAAAAAA", 3292 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACACwAAAAAAAIALAAAAAAAAAAAAAAAA8L8" 3293 ], 3294 [ 3295 46, 3296 1, 3297 "insert_completion", 3298 { 3299 "completion": "self", 3300 "format": "snippet", 3301 "keep_prefix": false, 3302 "must_insert": false, 3303 "trigger": "self" 3304 }, 3305 "AgAAAIALAAAAAAAAgAsAAAAAAAABAAAAc4ALAAAAAAAAhAsAAAAAAAAAAAAA", 3306 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACBCwAAAAAAAIELAAAAAAAAAAAAAAAA8L8" 3307 ], 3308 [ 3309 47, 3310 1, 3311 "insert", 3312 { 3313 "characters": ".s" 3314 }, 3315 "AgAAAIQLAAAAAAAAhQsAAAAAAAAAAAAAhQsAAAAAAACGCwAAAAAAAAAAAAA", 3316 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACECwAAAAAAAIQLAAAAAAAAAAAAAAAA8L8" 3317 ], 3318 [ 3319 48, 3320 1, 3321 "copilot_accept_completion", 3322 null, 3323 "AgAAAHgLAAAAAAAAeAsAAAAAAAAOAAAAICAgICAgICBzZWxmLnN4CwAAAAAAAJALAAAAAAAAAAAAAA", 3324 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACGCwAAAAAAAIYLAAAAAAAAAAAAAAAA8L8" 3325 ] 3326 ] 3327 }, 3328 { 3329 "file": "tags.py", 3330 "settings": 3331 { 3332 "buffer_size": 4670, 3333 "encoding": "UTF-8", 3334 "line_ending": "Unix" 3335 }, 3336 "undo_stack": 3337 [ 3338 [ 3339 7, 3340 1, 3341 "insert", 3342 { 3343 "characters": "\n\ndef" 3344 }, 3345 "CAAAAG8EAAAAAAAAcAQAAAAAAAAAAAAAcAQAAAAAAAB0BAAAAAAAAAAAAAB0BAAAAAAAAHUEAAAAAAAAAAAAAHUEAAAAAAAAeQQAAAAAAAAAAAAAcAQAAAAAAABwBAAAAAAAAAQAAAAgICAgdQQAAAAAAAB2BAAAAAAAAAAAAAB2BAAAAAAAAHcEAAAAAAAAAAAAAHcEAAAAAAAAeAQAAAAAAAAAAAAA", 3346 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAG8EAAAAAAAAbwQAAAAAAAAAAAAAAADwvw" 3347 ], 3348 [ 3349 8, 3350 1, 3351 "insert", 3352 { 3353 "characters": " in" 3354 }, 3355 "AwAAAHgEAAAAAAAAeQQAAAAAAAAAAAAAeQQAAAAAAAB6BAAAAAAAAAAAAAB6BAAAAAAAAHsEAAAAAAAAAAAAAA", 3356 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHgEAAAAAAAAeAQAAAAAAAAAAAAAAADwvw" 3357 ], 3358 [ 3359 9, 3360 1, 3361 "insert_completion", 3362 { 3363 "completion": "__init__", 3364 "format": "text", 3365 "keep_prefix": false, 3366 "must_insert": false, 3367 "trigger": "__init__" 3368 }, 3369 "AgAAAHkEAAAAAAAAeQQAAAAAAAACAAAAaW55BAAAAAAAAIEEAAAAAAAAAAAAAA", 3370 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHsEAAAAAAAAewQAAAAAAAAAAAAAAADwvw" 3371 ], 3372 [ 3373 10, 3374 1, 3375 "copilot_accept_completion", 3376 null, 3377 "AgAAAHEEAAAAAAAAcQQAAAAAAAAQAAAAICAgIGRlZiBfX2luaXRfX3EEAAAAAAAAkgQAAAAAAAAAAAAA", 3378 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIEEAAAAAAAAgQQAAAAAAAAAAAAAAADwvw" 3379 ], 3380 [ 3381 11, 3382 1, 3383 "insert", 3384 { 3385 "characters": "\n" 3386 }, 3387 "AwAAAJIEAAAAAAAAkwQAAAAAAAAAAAAAkwQAAAAAAACXBAAAAAAAAAAAAACXBAAAAAAAAJsEAAAAAAAAAAAAAA", 3388 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJIEAAAAAAAAkgQAAAAAAAAAAAAAAADwvw" 3389 ], 3390 [ 3391 12, 3392 1, 3393 "copilot_accept_completion", 3394 null, 3395 "AgAAAJMEAAAAAAAAkwQAAAAAAAAIAAAAICAgICAgICCTBAAAAAAAANcEAAAAAAAAAAAAAA", 3396 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJsEAAAAAAAAmwQAAAAAAAAAAAAAAADwvw" 3397 ], 3398 [ 3399 13, 3400 1, 3401 "run_macro_file", 3402 { 3403 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 3404 }, 3405 "AQAAALYEAAAAAAAAtgQAAAAAAAAhAAAAICAgICAgICBzZWxmLnNldF90YWdfcHJvcGVydGllcygp", 3406 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANcEAAAAAAAA1wQAAAAAAAAAAAAAAADwvw" 3407 ], 3408 [ 3409 14, 3410 1, 3411 "left_delete", 3412 null, 3413 "AQAAALUEAAAAAAAAtQQAAAAAAAABAAAACg", 3414 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALYEAAAAAAAAtgQAAAAAAAAAAAAAAADwvw" 3415 ], 3416 [ 3417 17, 3418 1, 3419 "insert", 3420 { 3421 "characters": "\n" 3422 }, 3423 "AwAAAJIEAAAAAAAAkwQAAAAAAAAAAAAAkwQAAAAAAACXBAAAAAAAAAAAAACXBAAAAAAAAJsEAAAAAAAAAAAAAA", 3424 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJIEAAAAAAAAkgQAAAAAAAAAAAAAAMBtQA" 3425 ], 3426 [ 3427 21, 3428 1, 3429 "insert", 3430 { 3431 "characters": " outl" 3432 }, 3433 "BgAAAIcEAAAAAAAAiAQAAAAAAAAAAAAAlAQAAAAAAACUBAAAAAAAAAgAAAAgICAgICAgIIgEAAAAAAAAiQQAAAAAAAAAAAAAiQQAAAAAAACKBAAAAAAAAAAAAACKBAAAAAAAAIsEAAAAAAAAAAAAAIsEAAAAAAAAjAQAAAAAAAAAAAAA", 3434 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIcEAAAAAAAAhwQAAAAAAAAAAAAAAADwvw" 3435 ], 3436 [ 3437 22, 3438 1, 3439 "insert", 3440 { 3441 "characters": "ine=" 3442 }, 3443 "BAAAAIwEAAAAAAAAjQQAAAAAAAAAAAAAjQQAAAAAAACOBAAAAAAAAAAAAACOBAAAAAAAAI8EAAAAAAAAAAAAAI8EAAAAAAAAkAQAAAAAAAAAAAAA", 3444 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIwEAAAAAAAAjAQAAAAAAAAAAAAAAADwvw" 3445 ], 3446 [ 3447 23, 3448 1, 3449 "insert", 3450 { 3451 "characters": "False," 3452 }, 3453 "BgAAAJAEAAAAAAAAkQQAAAAAAAAAAAAAkQQAAAAAAACSBAAAAAAAAAAAAACSBAAAAAAAAJMEAAAAAAAAAAAAAJMEAAAAAAAAlAQAAAAAAAAAAAAAlAQAAAAAAACVBAAAAAAAAAAAAACVBAAAAAAAAJYEAAAAAAAAAAAAAA", 3454 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJAEAAAAAAAAkAQAAAAAAAAAAAAAAADwvw" 3455 ], 3456 [ 3457 24, 3458 1, 3459 "insert", 3460 { 3461 "characters": " " 3462 }, 3463 "AQAAAJYEAAAAAAAAlwQAAAAAAAAAAAAA", 3464 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJYEAAAAAAAAlgQAAAAAAAAAAAAAAADwvw" 3465 ], 3466 [ 3467 26, 3468 1, 3469 "insert", 3470 { 3471 "characters": "contour=" 3472 }, 3473 "CAAAAJcEAAAAAAAAmAQAAAAAAAAAAAAAmAQAAAAAAACZBAAAAAAAAAAAAACZBAAAAAAAAJoEAAAAAAAAAAAAAJoEAAAAAAAAmwQAAAAAAAAAAAAAmwQAAAAAAACcBAAAAAAAAAAAAACcBAAAAAAAAJ0EAAAAAAAAAAAAAJ0EAAAAAAAAngQAAAAAAAAAAAAAngQAAAAAAACfBAAAAAAAAAAAAAA", 3474 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJcEAAAAAAAAlwQAAAAAAAAAAAAAAADwvw" 3475 ], 3476 [ 3477 27, 3478 1, 3479 "insert", 3480 { 3481 "characters": "False," 3482 }, 3483 "BgAAAJ8EAAAAAAAAoAQAAAAAAAAAAAAAoAQAAAAAAAChBAAAAAAAAAAAAAChBAAAAAAAAKIEAAAAAAAAAAAAAKIEAAAAAAAAowQAAAAAAAAAAAAAowQAAAAAAACkBAAAAAAAAAAAAACkBAAAAAAAAKUEAAAAAAAAAAAAAA", 3484 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJ8EAAAAAAAAnwQAAAAAAAAAAAAAAADwvw" 3485 ], 3486 [ 3487 28, 3488 1, 3489 "insert", 3490 { 3491 "characters": " splines" 3492 }, 3493 "CAAAAKUEAAAAAAAApgQAAAAAAAAAAAAApgQAAAAAAACnBAAAAAAAAAAAAACnBAAAAAAAAKgEAAAAAAAAAAAAAKgEAAAAAAAAqQQAAAAAAAAAAAAAqQQAAAAAAACqBAAAAAAAAAAAAACqBAAAAAAAAKsEAAAAAAAAAAAAAKsEAAAAAAAArAQAAAAAAAAAAAAArAQAAAAAAACtBAAAAAAAAAAAAAA", 3494 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAKUEAAAAAAAApQQAAAAAAAAAAAAAAADwvw" 3495 ], 3496 [ 3497 29, 3498 1, 3499 "insert", 3500 { 3501 "characters": "=False," 3502 }, 3503 "BwAAAK0EAAAAAAAArgQAAAAAAAAAAAAArgQAAAAAAACvBAAAAAAAAAAAAACvBAAAAAAAALAEAAAAAAAAAAAAALAEAAAAAAAAsQQAAAAAAAAAAAAAsQQAAAAAAACyBAAAAAAAAAAAAACyBAAAAAAAALMEAAAAAAAAAAAAALMEAAAAAAAAtAQAAAAAAAAAAAAA", 3504 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAK0EAAAAAAAArQQAAAAAAAAAAAAAAADwvw" 3505 ], 3506 [ 3507 30, 3508 1, 3509 "insert", 3510 { 3511 "characters": " " 3512 }, 3513 "AQAAALQEAAAAAAAAtQQAAAAAAAAAAAAA", 3514 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALQEAAAAAAAAtAQAAAAAAAAAAAAAAADwvw" 3515 ], 3516 [ 3517 31, 3518 1, 3519 "insert", 3520 { 3521 "characters": "folds=False" 3522 }, 3523 "CwAAALUEAAAAAAAAtgQAAAAAAAAAAAAAtgQAAAAAAAC3BAAAAAAAAAAAAAC3BAAAAAAAALgEAAAAAAAAAAAAALgEAAAAAAAAuQQAAAAAAAAAAAAAuQQAAAAAAAC6BAAAAAAAAAAAAAC6BAAAAAAAALsEAAAAAAAAAAAAALsEAAAAAAAAvAQAAAAAAAAAAAAAvAQAAAAAAAC9BAAAAAAAAAAAAAC9BAAAAAAAAL4EAAAAAAAAAAAAAL4EAAAAAAAAvwQAAAAAAAAAAAAAvwQAAAAAAADABAAAAAAAAAAAAAA", 3524 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALUEAAAAAAAAtQQAAAAAAAAAAAAAAADwvw" 3525 ], 3526 [ 3527 32, 3528 1, 3529 "insert", 3530 { 3531 "characters": "," 3532 }, 3533 "AQAAAMAEAAAAAAAAwQQAAAAAAAAAAAAA", 3534 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMAEAAAAAAAAwAQAAAAAAAAAAAAAAADwvw" 3535 ], 3536 [ 3537 33, 3538 1, 3539 "insert", 3540 { 3541 "characters": " creases" 3542 }, 3543 "CAAAAMEEAAAAAAAAwgQAAAAAAAAAAAAAwgQAAAAAAADDBAAAAAAAAAAAAADDBAAAAAAAAMQEAAAAAAAAAAAAAMQEAAAAAAAAxQQAAAAAAAAAAAAAxQQAAAAAAADGBAAAAAAAAAAAAADGBAAAAAAAAMcEAAAAAAAAAAAAAMcEAAAAAAAAyAQAAAAAAAAAAAAAyAQAAAAAAADJBAAAAAAAAAAAAAA", 3544 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMEEAAAAAAAAwQQAAAAAAAAAAAAAAADwvw" 3545 ], 3546 [ 3547 34, 3548 1, 3549 "insert", 3550 { 3551 "characters": "=False," 3552 }, 3553 "BwAAAMkEAAAAAAAAygQAAAAAAAAAAAAAygQAAAAAAADLBAAAAAAAAAAAAADLBAAAAAAAAMwEAAAAAAAAAAAAAMwEAAAAAAAAzQQAAAAAAAAAAAAAzQQAAAAAAADOBAAAAAAAAAAAAADOBAAAAAAAAM8EAAAAAAAAAAAAAM8EAAAAAAAA0AQAAAAAAAAAAAAA", 3554 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMkEAAAAAAAAyQQAAAAAAAAAAAAAAADwvw" 3555 ], 3556 [ 3557 37, 3558 1, 3559 "cut", 3560 null, 3561 "AQAAAJcEAAAAAAAAlwQAAAAAAAAdAAAAY29udG91cj1GYWxzZSwgc3BsaW5lcz1GYWxzZSw", 3562 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJcEAAAAAAAAtAQAAAAAAAAAAAAAAADwvw" 3563 ], 3564 [ 3565 38, 3566 1, 3567 "left_delete", 3568 null, 3569 "AQAAAJYEAAAAAAAAlgQAAAAAAAABAAAAIA", 3570 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJcEAAAAAAAAlwQAAAAAAAAAAAAAAADwvw" 3571 ], 3572 [ 3573 41, 3574 1, 3575 "paste", 3576 null, 3577 "AQAAALIEAAAAAAAAzwQAAAAAAAAAAAAA", 3578 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALIEAAAAAAAAsgQAAAAAAAAAAAAAAADwvw" 3579 ], 3580 [ 3581 43, 3582 1, 3583 "insert", 3584 { 3585 "characters": " " 3586 }, 3587 "AQAAALIEAAAAAAAAswQAAAAAAAAAAAAA", 3588 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALIEAAAAAAAAsgQAAAAAAAAAAAAAAADwvw" 3589 ], 3590 [ 3591 45, 3592 1, 3593 "reindent", 3594 null, 3595 "AQAAANwEAAAAAAAA5AQAAAAAAAAAAAAA", 3596 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANwEAAAAAAAA3AQAAAAAAAAAAAAAAOB8QA" 3597 ], 3598 [ 3599 46, 3600 1, 3601 "copilot_accept_completion", 3602 null, 3603 "AgAAANwEAAAAAAAA3AQAAAAAAAAIAAAAICAgICAgICDcBAAAAAAAAPoEAAAAAAAAAAAAAA", 3604 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOQEAAAAAAAA5AQAAAAAAAAAAAAAAADwvw" 3605 ], 3606 [ 3607 47, 3608 1, 3609 "insert", 3610 { 3611 "characters": "\n" 3612 }, 3613 "AgAAAPoEAAAAAAAA+wQAAAAAAAAAAAAA+wQAAAAAAAADBQAAAAAAAAAAAAA", 3614 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPoEAAAAAAAA+gQAAAAAAAAAAAAAAADwvw" 3615 ], 3616 [ 3617 48, 3618 1, 3619 "copilot_accept_completion", 3620 null, 3621 "AgAAAPsEAAAAAAAA+wQAAAAAAAAIAAAAICAgICAgICD7BAAAAAAAABUFAAAAAAAAAAAAAA", 3622 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAMFAAAAAAAAAwUAAAAAAAAAAAAAAADwvw" 3623 ], 3624 [ 3625 49, 3626 1, 3627 "insert", 3628 { 3629 "characters": "\n" 3630 }, 3631 "AgAAABUFAAAAAAAAFgUAAAAAAAAAAAAAFgUAAAAAAAAeBQAAAAAAAAAAAAA", 3632 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABUFAAAAAAAAFQUAAAAAAAAAAAAAAADwvw" 3633 ], 3634 [ 3635 50, 3636 1, 3637 "copilot_accept_completion", 3638 null, 3639 "AgAAABYFAAAAAAAAFgUAAAAAAAAIAAAAICAgICAgICAWBQAAAAAAADQFAAAAAAAAAAAAAA", 3640 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAB4FAAAAAAAAHgUAAAAAAAAAAAAAAADwvw" 3641 ], 3642 [ 3643 51, 3644 1, 3645 "insert", 3646 { 3647 "characters": "\n" 3648 }, 3649 "AgAAADQFAAAAAAAANQUAAAAAAAAAAAAANQUAAAAAAAA9BQAAAAAAAAAAAAA", 3650 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADQFAAAAAAAANAUAAAAAAAAAAAAAAADwvw" 3651 ], 3652 [ 3653 52, 3654 1, 3655 "copilot_accept_completion", 3656 null, 3657 "AgAAADUFAAAAAAAANQUAAAAAAAAIAAAAICAgICAgICA1BQAAAAAAAFMFAAAAAAAAAAAAAA", 3658 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAD0FAAAAAAAAPQUAAAAAAAAAAAAAAADwvw" 3659 ], 3660 [ 3661 53, 3662 1, 3663 "insert", 3664 { 3665 "characters": "\n" 3666 }, 3667 "AgAAAFMFAAAAAAAAVAUAAAAAAAAAAAAAVAUAAAAAAABcBQAAAAAAAAAAAAA", 3668 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFMFAAAAAAAAUwUAAAAAAAAAAAAAAADwvw" 3669 ], 3670 [ 3671 54, 3672 1, 3673 "copilot_accept_completion", 3674 null, 3675 "AgAAAFQFAAAAAAAAVAUAAAAAAAAIAAAAICAgICAgICBUBQAAAAAAAHIFAAAAAAAAAAAAAA", 3676 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFwFAAAAAAAAXAUAAAAAAAAAAAAAAADwvw" 3677 ], 3678 [ 3679 55, 3680 1, 3681 "insert", 3682 { 3683 "characters": "\n" 3684 }, 3685 "AgAAAHIFAAAAAAAAcwUAAAAAAAAAAAAAcwUAAAAAAAB7BQAAAAAAAAAAAAA", 3686 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHIFAAAAAAAAcgUAAAAAAAAAAAAAAADwvw" 3687 ], 3688 [ 3689 56, 3690 3, 3691 "left_delete", 3692 null, 3693 "AwAAAHcFAAAAAAAAdwUAAAAAAAAEAAAAICAgIHMFAAAAAAAAcwUAAAAAAAAEAAAAICAgIHIFAAAAAAAAcgUAAAAAAAABAAAACg", 3694 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHsFAAAAAAAAewUAAAAAAAAAAAAAAADwvw" 3695 ], 3696 [ 3697 66, 3698 1, 3699 "insert", 3700 { 3701 "characters": "True" 3702 }, 3703 "BQAAAMoEAAAAAAAAywQAAAAAAAAAAAAAywQAAAAAAADLBAAAAAAAAAUAAABGYWxzZcsEAAAAAAAAzAQAAAAAAAAAAAAAzAQAAAAAAADNBAAAAAAAAAAAAADNBAAAAAAAAM4EAAAAAAAAAAAAAA", 3704 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMoEAAAAAAAAzwQAAAAAAAAAAAAAAADwvw" 3705 ], 3706 [ 3707 74, 3708 1, 3709 "left_delete", 3710 null, 3711 "AQAAALkHAAAAAAAAuQcAAAAAAAAFAAAARmFsc2U", 3712 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALkHAAAAAAAAvgcAAAAAAAAAAAAAAADwvw" 3713 ], 3714 [ 3715 75, 3716 1, 3717 "insert", 3718 { 3719 "characters": "s" 3720 }, 3721 "AQAAALkHAAAAAAAAugcAAAAAAAAAAAAA", 3722 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALkHAAAAAAAAuQcAAAAAAAAAAAAAAADwvw" 3723 ], 3724 [ 3725 76, 3726 1, 3727 "copilot_accept_completion", 3728 null, 3729 "AgAAAIwHAAAAAAAAjAcAAAAAAAAuAAAAICAgICAgICBzZWxmLm9ialtjNGQuT1VUTElORU1BVF9MSU5FX0ZPTERdID0gc4wHAAAAAAAAwwcAAAAAAAAAAAAA", 3730 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALoHAAAAAAAAugcAAAAAAAAAAAAAAADwvw" 3731 ], 3732 [ 3733 78, 3734 1, 3735 "delete_word", 3736 { 3737 "forward": false 3738 }, 3739 "AQAAAPMHAAAAAAAA8wcAAAAAAAAFAAAARmFsc2U", 3740 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPgHAAAAAAAA+AcAAAAAAAAAAAAAABB4QA" 3741 ], 3742 [ 3743 79, 3744 1, 3745 "copilot_accept_completion", 3746 null, 3747 "AgAAAMQHAAAAAAAAxAcAAAAAAAAvAAAAICAgICAgICBzZWxmLm9ialtjNGQuT1VUTElORU1BVF9MSU5FX0NSRUFTRV0gPSDEBwAAAAAAAP8HAAAAAAAAAAAAAA", 3748 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPMHAAAAAAAA8wcAAAAAAAAAAAAAAADwvw" 3749 ], 3750 [ 3751 81, 3752 1, 3753 "delete_word", 3754 { 3755 "forward": false 3756 }, 3757 "AQAAAC8IAAAAAAAALwgAAAAAAAAFAAAARmFsc2U", 3758 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADQIAAAAAAAANAgAAAAAAAAAAAAAANB5QA" 3759 ], 3760 [ 3761 84, 3762 1, 3763 "insert", 3764 { 3765 "characters": "border=Fals" 3766 }, 3767 "CwAAALMEAAAAAAAAtAQAAAAAAAAAAAAAtAQAAAAAAAC1BAAAAAAAAAAAAAC1BAAAAAAAALYEAAAAAAAAAAAAALYEAAAAAAAAtwQAAAAAAAAAAAAAtwQAAAAAAAC4BAAAAAAAAAAAAAC4BAAAAAAAALkEAAAAAAAAAAAAALkEAAAAAAAAugQAAAAAAAAAAAAAugQAAAAAAAC7BAAAAAAAAAAAAAC7BAAAAAAAALwEAAAAAAAAAAAAALwEAAAAAAAAvQQAAAAAAAAAAAAAvQQAAAAAAAC+BAAAAAAAAAAAAAA", 3768 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALMEAAAAAAAAswQAAAAAAAAAAAAAAADwvw" 3769 ], 3770 [ 3771 85, 3772 1, 3773 "insert", 3774 { 3775 "characters": "e," 3776 }, 3777 "AgAAAL4EAAAAAAAAvwQAAAAAAAAAAAAAvwQAAAAAAADABAAAAAAAAAAAAAA", 3778 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAL4EAAAAAAAAvgQAAAAAAAAAAAAAAADwvw" 3779 ], 3780 [ 3781 86, 3782 1, 3783 "insert", 3784 { 3785 "characters": " " 3786 }, 3787 "AQAAAMAEAAAAAAAAwQQAAAAAAAAAAAAA", 3788 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMAEAAAAAAAAwAQAAAAAAAAAAAAAAADwvw" 3789 ], 3790 [ 3791 90, 3792 1, 3793 "insert", 3794 { 3795 "characters": "\n" 3796 }, 3797 "AgAAAEEFAAAAAAAAQgUAAAAAAAAAAAAAQgUAAAAAAABKBQAAAAAAAAAAAAA", 3798 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAEEFAAAAAAAAQQUAAAAAAAAAAAAAAEBqQA" 3799 ], 3800 [ 3801 91, 3802 1, 3803 "copilot_accept_completion", 3804 null, 3805 "AgAAAEIFAAAAAAAAQgUAAAAAAAAIAAAAICAgICAgICBCBQAAAAAAAF4FAAAAAAAAAAAAAA", 3806 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAEoFAAAAAAAASgUAAAAAAAAAAAAAAADwvw" 3807 ], 3808 [ 3809 94, 3810 1, 3811 "insert", 3812 { 3813 "characters": "s" 3814 }, 3815 "AQAAAFoIAAAAAAAAWwgAAAAAAAAAAAAA", 3816 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFoIAAAAAAAAWggAAAAAAAAAAAAAAADwvw" 3817 ], 3818 [ 3819 95, 3820 1, 3821 "copilot_accept_completion", 3822 null, 3823 "AgAAACsIAAAAAAAAKwgAAAAAAAAwAAAAICAgICAgICBzZWxmLm9ialtjNGQuT1VUTElORU1BVF9MSU5FX0JPUkRFUl0gPSBzKwgAAAAAAABlCAAAAAAAAAAAAAA", 3824 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFsIAAAAAAAAWwgAAAAAAAAAAAAAAADwvw" 3825 ], 3826 [ 3827 96, 3828 1, 3829 "insert", 3830 { 3831 "characters": "\n" 3832 }, 3833 "AgAAAGUIAAAAAAAAZggAAAAAAAAAAAAAZggAAAAAAABuCAAAAAAAAAAAAAA", 3834 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAGUIAAAAAAAAZQgAAAAAAAAAAAAAAADwvw" 3835 ], 3836 [ 3837 97, 3838 1, 3839 "copilot_accept_completion", 3840 null, 3841 "AgAAAGYIAAAAAAAAZggAAAAAAAAIAAAAICAgICAgICBmCAAAAAAAAKIIAAAAAAAAAAAAAA", 3842 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAG4IAAAAAAAAbggAAAAAAAAAAAAAAADwvw" 3843 ], 3844 [ 3845 99, 3846 1, 3847 "delete_word", 3848 { 3849 "forward": false 3850 }, 3851 "AQAAAI8HAAAAAAAAjwcAAAAAAAAEAAAAVHJ1ZQ", 3852 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJMHAAAAAAAAkwcAAAAAAAAAAAAAAEB6QA" 3853 ], 3854 [ 3855 100, 3856 1, 3857 "copilot_accept_completion", 3858 null, 3859 "AgAAAF8HAAAAAAAAXwcAAAAAAAAwAAAAICAgICAgICBzZWxmLm9ialtjNGQuT1VUTElORU1BVF9MSU5FX1NQTElORVNdID0gXwcAAAAAAACbBwAAAAAAAAAAAAA", 3860 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAI8HAAAAAAAAjwcAAAAAAAAAAAAAAADwvw" 3861 ], 3862 [ 3863 104, 3864 1, 3865 "insert", 3866 { 3867 "characters": "\n" 3868 }, 3869 "AgAAAKoIAAAAAAAAqwgAAAAAAAAAAAAAqwgAAAAAAACzCAAAAAAAAAAAAAA", 3870 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAKoIAAAAAAAAqggAAAAAAAAAAAAAAEB6QA" 3871 ], 3872 [ 3873 105, 3874 1, 3875 "insert", 3876 { 3877 "characters": "s" 3878 }, 3879 "AQAAALMIAAAAAAAAtAgAAAAAAAAAAAAA", 3880 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALMIAAAAAAAAswgAAAAAAAAAAAAAAADwvw" 3881 ], 3882 [ 3883 106, 3884 1, 3885 "copilot_accept_completion", 3886 null, 3887 "AgAAAKsIAAAAAAAAqwgAAAAAAAAJAAAAICAgICAgICBzqwgAAAAAAADnCAAAAAAAAAAAAAA", 3888 "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALQIAAAAAAAAtAgAAAAAAAAAAAAAAADwvw" 3889 ] 3890 ] 3891 }, 3892 { 3893 "file": "objects/helper_objects.py", 3894 "settings": 3895 { 3896 "buffer_size": 24682, 3897 "encoding": "UTF-8", 3898 "line_ending": "Unix" 3899 }, 3900 "undo_stack": 3901 [ 3902 [ 3903 8, 3904 1, 3905 "left_delete", 3906 null, 3907 "AQAAAFZFAAAAAAAAVkUAAAAAAAABAAAACg", 3908 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAFdFAAAAAAAAV0UAAAAAAAAAAAAAAADwvw" 3909 ], 3910 [ 3911 21, 3912 1, 3913 "insert", 3914 { 3915 "characters": "\t" 3916 }, 3917 "AQAAANoOAAAAAAAA3g4AAAAAAAAAAAAA", 3918 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANoOAAAAAAAA2g4AAAAAAAAAAAAAAABMQA" 3919 ], 3920 [ 3921 50, 3922 1, 3923 "insert", 3924 { 3925 "characters": "spline_" 3926 }, 3927 "IwAAAOcUAAAAAAAA6BQAAAAAAAAAAAAAGRAAAAAAAAAaEAAAAAAAAAAAAADtCwAAAAAAAO4LAAAAAAAAAAAAAOELAAAAAAAA4gsAAAAAAAAAAAAA0woAAAAAAADUCgAAAAAAAAAAAADsFAAAAAAAAO0UAAAAAAAAAAAAAB0QAAAAAAAAHhAAAAAAAAAAAAAA8AsAAAAAAADxCwAAAAAAAAAAAADjCwAAAAAAAOQLAAAAAAAAAAAAANQKAAAAAAAA1QoAAAAAAAAAAAAA8RQAAAAAAADyFAAAAAAAAAAAAAAhEAAAAAAAACIQAAAAAAAAAAAAAPMLAAAAAAAA9AsAAAAAAAAAAAAA5QsAAAAAAADmCwAAAAAAAAAAAADVCgAAAAAAANYKAAAAAAAAAAAAAPYUAAAAAAAA9xQAAAAAAAAAAAAAJRAAAAAAAAAmEAAAAAAAAAAAAAD2CwAAAAAAAPcLAAAAAAAAAAAAAOcLAAAAAAAA6AsAAAAAAAAAAAAA1goAAAAAAADXCgAAAAAAAAAAAAD7FAAAAAAAAPwUAAAAAAAAAAAAACkQAAAAAAAAKhAAAAAAAAAAAAAA+QsAAAAAAAD6CwAAAAAAAAAAAADpCwAAAAAAAOoLAAAAAAAAAAAAANcKAAAAAAAA2AoAAAAAAAAAAAAAABUAAAAAAAABFQAAAAAAAAAAAAAtEAAAAAAAAC4QAAAAAAAAAAAAAPwLAAAAAAAA/QsAAAAAAAAAAAAA6wsAAAAAAADsCwAAAAAAAAAAAADYCgAAAAAAANkKAAAAAAAAAAAAAAUVAAAAAAAABhUAAAAAAAAAAAAAMRAAAAAAAAAyEAAAAAAAAAAAAAD/CwAAAAAAAAAMAAAAAAAAAAAAAO0LAAAAAAAA7gsAAAAAAAAAAAAA2QoAAAAAAADaCgAAAAAAAAAAAAA", 3928 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAABQAAANMKAAAAAAAA0woAAAAAAAAAAAAAAADwv+ELAAAAAAAA4QsAAAAAAAAAAAAAAADwv+0LAAAAAAAA7QsAAAAAAAAAAAAAAADwvxkQAAAAAAAAGRAAAAAAAAAAAAAAAADwv+cUAAAAAAAA5xQAAAAAAAAAAAAAAADwvw" 3929 ], 3930 [ 3931 56, 3932 1, 3933 "left_delete", 3934 null, 3935 "AQAAACELAAAAAAAAIQsAAAAAAAABAAAAIA", 3936 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACILAAAAAAAAIgsAAAAAAAAAAAAAAADwvw" 3937 ], 3938 [ 3939 84, 3940 1, 3941 "insert", 3942 { 3943 "characters": " " 3944 }, 3945 "AQAAANIKAAAAAAAA0woAAAAAAAAAAAAA", 3946 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANIKAAAAAAAA0goAAAAAAAAAAAAAAADwvw" 3947 ], 3948 [ 3949 85, 3950 1, 3951 "insert", 3952 { 3953 "characters": "c" 3954 }, 3955 "AQAAANMKAAAAAAAA1AoAAAAAAAAAAAAA", 3956 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANMKAAAAAAAA0woAAAAAAAAAAAAAAADwvw" 3957 ], 3958 [ 3959 86, 3960 1, 3961 "insert", 3962 { 3963 "characters": "ount_wid" 3964 }, 3965 "CAAAANQKAAAAAAAA1QoAAAAAAAAAAAAA1QoAAAAAAADWCgAAAAAAAAAAAADWCgAAAAAAANcKAAAAAAAAAAAAANcKAAAAAAAA2AoAAAAAAAAAAAAA2AoAAAAAAADZCgAAAAAAAAAAAADZCgAAAAAAANoKAAAAAAAAAAAAANoKAAAAAAAA2woAAAAAAAAAAAAA2woAAAAAAADcCgAAAAAAAAAAAAA", 3966 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANQKAAAAAAAA1AoAAAAAAAAAAAAAAADwvw" 3967 ], 3968 [ 3969 87, 3970 1, 3971 "insert", 3972 { 3973 "characters": "th=" 3974 }, 3975 "AwAAANwKAAAAAAAA3QoAAAAAAAAAAAAA3QoAAAAAAADeCgAAAAAAAAAAAADeCgAAAAAAAN8KAAAAAAAAAAAAAA", 3976 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANwKAAAAAAAA3AoAAAAAAAAAAAAAAADwvw" 3977 ], 3978 [ 3979 88, 3980 1, 3981 "insert", 3982 { 3983 "characters": "10," 3984 }, 3985 "AwAAAN8KAAAAAAAA4AoAAAAAAAAAAAAA4AoAAAAAAADhCgAAAAAAAAAAAADhCgAAAAAAAOIKAAAAAAAAAAAAAA", 3986 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAN8KAAAAAAAA3woAAAAAAAAAAAAAAADwvw" 3987 ], 3988 [ 3989 89, 3990 1, 3991 "insert", 3992 { 3993 "characters": " count" 3994 }, 3995 "BgAAAOIKAAAAAAAA4woAAAAAAAAAAAAA4woAAAAAAADkCgAAAAAAAAAAAADkCgAAAAAAAOUKAAAAAAAAAAAAAOUKAAAAAAAA5goAAAAAAAAAAAAA5goAAAAAAADnCgAAAAAAAAAAAADnCgAAAAAAAOgKAAAAAAAAAAAAAA", 3996 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOIKAAAAAAAA4goAAAAAAAAAAAAAAADwvw" 3997 ], 3998 [ 3999 90, 4000 1, 4001 "insert", 4002 { 4003 "characters": "_height=10" 4004 }, 4005 "CgAAAOgKAAAAAAAA6QoAAAAAAAAAAAAA6QoAAAAAAADqCgAAAAAAAAAAAADqCgAAAAAAAOsKAAAAAAAAAAAAAOsKAAAAAAAA7AoAAAAAAAAAAAAA7AoAAAAAAADtCgAAAAAAAAAAAADtCgAAAAAAAO4KAAAAAAAAAAAAAO4KAAAAAAAA7woAAAAAAAAAAAAA7woAAAAAAADwCgAAAAAAAAAAAADwCgAAAAAAAPEKAAAAAAAAAAAAAPEKAAAAAAAA8goAAAAAAAAAAAAA", 4006 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOgKAAAAAAAA6AoAAAAAAAAAAAAAAADwvw" 4007 ], 4008 [ 4009 91, 4010 1, 4011 "insert", 4012 { 4013 "characters": "," 4014 }, 4015 "AQAAAPIKAAAAAAAA8woAAAAAAAAAAAAA", 4016 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPIKAAAAAAAA8goAAAAAAAAAAAAAAADwvw" 4017 ], 4018 [ 4019 92, 4020 1, 4021 "insert", 4022 { 4023 "characters": " " 4024 }, 4025 "AQAAAPMKAAAAAAAA9AoAAAAAAAAAAAAA", 4026 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPMKAAAAAAAA8woAAAAAAAAAAAAAAADwvw" 4027 ], 4028 [ 4029 93, 4030 1, 4031 "left_delete", 4032 null, 4033 "AQAAAPMKAAAAAAAA8woAAAAAAAABAAAAIA", 4034 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPQKAAAAAAAA9AoAAAAAAAAAAAAAAADwvw" 4035 ], 4036 [ 4037 94, 4038 1, 4039 "insert", 4040 { 4041 "characters": " cl" 4042 }, 4043 "AwAAAPMKAAAAAAAA9AoAAAAAAAAAAAAA9AoAAAAAAAD1CgAAAAAAAAAAAAD1CgAAAAAAAPYKAAAAAAAAAAAAAA", 4044 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPMKAAAAAAAA8woAAAAAAAAAAAAAAADwvw" 4045 ], 4046 [ 4047 95, 4048 1, 4049 "insert", 4050 { 4051 "characters": "ine" 4052 }, 4053 "AwAAAPYKAAAAAAAA9woAAAAAAAAAAAAA9woAAAAAAAD4CgAAAAAAAAAAAAD4CgAAAAAAAPkKAAAAAAAAAAAAAA", 4054 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPYKAAAAAAAA9goAAAAAAAAAAAAAAADwvw" 4055 ], 4056 [ 4057 96, 4058 3, 4059 "left_delete", 4060 null, 4061 "AwAAAPgKAAAAAAAA+AoAAAAAAAABAAAAZfcKAAAAAAAA9woAAAAAAAABAAAAbvYKAAAAAAAA9goAAAAAAAABAAAAaQ", 4062 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPkKAAAAAAAA+QoAAAAAAAAAAAAAAADwvw" 4063 ], 4064 [ 4065 97, 4066 1, 4067 "insert", 4068 { 4069 "characters": "one_step_s" 4070 }, 4071 "CgAAAPYKAAAAAAAA9woAAAAAAAAAAAAA9woAAAAAAAD4CgAAAAAAAAAAAAD4CgAAAAAAAPkKAAAAAAAAAAAAAPkKAAAAAAAA+goAAAAAAAAAAAAA+goAAAAAAAD7CgAAAAAAAAAAAAD7CgAAAAAAAPwKAAAAAAAAAAAAAPwKAAAAAAAA/QoAAAAAAAAAAAAA/QoAAAAAAAD+CgAAAAAAAAAAAAD+CgAAAAAAAP8KAAAAAAAAAAAAAP8KAAAAAAAAAAsAAAAAAAAAAAAA", 4072 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPYKAAAAAAAA9goAAAAAAAAAAAAAAADwvw" 4073 ], 4074 [ 4075 98, 4076 1, 4077 "insert", 4078 { 4079 "characters": "ize=" 4080 }, 4081 "BAAAAAALAAAAAAAAAQsAAAAAAAAAAAAAAQsAAAAAAAACCwAAAAAAAAAAAAACCwAAAAAAAAMLAAAAAAAAAAAAAAMLAAAAAAAABAsAAAAAAAAAAAAA", 4082 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAALAAAAAAAAAAsAAAAAAAAAAAAAAADwvw" 4083 ], 4084 [ 4085 99, 4086 1, 4087 "left_delete", 4088 null, 4089 "AQAAAAMLAAAAAAAAAwsAAAAAAAABAAAAPQ", 4090 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAQLAAAAAAAABAsAAAAAAAAAAAAAAADwvw" 4091 ], 4092 [ 4093 100, 4094 1, 4095 "insert", 4096 { 4097 "characters": "_width" 4098 }, 4099 "BgAAAAMLAAAAAAAABAsAAAAAAAAAAAAABAsAAAAAAAAFCwAAAAAAAAAAAAAFCwAAAAAAAAYLAAAAAAAAAAAAAAYLAAAAAAAABwsAAAAAAAAAAAAABwsAAAAAAAAICwAAAAAAAAAAAAAICwAAAAAAAAkLAAAAAAAAAAAAAA", 4100 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAMLAAAAAAAAAwsAAAAAAAAAAAAAAADwvw" 4101 ], 4102 [ 4103 101, 4104 1, 4105 "insert", 4106 { 4107 "characters": "=" 4108 }, 4109 "AQAAAAkLAAAAAAAACgsAAAAAAAAAAAAA", 4110 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAkLAAAAAAAACQsAAAAAAAAAAAAAAADwvw" 4111 ], 4112 [ 4113 102, 4114 1, 4115 "insert", 4116 { 4117 "characters": "300," 4118 }, 4119 "BAAAAAoLAAAAAAAACwsAAAAAAAAAAAAACwsAAAAAAAAMCwAAAAAAAAAAAAAMCwAAAAAAAA0LAAAAAAAAAAAAAA0LAAAAAAAADgsAAAAAAAAAAAAA", 4120 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAoLAAAAAAAACgsAAAAAAAAAAAAAAADwvw" 4121 ], 4122 [ 4123 103, 4124 1, 4125 "insert", 4126 { 4127 "characters": " clone" 4128 }, 4129 "BgAAAA4LAAAAAAAADwsAAAAAAAAAAAAADwsAAAAAAAAQCwAAAAAAAAAAAAAQCwAAAAAAABELAAAAAAAAAAAAABELAAAAAAAAEgsAAAAAAAAAAAAAEgsAAAAAAAATCwAAAAAAAAAAAAATCwAAAAAAABQLAAAAAAAAAAAAAA", 4130 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAA4LAAAAAAAADgsAAAAAAAAAAAAAAADwvw" 4131 ], 4132 [ 4133 104, 4134 1, 4135 "insert", 4136 { 4137 "characters": "_step_siz" 4138 }, 4139 "CQAAABQLAAAAAAAAFQsAAAAAAAAAAAAAFQsAAAAAAAAWCwAAAAAAAAAAAAAWCwAAAAAAABcLAAAAAAAAAAAAABcLAAAAAAAAGAsAAAAAAAAAAAAAGAsAAAAAAAAZCwAAAAAAAAAAAAAZCwAAAAAAABoLAAAAAAAAAAAAABoLAAAAAAAAGwsAAAAAAAAAAAAAGwsAAAAAAAAcCwAAAAAAAAAAAAAcCwAAAAAAAB0LAAAAAAAAAAAAAA", 4140 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAABQLAAAAAAAAFAsAAAAAAAAAAAAAAADwvw" 4141 ], 4142 [ 4143 105, 4144 1, 4145 "insert", 4146 { 4147 "characters": "e_height=" 4148 }, 4149 "CQAAAB0LAAAAAAAAHgsAAAAAAAAAAAAAHgsAAAAAAAAfCwAAAAAAAAAAAAAfCwAAAAAAACALAAAAAAAAAAAAACALAAAAAAAAIQsAAAAAAAAAAAAAIQsAAAAAAAAiCwAAAAAAAAAAAAAiCwAAAAAAACMLAAAAAAAAAAAAACMLAAAAAAAAJAsAAAAAAAAAAAAAJAsAAAAAAAAlCwAAAAAAAAAAAAAlCwAAAAAAACYLAAAAAAAAAAAAAA", 4150 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAB0LAAAAAAAAHQsAAAAAAAAAAAAAAADwvw" 4151 ], 4152 [ 4153 106, 4154 1, 4155 "insert", 4156 { 4157 "characters": "346" 4158 }, 4159 "AwAAACYLAAAAAAAAJwsAAAAAAAAAAAAAJwsAAAAAAAAoCwAAAAAAAAAAAAAoCwAAAAAAACkLAAAAAAAAAAAAAA", 4160 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACYLAAAAAAAAJgsAAAAAAAAAAAAAAADwvw" 4161 ], 4162 [ 4163 107, 4164 1, 4165 "insert", 4166 { 4167 "characters": ".41" 4168 }, 4169 "AwAAACkLAAAAAAAAKgsAAAAAAAAAAAAAKgsAAAAAAAArCwAAAAAAAAAAAAArCwAAAAAAACwLAAAAAAAAAAAAAA", 4170 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACkLAAAAAAAAKQsAAAAAAAAAAAAAAADwvw" 4171 ], 4172 [ 4173 108, 4174 1, 4175 "insert", 4176 { 4177 "characters": "02," 4178 }, 4179 "AwAAACwLAAAAAAAALQsAAAAAAAAAAAAALQsAAAAAAAAuCwAAAAAAAAAAAAAuCwAAAAAAAC8LAAAAAAAAAAAAAA", 4180 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACwLAAAAAAAALAsAAAAAAAAAAAAAAADwvw" 4181 ], 4182 [ 4183 113, 4184 1, 4185 "insert", 4186 { 4187 "characters": "\n" 4188 }, 4189 "AgAAAGcMAAAAAAAAaAwAAAAAAAAAAAAAaAwAAAAAAABwDAAAAAAAAAAAAAA", 4190 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAGcMAAAAAAAAZwwAAAAAAAD////////vfw" 4191 ], 4192 [ 4193 114, 4194 1, 4195 "copilot_accept_completion", 4196 null, 4197 "AgAAAGgMAAAAAAAAaAwAAAAAAAAIAAAAICAgICAgICBoDAAAAAAAAI4MAAAAAAAAAAAAAA", 4198 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHAMAAAAAAAAcAwAAAAAAAAAAAAAAADwvw" 4199 ], 4200 [ 4201 115, 4202 1, 4203 "insert", 4204 { 4205 "characters": "\n" 4206 }, 4207 "AgAAAI4MAAAAAAAAjwwAAAAAAAAAAAAAjwwAAAAAAACXDAAAAAAAAAAAAAA", 4208 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAI4MAAAAAAAAjgwAAAAAAAAAAAAAAADwvw" 4209 ], 4210 [ 4211 116, 4212 1, 4213 "copilot_accept_completion", 4214 null, 4215 "AgAAAI8MAAAAAAAAjwwAAAAAAAAIAAAAICAgICAgICCPDAAAAAAAALcMAAAAAAAAAAAAAA", 4216 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJcMAAAAAAAAlwwAAAAAAAAAAAAAAADwvw" 4217 ], 4218 [ 4219 117, 4220 1, 4221 "insert", 4222 { 4223 "characters": "\n" 4224 }, 4225 "AgAAALcMAAAAAAAAuAwAAAAAAAAAAAAAuAwAAAAAAADADAAAAAAAAAAAAAA", 4226 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALcMAAAAAAAAtwwAAAAAAAAAAAAAAADwvw" 4227 ], 4228 [ 4229 118, 4230 1, 4231 "copilot_accept_completion", 4232 null, 4233 "AgAAALgMAAAAAAAAuAwAAAAAAAAIAAAAICAgICAgICC4DAAAAAAAAPIMAAAAAAAAAAAAAA", 4234 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMAMAAAAAAAAwAwAAAAAAAAAAAAAAADwvw" 4235 ], 4236 [ 4237 119, 4238 1, 4239 "insert", 4240 { 4241 "characters": "\n" 4242 }, 4243 "AgAAAPIMAAAAAAAA8wwAAAAAAAAAAAAA8wwAAAAAAAD7DAAAAAAAAAAAAAA", 4244 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPIMAAAAAAAA8gwAAAAAAAAAAAAAAADwvw" 4245 ], 4246 [ 4247 120, 4248 1, 4249 "copilot_accept_completion", 4250 null, 4251 "AgAAAPMMAAAAAAAA8wwAAAAAAAAIAAAAICAgICAgICDzDAAAAAAAAC8NAAAAAAAAAAAAAA", 4252 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAPsMAAAAAAAA+wwAAAAAAAAAAAAAAADwvw" 4253 ], 4254 [ 4255 127, 4256 1, 4257 "insert", 4258 { 4259 "characters": "honeyco" 4260 }, 4261 "FQAAAIMMAAAAAAAAhAwAAAAAAAAAAAAAdQwAAAAAAAB2DAAAAAAAAAAAAADTCgAAAAAAANQKAAAAAAAAAAAAAIYMAAAAAAAAhwwAAAAAAAAAAAAAdwwAAAAAAAB4DAAAAAAAAAAAAADUCgAAAAAAANUKAAAAAAAAAAAAAIkMAAAAAAAAigwAAAAAAAAAAAAAeQwAAAAAAAB6DAAAAAAAAAAAAADVCgAAAAAAANYKAAAAAAAAAAAAAIwMAAAAAAAAjQwAAAAAAAAAAAAAewwAAAAAAAB8DAAAAAAAAAAAAADWCgAAAAAAANcKAAAAAAAAAAAAAI8MAAAAAAAAkAwAAAAAAAAAAAAAfQwAAAAAAAB+DAAAAAAAAAAAAADXCgAAAAAAANgKAAAAAAAAAAAAAJIMAAAAAAAAkwwAAAAAAAAAAAAAfwwAAAAAAACADAAAAAAAAAAAAADYCgAAAAAAANkKAAAAAAAAAAAAAJUMAAAAAAAAlgwAAAAAAAAAAAAAgQwAAAAAAACCDAAAAAAAAAAAAADZCgAAAAAAANoKAAAAAAAAAAAAAA", 4262 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAANMKAAAAAAAA0woAAAAAAAAAAAAAAADwv3UMAAAAAAAAdQwAAAAAAAAAAAAAAADwv4MMAAAAAAAAgwwAAAAAAAAAAAAAAADwvw" 4263 ], 4264 [ 4265 128, 4266 1, 4267 "insert", 4268 { 4269 "characters": "mb_" 4270 }, 4271 "CQAAAJgMAAAAAAAAmQwAAAAAAAAAAAAAgwwAAAAAAACEDAAAAAAAAAAAAADaCgAAAAAAANsKAAAAAAAAAAAAAJsMAAAAAAAAnAwAAAAAAAAAAAAAhQwAAAAAAACGDAAAAAAAAAAAAADbCgAAAAAAANwKAAAAAAAAAAAAAJ4MAAAAAAAAnwwAAAAAAAAAAAAAhwwAAAAAAACIDAAAAAAAAAAAAADcCgAAAAAAAN0KAAAAAAAAAAAAAA", 4272 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAANoKAAAAAAAA2goAAAAAAAAAAAAAAADwv4MMAAAAAAAAgwwAAAAAAAAAAAAAAADwv5gMAAAAAAAAmAwAAAAAAAAAAAAAAADwvw" 4273 ], 4274 [ 4275 136, 4276 1, 4277 "insert", 4278 { 4279 "characters": "honeycom" 4280 }, 4281 "GAAAAMkMAAAAAAAAygwAAAAAAAAAAAAAugwAAAAAAAC7DAAAAAAAAAAAAADtCgAAAAAAAO4KAAAAAAAAAAAAAMwMAAAAAAAAzQwAAAAAAAAAAAAAvAwAAAAAAAC9DAAAAAAAAAAAAADuCgAAAAAAAO8KAAAAAAAAAAAAAM8MAAAAAAAA0AwAAAAAAAAAAAAAvgwAAAAAAAC/DAAAAAAAAAAAAADvCgAAAAAAAPAKAAAAAAAAAAAAANIMAAAAAAAA0wwAAAAAAAAAAAAAwAwAAAAAAADBDAAAAAAAAAAAAADwCgAAAAAAAPEKAAAAAAAAAAAAANUMAAAAAAAA1gwAAAAAAAAAAAAAwgwAAAAAAADDDAAAAAAAAAAAAADxCgAAAAAAAPIKAAAAAAAAAAAAANgMAAAAAAAA2QwAAAAAAAAAAAAAxAwAAAAAAADFDAAAAAAAAAAAAADyCgAAAAAAAPMKAAAAAAAAAAAAANsMAAAAAAAA3AwAAAAAAAAAAAAAxgwAAAAAAADHDAAAAAAAAAAAAADzCgAAAAAAAPQKAAAAAAAAAAAAAN4MAAAAAAAA3wwAAAAAAAAAAAAAyAwAAAAAAADJDAAAAAAAAAAAAAD0CgAAAAAAAPUKAAAAAAAAAAAAAA", 4282 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAAO0KAAAAAAAA7QoAAAAAAAAAAAAAAADwv7oMAAAAAAAAugwAAAAAAAAAAAAAAADwv8kMAAAAAAAAyQwAAAAAAAAAAAAAAADwvw" 4283 ], 4284 [ 4285 137, 4286 1, 4287 "insert", 4288 { 4289 "characters": "b_" 4290 }, 4291 "BgAAAOEMAAAAAAAA4gwAAAAAAAAAAAAAygwAAAAAAADLDAAAAAAAAAAAAAD1CgAAAAAAAPYKAAAAAAAAAAAAAOQMAAAAAAAA5QwAAAAAAAAAAAAAzAwAAAAAAADNDAAAAAAAAAAAAAD2CgAAAAAAAPcKAAAAAAAAAAAAAA", 4292 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAAPUKAAAAAAAA9QoAAAAAAAAAAAAAAADwv8oMAAAAAAAAygwAAAAAAAAAAAAAAADwv+EMAAAAAAAA4QwAAAAAAAAAAAAAAADwvw" 4293 ], 4294 [ 4295 145, 4296 1, 4297 "insert", 4298 { 4299 "characters": "hone" 4300 }, 4301 "DAAAABkNAAAAAAAAGg0AAAAAAAAAAAAAAQ0AAAAAAAACDQAAAAAAAAAAAAAICwAAAAAAAAkLAAAAAAAAAAAAABwNAAAAAAAAHQ0AAAAAAAAAAAAAAw0AAAAAAAAEDQAAAAAAAAAAAAAJCwAAAAAAAAoLAAAAAAAAAAAAAB8NAAAAAAAAIA0AAAAAAAAAAAAABQ0AAAAAAAAGDQAAAAAAAAAAAAAKCwAAAAAAAAsLAAAAAAAAAAAAACINAAAAAAAAIw0AAAAAAAAAAAAABw0AAAAAAAAIDQAAAAAAAAAAAAALCwAAAAAAAAwLAAAAAAAAAAAAAA", 4302 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAAAgLAAAAAAAACAsAAAAAAAAAAAAAAADwvwENAAAAAAAAAQ0AAAAAAAAAAAAAAADwvxkNAAAAAAAAGQ0AAAAAAAAAAAAAAADwvw" 4303 ], 4304 [ 4305 146, 4306 1, 4307 "insert", 4308 { 4309 "characters": "ycomb_" 4310 }, 4311 "EgAAACUNAAAAAAAAJg0AAAAAAAAAAAAACQ0AAAAAAAAKDQAAAAAAAAAAAAAMCwAAAAAAAA0LAAAAAAAAAAAAACgNAAAAAAAAKQ0AAAAAAAAAAAAACw0AAAAAAAAMDQAAAAAAAAAAAAANCwAAAAAAAA4LAAAAAAAAAAAAACsNAAAAAAAALA0AAAAAAAAAAAAADQ0AAAAAAAAODQAAAAAAAAAAAAAOCwAAAAAAAA8LAAAAAAAAAAAAAC4NAAAAAAAALw0AAAAAAAAAAAAADw0AAAAAAAAQDQAAAAAAAAAAAAAPCwAAAAAAABALAAAAAAAAAAAAADENAAAAAAAAMg0AAAAAAAAAAAAAEQ0AAAAAAAASDQAAAAAAAAAAAAAQCwAAAAAAABELAAAAAAAAAAAAADQNAAAAAAAANQ0AAAAAAAAAAAAAEw0AAAAAAAAUDQAAAAAAAAAAAAARCwAAAAAAABILAAAAAAAAAAAAAA", 4312 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAAAwLAAAAAAAADAsAAAAAAAAAAAAAAADwvwkNAAAAAAAACQ0AAAAAAAAAAAAAAADwvyUNAAAAAAAAJQ0AAAAAAAAAAAAAAADwvw" 4313 ], 4314 [ 4315 153, 4316 1, 4317 "insert", 4318 { 4319 "characters": "honeycomb" 4320 }, 4321 "GwAAAHMNAAAAAAAAdA0AAAAAAAAAAAAAWg0AAAAAAABbDQAAAAAAAAAAAAAtCwAAAAAAAC4LAAAAAAAAAAAAAHYNAAAAAAAAdw0AAAAAAAAAAAAAXA0AAAAAAABdDQAAAAAAAAAAAAAuCwAAAAAAAC8LAAAAAAAAAAAAAHkNAAAAAAAAeg0AAAAAAAAAAAAAXg0AAAAAAABfDQAAAAAAAAAAAAAvCwAAAAAAADALAAAAAAAAAAAAAHwNAAAAAAAAfQ0AAAAAAAAAAAAAYA0AAAAAAABhDQAAAAAAAAAAAAAwCwAAAAAAADELAAAAAAAAAAAAAH8NAAAAAAAAgA0AAAAAAAAAAAAAYg0AAAAAAABjDQAAAAAAAAAAAAAxCwAAAAAAADILAAAAAAAAAAAAAIINAAAAAAAAgw0AAAAAAAAAAAAAZA0AAAAAAABlDQAAAAAAAAAAAAAyCwAAAAAAADMLAAAAAAAAAAAAAIUNAAAAAAAAhg0AAAAAAAAAAAAAZg0AAAAAAABnDQAAAAAAAAAAAAAzCwAAAAAAADQLAAAAAAAAAAAAAIgNAAAAAAAAiQ0AAAAAAAAAAAAAaA0AAAAAAABpDQAAAAAAAAAAAAA0CwAAAAAAADULAAAAAAAAAAAAAIsNAAAAAAAAjA0AAAAAAAAAAAAAag0AAAAAAABrDQAAAAAAAAAAAAA1CwAAAAAAADYLAAAAAAAAAAAAAA", 4322 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAAC0LAAAAAAAALQsAAAAAAAAAAAAAAADwv1oNAAAAAAAAWg0AAAAAAAAAAAAAAADwv3MNAAAAAAAAcw0AAAAAAAAAAAAAAADwvw" 4323 ], 4324 [ 4325 154, 4326 1, 4327 "insert", 4328 { 4329 "characters": "_" 4330 }, 4331 "AwAAAI4NAAAAAAAAjw0AAAAAAAAAAAAAbA0AAAAAAABtDQAAAAAAAAAAAAA2CwAAAAAAADcLAAAAAAAAAAAAAA", 4332 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAADYLAAAAAAAANgsAAAAAAAAAAAAAAADwv2wNAAAAAAAAbA0AAAAAAAAAAAAAAADwv44NAAAAAAAAjg0AAAAAAAAAAAAAAADwvw" 4333 ], 4334 [ 4335 164, 4336 1, 4337 "insert", 4338 { 4339 "characters": "\n" 4340 }, 4341 "AgAAANYQAAAAAAAA1xAAAAAAAAAAAAAA1xAAAAAAAADjEAAAAAAAAAAAAAA", 4342 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANYQAAAAAAAA1hAAAAAAAAAAAAAAAADwvw" 4343 ], 4344 [ 4345 165, 4346 1, 4347 "insert", 4348 { 4349 "characters": "s" 4350 }, 4351 "AQAAAOMQAAAAAAAA5BAAAAAAAAAAAAAA", 4352 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOMQAAAAAAAA4xAAAAAAAAAAAAAAAADwvw" 4353 ], 4354 [ 4355 166, 4356 1, 4357 "insert_completion", 4358 { 4359 "completion": "self", 4360 "format": "text", 4361 "keep_prefix": false, 4362 "must_insert": false, 4363 "trigger": "self" 4364 }, 4365 "AgAAAOMQAAAAAAAA4xAAAAAAAAABAAAAc+MQAAAAAAAA5xAAAAAAAAAAAAAA", 4366 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOQQAAAAAAAA5BAAAAAAAAAAAAAAAADwvw" 4367 ], 4368 [ 4369 167, 4370 1, 4371 "insert", 4372 { 4373 "characters": "." 4374 }, 4375 "AQAAAOcQAAAAAAAA6BAAAAAAAAAAAAAA", 4376 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOcQAAAAAAAA5xAAAAAAAAAAAAAAAADwvw" 4377 ], 4378 [ 4379 168, 4380 1, 4381 "insert_completion", 4382 { 4383 "completion": "obj", 4384 "format": "text", 4385 "keep_prefix": false, 4386 "must_insert": true, 4387 "trigger": "obj" 4388 }, 4389 "AQAAAOgQAAAAAAAA6xAAAAAAAAAAAAAA", 4390 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOgQAAAAAAAA6BAAAAAAAAAAAAAAAADwvw" 4391 ], 4392 [ 4393 169, 4394 1, 4395 "insert", 4396 { 4397 "characters": "." 4398 }, 4399 "AQAAAOsQAAAAAAAA7BAAAAAAAAAAAAAA", 4400 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOsQAAAAAAAA6xAAAAAAAAAAAAAAAADwvw" 4401 ], 4402 [ 4403 170, 4404 1, 4405 "left_delete", 4406 null, 4407 "AQAAAOsQAAAAAAAA6xAAAAAAAAABAAAALg", 4408 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOwQAAAAAAAA7BAAAAAAAAAAAAAAAADwvw" 4409 ], 4410 [ 4411 171, 4412 1, 4413 "paste", 4414 null, 4415 "AQAAAOsQAAAAAAAABREAAAAAAAAAAAAA", 4416 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAOsQAAAAAAAA6xAAAAAAAAAAAAAAAADwvw" 4417 ], 4418 [ 4419 172, 4420 1, 4421 "copilot_accept_completion", 4422 null, 4423 "AgAAANcQAAAAAAAA1xAAAAAAAAAuAAAAICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HX0hPTkVZQ09NQl9DT1VOVF9YXdcQAAAAAAAAIhEAAAAAAAAAAAAA", 4424 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAURAAAAAAAABREAAAAAAAAAAAAAAADwvw" 4425 ], 4426 [ 4427 173, 4428 1, 4429 "insert", 4430 { 4431 "characters": "\n" 4432 }, 4433 "AgAAACIRAAAAAAAAIxEAAAAAAAAAAAAAIxEAAAAAAAAvEQAAAAAAAAAAAAA", 4434 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAACIRAAAAAAAAIhEAAAAAAAAAAAAAAADwvw" 4435 ], 4436 [ 4437 174, 4438 1, 4439 "copilot_accept_completion", 4440 null, 4441 "AgAAACMRAAAAAAAAIxEAAAAAAAAMAAAAICAgICAgICAgICAgIxEAAAAAAABvEQAAAAAAAAAAAAA", 4442 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAC8RAAAAAAAALxEAAAAAAAAAAAAAAADwvw" 4443 ], 4444 [ 4445 175, 4446 1, 4447 "insert", 4448 { 4449 "characters": "\n" 4450 }, 4451 "AgAAAG8RAAAAAAAAcBEAAAAAAAAAAAAAcBEAAAAAAAB8EQAAAAAAAAAAAAA", 4452 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAG8RAAAAAAAAbxEAAAAAAAAAAAAAAADwvw" 4453 ], 4454 [ 4455 176, 4456 1, 4457 "insert", 4458 { 4459 "characters": "self.ob" 4460 }, 4461 "BwAAAHwRAAAAAAAAfREAAAAAAAAAAAAAfREAAAAAAAB+EQAAAAAAAAAAAAB+EQAAAAAAAH8RAAAAAAAAAAAAAH8RAAAAAAAAgBEAAAAAAAAAAAAAgBEAAAAAAACBEQAAAAAAAAAAAACBEQAAAAAAAIIRAAAAAAAAAAAAAIIRAAAAAAAAgxEAAAAAAAAAAAAA", 4462 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAHwRAAAAAAAAfBEAAAAAAAAAAAAAAADwvw" 4463 ], 4464 [ 4465 177, 4466 1, 4467 "insert_completion", 4468 { 4469 "completion": "obj", 4470 "format": "text", 4471 "keep_prefix": false, 4472 "must_insert": false, 4473 "trigger": "obj" 4474 }, 4475 "AgAAAIERAAAAAAAAgREAAAAAAAACAAAAb2KBEQAAAAAAAIQRAAAAAAAAAAAAAA", 4476 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIMRAAAAAAAAgxEAAAAAAAAAAAAAAADwvw" 4477 ], 4478 [ 4479 178, 4480 1, 4481 "paste", 4482 null, 4483 "AQAAAIQRAAAAAAAAnREAAAAAAAAAAAAA", 4484 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAIQRAAAAAAAAhBEAAAAAAAAAAAAAAADwvw" 4485 ], 4486 [ 4487 179, 4488 1, 4489 "copilot_accept_completion", 4490 null, 4491 "AgAAAHARAAAAAAAAcBEAAAAAAAAtAAAAICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HX0hPTkVZQ09NQl9TSVpFX1hdcBEAAAAAAADEEQAAAAAAAAAAAAA", 4492 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAJ0RAAAAAAAAnREAAAAAAAAAAAAAAADwvw" 4493 ], 4494 [ 4495 180, 4496 1, 4497 "insert", 4498 { 4499 "characters": "\n\t" 4500 }, 4501 "AwAAAMQRAAAAAAAAxREAAAAAAAAAAAAAxREAAAAAAADREQAAAAAAAAAAAADREQAAAAAAANURAAAAAAAAAAAAAA", 4502 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAMQRAAAAAAAAxBEAAAAAAAAAAAAAAADwvw" 4503 ], 4504 [ 4505 181, 4506 1, 4507 "left_delete", 4508 null, 4509 "AQAAANERAAAAAAAA0REAAAAAAAAEAAAAICAgIA", 4510 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANURAAAAAAAA1REAAAAAAAAAAAAAAADwvw" 4511 ], 4512 [ 4513 182, 4514 1, 4515 "copilot_accept_completion", 4516 null, 4517 "AgAAAMURAAAAAAAAxREAAAAAAAAMAAAAICAgICAgICAgICAgxREAAAAAAAAaEgAAAAAAAAAAAAA", 4518 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAANERAAAAAAAA0REAAAAAAAAAAAAAAADwvw" 4519 ], 4520 [ 4521 189, 4522 1, 4523 "insert", 4524 { 4525 "characters": "" 4526 }, 4527 "AQAAAG4SAAAAAAAAbxIAAAAAAAAAAAAA", 4528 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAG4SAAAAAAAAbhIAAAAAAAAAAAAAAADwvw" 4529 ], 4530 [ 4531 190, 4532 1, 4533 "left_delete", 4534 null, 4535 "AQAAAG4SAAAAAAAAbhIAAAAAAAADAAAA76O/", 4536 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAG8SAAAAAAAAbxIAAAAAAAAAAAAAAADwvw" 4537 ], 4538 [ 4539 200, 4540 6, 4541 "left_delete", 4542 null, 4543 "EgAAAEUNAAAAAAAARQ0AAAAAAAABAAAAZSMNAAAAAAAAIw0AAAAAAAABAAAAZRYLAAAAAAAAFgsAAAAAAAABAAAAZUINAAAAAAAAQg0AAAAAAAABAAAAbiENAAAAAAAAIQ0AAAAAAAABAAAAbhULAAAAAAAAFQsAAAAAAAABAAAAbj8NAAAAAAAAPw0AAAAAAAABAAAAbx8NAAAAAAAAHw0AAAAAAAABAAAAbxQLAAAAAAAAFAsAAAAAAAABAAAAbzwNAAAAAAAAPA0AAAAAAAABAAAAbB0NAAAAAAAAHQ0AAAAAAAABAAAAbBMLAAAAAAAAEwsAAAAAAAABAAAAbDkNAAAAAAAAOQ0AAAAAAAABAAAAYxsNAAAAAAAAGw0AAAAAAAABAAAAYxILAAAAAAAAEgsAAAAAAAABAAAAYzYNAAAAAAAANg0AAAAAAAABAAAAXxkNAAAAAAAAGQ0AAAAAAAABAAAAXxELAAAAAAAAEQsAAAAAAAABAAAAXw", 4544 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAABcLAAAAAAAAFwsAAAAAAAAAAAAAAADwvyQNAAAAAAAAJA0AAAAAAAAAAAAAAADwv0YNAAAAAAAARg0AAAAAAAAAAAAAAADwvw" 4545 ], 4546 [ 4547 216, 4548 6, 4549 "left_delete", 4550 null, 4551 "EgAAAIMNAAAAAAAAgw0AAAAAAAABAAAAZWANAAAAAAAAYA0AAAAAAAABAAAAZTULAAAAAAAANQsAAAAAAAABAAAAZYANAAAAAAAAgA0AAAAAAAABAAAAbl4NAAAAAAAAXg0AAAAAAAABAAAAbjQLAAAAAAAANAsAAAAAAAABAAAAbn0NAAAAAAAAfQ0AAAAAAAABAAAAb1wNAAAAAAAAXA0AAAAAAAABAAAAbzMLAAAAAAAAMwsAAAAAAAABAAAAb3oNAAAAAAAAeg0AAAAAAAABAAAAbFoNAAAAAAAAWg0AAAAAAAABAAAAbDILAAAAAAAAMgsAAAAAAAABAAAAbHcNAAAAAAAAdw0AAAAAAAABAAAAY1gNAAAAAAAAWA0AAAAAAAABAAAAYzELAAAAAAAAMQsAAAAAAAABAAAAY3QNAAAAAAAAdA0AAAAAAAABAAAAX1YNAAAAAAAAVg0AAAAAAAABAAAAXzALAAAAAAAAMAsAAAAAAAABAAAAXw", 4552 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAwAAADYLAAAAAAAANgsAAAAAAAAAAAAAAADwv2ENAAAAAAAAYQ0AAAAAAAAAAAAAAADwv4QNAAAAAAAAhA0AAAAAAAAAAAAAAADwvw" 4553 ], 4554 [ 4555 227, 4556 6, 4557 "left_delete", 4558 null, 4559 "DAAAAOQRAAAAAAAA5BEAAAAAAAABAAAAZY8RAAAAAAAAjxEAAAAAAAABAAAAZeIRAAAAAAAA4hEAAAAAAAABAAAAbo4RAAAAAAAAjhEAAAAAAAABAAAAbuARAAAAAAAA4BEAAAAAAAABAAAAb40RAAAAAAAAjREAAAAAAAABAAAAb94RAAAAAAAA3hEAAAAAAAABAAAAbIwRAAAAAAAAjBEAAAAAAAABAAAAbNwRAAAAAAAA3BEAAAAAAAABAAAAY4sRAAAAAAAAixEAAAAAAAABAAAAY9oRAAAAAAAA2hEAAAAAAAABAAAAX4oRAAAAAAAAihEAAAAAAAABAAAAXw", 4560 "DAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAgAAAJARAAAAAAAAkBEAAAAAAAAAAAAAAADwv+URAAAAAAAA5REAAAAAAAAAAAAAAMB9QA" 4561 ], 4562 [ 4563 21, 4564 1, 4565 "insert", 4566 { 4567 "characters": "\nfrom" 4568 }, 4569 "BQAAAOAAAAAAAAAA4QAAAAAAAAAAAAAA4QAAAAAAAADiAAAAAAAAAAAAAADiAAAAAAAAAOMAAAAAAAAAAAAAAOMAAAAAAAAA5AAAAAAAAAAAAAAA5AAAAAAAAADlAAAAAAAAAAAAAAA", 4570 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADgAAAAAAAAAOAAAAAAAAAAAAAAAAAA8L8" 4571 ], 4572 [ 4573 22, 4574 1, 4575 "insert", 4576 { 4577 "characters": " " 4578 }, 4579 "AQAAAOUAAAAAAAAA5gAAAAAAAAAAAAAA", 4580 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADlAAAAAAAAAOUAAAAAAAAAAAAAAAAA8L8" 4581 ], 4582 [ 4583 23, 4584 1, 4585 "insert", 4586 { 4587 "characters": "py" 4588 }, 4589 "AgAAAOYAAAAAAAAA5wAAAAAAAAAAAAAA5wAAAAAAAADoAAAAAAAAAAAAAAA", 4590 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADmAAAAAAAAAOYAAAAAAAAAAAAAAAAA8L8" 4591 ], 4592 [ 4593 24, 4594 1, 4595 "insert_completion", 4596 { 4597 "completion": "pydeation", 4598 "format": "text", 4599 "keep_prefix": false, 4600 "must_insert": false, 4601 "trigger": "pydeation" 4602 }, 4603 "AgAAAOYAAAAAAAAA5gAAAAAAAAACAAAAcHnmAAAAAAAAAO8AAAAAAAAAAAAAAA", 4604 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADoAAAAAAAAAOgAAAAAAAAAAAAAAAAA8L8" 4605 ], 4606 [ 4607 25, 4608 1, 4609 "insert", 4610 { 4611 "characters": ".o" 4612 }, 4613 "AgAAAO8AAAAAAAAA8AAAAAAAAAAAAAAA8AAAAAAAAADxAAAAAAAAAAAAAAA", 4614 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADvAAAAAAAAAO8AAAAAAAAAAAAAAAAA8L8" 4615 ], 4616 [ 4617 26, 4618 1, 4619 "insert_completion", 4620 { 4621 "completion": "objects", 4622 "format": "text", 4623 "keep_prefix": false, 4624 "must_insert": false, 4625 "trigger": "objects" 4626 }, 4627 "AgAAAPAAAAAAAAAA8AAAAAAAAAABAAAAb/AAAAAAAAAA9wAAAAAAAAAAAAAA", 4628 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADxAAAAAAAAAPEAAAAAAAAAAAAAAAAA8L8" 4629 ], 4630 [ 4631 27, 4632 1, 4633 "insert", 4634 { 4635 "characters": ".k" 4636 }, 4637 "AgAAAPcAAAAAAAAA+AAAAAAAAAAAAAAA+AAAAAAAAAD5AAAAAAAAAAAAAAA", 4638 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD3AAAAAAAAAPcAAAAAAAAAAAAAAAAA8L8" 4639 ], 4640 [ 4641 28, 4642 1, 4643 "left_delete", 4644 null, 4645 "AQAAAPgAAAAAAAAA+AAAAAAAAAABAAAAaw", 4646 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD5AAAAAAAAAPkAAAAAAAAAAAAAAAAA8L8" 4647 ], 4648 [ 4649 29, 4650 1, 4651 "insert", 4652 { 4653 "characters": "a" 4654 }, 4655 "AQAAAPgAAAAAAAAA+QAAAAAAAAAAAAAA", 4656 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD4AAAAAAAAAPgAAAAAAAAAAAAAAAAA8L8" 4657 ], 4658 [ 4659 30, 4660 1, 4661 "insert_completion", 4662 { 4663 "completion": "abstract_objects", 4664 "format": "text", 4665 "keep_prefix": false, 4666 "must_insert": false, 4667 "trigger": "abstract_objects" 4668 }, 4669 "AgAAAPgAAAAAAAAA+AAAAAAAAAABAAAAYfgAAAAAAAAACAEAAAAAAAAAAAAA", 4670 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAD5AAAAAAAAAPkAAAAAAAAAAAAAAAAA8L8" 4671 ], 4672 [ 4673 31, 4674 1, 4675 "insert", 4676 { 4677 "characters": " n" 4678 }, 4679 "AgAAAAgBAAAAAAAACQEAAAAAAAAAAAAACQEAAAAAAAAKAQAAAAAAAAAAAAA", 4680 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAIAQAAAAAAAAgBAAAAAAAAAAAAAAAA8L8" 4681 ], 4682 [ 4683 32, 4684 1, 4685 "left_delete", 4686 null, 4687 "AQAAAAkBAAAAAAAACQEAAAAAAAABAAAAbg", 4688 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAKAQAAAAAAAAoBAAAAAAAAAAAAAAAA8L8" 4689 ], 4690 [ 4691 33, 4692 1, 4693 "insert_completion", 4694 { 4695 "completion": "import", 4696 "format": "snippet", 4697 "keep_prefix": false, 4698 "must_insert": true, 4699 "trigger": "import" 4700 }, 4701 "AQAAAAkBAAAAAAAADwEAAAAAAAAAAAAA", 4702 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAJAQAAAAAAAAkBAAAAAAAAAAAAAAAA8L8" 4703 ], 4704 [ 4705 34, 4706 1, 4707 "insert", 4708 { 4709 "characters": " Lin" 4710 }, 4711 "BAAAAA8BAAAAAAAAEAEAAAAAAAAAAAAAEAEAAAAAAAARAQAAAAAAAAAAAAARAQAAAAAAABIBAAAAAAAAAAAAABIBAAAAAAAAEwEAAAAAAAAAAAAA", 4712 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAPAQAAAAAAAA8BAAAAAAAAAAAAAAAA8L8" 4713 ], 4714 [ 4715 35, 4716 1, 4717 "insert_completion", 4718 { 4719 "completion": "LineObject", 4720 "format": "text", 4721 "keep_prefix": false, 4722 "must_insert": false, 4723 "trigger": "LineObject" 4724 }, 4725 "AgAAABABAAAAAAAAEAEAAAAAAAADAAAATGluEAEAAAAAAAAaAQAAAAAAAAAAAAA", 4726 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAATAQAAAAAAABMBAAAAAAAAAAAAAAAA8L8" 4727 ], 4728 [ 4729 37, 4730 2, 4731 "anaconda_auto_format", 4732 null, 4733 "AQAAAAAAAAAAAAAAjGAAAAAAAABLYAAAZnJvbSBweWRlYXRpb24ub2JqZWN0cy5hYnN0cmFjdF9vYmplY3RzIGltcG9ydCBQcm90b09iamVjdCwgVmlzaWJsZU9iamVjdApmcm9tIHB5ZGVhdGlvbi54cHJlc3NvLnhwcmVzc2lvbnMgaW1wb3J0IFhJbmhlcml0R2xvYmFsTWF0cml4CmZyb20gYzRkLm1vZHVsZXMubW9ncmFwaCBpbXBvcnQgRmllbGRMYXllcgppbXBvcnQgYzRkCmZyb20gcHlkZWF0aW9uLmNvbnN0YW50cyBpbXBvcnQgUEkKZnJvbSBweWRlYXRpb24ub2JqZWN0cy5hYnN0cmFjdF9vYmplY3RzIGltcG9ydCBMaW5lT2JqZWN0CgoKY2xhc3MgTnVsbChQcm90b09iamVjdCk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGRpc3BsYXk9ImRvdCIsICoqa3dhcmdzKToKICAgICAgICBzZWxmLmRpc3BsYXkgPSBkaXNwbGF5CiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdChjNGQuT251bGwpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICAjIGltcGxpY2l0IHByb3BlcnRpZXMKICAgICAgICBzaGFwZXMgPSB7ImRvdCI6IDAsICJjcm9zcyI6IDEsICJjaXJjbGUiOiAyLCBOb25lOiAxNH0KICAgICAgICAjIHNldCBwcm9wZXJ0aWVzCiAgICAgICAgc2VsZi5vYmpbYzRkLk5VTExPQkpFQ1RfRElTUExBWV0gPSBzaGFwZXNbc2VsZi5kaXNwbGF5XQoKY2xhc3MgTW9HcmFwaE9iamVjdChQcm90b09iamVjdCk6CgogICAgZGVmIGFkZF9lZmZlY3RvcnMoc2VsZik6CiAgICAgICAgc2VsZi5lZmZlY3Rvcl9saXN0ID0gYzRkLkluRXhjbHVkZURhdGEoKQogICAgICAgIGZvciBlZmZlY3RvciBpbiBzZWxmLmVmZmVjdG9yczoKICAgICAgICAgICAgc2VsZi5lZmZlY3Rvcl9saXN0Lkluc2VydE9iamVjdChlZmZlY3Rvci5vYmosIDEpCiAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX01PVElPTkdFTkVSQVRPUl9FRkZFQ1RPUkxJU1RdID0gc2VsZi5lZmZlY3Rvcl9saXN0CgogICAgZGVmIGFkZF9lZmZlY3RvcihzZWxmLCBlZmZlY3Rvcik6CiAgICAgICAgc2VsZi5lZmZlY3Rvcl9saXN0Lkluc2VydE9iamVjdChlZmZlY3Rvci5vYmosIDEpCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HTU9TUExJTkVPQkpFQ1RfRUZGRUNUT1JMSVNUXSA9IHNlbGYuZWZmZWN0b3JfbGlzdAoKY2xhc3MgVHJhY2VyKE1vR3JhcGhPYmplY3QpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqbm9kZXMsIHNwbGluZV90eXBlPSJiZXppZXIiLCB0cmFjaW5nX21vZGU9InBhdGgiLCByZXZlcnNlPUZhbHNlLCBub2Rlc190b19jaGlsZHJlbj1GYWxzZSwgaW50ZXJtZWRpYXRlX3BvaW50cz1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi5ub2RlcyA9IG5vZGVzCiAgICAgICAgc2VsZi5zcGxpbmVfdHlwZSA9IHNwbGluZV90eXBlCiAgICAgICAgc2VsZi50cmFjaW5nX21vZGUgPSB0cmFjaW5nX21vZGUKICAgICAgICBzZWxmLnJldmVyc2UgPSByZXZlcnNlCiAgICAgICAgc2VsZi5pbnRlcm1lZGlhdGVfcG9pbnRzID0gaW50ZXJtZWRpYXRlX3BvaW50cwogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgaWYgbm9kZXNfdG9fY2hpbGRyZW46CiAgICAgICAgICAgIHNlbGYubm9kZXNfdG9fY2hpbGRyZW4oKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KDEwMTg2NTUpCgogICAgZGVmIG5vZGVzX3RvX2NoaWxkcmVuKHNlbGYpOgogICAgICAgICIiImluc2VydHMgbm9kZXMgdW5kZXIgdHJhY2VyIG9iamVjdCBhcyBjaGlsZHJlbiIiIgogICAgICAgIGZvciBub2RlIGluIHNlbGYubm9kZXM6CiAgICAgICAgICAgIG5vZGUub2JqLkluc2VydFVuZGVyKHNlbGYub2JqKQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgIyBpbXBsaWNpdCBwcm9wZXJ0aWVzCiAgICAgICAgdHJhY2VfbGlzdCA9IGM0ZC5JbkV4Y2x1ZGVEYXRhKCkKICAgICAgICBmb3Igbm9kZSBpbiBzZWxmLm5vZGVzOgogICAgICAgICAgICB0cmFjZV9saXN0Lkluc2VydE9iamVjdChub2RlLm9iaiwgMSkKICAgICAgICAjIHNldCBwcm9wZXJ0aWVzCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HVFJBQ0VST0JKRUNUX09CSkVDVExJU1RdID0gdHJhY2VfbGlzdAogICAgICAgIHNwbGluZV90eXBlcyA9IHsibGluZWFyIjogMCwgImN1YmUiOiAxLCAiYWtpbWEiOiAyLCAiYi1zcGxpbmUiOiAzLCAiYmV6aWVyIjogNH0KICAgICAgICBzZWxmLm9ialtjNGQuU1BMSU5FT0JKRUNUX1RZUEVdID0gc3BsaW5lX3R5cGVzW3NlbGYuc3BsaW5lX3R5cGVdCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HVFJBQ0VST0JKRUNUX1JFVkVSU0VTUExJTkVdID0gc2VsZi5yZXZlcnNlCiAgICAgICAgdHJhY2luZ19tb2RlcyA9IHsicGF0aCI6IDAsICJvYmplY3RzIjogMSwgImVsZW1lbnRzIjogMn0KICAgICAgICAjIHRyYWNpbmcgbW9kZSB0byBvYmplY3QKICAgICAgICBzZWxmLm9ialtjNGQuTUdUUkFDRVJPQkpFQ1RfTU9ERV0gPSB0cmFjaW5nX21vZGVzW3NlbGYudHJhY2luZ19tb2RlXQogICAgICAgICMgc2V0IGNvbnN0YW50cwogICAgICAgIHNlbGYub2JqW2M0ZC5TUExJTkVPQkpFQ1RfSU5URVJQT0xBVElPTl0gPSAxICAjIGFkYXB0aXZlCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HVFJBQ0VST0JKRUNUX1VTRVBPSU5UU10gPSBGYWxzZSAgIyBubyB2ZXJ0ZXggdHJhY2luZwogICAgICAgIHNlbGYub2JqW2M0ZC5NR1RSQUNFUk9CSkVDVF9TUEFDRV0gPSBGYWxzZSAgIyBnbG9iYWwgc3BhY2UKCmNsYXNzIENsb25lcihNb0dyYXBoT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZT0ib2JqZWN0IiwgY2xvbmVzPVtdLCBlZmZlY3RvcnM9W10sIHRhcmdldF9vYmplY3Q9Tm9uZSwgdXNlX2luc3RhbmNlPUZhbHNlLCBob25leWNvbWJfY291bnRfd2lkdGg9MTAsIGhvbmV5Y29tYl9jb3VudF9oZWlnaHQ9MTAsIGhvbmV5Y29tYl9zdGVwX3NpemVfd2lkdGg9MzAwLCBob25leWNvbWJfc3RlcF9zaXplX2hlaWdodD0zNDYuNDEwMiwgc3BsaW5lX3N0ZXBfc2l6ZT0xMCwgb2Zmc2V0X3N0YXJ0PTAsIG9mZnNldF9lbmQ9MCwgb2Zmc2V0PTAsIG9yaWVudGF0aW9uPSJ4eiIsICoqa3dhcmdzKToKICAgICAgICBzZWxmLm1vZGUgPSBtb2RlCiAgICAgICAgc2VsZi5jbG9uZXMgPSBjbG9uZXMKICAgICAgICBzZWxmLmVmZmVjdG9ycyA9IGVmZmVjdG9ycwogICAgICAgIHNlbGYudGFyZ2V0X29iamVjdCA9IHRhcmdldF9vYmplY3QKICAgICAgICBzZWxmLnVzZV9pbnN0YW5jZSA9IHVzZV9pbnN0YW5jZQogICAgICAgIHNlbGYuc3BsaW5lX3N0ZXBfc2l6ZSA9IHNwbGluZV9zdGVwX3NpemUKICAgICAgICBzZWxmLmhvbmV5Y29tYl9jb3VudF93aWR0aCA9IGhvbmV5Y29tYl9jb3VudF93aWR0aAogICAgICAgIHNlbGYuaG9uZXljb21iX2NvdW50X2hlaWdodCA9IGhvbmV5Y29tYl9jb3VudF9oZWlnaHQKICAgICAgICBzZWxmLmhvbmV5Y29tYl9zdGVwX3NpemVfd2lkdGggPSBob25leWNvbWJfc3RlcF9zaXplX3dpZHRoCiAgICAgICAgc2VsZi5ob25leWNvbWJfc3RlcF9zaXplX2hlaWdodCA9IGhvbmV5Y29tYl9zdGVwX3NpemVfaGVpZ2h0CiAgICAgICAgc2VsZi5vZmZzZXRfc3RhcnQgPSBvZmZzZXRfc3RhcnQKICAgICAgICBzZWxmLm9mZnNldF9lbmQgPSAxIC0gb2Zmc2V0X2VuZAogICAgICAgIHNlbGYub2Zmc2V0ID0gb2Zmc2V0CiAgICAgICAgc2VsZi5vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKICAgICAgICBzZWxmLmluc2VydF9jbG9uZXMoKQogICAgICAgIHNlbGYuYWRkX2VmZmVjdG9ycygpCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoMTAxODU0NCkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIG1vZGVzID0gewogICAgICAgICAgICAib2JqZWN0IjogMCwKICAgICAgICAgICAgImxpbmVhciI6IDEsCiAgICAgICAgICAgICJyYWRpYWwiOiAyLAogICAgICAgICAgICAiZ3JpZCI6IDMsCiAgICAgICAgICAgICJob25leWNvbWIiOiA0CiAgICAgICAgfQogICAgICAgIHNlbGYub2JqW2M0ZC5JRF9NR19NT1RJT05HRU5FUkFUT1JfTU9ERV0gPSBtb2Rlc1tzZWxmLm1vZGVdCiAgICAgICAgaWYgc2VsZi5tb2RlID09ICJob25leWNvbWIiOgogICAgICAgICAgICBvcmllbnRhdGlvbnMgPSB7CiAgICAgICAgICAgICAgICAieHkiOiAwLAogICAgICAgICAgICAgICAgInp5IjogMSwKICAgICAgICAgICAgICAgICJ4eiI6IDIsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HX0hPTkVZQ09NQl9PUklFTlRBVElPTl0gPSBvcmllbnRhdGlvbnNbc2VsZi5vcmllbnRhdGlvbl0KICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HX0hPTkVZQ09NQl9DT1VOVF9YXSA9IHNlbGYuaG9uZXljb21iX2NvdW50X3dpZHRoCiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5NR19IT05FWUNPTUJfQ09VTlRfWV0gPSBzZWxmLmhvbmV5Y29tYl9jb3VudF9oZWlnaHQKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HX0hPTkVZQ09NQl9TSVpFX1hdID0gc2VsZi5ob25leWNvbWJfc3RlcF9zaXplX3dpZHRoCiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5NR19IT05FWUNPTUJfU0laRV9ZXSA9IHNlbGYuaG9uZXljb21iX3N0ZXBfc2l6ZV9oZWlnaHQKICAgICAgICBzZWxmLm9ialtjNGQuTUdDTE9ORVJfRklYX0NMT05FU10gPSBGYWxzZQogICAgICAgIGlmIHNlbGYubW9kZSA9PSAib2JqZWN0IjoKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HX09CSkVDVF9MSU5LXSA9IHNlbGYudGFyZ2V0X29iamVjdC5vYmoKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HX1NQTElORV9NT0RFXSA9IDEKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HX1NQTElORV9TVEVQXSA9IHNlbGYuc3BsaW5lX3N0ZXBfc2l6ZQogICAgICAgICAgICBzZWxmLm9ialtjNGQuTUdfU1BMSU5FX09GRlNFVF0gPSBzZWxmLm9mZnNldAogICAgICAgICAgICBzZWxmLm9ialtjNGQuTUdfU1BMSU5FX1NUQVJUXSA9IHNlbGYub2Zmc2V0X3N0YXJ0CiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5NR19TUExJTkVfRU5EXSA9IHNlbGYub2Zmc2V0X2VuZAogICAgICAgICAgICBzZWxmLm9ialtjNGQuTUdfU1BMSU5FX0xPT1BdID0gRmFsc2UKCiAgICBkZWYgaW5zZXJ0X2Nsb25lcyhzZWxmKToKICAgICAgICBpZiBzZWxmLnVzZV9pbnN0YW5jZToKICAgICAgICAgICAgY2xvbmVfaW5zdGFuY2VzID0gW10KICAgICAgICAgICAgZm9yIGNsb25lIGluIHNlbGYuY2xvbmVzOgogICAgICAgICAgICAgICAgY2xvbmVfaW5zdGFuY2UgPSBJbnN0YW5jZShjbG9uZSkKICAgICAgICAgICAgICAgIGNsb25lX2luc3RhbmNlLm9iai5JbnNlcnRVbmRlcihzZWxmLm9iaikKICAgICAgICBlbHNlOgogICAgICAgICAgICAjIGNoZWNrIGlmIGlucHV0IGlzIGFycmF5IGFuZCBpZiBub3QgdXNlIHRoZSBzaW5nbGUgb2JqZWN0CiAgICAgICAgICAgIGlmIHR5cGUoc2VsZi5jbG9uZXMpIGlzIG5vdCBsaXN0OgogICAgICAgICAgICAgICAgc2VsZi5jbG9uZXMgPSBbc2VsZi5jbG9uZXNdCiAgICAgICAgICAgIGZvciBjbG9uZSBpbiBzZWxmLmNsb25lczoKICAgICAgICAgICAgICAgIGNsb25lLm9iai5JbnNlcnRVbmRlcihzZWxmLm9iaikKCiAgICBkZWYgYWRkX2Nsb25lcyhzZWxmLCAqY2xvbmVzKToKICAgICAgICBpZiBzZWxmLnVzZV9pbnN0YW5jZToKICAgICAgICAgICAgY2xvbmVfaW5zdGFuY2VzID0gW10KICAgICAgICAgICAgZm9yIGNsb25lIGluIGNsb25lczoKICAgICAgICAgICAgICAgIGNsb25lX2luc3RhbmNlID0gSW5zdGFuY2UoY2xvbmUpCiAgICAgICAgICAgICAgICBjbG9uZV9pbnN0YW5jZS5vYmouSW5zZXJ0VW5kZXIoc2VsZi5vYmopCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZm9yIGNsb25lIGluIGNsb25lczoKICAgICAgICAgICAgICAgIGNsb25lLm9iai5JbnNlcnRVbmRlcihzZWxmLm9iaikKCiAgICBkZWYgc2V0X3VuaXF1ZV9kZXNjX2lkcyhzZWxmKToKICAgICAgICBzZWxmLmRlc2NfaWRzID0gewogICAgICAgICAgICAiY291bnQiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLk1HX0xJTkVBUl9DT1VOVCwgYzRkLkRUWVBFX0xPTkcsIDApKSwKICAgICAgICAgICAgInNwbGluZV9zdGVwX3NpemUiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLk1HX1NQTElORV9TVEVQLCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAib2Zmc2V0IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5NR19TUExJTkVfT0ZGU0VULCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAib2Zmc2V0X3N0YXJ0IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5NR19TUExJTkVfU1RBUlQsIGM0ZC5EVFlQRV9SRUFMLCAwKSksCiAgICAgICAgICAgICJvZmZzZXRfZW5kIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5NR19TUExJTkVfRU5ELCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAicm90YXRpb25faCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbCgxMDAwMDAwMCwgNDAwMDA3MDAzLCA0MDAwMDEwMDApKSwKICAgICAgICAgICAgInJvdGF0aW9uX3AiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoMTAwMDAwMDEsIDQwMDAwNzAwMywgNDAwMDAxMDAwKSksCiAgICAgICAgICAgICJyb3RhdGlvbl9iIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKDEwMDAwMDAyLCA0MDAwMDcwMDMsIDQwMDAwMTAwMCkpCiAgICAgICAgfQoKY2xhc3MgSW5zdGFuY2UoVmlzaWJsZU9iamVjdCk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmdldCwgaW5oZXJpdF9nbG9iYWxfbWF0cml4PVRydWUsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnRhcmdldCA9IHRhcmdldAogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgaWYgaW5oZXJpdF9nbG9iYWxfbWF0cml4OgogICAgICAgICAgICBzZWxmLmNyZWF0ZV9nbG9iYWxfbWF0cml4X2luaGVyaXRhbmNlKCkKCiAgICBkZWYgc3BlY2lmeV9vYmplY3Qoc2VsZik6CiAgICAgICAgc2VsZi5vYmogPSBjNGQuQmFzZU9iamVjdCg1MTI2KQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgc2VsZi5vYmpbYzRkLklOU1RBTkNFT0JKRUNUX0xJTktdID0gc2VsZi50YXJnZXQub2JqCgogICAgZGVmIGNyZWF0ZV9nbG9iYWxfbWF0cml4X2luaGVyaXRhbmNlKHNlbGYpOgogICAgICAgIGdsb2JhbF9tYXRyaXhfaW5oZXJpdGFuY2UgPSBYSW5oZXJpdEdsb2JhbE1hdHJpeCgKICAgICAgICAgICAgaW5oZXJpdG9yPXNlbGYudGFyZ2V0LCB0YXJnZXQ9c2VsZikKCmNsYXNzIEVtcHR5U3BsaW5lKFByb3RvT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgc3BsaW5lX3R5cGU9ImJlemllciIsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnNwbGluZV90eXBlID0gc3BsaW5lX3R5cGUKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5Pc3BsaW5lKQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgc3BsaW5lX3R5cGVzID0gewogICAgICAgICAgICAibGluZWFyIjogMCwKICAgICAgICAgICAgImN1YmljIjogMSwKICAgICAgICAgICAgImFraW1hIjogMiwKICAgICAgICAgICAgImItc3BsaW5lIjogMywKICAgICAgICAgICAgImJlemllciI6IDQKICAgICAgICB9CiAgICAgICAgIyBzZXQgaW50ZXJwb2xhdGlvbgogICAgICAgIHNlbGYub2JqW2M0ZC5TUExJTkVPQkpFQ1RfVFlQRV0gPSBzcGxpbmVfdHlwZXNbc2VsZi5zcGxpbmVfdHlwZV0KCmNsYXNzIEhlbHBlclNwbGluZShQcm90b09iamVjdCk6CiAgICAiIiJ0dXJucyBhIGM0ZCBzcGxpbmUgaW50byBhIGhpZGRlbiBweWRlYXRpb24gc3BsaW5lIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIGlucHV0X3NwbGluZSwgc3BsaW5lX3R5cGU9ImJlemllciIsICoqa3dhcmdzKToKICAgICAgICBzZWxmLmlucHV0X3NwbGluZSA9IHNlbGYuZ2V0X3NwbGluZShpbnB1dF9zcGxpbmUpCiAgICAgICAgc2VsZi5zcGxpbmVfdHlwZSA9IHNwbGluZV90eXBlCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKCiAgICBkZWYgZ2V0X3NwbGluZShzZWxmLCBpbnB1dF9zcGxpbmUpOgogICAgICAgICMgdHVybnMgYW55IHByaW1pdGl2ZSBzcGxpbmUgaW50byBhIHNpbmdsZSBlZGl0YWJsZSBzcGxpbmUKICAgICAgICBpZiB0eXBlKGlucHV0X3NwbGluZSkgaXMgbm90IGM0ZC5TcGxpbmVPYmplY3Q6CiAgICAgICAgICAgIHBhc3MKICAgICAgICByZXR1cm4gaW5wdXRfc3BsaW5lCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gc2VsZi5pbnB1dF9zcGxpbmUuR2V0Q2xvbmUoKQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgc3BsaW5lX3R5cGVzID0gewogICAgICAgICAgICAibGluZWFyIjogMCwKICAgICAgICAgICAgImN1YmljIjogMSwKICAgICAgICAgICAgImFraW1hIjogMiwKICAgICAgICAgICAgImItc3BsaW5lIjogMywKICAgICAgICAgICAgImJlemllciI6IDQKICAgICAgICB9CiAgICAgICAgIyBzZXQgaW50ZXJwb2xhdGlvbgogICAgICAgIHNlbGYub2JqW2M0ZC5TUExJTkVPQkpFQ1RfVFlQRV0gPSBzcGxpbmVfdHlwZXNbc2VsZi5zcGxpbmVfdHlwZV0KCmNsYXNzIE1vU3BsaW5lKE1vR3JhcGhPYmplY3QpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2RlPSJzcGxpbmUiLCBnZW5lcmF0aW9uX21vZGU9ImV2ZW4iLCBwb2ludF9jb3VudD0xMDAsIHNvdXJjZV9zcGxpbmU9Tm9uZSwgZGVzdGluYXRpb25fc3BsaW5lPU5vbmUsIGVmZmVjdG9ycz1bXSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYubW9kZSA9IG1vZGUKICAgICAgICBzZWxmLmdlbmVyYXRpb25fbW9kZSA9IGdlbmVyYXRpb25fbW9kZQogICAgICAgIHNlbGYucG9pbnRfY291bnQgPSBwb2ludF9jb3VudAogICAgICAgIHNlbGYuc291cmNlX3NwbGluZSA9IHNvdXJjZV9zcGxpbmUKICAgICAgICBzZWxmLmVmZmVjdG9ycyA9IGVmZmVjdG9ycwogICAgICAgIHNlbGYuZGVzdGluYXRpb25fc3BsaW5lID0gZGVzdGluYXRpb25fc3BsaW5lCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKICAgICAgICBzZWxmLmFkZF9lZmZlY3RvcnMoKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KDQ0MDAwMDA1NCkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICMgaW1wbGljaXQgcHJvcGVydGllcwogICAgICAgIG1vZGVzID0geyJzaW1wbGUiOiAwLCAic3BsaW5lIjogMSwgInR1cnRsZSI6IDJ9CiAgICAgICAgZ2VuZXJhdGlvbl9tb2RlcyA9IHsidmVydGV4IjogMCwgImNvdW50IjogMSwgImV2ZW4iOiAyLCAic3RlcCI6IDN9CiAgICAgICAgIyBzZXQgcHJvcGVydGllcwogICAgICAgIHNlbGYub2JqW2M0ZC5NR01PU1BMSU5FT0JKRUNUX01PREVdID0gbW9kZXNbc2VsZi5tb2RlXQogICAgICAgIHNlbGYub2JqW2M0ZC5NR01PU1BMSU5FT0JKRUNUX1NQTElORV9NT0RFXSA9IGdlbmVyYXRpb25fbW9kZXNbc2VsZi5nZW5lcmF0aW9uX21vZGVdCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HTU9TUExJTkVPQkpFQ1RfU1BMSU5FX0NPVU5UXSA9IHNlbGYucG9pbnRfY291bnQKICAgICAgICAjIGRpc3BsYXkgYXMgcmVndWxhciBzcGxpbmUKICAgICAgICBzZWxmLm9ialtjNGQuTUdNT1NQTElORU9CSkVDVF9ESVNQTEFZTU9ERV0gPSAwCiAgICAgICAgaWYgc2VsZi5zb3VyY2Vfc3BsaW5lOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuTUdNT1NQTElORU9CSkVDVF9TT1VSQ0VfU1BMSU5FXSA9IHNlbGYuc291cmNlX3NwbGluZS5vYmoKICAgICAgICBpZiBzZWxmLmRlc3RpbmF0aW9uX3NwbGluZToKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLk1HTU9TUExJTkVPQkpFQ1RfREVTVF9TUExJTkVdID0gc2VsZi5kZXN0aW5hdGlvbl9zcGxpbmUub2JqCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc2VsZi5kZXNjX2lkcyA9IHsKICAgICAgICAgICAgInBvaW50X2NvdW50IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5NR01PU1BMSU5FT0JKRUNUX1NQTElORV9DT1VOVCwgYzRkLkRUWVBFX0xPTkcsIDApKQogICAgICAgIH0KCmNsYXNzIERlZm9ybWVyKFByb3RvT2JqZWN0KToKICAgIAogICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmdldCwgZmllbGRzPVtdLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi50YXJnZXQgPSB0YXJnZXQKICAgICAgICBzZWxmLmZpZWxkcyA9IGZpZWxkcwogICAgICAgIHNlbGYuY3JlYXRlX2ZpZWxkX2xpc3QoKQogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCiAgICAgICAgc2VsZi5pbnNlcnRfZmllbGRfbGlzdCgpCiAgICAgICAgc2VsZi5pbnNlcnRfdW5kZXJfdGFyZ2V0KCkKCiAgICBkZWYgaW5zZXJ0X3VuZGVyX3RhcmdldChzZWxmKToKICAgICAgICBzZWxmLm9iai5JbnNlcnRVbmRlcihzZWxmLnRhcmdldC5vYmopCgogICAgZGVmIGNyZWF0ZV9maWVsZF9saXN0KHNlbGYpOgogICAgICAgIHNlbGYuZmllbGRfbGlzdCA9IGM0ZC5GaWVsZExpc3QoKQogICAgICAgIHNlbGYuc3BsaW5lX2ZpZWxkX2xheWVyX2lkID0gMTAKICAgICAgICBmb3IgZmllbGQgaW4gc2VsZi5maWVsZHM6CiAgICAgICAgICAgIGZpZWxkX2xheWVyID0gRmllbGRMYXllcihjNGQuRkxmaWVsZCkKICAgICAgICAgICAgZmllbGRfbGF5ZXIuU2V0TGlua2VkT2JqZWN0KGZpZWxkLm9iaikKICAgICAgICAgICAgc2VsZi5maWVsZF9saXN0Lkluc2VydExheWVyKGZpZWxkX2xheWVyKQoKICAgIGRlZiBpbnNlcnRfZmllbGRfbGlzdChzZWxmKToKICAgICAgICBwcmludChzZWxmLmZpZWxkX2xpc3QpCiAgICAgICAgc2VsZi5vYmpbYzRkLkZJRUxEU10gPSBzZWxmLmZpZWxkX2xpc3QKCmNsYXNzIEVmZmVjdG9yKFByb3RvT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgZmllbGRzPVtdLCBzcGxpbmVfZmllbGQ9Tm9uZSwgcG9zaXRpb249Tm9uZSwgcm90YXRpb249Tm9uZSwgc2NhbGU9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuZmllbGRzID0gZmllbGRzCiAgICAgICAgc2VsZi5zcGxpbmVfZmllbGQgPSBzcGxpbmVfZmllbGQKICAgICAgICBzZWxmLnBvc2l0aW9uID0gcG9zaXRpb24KICAgICAgICBzZWxmLnJvdGF0aW9uID0gcm90YXRpb24KICAgICAgICBzZWxmLnNjYWxlID0gc2NhbGUKICAgICAgICBzZWxmLmNyZWF0ZV9maWVsZF9saXN0KCkKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQogICAgICAgIHNlbGYuaW5zZXJ0X2ZpZWxkX2xpc3QoKQogICAgICAgIHNlbGYuc2V0X3RyYW5zZm9ybWF0aW9uX2RhdGEoKQogICAgICAgIHNlbGYuc2V0X3NwbGluZV9maWVsZF9kZXNjX2lkcygpCgogICAgZGVmIGNyZWF0ZV9maWVsZF9saXN0KHNlbGYpOgogICAgICAgIHNlbGYuZmllbGRfbGlzdCA9IGM0ZC5GaWVsZExpc3QoKQogICAgICAgIHNlbGYuc3BsaW5lX2ZpZWxkX2xheWVyX2lkID0gMTAKICAgICAgICBpZiBzZWxmLnNwbGluZV9maWVsZDoKICAgICAgICAgICAgc2VsZi5zcGxpbmVfZmllbGRfbGF5ZXIgPSBGaWVsZExheWVyKGM0ZC5GTHNwbGluZSkKICAgICAgICAgICAgc2VsZi5zcGxpbmVfZmllbGRfbGF5ZXIuU2V0TGlua2VkT2JqZWN0KHNlbGYuc3BsaW5lX2ZpZWxkLm9iaikKICAgICAgICAgICAgc2VsZi5zcGxpbmVfZmllbGRfbGF5ZXJfaWQgPSBzZWxmLnNwbGluZV9maWVsZF9sYXllci5HZXRVbmlxdWVJRCgpICsgXAogICAgICAgICAgICAgICAgMSAgIyB2ZXJ5IGRpcnR5IHNvbHV0aW9uIGZvciBub3cKICAgICAgICAgICAgc2VsZi5maWVsZF9saXN0Lkluc2VydExheWVyKHNlbGYuc3BsaW5lX2ZpZWxkX2xheWVyKQogICAgICAgIGZvciBmaWVsZCBpbiBzZWxmLmZpZWxkczoKICAgICAgICAgICAgZmllbGRfbGF5ZXIgPSBGaWVsZExheWVyKGM0ZC5GTGZpZWxkKQogICAgICAgICAgICBmaWVsZF9sYXllci5TZXRMaW5rZWRPYmplY3QoZmllbGQub2JqKQogICAgICAgICAgICBzZWxmLmZpZWxkX2xpc3QuSW5zZXJ0TGF5ZXIoZmllbGRfbGF5ZXIpCgogICAgZGVmIGluc2VydF9maWVsZF9saXN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqW2M0ZC5GSUVMRFNdID0gc2VsZi5maWVsZF9saXN0CgogICAgZGVmIHNldF90cmFuc2Zvcm1hdGlvbl9kYXRhKHNlbGYpOgogICAgICAgICMgZW5zdXJlIHBvc2l0aW9uIGlzIG9mZiBieSBkZWZhdWx0CiAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX0JBU0VFRkZFQ1RPUl9QT1NJVElPTl9BQ1RJVkVdID0gRmFsc2UKICAgICAgICBpZiBzZWxmLnBvc2l0aW9uIGlzIFRydWU6CiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5JRF9NR19CQVNFRUZGRUNUT1JfUE9TSVRJT05fQUNUSVZFXSA9IFRydWUKICAgICAgICBpZiB0eXBlKHNlbGYucG9zaXRpb24pIGluICh0dXBsZSwgbGlzdCk6CiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5JRF9NR19CQVNFRUZGRUNUT1JfUE9TSVRJT05fQUNUSVZFXSA9IFRydWUKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX0JBU0VFRkZFQ1RPUl9QT1NJVElPTl0gPSBjNGQuVmVjdG9yKAogICAgICAgICAgICAgICAgKnNlbGYucG9zaXRpb24pCiAgICAgICAgaWYgc2VsZi5yb3RhdGlvbjoKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX0JBU0VFRkZFQ1RPUl9ST1RBVEVfQUNUSVZFXSA9IFRydWUKICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX0JBU0VFRkZFQ1RPUl9ST1RBVElPTl0gPSBjNGQuVmVjdG9yKAogICAgICAgICAgICAgICAgKnNlbGYucm90YXRpb24pCiAgICAgICAgaWYgdHlwZShzZWxmLnNjYWxlKSBpbiAoZmxvYXQsIGludCwgdHVwbGUsIGxpc3QpOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuSURfTUdfQkFTRUVGRkVDVE9SX1NDQUxFX0FDVElWRV0gPSBUcnVlCiAgICAgICAgICAgIGlmIHR5cGUoc2VsZi5zY2FsZSkgaW4gKGZsb2F0LCBpbnQpOgogICAgICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX0JBU0VFRkZFQ1RPUl9VTklGT1JNU0NBTEVdID0gVHJ1ZQogICAgICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX0JBU0VFRkZFQ1RPUl9VU0NBTEVdID0gc2VsZi5zY2FsZQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgc2VsZi5vYmpbYzRkLklEX01HX0JBU0VFRkZFQ1RPUl9TQ0FMRV0gPSBjNGQuVmVjdG9yKAogICAgICAgICAgICAgICAgICAgICpzZWxmLnNjYWxlKQoKICAgIGRlZiBzZXRfc3BsaW5lX2ZpZWxkX2Rlc2NfaWRzKHNlbGYpOgogICAgICAgIHNlbGYuc3BsaW5lX2ZpZWxkX2Rlc2NfaWRzID0gewogICAgICAgICAgICAic3BsaW5lX2ZpZWxkX3JhbmdlX3N0YXJ0IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5GSUVMRFMsIGM0ZC5DVVNUT01EQVRBVFlQRV9GSUVMRExJU1QsIDApLCBjNGQuRGVzY0xldmVsKHNlbGYuc3BsaW5lX2ZpZWxkX2xheWVyX2lkLCBjNGQuRFRZUEVfU1VCQ09OVEFJTkVSLCAwKSwgYzRkLkRlc2NMZXZlbChjNGQuRklFTERMQVlFUl9TUExJTkVfUkFOR0VfU1RBUlQsIDAsIDApKSwKICAgICAgICAgICAgInNwbGluZV9maWVsZF9yYW5nZV9lbmQiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLkZJRUxEUywgYzRkLkNVU1RPTURBVEFUWVBFX0ZJRUxETElTVCwgMCksIGM0ZC5EZXNjTGV2ZWwoc2VsZi5zcGxpbmVfZmllbGRfbGF5ZXJfaWQsIGM0ZC5EVFlQRV9TVUJDT05UQUlORVIsIDApLCBjNGQuRGVzY0xldmVsKGM0ZC5GSUVMRExBWUVSX1NQTElORV9SQU5HRV9FTkQsIDAsIDApKSwKICAgICAgICAgICAgInNwbGluZV9maWVsZF9vZmZzZXQiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLkZJRUxEUywgYzRkLkNVU1RPTURBVEFUWVBFX0ZJRUxETElTVCwgMCksIGM0ZC5EZXNjTGV2ZWwoc2VsZi5zcGxpbmVfZmllbGRfbGF5ZXJfaWQsIGM0ZC5EVFlQRV9TVUJDT05UQUlORVIsIDApLCBjNGQuRGVzY0xldmVsKGM0ZC5GSUVMRExBWUVSX1NQTElORV9PRkZTRVQsIDAsIDApKQogICAgICAgIH0KCmNsYXNzIFNwbGluZUVmZmVjdG9yKEVmZmVjdG9yKToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgc3BsaW5lPU5vbmUsIHNlZ21lbnRfbW9kZT0iaW5kZXgiLCBzZWdtZW50X2luZGV4PU5vbmUsIHRyYW5zZm9ybV9tb2RlPSJhYnNvbHV0ZSIsIHBvc2l0aW9uPVRydWUsIHJvdGF0aW9uPSgwLCAwLCAwKSwgb2Zmc2V0PTAsIG9mZnNldF9zdGFydD0wLCBvZmZzZXRfZW5kPTAsIGVmZmVjdGl2ZV9sZW5ndGg9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYuc3BsaW5lID0gc3BsaW5lCiAgICAgICAgc2VsZi5zZWdtZW50X21vZGUgPSBzZWdtZW50X21vZGUKICAgICAgICBzZWxmLnNlZ21lbnRfaW5kZXggPSBzZWdtZW50X2luZGV4CiAgICAgICAgc2VsZi50cmFuc2Zvcm1fbW9kZSA9IHRyYW5zZm9ybV9tb2RlCiAgICAgICAgc2VsZi5vZmZzZXRfc3RhcnQgPSBvZmZzZXRfc3RhcnQKICAgICAgICBzZWxmLm9mZnNldF9lbmQgPSBvZmZzZXRfZW5kCiAgICAgICAgc2VsZi5vZmZzZXQgPSBvZmZzZXQKICAgICAgICBzZWxmLmVmZmVjdGl2ZV9sZW5ndGggPSBlZmZlY3RpdmVfbGVuZ3RoCiAgICAgICAgc2VsZi5nZXRfZWZmZWN0aXZlX2xlbmd0aCgpCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwb3NpdGlvbj1wb3NpdGlvbiwgcm90YXRpb249cm90YXRpb24sICoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KDEwMTg3NzQpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBzZWdtZW50X21vZGVzID0geyJpbmRleCI6IDAsICJldmVuX3NwYWNpbmciOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgInJhbmRvbSI6IDIsICJmdWxsX3NwYWNpbmciOiAzfQogICAgICAgIHRyYW5zZm9ybV9tb2RlcyA9IHsicmVsYXRpdmVfdG9fbm9kZSI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJhYnNvbHV0ZSI6IDEsICJyZWxhdGl2ZV90b19zcGxpbmUiOiAyfQogICAgICAgIGlmIHNlbGYuc3BsaW5lOgogICAgICAgICAgICBzZWxmLm9ialtjNGQuTUdTUExJTkVFRkZFQ1RPUl9TUExJTkVdID0gc2VsZi5zcGxpbmUub2JqCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HU1BMSU5FRUZGRUNUT1JfU0VHTUVOVE1PREVdID0gc2VnbWVudF9tb2Rlc1tzZWxmLnNlZ21lbnRfbW9kZV0KICAgICAgICBzZWxmLm9ialtjNGQuTUdTUExJTkVFRkZFQ1RPUl9TRUdNRU5USU5ERVhdID0gc2VsZi5zZWdtZW50X2luZGV4CiAgICAgICAgc2VsZi5vYmpbYzRkLk1HU1BMSU5FRUZGRUNUT1JfVFJBTlNGT1JNTU9ERV0gPSB0cmFuc2Zvcm1fbW9kZXNbc2VsZi50cmFuc2Zvcm1fbW9kZV0KICAgICAgICBzZWxmLm9ialtjNGQuTUdTUExJTkVFRkZFQ1RPUl9TVEFSVF0gPSBzZWxmLm9mZnNldF9zdGFydAogICAgICAgIHNlbGYub2JqW2M0ZC5NR1NQTElORUVGRkVDVE9SX0VORF0gPSAxIC0gc2VsZi5vZmZzZXRfZW5kCiAgICAgICAgc2VsZi5vYmpbYzRkLk1HU1BMSU5FRUZGRUNUT1JfT0ZGU0VUXSA9IHNlbGYub2Zmc2V0CgogICAgZGVmIGdldF9lZmZlY3RpdmVfbGVuZ3RoKHNlbGYpOgogICAgICAgIGlmIHNlbGYuZWZmZWN0aXZlX2xlbmd0aCBpcyBOb25lOgogICAgICAgICAgICBzZWxmLmVmZmVjdGl2ZV9sZW5ndGggPSAgc2VsZi5zcGxpbmUuZ2V0X2xlbmd0aChzZWdtZW50PXNlbGYuc2VnbWVudF9pbmRleCkgKiAoMSAtIHNlbGYub2Zmc2V0X2VuZCAtIHNlbGYub2Zmc2V0X3N0YXJ0KQoKICAgIGRlZiBzZXRfdHJhbnNmb3JtYXRpb25fZGF0YShzZWxmKToKICAgICAgICBzZWxmLm9ialtjNGQuTUdTUExJTkVFRkZFQ1RPUl9QT1NJVElPTl9BQ1RJVkVdID0gc2VsZi5wb3NpdGlvbgogICAgICAgIGlmIHNlbGYucm90YXRpb246CiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5NR1NQTElORUVGRkVDVE9SX1JPVEFUSU9OX0FDVElWRV0gPSBUcnVlCiAgICAgICAgICAgIHNlbGYub2JqW2M0ZC5NR1NQTElORUVGRkVDVE9SX1JPVEFUSU9OXSA9IGM0ZC5WZWN0b3IoCiAgICAgICAgICAgICAgICAqc2VsZi5yb3RhdGlvbikKCiAgICBkZWYgc2V0X3VuaXF1ZV9kZXNjX2lkcyhzZWxmKToKICAgICAgICBzZWxmLmRlc2NfaWRzID0gewogICAgICAgICAgICAib2Zmc2V0X3N0YXJ0IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5NR1NQTElORUVGRkVDVE9SX1NUQVJULCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAib2Zmc2V0X2VuZCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuTUdTUExJTkVFRkZFQ1RPUl9FTkQsIGM0ZC5EVFlQRV9SRUFMLCAwKSksCiAgICAgICAgICAgICJyb3RhdGlvbl9oIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKDEwMDAwMDAwLCA0MDAwMDcwMDMsIDQwMDAwMTAwMCkpLAogICAgICAgICAgICAicm90YXRpb25fcCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbCgxMDAwMDAwMSwgNDAwMDA3MDAzLCA0MDAwMDEwMDApKSwKICAgICAgICAgICAgInJvdGF0aW9uX2IiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoMTAwMDAwMDIsIDQwMDAwNzAwMywgNDAwMDAxMDAwKSksCiAgICAgICAgICAgICJzdHJlbmd0aCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuTUdTUExJTkVFRkZFQ1RPUl9TVFJFTkdUSCwgYzRkLkRUWVBFX1JFQUwsIDApKQogICAgICAgIH0KCmNsYXNzIFJhbmRvbUVmZmVjdG9yKEVmZmVjdG9yKToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kZT0icmFuZG9tIiwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYubW9kZSA9IG1vZGUKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KDEwMTg2NDMpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICByYW5kb21fbW9kZXMgPSB7CiAgICAgICAgICAgICJyYW5kb20iOiAwLAogICAgICAgICAgICAiZ2F1c3NpYW4iOiAxLAogICAgICAgICAgICAibm9pc2UiOiAyLAogICAgICAgICAgICAidHVyYnVsZW5jZSI6IDMsCiAgICAgICAgICAgICJzb3J0ZWQiOiA0CiAgICAgICAgfQogICAgICAgIHNlbGYub2JqW2M0ZC5NR1NQTElORUVGRkVDVE9SX1RSQU5TRk9STU1PREVdID0gcmFuZG9tX21vZGVzW3NlbGYubW9kZV0KCiAgICBkZWYgc2V0X3VuaXF1ZV9kZXNjX2lkcyhzZWxmKToKICAgICAgICBzZWxmLmRlc2NfaWRzID0gewogICAgICAgICAgICAicG9zaXRpb25feCI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuSURfTUdfQkFTRUVGRkVDVE9SX1BPU0lUSU9OLCBjNGQuRFRZUEVfVkVDVE9SLCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM0ZC5EZXNjTGV2ZWwoYzRkLlZFQ1RPUl9YLCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAicG9zaXRpb25feSI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuSURfTUdfQkFTRUVGRkVDVE9SX1BPU0lUSU9OLCBjNGQuRFRZUEVfVkVDVE9SLCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM0ZC5EZXNjTGV2ZWwoYzRkLlZFQ1RPUl9ZLCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAicG9zaXRpb25feiI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuSURfTUdfQkFTRUVGRkVDVE9SX1BPU0lUSU9OLCBjNGQuRFRZUEVfVkVDVE9SLCAwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGM0ZC5EZXNjTGV2ZWwoYzRkLlZFQ1RPUl9aLCBjNGQuRFRZUEVfUkVBTCwgMCkpCiAgICAgICAgfQoKY2xhc3MgUGxhaW5FZmZlY3RvcihFZmZlY3Rvcik6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KDEwMjEzMzcpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBwYXNzCgpjbGFzcyBUYXJnZXRFZmZlY3RvcihFZmZlY3Rvcik6CiAgICAKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YXJnZXQsICoqa3dhcmdzKToKICAgICAgICBzZWxmLnRhcmdldCA9IHRhcmdldAogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoMTAxODg4OSkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIHNlbGYub2JqW2M0ZC5NR1RBUkdFVEVGRkVDVE9SX09CSkVDVF0gPSBzZWxmLnRhcmdldC5vYmoKCmNsYXNzIENvcnJlY3Rpb25EZWZvcm1lcihEZWZvcm1lcik6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KDEwMjQ1NDIpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBwYXNzCgpjbGFzcyBTaHJpbmtXcmFwKERlZm9ybWVyKToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgdGFyZ2V0LCBtb2RlPSJ0YXJnZXRfYXhpcyIsIHN0cmVuZ3RoPTAuOSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYudGFyZ2V0ID0gdGFyZ2V0CiAgICAgICAgc2VsZi5tb2RlID0gbW9kZQogICAgICAgIHNlbGYuc3RyZW5ndGggPSBzdHJlbmd0aAogICAgICAgIHN1cGVyKCkuX19pbml0X18odGFyZ2V0PXRhcmdldCwgKiprd2FyZ3MpCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoMTAxOTc3NCkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIG1vZGVzID0geyJhbG9uZ19ub3JtYWxzIjogMCwgInRhcmdldF9heGlzIjogMSwgInNvdXJjZV9heGlzIjogMn0KICAgICAgICBzZWxmLm9ialtjNGQuU0hSSU5LV1JBUF9NT0RFXSA9IG1vZGVzW3NlbGYubW9kZV0KICAgICAgICBzZWxmLm9ialtjNGQuU0hSSU5LV1JBUF9UQVJHRVRPQkpFQ1RdID0gc2VsZi50YXJnZXQub2JqCiAgICAgICAgc2VsZi5vYmpbYzRkLlNIUklOS1dSQVBfU1RSRU5HVEhdID0gc2VsZi5zdHJlbmd0aAoKY2xhc3MgTGluZWFyRmllbGQoUHJvdG9PYmplY3QpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsZW5ndGg9MTAwLCBkaXJlY3Rpb249IngrIiwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYubGVuZ3RoID0gbGVuZ3RoCiAgICAgICAgc2VsZi5kaXJlY3Rpb24gPSBkaXJlY3Rpb24KICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5GbGluZWFyKQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgIyB5aW4gcHJvcGVydGllcwogICAgICAgIGRpcmVjdGlvbnMgPSB7IngrIjogMCwgIngtIjogMSwgInkrIjogMiwgInktIjogMywgInorIjogNCwgInotIjogNX0KICAgICAgICBjb250b3VyX21vZGVzID0ge05vbmU6IDAsICJxdWFkcmF0aWMiOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgInN0ZXAiOiAyLCAicXVhbnRpemUiOiAzLCAiY3VydmUiOiA0fQogICAgICAgIHNlbGYub2JqW2M0ZC5GSUVMRF9DT05UT1VSX01PREVdID0gY29udG91cl9tb2Rlc1siY3VydmUiXQogICAgICAgICMgeWFuZyBwcm9wZXJ0aWVzCiAgICAgICAgc2VsZi5vYmpbYzRkLkxJTkVBUl9TSVpFXSA9IHNlbGYubGVuZ3RoCiAgICAgICAgc2VsZi5vYmpbYzRkLkxJTkVBUl9ESVJFQ1RJT05dID0gZGlyZWN0aW9uc1tzZWxmLmRpcmVjdGlvbl0KCiAgICBkZWYgc2V0X3VuaXF1ZV9kZXNjX2lkcyhzZWxmKToKICAgICAgICBzZWxmLmRlc2NfaWRzID0gewogICAgICAgICAgICAibGVuZ3RoIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5MSU5FQVJfU0laRSwgYzRkLkRUWVBFX1JFQUwsIDApKQogICAgICAgIH0KCmNsYXNzIFNwaGVyaWNhbEZpZWxkKFByb3RvT2JqZWN0KToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgcmFkaXVzPTEwMCwgaW5uZXJfb2Zmc2V0PTEgLyAyLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi5yYWRpdXMgPSByYWRpdXMKICAgICAgICBzZWxmLmlubmVyX29mZnNldCA9IGlubmVyX29mZnNldAogICAgICAgIHN1cGVyKCkuX19pbml0X18oKiprd2FyZ3MpCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoYzRkLkZzcGhlcmljYWwpCgogICAgZGVmIHNldF9vYmplY3RfcHJvcGVydGllcyhzZWxmKToKICAgICAgICBzZWxmLm9ialtjNGQuRklFTERfSU5ORVJfT0ZGU0VUXSA9IHNlbGYuaW5uZXJfb2Zmc2V0CiAgICAgICAgc2VsZi5vYmpbYzRkLkxJTkVBUl9TSVpFXSA9IHNlbGYucmFkaXVzCgpjbGFzcyBSYW5kb21GaWVsZChQcm90b09iamVjdCk6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5GcmFuZG9tKQoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgcGFzcwoKY2xhc3MgU3F1YXNoQW5kU3RyZXRjaChEZWZvcm1lcik6CgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoMTAyMTI4MCkKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgICMgYmFzZWQgb24gdGhlIHZlcnRpY2FsIHJhZGl1cyBvZiB0aGUgdGFyZ2V0IHdlIHNldCB0aGUgYm91bmRhcmllcwogICAgICAgIGlmIGhhc2F0dHIoc2VsZi50YXJnZXQsICJkaWFtZXRlciIpOgogICAgICAgICAgICByYWRpdXMgPSBzZWxmLnRhcmdldC5kaWFtZXRlciAvIDIKICAgICAgICBlbHNlOgogICAgICAgICAgICByYWRpdXMgPSBzZWxmLnRhcmdldC5nZXRfcmFkaXVzKCkueQogICAgICAgIHNlbGYub2JqW2M0ZC5JRF9DQV9TUVVBU0hfT0JKRUNUX0hJR0hdID0gcmFkaXVzCiAgICAgICAgc2VsZi5vYmpbYzRkLklEX0NBX1NRVUFTSF9PQkpFQ1RfTE9XXSA9IC1yYWRpdXMKCiAgICBkZWYgc2V0X3VuaXF1ZV9kZXNjX2lkcyhzZWxmKToKICAgICAgICBzZWxmLmRlc2NfaWRzID0gewogICAgICAgICAgICAiZmFjdG9yIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5JRF9DQV9TUVVBU0hfT0JKRUNUX0ZBQ1RPUiwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgInRvcF9sZW5ndGgiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLklEX0NBX1NRVUFTSF9PQkpFQ1RfSElHSCwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgImJvdHRvbV9sZW5ndGgiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLklEX0NBX1NRVUFTSF9PQkpFQ1RfTE9XLCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgIH0KCmNsYXNzIFNwaGVyaWZ5KERlZm9ybWVyKToKCiAgICBkZWYgX19pbml0X18oc2VsZiwgdGFyZ2V0LCByYWRpdXM9MjAwLCBzdHJlbmd0aD0xLCAqKmt3YXJncyk6CiAgICAgICAgc2VsZi5yYWRpdXMgPSByYWRpdXMKICAgICAgICBzZWxmLnN0cmVuZ3RoID0gc3RyZW5ndGgKICAgICAgICBzdXBlcigpLl9faW5pdF9fKHRhcmdldD10YXJnZXQsICoqa3dhcmdzKQoKICAgIGRlZiBzcGVjaWZ5X29iamVjdChzZWxmKToKICAgICAgICBzZWxmLm9iaiA9IGM0ZC5CYXNlT2JqZWN0KGM0ZC5Pc3BoZXJpZnkpIAoKICAgIGRlZiBzZXRfb2JqZWN0X3Byb3BlcnRpZXMoc2VsZik6CiAgICAgICAgc2VsZi5vYmpbYzRkLlNQSEVSSUZZT0JKRUNUX1JBRElVU10gPSBzZWxmLnJhZGl1cwogICAgICAgIHNlbGYub2JqW2M0ZC5TUEhFUklGWU9CSkVDVF9TVFJFTkdUSF0gPSBzZWxmLnN0cmVuZ3RoCgogICAgZGVmIHNldF91bmlxdWVfZGVzY19pZHMoc2VsZik6CiAgICAgICAgc2VsZi5kZXNjX2lkcyA9IHsKICAgICAgICAgICAgInJhZGl1cyI6IGM0ZC5EZXNjSUQoYzRkLkRlc2NMZXZlbChjNGQuU1BIRVJJRllPQkpFQ1RfUkFESVVTLCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAic3RyZW5ndGgiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLlNQSEVSSUZZT0JKRUNUX1NUUkVOR1RILCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgIH0KCmNsYXNzIFdyYXAoRGVmb3JtZXIpOgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YXJnZXQsIG1vZGU9InNwaGVyaWNhbCIsIGxvbmdpdHVkZV9zdGFydD1QSS8yLCBsb25naXR1ZGVfZW5kPTIqUEkrUEkvMiwgbGF0aXR1ZGVfc3RhcnQ9LVBJLzIsIGxhdGl0dWRlX2VuZD1QSS8yLCB3aWR0aD00MDAsIGhlaWdodD00MDAsIHJhZGl1cz0xMDAsIHRlbnNpb249MSwgKiprd2FyZ3MpOgogICAgICAgIHNlbGYubW9kZSA9IG1vZGUKICAgICAgICBzZWxmLmxvbmdpdHVkZV9zdGFydCA9IGxvbmdpdHVkZV9zdGFydAogICAgICAgIHNlbGYubG9uZ2l0dWRlX2VuZCA9IGxvbmdpdHVkZV9lbmQKICAgICAgICBzZWxmLmxhdGl0dWRlX3N0YXJ0ID0gbGF0aXR1ZGVfc3RhcnQKICAgICAgICBzZWxmLmxhdGl0dWRlX2VuZCA9IGxhdGl0dWRlX2VuZAogICAgICAgIHNlbGYud2lkdGggPSB3aWR0aAogICAgICAgIHNlbGYuaGVpZ2h0ID0gaGVpZ2h0CiAgICAgICAgc2VsZi5yYWRpdXMgPSByYWRpdXMKICAgICAgICBzZWxmLnRlbnNpb24gPSB0ZW5zaW9uCiAgICAgICAgc3VwZXIoKS5fX2luaXRfXyh0YXJnZXQ9dGFyZ2V0LCAqKmt3YXJncykKCiAgICBkZWYgc2V0X29iamVjdF9wcm9wZXJ0aWVzKHNlbGYpOgogICAgICAgIHdyYXBfbW9kZXMgPSB7InNwaGVyaWNhbCI6IDAsICJjeWxpbmRyaWNhbCI6IDF9CiAgICAgICAgc2VsZi5vYmpbYzRkLldSQVBPQkpFQ1RfVFlQRV0gPSB3cmFwX21vZGVzW3NlbGYubW9kZV0KICAgICAgICBzZWxmLm9ialtjNGQuV1JBUE9CSkVDVF9YU0FOR0xFXSA9IHNlbGYubG9uZ2l0dWRlX3N0YXJ0CiAgICAgICAgc2VsZi5vYmpbYzRkLldSQVBPQkpFQ1RfWEVBTkdMRV0gPSBzZWxmLmxvbmdpdHVkZV9lbmQKICAgICAgICBzZWxmLm9ialtjNGQuV1JBUE9CSkVDVF9ZU0FOR0xFXSA9IHNlbGYubGF0aXR1ZGVfc3RhcnQKICAgICAgICBzZWxmLm9ialtjNGQuV1JBUE9CSkVDVF9ZRUFOR0xFXSA9IHNlbGYubGF0aXR1ZGVfZW5kCiAgICAgICAgc2VsZi5vYmpbYzRkLldSQVBPQkpFQ1RfV0lEVEhdID0gc2VsZi53aWR0aAogICAgICAgIHNlbGYub2JqW2M0ZC5XUkFQT0JKRUNUX0hFSUdIVF0gPSBzZWxmLmhlaWdodAogICAgICAgIHNlbGYub2JqW2M0ZC5XUkFQT0JKRUNUX1JBRElVU10gPSBzZWxmLnJhZGl1cwogICAgICAgIHNlbGYub2JqW2M0ZC5XUkFQT0JKRUNUX1RFTlNJT05dID0gc2VsZi50ZW5zaW9uCgogICAgZGVmIHNwZWNpZnlfb2JqZWN0KHNlbGYpOgogICAgICAgIHNlbGYub2JqID0gYzRkLkJhc2VPYmplY3QoYzRkLk93cmFwKQoKICAgIGRlZiBzZXRfdW5pcXVlX2Rlc2NfaWRzKHNlbGYpOgogICAgICAgIHNlbGYuZGVzY19pZHMgPSB7CiAgICAgICAgICAgICJsb25naXR1ZGVfc3RhcnQiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLldSQVBPQkpFQ1RfWFNBTkdMRSwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgImxvbmdpdHVkZV9lbmQiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLldSQVBPQkpFQ1RfWEVBTkdMRSwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgImxhdGl0dWRlX3N0YXJ0IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5XUkFQT0JKRUNUX1lTQU5HTEUsIGM0ZC5EVFlQRV9SRUFMLCAwKSksCiAgICAgICAgICAgICJsYXRpdHVkZV9lbmQiOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLldSQVBPQkpFQ1RfWUVBTkdMRSwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgIndpZHRoIjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5XUkFQT0JKRUNUX1dJRFRILCBjNGQuRFRZUEVfUkVBTCwgMCkpLAogICAgICAgICAgICAiaGVpZ2h0IjogYzRkLkRlc2NJRChjNGQuRGVzY0xldmVsKGM0ZC5XUkFQT0JKRUNUX0hFSUdIVCwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICAgICAgInRlbnNpb24iOiBjNGQuRGVzY0lEKGM0ZC5EZXNjTGV2ZWwoYzRkLldSQVBPQkpFQ1RfVEVOU0lPTiwgYzRkLkRUWVBFX1JFQUwsIDApKSwKICAgICAgICB9", 4734 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAaAQAAAAAAABoBAAAAAAAAAAAAAAAA8L8" 4735 ], 4736 [ 4737 41, 4738 1, 4739 "insert", 4740 { 4741 "characters": "," 4742 }, 4743 "AQAAAL0EAAAAAAAAvgQAAAAAAAAAAAAA", 4744 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAC9BAAAAAAAAL0EAAAAAAAAAAAAAAAA8L8" 4745 ], 4746 [ 4747 42, 4748 1, 4749 "insert", 4750 { 4751 "characters": " Lin" 4752 }, 4753 "BAAAAL4EAAAAAAAAvwQAAAAAAAAAAAAAvwQAAAAAAADABAAAAAAAAAAAAADABAAAAAAAAMEEAAAAAAAAAAAAAMEEAAAAAAAAwgQAAAAAAAAAAAAA", 4754 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAC+BAAAAAAAAL4EAAAAAAAAAAAAAAAA8L8" 4755 ], 4756 [ 4757 43, 4758 1, 4759 "insert_completion", 4760 { 4761 "completion": "LineObject", 4762 "format": "snippet", 4763 "keep_prefix": false, 4764 "must_insert": false, 4765 "trigger": "LineObject" 4766 }, 4767 "AgAAAL8EAAAAAAAAvwQAAAAAAAADAAAATGluvwQAAAAAAADJBAAAAAAAAAAAAAA", 4768 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADCBAAAAAAAAMIEAAAAAAAAAAAAAAAA8L8" 4769 ], 4770 [ 4771 65, 4772 1, 4773 "run_macro_file", 4774 { 4775 "file": "res://Packages/Default/Delete to Hard BOL.sublime-macro" 4776 }, 4777 "AQAAAOEAAAAAAAAA4QAAAAAAAAA5AAAAZnJvbSBweWRlYXRpb24ub2JqZWN0cy5hYnN0cmFjdF9vYmplY3RzIGltcG9ydCBMaW5lT2JqZWN0", 4778 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAaAQAAAAAAABoBAAAAAAAA////////738" 4779 ], 4780 [ 4781 66, 4782 1, 4783 "left_delete", 4784 null, 4785 "AQAAAOAAAAAAAAAA4AAAAAAAAAABAAAACg", 4786 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAADhAAAAAAAAAOEAAAAAAAAAAAAAAAAA8L8" 4787 ], 4788 [ 4789 69, 4790 1, 4791 "insert", 4792 { 4793 "characters": "," 4794 }, 4795 "AQAAAEkAAAAAAAAASgAAAAAAAAAAAAAA", 4796 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABJAAAAAAAAAEkAAAAAAAAA////////738" 4797 ], 4798 [ 4799 70, 4800 1, 4801 "insert", 4802 { 4803 "characters": " Line" 4804 }, 4805 "BQAAAEoAAAAAAAAASwAAAAAAAAAAAAAASwAAAAAAAABMAAAAAAAAAAAAAABMAAAAAAAAAE0AAAAAAAAAAAAAAE0AAAAAAAAATgAAAAAAAAAAAAAATgAAAAAAAABPAAAAAAAAAAAAAAA", 4806 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABKAAAAAAAAAEoAAAAAAAAAAAAAAAAA8L8" 4807 ], 4808 [ 4809 71, 4810 1, 4811 "insert_completion", 4812 { 4813 "completion": "LineObject", 4814 "format": "text", 4815 "keep_prefix": false, 4816 "must_insert": false, 4817 "trigger": "LineObject" 4818 }, 4819 "AgAAAEsAAAAAAAAASwAAAAAAAAAEAAAATGluZUsAAAAAAAAAVQAAAAAAAAAAAAAA", 4820 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAABPAAAAAAAAAE8AAAAAAAAAAAAAAAAA8L8" 4821 ], 4822 [ 4823 73, 4824 1, 4825 "insert", 4826 { 4827 "characters": "#" 4828 }, 4829 "AQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", 4830 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 4831 ], 4832 [ 4833 74, 4834 1, 4835 "left_delete", 4836 null, 4837 "AQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAIw", 4838 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAA8L8" 4839 ], 4840 [ 4841 80, 4842 1, 4843 "insert", 4844 { 4845 "characters": "#" 4846 }, 4847 "AQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA", 4848 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" 4849 ], 4850 [ 4851 81, 4852 1, 4853 "left_delete", 4854 null, 4855 "AQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAIw", 4856 "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAA8L8" 4857 ] 4858 ] 4859 }, 4860 { 4861 "contents": "(base) davidrug@Davids-MBP-2 pydeation % \n(base) davidrug@Davids-MBP-2 pydeation % \n(base) davidrug@Davids-MBP-2 pydeation % ", 4862 "settings": 4863 { 4864 "buffer_size": 345, 4865 "line_ending": "Unix", 4866 "name": "Login Shell", 4867 "scratch": true 4868 } 4869 } 4870 ], 4871 "build_system": "Packages/User/c4dpy.sublime-build", 4872 "build_system_choices": 4873 [ 4874 [ 4875 [ 4876 [ 4877 "Anaconda Python Builder", 4878 "" 4879 ], 4880 [ 4881 "Packages/Python/Python.sublime-build", 4882 "" 4883 ], 4884 [ 4885 "Packages/Python/Python.sublime-build", 4886 "Syntax Check" 4887 ] 4888 ], 4889 [ 4890 "Anaconda Python Builder", 4891 "" 4892 ] 4893 ], 4894 [ 4895 [ 4896 [ 4897 "Packages/Python/Python.sublime-build", 4898 "" 4899 ], 4900 [ 4901 "Packages/Python/Python.sublime-build", 4902 "Syntax Check" 4903 ] 4904 ], 4905 [ 4906 "Packages/Python/Python.sublime-build", 4907 "" 4908 ] 4909 ], 4910 [ 4911 [ 4912 [ 4913 "Packages/User/c4dpy.sublime-build", 4914 "" 4915 ], 4916 [ 4917 "Packages/User/c4dpy.sublime-build", 4918 "c4dpy" 4919 ], 4920 [ 4921 "Packages/User/c4dpy.sublime-build", 4922 "CPython" 4923 ] 4924 ], 4925 [ 4926 "Packages/User/c4dpy.sublime-build", 4927 "CPython" 4928 ] 4929 ] 4930 ], 4931 "build_varint": "", 4932 "command_palette": 4933 { 4934 "height": 0.0, 4935 "last_filter": "", 4936 "selected_items": 4937 [ 4938 [ 4939 "", 4940 "Anaconda: Find object usage" 4941 ], 4942 [ 4943 "anaconda", 4944 "Anaconda: Rename object under cursor" 4945 ], 4946 [ 4947 "co", 4948 "Copilot: Check Status" 4949 ], 4950 [ 4951 "co sign", 4952 "Copilot: Sign In" 4953 ], 4954 [ 4955 "copilo", 4956 "Preferences: LSP-copilot Settings" 4957 ], 4958 [ 4959 "packa", 4960 "Package Control: List Packages" 4961 ], 4962 [ 4963 "copilot", 4964 "Copilot: Check Status" 4965 ], 4966 [ 4967 "Copi", 4968 "Copilot: Check Status" 4969 ], 4970 [ 4971 "Cop", 4972 "Copilot: Sign In" 4973 ], 4974 [ 4975 "inst", 4976 "Package Control: Install Package" 4977 ], 4978 [ 4979 "install", 4980 "Package Control: Install Package" 4981 ], 4982 [ 4983 "Install pa", 4984 "Package Control: Install Package" 4985 ], 4986 [ 4987 "Install Package Control", 4988 "Install Package Control" 4989 ] 4990 ], 4991 "width": 0.0 4992 }, 4993 "console": 4994 { 4995 "height": 163.0, 4996 "history": 4997 [ 4998 "import socket; socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((\"localhost\", 49466))", 4999 "import socket; socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((\"localhost\", 51216))" 5000 ] 5001 }, 5002 "distraction_free": 5003 { 5004 "menu_visible": true, 5005 "show_minimap": false, 5006 "show_open_files": false, 5007 "show_tabs": false, 5008 "side_bar_visible": false, 5009 "status_bar_visible": false 5010 }, 5011 "expanded_folders": 5012 [ 5013 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation", 5014 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/animation", 5015 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/assets", 5016 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects", 5017 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/pydeation-testing", 5018 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/DreamTalkProjects" 5019 ], 5020 "file_history": 5021 [ 5022 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/abstract_objects.py", 5023 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/solid_objects.py", 5024 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/line_objects.py", 5025 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/custom_objects.py", 5026 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/camera_objects.py", 5027 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/scene.py", 5028 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/imports.py", 5029 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/effect_objects.py", 5030 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/pydeation-testing/testing.py", 5031 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/animation/abstract_animators.py", 5032 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/helper_objects.py", 5033 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/sketch_objects.py", 5034 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/DreamTalkProjects/ad4m.py", 5035 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/xpresso/xpressions.py", 5036 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/animation/animation.py", 5037 "/Users/davidrug/Documents/Ataraxia/InterfaceGuy/CodingAdventures/DreamTalkProjects/ad4m.py", 5038 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/pydeation-PL-pitch/pitch.py", 5039 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/PyTalk-CustodianOfTheNoosphere/custodian_of_the_noosphere.py", 5040 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/DreamTalk.txt", 5041 "/Users/davidrug/Library/Mobile Documents/com~apple~CloudDocs/Unclutter/UnclutterFiles/NussschalenBeauftragter.svg", 5042 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/materials.py", 5043 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/pytalk-interfaceguy-intro/interfaceguy_intro.py", 5044 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/constants.py", 5045 "/Users/davidrug/Documents/InterfaceGuy/CodingAdventures/svg2key-cli/svg2keynote", 5046 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/assets/svg/right_eye.svg", 5047 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/assets/svg/wave.svg", 5048 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/__init__.py", 5049 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/xpresso/userdata.py", 5050 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/xpresso/xpresso.py", 5051 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/action_objects.py", 5052 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/animation/fill_animators.py", 5053 "/Users/davidrug/Library/Mobile Documents/com~apple~CloudDocs/Unclutter/Unclutter Files/fix_svg.py", 5054 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/assets/svg/man.svg", 5055 "/Users/davidrug/Library/Mobile Documents/com~apple~CloudDocs/Unclutter/Unclutter Files/run_clipboard.py", 5056 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/utils.py", 5057 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/tags.py", 5058 "/Users/davidrug/Documents/Python/mac_adress_changer.py", 5059 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/animation/transition_animators.py", 5060 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/light_objects.py", 5061 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/animation/composed_animators.py", 5062 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/animation/object_animators.py", 5063 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/animation/sketch_animators.py", 5064 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/objects/svg_objects.py", 5065 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/document.py", 5066 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation/pydeation.sublime-project", 5067 "/Users/davidrug/Documents/Python/Projects/pydeation-horizon-border/README.md", 5068 "/Users/davidrug/Documents/Python/Projects/pydeation-horizon-border/horizon_border.py", 5069 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/pydeation-PL-pitch/README.md", 5070 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/pydeation-testing/.gitignore", 5071 "/Users/davidrug/Library/Application Support/Sublime Text/Packages/User/Anaconda.sublime-settings", 5072 "/Users/davidrug/Library/Application Support/Sublime Text/Packages/Anaconda/Anaconda.sublime-settings", 5073 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/pydeation-testing/testing.py", 5074 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/objects/abstract_objects.py", 5075 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/scene.py", 5076 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/constants.py", 5077 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/xpresso/xpresso.py", 5078 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/xpresso/userdata.py", 5079 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/animation/sketch_animators.py", 5080 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/animation/animation.py", 5081 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/xpresso/xpressions.py", 5082 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/objects/line_objects.py", 5083 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/animation/fill_animators.py", 5084 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/animation/abstract_animators.py", 5085 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/animation/object_animators.py", 5086 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/tags.py", 5087 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/imports.py", 5088 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/pydeation/objects/solid_objects.py", 5089 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/pydeation/imports.py", 5090 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/pydeation/xpresso/xpresso.py", 5091 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/pydeation/xpresso/xpressions.py", 5092 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/xpresso/test.py", 5093 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/xpressions/userdata.py", 5094 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/xpressions.py", 5095 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/pydeationV2.sublime-project", 5096 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/pydeation.sublime-project", 5097 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/testProject/testProjectV2.py", 5098 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/materials.py", 5099 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/objects/helper_objects.py", 5100 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/objects/solid_objects.py", 5101 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/animation/composed_animators.py", 5102 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/objects/svg_objects.py", 5103 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/memetics/memetics.py", 5104 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/testProject/closeDocs.py", 5105 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/fourier_transform/fourier_transform.py", 5106 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/testProject/testing.py", 5107 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeation/document.py", 5108 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/pitch/InterfaceGuy/pitch/pitch.py", 5109 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/scene/scene.py", 5110 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/animation/animator.py", 5111 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/object/mograph.py", 5112 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/constants.py", 5113 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/testProject/testProject.py", 5114 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/camera/camera.py", 5115 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/object/vector_graphics.py", 5116 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/object/object.py", 5117 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/svg/tree.svg", 5118 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/svg/david.svg", 5119 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/metadata.py", 5120 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/object/custom_objects.py", 5121 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/pitch/InterfaceGuy/stem/stem.py", 5122 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/pitch/InterfaceGuy/seed/seed.py", 5123 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/LICENSE", 5124 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/dialectic/DanielSchmachtenberger/left-right/left-right.py", 5125 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/branching/branching.py", 5126 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/dialectical_thinking/dialectical_thinking.py", 5127 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/intro/intro.py", 5128 "/Users/davidrug/Library/Mobile Documents/com~apple~CloudDocs/Unclutter/Unclutter Files/Ohne Titel 6.svg", 5129 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/project.py", 5130 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/svg/gear_big.svg", 5131 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/dialectic_transitions/dialectic.py", 5132 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/clips/DanielSchmachtenberger/NavigatingReality/navigating_reality.py", 5133 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/svg/individual.svg", 5134 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/dialectic/DanielSchmachtenberger/being-becoming/being-becoming.py", 5135 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/svg/emu.svg", 5136 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/dialectic/DanielSchmachtenberger/conservative-progressive/conservative-progressive.py", 5137 "/Users/davidrug/Documents/Python/Projects/pydeation/pydeation.sublime-project", 5138 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/dialectical_thinking/dialectical_thinking", 5139 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/library/scripts/PydeationProjects/diverse/InterfaceGuy/dialectic/dialectic.py", 5140 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R24_36E19156/python39/libs/pydeationlib/scene/scene.py", 5141 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R24_36E19156/library/scripts/PydeationProjects/diverse/InterfaceGuy/logo/logo.py", 5142 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R24_36E19156/python39/libs/pydeationlib/object/custom_objects.py", 5143 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/2D/social_system.jpeg", 5144 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/2D/vector_graphics_pydeation.key", 5145 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/2D/test.svg", 5146 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R25_EBA43BEE/python39/libs/pydeationlib/assets/2D/individual.jpeg", 5147 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R24_36E19156/python39/libs/pydeationlib/object/object.py", 5148 "/Users/davidrug/Library/Mobile Documents/com~apple~CloudDocs/Unclutter/Unclutter Files/test.svg", 5149 "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R24_36E19156/library/scripts/PydeationProjects/diverse/InterfaceGuy/testProject/testProject.py" 5150 ], 5151 "find": 5152 { 5153 "height": 24.0 5154 }, 5155 "find_in_files": 5156 { 5157 "height": 98.0, 5158 "where_history": 5159 [ 5160 "", 5161 "<current file>", 5162 "" 5163 ] 5164 }, 5165 "find_state": 5166 { 5167 "case_sensitive": false, 5168 "find_history": 5169 [ 5170 "[c4d.OUTLINEMAT_FILTER_STROKES]", 5171 "solid_objects", 5172 "helper_objects", 5173 "VisibleObject", 5174 "easing", 5175 "sketch_opacity", 5176 "movement", 5177 "mospline_correction", 5178 "helper_objects", 5179 "effect_objects", 5180 "GetActiveDocument", 5181 "effect_objects", 5182 "color", 5183 "WHITE", 5184 "color", 5185 "specify_sketch_parameters", 5186 "outline", 5187 "honeycomb_clone_step_size_width", 5188 "honeycomb_clone_step_size_height", 5189 "honeycomb_clone_step_size_width", 5190 "clone_step_size_height", 5191 "clone_step_size_width", 5192 "count_height", 5193 "count_width", 5194 "step_size", 5195 "mospline", 5196 "600000021", 5197 "add_clones", 5198 "custom_objects", 5199 ".height", 5200 "height", 5201 "self.width", 5202 "wrapper_completion_parameter", 5203 "EquilateralTriangle", 5204 "PRIM_NSIDE_POINT_COUNT", 5205 "opacity_parameter", 5206 "class", 5207 " - PI", 5208 "front", 5209 "True", 5210 "radius", 5211 "name", 5212 "100", 5213 "200", 5214 "PI", 5215 "self.plane", 5216 "Square", 5217 "200", 5218 "25", 5219 "downward_spiral", 5220 "26", 5221 "24", 5222 "set_resolution", 5223 "class", 5224 "ThicknessParameter", 5225 "thickness_parameter", 5226 "fold_parameter", 5227 "self.fold", 5228 "fission", 5229 "Fission", 5230 "fission_action_parameter", 5231 "start_angle", 5232 "end_radius", 5233 "class", 5234 "):\n \"\"\"turns a c4d spline into a hidden pydeation spline\"\"\"\n\n def __init__(self, input_spline, spline_type=\"bezier\", **kwargs):\n self.input_spline = self.get_spline(input_spline)\n self.spline_type = spline_type\n super().__init__(**kwargs)\n\n def get_spline(self, input_spline):\n # turns any primitive spline into a single editable spline\n if type(input_spline) is not c4d.SplineObject:\n pass\n return input_spline\n\n def specify_object(self):\n self.obj = self.input_spline.GetClone()\n\n def set_object_properties(self):\n spline_types = {\n \"linear\": 0,\n \"cubic\": 1,\n \"akima\": 2,\n \"b-spline\": 3,\n \"bezier\": 4\n }\n # set interpolation\n self.obj[c4d.SPLINEOBJECT_TYPE] = spline_types[self.spline_type]", 5235 "class ", 5236 "class", 5237 "morph", 5238 "FILLER_TRANSPARENCY", 5239 "[c4d.OUTLINEMAT_THICKNESS]", 5240 "set_resolution", 5241 "25", 5242 "22", 5243 "24", 5244 "22", 5245 "23", 5246 "25", 5247 "UpwardSpiral", 5248 "upward_spiral", 5249 "trinity", 5250 "upward_spiral", 5251 "200", 5252 "move_orbit", 5253 "2/3", 5254 "draw_parameter", 5255 "right_semi_circle", 5256 "upward", 5257 "trinity", 5258 "0", 5259 "35", 5260 "mospline", 5261 "MoSpline", 5262 "mospline", 5263 "path", 5264 "False", 5265 "matrices", 5266 "start_object_has_border", 5267 "rectangle", 5268 "right_semi_circle", 5269 "left_semi_circle", 5270 "right_semi_circle", 5271 "symbol", 5272 "Node", 5273 "Spiral", 5274 "spline_ini", 5275 "object_ini", 5276 "wave", 5277 "interface", 5278 "parallel", 5279 "draw_parameter", 5280 "WHITE", 5281 "aang_eyes", 5282 "(0, 2/3)", 5283 "self", 5284 "circle", 5285 "wave", 5286 "20", 5287 "8", 5288 "right_eye", 5289 "1", 5290 "custome_objects", 5291 "100", 5292 "left_eye", 5293 "from", 5294 "Membrane", 5295 "from", 5296 "Membrane", 5297 "action_parameter" 5298 ], 5299 "highlight": true, 5300 "in_selection": false, 5301 "preserve_case": false, 5302 "regex": false, 5303 "replace_history": 5304 [ 5305 "Triangle", 5306 "ScalarAnimation", 5307 "BoolAnimation", 5308 "animation", 5309 "__init__", 5310 "", 5311 "self", 5312 "director", 5313 "Director", 5314 ".sketch_objects", 5315 "UOptions", 5316 "XIdentity", 5317 ".xpressions", 5318 "interpolation", 5319 "desc_id", 5320 " ", 5321 "polar2cartesian" 5322 ], 5323 "reverse": false, 5324 "scrollbar_highlights": true, 5325 "show_context": true, 5326 "use_buffer2": true, 5327 "use_gitignore": true, 5328 "whole_word": false, 5329 "wrap": true 5330 }, 5331 "groups": 5332 [ 5333 { 5334 "sheets": 5335 [ 5336 { 5337 "buffer": 0, 5338 "file": "objects/sketch_objects.py", 5339 "semi_transient": false, 5340 "settings": 5341 { 5342 "buffer_size": 6267, 5343 "regions": 5344 { 5345 }, 5346 "selection": 5347 [ 5348 [ 5349 906, 5350 906 5351 ] 5352 ], 5353 "settings": 5354 { 5355 "auto_complete_triggers": 5356 [ 5357 { 5358 "characters": ".", 5359 "selector": "source.python - string - comment - constant.numeric" 5360 } 5361 ], 5362 "bracket_highlighter.busy": false, 5363 "bracket_highlighter.locations": 5364 { 5365 "close": 5366 { 5367 }, 5368 "icon": 5369 { 5370 }, 5371 "open": 5372 { 5373 }, 5374 "unmatched": 5375 { 5376 } 5377 }, 5378 "bracket_highlighter.regions": 5379 [ 5380 "bh_angle", 5381 "bh_angle_center", 5382 "bh_angle_open", 5383 "bh_angle_close", 5384 "bh_angle_content", 5385 "bh_square", 5386 "bh_square_center", 5387 "bh_square_open", 5388 "bh_square_close", 5389 "bh_square_content", 5390 "bh_unmatched", 5391 "bh_unmatched_center", 5392 "bh_unmatched_open", 5393 "bh_unmatched_close", 5394 "bh_unmatched_content", 5395 "bh_single_quote", 5396 "bh_single_quote_center", 5397 "bh_single_quote_open", 5398 "bh_single_quote_close", 5399 "bh_single_quote_content", 5400 "bh_c_define", 5401 "bh_c_define_center", 5402 "bh_c_define_open", 5403 "bh_c_define_close", 5404 "bh_c_define_content", 5405 "bh_tag", 5406 "bh_tag_center", 5407 "bh_tag_open", 5408 "bh_tag_close", 5409 "bh_tag_content", 5410 "bh_double_quote", 5411 "bh_double_quote_center", 5412 "bh_double_quote_open", 5413 "bh_double_quote_close", 5414 "bh_double_quote_content", 5415 "bh_round", 5416 "bh_round_center", 5417 "bh_round_open", 5418 "bh_round_close", 5419 "bh_round_content", 5420 "bh_curly", 5421 "bh_curly_center", 5422 "bh_curly_open", 5423 "bh_curly_close", 5424 "bh_curly_content", 5425 "bh_regex", 5426 "bh_regex_center", 5427 "bh_regex_open", 5428 "bh_regex_close", 5429 "bh_regex_content", 5430 "bh_default", 5431 "bh_default_center", 5432 "bh_default_open", 5433 "bh_default_close", 5434 "bh_default_content" 5435 ], 5436 "copilot.completion._is_modified": false, 5437 "copilot.completion._is_saving": false, 5438 "copilot.completion.completion_index": 0, 5439 "copilot.completion.completion_style": "popup", 5440 "copilot.completion.completions": 5441 [ 5442 { 5443 "displayText": "f\"membrane: {self.membrane.obj}\")", 5444 "docVersion": 235, 5445 "point": 1269, 5446 "position": 5447 { 5448 "character": 14, 5449 "line": 32 5450 }, 5451 "range": 5452 { 5453 "end": 5454 { 5455 "character": 15, 5456 "line": 32 5457 }, 5458 "start": 5459 { 5460 "character": 0, 5461 "line": 32 5462 } 5463 }, 5464 "region": 5465 [ 5466 1255, 5467 1270 5468 ], 5469 "text": " print(f\"membrane: {self.membrane.obj}\")", 5470 "uuid": "e40a0073-f009-44ab-90c2-0eb030ff3372" 5471 }, 5472 { 5473 "displayText": "self.membrane.obj.GetUp().GetName())", 5474 "docVersion": 235, 5475 "point": 1269, 5476 "position": 5477 { 5478 "character": 14, 5479 "line": 32 5480 }, 5481 "range": 5482 { 5483 "end": 5484 { 5485 "character": 15, 5486 "line": 32 5487 }, 5488 "start": 5489 { 5490 "character": 0, 5491 "line": 32 5492 } 5493 }, 5494 "region": 5495 [ 5496 1255, 5497 1270 5498 ], 5499 "text": " print(self.membrane.obj.GetUp().GetName())", 5500 "uuid": "df888b6d-4ec4-42c8-9a72-235d4d79b805" 5501 } 5502 ], 5503 "copilot.completion.is_visible": false, 5504 "copilot.completion.is_visible_panel_completions": false, 5505 "copilot.completion.is_waiting_completion": false, 5506 "copilot.completion.is_waiting_panel_completions": false, 5507 "copilot.completion.original_layout": null, 5508 "lsp_active": true, 5509 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/objects/sketch_objects.py", 5510 "syntax": "Packages/Python/Python.sublime-syntax", 5511 "tab_size": 4, 5512 "translate_tabs_to_spaces": true 5513 }, 5514 "translation.x": 0.0, 5515 "translation.y": 0.0, 5516 "zoom_level": 1.0 5517 }, 5518 "stack_index": 3, 5519 "stack_multiselect": false, 5520 "type": "text" 5521 }, 5522 { 5523 "buffer": 1, 5524 "file": "objects/abstract_objects.py", 5525 "semi_transient": false, 5526 "settings": 5527 { 5528 "buffer_size": 35430, 5529 "regions": 5530 { 5531 }, 5532 "selection": 5533 [ 5534 [ 5535 584, 5536 584 5537 ] 5538 ], 5539 "settings": 5540 { 5541 "auto_complete_triggers": 5542 [ 5543 { 5544 "characters": ".", 5545 "selector": "source.python - string - comment - constant.numeric" 5546 } 5547 ], 5548 "bracket_highlighter.busy": false, 5549 "bracket_highlighter.locations": 5550 { 5551 "close": 5552 { 5553 }, 5554 "icon": 5555 { 5556 }, 5557 "open": 5558 { 5559 }, 5560 "unmatched": 5561 { 5562 } 5563 }, 5564 "bracket_highlighter.regions": 5565 [ 5566 "bh_angle", 5567 "bh_angle_center", 5568 "bh_angle_open", 5569 "bh_angle_close", 5570 "bh_angle_content", 5571 "bh_single_quote", 5572 "bh_single_quote_center", 5573 "bh_single_quote_open", 5574 "bh_single_quote_close", 5575 "bh_single_quote_content", 5576 "bh_tag", 5577 "bh_tag_center", 5578 "bh_tag_open", 5579 "bh_tag_close", 5580 "bh_tag_content", 5581 "bh_default", 5582 "bh_default_center", 5583 "bh_default_open", 5584 "bh_default_close", 5585 "bh_default_content", 5586 "bh_unmatched", 5587 "bh_unmatched_center", 5588 "bh_unmatched_open", 5589 "bh_unmatched_close", 5590 "bh_unmatched_content", 5591 "bh_regex", 5592 "bh_regex_center", 5593 "bh_regex_open", 5594 "bh_regex_close", 5595 "bh_regex_content", 5596 "bh_double_quote", 5597 "bh_double_quote_center", 5598 "bh_double_quote_open", 5599 "bh_double_quote_close", 5600 "bh_double_quote_content", 5601 "bh_square", 5602 "bh_square_center", 5603 "bh_square_open", 5604 "bh_square_close", 5605 "bh_square_content", 5606 "bh_c_define", 5607 "bh_c_define_center", 5608 "bh_c_define_open", 5609 "bh_c_define_close", 5610 "bh_c_define_content", 5611 "bh_curly", 5612 "bh_curly_center", 5613 "bh_curly_open", 5614 "bh_curly_close", 5615 "bh_curly_content", 5616 "bh_round", 5617 "bh_round_center", 5618 "bh_round_open", 5619 "bh_round_close", 5620 "bh_round_content" 5621 ], 5622 "copilot.completion._is_modified": false, 5623 "copilot.completion._is_saving": false, 5624 "copilot.completion.completion_index": 0, 5625 "copilot.completion.completion_style": "popup", 5626 "copilot.completion.completions": 5627 [ 5628 { 5629 "displayText": "import pydeation.objects.helper_objects as helper_objects", 5630 "docVersion": 165, 5631 "point": 584, 5632 "position": 5633 { 5634 "character": 0, 5635 "line": 10 5636 }, 5637 "range": 5638 { 5639 "end": 5640 { 5641 "character": 0, 5642 "line": 10 5643 }, 5644 "start": 5645 { 5646 "character": 0, 5647 "line": 10 5648 } 5649 }, 5650 "region": 5651 [ 5652 584, 5653 584 5654 ], 5655 "text": "import pydeation.objects.helper_objects as helper_objects", 5656 "uuid": "1ed50cae-804b-4679-be23-21a9c591e97d" 5657 } 5658 ], 5659 "copilot.completion.is_visible": false, 5660 "copilot.completion.is_visible_panel_completions": false, 5661 "copilot.completion.is_waiting_completion": false, 5662 "copilot.completion.is_waiting_panel_completions": false, 5663 "copilot.completion.original_layout": null, 5664 "lsp_active": true, 5665 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/objects/abstract_objects.py", 5666 "syntax": "Packages/Python/Python.sublime-syntax", 5667 "tab_size": 4, 5668 "translate_tabs_to_spaces": true 5669 }, 5670 "translation.x": 0.0, 5671 "translation.y": 0.0, 5672 "zoom_level": 1.0 5673 }, 5674 "stack_index": 1, 5675 "stack_multiselect": false, 5676 "type": "text" 5677 }, 5678 { 5679 "buffer": 2, 5680 "file": "xpresso/xpressions.py", 5681 "semi_transient": false, 5682 "settings": 5683 { 5684 "buffer_size": 66772, 5685 "regions": 5686 { 5687 }, 5688 "selection": 5689 [ 5690 [ 5691 48573, 5692 48573 5693 ] 5694 ], 5695 "settings": 5696 { 5697 "auto_complete_triggers": 5698 [ 5699 { 5700 "characters": ".", 5701 "selector": "source.python - string - comment - constant.numeric" 5702 } 5703 ], 5704 "bracket_highlighter.busy": false, 5705 "bracket_highlighter.locations": 5706 { 5707 "close": 5708 { 5709 "1": 5710 [ 5711 48574, 5712 48575 5713 ] 5714 }, 5715 "icon": 5716 { 5717 "1": 5718 [ 5719 "Packages/BracketHighlighter/icons/round_bracket.png", 5720 "region.yellowish" 5721 ] 5722 }, 5723 "open": 5724 { 5725 "1": 5726 [ 5727 48511, 5728 48512 5729 ] 5730 }, 5731 "unmatched": 5732 { 5733 } 5734 }, 5735 "bracket_highlighter.regions": 5736 [ 5737 "bh_angle", 5738 "bh_angle_center", 5739 "bh_angle_open", 5740 "bh_angle_close", 5741 "bh_angle_content", 5742 "bh_single_quote", 5743 "bh_single_quote_center", 5744 "bh_single_quote_open", 5745 "bh_single_quote_close", 5746 "bh_single_quote_content", 5747 "bh_tag", 5748 "bh_tag_center", 5749 "bh_tag_open", 5750 "bh_tag_close", 5751 "bh_tag_content", 5752 "bh_default", 5753 "bh_default_center", 5754 "bh_default_open", 5755 "bh_default_close", 5756 "bh_default_content", 5757 "bh_unmatched", 5758 "bh_unmatched_center", 5759 "bh_unmatched_open", 5760 "bh_unmatched_close", 5761 "bh_unmatched_content", 5762 "bh_regex", 5763 "bh_regex_center", 5764 "bh_regex_open", 5765 "bh_regex_close", 5766 "bh_regex_content", 5767 "bh_double_quote", 5768 "bh_double_quote_center", 5769 "bh_double_quote_open", 5770 "bh_double_quote_close", 5771 "bh_double_quote_content", 5772 "bh_square", 5773 "bh_square_center", 5774 "bh_square_open", 5775 "bh_square_close", 5776 "bh_square_content", 5777 "bh_c_define", 5778 "bh_c_define_center", 5779 "bh_c_define_open", 5780 "bh_c_define_close", 5781 "bh_c_define_content", 5782 "bh_curly", 5783 "bh_curly_center", 5784 "bh_curly_open", 5785 "bh_curly_close", 5786 "bh_curly_content", 5787 "bh_round", 5788 "bh_round_center", 5789 "bh_round_open", 5790 "bh_round_close", 5791 "bh_round_content" 5792 ], 5793 "copilot.completion._is_modified": false, 5794 "copilot.completion.is_visible": false, 5795 "copilot.completion.is_visible_panel_completions": false, 5796 "copilot.completion.is_waiting_completion": false, 5797 "copilot.completion.is_waiting_panel_completions": false, 5798 "copilot.completion.original_layout": null, 5799 "lsp_active": true, 5800 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/xpresso/xpressions.py", 5801 "syntax": "Packages/Python/Python.sublime-syntax", 5802 "tab_size": 4, 5803 "translate_tabs_to_spaces": true 5804 }, 5805 "translation.x": 0.0, 5806 "translation.y": 16541.0, 5807 "zoom_level": 1.0 5808 }, 5809 "stack_index": 7, 5810 "stack_multiselect": false, 5811 "type": "text" 5812 }, 5813 { 5814 "buffer": 3, 5815 "file": "materials.py", 5816 "selected": true, 5817 "semi_transient": false, 5818 "settings": 5819 { 5820 "buffer_size": 4352, 5821 "regions": 5822 { 5823 }, 5824 "selection": 5825 [ 5826 [ 5827 2072, 5828 2072 5829 ] 5830 ], 5831 "settings": 5832 { 5833 "auto_complete_triggers": 5834 [ 5835 { 5836 "characters": ".", 5837 "selector": "source.python - string - comment - constant.numeric" 5838 } 5839 ], 5840 "bracket_highlighter.busy": false, 5841 "bracket_highlighter.locations": 5842 { 5843 "close": 5844 { 5845 }, 5846 "icon": 5847 { 5848 }, 5849 "open": 5850 { 5851 }, 5852 "unmatched": 5853 { 5854 } 5855 }, 5856 "bracket_highlighter.regions": 5857 [ 5858 "bh_angle", 5859 "bh_angle_center", 5860 "bh_angle_open", 5861 "bh_angle_close", 5862 "bh_angle_content", 5863 "bh_single_quote", 5864 "bh_single_quote_center", 5865 "bh_single_quote_open", 5866 "bh_single_quote_close", 5867 "bh_single_quote_content", 5868 "bh_tag", 5869 "bh_tag_center", 5870 "bh_tag_open", 5871 "bh_tag_close", 5872 "bh_tag_content", 5873 "bh_default", 5874 "bh_default_center", 5875 "bh_default_open", 5876 "bh_default_close", 5877 "bh_default_content", 5878 "bh_unmatched", 5879 "bh_unmatched_center", 5880 "bh_unmatched_open", 5881 "bh_unmatched_close", 5882 "bh_unmatched_content", 5883 "bh_regex", 5884 "bh_regex_center", 5885 "bh_regex_open", 5886 "bh_regex_close", 5887 "bh_regex_content", 5888 "bh_double_quote", 5889 "bh_double_quote_center", 5890 "bh_double_quote_open", 5891 "bh_double_quote_close", 5892 "bh_double_quote_content", 5893 "bh_square", 5894 "bh_square_center", 5895 "bh_square_open", 5896 "bh_square_close", 5897 "bh_square_content", 5898 "bh_c_define", 5899 "bh_c_define_center", 5900 "bh_c_define_open", 5901 "bh_c_define_close", 5902 "bh_c_define_content", 5903 "bh_curly", 5904 "bh_curly_center", 5905 "bh_curly_open", 5906 "bh_curly_close", 5907 "bh_curly_content", 5908 "bh_round", 5909 "bh_round_center", 5910 "bh_round_open", 5911 "bh_round_close", 5912 "bh_round_content" 5913 ], 5914 "copilot.completion._is_modified": false, 5915 "copilot.completion._is_saving": false, 5916 "copilot.completion.completion_index": 0, 5917 "copilot.completion.completion_style": "popup", 5918 "copilot.completion.completions": 5919 [ 5920 { 5921 "displayText": "# filter strokes", 5922 "docVersion": 30, 5923 "point": 2072, 5924 "position": 5925 { 5926 "character": 56, 5927 "line": 63 5928 }, 5929 "range": 5930 { 5931 "end": 5932 { 5933 "character": 56, 5934 "line": 63 5935 }, 5936 "start": 5937 { 5938 "character": 0, 5939 "line": 63 5940 } 5941 }, 5942 "region": 5943 [ 5944 2016, 5945 2072 5946 ], 5947 "text": " self.obj[c4d.OUTLINEMAT_FILTER_STROKES] = False # filter strokes", 5948 "uuid": "cf2b0e1f-1d91-4bed-990e-90334f195df9" 5949 } 5950 ], 5951 "copilot.completion.is_visible": false, 5952 "copilot.completion.is_visible_panel_completions": false, 5953 "copilot.completion.is_waiting_completion": false, 5954 "copilot.completion.is_waiting_panel_completions": false, 5955 "copilot.completion.original_layout": null, 5956 "lsp_active": true, 5957 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/materials.py", 5958 "syntax": "Packages/Python/Python.sublime-syntax", 5959 "tab_size": 4, 5960 "translate_tabs_to_spaces": true 5961 }, 5962 "translation.x": 0.0, 5963 "translation.y": 421.0, 5964 "zoom_level": 1.0 5965 }, 5966 "stack_index": 0, 5967 "stack_multiselect": false, 5968 "type": "text" 5969 }, 5970 { 5971 "buffer": 4, 5972 "file": "objects/solid_objects.py", 5973 "semi_transient": false, 5974 "settings": 5975 { 5976 "buffer_size": 7107, 5977 "regions": 5978 { 5979 }, 5980 "selection": 5981 [ 5982 [ 5983 5776, 5984 5776 5985 ] 5986 ], 5987 "settings": 5988 { 5989 "auto_complete_triggers": 5990 [ 5991 { 5992 "characters": ".", 5993 "selector": "source.python - string - comment - constant.numeric" 5994 } 5995 ], 5996 "bracket_highlighter.busy": false, 5997 "bracket_highlighter.locations": 5998 { 5999 "close": 6000 { 6001 }, 6002 "icon": 6003 { 6004 }, 6005 "open": 6006 { 6007 }, 6008 "unmatched": 6009 { 6010 } 6011 }, 6012 "bracket_highlighter.regions": 6013 [ 6014 "bh_angle", 6015 "bh_angle_center", 6016 "bh_angle_open", 6017 "bh_angle_close", 6018 "bh_angle_content", 6019 "bh_square", 6020 "bh_square_center", 6021 "bh_square_open", 6022 "bh_square_close", 6023 "bh_square_content", 6024 "bh_unmatched", 6025 "bh_unmatched_center", 6026 "bh_unmatched_open", 6027 "bh_unmatched_close", 6028 "bh_unmatched_content", 6029 "bh_single_quote", 6030 "bh_single_quote_center", 6031 "bh_single_quote_open", 6032 "bh_single_quote_close", 6033 "bh_single_quote_content", 6034 "bh_c_define", 6035 "bh_c_define_center", 6036 "bh_c_define_open", 6037 "bh_c_define_close", 6038 "bh_c_define_content", 6039 "bh_tag", 6040 "bh_tag_center", 6041 "bh_tag_open", 6042 "bh_tag_close", 6043 "bh_tag_content", 6044 "bh_double_quote", 6045 "bh_double_quote_center", 6046 "bh_double_quote_open", 6047 "bh_double_quote_close", 6048 "bh_double_quote_content", 6049 "bh_round", 6050 "bh_round_center", 6051 "bh_round_open", 6052 "bh_round_close", 6053 "bh_round_content", 6054 "bh_curly", 6055 "bh_curly_center", 6056 "bh_curly_open", 6057 "bh_curly_close", 6058 "bh_curly_content", 6059 "bh_regex", 6060 "bh_regex_center", 6061 "bh_regex_open", 6062 "bh_regex_close", 6063 "bh_regex_content", 6064 "bh_default", 6065 "bh_default_center", 6066 "bh_default_open", 6067 "bh_default_close", 6068 "bh_default_content" 6069 ], 6070 "copilot.completion._is_modified": false, 6071 "copilot.completion._is_saving": false, 6072 "copilot.completion.completion_index": 0, 6073 "copilot.completion.completion_style": "popup", 6074 "copilot.completion.completions": 6075 [ 6076 { 6077 "displayText": "eight = self.depth = self.size", 6078 "docVersion": 59, 6079 "point": 5747, 6080 "position": 6081 { 6082 "character": 32, 6083 "line": 188 6084 }, 6085 "range": 6086 { 6087 "end": 6088 { 6089 "character": 32, 6090 "line": 188 6091 }, 6092 "start": 6093 { 6094 "character": 0, 6095 "line": 188 6096 } 6097 }, 6098 "region": 6099 [ 6100 5715, 6101 5747 6102 ], 6103 "text": " self..width = self.height = self.depth = self.size", 6104 "uuid": "e2d677b7-5707-4abf-9826-179072fbc527" 6105 } 6106 ], 6107 "copilot.completion.is_visible": false, 6108 "copilot.completion.is_visible_panel_completions": false, 6109 "copilot.completion.is_waiting_completion": false, 6110 "copilot.completion.is_waiting_panel_completions": false, 6111 "copilot.completion.original_layout": null, 6112 "lsp_active": true, 6113 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/objects/solid_objects.py", 6114 "syntax": "Packages/Python/Python.sublime-syntax", 6115 "tab_size": 4, 6116 "translate_tabs_to_spaces": true 6117 }, 6118 "translation.x": 0.0, 6119 "translation.y": 0.0, 6120 "zoom_level": 1.0 6121 }, 6122 "stack_index": 5, 6123 "stack_multiselect": false, 6124 "type": "text" 6125 }, 6126 { 6127 "buffer": 5, 6128 "file": "objects/custom_objects.py", 6129 "semi_transient": false, 6130 "settings": 6131 { 6132 "buffer_size": 87954, 6133 "regions": 6134 { 6135 }, 6136 "selection": 6137 [ 6138 [ 6139 4562, 6140 4562 6141 ] 6142 ], 6143 "settings": 6144 { 6145 "auto_complete_triggers": 6146 [ 6147 { 6148 "characters": ".", 6149 "selector": "source.python - string - comment - constant.numeric" 6150 } 6151 ], 6152 "bracket_highlighter.busy": false, 6153 "bracket_highlighter.locations": 6154 { 6155 "close": 6156 { 6157 "1": 6158 [ 6159 4622, 6160 4623 6161 ] 6162 }, 6163 "icon": 6164 { 6165 "1": 6166 [ 6167 "Packages/BracketHighlighter/icons/round_bracket.png", 6168 "region.yellowish" 6169 ] 6170 }, 6171 "open": 6172 { 6173 "1": 6174 [ 6175 4561, 6176 4562 6177 ] 6178 }, 6179 "unmatched": 6180 { 6181 } 6182 }, 6183 "bracket_highlighter.regions": 6184 [ 6185 "bh_angle", 6186 "bh_angle_center", 6187 "bh_angle_open", 6188 "bh_angle_close", 6189 "bh_angle_content", 6190 "bh_single_quote", 6191 "bh_single_quote_center", 6192 "bh_single_quote_open", 6193 "bh_single_quote_close", 6194 "bh_single_quote_content", 6195 "bh_tag", 6196 "bh_tag_center", 6197 "bh_tag_open", 6198 "bh_tag_close", 6199 "bh_tag_content", 6200 "bh_default", 6201 "bh_default_center", 6202 "bh_default_open", 6203 "bh_default_close", 6204 "bh_default_content", 6205 "bh_unmatched", 6206 "bh_unmatched_center", 6207 "bh_unmatched_open", 6208 "bh_unmatched_close", 6209 "bh_unmatched_content", 6210 "bh_regex", 6211 "bh_regex_center", 6212 "bh_regex_open", 6213 "bh_regex_close", 6214 "bh_regex_content", 6215 "bh_double_quote", 6216 "bh_double_quote_center", 6217 "bh_double_quote_open", 6218 "bh_double_quote_close", 6219 "bh_double_quote_content", 6220 "bh_square", 6221 "bh_square_center", 6222 "bh_square_open", 6223 "bh_square_close", 6224 "bh_square_content", 6225 "bh_c_define", 6226 "bh_c_define_center", 6227 "bh_c_define_open", 6228 "bh_c_define_close", 6229 "bh_c_define_content", 6230 "bh_curly", 6231 "bh_curly_center", 6232 "bh_curly_open", 6233 "bh_curly_close", 6234 "bh_curly_content", 6235 "bh_round", 6236 "bh_round_center", 6237 "bh_round_open", 6238 "bh_round_close", 6239 "bh_round_content" 6240 ], 6241 "copilot.completion._is_modified": false, 6242 "copilot.completion._is_saving": false, 6243 "copilot.completion.completion_index": 0, 6244 "copilot.completion.completion_style": "popup", 6245 "copilot.completion.completions": 6246 [ 6247 { 6248 "displayText": ")", 6249 "docVersion": 85, 6250 "point": 37611, 6251 "position": 6252 { 6253 "character": 66, 6254 "line": 695 6255 }, 6256 "range": 6257 { 6258 "end": 6259 { 6260 "character": 67, 6261 "line": 695 6262 }, 6263 "start": 6264 { 6265 "character": 0, 6266 "line": 695 6267 } 6268 }, 6269 "region": 6270 [ 6271 37545, 6272 37612 6273 ], 6274 "text": " tracing_mode=\"objects\", name=\"Tracer\")", 6275 "uuid": "11a6bb29-a7c1-4e00-82d2-f2d921d44651" 6276 } 6277 ], 6278 "copilot.completion.is_visible": false, 6279 "copilot.completion.is_visible_panel_completions": false, 6280 "copilot.completion.is_waiting_completion": false, 6281 "copilot.completion.is_waiting_panel_completions": false, 6282 "copilot.completion.original_layout": null, 6283 "lsp_active": true, 6284 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/objects/custom_objects.py", 6285 "syntax": "Packages/Python/Python.sublime-syntax", 6286 "tab_size": 4, 6287 "translate_tabs_to_spaces": true 6288 }, 6289 "translation.x": 0.0, 6290 "translation.y": 0.0, 6291 "zoom_level": 1.0 6292 }, 6293 "stack_index": 2, 6294 "stack_multiselect": false, 6295 "type": "text" 6296 }, 6297 { 6298 "buffer": 6, 6299 "file": "constants.py", 6300 "semi_transient": false, 6301 "settings": 6302 { 6303 "buffer_size": 3485, 6304 "regions": 6305 { 6306 }, 6307 "selection": 6308 [ 6309 [ 6310 412, 6311 412 6312 ] 6313 ], 6314 "settings": 6315 { 6316 "auto_complete_triggers": 6317 [ 6318 { 6319 "characters": ".", 6320 "selector": "source.python - string - comment - constant.numeric" 6321 } 6322 ], 6323 "bracket_highlighter.busy": false, 6324 "bracket_highlighter.locations": 6325 { 6326 "close": 6327 { 6328 }, 6329 "icon": 6330 { 6331 }, 6332 "open": 6333 { 6334 }, 6335 "unmatched": 6336 { 6337 } 6338 }, 6339 "bracket_highlighter.regions": 6340 [ 6341 "bh_angle", 6342 "bh_angle_center", 6343 "bh_angle_open", 6344 "bh_angle_close", 6345 "bh_angle_content", 6346 "bh_single_quote", 6347 "bh_single_quote_center", 6348 "bh_single_quote_open", 6349 "bh_single_quote_close", 6350 "bh_single_quote_content", 6351 "bh_tag", 6352 "bh_tag_center", 6353 "bh_tag_open", 6354 "bh_tag_close", 6355 "bh_tag_content", 6356 "bh_default", 6357 "bh_default_center", 6358 "bh_default_open", 6359 "bh_default_close", 6360 "bh_default_content", 6361 "bh_unmatched", 6362 "bh_unmatched_center", 6363 "bh_unmatched_open", 6364 "bh_unmatched_close", 6365 "bh_unmatched_content", 6366 "bh_regex", 6367 "bh_regex_center", 6368 "bh_regex_open", 6369 "bh_regex_close", 6370 "bh_regex_content", 6371 "bh_double_quote", 6372 "bh_double_quote_center", 6373 "bh_double_quote_open", 6374 "bh_double_quote_close", 6375 "bh_double_quote_content", 6376 "bh_square", 6377 "bh_square_center", 6378 "bh_square_open", 6379 "bh_square_close", 6380 "bh_square_content", 6381 "bh_c_define", 6382 "bh_c_define_center", 6383 "bh_c_define_open", 6384 "bh_c_define_close", 6385 "bh_c_define_content", 6386 "bh_curly", 6387 "bh_curly_center", 6388 "bh_curly_open", 6389 "bh_curly_close", 6390 "bh_curly_content", 6391 "bh_round", 6392 "bh_round_center", 6393 "bh_round_open", 6394 "bh_round_close", 6395 "bh_round_content" 6396 ], 6397 "copilot.completion._is_modified": false, 6398 "copilot.completion._is_saving": false, 6399 "copilot.completion.is_visible": false, 6400 "copilot.completion.is_visible_panel_completions": false, 6401 "copilot.completion.is_waiting_completion": false, 6402 "copilot.completion.is_waiting_panel_completions": false, 6403 "copilot.completion.original_layout": null, 6404 "lsp_active": true, 6405 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/constants.py", 6406 "syntax": "Packages/Python/Python.sublime-syntax", 6407 "tab_size": 4, 6408 "translate_tabs_to_spaces": true 6409 }, 6410 "translation.x": 0.0, 6411 "translation.y": 0.0, 6412 "zoom_level": 1.0 6413 }, 6414 "stack_index": 8, 6415 "stack_multiselect": false, 6416 "type": "text" 6417 }, 6418 { 6419 "buffer": 7, 6420 "file": "objects/line_objects.py", 6421 "semi_transient": false, 6422 "settings": 6423 { 6424 "buffer_size": 15953, 6425 "regions": 6426 { 6427 }, 6428 "selection": 6429 [ 6430 [ 6431 2992, 6432 2992 6433 ] 6434 ], 6435 "settings": 6436 { 6437 "auto_complete_triggers": 6438 [ 6439 { 6440 "characters": ".", 6441 "selector": "source.python - string - comment - constant.numeric" 6442 } 6443 ], 6444 "bracket_highlighter.busy": false, 6445 "bracket_highlighter.locations": 6446 { 6447 "close": 6448 { 6449 "1": 6450 [ 6451 3019, 6452 3020 6453 ] 6454 }, 6455 "icon": 6456 { 6457 "1": 6458 [ 6459 "Packages/BracketHighlighter/icons/round_bracket.png", 6460 "region.yellowish" 6461 ] 6462 }, 6463 "open": 6464 { 6465 "1": 6466 [ 6467 2985, 6468 2986 6469 ] 6470 }, 6471 "unmatched": 6472 { 6473 } 6474 }, 6475 "bracket_highlighter.regions": 6476 [ 6477 "bh_angle", 6478 "bh_angle_center", 6479 "bh_angle_open", 6480 "bh_angle_close", 6481 "bh_angle_content", 6482 "bh_square", 6483 "bh_square_center", 6484 "bh_square_open", 6485 "bh_square_close", 6486 "bh_square_content", 6487 "bh_unmatched", 6488 "bh_unmatched_center", 6489 "bh_unmatched_open", 6490 "bh_unmatched_close", 6491 "bh_unmatched_content", 6492 "bh_single_quote", 6493 "bh_single_quote_center", 6494 "bh_single_quote_open", 6495 "bh_single_quote_close", 6496 "bh_single_quote_content", 6497 "bh_c_define", 6498 "bh_c_define_center", 6499 "bh_c_define_open", 6500 "bh_c_define_close", 6501 "bh_c_define_content", 6502 "bh_tag", 6503 "bh_tag_center", 6504 "bh_tag_open", 6505 "bh_tag_close", 6506 "bh_tag_content", 6507 "bh_double_quote", 6508 "bh_double_quote_center", 6509 "bh_double_quote_open", 6510 "bh_double_quote_close", 6511 "bh_double_quote_content", 6512 "bh_round", 6513 "bh_round_center", 6514 "bh_round_open", 6515 "bh_round_close", 6516 "bh_round_content", 6517 "bh_curly", 6518 "bh_curly_center", 6519 "bh_curly_open", 6520 "bh_curly_close", 6521 "bh_curly_content", 6522 "bh_regex", 6523 "bh_regex_center", 6524 "bh_regex_open", 6525 "bh_regex_close", 6526 "bh_regex_content", 6527 "bh_default", 6528 "bh_default_center", 6529 "bh_default_open", 6530 "bh_default_close", 6531 "bh_default_content" 6532 ], 6533 "copilot.completion._is_modified": false, 6534 "copilot.completion._is_saving": false, 6535 "copilot.completion.completion_index": 0, 6536 "copilot.completion.completion_style": "popup", 6537 "copilot.completion.completions": 6538 [ 6539 { 6540 "displayText": "ize = size", 6541 "docVersion": 79, 6542 "point": 2950, 6543 "position": 6544 { 6545 "character": 14, 6546 "line": 81 6547 }, 6548 "range": 6549 { 6550 "end": 6551 { 6552 "character": 14, 6553 "line": 81 6554 }, 6555 "start": 6556 { 6557 "character": 0, 6558 "line": 81 6559 } 6560 }, 6561 "region": 6562 [ 6563 2936, 6564 2950 6565 ], 6566 "text": " self.size = size", 6567 "uuid": "2c256ad2-0557-445e-9509-cf1a2ab3d6a9" 6568 } 6569 ], 6570 "copilot.completion.is_visible": false, 6571 "copilot.completion.is_visible_panel_completions": false, 6572 "copilot.completion.is_waiting_completion": false, 6573 "copilot.completion.is_waiting_panel_completions": false, 6574 "copilot.completion.original_layout": null, 6575 "lsp_active": true, 6576 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/objects/line_objects.py", 6577 "syntax": "Packages/Python/Python.sublime-syntax", 6578 "tab_size": 4, 6579 "translate_tabs_to_spaces": true 6580 }, 6581 "translation.x": 0.0, 6582 "translation.y": 70.0, 6583 "zoom_level": 1.0 6584 }, 6585 "stack_index": 6, 6586 "stack_multiselect": false, 6587 "type": "text" 6588 }, 6589 { 6590 "buffer": 8, 6591 "file": "tags.py", 6592 "semi_transient": false, 6593 "settings": 6594 { 6595 "buffer_size": 4670, 6596 "regions": 6597 { 6598 }, 6599 "selection": 6600 [ 6601 [ 6602 0, 6603 0 6604 ] 6605 ], 6606 "settings": 6607 { 6608 "auto_complete_triggers": 6609 [ 6610 { 6611 "characters": ".", 6612 "selector": "source.python - string - comment - constant.numeric" 6613 } 6614 ], 6615 "bracket_highlighter.busy": false, 6616 "bracket_highlighter.locations": 6617 { 6618 "close": 6619 { 6620 }, 6621 "icon": 6622 { 6623 }, 6624 "open": 6625 { 6626 }, 6627 "unmatched": 6628 { 6629 } 6630 }, 6631 "bracket_highlighter.regions": 6632 [ 6633 "bh_angle", 6634 "bh_angle_center", 6635 "bh_angle_open", 6636 "bh_angle_close", 6637 "bh_angle_content", 6638 "bh_single_quote", 6639 "bh_single_quote_center", 6640 "bh_single_quote_open", 6641 "bh_single_quote_close", 6642 "bh_single_quote_content", 6643 "bh_tag", 6644 "bh_tag_center", 6645 "bh_tag_open", 6646 "bh_tag_close", 6647 "bh_tag_content", 6648 "bh_default", 6649 "bh_default_center", 6650 "bh_default_open", 6651 "bh_default_close", 6652 "bh_default_content", 6653 "bh_unmatched", 6654 "bh_unmatched_center", 6655 "bh_unmatched_open", 6656 "bh_unmatched_close", 6657 "bh_unmatched_content", 6658 "bh_regex", 6659 "bh_regex_center", 6660 "bh_regex_open", 6661 "bh_regex_close", 6662 "bh_regex_content", 6663 "bh_double_quote", 6664 "bh_double_quote_center", 6665 "bh_double_quote_open", 6666 "bh_double_quote_close", 6667 "bh_double_quote_content", 6668 "bh_square", 6669 "bh_square_center", 6670 "bh_square_open", 6671 "bh_square_close", 6672 "bh_square_content", 6673 "bh_c_define", 6674 "bh_c_define_center", 6675 "bh_c_define_open", 6676 "bh_c_define_close", 6677 "bh_c_define_content", 6678 "bh_curly", 6679 "bh_curly_center", 6680 "bh_curly_open", 6681 "bh_curly_close", 6682 "bh_curly_content", 6683 "bh_round", 6684 "bh_round_center", 6685 "bh_round_open", 6686 "bh_round_close", 6687 "bh_round_content" 6688 ], 6689 "copilot.completion._is_modified": false, 6690 "copilot.completion._is_saving": false, 6691 "copilot.completion.completion_index": 0, 6692 "copilot.completion.completion_style": "popup", 6693 "copilot.completion.completions": 6694 [ 6695 { 6696 "displayText": "elf.obj[c4d.OUTLINEMAT_LINE_OUTLINE] = self.outline", 6697 "docVersion": 171, 6698 "point": 2228, 6699 "position": 6700 { 6701 "character": 9, 6702 "line": 81 6703 }, 6704 "range": 6705 { 6706 "end": 6707 { 6708 "character": 9, 6709 "line": 81 6710 }, 6711 "start": 6712 { 6713 "character": 0, 6714 "line": 81 6715 } 6716 }, 6717 "region": 6718 [ 6719 2219, 6720 2228 6721 ], 6722 "text": " self.obj[c4d.OUTLINEMAT_LINE_OUTLINE] = self.outline", 6723 "uuid": "002809fc-f683-4177-a1e3-568a87c98389" 6724 } 6725 ], 6726 "copilot.completion.is_visible": false, 6727 "copilot.completion.is_visible_panel_completions": false, 6728 "copilot.completion.is_waiting_completion": false, 6729 "copilot.completion.is_waiting_panel_completions": false, 6730 "copilot.completion.original_layout": null, 6731 "lsp_active": true, 6732 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/tags.py", 6733 "syntax": "Packages/Python/Python.sublime-syntax", 6734 "tab_size": 4, 6735 "translate_tabs_to_spaces": true 6736 }, 6737 "translation.x": 0.0, 6738 "translation.y": 208.0, 6739 "zoom_level": 1.0 6740 }, 6741 "stack_index": 9, 6742 "stack_multiselect": false, 6743 "type": "text" 6744 }, 6745 { 6746 "buffer": 9, 6747 "file": "objects/helper_objects.py", 6748 "semi_transient": false, 6749 "settings": 6750 { 6751 "buffer_size": 24682, 6752 "regions": 6753 { 6754 }, 6755 "selection": 6756 [ 6757 [ 6758 85, 6759 85 6760 ] 6761 ], 6762 "settings": 6763 { 6764 "auto_complete_triggers": 6765 [ 6766 { 6767 "characters": ".", 6768 "selector": "source.python - string - comment - constant.numeric" 6769 } 6770 ], 6771 "bracket_highlighter.busy": false, 6772 "bracket_highlighter.locations": 6773 { 6774 "close": 6775 { 6776 }, 6777 "icon": 6778 { 6779 }, 6780 "open": 6781 { 6782 }, 6783 "unmatched": 6784 { 6785 } 6786 }, 6787 "bracket_highlighter.regions": 6788 [ 6789 "bh_angle", 6790 "bh_angle_center", 6791 "bh_angle_open", 6792 "bh_angle_close", 6793 "bh_angle_content", 6794 "bh_single_quote", 6795 "bh_single_quote_center", 6796 "bh_single_quote_open", 6797 "bh_single_quote_close", 6798 "bh_single_quote_content", 6799 "bh_tag", 6800 "bh_tag_center", 6801 "bh_tag_open", 6802 "bh_tag_close", 6803 "bh_tag_content", 6804 "bh_default", 6805 "bh_default_center", 6806 "bh_default_open", 6807 "bh_default_close", 6808 "bh_default_content", 6809 "bh_unmatched", 6810 "bh_unmatched_center", 6811 "bh_unmatched_open", 6812 "bh_unmatched_close", 6813 "bh_unmatched_content", 6814 "bh_regex", 6815 "bh_regex_center", 6816 "bh_regex_open", 6817 "bh_regex_close", 6818 "bh_regex_content", 6819 "bh_double_quote", 6820 "bh_double_quote_center", 6821 "bh_double_quote_open", 6822 "bh_double_quote_close", 6823 "bh_double_quote_content", 6824 "bh_square", 6825 "bh_square_center", 6826 "bh_square_open", 6827 "bh_square_close", 6828 "bh_square_content", 6829 "bh_c_define", 6830 "bh_c_define_center", 6831 "bh_c_define_open", 6832 "bh_c_define_close", 6833 "bh_c_define_content", 6834 "bh_curly", 6835 "bh_curly_center", 6836 "bh_curly_open", 6837 "bh_curly_close", 6838 "bh_curly_content", 6839 "bh_round", 6840 "bh_round_center", 6841 "bh_round_open", 6842 "bh_round_close", 6843 "bh_round_content" 6844 ], 6845 "copilot.completion._is_modified": false, 6846 "copilot.completion._is_saving": false, 6847 "copilot.completion.completion_index": 0, 6848 "copilot.completion.completion_style": "popup", 6849 "copilot.completion.completions": 6850 [ 6851 { 6852 "displayText": ", LineObject", 6853 "docVersion": 40, 6854 "point": 73, 6855 "position": 6856 { 6857 "character": 73, 6858 "line": 0 6859 }, 6860 "range": 6861 { 6862 "end": 6863 { 6864 "character": 73, 6865 "line": 0 6866 }, 6867 "start": 6868 { 6869 "character": 0, 6870 "line": 0 6871 } 6872 }, 6873 "region": 6874 [ 6875 0, 6876 73 6877 ], 6878 "text": "from pydeation.objects.abstract_objects import ProtoObject, VisibleObject, LineObject", 6879 "uuid": "dbfbe7fc-885e-43ce-91bc-5784fd41990f" 6880 } 6881 ], 6882 "copilot.completion.is_visible": false, 6883 "copilot.completion.is_visible_panel_completions": false, 6884 "copilot.completion.is_waiting_completion": false, 6885 "copilot.completion.is_waiting_panel_completions": false, 6886 "copilot.completion.original_layout": null, 6887 "lsp_active": true, 6888 "lsp_uri": "file:///Users/davidrug/Library/Preferences/Maxon/Maxon%20Cinema%204D%20R26_8986B2D7/python39/libs/pydeation/objects/helper_objects.py", 6889 "syntax": "Packages/Python/Python.sublime-syntax", 6890 "tab_size": 4, 6891 "translate_tabs_to_spaces": true 6892 }, 6893 "translation.x": 0.0, 6894 "translation.y": 0.0, 6895 "zoom_level": 1.0 6896 }, 6897 "stack_index": 4, 6898 "stack_multiselect": false, 6899 "type": "text" 6900 } 6901 ] 6902 }, 6903 { 6904 "sheets": 6905 [ 6906 { 6907 "buffer": 10, 6908 "selected": true, 6909 "semi_transient": false, 6910 "settings": 6911 { 6912 "buffer_size": 345, 6913 "regions": 6914 { 6915 }, 6916 "selection": 6917 [ 6918 [ 6919 345, 6920 345 6921 ] 6922 ], 6923 "settings": 6924 { 6925 "__vi_external_disable": true, 6926 "auto_complete": false, 6927 "auto_complete_commit_on_tab": false, 6928 "auto_complete_triggers": 6929 [ 6930 { 6931 "characters": ".", 6932 "selector": "source.python - string - comment - constant.numeric" 6933 } 6934 ], 6935 "bracket_highlighter.busy": false, 6936 "bracket_highlighter.clone_locations": 6937 { 6938 }, 6939 "bracket_highlighter.ignore": true, 6940 "color_scheme": "Terminus.hidden-color-scheme", 6941 "copilot.completion._is_modified": false, 6942 "copilot.completion.is_visible": false, 6943 "copilot.completion.is_visible_panel_completions": false, 6944 "copilot.completion.is_waiting_completion": false, 6945 "copilot.completion.is_waiting_panel_completions": false, 6946 "copilot.completion.original_layout": null, 6947 "default_dir": "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/library/scripts/pydeation-testing", 6948 "draw_centered": false, 6949 "draw_indent_guides": false, 6950 "draw_unicode_white_space": false, 6951 "draw_white_space": "none", 6952 "gutter": false, 6953 "highlight_line": false, 6954 "is_widget": true, 6955 "lsp_uri": "buffer://sublime/160", 6956 "result_base_dir": "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation", 6957 "result_file_regex": null, 6958 "result_line_regex": null, 6959 "rulers": 6960 [ 6961 500 6962 ], 6963 "scroll_past_end": true, 6964 "syntax": "Packages/Text/Plain text.tmLanguage", 6965 "terminus.highlight_counter": 2, 6966 "terminus_view": true, 6967 "terminus_view.args": 6968 { 6969 "auto_close": true, 6970 "cancellable": false, 6971 "cmd": 6972 [ 6973 "/bin/zsh", 6974 "-i", 6975 "-l" 6976 ], 6977 "cwd": "/Users/davidrug/Library/Preferences/Maxon/Maxon Cinema 4D R26_8986B2D7/python39/libs/pydeation", 6978 "default_title": "Login Shell", 6979 "env": 6980 { 6981 "LANG": "en_US.UTF-8", 6982 "TERM": "linux", 6983 "TERMINUS_SUBLIME": "1", 6984 "TERM_PROGRAM": "Terminus-Sublime" 6985 }, 6986 "file_regex": null, 6987 "line_regex": null, 6988 "panel_name": "Terminus", 6989 "show_in_panel": null, 6990 "tag": null, 6991 "timeit": false, 6992 "title": null 6993 }, 6994 "terminus_view.cancellable": false, 6995 "terminus_view.key.ctrl+k": true, 6996 "terminus_view.key.ctrl+p": true, 6997 "terminus_view.natural_keyboard": true, 6998 "terminus_view.tag": null, 6999 "terminus_view.viewport_y": 30.0, 7000 "word_wrap": false 7001 }, 7002 "translation.x": 0.0, 7003 "translation.y": 0.0, 7004 "zoom_level": 1.0 7005 }, 7006 "stack_index": 0, 7007 "stack_multiselect": false, 7008 "type": "text" 7009 } 7010 ] 7011 } 7012 ], 7013 "incremental_find": 7014 { 7015 "height": 24.0 7016 }, 7017 "input": 7018 { 7019 "height": 36.0 7020 }, 7021 "layout": 7022 { 7023 "cells": 7024 [ 7025 [ 7026 0, 7027 0, 7028 1, 7029 1 7030 ], 7031 [ 7032 0, 7033 1, 7034 1, 7035 2 7036 ] 7037 ], 7038 "cols": 7039 [ 7040 0.0, 7041 1.0 7042 ], 7043 "rows": 7044 [ 7045 0.0, 7046 0.756513238082, 7047 1.0 7048 ] 7049 }, 7050 "menu_visible": true, 7051 "output.LSP Log Panel": 7052 { 7053 "height": 0.0 7054 }, 7055 "output.diagnostics": 7056 { 7057 "height": 0.0 7058 }, 7059 "output.exec": 7060 { 7061 "height": 170.0 7062 }, 7063 "output.find_results": 7064 { 7065 "height": 0.0 7066 }, 7067 "output.mdpopups": 7068 { 7069 "height": 0.0 7070 }, 7071 "output.mdpopups-dummy": 7072 { 7073 "height": 0.0 7074 }, 7075 "output.unsaved_changes": 7076 { 7077 "height": 109.0 7078 }, 7079 "pinned_build_system": "c4d", 7080 "project": "pydeation.sublime-project", 7081 "replace": 7082 { 7083 "height": 44.0 7084 }, 7085 "save_all_on_build": true, 7086 "select_file": 7087 { 7088 "height": 0.0, 7089 "last_filter": "", 7090 "selected_items": 7091 [ 7092 ], 7093 "width": 0.0 7094 }, 7095 "select_project": 7096 { 7097 "height": 500.0, 7098 "last_filter": "", 7099 "selected_items": 7100 [ 7101 [ 7102 "", 7103 "~/Documents/Python/Projects/pydeation/pydeation.sublime-project" 7104 ] 7105 ], 7106 "width": 380.0 7107 }, 7108 "select_symbol": 7109 { 7110 "height": 0.0, 7111 "last_filter": "", 7112 "selected_items": 7113 [ 7114 ], 7115 "width": 0.0 7116 }, 7117 "selected_group": 0, 7118 "settings": 7119 { 7120 }, 7121 "show_minimap": true, 7122 "show_open_files": true, 7123 "show_tabs": true, 7124 "side_bar_visible": true, 7125 "side_bar_width": 268.0, 7126 "status_bar_visible": true, 7127 "template_settings": 7128 { 7129 } 7130 }