overtime-live-trading-utils 1.0.8 → 1.1.0

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.
@@ -0,0 +1,30 @@
1
+ version: 2.1
2
+ orbs:
3
+ codecov: codecov/codecov@4.0.1
4
+
5
+ executors:
6
+ node-executor:
7
+ docker:
8
+ - image: circleci/node:17.0.1 # Specify the Node.js version you need
9
+
10
+ jobs:
11
+ test:
12
+ executor: node-executor
13
+ steps:
14
+ - checkout # Check out the code from your repository
15
+
16
+ - run:
17
+ name: Install dependencies
18
+ command: npm install
19
+
20
+ - run:
21
+ name: Run tests
22
+ command: npm test -- --coverage
23
+
24
+ - codecov/upload
25
+
26
+ workflows:
27
+ version: 2
28
+ test:
29
+ jobs:
30
+ - test
package/codecov.yml ADDED
@@ -0,0 +1,20 @@
1
+ # codecov.yml
2
+
3
+ # Specify the coverage rules
4
+ coverage:
5
+ precision: 2 # Number of decimal places for coverage percentages
6
+ round: down # Round coverage percentages down
7
+ range: '70...100' # Expected range of coverage (useful for enforcing quality gates)
8
+
9
+ # Adjust how Codecov processes reports
10
+ comment:
11
+ layout: 'reach, diff, flags' # Format of the PR comments
12
+ behavior: default # Default behavior for comments
13
+ require_changes: false # Only comment if changes occur in coverage
14
+ branches:
15
+ - main # Restrict comments to specific branches
16
+
17
+ # Custom CI configuration (if needed)
18
+ ci:
19
+ - circleci # Specify CircleCI as the CI provider
20
+
package/jest.config.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { JestConfigWithTsJest } from 'ts-jest';
2
+
3
+ const config: JestConfigWithTsJest = {
4
+ preset: 'ts-jest',
5
+ testEnvironment: 'node',
6
+ transform: {
7
+ '^.+\\.tsx?$': 'ts-jest',
8
+ },
9
+ globals: {
10
+ 'ts-jest': {
11
+ useESM: true, // Optional if you are using ES modules
12
+ },
13
+ },
14
+ };
15
+
16
+ export default config;
package/main.js CHANGED
@@ -1 +1 @@
1
- !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var i in a)e.o(a,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:a[i]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{AMERICAN_LEAGUES:()=>u,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>M,LEAGUES_NO_LIVE_CONSTRAINTS:()=>C,League:()=>p,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>U,LeagueMap:()=>c,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>T,MoneylineTypes:()=>L,PeriodType:()=>d,Provider:()=>I,ScoringType:()=>S,Sport:()=>t,SpreadTypes:()=>s,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>l,UFC_LEAGUE_IDS:()=>m,ZERO:()=>k,adjustSpreadOnChildOdds:()=>te,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>le,allowGameSportWithResultConstraint:()=>Te,allowSoccerGame:()=>Se,calculateImpliedOddsDifference:()=>P,checkGameContraints:()=>se,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>oe,fetchResultInCurrentSet:()=>de,filterOddsByMarketNameBookmaker:()=>Ee,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>B,getBookmakersArray:()=>O,getLeagueInfo:()=>h,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>w,getLeaguePeriodType:()=>V,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>F,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>_e,mapOpticOddsApiFixtureOdds:()=>me,mapOpticOddsApiFixtures:()=>Ce,mapOpticOddsApiResults:()=>ue,processMarket:()=>Le,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var E in o)Object.prototype.hasOwnProperty.call(o,E)&&(a[E]=o[E])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-i(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var o,E,A={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,i=[0,1],o=[1,0],E=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,o=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==o?i=r:0===o?i=r.substring(1,r.length):o<r.length&&(i=r.substring(0,o)+r.substring(o+1,r.length));var E=i,A=E.toString().length,_=e,t=_.toString().length;0===_&&(t=0);var p,L=A-t;for(p=L;p>0&&E%2==0;p--)E/=2;for(p=L;p>0&&E%5==0;p--)E/=5;return E}(e),A=e,_=Math.pow(10,-r)/2,t=2;t<1e3;t++){var p=Math.floor(A);if(i[t]=p*i[t-1]+i[t-2],Math.abs(i[t])>E)return;if(o[t]=p*o[t-1]+o[t-2],a=i[t]/o[t],Math.abs(a-e)<_||NaN==a)return i[t].toString()+"/"+o[t].toString();A=1/(A-p)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},_=((E=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new E(a)},o);_.prototype.to=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=A[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=i("round",a,-r.precision)),a};var t,p,L,s,l,S,T,d,I,n,N=_.from,O=function(e,r,a){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return a;var o=[];return i.primaryBookmaker&&o.push(i.primaryBookmaker),i.secondaryBookmaker&&o.push(i.secondaryBookmaker),i.tertiaryBookmaker&&o.push(i.tertiaryBookmaker),o}return a},R=function(e,r,a,i,o){var E=e.get(r[0]);if(!E)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=E.homeOdds,_=E.awayOdds,t=a?0:E.drawOdds;if(r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!a&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!a&&1===i.drawOdds)})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"};if(1==r.length)return{homeOdds:A,awayOdds:_,drawOdds:a?0:t};if(r.slice(1).some((function(r){var E=e.get(r);if(E){var p=E.homeOdds,L=E.awayOdds,s=E.drawOdds,l=N("decimal",A).to("impliedProbability"),S=N("decimal",_).to("impliedProbability"),T=a?0:N("decimal",t).to("impliedProbability"),d=N("decimal",p).to("impliedProbability"),I=N("decimal",L).to("impliedProbability"),n=a?0:N("decimal",s).to("impliedProbability"),O=P(l,d),R=P(S,I),c=a?0:P(T,n);if(O>i&&l>o&&d>o||R>i&&S>o&&I>o||!a&&c>i&&T>o&&n>o)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var p=[];return r.forEach((function(r){return p.push(e.get(r))})),{homeOdds:A,awayOdds:_,drawOdds:a?0:t}},P=function(e,r){return Math.abs(e-r)/e*100};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.FUTURES="Futures",e.EMPTY=""}(t||(t={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.AFC_CHAMPIONS_LEAGUE=20128]="AFC_CHAMPIONS_LEAGUE",e[e.EUROCUP=20200]="EUROCUP",e[e.SPAIN_LIGA_ACB=20201]="SPAIN_LIGA_ACB",e[e.ITALY_LEGA_BASKET_SERIE_A=20202]="ITALY_LEGA_BASKET_SERIE_A",e[e.GERMANY_BBL=20203]="GERMANY_BBL",e[e.FRANCE_LNB_PRO_A=20204]="FRANCE_LNB_PRO_A",e[e.CHINA_CBA=20205]="CHINA_CBA",e[e.AUSTRALIA_NBL=20206]="AUSTRALIA_NBL",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.UEFA_CHAMPIONS_LEAGUE_FUTURES=30016]="UEFA_CHAMPIONS_LEAGUE_FUTURES",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1=15312]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2=15313]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3=15314]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4=15315]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5=15316]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6=15317]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7=15318]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15322]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15323]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15324]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15325]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15326]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15327]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15328]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(p||(p={})),function(e){e.MONEYLINE="Moneyline"}(L||(L={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.GOAL_SPREAD="Goal Spread",e.RUN_LINE="Run Line",e.PUCK_LINE="Puck Line"}(s||(s={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(l||(l={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.MAPS="maps",e.EMPTY=""}(S||(S={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(T||(T={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.MAP="map",e.EMPTY=""}(d||(d={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(I||(I={}));var c=((n={})[p.NCAAF]={sport:t.FOOTBALL,id:p.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NFL]={sport:t.FOOTBALL,id:p.NFL,label:"NFL",opticOddsName:"NFL",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.MLB]={sport:t.BASEBALL,id:p.MLB,label:"MLB",opticOddsName:"MLB",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.INNING,isDrawAvailable:!1},n[p.NBA]={sport:t.BASKETBALL,id:p.NBA,label:"NBA",opticOddsName:"NBA",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NCAAB]={sport:t.BASKETBALL,id:p.NCAAB,label:"NCAA Basketball",opticOddsName:"NCAAB",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NHL]={sport:t.HOCKEY,id:p.NHL,label:"NHL",opticOddsName:"NHL",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.OVERTIME,periodType:d.PERIOD,isDrawAvailable:!1},n[p.UFC]={sport:t.FIGHTING,id:p.UFC,label:"UFC",provider:I.OPTICODDS,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.WNBA]={sport:t.BASKETBALL,id:p.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.MLS]={sport:t.SOCCER,id:p.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EPL]={sport:t.SOCCER,id:p.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGUE_ONE]={sport:t.SOCCER,id:p.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BUNDESLIGA]={sport:t.SOCCER,id:p.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LA_LIGA]={sport:t.SOCCER,id:p.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERIE_A]={sport:t.SOCCER,id:p.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CL]={sport:t.SOCCER,id:p.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EL]={sport:t.SOCCER,id:p.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WC]={sport:t.SOCCER,id:p.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:I.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.J1_LEAGUE]={sport:t.SOCCER,id:p.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.IPL]={sport:t.CRICKET,id:p.IPL,label:"Indian Premier League",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.EMPTY,periodType:d.INNING,isDrawAvailable:!1},n[p.T20_BLAST]={sport:t.CRICKET,id:p.T20_BLAST,label:"T20 Blast",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.EMPTY,periodType:d.INNING,isDrawAvailable:!1},n[p.IIHF_WORLD_CHAMPIONSHIP]={sport:t.HOCKEY,id:p.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.COPA_AMERICA]={sport:t.SOCCER,id:p.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.COPA_LIBERTADORES]={sport:t.SOCCER,id:p.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EURO]={sport:t.SOCCER,id:p.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EREDIVISIE]={sport:t.SOCCER,id:p.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.PRIMEIRA_LIGA]={sport:t.SOCCER,id:p.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:t.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_SOCCER]={sport:t.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WC_WOMEN]={sport:t.SOCCER,id:p.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_CUP]={sport:t.SOCCER,id:p.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FRANCE_CUP]={sport:t.SOCCER,id:p.FRANCE_CUP,label:"Coupe de France",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SPAIN_CUP]={sport:t.SOCCER,id:p.SPAIN_CUP,label:"Copa del Rey",opticOddsName:"Spain - Copa del Rey",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ITALY_CUP]={sport:t.SOCCER,id:p.ITALY_CUP,label:"Coppa Italia",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.TENNIS_WTA]={sport:t.TENNIS,id:p.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:I.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.TENNIS_GS]={sport:t.TENNIS,id:p.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:I.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.TENNIS_MASTERS]={sport:t.TENNIS,id:p.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:I.ENETPULSE,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_TENNIS]={sport:t.TENNIS,id:p.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.GERMANY_CUP]={sport:t.SOCCER,id:p.GERMANY_CUP,label:"DFB Pokal",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGA_MX]={sport:t.SOCCER,id:p.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BRAZIL_1]={sport:t.SOCCER,id:p.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EURO_U21]={sport:t.SOCCER,id:p.UEFA_EURO_U21,label:"UEFA EURO U21",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WORLD_CUP_U20]={sport:t.SOCCER,id:p.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:t.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HANDBALL]={sport:t.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EUROLEAGUE]={sport:t.BASKETBALL,id:p.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL]={sport:t.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:t.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FIBA_WORLD_CUP]={sport:t.BASKETBALL,id:p.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FORMULA1]={sport:t.MOTOSPORT,id:p.FORMULA1,label:"Formula 1",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:t.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:t.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:t.TABLE_TENNIS,id:p.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.MOTOGP]={sport:t.MOTOSPORT,id:p.MOTOGP,label:"MotoGP",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.SAUDI_PROFESSIONAL_LEAGUE]={sport:t.SOCCER,id:p.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_WATERPOLO]={sport:t.WATERPOLO,id:p.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.QUARTER,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:t.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_VOLEYBALL]={sport:t.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.BOXING]={sport:t.FIGHTING,id:p.BOXING,label:"Boxing",provider:I.EMPTY,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_RUGBY]={sport:t.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:t.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:t.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HOCKEY]={sport:t.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.UEFA_NATIONS_LEAGUE]={sport:t.SOCCER,id:p.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:I.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CONCACAF_NATIONS_LEAGUE]={sport:t.SOCCER,id:p.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CSGO]={sport:t.ESPORTS,id:p.CSGO,label:"CS GO",opticOddsName:"CS2",provider:I.OPTICODDS,scoringType:S.MAPS,matchResolveType:T.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.DOTA2]={sport:t.ESPORTS,id:p.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:I.OPTICODDS,scoringType:S.MAPS,matchResolveType:T.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:t.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:t.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_QUALIFICATION]={sport:t.BASKETBALL,id:p.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.LOL]={sport:t.ESPORTS,id:p.LOL,label:"LOL",opticOddsName:"League of Legends",provider:I.OPTICODDS,scoringType:S.MAPS,matchResolveType:T.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.CONMEBOL_WC_QUALIFICATIONS]={sport:t.SOCCER,id:p.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CONFERENCE_LEAGUE]={sport:t.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.NON_TITLE_BOXING]={sport:t.FIGHTING,id:p.NON_TITLE_BOXING,label:"Boxing",provider:I.ENETPULSE,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:t.SOCCER,id:p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:t.SOCCER,id:p.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:t.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.US_ELECTION]={sport:t.POLITICS,id:p.US_ELECTION,label:"US Election 2024",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.UEFA_SUPER_CUP]={sport:t.SOCCER,id:p.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BRAZIL_CUP]={sport:t.SOCCER,id:p.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_CHAMPIONSHIP]={sport:t.SOCCER,id:p.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SCOTLAND_PREMIERSHIP]={sport:t.SOCCER,id:p.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BELGIUM_LEAGUE]={sport:t.SOCCER,id:p.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CZECH_LEAGUE]={sport:t.SOCCER,id:p.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CHILE_PRIMERA]={sport:t.SOCCER,id:p.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FINLAND_LEAGUE]={sport:t.SOCCER,id:p.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ARGENTINA_PRIMERA]={sport:t.SOCCER,id:p.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.RUSSIA_PREMIER]={sport:t.SOCCER,id:p.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.TURKEY_SUPER_LEAGUE]={sport:t.SOCCER,id:p.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERBIA_SUPER_LEAGUE]={sport:t.SOCCER,id:p.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.GREECE_SUPER_LEAGUE]={sport:t.SOCCER,id:p.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.INDIA_PREMIER]={sport:t.SOCCER,id:p.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CHINA_SUPER_LEAGUE]={sport:t.SOCCER,id:p.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AUSTRALIA_A_LEAGUE]={sport:t.SOCCER,id:p.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SWITZERLAND_SUPER_LEAGUE]={sport:t.SOCCER,id:p.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BUNDESLIGA_2]={sport:t.SOCCER,id:p.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LA_LIGA_2]={sport:t.SOCCER,id:p.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERIE_B]={sport:t.SOCCER,id:p.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.INDIA_SUPER_LEAGUE]={sport:t.SOCCER,id:p.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGUE_2]={sport:t.SOCCER,id:p.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AUSTRIA_BUNDESLIGA]={sport:t.SOCCER,id:p.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.DENMARK_SUPER_LEAGUE]={sport:t.SOCCER,id:p.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.POLAND_LEAGUE]={sport:t.SOCCER,id:p.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SWEDEN_LEAGUE]={sport:t.SOCCER,id:p.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.COLOMBIA_PRIMERA_A]={sport:t.SOCCER,id:p.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_EFL_CUP]={sport:t.SOCCER,id:p.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_LEGAUE_1]={sport:t.SOCCER,id:p.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.URUGUAY_PRIMERA_DIVISION]={sport:t.SOCCER,id:p.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AFC_CHAMPIONS_LEAGUE]={sport:t.SOCCER,id:p.AFC_CHAMPIONS_LEAGUE,label:"AFC Champions League",opticOddsName:"AFC - Champions League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EUROCUP]={sport:t.BASKETBALL,id:p.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SPAIN_LIGA_ACB]={sport:t.BASKETBALL,id:p.SPAIN_LIGA_ACB,label:"Spain Liga ACB",opticOddsName:"Spain - Liga ACB",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.ITALY_LEGA_BASKET_SERIE_A]={sport:t.BASKETBALL,id:p.ITALY_LEGA_BASKET_SERIE_A,label:"Italy Lega Basket Serie A",opticOddsName:"Italy - Lega Basket Serie A",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.GERMANY_BBL]={sport:t.BASKETBALL,id:p.GERMANY_BBL,label:"Germany BBL",opticOddsName:"Germany - BBL",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FRANCE_LNB_PRO_A]={sport:t.BASKETBALL,id:p.FRANCE_LNB_PRO_A,label:"France LNB Pro A",opticOddsName:"France - LNB Pro A",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.CHINA_CBA]={sport:t.BASKETBALL,id:p.CHINA_CBA,label:"China CBA",opticOddsName:"China - CBA",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.AUSTRALIA_NBL]={sport:t.BASKETBALL,id:p.AUSTRALIA_NBL,label:"Australia NBL",opticOddsName:"Australia - NBL",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NFL_FUTURES]={sport:t.FUTURES,id:p.NFL_FUTURES,label:"NFL Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.NBA_FUTURES]={sport:t.FUTURES,id:p.NBA_FUTURES,label:"NBA Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.EPL_FUTURES]={sport:t.FUTURES,id:p.EPL_FUTURES,label:"EPL Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.UEFA_CHAMPIONS_LEAGUE_FUTURES]={sport:t.FUTURES,id:p.UEFA_CHAMPIONS_LEAGUE_FUTURES,label:"UEFA Champions League Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.GOLF_H2H]={sport:t.GOLF,id:p.GOLF_H2H,label:"Golf head-to-head",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.GOLF_WINNER]={sport:t.GOLF,id:p.GOLF_WINNER,label:"Golf Tournament Winner",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n),M=[p.CSGO,p.DOTA2,p.LOL,p.TENNIS_GS,p.TENNIS_MASTERS,p.SUMMER_OLYMPICS_TENNIS,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,p.TENNIS_MASTERS_LIVE_MAPPING_V2_1,p.TENNIS_MASTERS_LIVE_MAPPING_V2_2,p.TENNIS_MASTERS_LIVE_MAPPING_V2_3,p.TENNIS_MASTERS_LIVE_MAPPING_V2_4,p.TENNIS_MASTERS_LIVE_MAPPING_V2_5,p.TENNIS_MASTERS_LIVE_MAPPING_V2_6,p.TENNIS_MASTERS_LIVE_MAPPING_V2_7,p.TENNIS_MASTERS_LIVE_MAPPING_V2_8,p.TENNIS_MASTERS_LIVE_MAPPING_V2_9,p.TENNIS_MASTERS_LIVE_MAPPING_V2_10,p.TENNIS_MASTERS_LIVE_MAPPING_V2_11,p.TENNIS_MASTERS_LIVE_MAPPING_V2_12,p.TENNIS_MASTERS_LIVE_MAPPING_V2_13,p.TENNIS_MASTERS_LIVE_MAPPING_V2_14,p.TENNIS_MASTERS_LIVE_MAPPING_V2_15,p.TENNIS_MASTERS_LIVE_MAPPING_V2_16,p.TENNIS_MASTERS_LIVE_MAPPING_V2_17,p.TENNIS_MASTERS_LIVE_MAPPING_V2_18,p.TENNIS_MASTERS_LIVE_MAPPING_V2_19,p.TENNIS_MASTERS_LIVE_MAPPING_V2_20,p.TENNIS_MASTERS_LIVE_MAPPING_V2_21,p.TENNIS_MASTERS_LIVE_MAPPING_V2_22,p.TENNIS_WTA_LIVE_MAPPING_V2_1,p.TENNIS_WTA_LIVE_MAPPING_V2_2,p.TENNIS_WTA_LIVE_MAPPING_V2_3,p.TENNIS_WTA_LIVE_MAPPING_V2_4,p.TENNIS_WTA_LIVE_MAPPING_V2_5,p.TENNIS_WTA_LIVE_MAPPING_V2_6,p.TENNIS_WTA_LIVE_MAPPING_V2_7],C=[p.SUMMER_OLYMPICS_RUGBY,p.SUMMER_OLYMPICS_RUGBY_WOMEN],u=[p.NCAAF,p.NFL,p.MLB,p.NBA,p.NCAAB,p.NHL,p.WNBA,p.MLS,p.IPL,p.T20_BLAST],m=[701,702,703,704],U={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},y={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},G={1:"NCAAF",2:"NFL",3:"MLB",4:"NBA",5:"NCAAB",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",138:"Spain - Copa del Rey",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20128:"AFC - Champions League",20200:"Eurocup",20201:"Spain - Liga ACB",20202:"Italy - Lega Basket Serie A",20203:"Germany - BBL",20204:"France - LNB Pro A",20205:"China - CBA",20206:"Australia - NBL"},v=function(e){var r=c[e];return r?r.sport:t.EMPTY},D=function(e){var r=c[e];return r?r.label:""},g=function(e){var r=c[e];return r?r.provider:""},b=function(e){var r=c[e];return!!r&&r.isDrawAvailable},F=function(e){var r=new Set;return e.filter((function(e){return"true"===e.enabled})).map((function(e){return r.add(Number(e.sportId))})),Array.from(r)},B=function(e,r){var a=new Set;return r.filter((function(r){return Number(r.sportId)===Number(e)&&"true"===r.enabled})).map((function(e){return a.add(e.marketName)})),Array.from(a)},h=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},w=function(e){var r=c[e];return r?r.opticOddsName:void 0},V=function(e){var r=c[e];return r?r.periodType:""},f=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Spread"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},Y=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Total"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},H=function(e,r,a,i,o,E){var A,_;if(M.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),_=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),_=o.toLowerCase()==a.toLowerCase()),!0!==A){var t=E.get(i.toLowerCase()),p=E.get(r.toLowerCase()),L=E.get(a.toLowerCase());if([t,p].some((function(e){return null==e})))return!1;A=M.includes(e)?t==p||t==L:t==p}if(!0!==_){var s=E.get(o.toLowerCase());if(p=E.get(r.toLowerCase()),[s,L=E.get(a.toLowerCase())].some((function(e){return null==e})))return!1;_=M.includes(e)&&s==p||s==L}return A&&_},W=function(e,r,a,i){var o;if(v(a)==t.TENNIS){var E=r.getTime(),A=e.getTime();o=Math.abs(A-E)<=Number(60*i*1e3)}else o=r.toUTCString()==e.toUTCString();return o},k=0,K="Draw",Q=0,j=.2,x=10001,X=10002,z=100,Z=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(i-1)))return e;a=r}var o=1+a/100,E=o/i,A=e.map((function(e){return e*E}));if(A.some((function(e){return e>=1})))return Array(e.length).fill(0);var _=A.reduce((function(e,r){return e+r}),0);if(_<1)return Array(e.length).fill(0);var t=o/_;return A.map((function(e){return e*t}))},J=function(e,r,a,i){var o=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return o?{minSpread:o.minSpread?Number(o.minSpread):i,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:i,targetSpread:0}},q=function(){return q=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,o=0,E=r.length;o<E;o++)!i&&o in r||(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return e.concat(i||Array.prototype.slice.call(r))},ee=function(e){return e===k?0:re("decimal","impliedProbability",e)},re=function(e,r,a){try{return N(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,o){var E=new Map;return a.forEach((function(a){var A=0,_=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==_.length&&(A=_[0].price);var t=0,p=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==p.length&&(t=p[0].price);var L=0;if(!o){var s=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==s.length&&(L=s[0].price)}E.set(a.toLowerCase(),{homeOdds:A,awayOdds:t,drawOdds:L})})),E},ie=function(e,r,a,i,o,E,A){var _={homeTeam:i.homeTeam,awayTeam:i.awayTeam},t=ae(i.odds,L.MONEYLINE,a,_,e),p=R(t,a,e,A,j);if(p.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:p.errorMessage};var s=(e?[p.homeOdds,p.awayOdds]:[p.homeOdds,p.awayOdds,p.drawOdds]).map((function(e){return ee(e)})),l=J(r,o,Q,E);return{odds:s=null!==l?Z(s,l.minSpread,l.targetSpread):Z(s,E,0)}},oe=function(e,r,a,i,o,E){var A=[[],[],[]],_=A[0],t=A[1],p=A[2],L=h(a,E),s={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(L.length>0){Ee(e.odds,L,i[0]).filter((function(e){return e&&.5===Math.abs(Number(e.points)%1)})).forEach((function(e){"Total"===e.type?t.push(e):"Spread"===e.type&&_.push(e)}));var l=$($([],Ae(_,s),!0),_e(t,s),!0);te(l,r,o).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line),odds:e.odds},a=L.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,o=null==a?void 0:a.maxOdds;i&&o&&(e.odds[0]>=i||e.odds[0]<=o||e.odds[1]>=i||e.odds[1]<=o)||p.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return p},Ee=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==L.MONEYLINE.toLowerCase()})).map((function(e){return e.marketName.toLowerCase()}));return e.filter((function(e){return i.includes(e.marketName.toLowerCase())&&e.sportsBookName.toLowerCase()==a.toLowerCase()})).map((function(e){return q(q({},e),r.find((function(r){return r.marketName.toLowerCase()===e.marketName.toLowerCase()})))}))},Ae=function(e,r){var a=e.reduce((function(e,a){var i=a.points,o=a.price,E=a.selection,A=a.typeId,_=a.sportId,t=a.type,p=E===r.homeTeam,L=p?i:-i;return e[L]||(e[L]={home:null,away:null,typeId:null,sportId:null}),p?e[L].home=o:e[L].away=o,e[L].typeId=A,e[L].type=t,e[L].sportId=_,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],o=parseFloat(a);return null!==i.home&&null!==i.away&&e.push({line:o,odds:[i.home,i.away],typeId:i.typeId,sportId:i.sportId,type:i.type}),e}),[]);return i},_e=function(e,r){var a=e.reduce((function(e,r){if(r){var a="".concat(r.selection,"_").concat(r.points);e[a]||(e[a]={over:null,under:null}),"over"===r.selectionLine?e[a].over=r.price:"under"===r.selectionLine&&(e[a].under=r.price),e[a].typeId=r.typeId,e[a].type=r.type,e[a].sportId=r.sportId}return e}),{}),i=Object.entries(a).reduce((function(e,a){var i=a[0],o=a[1],E=i.split("_"),A=E[0],_=E[1],t=parseFloat(_),p=A===r.awayTeam;return null!==o.over&&null!==o.under&&e.push({line:t,odds:[o.over,o.under],typeId:p?Number(o.typeId)+1:o.typeId,sportId:o.sportId,type:o.type}),e}),[]);return i},te=function(e,r,a){var i=[];return e.forEach((function(e){var o=ee(e.odds[0])||k,E=ee(e.odds[1])||k;if(o!==k&&E!==k){var A,_=J(r,e.sportId,e.typeId,a);o=(A=null!==_?Z([o,E],_.minSpread,_.targetSpread):Z([o,E],a,0))[0],E=A[1],i.push(q(q({},e),{odds:A}))}})),i},pe=function(){return pe=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},pe.apply(this,arguments)},Le=function(e,r,a,i,o,E,A,_){var t=i.filter((function(r){return r.sportId===String(e.leagueId)})),p=ie(!o,t,a,r,e.leagueId,E,A);p.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=p.errorMessage):e.odds=p.odds.map((function(r){return 0!=r?{american:N("impliedProbability",r).to("moneyline"),decimal:N("impliedProbability",r).to("decimal"),normalizedImplied:r}:(e.errorMessage="Bad odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0})}));var L=oe(r,t,e.leagueId,a,E,_).map((function(r){var a=pe(pe({},e),r);return a.odds.length>0&&(a.odds=a.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:N("impliedProbability",e).to("moneyline"),decimal:N("impliedProbability",e).to("decimal"),normalizedImplied:e}}))),a}));return e.childMarkets=L,e},se=function(e,r,a){var i=v(r),o=e.homeTeam,E=e.homeTotal,A=e.awayTeam,_=e.awayTotal,p=e.clock,L=e.period,s=e.status,l=parseInt(L);return"completed"==s.toLowerCase()?{allow:!1,message:"Blocking game ".concat(o," - ").concat(A," because it is no longer live.")}:i===t.BASKETBALL?le(o,A,l,a.get(t.BASKETBALL)):i===t.HOCKEY?le(o,A,l,a.get(t.HOCKEY)):i===t.BASEBALL?le(o,A,l,a.get(t.BASEBALL)):i===t.SOCCER?Se(o,A,p,L,a.get(t.SOCCER)):i===t.TENNIS?Te(e,o,A,L,E,_,r,i):i===t.VOLLEYBALL?Te(e,o,A,l,E,_,r,i):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},le=function(e,r,a,i){return!Number.isNaN(a)&&a>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},Se=function(e,r,a,i,o){var E=Number(a);return!Number.isNaN(E)&&E>=o||Number.isNaN(E)&&"HALF"!=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},Te=function(e,r,a,i,o,E,A,_){var L=Number(i),s=de(L,e),l="atp"==e.league.toLowerCase(),S={home:o,away:E};return _==t.VOLLEYBALL?Ie(r,a,s,S,ne,5==L?Oe:Ne):A.toString().startsWith(p.TENNIS_GS)&&l?Ie(r,a,s,S,Re,ce):A.toString().startsWith(p.TENNIS_GS)&&!l||A.toString().startsWith(p.TENNIS_MASTERS)||A.toString().startsWith(p.SUMMER_OLYMPICS_TENNIS)||A.toString().startsWith(p.TENNIS_WTA)?Ie(r,a,s,S,Pe,ce):{allow:!0,message:"The sport ".concat(A," does not have result constraint")}},de=function(e,r){var a=0,i=0;switch(e){case 1:a=Number(r.homePeriod1),i=Number(r.awayPeriod1);break;case 2:a=Number(r.homePeriod2),i=Number(r.awayPeriod2);break;case 3:a=Number(r.homePeriod3),i=Number(r.awayPeriod3);break;case 4:a=Number(r.homePeriod4),i=Number(r.awayPeriod4);break;case 5:a=Number(r.homePeriod5),i=Number(r.awayPeriod5)}return{home:a,away:i}},Ie=function(e,r,a,i,o,E){return Number(i.home)!=o&&Number(i.away)!=o||!(Number(i.home)==o&&a.home>=E||Number(i.away)==o&&a.away>=E)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(a.home," - ").concat(a.away,")")}},ne=2,Ne=20,Oe=10,Re=2,Pe=1,ce=5,Me=function(){return Me=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Me.apply(this,arguments)},Ce=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display}}))},ue=function(e){return e.map((function(e){return Me(Me({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status.toLowerCase(),isLive:e.fixture.is_live,clock:e.in_play.clock,period:e.in_play.period?e.in_play.period.toLowerCase():e.in_play.period,homeTeam:e.fixture.home_team_display,awayTeam:e.fixture.away_team_display,homeTotal:e.scores.home.total,awayTotal:e.scores.away.total},Ue(e.scores.home.periods,"home")),Ue(e.scores.away.periods,"away"))}))},me=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display,isLive:e.is_live,status:e.status,sport:e.sport.id,league:e.league.name,odds:e.odds.map((function(r){return{id:r.id,sportsBookName:r.sportsbook,name:r.name,price:r.price,timestamp:r.timestamp,points:r.points,isMain:r.is_main,isLive:e.is_live,marketName:r.market.toLowerCase(),playerId:r.player_id,selection:r.selection,selectionLine:r.selection_line}}))}}))},Ue=function(e,r){return Object.values(e).reduce((function(e,a,i){var o;return Me(Me({},e),((o={})["".concat(r,"Period").concat(i+1)]=a,o))}),{})};return r})()));
1
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,a)=>{for(var i in a)e.o(a,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:a[i]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{AMERICAN_LEAGUES:()=>U,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>c,LEAGUES_NO_LIVE_CONSTRAINTS:()=>C,League:()=>p,LeagueIdMapEnetpulse:()=>y,LeagueIdMapOpticOdds:()=>G,LeagueIdMapRundown:()=>m,LeagueMap:()=>M,MIN_ODDS_FOR_DIFF_CHECKING:()=>j,MONEYLINE_TYPE_ID:()=>Q,MULTIPLIER_100:()=>z,MatchResolveType:()=>T,MoneylineTypes:()=>L,PeriodType:()=>d,Provider:()=>I,ScoringType:()=>S,Sport:()=>_,SpreadTypes:()=>s,TAG_CHILD_SPREAD:()=>x,TAG_CHILD_TOTALS:()=>X,TotalTypes:()=>l,UFC_LEAGUE_IDS:()=>u,ZERO:()=>k,adjustSpreadOnChildOdds:()=>pe,adjustSpreadOnOdds:()=>Z,allowGameSportWithPeriodConstraint:()=>Se,allowGameSportWithResultConstraint:()=>de,allowSoccerGame:()=>Te,calculateImpliedOddsDifference:()=>P,checkGameContraints:()=>le,checkOddsFromBookmakers:()=>R,createChildMarkets:()=>oe,fetchResultInCurrentSet:()=>Ie,filterOddsByMarketNameBookmaker:()=>Ee,filterOddsByMarketNameTeamNameBookmaker:()=>ae,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>w,getBookmakersArray:()=>O,getLeagueInfo:()=>V,getLeagueIsDrawAvailable:()=>b,getLeagueLabel:()=>D,getLeagueOpticOddsName:()=>B,getLeaguePeriodType:()=>F,getLeagueProvider:()=>g,getLeagueSport:()=>v,getLeagueSpreadTypes:()=>f,getLeagueTotalTypes:()=>Y,getLiveSupportedLeagues:()=>h,getParentOdds:()=>ie,getSpreadData:()=>J,groupAndFormatMoneylineOdds:()=>_e,groupAndFormatSpreadOdds:()=>Ae,groupAndFormatTotalOdds:()=>te,mapOpticOddsApiFixtureOdds:()=>me,mapOpticOddsApiFixtures:()=>Ue,mapOpticOddsApiResults:()=>ue,processMarket:()=>se,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(e,r){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var E in o)Object.prototype.hasOwnProperty.call(o,E)&&(a[E]=o[E])}return a});var a=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,a){return void 0===a||0==+a?Math[e](r):(r=+r,a=+a,isNaN(r)||"number"!=typeof a||a%1!=0?NaN:r<0?-i(e,-r,a):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-a:-a)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+a:a))))}var o,E,A={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=a(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(e){var r,a=e.toString().split("/");if(e=parseFloat(a[0]),2===a.length)r=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var a,i=[0,1],o=[1,0],E=function(e){var r=null,a=e.toString().indexOf("E");-1==a&&(a=e.toString().indexOf("e"));var i=null,o=(r=-1==a?e.toString():e.toString().substring(0,a)).toString().indexOf(".");-1==o?i=r:0===o?i=r.substring(1,r.length):o<r.length&&(i=r.substring(0,o)+r.substring(o+1,r.length));var E=i,A=E.toString().length,t=e,_=t.toString().length;0===t&&(_=0);var p,L=A-_;for(p=L;p>0&&E%2==0;p--)E/=2;for(p=L;p>0&&E%5==0;p--)E/=5;return E}(e),A=e,t=Math.pow(10,-r)/2,_=2;_<1e3;_++){var p=Math.floor(A);if(i[_]=p*i[_-1]+i[_-2],Math.abs(i[_])>E)return;if(o[_]=p*o[_-1]+o[_-2],a=i[_]/o[_],Math.abs(a-e)<t||NaN==a)return i[_].toString()+"/"+o[_].toString();A=1/(A-p)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},t=((E=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=a(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var a=A[e].from(r);return new E(a)},o);t.prototype.to=function(e,r){if(!A.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var a=A[e].to.call(this,r);return"number"==typeof a&&null!==r.precision&&(a=i("round",a,-r.precision)),a};var _,p,L,s,l,S,T,d,I,n,N=t.from,O=function(e,r,a){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return a;var o=[];return i.primaryBookmaker&&o.push(i.primaryBookmaker),i.secondaryBookmaker&&o.push(i.secondaryBookmaker),i.tertiaryBookmaker&&o.push(i.tertiaryBookmaker),o}return a},R=function(e,r,a,i,o){var E=e.get(r[0]);if(!E)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var A=E.homeOdds,t=E.awayOdds,_=a?0:E.drawOdds;return r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!a&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!a&&1===i.drawOdds)}))?{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause bookmakers have 0 or 1 odds"}:1==r.length?{homeOdds:A,awayOdds:t,drawOdds:a?0:_}:r.slice(1).some((function(r){var E=e.get(r);if(E){var p=E.homeOdds,L=E.awayOdds,s=E.drawOdds,l=N("decimal",A).to("impliedProbability"),S=N("decimal",t).to("impliedProbability"),T=a?0:N("decimal",_).to("impliedProbability"),d=N("decimal",p).to("impliedProbability"),I=N("decimal",L).to("impliedProbability"),n=a?0:N("decimal",s).to("impliedProbability"),O=P(l,d),R=P(S,I),M=a?0:P(T,n);if(O>i&&l>o&&d>o||R>i&&S>o&&I>o||!a&&M>i&&T>o&&n>o)return!0}return!1}))?{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"}:{homeOdds:A,awayOdds:t,drawOdds:a?0:_}},P=function(e,r){return Math.abs(e-r)/e*100};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.FUTURES="Futures",e.EMPTY=""}(_||(_={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.AFC_CHAMPIONS_LEAGUE=20128]="AFC_CHAMPIONS_LEAGUE",e[e.EUROCUP=20200]="EUROCUP",e[e.SPAIN_LIGA_ACB=20201]="SPAIN_LIGA_ACB",e[e.ITALY_LEGA_BASKET_SERIE_A=20202]="ITALY_LEGA_BASKET_SERIE_A",e[e.GERMANY_BBL=20203]="GERMANY_BBL",e[e.FRANCE_LNB_PRO_A=20204]="FRANCE_LNB_PRO_A",e[e.CHINA_CBA=20205]="CHINA_CBA",e[e.AUSTRALIA_NBL=20206]="AUSTRALIA_NBL",e[e.NFL_FUTURES=30002]="NFL_FUTURES",e[e.NBA_FUTURES=30004]="NBA_FUTURES",e[e.NHL_FUTURES=30006]="NHL_FUTURES",e[e.EPL_FUTURES=30011]="EPL_FUTURES",e[e.LIGUE_ONE_FUTURES=30012]="LIGUE_ONE_FUTURES",e[e.BUNDESLIGA_FUTURES=30013]="BUNDESLIGA_FUTURES",e[e.LA_LIGA_FUTURES=30014]="LA_LIGA_FUTURES",e[e.SERIE_A_FUTURES=30015]="SERIE_A_FUTURES",e[e.UEFA_CHAMPIONS_LEAGUE_FUTURES=30016]="UEFA_CHAMPIONS_LEAGUE_FUTURES",e[e.EUROLEAGUE_FUTURES=30399]="EUROLEAGUE_FUTURES",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1=15312]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2=15313]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3=15314]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4=15315]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5=15316]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6=15317]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7=15318]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15322]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15323]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15324]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15325]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15326]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15327]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15328]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(p||(p={})),function(e){e.MONEYLINE="Moneyline"}(L||(L={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.GOAL_SPREAD="Goal Spread",e.RUN_LINE="Run Line",e.PUCK_LINE="Puck Line"}(s||(s={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(l||(l={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.MAPS="maps",e.EMPTY=""}(S||(S={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(T||(T={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.MAP="map",e.EMPTY=""}(d||(d={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(I||(I={}));var M=((n={})[p.NCAAF]={sport:_.FOOTBALL,id:p.NCAAF,label:"NCAA Football",opticOddsName:"NCAAF",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NFL]={sport:_.FOOTBALL,id:p.NFL,label:"NFL",opticOddsName:"NFL",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.MLB]={sport:_.BASEBALL,id:p.MLB,label:"MLB",opticOddsName:"MLB",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.INNING,isDrawAvailable:!1},n[p.NBA]={sport:_.BASKETBALL,id:p.NBA,label:"NBA",opticOddsName:"NBA",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NCAAB]={sport:_.BASKETBALL,id:p.NCAAB,label:"NCAA Basketball",opticOddsName:"NCAAB",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NHL]={sport:_.HOCKEY,id:p.NHL,label:"NHL",opticOddsName:"NHL",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.OVERTIME,periodType:d.PERIOD,isDrawAvailable:!1},n[p.UFC]={sport:_.FIGHTING,id:p.UFC,label:"UFC",provider:I.OPTICODDS,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.WNBA]={sport:_.BASKETBALL,id:p.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.MLS]={sport:_.SOCCER,id:p.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EPL]={sport:_.SOCCER,id:p.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGUE_ONE]={sport:_.SOCCER,id:p.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BUNDESLIGA]={sport:_.SOCCER,id:p.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LA_LIGA]={sport:_.SOCCER,id:p.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERIE_A]={sport:_.SOCCER,id:p.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CL]={sport:_.SOCCER,id:p.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EL]={sport:_.SOCCER,id:p.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WC]={sport:_.SOCCER,id:p.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:I.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.J1_LEAGUE]={sport:_.SOCCER,id:p.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.IPL]={sport:_.CRICKET,id:p.IPL,label:"Indian Premier League",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.EMPTY,periodType:d.INNING,isDrawAvailable:!1},n[p.T20_BLAST]={sport:_.CRICKET,id:p.T20_BLAST,label:"T20 Blast",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.EMPTY,periodType:d.INNING,isDrawAvailable:!1},n[p.IIHF_WORLD_CHAMPIONSHIP]={sport:_.HOCKEY,id:p.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.COPA_AMERICA]={sport:_.SOCCER,id:p.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.COPA_LIBERTADORES]={sport:_.SOCCER,id:p.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EURO]={sport:_.SOCCER,id:p.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EREDIVISIE]={sport:_.SOCCER,id:p.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.PRIMEIRA_LIGA]={sport:_.SOCCER,id:p.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:_.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_SOCCER]={sport:_.SOCCER,id:p.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WC_WOMEN]={sport:_.SOCCER,id:p.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_CUP]={sport:_.SOCCER,id:p.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FRANCE_CUP]={sport:_.SOCCER,id:p.FRANCE_CUP,label:"Coupe de France",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SPAIN_CUP]={sport:_.SOCCER,id:p.SPAIN_CUP,label:"Copa del Rey",opticOddsName:"Spain - Copa del Rey",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ITALY_CUP]={sport:_.SOCCER,id:p.ITALY_CUP,label:"Coppa Italia",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.TENNIS_WTA]={sport:_.TENNIS,id:p.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.TENNIS_GS]={sport:_.TENNIS,id:p.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.TENNIS_MASTERS]={sport:_.TENNIS,id:p.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_TENNIS]={sport:_.TENNIS,id:p.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.GERMANY_CUP]={sport:_.SOCCER,id:p.GERMANY_CUP,label:"DFB Pokal",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGA_MX]={sport:_.SOCCER,id:p.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BRAZIL_1]={sport:_.SOCCER,id:p.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EURO_U21]={sport:_.SOCCER,id:p.UEFA_EURO_U21,label:"UEFA EURO U21",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FIFA_WORLD_CUP_U20]={sport:_.SOCCER,id:p.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:_.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HANDBALL]={sport:_.HANDBALL,id:p.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EUROLEAGUE]={sport:_.BASKETBALL,id:p.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FIBA_WORLD_CUP]={sport:_.BASKETBALL,id:p.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FORMULA1]={sport:_.MOTOSPORT,id:p.FORMULA1,label:"Formula 1",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:_.TABLE_TENNIS,id:p.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.MOTOGP]={sport:_.MOTOSPORT,id:p.MOTOGP,label:"MotoGP",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.SAUDI_PROFESSIONAL_LEAGUE]={sport:_.SOCCER,id:p.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_WATERPOLO]={sport:_.WATERPOLO,id:p.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.QUARTER,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_VOLEYBALL]={sport:_.VOLLEYBALL,id:p.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:I.EMPTY,scoringType:S.SETS,matchResolveType:T.REGULAR,periodType:d.SET,isDrawAvailable:!1},n[p.BOXING]={sport:_.FIGHTING,id:p.BOXING,label:"Boxing",provider:I.EMPTY,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_RUGBY]={sport:_.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:_.RUGBY,id:p.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:_.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.SUMMER_OLYMPICS_HOCKEY]={sport:_.HOCKEY,id:p.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.PERIOD,isDrawAvailable:!0},n[p.UEFA_NATIONS_LEAGUE]={sport:_.SOCCER,id:p.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:I.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CONCACAF_NATIONS_LEAGUE]={sport:_.SOCCER,id:p.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CSGO]={sport:_.ESPORTS,id:p.CSGO,label:"CS GO",opticOddsName:"CS2",provider:I.OPTICODDS,scoringType:S.MAPS,matchResolveType:T.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.DOTA2]={sport:_.ESPORTS,id:p.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:I.OPTICODDS,scoringType:S.MAPS,matchResolveType:T.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SUMMER_OLYMPICS_QUALIFICATION]={sport:_.BASKETBALL,id:p.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:I.EMPTY,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.LOL]={sport:_.ESPORTS,id:p.LOL,label:"LOL",opticOddsName:"League of Legends",provider:I.OPTICODDS,scoringType:S.MAPS,matchResolveType:T.EMPTY,periodType:d.MAP,isDrawAvailable:!1},n[p.CONMEBOL_WC_QUALIFICATIONS]={sport:_.SOCCER,id:p.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CONFERENCE_LEAGUE]={sport:_.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.NON_TITLE_BOXING]={sport:_.FIGHTING,id:p.NON_TITLE_BOXING,label:"Boxing",provider:I.EMPTY,scoringType:S.ROUNDS,matchResolveType:T.EMPTY,periodType:d.ROUND,isDrawAvailable:!1},n[p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:_.SOCCER,id:p.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:I.EMPTY,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.US_ELECTION]={sport:_.POLITICS,id:p.US_ELECTION,label:"US Election 2024",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.UEFA_SUPER_CUP]={sport:_.SOCCER,id:p.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BRAZIL_CUP]={sport:_.SOCCER,id:p.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_CHAMPIONSHIP]={sport:_.SOCCER,id:p.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SCOTLAND_PREMIERSHIP]={sport:_.SOCCER,id:p.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BELGIUM_LEAGUE]={sport:_.SOCCER,id:p.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CZECH_LEAGUE]={sport:_.SOCCER,id:p.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CHILE_PRIMERA]={sport:_.SOCCER,id:p.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.FINLAND_LEAGUE]={sport:_.SOCCER,id:p.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ARGENTINA_PRIMERA]={sport:_.SOCCER,id:p.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.RUSSIA_PREMIER]={sport:_.SOCCER,id:p.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.TURKEY_SUPER_LEAGUE]={sport:_.SOCCER,id:p.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERBIA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.GREECE_SUPER_LEAGUE]={sport:_.SOCCER,id:p.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.INDIA_PREMIER]={sport:_.SOCCER,id:p.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.CHINA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AUSTRALIA_A_LEAGUE]={sport:_.SOCCER,id:p.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SWITZERLAND_SUPER_LEAGUE]={sport:_.SOCCER,id:p.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.BUNDESLIGA_2]={sport:_.SOCCER,id:p.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LA_LIGA_2]={sport:_.SOCCER,id:p.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SERIE_B]={sport:_.SOCCER,id:p.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.INDIA_SUPER_LEAGUE]={sport:_.SOCCER,id:p.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.LIGUE_2]={sport:_.SOCCER,id:p.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AUSTRIA_BUNDESLIGA]={sport:_.SOCCER,id:p.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.DENMARK_SUPER_LEAGUE]={sport:_.SOCCER,id:p.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.POLAND_LEAGUE]={sport:_.SOCCER,id:p.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.SWEDEN_LEAGUE]={sport:_.SOCCER,id:p.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.COLOMBIA_PRIMERA_A]={sport:_.SOCCER,id:p.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_EFL_CUP]={sport:_.SOCCER,id:p.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.ENGLAND_LEGAUE_1]={sport:_.SOCCER,id:p.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.URUGUAY_PRIMERA_DIVISION]={sport:_.SOCCER,id:p.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.AFC_CHAMPIONS_LEAGUE]={sport:_.SOCCER,id:p.AFC_CHAMPIONS_LEAGUE,label:"AFC Champions League",opticOddsName:"AFC - Champions League",provider:I.OPTICODDS,scoringType:S.GOALS,matchResolveType:T.REGULAR,periodType:d.HALF,isDrawAvailable:!0},n[p.EUROCUP]={sport:_.BASKETBALL,id:p.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.SPAIN_LIGA_ACB]={sport:_.BASKETBALL,id:p.SPAIN_LIGA_ACB,label:"Spain Liga ACB",opticOddsName:"Spain - Liga ACB",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.ITALY_LEGA_BASKET_SERIE_A]={sport:_.BASKETBALL,id:p.ITALY_LEGA_BASKET_SERIE_A,label:"Italy Lega Basket Serie A",opticOddsName:"Italy - Lega Basket Serie A",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.GERMANY_BBL]={sport:_.BASKETBALL,id:p.GERMANY_BBL,label:"Germany BBL",opticOddsName:"Germany - BBL",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.FRANCE_LNB_PRO_A]={sport:_.BASKETBALL,id:p.FRANCE_LNB_PRO_A,label:"France LNB Pro A",opticOddsName:"France - LNB Pro A",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.CHINA_CBA]={sport:_.BASKETBALL,id:p.CHINA_CBA,label:"China CBA",opticOddsName:"China - CBA",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.AUSTRALIA_NBL]={sport:_.BASKETBALL,id:p.AUSTRALIA_NBL,label:"Australia NBL",opticOddsName:"Australia - NBL",provider:I.OPTICODDS,scoringType:S.POINTS,matchResolveType:T.OVERTIME,periodType:d.QUARTER,isDrawAvailable:!1},n[p.NFL_FUTURES]={sport:_.FUTURES,id:p.NFL_FUTURES,label:"NFL Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.NBA_FUTURES]={sport:_.FUTURES,id:p.NBA_FUTURES,label:"NBA Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.NHL_FUTURES]={sport:_.FUTURES,id:p.NHL_FUTURES,label:"NHL Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.EPL_FUTURES]={sport:_.FUTURES,id:p.EPL_FUTURES,label:"EPL Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.LIGUE_ONE_FUTURES]={sport:_.FUTURES,id:p.LIGUE_ONE_FUTURES,label:"Ligue 1 Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.BUNDESLIGA_FUTURES]={sport:_.FUTURES,id:p.BUNDESLIGA_FUTURES,label:"Bundesliga Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.LA_LIGA_FUTURES]={sport:_.FUTURES,id:p.LA_LIGA_FUTURES,label:"La Liga",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.SERIE_A_FUTURES]={sport:_.FUTURES,id:p.SERIE_A_FUTURES,label:"Serie A Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.UEFA_CHAMPIONS_LEAGUE_FUTURES]={sport:_.FUTURES,id:p.UEFA_CHAMPIONS_LEAGUE_FUTURES,label:"UEFA Champions League Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.EUROLEAGUE_FUTURES]={sport:_.FUTURES,id:p.EUROLEAGUE_FUTURES,label:"Euroleague Futures",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.GOLF_H2H]={sport:_.GOLF,id:p.GOLF_H2H,label:"Golf head-to-head",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n[p.GOLF_WINNER]={sport:_.GOLF,id:p.GOLF_WINNER,label:"Golf Tournament Winner",provider:I.EMPTY,scoringType:S.EMPTY,matchResolveType:T.EMPTY,periodType:d.EMPTY,isDrawAvailable:!1},n),c=[p.CSGO,p.DOTA2,p.LOL,p.TENNIS_GS,p.TENNIS_MASTERS,p.SUMMER_OLYMPICS_TENNIS,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,p.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,p.TENNIS_MASTERS_LIVE_MAPPING_V2_1,p.TENNIS_MASTERS_LIVE_MAPPING_V2_2,p.TENNIS_MASTERS_LIVE_MAPPING_V2_3,p.TENNIS_MASTERS_LIVE_MAPPING_V2_4,p.TENNIS_MASTERS_LIVE_MAPPING_V2_5,p.TENNIS_MASTERS_LIVE_MAPPING_V2_6,p.TENNIS_MASTERS_LIVE_MAPPING_V2_7,p.TENNIS_MASTERS_LIVE_MAPPING_V2_8,p.TENNIS_MASTERS_LIVE_MAPPING_V2_9,p.TENNIS_MASTERS_LIVE_MAPPING_V2_10,p.TENNIS_MASTERS_LIVE_MAPPING_V2_11,p.TENNIS_MASTERS_LIVE_MAPPING_V2_12,p.TENNIS_MASTERS_LIVE_MAPPING_V2_13,p.TENNIS_MASTERS_LIVE_MAPPING_V2_14,p.TENNIS_MASTERS_LIVE_MAPPING_V2_15,p.TENNIS_MASTERS_LIVE_MAPPING_V2_16,p.TENNIS_MASTERS_LIVE_MAPPING_V2_17,p.TENNIS_MASTERS_LIVE_MAPPING_V2_18,p.TENNIS_MASTERS_LIVE_MAPPING_V2_19,p.TENNIS_MASTERS_LIVE_MAPPING_V2_20,p.TENNIS_MASTERS_LIVE_MAPPING_V2_21,p.TENNIS_MASTERS_LIVE_MAPPING_V2_22,p.TENNIS_WTA_LIVE_MAPPING_V2_1,p.TENNIS_WTA_LIVE_MAPPING_V2_2,p.TENNIS_WTA_LIVE_MAPPING_V2_3,p.TENNIS_WTA_LIVE_MAPPING_V2_4,p.TENNIS_WTA_LIVE_MAPPING_V2_5,p.TENNIS_WTA_LIVE_MAPPING_V2_6,p.TENNIS_WTA_LIVE_MAPPING_V2_7],C=[p.SUMMER_OLYMPICS_RUGBY,p.SUMMER_OLYMPICS_RUGBY_WOMEN],U=[p.NCAAF,p.NFL,p.MLB,p.NBA,p.NCAAB,p.NHL,p.WNBA,p.MLS,p.IPL,p.T20_BLAST],u=[701,702,703,704],m={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},y={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},G={1:"NCAAF",2:"NFL",3:"MLB",4:"NBA",5:"NCAAB",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",138:"Spain - Copa del Rey",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20128:"AFC - Champions League",20200:"Eurocup",20201:"Spain - Liga ACB",20202:"Italy - Lega Basket Serie A",20203:"Germany - BBL",20204:"France - LNB Pro A",20205:"China - CBA",20206:"Australia - NBL"},v=function(e){var r=M[e];return r?r.sport:_.EMPTY},D=function(e){var r=M[e];return r?r.label:""},g=function(e){var r=M[e];return r?r.provider:""},b=function(e){var r=M[e];return!!r&&r.isDrawAvailable},F=function(e){var r=M[e];return r?r.periodType:""},B=function(e){var r=M[e];return r?r.opticOddsName:void 0},h=function(e){var r=new Set;return e.filter((function(e){return"true"===e.enabled})).map((function(e){return r.add(Number(e.sportId))})),Array.from(r)},w=function(e,r){var a=new Set;return r.filter((function(r){return Number(r.sportId)===Number(e)&&"true"===r.enabled})).map((function(e){return a.add(e.marketName)})),Array.from(a)},V=function(e,r){return r.filter((function(r){return Number(r.sportId)===e}))},f=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Spread"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},Y=function(e,r){return r.filter((function(r){return Number(r.sportId)===Number(e)&&"Total"===r.type&&"true"===r.enabled})).map((function(e){return e.marketName.toLowerCase()}))},H=function(e,r,a,i,o,E){var A,t;if(c.includes(e)?(A=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==a.toLowerCase(),t=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==a.toLowerCase()):(A=i.toLowerCase()==r.toLowerCase(),t=o.toLowerCase()==a.toLowerCase()),!0!==A){var _=E.get(i.toLowerCase()),p=E.get(r.toLowerCase()),L=E.get(a.toLowerCase());if([_,p].some((function(e){return null==e})))return!1;A=c.includes(e)?_==p||_==L:_==p}if(!0!==t){var s=E.get(o.toLowerCase());if(p=E.get(r.toLowerCase()),[s,L=E.get(a.toLowerCase())].some((function(e){return null==e})))return!1;t=c.includes(e)&&s==p||s==L}return A&&t},W=function(e,r,a,i){var o;if(v(a)==_.TENNIS){var E=r.getTime(),A=e.getTime();o=Math.abs(A-E)<=Number(60*i*1e3)}else o=r.toUTCString()==e.toUTCString();return o},k=0,K="Draw",Q=0,j=.2,x=10001,X=10002,z=100,Z=function(e,r,a){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===a){if(!(r>100*(i-1)))return e;a=r}var o=1+a/100,E=o/i,A=e.map((function(e){return e*E}));if(A.some((function(e){return e>=1})))return Array(e.length).fill(0);var t=A.reduce((function(e,r){return e+r}),0);if(t<1)return Array(e.length).fill(0);var _=o/t;return A.map((function(e){return e*_}))},J=function(e,r,a,i){var o=e.find((function(e){return Number(e.typeId)===Number(a)&&Number(e.sportId)===Number(r)}));return o?{minSpread:o.minSpread?Number(o.minSpread):i,targetSpread:o.targetSpread?Number(o.targetSpread):0}:{minSpread:i,targetSpread:0}},q=function(){return q=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},q.apply(this,arguments)},$=function(e,r,a){if(a||2===arguments.length)for(var i,o=0,E=r.length;o<E;o++)!i&&o in r||(i||(i=Array.prototype.slice.call(r,0,o)),i[o]=r[o]);return e.concat(i||Array.prototype.slice.call(r))},ee=function(e){return e===k?0:re("decimal","impliedProbability",e)},re=function(e,r,a){try{return N(e,a).to(r)}catch(e){return 0}},ae=function(e,r,a,i,o){var E=new Map;return a.forEach((function(a){var A=0,t=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==t.length&&(A=t[0].price);var _=0,p=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==p.length&&(_=p[0].price);var L=0;if(!o){var s=e.filter((function(e){return e&&e.marketName.toLowerCase()===r.toLowerCase()&&e.sportsBookName.toLowerCase()==a.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==s.length&&(L=s[0].price)}E.set(a.toLowerCase(),{homeOdds:A,awayOdds:_,drawOdds:L})})),E},ie=function(e,r,a,i,o,E,A){var t={homeTeam:i.homeTeam,awayTeam:i.awayTeam},_=ae(i.odds,L.MONEYLINE,a,t,e),p=R(_,a,e,A,j);if(p.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:p.errorMessage};var s=(e?[p.homeOdds,p.awayOdds]:[p.homeOdds,p.awayOdds,p.drawOdds]).map((function(e){return ee(e)})),l=J(r,o,Q,E);return{odds:s=null!==l?Z(s,l.minSpread,l.targetSpread):Z(s,E,0)}},oe=function(e,r,a,i,o,E){var A=[[],[],[],[]],t=A[0],_=A[1],p=A[2],L=A[3],s=V(a,E),l={homeTeam:e.homeTeam,awayTeam:e.awayTeam};if(s.length>0){Ee(e.odds,s,i[0]).forEach((function(e){"Total"===e.type?.5===Math.abs(Number(e.points)%1)&&_.push(e):"Spread"===e.type?.5===Math.abs(Number(e.points)%1)&&t.push(e):"Moneyline"===e.type&&p.push(e)}));var S=$($($([],Ae(t,l),!0),te(_,l),!0),_e(p,l),!0);pe(S,r,o).forEach((function(e){var r={leagueId:Number(e.sportId),typeId:Number(e.typeId),type:e.type.toLowerCase(),line:Number(e.line||0),odds:e.odds},a=s.find((function(r){return Number(r.typeId)===Number(e.typeId)})),i=null==a?void 0:a.minOdds,o=null==a?void 0:a.maxOdds;i&&o&&(e.odds[0]>=i||e.odds[0]<=o||e.odds[1]>=i||e.odds[1]<=o)||L.push(r)}))}else console.warn("No child markets for leagueID: ".concat(Number(a)));return L},Ee=function(e,r,a){var i=r.filter((function(e){return e.marketName.toLowerCase()!==L.MONEYLINE.toLowerCase()&&"true"===e.enabled})).map((function(e){return e.marketName.toLowerCase()}));return e.filter((function(e){return i.includes(e.marketName.toLowerCase())&&e.sportsBookName.toLowerCase()==a.toLowerCase()})).map((function(e){return q(q({},e),r.find((function(r){return r.marketName.toLowerCase()===e.marketName.toLowerCase()})))}))},Ae=function(e,r){var a=e.reduce((function(e,a){var i=a.points,o=a.marketName,E=a.price,A=a.selection,t=a.typeId,_=a.sportId,p=a.type,L=A===r.homeTeam,s="".concat(o,"_").concat(L?i:-i);return e[s]||(e[s]={home:null,away:null,typeId:null,sportId:null}),L?e[s].home=E:e[s].away=E,e[s].typeId=t,e[s].type=p,e[s].sportId=_,e}),{}),i=Object.entries(a).reduce((function(e,r){var a=r[0],i=r[1],o=a.split("_"),E=(o[0],o[1]),A=parseFloat(E);return null!==i.home&&null!==i.away&&e.push({line:A,odds:[i.home,i.away],typeId:i.typeId,sportId:i.sportId,type:i.type}),e}),[]);return i},te=function(e,r){var a=e.reduce((function(e,r){if(r){var a="".concat(r.marketName,"_").concat(r.selection,"_").concat(r.points);e[a]||(e[a]={over:null,under:null}),"over"===r.selectionLine?e[a].over=r.price:"under"===r.selectionLine&&(e[a].under=r.price),e[a].typeId=r.typeId,e[a].type=r.type,e[a].sportId=r.sportId}return e}),{}),i=Object.entries(a).reduce((function(e,a){var i=a[0],o=a[1],E=i.split("_"),A=(E[0],E[1]),t=E[2],_=parseFloat(t),p=A===r.awayTeam;return null!==o.over&&null!==o.under&&e.push({line:_,odds:[o.over,o.under],typeId:p?Number(o.typeId)+1:o.typeId,sportId:o.sportId,type:o.type}),e}),[]);return i},_e=function(e,r){var a=e.reduce((function(e,a){var i=a.price,o=a.selection,E=a.typeId,A=a.sportId,t=a.type,_=E;return e[_]||(e[_]={home:null,away:null,draw:null,typeId:null,sportId:null}),o.toLowerCase()===r.homeTeam.toLowerCase()?e[_].home=i:o.toLowerCase()===r.awayTeam.toLowerCase()?e[_].away=i:o.toLowerCase()===K.toLowerCase()&&(e[_].draw=i),e[_].typeId=E,e[_].type=t,e[_].sportId=A,e}),{}),i=Object.entries(a).reduce((function(e,r){r[0];var a=r[1];return null!==a.home&&null!==a.away&&e.push({odds:a.draw?[a.home,a.away,a.draw]:[a.home,a.away],typeId:a.typeId,sportId:a.sportId,type:a.type}),e}),[]);return i},pe=function(e,r,a){var i=[];return e.forEach((function(e){var o=3===e.odds.length,E=ee(e.odds[0])||k,A=ee(e.odds[1])||k,t=ee(e.odds[2])||k,_=o?[E,A,t]:[E,A];if(!(E===k||A===k||o&&t===k)){var p,L=J(r,e.sportId,e.typeId,a);p=null!==L?Z(_,L.minSpread,L.targetSpread):Z(_,a,0),i.push(q(q({},e),{odds:p}))}})),i},Le=function(){return Le=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Le.apply(this,arguments)},se=function(e,r,a,i,o,E,A,t){var _=i.filter((function(r){return r.sportId===String(e.leagueId)})),p=ie(!o,_,a,r,e.leagueId,E,A);p.errorMessage?(e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.errorMessage=p.errorMessage):e.odds=p.odds.map((function(r){return 0!=r?{american:N("impliedProbability",r).to("moneyline"),decimal:Number(N("impliedProbability",r).to("decimal").toFixed(10)),normalizedImplied:r}:(e.errorMessage="Bad odds after spread adjustment",{american:0,decimal:0,normalizedImplied:0})}));var L=oe(r,_,e.leagueId,a,E,t).map((function(r){var a=Le(Le({},e),r);return a.odds.length>0&&(a.odds=a.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:{american:N("impliedProbability",e).to("moneyline"),decimal:Number(N("impliedProbability",e).to("decimal").toFixed(10)),normalizedImplied:e}}))),a}));return e.childMarkets=L,e},le=function(e,r,a){var i=v(r),o=e.homeTeam,E=e.homeTotal,A=e.awayTeam,t=e.awayTotal,p=e.clock,L=e.period,s=e.status,l=parseInt(L);return"completed"==s.toLowerCase()?{allow:!1,message:"Blocking game ".concat(o," - ").concat(A," because it is no longer live.")}:i===_.BASKETBALL?Se(o,A,l,a.get(_.BASKETBALL)):i===_.HOCKEY?Se(o,A,l,a.get(_.HOCKEY)):i===_.BASEBALL?Se(o,A,l,a.get(_.BASEBALL)):i===_.SOCCER?Te(o,A,p,L,a.get(_.SOCCER)):i===_.TENNIS?de(e,o,A,L,E,t,r,i):i===_.VOLLEYBALL?de(e,o,A,l,E,t,r,i):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},Se=function(e,r,a,i){return!Number.isNaN(a)&&a>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(a,". period")}:{allow:!0,message:""}},Te=function(e,r,a,i,o){var E=Number(a);return!Number.isNaN(E)&&E>=o||Number.isNaN(E)&&"half"!=i.toLowerCase()?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},de=function(e,r,a,i,o,E,A,t){var L=Number(i),s=Ie(L,e),l="atp"==e.league.toLowerCase(),S={home:o,away:E};return t==_.VOLLEYBALL?ne(r,a,s,S,Ne,5==L?Re:Oe):A.toString().startsWith(p.TENNIS_GS)&&l?ne(r,a,s,S,Pe,ce):A.toString().startsWith(p.TENNIS_GS)&&!l||A.toString().startsWith(p.TENNIS_MASTERS)||A.toString().startsWith(p.SUMMER_OLYMPICS_TENNIS)||A.toString().startsWith(p.TENNIS_WTA)?ne(r,a,s,S,Me,ce):{allow:!0,message:"The sport ".concat(A," does not have result constraint")}},Ie=function(e,r){var a=0,i=0;switch(e){case 1:a=Number(r.homePeriod1),i=Number(r.awayPeriod1);break;case 2:a=Number(r.homePeriod2),i=Number(r.awayPeriod2);break;case 3:a=Number(r.homePeriod3),i=Number(r.awayPeriod3);break;case 4:a=Number(r.homePeriod4),i=Number(r.awayPeriod4);break;case 5:a=Number(r.homePeriod5),i=Number(r.awayPeriod5)}return{home:a,away:i}},ne=function(e,r,a,i,o,E){return Number(i.home)!=o&&Number(i.away)!=o||!(Number(i.home)==o&&a.home>=E||Number(i.away)==o&&a.away>=E)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(a.home," - ").concat(a.away,")")}},Ne=2,Oe=20,Re=10,Pe=2,Me=1,ce=5,Ce=function(){return Ce=Object.assign||function(e){for(var r,a=1,i=arguments.length;a<i;a++)for(var o in r=arguments[a])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Ce.apply(this,arguments)},Ue=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display}}))},ue=function(e){return e.map((function(e){return Ce(Ce({gameId:e.fixture.id,sport:e.sport.name,league:e.league.name.toLowerCase(),status:e.fixture.status.toLowerCase(),isLive:e.fixture.is_live,clock:e.in_play.clock,period:e.in_play.period?e.in_play.period.toLowerCase():e.in_play.period,homeTeam:e.fixture.home_team_display,awayTeam:e.fixture.away_team_display,homeTotal:e.scores.home.total,awayTotal:e.scores.away.total},ye(e.scores.home.periods,"home")),ye(e.scores.away.periods,"away"))}))},me=function(e){return e.map((function(e){return{gameId:e.id,startDate:e.start_date,homeTeam:e.home_team_display,awayTeam:e.away_team_display,isLive:e.is_live,status:e.status,sport:e.sport.id,league:e.league.name,odds:e.odds.map((function(r){return{id:r.id,sportsBookName:r.sportsbook,name:r.name,price:r.price,timestamp:r.timestamp,points:r.points,isMain:r.is_main,isLive:e.is_live,marketName:r.market.toLowerCase(),playerId:r.player_id,selection:r.selection,selectionLine:r.selection_line}}))}}))},ye=function(e,r){return Object.values(e).reduce((function(e,a,i){var o;return Ce(Ce({},e),((o={})["".concat(r,"Period").concat(i+1)]=a,o))}),{})};return r})()));
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "overtime-live-trading-utils",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "",
5
5
  "main": "main.js",
6
6
  "scripts": {
7
7
  "pack": "webpack --mode production",
8
- "prepublish": "npm run pack"
8
+ "prepublish": "npm run pack",
9
+ "test": "jest"
9
10
  },
10
11
  "author": "",
11
12
  "license": "MIT",
@@ -15,7 +16,11 @@
15
16
  "react": "^17.0.1"
16
17
  },
17
18
  "devDependencies": {
19
+ "@types/jest": "^29.5.14",
20
+ "jest": "^29.7.0",
21
+ "ts-jest": "^29.2.5",
18
22
  "ts-loader": "^9.5.0",
23
+ "ts-node": "^10.9.2",
19
24
  "typescript": "^4.5.5",
20
25
  "webpack": "^5.89.0",
21
26
  "webpack-cli": "^5.1.4"
@@ -0,0 +1,5 @@
1
+ export const ZERO_ODDS_MESSAGE = 'Returning zero odds cause bookmakers have 0 or 1 odds';
2
+ export const DIFF_BETWEEN_BOOKMAKERS_MESSAGE = 'Returning zero odds due to percentage difference between bookmakers';
3
+ export const NO_MATCHING_BOOKMAKERS_MESSAGE = 'Returning zero odds cause no matching bookmakers have been found';
4
+ export const ZERO_ODDS_AFTER_SPREAD_ADJUSTMENT = 'Bad odds after spread adjustment';
5
+ export const NO_MARKETS_FOR_LEAGUE_ID = 'No child markets for leagueID: 9806';
@@ -363,7 +363,7 @@ export const LeagueMap = {
363
363
  id: League.TENNIS_WTA,
364
364
  label: 'WTA Events',
365
365
  opticOddsName: 'WTA',
366
- provider: Provider.ENETPULSE,
366
+ provider: Provider.EMPTY,
367
367
  scoringType: ScoringType.SETS,
368
368
  matchResolveType: MatchResolveType.REGULAR,
369
369
  periodType: PeriodType.SET,
@@ -374,7 +374,7 @@ export const LeagueMap = {
374
374
  id: League.TENNIS_GS,
375
375
  label: 'Grand Slam',
376
376
  opticOddsName: 'ATP,WTA',
377
- provider: Provider.ENETPULSE,
377
+ provider: Provider.EMPTY,
378
378
  scoringType: ScoringType.SETS,
379
379
  matchResolveType: MatchResolveType.REGULAR,
380
380
  periodType: PeriodType.SET,
@@ -385,7 +385,7 @@ export const LeagueMap = {
385
385
  id: League.TENNIS_MASTERS,
386
386
  label: 'ATP Events',
387
387
  opticOddsName: 'ATP',
388
- provider: Provider.ENETPULSE,
388
+ provider: Provider.EMPTY,
389
389
  scoringType: ScoringType.SETS,
390
390
  matchResolveType: MatchResolveType.REGULAR,
391
391
  periodType: PeriodType.SET,
@@ -775,7 +775,7 @@ export const LeagueMap = {
775
775
  sport: Sport.FIGHTING,
776
776
  id: League.NON_TITLE_BOXING,
777
777
  label: 'Boxing',
778
- provider: Provider.ENETPULSE,
778
+ provider: Provider.EMPTY,
779
779
  scoringType: ScoringType.ROUNDS,
780
780
  matchResolveType: MatchResolveType.EMPTY,
781
781
  periodType: PeriodType.ROUND,
@@ -1262,6 +1262,16 @@ export const LeagueMap = {
1262
1262
  periodType: PeriodType.EMPTY,
1263
1263
  isDrawAvailable: false,
1264
1264
  },
1265
+ [League.NHL_FUTURES]: {
1266
+ sport: Sport.FUTURES,
1267
+ id: League.NHL_FUTURES,
1268
+ label: 'NHL Futures',
1269
+ provider: Provider.EMPTY,
1270
+ scoringType: ScoringType.EMPTY,
1271
+ matchResolveType: MatchResolveType.EMPTY,
1272
+ periodType: PeriodType.EMPTY,
1273
+ isDrawAvailable: false,
1274
+ },
1265
1275
  [League.EPL_FUTURES]: {
1266
1276
  sport: Sport.FUTURES,
1267
1277
  id: League.EPL_FUTURES,
@@ -1272,6 +1282,46 @@ export const LeagueMap = {
1272
1282
  periodType: PeriodType.EMPTY,
1273
1283
  isDrawAvailable: false,
1274
1284
  },
1285
+ [League.LIGUE_ONE_FUTURES]: {
1286
+ sport: Sport.FUTURES,
1287
+ id: League.LIGUE_ONE_FUTURES,
1288
+ label: 'Ligue 1 Futures',
1289
+ provider: Provider.EMPTY,
1290
+ scoringType: ScoringType.EMPTY,
1291
+ matchResolveType: MatchResolveType.EMPTY,
1292
+ periodType: PeriodType.EMPTY,
1293
+ isDrawAvailable: false,
1294
+ },
1295
+ [League.BUNDESLIGA_FUTURES]: {
1296
+ sport: Sport.FUTURES,
1297
+ id: League.BUNDESLIGA_FUTURES,
1298
+ label: 'Bundesliga Futures',
1299
+ provider: Provider.EMPTY,
1300
+ scoringType: ScoringType.EMPTY,
1301
+ matchResolveType: MatchResolveType.EMPTY,
1302
+ periodType: PeriodType.EMPTY,
1303
+ isDrawAvailable: false,
1304
+ },
1305
+ [League.LA_LIGA_FUTURES]: {
1306
+ sport: Sport.FUTURES,
1307
+ id: League.LA_LIGA_FUTURES,
1308
+ label: 'La Liga',
1309
+ provider: Provider.EMPTY,
1310
+ scoringType: ScoringType.EMPTY,
1311
+ matchResolveType: MatchResolveType.EMPTY,
1312
+ periodType: PeriodType.EMPTY,
1313
+ isDrawAvailable: false,
1314
+ },
1315
+ [League.SERIE_A_FUTURES]: {
1316
+ sport: Sport.FUTURES,
1317
+ id: League.SERIE_A_FUTURES,
1318
+ label: 'Serie A Futures',
1319
+ provider: Provider.EMPTY,
1320
+ scoringType: ScoringType.EMPTY,
1321
+ matchResolveType: MatchResolveType.EMPTY,
1322
+ periodType: PeriodType.EMPTY,
1323
+ isDrawAvailable: false,
1324
+ },
1275
1325
  [League.UEFA_CHAMPIONS_LEAGUE_FUTURES]: {
1276
1326
  sport: Sport.FUTURES,
1277
1327
  id: League.UEFA_CHAMPIONS_LEAGUE_FUTURES,
@@ -1282,6 +1332,16 @@ export const LeagueMap = {
1282
1332
  periodType: PeriodType.EMPTY,
1283
1333
  isDrawAvailable: false,
1284
1334
  },
1335
+ [League.EUROLEAGUE_FUTURES]: {
1336
+ sport: Sport.FUTURES,
1337
+ id: League.EUROLEAGUE_FUTURES,
1338
+ label: 'Euroleague Futures',
1339
+ provider: Provider.EMPTY,
1340
+ scoringType: ScoringType.EMPTY,
1341
+ matchResolveType: MatchResolveType.EMPTY,
1342
+ periodType: PeriodType.EMPTY,
1343
+ isDrawAvailable: false,
1344
+ },
1285
1345
  [League.GOLF_H2H]: {
1286
1346
  sport: Sport.GOLF,
1287
1347
  id: League.GOLF_H2H,
@@ -138,8 +138,14 @@ export enum League {
138
138
  AUSTRALIA_NBL = 20206,
139
139
  NFL_FUTURES = 30002,
140
140
  NBA_FUTURES = 30004,
141
+ NHL_FUTURES = 30006,
141
142
  EPL_FUTURES = 30011,
143
+ LIGUE_ONE_FUTURES = 30012,
144
+ BUNDESLIGA_FUTURES = 30013,
145
+ LA_LIGA_FUTURES = 30014,
146
+ SERIE_A_FUTURES = 30015,
142
147
  UEFA_CHAMPIONS_LEAGUE_FUTURES = 30016,
148
+ EUROLEAGUE_FUTURES = 30399,
143
149
  GOLF_H2H = 100021,
144
150
  GOLF_WINNER = 100121,
145
151
  TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1 = 15312,
@@ -0,0 +1,75 @@
1
+ import { LeagueInfo } from '../../types/sports';
2
+
3
+ const baseLeagueInfo: LeagueInfo = {
4
+ sportId: 9806,
5
+ enabled: 'true',
6
+ marketName: 'Moneyline',
7
+ typeId: 0,
8
+ type: 'moneyline',
9
+ maxOdds: 0.25,
10
+ minOdds: 0.75,
11
+ };
12
+
13
+ const spreadMock: LeagueInfo = {
14
+ sportId: 9806,
15
+ enabled: 'true',
16
+ marketName: 'Goal Spread',
17
+ typeId: 10001,
18
+ type: 'Spread',
19
+ maxOdds: 0.25,
20
+ minOdds: 0.75,
21
+ };
22
+
23
+ const totalMock: LeagueInfo = {
24
+ sportId: 9806,
25
+ enabled: 'true',
26
+ marketName: 'Total Goals',
27
+ typeId: 10002,
28
+ type: 'Total',
29
+ maxOdds: 0.25,
30
+ minOdds: 0.75,
31
+ };
32
+
33
+ const childMoneylineMock: LeagueInfo = {
34
+ sportId: 9806,
35
+ enabled: 'true',
36
+ marketName: '1st Half Moneyline',
37
+ typeId: 10022,
38
+ type: 'Moneyline',
39
+ maxOdds: 0.25,
40
+ minOdds: 0.75,
41
+ };
42
+
43
+ const baseDiffSportId: LeagueInfo = {
44
+ ...baseLeagueInfo,
45
+ sportId: 4,
46
+ };
47
+
48
+ // Mock Variants
49
+ const leagueInfoOnlyParent: LeagueInfo[] = [baseLeagueInfo];
50
+ const leagueInfoOnlyParentDiffSportId: LeagueInfo[] = [baseDiffSportId];
51
+
52
+ const leagueInfoMockDisabledChilds: LeagueInfo[] = [
53
+ baseLeagueInfo,
54
+ { ...spreadMock, enabled: 'false' },
55
+ { ...totalMock, enabled: 'false' },
56
+ ];
57
+
58
+ const leagueInfoEnabledSpreadDisabledTotals: LeagueInfo[] = [
59
+ baseLeagueInfo,
60
+ spreadMock,
61
+ { ...totalMock, enabled: 'false' },
62
+ ];
63
+
64
+ const leagueInfoEnabledSpeadAndTotals: LeagueInfo[] = [baseLeagueInfo, spreadMock, totalMock];
65
+ const leagueInfoEnabledAll: LeagueInfo[] = [baseLeagueInfo, spreadMock, totalMock, childMoneylineMock];
66
+
67
+ // Grouped Exports
68
+ export const LeagueMocks = {
69
+ leagueInfoOnlyParent,
70
+ leagueInfoOnlyParentDiffSportId,
71
+ leagueInfoMockDisabledChilds,
72
+ leagueInfoEnabledSpreadDisabledTotals,
73
+ leagueInfoEnabledSpeadAndTotals,
74
+ leagueInfoEnabledAll,
75
+ };