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 +1 -1
- package/package.json +1 -1
- package/src/enums/sports.ts +9 -9
- package/src/utils/markets.ts +3 -0
- package/src/utils/sports.ts +17 -6
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
package/src/enums/sports.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
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
|
|
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
|
|
171
|
+
export enum MoneylineTypes {
|
|
172
172
|
MONEYLINE = 'Moneyline',
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
export
|
|
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
|
|
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
|
|
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
|
|
197
|
+
export enum MatchResolveType {
|
|
198
198
|
OVERTIME = 'overtime',
|
|
199
199
|
REGULAR = 'regular',
|
|
200
200
|
EMPTY = '',
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
-
export
|
|
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
|
|
213
|
+
export enum Provider {
|
|
214
214
|
RUNDOWN = 'rundown',
|
|
215
215
|
ENETPULSE = 'enetpulse',
|
|
216
216
|
JSONODDS = 'jsonOdds',
|
package/src/utils/markets.ts
CHANGED
|
@@ -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'),
|
package/src/utils/sports.ts
CHANGED
|
@@ -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
|
-
|
|
56
|
-
export const getLeagueSpreadType = (league: League) => {
|
|
55
|
+
export const getLeagueSpreadType = (league: League, testnet?: boolean) => {
|
|
57
56
|
const leagueInfo = LeagueMap[league];
|
|
58
|
-
|
|
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
|
-
|
|
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
|
};
|