overtime-live-trading-utils 0.0.112 → 0.0.113

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,a){"object"==typeof exports&&"object"==typeof module?module.exports=a():"function"==typeof define&&define.amd?define([],a):"object"==typeof exports?exports.thalesUtils=a():e.thalesUtils=a()}(this,(()=>(()=>{"use strict";var e={d:(a,r)=>{for(var o in r)e.o(r,o)&&!e.o(a,o)&&Object.defineProperty(a,o,{enumerable:!0,get:r[o]})},o:(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},a={};e.r(a),e.d(a,{AMERICAN_LEAGUES:()=>b,DRAW:()=>k,LEAGUES_NO_FORMAL_HOME_AWAY:()=>v,LEAGUES_NO_LIVE_CONSTRAINTS:()=>u,LIVE_TYPE_ID_BASE:()=>H,LeagueMap:()=>T,MIN_ODDS_FOR_DIFF_CHECKING:()=>B,MULTIPLIER_100:()=>U,SportIdMapEnetpulse:()=>L,SportIdMapOpticOdds:()=>h,SportIdMapRundown:()=>g,TAG_CHILD_SPREAD:()=>_,TAG_CHILD_TOTALS:()=>I,UFC_LEAGUE_IDS:()=>m,ZERO:()=>P,adjustSpreadOnOdds:()=>W,calculateImpliedOddsDifference:()=>y,checkOddsFromBookmakers:()=>c,createSpreadChildMarkets:()=>re,createTotalChildMarkets:()=>oe,filterOddsByMarketNameBookmaker:()=>Q,filterOddsByMarketNameTeamNameBookmaker:()=>q,formatSpreadOdds:()=>K,gamesDatesMatching:()=>E,getBetTypesForLeague:()=>w,getBookmakersArray:()=>d,getIsLiveSupported:()=>M,getLeagueIsDrawAvailable:()=>O,getLeagueLabel:()=>f,getLeagueOpticOddsName:()=>D,getLeaguePeriodType:()=>R,getLeagueProvider:()=>A,getLeagueSport:()=>F,getLeagueSpreadType:()=>N,getLeagueTotalType:()=>C,getLiveSupportedLeagues:()=>S,getParentOdds:()=>J,getSpreadData:()=>j,groupAndFormatSpreadOdds:()=>X,groupOddsBySelectionAndPoints:()=>Z,processMarket:()=>ee,processTotalOdds:()=>Y,statusCodes:()=>V,teamNamesMatching:()=>G}),"function"!=typeof Object.assign&&(Object.assign=function(e,a){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var r=Object(e),o=1;o<arguments.length;o++){var i=arguments[o];if(null!=i)for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&(r[t]=i[t])}return r});var r=function(e){return parseFloat(e.toPrecision(12))};function o(e,a,r){return void 0===r||0==+r?Math[e](a):(a=+a,r=+r,isNaN(a)||"number"!=typeof r||r%1!=0?NaN:a<0?-o(e,-a,r):(a=a.toString().split("e"),+((a=(a=Math[e](+(a[0]+"e"+(a[1]?+a[1]-r:-r)))).toString().split("e"))[0]+"e"+(a[1]?+a[1]+r:r))))}var i,t,s={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?r(100*(this.decimalValue-1)):r(-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 r(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 a=r(100/this.decimalValue);return null!==e.precision&&(a=o("round",a,-e.precision)),a.toString()+"%"}return r(1/this.decimalValue)}},fractional:{from:function(e){var a,r=e.toString().split("/");if(e=parseFloat(r[0]),2===r.length)a=parseFloat(r[1]);else{if(1!==r.length)throw new Error("Invalid fraction");a=1}if(0===e||0===a||e/a<=0)throw new Error("Outside valid range");return 1+e/a},to:function(e){return function(e,a){for(var r,o=[0,1],i=[1,0],t=function(e){var a=null,r=e.toString().indexOf("E");-1==r&&(r=e.toString().indexOf("e"));var o=null,i=(a=-1==r?e.toString():e.toString().substring(0,r)).toString().indexOf(".");-1==i?o=a:0===i?o=a.substring(1,a.length):i<a.length&&(o=a.substring(0,i)+a.substring(i+1,a.length));var t=o,s=t.toString().length,l=e,p=l.toString().length;0===l&&(p=0);var n,d=s-p;for(n=d;n>0&&t%2==0;n--)t/=2;for(n=d;n>0&&t%5==0;n--)t/=5;return t}(e),s=e,l=Math.pow(10,-a)/2,p=2;p<1e3;p++){var n=Math.floor(s);if(o[p]=n*o[p-1]+o[p-2],Math.abs(o[p])>t)return;if(i[p]=n*i[p-1]+i[p-2],r=o[p]/i[p],Math.abs(r-e)<l||NaN==r)return o[p].toString()+"/"+i[p].toString();s=1/(s-n)}}(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?r(this.decimalValue-1):r(-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?r(-1/(this.decimalValue-1)):r(this.decimalValue-1)}}},l=((t=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=r(e)}).prototype=(i=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,i.from=function(e,a){if(!s.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var r=s[e].from(a);return new t(r)},i);l.prototype.to=function(e,a){if(!s.hasOwnProperty(e))throw new Error("Unknown format "+e+".");a=Object.assign({precision:null,percentage:!1},a);var r=s[e].to.call(this,a);return"number"==typeof r&&null!==a.precision&&(r=o("round",r,-a.precision)),r};var p,n=l.from,d=function(e,a,r){var o=e.find((function(e){return Number(e.sportId)===Number(a)}));if(o){if(""==o.primaryBookmaker)return r;var i=[];return o.primaryBookmaker&&i.push(o.primaryBookmaker),o.secondaryBookmaker&&i.push(o.secondaryBookmaker),o.tertiaryBookmaker&&i.push(o.tertiaryBookmaker),i}return r},c=function(e,a,r,o,i){var t=e.get(a[0]);if(!t)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var s=t.homeOdds,l=t.awayOdds,p=r?0:t.drawOdds;if(a.some((function(a){var o=e.get(a);return!!o&&(0===o.homeOdds||0===o.awayOdds||!r&&0===o.drawOdds||1===o.homeOdds||1===o.awayOdds||!r&&1===o.drawOdds)})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"};if(1==a.length)return{homeOdds:s,awayOdds:l,drawOdds:r?0:p};if(a.slice(1).some((function(a){var t=e[a];if(t){var d=t.homeOdds,c=t.awayOdds,T=t.drawOdds,v=n("decimal",s).to("impliedProbability"),u=n("decimal",l).to("impliedProbability"),b=r?0:n("decimal",p).to("impliedProbability"),m=n("decimal",d).to("impliedProbability"),g=n("decimal",c).to("impliedProbability"),L=r?0:n("decimal",T).to("impliedProbability"),h=y(v,m),F=y(u,g),f=r?0:y(b,L);if(h>o&&v>i&&m>i||F>o&&u>i&&g>i||!r&&f>o&&b>i&&L>i)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var d=[];return a.forEach((function(a){return d.push(e.get(a))})),{homeOdds:s,awayOdds:l,drawOdds:r?0:p}},y=function(e,a){var r=Math.abs(e-a)/e*100;return console.log("% diff: "+r),r},T=((p={})[1]={sport:"Football",id:1,label:"NCAA Football",provider:"opticOdds",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[2]={sport:"Football",id:2,label:"NFL",opticOddsName:"NFL",provider:"opticOdds",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:["Moneyline","Point Spread","Total Points"],betTypesForLiveTestnet:["Moneyline","Point Spread","Total Points"]},p[3]={sport:"Baseball",id:3,label:"MLB",opticOddsName:"MLB",provider:"opticOdds",scoringType:"points",matchResolveType:"overtime",periodType:"inning",isDrawAvailable:!1,betTypesForLive:["Moneyline","Run Line","Total Runs"],betTypesForLiveTestnet:["Moneyline","Run Line","Total Runs"]},p[4]={sport:"Basketball",id:4,label:"NBA",opticOddsName:"NBA",provider:"rundown",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:["Moneyline","Point Spread","Total Points"],betTypesForLiveTestnet:["Moneyline","Point Spread","Total Points"]},p[5]={sport:"Basketball",id:5,label:"NCAA Basketball",provider:"rundown",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:["Moneyline","Point Spread","Total Points"],betTypesForLiveTestnet:["Moneyline","Point Spread","Total Points"]},p[6]={sport:"Hockey",id:6,label:"NHL",opticOddsName:"NHL",provider:"opticOdds",scoringType:"goals",matchResolveType:"overtime",periodType:"period",isDrawAvailable:!1,betTypesForLive:["Moneyline"],betTypesForLiveTestnet:["Moneyline"]},p[7]={sport:"Fighting",id:7,label:"UFC",provider:"opticOdds",scoringType:"rounds",matchResolveType:"",periodType:"round",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[8]={sport:"Basketball",id:8,label:"WNBA",opticOddsName:"WNBA",provider:"opticOdds",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:["Moneyline","Point Spread","Total Points"],betTypesForLiveTestnet:["Moneyline","Point Spread","Total Points"]},p[10]={sport:"Soccer",id:10,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[11]={sport:"Soccer",id:11,label:"EPL",opticOddsName:"England - Premier League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[12]={sport:"Soccer",id:12,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[13]={sport:"Soccer",id:13,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[14]={sport:"Soccer",id:14,label:"La Liga",opticOddsName:"Spain - La Liga",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[15]={sport:"Soccer",id:15,label:"Serie A",opticOddsName:"Italy - Serie A",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[16]={sport:"Soccer",id:16,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[17]={sport:"Soccer",id:17,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[18]={sport:"Soccer",id:18,label:"FIFA World Cup Qualifiers",provider:"opticOdds",opticOddsName:"FIFA - World Cup Qualifiers",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[19]={sport:"Soccer",id:19,label:"J1 League",opticOddsName:"Japan - J1 League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[20]={sport:"Cricket",id:20,label:"Indian Premier League",provider:"rundown",scoringType:"points",matchResolveType:"",periodType:"inning",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[21]={sport:"Cricket",id:21,label:"T20 Blast",provider:"rundown",scoringType:"points",matchResolveType:"",periodType:"inning",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[33]={sport:"Hockey",id:33,label:"IIHF World Championship",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"period",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[44]={sport:"Soccer",id:44,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[45]={sport:"Soccer",id:45,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[50]={sport:"Soccer",id:50,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[57]={sport:"Soccer",id:57,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[61]={sport:"Soccer",id:61,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[65]={sport:"Soccer",id:65,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[66]={sport:"Soccer",id:66,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[76]={sport:"Soccer",id:76,label:"FIFA World Cup Women",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[132]={sport:"Soccer",id:132,label:"FA Cup",opticOddsName:"England - FA Cup",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[134]={sport:"Soccer",id:134,label:"Coupe de France",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[138]={sport:"Soccer",id:138,label:"Copa del Rey",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[141]={sport:"Soccer",id:141,label:"Coppa Italia",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[152]={sport:"Tennis",id:152,label:"WTA Events",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:["Moneyline","Game Spread","Total Games"],betTypesForLiveTestnet:["Moneyline","Game Spread","Total Games"]},p[153]={sport:"Tennis",id:153,label:"Grand Slam",opticOddsName:"atp",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:["Moneyline","Game Spread","Total Games"],betTypesForLiveTestnet:["Moneyline","Game Spread","Total Games"]},p[156]={sport:"Tennis",id:156,label:"ATP Events",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:["Moneyline","Game Spread","Total Games"],betTypesForLiveTestnet:["Moneyline","Game Spread","Total Games"]},p[158]={sport:"Tennis",id:158,label:"Olympic Games Tennis",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:["Moneyline","Game Spread","Total Games"],betTypesForLiveTestnet:["Moneyline","Game Spread","Total Games"]},p[209]={sport:"Soccer",id:209,label:"DFB Pokal",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[230]={sport:"Soccer",id:230,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[268]={sport:"Soccer",id:268,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[288]={sport:"Soccer",id:288,label:"UEFA EURO U21",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[296]={sport:"Soccer",id:296,label:"FIFA World Cup U20",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[380]={sport:"Handball",id:380,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[381]={sport:"Handball",id:381,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[399]={sport:"Basketball",id:399,label:"Euroleague",opticOddsName:"Euroleague",provider:"opticOdds",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:["Moneyline","Point Spread","Total Points"],betTypesForLiveTestnet:["Moneyline","Point Spread","Total Points"]},p[406]={sport:"Basketball",id:406,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:"enetpulse",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:["Moneyline","Point Spread","Total Points"],betTypesForLiveTestnet:["Moneyline","Point Spread","Total Points"]},p[407]={sport:"Basketball",id:407,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:"enetpulse",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:["Moneyline","Point Spread","Total Points"],betTypesForLiveTestnet:["Moneyline","Point Spread","Total Points"]},p[409]={sport:"Basketball",id:409,label:"FIBA World Cup",provider:"enetpulse",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:["Moneyline","Point Spread","Total Points"],betTypesForLiveTestnet:["Moneyline","Point Spread","Total Points"]},p[445]={sport:"Motosport",id:445,label:"Formula 1",provider:"enetpulse",scoringType:"",matchResolveType:"",periodType:"",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[453]={sport:"Volleyball",id:453,label:"Olympic Games Beach Voleyball Women",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[454]={sport:"Volleyball",id:454,label:"Olympic Games Beach Voleyball",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[8910]={sport:"TableTennis",id:8910,label:"Olympic Games Table Tennis",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[497]={sport:"Motosport",id:497,label:"MotoGP",provider:"enetpulse",scoringType:"",matchResolveType:"",periodType:"",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[536]={sport:"Soccer",id:536,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[8881]={sport:"Waterpolo",id:8881,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"quarter",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[8893]={sport:"Volleyball",id:8893,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[8894]={sport:"Volleyball",id:8894,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:"enetpulse",scoringType:"sets",matchResolveType:"regular",periodType:"set",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[9196]={sport:"Fighting",id:9196,label:"Boxing",provider:"enetpulse",scoringType:"rounds",matchResolveType:"",periodType:"round",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[9578]={sport:"Rugby",id:9578,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:"enetpulse",scoringType:"points",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[9588]={sport:"Rugby",id:9588,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:"enetpulse",scoringType:"points",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[9698]={sport:"Hockey",id:9698,label:"Olympic Games Hockey Women",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"period",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[9699]={sport:"Hockey",id:9699,label:"Olympic Games Hockey",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"period",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[9806]={sport:"Soccer",id:9806,label:"UEFA Nations League",provider:"opticOdds",opticOddsName:"UEFA - Nations League",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[9821]={sport:"Soccer",id:9821,label:"CONCACAF Nations League",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[9977]={sport:"eSports",id:9977,label:"CS GO",opticOddsName:"CS2",provider:"enetpulse",scoringType:"rounds",matchResolveType:"",periodType:"round",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[9983]={sport:"eSports",id:9983,label:"DOTA 2",opticOddsName:"Dota 2",provider:"enetpulse",scoringType:"rounds",matchResolveType:"",periodType:"round",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[10071]={sport:"Basketball",id:10071,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:"enetpulse",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[10072]={sport:"Basketball",id:10072,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:"enetpulse",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[10502]={sport:"Basketball",id:10502,label:"Summer Olympics Basketball Qualification",provider:"enetpulse",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[10138]={sport:"eSports",id:10138,label:"LOL",opticOddsName:"League of Legends",provider:"enetpulse",scoringType:"rounds",matchResolveType:"",periodType:"round",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[10199]={sport:"Soccer",id:10199,label:"CONMEBOL WC Qualification",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[10216]={sport:"Soccer",id:10216,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[10595]={sport:"Fighting",id:10595,label:"Boxing",provider:"enetpulse",scoringType:"rounds",matchResolveType:"",periodType:"round",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[10611]={sport:"Soccer",id:10611,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[10613]={sport:"Soccer",id:10613,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[10615]={sport:"Soccer",id:10615,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:"enetpulse",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[2e4]={sport:"Politics",id:2e4,label:"US Election 2024",provider:"",scoringType:"",matchResolveType:"",periodType:"",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20001]={sport:"Soccer",id:20001,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20002]={sport:"Soccer",id:20002,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20011]={sport:"Soccer",id:20011,label:"EFL Championship",opticOddsName:"England - Championship",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20101]={sport:"Soccer",id:20101,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20102]={sport:"Soccer",id:20102,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20103]={sport:"Soccer",id:20103,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20104]={sport:"Soccer",id:20104,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20105]={sport:"Soccer",id:20105,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20106]={sport:"Soccer",id:20106,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20107]={sport:"Soccer",id:20107,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20108]={sport:"Soccer",id:20108,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:["Moneyline","Asian Handicap","Total Goals"],betTypesForLiveTestnet:["Moneyline","Asian Handicap","Total Goals"]},p[20109]={sport:"Soccer",id:20109,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20110]={sport:"Soccer",id:20110,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20111]={sport:"Soccer",id:20111,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20112]={sport:"Soccer",id:20112,label:"China Super League",opticOddsName:"China - Super League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20113]={sport:"Soccer",id:20113,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20114]={sport:"Soccer",id:20114,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20115]={sport:"Soccer",id:20115,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20116]={sport:"Soccer",id:20116,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20117]={sport:"Soccer",id:20117,label:"Serie B",opticOddsName:"Italy - Serie B",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20118]={sport:"Soccer",id:20118,label:"India Super League",opticOddsName:"India - Super League",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20119]={sport:"Soccer",id:20119,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20120]={sport:"Soccer",id:20120,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20121]={sport:"Soccer",id:20121,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20122]={sport:"Soccer",id:20122,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20123]={sport:"Soccer",id:20123,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20124]={sport:"Soccer",id:20124,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20125]={sport:"Soccer",id:20125,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20126]={sport:"Soccer",id:20126,label:"England League 1",opticOddsName:"England - League 1",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20127]={sport:"Soccer",id:20127,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:"opticOdds",scoringType:"goals",matchResolveType:"regular",periodType:"half",isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},p[20200]={sport:"Basketball",id:20200,label:"Eurocup",opticOddsName:"Eurocup",provider:"opticOdds",scoringType:"points",matchResolveType:"overtime",periodType:"quarter",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[100021]={sport:"Golf",id:100021,label:"Golf head-to-head",provider:"jsonOdds",scoringType:"",matchResolveType:"",periodType:"",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p[100121]={sport:"Golf",id:100121,label:"Golf Tournament Winner",provider:"jsonOdds",scoringType:"",matchResolveType:"",periodType:"",isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},p),v=[9977,9983,10138,153,156,158,15312,15313,15314,15315,15316,15317,15318,15622,15623,15624,15625,15626,15627,15628,15632,15633,15634,15635,15636,15637,15638,15641,15642,15643,15644,15645,15646,15647,15648,15322,15323,15324,15325,15326,15327,15328],u=[9578,9588],b=[1,2,3,4,5,6,8,10,20,21],m=[701,702,703,704],g={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},L={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},h={1:"NCAAF",2:"NFL",3:"MLB",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"},F=function(e){var a=T[e];return a?a.sport:""},f=function(e){var a=T[e];return a?a.label:""},A=function(e){var a=T[e];return a?a.provider:""},O=function(e){var a=T[e];return!!a&&a.isDrawAvailable},S=function(e){return Object.values(T).filter((function(a){return e?a.betTypesForLiveTestnet.length>0:a.betTypesForLive.length>0})).map((function(e){return e.id}))},w=function(e,a){var r=T[e];return r?a?r.betTypesForLiveTestnet:r.betTypesForLive:[]},M=function(e,a){var r=T[e];return!!r&&(a?r.betTypesForLiveTestnet.length>0:r.betTypesForLive.length>0)},D=function(e){var a=T[e];return a?a.opticOddsName:void 0},R=function(e){var a=T[e];return a?a.periodType:""},N=function(e){var a=T[e];return a?a.spread:void 0},C=function(e){var a=T[e];return a?a.total:void 0},G=function(e,a,r,o,i,t){var s,l;if(v.includes(e)?(s=o.toLowerCase()==a.toLowerCase()||o.toLowerCase()==r.toLowerCase(),l=i.toLowerCase()==a.toLowerCase()||i.toLowerCase()==r.toLowerCase()):(s=o.toLowerCase()==a.toLowerCase(),l=i.toLowerCase()==r.toLowerCase()),!0!==s){var p=t.get(o.toLowerCase()),n=t.get(a.toLowerCase()),d=t.get(r.toLowerCase());if([p,n].some((function(e){return null==e})))return!1;s=v.includes(e)?p==n||p==d:p==n}if(!0!==l){var c=t.get(i.toLowerCase());if(n=t.get(a.toLowerCase()),[c,d=t.get(r.toLowerCase())].some((function(e){return null==e})))return!1;l=v.includes(e)&&c==n||c==d}return s&&l},E=function(e,a,r,o){var i;if("Tennis"==F(r)){var t=a.getTime(),s=e.getTime();i=Math.abs(s-t)<=Number(60*o*1e3)}else i=a.toUTCString()==e.toUTCString();return i},P=0,k="Draw",H=1e5,B=.2,_=10001,I=10002,U=100,V={OPEN:0,PAUSED:1,IN_PROGRESS:3,FINISHED:8,RESOLVED:10,CANCELED:255},W=function(e,a,r){if(e.some((function(e){return 0===e})))return e;var o=e.reduce((function(e,a){return e+a}),0);if(o<=1)return Array(e.length).fill(0);if(0===r){if(!(a>100*(o-1)))return e;r=a}var i=1+r/100,t=i/o,s=e.map((function(e){return e*t}));if(s.some((function(e){return e>=1})))return Array(e.length).fill(0);var l=s.reduce((function(e,a){return e+a}),0);if(l<1)return Array(e.length).fill(0);var p=i/l;return s.map((function(e){return e*p}))},j=function(e,a,r,o){var i=e.find((function(e){return Number(e.typeId)===Number(r)&&Number(e.sportId)===Number(a)}));return i?{minSpread:i.minSpread?Number(i.minSpread):o,targetSpread:i.targetSpread?Number(i.targetSpread):0}:{minSpread:o,targetSpread:0}},z=function(e){return e===P?0:x("decimal","impliedProbability",e)},x=function(e,a,r){try{return n(e,r).to(a)}catch(e){return 0}},q=function(e,a,r,o,i){var t=new Map;return r.forEach((function(r){var s=0,l=e.filter((function(e){return e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==r.toLowerCase()&&e.selection.toLowerCase()===o.homeTeam.toLowerCase()}));0!==l.length&&(s=l[0].price);var p=0,n=e.filter((function(e){return e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==r.toLowerCase()&&e.selection.toLowerCase()===o.awayTeam.toLowerCase()}));0!==n.length&&(p=n[0].price);var d=0;if(!i){var c=e.filter((function(e){return e&&e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==r.toLowerCase()&&e.selection.toLowerCase()===k.toLowerCase()}));0!==c.length&&(d=c[0].price)}t.set(r.toLowerCase(),{homeOdds:s,awayOdds:p,drawOdds:d})})),t},J=function(e,a,r,o,i,t,s){var l={homeTeam:o.home_team,awayTeam:o.away_team},p=q(o.odds,"Moneyline",r,l,e),n=c(p,r,e,s,B);if(n.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:n.errorMessage};var d=(e?[n.homeOdds,n.awayOdds]:[n.homeOdds,n.awayOdds,n.drawOdds]).map((function(e){return z(e)})),y=j(a,i,H,t);return{odds:d=null!==y?W(d,y.minSpread,y.targetSpread):W(d,t,0)}},Q=function(e,a,r){return e.filter((function(e){return e.market_name.toLowerCase()===a.toLowerCase()&&e.sports_book_name.toLowerCase()==r.toLowerCase()}))},K=function(e,a,r,o,i,t){var s=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)}));return X(s,a).map((function(e){var a=e.line,s=e.odds,l=z(s[0])||P,p=z(s[1])||P,n=l===P||p===P;if(!n){var d,c=j(o,r,i,t);null!==c?(d=W([l,p],c.minSpread,c.targetSpread)).some((function(e){return e===P}))?n=!0:(l=d[0],p=d[1]):(d=W([l,p],t,0)).some((function(e){return e===P}))?n=!0:(l=d[0],p=d[1])}var y=process.env.MIN_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,T=process.env.MAX_ODDS_FOR_CHILD_MARKETS_FOR_LIVE;return y&&T&&(l>=y||l<=T||p>=y||p<=T)?null:{leagueId:r,typeId:i,type:"spread",results:[],status:n?V.PAUSED:V.OPEN,line:a,odds:[l,p]}})).filter((function(e){return null!==e}))},X=function(e,a){var r=e.reduce((function(e,r){var o=r.selection_points,i=r.price,t=r.selection===a.homeTeam,s=t?o:-o;return e[s]||(e[s]={home:null,away:null}),t?e[s].home=i:e[s].away=i,e}),{}),o=Object.entries(r).reduce((function(e,a){var r=a[0],o=a[1],i=parseFloat(r);return null!==o.home&&null!==o.away&&e.push({line:i,odds:[o.home,o.away]}),e}),[]);return o},Y=function(e,a,r,o,i){var t=[],s=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)})),l=Z(s);return Object.entries(l).forEach((function(e){var s=e[0],l=e[1],p=l.over,n=l.under,d=s.split("_"),c=(d[0],d[1]),y=z(p)||P,T=z(n)||P,v=y===P||T===P;if(!v){var u,b=j(r,a,o,i);null!==b?(u=W([y,T],b.minSpread,b.targetSpread)).some((function(e){return e===P}))?v=!0:(y=u[0],T=u[1]):(u=W([y,T],i,0)).some((function(e){return e===P}))?v=!0:(y=u[0],T=u[1])}var m=process.env.MIN_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,g=process.env.MAX_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,L={leagueId:a,typeId:o,type:"total",results:[],status:v?V.PAUSED:V.OPEN,line:parseFloat(c),odds:[y,T]};m&&g&&(y>=m||y<=g||T>=m||T<=g)||t.push(L)})),t},Z=function(e){return e.reduce((function(e,a){if(a){var r="".concat(a.selection,"_").concat(a.selection_points);e[r]||(e[r]={over:null,under:null}),"over"===a.selection_line?e[r].over=a.price:"under"===a.selection_line&&(e[r].under=a.price)}return e}),{})},$=function(){return $=Object.assign||function(e){for(var a,r=1,o=arguments.length;r<o;r++)for(var i in a=arguments[r])Object.prototype.hasOwnProperty.call(a,i)&&(e[i]=a[i]);return e},$.apply(this,arguments)},ee=function(e,a,r,o,i,t,s){var l=o.filter((function(a){return a.sportId===String(e.leagueId)})),p=J(!i,l,r,a,e.leagueId,t,s);if(p.errorMessage)return e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.childMarkets=[],e.errorMessage=p.errorMessage,e;e.odds=p.odds.filter((function(e){return 0!=e})).map((function(e){return{american:n("impliedProbability",e).to("moneyline"),decimal:n("impliedProbability",e).to("decimal"),normalizedImplied:e}}));var d=ae(e.leagueId,l,a,r,t).map((function(a){var r=$($({},e),a);return r.odds.length>0&&(r.odds=r.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:n("impliedProbability",e).to("moneyline"),decimal:n("impliedProbability",e).to("decimal"),normalizedImplied:e}}))),r}));return e.childMarkets=d,e},ae=function(e,a,r,o,i){var t=[];return(t=t.concat(re(r,e,a,o,i))).concat(oe(r,e,a,o,i))},re=function(e,a,r,o,i){var t=[],s=N(a),l={homeTeam:e.home_team,awayTeam:e.away_team};if(s){var p=Q(e.odds,s,o[0]);if(p.length>0){var n=K(p,l,a,r,_,i);t.push.apply(t,n)}}else console.warn("Spread type for sport ID ".concat(a," not found."));return t},oe=function(e,a,r,o,i){var t=[],s=C(a);if(s){var l=Q(e.odds,s,o[0]);l.length>0&&t.push.apply(t,Y(l,a,r,I,i))}else console.warn("Configuration (totals) for sport ID ".concat(a," not found."));return t};return a})()));
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,E)=>{for(var A in E)e.o(E,A)&&!e.o(r,A)&&Object.defineProperty(r,A,{enumerable:!0,get:E[A]})},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:()=>v,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>y,LEAGUES_NO_LIVE_CONSTRAINTS:()=>C,LIVE_TYPE_ID_BASE:()=>Q,League:()=>t,LeagueMap:()=>M,MIN_ODDS_FOR_DIFF_CHECKING:()=>X,MULTIPLIER_100:()=>Z,MatchResolveType:()=>p,MoneylineTypes:()=>_,PeriodType:()=>I,Provider:()=>O,ScoringType:()=>S,Sport:()=>a,SportIdMapEnetpulse:()=>G,SportIdMapOpticOdds:()=>b,SportIdMapRundown:()=>U,SpreadTypes:()=>s,TAG_CHILD_SPREAD:()=>j,TAG_CHILD_TOTALS:()=>z,TotalTypes:()=>N,UFC_LEAGUE_IDS:()=>c,ZERO:()=>k,adjustSpreadOnOdds:()=>J,calculateImpliedOddsDifference:()=>P,checkOddsFromBookmakers:()=>d,createSpreadChildMarkets:()=>se,createTotalChildMarkets:()=>Ne,filterOddsByMarketNameBookmaker:()=>Ae,filterOddsByMarketNameTeamNameBookmaker:()=>re,formatSpreadOdds:()=>ie,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>V,getBookmakersArray:()=>R,getIsLiveSupported:()=>Y,getLeagueIsDrawAvailable:()=>m,getLeagueLabel:()=>F,getLeagueOpticOddsName:()=>B,getLeaguePeriodType:()=>h,getLeagueProvider:()=>D,getLeagueSport:()=>u,getLeagueSpreadType:()=>f,getLeagueTotalType:()=>H,getLiveSupportedLeagues:()=>g,getParentOdds:()=>Ee,getSpreadData:()=>q,groupAndFormatSpreadOdds:()=>Le,groupOddsBySelectionAndPoints:()=>Te,processMarket:()=>te,processTotalOdds:()=>oe,statusCodes:()=>x,teamNamesMatching:()=>w}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var E=Object(e),A=1;A<arguments.length;A++){var i=arguments[A];if(null!=i)for(var L in i)Object.prototype.hasOwnProperty.call(i,L)&&(E[L]=i[L])}return E});var E=function(e){return parseFloat(e.toPrecision(12))};function A(e,r,E){return void 0===E||0==+E?Math[e](r):(r=+r,E=+E,isNaN(r)||"number"!=typeof E||E%1!=0?NaN:r<0?-A(e,-r,E):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-E:-E)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+E:E))))}var i,L,o={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?E(100*(this.decimalValue-1)):E(-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 E(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=E(100/this.decimalValue);return null!==e.precision&&(r=A("round",r,-e.precision)),r.toString()+"%"}return E(1/this.decimalValue)}},fractional:{from:function(e){var r,E=e.toString().split("/");if(e=parseFloat(E[0]),2===E.length)r=parseFloat(E[1]);else{if(1!==E.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 E,A=[0,1],i=[1,0],L=function(e){var r=null,E=e.toString().indexOf("E");-1==E&&(E=e.toString().indexOf("e"));var A=null,i=(r=-1==E?e.toString():e.toString().substring(0,E)).toString().indexOf(".");-1==i?A=r:0===i?A=r.substring(1,r.length):i<r.length&&(A=r.substring(0,i)+r.substring(i+1,r.length));var L=A,o=L.toString().length,T=e,a=T.toString().length;0===T&&(a=0);var t,_=o-a;for(t=_;t>0&&L%2==0;t--)L/=2;for(t=_;t>0&&L%5==0;t--)L/=5;return L}(e),o=e,T=Math.pow(10,-r)/2,a=2;a<1e3;a++){var t=Math.floor(o);if(A[a]=t*A[a-1]+A[a-2],Math.abs(A[a])>L)return;if(i[a]=t*i[a-1]+i[a-2],E=A[a]/i[a],Math.abs(E-e)<T||NaN==E)return A[a].toString()+"/"+i[a].toString();o=1/(o-t)}}(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?E(this.decimalValue-1):E(-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?E(-1/(this.decimalValue-1)):E(this.decimalValue-1)}}},T=((L=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=E(e)}).prototype=(i=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,i.from=function(e,r){if(!o.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var E=o[e].from(r);return new L(E)},i);T.prototype.to=function(e,r){if(!o.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var E=o[e].to.call(this,r);return"number"==typeof E&&null!==r.precision&&(E=A("round",E,-r.precision)),E};var a,t,_,s,N,S,p,I,O,l,n=T.from,R=function(e,r,E){var A=e.find((function(e){return Number(e.sportId)===Number(r)}));if(A){if(""==A.primaryBookmaker)return E;var i=[];return A.primaryBookmaker&&i.push(A.primaryBookmaker),A.secondaryBookmaker&&i.push(A.secondaryBookmaker),A.tertiaryBookmaker&&i.push(A.tertiaryBookmaker),i}return E},d=function(e,r,E,A,i){var L=e.get(r[0]);if(!L)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var o=L.homeOdds,T=L.awayOdds,a=E?0:L.drawOdds;if(r.some((function(r){var A=e.get(r);return!!A&&(0===A.homeOdds||0===A.awayOdds||!E&&0===A.drawOdds||1===A.homeOdds||1===A.awayOdds||!E&&1===A.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:o,awayOdds:T,drawOdds:E?0:a};if(r.slice(1).some((function(r){var L=e[r];if(L){var t=L.homeOdds,_=L.awayOdds,s=L.drawOdds,N=n("decimal",o).to("impliedProbability"),S=n("decimal",T).to("impliedProbability"),p=E?0:n("decimal",a).to("impliedProbability"),I=n("decimal",t).to("impliedProbability"),O=n("decimal",_).to("impliedProbability"),l=E?0:n("decimal",s).to("impliedProbability"),R=P(N,I),d=P(S,O),M=E?0:P(p,l);if(R>A&&N>i&&I>i||d>A&&S>i&&O>i||!E&&M>A&&p>i&&l>i)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var t=[];return r.forEach((function(r){return t.push(e.get(r))})),{homeOdds:o,awayOdds:T,drawOdds:E?0:a}},P=function(e,r){var E=Math.abs(e-r)/e*100;return console.log("% diff: "+E),E};!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.EMPTY=""}(a||(a={})),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.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"}(t||(t={})),function(e){e.MONEYLINE="Moneyline"}(_||(_={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.RUN_LINE="Run 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"}(N||(N={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.EMPTY=""}(S||(S={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(p||(p={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.EMPTY=""}(I||(I={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(O||(O={}));var M=((l={})[t.NCAAF]={sport:a.FOOTBALL,id:t.NCAAF,label:"NCAA Football",provider:O.OPTICODDS,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.NFL]={sport:a.FOOTBALL,id:t.NFL,label:"NFL",opticOddsName:"NFL",provider:O.OPTICODDS,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS],betTypesForLiveTestnet:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS]},l[t.MLB]={sport:a.BASEBALL,id:t.MLB,label:"MLB",opticOddsName:"MLB",provider:O.OPTICODDS,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.INNING,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.RUN_LINE,N.TOTAL_RUNS],betTypesForLiveTestnet:[_.MONEYLINE,s.RUN_LINE,N.TOTAL_RUNS]},l[t.NBA]={sport:a.BASKETBALL,id:t.NBA,label:"NBA",opticOddsName:"NBA",provider:O.RUNDOWN,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS],betTypesForLiveTestnet:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS]},l[t.NCAAB]={sport:a.BASKETBALL,id:t.NCAAB,label:"NCAA Basketball",provider:O.RUNDOWN,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS],betTypesForLiveTestnet:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS]},l[t.NHL]={sport:a.HOCKEY,id:t.NHL,label:"NHL",opticOddsName:"NHL",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.OVERTIME,periodType:I.PERIOD,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE],betTypesForLiveTestnet:[_.MONEYLINE]},l[t.UFC]={sport:a.FIGHTING,id:t.UFC,label:"UFC",provider:O.OPTICODDS,scoringType:S.ROUNDS,matchResolveType:p.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.WNBA]={sport:a.BASKETBALL,id:t.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:O.OPTICODDS,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS],betTypesForLiveTestnet:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS]},l[t.MLS]={sport:a.SOCCER,id:t.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.EPL]={sport:a.SOCCER,id:t.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.LIGUE_ONE]={sport:a.SOCCER,id:t.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.BUNDESLIGA]={sport:a.SOCCER,id:t.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.LA_LIGA]={sport:a.SOCCER,id:t.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.SERIE_A]={sport:a.SOCCER,id:t.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.UEFA_CL]={sport:a.SOCCER,id:t.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.UEFA_EL]={sport:a.SOCCER,id:t.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.FIFA_WC]={sport:a.SOCCER,id:t.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:O.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.J1_LEAGUE]={sport:a.SOCCER,id:t.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.IPL]={sport:a.CRICKET,id:t.IPL,label:"Indian Premier League",provider:O.RUNDOWN,scoringType:S.POINTS,matchResolveType:p.EMPTY,periodType:I.INNING,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.T20_BLAST]={sport:a.CRICKET,id:t.T20_BLAST,label:"T20 Blast",provider:O.RUNDOWN,scoringType:S.POINTS,matchResolveType:p.EMPTY,periodType:I.INNING,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.IIHF_WORLD_CHAMPIONSHIP]={sport:a.HOCKEY,id:t.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.COPA_AMERICA]={sport:a.SOCCER,id:t.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.COPA_LIBERTADORES]={sport:a.SOCCER,id:t.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.UEFA_EURO]={sport:a.SOCCER,id:t.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.EREDIVISIE]={sport:a.SOCCER,id:t.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.PRIMEIRA_LIGA]={sport:a.SOCCER,id:t.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:a.SOCCER,id:t.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.SUMMER_OLYMPICS_SOCCER]={sport:a.SOCCER,id:t.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.FIFA_WC_WOMEN]={sport:a.SOCCER,id:t.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.ENGLAND_CUP]={sport:a.SOCCER,id:t.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.FRANCE_CUP]={sport:a.SOCCER,id:t.FRANCE_CUP,label:"Coupe de France",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.SPAIN_CUP]={sport:a.SOCCER,id:t.SPAIN_CUP,label:"Copa del Rey",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.ITALY_CUP]={sport:a.SOCCER,id:t.ITALY_CUP,label:"Coppa Italia",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.TENNIS_WTA]={sport:a.TENNIS,id:t.TENNIS_WTA,label:"WTA Events",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.GAME_SPREAD,N.TOTAL_GAMES],betTypesForLiveTestnet:[_.MONEYLINE,s.GAME_SPREAD,N.TOTAL_GAMES]},l[t.TENNIS_GS]={sport:a.TENNIS,id:t.TENNIS_GS,label:"Grand Slam",opticOddsName:"atp",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.GAME_SPREAD,N.TOTAL_GAMES],betTypesForLiveTestnet:[_.MONEYLINE,s.GAME_SPREAD,N.TOTAL_GAMES]},l[t.TENNIS_MASTERS]={sport:a.TENNIS,id:t.TENNIS_MASTERS,label:"ATP Events",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.GAME_SPREAD,N.TOTAL_GAMES],betTypesForLiveTestnet:[_.MONEYLINE,s.GAME_SPREAD,N.TOTAL_GAMES]},l[t.SUMMER_OLYMPICS_TENNIS]={sport:a.TENNIS,id:t.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.GAME_SPREAD,N.TOTAL_GAMES],betTypesForLiveTestnet:[_.MONEYLINE,s.GAME_SPREAD,N.TOTAL_GAMES]},l[t.GERMANY_CUP]={sport:a.SOCCER,id:t.GERMANY_CUP,label:"DFB Pokal",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.LIGA_MX]={sport:a.SOCCER,id:t.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.BRAZIL_1]={sport:a.SOCCER,id:t.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.UEFA_EURO_U21]={sport:a.SOCCER,id:t.UEFA_EURO_U21,label:"UEFA EURO U21",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.FIFA_WORLD_CUP_U20]={sport:a.SOCCER,id:t.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:a.HANDBALL,id:t.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_HANDBALL]={sport:a.HANDBALL,id:t.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.EUROLEAGUE]={sport:a.BASKETBALL,id:t.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:O.OPTICODDS,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS],betTypesForLiveTestnet:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS]},l[t.SUMMER_OLYMPICS_BASKETBALL]={sport:a.BASKETBALL,id:t.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:O.ENETPULSE,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS],betTypesForLiveTestnet:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS]},l[t.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:a.BASKETBALL,id:t.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:O.ENETPULSE,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS],betTypesForLiveTestnet:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS]},l[t.FIBA_WORLD_CUP]={sport:a.BASKETBALL,id:t.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:O.ENETPULSE,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS],betTypesForLiveTestnet:[_.MONEYLINE,s.POINT_SPREAD,N.TOTAL_POINTS]},l[t.FORMULA1]={sport:a.MOTOSPORT,id:t.FORMULA1,label:"Formula 1",provider:O.ENETPULSE,scoringType:S.EMPTY,matchResolveType:p.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:a.VOLLEYBALL,id:t.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:a.VOLLEYBALL,id:t.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:a.TABLE_TENNIS,id:t.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.MOTOGP]={sport:a.MOTOSPORT,id:t.MOTOGP,label:"MotoGP",provider:O.ENETPULSE,scoringType:S.EMPTY,matchResolveType:p.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SAUDI_PROFESSIONAL_LEAGUE]={sport:a.SOCCER,id:t.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.SUMMER_OLYMPICS_WATERPOLO]={sport:a.WATERPOLO,id:t.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.QUARTER,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:a.VOLLEYBALL,id:t.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_VOLEYBALL]={sport:a.VOLLEYBALL,id:t.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:O.ENETPULSE,scoringType:S.SETS,matchResolveType:p.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.BOXING]={sport:a.FIGHTING,id:t.BOXING,label:"Boxing",provider:O.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:p.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_RUGBY]={sport:a.RUGBY,id:t.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:O.ENETPULSE,scoringType:S.POINTS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:a.RUGBY,id:t.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:O.ENETPULSE,scoringType:S.POINTS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:a.HOCKEY,id:t.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_HOCKEY]={sport:a.HOCKEY,id:t.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.UEFA_NATIONS_LEAGUE]={sport:a.SOCCER,id:t.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:O.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.CONCACAF_NATIONS_LEAGUE]={sport:a.SOCCER,id:t.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.CSGO]={sport:a.ESPORTS,id:t.CSGO,label:"CS GO",opticOddsName:"CS2",provider:O.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:p.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.DOTA2]={sport:a.ESPORTS,id:t.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:O.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:p.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:a.BASKETBALL,id:t.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:O.ENETPULSE,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:a.BASKETBALL,id:t.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:O.ENETPULSE,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SUMMER_OLYMPICS_QUALIFICATION]={sport:a.BASKETBALL,id:t.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:O.ENETPULSE,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.LOL]={sport:a.ESPORTS,id:t.LOL,label:"LOL",opticOddsName:"League of Legends",provider:O.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:p.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.CONMEBOL_WC_QUALIFICATIONS]={sport:a.SOCCER,id:t.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.UEFA_CONFERENCE_LEAGUE]={sport:a.SOCCER,id:t.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.NON_TITLE_BOXING]={sport:a.FIGHTING,id:t.NON_TITLE_BOXING,label:"Boxing",provider:O.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:p.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:a.SOCCER,id:t.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:a.SOCCER,id:t.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:a.SOCCER,id:t.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:O.ENETPULSE,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.US_ELECTION]={sport:a.POLITICS,id:t.US_ELECTION,label:"US Election 2024",provider:O.EMPTY,scoringType:S.EMPTY,matchResolveType:p.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.UEFA_SUPER_CUP]={sport:a.SOCCER,id:t.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.BRAZIL_CUP]={sport:a.SOCCER,id:t.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.ENGLAND_CHAMPIONSHIP]={sport:a.SOCCER,id:t.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SCOTLAND_PREMIERSHIP]={sport:a.SOCCER,id:t.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.BELGIUM_LEAGUE]={sport:a.SOCCER,id:t.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.CZECH_LEAGUE]={sport:a.SOCCER,id:t.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.CHILE_PRIMERA]={sport:a.SOCCER,id:t.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.FINLAND_LEAGUE]={sport:a.SOCCER,id:t.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.ARGENTINA_PRIMERA]={sport:a.SOCCER,id:t.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.RUSSIA_PREMIER]={sport:a.SOCCER,id:t.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.TURKEY_SUPER_LEAGUE]={sport:a.SOCCER,id:t.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS],betTypesForLiveTestnet:[_.MONEYLINE,s.ASIAN_HANDICAP,N.TOTAL_GOALS]},l[t.SERBIA_SUPER_LEAGUE]={sport:a.SOCCER,id:t.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.GREECE_SUPER_LEAGUE]={sport:a.SOCCER,id:t.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.INDIA_PREMIER]={sport:a.SOCCER,id:t.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.CHINA_SUPER_LEAGUE]={sport:a.SOCCER,id:t.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.AUSTRALIA_A_LEAGUE]={sport:a.SOCCER,id:t.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SWITZERLAND_SUPER_LEAGUE]={sport:a.SOCCER,id:t.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.BUNDESLIGA_2]={sport:a.SOCCER,id:t.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.LA_LIGA_2]={sport:a.SOCCER,id:t.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SERIE_B]={sport:a.SOCCER,id:t.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.INDIA_SUPER_LEAGUE]={sport:a.SOCCER,id:t.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.LIGUE_2]={sport:a.SOCCER,id:t.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.AUSTRIA_BUNDESLIGA]={sport:a.SOCCER,id:t.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.DENMARK_SUPER_LEAGUE]={sport:a.SOCCER,id:t.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.POLAND_LEAGUE]={sport:a.SOCCER,id:t.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.SWEDEN_LEAGUE]={sport:a.SOCCER,id:t.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.COLOMBIA_PRIMERA_A]={sport:a.SOCCER,id:t.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.ENGLAND_EFL_CUP]={sport:a.SOCCER,id:t.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.ENGLAND_LEGAUE_1]={sport:a.SOCCER,id:t.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.URUGUAY_PRIMERA_DIVISION]={sport:a.SOCCER,id:t.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:O.OPTICODDS,scoringType:S.GOALS,matchResolveType:p.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.EUROCUP]={sport:a.BASKETBALL,id:t.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:O.OPTICODDS,scoringType:S.POINTS,matchResolveType:p.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.GOLF_H2H]={sport:a.GOLF,id:t.GOLF_H2H,label:"Golf head-to-head",provider:O.JSONODDS,scoringType:S.EMPTY,matchResolveType:p.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[t.GOLF_WINNER]={sport:a.GOLF,id:t.GOLF_WINNER,label:"Golf Tournament Winner",provider:O.JSONODDS,scoringType:S.EMPTY,matchResolveType:p.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l),y=[t.CSGO,t.DOTA2,t.LOL,t.TENNIS_GS,t.TENNIS_MASTERS,t.SUMMER_OLYMPICS_TENNIS,t.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,t.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,t.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,t.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,t.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,t.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,t.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,t.TENNIS_MASTERS_LIVE_MAPPING_V2_1,t.TENNIS_MASTERS_LIVE_MAPPING_V2_2,t.TENNIS_MASTERS_LIVE_MAPPING_V2_3,t.TENNIS_MASTERS_LIVE_MAPPING_V2_4,t.TENNIS_MASTERS_LIVE_MAPPING_V2_5,t.TENNIS_MASTERS_LIVE_MAPPING_V2_6,t.TENNIS_MASTERS_LIVE_MAPPING_V2_7,t.TENNIS_MASTERS_LIVE_MAPPING_V2_8,t.TENNIS_MASTERS_LIVE_MAPPING_V2_9,t.TENNIS_MASTERS_LIVE_MAPPING_V2_10,t.TENNIS_MASTERS_LIVE_MAPPING_V2_11,t.TENNIS_MASTERS_LIVE_MAPPING_V2_12,t.TENNIS_MASTERS_LIVE_MAPPING_V2_13,t.TENNIS_MASTERS_LIVE_MAPPING_V2_14,t.TENNIS_MASTERS_LIVE_MAPPING_V2_15,t.TENNIS_MASTERS_LIVE_MAPPING_V2_16,t.TENNIS_MASTERS_LIVE_MAPPING_V2_17,t.TENNIS_MASTERS_LIVE_MAPPING_V2_18,t.TENNIS_MASTERS_LIVE_MAPPING_V2_19,t.TENNIS_MASTERS_LIVE_MAPPING_V2_20,t.TENNIS_MASTERS_LIVE_MAPPING_V2_21,t.TENNIS_MASTERS_LIVE_MAPPING_V2_22,t.TENNIS_WTA_LIVE_MAPPING_V2_1,t.TENNIS_WTA_LIVE_MAPPING_V2_2,t.TENNIS_WTA_LIVE_MAPPING_V2_3,t.TENNIS_WTA_LIVE_MAPPING_V2_4,t.TENNIS_WTA_LIVE_MAPPING_V2_5,t.TENNIS_WTA_LIVE_MAPPING_V2_6,t.TENNIS_WTA_LIVE_MAPPING_V2_7],C=[t.SUMMER_OLYMPICS_RUGBY,t.SUMMER_OLYMPICS_RUGBY_WOMEN],v=[t.NCAAF,t.NFL,t.MLB,t.NBA,t.NCAAB,t.NHL,t.WNBA,t.MLS,t.IPL,t.T20_BLAST],c=[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},G={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},b={1:"NCAAF",2:"NFL",3:"MLB",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"},u=function(e){var r=M[e];return r?r.sport:a.EMPTY},F=function(e){var r=M[e];return r?r.label:""},D=function(e){var r=M[e];return r?r.provider:""},m=function(e){var r=M[e];return!!r&&r.isDrawAvailable},g=function(e){return Object.values(M).filter((function(r){return e?r.betTypesForLiveTestnet.length>0:r.betTypesForLive.length>0})).map((function(e){return e.id}))},V=function(e,r){var E=M[e];return E?r?E.betTypesForLiveTestnet:E.betTypesForLive:[]},Y=function(e,r){var E=M[e];return!!E&&(r?E.betTypesForLiveTestnet.length>0:E.betTypesForLive.length>0)},B=function(e){var r=M[e];return r?r.opticOddsName:void 0},h=function(e){var r=M[e];return r?r.periodType:""},f=function(e,r){var E=M[e];(r?E.betTypesForLiveTestnet:E.betTypesForLive).forEach((function(e){if(Object.values(s).includes(e))return e}))},H=function(e,r){var E=M[e];(r?E.betTypesForLiveTestnet:E.betTypesForLive).forEach((function(e){if(Object.values(N).includes(e))return e}))},w=function(e,r,E,A,i,L){var o,T;if(y.includes(e)?(o=A.toLowerCase()==r.toLowerCase()||A.toLowerCase()==E.toLowerCase(),T=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==E.toLowerCase()):(o=A.toLowerCase()==r.toLowerCase(),T=i.toLowerCase()==E.toLowerCase()),!0!==o){var a=L.get(A.toLowerCase()),t=L.get(r.toLowerCase()),_=L.get(E.toLowerCase());if([a,t].some((function(e){return null==e})))return!1;o=y.includes(e)?a==t||a==_:a==t}if(!0!==T){var s=L.get(i.toLowerCase());if(t=L.get(r.toLowerCase()),[s,_=L.get(E.toLowerCase())].some((function(e){return null==e})))return!1;T=y.includes(e)&&s==t||s==_}return o&&T},W=function(e,r,E,A){var i;if(u(E)==a.TENNIS){var L=r.getTime(),o=e.getTime();i=Math.abs(o-L)<=Number(60*A*1e3)}else i=r.toUTCString()==e.toUTCString();return i},k=0,K="Draw",Q=1e5,X=.2,j=10001,z=10002,Z=100,x={OPEN:0,PAUSED:1,IN_PROGRESS:3,FINISHED:8,RESOLVED:10,CANCELED:255},J=function(e,r,E){if(e.some((function(e){return 0===e})))return e;var A=e.reduce((function(e,r){return e+r}),0);if(A<=1)return Array(e.length).fill(0);if(0===E){if(!(r>100*(A-1)))return e;E=r}var i=1+E/100,L=i/A,o=e.map((function(e){return e*L}));if(o.some((function(e){return e>=1})))return Array(e.length).fill(0);var T=o.reduce((function(e,r){return e+r}),0);if(T<1)return Array(e.length).fill(0);var a=i/T;return o.map((function(e){return e*a}))},q=function(e,r,E,A){var i=e.find((function(e){return Number(e.typeId)===Number(E)&&Number(e.sportId)===Number(r)}));return i?{minSpread:i.minSpread?Number(i.minSpread):A,targetSpread:i.targetSpread?Number(i.targetSpread):0}:{minSpread:A,targetSpread:0}},$=function(e){return e===k?0:ee("decimal","impliedProbability",e)},ee=function(e,r,E){try{return n(e,E).to(r)}catch(e){return 0}},re=function(e,r,E,A,i){var L=new Map;return E.forEach((function(E){var o=0,T=e.filter((function(e){return e&&e.market_name.toLowerCase()===r.toLowerCase()&&e.sports_book_name.toLowerCase()==E.toLowerCase()&&e.selection.toLowerCase()===A.homeTeam.toLowerCase()}));0!==T.length&&(o=T[0].price);var a=0,t=e.filter((function(e){return e&&e.market_name.toLowerCase()===r.toLowerCase()&&e.sports_book_name.toLowerCase()==E.toLowerCase()&&e.selection.toLowerCase()===A.awayTeam.toLowerCase()}));0!==t.length&&(a=t[0].price);var _=0;if(!i){var s=e.filter((function(e){return e&&e.market_name.toLowerCase()===r.toLowerCase()&&e.sports_book_name.toLowerCase()==E.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==s.length&&(_=s[0].price)}L.set(E.toLowerCase(),{homeOdds:o,awayOdds:a,drawOdds:_})})),L},Ee=function(e,r,E,A,i,L,o){var T={homeTeam:A.home_team,awayTeam:A.away_team},a=re(A.odds,_.MONEYLINE,E,T,e),t=d(a,E,e,o,X);if(t.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:t.errorMessage};var s=(e?[t.homeOdds,t.awayOdds]:[t.homeOdds,t.awayOdds,t.drawOdds]).map((function(e){return $(e)})),N=q(r,i,Q,L);return{odds:s=null!==N?J(s,N.minSpread,N.targetSpread):J(s,L,0)}},Ae=function(e,r,E){return e.filter((function(e){return e.market_name.toLowerCase()===r.toLowerCase()&&e.sports_book_name.toLowerCase()==E.toLowerCase()}))},ie=function(e,r,E,A,i,L){var o=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)}));return Le(o,r).map((function(e){var r=e.line,o=e.odds,T=$(o[0])||k,a=$(o[1])||k,t=T===k||a===k;if(!t){var _,s=q(A,E,i,L);null!==s?(_=J([T,a],s.minSpread,s.targetSpread)).some((function(e){return e===k}))?t=!0:(T=_[0],a=_[1]):(_=J([T,a],L,0)).some((function(e){return e===k}))?t=!0:(T=_[0],a=_[1])}var N=process.env.MIN_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,S=process.env.MAX_ODDS_FOR_CHILD_MARKETS_FOR_LIVE;return N&&S&&(T>=N||T<=S||a>=N||a<=S)?null:{leagueId:E,typeId:i,type:"spread",results:[],status:t?x.PAUSED:x.OPEN,line:r,odds:[T,a]}})).filter((function(e){return null!==e}))},Le=function(e,r){var E=e.reduce((function(e,E){var A=E.selection_points,i=E.price,L=E.selection===r.homeTeam,o=L?A:-A;return e[o]||(e[o]={home:null,away:null}),L?e[o].home=i:e[o].away=i,e}),{}),A=Object.entries(E).reduce((function(e,r){var E=r[0],A=r[1],i=parseFloat(E);return null!==A.home&&null!==A.away&&e.push({line:i,odds:[A.home,A.away]}),e}),[]);return A},oe=function(e,r,E,A,i){var L=[],o=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)})),T=Te(o);return Object.entries(T).forEach((function(e){var o=e[0],T=e[1],a=T.over,t=T.under,_=o.split("_"),s=(_[0],_[1]),N=$(a)||k,S=$(t)||k,p=N===k||S===k;if(!p){var I,O=q(E,r,A,i);null!==O?(I=J([N,S],O.minSpread,O.targetSpread)).some((function(e){return e===k}))?p=!0:(N=I[0],S=I[1]):(I=J([N,S],i,0)).some((function(e){return e===k}))?p=!0:(N=I[0],S=I[1])}var l=process.env.MIN_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,n=process.env.MAX_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,R={leagueId:r,typeId:A,type:"total",results:[],status:p?x.PAUSED:x.OPEN,line:parseFloat(s),odds:[N,S]};l&&n&&(N>=l||N<=n||S>=l||S<=n)||L.push(R)})),L},Te=function(e){return e.reduce((function(e,r){if(r){var E="".concat(r.selection,"_").concat(r.selection_points);e[E]||(e[E]={over:null,under:null}),"over"===r.selection_line?e[E].over=r.price:"under"===r.selection_line&&(e[E].under=r.price)}return e}),{})},ae=function(){return ae=Object.assign||function(e){for(var r,E=1,A=arguments.length;E<A;E++)for(var i in r=arguments[E])Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=r[i]);return e},ae.apply(this,arguments)},te=function(e,r,E,A,i,L,o){var T=A.filter((function(r){return r.sportId===String(e.leagueId)})),a=Ee(!i,T,E,r,e.leagueId,L,o);if(a.errorMessage)return e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.childMarkets=[],e.errorMessage=a.errorMessage,e;e.odds=a.odds.filter((function(e){return 0!=e})).map((function(e){return{american:n("impliedProbability",e).to("moneyline"),decimal:n("impliedProbability",e).to("decimal"),normalizedImplied:e}})),e.live=!0;var t=_e(e.leagueId,T,r,E,L).map((function(r){var E=ae(ae({},e),r);return E.odds.length>0&&(E.odds=E.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:(E.live=!0,{american:n("impliedProbability",e).to("moneyline"),decimal:n("impliedProbability",e).to("decimal"),normalizedImplied:e})}))),E}));return e.childMarkets=t,e},_e=function(e,r,E,A,i){var L=[];return(L=L.concat(se(E,e,r,A,i))).concat(Ne(E,e,r,A,i))},se=function(e,r,E,A,i){var L=[],o=f(r),T={homeTeam:e.home_team,awayTeam:e.away_team};if(o){var a=Ae(e.odds,o,A[0]);if(a.length>0){var t=ie(a,T,r,E,j,i);L.push.apply(L,t)}}else console.warn("Spread type for sport ID ".concat(r," not found."));return L},Ne=function(e,r,E,A,i){var L=[],o=H(r);if(o){var T=Ae(e.odds,o,A[0]);T.length>0&&L.push.apply(L,oe(T,r,E,z,i))}else console.warn("Configuration (totals) for sport ID ".concat(r," not found."));return L};return r})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overtime-live-trading-utils",
3
- "version": "0.0.112",
3
+ "version": "0.0.113",
4
4
  "description": "",
5
5
  "main": "main.js",
6
6
  "scripts": {
@@ -1,4 +1,4 @@
1
- export const enum Sport {
1
+ export enum Sport {
2
2
  SOCCER = 'Soccer',
3
3
  FOOTBALL = 'Football',
4
4
  BASKETBALL = 'Basketball',
@@ -19,7 +19,7 @@ export const enum Sport {
19
19
  EMPTY = '',
20
20
  }
21
21
 
22
- export const enum League {
22
+ export enum League {
23
23
  NCAAF = 1,
24
24
  NFL = 2,
25
25
  MLB = 3,
@@ -168,25 +168,25 @@ export const enum League {
168
168
  TENNIS_WTA_LIVE_MAPPING_V2_7 = 15328,
169
169
  }
170
170
 
171
- export const enum MoneylineTypes {
171
+ export enum MoneylineTypes {
172
172
  MONEYLINE = 'Moneyline',
173
173
  }
174
174
 
175
- export const enum SpreadTypes {
175
+ export enum SpreadTypes {
176
176
  ASIAN_HANDICAP = 'Asian Handicap',
177
177
  GAME_SPREAD = 'Game Spread',
178
178
  POINT_SPREAD = 'Point Spread',
179
179
  RUN_LINE = 'Run Line',
180
180
  }
181
181
 
182
- export const enum TotalTypes {
182
+ export enum TotalTypes {
183
183
  TOTAL_GAMES = 'Total Games',
184
184
  TOTAL_GOALS = 'Total Goals',
185
185
  TOTAL_POINTS = 'Total Points',
186
186
  TOTAL_RUNS = 'Total Runs',
187
187
  }
188
188
 
189
- export const enum ScoringType {
189
+ export enum ScoringType {
190
190
  POINTS = 'points',
191
191
  GOALS = 'goals',
192
192
  ROUNDS = 'rounds',
@@ -194,13 +194,13 @@ export const enum ScoringType {
194
194
  EMPTY = '',
195
195
  }
196
196
 
197
- export const enum MatchResolveType {
197
+ export enum MatchResolveType {
198
198
  OVERTIME = 'overtime',
199
199
  REGULAR = 'regular',
200
200
  EMPTY = '',
201
201
  }
202
202
 
203
- export const enum PeriodType {
203
+ export enum PeriodType {
204
204
  QUARTER = 'quarter',
205
205
  HALF = 'half',
206
206
  PERIOD = 'period',
@@ -210,7 +210,7 @@ export const enum PeriodType {
210
210
  EMPTY = '',
211
211
  }
212
212
 
213
- export const enum Provider {
213
+ export enum Provider {
214
214
  RUNDOWN = 'rundown',
215
215
  ENETPULSE = 'enetpulse',
216
216
  JSONODDS = 'jsonOdds',
@@ -60,6 +60,8 @@ export const processMarket = (
60
60
  };
61
61
  });
62
62
 
63
+ market.live = true;
64
+
63
65
  const childMarkets = getChildMarkets(
64
66
  market.leagueId,
65
67
  sportSpreadData,
@@ -79,6 +81,7 @@ export const processMarket = (
79
81
  normalizedImplied: 0,
80
82
  };
81
83
  }
84
+ preparedMarket.live = true;
82
85
  return {
83
86
  american: oddslib.from('impliedProbability', _odd).to('moneyline'),
84
87
  decimal: oddslib.from('impliedProbability', _odd).to('decimal'),
@@ -1,5 +1,5 @@
1
1
  import { LeagueMap } from '../constants/sports';
2
- import { League, Sport } from '../enums/sports';
2
+ import { League, Sport, SpreadTypes, TotalTypes } from '../enums/sports';
3
3
 
4
4
  export const getLeagueSport = (league: League) => {
5
5
  const leagueInfo = LeagueMap[league];
@@ -52,13 +52,24 @@ export const getLeaguePeriodType = (league: League) => {
52
52
  return leagueInfo ? leagueInfo.periodType : '';
53
53
  };
54
54
 
55
- // TODO: Refactor
56
- export const getLeagueSpreadType = (league: League) => {
55
+ export const getLeagueSpreadType = (league: League, testnet?: boolean) => {
57
56
  const leagueInfo = LeagueMap[league];
58
- return leagueInfo ? leagueInfo.spread : undefined;
57
+ const liveBetTypesForLeague = testnet ? leagueInfo.betTypesForLiveTestnet : leagueInfo.betTypesForLive;
58
+ liveBetTypesForLeague.forEach((betType) => {
59
+ if (Object.values(SpreadTypes).includes(betType)) {
60
+ return betType;
61
+ }
62
+ });
63
+ return undefined;
59
64
  };
60
65
 
61
- export const getLeagueTotalType = (league: League) => {
66
+ export const getLeagueTotalType = (league: League, testnet?: boolean) => {
62
67
  const leagueInfo = LeagueMap[league];
63
- return leagueInfo ? leagueInfo.total : undefined;
68
+ const liveBetTypesForLeague = testnet ? leagueInfo.betTypesForLiveTestnet : leagueInfo.betTypesForLive;
69
+ liveBetTypesForLeague.forEach((betType) => {
70
+ if (Object.values(TotalTypes).includes(betType)) {
71
+ return betType;
72
+ }
73
+ });
74
+ return undefined;
64
75
  };