diff --git a/SQ_Word_Hint-Image/c2runtime.js b/SQ_Word_Hint-Image/c2runtime.js
index 2afbfb8..48fd68d 100644
--- a/SQ_Word_Hint-Image/c2runtime.js
+++ b/SQ_Word_Hint-Image/c2runtime.js
@@ -26022,8 +26022,8 @@ cr.getObjectRefTable = function () { return [
cr.plugins_.Function,
cr.plugins_.SenaPlugin,
cr.plugins_.Sprite,
- cr.plugins_.Text,
cr.plugins_.Touch,
+ cr.plugins_.Text,
cr.behaviors.Rex_MoveTo,
cr.behaviors.Fade,
cr.behaviors.DragnDrop,
@@ -26103,6 +26103,7 @@ cr.getObjectRefTable = function () { return [
cr.system_object.prototype.exps.len,
cr.plugins_.SenaPlugin.prototype.acts.Finish,
cr.plugins_.SenaPlugin.prototype.cnds.OnCorrect,
+ cr.plugins_.Sprite.prototype.acts.SetScale,
cr.plugins_.Audio.prototype.acts.SetPaused,
cr.plugins_.SenaPlugin.prototype.cnds.OnWrong,
cr.system_object.prototype.cnds.EveryTick,
@@ -26110,11 +26111,12 @@ cr.getObjectRefTable = function () { return [
cr.plugins_.SenaPlugin.prototype.exps.getElapsedTime,
cr.system_object.prototype.exps["int"],
cr.system_object.prototype.cnds.TriggerOnce,
+ cr.behaviors.Sin.prototype.acts.SetActive,
+ cr.behaviors.Fade.prototype.acts.SetFadeOutTime,
+ cr.behaviors.Fade.prototype.acts.RestartFade,
cr.plugins_.Audio.prototype.acts.SetMuted,
cr.system_object.prototype.acts.SetLayerVisible,
cr.plugins_.Text.prototype.acts.SetVisible,
cr.plugins_.SenaPlugin.prototype.acts.ResumeGame,
- cr.system_object.prototype.cnds.LayerVisible,
- cr.behaviors.Fade.prototype.acts.RestartFade,
- cr.behaviors.Sin.prototype.acts.SetActive
+ cr.system_object.prototype.cnds.LayerVisible
];};
diff --git a/SQ_Word_Hint-Image/data.js b/SQ_Word_Hint-Image/data.js
index 25dafc1..49de641 100644
--- a/SQ_Word_Hint-Image/data.js
+++ b/SQ_Word_Hint-Image/data.js
@@ -1 +1 @@
-{"project": [null,"Game",[[0,true,false,false,false,false,false,false,false,false],[1,true,false,false,false,false,false,false,false,false],[2,true,false,false,false,false,false,false,false,false],[3,true,false,false,false,false,false,false,false,false],[4,false,true,true,true,true,true,true,true,false],[5,false,true,true,true,true,true,true,true,false],[6,true,false,false,false,false,false,false,false,false]],[["t0",4,false,[864916470115508,671424700857603,742273295511675,915051182566084,438595278712365,792103718967953,139230516987381],5,0,null,[["Default",0,false,1,0,false,766361138730018,[["images/answers-sheet0.png",12383,0,0,199,85,1,0.5025125741958618,0.5058823823928833,[],[-0.3065325617790222,-0.2588233947753906,0.3015074133872986,-0.2588233947753906,0.3015074133872986,0.1411756277084351,-0.3065325617790222,0.1411766409873962],0]]]],[["MoveTo",7,604855247345446],["Fade",8,172183085978858],["DragDrop",9,421888048208530],["EaseTween",10,428975865074928],["EaseTween2",10,153601376400345]],false,false,521274050538780,[],null],["t1",6,false,[],0,0,null,null,[],false,false,786570836240034,[],null,[1]],["t2",2,false,[],0,0,null,null,[],false,false,293329078829759,[],null,[]],["t3",1,false,[],0,0,null,null,[],false,false,309246988327533,[],null,[]],["t4",4,false,[808559794937329,997079567163161,567648729382427,954939568499611,936471805758704],1,0,null,[["Default",0,false,1,0,false,163248314795401,[["images/answers-sheet0.png",12383,0,0,199,85,1,0.5025125741958618,0.5058823823928833,[],[-0.3366825580596924,-0.2941173911094666,0.3165824413299561,-0.3058823943138123,0.3165824413299561,0.1294116377830505,-0.346733570098877,0.1294116377830505],0],["images/slot-sheet0.png",11183,0,0,199,82,1,0.5025125741958618,0.5,[],[-0.3216085731983185,-0.2317070066928864,0.3015064001083374,-0.2439019978046417,0.2964824438095093,0.2195119857788086,-0.3216085731983185,0.2195119857788086],0]]]],[["Fade",8,900753873870093]],false,false,519636697009154,[],null],["t5",4,false,[],3,0,null,[["Default",0,false,1,0,false,157803278794484,[["images/submit-sheet0.png",146996,0,0,489,325,1,0.5010225176811218,0.5015384554862976,[],[],0]]]],[["Flash",11,745974027953346],["Sine",12,122174234324725],["Fade",8,470725043295066]],false,false,588453873694452,[],null],["t6",0,false,[],0,0,null,null,[],false,false,975221106550751,[],null,[0,0,0,1,1,600,600,10000,1]],["t7",4,false,[],0,0,null,[["Default",5,false,1,0,false,430849449557794,[["images/sprite-sheet0.png",168,0,0,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,787263586433186,[],null],["t8",5,false,[],2,0,null,null,[["Pin",13,668111541658451],["Fade",8,143982287745535]],false,false,865512087815474,[],null],["t9",5,false,[],2,0,null,null,[["Pin",13,983629863781910],["Fade",8,863647630809957]],false,false,452023984157524,[],null],["t10",4,false,[],2,0,null,[["Default",5,false,1,0,false,325577231432987,[["images/wrong-sheet0.png",27271,0,0,140,140,1,0.5,0.5,[],[-0.08866998553276062,0.05115598440170288,0,-0.05821299552917481,0.08374398946762085,0.05821299552917481,0.07635402679443359,-0.001763999462127686,0.1009849905967712,-0.03351700305938721,0,0.1005499958992004,-0.105910986661911,-0.02645999193191528,-0.08374398946762085,-0.001763999462127686],0]]]],[["Fade",8,938090566638553],["Pin",13,922984705911085]],false,false,786659809200098,[],null],["t11",4,false,[],2,0,null,[["Default",5,false,1,0,false,199500828138837,[["images/correct-sheet0.png",31182,0,0,140,140,1,0.5,0.5071428418159485,[],[-0.03694498538970947,-0.01037183403968811,0,-0.05661284923553467,0.4187189936637878,-0.4319769442081451,0.08374398946762085,-0.004931867122650147,0,0.133790135383606,-0.280788004398346,0.2725121378898621,-0.03940901160240173,-0.004931867122650147],0]]]],[["Fade",8,351180598525433],["Pin",13,692899677986212]],false,false,185378619927884,[],null],["t12",4,false,[808308867875603],3,0,null,[["Default",5,false,1,0,false,761372550491219,[["images/setting-sheet0.png",48936,0,0,240,186,1,0.5166666507720947,0.4892473220825195,[],[-0.3041666448116303,-0.2150533199310303,-0.01666665077209473,-0.4838709831237793,0.3166663646697998,-0.2741933166980743,0.4666663408279419,0.01075267791748047,0.3666663765907288,0.3602146506309509,-0.01666665077209473,0.4193546772003174,-0.3624996542930603,0.3118276596069336,-0.4416666626930237,0.01075267791748047],0]]]],[["Anchor",14,827810656785535],["Fade",8,373179721574636],["Sine",12,657466709679600]],false,false,852469545845224,[],null],["t13",4,false,[],1,0,null,[["Default",5,false,1,0,false,200801003478463,[["images/khung_timer-sheet0.png",100737,0,0,589,178,1,0.5008488893508911,0.5,[],[-0.4601019024848938,-0.3651689887046814,-0.001697897911071777,-0.4943820238113403,0.4244481325149536,-0.2528089880943298,0.4940581321716309,0,0.4567061066627502,0.3595510125160217,-0.001697897911071777,0.4269660115242004,-0.4533106982707977,0.342697024345398,-0.4787775874137878,0],0]]]],[["Anchor",14,394428299090024]],false,false,684620172079747,[],null],["t14",5,false,[],2,0,null,null,[["Pin",13,456906837996025],["Fade",8,218728013988059]],false,false,438300487857361,[],null],["t15",4,false,[726951437591404],3,0,null,[["Default",0,false,1,0,false,954324372044250,[["images/pause-sheet0.png",32506,0,0,161,157,1,0.5031055808067322,0.5031847357749939,[],[-0.397515594959259,-0.3949047327041626,-0.006211578845977783,-0.4777070283889771,0.3913044333457947,-0.3949047327041626,0.4720494151115418,-0.006369739770889282,0.3913044333457947,0.3885352611541748,-0.006211578845977783,0.4649682641029358,-0.4037266969680786,0.3949042558670044,-0.47826087474823,-0.006369739770889282],0],["images/pause-sheet1.png",33467,0,0,161,157,1,0.5031055808067322,0.5031847357749939,[],[],0]]]],[["Fade",8,785646788309555],["Flash",11,834009854852752],["Anchor",14,236404692541993]],false,false,319934659610612,[],null],["t16",4,false,[],2,0,null,[["Default",5,false,1,0,false,157939326111053,[["images/boardsetting-sheet0.png",26164,0,0,252,779,1,0.5,0.5006418228149414,[],[-0.3055559992790222,-0.4377406239509583,0,-0.4813863337039948,0.2857139706611633,-0.4313222169876099,0.4523810148239136,-0.001283824443817139,0.3769840002059937,0.4595631957054138,0,0.4903721809387207,-0.3849210143089294,0.4621312022209168,-0.4722222089767456,-0.001283824443817139],0]]]],[["Fade",8,530783555522929],["Anchor",14,554124059792985]],false,false,991386743308625,[],null],["t17",4,false,[434240310643651],3,0,null,[["Default",0,false,1,0,false,502912810850035,[["images/bgm-sheet0.png",35024,0,0,161,157,1,0.5031055808067322,0.5031847357749939,[],[-0.397515594959259,-0.3949047327041626,-0.006211578845977783,-0.4777070283889771,0.3913044333457947,-0.3949047327041626,0.4720494151115418,-0.006369739770889282,0.3913044333457947,0.3885352611541748,-0.006211578845977783,0.4649682641029358,-0.397515594959259,0.3885352611541748,-0.4720496833324432,-0.006369739770889282],0],["images/bgm-sheet1.png",34782,0,0,161,157,1,0.5031055808067322,0.5031847357749939,[],[],0]]]],[["Flash",11,437429795024815],["Fade",8,914766587437933],["Anchor",14,735854623212753]],false,false,655092202092160,[],null],["t18",4,false,[],0,0,null,[["Default",5,false,1,0,false,178868238875737,[["images/pauseicon-sheet0.png",98983,0,0,1200,1200,1,0.5,0.5,[],[-0.3108330070972443,-0.3108330070972443,0,-0.4399999976158142,0.3108329772949219,-0.3108330070972443,0.4399999976158142,0,0.3108329772949219,0.3108329772949219,0,0.4399999976158142,-0.3108330070972443,0.3108329772949219,-0.4399999976158142,0],0]]]],[],false,false,826283508189587,[],null],["t19",4,false,[147049293532184],0,0,null,[["Default",5,false,1,0,false,805374628770208,[["images/black-sheet0.png",75440,0,0,1200,1200,1,0.5,0.5,[],[],1]]]],[],false,false,142600631683249,[],null],["t20",3,false,[],0,0,null,null,[],false,false,222049282078427,[],null,["G2510S1T30"]],["t21",4,false,[326267281121004],0,0,null,[["Default",0,false,1,0,false,607627309615016,[["images/hint-sheet0.png",194,0,0,300,300,1,0.5,0.5,[],[],3]]]],[],false,false,428987806910841,[],null],["t22",4,false,[],0,0,null,[["Default",5,false,1,0,false,742348772710335,[["images/imageframe-sheet0.png",480519,0,0,1183,1101,1,0.5004226565361023,0.5004541277885437,[],[-0.4175824522972107,-0.4114441275596619,-0.0008456707000732422,-0.4977293312549591,0.4530853629112244,-0.4504995346069336,0.4699913263320923,0.4677568674087524,-0.0008456707000732422,0.4822888970375061,-0.4725274443626404,0.4695728421211243],0]]]],[],false,false,989306383067724,[],null]],[],[["Game",1200,1200,false,"Game",288730111597454,[["Layer 0",0,763235347287340,true,[255,255,255],true,0,0,1,false,false,0,0,0,[[[580,532,0,2858.676025390625,2678.729248046875,0,0,0.1000000014901161,0.5,0.5,0,0,[]],19,25,[[0]],[],[0,"Default",0,1]],[[616.50048828125,356.50048828125,0,516.9990234375,516.9990234375,0,0,1,0.5,0.5,0,0,[]],21,31,[[""]],[],[0,"Default",0,1]],[[1119.002563476563,1027.569946289063,0,105,242,0,0,1,0.5,0.5006418228149414,0,0,[]],16,19,[],[[1,0.5,0,0,1],[1,1,1,1,1]],[1,"Default",0,1]],[[-1784,-72,0,241.2059936523438,128,0,0,1,0.5025125741958618,0.5058823823928833,0,0,[]],0,3,[[0],[0],[-1],[""],[0],[0],[0]],[[1,3000,1500,1500],[1,1,0,0,0],[0,1],[0,7,17,"current","100, 100",0.3,"0,0",0,0,0,0,""],[0,7,5,"current","100, 100",0.3,"0,0",0,0,0,0,""]],[0,"Default",0,1]],[[-3213,680,0,241.2059936523438,128,0,0,1,0.5025125741958618,0.5,0,0,[]],4,9,[[-1],[0],[""],[0],[0]],[[1,1,0,0,0]],[0,"Default",1,1]],[[-3356,1133,0,260.8450012207031,114.8960037231445,0,0,1,0.5,0.5,0,0,[]],8,18,[],[[],[1,1,0,0,0]],["Answer",0,"bold 36pt Segoe UI","rgb(255,255,255)",1,1,4,0,0]],[[1122.528442382813,1143.801879882813,0,147.1492614746094,114.0406723022461,0,0,1,0.5166666507720947,0.4892473220825195,0,0,[]],12,2,[[0]],[[1,1,1,1,1],[1,1,0,0,0],[0,2,0,0.5,0,0,0,10,0]],[0,"Default",0,1]],[[1058.62646484375,49.94869232177734,0,259.5465087890625,78.43680572509766,0,0,1,0.5008488893508911,0.5,0,0,[]],13,12,[],[[1,0,1,0,1]],[0,"Default",0,1]],[[1070.251831054688,47.12616729736328,0,141,43.34921264648438,0,0,1,0.5,0.5,0,0,[]],9,8,[],[[],[1,1,0,0,0]],["",0,"bold 23pt Comic Sans MS","rgb(255,255,255)",1,1,4,0,0]],[[-3089,1143,0,260.8450012207031,114.8960037231445,0,0,1,0.5,0.5,0,0,[]],14,1,[],[[],[1,1,0,0,0]],["Slot",0,"bold 36pt Segoe UI","rgb(255,255,255)",1,1,4,0,0]],[[1120,1052.932983398438,0,70,70,0,0,1,0.5031055808067322,0.5031847357749939,0,0,[]],15,11,[[0]],[[1,0.5,0,0,0],[],[1,1,1,1,1]],[1,"Default",0,1]],[[630,1098,0,212.5639190673828,141.2751617431641,0,0,1,0.5010225176811218,0.5015384554862976,0,0,[]],5,17,[],[[],[1,2,0,3,0,0,0,15,0],[1,1,0,0,0]],[1,"Default",0,1]],[[-3211,245,0,157.4040069580078,165.6880035400391,0,0,1,0.5,0.5,0,0,[]],10,23,[],[[1,0.5,0.5,0.5,1],[]],[0,"Default",0,1]],[[-2882,230,0,157.4039306640625,165.6883544921875,0,0,1,0.5,0.5071428418159485,0,0,[]],11,39,[],[[1,0.5,0.5,0.5,1],[]],[0,"Default",0,1]],[[1120,980.676025390625,0,70,70,0,0,1,0.5031055808067322,0.5031847357749939,0,0,[]],17,6,[[0]],[[],[1,0.5,0,0,1],[1,1,1,1,1]],[1,"Default",0,1]],[[600,360,0,629.3758544921875,629.3758544921875,0,0,1,0.5004226565361023,0.5004541277885437,0,0,[]],22,20,[],[],[0,"Default",0,1]]],[]],["Layer 2",1,317623978877020,false,[255,255,255],true,0,0,1,false,false,1,0,0,[[[628,605,0,2858.676025390625,2678.729248046875,0,0,0.699999988079071,0.5,0.5,0,0,[]],19,32,[[2]],[],[0,"Default",0,1]],[[642,568,0,640.9500732421875,640.9500732421875,0,0,1,0.5,0.5,0,0,[]],18,22,[],[],[0,"Default",0,1]]],[]]],[],[]]],[["Game",[[1,"gameState",1,"loading",false,false,539503153258101,false],[1,"OptionIndex",0,0,false,false,701702298089281,false],[1,"CurrentTime",0,10,false,false,706573264547386,false],[1,"FinalAnswer",1,"",false,false,342353772129151,false],[1,"FilledCount",0,0,false,false,377137633613480,false],[1,"tempScale",0,1,false,false,529411214032395,false],[0,null,false,null,549205817072564,[[-1,15,null,1,false,false,false,597870668036321,false]],[[6,16,null,287858449598328,false,[[2,["fm-freemusic-give-me-a-smile(chosic.com)",false]],[3,1],[0,[0,-20]],[1,[2,"bgm"]]]],[3,17,null,484332265761879,false,[[1,[2,"var script = document.createElement('script'); \nscript.src = 'tdv_sdk.js'; \nscript.onload = function() { tdv_sdk.load(); }; \ndocument.head.appendChild(script);"]]]],[9,18,null,151341647124838,false,[[0,[4,[20,9,19,false,null],[0,5]]]]],[9,20,"Pin",728791452299543,false,[[4,13],[3,0]]],[-1,21,null,530641639162875,false,[[0,[1,0.2]]]],[20,22,null,202557125263620,false]]],[0,null,false,null,768327268818740,[[20,23,null,1,false,false,false,157854561629165,false]],[[3,24,null,422861079647713,false,[[3,0],[7,[2,"Load dữ liệu xong"]]]],[3,24,null,445625785202613,false,[[3,0],[7,[20,20,25,true,null]]]]],[[0,null,false,null,939160499379423,[],[[20,26,null,112633710369332,false],[2,27,null,215312930941469,false,[[1,[2,"SetupUI"]],[13]]],[-1,21,null,253371712570850,false,[[0,[1,0.2]]]],[-1,28,null,486133403026538,false,[[11,"gameState"],[7,[2,"playing"]]]],[0,29,"DragDrop",702939057496858,false,[[3,1]]],[3,24,null,810649571245244,false,[[3,0],[7,[10,[2,"SenaAI Loaded & Started! Options count: "],[20,20,30,false,null]]]]],[21,31,null,310599052911762,false,[[1,[20,20,32,true,null]],[3,1],[3,0]]],[3,24,null,821665902069313,false,[[3,0],[7,[2,"✅ Load ảnh thành công!"]]]]]]]],[0,null,false,null,469683343531114,[[2,33,null,2,false,false,false,635946395803157,false,[[1,[2,"SetupUI"]]]]],[[-1,28,null,584838430715545,false,[[11,"tempScale"],[7,[19,34,[[1,0.6],[5,[1,0.85],[6,[5,[20,20,35,false,null],[0,5]],[1,0.02]]]]]]]],[-1,28,null,703212432169515,false,[[11,"OptionIndex"],[7,[0,0]]]],[8,36,null,365590215852144,false],[14,36,null,486127358962458,false],[4,37,null,633440992906642,false],[0,37,null,413353137320859,false],[20,38,null,721103392706320,false,[[0,[20,20,35,false,null]],[0,[6,[0,170],[23,"tempScale"]]],[0,[6,[0,80],[23,"tempScale"]]],[0,[19,39]],[0,[0,5]],[0,[0,110]],[1,[2,""]],[0,[0,0]]]],[-1,21,null,294999106583991,false,[[0,[1,0.1]]]]],[[0,null,false,null,818772103770432,[[-1,40,null,0,true,false,false,555929416085788,false,[[0,[20,20,35,false,null]]]]],[],[[0,null,false,null,547242560835316,[[-1,41,null,0,false,false,false,877854197778405,false,[[7,[20,20,42,false,null,[[19,43]]]],[8,0],[7,[2,"_"]]]]],[[-1,44,null,529231940398402,false,[[4,4],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[4,45,null,967054670316694,false,[[0,[20,20,46,false,null,[[19,43]]]]]],[4,47,null,209456412894052,false,[[0,[4,[0,740],[20,20,48,false,null,[[19,43]]]]]]],[4,49,null,330242308364274,false,[[0,[0,1]]]],[4,50,null,279735605037743,false,[[10,4],[7,[0,0]]]],[4,50,null,366398683821733,false,[[10,0],[7,[19,43]]]],[4,51,null,237476653512591,false,[[0,[6,[0,240],[23,"tempScale"]]]]],[4,52,null,194195365471827,false,[[0,[6,[0,128],[23,"tempScale"]]]]],[-1,44,null,218183575300166,false,[[4,14],[5,[0,0]],[0,[20,4,53,false,null]],[0,[20,4,54,false,null]]]],[14,55,null,719798625156369,false,[[7,[21,4,true,null,2]]]],[14,56,null,381190661272932,false,[[0,[6,[0,36],[23,"tempScale"]]]]],[14,20,"Pin",144161831841828,false,[[4,4],[3,0]]],[-1,44,null,158804323397018,false,[[4,0],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[0,45,null,297232278697438,false,[[0,[20,20,46,false,null,[[19,43]]]]]],[0,51,null,639732653866588,false,[[0,[6,[0,240],[23,"tempScale"]]]]],[0,52,null,895140568876541,false,[[0,[6,[0,128],[23,"tempScale"]]]]],[0,47,null,587783740511114,false,[[0,[4,[0,980],[20,20,48,false,null,[[19,43]]]]]]],[0,50,null,477751173409160,false,[[10,0],[7,[20,0,53,false,null]]]],[0,50,null,624620079132936,false,[[10,1],[7,[20,0,54,false,null]]]],[0,50,null,467295429465343,false,[[10,5],[7,[20,0,57,false,null]]]],[0,50,null,570907618326780,false,[[10,4],[7,[20,0,58,false,null]]]],[0,50,null,305816140066103,false,[[10,3],[7,[20,20,59,true,null,[[23,"OptionIndex"]]]]]],[0,50,null,208275951093237,false,[[10,6],[7,[23,"OptionIndex"]]]],[-1,44,null,700391576578773,false,[[4,8],[5,[0,0]],[0,[20,0,53,false,null]],[0,[20,0,54,false,null]]]],[8,55,null,887582977485405,false,[[7,[21,0,true,null,3]]]],[8,56,null,510242040434741,false,[[0,[6,[0,60],[23,"tempScale"]]]]],[8,20,"Pin",536232156900253,false,[[4,0],[3,0]]],[-1,60,null,980517036151889,false,[[11,"OptionIndex"],[7,[0,1]]]],[3,24,null,291934968882690,false,[[3,0],[7,[10,[10,[10,[10,[10,[2,"Loop: "],[19,43]],[2," | Hint: "]],[20,20,42,false,null,[[19,43]]]],[2," | PosX: "]],[20,20,46,false,null,[[19,43]]]]]]]]],[0,null,false,null,851574752132902,[[-1,61,null,0,false,false,false,420650084225255,false]],[[-1,44,null,841906877163449,false,[[4,4],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[4,45,null,954639983072654,false,[[0,[20,20,46,false,null,[[19,43]]]]]],[4,47,null,959613845047857,false,[[0,[4,[0,740],[20,20,48,false,null,[[19,43]]]]]]],[4,49,null,931727243563350,false,[[0,[0,0]]]],[4,50,null,156362694834211,false,[[10,4],[7,[0,1]]]],[4,50,null,169994928317654,false,[[10,0],[7,[19,43]]]],[4,51,null,837822934719717,false,[[0,[6,[0,240],[23,"tempScale"]]]]],[4,52,null,276919506051685,false,[[0,[6,[0,128],[23,"tempScale"]]]]],[-1,44,null,236430930253943,false,[[4,14],[5,[0,0]],[0,[20,4,53,false,null]],[0,[20,4,54,false,null]]]],[14,62,null,646874567585831,false],[14,55,null,306273385789856,false,[[7,[20,20,42,false,null,[[19,43]]]]]],[14,56,null,544208413938390,false,[[0,[6,[0,60],[23,"tempScale"]]]]],[14,20,"Pin",285484337748885,false,[[4,4],[3,0]]]]]]]]],[0,null,false,null,885232395664091,[[0,63,"DragDrop",1,false,false,false,462077248880784,false],[0,64,"DragDrop",0,false,false,false,881833931574563,false]],[[6,16,null,765474901635440,false,[[2,["card_drag",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[0,65,null,397403794429243,false],[0,66,"EaseTween",798607807460393,false,[[1,[10,[10,[6,[21,0,false,null,5],[1,1.25]],[2,","]],[6,[21,0,false,null,4],[1,1.25]]]]]],[0,67,"EaseTween",333043575480598,false]],[[0,null,false,null,715788682150145,[[-1,68,null,0,false,false,false,686462805859677,false,[[4,4],[7,[21,4,false,null,0]],[8,0],[7,[21,0,false,null,2]]]],[0,69,null,0,false,false,false,975555513158536,false,[[10,2],[8,1],[7,[0,-1]]]]],[[0,50,null,363961653226411,false,[[10,2],[7,[0,-1]]]],[4,50,null,745135912100760,false,[[10,4],[7,[0,0]]]],[2,27,null,741791155071768,false,[[1,[2,"CheckSubmitState"]],[13]]]]],[0,null,false,null,193892616913206,[[0,70,null,0,false,false,false,297897281213159,false,[[4,8]]]],[[8,62,null,812019026325329,false]]]]],[0,null,false,null,876456068332522,[[0,71,"DragDrop",1,false,false,false,792974910922911,false]],[[0,66,"EaseTween2",312326656063231,false,[[1,[10,[10,[21,0,false,null,5],[2,","]],[21,0,false,null,4]]]]],[0,67,"EaseTween2",997643361117365,false]],[[0,null,false,null,962248118287846,[[0,70,null,0,false,false,false,124677826324657,false,[[4,4]]],[4,69,null,0,false,false,false,852890087723952,false,[[10,4],[8,0],[7,[0,0]]]],[4,72,null,0,false,false,true,329422920654075,false,[[3,0],[0,[20,0,53,false,null]],[0,[20,0,54,false,null]]]]],[[6,16,null,400234397175915,false,[[2,["pop-reverb-423718",false]],[3,0],[0,[0,-5]],[1,[2,""]]]],[0,73,null,464777312492432,false,[[0,[20,4,53,false,null]],[0,[20,4,54,false,null]]]],[4,50,null,413746821094201,false,[[10,4],[7,[0,1]]]],[0,50,null,290353637263798,false,[[10,2],[7,[21,4,false,null,0]]]],[0,51,null,262746395317933,false,[[0,[20,4,57,false,null]]]],[4,52,null,930580622453040,false,[[0,[20,4,58,false,null]]]],[2,27,null,648297693202608,false,[[1,[2,"CheckSubmitState"]],[13]]]]],[0,null,false,null,544622279635595,[[-1,61,null,0,false,false,false,108034191530448,false]],[[6,16,null,457959652468953,false,[[2,["card_swipe",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[0,73,null,722026847214927,false,[[0,[21,0,false,null,0]],[0,[21,0,false,null,1]]]],[2,27,null,174110906329546,false,[[1,[2,"CheckSubmitState"]],[13]]]]]]],[0,null,false,null,903256601857551,[[2,33,null,2,false,false,false,553171385010499,false,[[1,[2,"CheckSubmitState"]]]]],[[-1,28,null,151584341392847,false,[[11,"FilledCount"],[7,[0,0]]]]],[[0,null,false,null,326454811928491,[[-1,74,null,0,true,false,false,900563057628926,false,[[4,0]]]],[],[[0,null,false,null,512468327333204,[[0,69,null,0,false,false,false,273625493381606,false,[[10,2],[8,1],[7,[0,-1]]]]],[[-1,60,null,427897992150255,false,[[11,"FilledCount"],[7,[0,1]]]]]]]],[0,null,false,null,197957600391126,[[-1,75,null,0,false,false,false,676094959731453,false,[[11,"FilledCount"],[8,0],[7,[20,0,76,false,null]]]]],[[5,77,null,871171250612987,false,[[3,1]]]]],[0,null,false,null,830039838453468,[[-1,61,null,0,false,false,false,540974332855602,false]],[[5,77,null,801779902196330,false,[[3,0]]]]]]],[0,null,false,null,956282998966849,[[1,78,null,1,false,false,false,460379891558451,false,[[4,5]]],[5,79,null,0,false,false,false,271469166922398,false]],[[20,80,null,658653282719226,false],[-1,28,null,529456506010094,false,[[11,"FinalAnswer"],[7,[2,""]]]],[6,16,null,813632462410441,false,[[2,["button-124476",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[5,81,"Flash",388147726390308,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,725241333542329,false,[[0,[1,0.5]]]]],[[0,null,false,null,667347878010134,[[-1,40,null,0,true,false,false,389186915205398,false,[[0,[20,20,35,false,null]]]]],[],[[0,null,false,null,631589558920999,[[-1,41,null,0,false,false,false,253358370212568,false,[[7,[20,20,42,false,null,[[19,43]]]],[8,0],[7,[2,"_"]]]]],[],[[0,null,false,null,403636493907996,[[0,69,null,0,false,false,false,526836686186341,false,[[10,2],[8,0],[7,[19,43]]]]],[[-1,28,null,245728951174934,false,[[11,"FinalAnswer"],[7,[10,[10,[23,"FinalAnswer"],[21,0,true,null,3]],[2,"|"]]]]]]]]],[0,null,false,null,998053537243308,[[-1,61,null,0,false,false,false,403067100774907,false]],[[-1,28,null,357495810182952,false,[[11,"FinalAnswer"],[7,[10,[10,[23,"FinalAnswer"],[20,20,42,false,null,[[19,43]]]],[2,"|"]]]]]]]]],[0,null,false,null,903901720494647,[[-1,75,null,0,false,false,false,745073279826626,false,[[11,"FinalAnswer"],[8,1],[7,[2,""]]]]],[[-1,28,null,814546508270084,false,[[11,"FinalAnswer"],[7,[19,82,[[23,"FinalAnswer"],[5,[19,83,[[23,"FinalAnswer"]]],[0,1]]]]]]],[20,84,null,171040983658447,false,[[7,[23,"FinalAnswer"]]]],[5,77,null,498358887136483,false,[[3,0]]]]]]],[0,null,false,null,961823775126713,[[20,85,null,1,false,false,false,119018979468992,false]],[[0,29,"DragDrop",205409471313749,false,[[3,0]]],[-1,28,null,586954232758008,false,[[11,"gameState"],[7,[2,"End"]]]],[6,16,null,634975830871135,false,[[2,["alert-234711",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[5,77,null,486294929517038,false,[[3,0]]],[-1,21,null,166118146748558,false,[[0,[1,0.1]]]],[-1,44,null,786114696442570,false,[[4,11],[5,[0,0]],[0,[20,5,53,false,null]],[0,[20,5,54,false,null]]]],[-1,21,null,609402064923823,false,[[0,[0,2]]]],[20,80,null,518261006133178,false],[6,86,null,237082226128838,false,[[1,[2,"bgm"]],[3,0]]]]],[0,null,false,null,433043078641250,[[20,87,null,1,false,false,false,889460128806113,false]],[[0,29,"DragDrop",146493902040842,false,[[3,0]]],[-1,28,null,425380409098219,false,[[11,"gameState"],[7,[2,"End"]]]],[6,16,null,221256152272583,false,[[2,["error-010-206498",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[5,77,null,523842542618557,false,[[3,0]]],[-1,21,null,773344591454861,false,[[0,[1,0.1]]]],[-1,44,null,165468245100549,false,[[4,10],[5,[0,0]],[0,[20,5,53,false,null]],[0,[20,5,54,false,null]]]],[-1,21,null,585683943374630,false,[[0,[0,2]]]],[20,80,null,192197113002945,false],[6,86,null,781814464998406,false,[[1,[2,"bgm"]],[3,0]]]]],[0,null,false,null,305413044561801,[[-1,88,null,0,false,false,false,337036644147098,false],[-1,75,null,0,false,false,false,635967494112949,false,[[11,"gameState"],[8,0],[7,[2,"playing"]]]]],[[-1,28,null,978291331980230,false,[[11,"CurrentTime"],[7,[19,34,[[0,0],[5,[20,20,89,false,null],[20,20,90,false,null]]]]]]],[9,55,null,899951685623283,false,[[7,[19,91,[[23,"CurrentTime"]]]]]]],[[0,null,false,null,160552091445616,[[-1,75,null,0,false,false,false,812605816898326,false,[[11,"CurrentTime"],[8,0],[7,[0,0]]]],[-1,75,null,0,false,false,false,792184163830960,false,[[11,"gameState"],[8,0],[7,[2,"playing"]]]]],[],[[0,null,false,null,197153245673402,[[-1,92,null,0,false,false,false,676651290174087,false]],[[-1,28,null,617362064114178,false,[[11,"FinalAnswer"],[7,[2,""]]]],[20,80,null,155532853895121,false],[0,29,"DragDrop",256788591439037,false,[[3,0]]],[20,84,null,624217562823456,false,[[7,[23,"FinalAnswer"]]]]]]]]]],[0,null,false,null,312687717900328,[[1,78,null,1,false,false,false,444391347231568,false,[[4,17]]],[17,69,null,0,false,false,false,165882449365670,false,[[10,0],[8,0],[7,[0,0]]]],[17,79,null,0,false,false,false,218006519748153,false],[-1,75,null,0,false,false,false,652255324849389,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[17,49,null,744920239729365,false,[[0,[0,1]]]],[6,16,null,814990443653107,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[17,81,"Flash",288546904750114,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,225438922954531,false,[[0,[1,0.5]]]],[6,93,null,554558762518759,false,[[1,[2,"bgm"]],[3,0]]],[17,50,null,117506203877028,false,[[10,0],[7,[0,1]]]]]],[0,null,false,null,983825517389982,[[1,78,null,1,false,false,false,177138363351836,false,[[4,17]]],[17,69,null,0,false,false,false,772247454962354,false,[[10,0],[8,0],[7,[0,1]]]],[17,79,null,0,false,false,false,420178685359629,false],[-1,75,null,0,false,false,false,393533749442901,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[17,49,null,552019651456125,false,[[0,[0,0]]]],[6,16,null,197222371360236,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[17,81,"Flash",270092195858284,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,326299332281639,false,[[0,[1,0.5]]]],[6,93,null,964958154773645,false,[[1,[2,"bgm"]],[3,1]]],[17,50,null,506698549832256,false,[[10,0],[7,[0,0]]]]]],[0,null,false,null,294769773047529,[[1,78,null,1,false,false,false,352106017539969,false,[[4,15]]],[15,69,null,0,false,false,false,358413375274332,false,[[10,0],[8,0],[7,[0,0]]]],[15,79,null,0,false,false,false,721902056257835,false],[-1,75,null,0,false,false,false,452955490819604,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[20,80,null,431466008645395,false],[15,49,null,981623485925509,false,[[0,[0,1]]]],[6,16,null,547261484638917,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[15,81,"Flash",221991481168028,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,851078194326314,false,[[0,[1,0.5]]]],[-1,94,null,402526527434402,false,[[5,[0,2]],[3,1]]],[0,77,null,855238512615337,false,[[3,0]]],[4,77,null,207839358302464,false,[[3,0]]],[8,95,null,222466351625496,false,[[3,0]]],[14,95,null,251839098840947,false,[[3,0]]],[21,77,null,153839374117437,false,[[3,0]]],[22,77,null,665223389941520,false,[[3,0]]],[0,29,"DragDrop",759856544888894,false,[[3,0]]],[6,93,null,706457060725101,false,[[1,[2,"bgm"]],[3,0]]],[15,50,null,399990244603092,false,[[10,0],[7,[0,1]]]]]],[0,null,false,null,532748443231555,[[1,78,null,1,false,false,false,419213596136778,false,[[4,15]]],[15,69,null,0,false,false,false,926326957937606,false,[[10,0],[8,0],[7,[0,1]]]],[15,79,null,0,false,false,false,804823921411396,false],[-1,75,null,0,false,false,false,711255171830416,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[20,96,null,977450185168128,false],[15,49,null,670063708965675,false,[[0,[0,0]]]],[6,16,null,372275331971085,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[15,81,"Flash",113742305896573,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,900385124097116,false,[[0,[1,0.5]]]],[-1,94,null,695331528906453,false,[[5,[0,2]],[3,0]]],[0,77,null,338279072626337,false,[[3,1]]],[4,77,null,371330338747864,false,[[3,1]]],[8,95,null,358503142678550,false,[[3,1]]],[14,95,null,192887026023526,false,[[3,1]]],[21,77,null,584652547292123,false,[[3,1]]],[22,77,null,409790138347585,false,[[3,1]]],[0,29,"DragDrop",886574462493362,false,[[3,1]]],[6,93,null,693317578489009,false,[[1,[2,"bgm"]],[3,1]]],[15,50,null,468211770946126,false,[[10,0],[7,[0,0]]]]]],[0,null,false,null,297063884609973,[[1,78,null,1,false,false,false,386622849542303,false,[[4,18]]],[-1,97,null,0,false,false,false,363257598466262,false,[[5,[0,2]]]],[-1,75,null,0,false,false,false,975353017499120,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[20,96,null,815752088305315,false],[15,49,null,209418858141601,false,[[0,[0,0]]]],[6,16,null,892125720911145,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[15,81,"Flash",926038900680013,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,821647409423555,false,[[0,[1,0.5]]]],[-1,94,null,480813966183110,false,[[5,[0,2]],[3,0]]],[0,77,null,876609529855384,false,[[3,1]]],[4,77,null,136625999145606,false,[[3,1]]],[8,95,null,927964586528148,false,[[3,1]]],[14,95,null,155360850450853,false,[[3,1]]],[21,77,null,825641412491834,false,[[3,1]]],[22,77,null,539962716879397,false,[[3,1]]],[0,29,"DragDrop",695861965483617,false,[[3,1]]],[6,93,null,652969105932762,false,[[1,[2,"bgm"]],[3,1]]],[15,50,null,943722776633160,false,[[10,0],[7,[0,0]]]]]],[0,null,false,null,792955897157891,[[2,33,null,2,false,false,false,979301415560581,false,[[1,[2,"Fade"]]]]],[[16,98,"Fade",820129408251933,false],[15,98,"Fade",948221853487772,false],[17,98,"Fade",225126965271644,false]]],[0,null,false,null,955859035444991,[[1,78,null,1,false,false,false,518910668901033,false,[[4,12]]],[12,69,null,0,false,false,false,290396959315441,false,[[10,0],[8,0],[7,[0,0]]]],[-1,75,null,0,false,false,false,373560664487770,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[2,27,null,275245060006677,false,[[1,[2,"SettingOnTop"]],[13]]],[6,16,null,444001414569356,false,[[2,["button-124476",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[12,99,"Sine",818098073409429,false,[[3,1]]],[-1,21,null,441096782479652,false,[[0,[1,0.5]]]],[16,77,null,794558327843409,false,[[3,1]]],[15,77,null,679301757369962,false,[[3,1]]],[17,77,null,767519360841597,false,[[3,1]]],[2,27,null,793350220956891,false,[[1,[2,"Fade"]],[13]]],[12,50,null,261563617571114,false,[[10,0],[7,[0,1]]]],[12,99,"Sine",245771226696928,false,[[3,0]]]]],[0,null,false,null,467571648016628,[[1,78,null,1,false,false,false,432350690749805,false,[[4,12]]],[12,69,null,0,false,false,false,815726735468093,false,[[10,0],[8,0],[7,[0,1]]]],[-1,75,null,0,false,false,false,597573303419198,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[2,27,null,780503669536830,false,[[1,[2,"SettingOnTop"]],[13]]],[6,16,null,747877391706105,false,[[2,["button-124476",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[12,99,"Sine",128949433029818,false,[[3,1]]],[-1,21,null,827176291493130,false,[[0,[1,0.5]]]],[16,77,null,591127776141805,false,[[3,0]]],[15,77,null,854152891397620,false,[[3,0]]],[17,77,null,646200193534642,false,[[3,0]]],[-1,21,null,891033434354753,false,[[0,[1,0.1]]]],[12,50,null,461824223198453,false,[[10,0],[7,[0,0]]]],[12,99,"Sine",784451994863195,false,[[3,0]]]]],[0,null,false,null,567365687078455,[[2,33,null,2,false,false,false,765233055415434,false,[[1,[2,"SettingOnTop"]]]]],[[16,65,null,194954903368303,false],[15,65,null,287268448052854,false],[17,65,null,706962380651923,false],[12,65,null,603985316719836,false]]]]]],[["alert-234711.ogg",23907],["bubble-pop-389501.ogg",18257],["button-124476.ogg",13157],["collect-5930.ogg",10731],["error-010-206498.ogg",11425],["error-08-206492.ogg",15621],["pop-reverb-423718.ogg",23653],["fm-freemusic-give-me-a-smile(chosic.com).ogg",2747008],["card_drag.ogg",7213],["card_flips.ogg",8015],["card_swipe.ogg",9018]],"media/",false,1200,1200,3,true,true,true,"1.0.0.0",true,false,3,0,40,false,true,1,true,"SQ_Word_Hint-Image",0,[]]}
\ No newline at end of file
+{"project": [null,"Game",[[0,true,false,false,false,false,false,false,false,false],[1,true,false,false,false,false,false,false,false,false],[2,true,false,false,false,false,false,false,false,false],[3,true,false,false,false,false,false,false,false,false],[4,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]],[["t0",4,false,[864916470115508,671424700857603,742273295511675,915051182566084,438595278712365,792103718967953,139230516987381],5,0,null,[["Default",0,false,1,0,false,766361138730018,[["images/answers-sheet0.png",12383,0,0,199,85,1,0.5025125741958618,0.5058823823928833,[],[-0.5025125741958618,-0.5058823823928833,0.4824119806289673,-0.5058823823928833,0.4974874258041382,0.4941176176071167,-0.5025125741958618,0.4941176176071167],0]]]],[["MoveTo",7,604855247345446],["Fade",8,172183085978858],["DragDrop",9,421888048208530],["EaseTween",10,428975865074928],["EaseTween2",10,153601376400345]],false,false,521274050538780,[],null],["t1",5,false,[],0,0,null,null,[],false,false,786570836240034,[],null,[1]],["t2",2,false,[],0,0,null,null,[],false,false,293329078829759,[],null,[]],["t3",1,false,[],0,0,null,null,[],false,false,309246988327533,[],null,[]],["t4",4,false,[808559794937329,997079567163161,567648729382427,954939568499611,936471805758704],1,0,null,[["Default",0,false,1,0,false,163248314795401,[["images/answers-sheet0.png",12383,0,0,199,85,1,0.5025125741958618,0.5058823823928833,[],[-0.3366825580596924,-0.2941173911094666,0.3165824413299561,-0.3058823943138123,0.3165824413299561,0.1294116377830505,-0.346733570098877,0.1294116377830505],0],["images/slot-sheet0.png",11183,0,0,199,82,1,0.5025125741958618,0.5,[],[-0.3216085731983185,-0.2317070066928864,0.3015064001083374,-0.2439019978046417,0.2964824438095093,0.2195119857788086,-0.3216085731983185,0.2195119857788086],0]]]],[["Fade",8,900753873870093]],false,false,519636697009154,[],null],["t5",4,false,[],3,0,null,[["Default",0,false,1,0,false,157803278794484,[["images/submit-sheet0.png",146996,0,0,489,325,1,0.5010225176811218,0.5015384554862976,[],[],0]]]],[["Flash",11,745974027953346],["Sine",12,122174234324725],["Fade",8,470725043295066]],false,false,588453873694452,[],null],["t6",0,false,[],0,0,null,null,[],false,false,975221106550751,[],null,[0,0,0,1,1,600,600,10000,1]],["t7",4,false,[],0,0,null,[["Default",5,false,1,0,false,430849449557794,[["images/sprite-sheet0.png",168,0,0,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,787263586433186,[],null],["t8",6,false,[],2,0,null,null,[["Pin",13,668111541658451],["Fade",8,143982287745535]],false,false,865512087815474,[],null],["t9",6,false,[],2,0,null,null,[["Pin",13,983629863781910],["Fade",8,863647630809957]],false,false,452023984157524,[],null],["t10",4,false,[],2,0,null,[["Default",5,false,1,0,false,325577231432987,[["images/wrong-sheet0.png",48153,0,0,300,300,1,0.5,0.5,[],[],0]]]],[["Fade",8,938090566638553],["Pin",13,922984705911085]],false,false,786659809200098,[],null],["t11",4,false,[],2,0,null,[["Default",5,false,1,0,false,199500828138837,[["images/correct-sheet0.png",36773,0,0,300,300,1,0.5,0.5,[],[],0]]]],[["Fade",8,351180598525433],["Pin",13,692899677986212]],false,false,185378619927884,[],null],["t12",4,false,[808308867875603],3,0,null,[["Default",5,false,1,0,false,761372550491219,[["images/setting-sheet0.png",48936,0,0,240,186,1,0.5166666507720947,0.4892473220825195,[],[-0.3041666448116303,-0.2150533199310303,-0.01666665077209473,-0.4838709831237793,0.3166663646697998,-0.2741933166980743,0.4666663408279419,0.01075267791748047,0.3666663765907288,0.3602146506309509,-0.01666665077209473,0.4193546772003174,-0.3624996542930603,0.3118276596069336,-0.4416666626930237,0.01075267791748047],0]]]],[["Anchor",14,827810656785535],["Fade",8,373179721574636],["Sine",12,657466709679600]],false,false,852469545845224,[],null],["t13",4,false,[],1,0,null,[["Default",5,false,1,0,false,200801003478463,[["images/khung_timer-sheet0.png",27543,0,0,400,200,1,0.5,0.5,[],[],0]]]],[["Anchor",14,394428299090024]],false,false,684620172079747,[],null],["t14",6,false,[],2,0,null,null,[["Pin",13,456906837996025],["Fade",8,218728013988059]],false,false,438300487857361,[],null],["t15",4,false,[726951437591404],3,0,null,[["Default",0,false,1,0,false,954324372044250,[["images/pause-sheet0.png",32506,0,0,161,157,1,0.5031055808067322,0.5031847357749939,[],[-0.397515594959259,-0.3949047327041626,-0.006211578845977783,-0.4777070283889771,0.3913044333457947,-0.3949047327041626,0.4720494151115418,-0.006369739770889282,0.3913044333457947,0.3885352611541748,-0.006211578845977783,0.4649682641029358,-0.4037266969680786,0.3949042558670044,-0.47826087474823,-0.006369739770889282],0],["images/pause-sheet1.png",33467,0,0,161,157,1,0.5031055808067322,0.5031847357749939,[],[],0]]]],[["Fade",8,785646788309555],["Flash",11,834009854852752],["Anchor",14,236404692541993]],false,false,319934659610612,[],null],["t16",4,false,[],2,0,null,[["Default",5,false,1,0,false,157939326111053,[["images/boardsetting-sheet0.png",26164,0,0,252,779,1,0.5,0.5006418228149414,[],[-0.3055559992790222,-0.4377406239509583,0,-0.4813863337039948,0.2857139706611633,-0.4313222169876099,0.4523810148239136,-0.001283824443817139,0.3769840002059937,0.4595631957054138,0,0.4903721809387207,-0.3849210143089294,0.4621312022209168,-0.4722222089767456,-0.001283824443817139],0]]]],[["Fade",8,530783555522929],["Anchor",14,554124059792985]],false,false,991386743308625,[],null],["t17",4,false,[434240310643651],3,0,null,[["Default",0,false,1,0,false,502912810850035,[["images/bgm-sheet0.png",35024,0,0,161,157,1,0.5031055808067322,0.5031847357749939,[],[-0.397515594959259,-0.3949047327041626,-0.006211578845977783,-0.4777070283889771,0.3913044333457947,-0.3949047327041626,0.4720494151115418,-0.006369739770889282,0.3913044333457947,0.3885352611541748,-0.006211578845977783,0.4649682641029358,-0.397515594959259,0.3885352611541748,-0.4720496833324432,-0.006369739770889282],0],["images/bgm-sheet1.png",34782,0,0,161,157,1,0.5031055808067322,0.5031847357749939,[],[],0]]]],[["Flash",11,437429795024815],["Fade",8,914766587437933],["Anchor",14,735854623212753]],false,false,655092202092160,[],null],["t18",4,false,[],1,0,null,[["Default",5,false,1,0,false,178868238875737,[["images/pauseicon-sheet0.png",61774,0,0,300,300,1,0.5,0.5,[],[],0]]]],[["Sine",12,903218504057510]],false,false,826283508189587,[],null],["t19",4,false,[147049293532184],0,0,null,[["Default",5,false,1,0,false,805374628770208,[["images/black-sheet0.png",75440,0,0,1200,1200,1,0.5,0.5,[],[],1]]]],[],false,false,142600631683249,[],null],["t20",3,false,[],0,0,null,null,[],false,false,222049282078427,[],null,["G2610S1T15"]],["t21",4,false,[326267281121004],0,0,null,[["Default",0,false,1,0,false,607627309615016,[["images/hint-sheet0.png",194,0,0,300,300,1,0.5,0.5,[],[],3]]]],[],false,false,428987806910841,[],null],["t22",4,false,[],0,0,null,[["Default",5,false,1,0,false,742348772710335,[["images/imageframe-sheet0.png",480519,0,0,1183,1101,1,0.5004226565361023,0.5004541277885437,[],[-0.4175824522972107,-0.4114441275596619,-0.0008456707000732422,-0.4977293312549591,0.4530853629112244,-0.4504995346069336,0.4699913263320923,0.4677568674087524,-0.0008456707000732422,0.4822888970375061,-0.4725274443626404,0.4695728421211243],0]]]],[],false,false,989306383067724,[],null],["t23",4,false,[],3,0,null,[["Default",5,false,1,0,false,526433650557355,[["images/timeup-sheet0.png",18236,0,0,600,200,1,0.5,0.5,[],[-0.3683333396911621,-0.1049999892711639,0,-0.4050000011920929,0.3666666746139526,-0.09999999403953552,0.3666666746139526,0.1000000238418579,0,0.3999999761581421,-0.3666666746139526,0.1000000238418579],0]]]],[["EaseTween",10,760125664012815],["Fade",8,866146229123006],["Sine",12,472805430845285]],false,false,188024606698948,[],null]],[],[["Game",1200,1200,false,"Game",288730111597454,[["Layer 0",0,763235347287340,true,[255,255,255],true,0,0,1,false,false,0,0,0,[[[578.7386474609375,528.845703125,0,2858.676025390625,2678.729248046875,0,0,0.1000000014901161,0.5,0.5,0,0,[]],19,25,[[0]],[],[0,"Default",0,1]],[[616.50048828125,356.50048828125,0,516.9990234375,516.9990234375,0,0,1,0.5,0.5,0,0,[]],21,31,[[""]],[],[0,"Default",0,1]],[[1096.041625976563,952.75634765625,0,134.9133605957031,334.9425048828125,0,0,1,0.5,0.5006418228149414,0,0,[]],16,19,[],[[1,0.5,0,0,1],[1,1,1,1,1]],[1,"Default",0,1]],[[-2515,-92,0,241.2059936523438,128,0,0,1,0.5025125741958618,0.5058823823928833,0,0,[]],0,3,[[0],[0],[-1],[""],[0],[0],[0]],[[1,3000,1500,1500],[1,1,0,0,0],[0,1],[0,7,17,"current","100, 100",0.3,"0,0",0,0,0,0,""],[0,7,5,"current","100, 100",0.3,"0,0",0,0,0,0,""]],[0,"Default",0,1]],[[-3213,680,0,241.2059936523438,128,0,0,1,0.5025125741958618,0.5,0,0,[]],4,9,[[-1],[0],[""],[0],[0]],[[1,1,0,0,0]],[0,"Default",1,1]],[[-3356,1133,0,260.8450012207031,114.8960037231445,0,0,1,0.5,0.5,0,0,[]],8,18,[],[[],[1,1,0,0,0]],["Answer",0,"bold 36pt Segoe UI","rgb(255,255,255)",1,1,4,0,0]],[[1092.310546875,1119.054321289063,0,209.6693572998047,162.4937438964844,0,0,1,0.5166666507720947,0.4892473220825195,0,0,[]],12,2,[[0]],[[1,1,1,1,1],[1,1,0,0,0],[0,2,0,0.5,0,0,0,10,0]],[0,"Default",0,1]],[[1016.070678710938,95.78305053710938,0,402.4921875,201.2461242675781,0,0,1,0.5,0.5,0,0,[]],13,12,[],[[1,0,1,0,1]],[0,"Default",0,1]],[[1062.105834960938,78.80909729003906,0,196.0973815917969,73.22364044189453,0,0,1,0.5,0.5,0,0,[]],9,8,[],[[],[1,1,0,0,0]],["",0,"bold italic 41pt Segoe UI","rgb(255,255,255)",1,1,4,0,0]],[[-3089,1143,0,260.8450012207031,114.8960037231445,0,0,1,0.5,0.5,0,0,[]],14,1,[],[[],[1,1,0,0,0]],["Slot",0,"bold 36pt Segoe UI","rgb(255,255,255)",1,1,4,0,0]],[[1095,981.8660278320313,0,100,100,0,0,1,0.5031055808067322,0.5031847357749939,0,0,[]],15,11,[[0]],[[1,0.5,0,0,0],[],[1,1,1,1,1]],[1,"Default",0,1]],[[610,1050,0,318.0722045898438,211.3985443115234,0,0,1,0.5010225176811218,0.5015384554862976,0,0,[]],5,17,[],[[],[1,2,0,3,0,0,0,15,0],[1,1,0,0,0]],[1,"Default",0,1]],[[-3065,40,0,168,176,0,0,0.800000011920929,0.5,0.5,0,0,[]],10,23,[],[[1,0.5,0,0.5,1],[]],[0,"Default",0,1]],[[1095,872.7009887695313,0,100,100,0,0,1,0.5031055808067322,0.5031847357749939,0,0,[]],17,6,[[0]],[[],[1,0.5,0,0,1],[1,1,1,1,1]],[1,"Default",0,1]],[[600,360,0,629.3758544921875,629.3758544921875,0,0,1,0.5004226565361023,0.5004541277885437,0,0,[]],22,20,[],[],[0,"Default",0,1]],[[-3247,-305,0,195.2037353515625,205.4776306152344,0,0,0.800000011920929,0.5,0.5,0,0,[]],11,39,[],[[1,0.5,0,0.5,1],[]],[0,"Default",0,1]],[[-4838,534,0,1064.391357421875,354.797119140625,0,0,1,0.5,0.5,0,0,[]],23,4,[],[[0,7,23,"current","200, 200",0.5,"0,0",0,0,1,0,""],[0,0,0,0,1],[0,5,0,0.5,0,0,0,20,0]],[0,"Default",0,1]]],[]],["Layer 2",1,317623978877020,false,[255,255,255],true,0,0,1,false,false,1,0,0,[[[628,620,0,2858.676025390625,2678.729248046875,0,0,0.699999988079071,0.5,0.5,0,0,[]],19,32,[[2]],[],[0,"Default",0,1]],[[600,600,0,700,700,0,0,1,0.5,0.5,0,0,[]],18,22,[],[[1,2,0,2,0,0,0,15,0]],[0,"Default",0,1]]],[]]],[],[]]],[["Game",[[1,"gameState",1,"loading",false,false,539503153258101,false],[1,"OptionIndex",0,0,false,false,701702298089281,false],[1,"CurrentTime",0,10,false,false,706573264547386,false],[1,"FinalAnswer",1,"",false,false,342353772129151,false],[1,"FilledCount",0,0,false,false,377137633613480,false],[1,"tempScale",0,1,false,false,529411214032395,false],[0,null,false,null,549205817072564,[[-1,15,null,1,false,false,false,597870668036321,false]],[[6,16,null,287858449598328,false,[[2,["fm-freemusic-give-me-a-smile(chosic.com)",false]],[3,1],[0,[0,-20]],[1,[2,"bgm"]]]],[3,17,null,484332265761879,false,[[1,[2,"var script = document.createElement('script'); \nscript.src = 'tdv_sdk.js'; \nscript.onload = function() { tdv_sdk.load(); }; \ndocument.head.appendChild(script);"]]]],[9,18,null,151341647124838,false,[[0,[4,[20,9,19,false,null],[0,5]]]]],[9,20,"Pin",728791452299543,false,[[4,13],[3,0]]],[-1,21,null,530641639162875,false,[[0,[1,0.2]]]],[20,22,null,202557125263620,false]]],[0,null,false,null,768327268818740,[[20,23,null,1,false,false,false,157854561629165,false]],[[3,24,null,422861079647713,false,[[3,0],[7,[2,"Load dữ liệu xong"]]]],[3,24,null,445625785202613,false,[[3,0],[7,[20,20,25,true,null]]]]],[[0,null,false,null,939160499379423,[],[[20,26,null,112633710369332,false],[2,27,null,215312930941469,false,[[1,[2,"SetupUI"]],[13]]],[-1,21,null,253371712570850,false,[[0,[1,0.2]]]],[-1,28,null,486133403026538,false,[[11,"gameState"],[7,[2,"playing"]]]],[0,29,"DragDrop",702939057496858,false,[[3,1]]],[3,24,null,810649571245244,false,[[3,0],[7,[10,[2,"SenaAI Loaded & Started! Options count: "],[20,20,30,false,null]]]]],[21,31,null,310599052911762,false,[[1,[20,20,32,true,null]],[3,1],[3,0]]],[3,24,null,821665902069313,false,[[3,0],[7,[2,"✅ Load ảnh thành công!"]]]]]]]],[0,null,false,null,469683343531114,[[2,33,null,2,false,false,false,635946395803157,false,[[1,[2,"SetupUI"]]]]],[[-1,28,null,584838430715545,false,[[11,"tempScale"],[7,[19,34,[[1,0.6],[5,[1,0.85],[6,[5,[20,20,35,false,null],[0,5]],[1,0.02]]]]]]]],[-1,28,null,703212432169515,false,[[11,"OptionIndex"],[7,[0,0]]]],[8,36,null,365590215852144,false],[14,36,null,486127358962458,false],[4,37,null,633440992906642,false],[0,37,null,413353137320859,false],[20,38,null,721103392706320,false,[[0,[20,20,35,false,null]],[0,[6,[0,170],[23,"tempScale"]]],[0,[6,[0,80],[23,"tempScale"]]],[0,[19,39]],[0,[18,[12,[20,20,35,false,null],[0,6]],[0,4],[0,5]]],[0,[0,110]],[1,[2,""]],[0,[0,0]]]],[-1,21,null,294999106583991,false,[[0,[1,0.1]]]]],[[0,null,false,null,818772103770432,[[-1,40,null,0,true,false,false,555929416085788,false,[[0,[20,20,35,false,null]]]]],[],[[0,null,false,null,547242560835316,[[-1,41,null,0,false,false,false,877854197778405,false,[[7,[20,20,42,false,null,[[19,43]]]],[8,0],[7,[2,"_"]]]]],[[-1,44,null,529231940398402,false,[[4,4],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[4,45,null,967054670316694,false,[[0,[20,20,46,false,null,[[19,43]]]]]],[4,47,null,209456412894052,false,[[0,[4,[0,740],[20,20,48,false,null,[[19,43]]]]]]],[4,49,null,330242308364274,false,[[0,[0,1]]]],[4,50,null,279735605037743,false,[[10,4],[7,[0,0]]]],[4,50,null,366398683821733,false,[[10,0],[7,[19,43]]]],[4,51,null,237476653512591,false,[[0,[6,[0,240],[23,"tempScale"]]]]],[4,52,null,194195365471827,false,[[0,[6,[0,128],[23,"tempScale"]]]]],[-1,44,null,218183575300166,false,[[4,14],[5,[0,0]],[0,[20,4,53,false,null]],[0,[20,4,54,false,null]]]],[14,55,null,719798625156369,false,[[7,[21,4,true,null,2]]]],[14,56,null,381190661272932,false,[[0,[6,[0,36],[23,"tempScale"]]]]],[14,20,"Pin",144161831841828,false,[[4,4],[3,0]]],[-1,44,null,158804323397018,false,[[4,0],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[0,45,null,297232278697438,false,[[0,[20,20,46,false,null,[[19,43]]]]]],[0,51,null,639732653866588,false,[[0,[6,[0,240],[23,"tempScale"]]]]],[0,52,null,895140568876541,false,[[0,[6,[0,128],[23,"tempScale"]]]]],[0,47,null,587783740511114,false,[[0,[4,[0,980],[20,20,48,false,null,[[19,43]]]]]]],[0,50,null,477751173409160,false,[[10,0],[7,[20,0,53,false,null]]]],[0,50,null,624620079132936,false,[[10,1],[7,[20,0,54,false,null]]]],[0,50,null,467295429465343,false,[[10,5],[7,[20,0,57,false,null]]]],[0,50,null,570907618326780,false,[[10,4],[7,[20,0,58,false,null]]]],[0,50,null,305816140066103,false,[[10,3],[7,[20,20,59,true,null,[[23,"OptionIndex"]]]]]],[0,50,null,208275951093237,false,[[10,6],[7,[23,"OptionIndex"]]]],[-1,44,null,700391576578773,false,[[4,8],[5,[0,0]],[0,[20,0,53,false,null]],[0,[20,0,54,false,null]]]],[8,55,null,887582977485405,false,[[7,[21,0,true,null,3]]]],[8,56,null,510242040434741,false,[[0,[6,[0,60],[23,"tempScale"]]]]],[8,20,"Pin",536232156900253,false,[[4,0],[3,0]]],[-1,60,null,980517036151889,false,[[11,"OptionIndex"],[7,[0,1]]]],[3,24,null,291934968882690,false,[[3,0],[7,[10,[10,[10,[10,[10,[2,"Loop: "],[19,43]],[2," | Hint: "]],[20,20,42,false,null,[[19,43]]]],[2," | PosX: "]],[20,20,46,false,null,[[19,43]]]]]]]]],[0,null,false,null,851574752132902,[[-1,61,null,0,false,false,false,420650084225255,false]],[[-1,44,null,841906877163449,false,[[4,4],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[4,45,null,954639983072654,false,[[0,[20,20,46,false,null,[[19,43]]]]]],[4,47,null,959613845047857,false,[[0,[4,[0,740],[20,20,48,false,null,[[19,43]]]]]]],[4,49,null,931727243563350,false,[[0,[0,0]]]],[4,50,null,156362694834211,false,[[10,4],[7,[0,1]]]],[4,50,null,169994928317654,false,[[10,0],[7,[19,43]]]],[4,51,null,837822934719717,false,[[0,[6,[0,240],[23,"tempScale"]]]]],[4,52,null,276919506051685,false,[[0,[6,[0,128],[23,"tempScale"]]]]],[-1,44,null,236430930253943,false,[[4,14],[5,[0,0]],[0,[20,4,53,false,null]],[0,[20,4,54,false,null]]]],[14,62,null,646874567585831,false],[14,55,null,306273385789856,false,[[7,[20,20,42,false,null,[[19,43]]]]]],[14,56,null,544208413938390,false,[[0,[6,[0,60],[23,"tempScale"]]]]],[14,20,"Pin",285484337748885,false,[[4,4],[3,0]]]]]]]]],[0,null,false,null,885232395664091,[[0,63,"DragDrop",1,false,false,false,462077248880784,false],[0,64,"DragDrop",0,false,false,false,881833931574563,false]],[[6,16,null,765474901635440,false,[[2,["card_drag",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[0,65,null,397403794429243,false],[0,66,"EaseTween",798607807460393,false,[[1,[10,[10,[6,[21,0,false,null,5],[1,1.25]],[2,","]],[6,[21,0,false,null,4],[1,1.25]]]]]],[0,67,"EaseTween",333043575480598,false]],[[0,null,false,null,715788682150145,[[-1,68,null,0,false,false,false,686462805859677,false,[[4,4],[7,[21,4,false,null,0]],[8,0],[7,[21,0,false,null,2]]]],[0,69,null,0,false,false,false,975555513158536,false,[[10,2],[8,1],[7,[0,-1]]]]],[[0,50,null,363961653226411,false,[[10,2],[7,[0,-1]]]],[4,50,null,745135912100760,false,[[10,4],[7,[0,0]]]],[2,27,null,741791155071768,false,[[1,[2,"CheckSubmitState"]],[13]]]]],[0,null,false,null,193892616913206,[[0,70,null,0,false,false,false,297897281213159,false,[[4,8]]]],[[8,62,null,812019026325329,false]]]]],[0,null,false,null,876456068332522,[[0,71,"DragDrop",1,false,false,false,792974910922911,false]],[[0,66,"EaseTween2",312326656063231,false,[[1,[10,[10,[21,0,false,null,5],[2,","]],[21,0,false,null,4]]]]],[0,67,"EaseTween2",997643361117365,false]],[[0,null,false,null,962248118287846,[[0,70,null,0,false,false,false,124677826324657,false,[[4,4]]],[4,69,null,0,false,false,false,852890087723952,false,[[10,4],[8,0],[7,[0,0]]]],[4,72,null,0,false,false,true,329422920654075,false,[[3,0],[0,[20,0,53,false,null]],[0,[20,0,54,false,null]]]]],[[6,16,null,400234397175915,false,[[2,["pop-reverb-423718",false]],[3,0],[0,[0,-5]],[1,[2,""]]]],[0,73,null,464777312492432,false,[[0,[20,4,53,false,null]],[0,[20,4,54,false,null]]]],[4,50,null,413746821094201,false,[[10,4],[7,[0,1]]]],[0,50,null,290353637263798,false,[[10,2],[7,[21,4,false,null,0]]]],[0,51,null,262746395317933,false,[[0,[20,4,57,false,null]]]],[4,52,null,930580622453040,false,[[0,[20,4,58,false,null]]]],[2,27,null,648297693202608,false,[[1,[2,"CheckSubmitState"]],[13]]]]],[0,null,false,null,544622279635595,[[-1,61,null,0,false,false,false,108034191530448,false]],[[6,16,null,457959652468953,false,[[2,["card_swipe",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[0,73,null,722026847214927,false,[[0,[21,0,false,null,0]],[0,[21,0,false,null,1]]]],[2,27,null,174110906329546,false,[[1,[2,"CheckSubmitState"]],[13]]]]]]],[0,null,false,null,903256601857551,[[2,33,null,2,false,false,false,553171385010499,false,[[1,[2,"CheckSubmitState"]]]]],[[-1,28,null,151584341392847,false,[[11,"FilledCount"],[7,[0,0]]]]],[[0,null,false,null,326454811928491,[[-1,74,null,0,true,false,false,900563057628926,false,[[4,0]]]],[],[[0,null,false,null,512468327333204,[[0,69,null,0,false,false,false,273625493381606,false,[[10,2],[8,1],[7,[0,-1]]]]],[[-1,60,null,427897992150255,false,[[11,"FilledCount"],[7,[0,1]]]]]]]],[0,null,false,null,197957600391126,[[-1,75,null,0,false,false,false,676094959731453,false,[[11,"FilledCount"],[8,0],[7,[20,0,76,false,null]]]]],[[5,77,null,871171250612987,false,[[3,1]]]]],[0,null,false,null,830039838453468,[[-1,61,null,0,false,false,false,540974332855602,false]],[[5,77,null,801779902196330,false,[[3,0]]]]]]],[0,null,false,null,956282998966849,[[1,78,null,1,false,false,false,460379891558451,false,[[4,5]]],[5,79,null,0,false,false,false,271469166922398,false]],[[20,80,null,658653282719226,false],[-1,28,null,529456506010094,false,[[11,"FinalAnswer"],[7,[2,""]]]],[6,16,null,813632462410441,false,[[2,["button-124476",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[5,81,"Flash",388147726390308,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,725241333542329,false,[[0,[1,0.5]]]]],[[0,null,false,null,667347878010134,[[-1,40,null,0,true,false,false,389186915205398,false,[[0,[20,20,35,false,null]]]]],[],[[0,null,false,null,631589558920999,[[-1,41,null,0,false,false,false,253358370212568,false,[[7,[20,20,42,false,null,[[19,43]]]],[8,0],[7,[2,"_"]]]]],[],[[0,null,false,null,403636493907996,[[0,69,null,0,false,false,false,526836686186341,false,[[10,2],[8,0],[7,[19,43]]]]],[[-1,28,null,245728951174934,false,[[11,"FinalAnswer"],[7,[10,[10,[23,"FinalAnswer"],[21,0,true,null,3]],[2,"|"]]]]]]]]],[0,null,false,null,998053537243308,[[-1,61,null,0,false,false,false,403067100774907,false]],[[-1,28,null,357495810182952,false,[[11,"FinalAnswer"],[7,[10,[10,[23,"FinalAnswer"],[20,20,42,false,null,[[19,43]]]],[2,"|"]]]]]]]]],[0,null,false,null,903901720494647,[[-1,75,null,0,false,false,false,745073279826626,false,[[11,"FinalAnswer"],[8,1],[7,[2,""]]]]],[[-1,28,null,814546508270084,false,[[11,"FinalAnswer"],[7,[19,82,[[23,"FinalAnswer"],[5,[19,83,[[23,"FinalAnswer"]]],[0,1]]]]]]],[20,84,null,171040983658447,false,[[7,[23,"FinalAnswer"]]]],[5,77,null,498358887136483,false,[[3,0]]]]]]],[0,null,false,null,961823775126713,[[20,85,null,1,false,false,false,119018979468992,false]],[[0,29,"DragDrop",205409471313749,false,[[3,0]]],[0,66,"EaseTween2",235832670173510,false,[[1,[10,[10,[21,0,false,null,5],[2,","]],[21,0,false,null,4]]]]],[0,67,"EaseTween2",257630791747773,false],[-1,28,null,586954232758008,false,[[11,"gameState"],[7,[2,"End"]]]],[6,16,null,634975830871135,false,[[2,["alert-234711",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[5,77,null,486294929517038,false,[[3,0]]],[-1,21,null,166118146748558,false,[[0,[1,0.1]]]],[-1,44,null,786114696442570,false,[[4,11],[5,[0,0]],[0,[0,600]],[0,[0,500]]]],[11,86,null,735092803223303,false,[[0,[0,4]]]],[-1,21,null,609402064923823,false,[[0,[0,2]]]],[20,80,null,518261006133178,false],[6,87,null,237082226128838,false,[[1,[2,"bgm"]],[3,0]]]]],[0,null,false,null,433043078641250,[[20,88,null,1,false,false,false,889460128806113,false]],[[0,29,"DragDrop",146493902040842,false,[[3,0]]],[0,66,"EaseTween2",541824323696405,false,[[1,[10,[10,[21,0,false,null,5],[2,","]],[21,0,false,null,4]]]]],[0,67,"EaseTween2",487255165472754,false],[-1,28,null,425380409098219,false,[[11,"gameState"],[7,[2,"End"]]]],[6,16,null,221256152272583,false,[[2,["error-010-206498",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[5,77,null,523842542618557,false,[[3,0]]],[-1,21,null,773344591454861,false,[[0,[1,0.1]]]],[-1,44,null,165468245100549,false,[[4,10],[5,[0,0]],[0,[0,600]],[0,[0,500]]]],[10,86,null,894791527270015,false,[[0,[1,3.6]]]],[-1,21,null,585683943374630,false,[[0,[0,2]]]],[20,80,null,192197113002945,false],[6,87,null,781814464998406,false,[[1,[2,"bgm"]],[3,0]]]]],[0,null,false,null,305413044561801,[[-1,89,null,0,false,false,false,337036644147098,false],[-1,75,null,0,false,false,false,635967494112949,false,[[11,"gameState"],[8,0],[7,[2,"playing"]]]]],[[-1,28,null,978291331980230,false,[[11,"CurrentTime"],[7,[19,34,[[0,0],[5,[20,20,90,false,null],[20,20,91,false,null]]]]]]],[9,55,null,899951685623283,false,[[7,[19,92,[[23,"CurrentTime"]]]]]]],[[0,null,false,null,160552091445616,[[-1,75,null,0,false,false,false,812605816898326,false,[[11,"CurrentTime"],[8,0],[7,[0,0]]]],[-1,75,null,0,false,false,false,792184163830960,false,[[11,"gameState"],[8,0],[7,[2,"playing"]]]]],[],[[0,null,false,null,197153245673402,[[-1,93,null,0,false,false,false,676651290174087,false]],[[0,29,"DragDrop",256788591439037,false,[[3,0]]],[0,66,"EaseTween2",637610913679775,false,[[1,[10,[10,[21,0,false,null,5],[2,","]],[21,0,false,null,4]]]]],[0,67,"EaseTween2",873535345692813,false],[6,16,null,917529582650811,false,[[2,["ring",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[-1,28,null,617362064114178,false,[[11,"FinalAnswer"],[7,[2,""]]]],[-1,44,null,137104286664310,false,[[4,23],[5,[0,0]],[0,[0,600]],[0,[0,500]]]],[23,67,"EaseTween",909198390125263,false],[-1,21,null,659962169080336,false,[[0,[1,0.5]]]],[23,94,"Sine",804104640881885,false,[[3,1]]],[23,95,"Fade",336500252416170,false,[[0,[1,0.5]]]],[23,96,"Fade",950356443465821,false],[-1,21,null,141679478069402,false,[[0,[1,0.5]]]],[20,80,null,155532853895121,false],[20,84,null,624217562823456,false,[[7,[23,"FinalAnswer"]]]]]]]]]],[0,null,false,null,312687717900328,[[1,78,null,1,false,false,false,444391347231568,false,[[4,17]]],[17,69,null,0,false,false,false,165882449365670,false,[[10,0],[8,0],[7,[0,0]]]],[17,79,null,0,false,false,false,218006519748153,false],[-1,75,null,0,false,false,false,652255324849389,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[17,49,null,744920239729365,false,[[0,[0,1]]]],[6,16,null,814990443653107,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[17,81,"Flash",288546904750114,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,225438922954531,false,[[0,[1,0.5]]]],[6,97,null,554558762518759,false,[[1,[2,"bgm"]],[3,0]]],[17,50,null,117506203877028,false,[[10,0],[7,[0,1]]]]]],[0,null,false,null,983825517389982,[[1,78,null,1,false,false,false,177138363351836,false,[[4,17]]],[17,69,null,0,false,false,false,772247454962354,false,[[10,0],[8,0],[7,[0,1]]]],[17,79,null,0,false,false,false,420178685359629,false],[-1,75,null,0,false,false,false,393533749442901,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[17,49,null,552019651456125,false,[[0,[0,0]]]],[6,16,null,197222371360236,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[17,81,"Flash",270092195858284,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,326299332281639,false,[[0,[1,0.5]]]],[6,97,null,964958154773645,false,[[1,[2,"bgm"]],[3,1]]],[17,50,null,506698549832256,false,[[10,0],[7,[0,0]]]]]],[0,null,false,null,294769773047529,[[1,78,null,1,false,false,false,352106017539969,false,[[4,15]]],[15,69,null,0,false,false,false,358413375274332,false,[[10,0],[8,0],[7,[0,0]]]],[15,79,null,0,false,false,false,721902056257835,false],[-1,75,null,0,false,false,false,452955490819604,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[20,80,null,431466008645395,false],[15,49,null,981623485925509,false,[[0,[0,1]]]],[6,16,null,547261484638917,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[15,81,"Flash",221991481168028,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,851078194326314,false,[[0,[1,0.5]]]],[-1,98,null,402526527434402,false,[[5,[0,2]],[3,1]]],[0,77,null,855238512615337,false,[[3,0]]],[4,77,null,207839358302464,false,[[3,0]]],[8,99,null,222466351625496,false,[[3,0]]],[14,99,null,251839098840947,false,[[3,0]]],[21,77,null,153839374117437,false,[[3,0]]],[22,77,null,665223389941520,false,[[3,0]]],[0,29,"DragDrop",759856544888894,false,[[3,0]]],[6,97,null,706457060725101,false,[[1,[2,"bgm"]],[3,0]]],[15,50,null,399990244603092,false,[[10,0],[7,[0,1]]]]]],[0,null,false,null,532748443231555,[[1,78,null,1,false,false,false,419213596136778,false,[[4,15]]],[15,69,null,0,false,false,false,926326957937606,false,[[10,0],[8,0],[7,[0,1]]]],[15,79,null,0,false,false,false,804823921411396,false],[-1,75,null,0,false,false,false,711255171830416,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[20,100,null,977450185168128,false],[15,49,null,670063708965675,false,[[0,[0,0]]]],[6,16,null,372275331971085,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[15,81,"Flash",113742305896573,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,900385124097116,false,[[0,[1,0.5]]]],[-1,98,null,695331528906453,false,[[5,[0,2]],[3,0]]],[0,77,null,338279072626337,false,[[3,1]]],[4,77,null,371330338747864,false,[[3,1]]],[8,99,null,358503142678550,false,[[3,1]]],[14,99,null,192887026023526,false,[[3,1]]],[21,77,null,584652547292123,false,[[3,1]]],[22,77,null,409790138347585,false,[[3,1]]],[0,29,"DragDrop",886574462493362,false,[[3,1]]],[6,97,null,693317578489009,false,[[1,[2,"bgm"]],[3,1]]],[15,50,null,468211770946126,false,[[10,0],[7,[0,0]]]]]],[0,null,false,null,297063884609973,[[1,78,null,1,false,false,false,386622849542303,false,[[4,18]]],[-1,101,null,0,false,false,false,363257598466262,false,[[5,[0,2]]]],[-1,75,null,0,false,false,false,975353017499120,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[20,100,null,815752088305315,false],[15,49,null,209418858141601,false,[[0,[0,0]]]],[6,16,null,892125720911145,false,[[2,["bubble-pop-389501",false]],[3,0],[0,[0,10]],[1,[2,""]]]],[15,81,"Flash",926038900680013,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,21,null,821647409423555,false,[[0,[1,0.5]]]],[-1,98,null,480813966183110,false,[[5,[0,2]],[3,0]]],[0,77,null,876609529855384,false,[[3,1]]],[4,77,null,136625999145606,false,[[3,1]]],[8,99,null,927964586528148,false,[[3,1]]],[14,99,null,155360850450853,false,[[3,1]]],[21,77,null,825641412491834,false,[[3,1]]],[22,77,null,539962716879397,false,[[3,1]]],[0,29,"DragDrop",695861965483617,false,[[3,1]]],[6,97,null,652969105932762,false,[[1,[2,"bgm"]],[3,1]]],[15,50,null,943722776633160,false,[[10,0],[7,[0,0]]]]]],[0,null,false,null,792955897157891,[[2,33,null,2,false,false,false,979301415560581,false,[[1,[2,"Fade"]]]]],[[16,96,"Fade",820129408251933,false],[15,96,"Fade",948221853487772,false],[17,96,"Fade",225126965271644,false]]],[0,null,false,null,955859035444991,[[1,78,null,1,false,false,false,518910668901033,false,[[4,12]]],[12,69,null,0,false,false,false,290396959315441,false,[[10,0],[8,0],[7,[0,0]]]],[-1,75,null,0,false,false,false,373560664487770,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[2,27,null,275245060006677,false,[[1,[2,"SettingOnTop"]],[13]]],[6,16,null,444001414569356,false,[[2,["button-124476",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[12,94,"Sine",818098073409429,false,[[3,1]]],[-1,21,null,441096782479652,false,[[0,[1,0.5]]]],[16,77,null,794558327843409,false,[[3,1]]],[15,77,null,679301757369962,false,[[3,1]]],[17,77,null,767519360841597,false,[[3,1]]],[2,27,null,793350220956891,false,[[1,[2,"Fade"]],[13]]],[12,50,null,261563617571114,false,[[10,0],[7,[0,1]]]],[12,94,"Sine",245771226696928,false,[[3,0]]]]],[0,null,false,null,467571648016628,[[1,78,null,1,false,false,false,432350690749805,false,[[4,12]]],[12,69,null,0,false,false,false,815726735468093,false,[[10,0],[8,0],[7,[0,1]]]],[-1,75,null,0,false,false,false,597573303419198,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[2,27,null,780503669536830,false,[[1,[2,"SettingOnTop"]],[13]]],[6,16,null,747877391706105,false,[[2,["button-124476",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[12,94,"Sine",128949433029818,false,[[3,1]]],[-1,21,null,827176291493130,false,[[0,[1,0.5]]]],[16,77,null,591127776141805,false,[[3,0]]],[15,77,null,854152891397620,false,[[3,0]]],[17,77,null,646200193534642,false,[[3,0]]],[-1,21,null,891033434354753,false,[[0,[1,0.1]]]],[12,50,null,461824223198453,false,[[10,0],[7,[0,0]]]],[12,94,"Sine",784451994863195,false,[[3,0]]]]],[0,null,false,null,567365687078455,[[2,33,null,2,false,false,false,765233055415434,false,[[1,[2,"SettingOnTop"]]]]],[[16,65,null,194954903368303,false],[15,65,null,287268448052854,false],[17,65,null,706962380651923,false],[12,65,null,603985316719836,false]]]]]],[["alert-234711.ogg",23907],["bubble-pop-389501.ogg",18257],["button-124476.ogg",13157],["collect-5930.ogg",10731],["error-010-206498.ogg",11425],["error-08-206492.ogg",15621],["pop-reverb-423718.ogg",23653],["fm-freemusic-give-me-a-smile(chosic.com).ogg",2747008],["card_drag.ogg",7213],["card_flips.ogg",8015],["card_swipe.ogg",9018],["ring.ogg",85525]],"media/",false,1200,1200,3,true,true,true,"1.0.0.0",true,false,3,0,40,false,true,1,true,"SQ_Word_Hint-Image",0,[]]}
\ No newline at end of file
diff --git a/SQ_Word_Hint-Image/images/correct-sheet0.png b/SQ_Word_Hint-Image/images/correct-sheet0.png
index acfca94..3570558 100644
Binary files a/SQ_Word_Hint-Image/images/correct-sheet0.png and b/SQ_Word_Hint-Image/images/correct-sheet0.png differ
diff --git a/SQ_Word_Hint-Image/images/khung_timer-sheet0.png b/SQ_Word_Hint-Image/images/khung_timer-sheet0.png
index f7b363a..9c76be2 100644
Binary files a/SQ_Word_Hint-Image/images/khung_timer-sheet0.png and b/SQ_Word_Hint-Image/images/khung_timer-sheet0.png differ
diff --git a/SQ_Word_Hint-Image/images/pauseicon-sheet0.png b/SQ_Word_Hint-Image/images/pauseicon-sheet0.png
index 29c121e..baa30f6 100644
Binary files a/SQ_Word_Hint-Image/images/pauseicon-sheet0.png and b/SQ_Word_Hint-Image/images/pauseicon-sheet0.png differ
diff --git a/SQ_Word_Hint-Image/images/timeup-sheet0.png b/SQ_Word_Hint-Image/images/timeup-sheet0.png
new file mode 100644
index 0000000..dbab313
Binary files /dev/null and b/SQ_Word_Hint-Image/images/timeup-sheet0.png differ
diff --git a/SQ_Word_Hint-Image/images/wrong-sheet0.png b/SQ_Word_Hint-Image/images/wrong-sheet0.png
index b6a9daa..53e2f53 100644
Binary files a/SQ_Word_Hint-Image/images/wrong-sheet0.png and b/SQ_Word_Hint-Image/images/wrong-sheet0.png differ
diff --git a/SQ_Word_Hint-Image/index.html b/SQ_Word_Hint-Image/index.html
index 87fe43e..b483517 100644
--- a/SQ_Word_Hint-Image/index.html
+++ b/SQ_Word_Hint-Image/index.html
@@ -81,7 +81,7 @@
-
+
diff --git a/SQ_Word_Hint-Image/media/ring.ogg b/SQ_Word_Hint-Image/media/ring.ogg
new file mode 100644
index 0000000..e5201f3
Binary files /dev/null and b/SQ_Word_Hint-Image/media/ring.ogg differ
diff --git a/SQ_Word_Hint-Image/offline.js b/SQ_Word_Hint-Image/offline.js
index 50cb91a..c9963fe 100644
--- a/SQ_Word_Hint-Image/offline.js
+++ b/SQ_Word_Hint-Image/offline.js
@@ -1,5 +1,5 @@
{
- "version": 1772438376,
+ "version": 1772540567,
"fileList": [
"data.js",
"c2runtime.js",
@@ -22,6 +22,7 @@
"images/black-sheet0.png",
"images/hint-sheet0.png",
"images/imageframe-sheet0.png",
+ "images/timeup-sheet0.png",
"media/alert-234711.ogg",
"media/bubble-pop-389501.ogg",
"media/button-124476.ogg",
@@ -33,6 +34,7 @@
"media/card_drag.ogg",
"media/card_flips.ogg",
"media/card_swipe.ogg",
+ "media/ring.ogg",
"icon-16.png",
"icon-32.png",
"icon-114.png",
diff --git a/SQ_Word_Hint-Image/sena_sdk.js b/SQ_Word_Hint-Image/sena_sdk.js
index c5cfee7..01cfc95 100644
--- a/SQ_Word_Hint-Image/sena_sdk.js
+++ b/SQ_Word_Hint-Image/sena_sdk.js
@@ -51,6 +51,39 @@ function SenaSDK(gid = "G2510S1T30") {
// 'dev' - Load sample ngay lập tức (development)
this.mode = "preview"; // Default mode
this.role = "student"; // Default role
+
+ // ========== SPEAKING GAME (Vosk STT - client side) ==========
+ // Cấu hình mặc định ưu tiên độ dễ cho học sinh tiểu học
+ this.speakingConfig = {
+ modelPath: "", // Ví dụ: /models/vosk-model-small-en-us-0.15.tar.gz
+ sampleRate: 16000,
+ bufferSize: 4096,
+ useGrammar: true,
+ autoNextWhenCorrect: true,
+ allowNextOnWrong: false,
+ ignoreArticles: true, // Bỏ qua a/an/the khi chấm cho trẻ
+ minWordAccuracy: 0.65, // 1 từ
+ minSentenceAccuracy: 0.72, // cụm từ/câu
+ minConfidence: 0.35, // confidence từ Vosk (nếu có)
+ maxWordDistance: 1, // cho phép sai 1 ký tự ở từ ngắn
+ keepAudioContext: true,
+ };
+
+ this.speakingSession = null;
+ this._speechStartedAt = 0;
+ this._speechTranscript = "";
+ this._speechPartial = "";
+ this._speechConfidence = 0;
+
+ this._voskModel = null;
+ this._voskModelPath = "";
+ this._voskRecognizer = null;
+
+ this._speechAudioContext = null;
+ this._speechStream = null;
+ this._speechSource = null;
+ this._speechProcessor = null;
+ this._speechSink = null;
}
/**
@@ -1240,6 +1273,867 @@ SenaSDK.prototype.end = function (answer, callback) {
return result; // Return full object for debug
};
+/**
+ * Cấu hình speaking game đây nè
+ */
+SenaSDK.prototype.configureSpeaking = function (config) {
+ this.speakingConfig = Object.assign({}, this.speakingConfig, config || {});
+ return this.speakingConfig;
+};
+
+/**
+ * Lấy expected text cho speaking
+ */
+SenaSDK.prototype._resolveSpeakingExpectedText = function (expectedText) {
+ const toText = (value) => {
+ if (value === null || value === undefined) return "";
+ if (Array.isArray(value)) {
+ return value
+ .map((item) => {
+ if (typeof item === "object") return item.text || item.name || "";
+ return String(item);
+ })
+ .filter((v) => v !== "")
+ .join("|");
+ }
+ if (typeof value === "object") {
+ return value.text || value.name || value.answer || "";
+ }
+ return String(value);
+ };
+
+ if (
+ expectedText !== undefined &&
+ expectedText !== null &&
+ expectedText !== ""
+ ) {
+ return toText(expectedText).trim();
+ }
+
+ if (
+ this.currentQuestion &&
+ this.currentQuestion.answer !== undefined &&
+ this.currentQuestion.answer !== null
+ ) {
+ return toText(this.currentQuestion.answer).trim();
+ }
+
+ if (this.correctAnswer !== undefined && this.correctAnswer !== null) {
+ return toText(this.correctAnswer).trim();
+ }
+
+ return "";
+};
+
+/**
+ * Normalize text phục vụ so sánh speaking
+ */
+SenaSDK.prototype._normalizeSpeakingText = function (text, options) {
+ if (!text) return "";
+
+ const cfg = Object.assign({}, this.speakingConfig, options || {});
+ let out = String(text).toLowerCase();
+
+ // Chuẩn hóa ký tự accent để tránh lệch unicode
+ if (typeof out.normalize === "function") {
+ out = out.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
+ }
+
+ out = out.replace(/['’]/g, "");
+ out = out.replace(/[^a-z0-9\s|]/g, " ");
+ out = out.replace(/\s+/g, " ").trim();
+
+ if (cfg.ignoreArticles) {
+ const candidates = out.split("|").map((c) => c.trim());
+ out = candidates
+ .map((candidate) =>
+ candidate
+ .split(" ")
+ .filter((w) => w && w !== "a" && w !== "an" && w !== "the")
+ .join(" "),
+ )
+ .join("|");
+ }
+
+ return out.trim();
+};
+
+SenaSDK.prototype._tokenizeSpeakingText = function (text, options) {
+ const cfg = Object.assign({}, this.speakingConfig, options || {});
+ if (!text) return [];
+
+ const fillers = { uh: true, um: true, ah: true, er: true, hmm: true };
+
+ return String(text)
+ .split(/\s+/)
+ .map((w) => w.trim())
+ .filter((w) => {
+ if (!w) return false;
+ if (fillers[w]) return false;
+ if (cfg.ignoreArticles && (w === "a" || w === "an" || w === "the")) {
+ return false;
+ }
+ return true;
+ });
+};
+
+SenaSDK.prototype._levenshteinDistance = function (a, b) {
+ if (a === b) return 0;
+ if (!a) return b.length;
+ if (!b) return a.length;
+
+ const prev = new Array(b.length + 1);
+ const curr = new Array(b.length + 1);
+
+ for (let j = 0; j <= b.length; j++) prev[j] = j;
+
+ for (let i = 1; i <= a.length; i++) {
+ curr[0] = i;
+ for (let j = 1; j <= b.length; j++) {
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
+ curr[j] = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + cost);
+ }
+ for (let j = 0; j <= b.length; j++) prev[j] = curr[j];
+ }
+
+ return prev[b.length];
+};
+
+SenaSDK.prototype._stringSimilarity = function (a, b) {
+ if (a === b) return 1;
+ if (!a || !b) return 0;
+ const maxLen = Math.max(a.length, b.length);
+ if (maxLen === 0) return 1;
+ const dist = this._levenshteinDistance(a, b);
+ return Math.max(0, 1 - dist / maxLen);
+};
+
+SenaSDK.prototype._isFuzzyWordMatch = function (
+ userWord,
+ expectedWord,
+ options,
+) {
+ if (!userWord || !expectedWord) return false;
+ if (userWord === expectedWord) return true;
+
+ const cfg = Object.assign({}, this.speakingConfig, options || {});
+ const maxDistance =
+ typeof cfg.maxWordDistance === "number" ? cfg.maxWordDistance : 1;
+
+ const dist = this._levenshteinDistance(userWord, expectedWord);
+ const maxLen = Math.max(userWord.length, expectedWord.length);
+
+ // Dễ hơn cho trẻ: từ ngắn cho phép sai ít ký tự
+ if (maxLen <= 4) return dist <= 1;
+ if (dist <= maxDistance) return true;
+
+ return this._stringSimilarity(userWord, expectedWord) >= 0.72;
+};
+
+SenaSDK.prototype._fuzzyLcsMatchCount = function (
+ expectedTokens,
+ userTokens,
+ options,
+) {
+ if (!expectedTokens.length || !userTokens.length) return 0;
+
+ const m = expectedTokens.length;
+ const n = userTokens.length;
+ const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
+
+ for (let i = 1; i <= m; i++) {
+ for (let j = 1; j <= n; j++) {
+ if (
+ this._isFuzzyWordMatch(
+ userTokens[j - 1],
+ expectedTokens[i - 1],
+ options,
+ )
+ ) {
+ dp[i][j] = dp[i - 1][j - 1] + 1;
+ } else {
+ dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
+ }
+ }
+ }
+
+ return dp[m][n];
+};
+
+SenaSDK.prototype._buildSpeakingGrammar = function (
+ expectedText,
+ extraGrammar,
+) {
+ const list = [];
+ const add = (value) => {
+ const normalized = this._normalizeSpeakingText(value, {
+ ignoreArticles: false,
+ });
+ if (normalized) list.push(normalized);
+ };
+
+ String(expectedText || "")
+ .split("|")
+ .map((item) => item.trim())
+ .filter((item) => item)
+ .forEach(add);
+
+ if (Array.isArray(extraGrammar)) {
+ extraGrammar.forEach(add);
+ }
+
+ // unique + giữ số lượng vừa phải để recognizer nhẹ hơn
+ return Array.from(new Set(list)).slice(0, 50);
+};
+
+SenaSDK.prototype._parseVoskPayload = function (payload) {
+ if (payload === null || payload === undefined) {
+ return { text: "", partial: "", conf: 0, words: [] };
+ }
+
+ let data = payload;
+
+ if (
+ typeof data === "object" &&
+ data.result &&
+ typeof data.result === "object" &&
+ !Array.isArray(data.result)
+ ) {
+ data = data.result;
+ }
+
+ if (typeof data === "string") {
+ try {
+ data = JSON.parse(data);
+ } catch (e) {
+ return {
+ text: String(payload).trim(),
+ partial: "",
+ conf: 0,
+ words: [],
+ };
+ }
+ }
+
+ if (!data || typeof data !== "object") {
+ return { text: "", partial: "", conf: 0, words: [] };
+ }
+
+ const text =
+ data.text ||
+ (data.alternatives && data.alternatives[0] && data.alternatives[0].text) ||
+ "";
+ const partial = data.partial || "";
+ const words = Array.isArray(data.result) ? data.result : [];
+
+ let conf = 0;
+ if (typeof data.conf === "number") {
+ conf = data.conf;
+ } else if (words.length > 0) {
+ const confValues = words
+ .map((w) => (typeof w.conf === "number" ? w.conf : null))
+ .filter((v) => v !== null);
+ if (confValues.length > 0) {
+ conf =
+ confValues.reduce((sum, value) => sum + value, 0) / confValues.length;
+ }
+ }
+
+ return {
+ text: String(text || "").trim(),
+ partial: String(partial || "").trim(),
+ conf: conf > 0 ? conf : 0,
+ words: words,
+ };
+};
+
+SenaSDK.prototype._extractTextFromVoskPayload = function (payload, isPartial) {
+ const parsed = this._parseVoskPayload(payload);
+ return isPartial ? parsed.partial : parsed.text;
+};
+
+SenaSDK.prototype._extractConfidenceFromVoskPayload = function (payload) {
+ return this._parseVoskPayload(payload).conf || 0;
+};
+
+SenaSDK.prototype._collectRecognizerFinalResult = function () {
+ if (!this._voskRecognizer) return;
+
+ let payload = null;
+ try {
+ if (typeof this._voskRecognizer.finalResult === "function") {
+ payload = this._voskRecognizer.finalResult();
+ } else if (typeof this._voskRecognizer.result === "function") {
+ payload = this._voskRecognizer.result();
+ }
+ } catch (err) {
+ console.warn("🎮 Sena SDK: Cannot read Vosk final result:", err);
+ return;
+ }
+
+ const finalText = this._extractTextFromVoskPayload(payload, false);
+ const confidence = this._extractConfidenceFromVoskPayload(payload);
+
+ if (finalText) this._speechTranscript = finalText;
+ if (confidence > 0) this._speechConfidence = confidence;
+};
+
+SenaSDK.prototype._setupRecognizerListeners = function (options) {
+ let self = this;
+ if (!self._voskRecognizer) return;
+
+ const bindEvent = function (eventName, isPartial) {
+ const handler = function (payload) {
+ const text = self._extractTextFromVoskPayload(payload, isPartial);
+ if (isPartial) {
+ if (text) self._speechPartial = text;
+ if (typeof options.onPartial === "function")
+ options.onPartial(text, payload);
+ } else {
+ if (text) self._speechTranscript = text;
+ const confidence = self._extractConfidenceFromVoskPayload(payload);
+ if (confidence > 0) self._speechConfidence = confidence;
+ if (typeof options.onResult === "function")
+ options.onResult(text, payload);
+ }
+ };
+
+ if (typeof self._voskRecognizer.on === "function") {
+ self._voskRecognizer.on(eventName, handler);
+ return;
+ }
+ if (typeof self._voskRecognizer.addEventListener === "function") {
+ self._voskRecognizer.addEventListener(eventName, handler);
+ }
+ };
+
+ bindEvent("partialresult", true);
+ bindEvent("partialResult", true);
+ bindEvent("result", false);
+};
+
+SenaSDK.prototype._floatTo16BitPCM = function (floatData) {
+ const out = new Int16Array(floatData.length);
+ for (let i = 0; i < floatData.length; i++) {
+ const sample = Math.max(-1, Math.min(1, floatData[i]));
+ out[i] = sample < 0 ? sample * 0x8000 : sample * 0x7fff;
+ }
+ return out;
+};
+
+SenaSDK.prototype._feedRecognizerAudio = function (
+ floatData,
+ sampleRate,
+ options,
+) {
+ if (!this._voskRecognizer || !floatData || floatData.length === 0) return;
+
+ let endOfSpeech = false;
+
+ try {
+ if (typeof this._voskRecognizer.acceptWaveformFloat === "function") {
+ endOfSpeech = this._voskRecognizer.acceptWaveformFloat(
+ floatData,
+ sampleRate,
+ );
+ } else if (typeof this._voskRecognizer.acceptWaveform === "function") {
+ // Fallback cho API nhận PCM Int16
+ const pcm = this._floatTo16BitPCM(floatData);
+ endOfSpeech = this._voskRecognizer.acceptWaveform(pcm, pcm.length);
+ } else {
+ return;
+ }
+ } catch (err) {
+ console.error("🎮 Sena SDK: Vosk acceptWaveform error:", err);
+ if (typeof options.onError === "function") options.onError(err);
+ return;
+ }
+
+ // Fallback cho API dạng pull (Node-like)
+ try {
+ if (endOfSpeech && typeof this._voskRecognizer.result === "function") {
+ const payload = this._voskRecognizer.result();
+ const text = this._extractTextFromVoskPayload(payload, false);
+ const conf = this._extractConfidenceFromVoskPayload(payload);
+ if (text) this._speechTranscript = text;
+ if (conf > 0) this._speechConfidence = conf;
+ if (typeof options.onResult === "function")
+ options.onResult(text, payload);
+ } else if (
+ !endOfSpeech &&
+ typeof this._voskRecognizer.partialResult === "function"
+ ) {
+ const payload = this._voskRecognizer.partialResult();
+ const partial = this._extractTextFromVoskPayload(payload, true);
+ if (partial) this._speechPartial = partial;
+ if (typeof options.onPartial === "function") {
+ options.onPartial(partial, payload);
+ }
+ }
+ } catch (err) {
+ console.warn("🎮 Sena SDK: Vosk pull result warning:", err);
+ }
+};
+
+SenaSDK.prototype._ensureVoskModel = async function (modelPath) {
+ let self = this;
+ const finalPath = modelPath || self.speakingConfig.modelPath;
+
+ if (!finalPath) {
+ throw new Error(
+ "SenaSDK speakingConfig.modelPath is empty. Please set modelPath before startSpeakingSession().",
+ );
+ }
+
+ if (self._voskModel && self._voskModelPath === finalPath) {
+ return self._voskModel;
+ }
+
+ const createModel =
+ (self.speakingConfig && self.speakingConfig.createModel) ||
+ (window.Vosk && window.Vosk.createModel) ||
+ window.createModel;
+
+ if (typeof createModel !== "function") {
+ throw new Error(
+ "Vosk createModel() not found on window. Include vosk-browser or pass speakingConfig.createModel.",
+ );
+ }
+
+ if (self._voskModel && typeof self._voskModel.terminate === "function") {
+ try {
+ self._voskModel.terminate();
+ } catch (e) {}
+ }
+
+ self._voskModel = await createModel(finalPath);
+ self._voskModelPath = finalPath;
+ return self._voskModel;
+};
+
+SenaSDK.prototype._createVoskRecognizer = function (
+ model,
+ sampleRate,
+ expectedText,
+ options,
+) {
+ let recognizer = null;
+ const useGrammar =
+ options.useGrammar !== undefined
+ ? options.useGrammar
+ : this.speakingConfig.useGrammar;
+ const grammar = useGrammar
+ ? this._buildSpeakingGrammar(expectedText, options.grammar)
+ : [];
+
+ if (typeof model.KaldiRecognizer === "function") {
+ if (grammar.length > 0) {
+ try {
+ recognizer = new model.KaldiRecognizer(sampleRate, grammar);
+ } catch (e1) {
+ try {
+ recognizer = new model.KaldiRecognizer(
+ sampleRate,
+ JSON.stringify(grammar),
+ );
+ } catch (e2) {
+ recognizer = new model.KaldiRecognizer(sampleRate);
+ }
+ }
+ } else {
+ recognizer = new model.KaldiRecognizer(sampleRate);
+ }
+ } else if (typeof model.Recognizer === "function") {
+ recognizer = new model.Recognizer({
+ sampleRate: sampleRate,
+ grammar: grammar.length ? grammar : undefined,
+ });
+ }
+
+ if (!recognizer) {
+ throw new Error("Cannot create recognizer from loaded Vosk model.");
+ }
+
+ if (typeof recognizer.setWords === "function") recognizer.setWords(true);
+ if (typeof recognizer.setPartialWords === "function") {
+ recognizer.setPartialWords(true);
+ }
+ if (typeof recognizer.setMaxAlternatives === "function") {
+ recognizer.setMaxAlternatives(3);
+ }
+
+ return recognizer;
+};
+
+SenaSDK.prototype._cleanupSpeakingAudio = async function (closeContext) {
+ if (this._speechProcessor) {
+ this._speechProcessor.onaudioprocess = null;
+ try {
+ this._speechProcessor.disconnect();
+ } catch (e) {}
+ this._speechProcessor = null;
+ }
+
+ if (this._speechSource) {
+ try {
+ this._speechSource.disconnect();
+ } catch (e) {}
+ this._speechSource = null;
+ }
+
+ if (this._speechSink) {
+ try {
+ this._speechSink.disconnect();
+ } catch (e) {}
+ this._speechSink = null;
+ }
+
+ if (this._speechStream) {
+ try {
+ this._speechStream.getTracks().forEach((track) => track.stop());
+ } catch (e) {}
+ this._speechStream = null;
+ }
+
+ if (this._voskRecognizer) {
+ try {
+ if (typeof this._voskRecognizer.free === "function") {
+ this._voskRecognizer.free();
+ } else if (typeof this._voskRecognizer.terminate === "function") {
+ this._voskRecognizer.terminate();
+ }
+ } catch (e) {}
+ this._voskRecognizer = null;
+ }
+
+ if (
+ closeContext &&
+ this._speechAudioContext &&
+ this._speechAudioContext.state !== "closed"
+ ) {
+ try {
+ await this._speechAudioContext.close();
+ } catch (e) {}
+ this._speechAudioContext = null;
+ }
+};
+
+/**
+ * Bắt đầu 1 session
+ */
+SenaSDK.prototype.startSpeakingSession = async function (
+ expectedText,
+ options,
+) {
+ let self = this;
+
+ if (typeof expectedText === "object" && expectedText !== null) {
+ options = expectedText;
+ expectedText = options.expectedText;
+ }
+
+ options = options || {};
+ const cfg = Object.assign({}, self.speakingConfig, options);
+ const targetText = self._resolveSpeakingExpectedText(expectedText);
+
+ if (!targetText) {
+ throw new Error(
+ "No expected text found. Pass expectedText or set correctAnswer/currentQuestion.answer.",
+ );
+ }
+
+ if (
+ !navigator.mediaDevices ||
+ typeof navigator.mediaDevices.getUserMedia !== "function"
+ ) {
+ throw new Error("getUserMedia is not available in this client.");
+ }
+
+ // Nếu đang nghe session cũ thì dừng trước
+ if (self.speakingSession && self.speakingSession.status === "listening") {
+ await self.stopSpeakingSession({ evaluate: false });
+ }
+
+ self._speechTranscript = "";
+ self._speechPartial = "";
+ self._speechConfidence = 0;
+ self._speechStartedAt = Date.now();
+
+ const AudioContextClass = window.AudioContext || window.webkitAudioContext;
+ if (!AudioContextClass) {
+ throw new Error("Web Audio API is not available in this client.");
+ }
+
+ try {
+ await self._ensureVoskModel(cfg.modelPath);
+
+ if (
+ !self._speechAudioContext ||
+ self._speechAudioContext.state === "closed"
+ ) {
+ self._speechAudioContext = new AudioContextClass({
+ sampleRate: cfg.sampleRate,
+ });
+ }
+
+ if (self._speechAudioContext.state === "suspended") {
+ await self._speechAudioContext.resume();
+ }
+
+ self._speechStream = await navigator.mediaDevices.getUserMedia({
+ audio: {
+ channelCount: 1,
+ echoCancellation: true,
+ noiseSuppression: true,
+ autoGainControl: true,
+ },
+ video: false,
+ });
+
+ const inputSampleRate =
+ self._speechAudioContext.sampleRate || cfg.sampleRate;
+ self._voskRecognizer = self._createVoskRecognizer(
+ self._voskModel,
+ inputSampleRate,
+ targetText,
+ cfg,
+ );
+
+ self._setupRecognizerListeners(cfg);
+
+ self._speechSource = self._speechAudioContext.createMediaStreamSource(
+ self._speechStream,
+ );
+ self._speechProcessor = self._speechAudioContext.createScriptProcessor(
+ cfg.bufferSize,
+ 1,
+ 1,
+ );
+ self._speechSink = self._speechAudioContext.createGain();
+ self._speechSink.gain.value = 0;
+
+ self._speechSource.connect(self._speechProcessor);
+ self._speechProcessor.connect(self._speechSink);
+ self._speechSink.connect(self._speechAudioContext.destination);
+
+ self._speechProcessor.onaudioprocess = function (event) {
+ const floatData = event.inputBuffer.getChannelData(0);
+ self._feedRecognizerAudio(floatData, inputSampleRate, cfg);
+ };
+
+ self.speakingSession = {
+ id: "SPK-" + Date.now() + "-" + Math.floor(Math.random() * 10000),
+ status: "listening",
+ expectedText: targetText,
+ startedAt: self._speechStartedAt,
+ questionId: self.currentQuestion ? self.currentQuestion.id : null,
+ };
+
+ return {
+ sessionId: self.speakingSession.id,
+ status: self.speakingSession.status,
+ expectedText: targetText,
+ sampleRate: inputSampleRate,
+ };
+ } catch (err) {
+ await self._cleanupSpeakingAudio(true);
+ self.speakingSession = null;
+ throw err;
+ }
+};
+
+/**
+ * Dừng session speaking hiện tại. Mặc định sẽ auto chấm đáp án và trả report.
+ */
+SenaSDK.prototype.stopSpeakingSession = async function (options, callback) {
+ let self = this;
+
+ if (typeof options === "function") {
+ callback = options;
+ options = {};
+ }
+ options = options || {};
+
+ const cfg = Object.assign({}, self.speakingConfig, options);
+ const active = self.speakingSession;
+
+ if (!active) {
+ const empty = {
+ type: "speaking",
+ isCorrect: false,
+ result: 0,
+ reason: "no_active_session",
+ next: {
+ canNext: false,
+ hasNext: self.level < self.totalQuestions - 1,
+ advanced: false,
+ current: self.getCurrentNumber(),
+ total: self.getTotalQuestions(),
+ },
+ };
+ if (typeof callback === "function") callback(empty);
+ return empty;
+ }
+
+ self._collectRecognizerFinalResult();
+ const transcript = self._speechTranscript || self._speechPartial || "";
+
+ const shouldCloseContext =
+ options.closeAudioContext === true || cfg.keepAudioContext === false;
+ await self._cleanupSpeakingAudio(shouldCloseContext);
+
+ active.status = "stopped";
+ active.endedAt = Date.now();
+ active.duration = Math.max(0, (active.endedAt - active.startedAt) / 1000);
+
+ // Không chấm, chỉ trả transcript
+ if (options.evaluate === false) {
+ const raw = {
+ type: "speaking",
+ sessionId: active.id,
+ status: "stopped",
+ transcript: transcript,
+ confidence: self._speechConfidence || 0,
+ duration: active.duration,
+ expectedText: active.expectedText,
+ };
+ self.speakingSession = active;
+ if (typeof callback === "function") callback(raw);
+ return raw;
+ }
+
+ const report = self.checkSpeakingAnswer(
+ transcript,
+ options.expectedText || active.expectedText,
+ callback,
+ options,
+ );
+
+ report.sessionId = active.id;
+ report.duration = active.duration;
+ self.speakingSession = active;
+ return report;
+};
+/**
+ * Chấm speaking + trả payload để game hiển thị đúng/sai và xử lý next màn
+ */
+SenaSDK.prototype.checkSpeakingAnswer = function (
+ recognizedText,
+ expectedText,
+ callback,
+ options,
+) {
+ let self = this;
+
+ if (typeof callback === "object" && !options) {
+ options = callback;
+ callback = null;
+ }
+ options = options || {};
+
+ const cfg = Object.assign({}, self.speakingConfig, options);
+
+ // --- LOGIC RECONSTRUCTED FROM A ---
+ const transcript = String(recognizedText || "").trim();
+ const expected = self._resolveSpeakingExpectedText(expectedText);
+
+ const normTrans = self._normalizeSpeakingText(transcript, cfg);
+ const normExp = self._normalizeSpeakingText(expected, cfg);
+
+ const accuracy = self._stringSimilarity(normTrans, normExp);
+ const threshold = cfg.minSentenceAccuracy || 0.72;
+ const isCorrect = accuracy >= threshold;
+
+ const evalResult = {
+ isCorrect: isCorrect,
+ transcript: transcript,
+ expectedText: expected,
+ normalizedTranscript: normTrans,
+ normalizedExpected: normExp,
+ accuracy: accuracy,
+ score: Math.round(accuracy * 100),
+ confidence: self._speechConfidence || 0,
+ matchedWords: 0,
+ totalWords: 0,
+ threshold: threshold,
+ feedback: isCorrect ? "Correct" : "Incorrect",
+ };
+ // ----------------------------------
+
+ const answeredQuestionId =
+ self.currentQuestion && self.currentQuestion.id !== undefined
+ ? self.currentQuestion.id
+ : null;
+
+ const total = self.getTotalQuestions();
+ const hasNextBeforeAdvance = self.level < total - 1;
+ const canNext = evalResult.isCorrect || cfg.allowNextOnWrong === true;
+
+ let advanced = false;
+ if (evalResult.isCorrect && cfg.autoNextWhenCorrect && hasNextBeforeAdvance) {
+ advanced = self.nextQuestion();
+ }
+
+ const report = {
+ type: "speaking",
+ sessionId: self.speakingSession ? self.speakingSession.id : null,
+ isCorrect: evalResult.isCorrect,
+ result: evalResult.isCorrect ? 1 : 0,
+ transcript: evalResult.transcript,
+ expectedText: evalResult.expectedText,
+ normalizedTranscript: evalResult.normalizedTranscript,
+ normalizedExpected: evalResult.normalizedExpected,
+ accuracy: evalResult.accuracy,
+ score: evalResult.score,
+ confidence: evalResult.confidence,
+ matchedWords: evalResult.matchedWords,
+ totalWords: evalResult.totalWords,
+ threshold: evalResult.threshold,
+ feedback: evalResult.feedback,
+ next: {
+ canNext: canNext,
+ hasNext: self.level < total - 1,
+ advanced: advanced,
+ current: self.getCurrentNumber(),
+ total: total,
+ },
+ timestamp: Date.now(),
+ };
+
+ // Đồng bộ kết quả vào userResults nếu đang ở multi-question mode
+ if (answeredQuestionId !== null) {
+ const existingIndex = self.userResults.findIndex(
+ (r) => r.id === answeredQuestionId,
+ );
+ const resultValue = report.result;
+ if (existingIndex >= 0) {
+ self.userResults[existingIndex].result = resultValue;
+ } else {
+ self.userResults.push({ id: answeredQuestionId, result: resultValue });
+ }
+ }
+
+ // Push để game/parent bắt sự kiện hiển thị kết quả tại client
+ try {
+ window.parent.postMessage({ type: "SPEAKING_RESULT", data: report }, "*");
+ } catch (e) {}
+
+ if (typeof callback === "function") callback(report);
+ return report;
+};
+
+SenaSDK.prototype.getSpeakingSessionState = function () {
+ if (!this.speakingSession) return null;
+ return {
+ id: this.speakingSession.id,
+ status: this.speakingSession.status,
+ expectedText: this.speakingSession.expectedText,
+ transcript: this._speechTranscript || "",
+ partial: this._speechPartial || "",
+ confidence: this._speechConfidence || 0,
+ };
+};
+
SenaSDK.prototype.playVoice = function (type) {
let self = this;
// type: 'question', 'optionA', 'optionB', ...
diff --git a/source/SQ_Word_Hint-Image.capx b/source/SQ_Word_Hint-Image.capx
index a67682c..e8c9066 100644
Binary files a/source/SQ_Word_Hint-Image.capx and b/source/SQ_Word_Hint-Image.capx differ
diff --git a/source/SQ_Word_Hint-Image.capx.autosave b/source/SQ_Word_Hint-Image.capx.autosave
new file mode 100644
index 0000000..3d5bcf2
Binary files /dev/null and b/source/SQ_Word_Hint-Image.capx.autosave differ
diff --git a/source/SQ_Word_Hint-Image.capx.backup1 b/source/SQ_Word_Hint-Image.capx.backup1
new file mode 100644
index 0000000..b170dca
Binary files /dev/null and b/source/SQ_Word_Hint-Image.capx.backup1 differ