From 48929a0aa92d4bcd6e7452171cd2f2870559022f Mon Sep 17 00:00:00 2001 From: Eric M Laputka Date: Tue, 16 Apr 2019 14:18:45 -0400 Subject: [PATCH] Add files via upload --- DreamBeanDemo/appmanifest.json | 41 ++ DreamBeanDemo/data.json | 1 + DreamBeanDemo/icons/icon-128.png | Bin 0 -> 22267 bytes DreamBeanDemo/icons/icon-16.png | Bin 0 -> 16505 bytes DreamBeanDemo/icons/icon-256.png | Bin 0 -> 28930 bytes DreamBeanDemo/icons/icon-32.png | Bin 0 -> 17541 bytes DreamBeanDemo/icons/icon-512.png | Bin 0 -> 30345 bytes DreamBeanDemo/icons/icon-64.png | Bin 0 -> 19120 bytes DreamBeanDemo/icons/loading-logo.png | Bin 0 -> 19120 bytes DreamBeanDemo/images/bigmario-sheet0.png | Bin 0 -> 19257 bytes DreamBeanDemo/images/bigmario-sheet1.png | Bin 0 -> 20935 bytes DreamBeanDemo/images/bigmario-sheet2.png | Bin 0 -> 4219 bytes DreamBeanDemo/images/bigmario-sheet3.png | Bin 0 -> 4227 bytes DreamBeanDemo/images/bigmario-sheet4.png | Bin 0 -> 4088 bytes DreamBeanDemo/images/dirt_hide-sheet0.png | Bin 0 -> 3093 bytes DreamBeanDemo/images/dirt_hide-sheet1.png | Bin 0 -> 1682 bytes DreamBeanDemo/images/dirt_solid-sheet0.png | Bin 0 -> 3093 bytes DreamBeanDemo/images/dirt_solid-sheet1.png | Bin 0 -> 1682 bytes DreamBeanDemo/images/shared-0-sheet0.png | Bin 0 -> 53470 bytes DreamBeanDemo/images/shared-0-sheet1.png | Bin 0 -> 25785 bytes DreamBeanDemo/images/shared-0-sheet2.png | Bin 0 -> 26511 bytes DreamBeanDemo/images/shared-0-sheet3.png | Bin 0 -> 3798 bytes DreamBeanDemo/images/shared-0-sheet4.png | Bin 0 -> 1569 bytes DreamBeanDemo/index.html | 32 + DreamBeanDemo/offline.json | 1 + DreamBeanDemo/scripts/c3runtime.js | 690 +++++++++++++++++++++ DreamBeanDemo/scripts/dispatchWorker.js | 1 + DreamBeanDemo/scripts/jobWorker.js | 1 + DreamBeanDemo/scripts/main.js | 11 + DreamBeanDemo/scripts/offlineClient.js | 1 + DreamBeanDemo/scripts/register-sw.js | 1 + DreamBeanDemo/scripts/supportCheck.js | 1 + DreamBeanDemo/scripts/workerMain.js | 1 + DreamBeanDemo/style.css | 39 ++ DreamBeanDemo/sw.js | 1 + 35 files changed, 822 insertions(+) create mode 100644 DreamBeanDemo/appmanifest.json create mode 100644 DreamBeanDemo/data.json create mode 100644 DreamBeanDemo/icons/icon-128.png create mode 100644 DreamBeanDemo/icons/icon-16.png create mode 100644 DreamBeanDemo/icons/icon-256.png create mode 100644 DreamBeanDemo/icons/icon-32.png create mode 100644 DreamBeanDemo/icons/icon-512.png create mode 100644 DreamBeanDemo/icons/icon-64.png create mode 100644 DreamBeanDemo/icons/loading-logo.png create mode 100644 DreamBeanDemo/images/bigmario-sheet0.png create mode 100644 DreamBeanDemo/images/bigmario-sheet1.png create mode 100644 DreamBeanDemo/images/bigmario-sheet2.png create mode 100644 DreamBeanDemo/images/bigmario-sheet3.png create mode 100644 DreamBeanDemo/images/bigmario-sheet4.png create mode 100644 DreamBeanDemo/images/dirt_hide-sheet0.png create mode 100644 DreamBeanDemo/images/dirt_hide-sheet1.png create mode 100644 DreamBeanDemo/images/dirt_solid-sheet0.png create mode 100644 DreamBeanDemo/images/dirt_solid-sheet1.png create mode 100644 DreamBeanDemo/images/shared-0-sheet0.png create mode 100644 DreamBeanDemo/images/shared-0-sheet1.png create mode 100644 DreamBeanDemo/images/shared-0-sheet2.png create mode 100644 DreamBeanDemo/images/shared-0-sheet3.png create mode 100644 DreamBeanDemo/images/shared-0-sheet4.png create mode 100644 DreamBeanDemo/index.html create mode 100644 DreamBeanDemo/offline.json create mode 100644 DreamBeanDemo/scripts/c3runtime.js create mode 100644 DreamBeanDemo/scripts/dispatchWorker.js create mode 100644 DreamBeanDemo/scripts/jobWorker.js create mode 100644 DreamBeanDemo/scripts/main.js create mode 100644 DreamBeanDemo/scripts/offlineClient.js create mode 100644 DreamBeanDemo/scripts/register-sw.js create mode 100644 DreamBeanDemo/scripts/supportCheck.js create mode 100644 DreamBeanDemo/scripts/workerMain.js create mode 100644 DreamBeanDemo/style.css create mode 100644 DreamBeanDemo/sw.js diff --git a/DreamBeanDemo/appmanifest.json b/DreamBeanDemo/appmanifest.json new file mode 100644 index 0000000..62211fb --- /dev/null +++ b/DreamBeanDemo/appmanifest.json @@ -0,0 +1,41 @@ +{ + "name": "Mario_1_1_PartTwo", + "short_name": "Mario_1_1_PartTwo", + "description": "", + "start_url": "index.html", + "display": "fullscreen", + "orientation": "landscape", + "background_color": "#ffffff", + "icons": [ + { + "src": "icons/icon-16.png", + "sizes": "16x16", + "type": "image/png" + }, + { + "src": "icons/icon-32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "icons/icon-64.png", + "sizes": "64x64", + "type": "image/png" + }, + { + "src": "icons/icon-128.png", + "sizes": "128x128", + "type": "image/png" + }, + { + "src": "icons/icon-256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "icons/icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/DreamBeanDemo/data.json b/DreamBeanDemo/data.json new file mode 100644 index 0000000..55fee54 --- /dev/null +++ b/DreamBeanDemo/data.json @@ -0,0 +1 @@ +{"project":["Mario_1_1_PartTwo",null,[[0,false,true,true,true,true,true,true,true,false],[5,true,false,false,false,false,false,false,false,false],[6,false,true,true,true,true,true,true,true,false]],[["colission",0,false,[],1,0,null,[["Animation 1",0,false,1,0,false,104321403549865,[["images/shared-0-sheet4.png",1569,67,65,32,32,1,-0.8823529411764706,1.8970588235294117,[],[0.9117647058823529,-0.9264705882352939,0.9117647058823529,-1.8676470588235294,1.8529411764705883,-1.8676470588235294,1.8529411764705883,-0.9264705882352939],0],["images/shared-0-sheet4.png",1569,67,1,32,32,1,1.8970588235294117,1.8823529411764706,[],[-0.9264705882352939,-0.9117647058823528,-1.8676470588235294,-0.9117647058823528,-1.8676470588235294,-1.8529411764705883,-0.9264705882352939,-1.8529411764705883],0]]]],[["Solid",1,633083308257678]],false,false,784214790312695,[],null],["PlayerBox",0,false,[[859799322583503,2],[142883168819130,2]],2,0,null,[["Animation 1",5,false,1,0,false,861034216514490,[["images/shared-0-sheet3.png",3798,67,1,32,64,1,0.5,1,[],[],0]]]],[["Platform",2,378961437779163],["ScrollTo",3,387656692442802]],false,false,976102481953151,[],null],["BigMario",0,false,[],1,0,null,[["idle",5,true,1,0,false,898520931422952,[["images/bigmario-sheet3.png",4227,0,0,66,92,1,0.5,1,[],[],0],["images/bigmario-sheet4.png",4088,0,0,66,92,1,0.5,1,[],[],0]]],["walk",10,false,1,0,false,229635463345263,[["images/bigmario-sheet1.png",20935,75,129,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet1.png",20935,1,129,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet1.png",20935,149,1,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet1.png",20935,75,1,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet1.png",20935,1,1,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet0.png",19257,149,129,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet0.png",19257,75,129,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet0.png",19257,1,129,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet0.png",19257,149,1,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet0.png",19257,75,1,72,97,1,0.5,1,[],[],0],["images/bigmario-sheet0.png",19257,1,1,72,97,1,0.5,1,[],[],0]]],["jump",5,false,1,0,false,320203316741103,[["images/bigmario-sheet2.png",4219,0,0,67,94,1,0.5074626865671642,1,[],[],0]]],["wall",5,false,1,0,false,709740125811591,[["images/bigmario-sheet1.png",20935,149,129,70,97,1,0.5,1,[],[],0]]]],[["Flash",4,797770236831324]],false,false,445182127627308,[],null],["Keyboard",5,false,[],0,0,null,null,[],false,false,272426530749370,[],null,[]],["slime",0,false,[[231787554714055,2]],2,0,null,[["idle",5,false,1,0,false,823211409996530,[["images/shared-0-sheet3.png",3798,65,67,50,28,1,0.5,1,[],[],0],["images/shared-0-sheet3.png",3798,1,67,50,28,1,0.5,1,[],[],0]]],["walk",5,false,1,0,false,928122506120978,[["images/shared-0-sheet3.png",3798,1,97,51,26,1,0.5,1,[],[],0]]],["death",5,false,1,0,false,671771778254023,[["images/shared-0-sheet3.png",3798,65,113,59,12,1,0.5,1,[],[],0]]]],[["Platform",2,537793510154977],["Flash",4,728604995282593]],false,false,846270407662579,[],null],["goRight",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,231851783452708,[["images/shared-0-sheet4.png",1569,1,1,64,64,1,0,0,[],[0.015625,0,1,0,1,1,0.015625,1],0]]]],[],false,false,568766883950811,[],null],["goLeft",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,595706740096919,[["images/shared-0-sheet3.png",3798,1,1,64,64,1,0,0,[],[],0]]]],[],false,false,596625580505189,[],null],["Health",6,false,[],0,0,null,null,[],false,false,797726157054067,[],null],["dirt_solid",0,false,[],1,0,null,[["Animation 1",0,false,1,0,false,318219084947321,[["images/dirt_solid-sheet1.png",1682,1,1,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet1.png",1682,1,35,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet1.png",1682,1,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,69,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,35,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,1,69,32,32,1,0,1,[],[1,-1,1,0,1,0,0,-1,0,-1],0],["images/dirt_solid-sheet0.png",3093,69,35,32,32,1,1,0,[],[-1,1,-1,0,-1,0,0,1,0,1],0],["images/dirt_solid-sheet0.png",3093,35,35,32,32,1,1,1,[],[-1,-1,0,-1,0,-1,-1,0,-1,0],0],["images/dirt_solid-sheet0.png",3093,1,35,32,32,1,0,0,[],[1,1,0,1,0,1,1,0,1,0],0],["images/dirt_solid-sheet0.png",3093,69,1,32,32,1,1,1,[],[0,0,-1,0,-1,-1,0,-1],0],["images/dirt_solid-sheet0.png",3093,35,1,32,32,1,0,1,[],[0,0,0,-1,1,-1,1,0],0],["images/dirt_solid-sheet0.png",3093,1,1,32,32,1,1,0,[],[0,0,0,1,-1,1,-1,0],0]]]],[["Solid",1,395394270773179]],false,false,889467623423282,[],null],["hide_border",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,887337392694274,[["images/shared-0-sheet4.png",1569,1,67,32,32,1,0,0,[],[],0]]]],[],false,false,745442128657038,[],null],["dirt_hide",0,false,[],0,0,null,[["Animation 1",0,false,1,0,false,654608358515815,[["images/dirt_hide-sheet1.png",1682,1,1,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet1.png",1682,1,35,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet1.png",1682,1,69,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,69,69,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,35,69,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,1,69,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,69,35,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,35,35,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,1,35,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,69,1,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,35,1,32,32,1,0,0,[],[],0],["images/dirt_hide-sheet0.png",3093,1,1,32,32,1,0,0,[],[],0]]]],[],false,false,783858490613276,[],null],["wall",0,false,[],1,0,null,[["Animation 1",5,false,1,0,false,515446095473779,[["images/shared-0-sheet0.png",53470,515,257,250,250,1,0,0,[],[],0]]]],[["Solid",1,137774677204747]],false,false,764046765822387,[],null],["customerTalk",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,689833582883704,[["images/shared-0-sheet0.png",53470,769,257,250,250,1,0,0,[],[],0]]]],[],false,false,651258953412671,[],null],["customer",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,318346644094732,[["images/shared-0-sheet0.png",53470,1,1,512,512,1,0,0,[],[],0]]]],[],false,false,938724820172740,[],null],["coffeeBox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,155089747339165,[["images/shared-0-sheet0.png",53470,515,513,250,250,1,0,0,[],[],0]]]],[],false,false,415529547620951,[],null],["Door",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,829255006615582,[["images/shared-0-sheet0.png",53470,769,513,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,730158052670379,[],null],["Player",0,false,[[832641682193139,0],[179360341862458,0],[532597842691769,0],[855456401885080,0]],1,0,null,[["Player",5,false,1,0,false,792268358970256,[["images/shared-0-sheet1.png",25785,0,0,512,512,1,0,0,[],[],0]]],["coffeePlayer",5,false,1,0,false,117041858721875,[["images/shared-0-sheet2.png",26511,0,0,512,512,1,0,0,[],[],0]]]],[["Platform",2,301522807998428]],false,false,242765779854375,[],null],["coffee",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,790154490795292,[["images/shared-0-sheet0.png",53470,513,769,250,250,1,0,0,[],[],0]]]],[],false,false,322234948744815,[],null],["counter",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,480508599604824,[["images/shared-0-sheet0.png",53470,769,769,250,250,1,0,0,[],[],0]]]],[],false,false,938936134236847,[],null],["Dan",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,838342867454239,[["images/shared-0-sheet0.png",53470,1,769,250,250,1,0,0,[],[],0]]]],[],false,false,347979258043186,[],null],["Dialogue",6,false,[],0,0,null,null,[],false,false,652959372762960,[],null],["SpeechBubble",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,240504385153527,[["images/shared-0-sheet0.png",53470,257,769,250,250,1,0,0,[],[],0]]]],[],false,false,656344087070065,[],null],["Instructions",6,false,[],0,0,null,null,[],false,false,744865934690306,[],null]],[],[["Layout 1",2048,480,false,"Event sheet 1",441370156476261,[["Collision",0,497362029787747,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[96,416,0,32,64,0,0,[1,1,1,1],0.5,1,0,0,[]],1,6,["idle","right"],[[270,1300,1300,600,1300,1000,false,0,true,true],[true]],[false,"Animation 1",0,true]],[[96,416,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,14,[],[[]],[true,"idle",0,true]],[[0,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,16,[],[[true,""]],[true,"Animation 1",3,true]],[[32,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,17,[],[[true,""]],[true,"Animation 1",0,true]],[[64,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,18,[],[[true,""]],[true,"Animation 1",0,true]],[[96,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,116,[],[[true,""]],[true,"Animation 1",0,true]],[[0,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,117,[],[[true,""]],[true,"Animation 1",0,true]],[[32,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,118,[],[[true,""]],[true,"Animation 1",3,true]],[[64,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,119,[],[[true,""]],[true,"Animation 1",3,true]],[[96,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,120,[],[[true,""]],[true,"Animation 1",3,true]],[[128,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,121,[],[[true,""]],[true,"Animation 1",0,true]],[[192,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,122,[],[[true,""]],[true,"Animation 1",0,true]],[[224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,123,[],[[true,""]],[true,"Animation 1",0,true]],[[256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,124,[],[[true,""]],[true,"Animation 1",0,true]],[[160,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,125,[],[[true,""]],[true,"Animation 1",0,true]],[[288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,126,[],[[true,""]],[true,"Animation 1",0,true]],[[352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,127,[],[[true,""]],[true,"Animation 1",0,true]],[[384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,128,[],[[true,""]],[true,"Animation 1",0,true]],[[320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,129,[],[[true,""]],[true,"Animation 1",0,true]],[[416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,131,[],[[true,""]],[true,"Animation 1",4,true]],[[128,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,135,[],[[true,""]],[true,"Animation 1",3,true]],[[160,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,136,[],[[true,""]],[true,"Animation 1",3,true]],[[192,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,137,[],[[true,""]],[true,"Animation 1",3,true]],[[224,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,138,[],[[true,""]],[true,"Animation 1",3,true]],[[288,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,139,[],[[true,""]],[true,"Animation 1",3,true]],[[352,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,140,[],[[true,""]],[true,"Animation 1",3,true]],[[320,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,141,[],[[true,""]],[true,"Animation 1",3,true]],[[256,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,142,[],[[true,""]],[true,"Animation 1",3,true]],[[448,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,143,[],[[true,""]],[true,"Animation 1",3,true]],[[416,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,145,[],[[true,""]],[true,"Animation 1",3,true]],[[384,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,146,[],[[true,""]],[true,"Animation 1",3,true]],[[544,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,158,[],[[true,""]],[true,"Animation 1",0,true]],[[576,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,159,[],[[true,""]],[true,"Animation 1",0,true]],[[608,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,160,[],[[true,""]],[true,"Animation 1",0,true]],[[512,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,161,[],[[true,""]],[true,"Animation 1",0,true]],[[640,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,162,[],[[true,""]],[true,"Animation 1",0,true]],[[704,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,163,[],[[true,""]],[true,"Animation 1",0,true]],[[672,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,164,[],[[true,""]],[true,"Animation 1",0,true]],[[768,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,165,[],[[true,""]],[true,"Animation 1",0,true]],[[800,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,166,[],[[true,""]],[true,"Animation 1",0,true]],[[832,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,167,[],[[true,""]],[true,"Animation 1",0,true]],[[736,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,168,[],[[true,""]],[true,"Animation 1",0,true]],[[864,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,169,[],[[true,""]],[true,"Animation 1",0,true]],[[928,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,170,[],[[true,""]],[true,"Animation 1",0,true]],[[896,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,171,[],[[true,""]],[true,"Animation 1",0,true]],[[608,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,192,[],[[true,""]],[true,"Animation 1",3,true]],[[544,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,193,[],[[true,""]],[true,"Animation 1",3,true]],[[576,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,194,[],[[true,""]],[true,"Animation 1",3,true]],[[512,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,195,[],[[true,""]],[true,"Animation 1",3,true]],[[480,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,196,[],[[true,""]],[true,"Animation 1",3,true]],[[800,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,197,[],[[true,""]],[true,"Animation 1",3,true]],[[736,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,198,[],[[true,""]],[true,"Animation 1",3,true]],[[768,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,199,[],[[true,""]],[true,"Animation 1",3,true]],[[704,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,200,[],[[true,""]],[true,"Animation 1",3,true]],[[672,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,201,[],[[true,""]],[true,"Animation 1",3,true]],[[928,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,211,[],[[true,""]],[true,"Animation 1",3,true]],[[864,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,212,[],[[true,""]],[true,"Animation 1",3,true]],[[896,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,213,[],[[true,""]],[true,"Animation 1",3,true]],[[832,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,214,[],[[true,""]],[true,"Animation 1",3,true]],[[640,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,219,[],[[true,""]],[true,"Animation 1",3,true]],[[896,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,2,[],[[true,""]],[true,"Animation 1",9,true]],[[928,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,3,[],[[true,""]],[true,"Animation 1",9,true]],[[672,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,4,[],[[true,""]],[true,"Animation 1",9,true]],[[608,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,5,[],[[true,""]],[true,"Animation 1",9,true]],[[640,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,7,[],[[true,""]],[true,"Animation 1",9,true]],[[768,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,8,[],[[true,""]],[true,"Animation 1",9,true]],[[704,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,9,[],[[true,""]],[true,"Animation 1",9,true]],[[736,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,10,[],[[true,""]],[true,"Animation 1",9,true]],[[864,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,11,[],[[true,""]],[true,"Animation 1",9,true]],[[800,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,12,[],[[true,""]],[true,"Animation 1",9,true]],[[832,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,13,[],[[true,""]],[true,"Animation 1",9,true]],[[576,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,19,[],[[true,""]],[true,"Animation 1",9,true]],[[512,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,20,[],[[true,""]],[true,"Animation 1",9,true]],[[544,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,21,[],[[true,""]],[true,"Animation 1",9,true]],[[480,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,22,[],[[true,""]],[true,"Animation 1",9,true]],[[416,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,23,[],[[true,""]],[true,"Animation 1",9,true]],[[448,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,24,[],[[true,""]],[true,"Animation 1",9,true]],[[384,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,25,[],[[true,""]],[true,"Animation 1",9,true]],[[320,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,26,[],[[true,""]],[true,"Animation 1",9,true]],[[352,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,27,[],[[true,""]],[true,"Animation 1",9,true]],[[288,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,28,[],[[true,""]],[true,"Animation 1",9,true]],[[224,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,29,[],[[true,""]],[true,"Animation 1",9,true]],[[256,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,30,[],[[true,""]],[true,"Animation 1",9,true]],[[192,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,31,[],[[true,""]],[true,"Animation 1",9,true]],[[128,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,32,[],[[true,""]],[true,"Animation 1",9,true]],[[160,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,33,[],[[true,""]],[true,"Animation 1",9,true]],[[96,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,34,[],[[true,""]],[true,"Animation 1",9,true]],[[32,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,35,[],[[true,""]],[true,"Animation 1",9,true]],[[64,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,36,[],[[true,""]],[true,"Animation 1",9,true]],[[96,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,37,[],[[true,""]],[true,"Animation 1",3,true]],[[32,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,39,[],[[true,""]],[true,"Animation 1",3,true]],[[64,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,40,[],[[true,""]],[true,"Animation 1",3,true]],[[0,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,41,[],[[true,""]],[true,"Animation 1",3,true]],[[96,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,42,[],[[true,""]],[true,"Animation 1",3,true]],[[32,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,43,[],[[true,""]],[true,"Animation 1",3,true]],[[64,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,44,[],[[true,""]],[true,"Animation 1",3,true]],[[0,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,45,[],[[true,""]],[true,"Animation 1",3,true]],[[96,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,46,[],[[true,""]],[true,"Animation 1",3,true]],[[32,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,47,[],[[true,""]],[true,"Animation 1",3,true]],[[64,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,48,[],[[true,""]],[true,"Animation 1",3,true]],[[0,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,49,[],[[true,""]],[true,"Animation 1",3,true]],[[96,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,50,[],[[true,""]],[true,"Animation 1",3,true]],[[32,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,51,[],[[true,""]],[true,"Animation 1",3,true]],[[64,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,52,[],[[true,""]],[true,"Animation 1",3,true]],[[0,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,53,[],[[true,""]],[true,"Animation 1",3,true]],[[224,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,54,[],[[true,""]],[true,"Animation 1",3,true]],[[160,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,55,[],[[true,""]],[true,"Animation 1",3,true]],[[192,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,56,[],[[true,""]],[true,"Animation 1",3,true]],[[128,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,57,[],[[true,""]],[true,"Animation 1",3,true]],[[224,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,58,[],[[true,""]],[true,"Animation 1",3,true]],[[160,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,59,[],[[true,""]],[true,"Animation 1",3,true]],[[192,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,60,[],[[true,""]],[true,"Animation 1",3,true]],[[128,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,61,[],[[true,""]],[true,"Animation 1",3,true]],[[224,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,62,[],[[true,""]],[true,"Animation 1",3,true]],[[160,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,63,[],[[true,""]],[true,"Animation 1",3,true]],[[192,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,64,[],[[true,""]],[true,"Animation 1",3,true]],[[128,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,65,[],[[true,""]],[true,"Animation 1",3,true]],[[224,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,66,[],[[true,""]],[true,"Animation 1",3,true]],[[160,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,67,[],[[true,""]],[true,"Animation 1",3,true]],[[192,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,68,[],[[true,""]],[true,"Animation 1",3,true]],[[128,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,69,[],[[true,""]],[true,"Animation 1",3,true]],[[352,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,70,[],[[true,""]],[true,"Animation 1",3,true]],[[288,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,71,[],[[true,""]],[true,"Animation 1",3,true]],[[320,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,72,[],[[true,""]],[true,"Animation 1",3,true]],[[256,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,73,[],[[true,""]],[true,"Animation 1",3,true]],[[352,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,74,[],[[true,""]],[true,"Animation 1",3,true]],[[288,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,75,[],[[true,""]],[true,"Animation 1",3,true]],[[320,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,76,[],[[true,""]],[true,"Animation 1",3,true]],[[256,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,77,[],[[true,""]],[true,"Animation 1",3,true]],[[352,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,78,[],[[true,""]],[true,"Animation 1",3,true]],[[288,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,79,[],[[true,""]],[true,"Animation 1",3,true]],[[320,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,80,[],[[true,""]],[true,"Animation 1",3,true]],[[256,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,81,[],[[true,""]],[true,"Animation 1",3,true]],[[352,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,82,[],[[true,""]],[true,"Animation 1",3,true]],[[288,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,83,[],[[true,""]],[true,"Animation 1",3,true]],[[320,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,84,[],[[true,""]],[true,"Animation 1",3,true]],[[256,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,85,[],[[true,""]],[true,"Animation 1",3,true]],[[480,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,86,[],[[true,""]],[true,"Animation 1",3,true]],[[416,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,87,[],[[true,""]],[true,"Animation 1",3,true]],[[448,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,88,[],[[true,""]],[true,"Animation 1",3,true]],[[384,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,89,[],[[true,""]],[true,"Animation 1",3,true]],[[480,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,90,[],[[true,""]],[true,"Animation 1",3,true]],[[416,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,91,[],[[true,""]],[true,"Animation 1",3,true]],[[448,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,92,[],[[true,""]],[true,"Animation 1",3,true]],[[384,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,93,[],[[true,""]],[true,"Animation 1",3,true]],[[480,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,94,[],[[true,""]],[true,"Animation 1",3,true]],[[416,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,95,[],[[true,""]],[true,"Animation 1",3,true]],[[448,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,96,[],[[true,""]],[true,"Animation 1",3,true]],[[384,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,97,[],[[true,""]],[true,"Animation 1",3,true]],[[480,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,98,[],[[true,""]],[true,"Animation 1",3,true]],[[416,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,99,[],[[true,""]],[true,"Animation 1",3,true]],[[448,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,100,[],[[true,""]],[true,"Animation 1",3,true]],[[384,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,101,[],[[true,""]],[true,"Animation 1",3,true]],[[608,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,102,[],[[true,""]],[true,"Animation 1",3,true]],[[544,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,103,[],[[true,""]],[true,"Animation 1",3,true]],[[576,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,104,[],[[true,""]],[true,"Animation 1",3,true]],[[512,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,105,[],[[true,""]],[true,"Animation 1",3,true]],[[608,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,106,[],[[true,""]],[true,"Animation 1",3,true]],[[544,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,107,[],[[true,""]],[true,"Animation 1",3,true]],[[576,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,108,[],[[true,""]],[true,"Animation 1",3,true]],[[512,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,109,[],[[true,""]],[true,"Animation 1",3,true]],[[608,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,110,[],[[true,""]],[true,"Animation 1",3,true]],[[544,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,111,[],[[true,""]],[true,"Animation 1",3,true]],[[576,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,112,[],[[true,""]],[true,"Animation 1",3,true]],[[512,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,113,[],[[true,""]],[true,"Animation 1",3,true]],[[608,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,114,[],[[true,""]],[true,"Animation 1",3,true]],[[544,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,115,[],[[true,""]],[true,"Animation 1",3,true]],[[576,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,223,[],[[true,""]],[true,"Animation 1",3,true]],[[512,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,224,[],[[true,""]],[true,"Animation 1",3,true]],[[736,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,225,[],[[true,""]],[true,"Animation 1",3,true]],[[672,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,226,[],[[true,""]],[true,"Animation 1",3,true]],[[704,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,227,[],[[true,""]],[true,"Animation 1",3,true]],[[640,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,228,[],[[true,""]],[true,"Animation 1",3,true]],[[736,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,229,[],[[true,""]],[true,"Animation 1",3,true]],[[672,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,230,[],[[true,""]],[true,"Animation 1",3,true]],[[704,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,231,[],[[true,""]],[true,"Animation 1",3,true]],[[640,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,232,[],[[true,""]],[true,"Animation 1",3,true]],[[736,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,233,[],[[true,""]],[true,"Animation 1",3,true]],[[672,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,234,[],[[true,""]],[true,"Animation 1",3,true]],[[704,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,235,[],[[true,""]],[true,"Animation 1",3,true]],[[640,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,236,[],[[true,""]],[true,"Animation 1",3,true]],[[736,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,237,[],[[true,""]],[true,"Animation 1",3,true]],[[672,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,238,[],[[true,""]],[true,"Animation 1",3,true]],[[704,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,239,[],[[true,""]],[true,"Animation 1",3,true]],[[640,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,240,[],[[true,""]],[true,"Animation 1",3,true]],[[864,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,241,[],[[true,""]],[true,"Animation 1",3,true]],[[800,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,242,[],[[true,""]],[true,"Animation 1",3,true]],[[832,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,243,[],[[true,""]],[true,"Animation 1",3,true]],[[768,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,244,[],[[true,""]],[true,"Animation 1",3,true]],[[864,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,245,[],[[true,""]],[true,"Animation 1",3,true]],[[800,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,246,[],[[true,""]],[true,"Animation 1",3,true]],[[832,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,247,[],[[true,""]],[true,"Animation 1",3,true]],[[768,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,248,[],[[true,""]],[true,"Animation 1",3,true]],[[864,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,249,[],[[true,""]],[true,"Animation 1",3,true]],[[800,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,250,[],[[true,""]],[true,"Animation 1",3,true]],[[832,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,251,[],[[true,""]],[true,"Animation 1",3,true]],[[768,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,252,[],[[true,""]],[true,"Animation 1",3,true]],[[864,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,253,[],[[true,""]],[true,"Animation 1",3,true]],[[800,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,254,[],[[true,""]],[true,"Animation 1",3,true]],[[832,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,255,[],[[true,""]],[true,"Animation 1",3,true]],[[768,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,256,[],[[true,""]],[true,"Animation 1",3,true]],[[896,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,259,[],[[true,""]],[true,"Animation 1",3,true]],[[928,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,260,[],[[true,""]],[true,"Animation 1",3,true]],[[896,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,263,[],[[true,""]],[true,"Animation 1",3,true]],[[928,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,264,[],[[true,""]],[true,"Animation 1",3,true]],[[896,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,267,[],[[true,""]],[true,"Animation 1",3,true]],[[928,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,268,[],[[true,""]],[true,"Animation 1",3,true]],[[896,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,271,[],[[true,""]],[true,"Animation 1",3,true]],[[928,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,272,[],[[true,""]],[true,"Animation 1",3,true]],[[992,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,281,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,282,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,283,[],[[true,""]],[true,"Animation 1",3,true]],[[960,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,284,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,286,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,270,[],[[true,""]],[true,"Animation 1",0,true]],[[1120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,273,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,275,[],[[true,""]],[true,"Animation 1",0,true]],[[1184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,277,[],[[true,""]],[true,"Animation 1",0,true]],[[1248,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,278,[],[[true,""]],[true,"Animation 1",0,true]],[[1216,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,279,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,287,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,288,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,289,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,290,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,291,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,292,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,293,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,294,[],[[true,""]],[true,"Animation 1",9,true]],[[992,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,298,[],[[true,""]],[true,"Animation 1",3,true]],[[960,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,299,[],[[true,""]],[true,"Animation 1",3,true]],[[992,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,300,[],[[true,""]],[true,"Animation 1",3,true]],[[960,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,301,[],[[true,""]],[true,"Animation 1",3,true]],[[992,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,302,[],[[true,""]],[true,"Animation 1",3,true]],[[960,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,303,[],[[true,""]],[true,"Animation 1",3,true]],[[992,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,304,[],[[true,""]],[true,"Animation 1",3,true]],[[960,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,305,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,306,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,307,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,308,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,309,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,310,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,311,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,312,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,313,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,314,[],[[true,""]],[true,"Animation 1",9,true]],[[1152,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,315,[],[[true,""]],[true,"Animation 1",9,true]],[[1184,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,316,[],[[true,""]],[true,"Animation 1",9,true]],[[1120,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,317,[],[[true,""]],[true,"Animation 1",9,true]],[[1120,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,318,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,319,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,320,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,321,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,322,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,323,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,324,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,325,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,326,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,327,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,328,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,329,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,330,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,331,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,332,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,333,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,334,[],[[true,""]],[true,"Animation 1",9,true]],[[1280,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,335,[],[[true,""]],[true,"Animation 1",9,true]],[[1312,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,336,[],[[true,""]],[true,"Animation 1",9,true]],[[1248,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,337,[],[[true,""]],[true,"Animation 1",9,true]],[[1248,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,338,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,339,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,340,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,341,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,342,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,343,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,344,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,345,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,346,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,347,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,348,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,349,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,350,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,351,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,352,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,353,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,354,[],[[true,""]],[true,"Animation 1",9,true]],[[1408,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,355,[],[[true,""]],[true,"Animation 1",9,true]],[[1440,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,356,[],[[true,""]],[true,"Animation 1",9,true]],[[1376,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,357,[],[[true,""]],[true,"Animation 1",9,true]],[[1376,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,358,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,359,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,360,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,361,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,362,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,363,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,364,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,365,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,366,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,367,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,368,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,369,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,370,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,371,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,372,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,373,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,374,[],[[true,""]],[true,"Animation 1",9,true]],[[1536,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,375,[],[[true,""]],[true,"Animation 1",9,true]],[[1568,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,376,[],[[true,""]],[true,"Animation 1",9,true]],[[1504,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,377,[],[[true,""]],[true,"Animation 1",9,true]],[[1504,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,378,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,379,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,380,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,381,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,382,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,383,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,384,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,385,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,386,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,387,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,388,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,389,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,390,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,391,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,392,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,393,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,394,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,395,[],[[true,""]],[true,"Animation 1",0,true]],[[1344,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,396,[],[[true,""]],[true,"Animation 1",0,true]],[[1376,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,397,[],[[true,""]],[true,"Animation 1",0,true]],[[1408,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,398,[],[[true,""]],[true,"Animation 1",0,true]],[[1472,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,399,[],[[true,""]],[true,"Animation 1",0,true]],[[1440,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,400,[],[[true,""]],[true,"Animation 1",0,true]],[[1312,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,401,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,402,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,403,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,404,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,405,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,406,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,407,[],[[true,""]],[true,"Animation 1",0,true]],[[1504,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,408,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,409,[],[[true,""]],[true,"Animation 1",0,true]],[[1568,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,410,[],[[true,""]],[true,"Animation 1",0,true]],[[1600,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,411,[],[[true,""]],[true,"Animation 1",0,true]],[[1632,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,412,[],[[true,""]],[true,"Animation 1",0,true]],[[1696,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,413,[],[[true,""]],[true,"Animation 1",0,true]],[[1664,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,414,[],[[true,""]],[true,"Animation 1",0,true]],[[1536,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,415,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,416,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,417,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,418,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,419,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,420,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,421,[],[[true,""]],[true,"Animation 1",0,true]],[[1728,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,422,[],[[true,""]],[true,"Animation 1",9,true]],[[1664,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,423,[],[[true,""]],[true,"Animation 1",9,true]],[[1696,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,424,[],[[true,""]],[true,"Animation 1",9,true]],[[1632,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,425,[],[[true,""]],[true,"Animation 1",9,true]],[[1632,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,426,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,427,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,428,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,429,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,430,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,431,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,432,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,433,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,434,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,435,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,436,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,437,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,438,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,439,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,440,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,441,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,442,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,443,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,444,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,445,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,446,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,447,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,448,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,449,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,450,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,451,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,452,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,453,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,454,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,455,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,456,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,457,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,458,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,459,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,460,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,461,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,462,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,463,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,464,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,465,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,466,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,467,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,468,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,469,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,470,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,471,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,472,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,473,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,474,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,475,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,476,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,477,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,478,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,479,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,480,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,481,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,482,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,483,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,484,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,485,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,486,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,487,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,488,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,489,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,490,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,491,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,492,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,493,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,494,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,495,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,496,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,497,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,498,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,499,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,500,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,501,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,502,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,503,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,504,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,505,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,506,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,507,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,508,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,509,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,510,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,511,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,512,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,513,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,514,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,515,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,516,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,517,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,518,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,519,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,520,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,521,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,522,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,523,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,524,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,525,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,288,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,526,[],[[true,""]],[true,"Animation 1",5,true]],[[992,256,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,527,[],[[true,""]],[true,"Animation 1",5,true]],[[960,224,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,528,[],[[true,""]],[true,"Animation 1",5,true]],[[928,192,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,529,[],[[true,""]],[true,"Animation 1",5,true]],[[1024,256,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,1,[],[[true,""]],[true,"Animation 1",10,true]],[[992,224,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,295,[],[[true,""]],[true,"Animation 1",10,true]],[[960,192,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,296,[],[[true,""]],[true,"Animation 1",10,true]],[[928,160,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,297,[],[[true,""]],[true,"Animation 1",10,true]],[[992,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,530,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,531,[],[[true,""]],[true,"Animation 1",3,true]],[[960,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,532,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,533,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,534,[],[[true,""]],[true,"Animation 1",3,true]],[[992,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,535,[],[[true,""]],[true,"Animation 1",3,true]],[[416,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],9,38,[],[],[true,"Animation 1",0,true]],[[448,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],9,130,[],[],[true,"Animation 1",0,true]],[[992,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],9,132,[],[],[true,"Animation 1",0,true]],[[1024,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],9,133,[],[],[true,"Animation 1",0,true]],[[992,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,134,[],[],[true,"Animation 1",6,true]],[[1024,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,147,[],[],[true,"Animation 1",6,true]],[[448,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,150,[],[],[true,"Animation 1",8,true]],[[416,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,177,[],[],[true,"Animation 1",8,true]],[[960,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,178,[],[],[true,"Animation 1",11,true]],[[992,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,179,[],[],[true,"Animation 1",11,true]],[[480,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,180,[],[],[true,"Animation 1",4,true]],[[448,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,181,[],[],[true,"Animation 1",4,true]],[[960,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,151,[],[],[true,"Animation 1",6,true]],[[480,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,187,[],[],[true,"Animation 1",8,true]],[[448,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,188,[],[],[true,"Animation 1",3,true]],[[480,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,189,[],[],[true,"Animation 1",3,true]],[[512,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,190,[],[],[true,"Animation 1",3,true]],[[544,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,191,[],[],[true,"Animation 1",3,true]],[[576,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,202,[],[],[true,"Animation 1",3,true]],[[608,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,203,[],[],[true,"Animation 1",3,true]],[[640,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,204,[],[],[true,"Animation 1",3,true]],[[672,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,205,[],[],[true,"Animation 1",3,true]],[[704,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,206,[],[],[true,"Animation 1",3,true]],[[736,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,207,[],[],[true,"Animation 1",3,true]],[[864,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,208,[],[],[true,"Animation 1",3,true]],[[896,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,209,[],[],[true,"Animation 1",3,true]],[[928,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,210,[],[],[true,"Animation 1",3,true]],[[960,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,215,[],[],[true,"Animation 1",3,true]],[[992,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,216,[],[],[true,"Animation 1",3,true]],[[480,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,217,[],[],[true,"Animation 1",3,true]],[[512,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,218,[],[],[true,"Animation 1",3,true]],[[544,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,220,[],[],[true,"Animation 1",3,true]],[[576,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,222,[],[],[true,"Animation 1",3,true]],[[608,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,257,[],[],[true,"Animation 1",3,true]],[[640,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,258,[],[],[true,"Animation 1",3,true]],[[672,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,261,[],[],[true,"Animation 1",3,true]],[[704,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,262,[],[],[true,"Animation 1",3,true]],[[736,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,265,[],[],[true,"Animation 1",3,true]],[[768,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,266,[],[],[true,"Animation 1",3,true]],[[800,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,269,[],[],[true,"Animation 1",3,true]],[[832,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,274,[],[],[true,"Animation 1",3,true]],[[864,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,276,[],[],[true,"Animation 1",3,true]],[[896,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,280,[],[],[true,"Animation 1",3,true]],[[928,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,285,[],[],[true,"Animation 1",3,true]],[[960,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,536,[],[],[true,"Animation 1",3,true]],[[832,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,537,[],[],[true,"Animation 1",3,true]],[[800,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,538,[],[],[true,"Animation 1",3,true]],[[768,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,539,[],[],[true,"Animation 1",3,true]],[[512,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,144,[],[],[true,"Animation 1",3,true]],[[544,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,148,[],[],[true,"Animation 1",3,true]],[[576,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,149,[],[],[true,"Animation 1",3,true]],[[608,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,152,[],[],[true,"Animation 1",3,true]],[[640,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,153,[],[],[true,"Animation 1",3,true]],[[672,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,154,[],[],[true,"Animation 1",3,true]],[[704,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,155,[],[],[true,"Animation 1",3,true]],[[736,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,156,[],[],[true,"Animation 1",3,true]],[[768,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,157,[],[],[true,"Animation 1",3,true]],[[800,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,172,[],[],[true,"Animation 1",3,true]],[[832,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,173,[],[],[true,"Animation 1",3,true]],[[864,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,174,[],[],[true,"Animation 1",3,true]],[[896,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,175,[],[],[true,"Animation 1",3,true]],[[928,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],10,176,[],[],[true,"Animation 1",3,true]],[[128,416,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,182,[],[[]],[true,"idle",0,true]],[[1728,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,183,[],[[true,""]],[true,"Animation 1",0,true]],[[160,416,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,184,[],[[]],[true,"idle",0,true]],[[1760,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,185,[],[[true,""]],[true,"Animation 1",0,true]],[[224,416,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,186,[],[[]],[true,"idle",0,true]],[[1824,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,221,[],[[true,""]],[true,"Animation 1",0,true]],[[192,416,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,540,[],[[]],[true,"idle",0,true]],[[1792,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,541,[],[[true,""]],[true,"Animation 1",0,true]],[[256,416,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,542,[],[[]],[true,"idle",0,true]],[[1856,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,543,[],[[true,""]],[true,"Animation 1",0,true]],[[256,384,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,544,[],[[]],[true,"idle",0,true]],[[1856,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,545,[],[[true,""]],[true,"Animation 1",0,true]],[[256,352,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,546,[],[[]],[true,"idle",0,true]],[[1856,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,547,[],[[true,""]],[true,"Animation 1",0,true]],[[256,320,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,548,[],[[]],[true,"idle",0,true]],[[1856,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,549,[],[[true,""]],[true,"Animation 1",0,true]],[[256,288,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,550,[],[[]],[true,"idle",0,true]],[[1856,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,551,[],[[true,""]],[true,"Animation 1",0,true]],[[256,256,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,552,[],[[]],[true,"idle",0,true]],[[1856,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,553,[],[[true,""]],[true,"Animation 1",0,true]],[[256,224,0,66,92,0,0,[1,1,1,1],0.5,1,0,0,[]],2,554,[],[[]],[true,"idle",0,true]],[[1856,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,555,[],[[true,""]],[true,"Animation 1",0,true]],[[1952,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,556,[],[[true,""]],[true,"Animation 1",0,true]],[[1984,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,557,[],[[true,""]],[true,"Animation 1",0,true]],[[2016,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,558,[],[[true,""]],[true,"Animation 1",0,true]]],[],0]],[],[]],["ShopScene",1280,960,false,"ShopEventSheet",428496195191086,[["Layer 0",0,180603769883998,true,[94,94,94],false,1,1,1,false,false,1,0,0,[[[0,-96,0,1312,256,0,0,[1,1,1,1],0,0,0,0,[]],11,559,[],[[true,""]],[true,"Animation 1",0,true]],[[480,256,0,96,96,0,0,[1,1,1,1],0,0,0,0,[]],12,560,[],[],[false,"Animation 1",0,true]],[[512,288,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],13,561,[],[],[true,"Animation 1",0,true]],[[-64,32,0,96,608,0,0,[1,1,1,1],0,0,0,0,[]],11,562,[],[[true,""]],[true,"Animation 1",0,true]],[[0,352,0,1184,288,0,0,[1,1,1,1],0,0,0,0,[]],11,563,[],[[true,""]],[true,"Animation 1",0,true]],[[1184,32,0,128,608,0,0,[1,1,1,1],0,0,0,0,[]],11,564,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,256,0,96,96,0,0,[1,1,1,1],0,0,0,0,[]],14,565,[],[],[false,"Animation 1",0,true]],[[160,288,0,64,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],15,566,[],[],[true,"Animation 1",0,true]],[[992,288,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],16,567,[0,0,0,0],[[330,1500,1500,0,1500,1000,false,0,true,true]],[true,"Player",0,true]],[[1120,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],17,568,[],[],[true,"Animation 1",0,true]],[[928,320,0,256,32,0,0,[1,1,1,1],0,0,0,0,[]],18,569,[],[],[true,"Animation 1",0,true]]],[],0],["GUI",1,331711995119717,true,[94,94,94],true,0,0,1,false,false,1,0,0,[[[0,320,0,160,160,0,0,[1,1,1,1],0,0,0,0,[]],19,572,[],[],[false,"Animation 1",0,true]],[[256,416,0,480,32,0,0,[1,1,1,1],0,0,0,0,[]],22,573,[],[],["Use the arrow keys to move. Press space to talk to interact.",true,"Arial",12,0,false,false,[0,0,0],0,0,0,true,0]],[[160,384,0,672,96,0,0,[1,1,1,1],0,0,0,0,[]],21,570,[],[],[false,"Animation 1",0,true]],[[224,384,0,480,64,0,0,[1,1,1,1],0,0,0,0,[]],20,571,[],[],["Customer Dan: \"Can I have some coffee?\"",true,"Didot",15,0,false,false,[0,0,0],0,1,0,false,0]]],[],0]],[],[]]],[["Event sheet 1",[[1,"MarioHealth",0,2,false,false,583827643094561,false],[1,"Airdash",0,0,false,false,504862777282220,false],[1,"lastwall",1,"",false,false,311842048532982,false],[0,[true,"Player"],false,null,956307774058384,1,[[-1,7,null,0,false,false,false,0,false,[[1,[0]]]]],[],[[0,null,false,null,837572436949034,2,[[1,8,"Platform",0,false,false,false,439337218461760,null],[1,9,"Platform",0,false,false,false,684943167235843,null]],[[1,10,null,145343892402096,null,[[10,0],[7,[1]]]]]],[0,null,false,null,257474645564359,3,[[1,8,"Platform",0,false,true,false,674703270067126,null],[1,9,"Platform",0,false,false,false,332766266076122,null]],[[1,10,null,261716145576663,null,[[10,0],[7,[2]]]]]],[0,null,false,null,655117447405163,4,[[1,11,null,0,false,false,false,334108994819523,null,[[10,0],[8,0],[7,[1]]]]],[[2,12,null,837415267802229,null,[[1,[1]],[3,1]]]]],[0,null,false,null,898860079772284,5,[[1,11,null,0,false,false,false,800228674931909,null,[[10,0],[8,0],[7,[2]]]]],[[2,12,null,296018219082863,null,[[1,[2]],[3,1]]]]],[0,null,false,null,443525632563000,6,[[1,11,null,0,false,false,false,944047937487233,null,[[10,1],[8,0],[7,[3]]]]],[[2,13,null,603305731514585,null,[[3,1]]]]],[0,null,false,null,561577020355567,7,[[1,11,null,0,false,false,false,239623424904545,null,[[10,1],[8,0],[7,[4]]]]],[[2,13,null,610103546873022,null,[[3,0]]]]],[0,null,false,null,474676022489235,8,[[1,14,"Platform",0,false,false,false,462516488810406,null]],[[1,10,null,211797991922624,null,[[10,0],[7,[5]]]]]],[0,null,false,null,393373754453926,9,[[1,11,null,0,false,false,false,112920127005149,null,[[10,0],[8,0],[7,[5]]]]],[[2,12,null,746652710623364,null,[[1,[5]],[3,1]]]]]]],[0,[true,"System"],false,null,279111244652787,10,[[-1,7,null,0,false,false,false,0,false,[[1,[6]]]]],[],[[0,null,false,null,402352227488187,11,[[-1,15,null,0,false,false,false,250124826936199,null]],[[2,16,null,621141838869796,null,[[0,[7,[1,1,17,false]]],[0,[7,[1,1,18,false]]]]]]],[0,null,false,null,871355437454656,12,[[3,19,null,1,false,false,false,133849461119237,null,[[9,39]]]],[[1,10,null,818122748476744,null,[[10,1],[7,[3]]]]]],[0,null,false,null,324913884317281,13,[[3,19,null,1,false,false,false,740594754279329,null,[[9,37]]]],[[1,10,null,153350282864064,null,[[10,1],[7,[4]]]]]],[0,null,false,null,875260179040047,14,[[-1,20,null,1,false,false,false,651253933166067,null]],[]]]],[0,null,false,null,776962307600471,15,[[1,21,null,0,false,false,true,143535861616544,null,[[4,10]]]],[[10,22,null,206459208570268,null,[[0,[8]]]]]],[0,[true,"Air Dash"],false,null,451410985329861,16,[[-1,7,null,0,false,false,false,0,false,[[1,[9]]]]],[],[[0,null,false,null,784987389057179,17,[[3,19,null,1,false,false,false,720358072490211,null,[[9,32]]],[1,9,"Platform",0,false,true,false,676961277866059,null],[1,23,"Platform",0,false,true,false,300593455868504,null,[[3,0]]],[1,23,"Platform",0,false,true,false,822122764308286,null,[[3,1]]],[1,11,null,0,false,false,false,344792419688961,null,[[10,1],[8,0],[7,[3]]]],[-1,24,null,0,false,false,false,163209144273678,null,[[11,"Airdash"],[8,0],[7,[10]]]]],[[-1,25,null,556900089754845,null,[[11,"Airdash"],[7,[11]]]],[1,26,"Platform",158927402909488,null,[[0,[12]]]],[1,27,"Platform",931535816048176,null,[[0,[12]]]],[-1,28,null,707493377437947,null,[[0,[13]]]],[1,27,"Platform",421065870975948,null,[[0,[14]]]]]],[0,null,false,null,831960260917523,18,[[3,19,null,1,false,false,false,368265511712113,null,[[9,32]]],[1,9,"Platform",0,false,true,false,407747775440092,null],[1,23,"Platform",0,false,true,false,939661007824984,null,[[3,0]]],[1,23,"Platform",0,false,true,false,731596672643094,null,[[3,1]]],[1,11,null,0,false,false,false,515684426625410,null,[[10,1],[8,0],[7,[4]]]],[-1,24,null,0,false,false,false,340415150979421,null,[[11,"Airdash"],[8,0],[7,[10]]]]],[[-1,25,null,270317266366186,null,[[11,"Airdash"],[7,[11]]]],[1,26,"Platform",651342585147186,null,[[0,[15]]]],[1,27,"Platform",309266899624816,null,[[0,[12]]]],[-1,28,null,979313215368542,null,[[0,[13]]]],[1,27,"Platform",464676029322760,null,[[0,[14]]]]]],[0,null,false,null,147573601088732,19,[[1,9,"Platform",0,false,false,false,858636998905341,null]],[[-1,29,null,496047992998647,null,[[11,"Airdash"],[7,[10]]]]]]]],[0,[true,"Wall Jump"],false,null,454206366127420,20,[[-1,7,null,0,false,false,false,0,false,[[1,[16]]]]],[],[[0,null,false,null,919217574858924,21,[[1,9,"Platform",0,false,true,false,743347073942094,null],[1,23,"Platform",0,false,false,false,408421924331384,null,[[3,1]]]],[[1,30,"Platform",895118271587099,null,[[0,[17]]]],[2,12,null,430062381076800,null,[[1,[18]],[3,1]]],[2,13,null,722056843474587,null,[[3,0]]]],[[0,null,false,null,758703971750109,22,[[3,19,null,1,false,false,false,768351007607138,null,[[9,38]]],[-1,24,null,0,false,true,false,754889199160778,null,[[11,"lastwall"],[8,0],[7,[3]]]]],[[1,26,"Platform",886518069525924,null,[[0,[19]]]],[1,31,"Platform",310613553536307,null,[[0,[19]]]],[-1,29,null,568951830135729,null,[[11,"lastwall"],[7,[3]]]]]]]],[0,null,false,null,580441516952529,23,[[1,9,"Platform",0,false,true,false,826695535176458,null],[1,23,"Platform",0,false,false,false,881595325648876,null,[[3,0]]]],[[1,30,"Platform",692232796495205,null,[[0,[17]]]],[2,12,null,893216452105557,null,[[1,[18]],[3,1]]],[2,13,null,691566219790717,null,[[3,1]]]],[[0,null,false,null,682584111023743,24,[[3,19,null,1,false,false,false,121922915644527,null,[[9,38]]],[-1,24,null,0,false,true,false,373693810368027,null,[[11,"lastwall"],[8,0],[7,[4]]]]],[[1,26,"Platform",322720646514875,null,[[0,[20]]]],[1,31,"Platform",550531077908739,null,[[0,[19]]]],[-1,29,null,825390064624160,null,[[11,"lastwall"],[7,[4]]]]]]]],[0,null,false,null,434499781549862,25,[[1,23,"Platform",0,false,true,false,613723432724545,null,[[3,0]]],[1,23,"Platform",0,false,true,false,146143905407828,null,[[3,1]]]],[[1,30,"Platform",884656432858207,null,[[0,[12]]]]]],[0,null,false,null,350539656896608,26,[[1,9,"Platform",0,false,false,false,990702282546001,null]],[[-1,29,null,364327205249795,null,[[11,"lastwall"],[7,[21]]]]]]]]]],["ShopEventSheet",[[0,[true,"Coffee"],false,null,799382199020043,1,[[-1,7,null,0,false,false,false,0,false,[[1,[22]]]]],[],[[0,null,false,null,381591973954876,2,[[16,32,null,0,false,false,false,659746393711744,null,[[4,14]]]],[[16,33,null,549012412429724,null,[[10,2],[3,1]]]]],[0,null,false,null,996985821256971,3,[[16,32,null,0,false,true,false,232917229265104,null,[[4,14]]]],[[16,33,null,723220392335440,null,[[10,2],[3,0]]]]],[0,null,false,null,748042511963592,4,[[3,19,null,1,false,false,false,766745025001347,null,[[9,32]]],[16,34,null,0,false,false,false,714588035024177,null,[[10,2]]],[16,34,null,0,false,true,false,313751757052666,null,[[10,1]]]],[[16,33,null,934615206817738,null,[[10,1],[3,1]]],[17,35,null,973927832152022,null]]],[0,null,false,null,665513571595254,5,[[16,34,null,0,false,false,false,542793768919419,null,[[10,1]]]],[[16,12,null,503006200971993,null,[[1,[23]],[3,1]]]]],[0,null,false,null,348510802672655,6,[[16,34,null,0,false,true,false,147207568232689,null,[[10,1]]]],[[16,12,null,167171063701614,null,[[1,[0]],[3,1]]]]],[0,null,false,null,765760029927727,7,[[3,19,null,1,false,false,false,886038880544479,null,[[9,32]]],[16,34,null,0,false,false,false,109954220028870,null,[[10,0]]],[16,34,null,0,false,false,false,805453368748011,null,[[10,1]]]],[[21,36,null,952719015364252,null,[[3,1]]],[20,37,null,152634411338879,null,[[7,[24]]]],[20,38,null,785198758625742,null,[[3,1]]],[19,36,null,680936185840994,null,[[3,1]]],[16,33,null,769358987228804,null,[[10,3],[3,1]]]]],[0,null,false,null,304001310840283,8,[[16,34,null,0,false,false,false,304155717919113,null,[[10,3]]]],[[16,33,null,441982612463171,null,[[10,1],[3,0]]]]]]],[0,[true,"Talking to Customers"],false,null,289222718372585,9,[[-1,7,null,0,false,false,false,0,false,[[1,[25]]]]],[],[[0,null,false,null,503772442627267,10,[[3,19,null,1,false,false,false,692049591644300,null,[[9,32]]],[16,34,null,0,false,false,false,140358299058065,null,[[10,0]]],[16,34,null,0,false,true,false,773078158591907,null,[[10,1]]],[16,34,null,0,false,true,false,394919302796936,null,[[10,3]]]],[[16,33,null,426752702124080,null,[[10,3],[3,0]]],[21,36,null,191296775686828,null,[[3,1]]],[20,37,null,320857259319333,null,[[7,[26]]]],[20,38,null,353534997304496,null,[[3,1]]],[19,36,null,899922324549276,null,[[3,1]]]]],[0,null,false,null,130527125394920,11,[[16,34,null,0,false,true,false,369577727391620,null,[[10,0]]]],[[21,36,null,312309235634736,null,[[3,0]]],[20,38,null,596832854190983,null,[[3,0]]],[19,36,null,615916844546373,null,[[3,0]]]]],[0,null,false,null,640021627844406,12,[[16,32,null,0,false,false,false,305930615802396,null,[[4,12]]]],[[16,33,null,555684493053726,null,[[10,0],[3,1]]]]],[0,null,false,null,562844313334905,13,[[16,32,null,0,false,true,false,658899153224031,null,[[4,12]]]],[[16,33,null,675952238994791,null,[[10,0],[3,0]]]]]]],[0,[true,"Leaving the Room"],false,null,780267095075200,14,[[-1,7,null,0,false,false,false,0,false,[[1,[27]]]]],[],[[0,null,false,null,970174184344290,15,[[3,19,null,1,false,false,false,217243143019322,null,[[9,32]]],[16,34,null,0,false,false,false,951609328283848,null,[[10,3]]],[16,32,null,0,false,false,false,412409052736438,null,[[4,15]]]],[[-1,39,null,694836535350228,null,[[6,"Layout 1"]]]]]]],[0,null,false,null,945956290063974,16,[[-1,15,null,0,false,false,false,583287209690763,null]],[[-1,40,null,800110698927547,null,[[0,[7,[1,16,17,false]]]]]]]]]],[],"media/",false,854,480,4,true,"trilinear",true,"1.0.0.0",true,false,4,2,574,false,true,1,true,false,[],"icons/",[],true,"peoanzvh9wt","fonts/",[],"high-performance"]} \ No newline at end of file diff --git a/DreamBeanDemo/icons/icon-128.png b/DreamBeanDemo/icons/icon-128.png new file mode 100644 index 0000000000000000000000000000000000000000..34780f75f3d5b7212d00cfd5be3e1e1e3dd59e24 GIT binary patch literal 22267 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 literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/icons/icon-16.png b/DreamBeanDemo/icons/icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..d4e6a43963a81c39523f4d154e1f03693ef945eb GIT binary patch literal 16505 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 literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/icons/icon-256.png b/DreamBeanDemo/icons/icon-256.png new file mode 100644 index 0000000000000000000000000000000000000000..a20135367d26b190fd30fbe45da771746df94ad1 GIT binary patch literal 28930 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 GwtoX9fPWAG literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/icons/icon-512.png b/DreamBeanDemo/icons/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..9e2ad776f0ea49bcdc1f7cbececebd126276f4e3 GIT binary patch literal 30345 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 literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/images/bigmario-sheet2.png b/DreamBeanDemo/images/bigmario-sheet2.png new file mode 100644 index 0000000000000000000000000000000000000000..0c90ed025a1c8353ca2a6ce4313b303e7d1fb9b6 GIT binary patch literal 4219 zcmc(j`8O2)_s3teF@~}4#Gu8RQI^OuB#m8?EoHRXvSn?EK_q0U>`P?JnqAfzyHd%U zEMq5Ygh=-J`ur8&AMU;9-gAGs=REGY&vRdx7+pi7_)!1=v@TxT^dyr0XGppe->z=g z3jnK@uC}I`-<`GFw;tJa@*Uf|?d-=qICt7eu)yQdo9`VssElqZ>DizjB&6u>Yf(09 zE+G?-EY%v8+;zyTiO_VI8JCET8ABcm-Z9OPBTnzioK4s%`o^w}SEs(!z&_v>%>qtzXfFUq}fH8P}G=#zmyjZnj7`H8M zKh6c8JksZ|ddoyGl6@pHXHQiDK+}W7`uJf!%Z<4LiD>~Ko;MH58G#QBHzCbl&jWTG z2_F@rw(y%vd@u@SS1mQ7@7#>L(Hj))>tZgWV;LWWWJ*naerjFEt(t3xRf{^VQZ%*3 z*~0*+Wg1z_eryeQ5Tx^KEVLty=bC50cO=jUS(*oRJ%SGBR!tQ{kcAHkFcZDE{a#q> zZKF~S@I8b!5;o)N7ESWw1iv{pFmL4DbMohXjoC@2`;w8jl9c0Sf)FHG)s`r{?;8{{ zyZ~ek+ELgH`NhTh!;0EK)|-}MtG%XcqV2W=9ZjWuDQQpjTlj?@@umv82&P2Nxjw9Q zz>ZsSORQSkm`&DrFFTnDl!TkkD1(vZa&H{&Y0`q|yk*4eU8= zRPe9tEkXz#yJ8oPmlC2b)6d>BzOI*{U4yNc673Ha;Q7(g2Z8Fr4(};=alGZq#8<|| zoQ$B(4Bi`Cp}o~2130!~ZJP((_jRTw;f6AQ(-NP>jrB%J-SMvsgi(2i!krL#5JvX{ zq=@X^kvikd6C2<#W5YzQEO~nWc)b+9n{_a_(-N<#B<9iOC57e*I6R~Zk1h<4chxCl za6Fr_7c&Eb)kqBBYu~kns@YwG3ffLsPz%vtGKRas?Ij2fAt2jY0US@+9(Tw1JvsQ( zXj>*J*-Qr*+GEF*Gf@o@4xB|*a9D*On6^4JSRfzF+xI=aEcbb!RT%>1v*kryj(JJf zzL@FiH|-0sWf?-IE`SC8`C_@rARSm+;`SxiWY@&HCVk?6i>{Du3pkpW6b%cajTWJK z>0)4%y6~i~WQ4w`-AHnt`eW!yfN%#C$FeBTQu_3U`{IU$eeE5gmYDD?HyJ^s*7ZxX z%TJJ?F zg=l4+wgJyR5(^Yb@;7A;*1A?2wtzbaI9tQ)mq=Q7b@{9?D1H|Kod3*H%5yxyt*ZQetGfQo}6^TXN6m3ey^*-u-@Tt&JU z+&i7v!Wui)PR{KVnax;^97aq2loYo2vKW3Q@|IUS>^)t{nk*owSD%bBCh3U1m&owVH(B(OxT#aYr0Y%C%_7TA#icecnAp9pgal1UfemsF5+}fb$iDv=R zs=Un1bYHs3uG-rD8W*^_C)VNM@GITjQAn0>Hos#udn@Pu*K@$V%t4$fp3w7heR=A2 zp;_u)S64h3nOEzAuq`m)pD=Kp0gOO;GewDkP|fgNt@>=}5_zuJ`0Q(Je0n9M69W9S z9KPzAgK`shBY+DkFu?##eI3@w{lYgwzv~!L2p}@U;AstwkO`j9hv1@#D8Q#8!G%q_ zN#afX+WZF2n!~S0($rb0lVM7Clf|w6-D?&E6coMEr&O8rq)WI9@g#vMo6z`~WezF< zi~OO_eMQ$Q1^eOLoX75ho`yl!-)LD9UK9S?#vB$O0==$e(g|UDqXh&Xj&Idvz`toj zy=)KJb zar&oOeOGIw{AxQ~r57rQD#6GDo}>h=qtwRAE6Tvc9>P8Q#|X9wjab8WN&)xbObu_U zcc0lrJ+IS>Q~i-Enn}yeqVAXH3ja!W(}k)OWkARa*A3$T2nFST5^F}=TJJ!x7gU*& zWJMFx)4cy#`#0*cHPdDv=nw3WV8GIjP`J*d@&G<+1YcAJ$>)Oo7<3l&MNg3Sg}69T zq`*Qlic)!D=>E_htsXrkhMKsbVF;xdMu?>MLjd+Navh6nV5sAMfLOW5gms#L{o2Hn z9aV$qnNub{QqqxHa}A9d(YQpKY|ZhtyY&-{*dLG{1Q16M8yZqvF+|{Sc+=dX-nDYG zUv6o+0e&N#m!vLk!y24`E*7!2>41UW{q7dis30le$3>|$#qfY7K}}t(``p8!*zQxe z8dvFH*~)g8ez;4_U6bV;(ZXaoem-YXzd)ZHwaYU|L6Q$Q#!JyCP9BX zJ5@($%kY7nwXqP9hcwM&RIO9BDB_ZKEB6I+!%fsYcSMVNpa8Yecn<|-+S$H+EO}~k zi~k&MftKr|!tM|pU8p)9^;U?OZqimvLb;@+HS6`Ks3?mgg;j(q&9MVs z<~}E*%{ar^gG~l*r3FgnIXl2`T?(Qlk3AfzY890XzirJH{bGfK-R-6&13Ys2cn-ii zeOaju>fg;_ttY2f-rL96uIY74K1+_Bantf$of;H%3u6^iuvPbPc>0RfyavnB?;I&L zo#g8h^11D#bJU|D0v`PWCaN^d1cJUf{gx?&hBwiYL!iUP&rFAMMjHkLnBmEUb3$?@@Bz)u(oY zxFvazdHJvA6R!~JYt1+ZNQ1u8D{JH0sz}|D)zDIX^D9sHL~Zk+7n%=-{>l$DK6gXj zJ#%XE>PFZ7;lHXOd62lBc)rH5qH|XPAszVx28G;Kk{4_?16Oj&g1p4nOhxBj8g!?I z?Aq!i4LrJynH#?l=85oyRo$WkZ)?eV@7GqFa$G#C3ZsiGfTewjw0Ov8sBfPgMjZv) zlv`l@HN}ZNc93SyqXi*=oMkSAQh6*9tahNJkfvUG;Rc9ke&zYWw2S^sx%qb&{dn<{ zCMQn_slvnAAmBUzbF`9&YH_B(G7E^KW-P9LQGjz4az>xYccz>Ej|*^%19z*=YOTArw!#Sicgbxk@B*XM3H-2K>l7ucOqUyG4`J9p$(Ju zKjM}6Z}&<@ys9notIx}&mis>_jG@y<<9yy&Q0dfCUDk@}?w>TJsf2!}zcdMlHo8~0VD@Cug^sxVB(MR2;y zp!5&kP8Q&DSjcBc=z;#u8~-f_*M61hBL*lqHu%#4(=OSYq!jhtZs))U0#Y|A-JV9E z=RI`uCtJZ<2WpKtHSa2r*hN*WQ~f!l-!D$5=jpL^< z(VkBJfvw55?c)DNAJ;;xjjLH2md68Z8)qLX*-K`vnM=&5>jJi?Q69VNvzcnLIE6cS z$-xwo@yS*_=~0j+C77i)X0Z!9HVWv|(a+T0%_z5MNs1Nna|(KNcHUyrS{$jO{M6@czlBkeLR HLdgFCV^xUN literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/images/bigmario-sheet3.png b/DreamBeanDemo/images/bigmario-sheet3.png new file mode 100644 index 0000000000000000000000000000000000000000..67a99661633a050b1ee70d35900ae131e9d1ecab GIT binary patch literal 4227 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 literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/images/dirt_hide-sheet0.png b/DreamBeanDemo/images/dirt_hide-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..661f656b9323060e0f36636442dfbfc90433a53e GIT binary patch literal 3093 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 literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/images/dirt_hide-sheet1.png b/DreamBeanDemo/images/dirt_hide-sheet1.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9be4721a1f7c6a793e22ef53cf58839642a561 GIT binary patch literal 1682 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 literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/images/dirt_solid-sheet1.png b/DreamBeanDemo/images/dirt_solid-sheet1.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9be4721a1f7c6a793e22ef53cf58839642a561 GIT binary patch literal 1682 zcmV;D25tF?P)S0)$5w7n&$ZI<;&kk^mqRG;^_9B6aMMQezQOR-G00H@^#hj z@UDW*;;2_RZPiqc_{i0&9zQ{2A8@ zX8;eLsRx?Z2H7%?5|#OyVE{aRaJtX{9w<7DSuEK)Y#c1%^X&7Z$EQa&+vnfE|J9J| z*Vov>I`Z+`MT`bqy>e|$1g(=je>ON3PXJ{D=Ih`)gpz^7IcWgEOxeFYa~QDNJ!YQ= zU%Cdb6e}J1@M-b!=dT|*81TF{rPzC@1bj+JsrL%zm02mzA1mn z14CB}21-`|Ws(PKm6{6$|lswFEKcJ-nz0OUK;@8A5Jp+1Xc8)mWx|bG!8bhWW8vtZ| z7@9JRo3tGa7z{`n57>m(Q_dYGFic>WK+c%p6g%Fe?a+Xs0Yd|Z25h1sbI(2ABpxvL zrrvo&1fxU{iIGLvYgrkxt(pL2e=V=bpP2!;*Q@tuF&Z!cp!$HGI-gd-glFHH6;72N z_i}?Jaq~)N(3VSLT163j4nBwF22mu%)fzfb%zCRR0?7{~MZF{{?xO+JuvI_-&{`my zpSU=j4{`xt;V^_DsU&ulmu0v#x&%)m(g4}kZ=L{F(}Yhb;{!x&I{80yu8-T}7S zg#)0^@TK~HPwiWS>p30S-UWZ%jc+Vhf zZNdQ1kk~Hh-2+Yv0CfHD>G-zVgaP0ML`q6;X0R)UgaH5%?6L8lHgg#f1^`5`_HNLw zWQp!r#L-P|!U@patA<)`z_V0G^=EwD+!mX?K`f z)rgu3--maZ31a{UMKxjRWr;o8=gk!qI0J`^r1*F`07^bUP4Lttyud2g255E}AcQl( z%k``8Z=NCV7hu3(K)RJi3AEA%OJQYlHCLDifpl0)E4-a&a2>FP)jzyWkV9gn_x^1F z`T{gNO|5K^7E5`{W|#@^<1pK*7ZdPegUk%imG*!Gc&s030MJ5-Rt$hs;JlT_%8yv? zOH`^mLc1^xXqi9@fLa=zO-Dr$c}M`00)QU>-qVSib|@3rwD`QR5}BU7K#9(!++m9~ zU`C3~)Owder8B%nulT8zMbZ)+yLOlfOaVYasKpV%8uc!@27!e!41g&nFjpf==P?uZ z27q3W^cf=D59sOmoHiJ{Re2L%8gq8QMFGXVu*?*TCC!|oqGf4!LeOXmp9(Etpz z6gUYFi0o<^^h)k)5$3%SLC*~?#S2on!rNv5+ji+40S&&|IhW#LXs!n6c^)GU0ssu$ z3!@*zG6*KX_ANFDF!n|SneLt&%mEP&v+o@M8Y(Nr4N}DfwN`#-#_O9)6vDpCrP(jg$Q7<4H}m(txKNUVw|El7)?lt@eWBGTQ`NJ&a} z{bn)P`}2LCe{hfI%zI|8j@LD>l@+Bf;9kasKp+=nr0+g}Kw#h}41$9N{_&<}dk%rn zL1gYqsJiJbje5K@a(?o2ZN>3(+9eK^w6and)+4UOTq6FfpO|0DsT0b+ZN&AjfpB!+*%pGr1#ENy^nkCIRuJB=Y#&Ilp=RTsnO?u{uhUi4hrFb z!ieAy475MEba05WkAlfvSQ))Cp)GCt-JIwJ$r~2vpM;-a;z0Io+x>BjZYRz2Y*v~$4yAQ%t|Oel^MPOocDWlgGc<;clB6YP_9 zA38VZo6bvuba&8Bf>=6F1TnJhn4?6z$LnP)^k_X&cJ@+eyi55|eWwD09R1XYY&;@} zQ~cX!I7Zru+`>;@3LfQ$Sq4MkjF^489}SuEMHxr0ogGE_76#O3a#@Jv+G-&5zJ>?9 z8!>#Vace90z9@zy8YzexBOw^@qU``1;<ief@tvQE%R~@VIkdqUQ>#2s-eLW`3 z!RVycC8LAPu`<;WH5MUz8@~ zgSG-3E0sjz{;`#A#-?*RUU^Mo-}eqCa%G*CL__~WM*$cPq0KS*uKw-mJ!f4a{l{48uOyUqhNKJEMND)Gq0?S`aTsbe~ zIGaCN#JH|I)g4p48;|M!&2V|tJuvF9gN>@e`w9Lxw0qKp>H)HE{<;uP-${X}pPOc? zod0>9V&e<7!3FQtC=8#&BaVY_It>r|gRGBULB#*F^f6dUYD>jWvFFkodBe_IXqqHMK?iBv!{ViZ4qyCU zAh$eGk}On(?BEPrIxKCs#L@$FVPFh#PaX`Q?C^f7#k`fZPDLw>+%(LvotGx`0vR*Rp`7iJ80U>9P4JILO z%!YgBXcOi$#kw*vt+e*7U^|-e7{DB?vYixc7qmr1!MB0p*RZ7#OZ{MUD+R2IL z3V|x-_@;-z{b3*1r!$PIt`CN_bnp%Gk_M-1TU36kRP=Pp!|6y1vJU1#4*KZ!~^*-NNa}DF446A-(G`0IPQZ+7|7|j?aT0&tE-K1n9=scO( zTPE*`S-%38x!Lepf&QTEwk1hd@x02aD)n@A{qI5hy=V&|h!m87jfMg;X&Ll1P7hCh z7ZD3tN!h(=i6!Wqw1<3_WEf&A*N>}XtJC#KZ#; z(xK{z@nuUM@eeI+-YVT}B>dGRl6{O`4e+S)>`TB#&0TMOeZ&Nuw&&n&qQ@)=+)xqSV39HTqPLK8p9n-yx^ zG_Qk;s~At->dF5|9d31Yvb5$MRm)ZnnXhy2y^GGCJ#gXHasO+?jc?(q*`Cs=c;N~S zA_pI8rd(_}U%pmg!g3USh}`;|dw+DF7{d$QQyRblna@2l)r7gTpxor^=V|>BkC#Wv zf@8#{vWqtztYx%m&+m4ByF8Acw2{~ofXdG5@PW59$_%UQv4I3LfGx+{YFRhgQZ}V%4_B}W80Zd0xf?V3? zWrMY|RrG68OgXvM)n2X~ zMaV8?Sd+RMxy3P_Us<3_Eoo@GvhMKqKjDli5glY=9ZrW0y>o$NGmwuh z`krw9R$SkS>^8Sm(RlDyo;Q_~cV@_$X2I_RS@HkU(;B0V*q>|5$htK0_6iryQl?ul z=Z{6fZ&TQ}N;iVV2kkv4aEJR{%Gs>~E7Qi0a%s?1>>f(R7TS4TZD0!#O|hjRh2uJl zUNHnRZJ{krA55GiJjCsFVlSxuT6fz@OP>#yM5AD19x%PZf>B-ToSmO~^%k?KM6UCT z>)H&YN+L~NBQ9h`72L5@y6#zVHq_nT{K;krHCrNe7H`r&HC zQQLy^Oijl+`*6n3URSd`dnnLI`~)z#v6h49&JWl}yY+@J+D@_EekyMfv1Q8B_{iF` ztRKkdnE6WlF*fLlhohK%8{5IwY530qvBUd^kM!loICba|VYerGc5*UDVaW_GS# z<<;e*9$K^=H33r_7uvgA=`n5kvhMf=w`V`>*|xys8oa&Z-c;pwSV7=Eh zkNi$0Xe%EtGj%L0RqR%Ne4N2hDVl#hJEvtccKdkwJ=bLs_I%#1n`m3I z076O6*LRXbv!M5%O!CCUhpWD}o*hJRdN5~bWtUjsS~MN&Ztu(Tx!h6v`Oy~5>~u4O zkf~nx0~1UOws0W-%l3kI?$q^CqbRMOjy8<`7s+cyLbAtMc2m1=grb9p(HJWo1PE+V z^h}Z{S{uamVl&+_uholTZ9hDxx;G7DT=5S3{Fhh49KSn=d^qgM%Q5v5!$Nb%bc{fT zSq5>2;07FswreCEmh~?B4VJ&P)uvacxMkD7|H;VHFAr#QW=$lq(8S*WiSkWjkVvVC z7}&=*L(cxr7L(BzlsIg&hwSCd9rZSKyuzBQ-o0y()6yN(_`kmGHCQhPn|6Y^GZF`MjDrkAUljRX8!!A&4-EiCEyQ0 zh~H$Cq0KG7?bAZo%o{3m(w3s+ibd;g|NWEA|7I7t(mXI})vcWez1OnPoMNaDSl()V>B3K4I@W z{X(NoIi&<`2TR&N@pM)K6})5L@#DyLXmdNa68ak;1JUn%8{C=VbMIY)H_)w7OWRy? z-Gp1Ce$LH0)%w#s>EcQ7cg!P-`?SnE)zBY8I&Yo_oObFs>zz zsdXzJBB#UAmv(aVGrl-eW=>RrwssQY#QY||m&@n4G$AzQc)$vjqdVwB*5vuSkCriH zu&-aQmg%;y>j|AcrjI%5m|kj;P4RRYa%-)o=zj45&H89OgJ2*puHGa=*qpyR)8yKG z*lbh@7a(t8Dlb%wT##Scb9*wE7e9cV=VHD*EazozJhgl9g%7V1-3Va;y7MhTMM?Dx zEQ}so6Ag=53znr)wK+e|vp>Ar)UHI?`aLH?Ez;YmwZq@Kb`y>0?D9SkgGYK-g5U#~ zmme)3ap-p6FPWD5WbW$XS%Xi8AKT;cE#*hnI3`zb|8}T1`v}+Z2mGMh8EBut*8!iH z(1xG8N4`qo>6%vmTxF4g%GwdfDgJR~dZR#f^r(WjQT9%e7T-DRSZda+kty-u!9Zd( zyM)uK1is;=c*Pg41p7E@LE9I|Ax+MSd3!$pXc$h zd#qtDS~C;PNWl#bfEWx5PU67auXa+#A0`VPjTqT;4rBDMVtafsQwzv`m5`xO6B4#O z%u`u>n7=@4>dd~6mfI#KfDat?n%sbSajY5{JM#ZF*NEoI{wC$P9r7Km*_ZVM3bwRY_GECZHav)RR&c2L zG9dpAr^rD#g)5QR0i|+Dr@p1yeH7o)zSnvn<{I^D<{4Z+&@euBZe8k;swmfJd=E7m z(VqkVLwQKkDNzIa=&-!O6F(;GV&y++;6DCg)=rfx*f(e~pYzRyBg1tDwmt1;ss{1$ z+{ahY5;S-oDjq8wmlrWW?CTZNm?-hBC>H&=BRp(4QJtH%Fzww2Dkc_=oIKLod8bBEfq zJmIoH{RxldMkgoQ6^<@~1Tl(l5eWWghmHFP>|$qlbo-md^{?k{;2;M;Rz3N){OhOv zFwBS_259<<%K&P7iESpmHMn*-^ucY3$PFSL7T9soEpXR*NzAiQbekpJ@tL zE#9G}hVWw$1+G^&$VWpFk|{13<-s=Ab*)t^zn?7l_meNStXmx=e$ z2)z%AsGZnGk<8ifq+5IE1jUmdBHNhStTRhkb>ELX>zT1PZM+D|qzZjmD+LqSXVx48 z#y||QyF}M{4WV!?+%~|lT3B;TZq2?QUzq06K#~CN{eIbf3fqN=Z@J!Nl6@+;7|2kx zGq>IW_Jl_I$}{9+5a$ownH|bm)+x?uI($*rJN3>Q4~Bc}k-4kVbnT_f_8nI}@nfa$ z=-D)61u}6Np2!3Z8nsy2x}+P+ZewqkjJ-xJs#!2`Z}gDf(Zj`K;-h7)LwZ?RahvH5s-D{94IfO= zs9nYasI8!2L8g~TGbVNsTPcgJZm4wmdhg~X*UFStxG0w0Ahv>+y~8E-jRCeUd%`WZ zC(UU2bf^VzB&xQAZN>_TH2oX`^XHnXZuBE)=KM6{m@JPXle&Y0a!d8PrL|YG#m`gq zIerl!JVJ9soeE&Rjm3kEPAHY6t!KY-e(6^J$?{1ywERI{g09&+FM^eA;uvp+(&^3C zrRLEDx0$3PE8jviJ1iXzP*EXM4jhA>-Z9hwUVR4F@mauUyx&X~IBA)@%NdB#^2FD3kKI@&^k9Q$E zj=Ed}QxNW@aG&8B9;K&i2@3olFLacE$nU7;7mj>#r$W(*lXSr5XJRW2Th zs|Ba-Sih*%{vxd2e?U{zou5`YxHcyq?wNZfNH=V2Z;lr21HOO;?5crN#Ad{1nI$tb zpn$}1f6`c3FuE(n;DQ$NxOm#ua`~(5vDuTU-DU~b`h7GB-qZ$h*!W~-6dU4`&Oxkv zjyZL+0%6SJVCiMPq}uPw^VPdn8~P$cg7GB%8Qx)Cd1h2-Ti-*~m;Hmni9#2W1apc^ z>{Pn1f)xGcb_TbspHHdhSev)_rEb-QK7A!AKPPnK=nY7=Kh?@A1WK~kEoa601!7T| zdDD-Q7-|-v1o4Yjd2e4Tp? z_P)y(58flMQa#4prrDxy{(ozcP+-Z)aq55IfFgD}k8adkyLqE<8#r?cG&`qxQzUD& zbUuM~YvBXSa&!@zc+Y(X;;k;kq6R~xzZu$juF+u|-zQ&Ox;S^WHKFg)6t%O}YO>8d zj?GJF*%|TA+TvG{g#R{$KudwMZ`|7E(J97U`0-6!!9_tzw|L69Ds_1Ae$FCPJ7LI9 z=i@^BBUMk$0rih`Xe(JrK;}32vQx1P^G{MfHglSkgP>rv2Re*n@pxk(xVNF&|03F| zC#d~4e(`9lV}6uf)^*T*&wg3^snbM_wXSa9V^I>W{A$;oBrOWAeC_6~ylpAr?aXty zXaD;Pcfx-`StARsFt7b(ZyWvw}*_&8H2H0mk*Y`oRPx+ zU$QKOxR7MoEODzsz|PmYtvowoezWz$-CFHxya`w1<0u(_^l`p1ddqbdbU3{#sbsJU9Q7qdCp=(R<8UyK5+MBg zH)9?VCQZJg7*p)3r4QL0l6ew1htl1S!xTl;_(^#x*j@OR=vG(`5M6KKfk+Q@%k%n9 z@k{aOD_`Zj()pK1rRT5rDb0O;>G73!_HHyr}<@-96 zrX$RI-$}0X%9tRBf_Q&l9kT!z;%4U%U4K>9g_8OF2=}cU=Pdnw(E|+xkZ?j}mKe`J z$$I}D#e{L0GH)5(0SQkHC(J4a6t?%1l3&#c=T@Yb{ZC;v6b~F;$LiW0CvCdR>7b9- z)Pb;db9my|7pyHCS6)f8g~g;CEI`2j6|}jw&6dBWWU$`fqJF*@7=eC>Y;Xuy(e%i3 z2s5Y26pNwwru*{yK5|jh26rW;adt!7i#2uMzA(qCvT(9^dcy!sVx}cPv_n|lh_6cq zIz#&01Fy60#UXOo>WY-qDL!ggz?xg)%6rqEZ%J6q^ryBig*0z*SFLjMi`=_*_7yqc z#x?wDe$FZysN8&F#h$Q4*?MFZqZ?C>xHP8@ZP^s(Pa-VDgmf>Fw8VL=?Db6Tc1vZG z{o@0o6(j^kUU-)h<4_(THF;{ta_C$bZEu_NrwB2OfWo+EZk245ic2T=9`SAa%`Zj= zqlumdDiiuzaZ|VfO69$rI`FpWZB^uzF4=7p+kI2VTf#|4I!M|5WWlW}wa}ZLv&}Ru z>O+JfBQSIU)I@3i`mZhzAb<|bE-}GYHx^DKy;CA!n#lDW;Pd+pIP=YIf5_$D&g&IW zG(5XM&foZp=;5;>$R8{~m^WhoSE1ndf@~$lg<4_b?D3!a$w(3`mz2liBJ`{I4yu~w z!d9tBp1`wCa;QBJhd^7pWml<0z4X!WL%Hfw8`mDTvV7=6o@*2N9UwosIhfNlrXF0+ z(bjr}&mXN$b{o{$5^IrX{fuZVP+lpW8j&0hYT}3D@%w_*oAztZRw5tq3YYCj!Oe}{q>bTSpzc|0P z{(FMS(_2Gl?uhvl5IzaP_jxBObgW8MDzoa>MWKTl>5w2R|x_y%6f^uE^g=|J^&MreqYqtx!(F02|pfc8u?3?ZQ9APEwibxPumE zBQjCo0_%pkVm9dU$CY2bZgv*&MoHF~Kc5b}sz)YEV_~wds=HYgyB3HgkK+ld=Cn*m z7XYdXLIuSQ)mgtkr=c3~=o#H5}zVX|5XeK=qgjPnz zX><8(P$jkN>I&uJ@7PUFbM*2rIQJZw4D$4*5LIK`8blSs?}WFhN~xj|XuE;{JG8~x z_>=Yd-rCn0@-AwVTQT!7gAZ$4UiM$}Ll(hWo&Dm12;cV#WB} zN(t1}#5jBAvl{ABnF&&Ns4WPjhD8zvi0$TS!u5Ku|JZl`{^`9Bdf(O@Rb@UP=+ak* zEqIJRjTR*yiD#ch<>=1$)yY3d|H6D6poDj8H()xEyg@2bFzZ#8xq5 zVzCK1@N4f5Eu#`f+$&1|W$8~B?XEx_Mmc-vvo3OsD!=}mBZV$re87$+KXIMQVuPwg z#D(DAD#=QUp1)GcvC@2%lqJyTv~k^p&~2+_?Xuq?#d;=zrVmVj*rhj;e)ygy=?o%O zM-{sgEH@246yBskB;Xz1?LM}?jPRy^cUk-b{Xg4@0qaIpV6V`bKPkK<^rz=$) z$#vQzk5rCSArAeG?U4P!c(T!4zsCCmJ$nd3We+1{?hF1%&;=W)^RFJc-}+p|c#Q%j zUASxp>pSI3Br*_AC0b=o*Teo0oK-ZG68tlWfFBf6^Ythom@`Ki=U4Bxi7--k0i*v= z9)Sk#AffCg`|)z2+&}$m@0rmx2PRv3<5%bKN6e4S-^?A#1vHWJOduA%M=^UBriH0P z(dhK(qVcCIE0r5%ecHAE>Er$@(wDJxGAkV;+lCYRY{blM3`ceRwCc#su=KbGuSsOa zYcpC&CotQ7@=E+JEPvLU3l#t&TCj|B#IE_LW1gc(zW(6pJO1Z!krfb3A~RyHdGAsu zJ?IR}-cob!T62&Ax^|GGmM_6PofLqX7d6U08p18}RG4LQvL?o*Uv)&>$RBdtQ+BLW z#T`>@+d+Z68X2XZKo=ij{9{d_k#oBcL1>>_k_ z-%zkJZEGNp<@3_Xv~2lLekI76iuu4VqrQ-fx7kUCF%V0A`Nyi3j0Xd*9_Req(+|uN zy=vRW8=+OKn!Y2P^X0?7edn23Ad-F#tl4E31Wnmh(4nJ^U8EYEia+X{urDuW3s8n3 ztZ_;XEyCj?-1gFD=7J+qL%t!=ZqH=~ZZEL{S#-VkFK=h84jMhp+E3S;66M~!+4y`H z5qwAX_&w;c7*G8Ftp{m)`c$4J`63*2q)(4tbZufbfw!1fi!eapMBqVAkv9ut*qPYi z;KO|&29P=SL0u3d7mHbb8XValJlS3p%4H)v7#!6NvcR#@rYo8dJQq?Ob?fUnZx3UO zim9%*8t5^n61akwMZOv+-@a*Ln=R?u8GK+q{=vjiSBX4@89Ge5$|c#8^mR6QJuYs5*QK(#2px_amLY~TNm zoI4X7BoeS4OS0pu99guM(Arla+LfPW2H6c59L}QcQU+B}1g2C2&3M0k#bVH-B=@6J zb9Y9&zW|keRwCa*P8s18&->n)SK5|_ar}xm3onu1NmQ9Qk#>JLIWT@cX@MABmv8)jJwaiTwE#?dIgb z%H=9^2P^raN^1`V#Xl5Y5(KJan)Xp577h=K8#l3$V#@9r2AAfBpi#Wj7R9T8{IM|1 zzbX0`Wuotz_Di=cJ)6Fg&PBqlgt_fTzu)gbAwHJfT;aw2Dd;}M5d;l(x<-nCthPz|nsL6r}Z4umLJ=^aCOYd8}@pr;k*)1^I~~sKdh6E!a%%jNvbh|xq~5#N=v$aa4#XzzX8{F!m+z6!iiWPD_! zK4sfL0rjDGq@PIjYb(@W5NNZn@adb7}m)l|&;cuv*09VTqz(U^WZ( z+UgLJtmwi@nObTO9`;vcDUsWu50mTIJd=pn<80XjXX_~6puC;w$I>s)8pqNpKw4Of zeN&52;X?z1hO-ULBv-@0} zR?=oYcGNE#*VE=4_VOaGy3AyLcU>jlI(KQuFIFloPIJG0g#5mn(C7D2A@niOf05?D z9_$k>kOb&l&vy*FqAkuOx_rzfk7J~Z^xHfi*LR@((+q2kBrNMn{N<1@VzftRrITdP z5To<-c(5D%r`gVR{s&`qZ>)>W4+Nyq7pW{X=21j^tD8G;u@)GnM;tGWaLxor6)0%3 zg@~C+2K-v4XLAZK$z|}35 zEghvWbpoB=IAH=I^0#s>4SP~wb@Vd7Yy*(R$dn_6eHjPbC@~Q4B{Xh3IsKnNK)U9@ zJW$@N#?V{k*`wO-jzt8QruU5R>gCbw7sWxxf0 z8fioEN|H(MbLwb}6ZiZ%4&7%I&?ltd`wedx_LNI5^s%kq-6wcyvxyY^IM(2bMsZIs+^8SXZ(C5ULF#ZXa!Cy>6)StY((5|O)R+y9)=FebYqwlyua*=l& zzzb{rr;(Xw46OteiMb%Qhd)`A$1At7;`+CmYCSd5TDK0KM9y%*cvvRX2SQxZ2sFv<$pjftd-;S)J(R^Cxo-I2rRXA*)v zMMvAv+LZ8EV2rveM1)pu{7%HVXHkiGqY!M0K9tnX`baOZ$hD?q&nQJq4--Ant3#E* z)q*!78Hgg7##uJlL{>bkTBpP1SlgR$jC7DQOfgF>)F)!HDC9?c3j*$$Y zpuFNb9~OM|GzoW+ldjX?J}2J^k}mL&j~t>_JAJ zJd?%2p=;P3qe1V3d}gh zD@xMkK(k$&H`AKdo+WNpkf}5r(&ZTPo?*t|J7DWFTiH4x*!xWR>{u7?n|ooUy0fz@ zSQjv0MK_4Bt2p+0@p(PVbaJZ51kpC0Wdrs?pCwp3>~G)PzxC})xdVZ;xDbx?n@rb2 z9Wj2x6I}x5Q+~b(GIZOKZ{JB+`)hIl>;klllcr_0?^Y#rUO9@haM7?lq6>=eI9&74ms7kjMuwUw#VghwM67eGU5EwxW0SC zIY?q0y4;5b?j18T-GBwB(E#{y0))?e!-?3m1j>!MV&f7o(Ngu}@h#URM-LtJs#$9(PHmj-B?$Vh;5y$d* zV_n-Ta_&p-KNak73!4a-_MmG)6i5ilU@|d43vg|p=z<85`Z~=!)`03)WKbOT`v!Gi zep>XjhJ-x?b!_cp&8?6qjrg9kqJ;yh_RteVJ+1Ml%}(>{tNDnwCTG=yx%VLA*kMm+VEHWn?s~ChIOS=R{Ta~wQDWxbP#9-b$I5F~ zsyPeotg2@#8&N&e_b$Ac`Fzdc;&vN%w6yIvWE`pFBs>ay;8ifF=lwiI1^lfffU%Fx zk%&2KH6~I4c8w}0*Y`l6QZxVA%`?I5*WSfUls9_Gw6P64jV%*<#K_^Uxz|WZBpUFVnL-~b^ z!98A#s7yU<{%f*KMLzB2TQ)n7K|!IC?0f%?)i;sdMM)Z}6IomJG~u&N)qrSx`J%$I zoR8LBFRUwlfB$_qu^Aph2d8A7+>v@%SpLc!tz_zFshP)cw189t09=t_=L2;A^wwoC z1Dq4F_aEgsN7EpV&qvo)PtiOrG_0dLUbeH?iamDziiW~4M-){*$9KpXTV7 zC=ukujZtu!aWxfAIecdo%7^+f|6#NNH(+$Y{i%0pnE#WXQ_JJffoT-lZBUp$dg#z+ zAVpn1dGgS9*;X*~EZq51-;tKwH~-UAk6U^i<;``?u=6^!l;ku7DRAa;^ei0tR3+eA z%X8Ld{nrYwCIWq3F+&?$8?x8utO>xJi_smbP{3@A^U(<$K;Sd9GovB|AFfiYrDyF)5fTz<8~+M&8c6z9GpIsPw8g`u|AvYu&Q)A%fH0gQmJRZ80?kKTD;pc)YP&o%%^d>rA8PP#T?(xRERG zxjEa{k8dN}K8c7o&eM?z7OlJ*Sp{9=dLwszt-s@lwW>4y#Gaw!uHBRB49+xx}B)eSr zt1Qnj+4`0PyHpY{E;NRWSt^B^>XBn*@|(MMJ4_(yP&C0#vOnAQcjrILjp^Q_<>9bk zX?d@xWC{wU=dXzyLwydUjJDqxHT3Z2v$=XtMueD{UDQJJJ0F2+T*L^lb62gJaRuel z@O-TG@W+Eu0Vs&5(L=hT?pNB5o-F;rS-jCplMZ~_;$MU*JkQc4b`%Ejhl#IZ38*;ZczrG)p=S)b)#F zmtuosMuVgFVy|j)u|YM-m@h6BmW!4$)Ktbu3BvHVAxF89Q9vA2siKoQnum9I(`37 zs!l-ryT|T(_mLTlhn34J#Z<{7f2zw{Tl}&z=yNsAX`o?Eav?xJFb&A&m7}6AClxxQ z@Ij7oPS53-D4L#W5;unUoY*#v^$RF9(OwV?&H;51`Ln@<+#48BNOq7A=0bUYdp_ui zKJ9Y#CoE=qR{jV$+@i;pashpyBw53CUj&iOB<6RSv=ZHY85F+E^ zweCBZN^psF-m4KPNI7(^-OFsXWHjy_@?2#W&%+~C7pA1M89u}^Ah?y%CxaYYwER3t zpK*Q}bIL#mw$5r-32-yDN0yWi3ELNut!LHZ(5Kh=uKH5EY9@(t7GssaEHG?4boArv zISd~-0gS!BoNi0DvUXPgy6lgDO}>I#f~rw9HT{8w#MZvPWKIBtg#!=f ze=QUrG7|3!Au~OQDS$&wirNmILVcjRIK!9uFUPy3$GVuVJBN!+bTbkG!gygm-l!%V z3ATvuY_(w-09bYr{_sNJhV4Y@l&>I4p+57XX#wYu$vB|kyL)mW0Fnrys(eel7%`;Y z>ipO;=r?RW|83bj;1%X6a{nMkjMDVJOtDfm*eIUBoJv%I7Np=hh(QNY5W04~E*5A2 z@R=H!Iuh*}e&G$VPrn%I?BpA}7@vyfGraHOvd3XAFntoqscK!j=-Yux5an0aCepC? zz-vt0hSQw@wcHz@VpO2?Ewq)jIJn5w1Ty?YMzUEWFnty5GrZD#$QgbC+e9ksQ^?UB z7pxCGfAc@0##CUy1$Kh6iT~<|%Tm35`8{qKvo7gT(HoQL4%HU+*yb^wc9LQ2$F4Ze50m@wDjEs2z6R$|xf`)8H?04%>wEfhbH9fN;47Vk#{F>MF+p$ayWg@i z_oukS<*mZ3f%DkpYy)u{z;8^&?tMlF-oM%VK?y+4*umGi{&-J+W zHMXki$YwGNP)$Nlzd1t0FH|zt@g*+ei%V^F<=}Z(5mWE*z~_x0o?df)5Ex)5tv668BkL3(i8& z2J9SMQovt;_)pYIasQ*4;NkGKt3==5cXsPBfpJg$U+uxo;VWAe+v-73#WK~jC#|%FrsKbpWoSG(;Wa!xg394UnJz>l`wjs0{GVC zSyyxKf?teKo1acL`%$xUl(~G>`tKAVozx9Fs^%{Wcgme)8n{ji6TB36cwiu}(M+tU zD3$XR)}Z~SW^=$sEUy{|rX)chcUm8=wh&0NOJV#1xb9Y|f&X;g>oAGa}-lCP$ z_rWy>Dk|Ng*oh6T1l{SmU~a*qQTuncWZ>$uM?dWWmT#kZxvR^jFvLQVf&rWTH2JwT z##SuSVSvM~h;|V1VV7fvil%G zE`VG8Mx^dDb7{wpnSK(g$TpPOA@mJe3)#vei(L2sgo)6eB?#UOgp<68eq@)kHDg?g z1lD>(5z@KB#%;VPsu`ohzkF=>^8`6;%;W8Pn$-|V$H5KMS-0~^tdBCUJXDJ%h?CJS z-^{lI%=V45#{zK*9VB|Z-F`}3Jgwl$J)+Jk63~t=<-zWi`ZMVtnZN=f8EZvBT54r& zRE(`jygK-^@uk;0tAXhiHmRv76Jz}Sks{z5)Uly;fRJvpm9zEY!zbi8&|}9FkpFm6 zbEY3$DDNepVVys2zv}hI=qD$t(BcDs1j{t?{-xk;xrl6opNI)R98KfG5u$kup=*e1 zF~ea1x1FtGC|TKmw4xviB5x3Siz?FSSQo$zS3A75NpB-Ydc6s)5gm;b1(V zEpe~nfzJL<0?2Qi4LSLBrspJ(X`^eG&LN%vKjw7RenUJ2kLkG|sSpg9{RzzBpvc9) zFo(>U-!KQk{zNP&4yhDqIy`GQ_E;uq_>I1iqE86F2$^=&kHJNhg421Wd=2vEJ`N%U zqxul$`od9e<3EUp{b!~9<2}q-!hBZib-I|99F$auI$RVW$ML1V|G3s`HE;JkXCd2F zAR^Dl&k4g5^}(-;g2zW?L*0dnZ$KR20)2mIQUxf@P1koOQKc@^}JgHphFjg`NwJ_=p7=*(F^4DEFiL z2|$%X9=LUFeM$LrYmYT1M<)BnIxoPJat@>l09wK6I>%Z1Gf2Y6s3rR-C=B*>f~8N9 zFU;V@1m?#OWSjU2fm5Iau4GLK$STiaMAa+AN=Fh*GiAN1 zKS{-wd+?6 zaLoP2Pkd{1l@O{))!+Rdqj=sqwkB^|vdiq0=Y{7C*Q@ray>C zHWDWBxazWISb#K1ule@3_5X!Z^qfK|Y_jj6X0hSfB1XbI^xPxL1tB zevhsL0|E?BDbLLv(6PV)M8*Xjhvq`slKIen`_ZS}BlWnqknhKpL2-!fNiE zpB@*bm9PPdPXJ)>RK5F=bxvs&jlgFnx=3nZ6PA|9;;-haA}TNe+c~%VCk{<7Hd=s6 znX=Df*&md}3DZdRb>3s93dljnD;#`z}$84R7T0Yof1KG;|)e-v+LKmdOBdgfu(} z>QB-w`*880zIZk675=|yhijeUhzb~FxRc^OS+{ zUo1vT%Y6cnc72aTDlsgN?|;PH4*=Tc)Yy#zlO2nGyaOv^4BbKrla22AUd=$b+HIh? zbxSr_?dg8SA>V3L!2G6*%|U|A=`a__ECX=pLMi@0itJ7PK#Ep6TB4uCKZnreh_vW{ z0RST*2tZ)4315I};$VPohF!{LqMy4)`S)Z(2087_bE2Ju9=QyRr+mcaJ16?UztB~i zjzw1``11*MkrOI9^6;J`K-l0K@q;f_$Ejl!MzV%(69K-Yi@f`~As9Hep9!!Qi>4=8 zS(T@6AEf0PYk@HS9bPo*HJQ5(t<=d!QBr*;aT{yAqBI!r)Z&m?VvSHZIZDhZ3hJ(m zFd_I*a^_ivvtKF?oX~F9Ev8HKYa7csO** zsuwK%0EyZp-0pO4G>!Z8{Mx!(kqNhyb(cAWRyatf9#G zQ$|{5ASf7|q~7KiEwo>y?#2LS;$h+?w>qN`*lSLvEqc$7Up@@2#WUV>mK`1eGJ%?i zO>~87o(JZ1Wt1O2^9wKe1`y)8V;aKD$v=-NR9heRSsMg>;X)Z5Wb(;O_mlHJY18>^ zwe@W0SybGN0XOVa%+4cd&KuFAxFHp%H25Aj8D%l%=GAtJ-AMbZ80Oz@KRo(dZ0a7j z(Exo6qB+v<=ecWo(s5_soUL3{&Q>tvv{E^x6T=w#-z95!THST8~n<0)76?VoHPrip2qg zd2i!Ya^!nktuwQ33>@)Lhka2qM}Z36w7_#ys0VJsuGlw?^MVElPjvS+pt|oX6G>q1 z0P@gj`Do$VY69>vI_CpUK_<=vLDZP7N>Rgw0UWKbL1_@Qxke5hXI&&0d2F`rQpD<| zqTH>jL)Ssj*)^#F`*I_+2;x(HYE_fbMUCG1W-VpWR%gLW%^+ZCbIW9`jYG3AmLts)ilPg;nNx@_Wz))*s7N3me3nqB2o1+j$dej*?l^x+r}Ig491bC>+iVzmD)i@y&c_4|DUPZ@75mq0hET(b(?r8Xj})2XHkc5)+CS z94uOu#e1of3e3#yBLp>8v4C&%!r=1y0K=jNPDTGyOVA?{=n*ckkUVbl_acVM!Jyor zyVY730z3YMB);a7`6Ub(F4L+vLnSNsmg`plFbeDWT7&Oy@Ebjc@+T4?#5vrtP0(bi zgdUw5+wv1fm)Z3Ph6P263d0#&kZ>Ej`RTx*JLRZ@^*|X3^#%)e<75bU<2AC?Psmei zfUM)UzmFiED+aWxuG1t$xS(oeuL%ClpXjf~PlEZA2^&zTf*>++qvzFJse6V_`Z)!% zdNZu6TNa*bF2_OWGDM`taoBYXlrbRQNBX;Z_L5$h?$pp#0v~)`5h}@nx6j?&tie+y zLoT{(J@c0?`>LT_00H8=)8mPS?&#-6XkeGtyhb* z(*Km&rWf_r<+99wni#;eP;VE_-Y_sREjjoptjN4a{G)ztrL~+0+vOf06k8yv1l`~4 znmrV75g}0S-212S7PK;S@mtS9eaepp+~%*}f&aF|@P>bRJ|tDZ>D%>vW!8O(lt2m+ z`c>frBg~zlGY4f2cFfMP#K|FS{2&$Q=w_mt{+8U56i!QSEVc>TC{eg~-p#;Nb4i^^ zi9>T0Oo@aX9e?z9=>7<3PF`0pgJbjn&^&xtvggkmYD^85e?T&mJ5jn{>7hr%q0s+AM3GWRlv#$WJ%_P|Tp_qMNWiofr(#8phpfZKInDM(q# z$S@0~KRingi=XjJR3*|<*6P$SdkhaX`l*N$IvVd$6@noUU&K{m^ycTfQsO;6ONS^bX8Bs5`A5kdfchLg)Mcs z-xF!V1~EH7Bml!D0$pG(7$ecm03V1!O-Q}_$!-dF@>Kbd{5%VNy*j(w!O%6h4>Ah# zG3T+<k*c|{|3CKLJRa)z>mPs3 zG%}Vlc9AU=ii}ibop=`^L?L^NrDR{Tjd^EjQCbwCC|i-OWM3wVN}&|8OWBu^HQW5o zYxI79?)(1Zdp{n(|L(`5znaE1*Xvy8I@ejA*E#1E`%Q02NPG3e=EA&J>R2qI9Y#{a zVnYKQvYTC5!36Fv3eKvW80}uYktQcwVLww{%#(CuUvutcStuJYE>8y=xY~02L*J+2 zv}w2Cnh{67CttV%IguD8-o2bohmxP5`;c%i_V_4I++G}QJ&7{tkXJtUfKaooLr+gW zNGjbu7h8Xv3y6#7)yZ(RcN~1D4xWP2~Ap!-Df{5^EXw7As{N4(Vfnsn^z8#_50MMBPL~@9{T~4 zCGVxItFKW>>>hGiITU)Io=Q_#x%P#>z*Hw(hy~fPx%6%pF9A8G5^&8=AIy6`<$iYO zwVFDze{SPK-AR9)k?^8jItlG!u$SIg=IZ*IVH&rDqV3Yxmv2=%_p2_{4)gi6hQOLu z!j|__UUSCzA-x&&t6uxOjUP}87?j2TNUoa8CsbP>(hXRe=vi-M^ifxw6iU*=N{6{c zi7$T`@|B-?P@-Bq!*97GrPKw7e7R;-!^?(8c8FBAs7Qhb)cMAjPt{y~wO>5lEUNIP zrYe_~a`)6+4CL@pO7N)!8(}T~PjjzN$yq%QIyHOU>nn9j84ibRWTFJ%1~wrJ!(_F= zLm9tt=`5IX%ndgi6<>9ap|;}{An{A|xKsXK`h6$EV;-|(ariU*LoN|z8)B=q{djME zGMrJoKEZnQIX|S>gO0JgWFbaO2Z`60ish903nINYV%ud;r&P_o=c&Hx*HsiV!N0G6 zX}fjfEDldFccSow?0iKlz9~Xa*D$Z}f4J1}IS~=#E_Y!$Lx?j&IkhRmvHl#>_6;aq zzaFQ$txQ|GSY7xwLipAvoHkQET1`~l=XIe_68PnTW!7A7X%-K5FUS-4cKa@~_UdU5 zCcknq45^O!aS)apk4LssJ*6p{u=H^DQ=Pll+m_8OyYEnSn^{b=DXkkIhMej2u>xC1 zDaCyg($tA=|LDakI_~y#wWf4){G=(;RGu%4kJ$p?j6K(g7_kyo8k99=W!@DNGyW_DxW%)T5ILn{EVuGD=hmqpEAq-4H~wSi2K6`*?~pJ-F=8QA z6^rE3qd$ymV!gQIw&G}CwN$Z=M{n@ODpkyJ2athYoLEhM@m!0upITn)Wd6qCaPe1zXQbZV1#uWk zC&>ld3e;+BmR0ZGt?vCxLA$&CL;AZ+3&f~J^_W)jVW8%AY0LJer=TlN^xQKQmC0Rk zxYRe*!M~}NC@^PW<8L?JYnT4IOCPrI9S&5hhhX|-d$;eE;e~gLAHTel5kA~w1ph>-3sg~Vlvi=z9e4h z(OP8|TW!CyHCtrV*Y8&rKk_|^!iq20M$|)BS(tuC6zj+@Ac^kcUBjkB^aUaKVP~a_ zexHeGr+Mj+&B_N8+1S%6AQ>`OsHS-VNy2p3@o)_*_58&f2hS4CM4|Td=iIg?kgVij zFBPu14502oyqEdtt9QKflWE;$zOuYECR(g=2{n9oLF%hlRCF%V>-9>el4|Xb% z7UjL8{ES)u+2MwjYs@w$gx^GMU_%^m-YS%hEOq_B4{B8ITohV)xmP^3W5VfKY)A?D+mH!g;Z%emH?jxkd;-e^)}D3q zm0NgyaabMJMWo1zJhTwKF>?5LinFY2c>O-b8s6!)8Yn`72_s3mjT_`wJBN}IZ7fQA z_qD3g-0oeIgKj-N@9yAAL6U|RabFC3cfzXmB~J$1k8{h1tBkj)rxk?>h{iwJ+JPzt zR?6+7svkcojoto7+~OKKy4@{wlhIh#A|N5U;-r*eM(F`hv*9GMPCd^VK<~ z20rY<#?XlCuP*0W2L`xBHzwDfoV@i}sIusxi>w}88DnjEb;K)(5etc&H%z8R?>5-3 zW-*6s{Ok{;OeIzMp(E40`~g$jp`poZ9}5vJHp({Zn}`=!e~Q$dilKI zk!11?xrmf^K{S@3iD&i|OXLp8p_hCaJkF+YvL74D^3uv6xdx`)$YD5)I|S3pid=sA zv)xOJT~46O)8Dn!Y%*fu;Xjk{>Buh|>-P~?3ILw%c$4syY0vsNmmZi!4d&au_XFm}W%Yy3#YMhN(4bMMe?*K&~O2YRgdNr2N zK5xh@|hY`1{11hGgi-; z5d#hU7k>_#(pTC>j|DtLl0Ut4F4F~hy>q&C1`7`n6q)F4nu?7)DR`ktbfcl%{mLQg zz{@P5?(UzcxViIDcxs%#y{XHKsBr)CkUNY2K-mQhCX^dGn!_w=&s)w4!#1oREcfVc zR~(Qxaye>faX0nonc$Gr zD;2c{Ttkvu-j0?X0#dG-v`%k97Zg8nc{)0{{y|l@T=?Ml>?k6%qvjc7EnZmZkibjB zjfdnm?MjmrDV-R~t?95NA-!h^kF~)cYJBQr5eb6%a6iYQbCr;$|4hS=X2)3Oj9r~W zqRYlw9Tw2(9E;n|b4h-AFs8busAu0;c=TrF{D4N5*vtV>3~6slixh?Eiu5WXN;0@o z38El&K^9SHaP2Sm3(_9h&{H-lsXNG?^ikzY;M=JBvis@?h5C(F(S=9 zN{cF9o##&8g&WlOQhPP+Y{BAJ{Jw%y{UP47ay zg21KMOm#;!F=+CQ@#G|jX;rXDyH0?`x9D+}@hJ|_)%vE8M&5orZ3s>sDIZTeH z=%w2Pd2UWO`{1!tj}zUoMBFFiAfrzGvehoN@`C{j4;w{-n-dF9#MuK1rl5O`&}IfA zE_ag+?`;72)pa+sb2nRFl@|G$e}+|bgM6pU^$znZjCIM}IHf9L(mpjgDbQaQ+ZwHE z*I?-rvL8bl)P9V?o`%h;P4^V1G=T3nuqX4{ofo1y(&ZOgJ%7la-iIJ-?+B1rQ%_xJ z-|upI6UYF;i6mCrJ)f~>`J%O6#zOCE?M-?+_3nLZW2EWpN9jcBE0D#@Z#zlJ{wS*s z?HS5lIg9TLk*KfG2&1`pwO8*(1)(XGYP`^#w`q0i4WApzsIs>%Wrc-EvNN}d9Ay|H zyylLQ+oUHj*?xV8yyfentR4%CAJYQF)lLa~6B^75-v+agl21~+^X4y3eWz)RFZ%sz z4by8}D*NKMuRPfCE!&eKcA(h+{Id4hbs zH&!xS1xu`S1jlQhi5I7Iyqu=u^w<=NGI z(aYkM0j;~G)s?`)|07E6JWBQRg|AL7)YZ4uVWc2&Ktxd(SWvt(vIczICg+$6TV>QV$8Cv2Ib%yz=mW*vDQsSyJjM)d> zRn@zoSbNR;$B^t<>58qc zwT}9EF?!(skdoJ7Yl^+4UVku@-B8ndUQRJ$;n9zmH$jBjT!%^NkIhx;pjw8vlmajUm2&r&;Nu@*vE4NxVWTe8D7zKA|Bu z+Ymjr1K?zMXb(%To+tOenO13Oc>jYHaoAn}zBlM5WrZE#TmoPxh}*x^ zKJ2f$A2FOS5o=o(H1#fA$SkLaIIw#cL;vn#O`Unx)kEhpl;H>%tfNuoeDc%II`bj= zI|tRVU2ulI-5hpo&r5>+)Obj!?xp1~MSNJO{HS*t->55I?jNVkQ@m5jfTnQ@4)`WszI;zLv%h_T#5sLK*1p3MNlXnEtYu5+Kh=+*eY6eubS zLq(oXQ*0%Y@GW}6$zD3Rl-%`kn*ULSd;$P#EI)Q**~B0dCRF?!g?b6*Ns`F#)(APv zKD>}qZyca|X^Pi?2bHYP;_l}Zx@Hs87Bu{PglbHdMziR)!mQ$WDQ{&Y0pM}hbe%>O9JhuO|xD_T? zkC%BAiu5|92XtL*xM*4j=SN(Xr0UQLY z!@6vP@B1jxx|$2xE$4K1&u~3NDI!VVSoDFGxJ&h~amwI_E7ixftbtr@i+bJH$)8@* zhALL)4fHKmI`-1w-;hVTOPaoB?bpyYza+# zoPbHxbQCv=()%jZ`$Z%B#GmkYE6+=t1AvXiDQ_b#$Ge}MyxJ$6a&Ug*TnMeas%mD# z{c{f0r{z9o}LmE+13W!xdr)uK}M1wUr3DES9RdY_W>bk1B{ zZLibB`)wK?9xo#cQMdSH^P}oKPG77-Ev&e|=+&z$LQ91y)jczTFh~H1)Ig@fLpB)O zT$I0A*-r=f$-Q23bCav3UH>urMS`u}6K*a?&deUPD+)!ZPsH-ffoC@_xX!dbxTonq zH56wkm$oF_7By-4bZRsLWt#)kT&E)rv=`2e92wQqhw|?R42ytn;;dtY z0{AiM8{as><3b!~8Uy6J>E*K$dBI`>K3I1W+%ot^>Qzz#8FVaH$qy=~{|ONJsJ z)&7HPWtBn}Ex^nkOvVfOgqqx_eZ?29x;NG&SzE_V-r_`LCOBI*QI0}{qHusgi+Gr` zTZM1yI=#M>vbuO10WihiqAVrRGu#wGB}UMj_4*!-2d2e^1lz9+ad)&;T~os$E>ayA zNt>{@*CUq4m$p!MJ7ln8JD3{gXjMK(j@x3D%x#uF5Ni61`q@tlum?)Yspeg9?`;FZ z;7lLJecRtRJbY{+?PK6KVyFGD#V=LyXR?iRd65|9O+K7)RiG?a(@nSDfUt+4Y5p&? zl~a`}Jfx;_Ut~4t`pY&b^1$LsW%E>vC#bV4HLaNwB$mxZ(XGkMGs+O>-K@(O`7ZM(HGF!UJx@ zNdD`lehnpqR{mLrUG$ONSt3nTew`5?Fg<$QEapzP4Xh0q8)0&%j-#5u>o(1uI+Yw7zLO~bH z7Lnnh1?_$AnZ_(CAZTF@E&&;kK^}<83iLmz}D5o)9bZeOmqydh*y?k zy!03+(jKcA)Wz=>IN`X_hP(RH%lp|G{Bz9O^qyT_aJ{0c_JTW3AB_6F*esS9DVQiP z|JhtaO!c}#4#`>u#-+D8E*_OO=(BcKdihi*yGBXH;z_xn)tPbE3#%>~A#Z29#@@vu zzCNxa+lkj;TLt&d6QuN#N08pdRTU9+_8P?r!Na=IEb^6=PmexfXq{3S_kiK=Ow9W@ zCRRUH#XRVMc+ah@JwXvERo?Hz9cN|N4u@Q_XC1MmNCp4i(yj{FwZgZkf~;S8F%MXq z0(PmAP`xs6%|#7mmlz>niuYvPgWX%EN`Ab2_e;KW=@@@FT%0Dx$Ft~5f=O%mU=4A@ zV`W6(>E=Kyov9ZoH3GG?JR4TGUG_R744Gx((#e?I{Ebp2GAKMy2#X5l`ze96iYl+B)SL|XBK7@~ zaq)RC1uJA=j$*Kau80(hCgL z?!tJ9cm#jcmW_=^=0~~+8hbdbesjtL@bq9u!P@z;(tY7|bBd<68V!QmtRxVrldR{& znyv$=A?#R2h$|x9!B7L}YLO8YLb*1A5ng`F1=}K8Q+XaJxt$qBZ7V_vW(w%zs38XR zyzvnog5cPtCy=cK+?qFHF$a>FC>P)~+b;@`*lM0JQF2-Je}Yb|uMWc5RaDJA5~zND z$WU_);40>3__DZmK6BQ-AqRZjA;7O^E={l3rh9eF>OW6fJ1#@%KwN^CiBA{y_^S-L(uk_;6%M4)4@X3-6TKH#vbyjr^(oY?Us zwlWvc*bdemK8?mWB+XDK7}64nxrklX7SVNaJyuWu>OGIWjqYXhuW00aV$s}@z>068 zT0uuyhch-aoFlOt)?(rF5dyn5J?S?m=LMXYYoC(_b}fc|)`sFO2)a*LTqX&jiyPfp zXTxn0RPEafN<@95o5x9ZMVr?3C5sFr49mzc>5JXW#!yyp{X6!$O21}?qp0Q7g^`aw#%<;E z?|Ki2Ci<*wpWsLKJUn*PPJb$aRbsu zj!2&8dD(RTGt9ryt_Q^}Tj1DWuwMK+!;+d&a-!BnMVlsky9dqagPrpU9tQw!33Zih z5~qNlD~ol*cn^t5y)dVo00&%fv{MKX+Ucxu!`Od1=gF&?g&W_Tuin2~y(ST6Xa<6d zV7iJc^JVe!fD3txa(Y@^NX$OYS%MQFN==E`cUazQCBH-LnrxSv!73a=dPFrB3NIvE zK+`c;)*e}cR)7QRRL`}E+nNitz;3#00R3ehgf+z zd3>Zw#O;o64i{3;f1V$^4P0m4xW5JQW3oo}i2Jvu_Q=2*_vrDh4A@Jg_qPvWz>-QU zC)BVVa#qh%Ew3ptvz>cl8~`~CyIFh)PBzKIAoJ_oFnct#Rb(De%SBd;&L~f>2MyL1 zJvN(lTk{IXMtSQ>|I;m;=wfA_Q61#6!w9)2P|b$xV6LvREb*N^kv6ky?NYd@oFs$^ zB_#ja-+nS5H}H$r^8`3o^(|LxXngs_;R;&e9`>FxbBUG>=yadA5VRJ4@l-$8UaXK$ zZ62IgtXwMP+6*UB|G)-ZJ0Nk4rQXIL+k~*2wygT-^x3Bv{f5GBBWq4G+(_qnD|d!W zliC({g{BGbz0YmaMDHAFj4{eUlEb7QQ%EXU7be8AYe9;nqVPhmh-qMjR+V;iSsO9d z(G!Yn&DoeRHChxc7eQN+4%7AxOwE);)pR@4DOS4rYnof33OJ!bQ$kh#tG`5p-tc=a zK~H2u>ME`s>~?{pizK!mrSNHw!}!-JZ~s0iqtY)l^(nRrj;M8mf~e?=8D&z5wJNj5 zi{EqT4Z`?F8{ithXR9poMh&yX?PQqz0rp|18>T?fQpLwG`En#(HvCZ!QanfdQD4#b zGAlrO#xF`Hyfs2Vq^CkY6FSVov}1g58MGr};rlq5OKZ7odi`XH7Q2SZ`?K4TH&5K$ zu;Z)+!U!JIem}RXRHEr~4S5PfO(u`^L=ch`lrx(X`dpdsR%@3jXx>4+IfU|@?bXT2 z1QWM~d~35;3k9o-H?4ap&FN`K@)4In&Nn*&EgN<7!#d(J*%5VehhKMyzo-9k*5SmP zDYSQl>MBpwwL`UqB{eQYB7LEzBT!d9#M6G|jpFw)lePQBcHTFr;uuOn#v8u6+OzHX z1&ZTBz9>dOMl|s3rKu+={rfu{x7CZJjI2%eflcOhw??~u4P8FqcrJfZQ1@jCx_E37 zA{JX7%u*nCV<$qu7HBxD+?8&csUhcMsEbT>Rr0Q>JGJX>-TkEZ%^~Q}y?$f#$_qT- z<6?iVD1PcTr#95P96p1aH``-q3c{ zHY&rl+^N``_WbHzhpsipBA2!EnO_ert&c1;dr5wk_H*%O&-=cu$eV|*hS&=@PY7&; zm!wD!N;+P!Q})5RQkI>NK>h=joxU{nOFS(}`m|~$%6tsO!l?q?n@#-N=DwJ)(@)z6 z&sxTRofAzbiTb+BuftZ!S#qxeW5M5#v!OjDtIk}Y;eX~d&6jI5@oAJ0P2Lem~B}@g?|FietzvJ zv7uzH3!T05Lh)MVT=7>uGr0}@OtT^^_ZeuX4^}$J@Y2bhxVEWAVnn2{h3$%*O8_2e z|6IsVDaWRPzr$L|AvSp;FAz?u#lygg`ffme?C~QVQ6rb{#e6YcqJsX7S!yXL(V6$uYpNd zgf9QhcPx1kvHK@OY%t*z12|(-_HtSC3s)fI&Jd625w36_Rb)ym3K=e&x3!zwi9?eQn_%IYK!JG$f z7s=7mLG^PXr=r|!Aeqpxeds9C6!Ao`C3r}>6O}?U9Mlt+~^9it0$VfSde%?Pbr=_-Hk{X@*|P^j=rQ(bq#qAvFoQz zi9)0CRSyA?TLFF9%^ypzGIW+qJZaG!@9|yFqkj@Y#gNCt2298iHp?W^ery^uq8aMh za7A}Jx73e5jX;Drlp8D)<{rygSv0xog51WG#jj0ri?rrjd~q_=%b$;Stq2*8Oc*ddE)@%?%8AL?6e7pKxu5!mKzjs3ymEsaj)7jmq?B>7b& z{X9d%+=DdDN#(6YV_k|tXBT=li!kJpWS2qx*;}C}w4#^8BHkG?nDh$Guv|TEVuKA$ zKa;JOtV+pY0$%-WxN)U&i_u68`7U&;8%^pt*Z*!dOA}x8)q@n!=W|j(WVDH)tuWX? zwpTXG!+Z3rh>ICD0+ZfOD{ts$tDz`0EOReQjC9j$lw$)YGD|XViLO3}GCIgW2vOpF zpco+a8$r7n&vCVzp$))~?sT8xZ>;#z6ZB!PeE1#V*0hCBa8*cd4tszkvmAHkk}^ro zLXYA5>0_slr)ew~i6BTq1D#6uarjX2|)5f78c}cKg>jZEJ^?2 z@6oAa=Ih_Bi<)l?b{wDDT*NX(ZSliIMGRNv?KTgdE58cfujS_e+&kW(095wp&&vkb zTVGgk+lwrGdpC8}AbsYob&cUvns|DK?Bc^F(KXs)0n=HvRuz6w5?t}2o5m*oYMLWS zNja`n-EtJ}R-c@e#oDvUpbAxLDN6Q~k97b#qxqz0pgsH4TL~?Ve*rd|S2gfr8&qPN z!l;xVeZmHAGlkvQwqJ&<8qGcC!7o+kdH#V7&12AAncHufI#N1E>#;!G$Fo}}0_>!N zyyx?p*|aV-o=DY7UJH_%u23nopYF=buin_ShWNVw+~~KFqte4>FOatlQV4#q$rz*L z(aU`*s&}a`7x5wNcUwagUeOlDwG8BQ+~!=%(Zqz3%FMRei>c5Q14txZC$aVkoyL=E$)V54GqKCt3}+XlKKd2=ueRHMqBlOjk(124~td zrA2FXfQu! z2mf#%xxU~d__`W%g@kVx{WiM!+v6)rmeW#Wv>t9`EcAw6FX>WGfO0Cw^@$|SfKTsw zhscR9c44Sb|DKR+5~f&S!M^)7oSD$&AMdMzxd7%5)YOlioaMhI@GZ-Wqj{B~XaIHn zot|m~q+gGOw2^CN5w|~`){M$^3vg;#JAq$VQWx$LnzghS zSM4BhpFAN0rtJ4r8;}P5!-S^nY30dt{3|c%QDze0omS1Q5~_m_Mf_v{aB5O(hzSNO zo=UX3_ONK*xtrCrqku4lkS$<%f#-xolNzNRkfF;gm{LF2!J{6sfZ3aRaUkn=)`{>N z2aOMjMaZi@jjc`?lowmWazGifyxOU$6Fa_eJ8edCW%Rnu?(A5^&SL*O=Mdbp_0k*k z2~8E#Do0-LRRjLrBO_q5W5pryjNNWjk}Ip3{k0lnCqk)l*ov9plLB=2nUN2cuIe*1 zN0FHpd9$w`_x^*u*v)t1FkPzkOUJGIFOq@mS@7G2+~aKavQ`%G?CR)bHycyLlNreY zIQ;wVgutojW@2#b+;L<5IcIkC8Ti%{_2VUZaO(gU)aw0`-M7e`%PQXKy7W_; z0nU}i^kuEZ&d0=WRG-#j&+XuSH~-0RSCZ0V_hEJ%a@(ooE@Yj;hYyAX;ytqtvp`yp zWe}W{e*ijHc~!-(EI+MfqmG)wH5L8X+OCa_{81>P%*_w{Lyrr=vo~+I!QJ^sPg#m9 ziex4viPJ-R4qO8;6M$b!_~@f4;^0BHjXS_dFuwa)tWMS8KZ zZHa3-(%W7W+cQNSh}BpU^;`Y1rD6+vzsdHUufO~jJS*@OrwBE2(K#hwJIa^(xH%T< zJ?6OnsptUEmA*L~Gp*QV@llIDlcT_dT-2(w6^S_e{Qy}>wZePx(YgfY+y|91evH@; zgPkS_z~we0=iNd&!q)PH?aECLKrw!ohyXt0d%ZgJYmnMZY_nl^CCL4$x8#9$c;Uvn}aq|F;MLVrE6XlT`l}k;OW% z`0tr8)$E(Zx zt$5O3eGJyfkwlyvcA0K7dIT4_jmN?;DqU(bih&z5SP_Fn@|fk^@@$B-s#~rtbK7|~ z(>1Mxb2Sx98;lSjyUxTn>q*KLfAHa0?MNttjQjJPj5M{{r_O9RRa#NtL^>;aDbTY4 zAmzX(@?niZ4(>l6b<6^O*Tpx+NS?vrI}@pIJ9<2SQ5~zikGKgmbc9&{lj_NeB#L5j zg>YkM|KQ?5bk0FFM{Z_BXt1JR#n^43`{T3z-&a}XMK!R6eTKCl59yv(RzaeZIvObKOPeb(^hJBIpmN<&9p&AZN!aB2b6fY7^hNA~`f zl1-HEftMW{VhwD#HI*DA-|g=kTuibIet=LEyGg~t z%yZajNZWs}_emLCGXcOn%}*>*VyYATUT`({YhB5eEjoCI5hY=;iYznLxnU<4@;Prd z?&8Q%(TLD?xvqO*9rdgDzjZV=l>Bv}2gu`wfY1s(3?SqCI!1mpGctJyLvhp#gFz<6 ztDkMJnO4l&SJo$4uFPXYuYWKpfmA^_Iuhw=Xu^*h+!?wW0|8JxwB!JP-1ktTZ`%}GpS-Vq%w1Y-s>w&2yz-tt zp@)nrZ7kiIw+-@0HbS-v(F19^I<;C8({0Thy=yHXIK}!(VAV^vudky_Xs%j&<9+jr z!Bf6Zp|cK3U+)0Uw*muD-wIE)ME>tx?BauxFM78PB}6xR*lqL5eOJGXfZu#IrdVT0 z|6pkPr8h=@tK^@!xkYnZ_NhjwZke#Od9mZSdX494+k~Xj+Tp@Dp|h!dP54QHaHps) zd5}ka^Sn``83A8M9AblC~-h{vyyH zTQ%zFKdMni5Au61h{2|@K3yJvUbXz8H`=ly#f>iKqcgIF=t$|YSn3e2f(lZiqh0-4 zJpT#KecF+~)NnrmtNmHraff7pF0A3y*b#>7h5ycLUe({Ybl9$&v+X{~8B7YAl#(m} zx3KalM(~CLpyv%-puN#p$4hY1g9CfFAQ&G5V7Zhd-wr4=fJ5~aWbLbVGJ?$pl))mU zkn=xExzS<$3AsY7rz z^InQ)4XgPH*6n8_i3!&Zr@LUAizxO7@Z#OQaNRY*^#!8lIHf}WEdI~V{}KB?Xa0}E z`=jmun7Ti9{*ROM$HV*M-v06J{{%LFqPqX%A?>l7ROe`GHIJfbjewW0=Jf+Fu3a@S z!fPfTsHx~Rdhu7U4BDXPB6SR#!m;eOkZl|1|500QBEzq<`3#g1#rdncqCdc3uL9C$ z-uZPTiuxF;Fz$&FE2#IF>1Rb2<{{-%tm!X!b6A^UPZFAVfwmIDA-o$bv%WwWo~eOF z(g{vKUy=(Fx5L{%s61MJ@V0O8xXq728P_8NQ(K%bj7wz2-ex(kwyZeCO<&1uW5o{4 z?t{c@4VT|H6gwc2Kep$5wkZG;k5}O~0} z84wDCb(AUir{A&!UObFGa|lYJk|i!0Z>Q`BKwu!$>GCwGWFm?M<*5TFW8 z<`fz126%=b>BX77&{7CCerD)a<6nl29do_Vc#P!{?nMq1hT7eNCUic z1O2P}ZP?SGqu*!OFswNOjT5Q+`w#tp`2R6x`zQb80{mZJ%OCp1 z{@8*)w(O5D@y8eXm{q zp$y{>nQ*CkOyS%$t~S{lpB%nvhLVJ_^1FVyg$Sp#Y=eS8^`D=om*>g0+xXE|ZGq)u zi^BAk`B=*9xU5}x{cR8cUiokYrwm=*hQ7D)96?*3z^kSCwi%_u)86DuT_K?XlZam# z*BhwQW7HtnLs;@I@oFZ14}9aK`6V8w3{~GlL%lIa>{ub*;c;>m&r60NhDrEoA$|-7 zxy#@Q#gJmwOZ>N6ldhcx3=Pp-O{9K#!{48i0!U%cZ8DU zVZKv`J_dTVG;wmNjB z;N6lJhIB#UC?_Qy;x9%AmU;Nlm2mG0i#|l$ai+U!g45JzlCEhA+~~XUzBmoBJ47nt z9zy&0Y1J6-phUomHmtLJKso>f{vF{_XxyN>5Ib{w_3+n*FibaV+_9W4AZ$FK;~L2T z_R1hQkXs6_^#5yfM}?dUJjZGZ?(fh|90zNP*bu?>g{qXlfe@w*TGCLR3B9>Fpm(?h zEUe&?+Jx!Vg^6OA5h_PuH!1{D^T%lFhvOhu+_IiZ>lVT3c8?ZWdP%IKs93o5ASiS>k1!EH#tG6jjuAy(s z9V#pkVpj4Ji?=pRcK^ha7*aE^B|SXbFnKdg@I+fTXsxN1eJJ@1koUIvs1U^$*zk{3Q#a45 zEjMy{{hbzuaNCW0LGfS6UDGW_rLd?OmM77WlYD2R6cBUKnEM`xk~f7GWyZ#0#^UZBH}6qK*IJ6${r< zjA2#_HJ&K+7_r-@;m19MZh>C2@lJ{ZEbYUh#eLFYc+RHuzCQB$^7U@K zSpDdoYens)puL9LUwzg~hR$)nyD!7SA}&L}7OFGN6hoaUhWG1@cOFhgvwL!m=vUz4 zVc+&RI@@E@0JKR@yc9{7?z1R8f+q?WAa=@%ew;(-DZFZ8qCjx~3O^KE+#y|tA4{iy z>m#!kuovMm+qI#()OBDZ)*AN9+s6}nBcKS@@{w$vWE9Kexy^~_Q||WhVW{7S{%y?( z&o?mWf?QNkXH`#lSz^E(#JTSlS(U`q2bB=)opBHd3+G%j> z>mWpo>48{Qq*gQnItuSJ;~GNcWt97v2IUvK4>2oxBntMihmW|J(IdK4U8)z@6Cyt%v$I972c>ZfD_T{)SaB8hT8Frg&fX zaR;sxuvGysU2G_0TI7G9HvM}anLTx*)fQYESqD;DuUQ?iI|}Q$y8Cc2Ar6*EEPKd{ z_Xd?ntWCusr^S4Fxd2;)n&L6H@2uFXpv}x<4v(Nf?|+eD`R&^ffpt&T#p01UQD{L! zmN0|TEm+SZePdCa16s2EkM12)kmjIU?|;|-MH*LpK@vmtAAEBh$9Dh{y74BT*HM0< z2cX}H7i$eo*kK>t4F*k95Fn?h=8QO27^dUO^?(yIY&kp2U)M=}y>d z@KnK*FQh12;K(Q{@FmgZe!g$8iXrrlg;lPz8|b&kVDF=r1MS&|Hh@d^I3+|tbH%_0 z4G;^DUjh=FT24IYpxlBP7!~>LAlwC`E{fRw@C`OJaZs+l8;f8_cP~1cV8cN$ScNWm z;?IC`JM*e&FXb*{)ZJ*S)p2zAa)uET?%(t?w5#9ml4tahPOCAzg%{zGMr}8bZKMG9 z9x5}o@4t9csJrnzZxKs9)L+dm4N^5#5+~7jw^IJ3zv&ufzNXhoNmby21d1r9vp4!-nqQ zs7wcTpaAe3Y`PL3ZUmMK!0`TYY-q6KxE?aU%@acjhX!8M>L_Cg2Ep(3;YCpBmVm+a zG9NtgSP?155F4k@$YQNg8;EulX+j;mO=ekKQb!pZHD$HW<~F)f3*yf)lxkpjIET)K z-|mRZPV7C#7QELcHqN0N_29On*?;o=z5^e=KL}l6DFAx~JL}iZ+I|?_{vo9u;Uqqg zBtG8+cqJ%0R%UG`0f3w;FPnT&p+rmN_hA*2-O0H73 zz-IAzWCm=>1G@wS{GcnM9A+@~Jm_nsjW~QFJW`46KdkLg<^|qmsxHKX5deIg(53~h zvpK_cc2{_AAe}Z@+7mpof5RQ`kv{s^MT4^n$358#4krg-+>m2r9P(d%ZGhGX3&<}_ z&?T2@<(|X_!hu3NI-u?G5}6n{KinE5`a+}9=X2{B-AeO_Ab{bU(hlL@12i9ZuL(;h z2hQi7K798xW}*ARYpOtk*+-ww58O zg?mOgIG@WL8AzIz{Ps$5!r=k;)aw$9AGtrfx8GnKP#rIGOWu(Uh#OL%tk?3}T?{xU z*#vC`n_8OB;n1$IIOJxdV{ALhwq4Bik8rm@B5!TbFTp7TZ=xXe&4!VrUFemx@DFZg5#`LHt#>VyLH4eGNK4@7>nf1HE9qdP~6yoB@d$i;F?* zn2rC|!y(a;TM_^BU<9&YPfg*H32z13*h;Yg%TPe~Z*yVC!dL_DMbd*Waw21BzbRf2 z(4G26IdJXplXfMGaMF5MdxJC!;;YG2p^xOb5#fXzq%k2aw+X=PSAAwiQ zk}xHH-!D%Ndfj?x_c!q49793e%gFGBehd(&fEy_Wjzw>;H;jI{-F6qEv=4SjUe1jB z4M_AGw1Jcp1Yb_0XZJF;Ofp>pr$pJ;#|Kk>WJ2no<+vD}f3eZ;pN}M0z|pAyx8^S} z8;NmINH4BE48n^4Wnf|yp?7O%a);`2(nTm`^z!1TM8S?nq3)MDd{ECZ-9`X);(l_6 zW+h&o&2TeG#q;GG6`y-{JvV4m7?l9!5CEYcel zABg`Bw)Q*PxNruTKV$S_J0%W?ed)!C-Mns|Mt(m!@&y~31qGrvv>|dtEnXAKXv?-m z916&6e}9S%Q|LlpZd~=Qp4ea5DY9HdpO{}#(|+xIOd2sieZ5pH4}O`a{dO)E@-?=da;#)B1g$+D@hjkz%o?0l?ccYk!AHq;g_EEG&8yY^HGFwdSj*- zQ4_w`{3?R;gvWcnKYRygfe+(ADwo5{4?aK9@_42Lv0WWWvfrmR8bu3a#)dxNF5E{! zdrO*68*QN6gAex>=e83~#SS7y!xVoZdTivkJ4-oD{WqgMV-&@3h<5sb1-1k@UNQ(J zB(m^97GB>WRtTDb7GxTvW0Rl3r>%oDX?}zT|C>R!H={LyFJPQ=qnRJ>0mvIyVkECf zyxGvh!K0kW%;y*TFxXr;)QMn$D}ijVz&@~%mmOA?mws-l6uFVzeNX!ULPXz~a1P}5 zT!VEh&IWZ9_;DjJ{#JwXNR7|u(nrxJ5JIr#h(sRRzqR7t$R+9t;Qa}xG-X8XiqCD2 zE&q(2(XJFGdQCDNny1TxX^2m^!G8yF_#StA2TK%uh%zcH@L-T6tNuclKZbbl0QLV?>G>+o~2ta0!em21$Op5zo zcpOlK6Zo48&jSnQ5i0g&DTjmTu8RK*to;nh2QS|YrJ-X$?Kv!@mpY9JD@P0`_c(7L-i+2ZTkZUg zaf91*b1al`LMZ-l(R17|+7CCf|IkHo9t>#s$NSgYXrOPr*hb1il;zA+S?Dx`busG7 zp_){D@j?~~r3eKwz5yH!<7Js`96lRbQZFwIR3q`DruWZf?9rdSRmL}WK!2Y5%=Ds+#6Vt7CWNcSLoG0_r3j6rtKB4aswk*XMp*)#3Z|qU zIG;#3Arr7P?zuz3E)bUe@slk)E|U_+%`5@sN*gDRb>*@|Jgyj7dk?hxWfV7*hJJL{ zbsskt@pd*^Pfn1Mo6X#ZFYfY%bHR*I;V=oLq#q;r z=YTI$E--oUap7yuPPEg2M`|yrOcTWqA-8lmf}s-sP>NfKhlM(KmPK$SomaJSul2}y za~~?aW$ohPOf;=l6&pJN?{+ZJ2^Ghd0HrtvccW^x2UwucU#03}W^2$(=iAYKyv zh#lbEEu26aO&5#QQ&4gqvo91Xb3(M}G)~d*`9PHM`t9eX8GJ69(M$YiVliZWX%bQ> zNdn|(`1|U`q#)SK+uM6ncWc81r-^n2nf&`TT@`6$l*jwd#vUWo2FlaIef3ZXg!I=i zz&Amzo-JHq%r%3|X1g*1_%dWCGtBH1Kps;Fppr}mL_I@*V4Q}prU^MI0cF0sbhS)_ zb~Ne0nq%C|JWNT<&{hlfp>KF9JDKw~(pI$`y4=>D6FvBI2UeDj`B1s+4ue?_#T`vY z7a<25Qhk{&1$Rm#sSu!O?`adQ*j=`@bLK3iPON~DK7RyO~Rpn1$Ws( ze>DlNj`yDhVps1q1YOp$n6u7qSCCOH14Mzvu1s0xr-2%~+ z2@3;FJ%+--{P2fEUtp=^qd|)hm-mH|^^m`MA@Oz*N^&tLYKoGzg9O`6xh`cekIY2# ze;Mx+R#IN1%Ji-vC;(E*!n;{NG)$I5$mMxO_j`i+55L$waW9slBfaO}G-ie=hLXD$ zFFlFP)vui>ABp9<)|wNqhY&+UZXzaYA}V;u(T}>;X(xXK9|Y>~Hifug+NS zb_shnICn1(;9`EA=Ngm6P_o5AAKOs$YWU36e&&YTo|WpQcYpn)Echvlsj{>V1J zx%7OvBIH3RkVNVGis@uXda^;(#p|%bpIe{mCw9XNZXcXs`m8alhM!TN`@)k6z|005 zOs!!us|4|t>mzp(?kd=M6~_+K0}?xh>`-drK z>u%sEu3S0J&P7PP3fE8-7sVulqUaz@SR{GBh^TvypzIeKikKsN8 zypp`-Ov9mhnRUWMc03OC;iBq?h&CI{QAI%;c%knM(vVPZE#d2Yg%T(5m$`;7YyG+;+!@t|sCG)-uMP2CrDQjD6*0(m_yfgFChEu4v{YD&< zd&QG>z*rnIt9J3ekOg1VU3lx<+A)v9%8PJ^`rnX{v%`yZ)ovzhN4h)#j3%%L(&}p8 z=2OD(a#-5T7j&59hCbO$hNYz((UYWXY#l`OE%Wl<2CjeRN_%C5k3+XY9z&*plTzHc zUQS=Yh%OXF?iMWcB0VzqCpf56*0;4r^5kO2E4*bkQHE^q}sgWiWEL?TRci=v{i2DU0Y_IflxHJy3dp+ zLl7kwr;Gcv5|-QiaEuXU1a_z5c6gSqtuEBr+RS<*GQ2 zG14NDUN=RL7WQRR1y~kGNT6f*brYH9DBN?ctj}VFg1*pC9<&<_lMW?GTbr7j+lEC> z_k7a!x~k#I$;Q_muRTw!0zmyq=1q{~JcJ7A9{>ZI?z5?BRjIaQUi-$ysqAQUFgoI? zi3cKwwN@h{h~`jHRYPNJkx|Y4#@E`3E^&KJWHMUOFIgP09y2?@b7Q45q75fxR0ANh zUm23PbN82(T)aQ2^N+X^?WFJ4h3Rl}=wh*uoO=-^tAw`jZT6uEf04V z!$_F|?q5N!XVdH9>iqhV%XKwR`MG;}U6Bp1>s4ep=tm8v-8^n&%oO?8kgVY)H^rS; zEinVpXo-;nr>6XrYMrp^G%Dg9Kt36c1RxcqjBKj-M5r2(MEKX8iE)#52ddpgHp)+p zBV@k{X6I#a*buG-FSY=0Ux8ESF0iWJ+AG^C3k%GEX<)FtoFP;Thi<9@V%?~*}SnWQknT>PAtc9!X!#xiO)Wk5Lg zeVc%+w*~CGq(cnt~BGLHRrDhG_(YNL)BSg| zKc(nSkIb>ENLfc(*QMWUN09uP$*-92@!t1e?z|?!R7VPITu>jKH3xBRu|dIsYg-zb zycR$sqcE!Frk=dTDpWk?F_!BhKK|Y^>$puNHQEW9eS3nGd;r8Fpi}qk{5AlYrV%;k z|FtgV3A^rjI4UUf80-UTLvQHzHac1;9_gSSA=+WElJ(5J{8GDX260il{FcB@fcRe>8uUdv??}G1m#zI=W5HfZ2`J~Mkz{t3JG`uh!hUC zY%)b^nv7Pi+~X(9ht@UJqXq)-)O3K{IpMu=Hc}{(bfJFoaVXYZQ)p_epsBUc)CFC| z^@j)?^JNoN>GJG3Ul+gBu2_V1?u=9OnPM0Pg(N`F_)hvD9dMeT(i3|FM5J-&oT@mRjw&R?`$8yNgm5-a5aGDHayalis>7 ztdzGZi$pK24dP$L$8Uv+{wPY1ZUIMIgmWp_*<~k33B>_3KU2z(=H>t8)!KN)?C)C& zLJ_vdLX|igQbav4s!G(J8Z0KM>(1|I7omke9_MTt4BZ=(RR%5I0xDl@ZTMDuZyHVN z?%fNNWnszpu&k_Dh#k*=wj_yge$;{lW&ZDQ{LW?TQr;`^YK|?x*Z6uv%GWFA*pMIH zN0*zN!`9}xBX#qsonX*TnX^CEKtEB{67%sSz9IG_=eN5DKRbSP*#shM5?x_0bYDDB z_0iq#%9^VH`MioVEy9kS?ToTBxCo(vbUBXDdd36hfJV>i$Y)?$G9H)gosqw!`KrU-v&1hqHJ1k&?u~NStSw< zM)Z67fPcE`-9jnPot`zAtH6*dj#Stw{E+l;RNeCfEBvU@I^5{|$s6BQ|DM>rH?nJs z&vR~IkE%0g5Qd&HD}0AD#Scw!b`Q;RRdc^(Z!6XLdK-<}*BO09WR1^e&*+QOR)QWO zR|~2cFMZ~gv@N82aN*t83|V-4@+vwKER0+dxq}x%@L+5~OV literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/images/shared-0-sheet1.png b/DreamBeanDemo/images/shared-0-sheet1.png new file mode 100644 index 0000000000000000000000000000000000000000..47b5cd238e18429a799b660daf3a8301898e5677 GIT binary patch literal 25785 zcmZs@Wmwcvx41nsFvOtb& zAtCYZL7(TG^S|Ct`hm@k-|BlUBGgsoFC*v>5D4V5qJoSj1Ofy9g+U1Lz(0H5UydOV zW{9GUw6?eD+O$t9gHDa)*0MylZ>fhGOnJci6ANK*XB%8vo0LozS;Nc{PT-~?gG(k| zNKY*buicN3sm6@JrSnu$N zNzW~&vu^D-yY(|#Y|c7fI)sP!pa?d@bkpg%ESUSL)ZJWIlVIk6W?M?|@I)fTm9!rm zD9mSsg5}E_G;oeBA&g7?$rS=(rzKktsGMt&iTc+#Wn?-8{(-d_&s@}gDhy^qo}_Q` zy$`p#;z4cudCj*&es8^u@;NJ$$W}Y>yDkwHLpuj8OJA)KJ{iUEL);#@KR7?EI^PUh z*sfkDNes_7ebcaNKnCX!NP#_q*k~nMX_@1}YMsg)-w-9Vg{edO&gT&>X}mh$MM83_ zx#1kK_n?9h5o3>pRAP*8g?}NWBxs^fw0R&(kMy`PyWeDMMdIhjXPlfU3>!f)RN)hs z01n&|mK$t)8r0mX&i@*R&RIw-_CD9S!F@_Kr=npdNS9HJ7w5ve z63&KwBc7edqeeR0XWk4BM1DQ>i&DQVl~rY-i1+&F%cw}|n4vOmQr#XBsJG_(yF+Ty zi`GW@do_kN+tX;?cQD@ob-GEZIH8wmc;e=p?!1t*A!ko!yfAR4n|#f9%=1LOJHzY(8dvK3P;V)f&O9OVg6GL$ zQ%>o1pU?A)Zqv;O1rR7JLlM2TU;_j8C0t}uJxZV6`YzcU zqdwtIK-eBh)3CpV(YIF}3UMzLj;+#fLI?RJ<03B?zatvjL88cvt)t>8b~(Fq!6#M$ z;x+M#G)N7@NARQ~L+#$F;!utUEwj?~TMe*f!ma4TO4F^iM$5&jm$V_1>S)*zxj9a3 z(Y{RuA@ZYc7*$`W8KYkZ3GUJxgj9~+Y4mt&-yfCYOH@Rx*K%t_SD1WsU_CZ$2=(+1 zAe_GSkkmBT{`L=&$R`iw*u>i%Jtr-yW;4E7hYF4f=*Qu_7d{T@if&y8SN8|9*V!Rj z*8K$Wk;P>+W0BO%DVpQM7TNy(f%2Wo-Rf~V@hl%HN_Y1R;nH#Kj=A69{*~|vh_zpU zfypQM)L~{-PBqcoje?(kFLo({l70Op@M3!m4_*r4W)1PH1c+})LlM?GKn!*D5s{kN4qu>_d^2%@0OTGmD$j&sq=9U;$OU&)jo=^3_mH_azJF_%$Y_ ztut+?EXe)NXQrF;H?@m`J2T>38QOWTCv<+glV>9?i4R0qlOKrgzEUS_m?M3(jo;m| zf4E>YQJDQ)Y~;0ngR`DiQZ=t+G>dSPy5aWQTUXxx(L%$1QiGG7-LZyqA_?*q9iR+f z7)*4W$cGxlbfc37P^U(7^IwBE*xcLCzLfX~lY)cY2M5bB7JRB&h90Z*sT}cavdfWP zCnNRp$+j=M>CBz|D*?*!x&6dmJ(poR$48hLtWgDPei{pXP%S~}U#UjMjteC+H=7{V zrhb-cZ$ruanI#Lkesk{W1%CT^B+LjFFk%-Na9{63qYI77zla>5>X8}}in4rb9ubxL zgeTv2Zt6U`a%FOg^p%|H|Iebl1gQ@tiNC`;5jt1W3U*|ABXZBmc<1Rw#FM0a7a#TY zxB@Y@CIXh~_pyMSVQFN@0dVe-Q}fO zAYv>)#Ms;nXt<(ag}P@^T$K^2r}y~PJ2|Iw^a3F(J@4GRBE#gPloI(&DjUUUg^9ou zAi)zT8W1jZmZS8!n+PML=4GEUis9iMc)au85AcgfKJ@9)fe`jrwowj^lXFXwo>#Tah#vPGZ#Kp|w6b*1t#FFy^?O9;%(Uj@+b;)2c&Gwl zUgi-YhkrvnnU69X-PrZIW23fxMm=p^hFP1v+fejCwXID$Xt8g)_fri}vhTpYtQ1H+ z9KfLTd4CP%OWPz-xgtr~g?>y&(^? z@Z3s4Gcq29Q5`;q)E&IY*cM=c_B)IuG0-5nXEq-Q_N#!4$b*Y`rHUvK!v&u?pWWvE z9X&RDVaE1f%OHa^TeMjFA|{LwZSj7;Md_EbA#fWr^yTI?diSTP;O2`1C>KljBbFto zPLs(^g*{tTBl*BwLx9yxaJ-qaoZJWSx;9E+!J{s>DPtmAPnQYl#11k+-=7WghPiGp z!#A!Ze^15_4rNu_&|p(l0tZqA2TDvAQE9|ooyU0?)#=Bo<0tO)N2#??*CY{nndn>- zfA^g?BPPvB$%;wwzUmU#LKJ)J-46^mmSMRZ)!RD=nny#*8G|H53wxip!;J|?^@Ntm zr7M;y^=r*r8p{4e2Yn8IfK$Pb_ZzseA<`RdhIlQfc3F^?g~7-7UiPyF-_mi_70+HxrKUbU zKc0WT{7@31Zf*}u{)eTu0?uL$OtIjh+eg#!W0H>>+$=)Z-}F;)kBxTsKps)__*$vw z*0cRQN{#_%dJQ(o@o{xPh)d(BpYb8_+XZdw@y*|s7e~zYUS~dix^3~-6y0KIWUu315XCT(zL|P9VL3w{Cr`f1)|xi!qKUAU z0fHk(_2R*vYP#u_GbU+oLmugQ2}qP*qP@*6BdgyY-_J8Ea)#U=x$+!`&nK(2HGs_+ zfm2=~6VL8@ik7VWYExL`Eb?W*u~6atmg(qm*sw{KDWa2p?#`EAKZbo$ikzl+o0$;m z%x&O^n)Tk#zWYJ-jP}fOH&XRq5Ymr@nW*cJ{&_N@M*4KOlH{9zIW%4=_-sf>CCGY1 z5yZ06;DqG57+OtiAol#>ALmhH)I9Ami?6+Xls$rv!(T=tNUfgAVM$VNNowa8&zDX* zj#xeLfIcQZV-i+SA;~=(${>v%sptz6J9sUdj zMJQ_lt-JlBnjUWKxpIJDY7#o*hD7(jh=ycyx&$hzd~amYFW#v$$c?X1XI2CE*(v{) zUttCNaX4#1+EBVbTpf_MyODS$h2tuYNZYh-u@*KU(&5m_+>}sIFl`4~C&&u|(Gj_+ zU>GmVqT(b7Vv0NsH4aPgTP_P8_d*J6S0vbfW~4^y1zzRWDJ4cMU{yO!H>KjS3~D_7 zz?Hbbxx-zUlxpTzCtDZ8`#!(R9tP@kMz4FTl|k4l9tWX^Fft*NGEu^kF4ts;qs)k@ zXKS<=xO7su*8*W)_r%L1CElqUAI;=&J+5_6)8 z#m84pTr;?PcjC4z#|)hl6wV`uUQxA8AUm^wL>u#oMWq#@giRX>f`x=O`B@I~R)3FN zxux>Qpf^CS4o@MSdSY1rdRjp2hkbKhL@$uCX63zV=R(}_%Dx2E@zXn|dveY%dvc>! zvzgu8>cz7+e!3qs)!oW_P{xO_RsmNY(|xty`x>2h**=&Y1Mv>s7lT=56K?95`<&JYMxBtIPi380%xyXSZ8|x~Vzf z8yN<9MDG~BHGel~v8_z<7CY8B^MG&I{)B;<1Xd{MZFUkB$WpC9$-a46~ zHpf6OYxP`z)*`YfBHwO_t8stQ07!DnxNRbB1M2w$z(;g_`{IU=he&n@bIC;#5&rx=Z>tICx0Gl|iD zGau=V00I;S7aL)0%?TK8!ao@v&14kB9O$$~$$S$hu0DwKi%Z`=oX26M$jg~{!9!+X z@Jp7tA1K!&L$J$-=hd>&@K39=2lM=g8nYe4J1prZEI!Kz0%KF;)aspKL|H@U-9?wU zvr(nkxAF@}Dhz{B#5ix)KRz#R>6N$?cv|I4!;8`Cp@sxli6>P&7E7+$X~D$dASA;!@h%fYf4t8(LCy1$50dusgMT5YoUOU z;u^~QbbfN3bmGoIo)CN;L+5w|#R+C}@+cDE-sw&>&Z>>GZK!M7(gJ8`?=2{RXcVV-H{C)G+xCG*7 zhrzs&mChpQ#wFp^by~|Q5wOt&0n9J=Q$Xgm^l?2rqIN?kYUM{)FUesTuwj1-OWEff z!Y>`vO?vMGA6xU^__cm=T%7lHREwTB$jEP&4`+?RE)6|{ydU3*6SBkJ8p#>U1CH2b zNb*4u4MG_ygt_Y;Q}L`nu(zUKX=;M7)ABo&+;0h0kRA2-s+>D{vb|!q+T7uXkuX^q~Ik&WNji|QV@(2 zH`19Fg*&fLPc75co$0-#4>dYfLM^(5Gm=r>_{Cc+bDx!)6PTGjUGP<%PeuHKLAgx$=ihXgdXEb5pKV*` zGq|?^`Dj|z1+A7gf`*zh$7;_DRT~BJ zI6Lt_pLaK$aTb^0b8xN&h7Nb1XCc9B(PLlBbvd7qoWNmmK-$&coo#th(!nDPw@uj- zNw%AwYevUC$1a_-lc`PJzJ*jM0k=T%Grk)zMvXg_RO~MOI8>kyc)#A8-MdU+852^g zWEdq>M0B6ktcM+u_W|V$^kr}CZP|f7@UAD$7`Ykq<&y5-dQVLX#E0g+lV6)+%m}xp zI^(I@rrnRZ&l7U)8eD>FvVaKd8c|!)8|uNZs*!hYS$Gvi0J?vk0a z%p8rAz7_E7ubPYVBI6cE$Q5jTpzx*pr}qTa_D52b!u)9+cd5i|=N-`}Kg-c`h6JW$ zcGX{^llN12<6HdN#U!qDfUI8-Wc_G)c_+BByN^u8cG_$>@~YEnjkpLR z7J$!2Nsdd5>x7MFFhK&(Y3|OCR{U9_`w-PO*|F5`m7;c=kxU%y2OI%Rl>N^HJN>=nI*? zQ0endBfqz?gdDLFK&`$SY3U*BMs%+tR*_EJbc#*mz8%N#_fY0Meg?!DQ2q8y99Mba#1Hj>XJM0qT4mX!YL*`37PZM6Z~YQFT8;VK3j zb1q-?H9omCjCibUZY*cd&U{FWEP8g*J%3|z6VzSjT2s8gU^4#u`fZxc8rhJo#`X2uX0?=cbFp){hS zeO%#|)ZF>3{06kGjg*1u+;fFW{K3X2{0&wHkgf!P4?a>gpGJt(FR|1p5uf1=lMZqh zAD!ii+v>%Yvw6=>`cbXgktpCXEqY=`XQ?#(_KxoyaKj_mWIaG^BN+w!_Tii0tttK6 z74~6os^bZt^(v&0l3rLm>Y3ixjSbdk?}R8~K?;VA5PsIU7Cpgch4@ed@`&uEyWvut z8F91@6tK$buf}?Q{ae1NwQaqq&qlyB_o-cTY56kTh$|{BRGTvMKc}*Cf}8{%3t<4Z?)rJTE(Bjn_rgd@p2z$qmO6(Z~U-xCF2jM`%TGo zdL;{Np#s!wqMWQs;UhYlghZ534O3#a*DT*YK;l6#RPB(1Y|H^>VVt)SB;u1NvH}&G0d2TPRax+UdM8{Cj+NCXMeZ%yc7cXg$SCJN_*-umA%4E!Ft& zoom2mnEiT_Y(ITCYgEzq&Z6LQqA>OC?~EO9jR`t`K~FUua(tE5>HfI!5$LnQKX3x& zdF?V)Pz7_UKar^yE*A$+r_NPbcPFDeq3R8MrWGuIaf`@^c?~iNTTW2aa&3K2@WmlS ziej{Z#RoZ#a&ghTc~d?S{>Aw6c9@Kfr}xycOT?o_U(du57g5CfyTG_|B}803=Tt9p z+SbI>H10nd5IQ@Nf7PAc++KLb;bNMh?ekDlNB_=$--!^EsWv|k?CC5l^XlPh>QJ_V z{L_^Tm;G}GB49>qna_JKExNZwn&V&0)tjGqv!u2@h0w*JUKO9gZqlEf`4?k8KbQIQ znRcI%YMjsQj~dBeah*%^gHiw}9iruB>~TM>HdD{d>`=E&7kJ^k|G0$_WOS+STkgSpvbwSYTGh}n!=C4VOS*SU#@wM^l+ zG?{&X4!@|nu8gDrrSLF_IOk5s^MO+x)$3FsAWO#*nx&bjS&g#%Qtij>xQiUI*iC$- zVC1Gj`bK+lAM4l{M=scs*pF@6qA=JhkzZ8K3^FF2E>&m6Y{)GeMe@$g9}){ zS7LB?h7~V2Kj(m?Z%aa;-^n_*f*&4Ga{K$S#k`mTW!=v8VfMPMEg? zKHuq59q>>jFWz@?e;E9rSf8dVYiTt-XhBD@yPF5O@&U-clf8SPBGEtCw7168L}^~7 zNb>12=N1VRf8pzDRf%V@VzL)m;rA> zN*Bfh!;oy5*Y|G-QAe`+UAukLO2b?i$XPEJKmOZjY}Rr6%Uk5MULv&AT6Er(32|bA zih(Ya3O-+?4<24g{3wH|2m0GN8OdJ%-QLr7$oOz^J6qdnkKF0gFN=C>!he89o8}g_To>53}OhrP}XdM?reyt;W8yot+?2?aN-; zKU&{bEld&0AcAZ5_)@Lb0V)ZD8t8NT9<$C1>?A6A6~DIv9q(f#Vp4Spbro-W6clYm z$Ax(${{_5VeC3Tcvo<$MAMUNqU`-gCn8-+$4vLbAv<2S~RBG3>R*Ft;7kJ(f`Y*?I z8pAEGJ$z8uCsaoHSPD~TF?M~axrVB^?S4xUuhhrLf_J1#Pt$LII#5|SUg?zI29i+H zA5nNSKcNWjqVBGsQ==$zpz7iBRH*?SE}}6SRGCG}8iv0sU!)v>;X%XHn1P83lUIX- zf>qg@!apiX1QqhAsYQv)9bN8MXRlV#t`zpQ`6fy2#ml876G5nwjj*oIum}VgFArK(!L)&C9r0&YS${q4%!t=goOWc6U_Ae#IDXoKMWQ;wupm#E$lLkhvE;4z~9k#T;-fw3aAj z?9)GeldPqvt}WLUfdY}>wPJ@2M@~Ig*FiHMcU2mFn`o@K+LpZ3&drNI&x~{ghZ`h9 zy4`=_c2lVl7kPnh@+xmSdvQwoJ2c+bcO1id^MFtaeY3v+%INIH{=^XN)JqU_zM_EE zweWku%P!%i$lupBrr6UnO{Tz0NTvWUE@H647XLFhq)BUquSD4l$3+{vha{ZNOqp`F zK4BG(kJr|Hu$%KKw~Pb0^QgSnv#&pGw-woY4OGyTWqY4T;mSWOXCMrpQ{(csckkl* zop9In!CnBR$W4o!e=JqSLl#tOn;^fRKfNu5dvX>*-0vbnG58L8bl+jf?U6cN!|jJO zJVNh)YTv9aR^-W(G!4uk2pnD-UIpMuC?YwTvkB%nBmbipr{z-|`?6kW{6lP2H$nH- zj|!|UgZX+dlyYs+Lm#Vod$jjtphJUlLXI@*J^u2VuB(Jf{Yk+3J>#|2?D;Ctcr=nf zAvSkZpD0B0uKxY&FQGktd~w_v$EyS(>9u2yB_1uoen<6@^-N5hMQ<;ox~T!Ig-f;+FL)OuxK;DDu33fvMsOS6^6%y zi@ZS*PHT_zo{Y8Vi%_a#K@GC#d+uLQlg-5=hRu6!7KbbHXMnV|GQ3{s#mKztq#51g ziq%>GS{nU{^gAutOE0Z1e`afBe8uJeShkTQMq6(Hk9o8w@nq}2>?ySpl((^Z69$BB()#hK{Bvc%&X7W`v?4G^Wg2J6BXTSC>68$ALs*3uLBe7@l z-hRQ@U~05Sq){c0wO{c4u2oC6>Sas9z5O zP|5N2)CHUwdIqz@77m~4+}CK|&#Urrt81c>y+GfbT%j7ATTfuYpX8DI2cLyXZ8qE= zoUt}tXM(@LHoW}gepTwfzq)l!@M*-d1W;4`)KX2FM3@?fdDQS`t_|(y%QAvUV|pYv z{>vDcBDQH@kMh2TWWb}cK4TC_eSAB~VDy(XX=)?hX_{-oV5uLPk9g_*{zRI$bZ@HK zlRC-#V^scB*`5`$=UJ=$5u<_@t;fYgh`dt$TMn6Mttm&i*c~N~tvrxhi?6CPcL6zm zQ7_8bL#5jj1DW93q0Z=Lm)ZOBD*jV7GAS5!k(V1jCiOE0^dyw?(q|RUK^#zwy}Bp{tspf#YE=30Ko=(_LW<~$ zKJo3v+>zv)CxMe+1;Rqs6WdSv!~2MZ;QLgnsmzAn==z8OnU+?%6^sNrAt?Cm9G=zP zcqIjcqw%lMku*MC@gK%?F30rzwI0XV8ztzbYyFMtYL#tyysT~^w}?-f6yVOxu1YVW zQH6qAS9L^K-F|OwPvCG18P$7iukQc+7|h8j;0NP6tl&r+5f8!NSmo9^G+g^?wcM!% zzKQ^x$LZJ$I=a4GeJ4+^*|JOlhuK%Po->^m?#9jhw`Z#1zKvQ%Ry_5>SZFA_98fUJ z1QrQtqkt@}xdEE&d*5@~SKjw66(wZ9lI()CxBopUFy*8NZLDu$6%#PJ*DDCyec{jpnW+PF*r?|28YnMDYXV-_w)|br1Vrph-|o zTFD~fnKGsy5$+Gob$&)-Uofq@RN!A+_R{q>LK*0O^Fl%OHMDQRiPF%-y+G|I${-rj z5|ExZ5#2t^@amTsT+J}Mbl-~iIdqz15Zf;_{i45F99X2y!Lg1%xpT5Cj*R%JnAZj{ zxaifv>IMGTk$Eeh`Gb{|rbzzYRot5$Nu@w!IA1P$g%yh)o(l3G+STJT{|2OquEY&d zPEo95v~w*${Rh5P)43^V=aIRCO)M^>_`hfgFMpml5-*xgOg3L)#A`Y;;^c{l!|EPJ zLg$Ah+1oGoXIeD<_r4WA{b7x?t#5vfKqfr{kR^z=d8ls^glGUZDcb}&fyPM4b9^YR z`7+4qa6%Am2(z>{ocF(g-q)(8H4=_XHBJ*_Ox&HtYxLZM$$~VFxhyRadkW376xZFmof72MkW28RJ9+OJ=A$co-4)%VvH37&2H%KMN$ct`xawH<`J*tbYFzSrm+^|@*;A8 z3|KLkK7+^~d6!0Jao)BEH$*|p&g>V7>Bxq6*Pg6o2hUAR`qD+eT*gYKQ-bemXzjN_ zLeRUkE#W9|-oLA3AfFwX;V*I%vx^p z2_=Fy1!Q8|3R2+-depo#!VK^5C=SJ?hkN?2NKr=NX(zULq0GOz7e(|BG{wyR15G1L z$$pw>*m*6YIF5gW>%WM`2Fv3gt$y%cD>ifzpYwXFKp4C!{cclG%{AhgDn^DNJPBXt zbXY&>Ep8TqspL&KWw#RnC_bA^+Ue;sF?qYzO}=7wgJ>6}{BE9#gCT7xN&Of=W9E5i zh|hHDaOb#!9Of&CcLa<|IT?lWF9#5AgFXs;&pAXWdQL z1aF6AVV&h_VsRPV)-&&+=%eZePi+ah*dmX|g3+MO={9cuEOYjulkq+D$fKMcS1t{6 zK@bo3KDCeRxb%-R5%%{4fM|r1FKUQ0)*sqdL0Zp3uDw2C^-IV|RM>mKdxyyUQ#rOe zG#S}vX=+l}HrAgKW;Ag3TT{CS)jJnk#DZ#bO3lEX#(iS?&{Nxt@*Rm99E+ARY<+kv zV&s-|gXrN5OhV$tgjM`{(WN>=9~Oyt0ZzCkSGpUaOiWaERZIQ)gN;`IL*4s{cXCR; zLfAYX)TSyiefLc>sty#nL?x)kOP*Rl*I3l!Dtra*#%b%bP$D=zzTrQ?P$@tbKA$)3jca)Vddx(##A}nrl^|1Y=qfj_&lY;XD<+R(t zb|@OfF)q4RWJu*5ud|GBOA@t2NJM_NpDZZ!HO4l+0x+~dy-*i_u78kpd zekkL^k9s{#ROSaOUz?1fL#=)c&quVFt6;E(dso$*@ziI>?&gr62HmN;%j5q6E7V*` zJEyI8qKJcC$177$Cw=%moTk;ZOd033m>d3K8@Tr!_PzZWf4+v$8$O!g5!fDF^L@pd zPkaj5`qS~DiLANt;zB@m2tLlq#U-3mGgY>AlaqPh)iA$~-6S({C%|)kkg@;Im@}or z4|Rpp+*gSmhe(A6bcJ`EyKQ~)tsT&{gatRNMAlFV5IPKMoqbnj)a@~YyJ)*3FjIwt zCcY`p%0Qo>$_2G4#}S|xZ06^s;;xrX4C^ijMn^e?Z(3~ict^`P+|Mv~3(KCe>qI|f zqaNd?9=|C_sx#!$bhj9k+8JBZ?!I3O7)ko%9AR?N|K(3?Y%Es5)|``)PQ-9eP0lk@ zxj&8@HVabY_)pfa*%(vkvx>eIPYDTDz=24ZTxC-A@p-0(=_Q=7tXUh=O_0`zM6$a* zP-j?NuT3`E-avlFOBd^pc-{6t6zcK*vCH-+k)>^riqc$^#1RrE-)^rU&P(swjmC7! zU~+)jP0H2Bt0eg!42ATT$LqEtM0OTlKpdv81^*zGN_i2%kkc_qts#@BO533ub^SlQE0XTirLTG$wv`2eQ7w7&7p zxPoHV*eJJN>;Q$E^a`v{ypa|3u2^u-@uL(Q2yphPEv*Ok^g0mOCi@GLQzY&|ly=kW z2hPEw`jcyF8bHyIEyLAE|K(AB7jf^fKE*99=1tf>VU=UX0H4DY9chI?B0MW@e0e%- z-}!GFiDr|mu;if+z`(}gT2oeVu@8;HR45DsQ8@0yyr-K{6#64oiM>I4OAI5$dx}_2 zf~)yj$e_x8m!0x>?cO#WNR&W@YS@^*47=C=kQ_3iI40b-A)K9!*5kL>#{Bk}Snv$; zxO~T1%>U(6+dBq~0J_fVs0wDjwdd3(3d1|?X?o)Wp%QikwqWFg(phwFU7y!HNdX$* zDZ{^bYC*602`Cm@Vi8;4h%UVeQ$d4ZOnjyITI3Cv~|7t+l%tY}r8 z>b{iNKg7E8+hd3*dW^8`Ky^X4F!8LQBH8} zk{E(Oa(wkRe9*5-vPAVX)L9!mfE-CQ7>&q-lnk6NxS?V?ZM%3t^9+Q}8Q0(BQl`^` z@8q14Cma|K(we(6(O@#8g4YcCruxI8a`RslbUzK z5@i6ZQOT&Y$=6N*G1?;;RQjfFr~G_VCBUs&i{lj0u*=v@M2S86nzbea&hRf76fIYL z7BEXGEcK0IFB+{NY&_kOMYg;1;y&x6CXOB|neTXTX>&4znX zI7zH@%I(0-D&beNByf7+irvA${0bAJ2YDgHJTvip(hMXrUwJ@hsW%Kt>0b6RC~)_B z|NM6mA})Ulju?hO+}L<4EJb$~-(oe4$@y9#y0-MoTX)s^3fKgRD?^N4_1u>DoaFWG zh;>=Tg3al*G}IK@*_@gC{~#y~IS89M1WcfJ^zNNpjhnv0SS4x9l2T+UF>O&}b_@*p z`=HA|+VN*{9Zm7=|GHtk`__bDo7-^z@P{dos&+5E*?N%3_S+HnOy2~xOJ1gpq+Hk*4goD_i>!JoDbw}60JS%DvqOG1qT&Z?*}znI6izm2hK=qxK>a05 zpHi+ZA)8dNMjUh(qnhcOp6`Bey))SU^v`|u+!J~H53{74NRZEdl68nSF1mcCtbGvq zDx(@NI7G{oZXP(LE1rs6p_z|Wpj=fqYZUxeCImt71fjqGUi|Lsji zCbqADX1p-?+P!!Yr^%fVNaZu)f^qz;l2b82fRr%cgh-y@c9y6Ahf5i=z5{!`p&%W7 zslD(iflSBr%3e%hp8GA=_qTz8QE26===xZ(Q%HaGtO-k~hS%7@C%{|}fdM`4%P$Twqq-2!^P2F|ad*O~tGt|@nG zyu_9jBl1ckl(8dClhZT&TvZ2RUocA`ITV4*8c1 zTJA`%j_%aJJ~Pf*$USnko*3;8++lT90)Q+A_T2dlOLU4%?g-}%Hf1iVV#MhdGi(GQ zoJJ2uTVCXKA)2XE-bKyg6l}s23|yaKyTH{@y@?r;XO|!kpPRAl>PZYYFsJ6|0R!WE zO{&kw#BW=mM&r*1nCk~w)G?^wAW{=+uxZ6s|-Tb$k(@zdw=g?6N2iH`LGIE z=O?vFbN57x#0*%yyj-}5LC4qvs(Gxn?+sx>i>1YT<2!ozr>sTYQ0YP?Yn<53MX!pM zncUUFlFsLTXY>bWyTEj$gPI6-YUjKp;fgFVLF7BBBv2B$dI#J_vsBx{aW-DPMwC%6 z;4hteagzpgTPviay{Gc<)a;@^SUT|`0};^K;VEbKu_$)DaW%m=#lB zo+m9#3&tO$p%;@kM1Lo59u%7=-~tniAP%{pQ(gmnf9Vt_2ZjtZKR+S*$90lSH%O?S zZNzS^JQGp@=40f^uO%liKR}OWB$N2l0eZg*QbdHQ!3HK!S&Ja))39v>AlpWCVnTKC z%T+f8A%tdsF3%gCq)@u+r6{>~z>eFVbUYLXpI-%*t0%oMxS|8eFA*)#rYbau|Dc)V zIRY*(==f!X_tUq*?2NPbwge`4oiEbx<`;nKEaCn`Io=kLvnO}$+JbBfXH%&^<1x43 zqbfwpZTU`i4!!OmTk3GH@^@YHUZ;5uv!nbAb0U_j;M0mr&rUf3WbsP*)hVM`2>SF6 zLs)(!$2}pQf80{pTKHR?7j!Uy#(agm|Did$t$HDvi!0@0ZByXGxL^ACsdjY`0q9hi z?ggFF(jo`}LX$&bTd$wL9bA$Cn&|%^kGZ8(Or$SO>7tpSYrl;Q?=V4+dH*bk4sfywD~lIhHT#RnMv64ZVzlB?jK}T;U)(AN9U%wmCV9G;GR9 zX(p$MxY#Fb%7!%HJiPhjdxG5KE|gCVKL#uz`F{qYUNl!f1Em*h9TZX6-BrD|9*X#v zj^``cWrmMUS1oa3i{r;u=MrlK)#f!PPC=0Nr0oF%IMOa`2M1-w$g8D0G56^j%Yk#J z{}C-;>}Av^DxrTsisvto(${X!fWY0D%~fVh`>PsVwb_Ixsq|!=wfZsg3HO1nq>q02 zCOGi8c0-6a?h7N-HIbcz>m6`|HRJ-={9C{4yJ3~~l0}pl-W1SN!Am zSRUl}d}aAgxe9Uf<%@w$c_now{w8%?sR%V^IKD`mmme}}1ZW)S6+tU(*^O=$Y+nH( zz;n0vvWdny4u@F2xw=6vEniow>DY`s|_*xL7Z3aJSfHWycrpfVL_m-)*;#QGta zuK970^x^&2)8}6y9y1KJKNQ94j=zZ+WhV$hx+iUYi?64?z;HpdHslnzRwsP~)$+8y=7}FA{K6`Y13HouS5Z_f8%%!3*c0?1FZMB9zphlb!!R5pQ znBL8GOwD{gHvjURTfzMcpSJCUj>G%-mghaN@AiRLBg$pPj%JY-N9Be?hDU2|ANYeIY4P#mGKLI<`i zm+CQ(lbbo)-otHPEW4}w`~Y&BF@5NwM-E<*FdCSa~wX z*5Tqn{U-B!088W1XS^nr8HU|0wy+;I*n^UDrpNxm^+hdkp_Afm0%tVi(0j zrAHB!{s%>I!m01M`cqrEaABpbj3xcMxY@HN5y|S@G_4h;sK7lDZbIP|ZBSoOmUY0J ze2Sfc@(W1-^Hs_z*>-*ATpRbHAczlxJvU0GuevQCw7T!|v%XJHXoG52?Jij6VRv=4 zLbi$2(@$pLtWQTh$TpG1h3;ZAKJyTt$vT(mQ(lT3WAeS2M!PW_m*BtI@93V;C5I6H zFc7|yX?vQH)wmwBx~pNAby1KaB{M%Zv8VNd;?sJ{d1ukfMB%p)U@MF1R>Pw@bq1Q0 z-0dg%0kr}W+2A2K26ZqUW0!d*{5MwduR1Z`ESdY3-sI+@*XmOG9GlKBhFJXvQ++cg z7GucN>)qL7NCUEnQp3d+R>ABVT|f9u*%BP@|HD8{_nIgt7=ku^0v!3ZW~LGG=X!qG zWC!I2X|G#B9Ee=W`Nws_)MxcVH5Yv(F1L4`W1AYONS<6^D$?>mTDi}uA6KQsqO{y? zv6mtwT@gbh9U3Z;mUO_|;>{FL&BpSeCK%OYRz!Rr1B$1Dve=QRhpvXiVE9j+SrNuN z<3)ahV{bjwOzO64BO#Rf^--%y<>U>arYPkll{}mi@Aac80_tFjHsNfOY5` z9sZ{m00EkWrb$V%zNcw`aiS&)O2LN~pprHmJnj&6ru5|v1%2SBr~4MvNZr2Sat5qo zqG0fa6m;Wty59T>`-@>5T)ci+HbF>Pc`sno1n7dyhvz$lWD=eU9~O%LilF(816tx= z=YwvP5MSwx+wDyhe&zNcNP`Ai0$L?^BD zYHvr*C*E`szwPq?ODs&-bMG|?ZEbs*2f>?%$^@>2fw4)BSZ^rNtu^!m)SjP)dW|?3 z_H&#g>NH0QLavy8aq-_02sfo=8WU>@D_Ke)R_g$NdH@X8%c1_lJ8Waebk(5L@1Pt` zHdbk1V7#xk+Sj;}HgSmN8;4DZm5Pb;hJl_}>^4TZG|Bnvdd!h^kQJbEBqfK?@H!#MI*4a71A2FBi$2-3-`{?n(24}Fvlc)o~ z@JXjd-#tM_Kh9=%G2zQ$pgWKw)*ecEVu&2Db^tzUrh7o?CHE<`TrT0nPl83C0N45veo7E#376-vW39T7Uj`3EvTz67|-29z$?U zRe1d1L!^rS4In4g%>SK-;y4R!rd4g71|wz&Yt3d|$F9UZ=}@L;l!pzV{fFbFEc<&7 zFyyEoUM#xBwC=P$IgwIiBS7huh5Z@^nD+G`#6iSZ4D6VgI5NgGi##C0jf#7d@;N*O1zZ6Ldnvgs3OM9At+6kB~1mKM8;ut4tK@o_X2+ znhz*wi~1%>?EQMzMF_h>giM$m4Bgo83rp&&ANi|Zsx<_yE_QBVqb-{qW?S!?W3m=y zQ6s77I?$<%?0k!we_+oa9e=8>p3Bq4)V8MAi)T*PelZ7CS@io3w$1On!0u9)3HI|X zn4)wJDC6koNuQ4sOwR29p8mxG0+IyC<-A3H9N}6YJ(68~obzXPmpU#MsLwLNVE*?o z<8r9a`DKw=nsf$=AN#Qd%*?Dprm63tzGnVHMN7D>XPKPD9evnm1>+daIexX2e)2?- ze|b*$s0c_zw951K@TK?$wXEvye8(vsMTX5SVNC+Zpd2cLnqcA8VG&)GzS7UQu_bim z2o`_91xG_u>I^O5UJ!a48P{1 zX1Fz_#A>4qoTK(F^vd$G1&~76FNnghld3xpkdF9TW)=UTyw81}=zR;@>X#7(CpuGf>G3 zq*EY!!Nw6B>CHvBL-K`0Tk=M^GK}=%Z5A~m^yscDI6uC%=(YZ$+%9NH`D1J~es1sf z&V?H*Ey$!&bX5`Bm6soveD=0cuD^fxylYqx;TEEqjreJ?;n@vzfMrS`Ni*i<#G4fC zg7ju(T;%xOt;kMN`;JFl{A9ER{njhun>~2u6nSPBbV^?9E_MnkaXBQc;=+GDMc;9M z`^*2=sP2u>n2DnvwN1IFJpC=$6?9;#0Q8m!I)AWqCiC>O-bS0NU@!B6gV|E5X!SdC zz^2t_vd4zxTqGj-Wm?4LW{Uhl833s0uz-pJ8~3sWxMGKx(^0y(AXKo+AQhij+MHJk z8J;LH$SF(lEQWf+)`7M#AUlMd=jx{(KHnJZlbtiZ5FW^1oCE$4fYt9;N32zYw%GY; z!MTdZ>r_SuKD#a_zr~^aNc_njO56U#t{ss+bvvrw4hP} ziL=B2uW=It7>Ek`3#dRRBtFrF*+4-t-!o#fh2*ucRHxJrHh*1^9J@-ZDB)ZSy*t-b z8rw!(D_)YuHo^IPBm%zQw39qVft@i zm0I2020Mv^`$w*5c#hvD@Iem2Nw3^M$M;7N%U=w-_+}(4S>Ug2{2hQxj%f|n!77kK zB^nH#M?E@h@&$zH z`mX5)y5%>-u$KIzfmE>c?wY{0hIHPq==QwWu9RF#}}-Q_}LyxieoQYVxkd zy(S7di>tcMZg=x#G1S%xl6y}Ia&lIZRZA8g*#D|G%labPJfiqVbK;G9zslYZIt@6J zxo&oY9v!6r^IL{Q>Oqt3I@?8(tCIH02z!lmR2A;nF)!Zoqz=hljmTck3!EcgrB+P( z2y%v@_)DhB;!#d|D}2+Uu_7cFCsQ^-Wn>dAv~EjKo;?U1&Sg>w`0T&df(Jnt@=LXa zR%buxf_L0=b(JKB>w<|??3j4JIE20-z(~i53&f=YZ90AS9)b{vvF9uWLgd=Np{U+m zNqlVTg~Aa3g*cu97sEJ(TRZI6WB=fx#`j2sZ#{&gnTH`LwQ<43SKhc-GoJqcHFe#A zQ2*iobH^bnBTm^7$x8Ni`Vvtndyh)C?ChguL>iK;i|log%{gUeW^b}1d!7CJ+#SE) z?{DwVz2EQW{XDN{KM*3Yo?(-^GI`FRSpK7j`~0%pqOLAFGZ@H|;`M!9SADRCD_4B+ zXT5WjPgQBl&p{$9cR@o)zTnLL{a|DFz@b8qyQZce{v446tUPUD6O1YyN3P~m$mZr7 zSP_E4Q$?(@@|s_|*7WB_CH6Y4Q8AC~i}tE_rjh_yZ35RT7j8GCUh;Z@l^1q5kHT{n z5;{tc1`8rH76ZFy`LN}n@j5!%`fjs)eH73obVO~g*O+JXxv1^^xB(7r0l#rnM!D|j zPYLA@Xq|TBqz;e6+=c;gxQ2Q6w&y$W_qx;lrXhF>1f0J@gYI)$Ofc))b4e%{;Ek+O zVAX34{52v0Y^~KMhtH4ETGtk9S6OclN|O*aXiZ0|Jt?urVQ?(=d)s{Y%*|ketl)#W zLP(|oW3}>xv#qqS_JD=jnqS`;>7_6ZzLO{G$D}m zv@41oSiq;DwAkngoF07+a!=YwMX~pOB(d*CmRV1;CVa#U@+s44S0MF5X>s%*CUt@b zBN3pE9|!>6jy9XEcw;EYg?zL>l=oD15WKWeF zbI=+K$2nEUZ-u&~f4-BoVKvL`frVZbcG|M}XB<7cj&}H%ZMi&!$P<<#QvAu78MNya zIB~cAN%Z_toff;6=6~I~fy`xz@kqt*P_o0eh&-kQZn~tneiEc79`T#P5L1!Jf{0$@ zQW2LhdiFrEt7LCQ+`ECEoS!T7&*vK8MtMV4SDhcRF(!)>K8QdH&THlid6)L^&x$I! zPJgYE66=qPCj&it&;WYZ#FLWK`BnsM6E)W$$1xWrxnoB=sGPR~9UQ>t( z31-sC5H%MqOfv!>gJYPg1Z5Tp7^(_c=Z{ zxKj}(GZ(L6@pB#~U>y?SCQ~M0VFcJ-GncNawgZoI1U&qocHS<7BE!s&T!QvhD`KPn z5+P;?8WMq$x{Rp-qw%eIBeF}bI_L*H%zy!ZP0iZ7SD7`ZDJIIk7hoV7FKkrMKAcm6 zWD77bP;<%RygFB-$K{(H=}o32D9R~^|5_LV@x7Yv3{MR@zDnO9T;$4q1Sz|2{r=RS z9>#4U0mGvr<(JEd%vN#0*?%>UZ!ha(i?oF4q-p2;I)0QK$kX(=STGDbTV}kg1en}1 z+T25ll?3T$i3|WAjx$3Nts`(Mh^V#&&O#x=>Q8aV(4?Z>wXoZsENZrM6qx+keb1!VY^Q;rzW2T3@$}q%)7=F1 z#m|7YNzG(2-KRQDP0AoN$L_wg-5Ljh6!UJ7Lj?}<#?Sr>!Hw!U{kgSwB*n+YAshmX zE}<5GbDFg1yh$tm{` zZijT1cKQcqGQn?#xM}v17|CpAkLqyYU@dP~*wW|H?kO7uV1Cm}R?-h+p{wa!!iLBQ zmL{s1hgv8MI}*rf_5NH<1@b9Hz26^~+#v^gYeRB=U7Xm6l;gyePMZTukm*dqT{;t? z)~z*}JM3B>SKZX2lX1>{mF*tDlbGP0YtshyH1DS39?A=RN>z%kDKvwSy%BbT0?WOZbI=~6WX-_?%W&&UbNAAoT}eFZoS8tzra zdT$EEfG(*q6YX)fa z$;U`zTpFr-HmmL*v}(bzZ*_=9l_XWBIrZE5(qsAbY?&gk#VyOz$WcBXf)d$GMk?}B zj(Hr;3M5_V0}BX1S-f^(wQJ*ks%Y5UF%0)r@B`f<>}&2p`piQipeJ1)qkhLN(MGL< z`HSfIFQ|+IK1PEG{s)e;=*ZgJspBs-x46>6^PZnPy{f(y266~a9P!59LvJD$S|u>k zCqP6l5dq;M*XAgB4T&gdQ~eOmO`DhXeQ}=%10WG&P&E);k3=;z~VA{Pn< z?{T_s)z41qV12# zsrkK}+rV&tNWe2D4nWDsO=mlwMSQhUSyfQ_G}tIyxY_aJL~+pExSG8eaRJV!N_Kdm z|4}`!Cs}SA}LJ8=*N0`fZd_izm0HdfHTQHpSsLMeAq@+N&VfBQ^{` zQ7-cR_khOY^_bhYIjWKUqL4NjB9dy5ig}ZM^$MtBE^u?xI<9+M*!hSDioN55tG+ez z!d2VBH)-*pb;<~76G`M&C+NBv!h(HCy}>bXm+$Q>$+YU>JEX|FGn0q#IO*KLf#D|CB0b$#1>kvihY$Zqs{vi9Q3;w)hceQLj)2l0 zdB}3Q)y9UQjp9qC6)yGcIsva_wjd}8@l~B0g%+C&lyz{E7xk?@7_T)=G2&ajFptNc~H?lHy zi_`aAw!Z|o7rr0^4}F~+s7Am|@1644C3>EGHD*0N5=7qpgEAmPHUCJZLD%z&6EYW{ zM+VoTjZlL-J<6?I5;b1^->;9I@fj+Fq9}WsqO+%JN_i)W}sa>ar9te!J$MUVn50SLn-< zNG8xnL|^((kw^x)#@g3616=-XS)8LxD{ZrR?N!5r*EibXB$Nej)v4gaW$K7@Ni3{cBN6pki%2`xQpmRFy*t?pmHpSL4 zaP%WIM<0HLREAlrgAsevt;~C@%bwx z9G#*v=W2HeBt}A)=+R2!`9cYSQVOp^53AbVu#dNw$46FMLa^LF^0kaJDGa2aB(q)#k|aA!lk~c8qXb15UXo&p&Y?R)QSBGUBg^Ya_uT!2 z3`5sAuy&OGd^cWAfKUL|w$GV^eZ$2It4k@)<7)4%^Iz?8$@EIiok)nl2P9CVH&GwC zku#7yvp)5Er$GWfuqF$7&#PP7)zV|{v)On#OG~~P5E3ll)2M|ZrI}VOG{<1*M%eCJ zi|oCJb0ml~oD=Y>;d9Ok2|DO1(<}>txQO5n6kNTB(MkB{S@yb}3??aGtVx~p_eA z<>H;nl1xO7Xaz_)S!bzOAGdXOLws+SqQviZUs*UHkw5;|N2${hLh7E9T~n5L*UgbA z-C&;@ORI*!!RXo$y{}ciu#dg0!?Gcesdr1^8iiJbxXw7a4B58>r#c9lg7NC z5+54r8co|-+aJ>NQ-vZIwp&JDj$G`yZs({h?)_11DZxv;(UqX8kWf2Dv@qBCr}Uv1 zRVdC_o42~yY|Hx!XaKxaPbXY|@`UD_wNd-r~B4_eqa#bFy zyvG&bdCcT{z$?`Jum#3B)Yl<71ZlW&vOyjkz5C9!caj&G_~5}foL-&0#22&o)QK7p zo%!O;ycSy*Q5yVj_GUmP>s{A7Cl{Y3UGV$Uvr`v#eDNRv{oTVeXWuRe$UHmhG_muV z!F-&2;*-AQ&$Sc&HiB!{nx#Ai=bAzN3It!T{9eEeF#$i$$+AIe))v=NsyFtT9F}c8 zMOlbO32(F=q`)QQE%T&2KII}DXvOd6-~eRCM3jb2AZ=^iL{YE47oLd%OO5dFJP(et zjY59o-e`NC*JOX`Qb9>}M+poNWZdx%VdtS_V4+lLERl5t>k&^_)Z-?Wxu#&PxpJCw zk2XG8u1HV(yCCSX)H;0Gn{BwsP^N^*Q~*G zks&HnE;qZfB*ixBgj46eATN@xMvG1c^wp@17x|BN%nk>&kRbKFeWSYnD%Me5m=J?0 zh>wT($eqCQ4T^y(L0one-+|?W8p@Fm{2#`IEuMWO2Mkzo=xk-oR}Quyv8mxa5B`3a z1eaPle3BKf91Th926TEWspt;XJD8sx=t#CVeo2EM*oTVysSARP&y~CxJL-3z`eLb| zvSCPkY^*iyDmH-3@Iock6N7y1&;79rCLjo=;k4SEH%$Hxe;I6qM$AlqBP5N%K)4*~ zf-E#pJg{m<3iH_L?}j^TX)y#PgVQFA&btDpipt?FQzxtup^L(BO*mLrD}tPtGrRD+ z5EM|dv9W)&iV@s?5z!@rwNu&A)hDCKV-#-@2(e3(Cq5#${LGyk*5wPV zu!F973b(u3pF#uV&|A{8tiTWTH4PxjE}`M)K?8P0x^(*~IJ1nX<4x$azda7GsAD{) z-$t2Q9gr8r#2WyeknucuIdL+?dxOP`*Ey_j=^ZXKaOtk4f+jk0 zFiNBV(B`KOG*;G%ysHnw(yKu@_EgXDq9dXBd1fu|RJW=GdF5gZ#WDxy-OmFRfxFv6 zO_7lKuq)AmBcBHv`fzTidz5gZu!(DpD==K1;0MkYG8em0X^{KOeA4Zge*O+_YjAV2 zc@!js;lU=j$WfD9zwqOiy1Q`YtKVk}PPm<#kgpUqJ&I-tq^ zp9QFGnaB;kd52a6FeXYcgSD#ot9(_%=E&EFRtn#H*Z=d`qxawdE5$`XSZDALH(7jO z;y*obm_;`IB{WzMMwAVDnt6H3K`ys1=MOjyc$eho0Gf{x$B^2!ND`^*)JCb5g6fYX z@D&i?ai2k&2>X|)_xmFn$`Zn?}=p4BLY;hrMFmHd8o{| zUxe-53VhlJS|;ji$uOKUOZQEEnfY$zlONaSFoWtJGF_d;Jk{f@ee4+cZ`ufkT#fsp zYI!L1R*9bRzbDoeLyyFXk_rag;o31&U`KFSsOpNj{0qgA>RwquROi{TNy-@SI7Eh()y0<3h@P`qCq;#CmHl_N_)jcSbbIN*_ zU@)~qyU7Q%XmS0{Hvrq>rB!g=Ad^;kj@u}`h9}@LNwe}5%&Gp&2M>W z65p~Z3F+(i>eD<%9$b|}UvPh7z5xzfcX+WJQ(a<23>#`&zNMl#|6($Ie&4rMIU~Ho zn~eHOrd-r3rH8D4RN9-jPfUkFTAC4{K3;+`p^RjLkA#tT`h%hBRsi7jOEWh2!zt+9 zf~;&ZH2g9H_tV^>2HhzOPT|lo9^0df5WABfqHl^uPIk4)?%!I*D@g&p1XiC7#-dus zvj!FB8+TqBKg>FPmpam1Pg&W=?0GIQnsY!*Z3cr(7tR-^a2fkomk5r-swgnKv>8`MxG(Pvy2P=bLWSj3$^d7y%-%5sb-&6WSe%yWH$Q6qyxWP{ z%iAdrO>tXK22EqOK&m>k#In6uOm(8>ah0F3&DGQ6^uUhj0sEO+_K5kMRDAP@=-b!B}B1P1&lB=A|P!Yw`63#&~3*se0~n$Dcb2BnFih7w^I#nO!z)v$v5=OiiY5AwP_H^Pnz z1Tu4Yx13W;HNP+CCxK6zYha*-8Q$&U2rUez&eDOv$>4W{CJ$yB=T0d3`3EVtb|Gzf z8U(?S0wF-dp5A&l#;VKvbA+1J-ByAhD$Tos-4lK4t7EofcRg2+6On>uBoT%@EFzmg z!=SLLkQ)|hDwwR=vkX*7exaufpy^UkpNkR30O49NvsNR0b$9@!rF%$-mx+&P5r zZH_bBUCpC4KZ1M5h!w%gnVrkON);V|&_8fsA){JPEaTx%&{#oj9DKr>-f}3gBgf;% zueILzwdZ`E3RX8V2=rx@dLKlPUsZr{AiZGZ5D_=wO_gMH`_w@p!7N|lDFcME?o5Je zH-#XN>9kGDl}Az{5LuB8S1()wS1?b?CR8uokN#q?huQQ3`Y}HbMTpC?u6#{^=anG_ZL_534Q!X zQ^XJ{5JcBa3=|U-4p&qJZ+|9KNIW^Dx8MeI{(Vf7R{*o#xd{0rIp>_y^&=`}s+b&z zHHF$1LSm-G!<_>+PSy%)qF#O;crbYYSxL4@j?=h(Vg1<_F9!8u%8u+UM>>yHIs{RZ z2qC~ull(g17$pMN#zpIHn}+e`5f5yr4)MF!L2O8p_TX;s?8w5L>?o3eLaNgPg|ypy z>Z+t(Xu44_N8xsRfkhrE$<5pK$a+s&-{bRU>V!;*@T7xY-nzbQ(kK)a{q3E)TPa6F&tBHthshJ|o!}`FBP3#PEVqkxec;WK#18f$!te7Z=c>|8 zG##%+ZV&R#?-rW=!C-^#-K;l!UjzMzB>fFGW$2c-ynWr@KCkQl1zzMA7Z!rtJ|DLl zKuo2s78pHWCbqxC{hMe#11IZy6v)VGGBJ|=%AmcdAR$C{m=)L;KiKAlZ)Oil!FEsm z9Kk;In%j6uH0JURYl14z@|d1?ekuw-E~c|g`*%5cUIwau3e4hleYrO+HO%!n4v9T6 zoBbkh$4_>4;_t#U9z?nifAA_XCi1IXis0dcw&~S;cM8s= zKPz;Fa62pQna6A_TfFU$N!@kM=?ETt_<0!yE|SU(E^D zp(|W#gVlDezT->8k?TC;%cWjq^73PQHwxhDtj9oupUo>t#jrx#vU{P}xt4LGB}(eq z%KN^r+mUM_QZMo~*6)prohpA^b7unwQ>Ot3v-`>;H3VjE)+_Zbtk}Dx&U4NdRg&89 za>CC>{llyIFAJVpC9kJK5X#ZO-FOG8l!~wx@|TZ1|0KuMjH-HDH9+{G)v+<^aT`ir zhi?7kv#+b>5|N*iuWX$fFkKd4EMu#58E-Hc!Joag;aU4J11KXF#|&BOWk#dzXB~Si zH-yCkR-PD7E_DELeZ#-|*14`#0!hWKr*|}0RWNx!I!}cpjp!Vj$E%0~M#EjLEM7(a zPS$dDe`ow@X&S$X6D*pW(=~ffGIeJ=i`LT@o7wr&LRR?8Dqr(No$ofWnU71uqY7q+ zz(=7|@&+(j?0JC5%)XbknGZwl92-&6A#@|(0GOnINf)rrMP zE&7t&p#YDQ1RiIFCzM`?6l$??(y6#ibZR_LurszV3e2+W6-;cBQQCs5TQaGQs?|ic z8i@LOG7$A|Q%_DB#te*f<9W2|$*C2K1M#n}py}8TC3bh$*FO4)(PfndlB%^CkU4=R z-kD&D!%=Qv8S5aNkNwCmenH2F93G_f>+7usk?QVB@ul~XeH|@(Mjjy@jB9oV841-9U8w3HZwH&02}7Li3F zKl!hAD>WP9ZD!D9PHLpAjI!ssQkrQd2oKue-KXJC?9)^VMaP56VuJg_Z2Lv8aZ1=~ z_GjEKy1lS@@7v6!3HDI~E!V@Rx5qSCz#bof6^{m&S&Dpv8>Y6hAE~$t*V0ERj?fSA z7QJHkq%fqanB^n2)j8I9sWhud#V$=4;A$ zX@H!6Sf*l=)bUt_&qR_#K&mnlNFf0H{>j@k{!|FxyYhMdq>yN;D9O)?-DfY8)Zpb+ ziwT9dChHE$g3f=xZCEdt126v^I6p=vp(L(wF&cNxknQNT#64o&SruhhDru>7K}L(A z5dvZU!o7XNx}Bc?-cNK?)x4<4P zK)Xz(*^|IuG(7dDxXq-twVq>wa%PgT>dzhM7$Tk>48*NEgJV=p%hf*~IaopqRw00a zWwWAhafkB(rNmvpO4npQD*vgcwqb!%8~7OVZNNuiHvh@@YqIgZS8mADYQZ>!`JhA) zS8|$cR;ZQKdZKvCZq9-zYFMOdPUV7S5Bo4u9v^~-DfqJN>z^>3HY)~10TuVIM29| z4*VK9c-fbugb!i_K=7!S`x@45PB7`P62F2-6*FSDOgSohc3N7<@ZH;uJKg5ciCJcx z0Kt&~^i*G3XZ`}0t=e(2@vp0O(voF={mg}{$Ou9$<3Q)J_mMBU3?}C$Cjdw z0A}$Wj*&I_CCr0VJvKr94Q>&J{oJ{ z-QtND>G3vs<@(Cr>#lRRWlyro=tu_@jeotMb~ff$3qKiekHB>kvyEw91Y0-(%WLpe zWmbUsfDH2-2lY?JF?h1CZRI7Cb!{nOjO6RR*nbWf`u<8@TuhTwXVn1rPn&QFbRmUW z<;;IEpXg;7xg*4QTF0yMvVDMOTWmA{q@%g+L#2E`cRsUYA=ono*j(<-?E-%h{siu(Qim~JWoE$Zv7kKZ{Ll70w1T3DGrLhUA0xn7?W zE51Hb7!*GSOF@rFw0|>|IbpqdR%lFF!_A3*JNOe@_7(ly=I0A*B!+M z>Ro9p%VN1$+&NJ4ZA~!k6r_zLH^A9aBw}`7Dq!h<7cgz!_pi1e540){7C=%?3Yv&q z!4jRLAIg^nk#4&L*wcg5EE}IOBG`YxG+1plLv)CHSGXhMjeb>f9A5cQy!?&lZC`2e z>DB`98@(D!it`*uI-n_ftF%7833y*N<=A#;=IwS{wVSiyuKrhRQ^GL1{;y7CWINe| zbaUgrA_D5bpt-=ByD$6uG&pp5mvE>{{sYMaV!E=du`4BqdVvC;VE#ucO#y zB?t%d4p_kEN?Gay9Oe*?q51q*PnCc208cW(R@aYPJQZ^1{z5jl#R$`1Ij8oQ-Xi%M z{{HKr)bUBv!N~$yDD7eKL^lafdy34u%QoZk94j;`H*c8Y%+GUh^akSLQ}FmNPLzCD zICQPWH(82VrWWiDqD_vCh)bgynomhab>LAK?}|Uxh%X>3vb~84e+^uq`YAmtMvU4$ z{-^*Z*}Q*nIX6slrwh5)uImaeMPmcJ#1; zi6Om_U^C_*V-k)>#u3=u!iM?k3oEO{1_qDTT^Y!0sY%(x;Ye^HbozY{XOL#Bhp5=? z<@A`{G0quWf?9}bzHK$%RSm-4rEF*yl7SwSdlAkPM5d`dO44Ap#5=M{swxB&I5HcE z?IRo{Q%*IO=e24Bs{0Noruz>q2`7h2|?#}F|2Cv|%f zF0jy}a*DE^RdvP;Y$_C0S=neGoGz~yNua|)*$p%Y;V3F7u8Or9^MlBAOG!>Q&3?Uc zZ!!eGO+B@4JLxmxqu6XCA}I^c$asx75OABoZKU26Oe!fCil*VxN#(}GXSu>Hnm_hi8 z$`?xc9@*RM-nubFaUMAZ8V6EpAffZxFuS1)pV7zF7tV#Yq#3^Ne&&0E98AciEv^jZ zm!fJ&4_P#-yR}CiBI)^vCmVi883Sci{ZNwei+Xf1(89bXv?8<>pJ#oy$Y`?WY$zk< z;T7#H^CCM(>jO2&!{>7sw`wk-V6MDj2wJttn~nK0F3hu%%A)LoDz9bAA1uSQPI)u< zyST^S@Z`f$THyOHKNSCoy)a7m@l#v=?_l>*F}ZQyMb7m0h-~(v{l>uG!)gZYeFfYX zNUhS*4j}*Y&XlkA%SM+@9Z-ZH&)Y8Fj$P#?pVIG{xgGGFuO1r$b6)Nof9Bs+UB2_v z^kV5nni#ytjJX~s`cwy9U=x-mVLz!TmTlhIq5e~Aa@XXkjmS5C()~w^ZF?pb?#~A4 zdY-yVHS54!@M)dz4*^DcSZg+}3${$O$2dSvR@+07BL9J_@C7u2>JXMy_9)NDU|D@W zo&Cerw|hX)pTM0ko$SwnyT#d5%{`KX#Kp5pay{2IcMjIpF)}Ra$ru(q){lSZ6#xwM z5>S^J%2YK*FX|#cW$2N7!0{o8t zbbp&-S{p`dk95|u9C?XWHh*rZ%I8GcP#PPJ1ULi^Ey!*fy?Vfrq6N-0xDoWsspgJlC6WR3?@)w;~o^#W&+Oy(kyl7_4NB)ja^~H z9$lU5!{;o^N}qm*=4tWec?c#28_S-BTKSBH7<~CQ@2yH#ord-VnGZ+#XKzxh;Lk9k zg%oo}Sb%zw7oy?}4nK}joHMsDBcv*6BE%hBn-)r>(_q~Pm%lTA=TdM6rf#Tru*1JG zDJHsjVL?A_4FVM-R@gA=8+tZet~Ij2$)fu@jU$B-+$8qCSfa6N;0QzN$no$w;Yjrz z`c>~F44*4Q<;i*fZ!U{$L0G-lkZBHl5ihK{v(iozl9gTUpjrb{IO|g947scdtHTAu zWs-_TS=8a(StCeaC6|R{)Bn3>O8>mNO7d0MzMHXR`sa%crQep|lOC{MhCdFLXxO4U*eJ=Wv|I`_7s99)v=0i-zFR_j(3W}Jwv%6HVt$+E(fC|d-y;t# z`%PMjfiD8%Wet@rErviX*3O!%ERk>nj}MPlABSXOUn-z&d#W1>$f`tEp76KhWSA*4 z3>9F%@X2U__4wc=Q1+hd5sFh;TK6!gyg~@dz!S1YEDW-VRffxN{&-^O89!6U9>{apXy`O_6E-Y37^6gRan7VJ8Iizj}-mZhS-}E)bIFK$txMN#a zChMcn_9fdRsE%}80*wUvY`cVe07>02+$4Pd`Fiyb%W8g+U$i=BX$txWuwLb!sOt?} zu#Cm`2Z*6I!mxVvZMKRTEzjGWtZIv_8 zPjNi-kCTraEEK_623M7X$$PfpB-w`cDq@Ll56)ub-!G) zk!O-4Glbh}`#m6WPXew)T^;{@kVguOgyym+f_q~n2X%cFP9%|R%dX)yhnUAY6h(G7 z16g1hjkBzIBEKQ)MJoXg;1t^kqcO}g#1dPsI(h0 zCxfP2m4D65{6OH1^)n(K{;)c;aDqqyrwqoQ@@-<1qIzLh@G*7L-7rJHvh3lWFUB`< zgDHO=dk6pP^89x@3m*%j(>r zOI(GXtjhJ2NemuIB47IAnXID;Kp(>zWG2`|BpJwLwgq8dKDfPUr`YjLj8b^wABC-u zJxd;>zZZ{b^Y<)B!Qxxt2~hgzN9mZl?4w)j8QWC`%d0)^KRVp2%Bp@Lh0B&_KP8>E zpYuU(UHkHK^}AWRmpW@DxPRL85#y0>{Lxy|8C6{i2a2j{?UP8O20u=%@K_a_OoTBU zs_t0U8t&b>5`kCI1Q5ON=1TIFz`X;u%RZ&PUH=h#gXVz{S*7#P69{yD_1?YaeEzF9 z_h{v0!%J^uz-d%~1JK({Dlh}~-&4iR;J)t$af>OikP6Je1g`#mU75?sv8ZuxUCXy` z9-mU!Zh~Wd8jfLCyopvLI<9#U50Px4Av{)z3g$0qT zM7cHpkj63sen$svwJ(@duV670rcGCV#3IGnq)5DB#}ZrbB~?vhYA|ZRzpbOg(vkBR zn5cCDgaG2F&Vi_S`RnFK20rIr+{Tq<9(PX;ZM{EJ2>)Gj=GhA0XH_#9TNeXAPceKa z|8H|yTHJM0ecr+QvD&Lk--lbpjY5K$!)O%HAP(xR)vnzJg_zETa157*Z7yEL5J?}U zG_grPaFr1sPWk@4#W0VV+1Jdu!uW<~pUp{!m_*3P*q70Y-*2P;#2(IrFMIUcD)u;G zt|B;UNH58vaD+?EqTB1o!Z1{j;@+D=CzZ7y-mYV97gQsCH45$yzAWcMJq?e5M6ShtFV=#PVKI?+l$Cwtsb!QF@d9&;_f_E zM0<$93rOph0&}!G%LV)!dBt9kAYR7+ElGHC(T{(r^vETb_A<$FGq&&E<8AosJmRw> z1moMM_Oj)H#4(75cF_#};Dj#l9C)Acf*qxVhmm*=1;g}YtivSGb^>~i>4=yGZ=+zr z7d21*+*;Kj+jjQ6aa9eL$_3)Y>OQAh7eJFD$F{Z)43oT611_UI2S)D;LemB9oOx}! zNrgY^sJdw^Jvv|&1pWnwFN|lA2w+v`%utxkPti!OPJe9Xt~H02uAK!*%s-??1HJrdyyDz~OQM+$ z0bE2EK9`ba`vZ4=e((97H9K5aNe3y%tZ-5f$A6 zJRkodPATuoyC`XN|M{2*8sK+Jg6Jn^c}Ep01+-x-_+*!QLtvT*#N?BwRjw?IHlW$l zmsr>5f#6~t)+zcwp&NL5kq^y+ALIq`OHHicUMQ09^JHFMKn_bk?>wFLk|8}kj4MjJ zCjPh_LVER*27-@w&k+MG6RqvrThW-pmzBGn=2y$}d2 zn2qGsg)YH#!JW<28O~VH?oOHd6#doT{wTpOasNp0FZdMlV$#4WnaryyU7{5{=Umc z21Vx{<0{miVE9QtUI!|Wy501slgS~v_$A6AFT1r}PQB*}c^txez-L_G95~Wu*S(x` zZl<mJdLj=2Kf_1S-T@s%__Y>?5V$u^=R+RQN`J-B?RK zy`b6 zHfsmu%j5RWSaZMXw=49xp~gDdFaEp;NgG?%?eva6VuEZ~@#`CHA;T>1Yf)>fy6>C{zm8&aVihSyn(00V=!O7VWDm_oi;z!Qp z;5T%+2L6dkT%+Gt<8di013-UJ@rFLEcKW>BKj9PaHh69w)pZE-fF_md~H4;_%I1LG_%iAr(w`}sP`b#VGUydRA&`%Ng zvlZTp9;^~v!qvu^^)!X89Fg9T(~_#>G=tMhs$tS2>k_r5jT=YgQv@z~Gx-56_1JbN zIcxt5OEqsL*FPy^VWR?iWLv#+^@B#^Kz5woWk|Q!9|KD5AgxoMn`FLK=3CHV$0C0zI+e+ zm3`tR@73GzKf36;8VNzQ5>KTpZgQf{H;;iU&|+dzwa7?4?Nr$**SlJ~MbYo}sv_q} znx^fz798iiyws5W^WU_AL%nD27MwE(z`_XnSbB5855gzrPIIiI71iqFW2snSaZ25t9hQI%h$|8 z03Jca@y?W>A*f$zQ|k}C%>}L*coMW4T3+-$o5*s85sAKvyGHe(6UGsmIz)H45ohO? ztlsGWiSa&pDP&D|UpmbOPWP?q6m2%`J)bi%ff0-EEe0b@_9;QLB~> zr2OzH1L10Q)`6@&^Xyc)kvlJ~nu>zFSQ@q(uI%2-ceRrJ+0R15kwu#{T7)v*oli*7 zvvs>ZKPWDi)ppUIuSrS~yQ$3sCA^GWaB0~mJdPQpa7)$YXlD6`Z&**2n%w-jP2KYK zWaK>0sc0_r_UBt6cz{OdAd3AnVc2rz4Y`j^hbJYfFg?6*OI=met1Z@oR#K!YK+aj`~>Ti15+;i$9@#{^C#X5R+-> z1>J2)=_$QAOWrDnoc!Ck&ANwbFgAR$wD?om$ULC`*v+rY=wNcymX*hEu{gah>w*}x5Ap^lP7P;yDfp_$u7eMB2w+zWs7LTJKi4@W`;Wf$CQ(dJ6dahuuol2*NGRWzua{78;Uk;Bdlz+;^q{OhX7+KRQQN1?wp5#AMSAaRR(#MGkJd_qzje zCrQhm0q00g210c+9(S_vc-xlEvMO)h-zm8=`VZay<#Wq{V}~ZZ!@)8pds)l(*P|aw zu-kZ;|I@ItR+iwte9cb8h*B>Nwurh(v7JNs9xU#CUBs?SU+h|rP>aHbmW|K>wGmCZq3Eo3;**f^wPa3y&OT=_($ro@RzC} zRd8mBExg>8jSGX!eb2fo@oXz#mHN8cAjc>xG;&K&!1#<^(z0;*>5OnM@kdrQN~bGe zoBiiW_MCqqr_<-dx&79{hgJgGA88Rav6vOALQl(`&&Hb;oq^WDj~CQgwSaVAP9%~% z@K6h^4<9&h8Lw_bBO0vWo4TS1tr+Zo0UI;Me}IjhV!W3q;(88{S9&rdO0g%oZQS3AsKX9$8L+?6^ zo*3eKA~qPp1UEhjtF*kGRc5rH$RVr%wDrbTr~hW@$Gv+(HCigUh0Vb+(R6X2hN-b1_9hP38KpG#&i)sYeXP=##* zPd0jWT%_WA<}Qw~Hms|jZ;oAb=sV`_LJqxp;YD~=)+wRqO?SbOU#%lr)-M_Ei4ll? zX2hGA2)pJM91lL}S??HxP@xx8(1Z5M%N)X&pa$1(2t_Z`whHZ>%$Isbb!#NTr4+zz zE=;hSHg!2qORJuUUdY`z-?`ZvSI7zK*H#*2_66GgpuT6Sq9^LUeH1QqukLW@hJ=gp zrl8sJcxyR?vX*7N?4qRv2%N3oJv+u0dbeV;96TbM^MGD{O;xL3 zsIq5r%@uuDK+1P8arBsdu7Au+xu0W{4Mr&kquNV`(KBZZ(Vv$qRhfzx0TZB^K72k^ zM|;x4KY9V?1!_f8H-U9`0nn<_gafoD*bUQvYFH=yG+4bb5Bz*uLpq|xu)NL*@PZ(s zJ?}E}j~XTSYe>wW+0m@Q+@et6}VcXSoHvcjf;t_!RrU z;8PbXH(=*M_)HZ3u*#D*4WS)0UEM{fQ_<2O8*h&EeCYI|{}cwf29iVd0&W2I-?n&s z3&z4}JJ~ZC6Hs#N;R==hmv1A!hRpHYkAMj7n9KSWw@%=A0kdgAEB(o->U!Pb=P8pP zcut=Qg6B_gIP(>bJKvnYWH6l)Yowy9@%7RZ_lKW_7|P`ru|#uLTb5A&Xq74Y(sVQr z38VI&#aI9)Z{tFVr%#o`%Bv!z2K94%gj(NEn$PWgwhi$Q^l>K~@pW6yHabWQvmXZZ z5&um-?4=&9>Vb_X!-9tdU>kn?HfgR8KjRx%?4f@9X2?^@wXn8;hl2W2h=&oFn1EZ8 z!-$w813r@l_Ex2_qQf|lyScf&-K-HEKbaeIHHa9<*X{P0A@f23LW3++L``wizR$)~ z^2#QFpK=G(3yr}0n5&4tT<-vFT!rql2Z9yZK`NX3)U7J397uB*=?wQy@4c^lm$%n= zyKXc;;}zHiD^T+w5c3KaE(pIbNCR z4B5NNEQV}g{dz6*HQYK(Y7$8ef;YLtcP{A8K>CP-6~)9(7pp40j*s)15xr2pgiF9` zDtv090)6_M_iC4AY{KY8kDatEc%n4Z(TgPhw+?)hOv0iQQG2zZS(HUX{P2;*KWi{TcnpnhJNYv;qRFQdC5a^`0dm3o&s->~ok4u| zE&I^%=V*`n3vV_3OWOx7_fy~JR4vuFno+(>MWYam_(qsm{alxI{t(5LRNzQwMS=Ga zRAQ=)auLA=5DwQ$|Hiy;7>ye9RBGWsTEVIUGh>2pte|C=^HzBy50pP&%!tNkT2oTv zY_dSxgpAyjYy$dKkjx+1Gz2tZu^hIIv*|9C`XS2hy;m?Z*+Ud(Ca9uOZ%w>b!=0Mx zed0r|5dYcjXbQ7h7BtS3yCf)Ks0kb6X8niZ!5Do1+*1}+|wLLYsFZjArE z5XTNF)M)0a{=xj>KQJe`P~8>r zyDM1b_VdqK%z|OMVD3dwmX6|2#?n9kWf61?uR)?Gs*nRpqhmxh~zMwVlDDf+0qB`MEz7VQlFYk;j-=x1LMZM&&A0Q!l??<=qrNByL z<;8hW5RHiYFO3`}rv=UVDg`(G_kuT?`p96!nMQ;+W1L-7Y-b~kF`u6 zqWtAMJLS_Q`v^G2S2qleoOy9ZM!DbQPbBy=>#E*oPcI3OftnN$HvD5TiaM!!u#T5s zW%DdN`9)H(robH}WSEk_0qCC!Mq)N>KiP}!P?3CN42F1}h4IOc`X%3JVYH=wK;A9g zQ?^?3AKNZjpVr?lH(H7)?22;|*DBv=V$0Ar1L%hkbqYJ=%tMx3_Bx1gbCa*G&^Y3Y zhgTJgBBS)blldCjw>ND5cpBZ1xlFkl0bsa)uujl?*sC~hEuGs<{?g^0_waHPA4AqJ zCu!k!Dw63lG`>o8?4Bbv%dh|SpQamxk@JM%hVm~#&N9C+yx!t>1y*w$Kr5?v z4Z)FzE_IercX;2mRtpWKAEv9ES$La19DV*7_#NBL1eE+smerFhF_+DpUi0N&kI+WB zB@wB!_Q91!9jY>WFDcvRzE2Vj=$l2TDy>t13pqmcA4k_%Hf}MEU%V#2(r4h+#lC;a z6IAR=qb~J-;5u&=f0P;eI*ye5F2a2VkQnkei#{)9u))G{FKx+x@v1j7a+|5>4TL}6 z+Z)g1E3Q?|o|Fb!ANp)SM;Bh;Rfoyykh{wD+Lx;Zy(9pxdSLVquIeS=1JTFvAqE>@ z`pv~m`ctG#_8^7J$ARD^4K5%;#)EEsW=V~O{0j{gsvj_Posw@p-A{z4si2q8G1e^C z1s9p`HbydVlM&5|1Hycvo<246GJQ}1fnBRkha>~K`!2g(VrN>5c#C}cSQznng@s%#qc<@@ce;9RWfW+|K(mbHO zr6a(2$%Y*qD%&;bFE|xGg8RXTri!byp9V=Ao+@(c2vP1IDEX2W5(h&)Qp?}`GEV5(yAtE!#|Kd`$ z=fC?H&C5Ay)McP5$1(~_uUScSL@gW|$@N6U zH0aPN^3UZo3xBe{R5ZTgO4tv-x;^XNJc48WsSdi~s>b)D0G{LmmkA(Bay69JGTPEQ zAm40mtvn48#Y?qfq;=vX#OTJb-@Z_GeH_IdyL4l4=}W8&_$JEA(w@>@gQ4qTIfXzU zn+RU5(uvjw&;@jU)R4DfM`3?7!$qEJGl5&wE1~<_Ehd5-Hj(S!D(iR&dk~MMqpv_; z+fxB--D#3I^zcmbzgSef&M{z*F%m#iWs3sux<8T}*0{I3(0+K(0_RKQ>i^8D?IfC zV*l6_jv|^NLaTQ-^_1Z7>vC-ax?}Qk;o4{-DT5)KjmQy3<^xD4T(mlf{Xh+ zfZ1P&fG2$a(3o$~eaR8_&MIe!PVN&xd@w_QKJQsa@yMgaK$88~7h*%) zz@Si2>fE}xdcrJ#g&G77y_9}x8mFo95S&c;lGu~?H$A3ZVdYzu)n&a@BawZwv~9k3cB9ToD~lNT1ImHzBUc$X}Lu>9P@da%+iIE1eJIL zAN!LUIeFLUM??pm5hdUzoK*#6ywIlwDxh4XS?oBWAG$6U{03kk=vhA)>Op!VFvcfZ z|3P)GTAYD79LH*|tVK^Yyb|mZ)&AP(ojNIAXggK;<$pE{p%zpB0?t;;_Ll@#CH=MD znnhUl6+>$oj|m0d8ijrB1)q2?Niik(hV@o3OHBWUpd3^2HgA3t?FO|wK*ti^3&q1a zo|>9ozea)UBhlu+#GwCo0BQ$9bKsEkS2WX1Oh)))K%R(gXZ{<2B$ejpL|@~C5O~<&Ai^59si?) z21zz&ZTZuSYM0&a@LpAc;n`R!WAqmxsEN@3;8ZD= z-OIg!+wypZg}Uu~IDA-xbo;B%1(kg*`)Joozaw&y7eOjSeLn+$&8&uXWJ5+mO~sN+ zov1sJqCnb;>S!66Qp!0)e(nBt={%M{y$&1?r+M$=vBx(fb+y-K|3X#O+w!_AwXiR> zwTh;Ih0gj2{zn*HS0TX_UGAwQA6sg-Y!lhvvi=H`>@lEhB0XXM z26MPSraR~xJQAmD_a0*623p_|;k0}ml(@Z^%Rl5#-p<3P%JQU46`4~6*R!@8}7-mOt_7AE#TFJd9-Z4NtNbt_DQ@ zj(6_2eo}nm$4LVw0A6rJfDDkbZ~UXcp#L~jdf26MhP6PJCi1e0AZQOZr&g=&>M-_k z$p!FbDf}5oxmhLvwqm44dL-%XU9D;=@w5fi=MzRV?HW2F46-%U2MkORY&$62x8`hW zNw32_awQSer2!^D{ukOgoRg&T58Go+ z4Pa^>oQ40g_GWG{G?-s><;|q8ey|ASVa-SL+~=JvOZP4RHTKxjHE)35Kj&tZfF6hT zYMa?L8aTwuG)e96-*rxbvf6#{`42Ru`45`n%J2lrPlLuv=CIV7;NIwgG7QY+ggy0y z`M(}S5ujr_Dof4Wnm~dnrSX6=Vyaq^BSRm*Lg-A{P#Wj7w*#n1aJC>+YF zoahzbokg(w%UlB{Q-=M?mZrfAPK01znC5l6nX{xbS&+LhZm9EZ<>9xOL@U6OZq_%s zRdBa9M4U%WIoT+KOc9kXir?TSI@}8`dBbsjpu~mqPjmk(5YqjE{~L?qpy36x z8X)b{`tmaPoHDWQqej1*1y3qeT>BrgG@QZG!xI*xErdz{-hMlw;Gc!QYY{lcVm z>cB6GsG$1H3li;Zdg&b)WK6+Uz-i~UV9S{cLWF^FgA`%uQ_t{)e`JWK+9%wo1xfKFmf}CXu!o4TB$y-!jXuA7 zbmu<)uBQCZ$hvm=>MK>fq_#ayp7A<(QtiLN&Ibzi95`3%Q(n_KlKs}Wd0%z#?xQXoN z4KRPBbqeNh77nuCC^wx&UW81KFn0tNe{iv1E#50#az_U+X%h#&Oalt_ot;(mnBZMP zUl73Ew)mD0tK5zGfw-C@*33V7tL-u#Iv*4& z^ZR?5*8`d7FM}1E-%ialhSaxnP`h+CX7Tp-Zn|PK|Z((Jr90LBt>RE^)Hf{U1n5%?LnJAsAJr(gs>E27x*F@fNd&J5qu`}m z-uEEthm5}2nx^}hY%&rmWZKv@{WN3MGvDnW;}kjiGIMmnzr>xzU}OvOHSG+5~Q;7%G1j)6B`x<^DMF4Sc0&{ zHZ(uLj~x&+F|yFhr+4QUbuT3Zl7KJ$YUTUyKvah)AF<+}HTtaOT@GXrOy=-y zPk)g(;}R0Qz+&wZ{YeA* zp>;u6v@tpJhe+w+92nrwNSl|Yrq;*zOMH(d^RiR{x{~NS>YRE1W5maeDCZv zSViFe`vuv?YHu7T>R>>wj!s55KjJJV^65-_oM(nG+Pa7POAyFEE<_C;m`h z!cf!9D(R^mq~Maz1b@>17J`_LgzXE>Ul_Y!ZkYBi4SffH7LnSd+%X<2LU6~veZJ&B zS2kn(JlyZ6rzO@_>$DYeWO0NmgFH^%u(SBye$o3rueP`dMOp z-$I6eraXl)u!^ga0c}oSS6Ihv>YNj6W7sAQXt`p2FPLT;Xs}Me zpZP3MJ+niS?EQ?ZkOZ){xNBEq%ZqahLF2RH&>lQ7=et$bZ*|u9aBHbU`O^T$`}eZ# z#Y?p5PE8Bh^qHH*fn#uDr)`@5s(+3$3a;E@QwqCI+n;aQUwp=Q7R!O6FW847EpxZ#WI~#VDDk^Du_q@QLbKls z9$t}?#aGz1`$vDQu?qT;(KtK^l zZ>9nN=|aaQeUQBPv|uRFtVKeorY)>+^o}!vV|4@9k_bCh0=xzo zM_LOTNUl1+38Nw)jkO$N4fnX9zW4>_#D*CmW<2Q8SW^a-zuz2Sdytvq{B7>;~RMJGzu-inSzBQ{KIvi3h(e>9^=o|CHs$aB5Tzld4GW)(k9;r?BUO8{8ux2bVA^x?%k7aHFA>q z@M*w5Ewn0;)_n`8`lJh^)8qffj#e;de#m;EaV&{%0egnWFgr z0y;hY@-z5k(#ah`$qsV&2ER~--9-!b^3I%ySE0jSwCXLLPT_{Ndos%*dN)q$rR*V& zh4Wi+Jp>D@lYK?`n{&e=)mu)s2ue2m>M&V~M#r}UtFEoKM3{RQ5;p_GJ}}Gpb@H?W z)hM(8O>H%ZH1VTzN~|@7)-sYNh8ep3Z3Ml%P4Mjo?C|EofXjR<85jlm-Jtn+_&k8H zFx*8S%of$h%vehp+UZoxO<`%66=A8Ug|l^~(Xh*eV}>Q(ZHfXT=N1ZLp-zESy{mF| z)gi?{6HFkV#zg?dkH4bLW>c8XtG;4Z?!kvLYZ_CgaE{)6zw6>MCpKS`zHL{-pY8tW zwQXaBSUcb{TT(HcBux9n2_9`L;do zg~t^?s5R5c7f*6!R_bhi><$ykJDWeC!1{9LzJ9kKus`B5$^%|nRYS#YCJsy&jrb4$ z_Q}#>_KFDH52Ajqki#)549!2oUE#ZY$}}g=Orrer3+|Mpuy50xcRxg_u>9~*km;R3 zQi9gULVqdiXbzID;C-AA_Ey}(Ipeq=eZ3jpcVGBE%s(4}jAG9}E`KhtE3YvpiL7jS zrSi8IJN-WrJL6b5nq@C-r@Ird<3>1{U4OC20e}qG8yNWePnQWLB_t=%_e@t_5@jxc zm!XAjXI6(#engeFf59&hA5*Srdu=`|^xy#3JAHAEPLp$1r8ZxB5ObNaWmcn`W0WMk zgb@6DIF$Wojf`l~(Tz%trHHcW}fZ+Z-+&>5|ZVVhjr?+R*b8$p- z8u~G1is-uWfbntyLhbQs;vgfjUmV7~dOPvBufPQIpf$N}WqvMjPS!{I|Eub{UDx}1-_JED*YAfG)m3XsMtdn`4Z}D*kW3xpL5aqnP(Q|2rsErSwRclX zWUC|F2F?8NF^Sk!x@{ReSH<7nbZ0@Hv<5!a4kZqXL_jd30;hXSPaCT=;S;yZ5ZZTo zNQwA8jw?7xD~jS;75#wW=H`!Hlh1LbvPB|j$YNd_1CEDpZwBs}I!qsLUj?b2C?ZrA zymt_dC63&F(muB(BLnr#>8l<)mI`CqkUYM8r!-RkBsLf}ugbOtL0qFn7WcC3e?d*4 zl3Bb0`h4bRl#d*4Lda`BA7egmxVWWO^JN~y0-kM7`5nGj^(F ziePm@q!#7YUg^VS3~r(W5W_O$KlnxQI4SxzMB72C&(GB8%$flt-y*6YQs~46XB}2i zaI3{zqAR<}?qeowM4qh@f=*zceEU5iG$=86zmyyj8|d#Oe(;1!k2)A-O_ot_oW99< z3I~%Y>$AO)DPzMf*ZvY$1=2FyL!=KTIPU-vgD{q^A<(7PHn^!|< zOZBzzyWKukJD~+GDwn33Xh$7WRL5-=P{qGq!I0_%$Q}X5qc6CeLV!GoAO&}~`Yo(o z4y}oOxX*6*TQXOPl0JQz7pP7N(hBauCgXO`B1O=~_i|LW@L)j#V0>=-Vf_y4Ga7l+ zLp#pPcK-!~%+1oT=w;4FdGFw}N+z(?$uuirYGv_z-VK+t1~? zB4k%aP@#O+y!eGS% zC;#Nn7#Icbxj0N9gfRK0IMjBIy@#my?b-#fBdG3!2z!wXz8cqZrp zH<8>omni?<#~q;0`s?JP&E>70U*iW7RD^2W!4zZT@CWdhzfnb6N$ca8^<)98=o>rNTTE@57V(f}4S9nj#+06%U6}9Q7u^QhG4#M=x~Cgp^+L({fM5;doFs z6pmOu!FC$x1M#gZ!GGMMns3kswtM{fTKjYlXHQPG zO?gq$1oFaOe2R@RZbwCX&R`vo?9b9R09z1fq}MW$n3;37JN`kX!qxQxDX6bI?yS<4t(vZp5awqzZuB^;U=^+JuK zO{dANUXRqH96D|TS~}eUdA^JFEA)};B#EmA-AP^Xpzi{eJMUowyq_tC+3;#3llS_# zz=Mf{Tz%%j{-x$}GQjz!X<#+(%c%;>R@S{5XCa%UD`1y1a4i!DU)n6c8A6LD3t7gQ8{d3un<377JM%iT%(ZKU*x z1j&cm-YU%HOJeAIdj*WSOsJB+&8M9NFd)GvPh0?#XhIGP#27VefV03-fq2iX zc%GHcGV*QF6*p(@#yBwHetA~yxio97zV#gvH!?7J72)4D+^nE? zz1y?JydenM7~MBb>gLC1xTp{u-vJG`RARdht1P>^b6N^XyslLKAd?gLkStp*#jHBp zl2{>LdG6u zf?Yy=rKvr{w-BJYo$BLjfWMV$UILI5k>FI@|eJh(xvqH;r?dWNL&WeeMpOz8vJFRl#q%8z6bla?u%_uO-~so;uP zsluOiQivP;_e={1&P#Gm(-5c5?y}_p-VcgE>l^aP%U@rf^o(3(ALHs~jGItoy8$cE zg=}vAe3yex>@OqwKt^Q?h0F%xs#ZTT0Rs*pSLJr~289C5sg=X+UyQ+!-@e<`D}DQX zRZ(~DH-A2EU)?L%LXk}lMi0F=bV=FncCZM`iD}`78sO8Dtj!RvpO=>$noJ=(OJ@d`*fpB*!+DYyO|^QM;Efaz0ml5hvz0C z1}x>$R6TrgJ1{azQ!31IBBy@Xi-Q&T|KTeG(uCD`#1v73=M%Ht>%mdgKSM)I@;=`= zCZFq76Cfm5Z&R5)DD@i&x}sdTfk%NM`BDx>46R7WML)@pb;wBrU}>-6uG)dnzw)aw zMnvG>78%ge+3OkDa2qa%s{gS2E#n8tmeQN3m1e7Huiu}*0w7F~8d4mk`k1gVmMrE( z?E@at-n2K#iW2kKL6SXWaAg*s;?QIO0MozF4tLECYz%(%kt>2lrQTtmh0tU9dL z#iAQlJ*erf#(2E;pQ%};qxxGLWY>&;y8!_{k8dyI&bLYIn)1V*6wYB{) zj9sV&3cIn=f*)k$45hT6Rs1AOyQX*^QL4|1^zgYYxg50gV34QU<((oSP?M5LjvP^T}lB*-#g2w>J~VtM{3-tWc1mYM-^XE`?__!mic zq7Te>EA#ZG%WzWN0asagtGGtyN)K46husj=xaZdvf=|t8ply?|;AxGg&UDIxi6y=# z{1zpl%-fy~;B!#;E)5{^8n0|7`(XXHVllC7D-_k2wpT3Q$1p_vyt)m2zxaFuhkx*_ zXNhr%Btj%LBE-iCPd!y{>(R~VZDHA4rC~`Z$~cl1btLpAiD$PYREiO#xCTZ9aWTiH z*4+x_*g0DG_$s3y;nUlDR&w1o+E~eEJpIzX_``*0A;R{Ifi;5VTGW!g+cGaQL(8-p zilV`k+9-T!yp9O=CgOBAfz;zKn-c185|yphPiFAeAD=So;Vg)5uLq_57B4Dh98_&? z@PDY%&a1Y^-?O6{11N?QoLKOr$>dyBk`q@{z+QFXyAjYtyRB}C-J(Otu)ZUa)j&dN zY$;r2nqXTyrwK|C2;S1unq;Fis}j+1qZ9+0ST8iGZ5wo zCnkyTUEVH@@co|oOCl;oNE^FIYFL<_!a!ed=dUq=((Vuj5}R3Y?2k?n$fC#)n(;g`d&5Wd z;;st9KtWkat*un+;yqm)E3MXSeUylY2OJb>98q_oA1TKdTXTwEJ$M4O;z>$DxyH}; zGJwExa{^EUHlkGA$_@YVn?Eyj7t(ym$H{E?VS7rm4=VN1+HzLi?1mDVmwq|3{`DIGT zbns$NdOI_lW_3xXWBi4T@QH!jV|zB-o-J(t#p`8)tVc#$@VkqWbKhxGEn$n2^X%qY zXS*06Df=%a*v=oS7eH<`zE9=1HER+FuxetY=HSIU%r~&HI17Tr8mnYEF<|)7I-@$1 zuE0AU+?8wrhZkgo?*M#micoZnHRcyKD-oh9z$CiFMk10y$BTN3YA^`}$y3OsyIV_*EI$w$I)eT)^?N?Ow*4 z2*1`nnW|fM$}b!M&w#mr(RdTqrxe#h$n)nzmGG>jX|m2n2Q!lbC%mwwdUMLKjO5;! zAWo%6-~=PL%~=|EH=>XB*pas0ogeYfI*k7A9SJ3ca){mC-3`vv)u<$K@4Ej~EQ6-} zhX{}}Wm%v{SBoWYe86tQg&*yAwr_BaT&l8ViB9v?(q`1U0v?w(=!}i||LEvjzh#niZ)3h7J{5jGwqF%8nORek z@Pvk_X_NqS{L%3=#d}GIQIe7rk@M=9ky6-Oc7}y;!P!ZSsw3}Q0NrxvLW!0LRJOTk z6;}>{yi1BwcmAG|9OyAGO#=het5J_IKcP%a+V5V)`xG$dPCdF&y-R<3lCo|HvHRYOKMb{&$ypuroHZc za6&=YlnuMM5P<1sHOJ2UzBgBUA!u%V8uxlcY;o*$!S}f`759F;;M0f^nbvc10xHET z$L?lc;*wna6ggNNIeCWqpfIR7vt}CfUgGRp4pn!vchCpNlX3QjjDYUMLTJGvNr*0P z%<8Aj<@!hEe9Rh>WYCTee>KXPB428RjNikwaAIP`{nz9{o(@T6F+~0T1g-n3d0AQ0 z^2BWbDpfj6!30+7o(Y{I5BU&GMIYvKXt9hK>l;5E7+heg*I%m^0i3t9D~9V;T9gu_ zO_TmC{n3$iz4O;1vJg|y$RP#%;r-_we{%QxyBoOHqn?}`9XL4v)vA}UUl^vv)Qjeo zi411&tEkc~|GpDqA3nwxx^29XOR4B3=y_T%BJwK8iTClucR(vDlnc+@SeEcvM(Bfh z+5`jQW{^4jm5v*n$h8ET=}0fT`9>?~v|7Bw`Is50Y&S5Sy}m zl`072EcfQg(I4%#zVF!g;D?)+#MLKch$`V7p8Oe>5+&_ex;RP8qQrN91&M?bQwnn7 zokm6bK-TO&o(>cm##ya0A}!X_fRSgBg~fQTa=h>*`U^QeBNCR_ACJ@WuDnV;S5*n& zb}{geD39M4MKelJnz%gZgqSm23?0L#`HQE`c*H*fMJ2u6rid#mA^CLSDBwVIHEPSA zRd`;f!2>B_QW6+2IRNa?EM#Rm%}2tCr`gw=qkHJ6pFX!oZFvg2wLlMYn9rMLA(W@HVs*D zxc$w27*Z-!7w7&lqWvh~3YlR0Uu}iJ<@n5wx7!oluK;`SwkF=h9#-aE-zwj7F<`NI zb29pXxB2U2!rE%Vkt@^vo7esVta{c0%-&&cXrz@GCv*@#)Nrz^F-jc-^2VlFG%JO2 zLp2%ty2j-e-wQdY(y4z5%ohL9L=YU_K&TUVmTh+J7}R7DB|ilkTioC;d@Nd3=* z7`n})+w`BW8ik@WEGyn8-`6)RI)j^f6_^46bj<`|Zr!|3mU;Iz{J{yli~PE6|Lqb-b{c3K z|9AiU%M0(8vI>Pa>aqO{TPuTpp zu}lD&bg5{1Mj6IfP^ud|`F;Gv!PgtH9?sEB)+it~!5h|2lrH8+&1B z(;RH=8SiI|C)7)=Owv|NeO4WrIGli;xkRa_z63|wc_n9eCy4|O#3*76^fmYE%V&TK5d0L{VfLs=s2aO~E5Z*fb9|3V9 z!0HQ8Qc04IQyz=kyb zBw~stPdOWmTawG?0p4g%Z>7;mLX_ff*&({Va z8}><485eGE5vn?Us4@M|Vn>bod^JI6 zt=|_ScUc}uI{!Om+c&`}T2Y^I1g^?hL6)Uaf>UH_Vn^cz4%4J4Bib?qRv1i9G_7Kk zY(@iv>f9^r0Z(_^oWhlsxi1ZGgkB!-=BB}F-k$@3y4eww!&`2+IDb}_R^|cukJxnQ z1by(Fn)|PE_^aBMfu87zsu;xi;#{-P{O|}V(v=eXslxq-AJ?c!;|WBfq!$PfV*F#% zIp0?yR#4_nnwo3g<-*RY=d#E`tHNk%#ZC?z0aW>TfY}7*fU0Lf7I0yTsYj6_;DzyiZY><;v94! z@H zT|o^O8hQN!o$6H4d;7iHX%LA1!>IsW&*{*JM)yj3GQ8F7|?!621QHBId zXT8GWU0y*8fHwU_$oY&n1>JS^4+MTLnmc&TmS|ZIT%h*{;(RIM`4SiLagrJ5<89p$ zT!4WOAQ~%R^yb&iSTUIJ9@Fmn_YcE;0T+4-{om$YXkxPq6S^>J0AJmZax?laVf}EkK=PWN6T8fvRgjk4+%JU&+<9rouEMmV z#Bt%MxnJFY6h2L)-c}dqjT_2y!W~uQ4ukejDg#~JCxdAik$p-1%9A{PAp`C*V}v$8 z?SMx!2a6Qp<4-|NL3uvFH)>g&)k~8>*WJt+r>a87fLGoBbd6IJeH13!>q37QK90HH zFqObSFX@&Cx~!CXH6*4clt=8|PODW?SJ6LH9^+^0-v)0OEn#;~y7C->$^^p&n%PSm zA0n^FZOU#vIwvIDuL2;H+Ytq`dD5ENC$`_fPYg__q8QWvcz&z09XOe9sn|TfkkUHs z=1kKty^oh(mK|PJS~$7K%l;8hp?<0@YIsv9zz>s75VCz0_YkNc=bQ6|%}%;OE-= zsvIDM6ydh46vkgNYZ4qwvgyq8@6`Gap&UW_-7X4v7uDb$(gp$)+ z+n+UW@m_FU^{i`U#gKfO=TAAa1xQS=3p(5}SE$de5()KCL-4doo$9DJT`_vYfmH^t z_#UNJI&v2%h}0r!F%3OfSiL^9I&Ja8b?cw@35wx=FzB|EwX5EL=o)YOChckk&p$`Q ozyRbOG}5jqF#P+=QVAM|XZZF={F3aj5di)u-B*<>xn~yge{cqsN&o-= literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/images/shared-0-sheet3.png b/DreamBeanDemo/images/shared-0-sheet3.png new file mode 100644 index 0000000000000000000000000000000000000000..bf055af98edee512bfe3fd8fe2155ef1714c2042 GIT binary patch literal 3798 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 MOGk@pGrz?D0pXJ9`Tzg` literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/images/shared-0-sheet4.png b/DreamBeanDemo/images/shared-0-sheet4.png new file mode 100644 index 0000000000000000000000000000000000000000..797900154238a802deaae2af30a6cd59b1e70756 GIT binary patch literal 1569 zcmbW1`#02i7{@=~ukSE3xqO)+TQpynHBBPX7LCgo(kSb`yVAtaDY}u-YKZA;(g>?2 zZ6P!|YeP!IL@H|Bx-2V&&_yImn|5X?x!dVq*dLzfea`E7pZ9rwc+QjI@4Hopyn+k> z(DCMY2C5bRT0~8CZ+4An1As8*?dcvY2>bY|DvSFARa2#GZ~w^{LsAY8S&-~m?4%UOTUQ@KUM=n4WCL%4GAjF0{zu4<%wIlD~{-=XK zf4K>GhQfXdYalh;w3sCc?cu7$#El4ARG5!6X- zTJQ?K?;PBa{BAn_>Aj2fA6MMmAvd&{o&6w^wsE+^fZ76Z+N zfI3T@twUP#C)_5tQv$|!S)o3uW{`W?ahLu)4TNn?Jxbt94j3Da z7Fpu|62fT5{GGKLd98#2XjY(?-bdkN;K%nTU<_~|e2_sERTyW-zMBt`?_K5Em1+sP z>lJrTdemD=UiwrgYPCb%b&BEZFaJthiX{YrJJ*km=v>TPRv!+y5_Tn0_GTfc78Lva zcE)e{mEzU0yNTvKUoa|*v1Pu;UBKAz z*pMxfLadB9l}nf~rDS$N@nD$I*(G1CI?sw}Wfa`?VM-A2Afgw7Wgk)um=u=5`o1Cr z>ig`PQAENrjK_UNU_43M(t$`kwG-&>Afdr8G79FHYu-JFfx83rDhJ3?|HNx=RKZnN z2!o=_%B~4*bfC4IZWw~nlJ*~}i#doOvIu`Onh`}!e5xB?RG}#AgoN$3K@*0FMUl;) zJuEO>47Cab90Wlv8jYriCvgx;q(3(>Q(Lcn3Vl&}2thgn?bhe+Q-`$pRJJy}V6%XY z*x*?CMzv+UJ9OX%1BRoW(5#V*7zVOh;PKmPKt#noIR$D^aTETyb2$VdR=pG53=hhAW^F+58#=k+9kN9TDHa@Tt!E;M$Nh90YpPpCz`d zcjaXJ?JL-!wglSiKiQLs1M`h8HP^SPLFgLaj`TOW2?n34?MXN&JgP{XDFn!1y+%jd zD1w1e)5Bq|bO1Rj@yQ7%h^R=^D$IRCVu23kV12SLfDaEqqa*P!icjh~u9H&!cf^v$ XeZH==2g6*{uOE1C@%5}^^F;pvsC1I@ literal 0 HcmV?d00001 diff --git a/DreamBeanDemo/index.html b/DreamBeanDemo/index.html new file mode 100644 index 0000000..92396fe --- /dev/null +++ b/DreamBeanDemo/index.html @@ -0,0 +1,32 @@ + + + + +Mario_1_1_PartTwo + + + + + + + + + + + + + +

+ + + + + + + + \ No newline at end of file diff --git a/DreamBeanDemo/offline.json b/DreamBeanDemo/offline.json new file mode 100644 index 0000000..87a9f42 --- /dev/null +++ b/DreamBeanDemo/offline.json @@ -0,0 +1 @@ +{"version":1555438566951,"fileList":["scripts/c3runtime.js","data.json","style.css","scripts/offlineClient.js","images/shared-0-sheet4.png","images/bigmario-sheet3.png","images/dirt_solid-sheet0.png","images/dirt_solid-sheet1.png","images/bigmario-sheet2.png","images/bigmario-sheet4.png","images/shared-0-sheet2.png","images/bigmario-sheet0.png","images/shared-0-sheet0.png","images/shared-0-sheet1.png","images/shared-0-sheet3.png","images/dirt_hide-sheet0.png","images/dirt_hide-sheet1.png","images/bigmario-sheet1.png","scripts/main.js","scripts/dispatchWorker.js","scripts/jobWorker.js","scripts/workerMain.js","scripts/supportCheck.js","icons/icon-512.png","icons/icon-16.png","icons/icon-32.png","icons/icon-128.png","icons/icon-256.png","icons/icon-64.png","icons/loading-logo.png","scripts/register-sw.js"]} \ No newline at end of file diff --git a/DreamBeanDemo/scripts/c3runtime.js b/DreamBeanDemo/scripts/c3runtime.js new file mode 100644 index 0000000..ef81430 --- /dev/null +++ b/DreamBeanDemo/scripts/c3runtime.js @@ -0,0 +1,690 @@ +// Generated by Construct 3, the game and app creator :: https://www.construct.net +"use strict"; +// c3/3rdparty/glmatrix.js +(function(e,t){if('object'==typeof exports&&'object'==typeof module)module.exports=t();else if('function'==typeof define&&define.amd)define([],t);else{var r=t();for(var a in r)('object'==typeof exports?exports:e)[a]=r[a]}})(this,function(){var e=Math.acos,t=Math.round,r=Math.min,o=Math.floor,l=Math.ceil,n=Math.sqrt,s=Math.pow,d=Math.cos,u=Math.sin,i=Math.max,m=Math.abs,c=Math.PI;return function(e){function t(r){if(a[r])return a[r].exports;var o=a[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var a={};return t.m=e,t.c=a,t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var a=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(a,'a',a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=4)}([function(e,t){'use strict';Object.defineProperty(t,'__esModule',{value:!0}),t.setMatrixArrayType=function(e){t.ARRAY_TYPE=a=e},t.toRadian=function(e){return e*l},t.equals=function(e,t){return m(e-t)<=r*i(1,m(e),m(t))};var r=t.EPSILON=1e-6,a=t.ARRAY_TYPE='undefined'==typeof Float32Array?Array:Float32Array,o=t.RANDOM=Math.random,l=c/180},function(e,t,a){'use strict';function r(e,t,a){var r=t[0],o=t[1],l=t[2],s=t[3],n=t[4],d=t[5],u=t[6],i=t[7],c=t[8],m=a[0],f=a[1],P=a[2],p=a[3],E=a[4],y=a[5],A=a[6],O=a[7],R=a[8];return e[0]=m*r+f*s+P*u,e[1]=m*o+f*n+P*i,e[2]=m*l+f*d+P*c,e[3]=p*r+E*s+y*u,e[4]=p*o+E*n+y*i,e[5]=p*l+E*d+y*c,e[6]=A*r+O*s+R*u,e[7]=A*o+O*n+R*i,e[8]=A*l+O*d+R*c,e}function o(e,t,a){return e[0]=t[0]-a[0],e[1]=t[1]-a[1],e[2]=t[2]-a[2],e[3]=t[3]-a[3],e[4]=t[4]-a[4],e[5]=t[5]-a[5],e[6]=t[6]-a[6],e[7]=t[7]-a[7],e[8]=t[8]-a[8],e}Object.defineProperty(t,'__esModule',{value:!0}),t.sub=t.mul=void 0,t.create=function(){var e=new c.ARRAY_TYPE(9);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromMat4=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e},t.clone=function(e){var t=new c.ARRAY_TYPE(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},t.copy=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},t.fromValues=function(e,t,a,r,o,l,s,n,d){var u=new c.ARRAY_TYPE(9);return u[0]=e,u[1]=t,u[2]=a,u[3]=r,u[4]=o,u[5]=l,u[6]=s,u[7]=n,u[8]=d,u},t.set=function(e,t,a,r,o,l,s,n,d,u){return e[0]=t,e[1]=a,e[2]=r,e[3]=o,e[4]=l,e[5]=s,e[6]=n,e[7]=d,e[8]=u,e},t.identity=function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.transpose=function(e,t){if(e===t){var a=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=a,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e},t.invert=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8],c=i*s-n*u,m=-i*l+n*d,f=u*l-s*d,P=a*c+r*m+o*f;return P?(P=1/P,e[0]=c*P,e[1]=(-i*r+o*u)*P,e[2]=(n*r-o*s)*P,e[3]=m*P,e[4]=(i*a-o*d)*P,e[5]=(-n*a+o*l)*P,e[6]=f*P,e[7]=(-u*a+r*d)*P,e[8]=(s*a-r*l)*P,e):null},t.adjoint=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8];return e[0]=s*i-n*u,e[1]=o*u-r*i,e[2]=r*n-o*s,e[3]=n*d-l*i,e[4]=a*i-o*d,e[5]=o*l-a*n,e[6]=l*u-s*d,e[7]=r*d-a*u,e[8]=a*s-r*l,e},t.determinant=function(e){var t=e[0],a=e[1],r=e[2],o=e[3],l=e[4],s=e[5],n=e[6],d=e[7],u=e[8];return t*(u*l-s*d)+a*(-u*o+s*n)+r*(d*o-l*n)},t.multiply=r,t.translate=function(e,t,a){var r=t[0],o=t[1],l=t[2],s=t[3],n=t[4],d=t[5],u=t[6],i=t[7],c=t[8],m=a[0],f=a[1];return e[0]=r,e[1]=o,e[2]=l,e[3]=s,e[4]=n,e[5]=d,e[6]=m*r+f*s+u,e[7]=m*o+f*n+i,e[8]=m*l+f*d+c,e},t.rotate=function(e,t,a){var r=t[0],o=t[1],l=t[2],n=t[3],i=t[4],m=t[5],f=t[6],P=t[7],p=t[8],E=u(a),s=d(a);return e[0]=s*r+E*n,e[1]=s*o+E*i,e[2]=s*l+E*m,e[3]=s*n-E*r,e[4]=s*i-E*o,e[5]=s*m-E*l,e[6]=f,e[7]=P,e[8]=p,e},t.scale=function(e,t,a){var r=a[0],o=a[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},t.fromTranslation=function(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e},t.fromRotation=function(e,t){var a=u(t),r=d(t);return e[0]=r,e[1]=a,e[2]=0,e[3]=-a,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromScaling=function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromMat2d=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e},t.fromQuat=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a+a,n=r+r,d=o+o,u=a*s,i=r*s,c=r*n,m=o*s,f=o*n,P=o*d,p=l*s,E=l*n,y=l*d;return e[0]=1-c-P,e[3]=i-y,e[6]=m+E,e[1]=i+y,e[4]=1-u-P,e[7]=f-p,e[2]=m-E,e[5]=f+p,e[8]=1-u-c,e},t.normalFromMat4=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8],c=t[9],m=t[10],f=t[11],P=t[12],p=t[13],E=t[14],y=t[15],A=a*n-r*s,O=a*d-o*s,R=a*u-l*s,L=r*d-o*n,S=r*u-l*n,_=o*u-l*d,N=i*p-c*P,I=i*E-m*P,Y=i*y-f*P,q=c*E-m*p,g=c*y-f*p,M=m*y-f*E,v=A*M-O*g+R*q+L*Y-S*I+_*N;return v?(v=1/v,e[0]=(n*M-d*g+u*q)*v,e[1]=(d*Y-s*M-u*I)*v,e[2]=(s*g-n*Y+u*N)*v,e[3]=(o*g-r*M-l*q)*v,e[4]=(a*M-o*Y+l*I)*v,e[5]=(r*Y-a*g-l*N)*v,e[6]=(p*_-E*S+y*L)*v,e[7]=(E*R-P*_-y*O)*v,e[8]=(P*S-p*R+y*A)*v,e):null},t.projection=function(e,t,a){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/a,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e},t.str=function(e){return'mat3('+e[0]+', '+e[1]+', '+e[2]+', '+e[3]+', '+e[4]+', '+e[5]+', '+e[6]+', '+e[7]+', '+e[8]+')'},t.frob=function(e){return n(s(e[0],2)+s(e[1],2)+s(e[2],2)+s(e[3],2)+s(e[4],2)+s(e[5],2)+s(e[6],2)+s(e[7],2)+s(e[8],2))},t.add=function(e,t,a){return e[0]=t[0]+a[0],e[1]=t[1]+a[1],e[2]=t[2]+a[2],e[3]=t[3]+a[3],e[4]=t[4]+a[4],e[5]=t[5]+a[5],e[6]=t[6]+a[6],e[7]=t[7]+a[7],e[8]=t[8]+a[8],e},t.subtract=o,t.multiplyScalar=function(e,t,a){return e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e[3]=t[3]*a,e[4]=t[4]*a,e[5]=t[5]*a,e[6]=t[6]*a,e[7]=t[7]*a,e[8]=t[8]*a,e},t.multiplyScalarAndAdd=function(e,t,a,r){return e[0]=t[0]+a[0]*r,e[1]=t[1]+a[1]*r,e[2]=t[2]+a[2]*r,e[3]=t[3]+a[3]*r,e[4]=t[4]+a[4]*r,e[5]=t[5]+a[5]*r,e[6]=t[6]+a[6]*r,e[7]=t[7]+a[7]*r,e[8]=t[8]+a[8]*r,e},t.exactEquals=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},t.equals=function(e,t){var a=e[0],r=e[1],o=e[2],l=e[3],s=e[4],n=e[5],d=e[6],u=e[7],f=e[8],P=t[0],p=t[1],E=t[2],y=t[3],A=t[4],O=t[5],R=t[6],L=t[7],S=t[8];return m(a-P)<=c.EPSILON*i(1,m(a),m(P))&&m(r-p)<=c.EPSILON*i(1,m(r),m(p))&&m(o-E)<=c.EPSILON*i(1,m(o),m(E))&&m(l-y)<=c.EPSILON*i(1,m(l),m(y))&&m(s-A)<=c.EPSILON*i(1,m(s),m(A))&&m(n-O)<=c.EPSILON*i(1,m(n),m(O))&&m(d-R)<=c.EPSILON*i(1,m(d),m(R))&&m(u-L)<=c.EPSILON*i(1,m(u),m(L))&&m(f-S)<=c.EPSILON*i(1,m(f),m(S))};var l=a(0),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(l);var f=t.mul=r,P=t.sub=o},function(a,s,f){'use strict';function P(){var e=new Y.ARRAY_TYPE(3);return e[0]=0,e[1]=0,e[2]=0,e}function p(e){var t=e[0],a=e[1],r=e[2];return n(t*t+a*a+r*r)}function E(e,t,a){var r=new Y.ARRAY_TYPE(3);return r[0]=e,r[1]=t,r[2]=a,r}function y(e,t,a){return e[0]=t[0]-a[0],e[1]=t[1]-a[1],e[2]=t[2]-a[2],e}function A(e,t,a){return e[0]=t[0]*a[0],e[1]=t[1]*a[1],e[2]=t[2]*a[2],e}function O(e,t,a){return e[0]=t[0]/a[0],e[1]=t[1]/a[1],e[2]=t[2]/a[2],e}function R(e,t){var a=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return n(a*a+r*r+o*o)}function L(e,t){var a=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return a*a+r*r+o*o}function S(e){var t=e[0],a=e[1],r=e[2];return t*t+a*a+r*r}function _(e,t){var a=t[0],r=t[1],o=t[2],l=a*a+r*r+o*o;return 0l?c:e(l)},s.str=function(e){return'vec3('+e[0]+', '+e[1]+', '+e[2]+')'},s.exactEquals=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},s.equals=function(e,t){var a=e[0],r=e[1],o=e[2],l=t[0],s=t[1],n=t[2];return m(a-l)<=Y.EPSILON*i(1,m(a),m(l))&&m(r-s)<=Y.EPSILON*i(1,m(r),m(s))&&m(o-n)<=Y.EPSILON*i(1,m(o),m(n))};var I=f(0),Y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(I),q=s.sub=y,g=s.mul=A,M=s.div=O,v=s.dist=R,h=s.sqrDist=L,T=s.len=p,b=s.sqrLen=S,x=s.forEach=function(){var e=P();return function(t,a,o,s,n,d){var u,i;for(a||(a=3),o||(o=0),i=s?r(s*a+o,t.length):t.length,u=o;ut[5]&t[0]>t[10]?(r=2*n(1+t[0]-t[5]-t[10]),e[3]=(t[6]-t[9])/r,e[0]=.25*r,e[1]=(t[1]+t[4])/r,e[2]=(t[8]+t[2])/r):t[5]>t[10]?(r=2*n(1+t[5]-t[0]-t[10]),e[3]=(t[8]-t[2])/r,e[0]=(t[1]+t[4])/r,e[1]=.25*r,e[2]=(t[6]+t[9])/r):(r=2*n(1+t[10]-t[0]-t[5]),e[3]=(t[1]-t[4])/r,e[0]=(t[8]+t[2])/r,e[1]=(t[6]+t[9])/r,e[2]=.25*r),e},t.fromRotationTranslationScale=function(e,t,a,r){var o=t[0],l=t[1],s=t[2],n=t[3],d=o+o,u=l+l,i=s+s,c=o*d,m=o*u,f=o*i,P=l*u,p=l*i,E=s*i,y=n*d,A=n*u,O=n*i,R=r[0],L=r[1],S=r[2];return e[0]=(1-(P+E))*R,e[1]=(m+O)*R,e[2]=(f-A)*R,e[3]=0,e[4]=(m-O)*L,e[5]=(1-(c+E))*L,e[6]=(p+y)*L,e[7]=0,e[8]=(f+A)*S,e[9]=(p-y)*S,e[10]=(1-(c+P))*S,e[11]=0,e[12]=a[0],e[13]=a[1],e[14]=a[2],e[15]=1,e},t.fromRotationTranslationScaleOrigin=function(e,t,a,r,l){var o=t[0],s=t[1],n=t[2],d=t[3],u=o+o,i=s+s,c=n+n,m=o*u,f=o*i,P=o*c,p=s*i,E=s*c,y=n*c,A=d*u,O=d*i,R=d*c,L=r[0],S=r[1],_=r[2],N=l[0],I=l[1],Y=l[2];return e[0]=(1-(p+y))*L,e[1]=(f+R)*L,e[2]=(P-O)*L,e[3]=0,e[4]=(f-R)*S,e[5]=(1-(m+y))*S,e[6]=(E+A)*S,e[7]=0,e[8]=(P+O)*_,e[9]=(E-A)*_,e[10]=(1-(m+p))*_,e[11]=0,e[12]=a[0]+N-(e[0]*N+e[4]*I+e[8]*Y),e[13]=a[1]+I-(e[1]*N+e[5]*I+e[9]*Y),e[14]=a[2]+Y-(e[2]*N+e[6]*I+e[10]*Y),e[15]=1,e},t.fromQuat=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a+a,n=r+r,d=o+o,u=a*s,i=r*s,c=r*n,m=o*s,f=o*n,P=o*d,p=l*s,E=l*n,y=l*d;return e[0]=1-c-P,e[1]=i+y,e[2]=m-E,e[3]=0,e[4]=i-y,e[5]=1-u-P,e[6]=f+p,e[7]=0,e[8]=m+E,e[9]=f-p,e[10]=1-u-c,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},t.frustum=function(e,t,a,r,o,l,s){var n=1/(a-t),d=1/(o-r),u=1/(l-s);return e[0]=2*l*n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*l*d,e[6]=0,e[7]=0,e[8]=(a+t)*n,e[9]=(o+r)*d,e[10]=(s+l)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*(s*l)*u,e[15]=0,e},t.perspective=function(e,t,a,r,o){var s=1/l(t/2),n=1/(r-o);return e[0]=s/a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=(o+r)*n,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*o*r*n,e[15]=0,e},t.perspectiveFromFieldOfView=function(e,t,a,r){var o=l(t.upDegrees*c/180),s=l(t.downDegrees*c/180),n=l(t.leftDegrees*c/180),d=l(t.rightDegrees*c/180),u=2/(n+d),i=2/(o+s);return e[0]=u,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=-(.5*((n-d)*u)),e[9]=.5*((o-s)*i),e[10]=r/(a-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*a/(a-r),e[15]=0,e},t.ortho=function(e,t,a,r,o,l,s){var n=1/(t-a),d=1/(r-o),u=1/(l-s);return e[0]=-2*n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*d,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+a)*n,e[13]=(o+r)*d,e[14]=(s+l)*u,e[15]=1,e},t.lookAt=function(e,t,a,r){var o=void 0,l=void 0,s=void 0,d=void 0,u=void 0,i=void 0,c=void 0,f=void 0,p=void 0,E=void 0,y=t[0],A=t[1],O=t[2],R=r[0],L=r[1],S=r[2],_=a[0],N=a[1],I=a[2];return m(y-_)p&&(p=-p,i=-i,c=-c,m=-m,f=-f),1e-6<1-p?(P=e(p),E=u(P),y=u((1-l)*P)/E,A=u(l*P)/E):(y=1-l,A=l),r[0]=y*t+A*i,r[1]=y*s+A*c,r[2]=y*n+A*m,r[3]=y*d+A*f,r}function P(e,t){var a=t[0]+t[4]+t[8],r=void 0;if(0t[0]&&(o=1),t[8]>t[3*o+o]&&(o=2);var l=(o+1)%3,s=(o+2)%3;r=n(t[3*o+o]-t[3*l+l]-t[3*s+s]+1),e[o]=.5*r,r=.5/r,e[3]=(t[3*l+s]-t[3*s+l])*r,e[l]=(t[3*l+o]+t[3*o+l])*r,e[s]=(t[3*s+o]+t[3*o+s])*r}return e}Object.defineProperty(a,'__esModule',{value:!0}),a.setAxes=a.sqlerp=a.rotationTo=a.equals=a.exactEquals=a.normalize=a.sqrLen=a.squaredLength=a.len=a.length=a.lerp=a.dot=a.scale=a.mul=a.add=a.set=a.copy=a.fromValues=a.clone=void 0,a.create=l,a.identity=function(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},a.setAxisAngle=s,a.getAxisAngle=function(t,a){var r=2*e(a[3]),o=u(r/2);return 0==o?(t[0]=1,t[1]=0,t[2]=0):(t[0]=a[0]/o,t[1]=a[1]/o,t[2]=a[2]/o),r},a.multiply=i,a.rotateX=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i+s*n,e[1]=o*i+l*n,e[2]=l*i-o*n,e[3]=s*i-r*n,e},a.rotateY=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i-l*n,e[1]=o*i+s*n,e[2]=l*i+r*n,e[3]=s*i-o*n,e},a.rotateZ=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i+o*n,e[1]=o*i-r*n,e[2]=l*i+s*n,e[3]=s*i-l*n,e},a.calculateW=function(e,t){var a=t[0],r=t[1],o=t[2];return e[0]=a,e[1]=r,e[2]=o,e[3]=n(m(1-a*a-r*r-o*o)),e},a.slerp=f,a.invert=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a*a+r*r+o*o+l*l,n=s?1/s:0;return e[0]=-a*n,e[1]=-r*n,e[2]=-o*n,e[3]=l*n,e},a.conjugate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e},a.fromMat3=P,a.fromEuler=function(e,t,a,r){var o=.5*c/180;t*=o,a*=o,r*=o;var l=u(t),s=d(t),n=u(a),i=d(a),m=u(r),f=d(r);return e[0]=l*i*f-s*n*m,e[1]=s*n*f+l*i*m,e[2]=s*i*m-l*n*f,e[3]=s*i*f+l*n*m,e},a.str=function(e){return'quat('+e[0]+', '+e[1]+', '+e[2]+', '+e[3]+')'};var p=r(0),E=o(p),y=r(1),A=o(y),O=r(2),R=o(O),L=r(3),S=o(L),_=a.clone=S.clone,N=a.fromValues=S.fromValues,I=a.copy=S.copy,Y=a.set=S.set,q=a.add=S.add,g=a.mul=i,M=a.scale=S.scale,v=a.dot=S.dot,h=a.lerp=S.lerp,T=a.length=S.length,b=a.len=T,x=a.squaredLength=S.squaredLength,D=a.sqrLen=x,k=a.normalize=S.normalize,w=a.exactEquals=S.exactEquals,V=a.equals=S.equals,j=a.rotationTo=function(){var e=R.create(),t=R.fromValues(1,0,0),r=R.fromValues(0,1,0);return function(o,l,a){var n=R.dot(l,a);return-.999999>n?(R.cross(e,t,l),1e-6>R.len(e)&&R.cross(e,r,l),R.normalize(e,e),s(o,e,Math.PI),o):.999999=i&&0<=j&&1>=j}function e(d,a,b){return(a[0]-d[0])*(b[1]-d[1])-(b[0]-d[0])*(a[1]-d[1])}function a(d,a,b){return 0e(d,a,b)}function g(d,a,b){return 0>=e(d,a,b)}function h(d,a,b,c){var f=Math.sqrt;if(!c)return 0===e(d,a,b);var g=tmpPoint1,h=tmpPoint2;g[0]=a[0]-d[0],g[1]=a[1]-d[1],h[0]=b[0]-a[0],h[1]=b[1]-a[1];var i=g[0]*h[0]+g[1]*h[1],j=f(g[0]*g[0]+g[1]*g[1]),k=f(h[0]*h[0]+h[1]*h[1]),l=Math.acos(i/(j*k));return lb?b%c+c:b%c]}function m(a){a.length=0}function n(a,b,c,d){for(var e=c;eJ.length)return e;if(w++,w>s)return console.warn("quickDecomp: max level ("+s+") reached."),e;for(var v=0;vD&&(D+=c.length),d=x,Dd[c][0])&&(c=e);return!a(l(b,c-1),l(b,c),l(b,c+1))&&(j(b),!0)}}} + +// c3/3rdparty/localforage.js +!function(c){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=c();else if("function"==typeof define&&define.amd)define([],c);else{var a;a="undefined"==typeof window?"undefined"==typeof global?"undefined"==typeof self?this:self:global:window,a.localforage=c()}}(function(){return function l(m,a,b){function d(e,f){if(!a[e]){if(!m[e]){var g="function"==typeof require&&require;if(!f&&g)return g(e,!0);if(c)return c(e,!0);var i=new Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}var j=a[e]={exports:{}};m[e][0].call(j.exports,function(b){var a=m[e][1][b];return d(a||b)},j,j.exports,l,m,a,b)}return a[e].exports}for(var c="function"==typeof require&&require,e=0;e=a.oldVersion&&b.createObjectStore(Q)}catch(b){if("ConstraintError"!==b.name)throw b;console.warn("The database \""+g.name+"\" has been upgraded from version "+a.oldVersion+" to version "+a.newVersion+", but the storage \""+g.storeName+"\" already exists.")}}),e.onerror=function(b){b.preventDefault(),c(e.error)},e.onsuccess=function(){h(e.result),k(g)}})}function n(b){return m(b,!1)}function o(b){return m(b,!0)}function p(g,a){if(!g.db)return!0;var b=!g.db.objectStoreNames.contains(g.storeName),c=g.versiong.db.version;if(c&&(g.version!==a&&console.warn("The database \""+g.name+"\" can't be downgraded from version "+g.db.version+" to version "+g.version+"."),g.version=g.db.version),d||b){if(b){var e=g.db.version+1;e>g.version&&(g.version=e)}return!0}return!1}function q(e){return new P(function(a,b){var c=new FileReader;c.onerror=b,c.onloadend=function(b){var c=btoa(b.target.result||"");a({__local_forage_encoded_blob:!0,data:c,type:e.type})},c.readAsBinaryString(e)})}function r(b){return e([d(atob(b.data))],{type:b.type})}function s(b){return b&&b.__local_forage_encoded_blob}function t(d){var e=this,a=e._initReady().then(function(){var b=S[e._dbInfo.name];if(b&&b.dbReady)return b.dbReady});return D(a,d,d),a}function u(f){j(f);for(var a,g=S[f.name],b=g.forages,c=0;c>4,j[h++]=(15&c)<<4|d>>2,j[h++]=(3&d)<<6|63&e;return i}function y(e){var a,b=new Uint8Array(e),c="";for(a=0;a>2],c+=X[(3&b[a])<<4|b[a+1]>>4],c+=X[(15&b[a+1])<<2|b[a+2]>>6],c+=X[63&b[a+2]];return 2==b.length%3?c=c.substring(0,c.length-1)+"=":1==b.length%3&&(c=c.substring(0,c.length-2)+"=="),c}function z(e,a,b,c){e.executeSql("CREATE TABLE IF NOT EXISTS "+a.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],b,c)}function A(g,i,b,c,d,e){g.executeSql(b,c,d,function(f,j){j.code===j.SYNTAX_ERR?f.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[i.storeName],function(f,a){a.rows.length?e(f,j):z(f,i,function(){f.executeSql(b,c,d,e)},e)},e):e(f,j)},e)}function B(j,a,i,c){var d=this;j=g(j);var b=new P(function(e,f){d.ready().then(function(){void 0===a&&(a=null);var g=a,h=d._dbInfo;h.serializer.serialize(a,function(a,b){b?f(b):h.db.transaction(function(b){A(b,h,"INSERT OR REPLACE INTO "+h.storeName+" (key, value) VALUES (?, ?)",[j,a],function(){e(g)},function(c,a){f(a)})},function(a){if(a.code===a.QUOTA_ERR){if(0 '__WebKitDatabaseInfoTable__'",[],function(b,c){for(var d=[],i=0;ie?void a(null):void j.ready().then(function(){v(j._dbInfo,U,function(c,d){if(c)return b(c);try{var f=d.objectStore(j._dbInfo.storeName),g=!1,h=f.openCursor();h.onsuccess=function(){var b=h.result;return b?void(0===e?a(b.key):g?a(b.key):(g=!0,b.advance(e))):void a(null)},h.onerror=function(){b(h.error)}}catch(c){b(c)}})}).catch(b)});return C(b,a),b},keys:function(d){var i=this,a=new P(function(d,b){i.ready().then(function(){v(i._dbInfo,U,function(a,c){if(a)return b(a);try{var e=c.objectStore(i._dbInfo.storeName),f=e.openCursor(),g=[];f.onsuccess=function(){var a=f.result;return a?void(g.push(a.key),a.continue()):void d(g)},f.onerror=function(){b(f.error)}}catch(c){b(c)}})}).catch(b)});return C(a,d),a},dropInstance:function(i,m){m=h.apply(this,arguments);var b=this.config();i="function"!=typeof i&&i||{},i.name||(i.name=i.name||b.name,i.storeName=i.storeName||b.storeName);var c,d=this;if(i.name){var e=i.name===b.name&&d._dbInfo.db,f=e?P.resolve(d._dbInfo.db):n(i).then(function(a){var b=S[i.name],c=b.forages;b.db=a;for(var d=0;d{e="Windows";const b=a.split(" ")[2];b&&("5.0"===b?f="2000":"5.1"===b?f="XP":"5.2"===b?f="XP":"6.0"===b?f="Vista":"6.1"===b?f="7":"6.2"===b?f="8":"6.3"===b?f="8.1":"10.0"===b?f="10":void 0)}),a("isOSX",d.OSX,(a)=>{e="Mac OS X";const b=a.split(" ")[3];b&&(f=b.replace("_","."))}),a("isLinux",c.linux,()=>{e="Linux"}),a("isChromeOS",c.chromeOS,()=>{e="Chrome OS"}),a("isAndroid",!c.windowsTizen&&d.android,(a)=>{e="Android";const b=a.split(" ")[1];b&&(f=b)}),a("isTizen",d.tizen,(a)=>{e="Tizen";const b=a.split(" ")[1];b&&(f=b)}),a("isIPhone",!c.windowsTizen&&d.iphone,(a)=>{e="iOS";const b=a.split(" ")[2];b&&(f=b.replace("_","."))}),a("isIPad",!c.windowsTizen&&d.ipad,(a)=>{e="iOS";const b=a.split(" ")[3];b&&(f=b.replace("_","."))}),a("isWindowsPhone",d.winPhone,(a)=>{e="Windows Phone";const b=a.split(" ")[2];b&&(f=b)}),a("isWindowsPhoneOS",d.winPhoneOS,(a)=>{e="Windows Phone";const b=a.split(" ")[3];b&&(f=b)}),a("isBlackberry",c.blackberry,()=>{e="Blackberry",f="10",h="stock",k="webkit"}),a("isChrome",!c.edge&&!c.opera&&d.chrome,(a)=>{h="Chrome",k="Blink";const b=a.split("/")[1];b&&(i=b)}),a("isOpera",d.opera,(a)=>{h="Opera",k="Blink";const b=a.split("/")[1];b&&(i=b)}),a("isChromium",d.chromium,(a)=>{h="Chromium",k="Blink";const b=a.split("/")[1];b&&(i=b)}),a("isFirefox",d.firefox,(a)=>{h="Firefox",k="Gecko";const b=a.split("/")[1];b&&(i=b)}),a("isInternetExplorer",d.ie,(a)=>{h="Internet Explorer",k="Trident";const b=a.split(" ")[1];b&&(i=b)}),a("isTrident","Internet Explorer"!=h&&c.trident,()=>{k="Trident";const a=/rv:[0-9.]+/i.exec(b);if(a&&a.length){h="Internet Explorer";const b=a[0].split(":")[1];b&&(i=b)}}),a("isEdge",d.edge,(a)=>{h="Edge",k="Edge";const b=a.split("/")[1];b&&(i=b)}),a("isSafari",c.safari&&!c.nokia&&!c.chrome&&!c.chromium&&!c.genericIE&&!c.blackberry,()=>{h="Safari",k="WebKit";const a=/version\/[0-9.]+/i.exec(b),c=/crios\/[0-9.]+/i.exec(b),d=/fxios\/[0-9.]+/i.exec(b);if(a&&a.length){const b=a[0].split("/")[1];b&&(i=b)}if(c&&c.length){h="Chrome for iOS";const a=c[0].split("/")[1];a&&(i=a)}if(d&&d.length){h="Firefox for iOS";const a=d[0].split("/")[1];a&&(i=a)}}),a("isSilk",d.silk,(a)=>{h="Silk";const b=a.split("/")[1];b&&(i=b)}),a("isCrosswalk",c.crosswalk,()=>l="crosswalk"),a("isCordova",self["device"]&&(self["device"]["cordova"]||self["device"]["phonegap"]),()=>l="cordova"),a("isNWJS",d.nwjs,(a)=>{l="nwjs",h="NW.js",k="Chromium";const b=a.split("/")[1];b&&(i=b)}),a("isAmazonWebApp",c.amazonwebapp,()=>l="webapp"),a("isHomeScreenWebApp","nwjs"!=l&&"undefined"!=typeof window&&(window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches||navigator["standalone"]),()=>l="webapp"),a("isFalseSafari","Safari"==h&&("Android"==e||"Tizen"==e||"Blackberry"==e),()=>h="stock"),a("isAndroidWebview","Chrome"==h&&"browser"==l&&c.webview,()=>l="webview"),a("isFirefoxOS","Firefox"==h&&e=="(unknown)",()=>e="Firefox OS"),a("isAndroidFallback",e=="(unknown)"&&!c.windowsTizen&&c.android,()=>e="Android"),a("isTridentFallback",e=="(unknown)"&&c.trident,()=>k="Trident"),a("isWebkitFallback",e=="(unknown)"&&c.webkit,()=>k="WebKit"),a("is64Bit",((a)=>a.test(b)||a.test(navigator.platform)||"x64"===navigator.cpuClass)(/x86_64|x86-64|win64|x64;|x64\)|x64_|amd64|wow64|ia64|arm64|arch64|sparc64|ppc64|irix64/i),()=>g="64-bit"),a("is32Bit",((a)=>a.test(b)||a.test(navigator.platform)||"x86"===navigator.cpuClass)(/x86;|x86\)|i86|i386|i486|i586|i686|armv1|armv2|armv3|armv4|armv5|armv6|armv7/i),()=>g="32-bit"),a("is64BitFallback",g=="(unknown)"&&"Mac OS X"==e&&10.7<=parseFloat(f),()=>g="64-bit"),a("is32BitFallback",g=="(unknown)"&&"Windows"==e||"Android"==e&&5>parseFloat(f),()=>g="32-bit"),a("is32BitBrowser","32-bit"==g||/wow64/i.test(b),()=>j="32-bit"),a("is64BitBrowser",/win64/i.test(b),()=>j="64-bit"),a("isDesktop",(()=>"Windows"==e||"Mac OS X"==e||"Linux"==e||"Chrome OS"==e||"nwjs"==l)(),()=>m=!0),"Edge"==k&&"undefined"!=typeof Windows&&"undefined"!=typeof Windows["System"]&&(l="windows-store"),n="nwjs"==l||"windows-store"==l,C3.Platform={OS:e,OSVersion:f,OSArchitecture:g,Browser:h,BrowserVersion:i,BrowserVersionNumber:parseFloat(i),BrowserArchitecture:j,BrowserEngine:k,Context:l,IsDesktop:m,IsMobile:!m,IsDesktopApp:n,IsChromeWebStore:!!(self["chrome"]&&self["chrome"]["runtime"]&&self["chrome"]["runtime"]["id"]),IsAppleOS:"Mac OS X"==e||"iOS"==e}} + +// ../lib/misc/supports.js +"use strict";{if(C3.Supports={},C3.Supports.WebAnimations=(()=>{try{if("undefined"==typeof document)return!1;const a=document.createElement("div");if("undefined"==typeof a.animate)return!1;const b=a.animate([{opacity:"0"},{opacity:"1"}],1e3);return"undefined"!=typeof b.reverse}catch(a){return!1}})(),C3.Supports.DialogElement="undefined"!=typeof HTMLDialogElement,C3.Supports.RequestIdleCallback=!!self.requestIdleCallback,C3.Supports.ImageBitmap="Safari"!==C3.Platform.Browser&&"Firefox"!==C3.Platform.Browser&&!!self.createImageBitmap,C3.Supports.ImageBitmapOptions=!1,C3.Supports.ImageBitmap)try{self.createImageBitmap(new ImageData(32,32),{premultiplyAlpha:"none"}).then(()=>{C3.Supports.ImageBitmapOptions=!0}).catch(()=>{C3.Supports.ImageBitmapOptions=!1})}catch(a){C3.Supports.ImageBitmapOptions=!1}C3.Supports.ClipboardReadText=!!(navigator["clipboard"]&&navigator["clipboard"]["readText"]&&"Firefox"!==C3.Platform.Browser),C3.Supports.Proxies="undefined"!=typeof Proxy,C3.Supports.DownloadAttribute=(()=>{if("undefined"==typeof document)return!1;const b=document.createElement("a");return"undefined"!=typeof b.download})(),C3.Supports.CanvasToBlob=(()=>"undefined"!=typeof HTMLCanvasElement&&HTMLCanvasElement.prototype.toBlob)(),C3.Supports.CSSElement="undefined"!=typeof CSS&&CSS.supports("background","element(#test)"),C3.Supports.Fetch="function"==typeof fetch,C3.Supports.PersistentStorage=!!(self.isSecureContext&&"Opera"!==C3.Platform.Browser&&navigator["storage"]&&navigator["storage"]["persist"]),C3.Supports.StorageQuotaEstimate=!!(self.isSecureContext&&navigator["storage"]&&navigator["storage"]["estimate"]),C3.Supports.Fullscreen=()=>{if("undefined"==typeof document)return!1;const a=document.documentElement;return!!(a.requestFullscreen||a.msRequestFullscreen||a.mozRequestFullScreen||a.webkitRequestFullscreen)};const a=[{name:"A",value:12},{name:"B",value:13},{name:"C",value:13},{name:"D",value:13},{name:"E",value:13},{name:"F",value:13},{name:"G",value:14},{name:"H",value:12},{name:"I",value:12},{name:"J",value:13},{name:"K",value:14}],b=Math.ceil(496/a.length),c=(b+"").length,d=[];for(const e of a)for(let a=0;a<=b;a++)d.push({name:e.name+(a+"")["padStart"](c,"0"),value:e.value});d.sort((c,a)=>a.value-c.value);const e=d.reduce((a,b)=>{const c=b.name.slice(0,1),d=a.slice(-1);return d===c?a:a+c},"");C3.Supports.ArraySortProbablyStable="GKBCDEFJAHI"===e} + +// ../lib/misc/polyfills.js +"use strict";{if(!String.prototype.trimStart){const a=/^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]*/;String.prototype.trimStart=function(){return this.replace(a,"")}}if(!String.prototype.trimEnd){const a=/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]*$/;String.prototype.trimEnd=function(){return this.replace(a,"")}}if(Array.prototype.values||(Array.prototype.values=function*(){for(const a of this)yield a}),!Array.prototype.flat){function a(b,c){return b.reduce((b,d)=>0navigator["webkitTemporaryStorage"]["queryUsageAndQuota"]((b,c)=>a({"usage":b,"quota":c}),b))}),"undefined"==typeof HTMLCollection||HTMLCollection.prototype[Symbol.iterator]||(HTMLCollection.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});"undefined"==typeof NodeList||NodeList.prototype[Symbol.iterator]||(NodeList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});"undefined"==typeof DOMTokenList||DOMTokenList.prototype[Symbol.iterator]||(DOMTokenList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});if("undefined"==typeof FileList||FileList.prototype[Symbol.iterator]||(FileList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}}),"undefined"==typeof TextEncoder&&(self.TextEncoder=class{constructor(){Object.defineProperty(this,"encoding",{"value":"utf-8","writable":!1})}encode(a){for(var b=a.length,c=-1,d=new Uint8Array(3*b),e=0,f=0,g=0;g!==b;){if(e=a.charCodeAt(g),g+=1,55296<=e&&56319>=e){if(g===b){d[c+=1]=239,d[c+=1]=191,d[c+=1]=189;break}if(f=a.charCodeAt(g),!(56320<=f&&57343>=f)){d[c+=1]=239,d[c+=1]=191,d[c+=1]=189;continue}else if(e=1024*(e-55296)+f-56320+65536,g+=1,65535>>18,d[c+=1]=128|63&e>>>12,d[c+=1]=128|63&e>>>6,d[c+=1]=128|63&e;continue}}127>=e?d[c+=1]=0|e:2047>=e?(d[c+=1]=192|e>>>6,d[c+=1]=128|63&e):(d[c+=1]=224|e>>>12,d[c+=1]=128|63&e>>>6,d[c+=1]=128|63&e)}return new Uint8Array(d.buffer.slice(0,c+1))}toString(){return"[object TextEncoder]"}},TextEncoder[Symbol.toStringTag]="TextEncoder"),"undefined"==typeof TextDecoder){function a(a){const b=a[Symbol.iterator]();return{next:()=>b.next(),[Symbol.iterator](){return this}}}function b(a){const b=a.next();if(b.done)throw new Error("unexpected end of input");if(0!=(128^192&b.value))throw new Error("invalid byte");return 63&b.value}const c=new Map;c.set("utf-8",(c,d)=>{let e;if(c.buffer)e=new Uint8Array(c.buffer,c.byteOffset,c.byteLength);else if(e instanceof ArrayBuffer)e=new Uint8Array(c);else throw new Error("Invalid parameter");const f=a(e),g=[];try{for(const a of f){let c;if(127>a)c=127&a;else if(223>a)c=(31&a)<<6|b(f);else if(239>a)c=(15&a)<<12|b(f)<<6|b(f);else if(247>a)c=(7&a)<<18|b(f)<<12|b(f)<<6|b(f);else throw new Error("Invalid character");g.push(String.fromCodePoint(c))}}catch(a){if(d)throw a;g.push("\uFFFD")}return g.join("")}),c.set("utf8",c.get("utf-8")),c.set("utf-16le",()=>{throw new Error("utf-16le decoder not implemented")}),self.TextDecoder=class{constructor(a="utf-8",b={}){const d=c.get(a);if(!d)throw new Error(`TextDecoder polyfill does not support "${a}"`);Object.defineProperty(this,"fatal",{"value":!0===b["fatal"],"writable":!1}),Object.defineProperty(this,"_decoder",{"value":d,"writable":!1}),Object.defineProperty(this,"encoding",{"value":a,"writable":!1})}decode(a){return this["_decoder"](a,this["fatal"])}toString(){return"[object TextDecoder]"}},TextDecoder[Symbol.toStringTag]="TextDecoder"}"undefined"==typeof self.isSecureContext&&(self.isSecureContext="https:"===location.protocol)} + +// c3/lib/misc/assert.js +"use strict";{function a(a){let b=C3.GetCallStack();console.error("Assertion failure: "+a+"\n\nStack trace:\n"+b)}self.assert=function(b,c){b||a(c)}} + +// ../lib/misc/typeChecks.js +"use strict";{C3.IsNumber=function(a){return"number"==typeof a},C3.IsFiniteNumber=function(a){return C3.IsNumber(a)&&isFinite(a)},C3.RequireNumber=function(a){if(!C3.IsNumber(a))throw new TypeError("expected number")},C3.RequireOptionalNumber=function(a){C3.IsNullOrUndefined(a)},C3.RequireNumberInRange=function(a,b,c){if(!C3.IsNumber(a)||isNaN(a)||b>a||cC3.getName(a))),b=[...a].join(",");console.warn(`An object derived from DefendedBase was not protected with debugDefend(). This will disable some checks. See the coding guidelines! Possible affected class names: ${b}`),f.clear(),g.clear()}}function d(a){let b=new Set;for(let c in a)b.add(c);return b}function e(a,b){let c=d(b),e=l.get(a);if(e){let b=[];for(let a of e.values())c.has(a)?c.delete(a):b.push(a);C3.appendArray(b,[...c]),b.length&&console.warn(`[Defence] '${C3.getName(a)}' constructor creates inconsistent properties: ${b.join(", ")}`)}else l.set(a,c)}C3.GetCallStack=function(){return new Error().stack},C3.Debugger=function(){debugger},C3.cast=function(a,b){return a&&a instanceof b?a:null},C3.getName=function(a){return"undefined"==typeof a?"undefined":null===a?"null":"boolean"==typeof a?"":C3.IsNumber(a)?"":C3.IsString(a)?"":C3.IsArray(a)?"":"symbol"==typeof a?"<"+a.toString()+">":C3.IsFunction(a)?a.name&&"Function"!==a.name?a.name:"":"object"==typeof a?a.constructor&&a.constructor.name&&"Object"!==a.constructor.name?a.constructor.name:"":""},C3.getType=function(a){return null===a?"null":Array.isArray(a)?"array":typeof a},C3.range=function*(c,a){if(!isFinite(Math.abs(c-a)))throw new Error("Invalid parameters");if(c>a)for(let b=c-1;b>=a;b--)yield b;else for(let b=c;b1/a}const b=2*Math.PI,c=Math.PI/180,d=180/Math.PI;C3.wrap=function(a,b,c){var d=Math.floor;if(a=d(a),b=d(b),c=d(c),aa?a:c},C3.clampAngle=function(c){return c%=b,0>c&&(c+=b),c},C3.toRadians=function(a){return a*c},C3.toDegrees=function(a){return a*d},C3.distanceTo=function(a,b,c,d){return Math.hypot(c-a,d-b)},C3.distanceSquared=function(a,b,c,d){const e=c-a,f=d-b;return e*e+f*f},C3.angleTo=function(a,b,c,d){return Math.atan2(d-b,c-a)},C3.angleDiff=function(a,b){var c=Math.cos,d=Math.sin;if(a===b)return 0;let e=d(a),f=c(a),g=d(b),h=c(b),i=e*g+f*h;return 1<=i?0:-1>=i?Math.PI:Math.acos(i)},C3.angleRotate=function(a,b,c){var d=Math.cos,e=Math.sin;let f=e(a),g=d(a),h=e(b),i=d(b);return Math.acos(f*h+g*i)>c?0=f*g-e*h},C3.angleLerp=function(c,a,b){let d=C3.angleDiff(c,a);return C3.angleClockwise(a,c)?C3.clampAngle(c+d*b):C3.clampAngle(c-d*b)},C3.lerp=function(c,a,b){return c+b*(a-c)},C3.unlerp=function(c,a,b){return c===a?0:(b-c)/(a-c)},C3.relerp=function(e,a,b,f,c){return C3.lerp(f,c,C3.unlerp(e,a,b))},C3.qarp=function(d,a,b,c){return C3.lerp(C3.lerp(d,a,c),C3.lerp(a,b,c),c)},C3.cubic=function(e,a,b,c,d){return C3.lerp(C3.qarp(e,a,b,d),C3.qarp(a,b,c,d),d)},C3.cosp=function(c,a,b){return(c+a+(c-a)*Math.cos(b*Math.PI))/2},C3.isPOT=function(a){return 0b;b<<=1)a|=a>>b;return a+1},C3.roundToNearestFraction=function(a,b){return Math.round(a*b)/b},C3.floorToNearestFraction=function(a,b){return Math.floor(a*b)/b},C3.round6dp=function(a){return Math.round(1e6*a)/1e6},C3.toFixed=function(a,b){let c=a.toFixed(b),d=c.length-1;for(;0<=d&&"0"===c.charAt(d);--d);return 0<=d&&"."===c.charAt(d)&&--d,0>d?c:c.substr(0,d+1)},C3.PackRGB=function(a,b,c){return C3.clamp(a,0,255)|C3.clamp(b,0,255)<<8|C3.clamp(c,0,255)<<16};const e=1024;C3.PackRGBAEx=function(a,b,c,d){var f=Math.floor;return a=C3.clamp(f(1024*a),-8192,8191),b=C3.clamp(f(1024*b),-8192,8191),c=C3.clamp(f(1024*c),-8192,8191),d=C3.clamp(f(1023*d),0,1023),0>a&&(a+=16384),0>b&&(b+=16384),0>c&&(c+=16384),-(16384*(16384*a)*e+16384*b*e+c*e+d)},C3.PackRGBEx=function(a,b,c){return C3.PackRGBAEx(a,b,c,1)},C3.GetRValue=function(a){if(0<=a)return(255&a)/255;else{let b=Math.floor(-a/274877906944);return 8191>8)/255;else{let b=Math.floor(-a%274877906944/16777216);return 8191>16)/255;else{let b=Math.floor(-a%16777216/e);return 8191c(b-e))return d.slice(0);if(e=a/d[1]*d[0],1>c(b-e))return[d[1],d[0]]}let e=C3.greatestCommonDivisor(a,b);return[a/e,b/e]},C3.segmentsIntersect=function(a,b,c,e,f,g,h,i){var j=Math.abs;let k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(ao)return!1;if(bq)return!1;let s=f-a+h-c,t=g-b+i-e,u=c-a,v=e-b,w=h-f,x=i-g,y=j(v*w-x*u);if(j(w*t-x*s)>y)return!1;return j(u*t-v*s)<=y},C3.segmentsIntersectPreCalc=function(a,b,c,e,f,g,h,i,j,k,l,m){var n=Math.abs;let o=0,p=0,q=0,r=0;if(jo)return!1;if(kq)return!1;let s=j-a+l-c,t=k-b+m-e,u=c-a,v=e-b,w=l-j,x=m-k,y=n(v*w-x*u);if(n(w*t-x*s)>y)return!1;return n(u*t-v*s)<=y},C3.segmentIntersectsQuad=function(a,b,c,d,e){let f=0,g=0,h=0,i=0;ab?"":a.substr(b)},C3.GetFileNamePart=function(a){let b=a.lastIndexOf(".");return 1>b?a:a.substr(0,b)},C3.NormalizeFileSeparator=function(a){return a.replace(/\\/g,"/")},C3.ParseFilePath=function(a){a=C3.NormalizeFileSeparator(a);let b=/^\w\:\//.exec(a);b?(b=b[0],a=a.slice(3)):b="";const c=a.lastIndexOf("/")+1;let d,e="",f=a,g="";0!=c&&(e=a.slice(0,c-1),f=a.slice(c)),d=f;const h=f.lastIndexOf(".");return 0{self.setTimeout(c,a,b)})},C3.swallowException=function(a){try{a()}catch(a){C3.isDebug&&console.warn("Swallowed exception: ",a)}},C3.noop=function(){},C3.equalsNoCase=function(c,d){return"string"==typeof c&&"string"==typeof d&&!(c.length!==d.length)&&(!(c!==d)||c.toLowerCase()===d.toLowerCase())},C3.stableSort=function(a,c){if(C3.Supports.ArraySortProbablyStable)return void a.sort(c);const b=a.map((a,b)=>[a,b]);b.sort((d,a)=>{const b=c(d[0],a[0]);return 0===b?d[1]-a[1]:b});for(let d=0,e=a.length;dd&&C3.extendArray(a,b,c)},C3.shallowAssignArray=function(a,b){C3.clearArray(a),C3.appendArray(a,b)},C3.appendArray=function(c,a){for(let b=0,d=a.length;bb||b>=a.length)){let c=a.length-1;for(let d=b;dc:!(5!=b)&&a>=c},C3.hasAnyOwnProperty=function(a){for(let b in a)if(a.hasOwnProperty(b))return!0;return!1},C3.PromiseAllWithProgress=function(a,b){return a.length?new Promise((c,d)=>{const e=[];let f=0,g=!1;for(let h=0,i=a.length;h{g||(e[h]=d,++f,f===a.length?c(e):b(f,a.length))}).catch((a)=>{g=!0,d(a)})}):Promise.resolve([])};let c=[];C3.AddLibraryMemoryCallback=function(a){c.push(a)},C3.GetEstimatedLibraryMemoryUsage=function(){let a=0;for(let b of c){let c=b();a+=c}return Math.floor(a)}} + +// c3/lib/misc/runtimeutil.js +"use strict";C3.IsAbsoluteURL=function(a){return /^(?:[a-z]+:)?\/\//.test(a)||"data:"===a.substr(0,5)||"blob:"===a.substr(0,5)},C3.IsRelativeURL=function(a){return!C3.IsAbsoluteURL(a)},C3.ThrowIfNotOk=function(a){if(!a.ok)throw new Error(`fetch '${a.url}' response returned ${a.status} ${a.statusText}`)},C3.FetchOk=function(a,b){return fetch(a,b).then((a)=>(C3.ThrowIfNotOk(a),a))},C3.FetchText=function(a){return C3.FetchOk(a).then((a)=>a.text())},C3.FetchJson=function(a){return C3.FetchOk(a).then((a)=>a.json())},C3.FetchBlob=function(a){return C3.FetchOk(a).then((a)=>a.blob())},C3.FetchArrayBuffer=function(a){return C3.FetchOk(a).then((a)=>a.arrayBuffer())},C3.FetchImage=function(a){return new Promise((b,c)=>{const d=new Image;d.onload=()=>b(d),d.onerror=(a)=>c(a),d.src=a})},C3.BlobToArrayBuffer=function(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=()=>b(d.result),d.onerror=()=>c(d.error),d.readAsArrayBuffer(a)})},C3.BlobToString=function(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=()=>b(d.result),d.onerror=()=>c(d.error),d.readAsText(a)})},C3.BlobToJson=function(a){return C3.BlobToString(a).then((a)=>JSON.parse(a))},C3.BlobToImage=async function(a,b){let c=URL.createObjectURL(a);try{const a=await C3.FetchImage(c);return URL.revokeObjectURL(c),c="",b&&"function"==typeof a["decode"]&&(await a["decode"]()),a}finally{c&&URL.revokeObjectURL(c)}},C3.CreateCanvas=function(a,b){if("undefined"!=typeof document&&"function"==typeof document.createElement){const c=document.createElement("canvas");return c.width=a,c.height=b,c}return new OffscreenCanvas(a,b)},C3.CanvasToBlob=function(a,b,c){return"number"!=typeof c&&(c=1),b=b||"image/png",c=C3.clamp(c,0,1),a.toBlob?new Promise((d)=>a.toBlob(d,b,c)):a["convertToBlob"]?a["convertToBlob"]({"type":b,"quality":c}):C3.Asyncify(()=>C3.CanvasToBlobSync(a,b,c))},C3.CanvasToBlobSync=function(a,b,c){return"number"!=typeof c&&(c=1),b=b||"image/png",c=C3.clamp(c,0,1),C3.DataURIToBinaryBlob(a.toDataURL(b,c))},C3.DataURIToBinaryBlob=function(a){const b=C3.ParseDataURI(a);return C3.BinaryStringToBlob(b.data,b.mime_type)},C3.ParseDataURI=function(a){if("data:"!==a.substr(0,5))throw new URIError("expected data: uri");let b=a.indexOf(",");if(0>b)throw new URIError("expected comma in data: uri");let c,d=a.substring(5,b),e=a.substring(b+1),f=d.split(";"),g=f[0]||"",h=f[1],i=f[2];return c="base64"===h||"base64"===i?atob(e):decodeURIComponent(e),{mime_type:g,data:c}},C3.BinaryStringToBlob=function(a,b){let c,d,e=a.length,f=e>>2,g=new Uint8Array(e),h=new Uint32Array(g.buffer,0,f);for(c=0,d=0;cC3.DrawableToBlob(a,b,c));if(C3.Supports.ImageBitmap)return createImageBitmap(a).then((a)=>C3.DrawableToBlob(a,b,c));else{const d=C3.CreateCanvas(a.width,a.height),e=d.getContext("2d");return e.putImageData(a,0,0),C3.CanvasToBlob(d,b,c)}},C3.CopySet=function(a,b){a.clear();for(const c of b)a.add(c)},C3.MapToObject=function(a){const b=Object.create(null);for(const[c,d]of a.entries())b[c]=d;return b},C3.ObjectToMap=function(a,b){b.clear();for(const[c,d]of Object.entries(a))b.set(c,d)},C3.ToSuperJSON=function a(b){if("object"==typeof b&&null!==b){if(b instanceof Set)return{"_c3type_":"set","data":[...b].map((b)=>a(b))};if(b instanceof Map)return{"_c3type_":"map","data":[...b].map((b)=>[b[0],a(b[1])])};else{const c=Object.create(null);for(const[d,e]of Object.entries(b))c[d]=a(e);return c}}return b},C3.FromSuperJSON=function a(b){if("object"==typeof b&null!==b){if("set"===b["_c3type_"])return new Set(b["data"].map((b)=>a(b)));if("map"===b["_c3type_"])return new Map(b["data"].map((b)=>[b[0],a(b[1])]));else{const c=Object.create(null);for(const[d,e]of Object.entries(b))c[d]=a(e);return c}}return b},C3.CSSToCamelCase=function(a){let b="",c=!1;for(const d of a)"-"===d?c=!0:c?(b+=d.toUpperCase(),c=!1):b+=d;return b},C3.IsIterator=function(a){return"object"==typeof a&&"function"==typeof a.next}; + +// ../lib/misc/color.js +"use strict";{function a(a){return 0===a.length?"00":1===a.length?"0"+a:a}function c(a,b,c){return 0>c&&(c+=1),1b.length)return!1;const c=parseInt(b[0].trim(),10)/255,d=parseInt(b[1].trim(),10)/255,e=parseInt(b[2].trim(),10)/255;return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),this.setA(1),!0}parseCommaSeparatedPercentageRgb(a){if("string"!=typeof a)return!1;a=a.replace(/^rgb\(|\)|%/,"");const b=a.split(",");if(3>b.length)return!1;const c=parseInt(b[0].trim(),10)/100,d=parseInt(b[1].trim(),10)/100,e=parseInt(b[2].trim(),10)/100;return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),this.setA(1),!0}parseCommaSeparatedRgba(a){if("string"!=typeof a)return!1;a=a.replace(/^rgba\(|\)|%/,"");const b=a.split(",");if(4>b.length)return!1;const c=parseInt(b[0].trim(),10)/255,d=parseInt(b[1].trim(),10)/255,e=parseInt(b[2].trim(),10)/255,f=parseFloat(b[3].trim());return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),isFinite(f)&&this.setA(f),!0}parseCommaSeparatedPercentageRgba(a){if("string"!=typeof a)return!1;a=a.replace(/^rgba\(|\)|%/,"");const b=a.split(",");if(4>b.length)return!1;const c=parseInt(b[0].trim(),10)/100,d=parseInt(b[1].trim(),10)/100,e=parseInt(b[2].trim(),10)/100,f=parseFloat(b[3].trim());return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),isFinite(f)&&this.setA(f),!0}parseString(a){if("string"!=typeof a)return!1;if(a=a.replace(/\s+/,""),a.includes(",")){if(a.startsWith("rgb("))return a.includes("%")?this.parseCommaSeparatedPercentageRgb(a):this.parseCommaSeparatedRgb(a);if(a.startsWith("rgba("))return a.includes("%")?this.parseCommaSeparatedPercentageRgba(a):this.parseCommaSeparatedRgba(a);if(a.startsWith("hsl(")||a.startsWith("hsla("))return this.parseHSLString(a);else{const b=a.split(",");return a.includes("%")?3===b.length?this.parseCommaSeparatedPercentageRgb(a):4===b.length&&this.parseCommaSeparatedPercentageRgba(a):3===b.length?this.parseCommaSeparatedRgb(a):4===b.length&&this.parseCommaSeparatedRgba(a)}}else return this.parseHexString(a)}toJSON(){return[this._r,this._g,this._b,this._a]}setFromHSLA(d,e,f,h){let a,i,g;if(d%=360,e=C3.clamp(e,0,100),f=C3.clamp(f,0,100),h=C3.clamp(h,0,1),d/=360,e/=100,f/=100,0===e)a=i=g=f;else{const b=.5>f?f*(1+e):f+e-f*e,h=2*f-b;a=c(h,b,d+1/3),i=c(h,b,d),g=c(h,b,d-1/3)}return this.setR(a),this.setG(i),this.setB(g),this.setA(h),this}parseHSLString(a){const c=a.replace(/ |hsl|hsla|\(|\)|;/gi,""),e=b.exec(c),f=d.exec(c);return e&&4===e.length?(this.setFromHSLA(+e[1],+e[2],+e[3],1),!0):!!(f&&5===f.length)&&(this.setFromHSLA(+e[1],+e[2],+e[3],+e[4]),!0)}toHSLAString(){var c=Math.round;const e=this._r,f=this._g,g=this._b,b=this._a,a=Math.max(e,f,g),i=Math.min(e,f,g);let j,h,k=(a+i)/2;if(a===i)j=h=0;else{const b=a-i;h=.5a.length||(this._r=a[0],this._g=a[1],this._b=a[2],this._a=4<=a.length?a[3]:1)}set r(a){this.setR(a)}get r(){return this.getR()}set g(a){this.setG(a)}get g(){return this.getG()}set b(a){this.setB(a)}get b(){return this.getB()}set a(b){this.setA(b)}get a(){return this.getA()}setAtIndex(a,b){switch(a){case 0:this.setR(b);break;case 1:this.setG(b);break;case 2:this.setB(b);break;case 3:this.setA(b);break;default:throw new RangeError("invalid color index");}}getAtIndex(a){switch(a){case 0:return this.getR();case 1:return this.getG();case 2:return this.getB();case 3:return this.getA();default:throw new RangeError("invalid color index");}}static Diff(a,b){var c=Math.min,d=Math.max;const e=new C3.Color;return e.setR(d(a._r,b._r)-c(a._r,b._r)),e.setG(d(a._g,b._g)-c(a._g,b._g)),e.setB(d(a._b,b._b)-c(a._b,b._b)),e.setA(d(a._a,b._a)-c(a._a,b._a)),e}},C3.Color.White=Object.freeze(C3.New(C3.Color,1,1,1,1)),C3.Color.Black=Object.freeze(C3.New(C3.Color,0,0,0,1)),C3.Color.TransparentBlack=Object.freeze(C3.New(C3.Color,0,0,0,0))} + +// ../lib/misc/vector2.js +"use strict";C3.Vector2=class{constructor(a,b){this._x=0,this._y=0,a instanceof C3.Vector2?this.copy(a):this.set(a||0,b||0)}set(a,b){this._x=+a,this._y=+b}copy(a){this._x=a._x,this._y=a._y}equals(a){return this._x===a._x&&this._y===a._y}setX(a){this._x=+a}getX(){return this._x}setY(a){this._y=+a}getY(){return this._y}toArray(){return[this._x,this._y]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._x,a[b]=this._y}offset(a,b){this._x+=+a,this._y+=+b}scale(a,b){this._x*=a,this._y*=b}round(){var a=Math.round;this._x=a(this._x),this._y=a(this._y)}floor(){var a=Math.floor;this._x=a(this._x),this._y=a(this._y)}ceil(){var a=Math.ceil;this._x=a(this._x),this._y=a(this._y)}angle(){return C3.angleTo(0,0,this._x,this._y)}lengthSquared(){return this._x*this._x+this._y*this._y}length(){return Math.sqrt(this.lengthSquared())}rotatePrecalc(a,b){const c=this._x*b-this._y*a;this._y=this._y*b+this._x*a,this._x=c}rotate(b){0===b||this.rotatePrecalc(Math.sin(b),Math.cos(b))}rotateAbout(b,a,c){0===b||a===this._x&&c===this._y||(this._x-=a,this._y-=c,this.rotatePrecalc(Math.sin(b),Math.cos(b)),this._x+=+a,this._y+=+c)}move(b,a){0===a||(this._x+=Math.cos(b)*a,this._y+=Math.sin(b)*a)}normalize(){const a=this.length();0!==a&&1!==a&&(this._x/=a,this._y/=a)}clamp(a,b){this._x=C3.clamp(this._x,a,b),this._y=C3.clamp(this._y,a,b)}}; + +// ../lib/misc/rect.js +"use strict";C3.Rect=class{constructor(a,b,c,d){this._left=0,this._top=0,this._right=0,this._bottom=0,a instanceof C3.Rect?this.copy(a):this.set(a||0,b||0,c||0,d||0)}set(a,b,c,d){this._left=+a,this._top=+b,this._right=+c,this._bottom=+d}setWH(a,b,c,d){a=+a,b=+b,this._left=a,this._top=b,this._right=a+ +c,this._bottom=b+ +d}copy(a){this._left=+a._left,this._top=+a._top,this._right=+a._right,this._bottom=+a._bottom}clone(){return new C3.Rect(this._left,this._top,this._right,this._bottom)}static Merge(a,b){var c=Math.max,d=Math.min;const e=new C3.Rect;return e.setLeft(d(a._left,b._left)),e.setTop(d(a._top,b._top)),e.setRight(c(a._right,b._right)),e.setBottom(c(a._bottom,b._bottom)),e}static FromObject(a){return new C3.Rect(a.left,a.top,a.right,a.bottom)}equals(a){return this._left===a._left&&this._top===a._top&&this._right===a._right&&this._bottom===a._bottom}setLeft(a){this._left=+a}getLeft(){return this._left}setTop(a){this._top=+a}getTop(){return this._top}setRight(a){this._right=+a}getRight(){return this._right}setBottom(a){this._bottom=+a}getBottom(){return this._bottom}toArray(){return[this._left,this._top,this._right,this._bottom]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._left,a[b++]=this._top,a[b++]=this._right,a[b]=this._bottom}writeAsQuadToTypedArray(a,b){a[b++]=this._left,a[b++]=this._top,a[b++]=this._right,a[b++]=this._top,a[b++]=this._right,a[b++]=this._bottom,a[b++]=this._left,a[b]=this._bottom}width(){return this._right-this._left}height(){return this._bottom-this._top}midX(){return(this._left+this._right)/2}midY(){return(this._top+this._bottom)/2}offset(a,b){this._left+=+a,this._top+=+b,this._right+=+a,this._bottom+=+b}offsetLeft(a){this._left+=+a}offsetTop(a){this._top+=+a}offsetRight(a){this._right+=+a}offsetBottom(a){this._bottom+=+a}toSquare(a){if("x"!==a)throw new Error("invalid axis, only 'x' supported");this._bottom=this._topd&&(this._right=+d),this._bottom>e&&(this._bottom=+e)}clampFlipped(a,c,d,e){this._leftc&&(this._top=+c),this._right>d&&(this._right=+d),this._bottomthis._right&&this.swapLeftRight(),this._top>this._bottom&&this.swapTopBottom()}intersectsRect(a){return!(a._rightthis._right||a._top>this._bottom)}intersectsRectOffset(a,b,c){return!(a._right+bthis._right||a._top+c>this._bottom)}containsPoint(a,b){return a>=this._left&&a<=this._right&&b>=this._top&&b<=this._bottom}containsRect(a){return a._left>=this._left&&a._top>=this._top&&a._right<=this._right&&a._bottom<=this._bottom}expandToContain(a){a._leftthis._right&&(this._right=+a._right),a._bottom>this._bottom&&(this._bottom=+a._bottom)}lerpInto(a){this._left=C3.lerp(a._left,a._right,this._left),this._top=C3.lerp(a._top,a._bottom,this._top),this._right=C3.lerp(a._left,a._right,this._right),this._bottom=C3.lerp(a._top,a._bottom,this._bottom)}}; + +// ../lib/misc/quad.js +"use strict";{function a(g,a,b,c){gc?a:c):(e=gb?a:b):bc?g:c):(e=ab?g:b)}let e=0,f=0;C3.Quad=class{constructor(a,b,c,d,e,f,g,h){this._tlx=0,this._tly=0,this._trx=0,this._try=0,this._brx=0,this._bry=0,this._blx=0,this._bly=0,a instanceof C3.Quad?this.copy(a):this.set(a||0,b||0,c||0,d||0,e||0,f||0,g||0,h||0)}set(a,b,c,d,e,f,g,h){this._tlx=+a,this._tly=+b,this._trx=+c,this._try=+d,this._brx=+e,this._bry=+f,this._blx=+g,this._bly=+h}setRect(a,b,c,d){this.set(a,b,c,b,c,d,a,d)}copy(a){this._tlx=a._tlx,this._tly=a._tly,this._trx=a._trx,this._try=a._try,this._brx=a._brx,this._bry=a._bry,this._blx=a._blx,this._bly=a._bly}equals(a){return this._tlx===a._tlx&&this._tly===a._tly&&this._trx===a._trx&&this._try===a._try&&this._brx===a._brx&&this._bry===a._bry&&this._blx===a._blx&&this._bly===a._bly}setTlx(a){this._tlx=+a}getTlx(){return this._tlx}setTly(a){this._tly=+a}getTly(){return this._tly}setTrx(a){this._trx=+a}getTrx(){return this._trx}setTry(a){this._try=+a}getTry(){return this._try}setBrx(a){this._brx=+a}getBrx(){return this._brx}setBry(a){this._bry=+a}getBry(){return this._bry}setBlx(a){this._blx=+a}getBlx(){return this._blx}setBly(a){this._bly=+a}getBly(){return this._bly}toArray(){return[this._tlx,this._tly,this._trx,this._try,this._brx,this._bry,this._blx,this._bly]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._tlx,a[b++]=this._tly,a[b++]=this._trx,a[b++]=this._try,a[b++]=this._brx,a[b++]=this._bry,a[b++]=this._blx,a[b]=this._bly}writeToTypedArray3D(a,b,c){a[b++]=this._tlx,a[b++]=this._tly,a[b++]=c,a[b++]=this._trx,a[b++]=this._try,a[b++]=c,a[b++]=this._brx,a[b++]=this._bry,a[b++]=c,a[b++]=this._blx,a[b++]=this._bly,a[b]=c}offset(a,b){this._tlx+=+a,this._tly+=+b,this._trx+=+a,this._try+=+b,this._brx+=+a,this._bry+=+b,this._blx+=+a,this._bly+=+b}round(){var a=Math.round;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}floor(){var a=Math.floor;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}ceil(){var a=Math.ceil;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}setFromRect(a){this._tlx=a._left,this._tly=a._top,this._trx=a._right,this._try=a._top,this._brx=a._right,this._bry=a._bottom,this._blx=a._left,this._bly=a._bottom}setFromRotatedRect(b,c){0===c?this.setFromRect(b):this.setFromRotatedRectPrecalc(b,Math.sin(c),Math.cos(c))}setFromRotatedRectPrecalc(a,b,c){const d=a._left*b,e=a._top*b,f=a._right*b,g=a._bottom*b,h=a._left*c,i=a._top*c,j=a._right*c,k=a._bottom*c;this._tlx=h-e,this._tly=i+d,this._trx=j-e,this._try=i+f,this._brx=j-g,this._bry=k+f,this._blx=h-g,this._bly=k+d}getBoundingBox(b){a(this._tlx,this._trx,this._brx,this._blx),b._left=e,b._right=f,a(this._tly,this._try,this._bry,this._bly),b._top=e,b._bottom=f}containsPoint(a,b){let c=this._trx-this._tlx,d=this._try-this._tly;const e=this._brx-this._tlx,f=this._bry-this._tly,g=a-this._tlx,h=b-this._tly;let i=c*c+d*d,j=c*e+d*f,k=c*g+d*h;const l=e*e+f*f,m=e*g+f*h;let n=1/(i*l-j*j),o=(l*k-j*m)*n,p=(i*m-j*k)*n;return!!(0<=o&&0o+p)||(c=this._blx-this._tlx,d=this._bly-this._tly,i=c*c+d*d,j=c*e+d*f,k=c*g+d*h,n=1/(i*l-j*j),o=(l*k-j*m)*n,p=(i*m-j*k)*n,0<=o&&0o+p)}midX(){return(this._tlx+this._trx+this._brx+this._blx)/4}midY(){return(this._tly+this._try+this._bry+this._bly)/4}intersectsSegment(a,b,c,d){return!!(this.containsPoint(a,b)||this.containsPoint(c,d))||C3.segmentIntersectsQuad(a,b,c,d,this)}intersectsQuad(a){let b=a.midX(),c=a.midY();if(this.containsPoint(b,c))return!0;if(b=this.midX(),c=this.midY(),a.containsPoint(b,c))return!0;const d=this._tlx,e=this._tly,f=this._trx,g=this._try,h=this._brx,i=this._bry,j=this._blx,k=this._bly;return C3.segmentIntersectsQuad(d,e,f,g,a)||C3.segmentIntersectsQuad(f,g,h,i,a)||C3.segmentIntersectsQuad(h,i,j,k,a)||C3.segmentIntersectsQuad(j,k,d,e,a)}mirror(){this._swap(0,2),this._swap(1,3),this._swap(6,4),this._swap(7,5)}flip(){this._swap(0,6),this._swap(1,7),this._swap(2,4),this._swap(3,5)}diag(){this._swap(2,6),this._swap(3,7)}_swap(a,b){const c=this._getAtIndex(a);this._setAtIndex(a,this._getAtIndex(b)),this._setAtIndex(b,c)}_getAtIndex(a){switch(a){case 0:return this._tlx;case 1:return this._tly;case 2:return this._trx;case 3:return this._try;case 4:return this._brx;case 5:return this._bry;case 6:return this._blx;case 7:return this._bly;default:throw new RangeError("invalid quad point index");}}_setAtIndex(a,b){switch(b=+b,a){case 0:this._tlx=b;break;case 1:this._tly=b;break;case 2:this._trx=b;break;case 3:this._try=b;break;case 4:this._brx=b;break;case 5:this._bry=b;break;case 6:this._blx=b;break;case 7:this._bly=b;break;default:throw new RangeError("invalid quad point index");}}}} + +// c3/lib/misc/collisionPoly.js +"use strict";{const a=[0,0,1,0,1,1,0,1],b=C3.New(C3.Quad);C3.CollisionPoly=class extends C3.DefendedBase{constructor(b){super(),b||(b=a);this._ptsArr=Float64Array.from(b),this._bbox=new C3.Rect,this._isBboxChanged=!0}Release(){}pointsArr(){return this._ptsArr}pointCount(){return this._ptsArr.length/2}setPoints(a){this._ptsArr.length===a.length?this._ptsArr.set(a):this._ptsArr=Float64Array.from(a),this._isBboxChanged=!0}copy(a){this.setPoints(a._ptsArr)}setBboxChanged(){this._isBboxChanged=!0}_updateBbox(){if(!this._isBboxChanged)return;const a=this._ptsArr;let b=a[0],c=a[1],d=b,e=c;for(let f=0,g=a.length;fd&&(d=g),he&&(e=h)}this._bbox.set(b,c,d,e),this._isBboxChanged=!1}setFromRect(a,b,c){let d=this._ptsArr;8!==d.length&&(d=new Float64Array(8),this._ptsArr=d),d[0]=a.getLeft()-b,d[1]=a.getTop()-c,d[2]=a.getRight()-b,d[3]=a.getTop()-c,d[4]=a.getRight()-b,d[5]=a.getBottom()-c,d[6]=a.getLeft()-b,d[7]=a.getBottom()-c,this._bbox.copy(a),(0!==b||0!==c)&&this._bbox.offset(-b,-c),this._isBboxChanged=!1}setFromQuad(a,c,d){b.copy(a),b.offset(c,d),this.setPoints(b.toArray()),this._isBboxChanged=!0}transform(b,c,d){let a=0,e=1;0!==d&&(a=Math.sin(d),e=Math.cos(d)),this.transformPrecalc(b,c,a,e)}transformPrecalc(a,b,c,d){const e=this._ptsArr;for(let f=0,g=e.length;f(a/=f/2)?b/2*a*a+e:-b/2*(--a*(a-2)-1)+e}static EaseInCubic(a,e,b,c){return b*(a/=c)*a*a+e}static EaseOutCubic(a,e,b,c){return b*((a=a/c-1)*a*a+1)+e}static EaseInOutCubic(a,e,b,c){return 1>(a/=c/2)?b/2*a*a*a+e:b/2*((a-=2)*a*a+2)+e}static EaseInQuart(a,e,b,c){return b*(a/=c)*a*a*a+e}static EaseOutQuart(a,e,b,f){return-b*((a=a/f-1)*a*a*a-1)+e}static EaseInOutQuart(a,e,b,f){return 1>(a/=f/2)?b/2*a*a*a*a+e:-b/2*((a-=2)*a*a*a-2)+e}static EaseInQuint(a,e,b,c){return b*(a/=c)*a*a*a*a+e}static EaseOutQuint(a,e,b,c){return b*((a=a/c-1)*a*a*a*a+1)+e}static EaseInOutQuint(a,e,b,c){return 1>(a/=c/2)?b/2*a*a*a*a*a+e:b/2*((a-=2)*a*a*a*a+2)+e}static EaseInSine(a,e,b,f){return-b*i(a/f*(j/2))+b+e}static EaseOutSine(a,e,b,c){return b*h(a/c*(j/2))+e}static EaseInOutSine(a,e,b,f){return-b/2*(i(j*a/f)-1)+e}static EaseInExpo(a,e,b,c){return 0===a?e:b*g(2,10*(a/c-1))+e}static EaseOutExpo(a,e,b,c){return a===c?e+b:b*(-g(2,-10*a/c)+1)+e}static EaseInOutExpo(a,e,b,c){return 0===a?e:a===c?e+b:1>(a/=c/2)?b/2*g(2,10*(a-1))+e:b/2*(-g(2,-10*--a)+2)+e}static EaseInCirc(e,f,b,g){return-b*(a(1-(e/=g)*e)-1)+f}static EaseOutCirc(e,f,b,c){return b*a(1-(e=e/c-1)*e)+f}static EaseInOutCirc(e,f,b,g){return 1>(e/=g/2)?-b/2*(a(1-e*e)-1)+f:b/2*(a(1-(e-=2)*e)+1)+f}static EaseInElastic(i,k,b,c){let d=1.70158,l=0,m=b;return 0===i?k:1===(i/=c)?k+b:(l||(l=.3*c),mi?-.5*(m*g(2,10*(i-=1))*h((i*c-d)*(2*j)/l))+k:.5*(m*g(2,-10*(i-=1))*h((i*c-d)*(2*j)/l))+b+k)}static EaseInBack(a,e,b,c,d){return void 0===d&&(d=1.70158),b*(a/=c)*a*((d+1)*a-d)+e}static EaseOutBack(a,e,b,c,d){return void 0===d&&(d=1.70158),b*((a=a/c-1)*a*((d+1)*a+d)+1)+e}static EaseInOutBack(a,e,b,c,d){return void 0===d&&(d=1.70158),1>(a/=c/2)?b/2*(a*a*(((d*=1.525)+1)*a-d))+e:b/2*((a-=2)*a*(((d*=1.525)+1)*a+d)+2)+e}static EaseInBounce(a,e,b,c){return b-k.EaseOutBounce(c-a,0,b,c)+e}static EaseOutBounce(a,e,b,c){return(a/=c)<1/2.75?b*(7.5625*a*a)+e:a<2/2.75?b*(7.5625*(a-=1.5/2.75)*a+.75)+e:a<2.5/2.75?b*(7.5625*(a-=2.25/2.75)*a+.9375)+e:b*(7.5625*(a-=2.625/2.75)*a+.984375)+e}static EaseInOutBounce(a,e,b,c){return ac(a)));for(let c,d=0,e=this._listeners.length;dc(a)));return Promise.all(b).then(()=>!a.defaultPrevented)}async _FireAndWaitAsync(a){const b=[];this._IncreaseFireDepth();for(let c=0,d=this._captureListeners.length;c(h.push({func:b,resolve:e,reject:f,stack:d}),k?void c(h.pop()):void(-1===i&&a(16))))},C3.Asyncify.SetHighThroughputMode=function(a){if(a)++j;else if(--j,0>j)throw new Error("already turned off high throughput mode")}} + +// ../lib/util/idleTimeout.js +"use strict";{function a(){e=-1}function b(){f=-1,g=-1;let a=Date.now();for(let b of h)if(b._CheckTimeout(a)){let a=b._GetDeadline();(-1===g||aa+c&&(self.clearTimeout(f),g=this._deadline,f=self.setTimeout(b,this._timeout+100))}_CheckTimeout(a){return!(a>=this._deadline)||(this._callback()?(this._deadline=a+this._timeout,!0):(this._isActive=!1,!1))}_GetDeadline(){return this._deadline}Cancel(){this._isActive&&(h.delete(this),this._isActive=!1,0===h.size&&-1!==f&&(self.clearTimeout(f),f=-1,g=-1))}Release(){this.Cancel(),this._callback=null}}} + +// ../lib/util/disposable.js +"use strict";C3.Disposable=class a{constructor(a){this._disposed=!1,this._disposeAction=a}Dispose(){this._disposed||(this._disposed=!0,this._disposeAction&&(this._disposeAction(),this._disposeAction=null))}IsDisposed(){return this._disposed}Release(){this.Dispose()}static Release(b){return new a(()=>b.Release())}static From(a,b,c,d,e){if("undefined"==typeof d||null===d)d=!1;else if("boolean"!=typeof d&&"object"!=typeof d)throw new TypeError("invalid event listener options");if(e&&(c=c.bind(e)),b.includes(" ")){b=b.split(" ");const e=new C3.CompositeDisposable;for(let f of b)a.addEventListener(f,c,d),e.Add(C3.New(C3.Disposable,()=>a.removeEventListener(f,c,d)));return e}return a.addEventListener(b,c,d),C3.New(C3.Disposable,()=>a.removeEventListener(b,c,d))}},C3.StubDisposable=class extends C3.Disposable{SetAction(a){this._disposeAction=a}},C3.CompositeDisposable=class extends C3.Disposable{constructor(...a){super(),this._disposables=new Set;for(let b of a)this.Add(b)}Add(...a){if(this._disposed)throw new Error("already disposed");for(let b of a)this._disposables.add(b)}Remove(a){if(this._disposed)throw new Error("already disposed");this._disposables.delete(a)}RemoveAll(){if(this._disposed)throw new Error("already disposed");if(this._disposables){for(let a of this._disposables)a.Dispose();this._disposables.clear()}}IsDisposed(){return this._disposed}Dispose(){if(this._disposed)throw new Error("already disposed");this._disposed=!0;for(let a of this._disposables)a.Dispose();this._disposables.clear(),this._disposables=null}Release(){this.Dispose()}}; + +// c3/lib/util/kahanSum.js +"use strict";C3.KahanSum=class extends C3.DefendedBase{constructor(){super(),this._c=0,this._y=0,this._t=0,this._sum=0}Add(a){a=+a,this._y=a-this._c,this._t=this._sum+this._y,this._c=this._t-this._sum-this._y,this._sum=this._t}Subtract(a){this._sum-=+a}Get(){return this._sum}Reset(){this._c=0,this._y=0,this._t=0,this._sum=0}Set(a){this._c=0,this._y=0,this._t=0,this._sum=+a}Release(){}}; + +// c3/lib/util/redblackset.js +"use strict";{const a={};a.RBnode=function(a){this.tree=a,this.right=this.tree.sentinel,this.left=this.tree.sentinel,this.parent=null,this.color=!1,this.key=null},a.RedBlackSet=function(b){this.size=0,this.sentinel=new a.RBnode(this),this.sentinel.color=!1,this.root=this.sentinel,this.root.parent=this.sentinel,this.compare=b||this.default_compare},a.RedBlackSet.prototype.default_compare=function(c,a){return cthis.compare(c.key,e.key)?e.left:e.right;c.parent=d,d==this.sentinel?this.root=c:0>this.compare(c.key,d.key)?d.left=c:d.right=c,c.left=this.sentinel,c.right=this.sentinel,c.color=!0,this.insertFixup(c),this.size++}else{var f=this.get_(b);f.key=b}},a.RedBlackSet.prototype.insertFixup=function(a){for(;a!=this.sentinel&&a!=this.root&&a.parent.color==!0;)if(a.parent==a.parent.parent.left){var b=a.parent.parent.right;b.color==!0?(a.parent.color=!1,b.color=!1,a.parent.parent.color=!0,a=a.parent.parent):(a==a.parent.right&&(a=a.parent,this.leftRotate(a)),a.parent.color=!1,a.parent.parent.color=!0,a.parent.parent!=this.sentinel&&this.rightRotate(a.parent.parent))}else{var b=a.parent.parent.left;b.color==!0?(a.parent.color=!1,b.color=!1,a.parent.parent.color=!0,a=a.parent.parent):(a==a.parent.left&&(a=a.parent,this.rightRotate(a)),a.parent.color=!1,a.parent.parent.color=!0,a.parent.parent!=this.sentinel&&this.leftRotate(a.parent.parent))}this.root.color=!1},a.RedBlackSet.prototype.delete_=function(a){var b,c;b=a.left==this.sentinel||a.right==this.sentinel?a:this.successor_(a),c=b.left==this.sentinel?b.right:b.left,c.parent=b.parent,b.parent==this.sentinel?this.root=c:b==b.parent.left?b.parent.left=c:b.parent.right=c,b!=a&&(a.key=b.key),b.color==!1&&this.deleteFixup(c),this.size--},a.RedBlackSet.prototype.deleteFixup=function(a){for(;a!=this.root&&a.color==!1;)if(a==a.parent.left){var b=a.parent.right;b.color==!0&&(b.color=!1,a.parent.color=!0,this.leftRotate(a.parent),b=a.parent.right),b.left.color==!1&&b.right.color==!1?(b.color=!0,a=a.parent):(b.right.color==!1&&(b.left.color=!1,b.color=!0,this.rightRotate(b),b=a.parent.right),b.color=a.parent.color,a.parent.color=!1,b.right.color=!1,this.leftRotate(a.parent),a=this.root)}else{var b=a.parent.left;b.color==!0&&(b.color=!1,a.parent.color=!0,this.rightRotate(a.parent),b=a.parent.left),b.right.color==!1&&b.left.color==!1?(b.color=!0,a=a.parent):(b.left.color==!1&&(b.right.color=!1,b.color=!0,this.leftRotate(b),b=a.parent.left),b.color=a.parent.color,a.parent.color=!1,b.left.color=!1,this.rightRotate(a.parent),a=this.root)}a.color=!1},a.RedBlackSet.prototype.remove=function(a){var b=this.get_(a);if(b!=this.sentinel){var c=b.key;return this.delete_(b),c}return null},a.RedBlackSet.prototype.removeSwapped=function(a,b){this.remove(b)},a.RedBlackSet.prototype.min=function(a){for(;a.left!=this.sentinel;)a=a.left;return a},a.RedBlackSet.prototype.max=function(a){for(;a.right!=this.sentinel;)a=a.right;return a},a.RedBlackSet.prototype.successor_=function(a){if(a.right!=this.sentinel)return this.min(a.right);for(var b=a.parent;b!=this.sentinel&&a==b.right;)a=b,b=b.parent;return b},a.RedBlackSet.prototype.predeccessor_=function(a){if(a.left!=this.sentinel)return this.max(a.left);for(var b=a.parent;b!=this.sentinel&&a==b.left;)a=b,b=b.parent;return b},a.RedBlackSet.prototype.successor=function(a){if(0this.compare(a,b.key)?b.left:b.right;return b},a.RedBlackSet.prototype.contains=function(a){return null!=this.get_(a).key},a.RedBlackSet.prototype.getValues=function(){var a=[];return this.forEach(function(b){a.push(b)}),a},a.RedBlackSet.prototype.insertAll=function(b){if("array"==a.typeOf(b))for(var c=0;cc)return!1;var d=0;if(this.isEmpty())return!0;for(var e=this.min(this.root);e!=this.sentinel;e=this.successor_(e))a.contains.call(b,b,e.key)&&d++;return d==this.getCount()},a.RedBlackSet.prototype.intersection=function(b){var c=new a.RedBlackSet(this.compare);if(this.isEmpty())return c;for(var d=this.min(this.root);d!=this.sentinel;d=this.successor_(d))b.contains.call(b,d.key,d.key,this)&&c.insert(d.key);return c},C3.RedBlackSet=class extends C3.DefendedBase{constructor(b){super();this._rbSet=new a.RedBlackSet(b)}Add(a){this._rbSet.insert(a)}Remove(a){this._rbSet.remove(a)}Has(a){return this._rbSet.contains(a)}Clear(){this._rbSet.clear()}toArray(){return this._rbSet.getValues()}GetSize(){return this._rbSet.getCount()}IsEmpty(){return this._rbSet.isEmpty()}ForEach(a){this._rbSet.forEach(a)}Front(){if(this.IsEmpty())throw new Error("empty set");const a=this._rbSet,b=a.min(a.root);return b.key}Shift(){if(this.IsEmpty())throw new Error("empty set");const a=this.Front();return this.Remove(a),a}*values(){if(!this.IsEmpty()){const a=this._rbSet;for(let b=a.min(a.root);b!=a.sentinel;b=a.successor_(b))yield b.key}}[Symbol.iterator](){return this.values()}}} + +// ../lib/util/promiseThrottle.js +"use strict";C3.PromiseThrottle=class{constructor(a=C3.hardwareConcurrency){this._maxParallel=a,this._queue=[],this._activeCount=0}Add(a){return new Promise((b,c)=>{this._queue.push({func:a,resolve:b,reject:c}),this._MaybeStartNext()})}_FindInQueue(a){for(let b=0,c=this._queue.length;b=this._maxParallel)return;this._activeCount++;const a=this._queue.shift();a.func().then((b)=>{a.resolve(b),this._activeCount--,this._MaybeStartNext()}).catch((b)=>{a.reject(b),this._activeCount--,this._MaybeStartNext()})}static async Batch(a,b){const c=[];let d=!1;const e=async()=>{for(let a;a=b.pop();){if(d)return;try{c.push((await a()))}catch(a){throw d=!0,a}}},f=[];for(;a--;)f.push(e());return await Promise.all(f),c}}; + +// ../lib/util/rateLimiter.js +"use strict";C3.RateLimiter=class{constructor(a,b,c){this._callback=a,this._interval=b,this._intervalOnBattery=c||2*b,this._timerId=-1,this._lastCallTime=-Infinity,this._timerCallFunc=()=>this._OnTimer(),this._ignoreReset=!1,this._canRunImmediate=!1,this._callbackArguments=null}SetCanRunImmediate(a){this._canRunImmediate=!!a}_GetInterval(){return"undefined"!=typeof C3.Battery&&C3.Battery.IsOnBatteryPower()?this._intervalOnBattery:this._interval}Call(...a){if(-1===this._timerId){this._callbackArguments=a;let b=C3.FastGetDateNow(),c=b-this._lastCallTime,d=this._GetInterval();c>=d&&this._canRunImmediate?(this._lastCallTime=b,this._RunCallback()):this._timerId=self.setTimeout(this._timerCallFunc,Math.max(d-c,4))}}_RunCallback(){this._ignoreReset=!0;const a=this._callbackArguments;this._callbackArguments=null,a?this._callback(...a):this._callback(),this._ignoreReset=!1}Reset(){this._ignoreReset||(this._CancelTimer(),this._callbackArguments=null,this._lastCallTime=C3.FastGetDateNow())}_OnTimer(){this._timerId=-1,this._lastCallTime=C3.FastGetDateNow(),this._RunCallback()}_CancelTimer(){-1!==this._timerId&&(self.clearTimeout(this._timerId),this._timerId=-1)}Release(){this._CancelTimer(),this._callback=null,this._callbackArguments=null,this._timerCallFunc=null}}; + +// ../lib/str/str.js +"use strict";{function a(a){return e.get(a)}C3.UTF8_BOM="\uFEFF";const b=new Set([..."0123456789"]);C3.IsNumericChar=function(a){return b.has(a)};const d=new Set([..." \t\n\r\xA0\x85\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u200B\u2028\u2029\u202F\u205F\u3000"]);C3.IsWhitespaceChar=function(a){return d.has(a)},C3.FilterWhitespace=function(a){return C3.SpreadStringSafe(a).filter((a)=>!C3.IsWhitespaceChar(a)).join("")},C3.IsStringAllWhitespace=function(a){for(const b of a)if(!C3.IsWhitespaceChar(b))return!1;return!0},C3.IsUnprintableChar=function(a){return 1===a.length&&32>a.charCodeAt(0)},C3.FilterUnprintableChars=function(a){return C3.SpreadStringSafe(a).filter((a)=>!C3.IsUnprintableChar(a)).join("")};const c=new Set([..."0123456789.+-e"]);C3.IsStringNumber=function(a){if(a=a.trim(),!a.length)return!1;let d=a.charAt(0);if("-"!==d&&!b.has(d))return!1;for(let b of a)if(!c.has(b))return!1;return!0},C3.RemoveTrailingDigits=function(a){let b=a.length;for(;0",">"],["\"","""],["'","'"]]);const f=/[&<>"']/g;C3.EscapeHTML=function(b){return b.replace(f,a)},C3.EscapeJS=function(a){let b=C3.ReplaceAll(a,"\\","\\\\");return b=C3.ReplaceAll(b,"\"","\\\""),b=C3.ReplaceAll(b,"\t","\\t"),b=C3.ReplaceAll(b,"\r",""),C3.ReplaceAll(b,"\n","\\n")},C3.EscapeXML=function(a){let b=C3.ReplaceAll(a,"&","&");return b=C3.ReplaceAll(b,"<","<"),b=C3.ReplaceAll(b,">",">"),C3.ReplaceAll(b,"\"",""")};const g=/[-[\]{}()*+?.,\\^$|#\s]/g;C3.EscapeRegex=function(a){return a.replace(g,"\\$&")},C3.FindAll=function(a,b,c=!1){if(!b)return[];c||(a=a.toLowerCase(),b=b.toLowerCase());const d=b.length;let e=0,f=0,g=[];for(;-1<(f=a.indexOf(b,e));)g.push(f),e=f+d;return g},C3.ReplaceAll=function(a,b,c){return a.replace(new RegExp(C3.EscapeRegex(b),"g"),()=>c)},C3.ReplaceAllCaseInsensitive=function(a,b,c){return a.replace(new RegExp(C3.EscapeRegex(b),"gi"),()=>c)};let h=new WeakMap;C3.SetElementContent=function(a,b,c){let d=h.get(a);if("string"==typeof b){if(!c&&b===d)return;a.textContent=b,h.set(a,b)}else{if(!c&&b.equals(d))return;if(b.isPlainText()){let c=b.toString();a.textContent=c,h.set(a,c)}else a.innerHTML=b.toHTML(),b instanceof C3.BBString&&b.attachLinkHandlers(a),h.set(a,b.toString())}},C3.StringLikeEquals=function(c,a){return c instanceof C3.HtmlString||c instanceof C3.BBString?c.equals(a):a instanceof C3.HtmlString||a instanceof C3.BBString?a.equals(c):c===a},C3.StringSubstitute=function(a,...b){let c=a;for(let d=0,e=b.length;dd?1:ba){let b=a/i;return b=10>b?c(10*b)/10:c(b),langSub(d+"kilobytes",b)}if(1073741824>a){let b=a/1048576;return b=10>b?c(10*b)/10:c(b),langSub(d+"megabytes",b)}if(1099511627776>a){let b=a/1073741824;return b=10>b?c(10*b)/10:c(b),langSub(d+"gigabytes",b)}else{let b=a/1099511627776;return b=10>b?c(10*b)/10:c(b),langSub(d+"terabytes",b)}};const j={approximate:!1,days:!0,hours:!0,minutes:!0,seconds:!0};C3.FormatTime=function(a,b){var c=Math.floor;b=Object.assign({},j,b),C3.Lang.PushContext("common.time");const d=[];if(b.days){const b=c(a/86400);0a?"-":"";a=Math.abs(a);let d=a.toString(),e=b-d.length;for(let d=0;da.toUpperCase())},C3.CompareVersionStrings=function(a,b){let c=a.split(".").map((a)=>a.trim()),d=b.split(".").map((a)=>a.trim());C3.resizeArray(c,4,"0"),C3.resizeArray(d,4,"0"),c=c.map((a)=>parseInt(a,10)),d=d.map((a)=>parseInt(a,10));for(let e=0;4>e;++e){const a=c[e]-d[e];if(0!=a)return 0>a?-1:1}return 0},C3.CreateGUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(a)=>{const b=Math.floor(16*Math.random()),c="x"===a?b:8|3&b;return c.toString(16)})},C3.StringHammingDistance=function(c,a){if(c.length!==a.length)throw new Error("strings must be same length");let b=0;for(let d=0,e=c.length;d"string"==typeof a)}} + +// ../lib/str/bbstring.js +"use strict";{function a(a,c,d){const f=b.get(d);if(!f)return a;else if("string"!=typeof f){if(Array.isArray(f)){let a=f[0],b=f[1];return c?"":`<${a} class="${b}">`}}else if("a"===f&&!c){const a=parseInt(d.substring(1),10)-1;if(0>a||a>=e.length)throw new Error("invalid bbcode link substitution");const b=e[a];if("string"==typeof b)return`
`;if("function"==typeof b)return``;throw new TypeError("invalid bbcode link action")}else return"<"+c+f+">"}const b=new Map([["b","strong"],["i","em"],["s","s"],["u","u"],["sub","sub"],["sup","sup"],["small","small"],["mark","mark"],["a1","a"],["a2","a"],["a3","a"],["a4","a"],["a5","a"],["a6","a"],["a7","a"],["a8","a"],["a9","a"],["bad",["span","bbCodeBad"]],["good",["span","bbCodeGood"]],["info",["span","bbCodeInfo"]],["h1",["span","bbCodeH1"]],["h2",["span","bbCodeH2"]],["h3",["span","bbCodeH3"]],["h4",["span","bbCodeH4"]],["item",["span","bbCodeItem"]]]),c=/\[(\/?)([a-zA-Z0-9]+)\]/g,d=/\[(\/?)(.*?)\]/g;let e=null;const f=/\n/g;C3.BBString=class{constructor(a,b){if(this._bbstr=b&&b.noEscape?a:C3.EscapeHTML(a),this._htmlstr="",this._convertLineBreaks=!1,this._linkActions=[],b&&(this._convertLineBreaks=!!b.convertLineBreaks,b.links)){if(9")),this._htmlstr=b}return this._htmlstr}attachLinkHandlers(a){if(this._linkActions.length)for(let b=0,c=this._linkActions.length;bc)return;if(1===a.length){const d=a[0],e=d.text,f=d.styles;if(100>=e.length&&!e.includes("\n")){const a=b(e,f);if(a.width<=c){const b=[];return this._AddFrag(b,e,f,a.width,a.height),void this._AddLine(b,a.width,a.height)}}}let e;e="word"===d?a.map((a)=>({words:this._TokeniseWords(a.text),styles:a.styles})):a.map((a)=>({words:[...a.text],styles:a.styles})),this._WrapText(e,b,c)}_TokeniseWords(a){const b=C3.SpreadStringSafe(a),c=[];let d="",e=!1;for(const f of b)if("\n"===f)d&&c.push(d),c.push("\n"),d="";else if(!d)d=f,e=C3.IsWhitespaceChar(f);else{const a=C3.IsWhitespaceChar(f);a===e?d+=f:(c.push(d),d=f,e=a)}return d&&c.push(d),c}_WrapText(a,b,c){var d=Math.max;let e="",f=0,g=0,h=0,i=0,j=[];for(const k of a){const a=k.styles,l=k.words;for(const k of l){if("\n"===k){0===h&&(h=b(" ",a).height),e&&this._AddFrag(j,e,a,f,g||h),this._AddLine(j,i+f,h),j=[],e="",f=0,g=0,i=0,h=0;continue}const l=e+k,m=b(l,a),n=m.width,o=m.height;if(!(i+n>=c))e=l,f=n,g=d(g,o),h=d(h,o);else if(e&&this._AddFrag(j,e,a,f,g),j.length&&(this._AddLine(j,i+f,h),j=[]),i=0,C3.IsStringAllWhitespace(k))e="",f=0,g=0,h=0;else{e=k;const c=b(k,a);f=c.width,g=c.height,h=c.height}}e&&(this._AddFrag(j,e,a,f,g),i+=f,e="",f=0,g=0)}j.length&&this._AddLine(j,i+f,h);for(const d of this._lines){const a=d.fragments;if(!a.length)continue;const c=a[a.length-1],e=c.text,f=e.trimEnd();if(!f)d.width-=c.width,a.pop();else if(f.length=this._width||0>=this._height)throw new Error("invalid texture data size");if(h.isSvg){const a=document.createElement("canvas");a.width=this._width,a.height=this._height;const b=a.getContext("2d");b.drawImage(f,0,0,this._width,this._height),f=a}const i=C3.isPOT(this._width)&&C3.isPOT(this._height),j=this._renderer.GetMaxTextureSize();if(this._width>j||this._height>j)throw new Error("texture data exceeds maximum texture size");const k=this._renderer.GetContext(),l=this._renderer.GetWebGLVersionNumber();this._texture=k.createTexture(),k.bindTexture(k.TEXTURE_2D,this._texture),k.pixelStorei(k["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],h.premultiplyAlpha);const m=a(this._pixelFormat,k);if(!this._renderer.SupportsNPOTTextures()&&!i&&this._isTiled){if(null===f)throw new Error("cannot pass null data when creating a NPOT tiled texture without NPOT support");if(f instanceof ArrayBuffer&&(f=new ImageData(new Uint8ClampedArray(f),this._width,this._height)),f instanceof ImageData){const a=document.createElement("canvas");a.width=this._width,a.height=this._height;const b=a.getContext("2d");b.putImageData(f,0,0),f=a}const a=document.createElement("canvas");a.width=C3.nextHighestPowerOfTwo(this._width),a.height=C3.nextHighestPowerOfTwo(this._height);const b=a.getContext("2d");b.imageSmoothingEnabled="nearest"!==this._sampling,b.drawImage(f,0,0,this._width,this._height,0,0,a.width,a.height),k.texImage2D(k.TEXTURE_2D,0,m.internalformat,m.format,m.type,a)}else if(2<=l){let a;a=this._isMipMapped?Math.floor(Math.log2(Math.max(this._width,this._height))+1):1,k.texStorage2D(k.TEXTURE_2D,a,m.sizedinternalformat,this._width,this._height),f instanceof ArrayBuffer?k.texSubImage2D(k.TEXTURE_2D,0,0,0,this._width,this._height,m.format,m.type,new Uint8Array(f)):null!==f&&k.texSubImage2D(k.TEXTURE_2D,0,0,0,m.format,m.type,f)}else f instanceof ArrayBuffer?k.texImage2D(k.TEXTURE_2D,0,m.internalformat,this._width,this._height,0,m.format,m.type,new Uint8Array(f)):null===f?k.texImage2D(k.TEXTURE_2D,0,m.internalformat,this._width,this._height,0,m.format,m.type,null):k.texImage2D(k.TEXTURE_2D,0,m.internalformat,m.format,m.type,f);null!==f&&this._SetTextureParameters(k),k.bindTexture(k.TEXTURE_2D,null),this._renderer._ResetLastTexture(),this._refCount=1,g.add(this)}_CreateDynamic(f,h,i){var j=Math.floor;if(i=Object.assign({},e,i),this._texture)throw new Error("already created texture");if(this._isTiled=!!i.isTiled,this._tileType=i.tileType,this._sampling=i.sampling,this._pixelFormat=i.pixelFormat,this._isMipMapped=!!i.mipMap,this._mipMapQuality=i.mipMapQuality,!c.has(this._sampling))throw new Error("invalid sampling");if(!b.has(this._pixelFormat))throw new Error("invalid pixel format");if(!d.has(this._mipMapQuality))throw new Error("invalid mipmap quality");this._isStatic=!1,this._width=j(f),this._height=j(h);const k=C3.isPOT(this._width)&&C3.isPOT(this._height),l=this._renderer.GetMaxTextureSize();if(0>=this._width||0>=this._height)throw new Error("invalid texture size");if(this._width>l||this._height>l)throw new Error("texture exceeds maximum texture size");if(!this._renderer.SupportsNPOTTextures()&&this._isTiled&&!k)throw new Error("non-power-of-two tiled textures not supported");const m=this._renderer.GetContext(),n=this._renderer.GetWebGLVersionNumber();this._texture=m.createTexture(),m.bindTexture(m.TEXTURE_2D,this._texture),m.pixelStorei(m["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],i.premultiplyAlpha);const o=a(this._pixelFormat,m),p=2<=n?o.sizedinternalformat:o.internalformat;m.texImage2D(m.TEXTURE_2D,0,p,this._width,this._height,0,o.format,o.type,null),this._SetTextureParameters(m),m.bindTexture(m.TEXTURE_2D,null),this._renderer._ResetLastTexture(),this._refCount=1,g.add(this)}_GetMipMapHint(a){if("default"===this._mipMapQuality)return this._isStatic?a.NICEST:a.FASTEST;if("low"===this._mipMapQuality)return a.FASTEST;if("high"===this._mipMapQuality)return a.NICEST;throw new Error("invalid mipmap quality")}_SetTextureParameters(a){const b=C3.isPOT(this._width)&&C3.isPOT(this._height);if(!this._isTiled)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);else if("repeat-x"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.REPEAT),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);else if("repeat-y"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.REPEAT);else if("repeat"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.REPEAT),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.REPEAT);else throw new Error("invalid tile type");if("nearest"===this._sampling)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),this._isMipMapped=!1;else if(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),(b||this._renderer.SupportsNPOTTextures())&&this._isMipMapped){a.hint(a.GENERATE_MIPMAP_HINT,this._GetMipMapHint(a)),a.generateMipmap(a.TEXTURE_2D);const b="trilinear"===this._sampling&&!this._renderer.HasMajorPerformanceCaveat();a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,b?a.LINEAR_MIPMAP_LINEAR:a.LINEAR_MIPMAP_NEAREST)}else a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),this._isMipMapped=!1}_Update(b,c){if(("undefined"==typeof HTMLImageElement||!(b instanceof HTMLImageElement))&&("undefined"==typeof HTMLVideoElement||!(b instanceof HTMLVideoElement))&&("undefined"==typeof HTMLCanvasElement||!(b instanceof HTMLCanvasElement))&&("undefined"==typeof ImageBitmap||!(b instanceof ImageBitmap))&&("undefined"==typeof OffscreenCanvas||!(b instanceof OffscreenCanvas))&&!(b instanceof ImageData))throw new Error("invalid texture source");if(!this._texture||0>=this._refCount)throw new Error("texture not created");if(this._isStatic)throw new Error("cannot update static texture");c=Object.assign({},f,c);const d=b.width||b.videoWidth,e=b.height||b.videoHeight,g=this._renderer.GetWebGLVersionNumber(),h=this._renderer.GetContext();h.bindTexture(h.TEXTURE_2D,this._texture),h.pixelStorei(h["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],c.premultiplyAlpha);const i=a(this._pixelFormat,h),j=2<=g?i.sizedinternalformat:i.internalformat;try{if(this._width===d&&this._height===e){const a=C3.isPOT(this._width)&&C3.isPOT(this._height);h.texSubImage2D(h.TEXTURE_2D,0,0,0,i.format,i.type,b),(a||this._renderer.SupportsNPOTTextures())&&this._isMipMapped&&(h.hint(h.GENERATE_MIPMAP_HINT,this._GetMipMapHint(h)),h.generateMipmap(h.TEXTURE_2D))}else{this._width=d,this._height=e;const a=C3.isPOT(this._width)&&C3.isPOT(this._height);if(!this._renderer.SupportsNPOTTextures()&&this._isTiled&&!a)throw new Error("non-power-of-two tiled textures not supported");h.texImage2D(h.TEXTURE_2D,0,j,i.format,i.type,b),(a||this._renderer.SupportsNPOTTextures())&&this._isMipMapped&&(h.hint(h.GENERATE_MIPMAP_HINT,this._GetMipMapHint(h)),h.generateMipmap(h.TEXTURE_2D))}}catch(a){console.error("Error updating WebGL texture: ",a)}h.bindTexture(h.TEXTURE_2D,null),this._renderer._ResetLastTexture()}_Delete(){if(0=this._refCount)throw new Error("no more references");this._refCount--}GetReferenceCount(){return this._refCount}GetWidth(){return this._width}GetHeight(){return this._height}IsStatic(){return this._isStatic}GetEstimatedMemoryUsage(){let a=this._width*this._height;switch(this._pixelFormat){case"rgba8":a*=4;break;case"rgb8":a*=3;break;case"rgba4":case"rgb5_a1":case"rgb565":a*=2;}return this._isMipMapped&&(a+=Math.floor(a/3)),a}static OnContextLost(){g.clear()}static allTextures(){return g.values()}}} + +// ../lib/gfx/renderTarget.js +"use strict";{const a=new Set(["nearest","bilinear","trilinear"]),b={sampling:"trilinear",alpha:!0,readback:!0,isDefaultSize:!0,multisampling:0},c=new Set;C3.Gfx.WebGLRenderTarget=class{constructor(a){this._renderer=a,this._frameBuffer=null,this._texture=null,this._renderBuffer=null,this._width=0,this._height=0,this._isDefaultSize=!0,this._sampling="trilinear",this._alpha=!0,this._readback=!0,this._multisampling=0}_Create(d,e,f){f=Object.assign({},b,f);const g=this._renderer.GetWebGLVersionNumber();if(this._texture||this._renderBuffer)throw new Error("already created render target");if(this._sampling=f.sampling,this._alpha=!!f.alpha,this._readback=!!f.readback,this._isDefaultSize=!!f.isDefaultSize,this._multisampling=f.multisampling,!a.has(this._sampling))throw new Error("invalid sampling");if(0g||this._readback))throw new Error("invalid use of multisampling");if(2>g&&(this._readback=!0),this._width=d,this._height=e,0>=this._width||0>=this._height)throw new Error("invalid render target size");const h=this._renderer.GetContext();if(this._frameBuffer=h.createFramebuffer(),h.bindFramebuffer(h.FRAMEBUFFER,this._frameBuffer),this._readback){this._texture=this._renderer.CreateDynamicTexture(this._width,this._height,{sampling:this._sampling,pixelFormat:this._alpha?"rgba8":"rgb8",mipMap:!1});const a=this._texture._GetTexture();h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,h.TEXTURE_2D,a,0)}else{this._renderBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,this._renderBuffer);const a=this._alpha?h.RGBA8:h.RGB8;if(0a&&(this._multisampling=a)}else this._multisampling=0}0===this._multisampling?h.renderbufferStorage(h.RENDERBUFFER,a,this._width,this._height):h.renderbufferStorageMultisample(h.RENDERBUFFER,this._multisampling,a,this._width,this._height),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,h.RENDERBUFFER,this._renderBuffer),h.bindRenderbuffer(h.RENDERBUFFER,null)}h.bindFramebuffer(h.FRAMEBUFFER,null),c.add(this)}_Resize(a,b){if(this._width!==a||this._height!==b){this._width=a,this._height=b;const c=this._renderer.GetContext();c.bindFramebuffer(c.FRAMEBUFFER,this._frameBuffer),this._texture?this._texture._Update(new ImageData(this._width,this._height)):(c.bindRenderbuffer(c.RENDERBUFFER,this._renderBuffer),c.renderbufferStorage(c.RENDERBUFFER,this._alpha?c.RGBA8:c.RGB8,this._width,this._height),c.bindRenderbuffer(c.RENDERBUFFER,null)),c.bindFramebuffer(c.FRAMEBUFFER,null)}}_Delete(){if(!this._texture&&!this._renderBuffer)throw new Error("already deleted render target");c.delete(this);const a=this._renderer.GetContext();a.bindFramebuffer(a.FRAMEBUFFER,this._frameBuffer),this._texture?(a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,null,0),this._renderer.DeleteTexture(this._texture),this._texture=null):this._renderBuffer&&(a.framebufferRenderbuffer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.RENDERBUFFER,null),a.deleteRenderbuffer(this._renderBuffer),this._renderBuffer=null),a.bindFramebuffer(a.FRAMEBUFFER,null),2<=this._renderer.GetWebGLVersionNumber()&&(a.bindFramebuffer(a.READ_FRAMEBUFFER,null),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,null)),a.deleteFramebuffer(this._frameBuffer),this._renderer.GetBatchState().currentFramebuffer=null,this._frameBuffer=null}_GetFramebuffer(){return this._frameBuffer}GetWebGLRenderer(){return this._renderer}GetTexture(){return this._texture}IsLinearSampling(){return"nearest"!==this._sampling}HasAlpha(){return this._alpha}IsReadback(){return this._readback}GetWidth(){return this._width}GetHeight(){return this._height}IsDefaultSize(){return this._isDefaultSize}GetMultisampling(){return this._multisampling}GetOptions(){const a={sampling:this._sampling,alpha:this._alpha,readback:this._readback};return this._isDefaultSize||(a.width=this._width,a.height=this._height),a}IsCompatibleWithOptions(a){return a=Object.assign({},b,a),"nearest"!==a.sampling===this.IsLinearSampling()&&!!a.alpha===this.HasAlpha()&&!(2<=this._renderer.GetWebGLVersionNumber()&&!!a.readback!==this.IsReadback())&&("number"==typeof a.width||"number"==typeof a.height?!this.IsDefaultSize()&&this.GetWidth()===a.width&&this.GetHeight()===a.height:this.IsDefaultSize())}_GetWebGLTexture(){return this._texture?this._texture._GetTexture():null}GetEstimatedMemoryUsage(){return this._texture?this._texture.GetEstimatedMemoryUsage():this._width*this._height*(this._alpha?4:3)}static async DebugReadPixelsToBlob(a,b){const c=await a.ReadBackRenderTargetToImageData(b,!0);return await C3.ImageDataToBlob(c)}static OnContextLost(){c.clear()}static allRenderTargets(){return c.values()}static ResizeAll(a,b){for(const d of c)d.IsDefaultSize()&&d._Resize(a,b)}}} + +// ../lib/gfx/shaderProgram.js +"use strict";C3.Gfx.WebGLShaderProgram=class{static async Compile(a,b,c,d){const e=a.GetContext(),f=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(f,b),e.compileShader(f);const g=e.createShader(e.VERTEX_SHADER);e.shaderSource(g,c),e.compileShader(g);const h=e.createProgram();e.attachShader(h,f),e.attachShader(h,g),e.bindAttribLocation(h,0,"aPos"),e.bindAttribLocation(h,1,"aTex"),e.bindAttribLocation(h,2,"aPoints"),e.linkProgram(h);const i=a._GetParallelShaderCompileExtension();if(i?await a._WaitForObjectReady(()=>e.getProgramParameter(h,i["COMPLETION_STATUS_KHR"])):await C3.Wait(5),!e.getShaderParameter(f,e.COMPILE_STATUS)){const a=e.getShaderInfoLog(f);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error compiling fragment shader: ",a)}if(!e.getShaderParameter(g,e.COMPILE_STATUS)){const a=e.getShaderInfoLog(g);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error compiling vertex shader: ",a)}if(!e.getProgramParameter(h,e.LINK_STATUS)){const a=e.getProgramInfoLog(h);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error linking shader program: ",a)}const j=C3.FilterUnprintableChars(e.getProgramInfoLog(h)||"").trim();return j&&!C3.IsStringAllWhitespace(j)&&console.info(`[WebGL] Shader program '${d}' compilation log: `,j),e.deleteShader(f),e.deleteShader(g),h}static async Create(a,b,c,d){const e=await C3.Gfx.WebGLShaderProgram.Compile(a,b.src,c,d);return new C3.Gfx.WebGLShaderProgram(a,e,b,d)}constructor(a,b,c,d){const e=a.GetContext(),f=a.GetBatchState();a.EndBatch(),e.useProgram(b),this._gl=e,this._renderer=a,this._name=d,this._shaderProgram=b,this._isDeviceTransform=""===d;const g=e.getAttribLocation(b,"aPos"),h=e.getAttribLocation(b,"aTex"),i=e.getAttribLocation(b,"aPoints");-1!==g&&(e.bindBuffer(e.ARRAY_BUFFER,a._vertexBuffer),e.vertexAttribPointer(g,a.GetNumVertexComponents(),e.FLOAT,!1,0,0),e.enableVertexAttribArray(g)),-1!==h&&(e.bindBuffer(e.ARRAY_BUFFER,a._texcoordBuffer),e.vertexAttribPointer(h,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(h)),-1!==i&&(e.bindBuffer(e.ARRAY_BUFFER,a._pointBuffer),e.vertexAttribPointer(i,4,e.FLOAT,!1,0,0),e.enableVertexAttribArray(i)),e.bindBuffer(e.ARRAY_BUFFER,null),this._uMatP=new C3.Gfx.WebGLShaderUniform(this,"matP","mat4"),this._uMatMV=new C3.Gfx.WebGLShaderUniform(this,"matMV","mat4"),this._uColor=new C3.Gfx.WebGLShaderUniform(this,"color","vec4"),this._uSamplerFront=new C3.Gfx.WebGLShaderUniform(this,"samplerFront","sampler"),this._uPointTexStart=new C3.Gfx.WebGLShaderUniform(this,"pointTexStart","vec2"),this._uPointTexEnd=new C3.Gfx.WebGLShaderUniform(this,"pointTexEnd","vec2"),this._uZElevation=new C3.Gfx.WebGLShaderUniform(this,"zElevation","float"),this._uTileSize=new C3.Gfx.WebGLShaderUniform(this,"tileSize","vec2"),this._uTileSpacing=new C3.Gfx.WebGLShaderUniform(this,"tileSpacing","vec2"),this._uColor2=new C3.Gfx.WebGLShaderUniform(this,"color2","vec4"),this._uOutlineThickness=new C3.Gfx.WebGLShaderUniform(this,"outlineThickness","float"),this._uSamplerBack=new C3.Gfx.WebGLShaderUniform(this,"samplerBack","sampler"),this._uDestStart=new C3.Gfx.WebGLShaderUniform(this,"destStart","vec2"),this._uDestEnd=new C3.Gfx.WebGLShaderUniform(this,"destEnd","vec2"),this._uSrcStart=new C3.Gfx.WebGLShaderUniform(this,"srcStart","vec2"),this._uSrcEnd=new C3.Gfx.WebGLShaderUniform(this,"srcEnd","vec2"),this._uSrcOriginStart=new C3.Gfx.WebGLShaderUniform(this,"srcOriginStart","vec2"),this._uSrcOriginEnd=new C3.Gfx.WebGLShaderUniform(this,"srcOriginEnd","vec2"),this._uPixelSize=new C3.Gfx.WebGLShaderUniform(this,"pixelSize","vec2"),this._uSeconds=new C3.Gfx.WebGLShaderUniform(this,"seconds","float"),this._uLayerScale=new C3.Gfx.WebGLShaderUniform(this,"layerScale","float"),this._uLayerAngle=new C3.Gfx.WebGLShaderUniform(this,"layerAngle","float"),this._uLayoutStart=new C3.Gfx.WebGLShaderUniform(this,"layoutStart","vec2"),this._uLayoutEnd=new C3.Gfx.WebGLShaderUniform(this,"layoutEnd","vec2"),this._hasAnyOptionalUniforms=!!(this._uPixelSize.IsUsed()||this._uSeconds.IsUsed()||this._uSamplerBack.IsUsed()||this._uDestStart.IsUsed()||this._uDestEnd.IsUsed()||this._uSrcStart.IsUsed()||this._uSrcEnd.IsUsed()||this._uSrcOriginStart.IsUsed()||this._uSrcOriginEnd.IsUsed()||this._uLayerScale.IsUsed()||this._uLayerAngle.IsUsed()||this._uLayoutStart.IsUsed()||this._uLayoutEnd.IsUsed()),this._extendBoxHorizontal=c.extendBoxHorizontal||0,this._extendBoxVertical=c.extendBoxVertical||0,this._crossSampling=!!c.crossSampling,this._mustPreDraw=!!c.mustPreDraw,this._preservesOpaqueness=!!c.preservesOpaqueness,this._animated=!!c.animated;const j=c.parameters||[];this._uCustomParameters=[],this._usesDest=this._uDestStart.IsUsed()||this._uDestEnd.IsUsed(),this._usesAnySrcRectOrPixelSize=this._uPixelSize.IsUsed()||this._uSrcStart.IsUsed()||this._uSrcEnd.IsUsed()||this._uSrcOriginStart.IsUsed()||this._uSrcOriginEnd.IsUsed(),this._needsPostDrawOrExtendBox=this._crossSampling||this._usesDest||0!==this._extendBoxHorizontal||0!==this._extendBoxVertical,this._hasCurrentMatP=!1,this._hasCurrentMatMV=!1,this._uColor.Init4f(1,1,1,1),this._uColor2.Init4f(1,1,1,1),this._uSamplerFront.Init1i(0),this._uSamplerBack.Init1i(1),this._uPointTexStart.Init2f(0,0),this._uPointTexEnd.Init2f(1,1),this._uZElevation.Init1f(0),this._uTileSize.Init2f(0,0),this._uTileSpacing.Init2f(0,0),this._uDestStart.Init2f(0,0),this._uDestEnd.Init2f(1,1),this._uSrcStart.Init2f(0,0),this._uSrcEnd.Init2f(0,0),this._uSrcOriginStart.Init2f(0,0),this._uSrcOriginEnd.Init2f(0,0),this._uPixelSize.Init2f(0,0),this._uLayerScale.Init1f(1),this._uLayerAngle.Init1f(0),this._uSeconds.Init1f(0),this._uLayoutStart.Init2f(0,0),this._uLayoutEnd.Init2f(0,0),this._uOutlineThickness.Init1f(1);for(const e of j){const a=e[0],b=e[2],c=new C3.Gfx.WebGLShaderUniform(this,a,b);"color"===b?c.Init3f(0,0,0):c.Init1f(0),this._uCustomParameters.push(c)}this._isDeviceTransform?this._UpdateDeviceTransformUniforms(f.currentMatP):(this.UpdateMatP(f.currentMatP,!0),this.UpdateMatMV(f.currentMV,!0));const k=f.currentShader;e.useProgram(k?k._shaderProgram:null)}Release(){this._gl.deleteProgram(this._shaderProgram),this._shaderProgram=null,this._renderer._RemoveShaderProgram(this),this._gl=null,this._renderer=null}GetName(){return this._name}GetWebGLContext(){return this._gl}GetShaderProgram(){return this._shaderProgram}UsesDest(){return this._usesDest}UsesCrossSampling(){return this._crossSampling}MustPreDraw(){return this._mustPreDraw}PreservesOpaqueness(){return this._preservesOpaqueness}ExtendsBox(){return 0!==this._extendBoxHorizontal||0!==this._extendBoxVertical}GetBoxExtendHorizontal(){return this._extendBoxHorizontal}GetBoxExtendVertical(){return this._extendBoxVertical}UsesAnySrcRectOrPixelSize(){return this._usesAnySrcRectOrPixelSize}NeedsPostDrawOrExtendsBox(){return this._needsPostDrawOrExtendBox}GetParameterCount(){return this._uCustomParameters.length}GetParameterType(a){return this._uCustomParameters[a].GetType()}AreCustomParametersAlreadySetInBatch(a){for(let b=0,c=a.length;b{const b=a.font.GetName();for(const c of i)(c.IsBBCodeEnabled()||C3.equalsNoCase(c.GetFontName(),b))&&c._SetTextChanged()}),C3.Gfx.WebGLText=class{constructor(a,b){b=Object.assign({},d,b),this._renderer=a,this._fontName="Arial",this._fontSize=16,this._lineHeight=0,this._isBold=!1,this._isItalic=!1,this._colorStr="black",this._isBBcodeEnabled=!1,this.onloadfont=null,this._alreadyLoadedFonts=new Set,this._horizontalAlign="left",this._verticalAlign="top",this._text="",this._bbString=null,this._wrappedText=C3.New(C3.WordWrap),this._wrapMode="word",this._textChanged=!1,this._isUpdating=!1,this._isAsync=!0,this._drawMaxCharCount=-1,this._drawCharCount=0,this._cssWidth=0,this._cssHeight=0,this._width=0,this._height=0,this._zoom=1,this._changed=!1,this._textCanvas=null,this._textContext=null,this._measureContext=null,this._lastCanvasWidth=-1,this._lastCanvasHeight=-1,this._lastTextCanvasFont="",this._lastMeasureCanvasFont="",this._lastTextCanvasFillStyle="",this._lastTextCanvasOpacity=1,this._lastTextCanvasLineWidth=1,this._measureTextCallback=(a,b)=>this._MeasureText(a,b),this._texture=null,this._textureWidth=0,this._textureHeight=0,this._rcTex=new C3.Rect,this._scaleFactor=1,this._needToRecreateTexture=!1,this._textureTimeout=new C3.IdleTimeout(()=>{this.ReleaseTexture(),this._SetTextCanvasSize(8,8)},b.timeout),this.ontextureupdate=null,this._wasReleased=!1,i.add(this)}Release(){this.onloadfont=null,this._alreadyLoadedFonts.clear(),this._bbString=null,this._textCanvas=null,this._textContext=null,this._measureContext=null,this._measureTextCallback=null,this._textureTimeout.Release(),this.ontextureupdate=null,this.ReleaseTexture(),this._wrappedText.Clear(),this._wrappedText=null,this._renderer=null,this._wasReleased=!0,i.delete(this)}_SetChanged(){this._changed=!0}_SetTextChanged(){this._SetChanged(),this._wrappedText.Clear(),this._textChanged=!0}SetIsAsync(b){this._isAsync=!!b}IsAsync(){return this._isAsync}SetBBCodeEnabled(a){a=!!a;this._isBBcodeEnabled===a||(this._isBBcodeEnabled=a,this._textContext&&(this._textContext.textBaseline=this._isBBcodeEnabled?"alphabetic":"top"),this._SetTextChanged())}IsBBCodeEnabled(){return this._isBBcodeEnabled}SetFontName(a){a||(a="serif");this._fontName===a||(this._fontName=a,this._SetTextChanged())}GetFontName(){return this._fontName}SetFontSize(a){.1>a&&(a=.1);this._fontSize===a||(this._fontSize=a,this._SetTextChanged())}SetLineHeight(a){this._lineHeight===a||(this._lineHeight=a,this._SetChanged())}SetBold(a){a=!!a;this._isBold===a||(this._isBold=a,this._SetTextChanged())}SetItalic(a){a=!!a;this._isItalic===a||(this._isItalic=a,this._SetTextChanged())}SetDrawMaxCharacterCount(a){a=Math.floor(a);this._drawMaxCharCount===a||(this._drawMaxCharCount=a,this._SetChanged())}GetDrawMaxCharacterCount(){return this._drawMaxCharCount}_GetStyleTag(a,b){for(let c=a.length-1;0<=c;--c){const d=a[c];if(d.tag===b)return d}return null}_HasStyleTag(a,b){return!!this._GetStyleTag(a,b)}_GetFontString(a,b){let c="";(this._isBold||this._HasStyleTag(b,"b"))&&(c+="bold"),(this._isItalic||this._HasStyleTag(b,"i"))&&(c+=" italic");const d=this._GetStyleTag(b,"size"),e=d?parseFloat(d.param):this._fontSize;c+=a?" "+e+"pt":" "+e*this._scaleFactor*this._zoom*self.devicePixelRatio+"pt";let f=this._fontName;const g=this._GetStyleTag(b,"font");return g&&g.param&&(f=g.param,this.onloadfont&&!this._alreadyLoadedFonts.has(f)&&(this.onloadfont(f),this._alreadyLoadedFonts.add(f))),f&&(c+=" \""+f+"\""),c}SetColor(a){a instanceof C3.Color&&(a=a.getCssRgb());this._colorStr===a||(this._colorStr=a,this._SetChanged())}SetColorRgb(a,c,d){e.setRgb(a,c,d),this.SetColor(e)}SetHorizontalAlignment(a){if(!f.has(a))throw new Error("invalid horizontal alignment");this._horizontalAlign===a||(this._horizontalAlign=a,this._SetChanged())}SetVerticalAlignment(a){if(!g.has(a))throw new Error("invalid vertical alignment");this._verticalAlign===a||(this._verticalAlign=a,this._SetChanged())}SetWordWrapMode(a){if(!h.has(a))throw new Error("invalid word wrap mode");this._wrapMode===a||(this._wrapMode=a,this._SetTextChanged())}SetText(a){this._text===a||(this._text=a,this._SetTextChanged())}SetSize(a,b,c){var d=Math.min;if("undefined"==typeof c&&(c=1),0>=a||0>=a)return;if(this._cssWidth===a&&this._cssHeight===b&&this._zoom===c)return;1===this._zoom!=(1===c)&&(this._needToRecreateTexture=!0);const e=this._cssWidth,f=this._zoom;this._cssWidth=a,this._cssHeight=b,this._zoom=c;const g=self.devicePixelRatio;this._width=this._cssWidth*this._zoom*g,this._height=this._cssHeight*this._zoom*g;const h=Math.max(this._width,this._height),i=d(this._renderer.GetMaxTextureSize(),2048);let j=1;h>i&&(j=i/h,this._width=d(this._width*j,i),this._height=d(this._height*j,i)),this._scaleFactor=j,0=this._width||0>=this._height||(this._changed=!1,this._isUpdating=!0,this._isAsync?C3.Asyncify(()=>this._DoUpdate()):this._DoUpdate())}_DoUpdate(){var a=Math.ceil;this._wasReleased||(this._SetTextCanvasSize(a(this._width),a(this._height)),this._MaybeWrapText(),this._DrawTextToCanvas(),this._UpdateTexture(),this._textureTimeout.Reset(),this._isUpdating=!1)}_SetTextCanvasSize(a,b){this._textCanvas||(this._textCanvas=C3.CreateCanvas(16,16));let c=!1;(this._lastCanvasWidth!==a||this._lastCanvasHeight!==b)&&(this._lastCanvasWidth=a,this._lastCanvasHeight=b,this._textCanvas.width=a,this._textCanvas.height=b,c=!0),this._textContext||(this._textContext=this._textCanvas.getContext("2d"),c=!0),c?(this._textContext.textBaseline=this._isBBcodeEnabled?"alphabetic":"top",this._textContext.font=this._lastTextCanvasFont,this._textContext.fillStyle=this._lastTextCanvasFillStyle,this._textContext.strokeStyle=this._lastTextCanvasFillStyle):this._textContext.clearRect(0,0,a,b)}_MaybeCreateMeasureContext(){this._measureContext||(this._measureContext=C3.CreateCanvas(16,16).getContext("2d"))}_SetMeasureFontString(a){this._lastMeasureCanvasFont===a||(this._lastMeasureCanvasFont=a,this._measureContext.font=a)}_MaybeWrapText(){this._textChanged&&(this._MaybeCreateMeasureContext(),this._isBBcodeEnabled&&(!this._bbString||this._bbString.toString()!==this._text)&&(this._bbString=new C3.BBString(this._text,{noEscape:!0})),this._wrappedText.WordWrap(this._isBBcodeEnabled?this._bbString.toFragmentList():this._text,this._measureTextCallback,this._cssWidth,this._wrapMode),this._textChanged=!1)}_MeasureText(a,b){this._SetMeasureFontString(this._GetFontString(!0,b));const d=this._GetStyleTag(b,"size"),e=d?parseFloat(d.param):this._fontSize;return{width:this._measureContext.measureText(a).width,height:c(e)}}_SetDrawFontString(a){this._lastTextCanvasFont===a||(this._lastTextCanvasFont=a,this._textContext.font=a)}_SetDrawCanvasColor(a){this._lastTextCanvasFillStyle===a||(this._lastTextCanvasFillStyle=a,this._textContext.fillStyle=a,this._textContext.strokeStyle=a)}_SetDrawCanvasOpacity(a){this._lastTextCanvasOpacity===a||(this._lastTextCanvasOpacity=a,this._textContext.globalAlpha=a)}_SetDrawCanvasLineWith(a){this._lastTextCanvasLineWidth===a||(this._lastTextCanvasLineWidth=a,this._textContext.lineWidth=a)}_DrawTextToCanvas(){var a=Math.max;this._drawCharCount=0;const b=this._scaleFactor*this._zoom*self.devicePixelRatio,d=c(this._fontSize)*b,e=(4+this._lineHeight)*b,f=d+e;let g=0;const h=this._wrappedText.GetLines();"center"===this._verticalAlign?g=a(this._height/2-h.length*f/2,0):"bottom"===this._verticalAlign&&(g=a(this._height-h.length*f-2,0));for(let a=0,c=h.length;athis._height-e)break;}else if(0=this._height-(d+e))break;let f=0;"center"===this._horizontalAlign?f=(this._width-c.width*b)/2:"right"===this._horizontalAlign&&(f=this._width-c.width*b),this._DrawTextLine(c,f,g,b),this._isBBcodeEnabled||(g+=d),g+=e}}_DrawTextLine(a,b,c,d){for(const e of a.fragments)this._DrawTextFragment(e,b,c,d,a.height),b+=e.width*d}_DrawTextFragment(c,d,e,f,g){const h=this._textContext,i=g/16;let j=c.width*f;const k=c.height*f,l=c.height/16,m=(4+this._lineHeight)*f,n=c.styles;let o=c.text;if(-1!==this._drawMaxCharCount){if(this._drawCharCount>=this._drawMaxCharCount)return;this._drawCharCount+o.length>this._drawMaxCharCount&&(o=o.substr(0,this._drawMaxCharCount-this._drawCharCount),j=this._MeasureText(o,n).width*f),this._drawCharCount+=o.length}const p=this._GetStyleTag(n,"background"),q=this._HasStyleTag(n,"u"),r=this._HasStyleTag(n,"s");if((!C3.IsStringAllWhitespace(o)||p||q||r)&&!this._HasStyleTag(n,"hide")){const c=this._GetStyleTag(n,"offsetx");d+=c?parseFloat(c.param)*f:0;const g=this._GetStyleTag(n,"offsety");e+=g?parseFloat(g.param)*f:0,p&&(this._SetDrawCanvasColor(p.param),h.fillRect(d,e-k,j,k+m));const s=this._GetStyleTag(n,"color");this._SetDrawCanvasColor(s?s.param:this._colorStr);const t=this._GetStyleTag(n,"opacity");this._SetDrawCanvasOpacity(t?parseFloat(t.param)/100:1);const u=this._HasStyleTag(n,"stroke");if(u&&this._SetDrawCanvasLineWith(l*this._scaleFactor*this._zoom),q&&b(h,u,d,e+f*i,j,f*i),r&&b(h,u,d,e-k/4,j,f*l),this._SetDrawFontString(this._GetFontString(!1,n)),a(h,u,o,d,e,j),!u){this._SetDrawCanvasLineWith(l*this._scaleFactor*this._zoom);const b=this._GetStyleTag(n,"outline");b&&(this._SetDrawCanvasColor(b.param),a(h,!0,o,d,e,j))}}}_UpdateTexture(){var a=Math.ceil;this._renderer.IsContextLost()||(this._textureWidth=a(this._width),this._textureHeight=a(this._height),this._rcTex.set(0,0,this._width/this._textureWidth,this._height/this._textureHeight),this._needToRecreateTexture&&(this.ReleaseTexture(),this._needToRecreateTexture=!1),!this._texture&&(this._texture=this._renderer.CreateDynamicTexture(this._textureWidth,this._textureHeight,{mipMap:1===this._zoom,mipMapQuality:"high"})),this._renderer.UpdateTexture(this._textCanvas,this._texture),this.ontextureupdate&&this.ontextureupdate())}GetTexRect(){return this._rcTex}ReleaseTexture(){this._texture&&(!this._renderer.IsContextLost()&&this._renderer.DeleteTexture(this._texture),this._texture=null)}static OnContextLost(){for(const a of i)a.ReleaseTexture()}static GetAll(){return i.values()}}} + +// ../lib/gfx/query.js +"use strict";{class a{constructor(a){this._gl=a.GetContext(),this._version=a.GetWebGLVersionNumber(),this._timerExt=a._GetDisjointTimerQueryExtension(),this._query=null,this._isActive=!1,this._hasResult=!1,this._result=0,this._query=1===this._version?this._timerExt["createQueryEXT"]():this._gl["createQuery"]()}Release(){this._DeleteQueryObject(),this._gl=null,this._timerExt=null,this._hasResult=!1}_DeleteQueryObject(){this._query&&(1===this._version?this._timerExt["deleteQueryEXT"](this._query):this._gl["deleteQuery"](this._query),this._query=null)}BeginTimeElapsed(){if(this._isActive)throw new Error("query already active");1===this._version?this._timerExt["beginQueryEXT"](this._timerExt["TIME_ELAPSED_EXT"],this._query):this._gl["beginQuery"](this._timerExt["TIME_ELAPSED_EXT"],this._query),this._isActive=!0}EndTimeElapsed(){if(!this._isActive)throw new Error("query not active");1===this._version?this._timerExt["endQueryEXT"](this._timerExt["TIME_ELAPSED_EXT"]):this._gl["endQuery"](this._timerExt["TIME_ELAPSED_EXT"]),this._isActive=!1}CheckForResult(){if(!this._query||this._hasResult||this._isActive)return;let a=!1;a=1===this._version?this._timerExt["getQueryObjectEXT"](this._query,this._timerExt["QUERY_RESULT_AVAILABLE_EXT"]):this._gl["getQueryParameter"](this._query,this._gl["QUERY_RESULT_AVAILABLE"]);const b=this._gl.getParameter(this._timerExt["GPU_DISJOINT_EXT"]);a&&!b&&(this._result=1===this._version?this._timerExt["getQueryObjectEXT"](this._query,this._timerExt["QUERY_RESULT_EXT"]):this._gl["getQueryParameter"](this._query,this._gl["QUERY_RESULT"]),this._result/=1e9,this._hasResult=!0),(a||b)&&this._DeleteQueryObject()}HasResult(){return this._hasResult}GetResult(){if(!this._hasResult)throw new Error("no result available");return this._result}}C3.Gfx.WebGLTimeElapsedQuery=class{constructor(a){this._renderer=a,this._frameNumber=a.GetFrameNumber(),this._isActive=!1,this._parentQuery=null,this._isNested=!1,this._realQuery=null,this._queries=[]}Release(){for(const b of this._queries)b instanceof a&&b.Release();C3.clearArray(this._queries),this._parentQuery=null,this._realQuery=null,this._renderer=null}BeginTimeElapsed(){if(this._isActive)throw new Error("query already active");const a=this._renderer._GetTimeQueryStack();0a.HasResult())}GetResult(){return this._queries.reduce((b,a)=>b+a.GetResult(),0)}GetFrameNumber(){return this._frameNumber}}} + +// ../lib/gfx/queryResultBuffer.js +"use strict";C3.Gfx.WebGLQueryResultBuffer=class{constructor(a,b=1e3){this._renderer=a,this._maxQueries=b,this._buffer=[],this._renderer._AddQueryResultBuffer(this)}Release(){this.Clear(),this._renderer._RemoveQueryResultBuffer(this),this._renderer=null}Clear(){for(const a of this._buffer)a.Release();C3.clearArray(this._buffer)}AddTimeElapsedQuery(){const a=new C3.Gfx.WebGLTimeElapsedQuery(this._renderer);if(this._buffer.push(a),this._buffer.length>this._maxQueries){const a=this._buffer.shift();a.Release()}return a}CheckForResults(a){for(const b of this._buffer){if(b.GetFrameNumber()>=a)return;if(b.IsNested())return;b.CheckForResult()}}GetFrameRangeResultSum(a,b){if(b<=a)return NaN;let c=0;for(const d of this._buffer){if(d.GetFrameNumber()>=b)break;if(!(d.GetFrameNumber()"],[l.GetTextureFillFragmentShaderSource(),o,""],[l.GetPointFragmentShaderSource(),l.GetPointVertexShaderSource(),""],[l.GetColorFillFragmentShaderSource(),o,""],[l.GetLinearGradientFillFragmentShaderSource(),o,""],[l.GetHardEllipseFillFragmentShaderSource(),o,""],[l.GetHardEllipseOutlineFragmentShaderSource(),o,""],[l.GetSmoothEllipseFillFragmentShaderSource(),o,""],[l.GetSmoothEllipseOutlineFragmentShaderSource(),o,""],[l.GetSmoothLineFillFragmentShaderSource(),o,""],[l.GetTilemapFragmentShaderSource(),l.GetDefaultVertexShaderSource(this._is3d,!0),""]],d=await Promise.all(s.map((e)=>this.CreateShaderProgram({src:e[0]},e[1],e[2])));this._spTextureFill=d[0],this._spDeviceTransformTextureFill=d[1],this._spPoints=d[2],this._spColorFill=d[3],this._spLinearGradientFill=d[4],this._spHardEllipseFill=d[5],this._spHardEllipseOutline=d[6],this._spSmoothEllipseFill=d[7],this._spSmoothEllipseOutline=d[8],this._spSmoothLineFill=d[9],this._spTilemapFill=d[10],this._currentStateGroup=null,this.SetTextureFillMode()}FillIndexBufferData(){const e=this._indexData;for(let t=0,r=0;t<12000;)e[t++]=r,e[t++]=r+1,e[t++]=r+2,e[t++]=r,e[t++]=r+2,e[t++]=r+3,r+=4}Is3D(){return this._is3d}GetNumVertexComponents(){return this._is3d?3:2}SetBaseZ(e){this._baseZ=e}GetBaseZ(){return this._baseZ}SetCurrentZ(e){this._currentZ=e,this._currentStateGroup=null}GetCurrentZ(){return this._currentZ}async CreateShaderProgram(e,t,r){const a=await C3.Gfx.WebGLShaderProgram.Create(this,e,t,r);return this._shaderPrograms.push(a),this._shaderProgramsByName.set(a.GetName(),a),a}GetShaderProgramByName(e){return this._shaderProgramsByName.get(e)||null}GetTextureFillShaderProgram(){return this._spTextureFill}ResetLastProgram(){this._lastProgram=null}_RemoveShaderProgram(e){const t=this._shaderPrograms.indexOf(e);-1!==t&&this._shaderPrograms.splice(t,1),this._shaderProgramsByName.delete(e.GetName())}Project(e,t,r,a,i){const n=this._matMV,l=this._matP;for(let n=0,l=_.length;n=this._lastVertexPtr&&(this.EndBatch(),e=0),1===this._topOfBatch)this._batch[this._batchPtr-1]._indexCount+=6;else{const t=this.PushBatch();t.InitQuad(this._is3d?e:3*(e/2),6),this._topOfBatch=1}}_WriteQuadToVertexBuffer(e){e.writeToTypedArray3D(this._vertexData,this._vertexPtr,this._baseZ+this._currentZ),this._vertexPtr+=12}Quad(e){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),n.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad2(e,t,r,a,i,_,l,o){this._ExtendQuadBatch();const s=this._vertexData;let d=this._vertexPtr;const u=this._baseZ+this._currentZ;this._is3d?(s[d++]=e,s[d++]=t,s[d++]=u,s[d++]=r,s[d++]=a,s[d++]=u,s[d++]=i,s[d++]=_,s[d++]=u,s[d++]=l,s[d++]=o,s[d++]=u):(s[d++]=e,s[d++]=t,s[d++]=r,s[d++]=a,s[d++]=i,s[d++]=_,s[d++]=l,s[d++]=o),this._vertexPtr=d,n.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad3(e,t){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),t.writeAsQuadToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad4(e,t){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),t.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}FullscreenQuad(e,t){var r=Math.max,a=Math.min;if(mat4.copy(s,this._lastMV),vec3.copy(l,this._cam),vec3.copy(o,this._look),this._cam[0]=0,this._cam[1]=0,this._cam[2]=100*self.devicePixelRatio,this._look[0]=0,this._look[1]=0,this._look[2]=0,this.ResetModelView(),this.UpdateModelView(),this._isScissorViewport){const e=this._viewportScissorWidth/2,t=this._viewportScissorHeight/2;c.set(-e,t,-e+this._viewportScissorWidth,t-this._viewportScissorHeight),d.setFromRect(c),c.set(0,0,this._viewportScissorWidth/this._width,this._viewportScissorHeight/this._height),this.Quad3(d,c)}else if("crop"===e&&this._currentRenderTarget&&t){const e=this._width/2,i=this._height/2,n=t.GetWidth(),_=t.GetHeight(),l=this._currentRenderTarget.GetWidth(),o=this._currentRenderTarget.GetHeight(),s=a(l,n),u=a(o,_),p=r(_-o,0),f=r(o-_,0);c.set(-e,i-f,-e+s,i-u-f),d.setFromRect(c),c.set(0,p,s,u+p),c.divide(n,_),this.Quad3(d,c)}else{let[e,t]=this.GetRenderTargetSize(this._currentRenderTarget);const r=e/2,a=t/2;this.Rect2(-r,a,r,-a)}mat4.copy(this._matMV,s),vec3.copy(this._cam,l),vec3.copy(this._look,o),this.UpdateModelView()}ConvexPoly(e){const t=e.length/2;if(3>t)throw new Error("need at least 3 points");const r=t-2,a=e[0],n=e[1];for(let t=0;t=this._lineWidthStack.length)throw new Error("cannot pop last line width - check push/pop pairs");this._lineWidthStack.pop(),this._lineWidth=this._lineWidthStack[this._lineWidthStack.length-1]}SetLineCapButt(){this._lineCap=0,this._lineCapStack[this._lineCapStack.length-1]=0}SetLineCapSquare(){this._lineCap=1,this._lineCapStack[this._lineCapStack.length-1]=0}SetLineCapZag(){this._lineCap=2,this._lineCapStack[this._lineCapStack.length-1]=0}PushLineCap(e){if("butt"===e)this.PushLineCapButt();else if("square"===e)this.PushLineCapSquare();else if("zag"===e)this.PushLineCapZag();else throw new Error("invalid line cap")}PushLineCapButt(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(0),this._lineCap=0}PushLineCapSquare(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(1),this._lineCap=1}PushLineCapZag(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(2),this._lineCap=2}PopLineCap(){if(1>=this._lineCapStack.length)throw new Error("cannot pop last line cap - check push/pop pairs");this._lineCapStack.pop(),this._lineCap=this._lineCapStack[this._lineCapStack.length-1]}SetLineOffset(e){this._lineOffset=e,this._lineOffsetStack[this._lineOffsetStack.length-1]=e}GetLineOffset(){return this._lineOffset}PushLineOffset(e){if(100<=this._lineOffsetStack.length)throw new Error("pushed too many line offsets - check push/pop pairs");this._lineOffsetStack.push(e),this._lineOffset=e}PopLineOffset(){if(1>=this._lineOffsetStack.length)throw new Error("cannot pop last line offset - check push/pop pairs");this._lineOffsetStack.pop(),this._lineOffset=this._lineOffsetStack[this._lineOffsetStack.length-1]}SetPointTextureCoords(e){if(!this._lastPointTexCoords.equals(e)){this._lastPointTexCoords.copy(e);const t=this.PushBatch();t.InitSetPointTexCoords(e),this._topOfBatch=0}}Point(e,t,r,a){this._pointPtr>=7996&&this.EndBatch();let i=this._pointPtr;const n=this._baseZ+this._currentZ;if(2===this._topOfBatch&&this._lastPointZ===n)this._batch[this._batchPtr-1]._indexCount++;else{const e=this.PushBatch();e.InitPoints(i,n),this._topOfBatch=2,this._lastPointZ=n}const _=this._pointData;_[i++]=e,_[i++]=t,_[i++]=r,_[i++]=a,this._pointPtr=i}SetProgram(e){if(this._lastProgram!==e){const t=this.PushBatch();t.InitSetProgram(e),this._lastProgram=e,this._topOfBatch=0,this._currentStateGroup=null}}SetTextureFillMode(){this.SetProgram(this._spTextureFill)}SetDeviceTransformTextureFillMode(){this.SetProgram(this._spDeviceTransformTextureFill)}SetColorFillMode(){this.SetProgram(this._spColorFill)}SetLinearGradientFillMode(){this.SetProgram(this._spLinearGradientFill)}SetGradientColor(e){const t=this.PushBatch();t.InitSetGradientColor(e),this._topOfBatch=0}SetHardEllipseFillMode(){this.SetProgram(this._spHardEllipseFill)}SetHardEllipseOutlineMode(){this.SetProgram(this._spHardEllipseOutline)}SetSmoothEllipseFillMode(){this.SetProgram(this._spSmoothEllipseFill)}SetSmoothEllipseOutlineMode(){this.SetProgram(this._spSmoothEllipseOutline)}SetEllipseParams(e,t,r=1){const a=this.PushBatch();a.InitSetEllipseParams(e,t,r),this._topOfBatch=0}SetSmoothLineFillMode(){this.SetProgram(this._spSmoothLineFill)}SetTilemapFillMode(){this.SetProgram(this._spTilemapFill)}SetTilemapInfo(e,t,r,a,i,n,_){if(this._lastProgram!==this._spTilemapFill)throw new Error("must set tilemap fill mode first");const l=this.PushBatch();l.InitSetTilemapInfo(e,t,r,a,i,n,_),this._topOfBatch=0}SetProgramParameters(e,t,r,a,i,n,_,l,o,d,u){const c=this._lastProgram,s=c._hasAnyOptionalUniforms,p=!!u.length;if(s&&!c.AreOptionalUniformsAlreadySetInBatch(t,r,a,i,n,_,l,o,d)||p&&!c.AreCustomParametersAlreadySetInBatch(u)){const f=this.PushBatch();if(f.InitSetProgramParameters(),s){c.SetOptionalUniformsInBatch(t,r,a,i,n,_,l,o,d);const s=f._mat4param;s[0]=n,s[1]=_,t.writeToTypedArray(s,2),s[6]=l,s[7]=o,r.writeToTypedArray(s,12);const u=f._colorParam;i.writeToTypedArray(u,0);const p=u[1];u[1]=u[3],u[3]=p,a.writeToTypedArray(f._srcOriginRect,0),f._startIndex=d,f._texParam=c._uSamplerBack.IsUsed()?e?e.GetTexture():null:null}p&&(c.SetCustomParametersInBatch(u),C3.shallowAssignArray(f._shaderParams,u)),this._topOfBatch=0}}ClearRgba(e,t,r,i){const a=this.PushBatch();a.InitClearSurface2(e,t,r,i),this._topOfBatch=0}Clear(e){const t=this.PushBatch();t.InitClearSurface(e),this._topOfBatch=0}ClearRect(e,t,r,a){this.ClearRect4(e,t,r,a,0,0,0,0)}ClearRect2(e){this.ClearRect4(e.getLeft(),e.getTop(),e.width(),e.height(),0,0,0,0)}ClearRect3(e,t){this.ClearRect4(e.getLeft(),e.getTop(),e.width(),e.height(),t.getR(),t.getG(),t.getB(),t.getA())}ClearRect4(e,t,i,n,_,r,l,o){if(!(0>i||0>n)){const a=this.PushBatch();a.InitClearRect(e,t,i,n,_,r,l,o),this._topOfBatch=0}}Start(){2<=this.GetWebGLVersionNumber()&&this._gl["bindVertexArray"](this._dummyVao)}Finish(){this.EndBatch(),2<=this.GetWebGLVersionNumber()&&this._gl["bindVertexArray"](null),this._gl.flush(),this._frameNumber++}CheckForQueryResults(){for(const e of this._allQueryResultBuffers)e.CheckForResults(this._frameNumber)}IsContextLost(){return!this._gl||this._gl.isContextLost()||this._isInitialisingAfterContextRestored}OnContextLost(){C3.Gfx.WebGLRendererTexture.OnContextLost(),C3.Gfx.WebGLRenderTarget.OnContextLost(),C3.Gfx.WebGLText.OnContextLost();for(const e of this._allQueryResultBuffers)e.Clear();this._extensions=[],this._timerExt=null,this._parallelShaderCompileExt=null,this._unmaskedVendor="(unavailable)",this._unmaskedRenderer="(unavailable)",this._lastProgram=null,this._spTextureFill=null,this._spDeviceTransformTextureFill=null,this._spColorFill=null,this._spLinearGradientFill=null,this._spHardEllipseFill=null,this._spHardEllipseOutline=null,this._spSmoothEllipseFill=null,this._spSmoothEllipseOutline=null,this._spSmoothLineFill=null,this._spPoints=null,this._spTilemapFill=null;for(const e of this._stateGroups.values())e.OnContextLost();for(const e of this._shaderPrograms)e.Release();C3.clearArray(this._shaderPrograms),this._shaderProgramsByName.clear()}async OnContextRestored(){this._isInitialisingAfterContextRestored=!0,await this.InitState(),this._isInitialisingAfterContextRestored=!1;for(const e of this._stateGroups.values())e.OnContextRestored(this);this.SetSize(this._width,this._height,!0)}CreateStaticTexture(e,t){if(this.IsContextLost())throw new Error("context lost");this.EndBatch();const r=C3.New(C3.Gfx.WebGLRendererTexture,this);return r._CreateStatic(e,t),r}CreateStaticTextureAsync(e,t){return this.IsContextLost()?Promise.reject("context lost"):(t=Object.assign({},t),C3.Supports.ImageBitmapOptions&&(this.SupportsNPOTTextures()||!t.isTiled)?(t.premultiplyAlpha=!1,createImageBitmap(e,{"premultiplyAlpha":"premultiply"}).then((e)=>C3.Asyncify(()=>this.CreateStaticTexture(e,t)))):C3.Supports.ImageBitmap?createImageBitmap(e).then((e)=>C3.Asyncify(()=>this.CreateStaticTexture(e,t))):e instanceof Blob?C3.BlobToImage(e,!0).then((e)=>this.CreateStaticTextureAsync(e,t)):"undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement&&"function"==typeof e["decode"]?e["decode"]().then(()=>C3.Asyncify(()=>this.CreateStaticTexture(e,t))):C3.Asyncify(()=>this.CreateStaticTexture(e,t)))}CreateDynamicTexture(e,t,r){this.EndBatch();const a=C3.New(C3.Gfx.WebGLRendererTexture,this);return a._CreateDynamic(e,t,r),a}UpdateTexture(e,t,r){this.EndBatch(),t._Update(e,r)}DeleteTexture(e){e&&(e.SubtractReference(),0=t||0>=r)throw new Error("invalid size");this.EndBatch();const i=C3.New(C3.Gfx.WebGLRenderTarget,this);return i._Create(t,r,Object.assign({isDefaultSize:a},e)),this._currentRenderTarget=null,this._batchState.currentFramebuffer=null,i}SetRenderTarget(e){if(e===this._currentRenderTarget)return;let t,r,a,i;e?(e.IsDefaultSize()&&e._Resize(this._width,this._height),a=e.GetWidth(),i=e.GetHeight(),t=a,r=i):(a=this._width,i=this._height,t=this.GetScissoredViewportWidth(),r=this.GetScissoredViewportHeight());const n=this._lastBackbufferWidth!==a||this._lastBackbufferHeight!==i;n&&this._UpdateViewportRenderer(t,r,a,i);const _=this.PushBatch();_.InitSetRenderTarget(e,n,this._matP),this._currentRenderTarget=e,this._topOfBatch=0}GetRenderTarget(){return this._currentRenderTarget}GetRenderTargetSize(e){return e?[e.GetWidth(),e.GetHeight()]:[this._width,this._height]}CopyRenderTarget(e,t="stretch"){if(2>this._version||this._currentRenderTarget&&0this._version)){const t=this.PushBatch();t.InitInvalidateFramebuffer(e._GetFramebuffer()),this._topOfBatch=0}}DeleteRenderTarget(e){this.SetRenderTarget(null),this.EndBatch();const t=e.GetTexture();t===this._lastTexture0&&(this._gl.bindTexture(this._gl.TEXTURE_2D,null),this._lastTexture0=null),t===this._lastTexture1&&(this._gl.activeTexture(this._gl.TEXTURE1),this._gl.bindTexture(this._gl.TEXTURE_2D,null),this._gl.activeTexture(this._gl.TEXTURE0),this._lastTexture1=null),e._Delete()}async ReadBackRenderTargetToImageData(e,t){this.EndBatch();const r=this._currentRenderTarget;let a,i,n;e?(a=e.GetWidth(),i=e.GetHeight(),n=e._GetFramebuffer()):(a=this.GetWidth(),i=this.GetHeight(),n=null);const _=this._gl;_.bindFramebuffer(_.FRAMEBUFFER,n);const l=()=>{_.bindFramebuffer(_.FRAMEBUFFER,null),this._currentRenderTarget=null,this._batchState.currentFramebuffer=null,this.SetRenderTarget(r)};let o;if(!t&&2<=this.GetWebGLVersionNumber()){_.bindFramebuffer(_.READ_FRAMEBUFFER,n);const e=_.createBuffer(),t=4*(a*i),r=_["PIXEL_PACK_BUFFER"];_.bindBuffer(r,e),_.bufferData(r,t,_["STREAM_READ"]),_.readPixels(0,0,a,i,_.RGBA,_.UNSIGNED_BYTE,0),_.bindFramebuffer(_.READ_FRAMEBUFFER,null),_.bindBuffer(r,null),l();const s=_["fenceSync"](_["SYNC_GPU_COMMANDS_COMPLETE"],0);await this._WaitForObjectReady(()=>_["getSyncParameter"](s,_["SYNC_STATUS"])===_["SIGNALED"]),_["deleteSync"](s),o=new ImageData(a,i),_.bindBuffer(r,e),_["getBufferSubData"](r,0,new Uint8Array(o.data.buffer),0,t),_.bindBuffer(r,null),_.deleteBuffer(e)}else o=new ImageData(a,i),_.readPixels(0,0,a,i,_.RGBA,_.UNSIGNED_BYTE,new Uint8Array(o.data.buffer)),l();return o}StartQuery(e){if(this.SupportsGPUProfiling()){const t=this.PushBatch();t.InitStartQuery(e),this._topOfBatch=0}}EndQuery(e){if(this.SupportsGPUProfiling()){const t=this.PushBatch();t.InitEndQuery(e),this._topOfBatch=0}}_WaitForObjectReady(e){const r=new Promise((t)=>p.add({resolve:t,checkFunc:e}));return-1===f&&(f=self.requestAnimationFrame(t)),r}GetEstimatedBackBufferMemoryUsage(){return this._width*this._height*(this._attribs["alpha"]?4:3)}GetEstimatedRenderBufferMemoryUsage(){let e=0;for(const r of C3.Gfx.WebGLRenderTarget.allRenderTargets())r.GetTexture()||(e+=r.GetEstimatedMemoryUsage());return e}GetEstimatedTextureMemoryUsage(){let e=0;for(const r of C3.Gfx.WebGLRendererTexture.allTextures())e+=r.GetEstimatedMemoryUsage();return e}GetEstimatedTotalMemoryUsage(){return this.GetEstimatedBackBufferMemoryUsage()+this.GetEstimatedRenderBufferMemoryUsage()+this.GetEstimatedTextureMemoryUsage()}GetWebGLVersionString(){return this._versionString}GetWebGLVersionNumber(){return this._version}SupportsNPOTTextures(){return 2<=this.GetWebGLVersionNumber()}GetMaxTextureSize(){return this._maxTextureSize}GetMinPointSize(){return this._minPointSize}GetMaxPointSize(){return this._maxPointSize}SupportsHighP(){return 0!==this._highpPrecision}GetHighPPrecision(){return this._highpPrecision}GetUnmaskedVendor(){return this._unmaskedVendor}GetUnmaskedRenderer(){return this._unmaskedRenderer}GetExtensions(){return this._extensions}HasMajorPerformanceCaveat(){return this._hasMajorPerformanceCaveat}SupportsGPUProfiling(){return!!this._timerExt}_GetDisjointTimerQueryExtension(){return this._timerExt}_GetParallelShaderCompileExtension(){return this._parallelShaderCompileExt}_AddQueryResultBuffer(e){this._allQueryResultBuffers.add(e)}_RemoveQueryResultBuffer(e){this._allQueryResultBuffers.delete(e)}_GetTimeQueryStack(){return this._timeQueryStack}GetFrameNumber(){return this._frameNumber}IncrementFrameNumber(){this._frameNumber++}GetContext(){return this._gl}GetNamedBlend(e){const t=this._gl;let r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;switch(e){case"normal":r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;break;case"additive":r=t.ONE,a=t.ONE;break;case"copy":r=t.ONE,a=t.ZERO;break;case"destination-over":r=t.ONE_MINUS_DST_ALPHA,a=t.ONE;break;case"source-in":r=t.DST_ALPHA,a=t.ZERO;break;case"destination-in":r=t.ZERO,a=t.SRC_ALPHA;break;case"source-out":r=t.ONE_MINUS_DST_ALPHA,a=t.ZERO;break;case"destination-out":r=t.ZERO,a=t.ONE_MINUS_SRC_ALPHA;break;case"source-atop":r=t.DST_ALPHA,a=t.ONE_MINUS_SRC_ALPHA;break;case"destination-atop":r=t.ONE_MINUS_DST_ALPHA,a=t.SRC_ALPHA;break;default:throw new Error("invalid blend name");}return{srcBlend:r,destBlend:a}}GetBlendByIndex(e){const t=this._gl;let r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;switch(e){case 0:r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;break;case 1:r=t.ONE,a=t.ONE;break;case 3:r=t.ONE,a=t.ZERO;break;case 4:r=t.ONE_MINUS_DST_ALPHA,a=t.ONE;break;case 5:r=t.DST_ALPHA,a=t.ZERO;break;case 6:r=t.ZERO,a=t.SRC_ALPHA;break;case 7:r=t.ONE_MINUS_DST_ALPHA,a=t.ZERO;break;case 8:r=t.ZERO,a=t.ONE_MINUS_SRC_ALPHA;break;case 9:r=t.DST_ALPHA,a=t.ONE_MINUS_SRC_ALPHA;break;case 10:r=t.ONE_MINUS_DST_ALPHA,a=t.SRC_ALPHA;break;default:throw new Error("invalid blend index");}return{srcBlend:r,destBlend:a}}CreateWebGLText(){return C3.New(C3.Gfx.WebGLText,this)}}} + +// c3/assets/assetManager.js +"use strict";{function a(a){if(!a)return"";const b=a.split(".");if(2>b.length)return"";const d=b[b.length-1].toLowerCase();return c.get(d)||""}const b=new Set(["local","remote"]),c=new Map([["mp4","video/mp4"],["webm","video/webm"],["m4a","audio/mp4"],["mp3","audio/mpeg"],["js","application/javascript"],["wasm","application/wasm"]]);C3.AssetManager=class extends C3.DefendedBase{constructor(a,c){if(super(),!b.has(c.defaultLoadPolicy))throw new Error("invalid load policy");if(this._runtime=a,this._localUrlBlobs=new Map,this._localBlobUrlCache=new Map,this._isCordova=!!c.isCordova,this._isWKWebView=!!c.isWKWebView,this._supportedAudioFormats=c.supportedAudioFormats||{},this._audioFiles=new Map,this._preloadSounds=!1,this._mediaSubfolder="",this._fontsSubfolder="",this._iconsSubfolder="",this._defaultLoadPolicy=c.defaultLoadPolicy,this._allAssets=[],this._assetsByUrl=new Map,this._webFonts=[],this._loadPromises=[],this._hasFinishedInitialLoad=!1,this._totalAssetSizeToLoad=0,this._assetSizeLoaded=0,this._lastLoadProgress=0,this._hasHadErrorLoading=!1,this._loadingRateLimiter=C3.New(C3.RateLimiter,()=>this._FireLoadingProgressEvent(),50),this._promiseThrottle=new C3.PromiseThrottle(Math.max(C3.hardwareConcurrency,8)),c.localUrlBlobs)for(const[a,b]of Object.entries(c.localUrlBlobs))this._localUrlBlobs.set(a,b)}Release(){this._localUrlBlobs.clear();for(const a of this._localBlobUrlCache.values())URL.revokeObjectURL(a);this._localBlobUrlCache.clear();for(const a of this._allAssets)a.Release();C3.clearArray(this._allAssets),this._assetsByUrl.clear(),C3.clearArray(this._loadPromises),this._runtime=null}GetRuntime(){return this._runtime}_SetMediaSubfolder(a){this._mediaSubfolder=a}GetMediaSubfolder(){return this._mediaSubfolder}_SetFontsSubfolder(a){this._fontsSubfolder=a}GetFontsSubfolder(){return this._fontsSubfolder}_SetIconsSubfolder(a){this._iconsSubfolder=a}GetIconsSubfolder(){return this._iconsSubfolder}FetchJson(a){return this.FetchBlob(a,this._defaultLoadPolicy).then((a)=>C3.BlobToJson(a))}FetchBlob(a,b){b=b||this._defaultLoadPolicy;const c=this._localUrlBlobs.get(a);return c?Promise.resolve(c):this._isCordova&&C3.IsRelativeURL(a)?this.CordovaFetchLocalFileAsBlob(a):"local"===b?this._promiseThrottle.Add(()=>C3.FetchBlob(a)):C3.FetchBlob(a)}_HasLocalURLBlob(a){return this._localUrlBlobs.has(a)}_CordovaFetchLocalFileAs(a,b){return this._runtime.PostComponentMessageToDOMAsync("runtime","cordova-fetch-local-file",{"filename":a,"as":b})}CordovaFetchLocalFileAsText(a){return this._CordovaFetchLocalFileAs(a,"text")}async CordovaFetchLocalFileAsBlob(b){const c=await this._CordovaFetchLocalFileAs(b,"buffer"),d=a(b);return new Blob([c],{"type":d})}async CordovaFetchLocalFileAsBlobURL(a){const b=await this.CordovaFetchLocalFileAsBlob(a);return URL.createObjectURL(b)}CordovaFetchLocalFileAsArrayBuffer(a){return this._CordovaFetchLocalFileAs(a,"buffer")}GetLocalUrlAsBlobUrl(a){const b=this._localUrlBlobs.get(a);if(!b)return a;let c=this._localBlobUrlCache.get(b);return c||(c=URL.createObjectURL(b),this._localBlobUrlCache.set(b,c)),c}GetMediaFileUrl(a){return this._runtime.IsPreview()||"playable-ad"===this._runtime.GetExportType()?this.GetLocalUrlAsBlobUrl(a.toLowerCase()):this._mediaSubfolder+a}GetProjectFileUrl(a){return this._runtime.IsPreview()?this.GetLocalUrlAsBlobUrl(a.toLowerCase()):a}LoadProjectFileUrl(a){return this._runtime.IsPreview()?Promise.resolve(this.GetLocalUrlAsBlobUrl(a.toLowerCase())):this._isCordova?this.CordovaFetchLocalFileAsBlobURL(a.toLowerCase()):Promise.resolve(a.toLowerCase())}LoadImage(a){if(a.loadPolicy&&!b.has(a.loadPolicy))throw new Error("invalid load policy");let c=this._assetsByUrl.get(a.url);return c?c:(c=C3.New(C3.ImageAsset,this,{url:a.url,size:a.size||0,loadPolicy:a.loadPolicy||this._defaultLoadPolicy}),this._allAssets.push(c),this._assetsByUrl.set(c.GetURL(),c),this._hasFinishedInitialLoad||(this._totalAssetSizeToLoad+=c.GetSize(),this._loadPromises.push(c.Load().then(()=>this._AddLoadedSize(c.GetSize())))),c)}async WaitForAllToLoad(){try{await Promise.all(this._loadPromises),this._lastLoadProgress=1}catch(a){console.error("Error loading: ",a),this._hasHadErrorLoading=!0,this._FireLoadingProgressEvent()}}SetInitialLoadFinished(){this._hasFinishedInitialLoad=!0}HasHadErrorLoading(){return this._hasHadErrorLoading}_AddLoadedSize(a){this._assetSizeLoaded+=a,this._loadingRateLimiter.Call()}_FireLoadingProgressEvent(){const a=C3.New(C3.Event,"loadingprogress");this._lastLoadProgress=C3.clamp(this._assetSizeLoaded/this._totalAssetSizeToLoad,0,1),a.progress=this._lastLoadProgress,this._runtime.Dispatcher().dispatchEvent(a)}GetLoadProgress(){return this._lastLoadProgress}_SetWebFonts(a){C3.shallowAssignArray(this._webFonts,a),this._webFonts.length&&this._loadPromises.push(this._LoadWebFonts())}_LoadWebFonts(){if("undefined"==typeof FontFace)return Promise.resolve();const a=[];for(const[b,c,d]of this._webFonts)this._totalAssetSizeToLoad+=d,a.push(this._LoadWebFont(b,c).then(()=>this._AddLoadedSize(d)));return Promise.all(a)}async _LoadWebFont(a,b){const c=await this.LoadProjectFileUrl(this._fontsSubfolder+b),d=new FontFace(a,`url('${c}')`);this._runtime.IsInWorker()?self.fonts.add(d):document.fonts.add(d);try{await d.load()}catch(b){console.warn(`[C3 runtime] Failed to load web font '${a}': `,b)}}IsAudioFormatSupported(a){return!!this._supportedAudioFormats[a]}_SetAudioFiles(a,b){this._preloadSounds=!!b;for(const[c,d,e]of a)this._audioFiles.set(c,{fileName:c,formats:d.map((a)=>({type:a[0],fileExtension:a[1],fullName:c+a[1],fileSize:a[2]})),isMusic:e})}GetPreferredAudioFile(a){const b=this._audioFiles.get(a.toLowerCase());if(!b)return null;let c=null;for(const d of b.formats)if(c||"audio/webm; codecs=opus"!==d.type||(c=d),this.IsAudioFormatSupported(d.type))return d;return c}GetProjectAudioFileUrl(a){const b=this.GetPreferredAudioFile(a);return b?{url:this.GetMediaFileUrl(b.fullName),type:b.type}:null}GetAudioToPreload(){if(this._preloadSounds){const a=[];for(const b of this._audioFiles.values()){if(b.isMusic)continue;const c=this.GetPreferredAudioFile(b.fileName);c&&a.push({originalUrl:b.fileName,url:this.GetMediaFileUrl(c.fullName),type:c.type,fileSize:c.fileSize})}return a}return[]}}} + +// c3/assets/asset.js +"use strict";C3.Asset=class extends C3.DefendedBase{constructor(a,b){super(),this._assetManager=a,this._runtime=a.GetRuntime(),this._url=b.url,this._size=b.size,this._loadPolicy=b.loadPolicy,this._blob=null,this._isLoaded=!1,this._loadPromise=null}Release(){this._loadPromise=null,this._assetManager=null,this._runtime=null,this._blob=null}GetURL(){return this._url}GetSize(){return this._size}Load(){return"local"===this._loadPolicy||this._blob?(this._isLoaded=!0,Promise.resolve()):this._loadPromise?this._loadPromise:(this._loadPromise=this._assetManager.FetchBlob(this._url,this._loadPolicy).then((a)=>{this._isLoaded=!0,this._loadPromise=null,this._blob=a}).catch((a)=>console.error("Error loading resource: ",a)),this._loadPromise)}IsLoaded(){return this._isLoaded}GetBlob(){return this._blob?Promise.resolve(this._blob):this._assetManager.FetchBlob(this._url,this._loadPolicy)}}; + +// c3/assets/imageAsset.js +"use strict";{const a=new C3.PromiseThrottle,b=new Set;C3.ImageAsset=class extends C3.Asset{constructor(a,c){super(a,c),this._texturePromise=null,this._webglTexture=null,this._refCount=0,this._imageWidth=-1,this._imageHeight=-1,b.add(this)}Release(){if(this.ReleaseTexture(),0!==this._refCount)throw new Error("released image asset which still has texture references");this._texturePromise=null,b.delete(this),super.Release()}static OnWebGLContextLost(){for(const a of b)a._texturePromise=null,a._webglTexture=null,a._refCount=0}LoadStaticTexture(b,c){return(this._refCount++,this._webglTexture)?Promise.resolve(this._webglTexture):this._texturePromise?this._texturePromise:(this._texturePromise=this.GetBlob().then((d)=>a.Add(()=>b.CreateStaticTextureAsync(d,c).then((a)=>(this._texturePromise=null,0===this._refCount)?(b.DeleteTexture(a),null):(this._webglTexture=a,this._imageWidth=a.GetWidth(),this._imageHeight=a.GetHeight(),this._webglTexture)))).catch((a)=>{throw console.error("Failed to load texture: ",a),a}),this._texturePromise)}ReleaseTexture(){if(0>=this._refCount)throw new Error("texture released too many times");if(this._refCount--,0===this._refCount&&this._webglTexture){const a=this._webglTexture.GetRenderer();a.DeleteTexture(this._webglTexture),this._webglTexture=null}}GetTexture(){return this._webglTexture}GetWidth(){return this._imageWidth}GetHeight(){return this._imageHeight}async LoadToDrawable(){const a=await this.GetBlob();return C3.Supports.ImageBitmapOptions?await createImageBitmap(a,{"premultiplyAlpha":"none"}):C3.Supports.ImageBitmap?await createImageBitmap(a):await C3.BlobToImage(a)}}} + +// c3/layouts/renderCell.js +"use strict";{function a(c,a){return c.GetWorldInfo()._GetLastCachedZIndex()-a.GetWorldInfo()._GetLastCachedZIndex()}C3.RenderCell=class extends C3.DefendedBase{constructor(a,b,c){super(),this._grid=a,this._x=b,this._y=c,this._instances=[],this._isSorted=!0,this._pendingRemoval=new Set,this._isAnyPendingRemoval=!1}Release(){C3.clearArray(this._instances),this._pendingRemoval.clear(),this._grid=null}Reset(){C3.clearArray(this._instances),this._isSorted=!0,this._pendingRemoval.clear(),this._isAnyPendingRemoval=!1}SetChanged(){this._isSorted=!1}IsEmpty(){return!this._instances.length||!(this._instances.length>this._pendingRemoval.size)&&(this._FlushPending(),!0)}Insert(a){return this._pendingRemoval.has(a)?(this._pendingRemoval.delete(a),void(0===this._pendingRemoval.size&&(this._isAnyPendingRemoval=!1))):void(this._instances.push(a),this._isSorted=1===this._instances.length)}Remove(a){this._pendingRemoval.add(a),this._isAnyPendingRemoval=!0,50<=this._pendingRemoval.size&&this._FlushPending()}_FlushPending(){return this._isAnyPendingRemoval?this._instances.length===this._pendingRemoval.size?void this.Reset():void(C3.arrayRemoveAllInSet(this._instances,this._pendingRemoval),this._pendingRemoval.clear(),this._isAnyPendingRemoval=!1):void 0}_EnsureSorted(){this._isSorted||(this._instances.sort(a),this._isSorted=!0)}Dump(a){this._FlushPending(),this._EnsureSorted(),this._instances.length&&a.push(this._instances)}}} + +// c3/layouts/renderGrid.js +"use strict";C3.RenderGrid=class extends C3.DefendedBase{constructor(a,b){super(),this._cellWidth=a,this._cellHeight=b,this._cells=C3.New(C3.PairMap)}Release(){this._cells.Release(),this._cells=null}GetCell(a,b,c){let d=this._cells.Get(a,b);return d?d:c?(d=C3.New(C3.RenderCell,this,a,b),this._cells.Set(a,b,d),d):null}XToCell(a){return Math.floor(a/this._cellWidth)}YToCell(a){return Math.floor(a/this._cellHeight)}Update(a,b,c){if(b)for(let d=b.getLeft(),e=b.getRight();d<=e;++d)for(let e=b.getTop(),f=b.getBottom();e<=f;++e){if(c&&c.containsPoint(d,e))continue;const b=this.GetCell(d,e,!1);b&&(b.Remove(a),b.IsEmpty()&&this._cells.Delete(d,e))}if(c)for(let d=c.getLeft(),e=c.getRight();d<=e;++d)for(let e=c.getTop(),f=c.getBottom();e<=f;++e)b&&b.containsPoint(d,e)||this.GetCell(d,e,!0).Insert(a)}QueryRange(a,b){let c=this.XToCell(a.getLeft());for(const d=this.YToCell(a.getTop()),e=this.XToCell(a.getRight()),f=this.YToCell(a.getBottom());c<=e;++c)for(let a=d;a<=f;++a){const d=this.GetCell(c,a,!1);d&&d.Dump(b)}}MarkRangeChanged(a){let b=a.getLeft();for(const c=a.getTop(),d=a.getRight(),e=a.getBottom();b<=d;++b)for(let a=c;a<=e;++a){const c=this.GetCell(b,a,!1);c&&c.SetChanged()}}}; + +// c3/layouts/layer.js +"use strict";{function a(c,a){return c.GetWorldInfo()._GetLastCachedZIndex()-a.GetWorldInfo()._GetLastCachedZIndex()}function b(c,a){return c.GetWorldInfo().GetZElevation()-a.GetWorldInfo().GetZElevation()}const c=new C3.Rect,d=new C3.Quad,e=[],f=new C3.Rect,g=new C3.Rect,h=vec3.fromValues(0,1,0);C3.Layer=class extends C3.DefendedBase{constructor(a,b,c){super(),this._layout=a,this._runtime=a.GetRuntime(),this._name=c[0],this._index=b,this._sid=c[2],this._isVisible=!!c[3],this._backgroundColor=C3.New(C3.Color),this._backgroundColor.setFromJSON(c[4].map((a)=>a/255)),this._isTransparent=!!c[5],this._parallaxX=c[6],this._parallaxY=c[7],this._color=C3.New(C3.Color,1,1,1,c[8]),this._premultipliedColor=C3.New(C3.Color),this._isForceOwnTexture=c[9],this._useRenderCells=c[10],this._scaleRate=c[11],this._blendMode=c[12],this._srcBlend=0,this._destBlend=0,this._curRenderTarget=null,this._scale=1,this._zElevation=c[16],this._angle=0,this._isAngleEnabled=!0,this._viewport=C3.New(C3.Rect),this._viewportZ0=C3.New(C3.Rect),this._startupInitialInstances=[],this._initialInstances=[],this._createdGlobalUids=[],this._instances=[],this._zIndicesUpToDate=!1,this._anyInstanceZElevated=!1,this._effectList=C3.New(C3.EffectList,this,c[15]),this._renderGrid=null,this._lastRenderList=[],this._isRenderListUpToDate=!1,this._lastRenderCells=C3.New(C3.Rect,0,0,-1,-1),this._curRenderCells=C3.New(C3.Rect,0,0,-1,-1),this._UpdatePremultipliedColor(),this._useRenderCells&&(this._renderGrid=C3.New(C3.RenderGrid,this._runtime.GetOriginalViewportWidth(),this._runtime.GetOriginalViewportHeight()));for(const d of c[14]){const a=this._runtime.GetObjectClassByIndex(d[1]);this._layout._AddInitialObjectClass(a),a.GetDefaultInstanceData()||(a.SetDefaultInstanceData(d),a._SetDefaultLayerIndex(this._index)),this._initialInstances.push(d)}C3.shallowAssignArray(this._startupInitialInstances,this._initialInstances)}static Create(a,b,c){return C3.New(C3.Layer,a,b,c)}Release(){this._layout=null,this._runtime=null}CreateInitialInstances(a){const b=this._layout.IsFirstVisit();let c=0;const d=this._initialInstances;for(let e=0,f=d.length;ec||(b&&this._useRenderCells&&a.GetWorldInfo()._RemoveFromRenderCells(),this._instances.splice(c,1),this.SetZIndicesChanged(),this._MaybeResetAnyInstanceZElevatedFlag())}_SetAnyInstanceZElevated(){this._anyInstanceZElevated=!0}_MaybeResetAnyInstanceZElevatedFlag(){0===this._instances.length&&(this._anyInstanceZElevated=!1)}_SortInstancesByLastCachedZIndex(b){if(b){const a=new Set;for(const b of this._instances){const c=b.GetWorldInfo()._GetLastCachedZIndex();0<=c&&a.add(c)}let b=-1;for(const c of this._instances){const d=c.GetWorldInfo();if(!(0<=d._GetLastCachedZIndex())){for(++b;a.has(b);)++b;d._SetZIndex(b)}}}this._instances.sort(a)}_Start(){this.SetBlendMode(this.GetBlendMode(),!0)}_End(){for(const a of this._instances)a.GetObjectClass().IsGlobal()||this._runtime.DestroyInstance(a);this._runtime.FlushPendingInstances(),C3.clearArray(this._instances),this._anyInstanceZElevated=!1,this.SetZIndicesChanged()}RecreateInitialObjects(a,b){const c=this._runtime.GetEventSheetManager(),d=this._runtime.GetAllObjectClasses(),e=a.IsFamily();for(const f of this._initialInstances){const g=f[0],h=g[0],i=g[1];if(!b.containsPoint(h,i))continue;const j=d[f[1]];if(j!==a)if(!e)continue;else if(!a.FamilyHasMember(j))continue;const k=this._runtime.CreateInstanceFromData(f,this,!1);if(c.BlockFlushingInstances(!0),k._TriggerOnCreated(),k.IsInContainer())for(const a of k.siblings())a._TriggerOnCreated();c.BlockFlushingInstances(!1)}}GetInstanceCount(){return this._instances.length}GetLayout(){return this._layout}GetName(){return this._name}GetIndex(){return this._index}GetSID(){return this._sid}GetRuntime(){return this._runtime}GetEffectList(){return this._effectList}UsesRenderCells(){return this._useRenderCells}GetRenderGrid(){return this._renderGrid}SetRenderListStale(){this._isRenderListUpToDate=!1}IsVisible(){return this._isVisible}SetVisible(a){a=!!a;this._isVisible===a||(this._isVisible=a,this._runtime.UpdateRender())}GetViewport(){return this._viewport}GetViewportForZ(a,b){const c=this._viewportZ0;if(0===a)b.copy(c);else{const d=this.Get2DScaleFactorToZ(a),e=c.midX(),f=c.midY(),g=.5*c.width()/d,h=.5*c.height()/d;b.set(e-g,f-h,e+g,f+h)}}GetOpacity(){return this._color.getA()}SetOpacity(a){a=C3.clamp(a,0,1);this._color.getA()===a||(this._color.setA(a),this._UpdatePremultipliedColor(),this._runtime.UpdateRender())}_UpdatePremultipliedColor(){this._premultipliedColor.copy(this._color),this._premultipliedColor.premultiply()}GetPremultipliedColor(){return this._premultipliedColor}HasDefaultColor(){return this._color.equalsRgba(1,1,1,1)}GetScaleRate(){return this._scaleRate}SetScaleRate(a){this._scaleRate===a||(this._scaleRate=a,this._runtime.UpdateRender())}GetParallaxX(){return this._parallaxX}GetParallaxY(){return this._parallaxY}SetParallax(a,b){if((this._parallaxX!==a||this._parallaxY!==b)&&(this._parallaxX=a,this._parallaxY=b,this._runtime.UpdateRender(),1!==this._parallaxX||1!==this._parallaxY))for(const a of this._instances)a.GetObjectClass()._SetAnyInstanceParallaxed(!0)}SetParallaxX(a){this.SetParallax(a,this.GetParallaxY())}SetParallaxY(a){this.SetParallax(this.GetParallaxX(),a)}SetZElevation(a){this._zElevation=+a}GetZElevation(){return this._zElevation}SetAngle(b){this._angle=C3.clampAngle(b)}GetAngle(){return this._isAngleEnabled?C3.clampAngle(this._layout.GetAngle()+this._angle):0}GetOwnAngle(){return this._angle}HasInstances(){return 0Number.EPSILON){this._UpdateZIndices();const b=this._useRenderCells&&0===this.GetZElevation()&&!this._anyInstanceZElevated;b?this._DrawInstances_RenderCells(a):this._DrawInstances(a,this._instances)}a.SetBaseZ(0),a.SetCurrentZ(0),a.SetCameraXYZ(0,0,100),a.SetLookXYZ(0,0,0),e&&this._DrawLayerOwnTextureToRenderTarget(a,f,b,c),g&&a.EndQuery(g),this._curRenderTarget=null}_DrawInstances(a,b){const c=this._viewport,d=this._curRenderTarget;let e=null;for(let f=0,g=b.length;fthis._width-b&&(a=this._width-b),athis._height-b&&(a=this._height-b),aa||(this._width=a)}GetHeight(){return this._height}SetHeight(a){!isFinite(a)||1>a||(this._height=a)}GetEventSheet(){return this._eventSheet}GetLayers(){return this._layers}GetLayerCount(){return this._layers.length}GetLayer(a){return"number"==typeof a?this.GetLayerByIndex(a):this.GetLayerByName(a.toString())}GetLayerByIndex(a){return a=C3.clamp(Math.floor(a),0,this._layers.length-1),this._layers[a]}GetLayerByName(a){return this._layersByName.get(a.toLowerCase())||null}GetLayerBySID(a){return this._layersBySid.get(a)||null}HasOpaqueBottomLayer(){for(const a of this._layers)if(a.ShouldDraw())return a._IsOpaque();return!1}IsFirstVisit(){return this._isFirstVisit}_GetInitialObjectClasses(){return[...this._initialObjectClasses]}_AddInitialObjectClass(a){if(a.IsInContainer())for(const b of a.GetContainer().GetObjectTypes())this._initialObjectClasses.add(b);else this._initialObjectClasses.add(a)}_GetTextureLoadedObjectTypes(){return[...this._textureLoadedTypes]}_Load(a,b){if(a===this||!b)return Promise.resolve();a&&(C3.CopySet(this._textureLoadedTypes,a._textureLoadedTypes),a._textureLoadedTypes.clear());const c=[];for(const d of this._initialObjectClasses)this._textureLoadedTypes.has(d)||(c.push(d.LoadTextures(b)),this._textureLoadedTypes.add(d));return Promise.all(c)}async MaybeLoadTexturesFor(a){if(a.IsFamily())throw new Error("cannot load textures for family");const b=this._runtime.GetWebGLRenderer();!b||b.IsContextLost()||this._textureLoadedTypes.has(a)||(this._textureLoadedTypes.add(a),await a.LoadTextures(b),a.OnDynamicTextureLoadComplete(),this._runtime.UpdateRender())}MaybeUnloadTexturesFor(a){if(a.IsFamily()||0d)b._AddSibling(f[d]);else{let d;d=c?this._runtime.CreateInstanceFromData(e,c.GetLayer(),!0,c.GetX(),c.GetY(),!0):this._runtime.CreateInstanceFromData(e,null,!0,0,0,!0),this._runtime.FlushPendingInstances(),e._UpdateIIDs(),b._AddSibling(d),a.push(d)}}}}_CreateInitialNonWorldInstances(){for(const a of this._initialNonWorld){const b=this._runtime.GetObjectClassByIndex(a[1]);b.IsInContainer()||this._runtime.CreateInstanceFromData(a,null,!0)}}_CreateGlobalNonWorlds(){const a=[],b=this._initialNonWorld;let c=0;for(let d=0,e=b.length;d=this._isEndingLayout)throw new Error("already unset");this._isEndingLayout--}}IsEndingLayout(){return 0=b||b>=this._totalTime)&&(this._complete=!0)}IsComplete(){return this._complete}IsReleased(){return this._released}SetMarkedForRemoval(a){this._markedForRemoval=a}IsMarkedForRemoval(){return this._markedForRemoval}InitialStateSet(){return this._initialStateSet}GetPropertyTrack(a){for(const b of this._tracks)for(const c of b.GetPropertyTracks())if(c.GetPropertyName()===a)return c}Trigger(a){const b=this._timelineManager.GetPluginInstance();this.GetRuntime().Trigger(a,b)}SetStartedTriggers(a){this._startedTriggers=a}SetFinishedTriggers(a){this._finishedTriggers=a}GetTime(){return this._playheadTime.Get()}SetTime(a){if(this._playheadTime.Set(a),0>this._playheadTime.Get()&&this._playheadTime.Set(0),this._playheadTime.Get()>=this._totalTime&&this._playheadTime.Set(this._totalTime),!this.IsPlaying()&&!this.IsScheduled()&&this._initialStateSet)this.SetComplete(!1);else if(!this.IsPlaying()&&!this.IsScheduled()&&!this._initialStateSet){this._initialStateSet=!0;for(const a of this._tracks)a.SetInitialState()}else this.IsPlaying()?this.Stop():this.IsScheduled()&&(this._timelineManager.DeScheduleTimeline(this),this.SetComplete(!1));let b=!1;for(const c of this._tracks){c.SetResumeState();const a=c.Interpolate(this._playheadTime.Get());!b&&a&&(b=!0)}b&&this.GetRuntime().UpdateRender()}SetResultMode(a){this._resultMode=a;for(const b of this._tracks)b.SetResultMode(a)}SetEase(a){this._ease=a;for(const b of this._tracks)b.SetEase(resultMode)}SetPlaybackRate(a){return this._playbackRate=a}IsForwardPlayBack(){return 0=this._totalTime)return;}else if(0>=this._playheadTime.Get())return;this.Play(!0)}}Play(a=!1){this.IsReleased()||this.IsScheduled()||this.IsPlaying()||!this.IsComplete()&&!a||this._timelineManager.ScheduleTimeline(this)}Stop(a=!1){this.IsReleased()||(this.SetComplete(a),this._timelineManager.CompleteTimeline(this))}Reset(){if(this.IsReleased())return;if(!this.IsPlaying()&&this.IsScheduled())return this._timelineManager.DeScheduleTimeline(this);this.Stop(!0),this._playheadTime.Set(0);let a=!1;for(const b of this._tracks){const c=b.Interpolate(this._playheadTime.Get());!a&&c&&(a=!0)}a&&this.GetRuntime().UpdateRender()}SetInitialState(){if(this.SetPlaying(!0),this.SetScheduled(!1),this.OnStarted(),this.IsComplete()){this._completedTick=-1,this._initialStateSet=!0,this.IsForwardPlayBack()?this._playheadTime.Set(0):this._playheadTime.Set(this._totalTime);for(const a of this._tracks)a.SetInitialState()}else for(const a of this._tracks)a.SetResumeState()}Tick(a,b){this._playheadTime.Add(a*b*this._playbackRate);let c;if(c=this.IsForwardPlayBack()?this._playheadTime.Get()>=this._totalTime:0>=this._playheadTime.Get(),c){this.IsForwardPlayBack()?this._playheadTime.Set(this._totalTime):this._playheadTime.Set(0);for(const a of this._tracks)a.SetEndState();return this.Stop(!0),this.OnCompleted(),!0}else{let a=!1;for(const b of this._tracks){const c=b.Interpolate(this._playheadTime.Get());!a&&c&&(a=!0)}return a}}}} + +// c3/timelines/track.js +"use strict";{const a=0;C3.Track=class extends C3.DefendedBase{constructor(b,c){super(),this._timeline=b,this._instanceUid=c[a][2],this._interpolationMode=c[1],this._resultMode=c[2],this._enabled=!!c[3],this._keyframes=[];for(const a of c[4]){const b=C3.Keyframe.Create(this,a);this._IsKeyFrameEnabled(b)&&this._keyframes.push(b)}this._propertyTracks=[];for(const a of c[5]){const b=C3.PropertyTrack.Create(this,a);b.GetEnable()&&this._propertyTracks.push(b)}this._instance=null,this._worldInfo=null,this._lastPositionSet=!1}static Create(a,b){return C3.New(C3.Track,a,b)}static CreateEmpty(b){const c=[];return c[a]=[],c[a][2]=-1,c[1]="default",c[2]="default",c[3]=1,c[4]=[],c[5]=[],this.Create(b,c)}Release(){this._timeline=null,this._instance=null,this._worldInfo=null;for(const a of this._keyframes)a.Release();C3.clearArray(this._keyframes),this._keyframes=null;for(const a of this._propertyTracks)a.Release();C3.clearArray(this._propertyTracks),this._propertyTracks=null}CleanCaches(){for(const a of this._propertyTracks)a.CleanCaches();this._instance=null,this._worldInfo=null}GetTimeline(){return this._timeline}GetRuntime(){return this._timeline.GetRuntime()}MaybeGetInstance(){this._instance||this.GetInstance()}IsInstanceValid(){return!!this._instance&&!this._instance.IsDestroyed()}SetInstanceUID(a){this._instanceUid=a}GetInstance(){return this._instance&&this.IsInstanceValid()?this._instance:(this._instance=this.GetRuntime().GetInstanceByUID(this._instanceUid),this._instance)}GetWorldInfo(){return this._worldInfo&&this.IsInstanceValid()?this._worldInfo:(this._worldInfo=this.GetInstance().GetWorldInfo(),this._worldInfo)}SetInterpolationMode(a){this._interpolationMode=a}GetInterpolationMode(){return this._interpolationMode}SetResultMode(a){this._resultMode=a;for(const b of this._propertyTracks)b.SetResultMode(a)}GetResultMode(){return this._resultMode}SetEase(){for(const a of this._keyframes)a.SetEase(resultMode);for(const a of this._propertyTracks)a.SetEase(resultMode)}SetEnable(a){this._enabled=!!a}GetEnable(){return this._enabled}AddKeyframe(){const a=C3.Keyframe.CreateEmpty(this);return this._keyframes.push(a),a}GetKeyframes(){return this._keyframes}SortKeyframes(){this._keyframes.sort((c,a)=>c.GetTime()-a.GetTime())}AddPropertyTrack(a,b){const c=C3.PropertyTrack.CreateEmpty(this,a,b);return this._propertyTracks.push(c),c}GetPropertyTracks(){return this._propertyTracks}SetInitialState(){if(this.MaybeGetInstance(),!!this.IsInstanceValid()){this._lastPositionSet=!1;for(const a of this._propertyTracks)a.SetInitialState();this.GetTimeline().IsForwardPlayBack()?this.Interpolate(0):this.Interpolate(this.GetTimeline().GetTotalTime())}}SetResumeState(){if(this.MaybeGetInstance(),!!this.IsInstanceValid())for(const a of this._propertyTracks)a.SetResumeState()}SetEndState(){if((this.MaybeGetInstance(),!!this.IsInstanceValid())&&!this._lastPositionSet){this._lastPositionSet=!0;const a=this._timeline.GetTime(),b=this._timeline.GetTotalTime();a>=b?this.Interpolate(b):0>=a&&this.Interpolate(0)}}DeleteKeyframes(a){for(const b of this._keyframes){if(!a(b))continue;const c=this._keyframes.indexOf(b);-1!==c&&(b.Release(),this._keyframes.splice(c,1))}this.SortKeyframes()}DeletePropertyKeyframes(a){for(const b of this._propertyTracks)b.DeletePropertyKeyframes(a)}Interpolate(a){if(this.MaybeGetInstance(),!this.IsInstanceValid())return!1;let b=!1,c=!1;for(const d of this._propertyTracks){const e=d.Interpolate(a);b||0==(e&C3.Timeline.WORLD_INSTANCE_BOX_CHANGE)||(b=!0),c||0==(e&C3.Timeline.LAYOUT_RENDER_CHANGE)||(c=!0)}return b&&this.GetWorldInfo().SetBboxChanged(),c}SaveState(){for(const a of this._propertyTracks)a.SaveState()}CompareInitialStateWithCurrent(){if(this.MaybeGetInstance(),!!this.IsInstanceValid())for(const a of this._propertyTracks)a.CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){if(this.MaybeGetInstance(),!this.IsInstanceValid())return;let a=!1;for(const b of this._propertyTracks){const c=b.CompareSaveStateWithCurrent();!a&&c&&(a=!0)}if(a){const a=this.AddKeyframe();a.SetTime(this.GetTimeline().GetTime()),a.SetEase("noease"),a.SetEnable(!0)}}_IsKeyFrameEnabled(a){return!!this.GetEnable()&&!!a.GetEnable()}}} + +// c3/timelines/keyframe.js +"use strict";{const a=0;C3.Keyframe=class extends C3.DefendedBase{constructor(b,c){super(),this._track=b,this._time=c[a],this._ease=c[1],this._enable=!!c[2]}static Create(a,b){return C3.New(C3.Keyframe,a,b)}static CreateEmpty(b){const c=[];return c[a]=0,c[1]="linear",c[2]=1,this.Create(b,c)}Release(){this._track=null}GetRuntime(){return this._track.GetRuntime()}SetTime(a){this._time=a,this._track.SortKeyframes()}GetTime(){return this._time}SetEase(a){this._ease=a}GetEase(){return this._ease}SetEnable(a){this._enable=!!a}GetEnable(){return this._enable}}} + +// c3/timelines/propertyTrack.js +"use strict";{const a=0;C3.PropertyTrack=class extends C3.DefendedBase{constructor(b,c){super(),this._track=b,this._sourceAdapter=C3.PropertyTrack.CreateSourceAdapter(this,c[a]),this._property=c[1],this._type=c[2],this._min=c[3],this._max=c[4],this._interpolationMode=c[5],this._resultMode=c[6],this._enabled=!!c[7],this._propertyKeyframes=[];for(const a of c[8]){const b=C3.PropertyKeyframe.Create(this,a);this._IsPropertyKeyFrameEnabled(b)&&this._propertyKeyframes.push(b)}this._BuildPropertyKeyframeTimeMap()}static Create(a,b){return C3.New(C3.PropertyTrack,a,b)}static CreateEmpty(b,c,d){const e=[];if(e[a]=[],e[a][0]=c,d)for(let b=0;bc.GetTime()-a.GetTime())}_IsPropertyKeyFrameEnabled(a){if(!this.GetEnable())return!1;if(!a.GetEnable())return!1;const b=a.GetMasterKeyframe();if(!b)return!1;const c=this.GetTrack();return!!c._IsKeyFrameEnabled(b)}_GetKeyFrameAtTime(a){for(const b of this._propertyKeyframes)if(b.GetTime()===a)return b}_GetKeyFrameAtTimeFromCache(a){return this._propertyKeyframeTimeMap.get(a)}_GetFirstKeyframe(){return this._propertyKeyframes[0]}_GetLastKeyframe(){return this._propertyKeyframes[this._propertyKeyframes.length-1]}_GetFirstKeyFrameHigherThan(a){for(const b of this._propertyKeyframes)if(b.GetTime()>a)return b}_GetFirstKeyFrameHigherOrEqualThan(a){for(const b of this._propertyKeyframes)if(b.GetTime()>=a)return b}_GetFirstKeyFrameLowerOrEqualThan(a){for(let b=this._propertyKeyframes.length-1;0<=b;b--){const c=this._propertyKeyframes[b];if(c.GetTime()<=a)return c}}SetInitialState(){this._sourceAdapter.SetInitialState()}SetResumeState(){this._sourceAdapter.SetResumeState()}GetStartPropertyKeyframeForTime(a){let b=this._GetKeyFrameAtTimeFromCache(a);return b||(b=this._GetFirstKeyFrameLowerOrEqualThan(a)),b}GetEndPropertyKeyframeForTime(a){const b=this._GetKeyFrameAtTimeFromCache(a);return b?this._GetFirstKeyFrameHigherThan(a):this._GetFirstKeyFrameHigherOrEqualThan(a)}Interpolate(a){let b,c=this._GetKeyFrameAtTimeFromCache(a);return c?b=this._GetFirstKeyFrameHigherThan(a):(c=this._GetFirstKeyFrameLowerOrEqualThan(a),b=this._GetFirstKeyFrameHigherOrEqualThan(a)),this._sourceAdapter.Interpolate(a,c,b)}DeletePropertyKeyframes(a){for(const b of this._propertyKeyframes){if(!a(b))continue;const c=this._propertyKeyframes.indexOf(b);-1!==c&&(b.Release(),this._propertyKeyframes.splice(c,1))}this.SortPropertyKeyFrames()}SaveState(){this._sourceAdapter.SaveState()}CompareInitialStateWithCurrent(){const a=this._sourceAdapter.CompareInitialStateWithCurrent();if(a){const a=this._GetFirstKeyframe(),b=this._sourceAdapter.GetCurrentState();a.SetAbsoluteValue(b)}}CompareSaveStateWithCurrent(){const a=this._sourceAdapter.CompareSaveStateWithCurrent();return a&&this.AddPropertyKeyframeAtCurrentTime(),this._sourceAdapter.ClearSaveState(),a}AddPropertyKeyframeAtCurrentTime(){const a=this.GetTimeline().GetTime(),b=this.GetStartPropertyKeyframeForTime(a),c=this.AddPropertyKeyframe(),d=this.GetSourceAdapter();c.SetValue(d.GetValueAtTime()),c.SetAbsoluteValue(d.GetCurrentState()),c.SetType(b.GetType()),c.SetTime(a),c.SetEase(b.GetEase()),c.SetEnable(!0)}}} + +// c3/timelines/propertyKeyframe.js +"use strict";{const a=0;C3.PropertyKeyframe=class extends C3.DefendedBase{constructor(b,c){super(),this._propertyTrack=b,this._value=c[a][0],this._aValue=c[a][1],this._type=c[a][2],this._time=c[1],this._ease=c[2],this._enable=!!c[3],this._masterKeyframe=null;for(let a of this._propertyTrack.GetTrack().GetKeyframes())if(a.GetTime()===this._time){this._masterKeyframe=a;break}}static Create(a,b){return C3.New(C3.PropertyKeyframe,a,b)}static CreateEmpty(b){const c=[];return c[a]=[],c[a][0]=0,c[a][1]=0,c[a][2]="",c[1]=0,c[2]="linear",c[3]=1,this.Create(b,c)}Release(){this._propertyTrack=null,this._masterKeyframe=null}GetRuntime(){return this._propertyTrack.GetRuntime()}SetTime(a){this._time=a,this._propertyTrack._BuildPropertyKeyframeTimeMap()}GetTime(){return this._time}SetValue(a){"color"===this._type&&C3.IsFiniteNumber(a)?(this._value[0]=C3.GetRValue(a),this._value[1]=C3.GetGValue(a),this._value[2]=C3.GetBValue(a)):this._value=a}GetValue(){return this._value}SetAbsoluteValue(a){"color"===this._type&&C3.IsFiniteNumber(a)?(this._aValue[0]=C3.GetRValue(a),this._aValue[1]=C3.GetGValue(a),this._aValue[2]=C3.GetBValue(a)):this._aValue=a}GetAbsoluteValue(){return this._aValue}GetValueWithResultMode(){const a=this._propertyTrack.GetResultMode();if("relative"===a)return this.GetValue();return"absolute"===a?this.GetAbsoluteValue():void 0}SetEase(a){this._ease=a}GetEase(){return this._ease}SetEnable(a){this._enable=!!a}GetEnable(){return this._enable}SetType(a){this._type=a}GetType(){return this._type}GetMasterKeyframe(){return this._masterKeyframe}}} + +// c3/timelines/timelineManager.js +"use strict";C3.TimelineManager=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a,this._pluginInstance=null,this._timelines=[],this._timelinesByName=new Map,this._scheduledTimelines=[],this._playingTimelines=[],this._hasRuntimeListeners=!1,this._changingLayout=!1,this._isTickingTimelines=!1,this._tickFunc=()=>this._OnTick(),this._tick2Func=()=>this._OnTick2(),this._beforeLayoutChange=()=>this._OnBeforeChangeLayout(),this._layoutChange=()=>this._OnAfterChangeLayout()}Release(){const a=this._runtime.Dispatcher();a.removeEventListener("tick",this._tickFunc),this._tickFunc=null,a.removeEventListener("tick2",this._tick2Func),this._tick2Func=null,a.removeEventListener("beforelayoutchange",this._beforeLayoutChange),this._beforeLayoutChange=null,a.removeEventListener("layoutchange",this._layoutChange),this._layoutChange=null,this._runtime=null;for(const a of this._timelines)a.Stop(),a.Release();C3.clearArray(this._timelines),this._timelines=null,C3.clearArray(this._scheduledTimelines),this._scheduledTimelines=null,C3.clearArray(this._playingTimelines),this._playingTimelines=null,this._timelinesByName.clear(),this._timelinesByName=null}AddRuntimeListeners(){const a=this._runtime.Dispatcher();a.addEventListener("beforelayoutchange",this._beforeLayoutChange),a.addEventListener("layoutchange",this._layoutChange)}Create(a){this.Add(C3.Timeline.Create(a,this))}Add(a){this._timelines.push(a),this._timelinesByName.set(a.GetName(),a)}GetRuntime(){return this._runtime}SetPluginInstance(a){this._pluginInstance=a}GetPluginInstance(){return this._pluginInstance}GetTimelines(){return this._timelines}GetTimelineByIndex(a){const b=C3.clamp(Math.floor(a),0,this._timelines.length-1);return this._timelines[b]?this._timelines[b]:void 0}GetTimelineByName(a){return this._timelinesByName.has(a)?this._timelinesByName.get(a):void 0}ScheduleTimeline(a){a.SetPlaying(!1),a.SetScheduled(!0),a.SetMarkedForRemoval(!1),this._scheduledTimelines.push(a),this._MaybeAddRuntimeListeners()}DeScheduleTimeline(a){const b=this._scheduledTimelines.indexOf(a);a.SetPlaying(!1),a.SetScheduled(!1);-1===b||(this._scheduledTimelines.splice(b,1),this._MaybeRemoveRuntimeListeners())}CompleteTimeline(a){a.SetPlaying(!1),a.SetScheduled(!1),a.SetMarkedForRemoval(!0)}_OnTick(){if(this._changingLayout)return;let a=!1;for(this._isTickingTimelines=!0;this._scheduledTimelines.length;){const a=this._scheduledTimelines.pop();a.SetInitialState(),this._playingTimelines.push(a)}const b=this._runtime.GetDt(),c=this._runtime.GetTimeScale();for(const d of this._playingTimelines){if(d.IsMarkedForRemoval())continue;const e=d.Tick(b,c);!a&&e&&(a=!0)}this._isTickingTimelines=!1,a&&this.GetRuntime().UpdateRender()}_OnTick2(){for(const a of this._playingTimelines){if(!a.IsMarkedForRemoval())continue;const b=this._playingTimelines.indexOf(a);-1===b||this._playingTimelines.splice(b,1)}this._MaybeRemoveRuntimeListeners()}_MaybeAddRuntimeListeners(){if(!this._hasRuntimeListeners){const a=this._runtime.Dispatcher();a.addEventListener("tick",this._tickFunc),a.addEventListener("tick2",this._tick2Func),this._hasRuntimeListeners=!0}}_MaybeRemoveRuntimeListeners(){if(!this._playingTimelines.length&&!this._scheduledTimelines.length&&!this._isTickingTimelines){const a=this._runtime.Dispatcher();a.removeEventListener("tick",this._tickFunc),a.removeEventListener("tick2",this._tick2Func),this._hasRuntimeListeners=!1}}_OnBeforeChangeLayout(){for(this._changingLayout=!0;this._scheduledTimelines.length;)this.DeScheduleTimeline(this._scheduledTimelines.pop());for(;this._playingTimelines.length;)this.CompleteTimeline(this._playingTimelines.pop());this._MaybeRemoveRuntimeListeners();for(const a of this._timelines)a.CleanCaches()}_OnAfterChangeLayout(){this._changingLayout=!1}}; + +// c3/timelines/propertySourceAdapters/propertySourceAdapter.js +"use strict";C3.PropertyTrack.PropertySourceAdapter=class{constructor(){}static GetValueAtTime(a){const b=a.GetTrack(),c=b.GetTimeline().GetTime(),d=a.GetStartPropertyKeyframeForTime(c),e=a.GetEndPropertyKeyframeForTime(c),f=C3.PropertyTrack.PropertySourceAdapter,g=f.GetInterpolateFunc(a);return g(c,d,e,a)}static GetValue(a,b,c){let d=a.GetResultMode();return"combo"===a.GetPropertyType()&&(d="absolute"),"relative"===d?b+c:"absolute"===d?c:void 0}static GetInterpolateFunc(a){const b=a.GetPropertyKeyframeType();return"numeric"===b?C3.PropertyTrack.NumericTypeAdapter.Interpolate:"angle"===b?C3.PropertyTrack.AngleTypeAdapter.Interpolate:"boolean"===b?C3.PropertyTrack.BooleanTypeAdapter.Interpolate:"color"===b?C3.PropertyTrack.ColorTypeAdapter.Interpolate:"text"===b?C3.PropertyTrack.TextTypeAdapter.Interpolate:void 0}static GetWillChangeFunc(a){const b=a.GetPropertyKeyframeType();return"numeric"===b?C3.PropertyTrack.NumericTypeAdapter.WillChange:"angle"===b?C3.PropertyTrack.AngleTypeAdapter.WillChange:"boolean"===b?C3.PropertyTrack.BooleanTypeAdapter.WillChange:"color"===b?C3.PropertyTrack.ColorTypeAdapter.WillChange:"text"===b?C3.PropertyTrack.TextTypeAdapter.WillChange:void 0}}; + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._sid=b[1],this._index=b[2],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetSdkBehaviourInstance(),c=this._index,d=this._propertyTrack;let e=this._propertyTrack.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetSdkBehaviourInstance(){const a=this._track.GetInstance(),b=a.GetBehaviorIndexBySID(this._sid),c=a.GetBehaviorInstances()[b];return c.GetSdkInstance()}}C3.PropertyTrack.BehaviorSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._name=b[1],this._index=b[2],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetEffectParameters(),c=this._index,d=this._propertyTrack;let e=this._propertyTrack.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){if(this._GetEffectParameters()){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetEffectParameters(){if(this._effectParams)return this._effectParams;const a=this._track.GetWorldInfo(),b=a.GetInstanceEffectList(),c=b.GetEffectList(),d=c.GetEffectTypeByName(this._name),e=d.GetIndex();return this._effectParams=b.IsEffectIndexActive(e)?b.GetEffectParametersForIndex(e):null,this._effectParams}}C3.PropertyTrack.EffectSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._index=b[1],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._track.GetInstance(),c=this._index,d=this._propertyTrack;switch(d.GetPropertyType()){case"boolean":this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c);break;case"string":this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c);break;case"number":this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c);}return this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}C3.PropertyTrack.InstanceVariableSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=this._propertyTrack.GetTrack(),this._index=b[1],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetSdkPluginInstance(),c=this._index,d=this._propertyTrack;let e=d.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetSdkPluginInstance(){return this._track.GetInstance().GetSdkInstance()}}C3.PropertyTrack.PluginSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapter.js +"use strict";{class a{constructor(a){this._propertyTrack=a,this._track=a.GetTrack(),this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._propertyTrack.GetPropertyName();return this._propertyAdapter="offsetColor"===b?C3.New(a.ColorPropertyAdapter,this._propertyTrack):C3.New(a.NumericPropertyAdapter,this._propertyTrack),this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter,e=d.GetInterpolateFunc(this._propertyTrack),f=e(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(f)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}C3.PropertyTrack.WorldInstanceSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/propertyAdapter.js +"use strict";C3.PropertyTrack.PropertyAdapter=class{constructor(a){this._propertyTrack=a,this._worldInfo=a.GetTrack().GetWorldInfo(),this._property=a.GetPropertyName(),this._firstAbsoluteUpdate=!1,this._saveState=null}Release(){this._worldInfo=null,this._propertyTrack=null,this._saveState=null}CleanCaches(){this._worldInfo=null,this._saveState=null}GetWorldInfo(){return this._worldInfo?this._worldInfo:(this._worldInfo=this._propertyTrack.GetTrack().GetWorldInfo(),this._worldInfo)}SetFirstAbsoluteUpdate(a){this._firstAbsoluteUpdate=!!a}GetFirstAbsoluteUpdate(){return this._firstAbsoluteUpdate}SetInitialState(){}SetResumeState(){}SetSaveState(){}ClearSaveState(){this._saveState=null}GetCurrentState(){}CompareInitialStateWithCurrent(){}CompareSaveStateWithCurrent(){}ChangeProperty(){}_FirstKeyframeGetter(){const a=this._PickTimelinePlaybackMode(()=>this._propertyTrack._GetFirstKeyframe(),()=>this._propertyTrack._GetLastKeyframe());return a.GetAbsoluteValue()}_CurrentKeyframeGetter(){const a=this._propertyTrack.GetTimeline(),b=a.GetTime(),c=this._PickTimelinePlaybackMode(()=>this._propertyTrack._GetFirstKeyFrameLowerOrEqualThan(b),()=>this._propertyTrack._GetFirstKeyFrameHigherOrEqualThan(b));return c.GetAbsoluteValue()}_PickTimelinePlaybackMode(a,b){const c=this._propertyTrack.GetTimeline();return c.IsForwardPlayBack()?a():b()}_PickResultMode(a,b){const c=this._propertyTrack.GetResultMode();return"relative"===c?a():b()}_PickFirstAbsoluteUpdate(a,b){return this.GetFirstAbsoluteUpdate()?(this.SetFirstAbsoluteUpdate(!1),a()):b()}_GetAbsoluteInitialValue(){}}; + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=this._sdkBehaviourInstance,e=this._propertyIndex,f=c[a],h=c[1],g=c[2],b=this._lastValueR,i=this._lastValueG,j=this._lastValueB;this._PickFirstAbsoluteUpdate(()=>d.SetPropertyColorOffsetValueByIndex(e,-b,-i,-j),()=>d.SetPropertyColorOffsetValueByIndex(e,-b+f,-i+h,-j+g)),this._lastValueR=f,this._lastValueG=h,this._lastValueB=g}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_Getter(){const a=this._sdkBehaviourInstance,b=this._propertyIndex,c=a.GetPropertyValueByIndex(b);return this._GetColorFromArray(c)}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.BehaviorSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._propertyIndex,this._sdkBehaviourInstance,a,"behavior")&&this._sdkBehaviourInstance.SetPropertyValueByIndex(this._propertyIndex,a)}}C3.PropertyTrack.BehaviorSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c,this._lastValue=0}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._sdkBehaviourInstance,d=this._propertyIndex;this._PickResultMode(()=>c.SetPropertyOffsetValueByIndex(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetPropertyOffsetValueByIndex(d,b),()=>c.SetPropertyOffsetValueByIndex(d,a-b))}),this._lastValue=a}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.BehaviorSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._effectParameters=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this._Getter()}GetCurrentState(){return this._effectParameters[this._parameterIndex].toArray().slice(0,3)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=c[a],e=c[1],f=c[2],b=this._lastValueR,g=this._lastValueG,h=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>this._Setter(-b,-g,-h),()=>this._Setter(-b+d,-g+e,-h+f)),this._lastValueR=d,this._lastValueG=e,this._lastValueB=f,C3.Timeline.LAYOUT_RENDER_CHANGE}_Setter(a,c,d){this._effectParameters[this._parameterIndex].addRgb(a,c,d)}_Getter(){return this._effectParameters[this._parameterIndex].clone()}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.EffectSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c}Release(){this._effectParameters=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._effectParameters[this._parameterIndex]}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._parameterIndex,this._effectParameters,a,"effect")&&(this._effectParameters[this._parameterIndex]=a)}}C3.PropertyTrack.EffectSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c,this._lastValue=0}Release(){this._effectParameters=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._effectParameters[this._parameterIndex]}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue;return this._PickResultMode(()=>{this._effectParameters[this._parameterIndex]+=a-b},()=>{this._PickFirstAbsoluteUpdate(()=>{this._effectParameters[this._parameterIndex]+=b},()=>{this._effectParameters[this._parameterIndex]+=a-b})}),this._lastValue=a,C3.Timeline.LAYOUT_RENDER_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.EffectSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._instance=b,this._instanceVariableIndex=c}Release(){this._instance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._instance.GetInstanceVariableValue(this._instanceVariableIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._instanceVariableIndex,this._instance,a,"instance-variable")&&this._instance.SetInstanceVariableValue(this._instanceVariableIndex,a)}}C3.PropertyTrack.InstanceVariableSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._instance=b,this._instanceVariableIndex=c,this._lastValue=0}Release(){this._instance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._instance.GetInstanceVariableValue(this._instanceVariableIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._instance,d=this._instanceVariableIndex;this._PickResultMode(()=>c.SetInstanceVariableOffset(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetInstanceVariableOffset(d,b),()=>c.SetInstanceVariableOffset(d,a-b))}),this._lastValue=a}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.InstanceVariableSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=this._sdkInstance,e=this._propertyIndex,f=c[a],h=c[1],g=c[2],b=this._lastValueR,i=this._lastValueG,j=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>d.SetPropertyColorOffsetValueByIndex(e,-b,-i,-j),()=>d.SetPropertyColorOffsetValueByIndex(e,-b+f,-i+h,-j+g)),this._lastValueR=f,this._lastValueG=h,this._lastValueB=g,C3.Timeline.LAYOUT_RENDER_CHANGE}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_Getter(){const a=this._sdkInstance,b=this._propertyIndex,c=a.GetPropertyValueByIndex(b);return this._GetColorFromArray(c)}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.PluginSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);if(b(this._propertyIndex,this._sdkInstance,a,"plugin"))return this._sdkInstance.SetPropertyValueByIndex(this._propertyIndex,a),C3.Timeline.LAYOUT_RENDER_CHANGE}}C3.PropertyTrack.PluginSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c,this._lastValue=0}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._sdkInstance,d=this._propertyIndex;return this._PickResultMode(()=>c.SetPropertyOffsetValueByIndex(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetPropertyOffsetValueByIndex(d,b),()=>c.SetPropertyOffsetValueByIndex(d,a-b))}),this._lastValue=a,C3.Timeline.LAYOUT_RENDER_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.PluginSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a){super(a),this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this._Getter()}GetCurrentState(){return this._Getter().toArray().slice(0,3)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=c[a],e=c[1],f=c[2],b=this._lastValueR,g=this._lastValueG,h=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>this._Setter(-b,-g,-h),()=>this._Setter(-b+d,-g+e,-h+f)),this._lastValueR=d,this._lastValueG=e,this._lastValueB=f,C3.Timeline.LAYOUT_RENDER_CHANGE}_Getter(){return this.GetWorldInfo().GetUnpremultipliedColor().clone()}_Setter(a,c,d){this.GetWorldInfo().OffsetUnpremultipliedColorRGB(a,c,d)}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.WorldInstanceSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{const a=new Map,b=(b,c,d)=>a.set(b,{setter:c,getter:d});b("offsetX",(a,b)=>a.OffsetX(b),(a)=>a.GetX()),b("offsetY",(a,b)=>a.OffsetY(b),(a)=>a.GetY()),b("offsetWidth",(a,b)=>a.OffsetWidth(b),(a)=>a.GetWidth()),b("offsetHeight",(a,b)=>a.OffsetHeight(b),(a)=>a.GetHeight()),b("offsetAngle",(a,b)=>a.OffsetAngle(b),(a)=>a.GetAngle()),b("offsetOpacity",(a,b)=>a.OffsetOpacity(b),(a)=>a.GetOpacity()),b("offsetOriginX",(a,b)=>a.OffsetOriginX(b),(a)=>a.GetOriginX()),b("offsetOriginY",(a,b)=>a.OffsetOriginY(b),(a)=>a.GetOriginY());class c extends C3.PropertyTrack.PropertyAdapter{constructor(b){super(b);const c=b.GetPropertyName();this._getter=a.get(c).getter,this._setter=a.get(c).setter,this._lastValue=0}Release(){super.Release(),this._getter=null,this._setter=null}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._getter(this.GetWorldInfo())}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this.GetWorldInfo();return this._PickResultMode(()=>this._setter(c,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>this._setter(c,b),()=>this._setter(c,a-b))}),this._lastValue=a,C3.Timeline.WORLD_INSTANCE_BOX_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.WorldInstanceSourceAdapter.NumericPropertyAdapter=c} + +// c3/timelines/propertySourceAdapters/valueSourceAdapter.js +"use strict";C3.PropertyTrack.ValueSourceAdapter=class{constructor(a){this._propertyTrack=a,this._track=a.GetTrack(),this._value=0}Release(){this._propertyTrack=null,this._track=null}SetInitialState(){this._value=this._propertyTrack._GetFirstKeyframe().GetValueWithResultMode()}SetResumeState(){}GetValue(){return this._value}Interpolate(a,b,c){const d=C3.PropertyTrack.NumericTypeAdapter.Interpolate;this._value=d(a,b,c,this._propertyTrack)}SaveState(){}ClearSaveState(){}GetCurrentState(){return this._value}CompareInitialStateWithCurrent(){return!1}CompareSaveStateWithCurrent(){return!1}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}; + +// c3/timelines/propertyTypeAdapters/numericTypeAdapter.js +"use strict";C3.PropertyTrack.NumericTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){var f=Math.floor;if(!c)return d._GetLastKeyframe().GetValueWithResultMode();let g=d.GetInterpolationMode();if("default"===g&&(g="continuous"),"combo"===d.GetPropertyType()&&(g="discrete"),"discrete"===g)return b.GetValueWithResultMode();if("continuous"===g||"step"===g){if("step"===g){const b=1/d.GetTimeline().GetStep();a=f(a*b)/b}const h=b.GetTime(),i=c.GetTime(),j=b.GetValueWithResultMode(),k=c.GetValueWithResultMode();if(j===k)return j;const l=C3.normalize(a,h,i),m=b.GetEase(),e=Ease.GetEase(m)((i-h)*l,j,k-j,i-h);return"integer"===d.GetPropertyType()?f(e):e}}}; + +// c3/timelines/propertyTypeAdapters/angleTypeAdapter.js +"use strict";C3.PropertyTrack.AngleTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){if(!c)return d._GetLastKeyframe().GetValueWithResultMode();let e=d.GetInterpolationMode();if("default"===e&&(e="continuous"),"combo"===d.GetPropertyType()&&(e="discrete"),"discrete"===e)return b.GetValueWithResultMode();if("continuous"===e||"step"===e){if("step"===e){const b=1/d.GetTimeline().GetStep();a=Math.floor(a*b)/b}const f=b.GetTime(),g=c.GetTime(),h=b.GetValueWithResultMode(),i=c.GetValueWithResultMode();if(h===i)return h;let j=C3.normalize(a,f,g);const k=Ease.GetEase(b.GetEase());return C3.angleLerp(h,i,k(j,0,1,1))}}}; + +// c3/timelines/propertyTypeAdapters/booleanTypeAdapter.js +"use strict";C3.PropertyTrack.BooleanTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,!!e!=!!c}static Interpolate(a,b,c,d){return c?b.GetValueWithResultMode()?1:0:d._GetLastKeyframe().GetValueWithResultMode()?1:0}}; + +// c3/timelines/propertyTypeAdapters/colorTypeAdapter.js +"use strict";{const a=[0,0,0],b=[0,0,0];C3.PropertyTrack.ColorTypeAdapter=class{constructor(){}static WillChange(c,d,e,f){var g=Math.floor;let h;return"behavior"===f?h=d.GetPropertyValueByIndex(c):"effect"===f?h=d[c]:"instance-variable"===f?h=d.GetInstanceVariableValue(c):"plugin"===f?h=d.GetPropertyValueByIndex(c):void 0,Array.isArray(e)?(a[0]=e[0],a[1]=e[1],a[2]=e[2]):(TEMP_COLOR_ARRAY_3.parseCommaSeparatedRgb(e),a[0]=g(255*TEMP_COLOR_ARRAY_3.getR()),a[1]=g(255*TEMP_COLOR_ARRAY_3.getG()),a[2]=g(255*TEMP_COLOR_ARRAY_3.getB())),Array.isArray(h)?(b[0]=h[0],b[1]=h[1],b[2]=h[2]):(TEMP_COLOR_ARRAY_3.parseCommaSeparatedRgb(h),b[0]=g(255*TEMP_COLOR_ARRAY_3.getR()),b[1]=g(255*TEMP_COLOR_ARRAY_3.getG()),b[2]=g(255*TEMP_COLOR_ARRAY_3.getB())),a[0]!==b[0]||a[1]!==b[1]||a[2]!==b[2]}static Interpolate(b,c,f,d){if(!f){const b=d._GetLastKeyframe().GetValueWithResultMode();return a[0]=b[0],a[1]=b[1],a[2]=b[2],a}let g=d.GetInterpolationMode();if("default"===g&&(g="continuous"),"discrete"===g){const b=c.GetValueWithResultMode();return a[0]=b[0],a[1]=b[1],a[2]=b[2],a}if("continuous"===g||"step"===g){if("step"===g){const a=1/d.GetTimeline().GetStep();b=Math.floor(b*a)/a}const h=c.GetTime(),i=f.GetTime(),j=c.GetValueWithResultMode(),k=f.GetValueWithResultMode(),l=C3.normalize(b,h,i),m=c.GetEase(),e=j[0],n=j[1],o=j[2],p=k[0],q=k[1],r=k[2],s=Ease.GetEase(m),t=i-h,u=t*l;return a[0]=e===p?e:s(u,e,p-e,t),a[1]=n===q?n:s(u,n,q-n,t),a[2]=o===r?o:s(u,o,r-o,t),a}}}} + +// c3/timelines/propertyTypeAdapters/textTypeAdapter.js +"use strict";C3.PropertyTrack.TextTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){return c?b.GetValueWithResultMode():d._GetLastKeyframe().GetValueWithResultMode()}}; + +// c3/timelines/tweens/tween.js +"use strict";{C3.Tween=class a extends C3.Timeline{constructor(a,b){super(a,b),this._tags=[""],this._stringTags="",this._tagsChanged=!1,this._id="",this._destroyInstanceOnComplete=!1,this._initialValueMode="start-value",this.SetStep(0),this.SetInterpolationMode("default"),this.SetStartedTriggers(null),this.SetFinishedTriggers(null)}Release(){C3.clearArray(this._tags),this._tags=null,super.Release()}GetInstance(){const a=this.GetTracks();if(a&&a.length){const b=a[0];if(b){const a=b.GetInstance();return b.IsInstanceValid()?a:null}}}SetStartValue(a,b){for(const c of this._tracks)for(const d of c._propertyTracks){if(d.GetPropertyName()!==b)continue;const c=d._GetFirstKeyframe();c.SetValue(a),c.SetAbsoluteValue(a)}}SetEndValue(a,b){for(const c of this._tracks)for(const d of c._propertyTracks){if(d.GetPropertyName()!==b)continue;const c=d._GetLastKeyframe();c.SetValue(a),c.SetAbsoluteValue(a),(this.IsPlaying()||!this.IsComplete())&&d.AddPropertyKeyframeAtCurrentTime()}}HasTags(b){if(!this._tags)return!1;if(!this._tags.length)return!1;const c=a._GetTagArray(b);return!!c&&!!c.length&&c.every(a._HasTag,this)}SetId(a){this._id=a}GetId(){return this._id}SetTags(b){this._tags=a._GetTagArray(b),this._tagsChanged=!0}GetTags(){return this._tags}GetStringTags(){return this._tagsChanged&&(this._stringTags=this._tags.join(" ")),this._tagsChanged=!1,this._stringTags}SetInitialValueMode(a){this._initialValueMode=a}GetInitialValueMode(){return this._initialValueMode}SetDestroyInstanceOnComplete(a){this._destroyInstanceOnComplete=a}GetDestroyInstanceOnComplete(){return this._destroyInstanceOnComplete}OnStarted(){if(super.OnStarted(),!this.IsComplete())for(const a of this._tracks)a.CompareSaveStateWithCurrent()}SetTime(a){this._DeleteIntermediateKeyframes(),super.SetTime(a)}SetInitialState(){if(!this.InitialStateSet()&&this.GetInitialValueMode()==="current-state")for(const a of this._tracks)a.CompareInitialStateWithCurrent();super.SetInitialState()}Stop(a=!1){if(super.Stop(a),!this.IsComplete())for(const a of this._tracks)a.SaveState()}Reset(){this._DeleteIntermediateKeyframes(),super.Reset()}_DeleteIntermediateKeyframes(){for(const a of this._tracks){const b=(a)=>{const b=a.GetTime(),c=this.GetTotalTime();return 0!==b&&b!==c};a.DeleteKeyframes(b),a.DeletePropertyKeyframes(b)}}Tick(){const a=this.GetInstance(),b=this.GetRuntime().GetDt(a);super.Tick(b,1)}static IsPlaying(a){return a.IsPlaying()}static _HasTag(a){const b=this.GetTags();return""===a?1===b.length&&""===b[0]:b.includes(a)}static _GetTagArray(a){return C3.IsArray(a)?a.slice(0):C3.IsString(a)?a.split(" "):void 0}static Build(a){const b=C3.Timeline.GetDefaultInitData(),c=a.runtime.GetTimelineManager(),d=C3.New(C3.Tween,b,c);C3.IsArray(a.propertyTracksConfig)||(a.propertyTracksConfig=[a.propertyTracksConfig]),d.SetId(a.id),d.SetTags(a.tags),d.SetInitialValueMode(a.initialValueMode),d.SetTotalTime(a.time),d.SetResultMode(a.propertyTracksConfig[0].resultMode),d.SetDestroyInstanceOnComplete(a.releaseOnComplete);const e=d.AddTrack();e.SetInstanceUID(a.instance.GetUID()),e.SetInterpolationMode("default"),e.SetResultMode(a.propertyTracksConfig[0].resultMode),e.SetEnable(!0);const f=e.AddKeyframe();f.SetTime(0),f.SetEase("noease"),f.SetEnable(!0);const g=e.AddKeyframe();g.SetTime(a.time),g.SetEase("noease"),g.SetEnable(!0);for(const b of a.propertyTracksConfig){const c=e.AddPropertyTrack(b.sourceId,b.sourceArgs);c.SetPropertyName(b.property),c.SetPropertyType(b.type),c.SetMin(NaN),c.SetMax(NaN),c.SetInterpolationMode("default"),c.SetResultMode(b.resultMode),c.SetEnable(!0);const d=c.AddPropertyKeyframe();d.SetValue(b.startValue),d.SetAbsoluteValue(b.startValue),d.SetType(b.valueType),d.SetTime(0),d.SetEase(b.ease),d.SetEnable(!0);const f=c.AddPropertyKeyframe();f.SetValue(b.endValue),f.SetAbsoluteValue(b.endValue),f.SetType(b.valueType),f.SetTime(a.time),f.SetEase(b.ease),f.SetEnable(!0)}return d}}} + +// c3/events/stacks/solStack.js +"use strict";C3.SolStack=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=a,this._stack=[],this._stack.push(C3.New(C3.Sol,this)),this._index=0}Release(){for(const a of this._stack)a.Release();C3.clearArray(this._stack),this._objectClass=null}GetObjectClass(){return this._objectClass}GetCurrentSol(){return this._stack[this._index]}Clear(){this.GetCurrentSol().Clear()}PushClean(){const a=this._stack,b=++this._index;b===a.length?a.push(C3.New(C3.Sol,this)):a[b].Reset()}PushCopy(){const a=this._stack,b=++this._index;b===a.length&&a.push(C3.New(C3.Sol,this)),a[b].Copy(a[b-1])}Pop(){--this._index}RemoveInstances(a){const b=this._stack;for(let c=0,d=b.length;cc=a);return this._queuedDebugTriggers.push([a,b,c]),d}*_RunQueuedDebugTriggersGen(){if(this._runtime.HitBreakpoint())throw new Error("should not be in breakpoint");for(const a=this._runtime.GetLayoutManager();this._queuedDebugTriggers.length;){const[b,c,d]=this._queuedDebugTriggers.shift(),e=yield*this._DebugTrigger(a,b,c);d(e)}}async RunQueuedDebugTriggersAsync(){for(const a of this._RunQueuedDebugTriggersGen())await this._runtime.DebugBreak(a)}_FastTrigger(a,b,c,d){let e=!1;const f=a.GetMainRunningLayout(),g=f.GetEventSheet();if(g){this._executingTriggerDepth++,this._runtime.PushCurrentLayout(f);const a=g.deepIncludes();for(let f=0,g=a.length;fa.ShouldRelease());for(const b of a)b.Release()}ClearAllScheduledWaits(){for(const a of this._scheduledWaits)a.Release();C3.clearArray(this._scheduledWaits)}RemoveInstancesFromScheduledWaits(a){for(const b of this._scheduledWaits)b.RemoveInstances(a)}_SaveToJson(){return{"groups":this._SaveGroupsToJson(),"cnds":this._SaveCndsToJson(),"acts":this._SaveActsToJson(),"vars":this._SaveVarsToJson(),"waits":this._SaveScheduledWaitsToJson()}}_LoadFromJson(a){this._LoadGroupsFromJson(a["groups"]),this._LoadCndsFromJson(a["cnds"]),this._LoadActsFromJson(a["acts"]),this._LoadVarsFromJson(a["vars"]),this._LoadScheduledWaitsFromJson(a["waits"])}_SaveGroupsToJson(){const a={};for(const b of this.GetAllGroups())a[b.GetSID().toString()]=b.IsGroupActive();return a}_LoadGroupsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetEventGroupBySID(a);d&&d.SetGroupActive(c)}}_SaveCndsToJson(){const a={};for(const[b,c]of this._cndsBySid){const d=c._SaveToJson();d&&(a[b.toString()]=d)}return a}_LoadCndsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetConditionBySID(a);d&&d._LoadFromJson(c)}}_SaveActsToJson(){const a={};for(const[b,c]of this._actsBySid){const d=c._SaveToJson();d&&(a[b.toString()]=d)}return a}_LoadActsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetActionBySID(a);d&&d._LoadFromJson(c)}}_SaveVarsToJson(){const a={};for(const[b,c]of this._eventVarsBySid)!c.IsConstant()&&(c.IsGlobal()||c.IsStatic())&&(a[b.toString()]=c.GetValue());return a}_LoadVarsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetEventVariableBySID(a);d&&d.SetValue(c)}}_SaveScheduledWaitsToJson(){return this._scheduledWaits.map((a)=>a._SaveToJson())}_LoadScheduledWaitsFromJson(a){this.ClearAllScheduledWaits();for(const b of a){const a=C3.ScheduledWait._CreateFromJson(this,b);a&&this._scheduledWaits.push(a)}}_GetPerfRecords(){return[...this._runtime.GetLayoutManager().runningLayouts()].map((a)=>a.GetEventSheet()).filter((a)=>a).map((a)=>a._GetPerfRecord())}}} + +// c3/events/eventSheet.js +"use strict";C3.EventSheet=class extends C3.DefendedBase{constructor(a,b){super(),this._eventSheetManager=a,this._runtime=a.GetRuntime(),this._name=b[0],this._events=[],this._triggers=new Map,this._fastTriggers=new Map,this._eventsByDisplayNumber=new Map,this._hasRun=!1,this._shallowIncludes=[],this._deepIncludes=[],this._alreadyIncludedSheets=new Set;for(const c of b[1])this._CreateEvent(c,null,this._events);this._perfRecord=this._runtime.IsDebug()?{type:"sheet",name:this._name,totalTimeCounter:0,children:[]}:null}Release(){this._eventSheetManager=null,this._runtime=null}_CreateEvent(a,b,c){switch(a[0]){case 0:this._CreateEventBlock(a,b,c);break;case 1:this._CreateEventVariable(a,b,c);break;case 2:this._CreateInclude(a,b,c);break;default:throw new Error("invalid event type");}}_CreateEventBlock(a,b,c){const d=C3.EventBlock.Create(this,b,a);if(d.IsOrBlock()){c.push(d);const a=d.GetConditions();for(let b=0,c=a.length;ba.DebugCanRunFast()),a.canRunAllActionsFast=this._actions.every((b)=>b.DebugCanRunFast()),a.canRunAllSubEventsFast=this._subEvents.every((a)=>a.DebugCanRunFast()),a.canRunSelfFast=a.canRunAllConditionsFast&&a.canRunAllActionsFast&&a.canRunAllSubEventsFast}_UpdateCanRunFastRecursive(){let a=this;do a._UpdateCanRunFast(),a=a.GetParent();while(a)}_IdentifyTopLevelGroup(){if(!this.IsGroup())return;let a=this.GetParent();for(this._isTopLevelGroup=!0;a;){if(!a.IsGroup()){this._isTopLevelGroup=!1;break}a=a.GetParent()}}_IdentifySolModifiersIncludingParents(){const a=this._runtime.GetAllObjectClasses();if(this._solModifiers===a)this._solModifiersIncludingParents=a;else{this._solModifiersIncludingParents=C3.cloneArray(this._solModifiers);for(let a=this.GetParent();a;){for(const b of a._solModifiers)this._AddParentSolModifier(b);a=a.GetParent()}const a=this.GetEventSheetManager();this._solModifiers=a._DeduplicateSolModifierList(this._solModifiers),this._solModifiersIncludingParents=a._DeduplicateSolModifierList(this._solModifiersIncludingParents)}}_IdentifyTriggerParents(){if(this.HasAnyTriggeredCondition()){this._triggerParents=[];for(let a=this.GetParent();a;)this._triggerParents.push(a),a=a.GetParent();this._triggerParents.reverse()}}SetSolWriterAfterCnds(){this._isSolWriterAfterCnds=!0,this._parent&&this._parent.SetSolWriterAfterCnds()}IsSolWriterAfterCnds(){return this._isSolWriterAfterCnds}GetSolModifiers(){return this._solModifiers}GetSolModifiersIncludingParents(){return this._solModifiersIncludingParents}HasSolModifier(a){return this._solModifiers.includes(a)}GetTriggerParents(){return this._triggerParents}GetEventSheet(){return this._eventSheet}GetEventSheetManager(){return this._eventSheet.GetEventSheetManager()}GetRuntime(){return this._runtime}GetParent(){return this._parent}GetDisplayNumber(){return this._displayNumber}IsDebugBreakable(){return this._debugData&&this._debugData.isBreakable}IsDebugBreakpoint(){return this.IsDebugBreakable()&&this._debugData.isBreakpoint}_SetDebugBreakpoint(a){this._debugData.isBreakpoint=!!a,this._UpdateCanRunFastRecursive()}IsGroup(){return this._isGroup}IsTopLevelGroup(){return this._isTopLevelGroup}IsElseBlock(){return this._isElseBlock}HasElseBlock(){return this._hasElseBlock}GetGroupName(){return this._groupName}IsGroupActive(){return this._isGroupActive}ResetInitialActivation(){this.SetGroupActive(this._isInitiallyActive)}SetGroupActive(b){if(b=!!b,!this._isGroup)throw new Error("not a group");if(this._isGroupActive!==b){this._isGroupActive=b;for(const a of this._containedIncludes)a.UpdateActive();if(this._containedIncludes.length){const a=this._runtime.GetCurrentLayout(),b=a.GetEventSheet();b&&b._UpdateDeepIncludes()}}}GetSID(){return this._sid}IsOrBlock(){return this._isOrBlock}IsTrigger(){return this._conditions.length&&this._conditions[0].IsTrigger()}HasAnyTriggeredCondition(){return this._conditions.some((a)=>a.IsTrigger())}GetConditions(){return this._conditions}GetConditionCount(){return this._conditions.length}GetConditionAt(a){if(a=Math.floor(a),0>a||a>=this._conditions.length)throw new RangeError("invalid condition index");return this._conditions[a]}IsFirstConditionOfType(a){let b=a.GetIndex();if(0===b)return!0;for(;0<=b;--b)if(this._conditions[b].GetObjectClass()===a.GetObjectClass())return!1;return!0}GetActions(){return this._actions}GetActionCount(){return this._actions.length}GetActionAt(a){if(a=Math.floor(a),0>a||a>=this._actions.length)throw new RangeError("invalid action index");return this._actions[a]}_HasActionIndex(a){return a=Math.floor(a),0<=a&&a=a.length?this._initialValue:a[b]}GetTypedValue(){let a=this.GetValue();return this.IsBoolean()&&(a=!!a),a}ResetToInitialValue(){this._value=this._initialValue}}} + +// c3/events/eventInclude.js +"use strict";{const a=[];C3.EventInclude=class extends C3.DefendedBase{constructor(a,b,c){super();const d=a.GetEventSheetManager();this._eventSheet=a,this._eventSheetManager=d,this._runtime=a.GetRuntime(),this._parent=b,this._includeSheet=null,this._includeSheetName=c[1],this._isActive=!0}static Create(a,b,c){return C3.New(C3.EventInclude,a,b,c)}Release(){}_PostInit(){this._includeSheet=this._eventSheetManager.GetEventSheetByName(this._includeSheetName);this._eventSheet._AddShallowInclude(this);for(let a=this.GetParent();a;)a instanceof C3.EventBlock&&a.IsGroup()&&a._AddContainedInclude(this),a=a.GetParent();this.UpdateActive(),this._runtime.IsDebug()&&this._eventSheet._GetPerfRecord().children.push(this._includeSheet._GetPerfRecord())}GetParent(){return this._parent}GetSolModifiers(){return a}GetIncludeSheet(){return this._includeSheet}Run(){const a=!!this.GetParent(),b=this._runtime.GetAllObjectClasses();a&&this._eventSheetManager.PushCleanSol(b),this._includeSheet.Run(),a&&this._eventSheetManager.PopSol(b)}*DebugRun(){const a=!!this.GetParent(),b=this._runtime.GetAllObjectClasses();a&&this._eventSheetManager.PushCleanSol(b),yield*this._includeSheet.DebugRun(),a&&this._eventSheetManager.PopSol(b)}DebugCanRunFast(){return!1}IsActive(){return this._isActive}UpdateActive(){for(let a=this.GetParent();a;){if(a instanceof C3.EventBlock&&a.IsGroup()&&!a.IsGroupActive())return void(this._isActive=!1);a=a.GetParent()}this._isActive=!0}}} + +// c3/events/expNode.js +"use strict";{function a(a,b){return a>=b?a%b:0>a?(a<=-b&&(a%=b),0>a&&(a+=b),a):a}C3.ExpNode=class extends C3.DefendedBase{constructor(a){super(),this._owner=a,this._runtime=a.GetRuntime()}_PostInit(){}static CreateNode(a,g){const h=g[0];return C3.New([e,c,d,f,b][h],a,g)}};class b extends C3.ExpNode{constructor(a,b){super(a),this._systemPlugin=this._runtime.GetSystemPlugin(),this._func=this._runtime.GetObjectReference(b[1]);(this._func===C3.Plugins.System.Exps.random||this._func===C3.Plugins.System.Exps.choose)&&this._owner.SetVariesPerInstance()}GetBoundMethod(){return this._systemPlugin._GetBoundACEMethod(this._func,this._systemPlugin)}}class c extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._func=this._runtime.GetObjectReference(b[2]);this._returnsString=!!b[3],this._eventStack=this._runtime.GetEventSheetManager().GetEventStack(),this._owner._MaybeVaryFor(this._objectClass)}GetBoundMethod(){return this._objectClass.GetPlugin()._GetBoundACEMethod(this._func,this._objectClass.GetSingleGlobalInstance().GetSdkInstance())}ExpObject(...b){const c=this._objectClass,d=c.GetCurrentSol().GetExpressionInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(this._owner.GetSolIndex(),e);return this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(c),this._func.apply(d[f].GetSdkInstance(),b)}ExpObject_InstExpr(b,...c){const d=this._objectClass,e=d.GetInstances(),f=e.length;if(0===f)return this._returnsString?"":0;const g=a(b,f);return this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(d),this._func.apply(e[g].GetSdkInstance(),c)}}class d extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._varIndex=b[3],this._returnsString=!!b[2],this._owner._MaybeVaryFor(this._objectClass)}ExpInstVar(){const b=this._objectClass.GetCurrentSol().GetExpressionInstances(),c=b.length;if(0===c)return this._returnsString?"":0;const d=a(this._owner.GetSolIndex(),c);return b[d]._GetInstanceVariableValueUnchecked(this._varIndex)}ExpInstVar_Family(){const b=this._objectClass,c=b.GetCurrentSol().GetExpressionInstances(),d=c.length;if(0===d)return this._returnsString?"":0;const e=a(this._owner.GetSolIndex(),d),f=c[e],g=f.GetObjectClass().GetFamilyInstanceVariableOffset(b.GetFamilyIndex());return f._GetInstanceVariableValueUnchecked(this._varIndex+g)}ExpInstVar_InstExpr(b){const c=this._objectClass,d=c.GetInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(b,e),g=d[f];let h=0;return c.IsFamily()&&(h=g.GetObjectClass().GetFamilyInstanceVariableOffset(c.GetFamilyIndex())),g._GetInstanceVariableValueUnchecked(this._varIndex+h)}}class e extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._behaviorType=this._objectClass.GetBehaviorTypeByName(b[2]),this._behaviorIndex=this._objectClass.GetBehaviorIndexByName(b[2]),this._func=this._runtime.GetObjectReference(b[3]);this._returnsString=!!b[4],this._eventStack=this._runtime.GetEventSheetManager().GetEventStack(),this._owner._MaybeVaryFor(this._objectClass)}ExpBehavior(...b){const c=this._objectClass,d=c.GetCurrentSol().GetExpressionInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(this._owner.GetSolIndex(),e);this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(c);const g=d[f];let h=0;return c.IsFamily()&&(h=g.GetObjectClass().GetFamilyBehaviorOffset(c.GetFamilyIndex())),this._func.apply(g.GetBehaviorInstances()[this._behaviorIndex+h].GetSdkInstance(),b)}ExpBehavior_InstExpr(b,...c){const d=this._objectClass,e=d.GetInstances(),f=e.length;if(0===f)return this._returnsString?"":0;const g=a(b,f);this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(d);const h=e[g];let i=0;return d.IsFamily()&&(i=h.GetObjectClass().GetFamilyBehaviorOffset(d.GetFamilyIndex())),this._func.apply(h.GetBehaviorInstances()[this._behaviorIndex+i].GetSdkInstance(),c)}}class f extends C3.ExpNode{constructor(a,b){super(a),this._eventVar=null,this._eventVarName=b[1]}_PostInit(){this._eventVar=this._runtime.GetEventSheetManager().GetEventVariableByName(this._eventVarName,this._owner.GetEventBlock().GetParent());this._eventVarName=null}GetVar(){return this._eventVar}}} + +// c3/events/parameter.js +"use strict";{function a(a){const b=self.C3_ExpressionFuncs[a];if(!b)throw new Error("invalid expression number");return b}C3.Parameter=class extends C3.DefendedBase{constructor(a,b,c){super(),this._owner=a,this._index=c,this._type=b,this.Get=null,this._variesPerInstance=!1,this._isConstant=!1}static Create(a,m,n){const o=m[0];return C3.New([b,c,i,e,f,d,g,b,e,e,j,k,i,l,c,h][o],a,o,n,m)}_PostInit(){}SetVariesPerInstance(){this._variesPerInstance=!0}_MaybeVaryFor(a){!this._variesPerInstance&&a&&(a.GetPlugin().IsSingleGlobal()||(this._variesPerInstance=!0))}VariesPerInstance(){return this._variesPerInstance}GetIndex(){return this._index}GetRuntime(){return this._owner.GetRuntime()}GetEventBlock(){return this._owner.GetEventBlock()}IsConstant(){return this._isConstant}};class b extends C3.Parameter{constructor(b,c,d,e){super(b,c,d),this._solIndex=0;const f=e[1];this._expressionNumber=f[0],this._numberedNodes=[],this._expressionFunc=null;for(let a=1,g=f.length;aa||a>=this._numberedNodes.length)throw new RangeError("invalid numbered node");return this._numberedNodes[a]}_PostInit(){for(const a of this._numberedNodes)a._PostInit();const b=a(this._expressionNumber);this._expressionFunc=this._numberedNodes.length?b(this):b}GetSolIndex(){return this._solIndex}GetExpression(a){return this._solIndex=a,this._expressionFunc()}}class c extends b{constructor(a,b,c,d){super(a,b,c,d),this.Get=this.GetStringExpression,14===b&&(this.GetEventBlock().SetAllSolModifiers(),this._owner instanceof C3.Action&&this.GetEventBlock().SetSolWriterAfterCnds())}GetStringExpression(a){this._solIndex=a;const b=this._expressionFunc();return"string"==typeof b?b:""}_GetFastTriggerValue(){return a(this._expressionNumber)()}}class d extends b{constructor(a,b,c,d){super(a,b,c,d),this.Get=this.GetLayer,this._isConstant=!1}GetLayer(a){this._solIndex=a;const b=this._expressionFunc(),c=this.GetRuntime().GetCurrentLayout();return c.GetLayer(b)}}class e extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._combo=d[1],this.Get=this.GetCombo,this._isConstant=!0}GetCombo(){return this._combo}}class f extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._objectClass=this.GetRuntime().GetObjectClassByIndex(d[1]);this.Get=this.GetObjectClass;const e=this.GetEventBlock();e._AddSolModifier(this._objectClass),this._owner instanceof C3.Action?e.SetSolWriterAfterCnds():e.GetParent()&&e.GetParent().SetSolWriterAfterCnds(),this._isConstant=!0}GetObjectClass(){return this._objectClass}}class g extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._layout=this.GetRuntime().GetLayoutManager().GetLayoutByName(d[1]),this.Get=this.GetLayout,this._isConstant=!0}GetLayout(){return this._layout}}class h extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._timeline=this.GetRuntime().GetTimelineManager().GetTimelineByName(d[1]),this.Get=this.GetTimeline,this._isConstant=!0}GetTimeline(){return this._timeline}}class i extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._fileInfo=d[1],this.Get=this.GetFile,this._isConstant=!0}GetFile(){return this._fileInfo}}class j extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._instVarIndex=d[1];const e=this._owner.GetObjectClass();e&&e.IsFamily()?(this.Get=this.GetFamilyInstanceVariable,this.SetVariesPerInstance()):(this.Get=this.GetInstanceVariable,this._isConstant=!0)}GetInstanceVariable(){return this._instVarIndex}GetFamilyInstanceVariable(a){a=a||0;const b=this._owner.GetObjectClass(),c=b.GetCurrentSol(),d=c.GetInstances();let e=null;if(d.length)e=d[a%d.length].GetObjectClass();else if(c.HasAnyElseInstances()){const b=c.GetElseInstances();e=b[a%b.length].GetObjectClass()}else if(0[a[0].GetUID(),a[1].GetUID(),a[2]])),a[b]=d}return{"ex":a}}_LoadFromJson(a){const b=this._runtime,c=a["ex"];if(c){const a=this.GetSavedDataMap();a.clear();for(const[d,e]of Object.entries(c)){let c=e;"collmemory"===d&&(c=C3.New(C3.PairMap,e.map((a)=>[b.GetInstanceByUID(a[0]),b.GetInstanceByUID(a[1]),a[2]]).filter((a)=>a[0]&&a[1]))),a.set(d,c)}}else this._savedData&&(this._savedData.clear(),this._savedData=null)}}} + +// c3/events/action.js +"use strict";{function a(a,b){for(let c=0,d=a.length;ca.VariesPerInstance())?(this.Run=this._RunObject_AllParamsVary,this.DebugRun=this._DebugRunObject_AllParamsVary):this._anyParamVariesPerInstance?(this.Run=this._RunObject_SomeParamsVary,this.DebugRun=this._DebugRunObject_SomeParamsVary):this._parameters.every((a)=>a.IsConstant())?(a(this._parameters,this._results),this.Run=this._RunObject_ParamsConst,this.DebugRun=this._DebugRunObject_ParamsConst):(this.Run=this._RunObject_ParamsDontVary,this.DebugRun=this._DebugRunObject_ParamsDontVary):(this.Run=this._RunObject_ParamsConst,this.DebugRun=this._DebugRunObject_ParamsConst)}_SetSystemRunMethod(){const a=this._systemPlugin,b=this._systemPlugin;this._SetRunMethodForBoundFunc(a,b,this._RunSystem)}_SetSingleGlobalRunMethod(){const a=this._objectClass.GetPlugin(),b=this._objectClass.GetSingleGlobalInstance().GetSdkInstance();this._SetRunMethodForBoundFunc(a,b,this._RunSingleGlobal)}_SetRunMethodForBoundFunc(a,b,c){const d=this._func,e=this._parameters;if(0===e.length)this.Run=a._GetBoundACEMethod(d,b);else if(1===e.length){const c=e[0];if(c.IsConstant())this.Run=a._GetBoundACEMethod_1param(d,b,c.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0))}}}else if(2===e.length){const c=e[0],f=e[1];if(c.IsConstant()&&f.IsConstant())this.Run=a._GetBoundACEMethod_2params(d,b,c.Get(0),f.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0),f.Get(0))}}}else if(3===e.length){const c=e[0],f=e[1],g=e[2];if(c.IsConstant()&&f.IsConstant()&&g.IsConstant())this.Run=a._GetBoundACEMethod_3params(d,b,c.Get(0),f.Get(0),g.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0),f.Get(0),g.Get(0))}}}else this.Run=c}GetSID(){return this._sid}GetObjectClass(){return this._objectClass}GetEventBlock(){return this._eventBlock}GetRuntime(){return this._runtime}GetIndex(){return this._index}IsBreakpoint(){return this._debugData.isBreakpoint}_SetBreakpoint(a){this._debugData.isBreakpoint=!!a,this._eventBlock._UpdateCanRunFastRecursive()}_DebugReturnsGenerator(){return this._debugData.canDebug}DebugCanRunFast(){return!this.IsBreakpoint()&&!this._runtime.DebugBreakNext()&&!this._DebugReturnsGenerator()}GetSavedDataMap(){return this._savedData||(this._savedData=new Map),this._savedData}GetUnsavedDataMap(){return this._unsavedData||(this._unsavedData=new Map),this._unsavedData}_RunSystem(){const b=this._results;return a(this._parameters,b),this._func.apply(this._systemPlugin,b)}*_DebugRunSystem(){if((this.IsBreakpoint()||this._runtime.DebugBreakNext())&&(yield this),this._DebugReturnsGenerator()){const b=this._results;a(this._parameters,b);const c=yield*this._func.apply(this._systemPlugin,b);return c}return this.Run()}_RunSingleGlobal(){const b=this._results;return a(this._parameters,b),this._func.apply(this._objectClass.GetSingleGlobalInstance().GetSdkInstance(),b)}*_DebugRunSingleGlobal(){if((this.IsBreakpoint()||this._runtime.DebugBreakNext())&&(yield this),this._DebugReturnsGenerator()){const b=this._results;a(this._parameters,b);const c=yield*this._func.apply(this._objectClass.GetSingleGlobalInstance().GetSdkInstance(),b);return c}return this.Run()}_RunObject_ParamsConst(){const a=this._results,b=this._objectClass.GetCurrentSol().GetInstances();for(let c=0,d=b.length;cc.getRight()||0>c.getBottom()||c.getLeft()>b.GetWidth()||c.getTop()>b.GetHeight()}function e(a,b,c){const d=this.GetCurrentSol(),e=d.GetInstances();if(!e.length)return!1;let f=e[0],g=f.GetWorldInfo(),h=f,j=C3.distanceSquared(g.GetX(),g.GetY(),b,c);for(let d=1,i=e.length;dj)&&(j=i,h=f)}return d.PickOne(h),!0}function f(a){const b=this.GetWorldInfo();b.GetX()===a||(b.SetX(a),b.SetBboxChanged())}function g(a){const b=this.GetWorldInfo();b.GetY()===a||(b.SetY(a),b.SetBboxChanged())}function h(a,b){const c=this.GetWorldInfo();c.EqualsXY(a,b)||(c.SetXY(a,b),c.SetBboxChanged())}function i(a,b){if(a){const c=a.GetPairedInstance(this._inst);if(c){const[a,d]=c.GetImagePoint(b),e=this.GetWorldInfo();e.GetX()===a&&e.GetY()===d||(e.SetXY(a,d),e.SetBboxChanged())}}}function j(a){if(0!==a){const b=this.GetWorldInfo();b.OffsetXY(b.GetCosAngle()*a,b.GetSinAngle()*a),b.SetBboxChanged()}}function k(b,a){if(0!==a){const c=this.GetWorldInfo();b=C3.toRadians(b),c.OffsetXY(Math.cos(b)*a,Math.sin(b)*a),c.SetBboxChanged()}}function l(){return this.GetWorldInfo().GetX()}function m(){return this.GetWorldInfo().GetY()}function n(){return this._runtime.GetDt(this._inst)}function o(a,b){return C3.compare(this.GetWorldInfo().GetWidth(),a,b)}function p(a,b){return C3.compare(this.GetWorldInfo().GetHeight(),a,b)}function q(a){const b=this.GetWorldInfo();b.GetWidth()===a||(b.SetWidth(a),b.SetBboxChanged())}function r(a){const b=this.GetWorldInfo();b.GetHeight()===a||(b.SetHeight(a),b.SetBboxChanged())}function s(a,b){const c=this.GetWorldInfo();c.GetWidth()===a&&c.GetHeight()===b||(c.SetSize(a,b),c.SetBboxChanged())}function t(){return this.GetWorldInfo().GetWidth()}function u(){return this.GetWorldInfo().GetHeight()}function v(){return this.GetWorldInfo().GetBoundingBox().getLeft()}function w(){return this.GetWorldInfo().GetBoundingBox().getTop()}function x(){return this.GetWorldInfo().GetBoundingBox().getRight()}function y(){return this.GetWorldInfo().GetBoundingBox().getBottom()}function z(b,c){return C3.angleDiff(this.GetWorldInfo().GetAngle(),C3.toRadians(c))<=C3.toRadians(b)}function A(b){return C3.angleClockwise(this.GetWorldInfo().GetAngle(),C3.toRadians(b))}function B(c,a){const b=C3.toRadians(c),d=C3.toRadians(a),e=this.GetWorldInfo().GetAngle(),f=!C3.angleClockwise(d,b);return f?C3.angleClockwise(e,b)||!C3.angleClockwise(e,d):C3.angleClockwise(e,b)&&!C3.angleClockwise(e,d)}function C(b){const a=this.GetWorldInfo(),c=C3.clampAngle(C3.toRadians(b));isNaN(c)||a.GetAngle()===c||(a.SetAngle(c),a.SetBboxChanged())}function D(b){if(!(isNaN(b)||0===b)){const a=this.GetWorldInfo();a.SetAngle(a.GetAngle()+C3.toRadians(b)),a.SetBboxChanged()}}function E(b){if(!(isNaN(b)||0===b)){const a=this.GetWorldInfo();a.SetAngle(a.GetAngle()-C3.toRadians(b)),a.SetBboxChanged()}}function F(b,c){const d=this.GetWorldInfo(),e=d.GetAngle(),a=C3.angleRotate(e,C3.toRadians(c),C3.toRadians(b));isNaN(a)||e===a||(d.SetAngle(a),d.SetBboxChanged())}function G(b,c,d){const e=this.GetWorldInfo(),f=e.GetAngle(),a=c-e.GetX(),g=d-e.GetY(),h=Math.atan2(g,a),i=C3.angleRotate(f,h,C3.toRadians(b));isNaN(i)||f===i||(e.SetAngle(i),e.SetBboxChanged())}function H(b,c){const d=this.GetWorldInfo(),e=d.GetAngle(),a=b-d.GetX(),f=c-d.GetY(),g=Math.atan2(f,a);isNaN(g)||e===g||(d.SetAngle(g),d.SetBboxChanged())}function I(){return C3.toDegrees(this.GetWorldInfo().GetAngle())}function J(a,b){return C3.compare(C3.round6dp(100*this.GetWorldInfo().GetOpacity()),a,b)}function K(){return this.GetWorldInfo().IsVisible()}function L(a){const b=this.GetWorldInfo();a=2===a?!b.IsVisible():0!=a;b.IsVisible()===a||(b.SetVisible(a),this._runtime.UpdateRender())}function M(a){const b=C3.clamp(a/100,0,1),c=this.GetWorldInfo();c.GetOpacity()===b||(c.SetOpacity(b),this._runtime.UpdateRender())}function N(a){xa.setFromRgbValue(a);const b=this.GetWorldInfo();b.GetUnpremultipliedColor().equalsIgnoringAlpha(xa)||(b.SetUnpremultipliedColor(xa),this._runtime.UpdateRender())}function O(){return C3.round6dp(100*this.GetWorldInfo().GetOpacity())}function P(a){return!!a&&this.GetWorldInfo().GetLayer()===a}function Q(a){const b=this.GetCurrentSol(),c=b.GetInstances();if(!c.length)return!1;let d=c[0],e=d;for(let b=1,d=c.length;bi||h===i&&f.GetZIndex()>g.GetZIndex())&&(e=d):(hb||b>=f.length)){const g=d.GetShaderProgram().GetParameterType(b);if("color"===g){xa.setFromRgbValue(c);const a=f[b];if(xa.equalsIgnoringAlpha(a))return;a.copyRgb(xa)}else{if("percent"===g&&(c/=100),f[b]===c)return;f[b]=c}e.IsEffectIndexActive(a)&&this._runtime.UpdateRender()}}}function ca(a,b,c){return C3.compare(this.GetInstance().GetInstanceVariableValue(a),b,c)}function da(a){return!!this.GetInstance().GetInstanceVariableValue(a)}function ea(a,b){const c=this.GetCurrentSol(),d=c.GetInstances();if(!d.length)return!1;let e=d[0],f=e,g=e.GetInstanceVariableValue(b);for(let c=1,h=d.length;cg)&&(g=h,f=e)}return c.PickOne(f),!0}function fa(a){return this._runtime.GetCurrentCondition().IsInverted()?ha(this,a):ga(this,a)}function ga(a,b){const c=a.GetRuntime().GetInstanceByUID(b);if(!c)return!1;const d=a.GetCurrentSol();if(!d.IsSelectAll()&&!d._GetOwnInstances().includes(c))return!1;if(a.IsFamily()){if(c.GetObjectClass().BelongsToFamily(a))return d.PickOne(c),a.ApplySolToContainer(),!0;}else if(c.GetObjectClass()===a)return d.PickOne(c),a.ApplySolToContainer(),!0;return!1}function ha(a,b){const c=a.GetCurrentSol();if(c.IsSelectAll()){c._SetSelectAll(!1),c.ClearArrays();const d=a.GetInstances();for(let a=0,e=d.length;athis._eventSheetManager.GetRuntime().GetGameTime())return!1;return!0}_Run(a){a._Restore(this._event,this._actIndex);for(const[b,c]of this._sols.entries()){const a=b.GetCurrentSol();c._Restore(a)}this._event._ResumeActionsAndSubEvents(a),this._eventSheetManager.ClearSol(this._solModifiers),this._shouldRelease=!0}async _DebugRun(a){a._Restore(this._event,this._actIndex);for(const[b,c]of this._sols.entries()){const a=b.GetCurrentSol();c._Restore(a)}for(const b of this._event._DebugResumeActionsAndSubEvents(a))await this._eventSheetManager.GetRuntime().DebugBreak(b);this._eventSheetManager.ClearSol(this._solModifiers),this._shouldRelease=!0}ShouldRelease(){return this._shouldRelease}RemoveInstances(a){for(const b of this._sols.values())b.RemoveInstances(a)}_SaveToJson(){const a={},b={"t":this._time,"st":this._signalTag,"s":this._isSignalled,"ev":this._event.GetSID(),"sm":this._solModifiers.map((a)=>a.GetSID()),"sols":a};this._event._HasActionIndex(this._actIndex)&&(b["act"]=this._event.GetActionAt(this._actIndex).GetSID());for(const[b,c]of this._sols)a[b.GetSID().toString()]=c._SaveToJson();return b}static _CreateFromJson(a,b){const c=a.GetRuntime(),d=a.GetEventBlockBySID(b["ev"]);if(!d)return null;let e=0;if(b.hasOwnProperty("act")){const c=a.GetActionBySID(b["act"]);if(!c)return null;e=c.GetIndex()}const f=C3.New(C3.ScheduledWait,a);f._time=b["t"],f._signalTag=b["st"],f._isSignalled=b["s"],f._event=d,f._actIndex=e;for(const d of b["sm"]){const a=c.GetObjectClassBySID(d);a&&f._solModifiers.push(a)}for(const[d,e]of Object.entries(b["sols"])){const b=parseInt(d,10),g=c.GetObjectClassBySID(b);if(!g)continue;const h=C3.New(C3.SolState,null);h._LoadFromJson(a,e),f._sols.set(g,h)}return f}}; + +// c3/events/solState.js +"use strict";C3.SolState=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=null,this._isSelectAll=!0,this._instances=[],a&&(this._objectClass=a.GetObjectClass(),this._isSelectAll=a.IsSelectAll(),C3.shallowAssignArray(this._instances,a._GetOwnInstances()))}Release(){this._objectClass=null,C3.clearArray(this._instances)}_Restore(a){a._SetSelectAll(this._isSelectAll),C3.shallowAssignArray(a._GetOwnInstances(),this._instances)}RemoveInstances(a){C3.arrayRemoveAllInSet(this._instances,a)}_SaveToJson(){return{"sa":this._isSelectAll,"insts":this._instances.map((a)=>a.GetUID())}}_LoadFromJson(a,b){const c=a.GetRuntime();this._isSelectAll=!!b["sa"],C3.clearArray(this._instances);for(const d of b["insts"]){const a=c.GetInstanceByUID(d);a&&this._instances.push(a)}}}; + +// c3/sdk/sdkPluginBase.js +"use strict";{function a(a,b){let c=a.get(b);return c||(c=new Map,a.set(b,c)),c}C3.SDKPluginBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._isSingleGlobal=!!a.isSingleGlobal,this._isWorldType=!!a.isWorld,this._isRotatable=!!a.isRotatable,this._mustPredraw=!!a.mustPredraw,this._hasEffects=!!a.hasEffects,this._singleGlobalObjectClass=null,this._boundACEMethodCache=new Map,this._boundACEMethodCache_1param=new Map,this._boundACEMethodCache_2params=new Map,this._boundACEMethodCache_3params=new Map}Release(){this._runtime=null}GetRuntime(){return this._runtime}OnCreate(){}IsSingleGlobal(){return this._isSingleGlobal}IsWorldType(){return this._isWorldType}IsRotatable(){return this._isRotatable}MustPreDraw(){return this._mustPredraw}HasEffects(){return this._hasEffects}_GetBoundACEMethod(a,b){if(!b)throw new Error("missing 'this' binding");let c=this._boundACEMethodCache.get(a);return c?c:(c=a.bind(b),this._boundACEMethodCache.set(a,c),c)}_GetBoundACEMethod_1param(b,c,d){if(!c)throw new Error("missing 'this' binding");const e=a(this._boundACEMethodCache_1param,b);let f=e.get(d);return f?f:(f=b.bind(c,d),e.set(d,f),f)}_GetBoundACEMethod_2params(b,c,d,e){if(!c)throw new Error("missing 'this' binding");const f=a(this._boundACEMethodCache_2params,b),g=a(f,d);let h=g.get(e);return h?h:(h=b.bind(c,d,e),g.set(e,h),h)}_GetBoundACEMethod_3params(b,c,d,e,f){if(!c)throw new Error("missing 'this' binding");const g=a(this._boundACEMethodCache_3params,b),h=a(g,d),i=a(h,e);let j=i.get(f);return j?j:(j=b.bind(c,d,e,f),i.set(f,j),j)}_SetSingleGlobalObjectClass(a){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");this._singleGlobalObjectClass=a}GetSingleGlobalObjectClass(){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");return this._singleGlobalObjectClass}GetSingleGlobalInstance(){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");return this._singleGlobalObjectClass.GetSingleGlobalInstance()}}} + +// c3/sdk/sdkDOMPluginBase.js +"use strict";C3.SDKDOMPluginBase=class extends C3.SDKPluginBase{constructor(a,b){super(a),this._domComponentId=b,this._nextElementId=0,this._instMap=new Map}Release(){super.Release()}_AddElement(a){const b=this._nextElementId++;return this._instMap.set(b,a),b}_RemoveElement(a){this._instMap.delete(a)}AddElementMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,(a)=>{const c=this._instMap.get(a["elementId"]);b(c,a)})}}; + +// c3/sdk/sdkTypeBase.js +"use strict";C3.SDKTypeBase=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=a,this._runtime=a.GetRuntime(),this._plugin=a.GetPlugin()}Release(){this._objectClass=null,this._runtime=null,this._plugin=null}GetObjectClass(){return this._objectClass}GetRuntime(){return this._runtime}GetPlugin(){return this._plugin}GetImageInfo(){return this._objectClass.GetImageInfo()}FinishCondition(){}LoadTextures(){}ReleaseTextures(){}OnDynamicTextureLoadComplete(){}LoadTilePolyData(){}}; + +// c3/sdk/sdkInstanceBase.js +"use strict";C3.SDKInstanceBase=class extends C3.DefendedBase{constructor(a,b){super(),this._inst=a,this._domComponentId=b,this._runtime=a.GetRuntime(),this._objectClass=this._inst.GetObjectClass(),this._sdkType=this._objectClass.GetSdkType(),this._tickFunc=null,this._tick2Func=null,this._isTicking=!1,this._isTicking2=!1,this._disposables=null,this._wasReleased=!1}Release(){this._wasReleased=!0,this._StopTicking(),this._StopTicking2(),this._tickFunc=null,this._tick2Func=null,this._disposables&&(this._disposables.Release(),this._disposables=null),this._inst=null,this._runtime=null,this._objectClass=null,this._sdkType=null}WasReleased(){return this._wasReleased}GetInstance(){return this._inst}GetRuntime(){return this._runtime}GetObjectClass(){return this._objectClass}GetPlugin(){return this._sdkType.GetPlugin()}GetSdkType(){return this._sdkType}Trigger(a){return this._runtime.Trigger(a,this._inst)}DebugTrigger(a){return this._runtime.DebugTrigger(a,this._inst)}TriggerAsync(a){return this._runtime.TriggerAsync(a,this._inst)}FastTrigger(a,b){return this._runtime.FastTrigger(a,this._inst,b)}DebugFastTrigger(a,b){return this._runtime.DebugFastTrigger(a,this._inst,b)}ScheduleTriggers(a){return this._runtime.ScheduleTriggers(a)}AddDOMMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,b)}AddDOMMessageHandlers(a){for(const[b,c]of a)this.AddDOMMessageHandler(b,c)}PostToDOM(a,b){this._runtime.PostComponentMessageToDOM(this._domComponentId,a,b)}PostToDOMAsync(a,b){return this._runtime.PostComponentMessageToDOMAsync(this._domComponentId,a,b)}_PostToDOMMaybeSync(a,b){this._runtime.IsInWorker()?this.PostToDOM(a,b):window["c3_runtimeInterface"]["_OnMessageFromRuntime"]({"type":"event","component":this._domComponentId,"handler":a,"data":b,"responseId":null})}GetCurrentImageInfo(){return null}GetImagePoint(){const a=this._inst.GetWorldInfo();return[a.GetX(),a.GetY()]}Tick(){}Tick2(){}_StartTicking(){this._isTicking||(!this._tickFunc&&(this._tickFunc=()=>this.Tick()),this._runtime.Dispatcher().addEventListener("tick",this._tickFunc),this._isTicking=!0)}_StopTicking(){this._isTicking&&(this._runtime.Dispatcher().removeEventListener("tick",this._tickFunc),this._isTicking=!1)}IsTicking(){return this._isTicking}_StartTicking2(){this._isTicking2||(!this._tick2Func&&(this._tick2Func=()=>this.Tick2()),this._runtime.Dispatcher().addEventListener("tick2",this._tick2Func),this._isTicking2=!0)}_StopTicking2(){this._isTicking2&&(this._runtime.Dispatcher().removeEventListener("tick2",this._tick2Func),this._isTicking2=!1)}IsTicking2(){return this._isTicking2}GetDebuggerProperties(){return[]}SaveToJson(){return null}LoadFromJson(){}LoadTilemapData(){}TestPointOverlapTile(){}GetPropertyValueByIndex(){}SetPropertyValueByIndex(){}SetPropertyOffsetValueByIndex(){}SetPropertyColorOffsetValueByIndex(){}CallAction(a,...b){a.call(this,...b)}CallExpression(a,...b){return a.call(this,...b)}}; + +// c3/sdk/sdkWorldInstanceBase.js +"use strict";C3.SDKWorldInstanceBase=class extends C3.SDKInstanceBase{constructor(a,b){super(a,b),this._worldInfo=a.GetWorldInfo(),this._webglcontextlost_handler=null,this._webglcontextrestored_handler=null}Release(){if(this._webglcontextlost_handler){const a=this._runtime.Dispatcher();a.removeEventListener("webglcontextlost",this._webglcontextlost_handler),a.removeEventListener("webglcontextrestored",this._webglcontextrestored_handler),this._webglcontextlost_handler=null,this._webglcontextrestored_handler=null}this._worldInfo=null,super.Release()}HandleWebGLContextLoss(){if(!this._webglcontextlost_handler){this._webglcontextlost_handler=()=>this.OnWebGLContextLost(),this._webglcontextrestored_handler=()=>this.OnWebGLContextRestored();const a=this._runtime.Dispatcher();a.addEventListener("webglcontextlost",this._webglcontextlost_handler),a.addEventListener("webglcontextrestored",this._webglcontextrestored_handler)}}OnWebGLContextLost(){}OnWebGLContextRestored(){}GetWorldInfo(){return this._worldInfo}}; + +// c3/sdk/sdkDOMInstanceBase.js +"use strict";{const a=C3.New(C3.Rect);C3.SDKDOMInstanceBase=class extends C3.SDKWorldInstanceBase{constructor(a,b){super(a,b),this._elementId=this.GetPlugin()._AddElement(this),this._isElementShowing=!0,this._autoFontSize=!1,this._lastRect=C3.New(C3.Rect,0,0,-1,-1);const c=this._runtime.GetCanvasManager();this._lastWindowWidth=c.GetLastWidth(),this._lastWindowHeight=c.GetLastHeight(),this._isPendingUpdateState=!1,this._StartTicking()}Release(){this.GetPlugin()._RemoveElement(this._elementId),this.PostToDOMElement("destroy"),this._elementId=-1,super.Release()}PostToDOMElement(a,b){b||(b={}),b["elementId"]=this._elementId,this.PostToDOM(a,b)}PostToDOMElementAsync(a,b){return b||(b={}),b["elementId"]=this._elementId,this.PostToDOMAsync(a,b)}CreateElement(a){a||(a={});const b=this.GetWorldInfo().IsVisible();a["elementId"]=this._elementId,a["isVisible"]=b,Object.assign(a,this.GetElementState()),this._isElementShowing=!!a["isVisible"],this.PostToDOM("create",a),this._UpdatePosition(!0)}SetElementVisible(a){a=!!a;this._isElementShowing===a||(this._isElementShowing=a,this.PostToDOMElement("set-visible",{"isVisible":a}))}Tick(){this._UpdatePosition(!1)}_UpdatePosition(b){var c=Math.round;const d=this.GetWorldInfo(),e=d.GetLayer(),f=d.GetX(),g=d.GetY();let[h,i]=e.LayerToCanvasCss(f,g),[j,k]=e.LayerToCanvasCss(f+d.GetWidth(),g+d.GetHeight());const l=this._runtime.GetCanvasManager(),m=l.GetCssWidth(),n=l.GetCssHeight();if(!d.IsVisible()||!e.IsVisible()||0>=j||0>=k||h>=m||i>=n)return void this.SetElementVisible(!1);1>h&&(h=1),1>i&&(i=1),j>=m&&(j=m-1),k>=n&&(k=n-1),a.set(h,i,j,k);const o=l.GetLastWidth(),p=l.GetLastHeight();if(!b&&a.equals(this._lastRect)&&this._lastWindowWidth===o&&this._lastWindowHeight===p)return void this.SetElementVisible(!0);this._lastRect.copy(a),this._lastWindowWidth=o,this._lastWindowHeight=p,this.SetElementVisible(!0);let q=null;this._autoFontSize&&(q=e.GetDisplayScale()-.2),this.PostToDOMElement("update-position",{"left":c(this._lastRect.getLeft())+l.GetCanvasClientX(),"top":c(this._lastRect.getTop())+l.GetCanvasClientY(),"width":c(this._lastRect.width()),"height":c(this._lastRect.height()),"fontSize":q})}FocusElement(){this.PostToDOMElement("focus",{"focus":!0})}BlurElement(){this.PostToDOMElement("focus",{"focus":!1})}SetElementCSSStyle(a,b){this.PostToDOMElement("set-css-style",{"prop":C3.CSSToCamelCase(a),"val":b})}UpdateElementState(){this._isPendingUpdateState||(this._isPendingUpdateState=!0,Promise.resolve().then(()=>{this._isPendingUpdateState=!1,this.PostToDOMElement("update-state",this.GetElementState())}))}GetElementState(){}GetElementId(){return this._elementId}}} + +// c3/sdk/sdkBehaviorBase.js +"use strict";C3.SDKBehaviorBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._myObjectClasses=C3.New(C3.ArraySet),this._myInstances=C3.New(C3.ArraySet)}Release(){this._myInstances.Release(),this._myObjectClasses.Release(),this._runtime=null}GetRuntime(){return this._runtime}OnCreate(){}_AddObjectClass(a){this._myObjectClasses.Add(a)}GetObjectClasses(){return this._myObjectClasses.GetArray()}_AddInstance(a){this._myInstances.Add(a)}_RemoveInstance(a){this._myInstances.Delete(a)}GetInstances(){return this._myInstances.GetArray()}}; + +// c3/sdk/sdkBehaviorTypeBase.js +"use strict";C3.SDKBehaviorTypeBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.GetRuntime(),this._behaviorType=a,this._objectClass=a.GetObjectClass(),this._behavior=a.GetBehavior(),this._behavior._AddObjectClass(this._objectClass)}Release(){this._runtime=null,this._behaviorType=null,this._objectClass=null,this._behavior=null}GetBehaviorType(){return this._behaviorType}GetObjectClass(){return this._objectClass}GetRuntime(){return this._runtime}GetBehavior(){return this._behavior}}; + +// c3/sdk/sdkBehaviorInstanceBase.js +"use strict";C3.SDKBehaviorInstanceBase=class extends C3.DefendedBase{constructor(a,b){super(),this._behInst=a,this._domComponentId=b,this._inst=a.GetObjectInstance(),this._runtime=a.GetRuntime(),this._behaviorType=a.GetBehaviorType(),this._sdkType=this._behaviorType.GetSdkType(),this._isTicking=!1,this._isTicking2=!1,this._isPostTicking=!1,this._disposables=null}Release(){this._StopTicking(),this._StopTicking2(),this._StopPostTicking(),this._disposables&&(this._disposables.Release(),this._disposables=null),this._behInst=null,this._inst=null,this._runtime=null,this._behaviorType=null,this._sdkType=null}GetBehavior(){return this._behaviorType.GetBehavior()}GetBehaviorInstance(){return this._behInst}GetObjectInstance(){return this._inst}GetObjectClass(){return this._inst.GetObjectClass()}GetWorldInfo(){return this._inst.GetWorldInfo()}GetRuntime(){return this._runtime}GetBehaviorType(){return this._behaviorType}GetSdkType(){return this._sdkType}Trigger(a){return this._runtime.Trigger(a,this._inst)}DebugTrigger(a){return this._runtime.DebugTrigger(a,this._inst)}TriggerAsync(a){return this._runtime.TriggerAsync(a,this._inst)}PostCreate(){}Tick(){}Tick2(){}PostTick(){}_StartTicking(){this._isTicking||(this._runtime._AddBehInstToTick(this),this._isTicking=!0)}_StopTicking(){this._isTicking&&(this._runtime._RemoveBehInstToTick(this),this._isTicking=!1)}IsTicking(){return this._isTicking}_StartTicking2(){this._isTicking2||(this._runtime._AddBehInstToTick2(this),this._isTicking2=!0)}_StopTicking2(){this._isTicking2&&(this._runtime._RemoveBehInstToTick2(this),this._isTicking2=!1)}IsTicking2(){return this._isTicking2}_StartPostTicking(){this._isPostTicking||(this._runtime._AddBehInstToPostTick(this),this._isPostTicking=!0)}_StopPostTicking(){this._isPostTicking&&(this._runtime._RemoveBehInstToPostTick(this),this._isPostTicking=!1)}IsPostTicking(){return this._isPostTicking}GetDebuggerProperties(){return[]}AddDOMMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,b)}OnSpriteFrameChanged(){}SaveToJson(){return null}LoadFromJson(){}GetPropertyValueByIndex(){}SetPropertyValueByIndex(){}SetPropertyOffsetValueByIndex(){}SetPropertyColorOffsetValueByIndex(){}CallAction(a,...b){a.call(this,...b)}CallExpression(a,...b){return a.call(this,...b)}}; + +// c3/objects/pluginManager.js +"use strict";C3.Plugins={},C3.Behaviors={},C3.PluginManager=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a,this._allPlugins=[],this._pluginsByCtor=new Map,this._systemPlugin=null,this._allBehaviors=[],this._behaviorsByCtor=new Map,this._solidBehavior=null,this._jumpthruBehavior=null}CreatePlugin(a){const b=this._runtime.GetObjectReference(a[0]);if(!b)throw new Error("missing plugin");C3.AddCommonACEs(a,b);const c=C3.New(b,{runtime:this._runtime,isSingleGlobal:a[1],isWorld:a[2],isRotatable:a[5],hasEffects:a[8],mustPredraw:a[9]});c.OnCreate(),this._allPlugins.push(c),this._pluginsByCtor.set(b,c)}CreateSystemPlugin(){this._systemPlugin=C3.New(C3.Plugins.System,{runtime:this._runtime,isSingleGlobal:!0}),this._systemPlugin.OnCreate()}CreateBehavior(a){const b=this._runtime.GetObjectReference(a[1]);if(!b)throw new Error("missing behavior");const c=C3.New(b,{runtime:this._runtime});c.OnCreate(),this._allBehaviors.push(c),this._behaviorsByCtor.set(b,c),!this._solidBehavior&&C3.Behaviors.solid&&c instanceof C3.Behaviors.solid?this._solidBehavior=c:!this._jumpthruBehavior&&C3.Behaviors.jumpthru&&c instanceof C3.Behaviors.jumpthru&&(this._jumpthruBehavior=c)}GetPluginByConstructorFunction(a){return this._pluginsByCtor.get(a)||null}HasBehaviorByConstructorFunction(a){return this._behaviorsByCtor.has(a)}GetBehaviorByConstructorFunction(a){return this._behaviorsByCtor.get(a)||null}GetSystemPlugin(){return this._systemPlugin}GetSolidBehavior(){return this._solidBehavior}GetJumpthruBehavior(){return this._jumpthruBehavior}}; + +// c3/objects/imageInfo.js +"use strict";{const a=new Set;C3.ImageInfo=class extends C3.DefendedBase{constructor(){super(),this._url="",this._size=0,this._pixelFormat=0,this._offsetX=0,this._offsetY=0,this._width=0,this._height=0,this._hasMetaData=!1,this._imageAsset=null,this._textureState="",this._rcTex=C3.New(C3.Rect),a.add(this)}Release(){this.ReleaseTexture(),this._imageAsset=null,a.delete(this)}static OnWebGLContextLost(){for(const b of a)b._textureState="",b._rcTex.set(0,0,0,0)}LoadData(a){this._url=a[0],this._size=a[1],this._pixelFormat=a[2],this._offsetX=a[3],this._offsetY=a[4],this._width=a[5],this._height=a[6],this._hasMetaData=!0}LoadAnimationFrameData(a){this._url=a[0],this._size=a[1],this._offsetX=a[2],this._offsetY=a[3],this._width=a[4],this._height=a[5],this._pixelFormat=a[11],this._hasMetaData=!0}LoadDynamicAsset(a,b){if(this._imageAsset)throw new Error("already loaded asset");this._url=b;const c={};return C3.IsAbsoluteURL(b)&&(c.loadPolicy="remote"),this.LoadAsset(a,c),this._imageAsset.Load()}ReplaceWith(a){if(a===this)throw new Error("cannot replace with self");this.ReleaseTexture(),this._url=a._url,this._size=a._size,this._pixelFormat=a._pixelFormat,this._offsetX=a._offsetX,this._offsetY=a._offsetY,this._width=a._width,this._height=a._height,this._hasMetaData=a._hasMetaData,this._imageAsset=a._imageAsset,this._textureState=a._textureState,this._rcTex=a._rcTex}GetURL(){return this._url}GetSize(){return this._size}GetPixelFormat(){return this._pixelFormat}GetOffsetX(){return this._offsetX}GetOffsetY(){return this._offsetY}GetWidth(){return this._width}GetHeight(){return this._height}GetSheetWidth(){return this._imageAsset.GetWidth()}GetSheetHeight(){return this._imageAsset.GetHeight()}LoadAsset(a,b){if(this._imageAsset)throw new Error("already got asset");b=Object.assign({},b,{url:this.GetURL(),size:this.GetSize()}),this._imageAsset=a.LoadImage(b)}async LoadStaticTexture(a,b){if(!this._imageAsset)throw new Error("no asset");if(this._textureState)throw new Error("already loaded texture");this._textureState="loading";const c=await this._imageAsset.LoadStaticTexture(a,b);return c?(this._textureState="loaded",this._hasMetaData||(this._width=c.GetWidth(),this._height=c.GetHeight(),this._hasMetaData=!0),this._rcTex.set(this._offsetX,this._offsetY,this._offsetX+this._width,this._offsetY+this._height),this._rcTex.divide(c.GetWidth(),c.GetHeight()),c):(this._textureState="",null)}ReleaseTexture(){this._textureState&&(this._imageAsset&&this._imageAsset.ReleaseTexture(),this._textureState="",this._rcTex.set(0,0,0,0))}GetTexture(){return this._imageAsset?this._imageAsset.GetTexture():null}GetTexRect(){return this._rcTex}async ExtractImageToCanvas(){const a=await this._imageAsset.LoadToDrawable(),b=C3.CreateCanvas(this._width,this._height),c=b.getContext("2d");return c.drawImage(a,this._offsetX,this._offsetY,this._width,this._height,0,0,this._width,this._height),b}}} + +// c3/objects/animationInfo.js +"use strict";C3.AnimationInfo=class extends C3.DefendedBase{constructor(a){super(),this._name=a[0],this._speed=a[1],this._isLooping=!!a[2],this._repeatCount=a[3],this._repeatTo=a[4],this._isPingPong=!!a[5],this._sid=a[6],this._frames=a[7].map((a)=>C3.New(C3.AnimationFrameInfo,a))}Release(){for(const a of this._frames)a.Release();C3.clearArray(this._frames)}LoadAllAssets(a){for(const b of this._frames)b.GetImageInfo().LoadAsset(a)}LoadAllTextures(a,b){return Promise.all(this._frames.map((c)=>c.GetImageInfo().LoadStaticTexture(a,b)))}ReleaseAllTextures(){for(const a of this._frames)a.GetImageInfo().ReleaseTexture()}GetName(){return this._name}GetSID(){return this._sid}GetFrameCount(){return this._frames.length}GetFrames(){return this._frames}GetFrameAt(a){if(a=Math.floor(a),0>a||a>=this._frames.length)throw new RangeError("invalid frame");return this._frames[a]}GetSpeed(){return this._speed}IsLooping(){return this._isLooping}GetRepeatCount(){return this._repeatCount}GetRepeatTo(){return this._repeatTo}IsPingPong(){return this._isPingPong}}; + +// c3/objects/animationFrameInfo.js +"use strict";C3.AnimationFrameInfo=class extends C3.DefendedBase{constructor(a){super(),this._imageInfo=C3.New(C3.ImageInfo),this._imageInfo.LoadAnimationFrameData(a),this._duration=a[6],this._origin=C3.New(C3.Vector2,a[7],a[8]),this._imagePoints=a[9].map((a)=>C3.New(C3.ImagePoint,this,a)),this._imagePointsByName=new Map;for(const b of this._imagePoints)this._imagePointsByName.set(b.GetName().toLowerCase(),b);this._collisionPoly=null;const b=a[10];6<=b.length&&(this._collisionPoly=C3.New(C3.CollisionPoly,b))}Release(){this._collisionPoly&&(this._collisionPoly.Release(),this._collisionPoly=null),this._imageInfo.Release(),this._imageInfo=null}GetImageInfo(){return this._imageInfo}GetDuration(){return this._duration}GetOriginX(){return this._origin.getX()}GetOriginY(){return this._origin.getY()}GetCollisionPoly(){return this._collisionPoly}GetImagePointByName(a){return this._imagePointsByName.get(a.toLowerCase())||null}GetImagePointByIndex(a){return a=Math.floor(a),0>a||a>=this._imagePoints.length?null:this._imagePoints[a]}GetImagePointCount(){return this._imagePoints.length}}; + +// c3/objects/imagePoint.js +"use strict";C3.ImagePoint=class extends C3.DefendedBase{constructor(a,b){super(),this._afi=a,this._name=b[0],this._pos=C3.New(C3.Vector2,b[1],b[2])}Release(){}GetName(){return this._name}GetX(){return this._pos.getX()}GetY(){return this._pos.getY()}GetVec2(){return this._pos}}; + +// c3/objects/objectClass.js +"use strict";C3.ObjectClass=class extends C3.DefendedBase{constructor(a,b,c){super();const d=a.GetObjectReference(c[1]);if(this._runtime=a,this._plugin=a.GetPluginManager().GetPluginByConstructorFunction(d),this._sdkType=null,this._instSdkCtor=d.Instance,this._index=b,this._sid=c[11],this._name=c[0],this._isGlobal=!!c[9],this._isFamily=!!c[2],this._isOnLoaderLayout=!!c[10],this._instVarSids=c[3].map((a)=>a[0]),this._instVarTypes=c[3].map((a)=>a[1]),this._instVarNames=null,a.IsPreview()&&(this._instVarNames=c[3].map((a)=>a[2])),this._behaviorsCount=c[4],this._effectsCount=c[5],this._isWorldType=this._plugin.IsWorldType(),this._effectList=null,this._collisionGrid=C3.New(C3.SparseGrid,a.GetOriginalViewportWidth(),a.GetOriginalViewportHeight()),this._anyCollisionCellChanged=!0,this._anyInstanceParallaxed=!1,this._familyMembers=null,this._familyMembersSet=null,this._familyIndex=-1,this._families=null,this._familiesSet=null,this._familyInstVarMap=null,this._familyBehaviorMap=null,this._familyEffectMap=null,this._isInContainer=!1,this._container=null,this._behaviorTypes=c[8].map((a)=>C3.BehaviorType.Create(this,a)),this._behaviorTypesIncludingInherited=[],this._behaviorsByName=new Map,this._behaviorNameToIndex=new Map,this._usedBehaviorCtors=new Set,this._solStack=C3.New(C3.SolStack,this),this._defaultInstanceData=null,this._defaultLayerIndex=0,this._isContained=!1,this._container=null,this._imageInfo=null,this._animations=null,this._animationsByName=null,this._animationsBySid=null,this._textureRefCount=0,this._savedData=new Map,this._unsavedData=new Map,this._instances=[],this._iidsStale=!0,this._plugin.HasEffects()&&(this._effectList=C3.New(C3.EffectList,this,c[12])),c[6]&&(this._imageInfo=C3.New(C3.ImageInfo),this._imageInfo.LoadData(c[6])),c[7]){this._animations=c[7].map((a)=>C3.New(C3.AnimationInfo,a)),this._animationsByName=new Map,this._animationsBySid=new Map;for(const a of this._animations)this._animationsByName.set(a.GetName().toLowerCase(),a),this._animationsBySid.set(a.GetSID(),a)}this._isFamily?(this._familyMembers=[],this._familyMembersSet=new Set,this._familyIndex=this._runtime._GetNextFamilyIndex()):(this._families=[],this._familiesSet=new Set,this._familyInstVarMap=[],this._familyBehaviorMap=[],this._familyEffectMap=[]),this._sdkType=C3.New(d.Type,this),c[13]&&c[13].length&&this._sdkType.LoadTilePolyData(c[13]),(!this._runtime.UsesLoaderLayout()||this._isFamily||this._isOnLoaderLayout||!this._isWorldType)&&this.OnCreate(),this._plugin.IsSingleGlobal()&&(this._plugin._SetSingleGlobalObjectClass(this),this._CreateSingleGlobalInstance(c))}static Create(a,b,c){return C3.New(C3.ObjectClass,a,b,c)}Release(){if(this._imageInfo&&(this._imageInfo.Release(),this._imageInfo=null),this._animations){for(const b of this._animations)b.Release();C3.clearArray(this._animations),this._animationsByName.clear(),this._animationsBySid.clear()}this._solStack.Release(),this._solStack=null,this._savedData.clear(),this._unsavedData.clear(),this._container=null,this._runtime=null}_LoadFamily(a){for(let b=1,c=a.length;bthis._textureRefCount)throw new Error("released textures too many times");0===this._textureRefCount&&this._sdkType.ReleaseTextures()}}OnDynamicTextureLoadComplete(){if(this._isFamily)throw new Error("not applicable to family");this._sdkType.OnDynamicTextureLoadComplete()}GetRuntime(){return this._runtime}GetPlugin(){return this._plugin}GetInstanceSdkCtor(){return this._instSdkCtor}GetName(){return this._name}GetIndex(){return this._index}GetSID(){return this._sid}IsFamily(){return this._isFamily}IsGlobal(){return this._isGlobal}IsWorldType(){return this._isWorldType}GetFamilyIndex(){return this._familyIndex}GetBehaviorTypes(){return this._behaviorTypes}GetBehaviorTypesCount(){return this._behaviorsCount}UsesBehaviorByCtor(a){return a&&this._usedBehaviorCtors.has(a)}GetInstanceVariablesCount(){return this._instVarSids.length}GetInstanceVariableSIDs(){return this._instVarSids}GetInstanceVariableIndexBySID(a){return this._instVarSids.indexOf(a)}_GetAllInstanceVariableNames(){return this._instVarNames}GetInstanceVariableType(a){if(a=Math.floor(a),0>a||a>=this._instVarTypes.length)throw new RangeError("invalid instance variable index");return this._instVarTypes[a]}GetEffectTypesCount(){return this._effectsCount}GetBehaviorTypesIncludingInherited(){return this._behaviorTypesIncludingInherited}GetBehaviorTypeByName(a){return this._behaviorsByName.get(a.toLowerCase())||null}GetBehaviorIndexByName(a){const b=this._behaviorNameToIndex.get(a.toLowerCase());return"undefined"==typeof b?-1:b}GetEffectList(){return this._effectList}HasEffects(){return this._plugin.HasEffects()}GetSolStack(){return this._solStack}GetCurrentSol(){return this._solStack.GetCurrentSol()}GetImageInfo(){return this._imageInfo}SetDefaultInstanceData(a){this._defaultInstanceData=a}GetDefaultInstanceData(){return this._defaultInstanceData}_SetDefaultLayerIndex(a){this._defaultLayerIndex=a}GetDefaultLayerIndex(){return this._defaultLayerIndex}GetAnimations(){return this._animations}GetAnimationCount(){return this._animations.length}GetFamilies(){return this._families}BelongsToFamily(a){return this._familiesSet.has(a)}GetFamilyMembers(){return this._familyMembers}FamilyHasMember(a){return this._familyMembersSet.has(a)}GetFamilyBehaviorOffset(a){return this._familyBehaviorMap[a]}GetFamilyInstanceVariableOffset(a){return this._familyInstVarMap[a]}GetAnimationByName(a){if(!this._animations)throw new Error("no animations");return this._animationsByName.get(a.toLowerCase())||null}GetAnimationBySID(a){if(!this._animations)throw new Error("no animations");return this._animationsBySid.get(a)||null}GetFirstAnimationFrame(){if(!this._animations)throw new Error("no animations");return this._animations[0].GetFrameAt(0)}GetDefaultInstanceSize(){if(this._animations){const a=this.GetFirstAnimationFrame().GetImageInfo();return[a.GetWidth(),a.GetHeight()]}return this._imageInfo?[this._imageInfo.GetWidth(),this._imageInfo.GetHeight()]:[100,100]}GetSingleGlobalInstance(){if(!this._plugin.IsSingleGlobal())throw new Error("not a single-global plugin");return this._instances[0]}GetInstances(){return this._instances}GetInstanceCount(){return this._instances.length}_AddInstance(a){this._instances.push(a)}_SetIIDsStale(){this._iidsStale=!0}_UpdateIIDs(){if(this._iidsStale&&!this._isFamily){const a=this._instances;let b=0;for(let c=a.length;ba.SaveToJson())};return this._savedData&&this._savedData.size&&(a["ex"]=C3.ToSuperJSON(this._savedData)),a}_LoadFromJson(a){this._savedData&&(this._savedData.clear(),this._savedData=null);const b=a["ex"];b&&(this._savedData=C3.FromSuperJSON(b));const c=this._instances,d=a["instances"];for(let b=0,e=Math.min(c.length,d.length);ba.IsWorldType())}}; + +// c3/objects/instance.js +"use strict";{let a=0;C3.Instance=class extends C3.DefendedBase{constructor(b){if(super(),this._runtime=b.runtime,this._objectType=b.objectType,this._plugin=this._objectType.GetPlugin(),this._mustPreDraw=this._plugin.MustPreDraw(),this._iid=0,this._uid=b.uid,this._puid=0,this._sequenceId=a++,this._isDestroyed=!1,this._instVarValues=[],this._behaviorInstances=this._objectType.GetBehaviorTypesIncludingInherited().map((a,b)=>C3.New(C3.BehaviorInstance,{runtime:this._runtime,behaviorType:a,instance:this,index:b})),this._worldInfo=null,this._timeScale=-1,this._sdkInst=null,this._savedData=null,this._unsavedData=null,this._hasTilemap=!1,this._isInContainer=this._objectType.IsInContainer(),this._siblings=this._isInContainer?[]:null,this._dispatcher=null,this._plugin.IsWorldType())if(this._worldInfo=C3.New(C3.WorldInfo,this,b.layer),b.worldData)this._worldInfo.Init(b.worldData);else{const[a,b]=this._objectType.GetDefaultInstanceSize();this._worldInfo.SetSize(a,b),this._worldInfo.GetInstanceEffectList().LoadDefaultEffectParameters()}b.instVarData?this._LoadInstanceVariableData(b.instVarData):this._LoadDefaultInstanceVariables()}Release(){for(const a of this._behaviorInstances)a.Release();C3.clearArray(this._behaviorInstances),this._sdkInst.Release(),this._sdkInst=null,this._savedData&&this._savedData.clear(),this._unsavedData&&this._unsavedData.clear(),this._siblings&&C3.clearArray(this._siblings),this._dispatcher&&(this._dispatcher.Release(),this._dispatcher=null),this._runtime=null,this._objectType=null,this._plugin=null,C3.clearArray(this._instVarValues),this._worldInfo&&(this._worldInfo.Release(),this._worldInfo=null)}_LoadInstanceVariableData(a){C3.shallowAssignArray(this._instVarValues,a)}_LoadDefaultInstanceVariables(){const a=[0,0,""];for(let b=0,c=this._objectType.GetInstanceVariablesCount();ba||!isFinite(a))&&(a=0),this._timeScale=a}RestoreTimeScale(){this._timeScale=-1}MustPreDraw(){return this._mustPreDraw}Dispatcher(){return this._dispatcher||(this._dispatcher=C3.New(C3.Event.Dispatcher)),this._dispatcher}Draw(a){this._sdkInst.Draw(a)}OnCreate(a){this._sdkInst.OnCreate(a)}_SetHasTilemap(){this._hasTilemap=!0}HasTilemap(){return this._hasTilemap}GetCurrentImageInfo(){return this._sdkInst.GetCurrentImageInfo()}GetImagePoint(a){return this._sdkInst.GetImagePoint(a)}GetObjectClass(){return this._objectType}BelongsToObjectClass(a){return a.IsFamily()?a.FamilyHasMember(this.GetObjectClass()):this.GetObjectClass()===a}IsInContainer(){return this._isInContainer}_AddSibling(a){this._siblings.push(a)}GetSiblings(){return this._siblings}siblings(){return this._siblings}SetSiblingsSinglePicked(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol().SetSinglePicked(a)}_PushSiblingsToSolInstances(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol()._PushInstance(a)}_SetSiblingsToSolInstancesIndex(a){for(const b of this.siblings())b.GetObjectClass().GetCurrentSol()._GetOwnInstances()[a]=b}_PushSiblingsToSolElseInstances(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol()._PushElseInstance(a)}_SetSiblingsToSolElseInstancesIndex(a){for(const b of this.siblings())b.GetObjectClass().GetCurrentSol()._GetOwnElseInstances()[a]=b}GetPlugin(){return this._plugin}_SetIID(a){this._iid=a}GetIID(){return this._objectType._UpdateIIDs(),this._iid}GetUID(){return this._uid}_GetSequenceID(){return this._sequenceId}GetBehaviorInstances(){return this._behaviorInstances}GetBehaviorInstanceFromCtor(a){if(!a)return null;for(const b of this._behaviorInstances)if(b.GetBehavior()instanceof a)return b;return null}GetBehaviorSdkInstanceFromCtor(a){if(!a)return null;const b=this.GetBehaviorInstanceFromCtor(a);return b?b.GetSdkInstance():null}GetBehaviorIndexBySID(a){const b=this._behaviorInstances;for(let c=0,d=b.length;ca||a>=b.length)throw new RangeError("invalid instance variable");return b[a]}_GetInstanceVariableValueUnchecked(a){return this._instVarValues[a]}SetInstanceVariableValue(a,b){a|=0;const c=this._instVarValues;if(0>a||a>=c.length)throw new RangeError("invalid instance variable");const d=c[a];if("number"==typeof d)c[a]="number"==typeof b?b:parseFloat(b);else if("boolean"==typeof d)c[a]="boolean"==typeof b?b:!!b;else if("string"==typeof d)c[a]="string"==typeof b?b:b.toString();else throw new Error("unknown instance variable type")}SetInstanceVariableOffset(a,b){if(0!==b){a|=0;const c=this._instVarValues;if(0>a||a>=c.length)throw new RangeError("invalid instance variable");const d=c[a];if("number"==typeof d)c[a]+="number"==typeof b?b:parseFloat(b);else if("boolean"==typeof d)throw new Error("can not set offset of boolean variable");else if("string"==typeof d)throw new Error("can not set offset of string variable");else throw new Error("unknown instance variable type")}}GetSavedDataMap(){return this._savedData||(this._savedData=new Map),this._savedData}GetUnsavedDataMap(){return this._unsavedData||(this._unsavedData=new Map),this._unsavedData}_TriggerOnCreated(){this._runtime.Trigger(this.GetPlugin().constructor.Cnds.OnCreated,this)}_TriggerOnDestroyed(){this._runtime.Trigger(this.GetPlugin().constructor.Cnds.OnDestroyed,this)}_MarkDestroyed(){this._isDestroyed=!0}IsDestroyed(){return this._isDestroyed}_GetDebuggerProperties(){return this._sdkInst.GetDebuggerProperties()}SaveToJson(a){const b={};if(a?b["c3"]=!0:b["uid"]=this.GetUID(),this._savedData&&this._savedData.size&&(b["ex"]=C3.ToSuperJSON(this._savedData)),-1!==this.GetTimeScale()&&(b["mts"]=this.GetTimeScale()),0d||d>=this._instVarValues.length)continue;let e=b;null===e&&(e=NaN),this._instVarValues[d]=e}if(this._plugin.IsWorldType()){const c=a["w"],d=c["l"];if(this._worldInfo.GetLayer().GetSID()!==d){const a=this._worldInfo.GetLayer(),c=a.GetLayout().GetLayerBySID(d);c?(this._worldInfo._SetLayer(c),a._RemoveInstance(this,!0),c._AddInstance(this,!0),c.SetZIndicesChanged(),this._worldInfo.SetBboxChanged()):!b&&this._runtime.DestroyInstance(this)}this._worldInfo._LoadFromJson(c)}const e=a["behs"];if(e)for(const[a,b]of Object.entries(e)){const c=parseInt(a,10),d=this.GetBehaviorIndexBySID(c);0>d||d>=this._behaviorInstances.length||this._behaviorInstances[d].LoadFromJson(b)}const f=a["data"];f&&this._sdkInst.LoadFromJson(f)}}} + +// c3/objects/worldInfo.js +"use strict";{const a=C3.New(C3.Rect),b=C3.New(C3.Rect),c=C3.New(C3.Event,"bboxchange",!1);C3.WorldInfo=class extends C3.DefendedBase{constructor(a,b){super(),this._inst=a,this._objectClass=a.GetObjectClass(),this._runtime=a.GetRuntime(),this._layer=b,this._zIndex=-1,this._isVisible=!0,this._x=0,this._y=0,this._zElevation=0,this._w=0,this._h=0,this._a=0,this._sinA=0,this._cosA=1,this._ox=0,this._oy=0,this._bboxChanged=!0,this._boundingBox=new C3.Rect,this._boundingQuad=new C3.Quad,this._enableBboxChangeEvent=!1,this._isCollisionEnabled=!0,this._isCollisionCellChanged=!0,this._collisionCells=C3.New(C3.Rect,0,0,-1,-1),this._renderCells=C3.New(C3.Rect,0,0,-1,-1),this._sourceCollisionPoly=null,this._transformedCollisionPoly=C3.New(C3.CollisionPoly),this._polyWidth=-1,this._polyHeight=-1,this._polyAngle=0,this._solidFilterInclusive=!1,this._solidFilterTags=null,this._color=C3.New(C3.Color,1,1,1,1),this._colorPremultiplied=C3.New(C3.Color,1,1,1,1),this._hasDefaultColor=!0,this._blendMode=-1,this._srcBlend=0,this._destBlend=0,this._stateGroup=null,this._instanceEffectList=null,this._hasAnyActiveEffect=!1,this._inst.GetObjectClass().HasEffects()&&(this._instanceEffectList=C3.New(C3.InstanceEffectList,this._inst,this)),this.SetBlendMode(0)}Release(){this._stateGroup&&(this._runtime.GetWebGLRenderer().ReleaseStateGroup(this._stateGroup),this._stateGroup=null),this._sourceCollisionPoly=null,this._transformedCollisionPoly.Release(),this._transformedCollisionPoly=null,this._solidFilterTags&&(this._solidFilterTags.clear(),this._solidFilterTags=null),this._inst=null,this._objectClass=null,this._runtime=null,this._layer=null}Init(a){this.SetX(a[0]),this.SetY(a[1]),this.SetZElevation(a[2]),this.SetWidth(a[3]),this.SetHeight(a[4]),this.SetAngle(a[6]),this._color.setFromJSON(a[7]),this.SetOriginX(a[8]),this.SetOriginY(a[9]),this.SetBlendMode(a[10]),this._instanceEffectList&&this._instanceEffectList._LoadEffectParameters(a[12]),this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup()}GetInstance(){return this._inst}SetX(a){this._x=+a}OffsetX(a){this._x+=+a}GetX(){return this._x}SetY(a){this._y=+a}OffsetY(a){this._y+=+a}GetY(){return this._y}SetXY(a,b){this._x=+a,this._y=+b}OffsetXY(a,b){this._x+=+a,this._y+=+b}EqualsXY(a,b){return this._x===a&&this._y===b}SetZElevation(a){if(a=+a,this._zElevation!==a){this._zElevation=a,this._UpdateWebGLStateGroup();const b=this.GetLayer();0!==this._zElevation&&b._SetAnyInstanceZElevated(),b.SetZIndicesChanged()}}GetZElevation(){return this._zElevation}GetTotalZElevation(){return this.GetLayer().GetZElevation()+this.GetZElevation()}SetWidth(a){this._w=+a}OffsetWidth(a){this._w+=+a}GetWidth(){return this._w}SetHeight(a){this._h=+a}OffsetHeight(a){this._h+=+a}GetHeight(){return this._h}SetSize(a,b){this._w=+a,this._h=+b}SetAngle(b){b=C3.clampAngle(+b);this._a===b||(this._a=b,this._sinA=Math.sin(b),this._cosA=Math.cos(b))}OffsetAngle(b){b=+b;0===b||this.SetAngle(this._a+b)}GetAngle(){return this._a}GetSinAngle(){return this._sinA}GetCosAngle(){return this._cosA}SetOriginX(a){this._ox=+a}OffsetOriginX(a){this._ox+=+a}GetOriginX(){return this._ox}SetOriginY(a){this._oy=+a}OffsetOriginY(a){this._oy+=+a}GetOriginY(){return this._oy}SetOpacity(a){a=C3.clamp(a,0,1);this._color.a===a||(this._color.a=a,this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}OffsetOpacity(a){if(0!==a){const b=this._color.a;this._color.a+=a,this._color.a===b||(this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}}GetOpacity(){return this._color.a}SetUnpremultipliedColor(a){this._color.equalsIgnoringAlpha(a)||(this._color.copyRgb(a),this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}SetUnpremultipliedColorRGB(a,c,d){const b=this._color;b.r===a&&b.g===c&&b.b===d||(b.r=a,b.g=c,b.b=d,this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}OffsetUnpremultipliedColorRGB(a,c,d){if(0!==a||0!==c||0!==d){const b=this._color,e=b.r,f=b.g,g=b.b;b.r+=a,b.g+=c,b.b+=d,b.r===e&&b.g===f&&b.b===g||(this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}}GetUnpremultipliedColor(){return this._color}_UpdatePremultipliedColor(){const a=this._color,b=this._colorPremultiplied;this._hasDefaultColor=a.equalsRgba(1,1,1,1),b.set(a),b.premultiply()}GetPremultipliedColor(){return this._colorPremultiplied}_UpdateWebGLStateGroup(){const a=this._runtime.GetWebGLRenderer();this._stateGroup&&a.ReleaseStateGroup(this._stateGroup),this._stateGroup=a.AcquireStateGroup(a.GetTextureFillShaderProgram()||"",this._srcBlend,this._destBlend,this._colorPremultiplied,this._zElevation)}GetWebGLStateGroup(){return this._stateGroup}HasDefaultColor(){return this._hasDefaultColor}SetBlendMode(a){if(this._blendMode!==a){this._blendMode=a;const b=this._runtime.GetWebGLRenderer();if(b){const c=b.GetBlendByIndex(a);this._srcBlend=c.srcBlend,this._destBlend=c.destBlend}this._UpdateWebGLStateGroup()}}GetBlendMode(){return this._blendMode}GetSrcBlend(){return this._srcBlend}GetDestBlend(){return this._destBlend}_SetLayer(a){this._layer=a,0!==this.GetZElevation()&&this._layer._SetAnyInstanceZElevated()}GetLayer(){return this._layer}GetLayout(){return this.GetLayer().GetLayout()}_SetZIndex(a){this._zIndex=0|a}GetZIndex(){return this._layer._UpdateZIndices(),this._zIndex}_GetLastCachedZIndex(){return this._zIndex}IsVisible(){return this._isVisible}SetVisible(a){this._isVisible=!!a}IsCollisionEnabled(){return this._isCollisionEnabled}SetCollisionEnabled(a){a=!!a;this._isCollisionEnabled===a||(this._isCollisionEnabled=a,a?this.SetBboxChanged():this._RemoveFromCollisionCells())}SetSolidCollisionFilter(a,b){if(this._solidFilterInclusive=!!a,this._solidFilterTags&&this._solidFilterTags.clear(),!b.trim())return void(this._solidFilterTags=null);this._solidFilterTags||(this._solidFilterTags=new Set);for(const c of b.split(" "))c&&this._solidFilterTags.add(c.toLowerCase())}IsSolidCollisionAllowed(a){const b=this._solidFilterInclusive,c=this._solidFilterTags;if(!a||!c)return!b;for(const d of c)if(a.has(d))return b;return!b}SetBboxChanged(){this._bboxChanged=!0,this._isCollisionCellChanged=!0,this._objectClass._SetAnyCollisionCellChanged(!0),this._runtime.UpdateRender(),this._layer.UsesRenderCells()&&(this._CalculateBbox(),this._UpdateRenderCell()),this._enableBboxChangeEvent&&this._inst.Dispatcher().dispatchEvent(c)}_CalculateBbox(){const a=this._boundingBox,b=this._boundingQuad,c=this._x,d=this._y,e=this._w,f=this._h;a.setWH(c-this._ox*e,d-this._oy*f,e,f),0===this._a?b.setFromRect(a):(a.offset(-c,-d),b.setFromRotatedRectPrecalc(a,this._sinA,this._cosA),b.offset(c,d),b.getBoundingBox(a)),a.normalize(),this._bboxChanged=!1}_UpdateBbox(){this._bboxChanged&&this._CalculateBbox()}GetBoundingBox(){return this._UpdateBbox(),this._boundingBox}GetBoundingQuad(){return this._UpdateBbox(),this._boundingQuad}OverwriteBoundingBox(a){this._boundingBox.copy(a),this._boundingQuad.setFromRect(this._boundingBox),this._bboxChanged=!1,this._UpdateCollisionCell(),this._UpdateRenderCell()}SetBboxChangeEventEnabled(a){this._enableBboxChangeEvent=!!a}IsBboxChangeEventEnabled(){return this._enableBboxChangeEvent}IsInViewport(a){return 0===this._zElevation?a.intersectsRect(this.GetBoundingBox()):this._IsInViewport_ZElevated()}_IsInViewport_ZElevated(){const a=this.GetLayer(),c=this.GetTotalZElevation();return!(c>=a.GetCameraZ())&&(a.GetViewportForZ(c,b),b.intersectsRect(this.GetBoundingBox()))}SetSourceCollisionPoly(a){this._sourceCollisionPoly=a,this._polyWidth=-1,this._polyHeight=-1,this._polyAngle=0}GetSourceCollisionPoly(){return this._sourceCollisionPoly}HasOwnCollisionPoly(){return!!this._sourceCollisionPoly}GetTransformedCollisionPoly(){return this._GetCustomTransformedCollisionPolyPrecalc(this.GetWidth(),this.GetHeight(),this.GetAngle(),this.GetSinAngle(),this.GetCosAngle())}GetCustomTransformedCollisionPoly(b,c,d){let a=0,e=1;return 0!==d&&(a=Math.sin(d),e=Math.cos(d)),this._GetCustomTransformedCollisionPolyPrecalc(b,c,d,a,e)}_GetCustomTransformedCollisionPolyPrecalc(b,c,d,a,e){return this._polyWidth===b&&this._polyHeight===c&&this._polyAngle===d?this._transformedCollisionPoly:(this._sourceCollisionPoly?(this._transformedCollisionPoly.copy(this._sourceCollisionPoly),this._transformedCollisionPoly.transformPrecalc(b,c,a,e)):this._transformedCollisionPoly.setFromQuad(this.GetBoundingQuad(),-this.GetX(),-this.GetY()),this._polyWidth=b,this._polyHeight=c,this._polyAngle=d,this._transformedCollisionPoly)}HasTilemap(){return this._inst.HasTilemap()}ContainsPoint(a,b){return!!this.GetBoundingBox().containsPoint(a,b)&&!!this.GetBoundingQuad().containsPoint(a,b)&&(this.HasTilemap()?this._inst.GetSdkInstance().TestPointOverlapTile(a,b):!this.HasOwnCollisionPoly()||this.GetTransformedCollisionPoly().containsPoint(a-this.GetX(),b-this.GetY()))}_UpdateCollisionCell(){if(this._isCollisionCellChanged&&this._isCollisionEnabled){const b=this.GetBoundingBox(),c=this._objectClass._GetCollisionCellGrid(),d=this._collisionCells;if(a.set(c.XToCell(b.getLeft()),c.YToCell(b.getTop()),c.XToCell(b.getRight()),c.YToCell(b.getBottom())),!d.equals(a)){const b=this._inst;d.getRight()=this._renderCells.getLeft()}GetRenderCellRange(){return this._renderCells}GetInstanceEffectList(){return this._instanceEffectList}_SetHasAnyActiveEffect(a){this._hasAnyActiveEffect=!!a}HasAnyActiveEffect(){return this._hasAnyActiveEffect}SaveGeometryState(){this._UpdateBbox();const a=this._boundingBox,b=this._boundingQuad;return[this._x,this._y,this._w,this._h,this._a,this._ox,this._oy,a.getLeft(),a.getTop(),a.getRight(),a.getBottom(),b.getTlx(),b.getTly(),b.getTrx(),b.getTry(),b.getBrx(),b.getBry(),b.getBlx(),b.getBly()]}RestoreGeometryState(a){this._x=a[0],this._y=a[1],this._w=a[2],this._h=a[3],this.SetAngle(a[4]),this._ox=a[5],this._oy=a[6],this._boundingBox.set(a[7],a[8],a[9],a[10]),this._boundingQuad.set(a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18]),this._bboxChanged=!1}_SaveToJson(){const a={"x":this.GetX(),"y":this.GetY(),"w":this.GetWidth(),"h":this.GetHeight(),"l":this.GetLayer().GetSID(),"zi":this.GetZIndex()};return 0!==this.GetZElevation()&&(a["ze"]=this.GetZElevation()),0!==this.GetAngle()&&(a["a"]=this.GetAngle()),1!==this.GetOpacity()&&(a["o"]=this.GetOpacity()),.5!==this.GetOriginX()&&(a["oX"]=this.GetOriginX()),.5!==this.GetOriginY()&&(a["oY"]=this.GetOriginY()),0!==this.GetBlendMode()&&(a["bm"]=this.GetBlendMode()),this.IsVisible()||(a["v"]=this.IsVisible()),this.IsCollisionEnabled()||(a["ce"]=this.IsCollisionEnabled()),this.IsBboxChangeEventEnabled()&&(a["be"]=this.IsBboxChangeEventEnabled()),this._instanceEffectList&&(a["fx"]=this._instanceEffectList._SaveToJson()),this._solidFilterInclusive&&(a["sfi"]=this._solidFilterInclusive),this._solidFilterTags&&(a["sft"]=[...this._solidFilterTags].join(" ")),a}_LoadFromJson(a){this.SetX(a["x"]),this.SetY(a["y"]),this.SetWidth(a["w"]),this.SetHeight(a["h"]),this._SetZIndex(a["zi"]),this.SetZElevation(a.hasOwnProperty("ze")?a["ze"]:0),this.SetAngle(a.hasOwnProperty("a")?a["a"]:0),this.SetOpacity(a.hasOwnProperty("o")?a["o"]:1),this.SetOriginX(a.hasOwnProperty("oX")?a["oX"]:.5),this.SetOriginY(a.hasOwnProperty("oY")?a["oY"]:.5),this.SetBlendMode(a.hasOwnProperty("bm")?a["bm"]:0),this.SetVisible(!a.hasOwnProperty("v")||a["v"]),this.SetCollisionEnabled(!a.hasOwnProperty("ce")||a["ce"]),this.SetBboxChangeEventEnabled(!!a.hasOwnProperty("be")&&a["be"]),this.SetSolidCollisionFilter(!!a.hasOwnProperty("sfi")&&a["sfi"],a.hasOwnProperty("sft")?a["sft"]:""),this._instanceEffectList&&a.hasOwnProperty("fx")&&this._instanceEffectList._LoadFromJson(a["fx"]),this.SetBboxChanged()}}} + +// c3/objects/behaviorType.js +"use strict";C3.BehaviorType=class extends C3.DefendedBase{constructor(a,b){super();const c=a.GetRuntime(),d=c.GetPluginManager(),e=c.GetObjectReference(b[1]);d.HasBehaviorByConstructorFunction(e)||d.CreateBehavior(b),this._runtime=c,this._objectClass=a,this._behavior=d.GetBehaviorByConstructorFunction(e),this._sdkType=null,this._instSdkCtor=e.Instance,this._sid=b[2],this._name=b[0],this._sdkType=C3.New(e.Type,this);this.OnCreate()}static Create(a,b){return C3.New(C3.BehaviorType,a,b)}Release(){this._runtime=null,this._behavior=null,this._sdkType.Release(),this._sdkType=null,this._instSdkCtor=null}GetSdkType(){return this._sdkType}OnCreate(){this._sdkType.OnCreate()}GetRuntime(){return this._runtime}GetObjectClass(){return this._objectClass}GetBehavior(){return this._behavior}GetInstanceSdkCtor(){return this._instSdkCtor}GetName(){return this._name}GetSID(){return this._sid}}; + +// c3/objects/behaviorInstance.js +"use strict";C3.BehaviorInstance=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._behaviorType=a.behaviorType,this._behavior=this._behaviorType.GetBehavior(),this._inst=a.instance,this._index=a.index,this._sdkInst=null,this._behavior._AddInstance(this._inst)}Release(){this._behavior._RemoveInstance(this._inst),this._sdkInst.Release(),this._sdkInst=null,this._runtime=null,this._behaviorType=null,this._behavior=null,this._inst=null}_CreateSdkInstance(a){if(this._sdkInst)throw new Error("already got sdk instance");this._sdkInst=C3.New(this._behaviorType.GetInstanceSdkCtor(),this,a)}GetSdkInstance(){return this._sdkInst}GetObjectInstance(){return this._inst}GetRuntime(){return this._runtime}GetBehaviorType(){return this._behaviorType}GetBehavior(){return this._behavior}_GetIndex(){return this._index}PostCreate(){this._sdkInst.PostCreate()}OnSpriteFrameChanged(a,b){this._sdkInst.OnSpriteFrameChanged(a,b)}_GetDebuggerProperties(){return this._sdkInst.GetDebuggerProperties()}SaveToJson(){return this._sdkInst.SaveToJson()}LoadFromJson(a){return this._sdkInst.LoadFromJson(a)}static SortByTickSequence(c,a){const b=c.GetObjectInstance(),d=a.GetObjectInstance(),e=b.GetObjectClass().GetIndex(),f=d.GetObjectClass().GetIndex();if(e!==f)return e-f;const g=b._GetSequenceID(),h=d._GetSequenceID();return g===h?c.GetBehaviorInstance()._GetIndex()-a.GetBehaviorInstance()._GetIndex():g-h}}; + +// c3/objects/effectList.js +"use strict";C3.EffectList=class extends C3.DefendedBase{constructor(a,b){super(),this._owner=a,this._allEffectTypes=[],this._activeEffectTypes=[],this._effectTypesByName=new Map,this._effectParams=[],this._preservesOpaqueness=!0;for(const c of b){const a=C3.New(C3.EffectType,this,c,this._allEffectTypes.length);this._allEffectTypes.push(a),this._effectTypesByName.set(a.GetName().toLowerCase(),a),3<=c.length&&this._effectParams.push(this._LoadSingleEffectParameters(c[2]))}this.GetRuntime()._AddEffectList(this)}Release(){C3.clearArray(this._allEffectTypes),C3.clearArray(this._activeEffectTypes),this._effectTypesByName.clear(),C3.clearArray(this._effectParams),this._owner=null}PrependEffectTypes(a){if(a.length){this._allEffectTypes=a.concat(this._allEffectTypes);for(const b of a)this._effectTypesByName.set(b.GetName().toLowerCase(),b);for(let a=0,b=this._allEffectTypes.length;a({"name":a.GetName(),"active":a.IsActive(),"params":C3.EffectList.SaveFxParamsToJson(this._effectParams[a.GetIndex()])}))}LoadFromJson(a){for(const b of a){const a=this.GetEffectTypeByName(b["name"]);a&&(a.SetActive(b["active"]),this._effectParams[a.GetIndex()]=C3.EffectList.LoadFxParamsFromJson(b["params"]))}this.UpdateActiveEffects()}}; + +// c3/objects/effectType.js +"use strict";C3.EffectType=class extends C3.DefendedBase{constructor(a,b,c){super(),this._effectList=a,this._id=b[0],this._name=b[1],this._index=c,this._shaderProgram=null,this._isActive=!0}Release(){this._effectList=null,this._shaderProgram=null}Clone(a){const b=C3.New(C3.EffectType,a,[this._id,this._name],-1);return b._shaderProgram=this._shaderProgram,b._isActive=this._isActive,b}_InitRenderer(a){const b=a.GetShaderProgramByName(this._id);if(!b)throw new Error("failed to find shader program '"+this._id+"'");this._shaderProgram=b}GetEffectList(){return this._effectList}GetName(){return this._name}_SetIndex(a){this._index=a}GetIndex(){return this._index}GetOwner(){return this._effectList.GetOwner()}GetRuntime(){return this._effectList.GetRuntime()}SetActive(b){this._isActive=!!b}IsActive(){return this._isActive}GetShaderProgram(){return this._shaderProgram}GetDefaultParameterValues(){const a=[];for(let b=0,c=this._shaderProgram.GetParameterCount();ba.GetShaderProgram().UsesDest())}IsEffectIndexActive(a){return this._activeEffectFlags[a]}SetEffectIndexActive(a,b){this._activeEffectFlags[a]=!!b}_SaveToJson(){return this._effectList.GetAllEffectTypes().map((a)=>({"name":a.GetName(),"active":this._activeEffectFlags[a.GetIndex()],"params":C3.EffectList.SaveFxParamsToJson(this._effectParams[a.GetIndex()])}))}_LoadFromJson(a){for(const b of a){const a=this._effectList.GetEffectTypeByName(b["name"]);a&&(this._activeEffectFlags[a.GetIndex()]=b["active"],this._effectParams[a.GetIndex()]=C3.EffectList.LoadFxParamsFromJson(b["params"]))}this.UpdateActiveEffects()}}; + +// c3/collisions/collisionEngine.js +"use strict";{const a=[],b=[],c=[],d=C3.New(C3.CollisionPoly),e=C3.New(C3.CollisionPoly),f=C3.New(C3.Quad),g=C3.New(C3.Rect),h=C3.New(C3.Rect);C3.CollisionEngine=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a,this._registeredCollisions=[],this._collisionCheckCount=0,this._collisionCheckSec=0,this._polyCheckCount=0,this._polyCheckSec=0}Release(){this._runtime=null}_Update1sStats(){this._collisionCheckSec=this._collisionCheckCount,this._collisionCheckCount=0,this._polyCheckSec=this._polyCheckCount,this._polyCheckCount=0}Get1secCollisionChecks(){return this._collisionCheckSec}Get1secPolyChecks(){return this._polyCheckSec}RegisterCollision(c,a){const b=c.GetWorldInfo(),d=a.GetWorldInfo();b&&d&&b.IsCollisionEnabled()&&d.IsCollisionEnabled()&&this._registeredCollisions.push([c,a])}AddRegisteredCollisionCandidates(c,d,e){for(const[f,a]of this._registeredCollisions){let b=null;if(c===f)b=a;else if(c===a)b=f;else continue;b.BelongsToObjectClass(d)&&!e.includes(b)&&e.push(b)}}CheckRegisteredCollision(e,a){if(!this._registeredCollisions.length)return!1;for(const[b,c]of this._registeredCollisions)if(e===b&&a===c||e===c&&a===b)return!0;return!1}ClearRegisteredCollisions(){C3.clearArray(this._registeredCollisions)}TestOverlap(c,d){if(!c||!d||c===d)return!1;const e=c.GetWorldInfo(),f=d.GetWorldInfo();if(!e.IsCollisionEnabled()||!f.IsCollisionEnabled())return!1;this._collisionCheckCount++;const g=e.GetLayer(),h=f.GetLayer(),i=g!==h&&!g._IsCollisionCompatibleWith(h);return i?this._TestOverlap_DifferentLayers(e,f):this._TestOverlap_SameLayers(e,f)}_TestOverlap_SameLayers(a,b){if(!a.GetBoundingBox().intersectsRect(b.GetBoundingBox()))return!1;if(this._polyCheckCount++,!a.GetBoundingQuad().intersectsQuad(b.GetBoundingQuad()))return!1;if(a.HasTilemap()&&b.HasTilemap())return!1;if(a.HasTilemap())return this.TestTilemapOverlap(a,b);if(b.HasTilemap())return this.TestTilemapOverlap(b,a);if(!a.HasOwnCollisionPoly()&&!b.HasOwnCollisionPoly())return!0;const c=a.GetTransformedCollisionPoly(),d=b.GetTransformedCollisionPoly();return c.intersectsPoly(d,b.GetX()-a.GetX(),b.GetY()-a.GetY())}_TestOverlap_DifferentLayers(a,b){const c=a.GetLayer(),f=b.GetLayer();d.copy(a.GetTransformedCollisionPoly()),e.copy(b.GetTransformedCollisionPoly());const g=d.pointsArr();for(let d=0,e=g.length;dd;++d){const i=2*d-1;if(e.SetXY(f+b*k*i,g+c*k*i),e.SetBboxChanged(),!this.TestOverlap(a,h))if(h=this.TestOverlapSolid(a),h)j=h;else return j&&this.PushInFractional(a,b*i,c*i,j,16),!0}return e.SetXY(f,g),e.SetBboxChanged(),!1}PushInFractional(a,b,c,d,e){let f=2,g=!1,h=!1;const i=a.GetWorldInfo();let j=i.GetX(),k=i.GetY();for(;f<=e;){const e=1/f;f*=2,i.OffsetXY(b*e*(g?1:-1),c*e*(g?1:-1)),i.SetBboxChanged(),this.TestOverlap(a,d)?(g=!0,h=!0):(g=!1,h=!1,j=i.GetX(),k=i.GetY())}h&&(i.SetXY(j,k),i.SetBboxChanged())}PushOutSolidNearest(a,b=100){var c=Math.floor;let d=0;const e=a.GetWorldInfo(),f=e.GetX(),g=e.GetY();let h=0,i=this.TestOverlapSolid(a);if(!i)return!0;for(;d<=b;){let b=0,j=0;if(0==h?(b=0,j=-1,d++):1==h?(b=1,j=-1):2==h?(b=1,j=0):3==h?(b=1,j=1):4==h?(b=0,j=1):5==h?(b=-1,j=1):6==h?(b=-1,j=0):7==h?(b=-1,j=-1):void 0,h=(h+1)%8,e.SetXY(c(f+b*d),c(g+j*d)),e.SetBboxChanged(),!this.TestOverlap(a,i)&&(i=this.TestOverlapSolid(a),!i))return!0}return e.SetXY(f,g),e.SetBboxChanged(),!1}CalculateBounceAngle(a,b,c,d){var e=Math.sin,f=Math.cos,g=Math.PI;const h=a.GetWorldInfo(),j=h.GetX(),k=h.GetY(),l=Math.max(10,C3.distanceTo(b,c,j,k)),m=C3.angleTo(b,c,j,k),n=d||this.TestOverlapSolid(a);if(!n)return C3.clampAngle(m+g);let o=n,p=0,q=0;const r=C3.toRadians(5);let s;for(s=1;36>s;++s){const g=m-s*r;if(h.SetXY(b+f(g)*l,c+e(g)*l),h.SetBboxChanged(),!this.TestOverlap(a,o)&&(o=d?null:this.TestOverlapSolid(a),!o)){p=g;break}}for(36===s&&(p=C3.clampAngle(m+g)),o=n,s=1;36>s;++s){const g=m+s*r;if(h.SetXY(b+f(g)*l,c+e(g)*l),h.SetBboxChanged(),!this.TestOverlap(a,o)&&(o=d?null:this.TestOverlapSolid(a),!o)){q=g;break}}if(36===s&&(q=C3.clampAngle(m+g)),h.SetXY(j,k),h.SetBboxChanged(),q===p)return q;const i=C3.angleDiff(q,p)/2;let t=C3.angleClockwise(q,p)?C3.clampAngle(p+i+g):C3.clampAngle(q+i);const u=f(m),v=e(m),w=f(t),x=e(t),y=u*w+v*x;return C3.angleTo(0,0,u-2*y*w,v-2*y*x)}TestSegmentOverlap(a,b,c,d,e){var f=Math.min,h=Math.max;if(!e)return!1;const i=e.GetWorldInfo();if(!i.IsCollisionEnabled())return!1;if(this._collisionCheckCount++,g.set(f(a,c),f(b,d),h(a,c),h(b,d)),!i.GetBoundingBox().intersectsRect(g))return!1;if(e.HasTilemap())return this._TestSegmentOverlapTilemap(a,b,c,d,e,i);if(this._polyCheckCount++,!i.GetBoundingQuad().intersectsSegment(a,b,c,d))return!1;if(!i.HasOwnCollisionPoly())return!0;const j=i.GetTransformedCollisionPoly();return j.intersectsSegment(i.GetX(),i.GetY(),a,b,c,d)}_TestSegmentOverlapTilemap(a,d,e,j,c,i){const k=i.GetX(),l=i.GetY(),m=c.GetSdkInstance(),n=b;h.set(a,d,e,j),h.normalize(),m.GetCollisionRectCandidates(h,n);for(let b=0,h=n.length;bthis._loadingProgress=a.progress,this._webglPercentText=null,this._loadingLogoAsset=null,this._splashTextures={logo:null,powered:null,website:null},this._splashFrameNumber=0,this._splashFadeInFinishTime=0,this._splashFadeOutStartTime=0,this._splashState="fade-in",this._splashDoneResolve=null,this._splashDonePromise=new Promise((a)=>this._splashDoneResolve=a)}_SetGPUPowerPreference(a){this._gpuPreference=a}async CreateCanvas(a){this._canvas=a["canvas"],this._canvas.addEventListener("webglcontextlost",(a)=>this._OnWebGLContextLost(a)),this._canvas.addEventListener("webglcontextrestored",(a)=>this._OnWebGLContextRestored(a)),this._webglRenderer=C3.New(C3.Gfx.WebGLRenderer,this._canvas,{maxWebGLVersion:a["maxWebGLVersion"],powerPreference:this._gpuPreference,enableGpuProfiling:!0,alpha:!0}),await this._webglRenderer.InitState(),this._webglRenderer.SupportsGPUProfiling()||(this._gpuLastUtilisation=NaN),this._runtime.AddDOMComponentMessageHandler("runtime","window-resize",(a)=>this._OnWindowResize(a)),this._runtime.AddDOMComponentMessageHandler("runtime","fullscreenchange",(a)=>this._OnFullscreenChange(a)),this._runtime.AddDOMComponentMessageHandler("runtime","fullscreenerror",(a)=>this._OnFullscreenError(a)),this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["windowInnerWidth"],a["windowInnerHeight"],!0),this._shaderData=a["shaders"]||self["C3_Shaders"],await this._LoadShaderPrograms();let b=!1;for(const c of this._runtime._GetAllEffectLists()){for(const a of c.GetAllEffectTypes())a._InitRenderer(this._webglRenderer),a.GetShaderProgram().UsesDest()&&(b=!0);c.UpdateActiveEffects()}this._runtime._SetUsesAnyBackgroundBlending(b),this._webglRenderer.SupportsGPUProfiling()&&(this._gpuFrameTimingsBuffer=C3.New(C3.Gfx.WebGLQueryResultBuffer,this._webglRenderer))}async _LoadShaderPrograms(){if(this._shaderData){const a=[];for(const[b,c]of Object.entries(this._shaderData)){const d=C3.Gfx.WebGLShaderProgram.GetDefaultVertexShaderSource(this._webglRenderer.Is3D());a.push(this._webglRenderer.CreateShaderProgram(c,d,b))}await Promise.all(a),this._webglRenderer.ResetLastProgram(),this._webglRenderer.SetTextureFillMode()}}Release(){this._runtime=null,this._webglRenderer=null,this._canvas=null}_OnWindowResize(a){this._runtime.IsInWorker()&&(self.devicePixelRatio=a["devicePixelRatio"]),this.SetSize(a["innerWidth"],a["innerHeight"]),this._runtime.UpdateRender()}_OnFullscreenChange(a){this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["innerWidth"],a["innerHeight"],!0),this._runtime.UpdateRender()}_OnFullscreenError(a){this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["innerWidth"],a["innerHeight"],!0),this._runtime.UpdateRender()}SetSize(a,b,c=!1){var d=Math.floor;if(a=d(a),b=d(b),0>=a||0>=b)throw new Error("invalid size");if(this._windowInnerWidth!==a||this._windowInnerHeight!==b||c){this._windowInnerWidth=a,this._windowInnerHeight=b;const c=this.GetCurrentFullscreenMode();"letterbox-scale"===c?this._CalculateLetterboxScale(a,b):"letterbox-integer-scale"===c?this._CalculateLetterboxIntegerScale(a,b):"off"===c?this._CalculateFixedSizeCanvas(a,b):this._CalculateFullsizeCanvas(a,b),this._UpdateFullscreenScalingQuality(c),this._canvas.width=this._canvasDeviceWidth,this._canvas.height=this._canvasDeviceHeight,this._runtime.PostComponentMessageToDOM("canvas","update-size",{"marginLeft":this._canvasCssOffsetX,"marginTop":this._canvasCssOffsetY,"styleWidth":this._canvasCssWidth,"styleHeight":this._canvasCssHeight}),this._webglRenderer.SetSize(this._canvasDeviceWidth,this._canvasDeviceHeight,!0)}}_CalculateLetterboxScale(a,b){var c=Math.round,d=Math.floor;const e=self.devicePixelRatio,f=this._runtime.GetOriginalViewportWidth(),g=this._runtime.GetOriginalViewportHeight(),h=f/g;if(a/b>h){this._canvasCssWidth=c(b*h),this._canvasCssHeight=b,this._canvasCssOffsetX=d((a-this._canvasCssWidth)/2),this._canvasCssOffsetY=0}else{this._canvasCssWidth=a,this._canvasCssHeight=c(a/h),this._canvasCssOffsetX=0,this._canvasCssOffsetY=d((b-this._canvasCssHeight)/2)}this._canvasDeviceWidth=c(this._canvasCssWidth*e),this._canvasDeviceHeight=c(this._canvasCssHeight*e),this._runtime.SetViewportSize(f,g)}_CalculateLetterboxIntegerScale(a,b){var c=Math.max,d=Math.round,e=Math.floor;const f=self.devicePixelRatio;1!==f&&(a+=1,b+=1);const g=this._runtime.GetOriginalViewportWidth(),h=this._runtime.GetOriginalViewportHeight(),i=g/h,j=a/b;let k;if(j>i){const a=b*i;k=a*f/g}else{const b=a/i;k=b*f/h}1k&&(k=1/Math.ceil(1/k)),this._canvasDeviceWidth=d(g*k),this._canvasDeviceHeight=d(h*k),this._canvasCssWidth=this._canvasDeviceWidth/f,this._canvasCssHeight=this._canvasDeviceHeight/f,this._canvasCssOffsetX=c(e((a-this._canvasCssWidth)/2),0),this._canvasCssOffsetY=c(e((b-this._canvasCssHeight)/2),0),this._runtime.SetViewportSize(g,h)}_CalculateFullsizeCanvas(a,b){var c=Math.round;const d=self.devicePixelRatio;this._canvasCssWidth=a,this._canvasCssHeight=b,this._canvasDeviceWidth=c(this._canvasCssWidth*d),this._canvasDeviceHeight=c(this._canvasCssHeight*d),this._canvasCssOffsetX=0,this._canvasCssOffsetY=0;const e=this.GetDisplayScale();this._runtime.SetViewportSize(this._canvasCssWidth/e,this._canvasCssHeight/e)}_CalculateFixedSizeCanvas(a,b){var c=Math.round,d=Math.floor;const e=self.devicePixelRatio;this._canvasCssWidth=this._runtime.GetViewportWidth(),this._canvasCssHeight=this._runtime.GetViewportHeight(),this._canvasDeviceWidth=c(this._canvasCssWidth*e),this._canvasDeviceHeight=c(this._canvasCssHeight*e),this.IsDocumentFullscreen()?(this._canvasCssOffsetX=d((a-this._canvasCssWidth)/2),this._canvasCssOffsetY=d((b-this._canvasCssHeight)/2)):(this._canvasCssOffsetX=0,this._canvasCssOffsetY=0),this._runtime.SetViewportSize(this._runtime.GetViewportWidth(),this._runtime.GetViewportHeight())}_UpdateFullscreenScalingQuality(a){if("high"===this._wantFullscreenScalingQuality)this._drawWidth=this._canvasDeviceWidth,this._drawHeight=this._canvasDeviceHeight,this._fullscreenScalingQuality="high";else{let b,c;if("off"===this.GetCurrentFullscreenMode()?(b=this._runtime.GetViewportWidth(),c=this._runtime.GetViewportHeight()):(b=this._runtime.GetOriginalViewportWidth(),c=this._runtime.GetOriginalViewportHeight()),this._canvasDeviceWidtha&&(this._drawHeight=this._drawWidth/d)}else if("scale-outer"===a){const a=b/c,d=this._windowInnerWidth/this._windowInnerHeight;d>a?this._drawWidth=this._drawHeight*d:dd||"scale-inner"===a&&eb.IsCompatibleWithOptions(a));let d;return-1===c?d=this._webglRenderer.CreateRenderTarget(a):(d=b[c],b.splice(c,1)),this._usedAdditionalRenderTargets.add(d),d}ReleaseAdditionalRenderTarget(a){if(!this._usedAdditionalRenderTargets.has(a))throw new Error("render target not in use");this._usedAdditionalRenderTargets.delete(a),this._availableAdditionalRenderTargets.push(a)}*activeLayersGpuProfiles(){for(const a of this._runtime.GetLayoutManager().runningLayouts())for(const b of a.GetLayers()){const a=this._layersGpuProfile.get(b);a&&(yield a)}}GetLayerTimingsBuffer(a){if(!this._webglRenderer.SupportsGPUProfiling())return null;let b=this._layersGpuProfile.get(a);return b||(b={name:a.GetName(),timingsBuffer:C3.New(C3.Gfx.WebGLQueryResultBuffer,this._webglRenderer),curUtilisation:0,lastUtilisation:0},this._layersGpuProfile.set(a,b)),b.timingsBuffer}_Update1sFrameRange(){if(this._webglRenderer.SupportsGPUProfiling()&&0===this._gpuTimeEndFrame){this._gpuTimeEndFrame=this._webglRenderer.GetFrameNumber(),this._gpuCurUtilisation=NaN;for(const a of this.activeLayersGpuProfiles())a.curUtilisation=NaN}}_UpdateTick(){var a=Math.min;if(this._webglRenderer.SupportsGPUProfiling()&&isNaN(this._gpuCurUtilisation)&&(this._gpuCurUtilisation=this._gpuFrameTimingsBuffer.GetFrameRangeResultSum(this._gpuTimeStartFrame,this._gpuTimeEndFrame),!isNaN(this._gpuCurUtilisation))){if(this._runtime.IsDebug())for(const a of this.activeLayersGpuProfiles())if(a.curUtilisation=a.timingsBuffer.GetFrameRangeResultSum(this._gpuTimeStartFrame,this._gpuTimeEndFrame),isNaN(a.curUtilisation))return;if(this._gpuFrameTimingsBuffer.DeleteAllBeforeFrameNumber(this._gpuTimeEndFrame),this._gpuLastUtilisation=a(this._gpuCurUtilisation,1),this._runtime.IsDebug()){for(const b of this.activeLayersGpuProfiles())b.timingsBuffer.DeleteAllBeforeFrameNumber(this._gpuTimeEndFrame),b.lastUtilisation=a(b.curUtilisation,1);C3Debugger.UpdateGPUProfile(this._gpuLastUtilisation,[...this.activeLayersGpuProfiles()])}this._gpuTimeStartFrame=this._gpuTimeEndFrame,this._gpuTimeEndFrame=0}}GetGPUFrameTimingsBuffer(){return this._gpuFrameTimingsBuffer}GetGPUUtilisation(){return this._gpuLastUtilisation}SnapshotCanvas(a,b){return(this._snapshotFormat=a,this._snapshotQuality=b,this._snapshotPromise)?this._snapshotPromise:(this._snapshotPromise=new Promise((a)=>{this._snapshotResolve=a}),this._snapshotPromise)}_MaybeTakeSnapshot(){this._snapshotFormat&&(C3.CanvasToBlob(this._canvas,this._snapshotFormat,this._snapshotQuality).then((a)=>{this._snapshotUrl=URL.createObjectURL(a),this._snapshotPromise=null,this._snapshotResolve(this._snapshotUrl)}),this._snapshotFormat="",this._snapshotQuality=1)}GetCanvasSnapshotUrl(){return this._snapshotUrl}InitLoadingScreen(a){if(2===a)this._webglPercentText=C3.New(C3.Gfx.WebGLText,this._webglRenderer),this._webglPercentText.SetIsAsync(!1),this._webglPercentText.SetFontName("Arial"),this._webglPercentText.SetFontSize(16),this._webglPercentText.SetHorizontalAlignment("center"),this._webglPercentText.SetVerticalAlignment("center"),this._webglPercentText.SetSize(300,200);else if(0===a){const a=this._runtime.GetAssetManager();let b;if(this._runtime.IsPreview()){if(!a._HasLocalURLBlob("loading-logo.png"))return;b=a.GetLocalUrlAsBlobUrl("loading-logo.png")}else b=a.GetIconsSubfolder()+"loading-logo.png";this._loadingLogoAsset=a.LoadImage({url:b}),this._loadingLogoAsset.LoadStaticTexture(this._webglRenderer).catch(()=>console.warn(`[C3 runtime] Failed to load 'loading-logo.png' for loading screen. Check the project has an icon with that name.`))}else 4===a&&(this._LoadSvgSplashImage("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHdpZHRoPSIxNzAwLjc5MDA0cHgiIGhlaWdodD0iMTcwMC43OTAwNHB4IiB2aWV3Qm94PSIyODcgMzE3IDExMjUgMTEyNSINCgkgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTcwMC43OTAwNCAxNzAwLjc5MDA0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnIGlkPSJsb2dvIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0ZGRkZGRiIgZD0iTTM1NC45Nzc1NCwxMTk1LjYyMzA1DQoJCQkJYzExLjM4NDc3LDAsMjIuMDEyNywzLjIzNzMsMzEuMDE3NTgsOC44Mzc4OWMxLjk0NjI5LDEuMjEwOTQsMi41ODQ5NiwzLjc0OTAyLDEuNDM4NDgsNS43MzQzOGwtNC45MzI2Miw4LjU0MTk5DQoJCQkJYy0zLjI3ODMyLDUuNjc5NjktMTAuMDMzMiw4LjM3Njk1LTE2LjMxNzM4LDYuNTAwOThjLTIuNzY0NjUtMC44MjUyLTUuNjkzMzYtMS4yNjg1NS04LjcyNjU2LTEuMjY4NTUNCgkJCQljLTE2LjgyOTEsMC0zMC40NzI2NiwxMy42NDM1NS0zMC40NzI2NiwzMC40NzI2NmMwLDE2LjgyODEzLDEzLjY0MzU1LDMwLjQ3MjY2LDMwLjQ3MjY2LDMwLjQ3MjY2DQoJCQkJYzMuMDMzMiwwLDUuOTYxOTEtMC40NDMzNiw4LjcyNjU2LTEuMjY4NTVjNi4yOTQ5Mi0xLjg3OTg4LDEzLjAzMzIsMC44MTE1MiwxNi4zMTczOCw2LjUwMDk4bDQuOTMxNjQsOC41NDE5OQ0KCQkJCWMxLjE0NzQ2LDEuOTg4MjgsMC41MTA3NCw0LjUyMzQ0LTEuNDM4NDgsNS43MzQzOGMtOS4wMDM5MSw1LjYwMTU2LTE5LjYzMTg0LDguODM3ODktMzEuMDE2Niw4LjgzNzg5DQoJCQkJYy0zMi40ODUzNSwwLTU4LjgxOTM0LTI2LjMzNDk2LTU4LjgxOTM0LTU4LjgxOTM0QzI5Ni4xNTgyLDEyMjEuOTU3MDMsMzIyLjQ5MjE5LDExOTUuNjIzMDUsMzU0Ljk3NzU0LDExOTUuNjIzMDUNCgkJCQlMMzU0Ljk3NzU0LDExOTUuNjIzMDV6IE03MDMuMjE0ODQsMTI1OS4xNzU3OGMtMTQuNTU5NTctOS44MTczOC0yMC4yMDMxMy0yMC4wMzIyMy0yMC4yMDMxMy0zMy4wODAwOA0KCQkJCWMwLTE4LjQ4OTI2LDE1LjcxNDg0LTI5Ljc2MzY3LDM4LjI2NjYtMjkuNzYzNjdjOS42NTcyMywwLDE4LjcyMTY4LDIuNTQyOTcsMjYuNTU5NTcsNi45OTQxNA0KCQkJCWMyLjA0OTgsMS4xNjQwNiwyLjc2MTcyLDMuNzgzMiwxLjU4MzAxLDUuODI0MjJsLTMuNDE3OTcsNS45MTk5MmMtMy4yNDcwNyw1LjYyNDAyLTkuOTA4Miw4LjMzMTA1LTE2LjE1MzMyLDYuNTQ4ODMNCgkJCQljLTIuNzIzNjMtMC43NzYzNy01LjU5ODYzLTEuMTkyMzgtOC41NzEyOS0xLjE5MjM4Yy0xMC40OTAyMywwLTExLjU5ODYzLDkuNTc2MTctNC44NTc0MiwxNC4xMjMwNWwyMy42ODY1MiwxNS45NzY1Ng0KCQkJCWM5Ljk5MDIzLDYuNzM4MjgsMTUuODk1NTEsMTcuMDY2NDEsMTUuODk1NTEsMjguNzE4NzVjMCwxOC43ODYxMy0xNS4wMDY4NCwzMy4zMDc2Mi0zOC4yNjc1OCwzMy4zMDc2Mg0KCQkJCWMtOS41MjI0NiwwLTE4LjU4Nzg5LTEuOTU3MDMtMjYuODE1NDMtNS40OTAyM2MtNy43ODEyNS0zLjMzOTg0LTEwLjkzMzU5LTEyLjc4MjIzLTYuNjk3MjctMjAuMTE4MTZsMy40ODczLTYuMDQxOTkNCgkJCQljMS4yMTM4Ny0yLjA5OTYxLDMuOTMxNjQtMi43NTk3Nyw1Ljk3NDYxLTEuNDU2MDVjNi44NTkzOCw0LjM4MjgxLDE2LjQ5MDIzLDcuNTk0NzMsMjQuNzU4NzksNy41OTQ3Mw0KCQkJCWMxMC41NDU5LDAsMTEuMzI4MTMtOS45NTg5OCwzLjc2NzU4LTE1LjA1NzYyTDcwMy4yMTQ4NCwxMjU5LjE3NTc4TDcwMy4yMTQ4NCwxMjU5LjE3NTc4eiBNOTg0LjYzMDg2LDEyMDIuMDAwOTgNCgkJCQljMC0yLjM0NzY2LDEuOTAzMzItNC4yNTE5NSw0LjI1MTk1LTQuMjUxOTVoOS45MjE4OGM3LjgyNzE1LDAsMTQuMTcyODUsNi4zNDU3LDE0LjE3Mjg1LDE0LjE3MzgzdjU3LjQwMTM3DQoJCQkJYzAsOC42MTAzNSw2Ljk4MDQ3LDE1LjU5MDgyLDE1LjU5MDgyLDE1LjU5MDgyczE1LjU5MDgyLTYuOTgwNDcsMTUuNTkwODItMTUuNTkwODJ2LTU3LjQwMTM3DQoJCQkJYzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTcyODUtMTQuMTczODNoOS45MjA5YzIuMzQ4NjMsMCw0LjI1MTk1LDEuOTA0Myw0LjI1MTk1LDQuMjUxOTV2NjcuMzIzMjQNCgkJCQljMCwyNC4yNjU2My0xOS42NzA5LDQzLjkzNzUtNDMuOTM2NTIsNDMuOTM3NXMtNDMuOTM3NS0xOS42NzE4OC00My45Mzc1LTQzLjkzNzVWMTIwMi4wMDA5OEw5ODQuNjMwODYsMTIwMi4wMDA5OHoNCgkJCQkgTTQ2Ni44NjkxNCwxMTk1LjYyMzA1YzMyLjQ4NDM4LDAsNTguODE4MzYsMjYuMzMzOTgsNTguODE4MzYsNTguODE5MzRjMCwzMi40ODQzOC0yNi4zMzM5OCw1OC44MTkzNC01OC44MTgzNiw1OC44MTkzNA0KCQkJCWMtMzIuNDg2MzMsMC01OC44MTkzNC0yNi4zMzQ5Ni01OC44MTkzNC01OC44MTkzNEM0MDguMDQ5OCwxMjIxLjk1NzAzLDQzNC4zODI4MSwxMTk1LjYyMzA1LDQ2Ni44NjkxNCwxMTk1LjYyMzA1DQoJCQkJTDQ2Ni44NjkxNCwxMTk1LjYyMzA1eiBNNDY2Ljg2OTE0LDEyMjUuMDMzMmMtMTYuMjQzMTYsMC0yOS40MTAxNiwxMy4xNjY5OS0yOS40MTAxNiwyOS40MDkxOA0KCQkJCXMxMy4xNjY5OSwyOS40MDgyLDI5LjQxMDE2LDI5LjQwODJjMTYuMjQxMjEsMCwyOS40MDgyLTEzLjE2NjAyLDI5LjQwODItMjkuNDA4MlM0ODMuMTEwMzUsMTIyNS4wMzMyLDQ2Ni44NjkxNCwxMjI1LjAzMzINCgkJCQlMNDY2Ljg2OTE0LDEyMjUuMDMzMnogTTU1Ni43MzI0MiwxMzExLjEzNDc3Yy0yLjM0NzY2LDAtNC4yNTE5NS0xLjkwMjM0LTQuMjUxOTUtNC4yNXYtOTQuOTYxOTENCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzM4My0xNC4xNzM4M2gzLjk1ODk4YzQuNjI1LDAsOC45NTg5OCwyLjI1Njg0LDExLjYxMTMzLDYuMDQ1OWw0MS4xMjIwNyw1OC43NDcwN3YtNTAuNjE5MTQNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2g5LjkyMTg4YzIuMzQ3NjYsMCw0LjI1MTk1LDEuOTA0Myw0LjI1MTk1LDQuMjUxOTV2OTQuOTYwOTQNCgkJCQljMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3MzgzLDE0LjE3Mjg1aC0zLjk1ODk4Yy00LjYyNSwwLTguOTU4OTgtMi4yNTU4Ni0xMS42MTEzMy02LjA0NDkybC00MS4xMjIwNy01OC43NDYwOXY1MC42MTgxNg0KCQkJCWMwLDcuODI5MS02LjM0NTcsMTQuMTcyODUtMTQuMTcyODUsMTQuMTcyODVINTU2LjczMjQyTDU1Ni43MzI0MiwxMzExLjEzNDc3eiBNMTIxNS4wMjA1MSwxMjExLjkyMjg1DQoJCQkJYzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTcyODUtMTQuMTczODNoNTAuMzE1NDNjMi4zNDg2MywwLDQuMjUxOTUsMS45MDQzLDQuMjUxOTUsNC4yNTE5NXY1LjY2OTkyDQoJCQkJYzAsNy44MjcxNS02LjM0NTcsMTQuMTcyODUtMTQuMTcyODUsMTQuMTcyODVoLTYuMDI0NDF2NzUuMTE4MTZjMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3Mjg1LDE0LjE3Mjg1aC05LjkyMTg4DQoJCQkJYy0yLjM0ODYzLDAtNC4yNTE5NS0xLjkwMjM0LTQuMjUxOTUtNC4yNXYtODUuMDQxMDJoLTE1Ljk0NDM0Yy0yLjM0ODYzLDAtNC4yNTE5NS0xLjkwMzMyLTQuMjUxOTUtNC4yNTE5NVYxMjExLjkyMjg1DQoJCQkJTDEyMTUuMDIwNTEsMTIxMS45MjI4NXogTTc3Ni40NDkyMiwxMjExLjkyMjg1YzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTczODMtMTQuMTczODNoNTAuMzE0NDUNCgkJCQljMi4zNDk2MSwwLDQuMjUxOTUsMS45MDQzLDQuMjUxOTUsNC4yNTE5NXY1LjY2OTkyYzAsNy44MjcxNS02LjM0NTcsMTQuMTcyODUtMTQuMTcxODgsMTQuMTcyODVoLTYuMDI1Mzl2NzUuMTE4MTYNCgkJCQljMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3Mjg1LDE0LjE3Mjg1aC05LjkyMDljLTIuMzQ5NjEsMC00LjI1MTk1LTEuOTAyMzQtNC4yNTE5NS00LjI1di04NS4wNDEwMmgtMTUuOTQ1MzENCgkJCQljLTIuMzQ3NjYsMC00LjI1MTk1LTEuOTAzMzItNC4yNTE5NS00LjI1MTk1VjEyMTEuOTIyODVMNzc2LjQ0OTIyLDEyMTEuOTIyODV6IE05MjkuNjA0NDksMTI3Mi4wMjI0NmwyNi45NTgwMSwzMi4xMjc5Mw0KCQkJCWMyLjMxNDQ1LDIuNzU3ODEsMC4zNDM3NSw2Ljk4NDM4LTMuMjU2ODQsNi45ODQzOGgtMTkuNzA1MDhjLTQuMTg5NDUsMC04LjE2NTA0LTEuODUxNTYtMTAuODU3NDItNS4wNjA1NWwtMjIuNjgxNjQtMjcuMDMxMjUNCgkJCQl2MjcuODQxOGMwLDIuMzQ3NjYtMS45MDMzMiw0LjI1LTQuMjUxOTUsNC4yNWgtOS45MjA5Yy03LjgyNzE1LDAtMTQuMTcyODUtNi4zNDM3NS0xNC4xNzI4NS0xNC4xNzI4NXYtODUuMDM5MDYNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2gyOS43NjM2N2MyMi43MDAyLDAsNDEuMTAyNTQsMTcuMTMzNzksNDEuMTAyNTQsMzguMjY4NTUNCgkJCQlDOTU2Ljc1NDg4LDEyNTIuNTkwODIsOTQ1LjQzNjUyLDEyNjYuNzAyMTUsOTI5LjYwNDQ5LDEyNzIuMDIyNDZMOTI5LjYwNDQ5LDEyNzIuMDIyNDZ6IE05MDAuMDYxNTIsMTIyMS44NDM3NXYzMi41OTg2M2g4LjUwMzkxDQoJCQkJYzEwLjk1ODk4LDAsMTkuODQyNzctNy4yOTc4NSwxOS44NDI3Ny0xNi4yOTg4M2MwLTkuMDAxOTUtOC44ODM3OS0xNi4yOTk4LTE5Ljg0Mjc3LTE2LjI5OThIOTAwLjA2MTUyTDkwMC4wNjE1MiwxMjIxLjg0Mzc1eg0KCQkJCSBNMTE1OC4zNTkzOCwxMTk1LjYyMzA1YzExLjM4NDc3LDAsMjIuMDEyNywzLjIzNzMsMzEuMDE3NTgsOC44Mzc4OWMxLjk0NzI3LDEuMjEwOTQsMi41ODQ5NiwzLjc0OTAyLDEuNDM4NDgsNS43MzQzOA0KCQkJCWwtNC45MzI2Miw4LjU0MTk5Yy0zLjI3ODMyLDUuNjc5NjktMTAuMDMzMiw4LjM3Njk1LTE2LjMxNzM4LDYuNTAwOThjLTIuNzY0NjUtMC44MjUyLTUuNjkzMzYtMS4yNjg1NS04LjcyNTU5LTEuMjY4NTUNCgkJCQljLTE2LjgyOTEsMC0zMC40NzI2NiwxMy42NDM1NS0zMC40NzI2NiwzMC40NzI2NmMwLDE2LjgyODEzLDEzLjY0MzU1LDMwLjQ3MjY2LDMwLjQ3MjY2LDMwLjQ3MjY2DQoJCQkJYzMuMDMyMjMsMCw1Ljk2MDk0LTAuNDQzMzYsOC43MjU1OS0xLjI2ODU1YzYuMjk1OS0xLjg3OTg4LDEzLjAzMzIsMC44MTE1MiwxNi4zMTgzNiw2LjUwMDk4bDQuOTMwNjYsOC41NDE5OQ0KCQkJCWMxLjE0NzQ2LDEuOTg4MjgsMC41MTA3NCw0LjUyMzQ0LTEuNDM3NSw1LjczNDM4Yy05LjAwNDg4LDUuNjAxNTYtMTkuNjMyODEsOC44Mzc4OS0zMS4wMTc1OCw4LjgzNzg5DQoJCQkJYy0zMi40ODUzNSwwLTU4LjgxOTM0LTI2LjMzNDk2LTU4LjgxOTM0LTU4LjgxOTM0QzEwOTkuNTQwMDQsMTIyMS45NTcwMywxMTI1Ljg3NDAyLDExOTUuNjIzMDUsMTE1OC4zNTkzOCwxMTk1LjYyMzA1eiIvPg0KCQkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMwMEZGREEiIGQ9Ik0xMzE4LjE5NzI3LDEyMDYuMDMyMjMNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2MyMC42NTYyNSwwLDQxLjMxMjUsMCw2MS45Njg3NSwwYzMuNDI5NjksMCw1LjQ1MDIsMy44ODA4NiwzLjQ4MzQsNi42OTA0Mw0KCQkJCWwtMTkuMjk2ODgsMjcuNTY3MzhjMTUuNTQyOTcsOC4zNzU5OCwyNi4xMDY0NSwyNC44MDA3OCwyNi4xMDY0NSw0My42OTUzMWMwLDI3LjM5NzQ2LTIyLjIwODk4LDQ5LjYwNjQ1LTQ5LjYwNjQ1LDQ5LjYwNjQ1DQoJCQkJYy0xNi42ODg0OCwwLTMxLjQ1MTE3LTguMjQwMjMtNDAuNDQzMzYtMjAuODc1OThjLTEuNDUwMi0yLjAzOTA2LTAuODMxMDUtNC44OTk0MSwxLjMzNTk0LTYuMTUyMzRsMTAuOTc3NTQtNi4zMzc4OQ0KCQkJCWM0Ljg4MTg0LTIuODE4MzYsMTAuOTc5NDktMi40NzU1OSwxNS41MTQ2NSwwLjg3MzA1YzMuNTI4MzIsMi42MDU0Nyw3Ljg5MTYsNC4xNDY0OCwxMi42MTUyMyw0LjE0NjQ4DQoJCQkJYzExLjc0MjE5LDAsMjEuMjU5NzctOS41MTg1NSwyMS4yNTk3Ny0yMS4yNTk3N3MtOS41MTc1OC0yMS4yNTk3Ny0yMS4yNTk3Ny0yMS4yNTk3N2gtMTUuMjE3NzcNCgkJCQljLTMuNDI5NjksMC01LjQ1MDItMy44ODA4Ni0zLjQ4NDM4LTYuNjkwNDNsMTguMTM1NzQtMjUuOTA4MmgtMzIuMDA5NzdjLTIuMzQ4NjMsMC00LjI1MTk1LTEuOTAzMzItNC4yNTE5NS00LjI1MTk1VjEyMDYuMDMyMjN6DQoJCQkJIi8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0RBRThGNyIgZD0iTTg1MC4zOTU1MSw4NTcuNTkxOA0KCQkJCQljLTUwLjM1NjQ1LDAtOTQuMzI1Mi0yNy4zNTY0NS0xMTcuODUyNTQtNjguMDIwNTFsLTgwLjAzMDI3LDQ2LjIwNDFjLTQuNjU1MjcsMi42ODk0NS02LjEzMTg0LDguNzE4NzUtMy4yNDkwMiwxMy4yNTU4Ng0KCQkJCQljNDIuMjM3Myw2Ni40ODYzMywxMTYuNTMzMiwxMTAuNjA3NDIsMjAxLjEzMTg0LDExMC42MDc0MmM4OC4xMjU5OCwwLDE2NS4wNzEyOS00Ny44NzUsMjA2LjI0MzE2LTExOS4wMzYxM2wtODAuNDg3My00Ni40Njk3Mw0KCQkJCQljLTQuMzEzNDgtMi40OTAyMy05LjgwMTc2LTEuMjA1MDgtMTIuNTcwMzEsMi45MzU1NUM5MzkuMTc1NzgsODMzLjU2MjUsODk3LjU5MTgsODU3LjU5MTgsODUwLjM5NTUxLDg1Ny41OTE4DQoJCQkJCUw4NTAuMzk1NTEsODU3LjU5MTh6IE0xMTM2LjcyMTY4LDU1Ni4yMTc3N2M0LjYxNDI2LTIuNjYzMDksNi4xMTAzNS04LjYxOTE0LDMuMzEyNS0xMy4xNTEzNw0KCQkJCQljLTU5LjkxNTA0LTk3LjAzMDI3LTE2Ny4yMjQ2MS0xNjEuNjk0MzQtMjg5LjYzODY3LTE2MS42OTQzNGMtMTI1Ljg5MzU1LDAtMjM1LjgxMzQ4LDY4LjM5MjU4LTI5NC42MzM3OSwxNzAuMDQ5OA0KCQkJCQlsODAuMzc2OTUsNDYuNDA2MjVjNC4zOTc0NiwyLjUzOTA2LDEwLjAwMTk1LDEuMTQ5NDEsMTIuNzEwOTQtMy4xNDU1MQ0KCQkJCQljNDIuMTY0MDYtNjYuODUxNTYsMTE2LjY2ODk1LTExMS4yNjM2NywyMDEuNTQ1OS0xMTEuMjYzNjdjODguMTI1OTgsMCwxNjUuMDcxMjksNDcuODc1OTgsMjA2LjI0MzE2LDExOS4wMzYxMw0KCQkJCQlMMTEzNi43MjE2OCw1NTYuMjE3Nzd6Ii8+DQoJCQkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNBNUJBQzgiIGQ9Ik04NTAuMzk1NTEsOTU5LjYzODY3DQoJCQkJCWMtODQuNTk4NjMsMC0xNTguODk0NTMtNDQuMTIxMDktMjAxLjEzMTg0LTExMC42MDc0MmMtMi44NzY5NS00LjUzMDI3LTEuMzk5NDEtMTAuNTcwMzEsMy4yNDkwMi0xMy4yNTU4Nmw4MC4wMzAyNy00Ni4yMDQxDQoJCQkJCWMtMTEuNTgxMDUtMjAuMDE2Ni0xOC4yMDk5Ni00My4yNTQ4OC0xOC4yMDk5Ni02OC4wNDE5OWMwLTc0Ljc4NTE2LDYwLjU1NzYyLTEzNi4wNjI1LDEzNi4wNjI1LTEzNi4wNjI1DQoJCQkJCWM0Ny4xOTYyOSwwLDg4Ljc4MDI3LDI0LjAyOTMsMTEzLjE4NTU1LDYwLjUyMjQ2YzIuNzY0NjUsNC4xMzM3OSw4LjI2MzY3LDUuNDIxODgsMTIuNTcwMzEsMi45MzU1NWw4MC40ODczLTQ2LjQ2OTczDQoJCQkJCWMtNDEuMTcxODgtNzEuMTYwMTYtMTE4LjExNzE5LTExOS4wMzYxMy0yMDYuMjQzMTYtMTE5LjAzNjEzYy04NC44NzY5NSwwLTE1OS4zODE4NCw0NC40MTIxMS0yMDEuNTQ1OSwxMTEuMjYzNjcNCgkJCQkJYy0yLjcwNjA1LDQuMjkxMDItOC4zMTgzNiw1LjY4MTY0LTEyLjcxMDk0LDMuMTQ1NTFsLTgwLjM3Njk1LTQ2LjQwNjI1DQoJCQkJCWMtMjguOTUyMTUsNTAuMDQwMDQtNDUuNTIzNDQsMTA4LjEzOTY1LTQ1LjUyMzQ0LDE3MC4xMDc0MmMwLDE4Ni45NjM4NywxNTEuMzk0NTMsMzQwLjE1NzIzLDM0MC4xNTcyMywzNDAuMTU3MjMNCgkJCQkJYzEyMi40MTQwNiwwLDIyOS43MjM2My02NC42NjQwNiwyODkuNjM4NjctMTYxLjY5NTMxYzIuNzk0OTItNC41MjYzNywxLjI5NDkyLTEwLjQ5MDIzLTMuMzEyNS0xMy4xNTEzN2wtODAuMDgzMDEtNDYuMjM3Mw0KCQkJCQlDMTAxNS40NjY4LDkxMS43NjM2Nyw5MzguNTIxNDgsOTU5LjYzODY3LDg1MC4zOTU1MSw5NTkuNjM4Njd6Ii8+DQoJCQk8L2c+DQoJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzAwRkZEQSIgZD0iTTExMzcuMTg1NTUsNzU4LjExMzI4di03My4xNjc5N2wtNjMuMzY1MjMsMzYuNTgzOTgNCgkJCQlMMTEzNy4xODU1NSw3NTguMTEzMjhMMTEzNy4xODU1NSw3NTguMTEzMjh6IE0xMDI2LjU3NjE3LDcwNS4xNjQwNmwxMjAuMDU4NTktNjkuMzE2NDENCgkJCQljMTIuNTY4MzYtNy4yNTU4NiwyOC4zNDQ3MywxLjg1MjU0LDI4LjM0NTcsMTYuMzY2MjF2MTM4LjYzMDg2Yy0wLjAwMDk4LDE0LjUxMjctMTUuNzc3MzQsMjMuNjIyMDctMjguMzQ1NywxNi4zNjYyMQ0KCQkJCWwtMTIwLjA1ODU5LTY5LjMxNjQxQzEwMTQuMDI4MzIsNzMwLjY0OTQxLDEwMTQuMDI4MzIsNzEyLjQwOTE4LDEwMjYuNTc2MTcsNzA1LjE2NDA2eiIvPg0KCQk8L2c+DQoJPC9nPg0KPC9nPg0KPC9zdmc+DQo=").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.logo=a}).catch((a)=>console.warn("Failed to load splash image: ",a)),this._LoadBitmapSplashImage("data:image/png;base64,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").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.powered=a}).catch((a)=>console.warn("Failed to load splash image: ",a)),this._LoadBitmapSplashImage("data:image/png;base64,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").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.website=a}).catch((a)=>console.warn("Failed to load splash image: ",a)))}async _LoadSvgSplashImage(a){a=new URL(a,this._runtime.GetBaseURL()).toString();const b=await C3.FetchBlob(a),c=await this._runtime.RasterSvgImage(b,2048,2048);return await this._webglRenderer.CreateStaticTextureAsync(c,{mipMapQuality:"high"})}async _LoadBitmapSplashImage(a){a=new URL(a,this._runtime.GetBaseURL()).toString();const b=await C3.FetchBlob(a);return await this._webglRenderer.CreateStaticTextureAsync(b,{mipMapQuality:"high"})}StartLoadingScreen(){this._loaderStartTime=Date.now(),this._runtime.Dispatcher().addEventListener("loadingprogress",this._loadingprogress_handler),this._rafId=requestAnimationFrame(()=>this._DrawLoadingScreen())}async EndLoadingScreen(){this._loadingProgress=1,4===this._runtime.GetLoaderStyle()&&(await this._splashDonePromise),this._splashDoneResolve=null,this._splashDonePromise=null,-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1),this._runtime.Dispatcher().removeEventListener("loadingprogress",this._loadingprogress_handler),this._loadingprogress_handler=null,this._webglPercentText&&(this._webglPercentText.Release(),this._webglPercentText=null),this._loadingLogoAsset&&(this._loadingLogoAsset.Release(),this._loadingLogoAsset=null),this._webglRenderer.Start(),this._splashTextures.logo&&(this._webglRenderer.DeleteTexture(this._splashTextures.logo),this._splashTextures.logo=null),this._splashTextures.powered&&(this._webglRenderer.DeleteTexture(this._splashTextures.powered),this._splashTextures.powered=null),this._splashTextures.website&&(this._webglRenderer.DeleteTexture(this._splashTextures.website),this._splashTextures.website=null),this._webglRenderer.ClearRgba(0,0,0,0),this._webglRenderer.Finish(),this._splashState="done",this._gpuTimeStartFrame=this._webglRenderer.GetFrameNumber()}_DrawLoadingScreen(){if(-1!==this._rafId){const a=this._webglRenderer;a.Start(),this._rafId=-1;const b=this._runtime.GetAssetManager().HasHadErrorLoading(),c=this._runtime.GetLoaderStyle();if(3!==c&&(this.SetCssTransform(a),a.ClearRgba(0,0,0,0),a.ResetColor(),a.SetTextureFillMode(),a.SetTexture(null)),0===c)this._DrawProgressBarAndLogoLoadingScreen(b);else if(1===c)this._DrawProgressBarLoadingScreen(b,120,0);else if(2===c)this._DrawPercentTextLoadingScreen(b);else if(3===c)C3.noop();else if(4===c)this._DrawSplashLoadingScreen(b);else throw new Error("invalid loader style");a.Finish(),this._rafId=requestAnimationFrame(()=>this._DrawLoadingScreen())}}_DrawPercentTextLoadingScreen(a){a?this._webglPercentText.SetColorRgb(1,0,0):this._webglPercentText.SetColorRgb(.6,.6,.6),this._webglPercentText.SetText(Math.round(100*this._loadingProgress)+"%");const b=this._canvasCssWidth/2,d=this._canvasCssHeight/2;c.setRect(b-150,d-100,b+150,d+100),this._webglRenderer.SetTexture(this._webglPercentText.GetTexture()),this._webglRenderer.Quad3(c,this._webglPercentText.GetTexRect())}_DrawProgressBarLoadingScreen(a,b,c){const e=this._webglRenderer;e.SetColorFillMode(),a?e.SetColorRgba(1,0,0,1):e.SetColorRgba(.118,.565,1,1);const f=this._canvasCssWidth/2,g=this._canvasCssHeight/2,h=b/2;d.setWH(f-h,g-4+c,Math.floor(b*this._loadingProgress),8),e.Rect(d),d.setWH(f-h,g-4+c,b,8),d.offset(-.5,-.5),d.inflate(.5,.5),e.SetColorRgba(0,0,0,1),e.LineRect2(d),d.inflate(1,1),e.SetColorRgba(1,1,1,1),e.LineRect2(d)}_DrawProgressBarAndLogoLoadingScreen(a){if(!this._loadingLogoAsset)return void this._DrawProgressBarLoadingScreen(a,120,0);const b=this._loadingLogoAsset.GetTexture();if(!b)return void this._DrawProgressBarLoadingScreen(a,120,0);const d=b.GetWidth(),e=b.GetHeight(),f=this._canvasCssWidth/2,g=this._canvasCssHeight/2,h=d/2,i=e/2;c.setRect(f-h,g-i,f+h,g+i),this._webglRenderer.SetTexture(b),this._webglRenderer.Quad(c),this._DrawProgressBarLoadingScreen(a,d,i+16)}_DrawSplashLoadingScreen(b){var c=Math.min,e=Math.max,f=Math.ceil;const g=this._webglRenderer,i=this._splashTextures.logo,j=this._splashTextures.powered,k=this._splashTextures.website,l=Date.now();0===this._splashFrameNumber&&(this._loaderStartTime=l);const m=this._runtime.IsPreview()||this._runtime.IsFBInstantAvailable()&&!this._runtime.IsCordova(),n=m?0:200,o=m?0:3000;let p=1;"fade-in"===this._splashState?p=c((l-this._loaderStartTime)/300,1):"fade-out"===this._splashState&&(p=e(1-(l-this._splashFadeOutStartTime)/300,0)),g.SetColorFillMode(),g.SetColorRgba(.231*p,.251*p,.271*p,p),d.set(0,0,this._canvasCssWidth,this._canvasCssHeight),g.Rect(d);const a=f(this._canvasCssWidth),q=f(this._canvasCssHeight);let h,r;256=300&&2<=this._splashFrameNumber&&(this._splashState="wait",this._splashFadeInFinishTime=l),"wait"===this._splashState&&l-this._splashFadeInFinishTime>=o&&1<=this._loadingProgress&&(this._splashState="fade-out",this._splashFadeOutStartTime=l),("fade-out"===this._splashState&&l-this._splashFadeOutStartTime>=300+n||m&&1<=this._loadingProgress&&500>l-this._loaderStartTime)&&this._splashDoneResolve()}}} + +// c3/runtime.js +"use strict";{const e={"messagePort":null,"baseUrl":"","headless":!1,"hasDom":!0,"isInWorker":!1,"useAudio":!0,"projectData":"","exportType":""};let a=!0;C3.Runtime=class extends C3.DefendedBase{constructor(n){n=Object.assign({},e,n);super(),this._messagePort=n["messagePort"],this._baseUrl=n["baseUrl"],this._isHeadless=!!n["headless"],this._hasDom=!!n["hasDom"],this._isInWorker=!!n["isInWorker"],a=n["ife"],this._useAudio=!!n["useAudio"],this._exportType=n["exportType"],this._isWKWebView=!!n["isWKWebView"],this._isFBInstantAvailable=!!n["isFBInstantAvailable"],this._opusWasmScriptUrl=n["opusWasmScriptUrl"],this._opusWasmBinaryUrl=n["opusWasmBinaryUrl"],this._dataJsonFilename="data.json",this._isDebug=!!("preview"===this._exportType&&n["isDebug"]),this._breakpointsEnabled=this._isDebug,this._isDebugging=this._isDebug,this._debuggingDisabled=0;const t=n["previewImageBlobs"],s=n["previewProjectFileBlobs"];s&&Object.assign(t,s);const i=n["projectData"];i&&(t[this._dataJsonFilename]=i),this._additionalLoadPromises=[],this._projectName="",this._projectVersion="",this._projectUniqueId="",this._originalViewportWidth=0,this._originalViewportHeight=0,this._parallaxXorigin=0,this._parallaxYorigin=0,this._viewportWidth=0,this._viewportHeight=0,this._loaderStyle=0,this._usesLoaderLayout=!1,this._isLoading=!0,this._usesAnyBackgroundBlending=!1;const r="html5"===this._exportType||"scirra-arcade"===this._exportType;this._assetManager=C3.New(C3.AssetManager,this,{defaultLoadPolicy:r?"remote":"local",localUrlBlobs:t,isCordova:"cordova"===this._exportType,isWKWebView:this._isWKWebView,supportedAudioFormats:n["supportedAudioFormats"]}),this._layoutManager=C3.New(C3.LayoutManager,this),this._eventSheetManager=C3.New(C3.EventSheetManager,this),this._pluginManager=C3.New(C3.PluginManager,this),this._collisionEngine=C3.New(C3.CollisionEngine,this),this._timelineManager=C3.New(C3.TimelineManager,this),this._allObjectClasses=[],this._objectClassesByName=new Map,this._objectClassesBySid=new Map,this._familyCount=0,this._allContainers=[],this._allEffectLists=[],this._currentLayoutStack=[],this._instancesPendingCreate=[],this._instancesPendingDestroy=new Map,this._hasPendingInstances=!1,this._isFlushingPendingInstances=!1,this._objectCount=0,this._nextUid=0,this._instancesByUid=new Map,this._instancesToReleaseAtEndOfTick=new Set,this._instancesToReleaseAffectedObjectClasses=new Set,this._objectReferenceTable=[],this._canvasManager=null,this._sampling="trilinear",this._isPixelRoundingEnabled=!1,this._needRender=!0,this._pauseOnBlur=!1,this._isPausedOnBlur=!1,this._tickCallback=(e)=>this.Tick(e),this._rafId=-1,this._tickCount=0,this._tickCountNoSave=0,this._execCount=0,this._hasStarted=!1,this._isInTick=!1,this._hasStartedTicking=!1,this._isLayoutFirstTick=!0,this._suspendCount=0,this._scheduleTriggersThrottle=new C3.PromiseThrottle(1),this._randomNumberCallback=()=>Math.random(),this._startTime=0,this._lastTickTime=0,this._dt1=0,this._dt=0,this._timeScale=1,this._minimumFramerate=30,this._gameTime=C3.New(C3.KahanSum),this._wallTime=C3.New(C3.KahanSum),this._fpsFrameCount=-1,this._fpsLastTime=0,this._fps=0,this._mainThreadTimeCounter=0,this._mainThreadTime=0,this._isLoadingState=!1,this._saveToSlotName="",this._loadFromSlotName="",this._loadFromJson=null,this._lastSaveJson="",this._triggerOnCreateAfterLoad=[],this._savegamesStorage=null,this._dispatcher=C3.New(C3.Event.Dispatcher),this._domEventHandlers=new Map,this._pendingResponsePromises=new Map,this._nextDomResponseId=0,this._didRequestDeviceOrientationEvent=!1,this._didRequestDeviceMotionEvent=!1,this._isReadyToHandleEvents=!1,this._waitingToHandleEvents=[],this._eventObjects={"pretick":C3.New(C3.Event,"pretick",!1),"tick":C3.New(C3.Event,"tick",!1),"tick2":C3.New(C3.Event,"tick2",!1),"instancedestroy":C3.New(C3.Event,"instancedestroy",!1),"beforelayoutchange":C3.New(C3.Event,"beforelayoutchange",!1),"layoutchange":C3.New(C3.Event,"layoutchange",!1)},this._eventObjects["instancedestroy"].instance=null,this._behInstsToTick=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._behInstsToPostTick=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._behInstsToTick2=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._jobScheduler=C3.New(C3.JobSchedulerRuntime,this,n["jobScheduler"]),n["canvas"]&&(this._canvasManager=C3.New(C3.CanvasManager,this)),this._messagePort.onmessage=(a)=>this["_OnMessageFromDOM"](a.data),this.AddDOMComponentMessageHandler("runtime","visibilitychange",(a)=>this._OnVisibilityChange(a)),this.AddDOMComponentMessageHandler("runtime","opus-decode",(a)=>this._WasmDecodeWebMOpus(a["arrayBuffer"])),this.AddDOMComponentMessageHandler("runtime","get-remote-preview-status-info",()=>this._GetRemotePreviewStatusInfo()),this._dispatcher.addEventListener("window-blur",(a)=>this._OnWindowBlur(a)),this._dispatcher.addEventListener("window-focus",()=>this._OnWindowFocus()),this._timelineManager.AddRuntimeListeners()}static Create(e){return C3.New(C3.Runtime,e)}Release(){C3.clearArray(this._allObjectClasses),this._objectClassesByName.clear(),this._objectClassesBySid.clear(),this._layoutManager.Release(),this._layoutManager=null,this._eventSheetManager.Release(),this._eventSheetManager=null,this._pluginManager.Release(),this._pluginManager=null,this._assetManager.Release(),this._assetManager=null,this._collisionEngine.Release(),this._collisionEngine=null,this._timelineManager.Release(),this._timelineManager=null,this._canvasManager&&(this._canvasManager.Release(),this._canvasManager=null),this._dispatcher.Release(),this._dispatcher=null,this._tickEvent=null,this._tickCallback=null}["_OnMessageFromDOM"](e){const a=e["type"];if("event"===a)this._OnEventFromDOM(e);else if("result"===a)this._OnResultFromDOM(e);else throw new Error(`unknown message '${a}'`)}_OnEventFromDOM(a){if(!this._isReadyToHandleEvents)return void this._waitingToHandleEvents.push(a);const e=a["component"],n=a["handler"],t=a["data"],s=a["dispatchRuntimeEvent"],i=a["responseId"];if("runtime"===e&&s){const e=new C3.Event(n);e.data=t,this._dispatcher.dispatchEventAndWaitAsyncSequential(e)}const r=this._domEventHandlers.get(e);if(!r)return void(s||console.warn(`[Runtime] No DOM event handlers for component '${e}'`));const o=r.get(n);if(!o)return void(s||console.warn(`[Runtime] No DOM handler '${n}' for component '${e}'`));let d=null;try{d=o(t)}catch(a){return console.error(`Exception in '${e}' handler '${n}':`,a),void(null!==i&&this._PostResultToDOM(i,!1,a.toString()))}null!==i&&(d&&d.then?d.then((e)=>this._PostResultToDOM(i,!0,e)).catch((a)=>{console.error(`Rejection from '${e}' handler '${n}':`,a),this._PostResultToDOM(i,!1,a.toString())}):this._PostResultToDOM(i,!0,d))}_PostResultToDOM(e,a,n){this._messagePort.postMessage({"type":"result","responseId":e,"isOk":a,"result":n})}_OnResultFromDOM(e){const a=e["responseId"],n=e["isOk"],t=e["result"],s=this._pendingResponsePromises.get(a);n?s.resolve(t):s.reject(t),this._pendingResponsePromises.delete(a)}AddDOMComponentMessageHandler(e,a,n){let t=this._domEventHandlers.get(e);if(t||(t=new Map,this._domEventHandlers.set(e,t)),t.has(a))throw new Error(`[Runtime] Component '${e}' already has handler '${a}'`);t.set(a,n)}PostComponentMessageToDOM(e,a,n){this._messagePort.postMessage({"type":"event","component":e,"handler":a,"data":n,"responseId":null})}PostComponentMessageToDOMAsync(e,a,n){const t=this._nextDomResponseId++,s=new Promise((e,a)=>{this._pendingResponsePromises.set(t,{resolve:e,reject:a})});return this._messagePort.postMessage({"type":"event","component":e,"handler":a,"data":n,"responseId":t}),s}PostToDebugger(e){if(!this.IsDebug())throw new Error("not in debug mode");this.PostComponentMessageToDOM("runtime","post-to-debugger",e)}async Init(e){this.IsDebug()&&(await C3Debugger.Init(this));const[a]=await Promise.all([this._assetManager.FetchJson(this._dataJsonFilename),this._MaybeLoadOpusDecoder(),this._jobScheduler.Init()]);this._LoadDataJson(a),await this._InitialiseCanvas(e),this.IsPreview()||console.info("Made with Construct 3, the game and app creator :: https://www.construct.net");const n=this.GetWebGLRenderer();n?(console.info(`[C3 runtime] Hosted in ${this.IsInWorker()?"worker":"DOM"}, rendering with WebGL ${n.GetWebGLVersionNumber()} [${n.GetUnmaskedRenderer()}]`),n.HasMajorPerformanceCaveat()&&console.warn("[C3 runtime] WebGL indicates a major performance caveat. Software rendering may be in use. This can result in significantly degraded performance.")):console.info(`[C3 runtime] Hosted in ${this.IsInWorker()?"worker":"DOM"}, headless`),this._isReadyToHandleEvents=!0;for(const a of this._waitingToHandleEvents)this._OnEventFromDOM(a);if(C3.clearArray(this._waitingToHandleEvents),this._canvasManager&&this._canvasManager.StartLoadingScreen(),await Promise.all([this._assetManager.WaitForAllToLoad(),...this._additionalLoadPromises]),!this._assetManager.HasHadErrorLoading())return this._canvasManager&&(await this._canvasManager.EndLoadingScreen()),await this._dispatcher.dispatchEventAndWaitAsync(new C3.Event("beforeruntimestart")),await this.Start(),this._messagePort.postMessage({"type":"runtime-ready"}),this}_LoadDataJson(e){const a=e["project"];this._projectName=a[0],this._projectVersion=a[16],this._projectUniqueId=a[31],this._isPixelRoundingEnabled=!!a[9],this._originalViewportWidth=this._viewportWidth=a[10],this._originalViewportHeight=this._viewportHeight=a[11],this._parallaxXorigin=this._originalViewportWidth/2,this._parallaxYorigin=this._originalViewportHeight/2,this._sampling=a[14],this._usesLoaderLayout=!!a[18],this._loaderStyle=a[19],this._nextUid=a[21],this._pauseOnBlur=a[22],this._assetManager._SetAudioFiles(a[7],a[25]),this._assetManager._SetMediaSubfolder(a[8]),this._assetManager._SetFontsSubfolder(a[32]),this._assetManager._SetIconsSubfolder(a[28]),this._assetManager._SetWebFonts(a[29]),this._canvasManager&&(this._canvasManager.SetFullscreenMode(C3.CanvasManager._FullscreenModeNumberToString(a[12])),this._canvasManager.SetFullscreenScalingQuality(a[23]?"high":"low"),this._canvasManager._SetGPUPowerPreference(a[34])),this._pluginManager.CreateSystemPlugin(),this._objectReferenceTable=self.C3_GetObjectRefTable();for(const n of a[2])this._pluginManager.CreatePlugin(n);this._objectReferenceTable=self.C3_GetObjectRefTable();for(const n of a[3]){const e=C3.ObjectClass.Create(this,this._allObjectClasses.length,n);this._allObjectClasses.push(e),this._objectClassesByName.set(e.GetName().toLowerCase(),e),this._objectClassesBySid.set(e.GetSID(),e)}for(const n of a[4]){const e=this._allObjectClasses[n[0]];e._LoadFamily(n)}for(const n of a[27]){const e=n.map((e)=>this._allObjectClasses[e]);this._allContainers.push(C3.New(C3.Container,this,e))}for(const a of this._allObjectClasses)a._OnAfterCreate();for(const n of a[5])this._layoutManager.Create(n);const n=a[1];if(n){const e=this._layoutManager.GetLayoutByName(n);e&&this._layoutManager.SetFirstLayout(e)}for(const n of a[33])this._timelineManager.Create(n);for(const n of a[6])this._eventSheetManager.Create(n);this._eventSheetManager._PostInit(),C3.clearArray(this._objectReferenceTable),this.FlushPendingInstances();let t="any";const s=a[20];1===s?t="portrait":2===s&&(t="landscape"),this.PostComponentMessageToDOM("runtime","set-target-orientation",{"targetOrientation":t})}GetLoaderStyle(){return this._loaderStyle}IsFBInstantAvailable(){return this._isFBInstantAvailable}IsLoading(){return this._isLoading}AddLoadPromise(e){this._additionalLoadPromises.push(e)}_GetNextFamilyIndex(){return this._familyCount++}GetFamilyCount(){return this._familyCount}_AddEffectList(e){this._allEffectLists.push(e)}_GetAllEffectLists(){return this._allEffectLists}async _InitialiseCanvas(e){this._canvasManager&&(await this._canvasManager.CreateCanvas(e),this._canvasManager.InitLoadingScreen(this._loaderStyle))}async _MaybeLoadOpusDecoder(){if(this._assetManager.IsAudioFormatSupported("audio/webm; codecs=opus"))return;let e=null,a=null;try{this.IsWKWebView()?a=await this._assetManager.CordovaFetchLocalFileAsArrayBuffer(this._opusWasmBinaryUrl):e=await this._assetManager.FetchBlob(this._opusWasmBinaryUrl)}catch(e){return void console.info("Failed to fetch Opus decoder WASM; assuming project has no Opus audio.",e)}a?this.AddJobWorkerBuffer(a,"opus-decoder-wasm"):this.AddJobWorkerBlob(e,"opus-decoder-wasm"),await this.AddJobWorkerScripts([this._opusWasmScriptUrl])}async _WasmDecodeWebMOpus(e){const a=await this.AddJob("OpusDecode",{"arrayBuffer":e},[e]);return a}async Start(){if(this._hasStarted=!0,this._startTime=Date.now(),this._usesLoaderLayout){for(const e of this._allObjectClasses)e.IsFamily()||e.IsOnLoaderLayout()||!e.IsWorldType()||e.OnCreate();this._assetManager.WaitForAllToLoad().then(()=>{this._isLoading=!1,this._OnLoadFinished()})}else this._isLoading=!1;this._assetManager.SetInitialLoadFinished(),this.IsDebug()&&C3Debugger.RuntimeInit(a);for(const e of this._layoutManager.GetAllLayouts())e._CreateGlobalNonWorlds();const e=this._layoutManager.GetFirstLayout();await e._Load(null,this.GetWebGLRenderer()),await e._StartRunning(!0),this._fpsLastTime=performance.now(),this._usesLoaderLayout||this._OnLoadFinished();const n=await this.PostComponentMessageToDOMAsync("runtime","before-start-ticking");n["isSuspended"]?this._suspendCount++:this.Tick()}_OnLoadFinished(){this.Trigger(C3.Plugins.System.Cnds.OnLoadFinished,null),this.PostComponentMessageToDOM("runtime","register-sw")}GetObjectReference(e){if(e=Math.floor(e),0>e||e>=this._objectReferenceTable.length)throw new Error("invalid object reference");return this._objectReferenceTable[e]}HasDOM(){return this._hasDom}IsHeadless(){return this._isHeadless}IsInWorker(){return this._isInWorker}GetBaseURL(){return this._baseUrl}GetEventSheetManager(){return this._eventSheetManager}GetEventStack(){return this._eventSheetManager.GetEventStack()}GetCurrentEventStackFrame(){return this._eventSheetManager.GetCurrentEventStackFrame()}GetCurrentEvent(){return this._eventSheetManager.GetCurrentEvent()}GetCurrentCondition(){return this._eventSheetManager.GetCurrentCondition()}IsCurrentConditionFirst(){return 0===this.GetCurrentEventStackFrame().GetConditionIndex()}GetCurrentAction(){return this._eventSheetManager.GetCurrentAction()}GetPluginManager(){return this._pluginManager}GetSystemPlugin(){return this._pluginManager.GetSystemPlugin()}GetObjectClassByIndex(e){if(e=Math.floor(e),0>e||e>=this._allObjectClasses.length)throw new RangeError("invalid index");return this._allObjectClasses[e]}GetObjectClassByName(e){return this._objectClassesByName.get(e.toLowerCase())||null}GetObjectClassBySID(e){return this._objectClassesBySid.get(e)||null}GetSingleGlobalObjectClassByCtor(e){const a=this._pluginManager.GetPluginByConstructorFunction(e);return a?a.GetSingleGlobalObjectClass():null}GetAllObjectClasses(){return this._allObjectClasses}Dispatcher(){return this._dispatcher}GetOriginalViewportWidth(){return this._originalViewportWidth}GetOriginalViewportHeight(){return this._originalViewportHeight}SetOriginalViewportSize(e,a){this._originalViewportWidth=e,this._originalViewportHeight=a}GetViewportWidth(){return this._viewportWidth}GetViewportHeight(){return this._viewportHeight}SetViewportSize(e,a){this._viewportWidth=e,this._viewportHeight=a}GetParallaxXOrigin(){return this._parallaxXorigin}GetParallaxYOrigin(){return this._parallaxYorigin}GetCanvasManager(){return this._canvasManager}GetDrawWidth(){return this._canvasManager?this._canvasManager.GetDrawWidth():this._viewportWidth}GetDrawHeight(){return this._canvasManager?this._canvasManager.GetDrawHeight():this._viewportHeight}GetRenderScale(){return this._canvasManager?this._canvasManager.GetRenderScale():1}GetDisplayScale(){return this._canvasManager?this._canvasManager.GetDisplayScale():1}GetCanvasClientX(){return this._canvasManager?this._canvasManager.GetCanvasClientX():0}GetCanvasClientY(){return this._canvasManager?this._canvasManager.GetCanvasClientY():0}GetCanvasCssWidth(){return this._canvasManager?this._canvasManager.GetCssWidth():0}GetCanvasCssHeight(){return this._canvasManager?this._canvasManager.GetCssHeight():0}GetFullscreenMode(){return this._canvasManager?this._canvasManager.GetFullscreenMode():"off"}GetAdditionalRenderTarget(e){return this._canvasManager?this._canvasManager.GetAdditionalRenderTarget(e):null}ReleaseAdditionalRenderTarget(e){this._canvasManager&&this._canvasManager.ReleaseAdditionalRenderTarget(e)}_SetUsesAnyBackgroundBlending(e){this._usesAnyBackgroundBlending=!!e}UsesAnyBackgroundBlending(){return this._usesAnyBackgroundBlending}GetGPUUtilisation(){return this._canvasManager?this._canvasManager.GetGPUUtilisation():NaN}IsLinearSampling(){return"nearest"!==this.GetSampling()}GetSampling(){return this._sampling}UsesLoaderLayout(){return this._usesLoaderLayout}GetLayoutManager(){return this._layoutManager}GetMainRunningLayout(){return this._layoutManager.GetMainRunningLayout()}GetTimelineManager(){return this._timelineManager}GetAssetManager(){return this._assetManager}LoadImage(e){return this._assetManager.LoadImage(e)}CreateInstance(e,a,n,t){return this.CreateInstanceFromData(e,a,!1,n,t)}CreateInstanceFromData(e,a,n,t,s,i){let r=null,o=null;if(e instanceof C3.ObjectClass){if(o=e,o.IsFamily()){const e=o.GetFamilyMembers(),a=Math.floor(this.Random()*e.length);o=e[a]}r=o.GetDefaultInstanceData()}else r=e,o=this.GetObjectClassByIndex(r[1]);const d=o.GetPlugin().IsWorldType();if(this._isLoading&&d&&!o.IsOnLoaderLayout())return null;const _=a;d||(a=null);let l=n&&!i&&r&&!this._instancesByUid.has(r[2])?r[2]:this._nextUid++;const g=r?r[0]:null,u=C3.New(C3.Instance,{runtime:this,objectType:o,layer:a,worldData:g,instVarData:r?r[3]:null,uid:l});this._instancesByUid.set(l,u);let c=null;if(d&&(c=u.GetWorldInfo(),"undefined"!=typeof t&&"undefined"!=typeof s&&(c.SetX(t),c.SetY(s)),o._SetAnyCollisionCellChanged(!0)),a&&(a._AddInstance(u,!0),(1!==a.GetParallaxX()||1!==a.GetParallaxY())&&o._SetAnyInstanceParallaxed(!0),a.GetLayout().MaybeLoadTexturesFor(o)),(this._objectCount++,o.IsInContainer()&&!n&&!i)){for(const e of o.GetContainer().objectTypes()){if(e===o)continue;const a=this.CreateInstanceFromData(e,_,!1,c?c.GetX():t,c?c.GetY():s,!0);u._AddSibling(a)}for(const e of u.siblings()){e._AddSibling(u);for(const a of u.siblings())e!==a&&e._AddSibling(a)}}o._SetIIDsStale();const m=r?C3.cloneArray(r[5]):null,p=r?r[4].map((e)=>C3.cloneArray(e)):null;if(u._CreateSdkInstance(m,p),d&&g&&14===g.length){const e=g[13];u._SetHasTilemap(),u.GetSdkInstance().LoadTilemapData(e[2],e[0],e[1])}return this._instancesPendingCreate.push(u),this._hasPendingInstances=!0,this.IsDebug()&&C3Debugger.InstanceCreated(u),u}DestroyInstance(e){if(this._instancesToReleaseAtEndOfTick.has(e))return;const a=e.GetObjectClass();let n=this._instancesPendingDestroy.get(a);if(n){if(n.has(e))return;n.add(e)}else n=new Set,n.add(e),this._instancesPendingDestroy.set(a,n);if(this.IsDebug()&&C3Debugger.InstanceDestroyed(e),e._MarkDestroyed(),this._hasPendingInstances=!0,e.IsInContainer())for(const a of e.siblings())this.DestroyInstance(a);if(this._isFlushingPendingInstances&&C3.NotYetImplemented(),!this._layoutManager.IsEndingLayout()){const a=this.GetEventSheetManager();a.BlockFlushingInstances(!0),e._TriggerOnDestroyed(),a.BlockFlushingInstances(!1)}}FlushPendingInstances(){this._hasPendingInstances&&(this._isFlushingPendingInstances=!0,this._FlushInstancesPendingCreate(),this._FlushInstancesPendingDestroy(),this._isFlushingPendingInstances=!1,this._hasPendingInstances=!1,this.UpdateRender())}_FlushInstancesPendingCreate(){for(const e of this._instancesPendingCreate){const a=e.GetObjectClass();a._AddInstance(e);for(const n of a.GetFamilies())n._AddInstance(e),n._SetIIDsStale()}C3.clearArray(this._instancesPendingCreate)}_FlushInstancesPendingDestroy(){this._dispatcher.SetDelayRemoveEventsEnabled(!0);for(const[e,a]of this._instancesPendingDestroy.entries())this._FlushInstancesPendingDestroyForObjectClass(e,a),a.clear();this._instancesPendingDestroy.clear(),this._dispatcher.SetDelayRemoveEventsEnabled(!1)}_FlushInstancesPendingDestroyForObjectClass(e,a){C3.arrayRemoveAllInSet(e.GetInstances(),a),e._SetIIDsStale(),this._instancesToReleaseAffectedObjectClasses.add(e),0===e.GetInstances().length&&e._SetAnyInstanceParallaxed(!1);for(const n of e.GetFamilies())C3.arrayRemoveAllInSet(n.GetInstances(),a),n._SetIIDsStale(),this._instancesToReleaseAffectedObjectClasses.add(n);if(e.GetPlugin().IsWorldType()){const e=new Set([...a].map((e)=>e.GetWorldInfo().GetLayer()));for(const n of e)n._RemoveAllInstancesInSet(a)}for(const n of a){const e=this._eventObjects["instancedestroy"];e.instance=n,this._dispatcher.dispatchEvent(e),this._instancesByUid.delete(n.GetUID());const a=n.GetWorldInfo();a&&(a._RemoveFromCollisionCells(),a._RemoveFromRenderCells()),this._instancesToReleaseAtEndOfTick.add(n),this._objectCount--}}_GetInstancesPendingCreate(){return this._instancesPendingCreate}_GetNewUID(){return this._nextUid++}_MapInstanceByUID(e,a){this._instancesByUid.set(e,a)}_OnWebGLContextLost(){this._dispatcher.dispatchEvent(C3.New(C3.Event,"webglcontextlost")),this.SetSuspended(!0);for(const e of this._allObjectClasses)!e.IsFamily()&&e.HasLoadedTextures()&&e.ReleaseTextures();this.GetMainRunningLayout()._OnWebGLContextLost(),C3.ImageInfo.OnWebGLContextLost(),C3.ImageAsset.OnWebGLContextLost()}async _OnWebGLContextRestored(){await this.GetMainRunningLayout()._Load(null,this.GetWebGLRenderer()),this._dispatcher.dispatchEvent(C3.New(C3.Event,"webglcontextrestored")),this.SetSuspended(!1),this.UpdateRender()}_OnVisibilityChange(a){this.SetSuspended(a["hidden"])}_OnWindowBlur(a){this.IsPreview()&&this._pauseOnBlur&&!C3.Platform.IsMobile&&(a.data["parentHasFocus"]||(this.SetSuspended(!0),this._isPausedOnBlur=!0))}_OnWindowFocus(){this._isPausedOnBlur&&(this.SetSuspended(!1),this._isPausedOnBlur=!1)}IsSuspended(){return 0this._suspendCount&&(this._suspendCount=0);const n=this.IsSuspended();if(!a&&n)console.log("[Construct 3] Suspending"),-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1),this._dispatcher.dispatchEvent(C3.New(C3.Event,"suspend")),this.Trigger(C3.Plugins.System.Cnds.OnSuspend,null);else if(a&&!n){console.log("[Construct 3] Resuming");const e=performance.now();this._lastTickTime=e,this._fpsLastTime=e,this._fpsFrameCount=0,this._fps=0,this._mainThreadTime=0,this._mainThreadTimeCounter=0,this._dispatcher.dispatchEvent(C3.New(C3.Event,"resume")),this.Trigger(C3.Plugins.System.Cnds.OnResume,null),this.HitBreakpoint()||this.Tick(e)}}_AddBehInstToTick(e){this._behInstsToTick.Add(e)}_AddBehInstToPostTick(e){this._behInstsToPostTick.Add(e)}_AddBehInstToTick2(e){this._behInstsToTick2.Add(e)}_RemoveBehInstToTick(e){this._behInstsToTick.Remove(e)}_RemoveBehInstToPostTick(e){this._behInstsToPostTick.Remove(e)}_RemoveBehInstToTick2(e){this._behInstsToTick2.Remove(e)}_BehaviorTick(){for(const e of this._behInstsToTick)e.Tick()}_BehaviorPostTick(){for(const e of this._behInstsToPostTick)e.PostTick()}_BehaviorTick2(){for(const e of this._behInstsToTick2)e.Tick2()}*_DebugBehaviorTick(){for(const e of this._behInstsToTick){const a=e.Tick();C3.IsIterator(a)&&(yield*a)}}*_DebugBehaviorPostTick(){for(const e of this._behInstsToPostTick){const a=e.PostTick();C3.IsIterator(a)&&(yield*a)}}*_DebugBehaviorTick2(){for(const e of this._behInstsToTick2){const a=e.Tick2();C3.IsIterator(a)&&(yield*a)}}async Tick(e,a){if(this._rafId=-1,this._hasStartedTicking=!0,this._hasStarted&&(!this.IsSuspended()||a)){const a=performance.now();this._isInTick=!0,e||(e=a),await this.Step(e),this.Render(),this.IsSuspended()||-1!==this._rafId||(this._rafId=self.requestAnimationFrame(this._tickCallback)),this._tickCount++,this._tickCountNoSave++,this._execCount++,this._isInTick=!1,this._mainThreadTimeCounter+=performance.now()-a}}async Step(e){const a=this._eventSheetManager,n=this._dispatcher,t=this._eventObjects,s=this.IsDebug(),i=this.IsDebugging();if(this._MeasureDt(e),this.FlushPendingInstances(),a.BlockFlushingInstances(!0),this.PushCurrentLayout(this.GetMainRunningLayout()),s&&C3Debugger.StartMeasuringTime(),i?await a.DebugRunScheduledWaits():a.RunScheduledWaits(),s&&C3Debugger.AddEventsTime(),this.PopCurrentLayout(),a.BlockFlushingInstances(!1),this.FlushPendingInstances(),a.BlockFlushingInstances(!0),await n.dispatchEventAndWaitAsync(t["pretick"]),s&&C3Debugger.StartMeasuringTime(),i?await this.DebugIterateAndBreak(this._DebugBehaviorTick()):this._BehaviorTick(),i?await this.DebugIterateAndBreak(this._DebugBehaviorPostTick()):this._BehaviorPostTick(),s&&C3Debugger.AddBehaviorTickTime(),s&&C3Debugger.StartMeasuringTime(),i?await this.DebugFireGeneratorEventAndBreak(t["tick"]):n.dispatchEvent(t["tick"]),s&&C3Debugger.AddPluginTickTime(),a.BlockFlushingInstances(!1),this._NeedsHandleSaveOrLoad()&&(await this._HandleSaveOrLoad()),this.GetLayoutManager().IsPendingChangeMainLayout()&&(await this._MaybeChangeLayout()),s&&C3Debugger.StartMeasuringTime(),i?await a.DebugRunEvents(this._layoutManager):a.RunEvents(this._layoutManager),s&&C3Debugger.AddEventsTime(),this._collisionEngine.ClearRegisteredCollisions(),0a++;)await this._DoChangeLayout(e.GetPendingChangeMainLayout())}_MeasureDt(e){if(0!==this._lastTickTime){const a=Math.max(e-this._lastTickTime,0);this._dt1=a/1e3;const n=1/this._minimumFramerate;.5n&&(this._dt1=n)}this._lastTickTime=e,this._dt=this._dt1*this._timeScale,this._gameTime.Add(this._dt),this._wallTime.Add(this._dt1),this._canvasManager&&this._canvasManager._UpdateTick(),1e3<=e-this._fpsLastTime&&(this._fpsLastTime+=1e3,1e3<=e-this._fpsLastTime&&(this._fpsLastTime=e),this._fps=this._fpsFrameCount,this._fpsFrameCount=0,this._mainThreadTime=Math.min(this._mainThreadTimeCounter/1e3,1),this._mainThreadTimeCounter=0,this._canvasManager&&this._canvasManager._Update1sFrameRange(),this._collisionEngine._Update1sStats(),this.IsDebug()&&C3Debugger.Update1sPerfStats()),this._fpsFrameCount++}async _DoChangeLayout(e){const a=this._dispatcher,n=this.GetLayoutManager(),t=n.GetMainRunningLayout();await t._StopRunning(),t._Unload(e,this.GetWebGLRenderer()),t===e&&this._eventSheetManager.ClearAllScheduledWaits(),this._collisionEngine.ClearRegisteredCollisions(),a.dispatchEvent(this._eventObjects["beforelayoutchange"]),await e._Load(t,this.GetWebGLRenderer()),await e._StartRunning(!1),a.dispatchEvent(this._eventObjects["layoutchange"]),this.UpdateRender(),this._isLayoutFirstTick=!0,this.FlushPendingInstances()}UpdateRender(){this._needRender=!0}GetWebGLRenderer(){return this._canvasManager?this._canvasManager.GetWebGLRenderer():null}Render(){if(!this._canvasManager||this._canvasManager.IsWebGLContextLost())return;const e=this.GetWebGLRenderer();if(e.Start(),e.CheckForQueryResults(),!this._needRender)return void e.IncrementFrameNumber();const a=this.IsDebug();a&&C3Debugger.StartMeasuringTime(),this._needRender=!1;let n=null;e.SupportsGPUProfiling()&&(n=this._canvasManager.GetGPUFrameTimingsBuffer().AddTimeElapsedQuery(),e.StartQuery(n)),e.SetTextureFillMode(),e.SetAlphaBlend(),e.SetColorRgba(1,1,1,1),e.SetRenderTarget(null),e.SetTexture(null);const t=this._layoutManager.GetMainRunningLayout();t.Draw(e),n&&e.EndQuery(n),e.Finish(),a&&(C3Debugger.AddDrawCallsTime(),C3Debugger.UpdateInspectHighlight()),this._canvasManager&&this._canvasManager._MaybeTakeSnapshot()}Trigger(e,a){if(!this._hasStarted)return!1;const n=!this._isInTick&&!this._eventSheetManager.IsInTrigger();let t=0;n&&(t=performance.now());const s=this.IsDebug();s&&this.SetDebuggingEnabled(!1);const i=this._eventSheetManager._Trigger(this._layoutManager,e,a);if(n){const e=performance.now()-t;this._mainThreadTimeCounter+=e,s&&C3Debugger.AddTriggersTime(e)}return s&&this.SetDebuggingEnabled(!0),i}DebugTrigger(e,a){if(!this.IsDebug())return this.Trigger(e,a);if(this.HitBreakpoint())throw new Error("called DebugTrigger() while stopped on breakpoint");if(!this._isInTick&&!this._eventSheetManager.IsInTrigger())throw new Error("called DebugTrigger() outside of event code - use TriggerAsync() instead");return this._eventSheetManager._DebugTrigger(this._layoutManager,e,a)}async TriggerAsync(e,a){if(!this.IsDebugging())return this.Trigger(e,a);if(!this._hasStarted)return!1;if(this.HitBreakpoint())return this._eventSheetManager.QueueDebugTrigger(e,a);if(!this.GetMainRunningLayout())return this._eventSheetManager.QueueTrigger(e,a);const n=performance.now(),t=this._eventSheetManager._DebugTrigger(this._layoutManager,e,a);let s=t.next();for(;!s.done;)await this.DebugBreak(s.value),s=t.next();return this.IsSuspended()||this._eventSheetManager.IsInTrigger()||(await this._eventSheetManager.RunQueuedDebugTriggersAsync(),this._hasStartedTicking&&-1===this._rafId&&!this._isInTick&&(this._rafId=self.requestAnimationFrame(this._tickCallback))),this._mainThreadTimeCounter+=performance.now()-n,s.value}FastTrigger(e,a,n){const t=this.IsDebug();t&&this.SetDebuggingEnabled(!1);const s=this._eventSheetManager._FastTrigger(this._layoutManager,e,a,n);return t&&this.SetDebuggingEnabled(!0),s}DebugFastTrigger(e,a,n){return this._eventSheetManager._DebugFastTrigger(this._layoutManager,e,a,n)}ScheduleTriggers(e){return this._scheduleTriggersThrottle.Add(e)}PushCurrentLayout(e){this._currentLayoutStack.push(e)}PopCurrentLayout(){if(!this._currentLayoutStack.length)throw new Error("layout stack empty");this._currentLayoutStack.pop()}GetCurrentLayout(){if(!this._currentLayoutStack.length)throw new Error("no current layout");return this._currentLayoutStack[this._currentLayoutStack.length-1]}GetDt(e){return e&&-1!==e.GetTimeScale()?this._dt1*e.GetTimeScale():this._dt}_GetDtFast(){return this._dt}GetDt1(){return this._dt1}GetTimeScale(){return this._timeScale}SetTimeScale(e){(isNaN(e)||0>e)&&(e=0),this._timeScale=e}SetMinimumFramerate(e){this._minimumFramerate=C3.clamp(e,1,120)}GetMinimumFramerate(){return this._minimumFramerate}GetFPS(){return this._fps}GetMainThreadTime(){return this._mainThreadTime}GetStartTime(){return this._startTime}GetGameTime(){return this._gameTime.Get()}GetWallTime(){return this._wallTime.Get()}GetTickCount(){return this._tickCount}GetTickCountNoSave(){return this._tickCountNoSave}IncrementExecCount(){++this._execCount}GetExecCount(){return this._execCount}GetObjectCount(){return this._objectCount}GetProjectName(){return this._projectName}GetProjectVersion(){return this._projectVersion}GetProjectUniqueId(){return this._projectUniqueId}GetInstanceByUID(e){if(this._isLoadingState)throw new Error("cannot call while loading state - wait until afterload event");return this._instancesByUid.get(e)||null}_RefreshUidMap(){this._instancesByUid.clear();for(const e of this._allObjectClasses)if(!e.IsFamily())for(const a of e.GetInstances())this._instancesByUid.set(a.GetUID(),a)}IsPreview(){return"preview"===this._exportType}IsDebug(){return this._isDebug}GetExportType(){return this._exportType}IsCordova(){return"cordova"===this._exportType}IsWKWebView(){return this._isWKWebView}GetCollisionEngine(){return this._collisionEngine}GetSolidBehavior(){return this._pluginManager.GetSolidBehavior()}GetJumpthruBehavior(){return this._pluginManager.GetJumpthruBehavior()}IsLayoutFirstTick(){return this._isLayoutFirstTick}SetPixelRoundingEnabled(a){a=!!a;this._isPixelRoundingEnabled===a||(this._isPixelRoundingEnabled=a,this.UpdateRender())}IsPixelRoundingEnabled(){return this._isPixelRoundingEnabled}SaveToSlot(e){this._saveToSlotName=e}LoadFromSlot(e){this._loadFromSlotName=e}LoadFromJsonString(e){this._loadFromJson=e}GetLastSaveJsonString(){return this._lastSaveJson}_NeedsHandleSaveOrLoad(){return!!(this._saveToSlotName||this._loadFromSlotName||null!==this._loadFromJson)}async _HandleSaveOrLoad(){if(this._saveToSlotName&&(this.FlushPendingInstances(),await this._DoSaveToSlot(this._saveToSlotName),this._ClearSaveOrLoad()),this._loadFromSlotName&&(await this._DoLoadFromSlot(this._loadFromSlotName),this._ClearSaveOrLoad(),this.IsDebug()&&C3Debugger.StepIfPausedInDebugger()),null!==this._loadFromJson){this.FlushPendingInstances();try{await this._DoLoadFromJsonString(this._loadFromJson),this._lastSaveJson=this._loadFromJson,await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to load state from JSON string: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadFailed,null)}this._ClearSaveOrLoad()}}_ClearSaveOrLoad(){this._saveToSlotName="",this._loadFromSlotName="",this._loadFromJson=null}_GetSavegamesStorage(){return this._savegamesStorage||(this._savegamesStorage=localforage.createInstance({name:"c3-savegames-"+this.GetProjectUniqueId(),description:this.GetProjectName()})),this._savegamesStorage}async _DoSaveToSlot(e){const a=this._SaveToJsonString();try{await this._GetSavegamesStorage().setItem(e,a),console.log("[Construct 3] Saved state to storage ("+a.length+" chars)"),this._lastSaveJson=a,await this.TriggerAsync(C3.Plugins.System.Cnds.OnSaveComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to save state to storage: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnSaveFailed,null)}}async _DoLoadFromSlot(e){try{const a=await this._GetSavegamesStorage().getItem(e);if(!a)throw new Error("empty slot");console.log("[Construct 3] Loaded state from storage ("+a.length+" chars)"),await this._DoLoadFromJsonString(a),this._lastSaveJson=a,await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to load state from storage: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadFailed,null)}}_SaveToJsonString(){const e={"c3save":!0,"version":1,"rt":{"time":this.GetGameTime(),"walltime":this.GetWallTime(),"timescale":this.GetTimeScale(),"tickcount":this.GetTickCount(),"execcount":this.GetExecCount(),"next_uid":this._nextUid,"running_layout":this.GetMainRunningLayout().GetSID(),"start_time_offset":Date.now()-this._startTime},"types":{},"layouts":{},"events":this._eventSheetManager._SaveToJson()};for(const a of this._allObjectClasses)a.IsFamily()||a.HasNoSaveBehavior()||(e["types"][a.GetSID().toString()]=a._SaveToJson());for(const a of this._layoutManager.GetAllLayouts())e["layouts"][a.GetSID().toString()]=a._SaveToJson();return JSON.stringify(e)}IsLoadingState(){return this._isLoadingState}_TriggerOnCreateAfterLoad(e){C3.shallowAssignArray(this._triggerOnCreateAfterLoad,e)}async _DoLoadFromJsonString(e){const a=JSON.parse(e);if(a["c2save"])throw new Error("C2 saves are incompatible with C3 runtime");if(!a["c3save"])throw new Error("not valid C3 save data");if(1n||n>=s.length)throw new Error("missing sibling instance");e._AddSibling(s[n])}}this._dispatcher.dispatchEvent(C3.New(C3.Event,"afterload")),this.UpdateRender()}async AddJobWorkerScripts(e){const a=await Promise.all(e.map((e)=>this._assetManager.FetchBlob(e))),n=a.map((e)=>URL.createObjectURL(e));this._jobScheduler.ImportScriptsToJobWorkers(n)}AddJobWorkerBlob(e,a){this._jobScheduler.SendBlobToJobWorkers(e,a)}AddJobWorkerBuffer(e,a){this._jobScheduler.SendBufferToJobWorkers(e,a)}AddJob(e,a,n){return this._jobScheduler.AddJob(e,a,n)}BroadcastJob(e,a,n){return this._jobScheduler.BroadcastJob(e,a,n)}InvokeDownload(e,a){this.PostComponentMessageToDOM("runtime","invoke-download",{"url":e,"filename":a})}async RasterSvgImage(e,a,n){if(this.IsInWorker())return await this.PostComponentMessageToDOMAsync("runtime","raster-svg-image",{"blob":e,"width":a,"height":n});else{const t=await C3.BlobToImage(e);return await self["C3_RasterSvgImage"](t,a,n)}}RequestDeviceOrientationEvent(){this._didRequestDeviceOrientationEvent||(this._didRequestDeviceOrientationEvent=!0,this.PostComponentMessageToDOM("runtime","enable-device-orientation"))}RequestDeviceMotionEvent(){this._didRequestDeviceMotionEvent||(this._didRequestDeviceMotionEvent=!0,this.PostComponentMessageToDOM("runtime","enable-device-motion"))}Random(){return this._randomNumberCallback()}SetRandomNumberGeneratorCallback(e){this._randomNumberCallback=e}_GetRemotePreviewStatusInfo(){return{"fps":this.GetFPS(),"cpu":this.GetMainThreadTime(),"gpu":this.GetGPUUtilisation(),"layout":this.GetMainRunningLayout()?this.GetMainRunningLayout().GetName():"","renderer":this.GetWebGLRenderer().GetUnmaskedRenderer()}}HitBreakpoint(){return!!this.IsDebug()&&C3Debugger.HitBreakpoint()}DebugBreak(e){return this.IsDebugging()?C3Debugger.DebugBreak(e):Promise.resolve()}DebugBreakNext(){return!!this.IsDebugging()&&C3Debugger.BreakNext()}SetDebugBreakpointsEnabled(a){this._breakpointsEnabled=!!a,this._UpdateDebuggingFlag()}AreDebugBreakpointsEnabled(){return this._breakpointsEnabled}IsDebugging(){return this._isDebugging}SetDebuggingEnabled(e){e?this._debuggingDisabled--:this._debuggingDisabled++,this._UpdateDebuggingFlag()}_UpdateDebuggingFlag(){this._isDebugging=this.IsDebug()&&this._breakpointsEnabled&&0===this._debuggingDisabled}IsCPUProfiling(){return this.IsDebug()&&C3Debugger.IsCPUProfiling()}IsGPUProfiling(){return this.IsDebug()&&this.GetWebGLRenderer().SupportsGPUProfiling()&&C3Debugger.IsGPUProfiling()}async DebugIterateAndBreak(e){if(e)for(const a of e)await this.DebugBreak(a)}DebugFireGeneratorEventAndBreak(e){return this.DebugIterateAndBreak(this._dispatcher.dispatchGeneratorEvent(e))}},self["C3_CreateRuntime"]=C3.Runtime.Create,self["C3_InitRuntime"]=(e,a)=>e.Init(a)} + +// c3/workers/jobSchedulerRuntime.js +"use strict";C3.JobSchedulerRuntime=class extends C3.DefendedBase{constructor(a,b){super(),this._runtime=a,this._jobPromises=new Map,this._nextJobId=0,this._inputPort=b["inputPort"],b["outputPort"].onmessage=(a)=>this._OnJobWorkerMessage(a),this._maxNumWorkers=b["maxNumWorkers"],this._jobWorkerCount=1,this._isCreatingWorker=!1,this._hadErrorCreatingWorker=!1,this._isBroken=!1,this._testOkResolve=null}async Init(){await this._TestMessageChannelWorks()}ImportScriptsToJobWorkers(a){this._isBroken||this._inputPort.postMessage({"type":"_import_scripts","scripts":a})}SendBlobToJobWorkers(a,b){this._isBroken||this._inputPort.postMessage({"type":"_send_blob","blob":a,"id":b})}SendBufferToJobWorkers(a,b){this._isBroken||this._inputPort.postMessage({"type":"_send_buffer","buffer":a,"id":b},[a])}AddJob(a,b,c,d,e){if(this._isBroken)return Promise.reject("messagechannels broken");c||(c=[]);const f=this._nextJobId++,g={"type":a,"isBroadcast":!1,"jobId":f,"params":b,"transferables":c},h=new Promise((a,b)=>{this._jobPromises.set(f,{resolve:a,progress:d,reject:b,cancelled:!1})});return e&&e.SetAction(()=>this._CancelJob(f)),this._inputPort.postMessage(g,c),this._MaybeCreateExtraWorker(),h}BroadcastJob(a,b,c){if(!this._isBroken){c||(c=[]);const d=this._nextJobId++,e={"type":a,"isBroadcast":!0,"jobId":d,"params":b,"transferables":c};this._inputPort.postMessage(e,c)}}_CancelJob(a){const b=this._jobPromises.get(a);b&&(b.cancelled=!0,b.resolve=null,b.progress=null,b.reject=null,this._inputPort.postMessage({"type":"_cancel","jobId":a}))}_OnJobWorkerMessage(a){const b=a.data,c=b["type"],d=b["jobId"];switch(c){case"result":this._OnJobResult(d,b["result"]);break;case"progress":this._OnJobProgress(d,b["progress"]);break;case"error":this._OnJobError(d,b["error"]);break;case"ready":this._OnJobWorkerReady();break;case"_testMessageChannelOk":this._OnTestMessageChannelOk();break;default:throw new Error(`unknown message from worker '${c}'`);}}_OnJobResult(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");c.cancelled||c.resolve(b),this._jobPromises.delete(a)}_OnJobProgress(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");!c.cancelled&&c.progress&&c.progress(b)}_OnJobError(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");c.cancelled||c.reject(b),this._jobPromises.delete(a)}_OnJobWorkerReady(){this._isCreatingWorker&&(this._isCreatingWorker=!1,this._jobWorkerCount++,this._jobWorkerCount=this._maxNumWorkers||this._isCreatingWorker||this._hadErrorCreatingWorker||this._jobPromises.size<=this._jobWorkerCount))try{this._isCreatingWorker=!0;const a=await this._runtime.PostComponentMessageToDOMAsync("runtime","create-job-worker");a["outputPort"].onmessage=(a)=>this._OnJobWorkerMessage(a)}catch(a){this._hadErrorCreatingWorker=!0,this._isCreatingWorker=!1,console.error(`[Construct 3] Failed to create job worker; stopping creating any more (created ${this._jobWorkerCount} so far)`,a)}}_TestMessageChannelWorks(){return this._inputPort.postMessage({"type":"_testMessageChannel"}),self.setTimeout(()=>this._CheckMessageChannelTestTimedOut(),2e3),new Promise((a)=>this._testOkResolve=a)}_OnTestMessageChannelOk(){this._testOkResolve(),this._testOkResolve=null}_CheckMessageChannelTestTimedOut(){this._testOkResolve&&(console.warn("MessageChannel determined to be broken. Job scheduler disabled."),this._isBroken=!0,this._testOkResolve(),this._testOkResolve=null)}}; + +self["C3_Shaders"] = {}; + + +"use strict";{function a(c,a){const b=c[1],d=a[1];if("number"==typeof b&&"number"==typeof d)return b-d;else{const a=""+b,c=""+d;return ac?1:0}}let b=null,c="",d="",e=[],f="",g="",h="";const i=C3.New(C3.ArrayStack);C3.Plugins.System=class extends C3.SDKPluginBase{constructor(a){super(a),this._loopStack=this._runtime.GetEventSheetManager().GetLoopStack(),this._imagesLoadingTotal=0,this._imagesLoadingComplete=0}Release(){super.Release()}UpdateRender(){this._runtime.UpdateRender()}Trigger(a){this._runtime.Trigger(a,null)}GetRegex(a,e){return b&&a===c&&e===d||(b=new RegExp(a,e),c=a,d=e),b.lastIndex=0,b}GetRegexMatches(a,b,c){if(a===f&&b===g&&c===h)return e;const d=this.GetRegex(b,c);return e=a.match(d),f=a,g=b,h=c,e}async _LoadTexturesForObjectClasses(a,b){if(b.length){this._imagesLoadingTotal+=b.length;const c=[];for(const d of b)c.push(a.MaybeLoadTexturesFor(d));await C3.PromiseAllWithProgress(c,()=>{this._imagesLoadingComplete++}),this._imagesLoadingComplete++,this._imagesLoadingComplete===this._imagesLoadingTotal&&(this._runtime.Trigger(C3.Plugins.System.Cnds.OnImageLoadingComplete,null),this._imagesLoadingComplete=0,this._imagesLoadingTotal=0)}}_UnloadTexturesForObjectClasses(a,b){for(const c of b)0===c.GetInstanceCount()&&a.MaybeUnloadTexturesFor(c)}_GetForEachStack(){return i}_Repeat(a){const b=this._runtime.GetEventSheetManager(),c=b.GetEventStack(),d=c.GetCurrentStackFrame(),e=d.GetCurrentEvent(),f=e.GetSolModifiers(),g=d.IsSolModifierAfterCnds(),h=c.Push(e),i=b.GetLoopStack(),j=i.Push();if(j.SetEnd(a),g)for(let c=0;c=c&&!l.IsStopped();--a)d.PushCopySol(h),l.SetIndex(a),g.Retrigger(f,j),d.PopSol(h);else for(let a=b;a>=c&&!l.IsStopped();--a)l.SetIndex(a),g.Retrigger(f,j);}else if(i)for(let a=b;a<=c&&!l.IsStopped();++a)d.PushCopySol(h),l.SetIndex(a),g.Retrigger(f,j),d.PopSol(h);else for(let a=b;a<=c&&!l.IsStopped();++a)l.SetIndex(a),g.Retrigger(f,j);return e.Pop(),k.Pop(),!1}*_DebugFor(a,b,c){const d=this._runtime.GetEventSheetManager(),e=d.GetEventStack(),f=e.GetCurrentStackFrame(),g=f.GetCurrentEvent(),h=g.GetSolModifiers(),i=f.IsSolModifierAfterCnds(),j=e.Push(g),k=d.GetLoopStack(),l=k.Push();if(l.SetName(a),l.SetEnd(c),c=c&&!l.IsStopped();--a)d.PushCopySol(h),l.SetIndex(a),yield*g.DebugRetrigger(f,j),d.PopSol(h);else for(let a=b;a>=c&&!l.IsStopped();--a)l.SetIndex(a),yield*g.DebugRetrigger(f,j);}else if(i)for(let a=b;a<=c&&!l.IsStopped();++a)d.PushCopySol(h),l.SetIndex(a),yield*g.DebugRetrigger(f,j),d.PopSol(h);else for(let a=b;a<=c&&!l.IsStopped();++a)l.SetIndex(a),yield*g.DebugRetrigger(f,j);return e.Pop(),k.Pop(),!1}_ForEach(a){const b=this._runtime.GetEventSheetManager(),c=b.GetEventStack(),d=c.GetCurrentStackFrame(),e=d.GetCurrentEvent(),f=e.GetSolModifiers(),g=d.IsSolModifierAfterCnds(),h=c.Push(e),j=b.GetLoopStack(),k=j.Push(),l=a.IsInContainer(),m=a.GetCurrentSol(),n=i.Push();if(C3.shallowAssignArray(n,m.GetInstances()),k.SetEnd(n.length),g)for(let c=0,g=n.length;c=d+f?(c.set("Every_lastTime",d+f),e>=c.get("Every_lastTime")+.04&&c.set("Every_lastTime",e),c.set("Every_seconds",a),!0):(e=d&&c<=a},CompareVar(a,b,c){return C3.compare(a.GetValue(),b,c)},CompareBoolVar(a){return!!a.GetValue()},CompareTime(a,b){const c=this._runtime.GetGameTime();if(0===a){const a=this._runtime.GetCurrentCondition(),d=a.GetSavedDataMap();return!(d.get("CompareTime_executed")||!(c>=b))&&(d.set("CompareTime_executed",!0),!0)}return C3.compare(c,a,b)},IsNaN(a){return isNaN(a)},AngleWithin(a,b,c){return C3.angleDiff(C3.toRadians(a),C3.toRadians(c))<=C3.toRadians(b)},IsClockwiseFrom(a,b){return C3.angleClockwise(C3.toRadians(a),C3.toRadians(b))},IsBetweenAngles(b,a,c){let d=C3.toRadians(b),e=C3.toRadians(a),f=C3.toRadians(c),g=!C3.angleClockwise(f,e);return g?C3.angleClockwise(d,e)||!C3.angleClockwise(d,f):C3.angleClockwise(d,e)&&!C3.angleClockwise(d,f)},IsValueType(a,b){return"number"==typeof a?0===b:1===b},PickByComparison(a,b,c,d){if(!a)return!1;const e=this._GetForEachStack(),f=e.Push(),g=a.GetCurrentSol();C3.shallowAssignArray(f,g.GetInstances()),g.IsSelectAll()&&C3.clearArray(g._GetOwnElseInstances());const h=this._runtime.GetCurrentCondition();let j=0;for(let e=0,i=f.length;e=d.length)return!1;const e=d[b];return c.PickOne(e),a.ApplySolToContainer(),!0},PickRandom(a){if(!a)return!1;const b=a.GetCurrentSol(),c=b.GetInstances(),d=Math.floor(this._runtime.Random()*c.length);if(d>=c.length)return!1;const e=c[d];return b.PickOne(e),a.ApplySolToContainer(),!0},PickAll(a){if(!a)return!1;if(!a.GetInstanceCount())return!1;const b=a.GetCurrentSol();return b._SetSelectAll(!0),a.ApplySolToContainer(),!0},PickOverlappingPoint(b,c,d){if(!b)return!1;const e=b.GetCurrentSol(),f=e.GetInstances(),g=this._runtime.GetCurrentEvent(),h=g.IsOrBlock(),j=this._runtime.GetCurrentCondition().IsInverted();e.IsSelectAll()?(C3.shallowAssignArray(a,f),e.ClearArrays(),e._SetSelectAll(!1)):h?(C3.shallowAssignArray(a,e._GetOwnElseInstances()),C3.clearArray(e._GetOwnElseInstances())):(C3.shallowAssignArray(a,e._GetOwnInstances()),C3.clearArray(e._GetOwnInstances()));for(let f=0,g=a.length;fb&&(b=0),!!a){const c=a.GetCurrentSol(),d=c.GetInstances();for(const a of d)a.SetTimeScale(b)}},RestoreObjectTimescale(a){if(a){const b=a.GetCurrentSol(),c=b.GetInstances();for(const a of c)a.RestoreTimeScale()}},Wait(a){if(!(0>a))return this._runtime.GetEventSheetManager().AddScheduledWait().InitTimer(a),!0},WaitForSignal(a){return this._runtime.GetEventSheetManager().AddScheduledWait().InitSignal(a),!0},Signal(a){const b=a.toLowerCase();for(const c of this._runtime.GetEventSheetManager().scheduledWaits())c.IsSignal()&&c.GetSignalTag()===b&&c.SetSignalled()},SnapshotCanvas(a,b){const c=this._runtime.GetCanvasManager();c&&(c.SnapshotCanvas(0===a?"image/png":"image/jpeg",b/100).then(()=>this._runtime.TriggerAsync(C3.Plugins.System.Cnds.OnCanvasSnapshot,null)),this.UpdateRender())},SetCanvasSize(a,b){if(!(0>=a||0>=b)){this._runtime.SetViewportSize(a,b);const c=this._runtime.GetCanvasManager();c&&("off"===c.GetCurrentFullscreenMode()?c.SetSize(c.GetLastWidth(),c.GetLastHeight(),!0):(this._runtime.SetOriginalViewportSize(a,b),c.SetSize(c.GetLastWidth(),c.GetLastHeight(),!0)),this._runtime.UpdateRender())}},SetFullscreenQuality(a){const b=this._runtime.GetCanvasManager();b&&"off"!==b.GetCurrentFullscreenMode()&&(b.SetFullscreenScalingQuality(0===a?"low":"high"),b.SetSize(b.GetLastWidth(),b.GetLastHeight(),!0))},SaveState(a){this._runtime.SaveToSlot(a)},LoadState(a){this._runtime.LoadFromSlot(a)},LoadStateJSON(a){this._runtime.LoadFromJsonString(a)},SetHalfFramerateMode(){},ResetPersisted(){for(const a of this._runtime.GetLayoutManager().GetAllLayouts())a.ResetPersistData()},SetPixelRounding(a){this._runtime.SetPixelRoundingEnabled(0!==a)},SetMinimumFramerate(a){this._runtime.SetMinimumFramerate(a)},SortZOrderByInstVar(e,f){if(e){const g=e.GetCurrentSol(),h=g.GetInstances(),j=c,k=d,l=this._runtime.GetCurrentLayout(),m=e.IsFamily(),n=e.GetFamilyIndex();for(let a=0,b=h.length;ac||c>=b.length)){const a=g.GetShaderProgram().GetParameterType(c);if("color"===a){e.setFromRgbValue(d);const a=b[c];if(e.equalsIgnoringAlpha(a))return;a.copyRgb(e)}else{if("percent"===a&&(d/=100),b[c]===d)return;b[c]=d}g.IsActive()&&this._runtime.UpdateRender()}}}},SetLayerForceOwnTexture(a,b){a&&(b=!!b,a.IsForceOwnTexture()===b||(a.SetForceOwnTexture(b),this.UpdateRender()))},SetLayoutScale(a){const b=this._runtime.GetCurrentLayout();b.GetScale()===a||(b.SetScale(a),this.UpdateRender())},SetLayoutAngle(b){b=C3.clampAngle(C3.toRadians(+b));const c=this._runtime.GetCurrentLayout();c.GetAngle()===b||(c.SetAngle(b),this.UpdateRender())},SetLayoutEffectEnabled(a,b){const c=this._runtime.GetCurrentLayout(),d=c.GetEffectList(),f=d.GetEffectTypeByName(b);if(f){const b=1===a;f.IsActive()===b||(f.SetActive(b),d.UpdateActiveEffects(),this._runtime.UpdateRender())}},SetLayoutEffectParam(a,b,c){const d=this._runtime.GetCurrentLayout(),f=d.GetEffectList(),g=f.GetEffectTypeByName(a);if(g){const a=g.GetIndex(),d=f.GetEffectParametersForIndex(a);if(b=Math.floor(b),!(0>b||b>=d.length)){const a=g.GetShaderProgram().GetParameterType(b);if("color"===a){e.setFromRgbValue(c);const a=d[b];if(e.equalsIgnoringAlpha(a))return;a.copyRgb(e)}else{if("percent"===a&&(c/=100),d[b]===c)return;d[b]=c}g.IsActive()&&this._runtime.UpdateRender()}}},ScrollX(a){const b=this._runtime.GetCurrentLayout();b.SetScrollX(a)},ScrollY(a){const b=this._runtime.GetCurrentLayout();b.SetScrollY(a)},Scroll(a,b){const c=this._runtime.GetCurrentLayout();c.SetScrollX(a),c.SetScrollY(b)},ScrollToObject(a){if(a){const b=a.GetFirstPicked();if(b){const a=b.GetWorldInfo();if(a){const b=this._runtime.GetCurrentLayout();b.SetScrollX(a.GetX()),b.SetScrollY(a.GetY())}}}},LoadObjectTextures(a){const b=this._runtime.GetMainRunningLayout();if(b&&a&&!this._runtime.IsLoading()){const c=a.IsFamily()?a.GetFamilyMembers():[a];this._LoadTexturesForObjectClasses(b,c)}},LoadObjectTexturesByName(a){C3.Plugins.System.Acts.LoadObjectTextures.call(this,this._runtime.GetObjectClassByName(a))},UnloadObjectTextures(a){const b=this._runtime.GetMainRunningLayout();if(b&&a){const c=a.IsFamily()?a.GetFamilyMembers():[a];this._UnloadTexturesForObjectClasses(b,c)}},UnloadObjectTexturesByName(a){C3.Plugins.System.Acts.UnloadObjectTexturesByName.call(this,this._runtime.GetObjectClassByName(a))},UnloadUnusedTextures(){const a=this._runtime.GetMainRunningLayout();if(a){const b=a._GetTextureLoadedObjectTypes();this._UnloadTexturesForObjectClasses(a,b)}},LoadLayoutTextures(a){const b=this._runtime.GetMainRunningLayout();a&&b&&!this._runtime.IsLoading()&&this._LoadTexturesForObjectClasses(b,a._GetInitialObjectClasses())},LoadLayoutTexturesByName(a){const b=this._runtime.GetMainRunningLayout(),c=this._runtime.GetLayoutManager().GetLayoutByName(a);c&&b&&!this._runtime.IsLoading()&&this._LoadTexturesForObjectClasses(b,c._GetInitialObjectClasses())}}} + +"use strict";C3.Plugins.System.Exps={int:function(a){return"string"==typeof a&&(a=parseInt(a,10),isNaN(a)&&(a=0)),Math.floor(a)},float:function(a){return"string"==typeof a&&(a=parseFloat(a),isNaN(a)&&(a=0)),a},str(a){return a.toString()},len(a){return"string"==typeof a?a.length:0},random(c,a){return"undefined"==typeof a?this._runtime.Random()*c:this._runtime.Random()*(a-c)+c},choose(...a){const b=Math.floor(this._runtime.Random()*a.length);return a[b]},pi(){return Math.PI},infinity(){return 1/0},sqrt(a){return Math.sqrt(a)},abs(a){return Math.abs(a)},round(a){return Math.round(a)},floor(a){return Math.floor(a)},ceil(a){return Math.ceil(a)},sign(a){return Math.sign(a)},sin(a){return Math.sin(C3.toRadians(a))},cos(a){return Math.cos(C3.toRadians(a))},tan(a){return Math.tan(C3.toRadians(a))},asin(a){return C3.toDegrees(Math.asin(a))},acos(a){return C3.toDegrees(Math.acos(a))},atan(a){return C3.toDegrees(Math.atan(a))},exp(a){return Math.exp(a)},ln(a){return Math.log(a)},log10(a){return Math.log(a)/Math.LN10},max(...a){let b=a[0];"number"!=typeof b&&(b=0);for(let c,d=1,e=a.length;dc&&(b=c);return b},clamp(a,b,c){return C3.clamp(a,b,c)},distance(a,b,c,d){return C3.distanceTo(a,b,c,d)},angle(a,b,c,d){return C3.toDegrees(C3.angleTo(a,b,c,d))},lerp(c,a,b){return C3.lerp(c,a,b)},unlerp(c,a,b){return C3.unlerp(c,a,b)},qarp(d,a,b,c){return C3.qarp(d,a,b,c)},cubic(e,a,b,c,d){return C3.cubic(e,a,b,c,d)},cosp(c,a,b){return C3.cosp(c,a,b)},anglediff(c,a){return C3.toDegrees(C3.angleDiff(C3.toRadians(c),C3.toRadians(a)))},anglelerp(c,a,b){return C3.toDegrees(C3.angleLerp(C3.toRadians(c),C3.toRadians(a),b))},anglerotate(d,a,b){return C3.toDegrees(C3.angleRotate(C3.toRadians(d),C3.toRadians(a),C3.toRadians(b)))},setbit(a,c,b){return a|=0,c|=0,b=0===b?0:1,a&~(1<b||b>=d.length?"":d[b]},tokencount(a,b){return"string"==typeof a&&"string"==typeof b&&a.length?a.split(b).length:0},find(a,b){return"string"==typeof a&&"string"==typeof b?a.search(new RegExp(C3.EscapeRegex(b),"i")):-1},findcase(a,b){return"string"==typeof a&&"string"==typeof b?a.search(new RegExp(C3.EscapeRegex(b),"")):-1},replace(a,b,c){return"string"==typeof a&&"string"==typeof b&&"string"==typeof c?a.replace(new RegExp(C3.EscapeRegex(b),"gi"),c):"string"==typeof a?a:""},regexsearch(a,b,c){const d=this.GetRegex(b,c);return a?a.search(d):-1},regexreplace(a,b,c,d){const e=this.GetRegex(b,c);return a?a.replace(e,d):""},regexmatchcount(a,b,c){const d=this.GetRegexMatches(a.toString(),b,c);return d?d.length:0},regexmatchat(a,b,c,d){d=Math.floor(d);const e=this.GetRegexMatches(a.toString(),b,c);return!e||0>d||d>=e.length?"":e[d]},zeropad(a,b){let c=0>a?"-":"";0>a&&(a=-a);const d=b-a.toString().length;return c+="0".repeat(Math.max(d,0)),c+a.toString()},urlencode(a){return encodeURIComponent(a)},urldecode(a){return decodeURIComponent(a)},dt(){return this._runtime._GetDtFast()},timescale(){return this._runtime.GetTimeScale()},wallclocktime(){return(Date.now()-this._runtime.GetStartTime())/1e3},unixtime(){return Date.now()},time(){return this._runtime.GetGameTime()},tickcount(){return this._runtime.GetTickCount()},objectcount(){return this._runtime.GetObjectCount()},fps(){return this._runtime.GetFPS()},cpuutilisation(){return this._runtime.GetMainThreadTime()},gpuutilisation(){return this._runtime.GetGPUUtilisation()},windowwidth(){return this._runtime.GetCanvasManager().GetDeviceWidth()},windowheight(){return this._runtime.GetCanvasManager().GetDeviceHeight()},originalwindowwidth(){return this._runtime.GetOriginalViewportWidth()},originalwindowheight(){return this._runtime.GetOriginalViewportHeight()},originalviewportwidth(){return this._runtime.GetOriginalViewportWidth()},originalviewportheight(){return this._runtime.GetOriginalViewportHeight()},scrollx(){return this._runtime.GetCurrentLayout().GetScrollX()},scrolly(){return this._runtime.GetCurrentLayout().GetScrollY()},layoutname(){return this._runtime.GetCurrentLayout().GetName()},layoutscale(){return this._runtime.GetCurrentLayout().GetScale()},layoutangle(){return C3.toDegrees(this._runtime.GetCurrentLayout().GetAngle())},layoutwidth(){return this._runtime.GetCurrentLayout().GetWidth()},layoutheight(){return this._runtime.GetCurrentLayout().GetHeight()},viewportleft(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getLeft():0},viewporttop(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getTop():0},viewportright(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getRight():0},viewportbottom(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getBottom():0},viewportwidth(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().width():0},viewportheight(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().height():0},canvastolayerx(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.CanvasCssToLayer(b,c)[0]:0},canvastolayery(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.CanvasCssToLayer(b,c)[1]:0},layertocanvasx(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.LayerToCanvasCss(b,c)[0]:0},layertocanvasy(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.LayerToCanvasCss(b,c)[1]:0},layerscale(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetOwnScale():0},layerangle(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?C3.toDegrees(b.GetOwnAngle()):0},layeropacity(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetOpacity():0},layerscalerate(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetScaleRate():0},layerparallaxx(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetParallaxX():0},layerparallaxy(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetParallaxY():0},layerzelevation(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetZElevation():0},layerindex(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetIndex():-1},canvassnapshot(){const a=this._runtime.GetCanvasManager();return a?a.GetCanvasSnapshotUrl():""},loopindex(a){const b=this._loopStack;if(!b.IsInLoop())return 0;if(a){const c=b.FindByName(a);return c?c.GetIndex():0}return b.GetCurrent().GetIndex()},savestatejson(){return this._runtime.GetLastSaveJsonString()},loadingprogress(){return this._runtime.GetAssetManager().GetLoadProgress()},imageloadingprogress(){return 0===this._imagesLoadingTotal?1:this._imagesLoadingComplete/this._imagesLoadingTotal},renderer(){return"webgl"},rendererdetail(){return this._runtime.GetWebGLRenderer().GetUnmaskedRenderer()},imagememoryusage(){let a=this._runtime.GetWebGLRenderer().GetEstimatedTextureMemoryUsage();return Math.round(100*a/1048576)/100},rgb(a,c,d){return C3.PackRGB(a,c,d)},rgbex(a,c,d){return C3.PackRGBEx(a/100,c/100,d/100)},rgba(c,d,e,b){return C3.PackRGBAEx(c/100,d/100,e/100,b/100)},rgbex255(a,c,d){return C3.PackRGBEx(a/255,c/255,d/255)},rgba255(c,d,e,b){return C3.PackRGBAEx(c/255,d/255,e/255,b/255)},projectname(){return this._runtime.GetProjectName()},projectversion(){return this._runtime.GetProjectVersion()},currenteventsheetname(){return this._runtime.GetCurrentEvent().GetEventSheet().GetName()},currenteventnumber(){return this._runtime.GetCurrentEvent().GetDisplayNumber()}}; + +"use strict";C3.Plugins.Sprite=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Sprite.Type=class extends C3.SDKTypeBase{constructor(a){super(a),this._animations=a.GetAnimations()}Release(){C3.clearArray(this._animations),super.Release()}OnCreate(){for(const b of this._animations)b.LoadAllAssets(this._runtime)}LoadTextures(b){const c={sampling:this._runtime.GetSampling()};return Promise.all(this._animations.map((d)=>d.LoadAllTextures(b,c)))}ReleaseTextures(){for(const b of this._animations)b.ReleaseAllTextures()}OnDynamicTextureLoadComplete(){this._UpdateAllCurrentTexture()}_UpdateAllCurrentTexture(){for(const a of this._objectClass.GetInstances())a.GetSdkInstance()._UpdateCurrentTexture()}FinishCondition(a){C3.Plugins.Sprite._FinishCondition(this,a)}}; + +"use strict";{const a=C3.New(C3.Quad),b=C3.New(C3.Vector2);C3.Plugins.Sprite.Instance=class extends C3.SDKWorldInstanceBase{constructor(a,b){super(a);let c=!0,d="",e=0,f=!0;b&&(c=!!b[0],d=b[1],e=b[2],f=b[3]),this._currentAnimation=this._objectClass.GetAnimationByName(d)||this._objectClass.GetAnimations()[0],this._currentFrameIndex=C3.clamp(e,0,this._currentAnimation.GetFrameCount()-1),this._currentAnimationFrame=this._currentAnimation.GetFrameAt(this._currentFrameIndex);const g=this._currentAnimationFrame.GetImageInfo();this._currentTexture=g.GetTexture(),this._currentRcTex=g.GetTexRect(),this.HandleWebGLContextLoss(),this._isPlayingForwards=0<=this._currentAnimation.GetSpeed(),this._currentAnimationSpeed=Math.abs(this._currentAnimation.GetSpeed()),this._currentAnimationRepeatTo=this._currentAnimation.GetRepeatTo(),this._animationTimer=C3.New(C3.KahanSum),this._frameStartTime=0,this._isAnimationPlaying=!0,this._animationRepeats=0,this._animTriggerName="",this._isInAnimTrigger=!1,this._changeAnimFrameIndex=-1,this._changeAnimationName="",this._changeAnimationFrom=0;const h=this.GetWorldInfo();this._bquadRef=h.GetBoundingQuad(),h.SetVisible(c),h.SetCollisionEnabled(f),h.SetOriginX(this._currentAnimationFrame.GetOriginX()),h.SetOriginY(this._currentAnimationFrame.GetOriginY()),h.SetSourceCollisionPoly(this._currentAnimationFrame.GetCollisionPoly()),h.SetBboxChanged(),(1!==this._objectClass.GetAnimationCount()||1!==this._objectClass.GetAnimations()[0].GetFrameCount())&&0!==this._currentAnimationSpeed&&this._StartTicking()}Release(){this._currentAnimation=null,this._currentAnimationFrame=null,this._currentTexture=null,this._animationTimer=null,super.Release()}GetCurrentImageInfo(){return this._currentAnimationFrame.GetImageInfo()}OnWebGLContextLost(){this._currentTexture=null}OnWebGLContextRestored(){this._UpdateCurrentTexture()}Draw(b){var c=Math.round;const d=this._currentTexture;if(null!==d){const e=this._bquadRef,f=this._currentRcTex;if(b.SetTexture(d),this._runtime.IsPixelRoundingEnabled()){const d=this.GetWorldInfo(),g=c(d.GetX())-d.GetX(),h=c(d.GetY())-d.GetY();a.copy(e),a.offset(g,h),b.Quad3(a,f)}else b.Quad3(e,f)}}_DrawCollisionPoly(a){const b=this.GetWorldInfo(),c=b.GetTransformedCollisionPoly();a.SetColorFillMode(),a.SetColorRgba(1,0,0,1);const d=c.pointsArr(),e=b.GetX(),f=b.GetY();for(let b=0,c=d.length;b=g&&(j?(this._isPlayingForwards=!1,this._currentFrameIndex=g-2):i?this._currentFrameIndex=f:(this._animationRepeats++,this._animationRepeats>=h?this._FinishAnimation(!1):this._currentFrameIndex=f)),0>this._currentFrameIndex&&(j?(this._currentFrameIndex=1,this._isPlayingForwards=!0,!i&&(this._animationRepeats++,this._animationRepeats>=h&&this._FinishAnimation(!0))):i?this._currentFrameIndex=f:(this._animationRepeats++,this._animationRepeats>=h?this._FinishAnimation(!0):this._currentFrameIndex=f)),this._currentFrameIndex=C3.clamp(this._currentFrameIndex,0,g-1);const k=b.GetFrameAt(this._currentFrameIndex);c>this._frameStartTime+k.GetDuration()/a&&(this._frameStartTime=c),this._OnFrameChanged(d,k)}}_FinishAnimation(a){this._currentFrameIndex=a?0:this._currentAnimation.GetFrameCount()-1,this._isAnimationPlaying=!1,this._animTriggerName=this._currentAnimation.GetName(),this._isInAnimTrigger=!0,this.Trigger(C3.Plugins.Sprite.Cnds.OnAnyAnimFinished),this.Trigger(C3.Plugins.Sprite.Cnds.OnAnimFinished),this._isInAnimTrigger=!1,this._animationRepeats=0}_OnFrameChanged(a,b){const c=this.GetWorldInfo(),d=a.GetImageInfo(),e=b.GetImageInfo(),f=d.GetWidth(),g=d.GetHeight(),h=e.GetWidth(),i=e.GetHeight();f!==h&&c.SetWidth(c.GetWidth()*(h/f)),g!==i&&c.SetHeight(c.GetHeight()*(i/g)),c.SetOriginX(b.GetOriginX()),c.SetOriginY(b.GetOriginY()),c.SetSourceCollisionPoly(b.GetCollisionPoly()),c.SetBboxChanged(),this._currentAnimationFrame=b,this._currentTexture=e.GetTexture(),this._currentRcTex=e.GetTexRect();const j=this.GetInstance().GetBehaviorInstances();for(let c=0,d=j.length;cthis.CallAction(a.SetAnim,b,0)},{name:"plugins.sprite.debugger.animation-properties.current-frame",value:this._currentFrameIndex,onedit:(b)=>this.CallAction(a.SetAnimFrame,b)},{name:"plugins.sprite.debugger.animation-properties.is-playing",value:this._isAnimationPlaying,onedit:(b)=>b?this.CallAction(a.StartAnim,0):this.CallAction(a.StopAnim)},{name:"plugins.sprite.debugger.animation-properties.speed",value:this._currentAnimationSpeed,onedit:(b)=>this.CallAction(a.SetAnimSpeed,b)},{name:"plugins.sprite.debugger.animation-properties.repeats",value:this._animationRepeats,onedit:(a)=>this._animationRepeats=a}]}]}SaveToJson(){const a={"a":this._currentAnimation.GetSID()};0!==this._frameStartTime&&(a["fs"]=this._frameStartTime);const b=this.GetAnimationTime();0!==b&&(a["at"]=b),0!==this._currentFrameIndex&&(a["f"]=this._currentFrameIndex),0!==this._currentAnimationSpeed&&(a["cas"]=this._currentAnimationSpeed),1!==this._animationRepeats&&(a["ar"]=this._animationRepeats),0!==this._currentAnimationRepeatTo&&(a["rt"]=this._currentAnimationRepeatTo),this._isAnimationPlaying||(a["ap"]=this._isAnimationPlaying),this._isPlayingForwards||(a["af"]=this._isPlayingForwards);const c=this.GetWorldInfo();return c.IsCollisionEnabled()&&(a["ce"]=c.IsCollisionEnabled()),a}LoadFromJson(a){const b=this.GetObjectClass().GetAnimationBySID(a["a"]);b&&(this._currentAnimation=b),this._frameStartTime=a.hasOwnProperty("fs")?a["fs"]:0,this._animationTimer.Set(a.hasOwnProperty("at")?a["at"]:0);const c=a.hasOwnProperty("f")?a["f"]:0;this._currentFrameIndex=C3.clamp(c,0,this._currentAnimation.GetFrameCount()-1),this._currentAnimationSpeed=a.hasOwnProperty("cas")?a["cas"]:0,this._animationRepeats=a.hasOwnProperty("ar")?a["ar"]:1;const d=a.hasOwnProperty("rt")?a["rt"]:0;this._currentAnimationRepeatTo=C3.clamp(d,0,this._currentAnimation.GetFrameCount()-1),this._isAnimationPlaying=!a.hasOwnProperty("ap")||!!a["ap"],this._isPlayingForwards=!a.hasOwnProperty("af")||!!a["af"];const e=this._currentAnimation.GetFrameAt(this._currentFrameIndex),f=e.GetImageInfo();this._currentAnimationFrame=e,this._currentTexture=f.GetTexture(),this._currentRcTex=f.GetTexRect();const g=this.GetWorldInfo();g.SetOriginX(e.GetOriginX()),g.SetOriginY(e.GetOriginY()),g.SetSourceCollisionPoly(e.GetCollisionPoly()),g.SetCollisionEnabled(!!a["ce"])}GetPropertyValueByIndex(a){const b=this.GetWorldInfo();return 3===a?b.IsCollisionEnabled():void 0}SetPropertyValueByIndex(a,b){const c=this.GetWorldInfo();3===a?c.SetCollisionEnabled(!!b):void 0}}} + +"use strict";{function a(c,d,a,b){const e=d.GetUID(),f=a.GetUID();ec(s,a.instance)));const t=l.GetCurrentSol(),u=e.GetCurrentSol(),v=t.GetInstances();let w=null;for(let c=0;cc(t,a.instance)));const u=q.GetCurrentSol(),v=e.GetCurrentSol(),w=u.GetInstances();let x=null;for(let c=0;cthis.GetWorldInfo().GetWidth()},IsFlipped(){return 0>this.GetWorldInfo().GetHeight()},OnURLLoaded(){return!0},IsCollisionEnabled(){return this.GetWorldInfo().IsCollisionEnabled()}}} + +"use strict";C3.Plugins.Sprite.Acts={Spawn(a,b,c){if(!a||!b)return;const[d,e]=this.GetImagePoint(c),f=this._runtime.CreateInstance(a,b,d,e);if(!f)return;if(a.GetPlugin().IsRotatable()){const a=f.GetWorldInfo();a.SetAngle(this.GetWorldInfo().GetAngle()),a.SetBboxChanged()}const g=this._runtime.GetEventSheetManager();if(g.BlockFlushingInstances(!0),f._TriggerOnCreated(),f.IsInContainer())for(const a of f.siblings())a._TriggerOnCreated();g.BlockFlushingInstances(!1);const h=this._runtime.GetCurrentAction(),i=h.GetSavedDataMap();let j=!1;if((!i.has("Spawn_LastExec")||i.get("Spawn_LastExec")d.GetWidth()?-1:1,f=0>d.GetHeight()?-1:1,g=c.GetWidth()*a*e,h=c.GetHeight()*a*f;(d.GetWidth()!==g||d.GetHeight()!==h)&&(d.SetSize(g,h),d.SetBboxChanged())},LoadURL(a,b){const c=this._currentAnimationFrame,d=c.GetImageInfo(),e=this.GetWorldInfo(),f=this._runtime;return d.GetURL()===a?(0===b&&(e.SetSize(d.GetWidth(),d.GetHeight()),e.SetBboxChanged()),void this.Trigger(C3.Plugins.Sprite.Cnds.OnURLLoaded)):void(async()=>{const c=C3.New(C3.ImageInfo);await c.LoadDynamicAsset(f,a),await c.LoadStaticTexture(f.GetWebGLRenderer(),{sampling:this._runtime.GetSampling()}),d.ReplaceWith(c),this._sdkType._UpdateAllCurrentTexture(),this.WasReleased()||0!==b||(e.SetSize(d.GetWidth(),d.GetHeight()),e.SetBboxChanged()),f.UpdateRender(),this.WasReleased()||(await this.TriggerAsync(C3.Plugins.Sprite.Cnds.OnURLLoaded))})()},SetCollisions(a){this.GetWorldInfo().SetCollisionEnabled(a)},SetSolidCollisionFilter(a,b){this.GetWorldInfo().SetSolidCollisionFilter(0===a,b)},SetEffect(a){this.GetWorldInfo().SetBlendMode(a),this._runtime.UpdateRender()}}; + +"use strict";C3.Plugins.Sprite.Exps={AnimationFrame(){return this._currentFrameIndex},AnimationFrameCount(){return this._currentAnimation.GetFrameCount()},AnimationName(){return this._currentAnimation.GetName()},AnimationSpeed(){return this._isPlayingForwards?this._currentAnimationSpeed:-this._currentAnimationSpeed},ImagePointX(a){return this.GetImagePoint(a)[0]},ImagePointY(a){return this.GetImagePoint(a)[1]},ImagePointCount(){return this._currentAnimationFrame.GetImagePointCount()},ImageWidth(){return this.GetCurrentImageInfo().GetWidth()},ImageHeight(){return this.GetCurrentImageInfo().GetHeight()}}; + +"use strict";C3.Plugins.Keyboard=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Keyboard.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";C3.Plugins.Keyboard.Instance=class extends C3.SDKInstanceBase{constructor(a){super(a),this._keyMap=Array(256),this._typedKeyMap=Array(256),this._triggerKey=0;const b=this.GetRuntime().Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(b,"keydown",(a)=>this._OnKeyDown(a.data)),C3.Disposable.From(b,"keyup",(a)=>this._OnKeyUp(a.data)),C3.Disposable.From(b,"window-blur",()=>this._OnWindowBlur()))}Release(){super.Release()}async _OnKeyDown(a){const b=a["which"];this._keyMap[b]||(this._keyMap[b]=!0,this._typedKeyMap[b]=a["key"],this._triggerKey=b,await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnAnyKey),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKey),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyCode))}async _OnKeyUp(a){const b=a["which"];this._keyMap[b]=!1,this._typedKeyMap[b]=a["key"],this._triggerKey=b,await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnAnyKeyReleased),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyReleased),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyCodeReleased)}async _OnWindowBlur(){for(let a=0,b=this._keyMap.length;aa||a>=this._keyMap.length)&&!!this._keyMap[a]},OnKeyCode(a){return this._triggerKey===a},OnKeyCodeReleased(a){return this._triggerKey===a}}; + +"use strict";C3.Plugins.Keyboard.Acts={}; + +"use strict";{function a(a){return a=Math.floor(a),8===a?"backspace":9===a?"tab":13===a?"enter":16===a?"shift":17===a?"control":18===a?"alt":19===a?"pause":20===a?"capslock":27===a?"esc":33===a?"pageup":34===a?"pagedown":35===a?"end":36===a?"home":37===a?"\u2190":38===a?"\u2191":39===a?"\u2192":40===a?"\u2193":45===a?"insert":46===a?"del":91===a?"left window key":92===a?"right window key":93===a?"select":96===a?"numpad 0":97===a?"numpad 1":98===a?"numpad 2":99===a?"numpad 3":100===a?"numpad 4":101===a?"numpad 5":102===a?"numpad 6":103===a?"numpad 7":104===a?"numpad 8":105===a?"numpad 9":106===a?"numpad *":107===a?"numpad +":109===a?"numpad -":110===a?"numpad .":111===a?"numpad /":112===a?"F1":113===a?"F2":114===a?"F3":115===a?"F4":116===a?"F5":117===a?"F6":118===a?"F7":119===a?"F8":120===a?"F9":121===a?"F10":122===a?"F11":123===a?"F12":144===a?"numlock":145===a?"scroll lock":186===a?";":187===a?"=":188===a?",":189===a?"-":190===a?".":191===a?"/":192===a?"'":219===a?"[":220===a?"\\":221===a?"]":222===a?"#":223===a?"`":String.fromCharCode(a)}C3.Plugins.Keyboard.Exps={LastKeyCode(){return this._triggerKey},StringFromKeyCode(b){return a(b)},TypedKey(){return this._typedKeyMap[this._triggerKey]||""}}} + +"use strict";C3.Plugins.Text=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Text.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}LoadTextures(){}ReleaseTextures(){}}; + +"use strict";{const a=[0,0,0],b=["left","center","right"],c=["top","center","bottom"],d=new C3.Rect,e=new C3.Quad;C3.Plugins.Text.Instance=class extends C3.SDKWorldInstanceBase{constructor(a,b){if(super(a),this._text="",this._enableBBcode=!0,this._faceName="Arial",this._ptSize=12,this._lineHeightOffset=0,this._isBold=!1,this._isItalic=!1,this._color=C3.New(C3.Color),this._horizontalAlign=0,this._verticalAlign=0,this._wrapByWord=!0,this._typewriterStartTime=-1,this._typewriterEndTime=-1,this._typewriterLength=0,this._webglText=C3.New(C3.Gfx.WebGLText,this._runtime.GetWebGLRenderer(),{timeout:5}),this._webglText.ontextureupdate=()=>this._runtime.UpdateRender(),this._webglText.SetIsAsync(!1),b){this._text=b[0],this._enableBBcode=!!b[1],this._faceName=b[2],this._ptSize=b[3],this._lineHeightOffset=b[4],this._isBold=!!b[5],this._isItalic=!!b[6],this._horizontalAlign=b[8],this._verticalAlign=b[9],this._wrapByWord=0===b[10];const a=b[7];this._color.setRgb(a[0],a[1],a[2]),this.GetWorldInfo().SetVisible(b[11])}this._UpdateTextSettings()}Release(){this._CancelTypewriter(),this._webglText.Release(),this._webglText=null,super.Release()}_UpdateTextSettings(){const a=this._webglText;a.SetText(this._text),a.SetBBCodeEnabled(this._enableBBcode),a.SetFontName(this._faceName),a.SetFontSize(this._ptSize),a.SetLineHeight(this._lineHeightOffset),a.SetBold(this._isBold),a.SetItalic(this._isItalic),a.SetColor(this._color),a.SetHorizontalAlignment(b[this._horizontalAlign]),a.SetVerticalAlignment(c[this._verticalAlign]),a.SetWordWrapMode(this._wrapByWord?"word":"character")}_UpdateTextSize(){const a=this.GetWorldInfo(),b=a.GetLayer(),c=b.GetRenderScale()*b.Get2DScaleFactorToZ(a.GetTotalZElevation());this._webglText.SetSize(a.GetWidth(),a.GetHeight(),c)}Draw(a){var b=Math.round;const c=this.GetWorldInfo();this._UpdateTextSize();const f=this._webglText.GetTexture();if(!f)return;const g=c.GetLayer();let h=c.GetBoundingQuad();if(0===c.GetAngle()&&0===c.GetLayer().GetAngle()&&0===c.GetTotalZElevation()){const[c,i]=g.LayerToDrawSurface(h.getTlx(),h.getTly()),[j,k]=g.LayerToDrawSurface(h.getBrx(),h.getBry()),l=c-b(c),m=i-b(i);d.set(c,i,j,k),d.offset(-l,-m),e.setFromRect(d);const[n,o]=a.GetRenderTargetSize(a.GetRenderTarget());this._runtime.GetCanvasManager().SetDeviceTransform(a,n,o),a.SetTexture(f),a.Quad3(e,this._webglText.GetTexRect()),g._SetTransform(a)}else{let c=0,d=0;this._runtime.IsPixelRoundingEnabled()&&(c=h.getTlx()-b(h.getTlx()),d=h.getTly()-b(h.getTly())),(0!=c||0!=d)&&(e.copy(h),e.offset(-c,-d),h=e),a.SetTexture(f),a.Quad3(h,this._webglText.GetTexRect())}}SaveToJson(){const a={"t":this._text,"c":this._color.toJSON(),"fn":this._faceName,"ps":this._ptSize};return this._enableBBcode&&(a["bbc"]=this._enableBBcode),0!==this._horizontalAlign&&(a["ha"]=this._horizontalAlign),0!==this._verticalAlign&&(a["va"]=this._verticalAlign),this._wrapByWord||(a["wr"]=this._wrapByWord),0!==this._lineHeightOffset&&(a["lho"]=this._lineHeightOffset),this._isBold&&(a["b"]=this._isBold),this._isItalic&&(a["i"]=this._isItalic),-1!==this._typewriterEndTime&&(a["tw"]={"st":this._typewriterStartTime,"en":this._typewriterEndTime,"l":this._typewriterLength}),a}LoadFromJson(a){if(this._CancelTypewriter(),this._text=a["t"],this._color.setFromJSON(a["c"]),this._faceName=a["fn"],this._ptSize=a["ps"],this._enableBBcode=!!a.hasOwnProperty("bbc")&&a["bbc"],this._horizontalAlign=a.hasOwnProperty("ha")?a["ha"]:0,this._verticalAlign=a.hasOwnProperty("va")?a["va"]:0,this._wrapByWord=!a.hasOwnProperty("wr")||a["wr"],this._lineHeightOffset=a.hasOwnProperty("lho")?a["lho"]:0,this._isBold=!!a.hasOwnProperty("b")&&a["b"],this._isItalic=!!a.hasOwnProperty("i")&&a["i"],a.hasOwnProperty("tw")){const b=a["tw"];this._typewriterStartTime=b["st"],this._typewriterEndTime=b["en"],this._typewriterLength=b["l"]}this._UpdateTextSettings(),-1!==this._typewriterEndTime&&this._StartTicking()}GetPropertyValueByIndex(b){return 0===b?this._text:1===b?this._enableBBcode:2===b?this._faceName:3===b?this._ptSize:4===b?this._lineHeightOffset:5===b?this._isBold:6===b?this._isItalic:7===b?(a[0]=this._color.getR(),a[1]=this._color.getG(),a[2]=this._color.getB(),a):8===b?this._horizontalAlign:9===b?this._verticalAlign:10===b?this._wrapByWord?1:0:void 0}SetPropertyValueByIndex(a,b){switch(a){case 0:if(this._text===b)return;this._text=b,this._UpdateTextSettings();break;case 1:if(this._enableBBcode===!!b)return;this._enableBBcode=!!b,this._UpdateTextSettings();break;case 2:if(this._faceName===b)return;this._faceName=b,this._UpdateTextSettings();break;case 3:if(this._ptSize===b)return;this._ptSize=b,this._UpdateTextSettings();break;case 4:if(this._lineHeightOffset===b)return;this._lineHeightOffset=b,this._UpdateTextSettings();break;case 5:if(this._isBold===!!b)return;this._isBold=!!b,this._UpdateTextSettings();break;case 6:if(this._isItalic===!!b)return;this._isItalic=!!b,this._UpdateTextSettings();break;case 7:const d=this._color,c=b;if(d.getR()===c[0]&&d.getG()===c[1]&&d.getB()===c[2])return;this._color.setRgb(c[0],c[1],c[2]),this._UpdateTextSettings();break;case 8:if(this._horizontalAlign===b)return;this._horizontalAlign=b,this._UpdateTextSettings();break;case 9:if(this._verticalAlign===b)return;this._verticalAlign=b,this._UpdateTextSettings();break;case 10:if(this._wrapByWord===(b===0))return;this._wrapByWord=b===0,this._UpdateTextSettings();}}SetPropertyOffsetValueByIndex(a,b){0!==b&&(3===a?(this._ptSize+=b,this._UpdateTextSettings()):4===a?(this._lineHeightOffset+=b,this._UpdateTextSettings()):void 0)}SetPropertyColorOffsetValueByIndex(a,c,d,e){(0!==c||0!==d||0!==e)&&(7===a?(this._color.addRgb(c,d,e),this._UpdateTextSettings()):void 0)}_SetText(a){this._text===a||(this._text=a,this._webglText.SetText(a),this._runtime.UpdateRender())}_StartTypewriter(a,b){this._SetText(a),this._typewriterStartTime=this._runtime.GetGameTime(),this._typewriterEndTime=this._typewriterStartTime+b,this._typewriterLength=C3.BBString.StripAnyTags(a).length,this._webglText.SetDrawMaxCharacterCount(0),this._StartTicking()}_CancelTypewriter(){this._typewriterStartTime=-1,this._typewriterEndTime=-1,this._typewriterLength=0,this._webglText.SetDrawMaxCharacterCount(-1),this._StopTicking()}Tick(){const a=this._runtime.GetGameTime();if(a>=this._typewriterEndTime)this._CancelTypewriter(),this.Trigger(C3.Plugins.Text.Cnds.OnTypewriterTextFinished),this._runtime.UpdateRender();else{let b=C3.relerp(this._typewriterStartTime,this._typewriterEndTime,a,0,this._typewriterLength);b=Math.floor(b),b!==this._webglText.GetDrawMaxCharacterCount()&&(this._webglText.SetDrawMaxCharacterCount(b),this._runtime.UpdateRender())}}GetDebuggerProperties(){return[{title:"plugins.text.name",properties:[{name:"plugins.text.properties.text.name",value:this._text,onedit:(a)=>this._SetText(a)}]}]}}} + +"use strict";C3.Plugins.Text.Cnds={CompareText(a,b){return b?this._text===a:C3.equalsNoCase(this._text,a)},IsRunningTypewriterText(){return-1!==this._typewriterEndTime},OnTypewriterTextFinished(){return!0}}; + +"use strict";{const a=C3.New(C3.Color);C3.Plugins.Text.Acts={SetText(a){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),this._SetText(a.toString())},AppendText(a){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),a=a.toString();a&&this._SetText(this._text+a)},TypewriterText(a,b){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),this._StartTypewriter(a.toString(),b)},SetFontFace(a,b){let c=!1,d=!1;if(1===b?c=!0:2===b?d=!0:3===b?(c=!0,d=!0):void 0,a===this._faceName&&c===this._isBold&&d===this._isItalic)return!1;this._faceName=a,this._isBold=c,this._isItalic=d;const e=this._webglText;e.SetFontName(this._faceName),e.SetBold(this._isBold),e.SetItalic(this._isItalic),this._runtime.UpdateRender()},SetFontSize(a){this._ptSize===a||(this._ptSize=a,this._webglText.SetFontSize(this._ptSize),this._runtime.UpdateRender())},SetFontColor(b){a.setFromRgbValue(b),a.clamp();this._color.equalsIgnoringAlpha(a)||(this._color.copyRgb(a),this._webglText.SetColor(this._color),this._runtime.UpdateRender())},SetWebFont(){console.warn("[Text] 'Set web font' action is deprecated and no longer has any effect")},SetEffect(a){this.GetWorldInfo().SetBlendMode(a),this._runtime.UpdateRender()},TypewriterFinish(){-1===this._typewriterEndTime||(this._CancelTypewriter(),this.Trigger(C3.Plugins.Text.Cnds.OnTypewriterTextFinished),this._runtime.UpdateRender())}}} + +"use strict";C3.Plugins.Text.Exps={Text(){return this._text},PlainText(){return C3.BBString.StripAnyTags(this._text)},FaceName(){return this._faceName},FaceSize(){return this._ptSize},TextWidth(){return this._UpdateTextSize(),this._webglText.GetTextWidth()},TextHeight(){return this._UpdateTextSize(),this._webglText.GetTextHeight()}}; + +"use strict";C3.Behaviors.solid=class extends C3.SDKBehaviorBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Behaviors.solid.Type=class extends C3.SDKBehaviorTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{const a=new Set;C3.Behaviors.solid.Instance=class extends C3.SDKBehaviorInstanceBase{constructor(a,b){super(a),this.SetEnabled(!0),b&&(this.SetEnabled(b[0]),this.SetTags(b[1]))}Release(){super.Release()}SetEnabled(a){this._inst.GetSavedDataMap().set("solidEnabled",!!a)}IsEnabled(){return this._inst.GetSavedDataMap().get("solidEnabled")}SetTags(a){const b=this._inst.GetSavedDataMap();if(!a.trim())return void b.delete("solidTags");let c=b.get("solidTags");c||(c=new Set,b.set("solidTags",c)),c.clear();for(const b of a.split(" "))b&&c.add(b.toLowerCase())}GetTags(){return this._inst.GetSavedDataMap().get("solidTags")||a}SaveToJson(){return{"e":this.IsEnabled()}}LoadFromJson(a){this.SetEnabled(a["e"])}GetPropertyValueByIndex(a){return a===0?this.IsEnabled():void 0}SetPropertyValueByIndex(a,b){a===0?this.SetEnabled(b):void 0}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.solid.properties.enabled.name",value:this.IsEnabled(),onedit:(a)=>this.SetEnabled(a)}]}]}}} + +"use strict";C3.Behaviors.solid.Cnds={IsEnabled(){return this.IsEnabled()}}; + +"use strict";C3.Behaviors.solid.Acts={SetEnabled(a){this.SetEnabled(a)}}; + +"use strict";C3.Behaviors.solid.Exps={}; + +"use strict";C3.Behaviors.Platform=class extends C3.SDKBehaviorBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Behaviors.Platform.Type=class extends C3.SDKBehaviorTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{function a(a,b,c,d,e){return C3.clamp(a*e+.5*d*e*e,b*e,c*e)}const b=0;C3.Behaviors.Platform.Instance=class extends C3.SDKBehaviorInstanceBase{constructor(a,c){super(a),this._keyboardDisposables=null,this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1,this._doubleJumped=!1,this._canDoubleJump=!1,this._ignoreInput=!1,this._simLeft=!1,this._simRight=!1,this._simJump=!1,this._lastFloorObject=null,this._loadFloorUid=-1,this._lastFloorX=0,this._lastFloorY=0,this._floorIsJumpthru=!1,this._wasOnFloor=!1,this._wasOverJumpthru=!!this._runtime.GetCollisionEngine().TestOverlapJumpthru(this._inst),this._loadJumpthruUid=-1,this._animMode="stopped",this._fallThrough=0,this._isFirstTick=!0,this._dx=0,this._dy=0,this._downX=0,this._downY=0,this._rightX=0,this._rightY=0,this._g=0,this._g1=0,this._ga=C3.toRadians(90),this._maxSpeed=330,this._acc=1500,this._dec=1500,this._jumpStrength=650,this._maxFall=1e3,this._enableDoubleJump=!1,this._jumpSustain=0,this._sustainTime=0,this._defaultControls=!0,this._ceilingCollisionMode=0,this._isEnabled=!0,c&&(this._maxSpeed=c[b],this._acc=c[1],this._dec=c[2],this._jumpStrength=c[3],this._g=c[4],this._maxFall=c[5],this._enableDoubleJump=!!c[6],this._jumpSustain=c[7]/1e3,this._defaultControls=!!c[8],this._isEnabled=!!c[9]);const d=this._runtime.Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(d,"instancedestroy",(a)=>this._OnInstanceDestroyed(a.instance)),C3.Disposable.From(d,"afterload",()=>this._OnAfterLoad())),this._defaultControls&&this._BindEvents(),this._isEnabled&&this._StartPostTicking(),this._UpdateGravity(),this._inst.GetUnsavedDataMap().set("isPlatformBehavior",!0)}Release(){this._keyboardDisposables&&(this._keyboardDisposables.Release(),this._keyboardDisposables=null),this._lastFloorObject=null,this._wasOverJumpthru=null,super.Release()}_BindEvents(){if(!this._keyboardDisposables){const a=this._runtime.Dispatcher();this._keyboardDisposables=new C3.CompositeDisposable(C3.Disposable.From(a,"keydown",(a)=>this._OnKeyDown(a.data)),C3.Disposable.From(a,"keyup",(a)=>this._OnKeyUp(a.data)),C3.Disposable.From(a,"window-blur",()=>this._OnWindowBlur()))}}_UnBindEvents(){this._keyboardDisposables&&(this._keyboardDisposables.Release(),this._keyboardDisposables=null)}_OnInstanceDestroyed(a){this._lastFloorObject===a&&(this._lastFloorObject=null),this._wasOverJumpthru===a&&(this._wasOverJumpthru=null)}_OnKeyDown(a){switch(a["key"]){case"ArrowLeft":this._leftKey=!0;break;case"ArrowRight":this._rightKey=!0;break;case"ArrowUp":this._jumpKey=!0;}}_OnKeyUp(a){switch(a["key"]){case"ArrowLeft":this._leftKey=!1;break;case"ArrowRight":this._rightKey=!1;break;case"ArrowUp":this._jumpKey=!1,this._jumped=!1;}}_OnWindowBlur(){this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1}SaveToJson(){return{"ii":this._ignoreInput,"lfx":this._lastFloorX,"lfy":this._lastFloorY,"lfo":this._lastFloorObject?this._lastFloorObject.GetUID():-1,"am":this._animMode,"en":this._isEnabled,"fall":this._fallThrough,"ft":this._isFirstTick,"dx":this._dx,"dy":this._dy,"ms":this._maxSpeed,"acc":this._acc,"dec":this._dec,"js":this._jumpStrength,"g":this._g,"g1":this._g1,"mf":this._maxFall,"wof":this._wasOnFloor,"woj":this._wasOverJumpthru?this._wasOverJumpthru.GetUID():-1,"ga":this._ga,"edj":this._enableDoubleJump,"cdj":this._canDoubleJump,"dj":this._doubleJumped,"sus":this._jumpSustain,"dc":this._defaultControls,"cc":this._ceilingCollisionMode}}LoadFromJson(a){this._ignoreInput=a["ii"],this._lastFloorX=a["lfx"],this._lastFloorY=a["lfy"],this._loadFloorUid=a["lfo"],this._animMode=a["am"];const b=a["en"];this._fallThrough=a["fall"],this._isFirstTick=a["ft"],this._dx=a["dx"],this._dy=a["dy"],this._maxSpeed=a["ms"],this._acc=a["acc"],this._dec=a["dec"],this._jumpStrength=a["js"],this._g=a["g"],this._g1=a["g1"],this._maxFall=a["mf"],this._wasOnFloor=a["wof"],this._loadJumpthruUid=a["woj"],this._ga=a["ga"],this._enableDoubleJump=a["edj"],this._canDoubleJump=a["cdj"],this._doubleJumped=a["dj"],this._jumpSustain=a["sus"],this._defaultControls=a["dc"],this._ceilingCollisionMode=a["cc"]||0,this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1,this._simLeft=!1,this._simRight=!1,this._simJump=!1,this._sustainTime=0,this._defaultControls?this._BindEvents():this._UnBindEvents(),this._SetEnabled(b),this._UpdateGravity()}_OnAfterLoad(){this._lastFloorObject=-1===this._loadFloorUid?null:this._runtime.GetInstanceByUID(this._loadFloorUid),this._wasOverJumpthru=-1===this._loadJumpthruUid?null:this._runtime.GetInstanceByUID(this._loadJumpthruUid)}_UpdateGravity(){var a=Math.PI,b=Math.sin,c=Math.cos;this._downX=c(this._ga),this._downY=b(this._ga),this._rightX=c(this._ga-a/2),this._rightY=b(this._ga-a/2),this._downX=C3.round6dp(this._downX),this._downY=C3.round6dp(this._downY),this._rightX=C3.round6dp(this._rightX),this._rightY=C3.round6dp(this._rightY),this._g1=this._g,0>this._g&&(this._downX*=-1,this._downY*=-1,this._g=Math.abs(this._g))}_GetGDir(){return 0>this._g?-1:1}_IsOnFloor(){const a=this._inst.GetWorldInfo(),b=this._runtime.GetCollisionEngine(),c=this._inst,d=this._lastFloorObject,e=a.GetX(),f=a.GetY();if(a.OffsetXY(this._downX,this._downY),a.SetBboxChanged(),d&&b.TestOverlap(c,d)&&(!d.GetObjectClass().HasSolidBehavior()||b.IsSolidCollisionAllowed(d,c)))return a.SetXY(e,f),a.SetBboxChanged(),d;else{let d=b.TestOverlapSolid(c),g=null;if(d||0!==this._fallThrough||(g=b.TestOverlapJumpthru(c,!0)),a.SetXY(e,f),a.SetBboxChanged(),d)return b.TestOverlap(c,d)?null:(this._floorIsJumpthru=!1,d);if(g&&g.length){let a=0;for(let d=0,e=g.length;dthis._maxFall&&(this._dy=this._maxFall)),a&&(this._jumped=!0)}_ApplyHorizontalAcceleration(a,b,c){const d=this._acc,e=this._dec;a===b&&(0>this._dx?(this._dx+=e*c,0this._dx&&(this._dx=0)));let f=0;return a&&!b&&(0this._dx?f=d+e:f=d),this._dx+=f*c,this._dx=C3.clamp(this._dx,-this._maxSpeed,this._maxSpeed),f}_HandleHorizontalMovement(b,c,d,e){var f=Math.abs;const g=this._inst,h=g.GetWorldInfo(),i=this._runtime.GetCollisionEngine(),j=this._downX,k=this._downY,l=this._rightX,m=this._rightY,n=this._maxSpeed;let o=!1,p=h.GetX(),q=h.GetY();const r=a(this._dx,-n,n,c,b)*l,s=a(this._dx,-n,n,c,b)*m;h.OffsetXY(l*(1this._dx?1:-1),m*(0>this._dx?1:-1),a,!1)?d&&!t&&!this._floorIsJumpthru&&(p=h.GetX(),q=h.GetY(),h.OffsetXY(j,k),i.TestOverlapSolid(g)?!i.PushOutSolid(g,-j,-k,3,!1)&&(h.SetXY(p,q),h.SetBboxChanged()):(h.SetXY(p,q),h.SetBboxChanged())):(h.SetXY(p,q),h.SetBboxChanged()),!t&&(this._dx=0)):!u&&!e&&f(this._dy)this._dy?1:-1),i*(0>this._dy?1:-1),a,p,o))f.SetXY(k,l),f.SetBboxChanged(),this._wasOnFloor=!0,p||(this._dy=0);else{this._lastFloorObject=o;const a=o.GetWorldInfo();this._lastFloorX=a.GetX(),this._lastFloorY=a.GetY(),this._floorIsJumpthru=p,p&&(j=!0),(0this._dy&&1===this._ceilingCollisionMode&&g.PushInFractional(e,h,i,o,32)}}return j}_HandleAnimationTriggers(a,b,c){"falling"!==this._animMode&&0this._dx=a},{name:"behaviors.platform.debugger.vector-y",value:this._dy,onedit:(a)=>this._dy=a},{name:"behaviors.platform.properties.max-speed.name",value:this._maxSpeed,onedit:(a)=>this._maxSpeed=a},{name:"behaviors.platform.properties.acceleration.name",value:this._acc,onedit:(a)=>this._acc=a},{name:"behaviors.platform.properties.deceleration.name",value:this._dec,onedit:(a)=>this._dec=a},{name:"behaviors.platform.properties.jump-strength.name",value:this._jumpStrength,onedit:(a)=>this._jumpStrength=a},{name:"behaviors.platform.properties.gravity.name",value:this._g,onedit:(a)=>this._g=a},{name:"behaviors.platform.debugger.gravity-angle",value:C3.toDegrees(this._ga),onedit:(a)=>this._ga=C3.toRadians(a)},{name:"behaviors.platform.properties.max-fall-speed.name",value:this._maxFall,onedit:(a)=>this._maxFall=a},{name:"behaviors.platform.debugger.animation-mode",value:["behaviors.platform.debugger.anim-"+this._animMode]},{name:"behaviors.platform.properties.enabled.name",value:this._isEnabled,onedit:(a)=>this._SetEnabled(a)}]}]}}} + +"use strict";C3.Behaviors.Platform.Cnds={IsMoving(){return 0!==this._dx||0!==this._dy},CompareSpeed(a,b){return C3.compare(Math.hypot(this._dx,this._dy),a,b)},IsOnFloor(){if(0!==this._dy)return!1;const a=this._inst,b=this.GetWorldInfo(),c=this._runtime.GetCollisionEngine(),d=b.GetX(),e=b.GetY();b.OffsetXY(this._downX,this._downY),b.SetBboxChanged();const f=c.TestOverlapSolid(a);let g=null;if(f||0!==this._fallThrough||(g=c.TestOverlapJumpthru(a,!0)),b.SetXY(d,e),b.SetBboxChanged(),f)return!c.TestOverlap(a,f);if(g&&g.length){let b=0;for(let d=0,e=g.length;dthis._dy},IsFalling(){return 0=b.GetShakeStart()&&h=this._timeLeft)){const a=this._runtime.GetDt(this._inst);return this._timeLeft-=a,0>=this._timeLeft?(this._timeLeft=0,this._inst.GetWorldInfo().SetVisible(!0),this._runtime.UpdateRender(),this.DebugTrigger(C3.Behaviors.Flash.Cnds.OnFlashEnded)):void(this._stageTimeLeft-=a,0>=this._stageTimeLeft&&(0===this._stage?(this._inst.GetWorldInfo().SetVisible(!1),this._stage=1,this._stageTimeLeft+=this._offTime):(this._inst.GetWorldInfo().SetVisible(!0),this._stage=0,this._stageTimeLeft+=this._onTime),this._runtime.UpdateRender()))}}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.flash.debugger.on-time",value:this._onTime,onedit:(a)=>this._onTime=a},{name:"behaviors.flash.debugger.off-time",value:this._offTime,onedit:(a)=>this._offTime=a},{name:"behaviors.flash.debugger.is-flashing",value:0 "Player", +() => "walk", +() => "idle", +() => "right", +() => "left", +() => "jump", +() => "System", +p => { +const n0 = p._GetNode(0); +return () => n0.ExpObject(); +}, +() => 70, +() => "Air Dash", +() => 0, +() => 1, +() => 1000, +() => 0.05, +() => 270, +() => -1000, +() => "Wall Jump", +() => 50, +() => "wall", +() => -500, +() => 500, +() => "ground", +() => "Coffee", +() => "coffeePlayer", +() => "Thanks!", +() => "Talking to Customers", +() => "Can I get a coffee?", +() => "Leaving the Room" + ]; +} + + diff --git a/DreamBeanDemo/scripts/dispatchWorker.js b/DreamBeanDemo/scripts/dispatchWorker.js new file mode 100644 index 0000000..8f92f7b --- /dev/null +++ b/DreamBeanDemo/scripts/dispatchWorker.js @@ -0,0 +1 @@ +"use strict";self.inputPort=null,self.jobQueue=[],self.jobWorkers=[],self.sentBlobs=[],self.sentBuffers=[],self.importedScripts=[],self.lastBroadcasts=new Map;class JobWorker{constructor(a,b){this._port=a,this._number=b,this._isReady=!1,this._isBusy=!1,this._port.onmessage=(a)=>this._OnMessage(a.data)}ImportScripts(a){this._port.postMessage({"type":"_import_scripts","scripts":a})}SendBlob(a,b){this._port.postMessage({"type":"_send_blob","blob":a,"id":b})}SendBuffer(a,b){this._port.postMessage({"type":"_send_buffer","buffer":a,"id":b})}SendJob(a){if(this._isBusy||!this._isReady)throw new Error("cannot take job");this._isBusy=!0,this._port.postMessage(a,a["transferables"])}_InitBroadcast(a){this._port.postMessage(a,a["transferables"])}SendReady(){this._port.postMessage({"type":"_ready"})}IsReady(){return this._isReady}_OnReady(){this._isReady=!0,this.MaybeStartNextJob()}IsBusy(){return this._isBusy}GetNumber(){return this._number}_OnMessage(a){const b=a["type"];return"ready"===b?void this._OnReady():"done"===b?void this._OnJobDone():void console.error("unknown message from worker '"+b+"'")}_OnJobDone(){this._isBusy=!1,this.MaybeStartNextJob()}MaybeStartNextJob(){if(!this._isBusy&&this._isReady){const a=this._FindAvailableJob();if(-1!==a){const b=self.jobQueue[a],c=b["isBroadcast"];c?(b["doneFlags"][this._number]=!0,b["doneFlags"].every((a)=>a)&&self.jobQueue.splice(a,1)):self.jobQueue.splice(a,1),this.SendJob(b)}}}_FindAvailableJob(){for(let a=0,b=self.jobQueue.length;a{const b=a.data,c=b["type"];"_init"===c?(self.inputPort=b["in-port"],self.inputPort.onmessage=OnInputPortMessage):"_addJobWorker"===c&&AddJobWorker(b["port"])});function OnInputPortMessage(a){const b=a.data,c=b["type"];if("_cancel"===c)return void CancelJob(b.jobId);if("_import_scripts"===c){const a=b["scripts"];for(const b of self.jobWorkers)b.ImportScripts(a);return void self.importedScripts.push(a)}if("_send_blob"===c){const a=b["blob"],c=b["id"];for(const b of self.jobWorkers)b.SendBlob(a,c);return void self.sentBlobs.push([a,c])}if("_send_buffer"===c){const a=b["buffer"],c=b["id"];for(const b of self.jobWorkers)b.SendBuffer(a,c);return void self.sentBuffers.push([a,c])}if("_no_more_workers"===c)return self.sentBlobs.length=0,self.sentBuffers.length=0,self.importedScripts.length=0,void self.lastBroadcasts.clear();if("_testMessageChannel"===c)return void self.jobWorkers[0].TestMessageChannel();self.jobQueue.push(b),b["isBroadcast"]&&(b["doneFlags"]=Array(self.jobWorkers.length).fill(!1),b["transferables"]=[],self.lastBroadcasts.set(b["type"],b));for(const b of self.jobWorkers)b.MaybeStartNextJob()} \ No newline at end of file diff --git a/DreamBeanDemo/scripts/jobWorker.js b/DreamBeanDemo/scripts/jobWorker.js new file mode 100644 index 0000000..936a7ef --- /dev/null +++ b/DreamBeanDemo/scripts/jobWorker.js @@ -0,0 +1 @@ +"use strict";self.dispatchPort=null,self.outputPort=null,self.workerNumber=-1,self.activeJobId=null,self.sentBlobs=new Map,self.sentBuffers=new Map,self.JobHandlers={};function FlipImageData(a,b,c){const d=4*b,e=new Uint8Array(d),f=a.buffer;for(let g=0,h=Math.floor(c/2);g{const b=a.data,c=b["type"];return"init"===c?(self.workerNumber=b["number"],self.dispatchPort=b["dispatch-port"],self.dispatchPort.onmessage=OnDispatchWorkerMessage,void(self.outputPort=b["output-port"])):"terminate"===c?void self.close():void console.error("unknown message '"+c+"'")});function SendReady(){self.dispatchPort.postMessage({"type":"ready"}),self.outputPort.postMessage({"type":"ready"})}function SendError(a,b){a||self.outputPort.postMessage({"type":"error","jobId":self.activeJobId,"error":b.toString()}),SendDone()}function SendResult(a,b){if(!a){const a=b.transferables||[];self.outputPort.postMessage({"type":"result","jobId":self.activeJobId,"result":b.result},a)}SendDone()}function SendDone(){self.activeJobId=null,self.dispatchPort.postMessage({"type":"done"})}function SendProgress(a){self.outputPort.postMessage({"type":"progress","jobId":self.activeJobId,"progress":a})}function OnDispatchWorkerMessage(a){const b=a.data,c=b["type"];if("_import_scripts"===c)return void importScripts(...b["scripts"]);if("_send_blob"===c)return void self.sentBlobs.set(b["id"],b["blob"]);if("_send_buffer"===c)return void self.sentBuffers.set(b["id"],b["buffer"]);if("_testMessageChannel"===c)return void self.outputPort.postMessage({"type":"_testMessageChannelOk"});if("_ready"===c)return void SendReady();const d=b["jobId"],f=b["isBroadcast"],e=b["params"];let g;if(self.activeJobId=d,!self.JobHandlers.hasOwnProperty(c))return void console.error(`no handler for message type '${c}'`);try{g=self.JobHandlers[c](e)}catch(a){return void SendError(f,"Exception in job handler: "+a)}g&&g.then?g.then((a)=>SendResult(f,a)).catch((a)=>SendError(f,"Rejection in job handler: "+a)):SendResult(f,g)} \ No newline at end of file diff --git a/DreamBeanDemo/scripts/main.js b/DreamBeanDemo/scripts/main.js new file mode 100644 index 0000000..0299089 --- /dev/null +++ b/DreamBeanDemo/scripts/main.js @@ -0,0 +1,11 @@ +"use strict";window.DOMHandler=class{constructor(a,b){this._iRuntime=a,this._componentId=b,this._hasTickCallback=!1,this._tickCallback=()=>this.Tick()}Attach(){}PostToRuntime(a,b,c,d){this._iRuntime.PostToRuntimeComponent(this._componentId,a,b,!!c,d)}PostToRuntimeAsync(a,b,c,d){return this._iRuntime.PostToRuntimeComponentAsync(this._componentId,a,b,!!c,d)}_PostToRuntimeMaybeSync(a,b,c){this._iRuntime.UsesWorker()?this.PostToRuntime(a,b,c):this._iRuntime._GetLocalRuntime()["_OnMessageFromDOM"]({"type":"event","component":this._componentId,"handler":a,"dispatchRuntimeEvent":c,"data":b,"responseId":null})}AddRuntimeMessageHandler(a,b){this._iRuntime.AddRuntimeComponentMessageHandler(this._componentId,a,b)}AddRuntimeMessageHandlers(a){for(const[b,c]of a)this.AddRuntimeMessageHandler(b,c)}GetRuntimeInterface(){return this._iRuntime}GetComponentID(){return this._componentId}_StartTicking(){this._hasTickCallback||(this._iRuntime._AddRAFCallback(this._tickCallback),this._hasTickCallback=!0)}_StopTicking(){this._hasTickCallback&&(this._iRuntime._RemoveRAFCallback(this._tickCallback),this._hasTickCallback=!1)}Tick(){}}; + +"use strict";window.DOMElementHandler=class extends DOMHandler{constructor(a,b){super(a,b),this._elementMap=new Map,this._autoAttach=!0,this.AddRuntimeMessageHandler("create",(a)=>this._OnCreate(a)),this.AddRuntimeMessageHandler("destroy",(a)=>this._OnDestroy(a)),this.AddRuntimeMessageHandler("set-visible",(a)=>this._OnSetVisible(a)),this.AddRuntimeMessageHandler("update-position",(a)=>this._OnUpdatePosition(a)),this.AddRuntimeMessageHandler("update-state",(a)=>this._OnUpdateState(a)),this.AddRuntimeMessageHandler("focus",(a)=>this._OnSetFocus(a)),this.AddRuntimeMessageHandler("set-css-style",(a)=>this._OnSetCssStyle(a))}SetAutoAttach(a){this._autoAttach=!!a}AddDOMElementMessageHandler(a,b){this.AddRuntimeMessageHandler(a,(a)=>{const c=a["elementId"],d=this._elementMap.get(c);return b(d,a)})}_OnCreate(a){const b=a["elementId"],c=this.CreateElement(b,a);this._elementMap.set(b,c),this._autoAttach&&document.body.appendChild(c)}CreateElement(){throw new Error("required override")}DestroyElement(){}_OnDestroy(a){const b=a["elementId"],c=this._elementMap.get(b);this.DestroyElement(c),this._autoAttach&&c.parentElement.removeChild(c),this._elementMap.delete(b)}PostToRuntimeElement(a,b,c){c||(c={}),c["elementId"]=b,this.PostToRuntime(a,c)}_PostToRuntimeElementMaybeSync(a,b,c){c||(c={}),c["elementId"]=b,this._PostToRuntimeMaybeSync(a,c)}_OnSetVisible(a){if(this._autoAttach){const b=this._elementMap.get(a["elementId"]);b.style.display=a["isVisible"]?"":"none"}}_OnUpdatePosition(a){if(this._autoAttach){const b=this._elementMap.get(a["elementId"]);b.style.left=a["left"]+"px",b.style.top=a["top"]+"px",b.style.width=a["width"]+"px",b.style.height=a["height"]+"px";const c=a["fontSize"];null!==c&&(b.style.fontSize=c+"em")}}_OnUpdateState(a){const b=this._elementMap.get(a["elementId"]);this.UpdateState(b,a)}UpdateState(){throw new Error("required override")}_OnSetFocus(a){const b=this._elementMap.get(a["elementId"]);a["focus"]?b.focus():b.blur()}_OnSetCssStyle(a){const b=this._elementMap.get(a["elementId"]);b.style[a["prop"]]=a["val"]}GetElementById(a){return this._elementMap.get(a)}}; + +"use strict";{function a(a){return new Promise((b,c)=>{const d=document.createElement("script");d.onload=b,d.onerror=c,d.async=!1,d.src=a,document.head.appendChild(d)})}async function b(a){const b=await c(a),d=new TextDecoder("utf-8");return d.decode(b)}function c(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=(a)=>b(a.target.result),d.onerror=(a)=>c(a),d.readAsArrayBuffer(a)})}function d(){if(!f)return o;const a=document.createElement("canvas"),b=a.getContext("webgl2",{"alpha":!0,"depth":!1,"antialias":!1,"failIfMajorPerformanceCaveat":!0});if(!b)return o;const c=b.getExtension("WEBGL_debug_renderer_info");if(!c)return o;const d=b.getParameter(c["UNMASKED_RENDERER_WEBGL"]);for(const a of p)if(d.toLowerCase().includes(a.toLowerCase()))return console.warn(`[Construct 3] This device appears to support WebGL 2, but it is disabled due to GPU driver bugs that make it unusable. (Renderer '${d}' matches blacklist entry '${a}'.) See crbug.com/934823`),1;return o}const e=/(iphone|ipod|ipad)/i.test(navigator.userAgent),f=/android/i.test(navigator.userAgent);let g=new Audio;const h={"audio/webm; codecs=opus":!!g.canPlayType("audio/webm; codecs=opus"),"audio/ogg; codecs=opus":!!g.canPlayType("audio/ogg; codecs=opus"),"audio/webm; codecs=vorbis":!!g.canPlayType("audio/webm; codecs=vorbis"),"audio/ogg; codecs=vorbis":!!g.canPlayType("audio/ogg; codecs=vorbis"),"audio/mp4":!!g.canPlayType("audio/mp4"),"audio/mpeg":!!g.canPlayType("audio/mpeg")};g=null;const i=[];let j=0;const k=[],l=new Map,m=new Map;let n=0;const o=2,p=["Mali"];window.RuntimeInterface=class f{constructor(a){this._useWorker=a.useWorker,this._messageChannelPort=null,this._baseUrl="",this._scriptFolder=a.scriptFolder,this._workerScriptBlobURLs={},this._worker=null,this._localRuntime=null,this._domHandlers=[],this._runtimeDomHandler=null,this._canvas=null,this._jobScheduler=null,this._rafId=-1,this._rafFunc=()=>this._OnRAFCallback(),this._rafCallbacks=[],this._exportType=a.exportType,"cordova"===this._exportType&&this._useWorker&&(console.warn("[C3 runtime] Worker mode is enabled and supported, but is disabled in Cordova due to crbug.com/939775. Reverting to DOM mode."),this._useWorker=!1),this._transferablesBroken=!1,this._localFileBlobs=null,("html5"===this._exportType||"playable-ad"===this._exportType)&&"file"===location.protocol.substr(0,4)&&alert("Exported games won't work until you upload them. (When running on the file: protocol, browsers block many features from working for security reasons.)"),this.AddRuntimeComponentMessageHandler("runtime","cordova-fetch-local-file",(a)=>this._OnCordovaFetchLocalFile(a)),this.AddRuntimeComponentMessageHandler("runtime","create-job-worker",(a)=>this._OnCreateJobWorker(a)),"cordova"===this._exportType?document.addEventListener("deviceready",()=>this._Init(a)):this._Init(a)}Release(){this._CancelAnimationFrame(),this._messageChannelPort&&(this._messageChannelPort.onmessage=null,this._messageChannelPort=null),this._worker&&(this._worker.terminate(),this._worker=null),this._localRuntime&&(this._localRuntime.Release(),this._localRuntime=null),this._canvas&&(this._canvas.parentElement.removeChild(this._canvas),this._canvas=null)}GetCanvas(){return this._canvas}GetBaseURL(){return this._baseUrl}UsesWorker(){return this._useWorker}GetExportType(){return this._exportType}IsWKWebView(){return"cordova"===this._exportType&&e}IsiPhoneX(){if(!this.IsWKWebView())return!1;const a=window["devicePixelRatio"],b=window["screen"]["width"]*a,c=window["screen"]["height"]*a;return 1125==b&&2436==c}async _Init(a){if("playable-ad"===this._exportType){this._localFileBlobs=self["c3_base64files"],await this._ConvertDataUrisToBlobs();for(let b=0,c=a.engineScripts.length;bthis["_OnMessageFromRuntime"](a.data),window["c3_addPortMessageHandler"]&&window["c3_addPortMessageHandler"]((a)=>this._OnMessageFromDebugger(a)),this._jobScheduler=new self.JobSchedulerDOM(this),await this._jobScheduler.Init(),this.MaybeForceBodySize(),"object"==typeof window["StatusBar"]&&window["StatusBar"]["hide"](),await this._TestTransferablesWork(),this._useWorker?await this._InitWorker(a,b.port2):await this._InitDOM(a,b.port2)}_GetWorkerURL(a){return this._workerScriptBlobURLs.hasOwnProperty(a)?this._workerScriptBlobURLs[a]:a.endsWith("/workerMain.js")&&this._workerScriptBlobURLs.hasOwnProperty("workerMain.js")?this._workerScriptBlobURLs["workerMain.js"]:"playable-ad"===this._exportType&&this._localFileBlobs.hasOwnProperty(a.toLowerCase())?URL.createObjectURL(this._localFileBlobs[a.toLowerCase()]):a}async CreateWorker(a,b,c){if(a.startsWith("blob:"))return new Worker(a,c);if(this.IsWKWebView()){const b=await this.CordovaFetchLocalFileAsArrayBuffer(this._scriptFolder+a),d=new Blob([b],{type:"application/javascript"});return new Worker(URL.createObjectURL(d),c)}const d=new URL(a,b),e=location.origin!==d.origin;if(e){const a=await fetch(d);if(!a.ok)throw new Error("failed to fetch worker script");const b=await a.blob();return new Worker(URL.createObjectURL(b),c)}return new Worker(d,c)}MaybeForceBodySize(){if(this.IsiPhoneX()){const a=window.innerWidth>window.innerHeight,b=document["documentElement"].style,c=document["body"].style;a?(c["height"]=b["height"]="375px",c["width"]=b["width"]="812px"):(c["width"]=b["width"]="375px",c["height"]=b["height"]="812px")}}_GetCommonRuntimeOptions(a){return{"baseUrl":this._baseUrl,"windowInnerWidth":window.innerWidth,"windowInnerHeight":window.innerHeight,"devicePixelRatio":window.devicePixelRatio,"isFullscreen":f.IsDocumentFullscreen(),"maxWebGLVersion":d(),"projectData":a.projectData,"previewImageBlobs":window["cr_previewImageBlobs"]||this._localFileBlobs,"previewProjectFileBlobs":window["cr_previewProjectFileBlobs"],"shaders":self["C3_Shaders"],"exportType":a.exportType,"isDebug":-1new a(this)),this._FindRuntimeDOMHandler()}async _InitDOM(b,c){this._canvas=document.createElement("canvas"),this._canvas.style.display="none",document.body.appendChild(this._canvas),window["c3canvas"]=this._canvas,this._domHandlers=k.map((a)=>new a(this)),this._FindRuntimeDOMHandler();const d=b.engineScripts.map((a)=>new URL(a,this._baseUrl).toString());await Promise.all(d.map((b)=>a(b)));const e=Object.assign(this._GetCommonRuntimeOptions(b),{"isInWorker":!1,"messagePort":c,"canvas":this._canvas});this._localRuntime=self["C3_CreateRuntime"](e),await self["C3_InitRuntime"](this._localRuntime,e)}async _OnCreateJobWorker(){const a=await this._jobScheduler._CreateJobWorker();return{"outputPort":a,"transferables":[a]}}_GetLocalRuntime(){if(this._useWorker)throw new Error("not available in worker mode");return this._localRuntime}PostToRuntimeComponent(a,b,c,d,e){this._messageChannelPort.postMessage({"type":"event","component":a,"handler":b,"dispatchRuntimeEvent":d,"data":c,"responseId":null},this._transferablesBroken?void 0:e)}PostToRuntimeComponentAsync(a,b,c,d,e){const f=n++,g=new Promise((a,b)=>{m.set(f,{resolve:a,reject:b})});return this._messageChannelPort.postMessage({"type":"event","component":a,"handler":b,"dispatchRuntimeEvent":d,"data":c,"responseId":f},this._transferablesBroken?void 0:e),g}["_OnMessageFromRuntime"](a){const b=a["type"];if("event"===b)this._OnEventFromRuntime(a);else if("result"===b)this._OnResultFromRuntime(a);else if("runtime-ready"===b)this._OnRuntimeReady();else throw new Error(`unknown message '${b}'`)}_OnEventFromRuntime(a){const b=a["component"],c=a["handler"],d=a["data"],e=a["responseId"],f=l.get(b);if(!f)return void console.warn(`[DOM] No event handlers for component '${b}'`);const g=f.get(c);if(!g)return void console.warn(`[DOM] No handler '${c}' for component '${b}'`);let h=null;try{h=g(d)}catch(a){return console.error(`Exception in '${b}' handler '${c}':`,a),void(null!==e&&this._PostResultToRuntime(e,!1,a.toString()))}null!==e&&(h&&h.then?h.then((a)=>this._PostResultToRuntime(e,!0,a)).catch((a)=>{console.error(`Rejection from '${b}' handler '${c}':`,a),this._PostResultToRuntime(e,!1,a.toString())}):this._PostResultToRuntime(e,!0,h))}_PostResultToRuntime(a,b,c){let d;c&&c["transferables"]&&(d=c["transferables"]),this._messageChannelPort.postMessage({"type":"result","responseId":a,"isOk":b,"result":c},d)}_OnResultFromRuntime(a){const b=a["responseId"],c=a["isOk"],d=a["result"],e=m.get(b);c?e.resolve(d):e.reject(d),m.delete(b)}AddRuntimeComponentMessageHandler(a,b,c){let d=l.get(a);if(d||(d=new Map,l.set(a,d)),d.has(b))throw new Error(`[DOM] Component '${a}' already has handler '${b}'`);d.set(b,c)}static AddDOMHandlerClass(a){if(k.includes(a))throw new Error("DOM handler already added");k.push(a)}_FindRuntimeDOMHandler(){for(const a of this._domHandlers)if("runtime"===a.GetComponentID())return void(this._runtimeDomHandler=a);throw new Error("cannot find runtime DOM handler")}_OnMessageFromDebugger(a){this.PostToRuntimeComponent("debugger","message",a)}_OnRuntimeReady(){for(const a of this._domHandlers)a.Attach()}static IsDocumentFullscreen(){return!!(document["fullscreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"])}async GetRemotePreviewStatusInfo(){return await this.PostToRuntimeComponentAsync("runtime","get-remote-preview-status-info")}_AddRAFCallback(a){this._rafCallbacks.push(a),this._RequestAnimationFrame()}_RemoveRAFCallback(a){const b=this._rafCallbacks.indexOf(a);if(-1===b)throw new Error("invalid callback");this._rafCallbacks.splice(b,1),this._rafCallbacks.length||this._CancelAnimationFrame()}_RequestAnimationFrame(){-1===this._rafId&&this._rafCallbacks.length&&(this._rafId=requestAnimationFrame(this._rafFunc))}_CancelAnimationFrame(){-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1)}_OnRAFCallback(){this._rafId=-1;for(const a of this._rafCallbacks)a();this._RequestAnimationFrame()}TryPlayMedia(a){this._runtimeDomHandler.TryPlayMedia(a)}RemovePendingPlay(a){this._runtimeDomHandler.RemovePendingPlay(a)}_PlayPendingMedia(){this._runtimeDomHandler._PlayPendingMedia()}SetSilent(a){this._runtimeDomHandler.SetSilent(a)}IsAudioFormatSupported(a){return!!h[a]}async _WasmDecodeWebMOpus(a){const b=await this.PostToRuntimeComponentAsync("runtime","opus-decode",{"arrayBuffer":a},!1,[a]);return new Float32Array(b)}IsAbsoluteURL(a){return /^(?:[a-z]+:)?\/\//.test(a)||"data:"===a.substr(0,5)||"blob:"===a.substr(0,5)}IsRelativeURL(a){return!this.IsAbsoluteURL(a)}async _OnCordovaFetchLocalFile(a){const b=a["filename"];switch(a["as"]){case"text":return await this.CordovaFetchLocalFileAsText(b);case"buffer":return await this.CordovaFetchLocalFileAsArrayBuffer(b);default:throw new Error("unsupported type");}}CordovaFetchLocalFile(a){const b=window["cordova"]["file"]["applicationDirectory"]+"www/"+a;return new Promise((a,c)=>{window["resolveLocalFileSystemURL"](b,(b)=>{b["file"](a,c)},c)})}async CordovaFetchLocalFileAsText(a){const c=await this.CordovaFetchLocalFile(a);return await b(c)}_CordovaMaybeStartNextArrayBufferRead(){if(i.length&&!(j>=8)){j++;const a=i.shift();this._CordovaDoFetchLocalFileAsAsArrayBuffer(a.filename,a.successCallback,a.errorCallback)}}CordovaFetchLocalFileAsArrayBuffer(a){return new Promise((b,c)=>{i.push({filename:a,successCallback:(a)=>{j--,this._CordovaMaybeStartNextArrayBufferRead(),b(a)},errorCallback:(a)=>{j--,this._CordovaMaybeStartNextArrayBufferRead(),c(a)}}),this._CordovaMaybeStartNextArrayBufferRead()})}async _CordovaDoFetchLocalFileAsAsArrayBuffer(a,b,d){try{const d=await this.CordovaFetchLocalFile(a),e=await c(d);b(e)}catch(a){d(a)}}async _ConvertDataUrisToBlobs(){const a=[];for(const[b,c]of Object.entries(this._localFileBlobs))a.push(this._ConvertDataUriToBlobs(b,c));await Promise.all(a)}async _ConvertDataUriToBlobs(a,b){if("object"==typeof b)this._localFileBlobs[a]=new Blob([b["str"]],{"type":b["type"]});else{const c=await fetch(b),d=await c.blob();this._localFileBlobs[a]=d}}_TestTransferablesWork(){let a=null;const b=new Promise((b)=>a=b),c=new ArrayBuffer(1),d=new MessageChannel;return d.port2.onmessage=(b)=>{b.data&&b.data["arrayBuffer"]||(this._transferablesBroken=!0,console.warn("MessageChannel transfers determined to be broken. Disabling transferables.")),a()},d.port1.postMessage({"arrayBuffer":c},[c]),b}}} + +"use strict";{function a(a){return a["sourceCapabilities"]&&a["sourceCapabilities"]["firesTouchEvents"]||a["originalEvent"]&&a["originalEvent"]["sourceCapabilities"]&&a["originalEvent"]["sourceCapabilities"]["firesTouchEvents"]}function b(a){return new Promise((b,c)=>{const d=new Image;d.onload=()=>b(d),d.onerror=(a)=>c(a),d.src=a})}async function c(a){const c=URL.createObjectURL(a);try{return await b(c)}finally{URL.revokeObjectURL(c)}}function d(){try{return window.parent&&window.parent.document.hasFocus()}catch(a){return!1}}self["C3_RasterSvgImage"]=async function(a,b,c){const d=document.createElement("canvas");d.width=b,d.height=c;const e=d.getContext("2d");return e.drawImage(a,0,0,b,c),d};let e=!1;document.addEventListener("pause",()=>e=!0),document.addEventListener("resume",()=>e=!1);const f=class extends DOMHandler{constructor(a){super(a,"runtime"),this._isFirstSizeUpdate=!0,this._targetOrientation="any",this._attachedDeviceOrientationEvent=!1,this._attachedDeviceMotionEvent=!1,this._debugHighlightElem=null,a.AddRuntimeComponentMessageHandler("canvas","update-size",(a)=>this._OnUpdateCanvasSize(a)),a.AddRuntimeComponentMessageHandler("runtime","invoke-download",(a)=>this._OnInvokeDownload(a)),a.AddRuntimeComponentMessageHandler("runtime","raster-svg-image",(a)=>this._OnRasterSvgImage(a)),a.AddRuntimeComponentMessageHandler("runtime","set-target-orientation",(a)=>this._OnSetTargetOrientation(a)),a.AddRuntimeComponentMessageHandler("runtime","register-sw",()=>this._OnRegisterSW()),a.AddRuntimeComponentMessageHandler("runtime","post-to-debugger",(a)=>this._OnPostToDebugger(a)),a.AddRuntimeComponentMessageHandler("runtime","before-start-ticking",()=>this._OnBeforeStartTicking()),a.AddRuntimeComponentMessageHandler("runtime","debug-highlight",(a)=>this._OnDebugHighlight(a)),a.AddRuntimeComponentMessageHandler("runtime","enable-device-orientation",()=>this._AttachDeviceOrientationEvent()),a.AddRuntimeComponentMessageHandler("runtime","enable-device-motion",()=>this._AttachDeviceMotionEvent());const b=a.GetCanvas();b.addEventListener("contextmenu",(a)=>a.preventDefault()),b.addEventListener("selectstart",(a)=>a.preventDefault()),b.addEventListener("gesturehold",(a)=>a.preventDefault()),b.addEventListener("touchstart",(a)=>a.preventDefault()),window.addEventListener("mousedown",(a)=>{1===a.button&&a.preventDefault()}),window.addEventListener("resize",()=>this._OnWindowResize()),this._mediaPendingPlay=new Set,this._mediaRemovedPendingPlay=new WeakSet,this._isSilent=!1}_OnBeforeStartTicking(){return document.addEventListener("visibilitychange",()=>this._OnVisibilityChange(document.hidden)),document.addEventListener("pause",()=>this._OnVisibilityChange(!0)),document.addEventListener("resume",()=>this._OnVisibilityChange(!1)),{"isSuspended":!!(document.hidden||e)}}Attach(){window.addEventListener("focus",()=>this._PostRuntimeEvent("window-focus")),window.addEventListener("blur",()=>this._PostRuntimeEvent("window-blur",{"parentHasFocus":d()})),window.addEventListener("fullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("webkitfullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("mozfullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("fullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("webkitfullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("mozfullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("keydown",(a)=>this._OnKeyEvent("keydown",a)),window.addEventListener("keyup",(a)=>this._OnKeyEvent("keyup",a)),window.addEventListener("mousemove",(a)=>this._OnMouseEvent("mousemove",a)),window.addEventListener("mousedown",(a)=>this._OnMouseEvent("mousedown",a)),window.addEventListener("mouseup",(a)=>this._OnMouseEvent("mouseup",a)),window.addEventListener("dblclick",(a)=>this._OnMouseEvent("dblclick",a)),window.addEventListener("wheel",(a)=>this._OnMouseWheelEvent("wheel",a)),"undefined"==typeof PointerEvent?(window.addEventListener("touchstart",(a)=>this._OnTouchEvent("pointerdown",a)),window.addEventListener("touchmove",(a)=>this._OnTouchEvent("pointermove",a)),window.addEventListener("touchend",(a)=>this._OnTouchEvent("pointerup",a)),window.addEventListener("touchcancel",(a)=>this._OnTouchEvent("pointercancel",a))):(window.addEventListener("pointerdown",(a)=>this._OnPointerEvent("pointerdown",a)),window.addEventListener("pointermove",(a)=>this._OnPointerEvent("pointermove",a)),window.addEventListener("pointerup",(a)=>this._OnPointerEvent("pointerup",a)),window.addEventListener("pointercancel",(a)=>this._OnPointerEvent("pointercancel",a)));const a=()=>this._PlayPendingMedia();window.addEventListener("pointerup",a,!0),window.addEventListener("touchend",a,!0),window.addEventListener("click",a,!0),window.addEventListener("keydown",a,!0),window.addEventListener("gamepadconnected",a,!0)}_AttachDeviceOrientationEvent(){this._attachedDeviceOrientationEvent||(this._attachedDeviceOrientationEvent=!0,window.addEventListener("deviceorientation",(a)=>this._OnDeviceOrientation(a)))}_AttachDeviceMotionEvent(){this._attachedDeviceMotionEvent||(this._attachedDeviceMotionEvent=!0,window.addEventListener("devicemotion",(a)=>this._OnDeviceMotion(a)))}_PostRuntimeEvent(a,b){this.PostToRuntime(a,b||null,!0)}_OnWindowResize(){this.PostToRuntime("window-resize",{"innerWidth":window.innerWidth,"innerHeight":window.innerHeight,"devicePixelRatio":window.devicePixelRatio},!0)}_OnSetTargetOrientation(a){this._targetOrientation=a["targetOrientation"]}_TrySetTargetOrientation(){const a=this._targetOrientation;if(screen["orientation"]&&screen["orientation"]["lock"])screen["orientation"]["lock"](a).catch((a)=>console.warn("[Construct 3] Failed to lock orientation: ",a));else try{let b=!1;screen["lockOrientation"]?b=screen["lockOrientation"](a):screen["webkitLockOrientation"]?b=screen["webkitLockOrientation"](a):screen["mozLockOrientation"]?b=screen["mozLockOrientation"](a):screen["msLockOrientation"]&&(b=screen["msLockOrientation"](a)),b||console.warn("[Construct 3] Failed to lock orientation")}catch(a){console.warn("[Construct 3] Failed to lock orientation: ",a)}}_OnFullscreenChange(){const a=RuntimeInterface.IsDocumentFullscreen();a&&"any"!==this._targetOrientation&&this._TrySetTargetOrientation(),this.PostToRuntime("fullscreenchange",{"isFullscreen":a,"innerWidth":window.innerWidth,"innerHeight":window.innerHeight})}_OnFullscreenError(a){console.warn("[Construct 3] Fullscreen request failed: ",a),this.PostToRuntime("fullscreenerror",{"isFullscreen":RuntimeInterface.IsDocumentFullscreen(),"innerWidth":window.innerWidth,"innerHeight":window.innerHeight})}_OnVisibilityChange(a){a?this._iRuntime._CancelAnimationFrame():this._iRuntime._RequestAnimationFrame(),this.PostToRuntime("visibilitychange",{"hidden":a})}_OnKeyEvent(a,b){this._PostToRuntimeMaybeSync(a,{"code":b.code,"key":b.key,"which":b.which,"repeat":b.repeat,"altKey":b.altKey,"ctrlKey":b.ctrlKey,"metaKey":b.metaKey,"shiftKey":b.shiftKey,"timeStamp":b.timeStamp},!0)}_OnMouseEvent(b,c){a(c)||("mousedown"===b&&window!==window.top&&window.focus(),this._PostToRuntimeMaybeSync(b,{"button":c.button,"clientX":c.clientX,"clientY":c.clientY,"timeStamp":c.timeStamp},!0))}_OnMouseWheelEvent(a,b){this.PostToRuntime(a,{"clientX":b.clientX,"clientY":b.clientY,"deltaX":b.deltaX,"deltaY":b.deltaY,"deltaZ":b.deltaZ,"deltaMode":b.deltaMode,"timeStamp":b.timeStamp},!0)}_OnPointerEvent(a,b){"pointerdown"===a&&window!==window.top&&window.focus(),this._PostToRuntimeMaybeSync(a,{"pointerId":b.pointerId,"pointerType":b.pointerType,"clientX":b.clientX,"clientY":b.clientY,"width":b.width||0,"height":b.height||0,"pressure":b.pressure||0,"tangentialPressure":b["tangentialPressure"]||0,"tiltX":b.tiltX||0,"tiltY":b.tiltY||0,"twist":b["twist"]||0,"timeStamp":b.timeStamp},!0)}_OnTouchEvent(a,b){"pointerdown"===a&&window!==window.top&&window.focus();for(let c=0,d=b.changedTouches.length;c{this._mediaRemovedPendingPlay.has(b)||this._mediaPendingPlay.add(b)})}}TryPlayMedia(a){if("function"!=typeof a.play)throw new Error("missing play function");this._mediaRemovedPendingPlay.delete(a);let b;try{b=a.play()}catch(b){return void this._mediaPendingPlay.add(a)}b&&b.catch(()=>{this._mediaRemovedPendingPlay.has(a)||this._mediaPendingPlay.add(a)})}RemovePendingPlay(a){this._mediaPendingPlay.delete(a),this._mediaRemovedPendingPlay.add(a)}SetSilent(a){this._isSilent=!!a}_OnDebugHighlight(a){const b=a["show"];if(!b)return void(this._debugHighlightElem&&(this._debugHighlightElem.style.display="none"));this._debugHighlightElem||(this._debugHighlightElem=document.createElement("div"),this._debugHighlightElem.id="inspectOutline",document.body.appendChild(this._debugHighlightElem));const c=this._debugHighlightElem;c.style.display="",c.style.left=a["left"]-1+"px",c.style.top=a["top"]-1+"px",c.style.width=a["width"]+2+"px",c.style.height=a["height"]+2+"px",c.textContent=a["name"]}_OnRegisterSW(){window["C3_RegisterSW"]&&window["C3_RegisterSW"]()}_OnPostToDebugger(a){window["c3_postToMessagePort"]&&(a["from"]="runtime",window["c3_postToMessagePort"](a))}};RuntimeInterface.AddDOMHandlerClass(f)} + +"use strict";{const a=document.currentScript.src;self.JobSchedulerDOM=class{constructor(b){this._runtimeInterface=b,this._baseUrl=a?a.substr(0,a.lastIndexOf("/")+1):b.GetBaseURL(),this._maxNumWorkers=Math.min(navigator.hardwareConcurrency||2,16),this._dispatchWorker=null,this._jobWorkers=[],this._inputPort=null,this._outputPort=null}async Init(){if(this._hasInitialised)throw new Error("already initialised");this._hasInitialised=!0;const a=this._runtimeInterface._GetWorkerURL("dispatchWorker.js");this._dispatchWorker=await this._runtimeInterface.CreateWorker(a,this._baseUrl,{name:"DispatchWorker"});const b=new MessageChannel;this._inputPort=b.port1,this._dispatchWorker.postMessage({"type":"_init","in-port":b.port2},[b.port2]),this._outputPort=await this._CreateJobWorker()}async _CreateJobWorker(){const a=this._jobWorkers.length,b=this._runtimeInterface._GetWorkerURL("jobWorker.js"),c=await this._runtimeInterface.CreateWorker(b,this._baseUrl,{name:"JobWorker"+a}),d=new MessageChannel,e=new MessageChannel;return this._dispatchWorker.postMessage({"type":"_addJobWorker","port":d.port1},[d.port1]),c.postMessage({"type":"init","number":a,"dispatch-port":d.port2,"output-port":e.port2},[d.port2,e.port2]),this._jobWorkers.push(c),e.port1}GetPortData(){return{"inputPort":this._inputPort,"outputPort":this._outputPort,"maxNumWorkers":this._maxNumWorkers}}GetPortTransferables(){return[this._inputPort,this._outputPort]}}} + +"use strict";if(window["C3_IsSupported"]){const a=false,b="undefined"!=typeof OffscreenCanvas;window["c3_runtimeInterface"]=new RuntimeInterface({useWorker:a&&b,workerMainUrl:"workerMain.js",engineScripts:["scripts/c3runtime.js"],scriptFolder:"scripts/",exportType:"html5"})} \ No newline at end of file diff --git a/DreamBeanDemo/scripts/offlineClient.js b/DreamBeanDemo/scripts/offlineClient.js new file mode 100644 index 0000000..d8c3274 --- /dev/null +++ b/DreamBeanDemo/scripts/offlineClient.js @@ -0,0 +1 @@ +"use strict";{window.OfflineClientInfo=new class{constructor(){if(this._broadcastChannel="undefined"==typeof BroadcastChannel?null:new BroadcastChannel("offline"),this._queuedMessages=[],this._onMessageCallback=null,this._broadcastChannel){var a=this;this._broadcastChannel.onmessage=function(b){a._OnBroadcastChannelMessage(b)}}}_OnBroadcastChannelMessage(a){return this._onMessageCallback?void this._onMessageCallback(a):void this._queuedMessages.push(a)}SetMessageCallback(a){this._onMessageCallback=a;for(let b of this._queuedMessages)this._onMessageCallback(b);this._queuedMessages.length=0}}} \ No newline at end of file diff --git a/DreamBeanDemo/scripts/register-sw.js b/DreamBeanDemo/scripts/register-sw.js new file mode 100644 index 0000000..aeb70f5 --- /dev/null +++ b/DreamBeanDemo/scripts/register-sw.js @@ -0,0 +1 @@ +"use strict";window.C3_RegisterSW=async function(){if(navigator.serviceWorker)try{const a=await navigator.serviceWorker.register("sw.js",{scope:"./"});console.info("Registered service worker on "+a.scope)}catch(a){console.warn("Failed to register service worker: ",a)}}; \ No newline at end of file diff --git a/DreamBeanDemo/scripts/supportCheck.js b/DreamBeanDemo/scripts/supportCheck.js new file mode 100644 index 0000000..0037463 --- /dev/null +++ b/DreamBeanDemo/scripts/supportCheck.js @@ -0,0 +1 @@ +"use strict";(function(){var a=document.createElement("canvas"),b=!!(a.getContext("webgl")||a.getContext("experimental-webgl")),c=[];if(b||c.push("WebGL"),"undefined"==typeof WebAssembly&&c.push("WebAssembly"),0===c.length)window["C3_IsSupported"]=!0;else{var d=document.createElement("div");d.id="notSupportedWrap",document.body.appendChild(d);var e=document.createElement("h2");e.id="notSupportedTitle",e.textContent="Software update needed",d.appendChild(e);var f=document.createElement("p");f.id="notSupportedMessage";var g="This content is not supported because your device's software is out-of-date. ",h=navigator.userAgent;g+=/android/i.test(h)?"

On Android, fix this by making sure the
Android System Webview app has updates enabled and is up-to-date.":/iphone|ipad|ipod/i.test(h)?"

Note: the iOS simulator is not currently supported due to an Apple bug. If you are using the simulator, try testing on a real device instead.":(/msie/i.test(h)||/trident/i.test(h))&&!/edge\//i.test(h)?"

Note: Internet Explorer is not supported. Try using Chrome or Firefox instead.":"Try installing any available software updates. Alternatively try on a different device.",g+="

Missing features: "+c.join(", ")+"
User agent: "+navigator.userAgent+"
",f.innerHTML=g,d.appendChild(f)}})(); \ No newline at end of file diff --git a/DreamBeanDemo/scripts/workerMain.js b/DreamBeanDemo/scripts/workerMain.js new file mode 100644 index 0000000..d11dbb2 --- /dev/null +++ b/DreamBeanDemo/scripts/workerMain.js @@ -0,0 +1 @@ +"use strict";{async function a(a){if(b)throw new Error("already initialised");b=!0;const d=a["baseUrl"];self.devicePixelRatio=a["devicePixelRatio"];const e=a["workerDependencyScripts"].map((a)=>{let b=a;return b=a instanceof Blob?URL.createObjectURL(a):new URL(b,d).toString(),b}),f=a["engineScripts"].map((a)=>new URL(a,d).toString());importScripts(...[...e,...f]),c=self["C3_CreateRuntime"](a),await self["C3_InitRuntime"](c,a)}let b=!1,c=null;self.addEventListener("message",(b)=>{const c=b.data,d=c["type"];if("init-runtime"===d)a(c);else throw new Error(`unknown message '${d}'`)})} \ No newline at end of file diff --git a/DreamBeanDemo/style.css b/DreamBeanDemo/style.css new file mode 100644 index 0000000..ad73648 --- /dev/null +++ b/DreamBeanDemo/style.css @@ -0,0 +1,39 @@ +html, body { + padding: 0; + margin: 0; + overflow: hidden; + + background: #7200cf; + color: white; +} + +html, body, canvas { + touch-action: none; + touch-action-delay: none; +} + +#notSupportedWrap { + margin: 2em auto 1em auto; + width: 75%; + max-width: 45em; + border: 2px solid #aaa; + border-radius: 1em; + padding: 2em; + background-color: #f0f0f0; + font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif; + color: black; +} + +#notSupportedTitle { + font-size: 1.8em; +} + +#notSupportedMessage { + font-size: 1.2em; +} + +#notSupportedMessage em { + color: #888; +} + + diff --git a/DreamBeanDemo/sw.js b/DreamBeanDemo/sw.js new file mode 100644 index 0000000..4366997 --- /dev/null +++ b/DreamBeanDemo/sw.js @@ -0,0 +1 @@ +"use strict";const OFFLINE_DATA_FILE="offline.json",CACHE_NAME_PREFIX="c3offline",BROADCASTCHANNEL_NAME="offline",CONSOLE_PREFIX="[SW] ",LAZYLOAD_KEYNAME="",broadcastChannel="undefined"==typeof BroadcastChannel?null:new BroadcastChannel("offline");function PostBroadcastMessage(a){broadcastChannel&&setTimeout(()=>broadcastChannel.postMessage(a),3e3)}function Broadcast(a){PostBroadcastMessage({"type":a})}function BroadcastDownloadingUpdate(a){PostBroadcastMessage({"type":"downloading-update","version":a})}function BroadcastUpdateReady(a){PostBroadcastMessage({"type":"update-ready","version":a})}function IsUrlInLazyLoadList(a,b){if(!b)return!1;try{for(const c of b)if(new RegExp(c).test(a))return!0}catch(a){console.error("[SW] Error matching in lazy-load list: ",a)}return!1}function WriteLazyLoadListToStorage(a){return"undefined"==typeof localforage?Promise.resolve():localforage.setItem(LAZYLOAD_KEYNAME,a)}function ReadLazyLoadListFromStorage(){return"undefined"==typeof localforage?Promise.resolve([]):localforage.getItem(LAZYLOAD_KEYNAME)}function GetCacheBaseName(){return"c3offline-"+self.registration.scope}function GetCacheVersionName(a){return GetCacheBaseName()+"-v"+a}async function GetAvailableCacheNames(){const a=await caches.keys(),b=GetCacheBaseName();return a.filter((a)=>a.startsWith(b))}async function IsUpdatePending(){const a=await GetAvailableCacheNames();return 2<=a.length}async function GetMainPageUrl(){const a=await clients.matchAll({includeUncontrolled:!0,type:"window"});for(const b of a){let a=b.url;if(a.startsWith(self.registration.scope)&&(a=a.substring(self.registration.scope.length)),a&&"/"!==a)return a.startsWith("?")&&(a="/"+a),a}return""}function fetchWithBypass(a,b){return"string"==typeof a&&(a=new Request(a)),b?fetch(a.url,{headers:a.headers,mode:a.mode,credentials:a.credentials,redirect:a.redirect,cache:"no-store"}):fetch(a)}async function CreateCacheFromFileList(a,b,c){const d=await Promise.all(b.map((a)=>fetchWithBypass(a,c)));let e=!0;for(const f of d)f.ok||(e=!1,console.error("[SW] Error fetching '"+f.url+"' ("+f.status+" "+f.statusText+")"));if(!e)throw new Error("not all resources were fetched successfully");const f=await caches.open(a);try{return await Promise.all(d.map((a,c)=>f.put(b[c],a)))}catch(b){throw console.error("[SW] Error writing cache entries: ",b),caches.delete(a),b}}async function UpdateCheck(a){try{const b=await fetchWithBypass(OFFLINE_DATA_FILE,!0);if(!b.ok)throw new Error("offline.json responded with "+b.status+" "+b.statusText);const c=await b.json(),d=c.version,e=c.fileList,f=c.lazyLoad,g=GetCacheVersionName(d),h=await caches.has(g);if(h){const a=await IsUpdatePending();return void(a?(console.log("[SW] Update pending"),Broadcast("update-pending")):(console.log("[SW] Up to date"),Broadcast("up-to-date")))}const i=await GetMainPageUrl();e.unshift("./"),i&&-1===e.indexOf(i)&&e.unshift(i),console.log("[SW] Caching "+e.length+" files for offline use"),a?Broadcast("downloading"):BroadcastDownloadingUpdate(d),f&&(await WriteLazyLoadListToStorage(f)),await CreateCacheFromFileList(g,e,!a);const j=await IsUpdatePending();j?(console.log("[SW] All resources saved, update ready"),BroadcastUpdateReady(d)):(console.log("[SW] All resources saved, offline support ready"),Broadcast("offline-ready"))}catch(a){console.warn("[SW] Update check failed: ",a)}}self.addEventListener("install",(a)=>{a.waitUntil(UpdateCheck(!0).catch(()=>null))});async function GetCacheNameToUse(a,b){if(1===a.length||!b)return a[0];const c=await clients.matchAll();if(1caches.delete(a))),d}async function HandleFetch(a,b){const c=await GetAvailableCacheNames();if(!c.length)return fetch(a.request);const d=await GetCacheNameToUse(c,b),e=await caches.open(d),f=await e.match(a.request);if(f)return f;const g=await Promise.all([fetch(a.request),ReadLazyLoadListFromStorage()]),h=g[0],i=g[1];if(IsUrlInLazyLoadList(a.request.url,i))try{await e.put(a.request,h.clone())}catch(b){console.warn("[SW] Error caching '"+a.request.url+"': ",b)}return h}self.addEventListener("fetch",(a)=>{if(new URL(a.request.url).origin===location.origin){const b="navigate"===a.request.mode,c=HandleFetch(a,b);b&&a.waitUntil(c.then(()=>UpdateCheck(!1))),a.respondWith(c)}}); \ No newline at end of file