{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/PokerApp/Poker.CardModel.ts","./src/PokerApp/Poker.DeckModel.ts","./src/PokerApp/Poker.HandComponent.ts","./src/PokerApp/Poker.HandView.html","./src/PokerApp/Poker.OptionDialogue.html","./src/PokerApp/Poker.HandModel.ts","./src/PokerApp/Poker.MainComponent.ts","./src/PokerApp/Poker.MainView.html","./src/PokerApp/Poker.MainModule.ts","./src/PokerApp/Poker.MainRouting.ts","./src/PokerApp/Poker.OptionModel.ts","./src/PokerApp/Poker.SquareModel.ts","./src/PokerApp/hand-guard.guard.ts","./src/PokerApp/material-module.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;;ACXA;AAAA;AAAA,IAAK,IAMJ;AAND,WAAK,IAAI;IACL,uBAAe;IACf,uBAAe;IACf,2BAAmB;IACnB,qBAAa;IACb,kBAAU;AACd,CAAC,EANI,IAAI,KAAJ,IAAI,QAMR;AAEM,MAAM,SAAS;IAGlB,YAAa,MAAc;QAFpB,WAAM,GAAW,CAAC,CAAC;QAGtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjF,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;QAEI;IACJ,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAEO,WAAW,CAAC,MAAc;QAC9B,IAAI,MAAM,GAAG,CAAC;YACV,OAAO,IAAI,CAAC,KAAK,CAAC;aACjB,IAAI,MAAM,GAAG,EAAE;YAChB,OAAO,IAAI,CAAC,IAAI,CAAC;aAChB,IAAI,MAAM,GAAG,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC;aACnB,IAAI,MAAM,GAAG,EAAE;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC;aACjB,IAAI,MAAM,GAAG,EAAE;YAChB,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEO,WAAW,CAAC,MAAc;QAC9B,IAAI,MAAM,GAAG,CAAC;YACV,OAAO,EAAE,CAAC;aACT,IAAI,MAAM,GAAG,EAAE;YAChB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,GAAG,EAAE;YAChB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,GAAG,EAAE;YAChB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,GAAG,EAAE;YAChB,OAAO,GAAG,CAAC;QACf,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,MAAc;QAChC,OAAO,MAAM,GAAG,EAAE,EAClB;YACI,MAAM,GAAG,MAAM,GAAE,EAAE,CAAC;SACvB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,aAAa,CAAC,MAAc;QAChC,OAAO,MAAM,GAAG,EAAE,EAClB;YACI,MAAM,GAAG,MAAM,GAAE,EAAE,CAAC;SACvB;QACD,IAAI,MAAM,KAAK,CAAC;YACZ,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,EAAE;YAClB,OAAO,IAAI,CAAC;aACX,IAAI,MAAM,KAAK,EAAE;YAClB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,EAAE;YAClB,OAAO,GAAG,CAAC;aACV,IAAI,MAAM,KAAK,EAAE;YAClB,OAAO,GAAG,CAAC;QAEX,OAAO,EAAE,CAAC;IAClB,CAAC;IAEO,YAAY,CAAC,MAAc;QAC/B,IAAI,QAAQ,GAAG,OAAO,CAAC;QACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE;YACxB,QAAQ,GAAG,OAAO,CAAC;SACtB;aACI,IAAI,QAAQ,KAAK,IAAI,CAAC,OAAO,EAAE;YAChC,QAAQ,GAAG,UAAU,CAAC;SACzB;aACI,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;YAC9B,QAAQ,GAAG,QAAQ,CAAC;SACvB;aACI,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;YAC9B,QAAQ,GAAG,QAAQ,CAAC;SACvB;QAED,OAAO,MAAM,GAAG,EAAE,EAClB;YACI,MAAM,GAAG,MAAM,GAAE,EAAE,CAAC;SACvB;QACD,IAAI,MAAM,KAAK,CAAC;YACZ,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,CAAC;YACjB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,CAAC;YACjB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,CAAC;YACjB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,CAAC;YACjB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,CAAC;YACjB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,CAAC;YACjB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,CAAC;YACjB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,CAAC;YACjB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,EAAE;YAClB,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;aAC1B,IAAI,MAAM,KAAK,EAAE;YAClB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,EAAE;YAClB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;aACzB,IAAI,MAAM,KAAK,EAAE;YAClB,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;QAE9B,OAAO,QAAQ,CAAC;IACpB,CAAC;CAqEJ;;;;;;;;;;;;;AChOD;AAAA;AAAO,MAAM,SAAS;IAMlB;QAJQ,SAAI,GAAG,IAAI,KAAK,CAAS,EAAE,CAAC,CAAC;QAC7B,gBAAW,GAAG,CAAC,CAAC;QAChB,iBAAY,GAAG,CAAC,CAAC;QAGrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACpB;IACL,CAAC;IAED,IAAW,aAAa;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YACjD,OAAO,CAAC,CAAC;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9C,OAAO,WAAW,CAAC;SACtB;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9C,OAAO,WAAW,CAAC;SACtB;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,UAAU;QACN,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY;QAER,IAAI,KAAK,GAAG,IAAI,KAAK,CAAS,EAAE,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;SAC5B;QAED,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;YAClC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;YAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE;gBAClC,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE;oBACxB,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvB,QAAQ,GAAG,IAAI,CAAC;iBACnB;aACJ;YACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;YAC/B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SACxB;QAED,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAC3B,CAAC;CACJ;;;;;;;;;;;;;ACpED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyE;AAC3B;AAIwB;;;;;;;;;;ICKtD,sEACI;IAAA,0EACJ;IADoE,wRAAS,6BAAsB,IAAC;IAAhG,4DACJ;IAAA,4DAAM;;;IADG,0DAAuB;IAAvB,uFAAuB;;;;IAG5B,sEACI;IAAA,0EACJ;IAD+D,ySAAS,8BAAsB,IAAC;IAA3F,4DACJ;IAAA,4DAAM;;;IADG,0DAAuB;IAAvB,uFAAuB;;;;IAG5B,0EACJ;IADgE,iTAAS,8BAAsB,IAAC;IAA5F,4DACJ;;;IADS,wFAAuB;;;IAJhC,uHACI;IAEJ,oNACI;;;;IAJC,gGAAgD;;;IAUzD,sEACI;IAAA,qEACJ;IAAA,4DAAM;;;IAD2B,0DAA2D;IAA3D,0MAA2D;IAAnF,uFAAuB;;;IAG5B,sEACI;IAAA,qEACJ;IAAA,4DAAM;;;IADG,0DAAuB;IAAvB,uFAAuB;;;;IAiBpC,sEACI;IAAA,0EACJ;IADoE,oYAAS,uEAAuD,IAAC;IAAjI,4DACJ;IAAA,4DAAM;;;IADG,0DAAuB;IAAvB,wFAAuB;;;IAG5B,sEACI;IAAA,qEACJ;IAAA,4DAAM;;;;IAD2B,0DAA4C;IAA5C,wLAA4C;IAApE,wFAAuB;;;IAG5B,sEACA;IAAA,qEACA;IAAA,4DAAM;;;;IADuB,0DAAsD;IAAtD,kMAAsD;IAA9E,wFAAuB;;;IALhC,oIACI;IAEJ,iOACI;;;;IAJC,oFAAuC;;;IALpD,yEACI;IAAA,sHACI;IAEJ,mNACI;IASR,4DAAM;;;;IAbG,0DAA2C;IAA3C,wFAA2C;;;IAFxD,yEACI;IAAA,iHACI;IAcR,4DAAM;;;IAf6B,0DAAsC;IAAtC,wFAAsC;;ADhC1E,MAAM,aAAa;IAMtB,YAAmB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;QAJxC,cAAS,GAAG,IAAI,0DAAS,EAAE,CAAC;IAIe,CAAC;IAExC,QAAQ;QACN,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;QAC/C,IAAI,OAAO,GAAG,EAAE;YAAE,OAAO,GAAG,MAAM,CAAC;QAEnC,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,OAAO;SAChB,CAAC;IACJ,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,KAAK,CAAC;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;IACxE,CAAC;IAED,eAAe;IACf,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;YAClE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC1B;aACI;YACH,IAAI,OAAO,CAAC,iCAAiC,CAAC,EAAE;gBAC9C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAC1B;YAAA,CAAC;SACH;IACH,CAAC;IAED,gBAAgB;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACnD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;;0EA9CQ,aAAa;6FAAb,aAAa;QCZ1B,yEACI;QAAA,yEACI;QAAA,yEAEI;QAAA,yEACI;QAAA,yEACJ;QADiE,kIAAS,aAAS,IAAC;QAAhF,4DACJ;QAAA,4DAAM;QAEN,yEACI;QAAA,yGACI;QAEJ,qMACI;QAOR,4DAAM;QAEN,yEACI;QAAA,2GACI;QAEJ,uMACI;QAIR,4DAAM;QAEN,0EACI;QAAA,sEAAI;QAAA,wDAAuB;QAAA,4DAAK;QACpC,4DAAM;QAEN,0EACI;QAAA,0EACJ;QADqE,mIAAS,sBAAkB,IAAC;QAA7F,4DACJ;QAAA,4DAAM;QAEV,4DAAM;QAEN,4GACI;QAgBR,4DAAM;QACV,4DAAM;QACN,2EACA;;;;QA1DqB,0DAAuB;QAAvB,oFAAuB;QAIvB,0DAAiD;QAAjD,8FAAiD;QAcjD,0DAAgF;QAAhF,8HAAgF;QAWjF,0DAAuB;QAAvB,wFAAuB;QAItB,0DAAuB;QAAvB,oFAAuB;QAKP,0DAA0C;QAA1C,2FAA0C;;6FD/BlE,aAAa;cALzB,uDAAS;eAAC;gBACP,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,uBAAuB;aACvC;;AAoDD;;GAEG;AAMI,MAAM,gBAAgB;IAC3B,YAA4C,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;;gFADzD,gBAAgB,kEACP,wEAAe;gGADxB,gBAAgB;QEvE7B,wEAAqB;QAAA,uEAAY;QAAA,4DAAK;QACtC,gEACA;QAAA,yEACE;QAAA,sEAAK;QAAA,kFAA+C;QAAjC,uMAAgC;QAAC,oEAAS;QAAA,4DAAe;QAAA,4DAAM;QACpF,4DAAM;QACN,gEAAK;QAAA,gEACL;QAAA,sEACE;QAAA,6EAA2C;QAAA,iEAAK;QAAA,4DAAS;QAC3D,4DAAM;;QALe,0DAAgC;QAAhC,2FAAgC;;6FFoExC,gBAAgB;cAJ5B,uDAAS;eAAC;gBACT,WAAW,EAAE,2BAA2B;aACzC;;sBAGc,oDAAM;uBAAC,wEAAe;;;;;;;;;;;;;;AGxErC;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACI;AACJ;AACI;AAGlD,MAAM,OAAO;IAAb;QACI,YAAO,GAAkB,CAAC,IAAI,8DAAW,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,IAAI,8DAAW,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC9C,IAAI,8DAAW,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,IAAI,8DAAW,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;YAC9C,IAAI,8DAAW,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAE,IAAI,8DAAW,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;CAAA;AAEM,MAAM,SAAS;IAgBlB;QAdO,aAAQ,GAAc,CAAC,IAAI,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE;YACpD,IAAI,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;QAC3D,cAAS,GAAG,IAAI,0DAAS,EAAE,CAAC;QAE5B,eAAU,GAAG,KAAK,CAAC;QACnB,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAe,IAAI,0DAAS,CAAC,CAAC,CAAC,CAAC;QAC3C,mBAAc,GAAG,KAAK,CAAC;QACvB,kBAAa,GAAG,KAAK,CAAC;QACtB,cAAS,GAAG,CAAC,CAAC;QACd,gBAAW,GAAG,CAAC,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QACf,YAAO,GAAG,IAAI,8DAAW,EAAE,CAAC;IAGnC,CAAC;IAED,IAAW,SAAS;QAChB,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QAC9C,OAAO,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,8DAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1D;SACJ;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAEd,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAAA,CAAC;IAC3D,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,8DAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1D;SACJ;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAEM,aAAa,CAAC,GAAW,EAAE,GAAW;QACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC3E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE;YACzB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;SAC/B;aACI;YACD,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;gBAC9B,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;YACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;IACL,CAAC;IAEM,QAAQ;QACX,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;SAClC;aACI;SACJ;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,UAAU;QACb,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACpB,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,UAAU,EAAE;wBAC7D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;wBACjD,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;4BACrB,YAAY,GAAG,IAAI,CAAC;wBACxB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;4BACrB,YAAY,GAAG,IAAI,CAAC;qBAC3B;iBACJ;aACJ;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,EAAE,CAAC;YAEnB,IAAI,YAAY,EAAE;gBACd,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;YAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;SAC1D;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACnC,CAAC;IAEO,cAAc;QAElB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACnD;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACnC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACnD;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAEM,aAAa,CAAC,KAAmB,EAAE,MAAmB;QACzD,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACtC,IAAI,YAAY,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACjD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,SAAS,GAAG,UAAU,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,IAAI,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY;gBAAE,OAAO,GAAG,KAAK,CAAC;YACzD,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;gBAAE,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACnE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,EAAE;gBAC3B,MAAM,GAAG,IAAI,CAAC;aACjB;iBAAM;gBACH,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;aACpE;SAEJ;QAED,IAAI,MAAM,EAAE;YACR,IAAI,QAAQ,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE;gBAAE,UAAU,GAAG,IAAI,CAAC;YACzD,IAAI,QAAQ,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC;gBAAE,UAAU,GAAG,IAAI,CAAC;SAC1D;aACI;YACD,IAAI,QAAQ,GAAG,OAAO,KAAK,CAAC;gBAAE,UAAU,GAAG,IAAI,CAAC;SACnD;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzB,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO,GAAG,IAAI,CAAC;aAClB;YACD,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO,GAAG,IAAI,CAAC;aAClB;YACD,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACvB,IAAI,MAAM;oBAAE,OAAO,GAAG,IAAI,CAAC;;oBACtB,MAAM,GAAG,IAAI,CAAC;aACtB;SACJ;QAED,IAAI,OAAO,EAAE;YACT,KAAK,GAAG,EAAE,CAAC;YACX,SAAS,GAAG,aAAa,CAAC;SAC7B;aACI,IAAI,OAAO,EAAE;YACd,KAAK,GAAG,CAAC,CAAC;YACV,SAAS,GAAG,QAAQ,CAAC;SACxB;aACI,IAAI,MAAM,IAAI,OAAO,EAAE;YACxB,KAAK,GAAG,EAAE,CAAC;YACX,SAAS,GAAG,YAAY,CAAC;SAC5B;aACI,IAAI,OAAO,EAAE;YACd,KAAK,GAAG,EAAE,CAAC;YACX,SAAS,GAAG,aAAa,CAAC;SAC7B;aACI,IAAI,MAAM,EAAE;YACb,KAAK,GAAG,CAAC,CAAC;YACV,SAAS,GAAG,MAAM,CAAC;SACtB;aACI,IAAI,UAAU,EAAE;YACjB,IAAI,OAAO,EAAE;gBACT,IAAI,QAAQ,KAAK,EAAE,IAAI,MAAM,EAAE;oBAC3B,KAAK,GAAG,GAAG,CAAC;oBACZ,SAAS,GAAG,aAAa,CAAC;iBAC7B;qBACI;oBACD,KAAK,GAAG,EAAE,CAAC;oBACX,SAAS,GAAG,gBAAgB,CAAC;iBAChC;aACJ;iBACI;gBACD,KAAK,GAAG,EAAE,CAAC;gBACX,SAAS,GAAG,UAAU,CAAC;aAC1B;SACJ;aACI,IAAI,OAAO,EAAE;YACd,KAAK,GAAG,EAAE,CAAC;YACX,SAAS,GAAG,OAAO,CAAC;SACvB;QACD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACzB,CAAC;IAEO,iBAAiB;QAErB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE;YACvC,OAAO;SACV;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACzB,OAAO;SACV;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;oBACpC,IAAI,QAAQ,GAAG,CAAC,EAAE;wBAAE,QAAQ,GAAG,CAAC,CAAC;qBAAE;oBACnC,IAAI,MAAM,GAAG,CAAC,EAAE;wBAAE,MAAM,GAAG,CAAC,CAAC;qBAAE;oBAC/B,IAAI,QAAQ,GAAG,CAAC,EAAE;wBAAE,QAAQ,GAAG,CAAC,CAAC;qBAAE;oBACnC,IAAI,MAAM,GAAG,CAAC,EAAE;wBAAE,MAAM,GAAG,CAAC,CAAC;qBAAE;iBAClC;aACJ;SACJ;QAED,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjD,IAAI,MAAM,KAAK,CAAC,EAAE,EAAG,4BAA4B;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM;0BAClC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;iBAC5D;gBACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;aACpD;SACJ;aACI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAG,6BAA6B;YAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM;0BAClC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;iBAC5D;gBACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;aACpD;SACJ;QAED,IAAI,MAAM,KAAK,CAAC,EAAE,EAAG,0BAA0B;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM;0BAClC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;iBAC5D;gBACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;aACpD;SACJ;aACI,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAG,4BAA4B;YAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM;0BAClC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC;iBAC5D;gBACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;aACpD;SACJ;IAEL,CAAC;IAEM,mBAAmB;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM;oBAClC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;qBAC/C,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;qBAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;qBAC/C,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;qBAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;qBAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU;oBAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;;oBAE/C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC5E;SACJ;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAG,uBAAuB;YAC/D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;SAClD;IACL,CAAC;IAEO,eAAe,CAAC,GAAY,EAAE,GAAY;QAE9C,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,GAAG,GAAG,CAAC,EAAE;YACT,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;gBAC1C,MAAM,GAAG,IAAI,CAAC;aACjB;SACJ;QACD,IAAI,GAAG,GAAG,CAAC,EAAE;YACT,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;gBAC1C,MAAM,GAAG,IAAI,CAAC;aACjB;SACJ;QAED,IAAI,GAAG,GAAG,CAAC,EAAE;YACT,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBAC1C,MAAM,GAAG,IAAI,CAAC;aACjB;SACJ;QACD,IAAI,GAAG,GAAG,CAAC,EAAE;YACT,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,MAAM,EAAE;gBAC1C,MAAM,GAAG,IAAI,CAAC;aACjB;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CAEJ;;;;;;;;;;;;;AC9XD;AAAA;AAAA;AAAA;AAAkD;;;AAO3C,MAAM,aAAa;IAGxB;QADA,UAAK,GAAG,YAAY,CAAC;IACL,CAAC;IAEjB,QAAQ;IACR,CAAC;;0EANU,aAAa;6FAAb,aAAa;QCP1B,qEAAI;QAAA,uDAAS;QAAA,4DAAK;QAElB,sEACI;QAAA,uEAAgD;QAAA,qEAAU;QAAA,4DAAI;QAAA,gEAC9D;QAAA,2EACgB;QACpB,4DAAM;QAAA,gEAAK;QAAA,gEACX;QAAA,sEAAK;QAAA,uEAAW;QAAA,wEAA2B;QAAA,wEAAY;QAAA,4DAAI;QAAA,4DAAM;;QAP7D,0DAAS;QAAT,0EAAS;;6FDOA,aAAa;cALzB,uDAAS;eAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,WAAW,EAAE,uBAAuB;aACrC;;;;;;;;;;;;;;AELD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACjB;AACG;AACE;AACK;AACnD,0DAA0D;AAC1D,0DAA0D;AAC1D,8DAA8D;AAC9D,gBAAgB;AAEsC;AAEL;AACK;AACA;AACC;AACwB;;;AAiBxE,MAAM,UAAU;;yFAAV,UAAU,cAFT,kEAAa;8IAEd,UAAU,mBAHV,CAAC,gEAAc,CAAC,YARlB;YACP,4DAAY,CAAC,OAAO,CAAC,6DAAU,CAAC;YAChC,uEAAa,EAAE,0DAAW,EAAE,oEAAS;YACrC,6FAAuB;YACvB,kEAAiB;SAGlB;mIAIU,UAAU,mBAbnB,kEAAa,2EAIb,uEAAa,EAAE,0DAAW,EAAE,oEAAS;QACrC,6FAAuB;QACvB,kEAAiB;6FAOR,UAAU;cAftB,sDAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,kEAAa;iBACd;gBACD,OAAO,EAAE;oBACP,4DAAY,CAAC,OAAO,CAAC,6DAAU,CAAC;oBAChC,uEAAa,EAAE,0DAAW,EAAE,oEAAS;oBACrC,6FAAuB;oBACvB,kEAAiB;iBAGlB;gBACD,SAAS,EAAE,CAAC,gEAAc,CAAC;gBAC3B,SAAS,EAAE,CAAC,kEAAa,CAAC;aAC3B;;;;;;;;;;;;;;AC5BD;AAAA;AAAO,MAAM,UAAU,GAAG;IACxB;QACE,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,GAAG,EAAE,CAAC,iLAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;KAC7E;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,YAAY,EAAE,GAAG,EAAE,CAAC,iLAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;KAC7E;CAEF,CAAC;;;;;;;;;;;;;ACZF;AAAA;AAAO,MAAM,WAAW;IAAxB;QAEI,eAAU,GAAG,KAAK,CAAC;QACnB,gBAAW,GAAG,IAAI,CAAC;IACvB,CAAC;CAAA;;;;;;;;;;;;;ACND;AAAA;AAAA;AAA8C;AAEvC,MAAM,WAAW;IASpB,YAAY,GAAW,EAAE,GAAW,EAAE,MAAc;QANpD,YAAO,GAAW,CAAC,CAAC;QACpB,YAAO,GAAW,CAAC,CAAC;QACpB,UAAK,GAAW,CAAC,CAAC;QAElB,gBAAW,GAAG,KAAK,CAAC;QAGhB,IAAI,CAAC,SAAS,GAAG,IAAI,0DAAS,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACtB,CAAC;IAEF,IAAW,MAAM;QACb,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAW,OAAO;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,IAAW,SAAS;QAEhB,IAAI,QAAQ,GAAG,OAAO,CAAC;QAEvB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;YAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAExE,OAAO,QAAQ,CAAC;IACpB,CAAC;CAOJ;;;;;;;;;;;;;ACtCD;AAAA;AAAA;AAA2C;;AAMpC,MAAM,cAAc;IACzB,aAAa,CACX,SAAwB,EACxB,YAAoC,EACpC,YAAiC,EACjC,SAA+B;QAC/B,IAAI,SAAS,CAAC,aAAa,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,OAAO,OAAO,CAAC,yCAAyC,CAAC,CAAC;IAC5D,CAAC;;4EAVU,cAAc;iGAAd,cAAc,WAAd,cAAc;6FAAd,cAAc;cAD1B,wDAAU;;;;;;;;;;;;;;ACLX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;AACvC,+CAA+C;AAC/C,yDAAyD;AACzD,wDAAwD;AACxD,mDAAmD;AACnD,yDAAyD;AACzD,wDAAwD;AACxD,oDAAoD;AACpD,kDAAkD;AAClD,uEAAuE;AACvE,yDAAyD;AACzD,sEAAsE;AACb;AACzD,wEAAwE;AACxE,uDAAuD;AACM;AAC7D,yDAAyD;AACzD,6DAA6D;AAC7D,mEAAmE;AACV;;AACzD,6DAA6D;AAC7D,iEAAiE;AACjE,gEAAgE;AAChE,uDAAuD;AACvD,yDAAyD;AACzD,uDAAuD;AACvD,uDAAuD;AACvD,8EAA8E;AAC9E,iEAAiE;AACjE,sEAAsE;AACtE,8EAA8E;AAC9E,yDAAyD;AACzD,2DAA2D;AAC3D,6DAA6D;AAC7D,2DAA2D;AAC3D,sEAAsE;AACtE,gEAAgE;AAChE,uDAAuD;AACvD,yDAAyD;AACzD,uDAAuD;AACvD,6DAA6D;AAC7D,6DAA6D;AAC7D,uDAAuD;AACvD,qDAAqD;AAkD9C,MAAM,iBAAiB;;gGAAjB,iBAAiB;4JAAjB,iBAAiB;QA9C5B,eAAe;QACf,oBAAoB;QACpB,qBAAqB;QACrB,mBAAmB;QACnB,kBAAkB;QAClB,mBAAmB;QACnB,0BAA0B;QAC1B,mBAAmB;QACnB,yBAAyB;QACvB,wEAAe;QACjB,0BAA0B;QAC1B,kBAAkB;QAChB,4EAAiB;QACnB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACtB,wEAAe;mIA8BN,iBAAiB;QA9C5B,eAAe;QACf,oBAAoB;QACpB,qBAAqB;QACrB,mBAAmB;QACnB,kBAAkB;QAClB,mBAAmB;QACnB,0BAA0B;QAC1B,mBAAmB;QACnB,yBAAyB;QACvB,wEAAe;QACjB,0BAA0B;QAC1B,kBAAkB;QAChB,4EAAiB;QACnB,mBAAmB;QACnB,qBAAqB;QACrB,wBAAwB;QACtB,wEAAe;6FA8BN,iBAAiB;cAhD7B,sDAAQ;eAAC;gBACR,OAAO,EAAE;oBACT,eAAe;oBACf,oBAAoB;oBACpB,qBAAqB;oBACrB,mBAAmB;oBACnB,kBAAkB;oBAClB,mBAAmB;oBACnB,0BAA0B;oBAC1B,mBAAmB;oBACnB,yBAAyB;oBACvB,wEAAe;oBACjB,0BAA0B;oBAC1B,kBAAkB;oBAChB,4EAAiB;oBACnB,mBAAmB;oBACnB,qBAAqB;oBACrB,wBAAwB;oBACtB,wEAAe;iBA4BhB;aACF;;;;;;;;;;;;;;AC5FD;AAAA;AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;ACfnE;AAAA;AAAA;AAAA;AAAA;AAA+C;AAIU;;;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,2EAAwB,gBAAgB,CAAC,sEAAW;KACjD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","\r\nenum Suit {\r\n Spade = \"Spade\",\r\n Heart = \"Heart\",\r\n Diamond = \"Diamond\",\r\n Club = \"Club\",\r\n Blank = \"\",\r\n}\r\n\r\nexport class CardModel {\r\n public cardId: number = 0;\r\n\r\n constructor (cardId: number) {\r\n this.cardId = cardId;\r\n }\r\n \r\n public get cardText() : string {\r\n return this.getSuitCode(this.cardId) + \" \" + this.getNumberCode(this.cardId);\r\n }\r\n\r\n public get imageName() : string {\r\n return this.getImageName(this.cardId);\r\n }\r\n\r\n /* public get cardSuit() {\r\n return this.getCardSuit(this.cardId);\r\n } */\r\n public get cardNumberCode() {\r\n return this.getNumberCode(this.cardId);\r\n }\r\n public get cardSuitCode() {\r\n return this.getSuitCode(this.cardId);\r\n }\r\n public get cardNumber() {\r\n return this.getCardNumber(this.cardId);\r\n }\r\n\r\n private getCardSuit(cardId: number) {\r\n if (cardId < 1)\r\n return Suit.Blank;\r\n else if (cardId < 14)\r\n return Suit.Club;\r\n else if (cardId < 27)\r\n return Suit.Diamond;\r\n else if (cardId < 40)\r\n return Suit.Heart;\r\n else if (cardId < 53)\r\n return Suit.Spade;\r\n return Suit.Blank;\r\n }\r\n\r\n private getSuitCode(cardId: number) {\r\n if (cardId < 1)\r\n return '';\r\n else if (cardId < 14)\r\n return 'C';\r\n else if (cardId < 27)\r\n return 'D';\r\n else if (cardId < 40)\r\n return 'H';\r\n else if (cardId < 53)\r\n return 'S';\r\n return '';\r\n }\r\n\r\n private getCardNumber(cardId: number) {\r\n while (cardId > 13)\r\n {\r\n cardId = cardId -13;\r\n }\r\n return cardId;\r\n }\r\n\r\n private getNumberCode(cardId: number) {\r\n while (cardId > 13)\r\n {\r\n cardId = cardId -13;\r\n }\r\n if (cardId === 1)\r\n return \"A\";\r\n else if (cardId === 2)\r\n return \"2\";\r\n else if (cardId === 3)\r\n return \"3\";\r\n else if (cardId === 4)\r\n return \"4\";\r\n else if (cardId === 5)\r\n return \"5\";\r\n else if (cardId === 6)\r\n return \"6\";\r\n else if (cardId === 7)\r\n return \"7\";\r\n else if (cardId === 8)\r\n return \"8\";\r\n else if (cardId === 9)\r\n return \"9\";\r\n else if (cardId === 10)\r\n return \"10\";\r\n else if (cardId === 11)\r\n return \"J\";\r\n else if (cardId === 12)\r\n return \"Q\";\r\n else if (cardId === 13)\r\n return \"K\";\r\n\r\n return \"\";\r\n }\r\n\r\n private getImageName(cardId: number) {\r\n let filename = 'Empty';\r\n let cardSuit = this.getCardSuit(cardId);\r\n \r\n if (cardSuit === Suit.Club) {\r\n filename = '_club'; \r\n }\r\n else if (cardSuit === Suit.Diamond) {\r\n filename = '_diamond';\r\n }\r\n else if (cardSuit === Suit.Heart) {\r\n filename = '_heart';\r\n }\r\n else if (cardSuit === Suit.Spade) {\r\n filename = '_spade';\r\n }\r\n \r\n while (cardId > 13)\r\n {\r\n cardId = cardId -13;\r\n }\r\n if (cardId === 1)\r\n filename = 'A' + filename;\r\n else if (cardId === 2)\r\n filename = '2' + filename;\r\n else if (cardId === 3)\r\n filename = '3' + filename;\r\n else if (cardId === 4)\r\n filename = '4' + filename;\r\n else if (cardId === 5)\r\n filename = '5' + filename;\r\n else if (cardId === 6)\r\n filename = '6' + filename;\r\n else if (cardId === 7)\r\n filename = '7' + filename;\r\n else if (cardId === 8)\r\n filename = '8' + filename;\r\n else if (cardId === 9)\r\n filename = '9' + filename;\r\n else if (cardId === 10)\r\n filename = '10' + filename;\r\n else if (cardId === 11)\r\n filename = 'J' + filename;\r\n else if (cardId === 12)\r\n filename = 'Q' + filename;\r\n else if (cardId === 13)\r\n filename = 'K' + filename;\r\n\r\n return filename;\r\n }\r\n\r\n /* public get cardName() : string {\r\n return this.getSuitName(this.cardSuit) + \" \" + this.getNumberName(this.cardId);\r\n } */\r\n\r\n /* public getSuitName(cardSuit: Suit) {\r\n if (cardSuit=== Suit.Spade)\r\n return \"Spade\";\r\n else if (cardSuit === Suit.Heart)\r\n return \"Heart\";\r\n else if (cardSuit === Suit.Diamond)\r\n return \"Diamond\";\r\n else if (cardSuit === Suit.Club)\r\n return \"Club\";\r\n return \"\";\r\n } */\r\n\r\n /* private getNumberName(cardNumber: number) {\r\n while (cardNumber > 13)\r\n {\r\n cardNumber = cardNumber -13;\r\n }\r\n if (cardNumber === 1)\r\n return \"Ace\";\r\n else if (cardNumber === 2)\r\n return \"Two\";\r\n else if (cardNumber === 3)\r\n return \"Three\";\r\n else if (cardNumber === 4)\r\n return \"Four\";\r\n else if (cardNumber === 5)\r\n return \"Five\";\r\n else if (cardNumber === 6)\r\n return \"Six\";\r\n else if (cardNumber === 7)\r\n return \"Seven\";\r\n else if (cardNumber === 8)\r\n return \"Eight\";\r\n else if (cardNumber === 9)\r\n return \"Nine\";\r\n else if (cardNumber === 10)\r\n return \"Ten\";\r\n else if (cardNumber === 11)\r\n return \"Jack\";\r\n else if (cardNumber === 12)\r\n return \"Queen\";\r\n else if (cardNumber === 13)\r\n return \"King\";\r\n\r\n return \"\";\r\n } */\r\n\r\n /* public getCardId(cardSuit: Suit, cardNumber: number): number {\r\n if (cardNumber > 13)\r\n return 0;\r\n else if (cardNumber < 1)\r\n return 0;\r\n else if (cardSuit === Suit.Club)\r\n return cardNumber;\r\n else if (cardSuit === Suit.Diamond)\r\n return cardNumber + 13;\r\n else if (cardSuit === Suit.Heart)\r\n return cardNumber + 26;\r\n else if (cardSuit === Suit.Spade)\r\n return cardNumber + 39;\r\n return 0;\r\n } */\r\n\r\n}","import { CardModel } from \"./Poker.CardModel\";\r\n\r\nexport class DeckModel {\r\n \r\n private deck = new Array(52);\r\n private currentCard = 0;\r\n private previousCard = 0;\r\n\r\n constructor(){\r\n for (let i = 0; i < 52; i++) {\r\n this.deck[i] = 0;\r\n }\r\n }\r\n\r\n public get currentCardId() : number {\r\n if ((this.currentCard < 0) || (this.currentCard > 51))\r\n return 0;\r\n return this.deck[this.currentCard];\r\n }\r\n \r\n dealCard(): number {\r\n if (this.currentCard < 52) {\r\n this.previousCard = this.currentCard;\r\n this.currentCard++;\r\n let returnValue = this.deck[this.currentCard];\r\n return returnValue;\r\n }\r\n return 0;\r\n }\r\n\r\n undoCard(): number {\r\n if (this.previousCard > 0) {\r\n this.previousCard--;\r\n this.currentCard--;\r\n let returnValue = this.deck[this.currentCard];\r\n return returnValue;\r\n }\r\n return 0;\r\n }\r\n\r\n replayDeck(): void {\r\n this.currentCard = -1;\r\n this.previousCard = -1;\r\n }\r\n\r\n shuffleCards(): void {\r\n\r\n let deck1 = new Array(52);\r\n for (let i = 0; i < 52; i++) {\r\n deck1[i] = Math.random();\r\n }\r\n\r\n for (let iPos = 0; iPos < 52; iPos++) {\r\n let maxValue = -1;\r\n let maxIndex = 1;\r\n for (let indx = 0; indx < 52; indx++) {\r\n if (maxValue < deck1[indx]) {\r\n maxValue = deck1[indx];\r\n maxIndex = indx;\r\n }\r\n }\r\n this.deck[iPos] = maxIndex + 1;\r\n deck1[maxIndex] = -1;\r\n }\r\n\r\n this.currentCard = -1;\r\n this.previousCard = -1;\r\n }\r\n}","import { Component, Inject, OnInit, AfterViewInit } from '@angular/core';\r\nimport { HandModel } from \"./Poker.HandModel\";\r\nimport { CardModel } from \"./Poker.CardModel\";\r\nimport { OptionModel } from \"./Poker.OptionModel\";\r\nimport { AppMaterialModule } from './material-module';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './Poker.HandView.html'\r\n})\r\n\r\nexport class HandComponent implements OnInit, AfterViewInit {\r\n\r\nhandModel = new HandModel();\r\n\r\n imageStyles: {};\r\n\r\n constructor(public dialog: MatDialog) {}\r\n\r\n ngOnInit(): void {\r\n let height1 = Math.floor(window.screen.availHeight / 8);\r\n let height2 = height1.toString().trim() + 'px';\r\n if (height1 > 80) height2 = '80px';\r\n\r\n this.imageStyles = {\r\n width: '100%',\r\n height: height2\r\n };\r\n }\r\n\r\n public get canDeactivate() {\r\n return false;\r\n return this.handModel.isGameComplete || !this.handModel.isGameStarted;\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n \r\n newGame(): void {\r\n if (!this.handModel.isGameStarted || this.handModel.isGameComplete) {\r\n this.handModel.newGame();\r\n }\r\n else {\r\n if (confirm(\"Game in progress, are you sure?\")) {\r\n this.handModel.newGame();\r\n };\r\n }\r\n }\r\n \r\n openOptionDialog(): void {\r\n const dialogRef = this.dialog.open(OptionDialogData, {\r\n width: '250px',\r\n data: this.handModel.options\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.handModel.setOptions();\r\n });\r\n }\r\n\r\n } \r\n\r\n/**\r\n * @title Injecting data when opening a dialog\r\n */\r\n\r\n@Component({\r\n templateUrl: 'Poker.OptionDialogue.html',\r\n})\r\n\r\nexport class OptionDialogData {\r\n constructor(@Inject(MAT_DIALOG_DATA) public options: OptionModel) {}\r\n}\r\n","\n
\n
\n
\n\n
\n \n
\n\n
\n
\n \n
\n \n
\n \n
\n \n \n \n
\n
\n\n
\n
\n \n
\n \n
\n \n
\n
\n
\n\n
\n

{{handModel.scoreText}}

\n
\n\n
\n \n
\n\n
\n\n
\n
\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
\nby MickBraz\n","

Game Options

\r\n
\r\n
\r\n
Easy mode
\r\n
\r\n

\r\n
\r\n \r\n
\r\n\r\n","import { CardModel } from './Poker.CardModel';\r\nimport { SquareModel } from './Poker.SquareModel';\r\nimport { DeckModel } from './Poker.DeckModel';\r\nimport { OptionModel } from './Poker.OptionModel';\r\nimport { NumberFormatStyle } from '@angular/common';\r\n\r\nclass HandRow {\r\n squares: SquareModel[] = [new SquareModel(0,0,0), new SquareModel(0,0,0)\r\n , new SquareModel(0,0,0), new SquareModel(0,0,0)\r\n , new SquareModel(0,0,0), new SquareModel(0,0,0)];\r\n}\r\n\r\nexport class HandModel {\r\n\r\n public handRows: HandRow[] = [new HandRow(), new HandRow()\r\n , new HandRow(), new HandRow(), new HandRow(), new HandRow()];\r\n public deckModel = new DeckModel();\r\n\r\n public isFiveRows = false;\r\n public isFiveColumns = false;\r\n public currentCard : CardModel = new CardModel(0);\r\n public isGameComplete = false;\r\n public isGameStarted = false;\r\n public deltCards = 0;\r\n public tabledCards = 0;\r\n public totalScore = 0;\r\n public options = new OptionModel();\r\n\r\n constructor() {\r\n }\r\n\r\n public get scoreText(): string {\r\n if (this.totalScore === 0) return 'Card game';\r\n return 'Total ' + this.totalScore.toString(); \r\n }\r\n\r\n public setOptions() {\r\n this.repositionSquares();\r\n this.setAvailableSquares();\r\n }\r\n\r\n public newGame() {\r\n this.deckModel.shuffleCards();\r\n this.setNewGame();\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 6; x++) {\r\n this.handRows[y].squares[x] = new SquareModel(y, x, 0);\r\n }\r\n }\r\n this.setAvailableSquares();\r\n this.dealCard();\r\n }\r\n\r\n private setNewGame()\r\n {\r\n this.deltCards = 0;\r\n this.totalScore = 0;\r\n this.tabledCards = 0;\r\n this.isFiveRows = false;\r\n this.isFiveColumns = false;\r\n this.isGameComplete = false;\r\n this.isGameStarted = true;\r\n }\r\n\r\n public get isUndoAllowed() {\r\n return (this.tabledCards > 1) && !this.isGameComplete;;\r\n }\r\n\r\n public replayGame() {\r\n this.deckModel.replayDeck();\r\n this.setNewGame();\r\n\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 6; x++) {\r\n this.handRows[y].squares[x] = new SquareModel(y, x, 0);\r\n }\r\n }\r\n\r\n this.setAvailableSquares();\r\n this.dealCard();\r\n }\r\n\r\n public setNextSquare(row: number, col: number) {\r\n this.handRows[row].squares[col].cardModel.cardId = this.currentCard.cardId;\r\n this.handRows[row].squares[col].isAvailable = false;\r\n this.tabledCards++;\r\n\r\n if (this.tabledCards === 25) {\r\n this.calculateScore();\r\n this.isGameComplete = true;\r\n this.currentCard.cardId = 0;\r\n }\r\n else {\r\n if ((row === 0) || (row === 5) ||\r\n (col === 0) || (col === 5)) {\r\n this.repositionSquares();\r\n }\r\n this.setAvailableSquares();\r\n this.dealCard();\r\n }\r\n }\r\n\r\n public dealCard() : number {\r\n if (this.deltCards < 25) {\r\n this.currentCard.cardId = this.deckModel.dealCard();\r\n this.deltCards++;\r\n return this.currentCard.cardId;\r\n }\r\n else {\r\n }\r\n this.currentCard.cardId = 0;\r\n return 0;\r\n }\r\n\r\n public undoSquare() : number {\r\n let doReposition = false;\r\n if (this.deltCards > 2) {\r\n let lastCardId = this.deckModel.undoCard();\r\n\r\n for (let y = 0; y < 5; y++) {\r\n for (let x = 0; x < 5; x++) {\r\n if (this.handRows[y].squares[x].cardModel.cardId === lastCardId) {\r\n this.handRows[y].squares[x].cardModel.cardId = 0;\r\n if ((y === 0) || (y >= 4))\r\n doReposition = true;\r\n if ((x === 0) || (x >= 4))\r\n doReposition = true;\r\n }\r\n }\r\n }\r\n\r\n this.deltCards--;\r\n this.tabledCards--;\r\n\r\n if (doReposition) {\r\n this.isFiveColumns = false;\r\n this.isFiveRows = false;\r\n this.repositionSquares();\r\n }\r\n\r\n this.setAvailableSquares();\r\n this.currentCard.cardId = this.deckModel.currentCardId;\r\n }\r\n return this.currentCard.cardId;\r\n }\r\n\r\n private calculateScore() {\r\n\r\n let totalScore = 0;\r\n for (let y = 0; y < 5; y++) {\r\n let hand = [this.handRows[y].squares[0].cardModel\r\n , this.handRows[y].squares[1].cardModel\r\n , this.handRows[y].squares[2].cardModel\r\n , this.handRows[y].squares[3].cardModel\r\n , this.handRows[y].squares[4].cardModel];\r\n this.calculateHand(hand, this.handRows[y].squares[5]);\r\n totalScore += this.handRows[y].squares[5].score;\r\n }\r\n for (let x = 0; x < 5; x++) {\r\n let hand = [this.handRows[0].squares[x].cardModel\r\n , this.handRows[1].squares[x].cardModel\r\n , this.handRows[2].squares[x].cardModel\r\n , this.handRows[3].squares[x].cardModel\r\n , this.handRows[4].squares[x].cardModel];\r\n this.calculateHand(hand, this.handRows[5].squares[x]);\r\n totalScore += this.handRows[5].squares[x].score;\r\n }\r\n this.totalScore = totalScore;\r\n }\r\n\r\n public calculateHand(cards : CardModel[], square: SquareModel) {\r\n let flushSuit = cards[0].cardSuitCode;\r\n let numberCounts = [0,0,0,0,0,0,0,0,0,0,0,0,0,0];\r\n let lowCard = 14;\r\n let hasAce = false;\r\n let highCard = 0;\r\n let isPair = false;\r\n let is2Pair = false;\r\n let is3Kind = false;\r\n let is4Kind = false;\r\n let isStraight = false;\r\n let isFlush = true;\r\n let score = 0;\r\n let scoreText = 'No match';\r\n\r\n for (let x = 0; x < 5; x++) {\r\n numberCounts[cards[x].cardNumber]++;\r\n if (flushSuit !== cards[x].cardSuitCode) isFlush = false;\r\n if (highCard < cards[x].cardNumber) highCard = cards[x].cardNumber;\r\n if (cards[x].cardNumber === 1) {\r\n hasAce = true;\r\n } else {\r\n if (lowCard > cards[x].cardNumber) lowCard = cards[x].cardNumber;\r\n }\r\n \r\n }\r\n\r\n if (hasAce) {\r\n if (highCard === 13 && lowCard === 10) isStraight = true;\r\n if (highCard === 5 && lowCard === 2) isStraight = true;\r\n }\r\n else {\r\n if (highCard - lowCard === 4) isStraight = true;\r\n }\r\n\r\n for (let x = 1; x < 14; x++) {\r\n if (numberCounts[x] === 4) {\r\n is4Kind = true;\r\n }\r\n if (numberCounts[x] === 3) {\r\n is3Kind = true;\r\n }\r\n if (numberCounts[x] === 2) {\r\n if (isPair) is2Pair = true;\r\n else isPair = true;\r\n }\r\n }\r\n\r\n if (is4Kind) {\r\n score = 50;\r\n scoreText = '4 of a kind';\r\n }\r\n else if (is2Pair) {\r\n score = 5;\r\n scoreText = '2 pair';\r\n }\r\n else if (isPair && is3Kind) {\r\n score = 25;\r\n scoreText = 'Full house';\r\n }\r\n else if (is3Kind) {\r\n score = 10;\r\n scoreText = '3 of a kind';\r\n }\r\n else if (isPair) {\r\n score = 2;\r\n scoreText = 'Pair';\r\n }\r\n else if (isStraight) {\r\n if (isFlush) {\r\n if (highCard === 13 && hasAce) {\r\n score = 100;\r\n scoreText = 'Royal flush';\r\n }\r\n else {\r\n score = 75;\r\n scoreText = 'Straight flush';\r\n }\r\n }\r\n else {\r\n score = 15;\r\n scoreText = 'Straight';\r\n }\r\n }\r\n else if (isFlush) {\r\n score = 20;\r\n scoreText = 'Flush';\r\n }\r\n square.score = score;\r\n }\r\n\r\n private repositionSquares() {\r\n\r\n if (this.isFiveRows && this.isFiveColumns) {\r\n return;\r\n }\r\n if (this.options.isEasyMode) {\r\n return;\r\n }\r\n\r\n let colStart = 2;\r\n let colEnd = 2;\r\n let rowStart = 2;\r\n let rowEnd = 2;\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 6; x++) {\r\n if (this.handRows[y].squares[x].isCard) {\r\n if (rowStart > y) { rowStart = y; }\r\n if (rowEnd < y) { rowEnd = y; }\r\n if (colStart > x) { colStart = x; }\r\n if (colEnd < x) { colEnd = x; }\r\n }\r\n }\r\n }\r\n\r\n this.isFiveRows = ((rowEnd - rowStart) === 4);\r\n this.isFiveColumns = ((colEnd - colStart) === 4);\r\n\r\n if (colEnd === 5) { // move hand left one square\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 5; x++) {\r\n this.handRows[y].squares[x].cardModel.cardId\r\n = this.handRows[y].squares[x+1].cardModel.cardId;\r\n }\r\n this.handRows[y].squares[5].cardModel.cardId = 0;\r\n }\r\n } \r\n else if ((colStart === 0) && !this.isFiveColumns) { // move hand right one square\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 5; x > 0; x--) {\r\n this.handRows[y].squares[x].cardModel.cardId \r\n = this.handRows[y].squares[x-1].cardModel.cardId;\r\n }\r\n this.handRows[y].squares[0].cardModel.cardId = 0;\r\n }\r\n }\r\n\r\n if (rowEnd === 5) { // move hand up one square\r\n for (let x = 0; x < 6; x++) {\r\n for (let y = 0; y < 5; y++) {\r\n this.handRows[y].squares[x].cardModel.cardId\r\n = this.handRows[y+1].squares[x].cardModel.cardId;\r\n }\r\n this.handRows[5].squares[x].cardModel.cardId = 0;\r\n }\r\n }\r\n else if ((rowStart === 0) && !this.isFiveRows) { // move hand down one square\r\n for (let x = 0; x < 6; x++) {\r\n for (let y = 5; y > 0; y--) {\r\n this.handRows[y].squares[x].cardModel.cardId\r\n = this.handRows[y-1].squares[x].cardModel.cardId;\r\n }\r\n this.handRows[0].squares[x].cardModel.cardId = 0;\r\n }\r\n }\r\n\r\n }\r\n\r\n public setAvailableSquares() {\r\n\r\n for (let y = 0; y < 6; y++) {\r\n for (let x = 0; x < 6; x++) {\r\n if (this.handRows[y].squares[x].isCard)\r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.isFiveColumns && (x === 5)) \r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.options.isEasyMode && (x === 5)) \r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.isFiveRows && (y === 5))\r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.options.isEasyMode && (y === 5))\r\n this.handRows[y].squares[x].isAvailable = false;\r\n else if (this.options.isEasyMode) \r\n this.handRows[y].squares[x].isAvailable = true; \r\n else \r\n this.handRows[y].squares[x].isAvailable = this.isAdjacientCard(y, x); \r\n }\r\n }\r\n if (!this.handRows[2].squares[2].isCard) { // allow for first card\r\n this.handRows[2].squares[2].isAvailable = true;\r\n }\r\n }\r\n\r\n private isAdjacientCard(row : number, col : number) {\r\n \r\n let result = false;\r\n\r\n if (row > 0) {\r\n if (this.handRows[row-1].squares[col].isCard) {\r\n result = true;\r\n }\r\n }\r\n if (row < 5) {\r\n if (this.handRows[row+1].squares[col].isCard) {\r\n result = true;\r\n }\r\n }\r\n\r\n if (col > 0) {\r\n if (this.handRows[row].squares[col-1].isCard) {\r\n result = true;\r\n }\r\n }\r\n if (col < 5) {\r\n if (this.handRows[row].squares[col+1].isCard) {\r\n result = true;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './Poker.MainView.html'\r\n})\r\n\r\nexport class MainComponent implements OnInit {\r\n\r\n title = \"Poker Game\";\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","

{{title}}

\n\n
\n Poker game
\n \n \n


\n
Powered by MickBraz.com
\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms'\nimport { RouterModule } from \"@angular/router\"\nimport { HandGuardGuard } from \"./hand-guard.guard\"\n// import { MatMenuModule } from '@angular/material/menu';\n// import { MatIconModule } from '@angular/material/icon';\n// import { MatButtonModule } from '@angular/material/button';\n// MatIconModule\n\nimport { AppMaterialModule } from './material-module';\n\nimport { MainRoutes } from './Poker.MainRouting';\nimport { MainComponent } from './Poker.MainComponent';\nimport { HandComponent } from './Poker.HandComponent';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\n\n@NgModule({\n declarations: [\n MainComponent\n ],\n imports: [\n RouterModule.forRoot(MainRoutes),\n BrowserModule, FormsModule, NgbModule,\n BrowserAnimationsModule,\n AppMaterialModule,\n //ReactiveFormsModule\n // MatMenuModule, MatIconModule, MatButtonModule\n ],\n providers: [HandGuardGuard],\n bootstrap: [HandComponent]\n})\nexport class MainModule { }\n","import { HandComponent } from \"./Poker.HandComponent\";\r\nimport { Routes } from \"@angular/router\";\r\nimport { HandGuardGuard } from './hand-guard.guard';\r\n\r\nexport const MainRoutes = [\r\n {\r\n path: 'Hand',\r\n loadChildren: () => import(\"./Poker.HandModule\").then(mod => mod.HandModule)\r\n },\r\n {\r\n path: 'Home/AngularApps',\r\n loadChildren: () => import(\"./Poker.HandModule\").then(mod => mod.HandModule)\r\n },\r\n \r\n];\r\n","\r\n\r\nexport class OptionModel {\r\n\r\n isEasyMode = false;\r\n isAllowUndo = true;\r\n}","import { CardModel } from './Poker.CardModel';\r\n\r\nexport class SquareModel {\r\n \r\n cardModel: CardModel;\r\n handRow: number = 0;\r\n handCol: number = 0;\r\n score: number = 0;\r\n \r\n isAvailable = false;\r\n\r\n constructor(row: number, col: number, cardId: number) {\r\n this.cardModel = new CardModel(cardId);\r\n this.handCol = col;\r\n this.handRow = row;\r\n }\r\n \r\n public get isCard() {\r\n return (this.cardModel.cardId > 0);\r\n }\r\n public get isScore() {\r\n return (this.score > 0);\r\n }\r\n\r\n public get imageName() : string {\r\n\r\n let filename = 'blank';\r\n\r\n if (this.score > 0) filename = 'Result_' + this.score.toString().trim();\r\n\r\n return filename;\r\n }\r\n\r\n /* cardSuitName = getSuitName(this.cardSuit);\r\n cardNumberName = getNumberName(this.CardNumber);\r\n public get cardText() : string {\r\n return this.getSuitName(this.cardSuit) + \" \" + this.getNumberName(this.cardId);\r\n } */\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { HandComponent } from './Poker.HandComponent';\n\n@Injectable()\nexport class HandGuardGuard implements CanDeactivate {\n canDeactivate(\n component: HandComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n if (component.canDeactivate) {\n return true;\n }\n return confirm(\"Warning: Game in progress, exit anyway?\");\n }\n \n}\n","import {NgModule} from '@angular/core';\r\n//import {A11yModule} from '@angular/cdk/a11y';\r\n//import {ClipboardModule} from '@angular/cdk/clipboard';\r\n//import {DragDropModule} from '@angular/cdk/drag-drop';\r\n//import {PortalModule} from '@angular/cdk/portal';\r\n//import {ScrollingModule} from '@angular/cdk/scrolling';\r\n//import {CdkStepperModule} from '@angular/cdk/stepper';\r\n//import {CdkTableModule} from '@angular/cdk/table';\r\n//import {CdkTreeModule} from '@angular/cdk/tree';\r\n//import {MatAutocompleteModule} from '@angular/material/autocomplete';\r\n//import {MatBadgeModule} from '@angular/material/badge';\r\n//import {MatBottomSheetModule} from '@angular/material/bottom-sheet';\r\nimport {MatButtonModule} from '@angular/material/button';\r\n//import {MatButtonToggleModule} from '@angular/material/button-toggle';\r\n//import {MatCardModule} from '@angular/material/card';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\n//import {MatChipsModule} from '@angular/material/chips';\r\n//import {MatStepperModule} from '@angular/material/stepper';\r\n//import {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\n//import {MatDividerModule} from '@angular/material/divider';\r\n//import {MatExpansionModule} from '@angular/material/expansion';\r\n//import {MatGridListModule} from '@angular/material/grid-list';\r\n//import {MatIconModule} from '@angular/material/icon';\r\n//import {MatInputModule} from '@angular/material/input';\r\n//import {MatListModule} from '@angular/material/list';\r\n//import {MatMenuModule} from '@angular/material/menu';\r\n//import {MatNativeDateModule, MatRippleModule} from '@angular/material/core';\r\n//import {MatPaginatorModule} from '@angular/material/paginator';\r\n//import {MatProgressBarModule} from '@angular/material/progress-bar';\r\n//import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\r\n//import {MatRadioModule} from '@angular/material/radio';\r\n//import {MatSelectModule} from '@angular/material/select';\r\n//import {MatSidenavModule} from '@angular/material/sidenav';\r\n//import {MatSliderModule} from '@angular/material/slider';\r\n//import {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\n//import {MatSnackBarModule} from '@angular/material/snack-bar';\r\n//import {MatSortModule} from '@angular/material/sort';\r\n//import {MatTableModule} from '@angular/material/table';\r\n//import {MatTabsModule} from '@angular/material/tabs';\r\n//import {MatToolbarModule} from '@angular/material/toolbar';\r\n//import {MatTooltipModule} from '@angular/material/tooltip';\r\n//import {MatTreeModule} from '@angular/material/tree';\r\n//import {OverlayModule} from '@angular/cdk/overlay';\r\n\r\n@NgModule({\r\n exports: [\r\n // A11yModule,\r\n // ClipboardModule,\r\n // CdkStepperModule,\r\n // CdkTableModule,\r\n // CdkTreeModule,\r\n // DragDropModule,\r\n // MatAutocompleteModule,\r\n // MatBadgeModule,\r\n // MatBottomSheetModule,\r\n MatButtonModule,\r\n // MatButtonToggleModule,\r\n // MatCardModule,\r\n MatCheckboxModule,\r\n // MatChipsModule,\r\n // MatStepperModule,\r\n // MatDatepickerModule,\r\n MatDialogModule,\r\n // MatDividerModule,\r\n // MatExpansionModule,\r\n // MatGridListModule,\r\n // MatIconModule,\r\n // MatInputModule,\r\n // MatListModule,\r\n // MatMenuModule,\r\n // MatNativeDateModule,\r\n // MatPaginatorModule,\r\n // MatProgressBarModule,\r\n // MatProgressSpinnerModule,\r\n // MatRadioModule,\r\n // MatRippleModule,\r\n // MatSelectModule,\r\n // MatSidenavModule,\r\n // MatSliderModule,\r\n // MatSlideToggleModule,\r\n // MatSnackBarModule,\r\n // MatSortModule,\r\n // MatTableModule,\r\n // MatTabsModule,\r\n // MatToolbarModule,\r\n // MatTooltipModule,\r\n // MatTreeModule,\r\n // OverlayModule,\r\n // PortalModule,\r\n // ScrollingModule,\r\n ]\r\n})\r\nexport class AppMaterialModule {}\r\n\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { MainModule } from './PokerApp/Poker.MainModule';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(MainModule)\n .catch(err => console.error(err));\n"],"sourceRoot":"webpack:///"}