overtime-live-trading-utils 0.0.152 → 0.0.153

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/main.js CHANGED
@@ -1 +1 @@
1
- !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var i in a)e.o(a,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:a[i]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{AMERICAN_LEAGUES:()=>U,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>M,LEAGUES_NO_LIVE_CONSTRAINTS:()=>u,League:()=>L,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>m,LeagueMap:()=>P,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>T,MoneylineTypes:()=>p,PeriodType:()=>N,Provider:()=>n,ScoringType:()=>l,Sport:()=>_,SpreadTypes:()=>S,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>s,UFC_LEAGUE_IDS:()=>C,ZERO:()=>k,adjustSpreadOnChildOdds:()=>_e,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>se,allowGameSportWithResultConstraint:()=>Te,allowSoccerGame:()=>le,calculateImpliedOddsDifference:()=>c,checkGameContraints:()=>Se,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>Ee,fetchResultInCurrentSet:()=>Ne,filterOddsByMarketNameBookmaker:()=>oe,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>h,getBookmakersArray:()=>O,getLeagueInfo:()=>B,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>w,getLeaguePeriodType:()=>V,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>F,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>te,mapOpticOddsApiFixtureOdds:()=>Ce,mapOpticOddsApiFixtures:()=>ue,mapOpticOddsApiResults:()=>Ue,processMarket:()=>pe,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),i=1;i<arguments.length;i++){var E=arguments[i];if(null!=E)for(var o in E)Object.prototype.hasOwnProperty.call(E,o)&&(a[o]=E[o])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-i(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var E,o,A={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,i=[0,1],E=[1,0],o=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,E=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==E?i=r:0===E?i=r.substring(1,r.length):E<r.length&&(i=r.substring(0,E)+r.substring(E+1,r.length));var o=i,A=o.toString().length,t=e,_=t.toString().length;0===t&&(_=0);var L,p=A-_;for(L=p;L>0&&o%2==0;L--)o/=2;for(L=p;L>0&&o%5==0;L--)o/=5;return o}(e),A=e,t=Math.pow(10,-r)/2,_=2;_<1e3;_++){var L=Math.floor(A);if(i[_]=L*i[_-1]+i[_-2],Math.abs(i[_])>o)return;if(E[_]=L*E[_-1]+E[_-2],a=i[_]/E[_],Math.abs(a-e)<t||NaN==a)return i[_].toString()+"/"+E[_].toString();A=1/(A-L)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},t=((o=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(E=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,E.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new o(a)},E);t.prototype.to=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=A[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=i("round",a,-r.precision)),a};var _,L,p,S,s,l,T,N,n,d,I=t.from,O=function(e,r,a){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return a;var E=[];return i.primaryBookmaker&&E.push(i.primaryBookmaker),i.secondaryBookmaker&&E.push(i.secondaryBookmaker),i.tertiaryBookmaker&&E.push(i.tertiaryBookmaker),E}return a},R=function(e,r,a,i,E){var o=e.get(r[0]);if(!o)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=o.homeOdds,t=o.awayOdds,_=a?0:o.drawOdds;if(r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!a&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!a&&1===i.drawOdds)})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"};if(1==r.length)return{homeOdds:A,awayOdds:t,drawOdds:a?0:_};if(r.slice(1).some((function(r){var o=e.get(r);if(o){var L=o.homeOdds,p=o.awayOdds,S=o.drawOdds,s=I("decimal",A).to("impliedProbability"),l=I("decimal",t).to("impliedProbability"),T=a?0:I("decimal",_).to("impliedProbability"),N=I("decimal",L).to("impliedProbability"),n=I("decimal",p).to("impliedProbability"),d=a?0:I("decimal",S).to("impliedProbability"),O=c(s,N),R=c(l,n),P=a?0:c(T,d);if(O>i&&s>E&&N>E||R>i&&l>E&&n>E||!a&&P>i&&T>E&&d>E)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var L=[];return r.forEach((function(r){return L.push(e.get(r))})),{homeOdds:A,awayOdds:t,drawOdds:a?0:_}},c=function(e,r){return Math.abs(e-r)/e*100};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.FUTURES="Futures",e.EMPTY=""}(_||(_={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.EUROCUP=20200]="EUROCUP",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1=15312]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2=15313]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3=15314]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4=15315]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5=15316]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6=15317]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7=15318]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15322]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15323]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15324]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15325]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15326]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15327]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15328]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(L||(L={})),function(e){e.MONEYLINE="Moneyline"}(p||(p={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.GOAL_SPREAD="Goal Spread",e.RUN_LINE="Run Line",e.PUCK_LINE="Puck Line"}(S||(S={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(s||(s={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.EMPTY=""}(l||(l={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(T||(T={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.EMPTY=""}(N||(N={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(n||(n={}));var P=((d={})[L.NCAAF]={sport:_.FOOTBALL,id:L.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NFL]={sport:_.FOOTBALL,id:L.NFL,label:"NFL",opticOddsName:"NFL",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.MLB]={sport:_.BASEBALL,id:L.MLB,label:"MLB",opticOddsName:"MLB",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.INNING,isDrawAvailable:!1},d[L.NBA]={sport:_.BASKETBALL,id:L.NBA,label:"NBA",opticOddsName:"NBA",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NCAAB]={sport:_.BASKETBALL,id:L.NCAAB,label:"NCAA Basketball",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NHL]={sport:_.HOCKEY,id:L.NHL,label:"NHL",opticOddsName:"NHL",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.OVERTIME,periodType:N.PERIOD,isDrawAvailable:!1},d[L.UFC]={sport:_.FIGHTING,id:L.UFC,label:"UFC",provider:n.OPTICODDS,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.WNBA]={sport:_.BASKETBALL,id:L.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.MLS]={sport:_.SOCCER,id:L.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EPL]={sport:_.SOCCER,id:L.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGUE_ONE]={sport:_.SOCCER,id:L.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BUNDESLIGA]={sport:_.SOCCER,id:L.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LA_LIGA]={sport:_.SOCCER,id:L.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERIE_A]={sport:_.SOCCER,id:L.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CL]={sport:_.SOCCER,id:L.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EL]={sport:_.SOCCER,id:L.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WC]={sport:_.SOCCER,id:L.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:n.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.J1_LEAGUE]={sport:_.SOCCER,id:L.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.IPL]={sport:_.CRICKET,id:L.IPL,label:"Indian Premier League",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.EMPTY,periodType:N.INNING,isDrawAvailable:!1},d[L.T20_BLAST]={sport:_.CRICKET,id:L.T20_BLAST,label:"T20 Blast",provider:n.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.EMPTY,periodType:N.INNING,isDrawAvailable:!1},d[L.IIHF_WORLD_CHAMPIONSHIP]={sport:_.HOCKEY,id:L.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.COPA_AMERICA]={sport:_.SOCCER,id:L.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.COPA_LIBERTADORES]={sport:_.SOCCER,id:L.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EURO]={sport:_.SOCCER,id:L.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EREDIVISIE]={sport:_.SOCCER,id:L.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.PRIMEIRA_LIGA]={sport:_.SOCCER,id:L.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:_.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_SOCCER]={sport:_.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WC_WOMEN]={sport:_.SOCCER,id:L.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_CUP]={sport:_.SOCCER,id:L.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FRANCE_CUP]={sport:_.SOCCER,id:L.FRANCE_CUP,label:"Coupe de France",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SPAIN_CUP]={sport:_.SOCCER,id:L.SPAIN_CUP,label:"Copa del Rey",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ITALY_CUP]={sport:_.SOCCER,id:L.ITALY_CUP,label:"Coppa Italia",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.TENNIS_WTA]={sport:_.TENNIS,id:L.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.TENNIS_GS]={sport:_.TENNIS,id:L.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.TENNIS_MASTERS]={sport:_.TENNIS,id:L.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_TENNIS]={sport:_.TENNIS,id:L.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.GERMANY_CUP]={sport:_.SOCCER,id:L.GERMANY_CUP,label:"DFB Pokal",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGA_MX]={sport:_.SOCCER,id:L.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BRAZIL_1]={sport:_.SOCCER,id:L.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EURO_U21]={sport:_.SOCCER,id:L.UEFA_EURO_U21,label:"UEFA EURO U21",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FIFA_WORLD_CUP_U20]={sport:_.SOCCER,id:L.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:_.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HANDBALL]={sport:_.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EUROLEAGUE]={sport:_.BASKETBALL,id:L.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.FIBA_WORLD_CUP]={sport:_.BASKETBALL,id:L.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.FORMULA1]={sport:_.MOTOSPORT,id:L.FORMULA1,label:"Formula 1",provider:n.ENETPULSE,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:_.TABLE_TENNIS,id:L.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.MOTOGP]={sport:_.MOTOSPORT,id:L.MOTOGP,label:"MotoGP",provider:n.ENETPULSE,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.SAUDI_PROFESSIONAL_LEAGUE]={sport:_.SOCCER,id:L.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_WATERPOLO]={sport:_.WATERPOLO,id:L.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.QUARTER,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_VOLEYBALL]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:n.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},d[L.BOXING]={sport:_.FIGHTING,id:L.BOXING,label:"Boxing",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_RUGBY]={sport:_.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:_.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:_.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.SUMMER_OLYMPICS_HOCKEY]={sport:_.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},d[L.UEFA_NATIONS_LEAGUE]={sport:_.SOCCER,id:L.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:n.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CONCACAF_NATIONS_LEAGUE]={sport:_.SOCCER,id:L.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CSGO]={sport:_.ESPORTS,id:L.CSGO,label:"CS GO",opticOddsName:"CS2",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.DOTA2]={sport:_.ESPORTS,id:L.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.SUMMER_OLYMPICS_QUALIFICATION]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:n.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.LOL]={sport:_.ESPORTS,id:L.LOL,label:"LOL",opticOddsName:"League of Legends",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.CONMEBOL_WC_QUALIFICATIONS]={sport:_.SOCCER,id:L.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CONFERENCE_LEAGUE]={sport:_.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.NON_TITLE_BOXING]={sport:_.FIGHTING,id:L.NON_TITLE_BOXING,label:"Boxing",provider:n.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},d[L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:n.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.US_ELECTION]={sport:_.POLITICS,id:L.US_ELECTION,label:"US Election 2024",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.UEFA_SUPER_CUP]={sport:_.SOCCER,id:L.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BRAZIL_CUP]={sport:_.SOCCER,id:L.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_CHAMPIONSHIP]={sport:_.SOCCER,id:L.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SCOTLAND_PREMIERSHIP]={sport:_.SOCCER,id:L.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BELGIUM_LEAGUE]={sport:_.SOCCER,id:L.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CZECH_LEAGUE]={sport:_.SOCCER,id:L.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CHILE_PRIMERA]={sport:_.SOCCER,id:L.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.FINLAND_LEAGUE]={sport:_.SOCCER,id:L.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ARGENTINA_PRIMERA]={sport:_.SOCCER,id:L.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.RUSSIA_PREMIER]={sport:_.SOCCER,id:L.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.TURKEY_SUPER_LEAGUE]={sport:_.SOCCER,id:L.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERBIA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.GREECE_SUPER_LEAGUE]={sport:_.SOCCER,id:L.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.INDIA_PREMIER]={sport:_.SOCCER,id:L.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.CHINA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.AUSTRALIA_A_LEAGUE]={sport:_.SOCCER,id:L.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SWITZERLAND_SUPER_LEAGUE]={sport:_.SOCCER,id:L.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.BUNDESLIGA_2]={sport:_.SOCCER,id:L.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LA_LIGA_2]={sport:_.SOCCER,id:L.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SERIE_B]={sport:_.SOCCER,id:L.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.INDIA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.LIGUE_2]={sport:_.SOCCER,id:L.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.AUSTRIA_BUNDESLIGA]={sport:_.SOCCER,id:L.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.DENMARK_SUPER_LEAGUE]={sport:_.SOCCER,id:L.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.POLAND_LEAGUE]={sport:_.SOCCER,id:L.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.SWEDEN_LEAGUE]={sport:_.SOCCER,id:L.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.COLOMBIA_PRIMERA_A]={sport:_.SOCCER,id:L.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_EFL_CUP]={sport:_.SOCCER,id:L.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.ENGLAND_LEGAUE_1]={sport:_.SOCCER,id:L.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.URUGUAY_PRIMERA_DIVISION]={sport:_.SOCCER,id:L.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:n.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},d[L.EUROCUP]={sport:_.BASKETBALL,id:L.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:n.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},d[L.NFL_FUTURES]={sport:_.FUTURES,id:L.NFL_FUTURES,label:"NFL Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.NBA_FUTURES]={sport:_.FUTURES,id:L.NBA_FUTURES,label:"NBA Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.EPL_FUTURES]={sport:_.FUTURES,id:L.EPL_FUTURES,label:"EPL Futures",provider:n.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.GOLF_H2H]={sport:_.GOLF,id:L.GOLF_H2H,label:"Golf head-to-head",provider:n.JSONODDS,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d[L.GOLF_WINNER]={sport:_.GOLF,id:L.GOLF_WINNER,label:"Golf Tournament Winner",provider:n.JSONODDS,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},d),M=[L.CSGO,L.DOTA2,L.LOL,L.TENNIS_GS,L.TENNIS_MASTERS,L.SUMMER_OLYMPICS_TENNIS,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,L.TENNIS_MASTERS_LIVE_MAPPING_V2_1,L.TENNIS_MASTERS_LIVE_MAPPING_V2_2,L.TENNIS_MASTERS_LIVE_MAPPING_V2_3,L.TENNIS_MASTERS_LIVE_MAPPING_V2_4,L.TENNIS_MASTERS_LIVE_MAPPING_V2_5,L.TENNIS_MASTERS_LIVE_MAPPING_V2_6,L.TENNIS_MASTERS_LIVE_MAPPING_V2_7,L.TENNIS_MASTERS_LIVE_MAPPING_V2_8,L.TENNIS_MASTERS_LIVE_MAPPING_V2_9,L.TENNIS_MASTERS_LIVE_MAPPING_V2_10,L.TENNIS_MASTERS_LIVE_MAPPING_V2_11,L.TENNIS_MASTERS_LIVE_MAPPING_V2_12,L.TENNIS_MASTERS_LIVE_MAPPING_V2_13,L.TENNIS_MASTERS_LIVE_MAPPING_V2_14,L.TENNIS_MASTERS_LIVE_MAPPING_V2_15,L.TENNIS_MASTERS_LIVE_MAPPING_V2_16,L.TENNIS_MASTERS_LIVE_MAPPING_V2_17,L.TENNIS_MASTERS_LIVE_MAPPING_V2_18,L.TENNIS_MASTERS_LIVE_MAPPING_V2_19,L.TENNIS_MASTERS_LIVE_MAPPING_V2_20,L.TENNIS_MASTERS_LIVE_MAPPING_V2_21,L.TENNIS_MASTERS_LIVE_MAPPING_V2_22,L.TENNIS_WTA_LIVE_MAPPING_V2_1,L.TENNIS_WTA_LIVE_MAPPING_V2_2,L.TENNIS_WTA_LIVE_MAPPING_V2_3,L.TENNIS_WTA_LIVE_MAPPING_V2_4,L.TENNIS_WTA_LIVE_MAPPING_V2_5,L.TENNIS_WTA_LIVE_MAPPING_V2_6,L.TENNIS_WTA_LIVE_MAPPING_V2_7],u=[L.SUMMER_OLYMPICS_RUGBY,L.SUMMER_OLYMPICS_RUGBY_WOMEN],U=[L.NCAAF,L.NFL,L.MLB,L.NBA,L.NCAAB,L.NHL,L.WNBA,L.MLS,L.IPL,L.T20_BLAST],C=[701,702,703,704],m={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},y={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},G={1:"NCAAF",2:"NFL",3:"MLB",4:"NBA",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20200:"Eurocup"},v=function(e){var r=P[e];return r?r.sport:_.EMPTY},D=function(e){var r=P[e];return r?r.label:""},g=function(e){var r=P[e];return r?r.provider:""},b=function(e){var r=P[e];return!!r&&r.isDrawAvailable},F=function(e){var r=new Set;return e.filter((function(e){return"true"===e.enabled})).map((function(e){return r.add(Number(e.sportId))})),Array.from(r)},h=function(e,r){var a=new Set;return r.filter((function(r){return Number(r.sportId)===Number(e)&&"true"===r.enabled})).map((function(e){return a.add(e.marketName)})),Array.from(a)},B=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},w=function(e){var r=P[e];return r?r.opticOddsName:void 0},V=function(e){var r=P[e];return r?r.periodType:""},f=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Spread"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},Y=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Total"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},H=function(e,r,a,i,E,o){var A,t;if(M.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),t=E.toLowerCase()==r.toLowerCase()||E.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),t=E.toLowerCase()==a.toLowerCase()),!0!==A){var _=o.get(i.toLowerCase()),L=o.get(r.toLowerCase()),p=o.get(a.toLowerCase());if([_,L].some((function(e){return null==e})))return!1;A=M.includes(e)?_==L||_==p:_==L}if(!0!==t){var S=o.get(E.toLowerCase());if(L=o.get(r.toLowerCase()),[S,p=o.get(a.toLowerCase())].some((function(e){return null==e})))return!1;t=M.includes(e)&&S==L||S==p}return A&&t},W=function(e,r,a,i){var E;if(v(a)==_.TENNIS){var o=r.getTime(),A=e.getTime();E=Math.abs(A-o)<=Number(60*i*1e3)}else E=r.toUTCString()==e.toUTCString();return E},k=0,K="Draw",Q=0,j=.2,x=10001,X=10002,z=100,Z=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(i-1)))return e;a=r}var E=1+a/100,o=E/i,A=e.map((function(e){return e*o}));if(A.some((function(e){return e>=1})))return Array(e.length).fill(0);var t=A.reduce((function(e,r){return e+r}),0);if(t<1)return Array(e.length).fill(0);var _=E/t;return A.map((function(e){return e*_}))},J=function(e,r,a,i){var E=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return E?{minSpread:E.minSpread?Number(E.minSpread):i,targetSpread:E.targetSpread?Number(E.targetSpread):0}:{minSpread:i,targetSpread:0}},q=function(){return q=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,E=0,o=r.length;E<o;E++)!i&&E in r||(i||(i=Array.prototype.slice.call(r,0,E)),i[E]=r[E]);return e.concat(i||Array.prototype.slice.call(r))},ee=function(e){return e===k?0:re("decimal","impliedProbability",e)},re=function(e,r,a){try{return I(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,E){var o=new Map;return a.forEach((function(a){var A=0,t=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==t.length&&(A=t[0].price);var _=0,L=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==L.length&&(_=L[0].price);var p=0;if(!E){var S=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==S.length&&(p=S[0].price)}o.set(a.toLowerCase(),{homeOdds:A,awayOdds:_,drawOdds:p})})),o},ie=function(e,r,a,i,E,o,A){var t={homeTeam:i.homeTeam,awayTeam:i.awayTeam},_=ae(i.odds,p.MONEYLINE,a,t,e),L=R(_,a,e,A,j);if(L.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:L.errorMessage};var S=(e?[L.homeOdds,L.awayOdds]:[L.homeOdds,L.awayOdds,L.drawOdds]).map((function(e){return ee(e)})),s=J(r,E,Q,o);return{odds:S=null!==s?Z(S,s.minSpread,s.targetSpread):Z(S,o,0)}},Ee=function(e,r,a,i,E,o){var A=[[],[],[]],t=A[0],_=A[1],L=A[2],p=B(a,o),S={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(p.length>0){oe(e.odds,p,i[0]).filter((function(e){return e&&.5===Math.abs(Number(e.points)%1)})).forEach((function(e){"Total"===e.type?_.push(e):"Spread"===e.type&&t.push(e)}));var s=$($([],Ae(t,S),!0),te(_,S),!0);_e(s,r,E).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line),odds:e.odds},a=p.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,E=null==a?void 0:a.maxOdds;i&&E&&(e.odds[0]>=i||e.odds[0]<=E||e.odds[1]>=i||e.odds[1]<=E)||L.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return L},oe=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==p.MONEYLINE.toLowerCase()})).map((function(e){return e.marketName.toLowerCase()}));return e.filter((function(e){return i.includes(e.marketName.toLowerCase())&&e.sportsBookName.toLowerCase()==a.toLowerCase()})).map((function(e){return q(q({},e),r.find((function(r){return r.marketName.toLowerCase()===e.marketName.toLowerCase()})))}))},Ae=function(e,r){var a=e.reduce((function(e,a){var i=a.points,E=a.price,o=a.selection,A=a.typeId,t=a.sportId,_=a.type,L=o===r.homeTeam,p=L?i:-i;return e[p]||(e[p]={home:null,away:null,typeId:null,sportId:null}),L?e[p].home=E:e[p].away=E,e[p].typeId=A,e[p].type=_,e[p].sportId=t,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],E=parseFloat(a);return null!==i.home&&null!==i.away&&e.push({line:E,odds:[i.home,i.away],typeId:i.typeId,sportId:i.sportId,type:i.type}),e}),[]);return i},te=function(e,r){var a=e.reduce((function(e,r){if(r){var a="".concat(r.selection,"_").concat(r.points);e[a]||(e[a]={over:null,under:null}),"over"===r.selectionLine?e[a].over=r.price:"under"===r.selectionLine&&(e[a].under=r.price),e[a].typeId=r.typeId,e[a].type=r.type,e[a].sportId=r.sportId}return e}),{}),i=Object.entries(a).reduce((function(e,a){var i=a[0],E=a[1],o=i.split("_"),A=o[0],t=o[1],_=parseFloat(t),L=A===r.awayTeam;return null!==E.over&&null!==E.under&&e.push({line:_,odds:[E.over,E.under],typeId:L?Number(E.typeId)+1:E.typeId,sportId:E.sportId,type:E.type}),e}),[]);return i},_e=function(e,r,a){var i=[];return e.forEach((function(e){var E=ee(e.odds[0])||k,o=ee(e.odds[1])||k;if(E!==k&&o!==k){var A,t=J(r,e.sportId,e.typeId,a);E=(A=null!==t?Z([E,o],t.minSpread,t.targetSpread):Z([E,o],a,0))[0],o=A[1],i.push(q(q({},e),{odds:A}))}})),i},Le=function(){return Le=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},Le.apply(this,arguments)},pe=function(e,r,a,i,E,o,A,t){var _=i.filter((function(r){return r.sportId===String(e.leagueId)})),L=ie(!E,_,a,r,e.leagueId,o,A);L.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=L.errorMessage):e.odds=L.odds.map((function(r){return 0!=r?{american:I("impliedProbability",r).to("moneyline"),decimal:I("impliedProbability",r).to("decimal"),normalizedImplied:r}:(e.errorMessage="Unexpected odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0})}));var p=Ee(r,_,e.leagueId,a,o,t).map((function(r){var a=Le(Le({},e),r);return a.odds.length>0&&(a.odds=a.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:I("impliedProbability",e).to("moneyline"),decimal:I("impliedProbability",e).to("decimal"),normalizedImplied:e}}))),a}));return e.childMarkets=p,e},Se=function(e,r,a){var i=v(r),E=e.homeTeam,o=e.homeTotal,A=e.awayTeam,t=e.awayTotal,L=e.clock,p=e.period,S=e.status,s=parseInt(p);return"completed"==S.toLowerCase()?{allow:!1,message:"Blocking game ".concat(E," - ").concat(A," because it is no longer live.")}:i===_.BASKETBALL?se(E,A,s,a.get(_.BASKETBALL)):i===_.HOCKEY?se(E,A,s,a.get(_.HOCKEY)):i===_.BASEBALL?se(E,A,s,a.get(_.BASEBALL)):i===_.SOCCER?le(E,A,L,p,a.get(_.SOCCER)):i===_.TENNIS?Te(e,E,A,p,o,t,r,i):i===_.VOLLEYBALL?Te(e,E,A,s,o,t,r,i):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},se=function(e,r,a,i){return!Number.isNaN(a)&&a>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},le=function(e,r,a,i,E){var o=Number(a);return!Number.isNaN(o)&&o>=E||Number.isNaN(o)&&"HALF"!=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},Te=function(e,r,a,i,E,o,A,t){var p=Number(i),S=Ne(p,e),s="atp"==e.league.toLowerCase(),l={home:E,away:o};return t==_.VOLLEYBALL?ne(r,a,S,l,de,5==p?Oe:Ie):A.toString().startsWith(L.TENNIS_GS)&&s?ne(r,a,S,l,Re,Pe):A.toString().startsWith(L.TENNIS_GS)&&!s||A.toString().startsWith(L.TENNIS_MASTERS)||A.toString().startsWith(L.SUMMER_OLYMPICS_TENNIS)||A.toString().startsWith(L.TENNIS_WTA)?ne(r,a,S,l,ce,Pe):{allow:!0,message:"The sport ".concat(A," does not have result constraint")}},Ne=function(e,r){var a=0,i=0;switch(e){case 1:a=Number(r.homePeriod1),i=Number(r.awayPeriod1);break;case 2:a=Number(r.homePeriod2),i=Number(r.awayPeriod2);break;case 3:a=Number(r.homePeriod3),i=Number(r.awayPeriod3);break;case 4:a=Number(r.homePeriod4),i=Number(r.awayPeriod4);break;case 5:a=Number(r.homePeriod5),i=Number(r.awayPeriod5)}return{home:a,away:i}},ne=function(e,r,a,i,E,o){return Number(i.home)!=E&&Number(i.away)!=E||!(Number(i.home)==E&&a.home>=o||Number(i.away)==E&&a.away>=o)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(a.home," - ").concat(a.away,")")}},de=2,Ie=20,Oe=10,Re=2,ce=1,Pe=5,Me=function(){return Me=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var E in r=arguments[a])Object.prototype.hasOwnProperty.call(r,E)&&(e[E]=r[E]);return e},Me.apply(this,arguments)},ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display}}))},Ue=function(e){return e.map((function(e){return Me(Me({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status.toLowerCase(),isLive:e.fixture.is_live,clock:e.in_play.clock,period:e.in_play.period?e.in_play.period.toLowerCase():e.in_play.period,homeTeam:e.fixture.home_team_display,awayTeam:e.fixture.away_team_display,homeTotal:e.scores.home.total,awayTotal:e.scores.away.total},me(e.scores.home.periods,"home")),me(e.scores.away.periods,"away"))}))},Ce=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display,isLive:e.is_live,status:e.status,sport:e.sport.id,league:e.league.name,odds:e.odds.map((function(r){return{id:r.id,sportsBookName:r.sportsbook,name:r.name,price:r.price,timestamp:r.timestamp,points:r.points,isMain:r.is_main,isLive:e.is_live,marketName:r.market.toLowerCase(),playerId:r.player_id,selection:r.selection,selectionLine:r.selection_line}}))}}))},me=function(e,r){return Object.values(e).reduce((function(e,a,i){var E;return Me(Me({},e),((E={})["".concat(r,"Period").concat(i+1)]=a,E))}),{})};return r})()));
1
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var i in a)e.o(a,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:a[i]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{AMERICAN_LEAGUES:()=>u,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>M,LEAGUES_NO_LIVE_CONSTRAINTS:()=>C,League:()=>L,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>U,LeagueMap:()=>P,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>T,MoneylineTypes:()=>p,PeriodType:()=>N,Provider:()=>d,ScoringType:()=>l,Sport:()=>_,SpreadTypes:()=>s,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>S,UFC_LEAGUE_IDS:()=>m,ZERO:()=>k,adjustSpreadOnChildOdds:()=>Le,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>le,allowGameSportWithResultConstraint:()=>Ne,allowSoccerGame:()=>Te,calculateImpliedOddsDifference:()=>c,checkGameContraints:()=>Se,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>oe,fetchResultInCurrentSet:()=>de,filterOddsByMarketNameBookmaker:()=>Ee,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>F,getBookmakersArray:()=>O,getLeagueInfo:()=>h,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>w,getLeaguePeriodType:()=>V,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>B,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatMoneylineOdds:()=>_e,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>te,mapOpticOddsApiFixtureOdds:()=>Ue,mapOpticOddsApiFixtures:()=>ue,mapOpticOddsApiResults:()=>me,processMarket:()=>se,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var E in o)Object.prototype.hasOwnProperty.call(o,E)&&(a[E]=o[E])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-i(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var o,E,A={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,i=[0,1],o=[1,0],E=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,o=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==o?i=r:0===o?i=r.substring(1,r.length):o<r.length&&(i=r.substring(0,o)+r.substring(o+1,r.length));var E=i,A=E.toString().length,t=e,_=t.toString().length;0===t&&(_=0);var L,p=A-_;for(L=p;L>0&&E%2==0;L--)E/=2;for(L=p;L>0&&E%5==0;L--)E/=5;return E}(e),A=e,t=Math.pow(10,-r)/2,_=2;_<1e3;_++){var L=Math.floor(A);if(i[_]=L*i[_-1]+i[_-2],Math.abs(i[_])>E)return;if(o[_]=L*o[_-1]+o[_-2],a=i[_]/o[_],Math.abs(a-e)<t||NaN==a)return i[_].toString()+"/"+o[_].toString();A=1/(A-L)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},t=((E=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new E(a)},o);t.prototype.to=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=A[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=i("round",a,-r.precision)),a};var _,L,p,s,S,l,T,N,d,n,I=t.from,O=function(e,r,a){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return a;var o=[];return i.primaryBookmaker&&o.push(i.primaryBookmaker),i.secondaryBookmaker&&o.push(i.secondaryBookmaker),i.tertiaryBookmaker&&o.push(i.tertiaryBookmaker),o}return a},R=function(e,r,a,i,o){var E=e.get(r[0]);if(!E)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=E.homeOdds,t=E.awayOdds,_=a?0:E.drawOdds;if(r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!a&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!a&&1===i.drawOdds)})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"};if(1==r.length)return{homeOdds:A,awayOdds:t,drawOdds:a?0:_};if(r.slice(1).some((function(r){var E=e.get(r);if(E){var L=E.homeOdds,p=E.awayOdds,s=E.drawOdds,S=I("decimal",A).to("impliedProbability"),l=I("decimal",t).to("impliedProbability"),T=a?0:I("decimal",_).to("impliedProbability"),N=I("decimal",L).to("impliedProbability"),d=I("decimal",p).to("impliedProbability"),n=a?0:I("decimal",s).to("impliedProbability"),O=c(S,N),R=c(l,d),P=a?0:c(T,n);if(O>i&&S>o&&N>o||R>i&&l>o&&d>o||!a&&P>i&&T>o&&n>o)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var L=[];return r.forEach((function(r){return L.push(e.get(r))})),{homeOdds:A,awayOdds:t,drawOdds:a?0:_}},c=function(e,r){return Math.abs(e-r)/e*100};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.FUTURES="Futures",e.EMPTY=""}(_||(_={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.AFC_CHAMPIONS_LEAGUE=20128]="AFC_CHAMPIONS_LEAGUE",e[e.EUROCUP=20200]="EUROCUP",e[e.SPAIN_LIGA_ACB=20201]="SPAIN_LIGA_ACB",e[e.ITALY_LEGA_BASKET_SERIE_A=20202]="ITALY_LEGA_BASKET_SERIE_A",e[e.GERMANY_BBL=20203]="GERMANY_BBL",e[e.FRANCE_LNB_PRO_A=20204]="FRANCE_LNB_PRO_A",e[e.CHINA_CBA=20205]="CHINA_CBA",e[e.AUSTRALIA_NBL=20206]="AUSTRALIA_NBL",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1=15312]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2=15313]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3=15314]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4=15315]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5=15316]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6=15317]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7=15318]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15322]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15323]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15324]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15325]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15326]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15327]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15328]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(L||(L={})),function(e){e.MONEYLINE="Moneyline"}(p||(p={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.GOAL_SPREAD="Goal Spread",e.RUN_LINE="Run Line",e.PUCK_LINE="Puck Line"}(s||(s={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(S||(S={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.EMPTY=""}(l||(l={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(T||(T={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.EMPTY=""}(N||(N={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(d||(d={}));var P=((n={})[L.NCAAF]={sport:_.FOOTBALL,id:L.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.NFL]={sport:_.FOOTBALL,id:L.NFL,label:"NFL",opticOddsName:"NFL",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.MLB]={sport:_.BASEBALL,id:L.MLB,label:"MLB",opticOddsName:"MLB",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.INNING,isDrawAvailable:!1},n[L.NBA]={sport:_.BASKETBALL,id:L.NBA,label:"NBA",opticOddsName:"NBA",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.NCAAB]={sport:_.BASKETBALL,id:L.NCAAB,label:"NCAA Basketball",provider:d.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.NHL]={sport:_.HOCKEY,id:L.NHL,label:"NHL",opticOddsName:"NHL",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.OVERTIME,periodType:N.PERIOD,isDrawAvailable:!1},n[L.UFC]={sport:_.FIGHTING,id:L.UFC,label:"UFC",provider:d.OPTICODDS,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},n[L.WNBA]={sport:_.BASKETBALL,id:L.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.MLS]={sport:_.SOCCER,id:L.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.EPL]={sport:_.SOCCER,id:L.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.LIGUE_ONE]={sport:_.SOCCER,id:L.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.BUNDESLIGA]={sport:_.SOCCER,id:L.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.LA_LIGA]={sport:_.SOCCER,id:L.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SERIE_A]={sport:_.SOCCER,id:L.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.UEFA_CL]={sport:_.SOCCER,id:L.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.UEFA_EL]={sport:_.SOCCER,id:L.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.FIFA_WC]={sport:_.SOCCER,id:L.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:d.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.J1_LEAGUE]={sport:_.SOCCER,id:L.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.IPL]={sport:_.CRICKET,id:L.IPL,label:"Indian Premier League",provider:d.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.EMPTY,periodType:N.INNING,isDrawAvailable:!1},n[L.T20_BLAST]={sport:_.CRICKET,id:L.T20_BLAST,label:"T20 Blast",provider:d.RUNDOWN,scoringType:l.POINTS,matchResolveType:T.EMPTY,periodType:N.INNING,isDrawAvailable:!1},n[L.IIHF_WORLD_CHAMPIONSHIP]={sport:_.HOCKEY,id:L.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},n[L.COPA_AMERICA]={sport:_.SOCCER,id:L.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.COPA_LIBERTADORES]={sport:_.SOCCER,id:L.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.UEFA_EURO]={sport:_.SOCCER,id:L.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.EREDIVISIE]={sport:_.SOCCER,id:L.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.PRIMEIRA_LIGA]={sport:_.SOCCER,id:L.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:_.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_SOCCER]={sport:_.SOCCER,id:L.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.FIFA_WC_WOMEN]={sport:_.SOCCER,id:L.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.ENGLAND_CUP]={sport:_.SOCCER,id:L.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.FRANCE_CUP]={sport:_.SOCCER,id:L.FRANCE_CUP,label:"Coupe de France",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SPAIN_CUP]={sport:_.SOCCER,id:L.SPAIN_CUP,label:"Copa del Rey",opticOddsName:"Spain - Copa del Rey",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.ITALY_CUP]={sport:_.SOCCER,id:L.ITALY_CUP,label:"Coppa Italia",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.TENNIS_WTA]={sport:_.TENNIS,id:L.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.TENNIS_GS]={sport:_.TENNIS,id:L.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.TENNIS_MASTERS]={sport:_.TENNIS,id:L.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_TENNIS]={sport:_.TENNIS,id:L.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.GERMANY_CUP]={sport:_.SOCCER,id:L.GERMANY_CUP,label:"DFB Pokal",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.LIGA_MX]={sport:_.SOCCER,id:L.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.BRAZIL_1]={sport:_.SOCCER,id:L.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.UEFA_EURO_U21]={sport:_.SOCCER,id:L.UEFA_EURO_U21,label:"UEFA EURO U21",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.FIFA_WORLD_CUP_U20]={sport:_.SOCCER,id:L.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:_.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_HANDBALL]={sport:_.HANDBALL,id:L.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.EUROLEAGUE]={sport:_.BASKETBALL,id:L.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_BASKETBALL]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:d.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:d.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.FIBA_WORLD_CUP]={sport:_.BASKETBALL,id:L.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:d.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.FORMULA1]={sport:_.MOTOSPORT,id:L.FORMULA1,label:"Formula 1",provider:d.ENETPULSE,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:_.TABLE_TENNIS,id:L.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.MOTOGP]={sport:_.MOTOSPORT,id:L.MOTOGP,label:"MotoGP",provider:d.ENETPULSE,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},n[L.SAUDI_PROFESSIONAL_LEAGUE]={sport:_.SOCCER,id:L.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_WATERPOLO]={sport:_.WATERPOLO,id:L.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.QUARTER,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_VOLEYBALL]={sport:_.VOLLEYBALL,id:L.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:d.ENETPULSE,scoringType:l.SETS,matchResolveType:T.REGULAR,periodType:N.SET,isDrawAvailable:!1},n[L.BOXING]={sport:_.FIGHTING,id:L.BOXING,label:"Boxing",provider:d.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_RUGBY]={sport:_.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:d.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:_.RUGBY,id:L.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:d.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:_.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},n[L.SUMMER_OLYMPICS_HOCKEY]={sport:_.HOCKEY,id:L.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.PERIOD,isDrawAvailable:!0},n[L.UEFA_NATIONS_LEAGUE]={sport:_.SOCCER,id:L.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:d.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.CONCACAF_NATIONS_LEAGUE]={sport:_.SOCCER,id:L.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.CSGO]={sport:_.ESPORTS,id:L.CSGO,label:"CS GO",opticOddsName:"CS2",provider:d.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},n[L.DOTA2]={sport:_.ESPORTS,id:L.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:d.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:d.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:d.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.SUMMER_OLYMPICS_QUALIFICATION]={sport:_.BASKETBALL,id:L.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:d.ENETPULSE,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.LOL]={sport:_.ESPORTS,id:L.LOL,label:"LOL",opticOddsName:"League of Legends",provider:d.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},n[L.CONMEBOL_WC_QUALIFICATIONS]={sport:_.SOCCER,id:L.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.UEFA_CONFERENCE_LEAGUE]={sport:_.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.NON_TITLE_BOXING]={sport:_.FIGHTING,id:L.NON_TITLE_BOXING,label:"Boxing",provider:d.ENETPULSE,scoringType:l.ROUNDS,matchResolveType:T.EMPTY,periodType:N.ROUND,isDrawAvailable:!1},n[L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:L.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:d.ENETPULSE,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.US_ELECTION]={sport:_.POLITICS,id:L.US_ELECTION,label:"US Election 2024",provider:d.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},n[L.UEFA_SUPER_CUP]={sport:_.SOCCER,id:L.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.BRAZIL_CUP]={sport:_.SOCCER,id:L.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.ENGLAND_CHAMPIONSHIP]={sport:_.SOCCER,id:L.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SCOTLAND_PREMIERSHIP]={sport:_.SOCCER,id:L.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.BELGIUM_LEAGUE]={sport:_.SOCCER,id:L.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.CZECH_LEAGUE]={sport:_.SOCCER,id:L.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.CHILE_PRIMERA]={sport:_.SOCCER,id:L.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.FINLAND_LEAGUE]={sport:_.SOCCER,id:L.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.ARGENTINA_PRIMERA]={sport:_.SOCCER,id:L.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.RUSSIA_PREMIER]={sport:_.SOCCER,id:L.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.TURKEY_SUPER_LEAGUE]={sport:_.SOCCER,id:L.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SERBIA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.GREECE_SUPER_LEAGUE]={sport:_.SOCCER,id:L.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.INDIA_PREMIER]={sport:_.SOCCER,id:L.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.CHINA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.AUSTRALIA_A_LEAGUE]={sport:_.SOCCER,id:L.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SWITZERLAND_SUPER_LEAGUE]={sport:_.SOCCER,id:L.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.BUNDESLIGA_2]={sport:_.SOCCER,id:L.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.LA_LIGA_2]={sport:_.SOCCER,id:L.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SERIE_B]={sport:_.SOCCER,id:L.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.INDIA_SUPER_LEAGUE]={sport:_.SOCCER,id:L.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.LIGUE_2]={sport:_.SOCCER,id:L.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.AUSTRIA_BUNDESLIGA]={sport:_.SOCCER,id:L.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.DENMARK_SUPER_LEAGUE]={sport:_.SOCCER,id:L.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.POLAND_LEAGUE]={sport:_.SOCCER,id:L.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.SWEDEN_LEAGUE]={sport:_.SOCCER,id:L.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.COLOMBIA_PRIMERA_A]={sport:_.SOCCER,id:L.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.ENGLAND_EFL_CUP]={sport:_.SOCCER,id:L.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.ENGLAND_LEGAUE_1]={sport:_.SOCCER,id:L.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.URUGUAY_PRIMERA_DIVISION]={sport:_.SOCCER,id:L.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.AFC_CHAMPIONS_LEAGUE]={sport:_.SOCCER,id:L.AFC_CHAMPIONS_LEAGUE,label:"AFC Champions League",opticOddsName:"AFC - Champions League",provider:d.OPTICODDS,scoringType:l.GOALS,matchResolveType:T.REGULAR,periodType:N.HALF,isDrawAvailable:!0},n[L.EUROCUP]={sport:_.BASKETBALL,id:L.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.SPAIN_LIGA_ACB]={sport:_.BASKETBALL,id:L.SPAIN_LIGA_ACB,label:"Spain Liga ACB",opticOddsName:"Spain - Liga ACB",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.ITALY_LEGA_BASKET_SERIE_A]={sport:_.BASKETBALL,id:L.ITALY_LEGA_BASKET_SERIE_A,label:"Italy Lega Basket Serie A",opticOddsName:"Italy - Lega Basket Serie A",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.GERMANY_BBL]={sport:_.BASKETBALL,id:L.GERMANY_BBL,label:"Germany BBL",opticOddsName:"Germany - BBL",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.FRANCE_LNB_PRO_A]={sport:_.BASKETBALL,id:L.FRANCE_LNB_PRO_A,label:"France LNB Pro A",opticOddsName:"France - LNB Pro A",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.CHINA_CBA]={sport:_.BASKETBALL,id:L.CHINA_CBA,label:"China CBA",opticOddsName:"China - CBA",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.AUSTRALIA_NBL]={sport:_.BASKETBALL,id:L.AUSTRALIA_NBL,label:"Australia NBL",opticOddsName:"Australia - NBL",provider:d.OPTICODDS,scoringType:l.POINTS,matchResolveType:T.OVERTIME,periodType:N.QUARTER,isDrawAvailable:!1},n[L.NFL_FUTURES]={sport:_.FUTURES,id:L.NFL_FUTURES,label:"NFL Futures",provider:d.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},n[L.NBA_FUTURES]={sport:_.FUTURES,id:L.NBA_FUTURES,label:"NBA Futures",provider:d.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},n[L.EPL_FUTURES]={sport:_.FUTURES,id:L.EPL_FUTURES,label:"EPL Futures",provider:d.EMPTY,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},n[L.GOLF_H2H]={sport:_.GOLF,id:L.GOLF_H2H,label:"Golf head-to-head",provider:d.JSONODDS,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},n[L.GOLF_WINNER]={sport:_.GOLF,id:L.GOLF_WINNER,label:"Golf Tournament Winner",provider:d.JSONODDS,scoringType:l.EMPTY,matchResolveType:T.EMPTY,periodType:N.EMPTY,isDrawAvailable:!1},n),M=[L.CSGO,L.DOTA2,L.LOL,L.TENNIS_GS,L.TENNIS_MASTERS,L.SUMMER_OLYMPICS_TENNIS,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,L.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,L.TENNIS_MASTERS_LIVE_MAPPING_V2_1,L.TENNIS_MASTERS_LIVE_MAPPING_V2_2,L.TENNIS_MASTERS_LIVE_MAPPING_V2_3,L.TENNIS_MASTERS_LIVE_MAPPING_V2_4,L.TENNIS_MASTERS_LIVE_MAPPING_V2_5,L.TENNIS_MASTERS_LIVE_MAPPING_V2_6,L.TENNIS_MASTERS_LIVE_MAPPING_V2_7,L.TENNIS_MASTERS_LIVE_MAPPING_V2_8,L.TENNIS_MASTERS_LIVE_MAPPING_V2_9,L.TENNIS_MASTERS_LIVE_MAPPING_V2_10,L.TENNIS_MASTERS_LIVE_MAPPING_V2_11,L.TENNIS_MASTERS_LIVE_MAPPING_V2_12,L.TENNIS_MASTERS_LIVE_MAPPING_V2_13,L.TENNIS_MASTERS_LIVE_MAPPING_V2_14,L.TENNIS_MASTERS_LIVE_MAPPING_V2_15,L.TENNIS_MASTERS_LIVE_MAPPING_V2_16,L.TENNIS_MASTERS_LIVE_MAPPING_V2_17,L.TENNIS_MASTERS_LIVE_MAPPING_V2_18,L.TENNIS_MASTERS_LIVE_MAPPING_V2_19,L.TENNIS_MASTERS_LIVE_MAPPING_V2_20,L.TENNIS_MASTERS_LIVE_MAPPING_V2_21,L.TENNIS_MASTERS_LIVE_MAPPING_V2_22,L.TENNIS_WTA_LIVE_MAPPING_V2_1,L.TENNIS_WTA_LIVE_MAPPING_V2_2,L.TENNIS_WTA_LIVE_MAPPING_V2_3,L.TENNIS_WTA_LIVE_MAPPING_V2_4,L.TENNIS_WTA_LIVE_MAPPING_V2_5,L.TENNIS_WTA_LIVE_MAPPING_V2_6,L.TENNIS_WTA_LIVE_MAPPING_V2_7],C=[L.SUMMER_OLYMPICS_RUGBY,L.SUMMER_OLYMPICS_RUGBY_WOMEN],u=[L.NCAAF,L.NFL,L.MLB,L.NBA,L.NCAAB,L.NHL,L.WNBA,L.MLS,L.IPL,L.T20_BLAST],m=[701,702,703,704],U={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},y={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},G={1:"NCAAF",2:"NFL",3:"MLB",4:"NBA",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",138:"Spain - Copa del Rey",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20128:"AFC - Champions League",20200:"Eurocup",20201:"Spain - Liga ACB",20202:"Italy - Lega Basket Serie A",20203:"Germany - BBL",20204:"France - LNB Pro A",20205:"China - CBA",20206:"Australia - NBL"},v=function(e){var r=P[e];return r?r.sport:_.EMPTY},D=function(e){var r=P[e];return r?r.label:""},g=function(e){var r=P[e];return r?r.provider:""},b=function(e){var r=P[e];return!!r&&r.isDrawAvailable},B=function(e){var r=new Set;return e.filter((function(e){return"true"===e.enabled})).map((function(e){return r.add(Number(e.sportId))})),Array.from(r)},F=function(e,r){var a=new Set;return r.filter((function(r){return Number(r.sportId)===Number(e)&&"true"===r.enabled})).map((function(e){return a.add(e.marketName)})),Array.from(a)},h=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},w=function(e){var r=P[e];return r?r.opticOddsName:void 0},V=function(e){var r=P[e];return r?r.periodType:""},f=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Spread"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},Y=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Total"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},H=function(e,r,a,i,o,E){var A,t;if(M.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),t=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),t=o.toLowerCase()==a.toLowerCase()),!0!==A){var _=E.get(i.toLowerCase()),L=E.get(r.toLowerCase()),p=E.get(a.toLowerCase());if([_,L].some((function(e){return null==e})))return!1;A=M.includes(e)?_==L||_==p:_==L}if(!0!==t){var s=E.get(o.toLowerCase());if(L=E.get(r.toLowerCase()),[s,p=E.get(a.toLowerCase())].some((function(e){return null==e})))return!1;t=M.includes(e)&&s==L||s==p}return A&&t},W=function(e,r,a,i){var o;if(v(a)==_.TENNIS){var E=r.getTime(),A=e.getTime();o=Math.abs(A-E)<=Number(60*i*1e3)}else o=r.toUTCString()==e.toUTCString();return o},k=0,K="Draw",Q=0,j=.2,x=10001,X=10002,z=100,Z=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(i-1)))return e;a=r}var o=1+a/100,E=o/i,A=e.map((function(e){return e*E}));if(A.some((function(e){return e>=1})))return Array(e.length).fill(0);var t=A.reduce((function(e,r){return e+r}),0);if(t<1)return Array(e.length).fill(0);var _=o/t;return A.map((function(e){return e*_}))},J=function(e,r,a,i){var o=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return o?{minSpread:o.minSpread?Number(o.minSpread):i,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:i,targetSpread:0}},q=function(){return q=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,o=0,E=r.length;o<E;o++)!i&&o in r||(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return e.concat(i||Array.prototype.slice.call(r))},ee=function(e){return e===k?0:re("decimal","impliedProbability",e)},re=function(e,r,a){try{return I(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,o){var E=new Map;return a.forEach((function(a){var A=0,t=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==t.length&&(A=t[0].price);var _=0,L=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==L.length&&(_=L[0].price);var p=0;if(!o){var s=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==s.length&&(p=s[0].price)}E.set(a.toLowerCase(),{homeOdds:A,awayOdds:_,drawOdds:p})})),E},ie=function(e,r,a,i,o,E,A){var t={homeTeam:i.homeTeam,awayTeam:i.awayTeam},_=ae(i.odds,p.MONEYLINE,a,t,e),L=R(_,a,e,A,j);if(L.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:L.errorMessage};var s=(e?[L.homeOdds,L.awayOdds]:[L.homeOdds,L.awayOdds,L.drawOdds]).map((function(e){return ee(e)})),S=J(r,o,Q,E);return{odds:s=null!==S?Z(s,S.minSpread,S.targetSpread):Z(s,E,0)}},oe=function(e,r,a,i,o,E){var A=[[],[],[],[]],t=A[0],_=A[1],L=A[2],p=A[3],s=h(a,E),S={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(s.length>0){Ee(e.odds,s,i[0]).forEach((function(e){"Total"===e.type?.5===Math.abs(Number(e.points)%1)&&_.push(e):"Spread"===e.type?.5===Math.abs(Number(e.points)%1)&&t.push(e):"Moneyline"===e.type&&L.push(e)}));var l=$($($([],Ae(t,S),!0),te(_,S),!0),_e(L,S),!0);Le(l,r,o).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line||0),odds:e.odds},a=s.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,o=null==a?void 0:a.maxOdds;i&&o&&(e.odds[0]>=i||e.odds[0]<=o||e.odds[1]>=i||e.odds[1]<=o)||p.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return p},Ee=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==p.MONEYLINE.toLowerCase()})).map((function(e){return e.marketName.toLowerCase()}));return e.filter((function(e){return i.includes(e.marketName.toLowerCase())&&e.sportsBookName.toLowerCase()==a.toLowerCase()})).map((function(e){return q(q({},e),r.find((function(r){return r.marketName.toLowerCase()===e.marketName.toLowerCase()})))}))},Ae=function(e,r){var a=e.reduce((function(e,a){var i=a.points,o=a.marketName,E=a.price,A=a.selection,t=a.typeId,_=a.sportId,L=a.type,p=A===r.homeTeam,s="".concat(o,"_").concat(p?i:-i);return e[s]||(e[s]={home:null,away:null,typeId:null,sportId:null}),p?e[s].home=E:e[s].away=E,e[s].typeId=t,e[s].type=L,e[s].sportId=_,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],o=a.split("_"),E=(o[0],o[1]),A=parseFloat(E);return null!==i.home&&null!==i.away&&e.push({line:A,odds:[i.home,i.away],typeId:i.typeId,sportId:i.sportId,type:i.type}),e}),[]);return i},te=function(e,r){var a=e.reduce((function(e,r){if(r){var a="".concat(r.marketName,"_").concat(r.selection,"_").concat(r.points);e[a]||(e[a]={over:null,under:null}),"over"===r.selectionLine?e[a].over=r.price:"under"===r.selectionLine&&(e[a].under=r.price),e[a].typeId=r.typeId,e[a].type=r.type,e[a].sportId=r.sportId}return e}),{}),i=Object.entries(a).reduce((function(e,a){var i=a[0],o=a[1],E=i.split("_"),A=(E[0],E[1]),t=E[2],_=parseFloat(t),L=A===r.awayTeam;return null!==o.over&&null!==o.under&&e.push({line:_,odds:[o.over,o.under],typeId:L?Number(o.typeId)+1:o.typeId,sportId:o.sportId,type:o.type}),e}),[]);return i},_e=function(e,r){var a=e.reduce((function(e,a){var i=a.price,o=a.selection,E=a.typeId,A=a.sportId,t=a.type,_=E;return e[_]||(e[_]={home:null,away:null,draw:null,typeId:null,sportId:null}),o.toLowerCase()===r.homeTeam.toLowerCase()?e[_].home=i:o.toLowerCase()===r.awayTeam.toLowerCase()?e[_].away=i:o.toLowerCase()===K.toLowerCase()&&(e[_].draw=i),e[_].typeId=E,e[_].type=t,e[_].sportId=A,e}),{}),i=Object.entries(a).reduce((function(e,r){r[0];var a=r[1];return null!==a.home&&null!==a.away&&e.push({odds:[a.home,a.away,a.draw],typeId:a.typeId,sportId:a.sportId,type:a.type}),e}),[]);return i},Le=function(e,r,a){var i=[];return e.forEach((function(e){var o=3===e.odds.length,E=ee(e.odds[0])||k,A=ee(e.odds[1])||k,t=ee(e.odds[2])||k,_=o?[E,A,t]:[E,A];if(!(E===k||A===k||o&&t===k)){var L,p=J(r,e.sportId,e.typeId,a);L=null!==p?Z(_,p.minSpread,p.targetSpread):Z(_,a,0),i.push(q(q({},e),{odds:L}))}})),i},pe=function(){return pe=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},pe.apply(this,arguments)},se=function(e,r,a,i,o,E,A,t){var _=i.filter((function(r){return r.sportId===String(e.leagueId)})),L=ie(!o,_,a,r,e.leagueId,E,A);L.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=L.errorMessage):e.odds=L.odds.map((function(r){return 0!=r?{american:I("impliedProbability",r).to("moneyline"),decimal:I("impliedProbability",r).to("decimal"),normalizedImplied:r}:(e.errorMessage="Bad odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0})}));var p=oe(r,_,e.leagueId,a,E,t).map((function(r){var a=pe(pe({},e),r);return a.odds.length>0&&(a.odds=a.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:I("impliedProbability",e).to("moneyline"),decimal:I("impliedProbability",e).to("decimal"),normalizedImplied:e}}))),a}));return e.childMarkets=p,e},Se=function(e,r,a){var i=v(r),o=e.homeTeam,E=e.homeTotal,A=e.awayTeam,t=e.awayTotal,L=e.clock,p=e.period,s=e.status,S=parseInt(p);return"completed"==s.toLowerCase()?{allow:!1,message:"Blocking game ".concat(o," - ").concat(A," because it is no longer live.")}:i===_.BASKETBALL?le(o,A,S,a.get(_.BASKETBALL)):i===_.HOCKEY?le(o,A,S,a.get(_.HOCKEY)):i===_.BASEBALL?le(o,A,S,a.get(_.BASEBALL)):i===_.SOCCER?Te(o,A,L,p,a.get(_.SOCCER)):i===_.TENNIS?Ne(e,o,A,p,E,t,r,i):i===_.VOLLEYBALL?Ne(e,o,A,S,E,t,r,i):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},le=function(e,r,a,i){return!Number.isNaN(a)&&a>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},Te=function(e,r,a,i,o){var E=Number(a);return!Number.isNaN(E)&&E>=o||Number.isNaN(E)&&"HALF"!=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},Ne=function(e,r,a,i,o,E,A,t){var p=Number(i),s=de(p,e),S="atp"==e.league.toLowerCase(),l={home:o,away:E};return t==_.VOLLEYBALL?ne(r,a,s,l,Ie,5==p?Re:Oe):A.toString().startsWith(L.TENNIS_GS)&&S?ne(r,a,s,l,ce,Me):A.toString().startsWith(L.TENNIS_GS)&&!S||A.toString().startsWith(L.TENNIS_MASTERS)||A.toString().startsWith(L.SUMMER_OLYMPICS_TENNIS)||A.toString().startsWith(L.TENNIS_WTA)?ne(r,a,s,l,Pe,Me):{allow:!0,message:"The sport ".concat(A," does not have result constraint")}},de=function(e,r){var a=0,i=0;switch(e){case 1:a=Number(r.homePeriod1),i=Number(r.awayPeriod1);break;case 2:a=Number(r.homePeriod2),i=Number(r.awayPeriod2);break;case 3:a=Number(r.homePeriod3),i=Number(r.awayPeriod3);break;case 4:a=Number(r.homePeriod4),i=Number(r.awayPeriod4);break;case 5:a=Number(r.homePeriod5),i=Number(r.awayPeriod5)}return{home:a,away:i}},ne=function(e,r,a,i,o,E){return Number(i.home)!=o&&Number(i.away)!=o||!(Number(i.home)==o&&a.home>=E||Number(i.away)==o&&a.away>=E)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(a.home," - ").concat(a.away,")")}},Ie=2,Oe=20,Re=10,ce=2,Pe=1,Me=5,Ce=function(){return Ce=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Ce.apply(this,arguments)},ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display}}))},me=function(e){return e.map((function(e){return Ce(Ce({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status.toLowerCase(),isLive:e.fixture.is_live,clock:e.in_play.clock,period:e.in_play.period?e.in_play.period.toLowerCase():e.in_play.period,homeTeam:e.fixture.home_team_display,awayTeam:e.fixture.away_team_display,homeTotal:e.scores.home.total,awayTotal:e.scores.away.total},ye(e.scores.home.periods,"home")),ye(e.scores.away.periods,"away"))}))},Ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display,isLive:e.is_live,status:e.status,sport:e.sport.id,league:e.league.name,odds:e.odds.map((function(r){return{id:r.id,sportsBookName:r.sportsbook,name:r.name,price:r.price,timestamp:r.timestamp,points:r.points,isMain:r.is_main,isLive:e.is_live,marketName:r.market.toLowerCase(),playerId:r.player_id,selection:r.selection,selectionLine:r.selection_line}}))}}))},ye=function(e,r){return Object.values(e).reduce((function(e,a,i){var o;return Ce(Ce({},e),((o={})["".concat(r,"Period").concat(i+1)]=a,o))}),{})};return r})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overtime-live-trading-utils",
3
- "version": "0.0.152",
3
+ "version": "0.0.153",
4
4
  "description": "",
5
5
  "main": "main.js",
6
6
  "scripts": {
@@ -340,7 +340,8 @@ export const LeagueMap = {
340
340
  sport: Sport.SOCCER,
341
341
  id: League.SPAIN_CUP,
342
342
  label: 'Copa del Rey',
343
- provider: Provider.ENETPULSE,
343
+ opticOddsName: 'Spain - Copa del Rey',
344
+ provider: Provider.OPTICODDS,
344
345
  scoringType: ScoringType.GOALS,
345
346
  matchResolveType: MatchResolveType.REGULAR,
346
347
  periodType: PeriodType.HALF,
@@ -1152,6 +1153,17 @@ export const LeagueMap = {
1152
1153
  periodType: PeriodType.HALF,
1153
1154
  isDrawAvailable: true,
1154
1155
  },
1156
+ [League.AFC_CHAMPIONS_LEAGUE]: {
1157
+ sport: Sport.SOCCER,
1158
+ id: League.AFC_CHAMPIONS_LEAGUE,
1159
+ label: 'AFC Champions League',
1160
+ opticOddsName: 'AFC - Champions League',
1161
+ provider: Provider.OPTICODDS,
1162
+ scoringType: ScoringType.GOALS,
1163
+ matchResolveType: MatchResolveType.REGULAR,
1164
+ periodType: PeriodType.HALF,
1165
+ isDrawAvailable: true,
1166
+ },
1155
1167
  [League.EUROCUP]: {
1156
1168
  sport: Sport.BASKETBALL,
1157
1169
  id: League.EUROCUP,
@@ -1163,6 +1175,72 @@ export const LeagueMap = {
1163
1175
  periodType: PeriodType.QUARTER,
1164
1176
  isDrawAvailable: false,
1165
1177
  },
1178
+ [League.SPAIN_LIGA_ACB]: {
1179
+ sport: Sport.BASKETBALL,
1180
+ id: League.SPAIN_LIGA_ACB,
1181
+ label: 'Spain Liga ACB',
1182
+ opticOddsName: 'Spain - Liga ACB',
1183
+ provider: Provider.OPTICODDS,
1184
+ scoringType: ScoringType.POINTS,
1185
+ matchResolveType: MatchResolveType.OVERTIME,
1186
+ periodType: PeriodType.QUARTER,
1187
+ isDrawAvailable: false,
1188
+ },
1189
+ [League.ITALY_LEGA_BASKET_SERIE_A]: {
1190
+ sport: Sport.BASKETBALL,
1191
+ id: League.ITALY_LEGA_BASKET_SERIE_A,
1192
+ label: 'Italy Lega Basket Serie A',
1193
+ opticOddsName: 'Italy - Lega Basket Serie A',
1194
+ provider: Provider.OPTICODDS,
1195
+ scoringType: ScoringType.POINTS,
1196
+ matchResolveType: MatchResolveType.OVERTIME,
1197
+ periodType: PeriodType.QUARTER,
1198
+ isDrawAvailable: false,
1199
+ },
1200
+ [League.GERMANY_BBL]: {
1201
+ sport: Sport.BASKETBALL,
1202
+ id: League.GERMANY_BBL,
1203
+ label: 'Germany BBL',
1204
+ opticOddsName: 'Germany - BBL',
1205
+ provider: Provider.OPTICODDS,
1206
+ scoringType: ScoringType.POINTS,
1207
+ matchResolveType: MatchResolveType.OVERTIME,
1208
+ periodType: PeriodType.QUARTER,
1209
+ isDrawAvailable: false,
1210
+ },
1211
+ [League.FRANCE_LNB_PRO_A]: {
1212
+ sport: Sport.BASKETBALL,
1213
+ id: League.FRANCE_LNB_PRO_A,
1214
+ label: 'France LNB Pro A',
1215
+ opticOddsName: 'France - LNB Pro A',
1216
+ provider: Provider.OPTICODDS,
1217
+ scoringType: ScoringType.POINTS,
1218
+ matchResolveType: MatchResolveType.OVERTIME,
1219
+ periodType: PeriodType.QUARTER,
1220
+ isDrawAvailable: false,
1221
+ },
1222
+ [League.CHINA_CBA]: {
1223
+ sport: Sport.BASKETBALL,
1224
+ id: League.CHINA_CBA,
1225
+ label: 'China CBA',
1226
+ opticOddsName: 'China - CBA',
1227
+ provider: Provider.OPTICODDS,
1228
+ scoringType: ScoringType.POINTS,
1229
+ matchResolveType: MatchResolveType.OVERTIME,
1230
+ periodType: PeriodType.QUARTER,
1231
+ isDrawAvailable: false,
1232
+ },
1233
+ [League.AUSTRALIA_NBL]: {
1234
+ sport: Sport.BASKETBALL,
1235
+ id: League.AUSTRALIA_NBL,
1236
+ label: 'Australia NBL',
1237
+ opticOddsName: 'Australia - NBL',
1238
+ provider: Provider.OPTICODDS,
1239
+ scoringType: ScoringType.POINTS,
1240
+ matchResolveType: MatchResolveType.OVERTIME,
1241
+ periodType: PeriodType.QUARTER,
1242
+ isDrawAvailable: false,
1243
+ },
1166
1244
  [League.NFL_FUTURES]: {
1167
1245
  sport: Sport.FUTURES,
1168
1246
  id: League.NFL_FUTURES,
@@ -1393,6 +1471,7 @@ export const LeagueIdMapOpticOdds = {
1393
1471
  45: 'CONMEBOL - Copa Libertadores',
1394
1472
  57: 'Netherlands - Eredivisie',
1395
1473
  61: 'Portugal - Primeira Liga',
1474
+ 138: 'Spain - Copa del Rey',
1396
1475
  230: 'Mexico - Liga MX',
1397
1476
  268: 'Brazil - Serie A',
1398
1477
  399: 'Euroleague',
@@ -1432,5 +1511,12 @@ export const LeagueIdMapOpticOdds = {
1432
1511
  20125: 'England - EFL Cup',
1433
1512
  20126: 'England - League 1',
1434
1513
  20127: 'Uruguay - Primera Division',
1514
+ 20128: 'AFC - Champions League',
1435
1515
  20200: 'Eurocup',
1516
+ 20201: 'Spain - Liga ACB',
1517
+ 20202: 'Italy - Lega Basket Serie A',
1518
+ 20203: 'Germany - BBL',
1519
+ 20204: 'France - LNB Pro A',
1520
+ 20205: 'China - CBA',
1521
+ 20206: 'Australia - NBL',
1436
1522
  };
@@ -128,7 +128,14 @@ export enum League {
128
128
  ENGLAND_EFL_CUP = 20125,
129
129
  ENGLAND_LEGAUE_1 = 20126,
130
130
  URUGUAY_PRIMERA_DIVISION = 20127,
131
+ AFC_CHAMPIONS_LEAGUE = 20128,
131
132
  EUROCUP = 20200,
133
+ SPAIN_LIGA_ACB = 20201,
134
+ ITALY_LEGA_BASKET_SERIE_A = 20202,
135
+ GERMANY_BBL = 20203,
136
+ FRANCE_LNB_PRO_A = 20204,
137
+ CHINA_CBA = 20205,
138
+ AUSTRALIA_NBL = 20206,
132
139
  NFL_FUTURES = 30002,
133
140
  NBA_FUTURES = 30004,
134
141
  EPL_FUTURES = 30011,
@@ -58,7 +58,7 @@ export const processMarket = (
58
58
  normalizedImplied: _odd,
59
59
  };
60
60
  } else {
61
- market.errorMessage = 'Unexpected odds after spread adjustment';
61
+ market.errorMessage = 'Bad odds after spread adjustment';
62
62
  return {
63
63
  american: 0,
64
64
  decimal: 0,
package/src/utils/odds.ts CHANGED
@@ -191,7 +191,7 @@ export const createChildMarkets: (
191
191
  defaultSpreadForLiveMarkets,
192
192
  leagueMap
193
193
  ) => {
194
- const [spreadOdds, totalOdds, childMarkets]: any[] = [[], [], []];
194
+ const [spreadOdds, totalOdds, moneylineOdds, childMarkets]: any[] = [[], [], [], []];
195
195
  const leagueInfo = getLeagueInfo(leagueId, leagueMap);
196
196
  const commonData = {
197
197
  homeTeam: apiResponseWithOdds.homeTeam,
@@ -205,19 +205,20 @@ export const createChildMarkets: (
205
205
  liveOddsProviders[0]
206
206
  );
207
207
 
208
- const allValidOdds = allChildOdds.filter((odd) => odd && Math.abs(Number(odd.points) % 1) === 0.5) as any;
209
-
210
- allValidOdds.forEach((odd) => {
208
+ allChildOdds.forEach((odd) => {
211
209
  if (odd.type === 'Total') {
212
- totalOdds.push(odd);
210
+ if (Math.abs(Number(odd.points) % 1) === 0.5) totalOdds.push(odd);
213
211
  } else if (odd.type === 'Spread') {
214
- spreadOdds.push(odd);
212
+ if (Math.abs(Number(odd.points) % 1) === 0.5) spreadOdds.push(odd);
213
+ } else if (odd.type === 'Moneyline') {
214
+ moneylineOdds.push(odd);
215
215
  }
216
216
  });
217
217
 
218
218
  const formattedOdds = [
219
219
  ...groupAndFormatSpreadOdds(spreadOdds, commonData),
220
220
  ...groupAndFormatTotalOdds(totalOdds, commonData),
221
+ ...groupAndFormatMoneylineOdds(moneylineOdds, commonData),
221
222
  ];
222
223
 
223
224
  const oddsWithSpreadAdjusted = adjustSpreadOnChildOdds(
@@ -231,7 +232,7 @@ export const createChildMarkets: (
231
232
  leagueId: Number(data.sportId),
232
233
  typeId: Number(data.typeId),
233
234
  type: data.type.toLowerCase(),
234
- line: Number(data.line),
235
+ line: Number(data.line || 0),
235
236
  odds: data.odds,
236
237
  };
237
238
  const leagueInfoByTypeId = leagueInfo.find((league) => Number(league.typeId) === Number(data.typeId));
@@ -294,10 +295,10 @@ export const filterOddsByMarketNameBookmaker = (oddsArray, leagueInfos: LeagueIn
294
295
  export const groupAndFormatSpreadOdds = (oddsArray, commonData) => {
295
296
  // Group odds by their selection points and selection
296
297
  const groupedOdds = oddsArray.reduce((acc: any, odd: any) => {
297
- const { points, price, selection, typeId, sportId, type } = odd;
298
+ const { points, marketName, price, selection, typeId, sportId, type } = odd;
298
299
  const isHomeTeam = selection === commonData.homeTeam;
299
300
 
300
- const key = isHomeTeam ? points : -points;
301
+ const key = `${marketName}_${isHomeTeam ? points : -points}`;
301
302
 
302
303
  if (!acc[key]) {
303
304
  acc[key] = { home: null, away: null, typeId: null, sportId: null };
@@ -317,7 +318,8 @@ export const groupAndFormatSpreadOdds = (oddsArray, commonData) => {
317
318
  }, {}) as any;
318
319
  // Format the grouped odds into the desired output
319
320
  const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [key, value]) => {
320
- const line = parseFloat(key);
321
+ const [_marketName, lineFloat] = key.split('_');
322
+ const line = parseFloat(lineFloat);
321
323
  if ((value as any).home !== null && (value as any).away !== null) {
322
324
  acc.push({
323
325
  line: line as any,
@@ -343,7 +345,7 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
343
345
  // Group odds by their selection points and selection
344
346
  const groupedOdds = oddsArray.reduce((acc, odd) => {
345
347
  if (odd) {
346
- const key = `${odd.selection}_${odd.points}`;
348
+ const key = `${odd.marketName}_${odd.selection}_${odd.points}`;
347
349
  if (!acc[key]) {
348
350
  acc[key] = { over: null, under: null };
349
351
  }
@@ -363,7 +365,7 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
363
365
 
364
366
  // Format the grouped odds into the desired output
365
367
  const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [key, value]) => {
366
- const [selection, selectionLine] = key.split('_');
368
+ const [_marketName, selection, selectionLine] = key.split('_');
367
369
  const line = parseFloat(selectionLine);
368
370
 
369
371
  // if we have away team in total odds we know the market is team total and we need to increase typeId by one.
@@ -384,12 +386,59 @@ export const groupAndFormatTotalOdds = (oddsArray, commonData) => {
384
386
  return formattedOdds;
385
387
  };
386
388
 
389
+ /**
390
+ * Groups spread odds by their lines and formats the result.
391
+ *
392
+ * @param {Array} oddsArray - The input array of odds objects.
393
+ * @param {Object} commonData - The common data object containing homeTeam information.
394
+ * @returns {Array} The grouped and formatted spread odds.
395
+ */
396
+ export const groupAndFormatMoneylineOdds = (oddsArray, commonData) => {
397
+ // Group odds by their selection points and selection
398
+ const groupedOdds = oddsArray.reduce((acc: any, odd: any) => {
399
+ const { price, selection, typeId, sportId, type } = odd;
400
+ const key = typeId;
401
+
402
+ if (!acc[key]) {
403
+ acc[key] = { home: null, away: null, draw: null, typeId: null, sportId: null };
404
+ }
405
+
406
+ if (selection.toLowerCase() === commonData.homeTeam.toLowerCase()) acc[key].home = price;
407
+ else if (selection.toLowerCase() === commonData.awayTeam.toLowerCase()) acc[key].away = price;
408
+ else if (selection.toLowerCase() === DRAW.toLowerCase()) acc[key].draw = price;
409
+
410
+ acc[key].typeId = typeId;
411
+ acc[key].type = type;
412
+ acc[key].sportId = sportId;
413
+
414
+ return acc;
415
+ }, {}) as any;
416
+ // Format the grouped odds into the desired output
417
+ const formattedOdds = (Object.entries(groupedOdds as any) as any).reduce((acc, [_key, value]) => {
418
+ if ((value as any).home !== null && (value as any).away !== null) {
419
+ acc.push({
420
+ odds: [(value as any).home, (value as any).away, (value as any).draw],
421
+ typeId: value.typeId,
422
+ sportId: value.sportId,
423
+ type: value.type,
424
+ });
425
+ }
426
+ return acc;
427
+ }, []);
428
+
429
+ return formattedOdds;
430
+ };
431
+
387
432
  export const adjustSpreadOnChildOdds = (iterableGroupedOdds, spreadDataForSport, defaultSpreadForLiveMarkets) => {
388
433
  const result: any[] = [];
389
434
  iterableGroupedOdds.forEach((data) => {
390
- let homeTeamOdds = convertOddsToImpl(data.odds[0]) || ZERO;
391
- let awayTeamOdds = convertOddsToImpl(data.odds[1]) || ZERO;
392
- let isZeroOddsChild = homeTeamOdds === ZERO || awayTeamOdds === ZERO;
435
+ const hasDrawOdds = data.odds.length === 3;
436
+ const homeTeamOdds = convertOddsToImpl(data.odds[0]) || ZERO;
437
+ const awayTeamOdds = convertOddsToImpl(data.odds[1]) || ZERO;
438
+ const drawOdds = convertOddsToImpl(data.odds[2]) || ZERO;
439
+ const odds = hasDrawOdds ? [homeTeamOdds, awayTeamOdds, drawOdds] : [homeTeamOdds, awayTeamOdds];
440
+
441
+ const isZeroOddsChild = homeTeamOdds === ZERO || awayTeamOdds === ZERO || (hasDrawOdds && drawOdds === ZERO);
393
442
  if (!isZeroOddsChild) {
394
443
  const spreadData = getSpreadData(
395
444
  spreadDataForSport,
@@ -399,15 +448,11 @@ export const adjustSpreadOnChildOdds = (iterableGroupedOdds, spreadDataForSport,
399
448
  );
400
449
  let adjustedOdds;
401
450
  if (spreadData !== null) {
402
- adjustedOdds = adjustSpreadOnOdds(
403
- [homeTeamOdds, awayTeamOdds],
404
- spreadData.minSpread,
405
- spreadData.targetSpread
406
- );
451
+ adjustedOdds = adjustSpreadOnOdds(odds, spreadData.minSpread, spreadData.targetSpread);
407
452
  } else {
408
- adjustedOdds = adjustSpreadOnOdds([homeTeamOdds, awayTeamOdds], defaultSpreadForLiveMarkets, 0);
453
+ adjustedOdds = adjustSpreadOnOdds(odds, defaultSpreadForLiveMarkets, 0);
409
454
  }
410
- [homeTeamOdds, awayTeamOdds] = adjustedOdds;
455
+
411
456
  result.push({
412
457
  ...data,
413
458
  odds: adjustedOdds,