overtime-live-trading-utils 0.1.11 → 0.2.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.
package/index.ts CHANGED
@@ -1,6 +1,16 @@
1
1
  //utils
2
2
  export * from './src/utils/bookmakers';
3
3
  export * from './src/utils/gameMatching';
4
+ export * from './src/utils/markets';
4
5
  export * from './src/utils/odds';
5
6
  export * from './src/utils/sports';
7
+ export * from './src/utils/constraints';
6
8
  export * from './src/utils/spread';
9
+
10
+ // constants
11
+ export * from './src/constants/common';
12
+ // export * from './src/constants/constantsOpticodds';
13
+ export * from './src/constants/sports';
14
+
15
+ export * from './src/enums/sports';
16
+ export * from './src/enums/statuses';
package/main.js CHANGED
@@ -1 +1 @@
1
- !function(r,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.thalesUtils=e():r.thalesUtils=e()}(this,(()=>(()=>{"use strict";var r={d:(e,a)=>{for(var t in a)r.o(a,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:a[t]})},o:(r,e)=>Object.prototype.hasOwnProperty.call(r,e),r:r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})}},e={};r.r(e),r.d(e,{adjustSpreadOnOdds:()=>q,allowGameSportWithPeriodConstraint:()=>G,allowGameSportWithResultConstraint:()=>W,allowSoccerGame:()=>I,calculateImpliedOddsDifference:()=>w,checkGameContraints:()=>x,checkOddsFromBookmakers:()=>c,extractOddsForGamePerProvider:()=>K,fetchResultInCurrentSet:()=>U,gamesDatesMatching:()=>z,getBookmakersArray:()=>u,getLeagueSport:()=>M,getSpreadData:()=>J,teamNamesMatching:()=>H}),"function"!=typeof Object.assign&&(Object.assign=function(r,e){if(null==r)throw new TypeError("Cannot convert undefined or null to object");for(var a=Object(r),t=1;t<arguments.length;t++){var i=arguments[t];if(null!=i)for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(a[o]=i[o])}return a});var a=function(r){return parseFloat(r.toPrecision(12))};function t(r,e,a){return void 0===a||0==+a?Math[r](e):(e=+e,a=+a,isNaN(e)||"number"!=typeof a||a%1!=0?NaN:e<0?-t(r,-e,a):(e=e.toString().split("e"),+((e=(e=Math[r](+(e[0]+"e"+(e[1]?+e[1]-a:-a)))).toString().split("e"))[0]+"e"+(e[1]?+e[1]+a:a))))}var i,o,s={decimal:{from:function(r){if((r=parseFloat(r))<=1)throw new Error("Outside valid range.");return r},to:function(){return this.decimalValue}},moneyline:{from:function(r){return(r=parseFloat(r))>=0?r/100+1:100/-r+1},to:function(){return this.decimalValue>=2?a(100*(this.decimalValue-1)):a(-100/(this.decimalValue-1))}},hongKong:{from:function(r){if((r=parseFloat(r))<0)throw new Error("Outside valid range.");return r+1},to:function(){return a(this.decimalValue-1)}},impliedProbability:{from:function(r){if((r="string"==typeof r&&"%"==r.slice(-1)?parseFloat(r)/100:parseFloat(r))<=0||r>=1)throw new Error("Outside valid range");return 1/r},to:function(r){if(r.percentage){var e=a(100/this.decimalValue);return null!==r.precision&&(e=t("round",e,-r.precision)),e.toString()+"%"}return a(1/this.decimalValue)}},fractional:{from:function(r){var e,a=r.toString().split("/");if(r=parseFloat(a[0]),2===a.length)e=parseFloat(a[1]);else{if(1!==a.length)throw new Error("Invalid fraction");e=1}if(0===r||0===e||r/e<=0)throw new Error("Outside valid range");return 1+r/e},to:function(r){return function(r,e){for(var a,t=[0,1],i=[1,0],o=function(r){var e=null,a=r.toString().indexOf("E");-1==a&&(a=r.toString().indexOf("e"));var t=null,i=(e=-1==a?r.toString():r.toString().substring(0,a)).toString().indexOf(".");-1==i?t=e:0===i?t=e.substring(1,e.length):i<e.length&&(t=e.substring(0,i)+e.substring(i+1,e.length));var o=t,s=o.toString().length,n=r,l=n.toString().length;0===n&&(l=0);var d,u=s-l;for(d=u;d>0&&o%2==0;d--)o/=2;for(d=u;d>0&&o%5==0;d--)o/=5;return o}(r),s=r,n=Math.pow(10,-e)/2,l=2;l<1e3;l++){var d=Math.floor(s);if(t[l]=d*t[l-1]+t[l-2],Math.abs(t[l])>o)return;if(i[l]=d*i[l-1]+i[l-2],a=t[l]/i[l],Math.abs(a-r)<n||NaN==a)return t[l].toString()+"/"+i[l].toString();s=1/(s-d)}}(this.decimalValue-1,r.precision||12)}},malay:{from:function(r){if((r=parseFloat(r))<=-1||r>1)throw new Error("Outside valid range.");return r<0&&(r=-1/r),r+1},to:function(){return this.decimalValue<=2?a(this.decimalValue-1):a(-1/(this.decimalValue-1))}},indonesian:{from:function(r){if(0===(r=parseFloat(r)))throw new Error("Outside valid range.");return r>=1?r+1:-1/r+1},to:function(){return this.decimalValue<2?a(-1/(this.decimalValue-1)):a(this.decimalValue-1)}}},n=((o=function(r){if("number"!=typeof r||isNaN(r))throw new Error("Invalid odds");this.decimalValue=a(r)}).prototype=(i=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,i.from=function(r,e){if(!s.hasOwnProperty(r))throw new Error("Unknown format "+r+".");var a=s[r].from(e);return new o(a)},i);n.prototype.to=function(r,e){if(!s.hasOwnProperty(r))throw new Error("Unknown format "+r+".");e=Object.assign({precision:null,percentage:!1},e);var a=s[r].to.call(this,e);return"number"==typeof a&&null!==e.precision&&(a=t("round",a,-e.precision)),a};var l,d=n.from,u=function(r,e,a){var t=r.find((function(r){return Number(r.sportId)===Number(e)}));if(t){if(""==t.primaryBookmaker)return a;var i=[];return t.primaryBookmaker&&i.push(t.primaryBookmaker),t.secondaryBookmaker&&i.push(t.secondaryBookmaker),t.tertiaryBookmaker&&i.push(t.tertiaryBookmaker),i}return a},c=function(r,e,a,t,i){var o=e.some((function(e){var t=r.get(e);return!!t&&(0===t.homeOdds||0===t.awayOdds||!a&&0===t.drawOdds||1===t.homeOdds||1===t.awayOdds||!a&&1===t.drawOdds)}));if(1==e.length){if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var s=e[0],n=r.get(s);return[{homeOdds:n.homeOdds,awayOdds:n.awayOdds,drawOdds:a?0:n.drawOdds}]}if(o)return[{homeOdds:0,awayOdds:0,drawOdds:0}];var l=r.get(e[0]),u=l.homeOdds,c=l.awayOdds,p=l.drawOdds;if(e.slice(1).some((function(e){var o=r[e];if(o){var s=o.homeOdds,n=o.awayOdds,l=o.drawOdds,m=d("decimal",u).to("impliedProbability"),b=d("decimal",c).to("impliedProbability"),f=a?0:d("decimal",p).to("impliedProbability"),v=d("decimal",s).to("impliedProbability"),g=d("decimal",n).to("impliedProbability"),h=a?0:d("decimal",l).to("impliedProbability"),A=w(m,v),D=w(b,g),y=a?0:w(f,h);if(A>t&&m>i&&v>i||D>t&&b>i&&g>i||!a&&y>t&&f>i&&h>i)return!0}return!1})))return console.log("Returning zero odds due to percentage difference"),[{homeOdds:0,awayOdds:0,drawOdds:0}];var m=[];return e.forEach((function(e){return m.push(r.get(e))})),null!=m[0]?m.map((function(r){return{homeOdds:r.homeOdds,awayOdds:r.awayOdds,drawOdds:a?0:r.drawOdds}})):(console.log("Returning zero odds cause no matching bookmakers have been found"),[{homeOdds:0,awayOdds:0,drawOdds:0}])},w=function(r,e){var a=Math.abs(r-e)/r*100;return console.log("% diff: "+a),a},p="Soccer",m="Football",b="Basketball",f="Baseball",v="Hockey",g="Fighting",h="Tennis",A="eSports",D="Rugby",y="Volleyball",O="Handball",C="Cricket",S="Motosport",N="Golf",L=153,_=156,k=158,P=9977,T=9983,V=10138,B=100021,E=100121,F=[P,T,V,L,_,k,15312,15313,15314,15315,15316,15317,15318,15622,15623,15624,15625,15626,15627,15628,15632,15633,15634,15635,15636,15637,15638,15641,15642,15643,15644,15645,15646,15647,15648,15322,15323,15324,15325,15326,15327,15328],j=((l={})[1]={sport:m,id:1,isDrawAvailable:!1},l[2]={sport:m,id:2,isDrawAvailable:!1},l[3]={sport:f,id:3,isDrawAvailable:!1},l[4]={sport:b,id:4,isDrawAvailable:!1},l[5]={sport:b,id:5,isDrawAvailable:!1},l[6]={sport:v,id:6,isDrawAvailable:!1},l[7]={sport:g,id:7,isDrawAvailable:!1},l[8]={sport:b,id:8,isDrawAvailable:!1},l[10]={sport:p,id:10,isDrawAvailable:!0},l[11]={sport:p,id:11,isDrawAvailable:!0},l[12]={sport:p,id:12,isDrawAvailable:!0},l[13]={sport:p,id:13,isDrawAvailable:!0},l[14]={sport:p,id:14,isDrawAvailable:!0},l[15]={sport:p,id:15,isDrawAvailable:!0},l[16]={sport:p,id:16,isDrawAvailable:!0},l[17]={sport:p,id:17,isDrawAvailable:!0},l[18]={sport:p,id:18,isDrawAvailable:!0},l[19]={sport:p,id:19,isDrawAvailable:!0},l[20]={sport:C,id:20,isDrawAvailable:!1},l[21]={sport:C,id:21,isDrawAvailable:!1},l[33]={sport:v,id:33,isDrawAvailable:!0},l[44]={sport:p,id:44,isDrawAvailable:!0},l[45]={sport:p,id:45,isDrawAvailable:!0},l[50]={sport:p,id:50,isDrawAvailable:!0},l[57]={sport:p,id:57,isDrawAvailable:!0},l[61]={sport:p,id:61,isDrawAvailable:!0},l[65]={sport:p,id:65,isDrawAvailable:!0},l[66]={sport:p,id:66,isDrawAvailable:!0},l[76]={sport:p,id:76,isDrawAvailable:!0},l[132]={sport:p,id:132,isDrawAvailable:!0},l[134]={sport:p,id:134,isDrawAvailable:!0},l[138]={sport:p,id:138,isDrawAvailable:!0},l[141]={sport:p,id:141,isDrawAvailable:!0},l[152]={sport:h,id:152,isDrawAvailable:!1},l[153]={sport:h,id:L,isDrawAvailable:!1},l[156]={sport:h,id:_,isDrawAvailable:!1},l[158]={sport:h,id:k,isDrawAvailable:!1},l[209]={sport:p,id:209,isDrawAvailable:!0},l[268]={sport:p,id:268,isDrawAvailable:!0},l[288]={sport:p,id:288,isDrawAvailable:!0},l[296]={sport:p,id:296,isDrawAvailable:!0},l[380]={sport:O,id:380,isDrawAvailable:!0},l[381]={sport:O,id:381,isDrawAvailable:!0},l[399]={sport:b,id:399,isDrawAvailable:!1},l[406]={sport:b,id:406,isDrawAvailable:!1},l[407]={sport:b,id:407,isDrawAvailable:!1},l[409]={sport:b,id:409,isDrawAvailable:!1},l[445]={sport:S,id:445,isDrawAvailable:!1},l[453]={sport:y,id:453,isDrawAvailable:!1},l[454]={sport:y,id:454,isDrawAvailable:!1},l[8910]={sport:"TableTennis",id:8910,isDrawAvailable:!1},l[497]={sport:S,id:497,isDrawAvailable:!1},l[536]={sport:p,id:536,isDrawAvailable:!0},l[8881]={sport:"Waterpolo",id:8881,isDrawAvailable:!0},l[8893]={sport:y,id:8893,isDrawAvailable:!1},l[8894]={sport:y,id:8894,isDrawAvailable:!1},l[9196]={sport:g,id:9196,isDrawAvailable:!1},l[9578]={sport:D,id:9578,isDrawAvailable:!0},l[9588]={sport:D,id:9588,isDrawAvailable:!0},l[9698]={sport:v,id:9698,isDrawAvailable:!0},l[9699]={sport:v,id:9699,isDrawAvailable:!0},l[9806]={sport:p,id:9806,isDrawAvailable:!0},l[9821]={sport:p,id:9821,isDrawAvailable:!0},l[9977]={sport:A,id:P,isDrawAvailable:!1},l[9983]={sport:A,id:T,isDrawAvailable:!1},l[10071]={sport:b,id:10071,isDrawAvailable:!1},l[10072]={sport:b,id:10072,isDrawAvailable:!1},l[10502]={sport:b,id:10502,isDrawAvailable:!1},l[10138]={sport:A,id:V,isDrawAvailable:!1},l[10199]={sport:p,id:10199,isDrawAvailable:!0},l[10216]={sport:p,id:10216,isDrawAvailable:!0},l[10595]={sport:g,id:10595,isDrawAvailable:!1},l[10611]={sport:p,id:10611,isDrawAvailable:!0},l[10613]={sport:p,id:10613,isDrawAvailable:!0},l[10615]={sport:p,id:10615,isDrawAvailable:!0},l[2e4]={sport:"Politics",id:2e4,isDrawAvailable:!1},l[20001]={sport:p,id:20001,isDrawAvailable:!0},l[20002]={sport:p,id:20002,isDrawAvailable:!0},l[20011]={sport:p,id:20011,isDrawAvailable:!0},l[100021]={sport:N,id:B,isDrawAvailable:!1},l[100121]={sport:N,id:E,isDrawAvailable:!1},l[230]={sport:p,id:230,isDrawAvailable:!0},l),M=function(r){var e=j[r];return e?e.sport:""},x=function(r,e,a){var t=r.score_home_total,i=r.score_away_total,o=r.clock,s=r.period,n=r.status,l=r.home_team,d=r.away_team,u=parseInt(s),c=M(e);return"completed"==n.toLowerCase()?{allow:!1,message:"Blocking game ".concat(l," - ").concat(d," because it is no longer live.")}:c===b?G(l,d,u,a.get(b)):c===v?G(l,d,u,a.get(v)):c===f?G(l,d,u,a.get(f)):c===p?I(l,d,o,s,a.get(p)):c===h?W(r,l,d,s,t,i,e,c):c===y?W(r,l,d,u,t,i,e,c):{allow:!0,message:"The sport ".concat(e," does not have constraint")}},G=function(r,e,a,t){return!Number.isNaN(a)&&a>=t?{allow:!1,message:"Blocking game ".concat(r," - ").concat(e," due to period: ").concat(a,". period")}:{allow:!0,message:""}},I=function(r,e,a,t,i){var o=Number(a);return!Number.isNaN(o)&&o>=i||Number.isNaN(o)&&"HALF"!=t?{allow:!1,message:"Blocking game ".concat(r," - ").concat(e," due to clock: ").concat(a,"min")}:{allow:!0,message:""}},W=function(r,e,a,t,i,o,s,n){var l=Number(t),d=U(l,r),u="atp"==r.league.toLowerCase(),c={home:i,away:o};return n==y?R(e,a,d,c,2,5==l?10:20):s.toString().startsWith(L)&&u?R(e,a,d,c,2,5):s.toString().startsWith(L)&&!u||s.toString().startsWith(_)||s.toString().startsWith(k)||s.toString().startsWith(152)?R(e,a,d,c,1,5):{allow:!0,message:"The sport ".concat(s," does not have result constraint")}},U=function(r,e){var a=0,t=0;switch(r){case 1:a=Number(e.score_home_period_1),t=Number(e.score_away_period_1);break;case 2:a=Number(e.score_home_period_2),t=Number(e.score_away_period_2);break;case 3:a=Number(e.score_home_period_3),t=Number(e.score_away_period_3);break;case 4:a=Number(e.score_home_period_4),t=Number(e.score_away_period_4);break;case 5:a=Number(e.score_home_period_5),t=Number(e.score_away_period_5)}return{home:a,away:t}},R=function(r,e,a,t,i,o){return Number(t.home)!=i&&Number(t.away)!=i||!(Number(t.home)==i&&a.home>=o||Number(t.away)==i&&a.away>=o)?{allow:!0,message:"",currentHomeGameScore:a.home,currentAwayGameScore:a.away}:{allow:!1,message:"Blocking game ".concat(r," - ").concat(e," due to current result: ").concat(t.home," - ").concat(t.away," (").concat(a.home," - ").concat(a.away,")")}},H=function(r,e,a,t,i,o){var s,n;if(F.includes(r)?(s=t.toLowerCase()==e.toLowerCase()||t.toLowerCase()==a.toLowerCase(),n=i.toLowerCase()==e.toLowerCase()||i.toLowerCase()==a.toLowerCase()):(s=t.toLowerCase()==e.toLowerCase(),n=i.toLowerCase()==a.toLowerCase()),!0!==s){var l=o.get(t.toLowerCase()),d=o.get(e.toLowerCase()),u=o.get(a.toLowerCase());if([l,d].some((function(r){return null==r})))return!1;s=F.includes(r)?l==d||l==u:l==d}if(!0!==n){var c=o.get(i.toLowerCase());if(d=o.get(e.toLowerCase()),[c,u=o.get(a.toLowerCase())].some((function(r){return null==r})))return!1;n=F.includes(r)&&c==d||c==u}return s&&n},z=function(r,e,a,t){var i;if(M(a)==h){var o=e.getTime(),s=r.getTime();i=Math.abs(s-o)<=Number(60*t*1e3)}else i=e.toUTCString()==r.toUTCString();return i},K=function(r,e,a,t,i){var o=new Map;return r.forEach((function(r){var s,n,l=e.odds.filter((function(e){return e.sports_book_name.toLowerCase()==r.toLowerCase()})),d=t.get(a.homeTeam.toLowerCase()),u=t.get(a.awayTeam.toLowerCase()),c=0;null!=(s=null==d?l.find((function(r){var e=t.get(r.name.toLowerCase());return null==e?r.name.toLowerCase()==a.homeTeam.toLowerCase():e==a.homeTeam.toLowerCase()})):l.find((function(r){var e=t.get(r.name.toLowerCase());return null==e?r.name.toLowerCase()==d:e==d})))&&(c=s.price);var w=0;null!=(n=null==u?l.find((function(r){var e=t.get(r.name.toLowerCase());return null==e?r.name.toLowerCase()==a.awayTeam.toLowerCase():e==a.awayTeam.toLowerCase()})):l.find((function(r){var e=t.get(r.name.toLowerCase());return null==e?r.name.toLowerCase()==u:e==u})))&&(w=n.price);var p=0;if(i){var m=l.find((function(r){return"draw"==r.name.toLowerCase()}));null!=m&&(p=m.price)}o.set(r.toLowerCase(),{homeOdds:c,awayOdds:w,drawOdds:p})})),o},q=function(r,e,a){if(r.some((function(r){return 0===r})))return r;var t=r.reduce((function(r,e){return r+e}),0);if(t<=1)return Array(r.length).fill(0);if(0===a){if(!(e>100*(t-1)))return r;a=e}var i=1+a/100,o=i/t,s=r.map((function(r){return r*o}));if(s.some((function(r){return r>=1})))return Array(r.length).fill(0);var n=s.reduce((function(r,e){return r+e}),0);if(n<1)return Array(r.length).fill(0);var l=i/n;return s.map((function(r){return r*l}))},J=function(r,e,a,t){var i=r.find((function(r){return Number(r.typeId)===Number(a)&&Number(r.sportId)===Number(e)}));return i?{minSpread:i.minSpread?Number(i.minSpread):t,targetSpread:i.targetSpread?Number(i.targetSpread):0}:{minSpread:t,targetSpread:0}};return e})()));
1
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.thalesUtils=r():e.thalesUtils=r()}(this,(()=>(()=>{"use strict";var e={d:(r,E)=>{for(var i in E)e.o(E,i)&&!e.o(r,i)&&Object.defineProperty(r,i,{enumerable:!0,get:E[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:()=>v,DRAW:()=>K,LEAGUES_NO_FORMAL_HOME_AWAY:()=>y,LEAGUES_NO_LIVE_CONSTRAINTS:()=>c,LIVE_TYPE_ID_BASE:()=>Q,League:()=>T,LeagueIdMapEnetpulse:()=>G,LeagueIdMapOpticOdds:()=>b,LeagueIdMapRundown:()=>U,LeagueMap:()=>P,MIN_ODDS_FOR_DIFF_CHECKING:()=>X,MULTIPLIER_100:()=>Z,MatchResolveType:()=>S,MoneylineTypes:()=>s,PeriodType:()=>I,Provider:()=>O,ScoringType:()=>N,Sport:()=>A,SpreadTypes:()=>_,TAG_CHILD_SPREAD:()=>j,TAG_CHILD_TOTALS:()=>z,TotalTypes:()=>p,UFC_LEAGUE_IDS:()=>C,ZERO:()=>k,adjustSpreadOnOdds:()=>J,allowGameSportWithPeriodConstraint:()=>Se,allowGameSportWithResultConstraint:()=>Oe,allowSoccerGame:()=>Ie,calculateImpliedOddsDifference:()=>M,checkGameContraints:()=>Ne,checkOddsFromBookmakers:()=>d,createSpreadChildMarkets:()=>_e,createTotalChildMarkets:()=>pe,fetchResultInCurrentSet:()=>le,filterOddsByMarketNameBookmaker:()=>ie,filterOddsByMarketNameTeamNameBookmaker:()=>re,formatSpreadOdds:()=>oe,gamesDatesMatching:()=>W,getBetTypesForLeague:()=>h,getBookmakersArray:()=>R,getIsLiveSupported:()=>V,getLeagueIsDrawAvailable:()=>D,getLeagueLabel:()=>m,getLeagueOpticOddsName:()=>B,getLeaguePeriodType:()=>Y,getLeagueProvider:()=>F,getLeagueSport:()=>u,getLeagueSpreadType:()=>f,getLeagueTotalType:()=>w,getLiveSupportedLeagues:()=>g,getParentOdds:()=>Ee,getSpreadData:()=>q,groupAndFormatSpreadOdds:()=>ae,groupOddsBySelectionAndPoints:()=>Le,processMarket:()=>Te,processTotalOdds:()=>te,statusCodes:()=>x,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 E=Object(e),i=1;i<arguments.length;i++){var o=arguments[i];if(null!=o)for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(E[a]=o[a])}return E});var E=function(e){return parseFloat(e.toPrecision(12))};function i(e,r,E){return void 0===E||0==+E?Math[e](r):(r=+r,E=+E,isNaN(r)||"number"!=typeof E||E%1!=0?NaN:r<0?-i(e,-r,E):(r=r.toString().split("e"),+((r=(r=Math[e](+(r[0]+"e"+(r[1]?+r[1]-E:-E)))).toString().split("e"))[0]+"e"+(r[1]?+r[1]+E:E))))}var o,a,t={decimal:{from:function(e){if((e=parseFloat(e))<=1)throw new Error("Outside valid range.");return e},to:function(){return this.decimalValue}},moneyline:{from:function(e){return(e=parseFloat(e))>=0?e/100+1:100/-e+1},to:function(){return this.decimalValue>=2?E(100*(this.decimalValue-1)):E(-100/(this.decimalValue-1))}},hongKong:{from:function(e){if((e=parseFloat(e))<0)throw new Error("Outside valid range.");return e+1},to:function(){return E(this.decimalValue-1)}},impliedProbability:{from:function(e){if((e="string"==typeof e&&"%"==e.slice(-1)?parseFloat(e)/100:parseFloat(e))<=0||e>=1)throw new Error("Outside valid range");return 1/e},to:function(e){if(e.percentage){var r=E(100/this.decimalValue);return null!==e.precision&&(r=i("round",r,-e.precision)),r.toString()+"%"}return E(1/this.decimalValue)}},fractional:{from:function(e){var r,E=e.toString().split("/");if(e=parseFloat(E[0]),2===E.length)r=parseFloat(E[1]);else{if(1!==E.length)throw new Error("Invalid fraction");r=1}if(0===e||0===r||e/r<=0)throw new Error("Outside valid range");return 1+e/r},to:function(e){return function(e,r){for(var E,i=[0,1],o=[1,0],a=function(e){var r=null,E=e.toString().indexOf("E");-1==E&&(E=e.toString().indexOf("e"));var i=null,o=(r=-1==E?e.toString():e.toString().substring(0,E)).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 a=i,t=a.toString().length,L=e,A=L.toString().length;0===L&&(A=0);var T,s=t-A;for(T=s;T>0&&a%2==0;T--)a/=2;for(T=s;T>0&&a%5==0;T--)a/=5;return a}(e),t=e,L=Math.pow(10,-r)/2,A=2;A<1e3;A++){var T=Math.floor(t);if(i[A]=T*i[A-1]+i[A-2],Math.abs(i[A])>a)return;if(o[A]=T*o[A-1]+o[A-2],E=i[A]/o[A],Math.abs(E-e)<L||NaN==E)return i[A].toString()+"/"+o[A].toString();t=1/(t-T)}}(this.decimalValue-1,e.precision||12)}},malay:{from:function(e){if((e=parseFloat(e))<=-1||e>1)throw new Error("Outside valid range.");return e<0&&(e=-1/e),e+1},to:function(){return this.decimalValue<=2?E(this.decimalValue-1):E(-1/(this.decimalValue-1))}},indonesian:{from:function(e){if(0===(e=parseFloat(e)))throw new Error("Outside valid range.");return e>=1?e+1:-1/e+1},to:function(){return this.decimalValue<2?E(-1/(this.decimalValue-1)):E(this.decimalValue-1)}}},L=((a=function(e){if("number"!=typeof e||isNaN(e))throw new Error("Invalid odds");this.decimalValue=E(e)}).prototype=(o=function(){throw new Error("This constructor is private, please use the from* functions")}).prototype,o.from=function(e,r){if(!t.hasOwnProperty(e))throw new Error("Unknown format "+e+".");var E=t[e].from(r);return new a(E)},o);L.prototype.to=function(e,r){if(!t.hasOwnProperty(e))throw new Error("Unknown format "+e+".");r=Object.assign({precision:null,percentage:!1},r);var E=t[e].to.call(this,r);return"number"==typeof E&&null!==r.precision&&(E=i("round",E,-r.precision)),E};var A,T,s,_,p,N,S,I,O,l,n=L.from,R=function(e,r,E){var i=e.find((function(e){return Number(e.sportId)===Number(r)}));if(i){if(""==i.primaryBookmaker)return E;var o=[];return i.primaryBookmaker&&o.push(i.primaryBookmaker),i.secondaryBookmaker&&o.push(i.secondaryBookmaker),i.tertiaryBookmaker&&o.push(i.tertiaryBookmaker),o}return E},d=function(e,r,E,i,o){var a=e.get(r[0]);if(!a)return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds cause no matching bookmakers have been found"};var t=a.homeOdds,L=a.awayOdds,A=E?0:a.drawOdds;if(r.some((function(r){var i=e.get(r);return!!i&&(0===i.homeOdds||0===i.awayOdds||!E&&0===i.drawOdds||1===i.homeOdds||1===i.awayOdds||!E&&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:t,awayOdds:L,drawOdds:E?0:A};if(r.slice(1).some((function(r){var a=e[r];if(a){var T=a.homeOdds,s=a.awayOdds,_=a.drawOdds,p=n("decimal",t).to("impliedProbability"),N=n("decimal",L).to("impliedProbability"),S=E?0:n("decimal",A).to("impliedProbability"),I=n("decimal",T).to("impliedProbability"),O=n("decimal",s).to("impliedProbability"),l=E?0:n("decimal",_).to("impliedProbability"),R=M(p,I),d=M(N,O),P=E?0:M(S,l);if(R>i&&p>o&&I>o||d>i&&N>o&&O>o||!E&&P>i&&S>o&&l>o)return!0}return!1})))return{homeOdds:0,awayOdds:0,drawOdds:0,errorMessage:"Returning zero odds due to percentage difference between bookmakers"};var T=[];return r.forEach((function(r){return T.push(e.get(r))})),{homeOdds:t,awayOdds:L,drawOdds:E?0:A}},M=function(e,r){var E=Math.abs(e-r)/e*100;return console.log("% diff: "+E),E};!function(e){e.SOCCER="Soccer",e.FOOTBALL="Football",e.BASKETBALL="Basketball",e.BASEBALL="Baseball",e.HOCKEY="Hockey",e.FIGHTING="Fighting",e.TENNIS="Tennis",e.ESPORTS="eSports",e.RUGBY="Rugby",e.VOLLEYBALL="Volleyball",e.HANDBALL="Handball",e.WATERPOLO="Waterpolo",e.CRICKET="Cricket",e.MOTOSPORT="Motosport",e.GOLF="Golf",e.TABLE_TENNIS="TableTennis",e.POLITICS="Politics",e.EMPTY=""}(A||(A={})),function(e){e[e.NCAAF=1]="NCAAF",e[e.NFL=2]="NFL",e[e.MLB=3]="MLB",e[e.NBA=4]="NBA",e[e.NCAAB=5]="NCAAB",e[e.NHL=6]="NHL",e[e.UFC=7]="UFC",e[e.WNBA=8]="WNBA",e[e.MLS=10]="MLS",e[e.EPL=11]="EPL",e[e.LIGUE_ONE=12]="LIGUE_ONE",e[e.BUNDESLIGA=13]="BUNDESLIGA",e[e.LA_LIGA=14]="LA_LIGA",e[e.SERIE_A=15]="SERIE_A",e[e.UEFA_CL=16]="UEFA_CL",e[e.UEFA_EL=17]="UEFA_EL",e[e.FIFA_WC=18]="FIFA_WC",e[e.J1_LEAGUE=19]="J1_LEAGUE",e[e.IPL=20]="IPL",e[e.T20_BLAST=21]="T20_BLAST",e[e.IIHF_WORLD_CHAMPIONSHIP=33]="IIHF_WORLD_CHAMPIONSHIP",e[e.COPA_AMERICA=44]="COPA_AMERICA",e[e.COPA_LIBERTADORES=45]="COPA_LIBERTADORES",e[e.UEFA_EURO=50]="UEFA_EURO",e[e.EREDIVISIE=57]="EREDIVISIE",e[e.PRIMEIRA_LIGA=61]="PRIMEIRA_LIGA",e[e.SUMMER_OLYMPICS_SOCCER_WOMEN=65]="SUMMER_OLYMPICS_SOCCER_WOMEN",e[e.SUMMER_OLYMPICS_SOCCER=66]="SUMMER_OLYMPICS_SOCCER",e[e.FIFA_WC_WOMEN=76]="FIFA_WC_WOMEN",e[e.ENGLAND_CUP=132]="ENGLAND_CUP",e[e.FRANCE_CUP=134]="FRANCE_CUP",e[e.SPAIN_CUP=138]="SPAIN_CUP",e[e.ITALY_CUP=141]="ITALY_CUP",e[e.TENNIS_WTA=152]="TENNIS_WTA",e[e.TENNIS_GS=153]="TENNIS_GS",e[e.TENNIS_MASTERS=156]="TENNIS_MASTERS",e[e.SUMMER_OLYMPICS_TENNIS=158]="SUMMER_OLYMPICS_TENNIS",e[e.GERMANY_CUP=209]="GERMANY_CUP",e[e.LIGA_MX=230]="LIGA_MX",e[e.BRAZIL_1=268]="BRAZIL_1",e[e.UEFA_EURO_U21=288]="UEFA_EURO_U21",e[e.FIFA_WORLD_CUP_U20=296]="FIFA_WORLD_CUP_U20",e[e.SUMMER_OLYMPICS_HANDBALL_WOMEN=380]="SUMMER_OLYMPICS_HANDBALL_WOMEN",e[e.SUMMER_OLYMPICS_HANDBALL=381]="SUMMER_OLYMPICS_HANDBALL",e[e.EUROLEAGUE=399]="EUROLEAGUE",e[e.SUMMER_OLYMPICS_BASKETBALL=406]="SUMMER_OLYMPICS_BASKETBALL",e[e.SUMMER_OLYMPICS_BASKETBALL_WOMEN=407]="SUMMER_OLYMPICS_BASKETBALL_WOMEN",e[e.FIBA_WORLD_CUP=409]="FIBA_WORLD_CUP",e[e.FORMULA1=445]="FORMULA1",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN=453]="SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_BEACH_VOLEYBALL=454]="SUMMER_OLYMPICS_BEACH_VOLEYBALL",e[e.MOTOGP=497]="MOTOGP",e[e.SAUDI_PROFESSIONAL_LEAGUE=536]="SAUDI_PROFESSIONAL_LEAGUE",e[e.SUMMER_OLYMPICS_WATERPOLO=8881]="SUMMER_OLYMPICS_WATERPOLO",e[e.SUMMER_OLYMPICS_VOLEYBALL_WOMEN=8893]="SUMMER_OLYMPICS_VOLEYBALL_WOMEN",e[e.SUMMER_OLYMPICS_VOLEYBALL=8894]="SUMMER_OLYMPICS_VOLEYBALL",e[e.SUMMER_OLYMPICS_TABLE_TENNIS=8910]="SUMMER_OLYMPICS_TABLE_TENNIS",e[e.BOXING=9196]="BOXING",e[e.SUMMER_OLYMPICS_RUGBY=9578]="SUMMER_OLYMPICS_RUGBY",e[e.SUMMER_OLYMPICS_RUGBY_WOMEN=9588]="SUMMER_OLYMPICS_RUGBY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY_WOMEN=9698]="SUMMER_OLYMPICS_HOCKEY_WOMEN",e[e.SUMMER_OLYMPICS_HOCKEY=9699]="SUMMER_OLYMPICS_HOCKEY",e[e.UEFA_NATIONS_LEAGUE=9806]="UEFA_NATIONS_LEAGUE",e[e.CONCACAF_NATIONS_LEAGUE=9821]="CONCACAF_NATIONS_LEAGUE",e[e.CSGO=9977]="CSGO",e[e.DOTA2=9983]="DOTA2",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3=10071]="SUMMER_OLYMPICS_BASKETBALL_3X3",e[e.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN=10072]="SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN",e[e.SUMMER_OLYMPICS_QUALIFICATION=10502]="SUMMER_OLYMPICS_QUALIFICATION",e[e.LOL=10138]="LOL",e[e.CONMEBOL_WC_QUALIFICATIONS=10199]="CONMEBOL_WC_QUALIFICATIONS",e[e.UEFA_CONFERENCE_LEAGUE=10216]="UEFA_CONFERENCE_LEAGUE",e[e.NON_TITLE_BOXING=10595]="NON_TITLE_BOXING",e[e.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION=10611]="UEFA_CHAMPIONS_LEAGUE_QUALIFICATION",e[e.UEFA_EUROPA_LEAGUE_QUALIFICATION=10613]="UEFA_EUROPA_LEAGUE_QUALIFICATION",e[e.UEFA_CONFERENCE_LEAGUE_QUALIFICATION=10615]="UEFA_CONFERENCE_LEAGUE_QUALIFICATION",e[e.US_ELECTION=2e4]="US_ELECTION",e[e.UEFA_SUPER_CUP=20001]="UEFA_SUPER_CUP",e[e.BRAZIL_CUP=20002]="BRAZIL_CUP",e[e.ENGLAND_CHAMPIONSHIP=20011]="ENGLAND_CHAMPIONSHIP",e[e.SCOTLAND_PREMIERSHIP=20101]="SCOTLAND_PREMIERSHIP",e[e.BELGIUM_LEAGUE=20102]="BELGIUM_LEAGUE",e[e.CZECH_LEAGUE=20103]="CZECH_LEAGUE",e[e.CHILE_PRIMERA=20104]="CHILE_PRIMERA",e[e.FINLAND_LEAGUE=20105]="FINLAND_LEAGUE",e[e.ARGENTINA_PRIMERA=20106]="ARGENTINA_PRIMERA",e[e.RUSSIA_PREMIER=20107]="RUSSIA_PREMIER",e[e.TURKEY_SUPER_LEAGUE=20108]="TURKEY_SUPER_LEAGUE",e[e.SERBIA_SUPER_LEAGUE=20109]="SERBIA_SUPER_LEAGUE",e[e.GREECE_SUPER_LEAGUE=20110]="GREECE_SUPER_LEAGUE",e[e.INDIA_PREMIER=20111]="INDIA_PREMIER",e[e.CHINA_SUPER_LEAGUE=20112]="CHINA_SUPER_LEAGUE",e[e.AUSTRALIA_A_LEAGUE=20113]="AUSTRALIA_A_LEAGUE",e[e.SWITZERLAND_SUPER_LEAGUE=20114]="SWITZERLAND_SUPER_LEAGUE",e[e.BUNDESLIGA_2=20115]="BUNDESLIGA_2",e[e.LA_LIGA_2=20116]="LA_LIGA_2",e[e.SERIE_B=20117]="SERIE_B",e[e.INDIA_SUPER_LEAGUE=20118]="INDIA_SUPER_LEAGUE",e[e.LIGUE_2=20119]="LIGUE_2",e[e.AUSTRIA_BUNDESLIGA=20120]="AUSTRIA_BUNDESLIGA",e[e.DENMARK_SUPER_LEAGUE=20121]="DENMARK_SUPER_LEAGUE",e[e.POLAND_LEAGUE=20122]="POLAND_LEAGUE",e[e.SWEDEN_LEAGUE=20123]="SWEDEN_LEAGUE",e[e.COLOMBIA_PRIMERA_A=20124]="COLOMBIA_PRIMERA_A",e[e.ENGLAND_EFL_CUP=20125]="ENGLAND_EFL_CUP",e[e.ENGLAND_LEGAUE_1=20126]="ENGLAND_LEGAUE_1",e[e.URUGUAY_PRIMERA_DIVISION=20127]="URUGUAY_PRIMERA_DIVISION",e[e.EUROCUP=20200]="EUROCUP",e[e.GOLF_H2H=100021]="GOLF_H2H",e[e.GOLF_WINNER=100121]="GOLF_WINNER",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1=15312]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2=15313]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3=15314]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4=15315]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5=15316]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6=15317]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6",e[e.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7=15318]="TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_1=15622]="TENNIS_MASTERS_LIVE_MAPPING_V2_1",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_2=15623]="TENNIS_MASTERS_LIVE_MAPPING_V2_2",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_3=15624]="TENNIS_MASTERS_LIVE_MAPPING_V2_3",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_4=15625]="TENNIS_MASTERS_LIVE_MAPPING_V2_4",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_5=15626]="TENNIS_MASTERS_LIVE_MAPPING_V2_5",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_6=15627]="TENNIS_MASTERS_LIVE_MAPPING_V2_6",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_7=15628]="TENNIS_MASTERS_LIVE_MAPPING_V2_7",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_8=15632]="TENNIS_MASTERS_LIVE_MAPPING_V2_8",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_9=15633]="TENNIS_MASTERS_LIVE_MAPPING_V2_9",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_10=15634]="TENNIS_MASTERS_LIVE_MAPPING_V2_10",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_11=15635]="TENNIS_MASTERS_LIVE_MAPPING_V2_11",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_12=15636]="TENNIS_MASTERS_LIVE_MAPPING_V2_12",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_13=15637]="TENNIS_MASTERS_LIVE_MAPPING_V2_13",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_14=15638]="TENNIS_MASTERS_LIVE_MAPPING_V2_14",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_15=15641]="TENNIS_MASTERS_LIVE_MAPPING_V2_15",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_16=15642]="TENNIS_MASTERS_LIVE_MAPPING_V2_16",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_17=15643]="TENNIS_MASTERS_LIVE_MAPPING_V2_17",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_18=15644]="TENNIS_MASTERS_LIVE_MAPPING_V2_18",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_19=15645]="TENNIS_MASTERS_LIVE_MAPPING_V2_19",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_20=15646]="TENNIS_MASTERS_LIVE_MAPPING_V2_20",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_21=15647]="TENNIS_MASTERS_LIVE_MAPPING_V2_21",e[e.TENNIS_MASTERS_LIVE_MAPPING_V2_22=15648]="TENNIS_MASTERS_LIVE_MAPPING_V2_22",e[e.TENNIS_WTA_LIVE_MAPPING_V2_1=15322]="TENNIS_WTA_LIVE_MAPPING_V2_1",e[e.TENNIS_WTA_LIVE_MAPPING_V2_2=15323]="TENNIS_WTA_LIVE_MAPPING_V2_2",e[e.TENNIS_WTA_LIVE_MAPPING_V2_3=15324]="TENNIS_WTA_LIVE_MAPPING_V2_3",e[e.TENNIS_WTA_LIVE_MAPPING_V2_4=15325]="TENNIS_WTA_LIVE_MAPPING_V2_4",e[e.TENNIS_WTA_LIVE_MAPPING_V2_5=15326]="TENNIS_WTA_LIVE_MAPPING_V2_5",e[e.TENNIS_WTA_LIVE_MAPPING_V2_6=15327]="TENNIS_WTA_LIVE_MAPPING_V2_6",e[e.TENNIS_WTA_LIVE_MAPPING_V2_7=15328]="TENNIS_WTA_LIVE_MAPPING_V2_7"}(T||(T={})),function(e){e.MONEYLINE="Moneyline"}(s||(s={})),function(e){e.ASIAN_HANDICAP="Asian Handicap",e.GAME_SPREAD="Game Spread",e.POINT_SPREAD="Point Spread",e.RUN_LINE="Run Line"}(_||(_={})),function(e){e.TOTAL_GAMES="Total Games",e.TOTAL_GOALS="Total Goals",e.TOTAL_POINTS="Total Points",e.TOTAL_RUNS="Total Runs"}(p||(p={})),function(e){e.POINTS="points",e.GOALS="goals",e.ROUNDS="rounds",e.SETS="sets",e.EMPTY=""}(N||(N={})),function(e){e.OVERTIME="overtime",e.REGULAR="regular",e.EMPTY=""}(S||(S={})),function(e){e.QUARTER="quarter",e.HALF="half",e.PERIOD="period",e.ROUND="round",e.INNING="inning",e.SET="set",e.EMPTY=""}(I||(I={})),function(e){e.RUNDOWN="rundown",e.ENETPULSE="enetpulse",e.JSONODDS="jsonOdds",e.OPTICODDS="opticOdds",e.EMPTY=""}(O||(O={}));var P=((l={})[T.NCAAF]={sport:A.FOOTBALL,id:T.NCAAF,label:"NCAA Football",provider:O.OPTICODDS,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.NFL]={sport:A.FOOTBALL,id:T.NFL,label:"NFL",opticOddsName:"NFL",provider:O.OPTICODDS,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.POINT_SPREAD,p.TOTAL_POINTS]},l[T.MLB]={sport:A.BASEBALL,id:T.MLB,label:"MLB",opticOddsName:"MLB",provider:O.OPTICODDS,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.INNING,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.RUN_LINE,p.TOTAL_RUNS]},l[T.NBA]={sport:A.BASKETBALL,id:T.NBA,label:"NBA",opticOddsName:"NBA",provider:O.OPTICODDS,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.POINT_SPREAD,p.TOTAL_POINTS]},l[T.NCAAB]={sport:A.BASKETBALL,id:T.NCAAB,label:"NCAA Basketball",provider:O.RUNDOWN,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.NHL]={sport:A.HOCKEY,id:T.NHL,label:"NHL",opticOddsName:"NHL",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.OVERTIME,periodType:I.PERIOD,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE]},l[T.UFC]={sport:A.FIGHTING,id:T.UFC,label:"UFC",provider:O.OPTICODDS,scoringType:N.ROUNDS,matchResolveType:S.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.WNBA]={sport:A.BASKETBALL,id:T.WNBA,label:"WNBA",opticOddsName:"WNBA",provider:O.OPTICODDS,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.POINT_SPREAD,p.TOTAL_POINTS]},l[T.MLS]={sport:A.SOCCER,id:T.MLS,label:"MLS",opticOddsName:"USA - Major League Soccer",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.EPL]={sport:A.SOCCER,id:T.EPL,label:"EPL",opticOddsName:"England - Premier League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.LIGUE_ONE]={sport:A.SOCCER,id:T.LIGUE_ONE,label:"Ligue 1",opticOddsName:"France - Ligue 1",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.BUNDESLIGA]={sport:A.SOCCER,id:T.BUNDESLIGA,label:"Bundesliga",opticOddsName:"Germany - Bundesliga",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.LA_LIGA]={sport:A.SOCCER,id:T.LA_LIGA,label:"La Liga",opticOddsName:"Spain - La Liga",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.SERIE_A]={sport:A.SOCCER,id:T.SERIE_A,label:"Serie A",opticOddsName:"Italy - Serie A",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.UEFA_CL]={sport:A.SOCCER,id:T.UEFA_CL,label:"UEFA Champions League",opticOddsName:"UEFA - Champions League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.UEFA_EL]={sport:A.SOCCER,id:T.UEFA_EL,label:"UEFA Europa League",opticOddsName:"UEFA - Europa League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.FIFA_WC]={sport:A.SOCCER,id:T.FIFA_WC,label:"FIFA World Cup Qualifiers",provider:O.OPTICODDS,opticOddsName:"FIFA - World Cup Qualifiers",scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.J1_LEAGUE]={sport:A.SOCCER,id:T.J1_LEAGUE,label:"J1 League",opticOddsName:"Japan - J1 League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.IPL]={sport:A.CRICKET,id:T.IPL,label:"Indian Premier League",provider:O.RUNDOWN,scoringType:N.POINTS,matchResolveType:S.EMPTY,periodType:I.INNING,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.T20_BLAST]={sport:A.CRICKET,id:T.T20_BLAST,label:"T20 Blast",provider:O.RUNDOWN,scoringType:N.POINTS,matchResolveType:S.EMPTY,periodType:I.INNING,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.IIHF_WORLD_CHAMPIONSHIP]={sport:A.HOCKEY,id:T.IIHF_WORLD_CHAMPIONSHIP,label:"IIHF World Championship",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.COPA_AMERICA]={sport:A.SOCCER,id:T.COPA_AMERICA,label:"Copa America",opticOddsName:"CONMEBOL - Copa America",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.COPA_LIBERTADORES]={sport:A.SOCCER,id:T.COPA_LIBERTADORES,label:"Copa Libertadores",opticOddsName:"CONMEBOL - Copa Libertadores",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.UEFA_EURO]={sport:A.SOCCER,id:T.UEFA_EURO,label:"UEFA EURO 2024",opticOddsName:"UEFA - European Championship",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.EREDIVISIE]={sport:A.SOCCER,id:T.EREDIVISIE,label:"Eredivisie",opticOddsName:"Netherlands - Eredivisie",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.PRIMEIRA_LIGA]={sport:A.SOCCER,id:T.PRIMEIRA_LIGA,label:"Primeira Liga",opticOddsName:"Portugal - Primeira Liga",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.SUMMER_OLYMPICS_SOCCER_WOMEN]={sport:A.SOCCER,id:T.SUMMER_OLYMPICS_SOCCER_WOMEN,label:"Olympic Games Soccer Women",opticOddsName:"Olympics Soccer Women",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.SUMMER_OLYMPICS_SOCCER]={sport:A.SOCCER,id:T.SUMMER_OLYMPICS_SOCCER,label:"Olympic Games Soccer",opticOddsName:"Olympics Soccer Men",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.FIFA_WC_WOMEN]={sport:A.SOCCER,id:T.FIFA_WC_WOMEN,label:"FIFA World Cup Women",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.ENGLAND_CUP]={sport:A.SOCCER,id:T.ENGLAND_CUP,label:"FA Cup",opticOddsName:"England - FA Cup",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.FRANCE_CUP]={sport:A.SOCCER,id:T.FRANCE_CUP,label:"Coupe de France",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SPAIN_CUP]={sport:A.SOCCER,id:T.SPAIN_CUP,label:"Copa del Rey",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.ITALY_CUP]={sport:A.SOCCER,id:T.ITALY_CUP,label:"Coppa Italia",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.TENNIS_WTA]={sport:A.TENNIS,id:T.TENNIS_WTA,label:"WTA Events",opticOddsName:"WTA",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE,_.GAME_SPREAD,p.TOTAL_GAMES],betTypesForLiveTestnet:[s.MONEYLINE,_.GAME_SPREAD,p.TOTAL_GAMES]},l[T.TENNIS_GS]={sport:A.TENNIS,id:T.TENNIS_GS,label:"Grand Slam",opticOddsName:"ATP,WTA",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE,_.GAME_SPREAD,p.TOTAL_GAMES],betTypesForLiveTestnet:[s.MONEYLINE,_.GAME_SPREAD,p.TOTAL_GAMES]},l[T.TENNIS_MASTERS]={sport:A.TENNIS,id:T.TENNIS_MASTERS,label:"ATP Events",opticOddsName:"ATP",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE,_.GAME_SPREAD,p.TOTAL_GAMES],betTypesForLiveTestnet:[s.MONEYLINE,_.GAME_SPREAD,p.TOTAL_GAMES]},l[T.SUMMER_OLYMPICS_TENNIS]={sport:A.TENNIS,id:T.SUMMER_OLYMPICS_TENNIS,label:"Olympic Games Tennis",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.GAME_SPREAD,p.TOTAL_GAMES]},l[T.GERMANY_CUP]={sport:A.SOCCER,id:T.GERMANY_CUP,label:"DFB Pokal",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.LIGA_MX]={sport:A.SOCCER,id:T.LIGA_MX,label:"Liga MX",opticOddsName:"Mexico - Liga MX",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.BRAZIL_1]={sport:A.SOCCER,id:T.BRAZIL_1,label:"Serie A",opticOddsName:"Brazil - Serie A",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.UEFA_EURO_U21]={sport:A.SOCCER,id:T.UEFA_EURO_U21,label:"UEFA EURO U21",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.FIFA_WORLD_CUP_U20]={sport:A.SOCCER,id:T.FIFA_WORLD_CUP_U20,label:"FIFA World Cup U20",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_HANDBALL_WOMEN]={sport:A.HANDBALL,id:T.SUMMER_OLYMPICS_HANDBALL_WOMEN,label:"Olympic Games Handball Women",opticOddsName:"Olympics Handball Women",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE]},l[T.SUMMER_OLYMPICS_HANDBALL]={sport:A.HANDBALL,id:T.SUMMER_OLYMPICS_HANDBALL,label:"Olympic Games Handball",opticOddsName:"Olympics Handball Men",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE]},l[T.EUROLEAGUE]={sport:A.BASKETBALL,id:T.EUROLEAGUE,label:"Euroleague",opticOddsName:"Euroleague",provider:O.OPTICODDS,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.POINT_SPREAD,p.TOTAL_POINTS]},l[T.SUMMER_OLYMPICS_BASKETBALL]={sport:A.BASKETBALL,id:T.SUMMER_OLYMPICS_BASKETBALL,label:"Olympic Games Basketball",opticOddsName:"Olympics Basketball Men",provider:O.ENETPULSE,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.POINT_SPREAD,p.TOTAL_POINTS]},l[T.SUMMER_OLYMPICS_BASKETBALL_WOMEN]={sport:A.BASKETBALL,id:T.SUMMER_OLYMPICS_BASKETBALL_WOMEN,label:"Olympic Games Basketball Women",opticOddsName:"Olympics Basketball Women",provider:O.ENETPULSE,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.POINT_SPREAD,p.TOTAL_POINTS]},l[T.FIBA_WORLD_CUP]={sport:A.BASKETBALL,id:T.FIBA_WORLD_CUP,label:"FIBA World Cup",provider:O.ENETPULSE,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.FORMULA1]={sport:A.MOTOSPORT,id:T.FORMULA1,label:"Formula 1",provider:O.ENETPULSE,scoringType:N.EMPTY,matchResolveType:S.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN]={sport:A.VOLLEYBALL,id:T.SUMMER_OLYMPICS_BEACH_VOLEYBALL_WOMEN,label:"Olympic Games Beach Voleyball Women",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_BEACH_VOLEYBALL]={sport:A.VOLLEYBALL,id:T.SUMMER_OLYMPICS_BEACH_VOLEYBALL,label:"Olympic Games Beach Voleyball",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_TABLE_TENNIS]={sport:A.TABLE_TENNIS,id:T.SUMMER_OLYMPICS_TABLE_TENNIS,label:"Olympic Games Table Tennis",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.MOTOGP]={sport:A.MOTOSPORT,id:T.MOTOGP,label:"MotoGP",provider:O.ENETPULSE,scoringType:N.EMPTY,matchResolveType:S.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SAUDI_PROFESSIONAL_LEAGUE]={sport:A.SOCCER,id:T.SAUDI_PROFESSIONAL_LEAGUE,label:"Saudi Professional League",opticOddsName:"Saudi Arabia - Saudi League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.SUMMER_OLYMPICS_WATERPOLO]={sport:A.WATERPOLO,id:T.SUMMER_OLYMPICS_WATERPOLO,label:"Olympic Games Water Polo",opticOddsName:"Olympics Water Polo",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.QUARTER,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE]},l[T.SUMMER_OLYMPICS_VOLEYBALL_WOMEN]={sport:A.VOLLEYBALL,id:T.SUMMER_OLYMPICS_VOLEYBALL_WOMEN,label:"Olympic Games Volleyball Women",opticOddsName:"Olympics Volleyball Women",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE]},l[T.SUMMER_OLYMPICS_VOLEYBALL]={sport:A.VOLLEYBALL,id:T.SUMMER_OLYMPICS_VOLEYBALL,label:"Olympic Games Volleyball",opticOddsName:"Olympics Volleyball Men",provider:O.ENETPULSE,scoringType:N.SETS,matchResolveType:S.REGULAR,periodType:I.SET,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE]},l[T.BOXING]={sport:A.FIGHTING,id:T.BOXING,label:"Boxing",provider:O.ENETPULSE,scoringType:N.ROUNDS,matchResolveType:S.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_RUGBY]={sport:A.RUGBY,id:T.SUMMER_OLYMPICS_RUGBY,label:"Olympic Games Rugby",opticOddsName:"Olympics Rugby 7s Men",provider:O.ENETPULSE,scoringType:N.POINTS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_RUGBY_WOMEN]={sport:A.RUGBY,id:T.SUMMER_OLYMPICS_RUGBY_WOMEN,label:"Olympic Games Rugby Women",opticOddsName:"Olympics Rugby 7s Women",provider:O.ENETPULSE,scoringType:N.POINTS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_HOCKEY_WOMEN]={sport:A.HOCKEY,id:T.SUMMER_OLYMPICS_HOCKEY_WOMEN,label:"Olympic Games Hockey Women",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_HOCKEY]={sport:A.HOCKEY,id:T.SUMMER_OLYMPICS_HOCKEY,label:"Olympic Games Hockey",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.PERIOD,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.UEFA_NATIONS_LEAGUE]={sport:A.SOCCER,id:T.UEFA_NATIONS_LEAGUE,label:"UEFA Nations League",provider:O.OPTICODDS,opticOddsName:"UEFA - Nations League",scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.CONCACAF_NATIONS_LEAGUE]={sport:A.SOCCER,id:T.CONCACAF_NATIONS_LEAGUE,label:"CONCACAF Nations League",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.CSGO]={sport:A.ESPORTS,id:T.CSGO,label:"CS GO",opticOddsName:"CS2",provider:O.ENETPULSE,scoringType:N.ROUNDS,matchResolveType:S.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.DOTA2]={sport:A.ESPORTS,id:T.DOTA2,label:"DOTA 2",opticOddsName:"Dota 2",provider:O.ENETPULSE,scoringType:N.ROUNDS,matchResolveType:S.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SUMMER_OLYMPICS_BASKETBALL_3X3]={sport:A.BASKETBALL,id:T.SUMMER_OLYMPICS_BASKETBALL_3X3,label:"Olympic Games Basketball 3x3",opticOddsName:"Olympics Basketball 3x3 Men",provider:O.ENETPULSE,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE]},l[T.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN]={sport:A.BASKETBALL,id:T.SUMMER_OLYMPICS_BASKETBALL_3X3_WOMEN,label:"Olympic Games Basketball 3x3 Women",opticOddsName:"Olympics Basketball 3x3 Women",provider:O.ENETPULSE,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE]},l[T.SUMMER_OLYMPICS_QUALIFICATION]={sport:A.BASKETBALL,id:T.SUMMER_OLYMPICS_QUALIFICATION,label:"Summer Olympics Basketball Qualification",provider:O.ENETPULSE,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.LOL]={sport:A.ESPORTS,id:T.LOL,label:"LOL",opticOddsName:"League of Legends",provider:O.ENETPULSE,scoringType:N.ROUNDS,matchResolveType:S.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.CONMEBOL_WC_QUALIFICATIONS]={sport:A.SOCCER,id:T.CONMEBOL_WC_QUALIFICATIONS,label:"CONMEBOL WC Qualification",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.UEFA_CONFERENCE_LEAGUE]={sport:A.SOCCER,id:T.UEFA_CONFERENCE_LEAGUE,label:"UEFA Conference League",opticOddsName:"UEFA - Europa Conference League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.NON_TITLE_BOXING]={sport:A.FIGHTING,id:T.NON_TITLE_BOXING,label:"Boxing",provider:O.ENETPULSE,scoringType:N.ROUNDS,matchResolveType:S.EMPTY,periodType:I.ROUND,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION]={sport:A.SOCCER,id:T.UEFA_CHAMPIONS_LEAGUE_QUALIFICATION,label:"UEFA Champions League Qualification",opticOddsName:"UEFA - Champions League",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.UEFA_EUROPA_LEAGUE_QUALIFICATION]={sport:A.SOCCER,id:T.UEFA_EUROPA_LEAGUE_QUALIFICATION,label:"UEFA Europa League Qualification",opticOddsName:"UEFA - Europa League",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.UEFA_CONFERENCE_LEAGUE_QUALIFICATION]={sport:A.SOCCER,id:T.UEFA_CONFERENCE_LEAGUE_QUALIFICATION,label:"UEFA Conference League Qualification",opticOddsName:"UEFA - Europa Conference League",provider:O.ENETPULSE,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.US_ELECTION]={sport:A.POLITICS,id:T.US_ELECTION,label:"US Election 2024",provider:O.EMPTY,scoringType:N.EMPTY,matchResolveType:S.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.UEFA_SUPER_CUP]={sport:A.SOCCER,id:T.UEFA_SUPER_CUP,label:"UEFA Super Cup",opticOddsName:"UEFA - Super Cup",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.BRAZIL_CUP]={sport:A.SOCCER,id:T.BRAZIL_CUP,label:"Copa do Brasil",opticOddsName:"Brazil - Copa do Brasil",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.ENGLAND_CHAMPIONSHIP]={sport:A.SOCCER,id:T.ENGLAND_CHAMPIONSHIP,label:"EFL Championship",opticOddsName:"England - Championship",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.SCOTLAND_PREMIERSHIP]={sport:A.SOCCER,id:T.SCOTLAND_PREMIERSHIP,label:"Scotland Premiership",opticOddsName:"Scotland - Premiership",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.BELGIUM_LEAGUE]={sport:A.SOCCER,id:T.BELGIUM_LEAGUE,label:"Belgium Jupiler Pro League",opticOddsName:"Belgium - Jupiler Pro League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.CZECH_LEAGUE]={sport:A.SOCCER,id:T.CZECH_LEAGUE,label:"Czech Republic FNL",opticOddsName:"Czech Republic - FNL",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.CHILE_PRIMERA]={sport:A.SOCCER,id:T.CHILE_PRIMERA,label:"Chile Primera Division",opticOddsName:"Chile - Primera Division",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.FINLAND_LEAGUE]={sport:A.SOCCER,id:T.FINLAND_LEAGUE,label:"Finland Veikkausliiga",opticOddsName:"Finland - Veikkausliiga",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.ARGENTINA_PRIMERA]={sport:A.SOCCER,id:T.ARGENTINA_PRIMERA,label:"Argentina Primera Division",opticOddsName:"Argentina - Primera Division",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.RUSSIA_PREMIER]={sport:A.SOCCER,id:T.RUSSIA_PREMIER,label:"Russia Premier League",opticOddsName:"Russia - Premier League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.TURKEY_SUPER_LEAGUE]={sport:A.SOCCER,id:T.TURKEY_SUPER_LEAGUE,label:"Turkey Super Lig",opticOddsName:"Turkey - Super Lig",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SERBIA_SUPER_LEAGUE]={sport:A.SOCCER,id:T.SERBIA_SUPER_LEAGUE,label:"Serbia Super Liga",opticOddsName:"Serbia - Super Liga",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.GREECE_SUPER_LEAGUE]={sport:A.SOCCER,id:T.GREECE_SUPER_LEAGUE,label:"Greece Super League",opticOddsName:"Greece - Super League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.INDIA_PREMIER]={sport:A.SOCCER,id:T.INDIA_PREMIER,label:"India Calcutta Premier Division",opticOddsName:"India - Calcutta Premier Division",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.CHINA_SUPER_LEAGUE]={sport:A.SOCCER,id:T.CHINA_SUPER_LEAGUE,label:"China Super League",opticOddsName:"China - Super League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.AUSTRALIA_A_LEAGUE]={sport:A.SOCCER,id:T.AUSTRALIA_A_LEAGUE,label:"Australia A-League",opticOddsName:"Australia - A-League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SWITZERLAND_SUPER_LEAGUE]={sport:A.SOCCER,id:T.SWITZERLAND_SUPER_LEAGUE,label:"Switzerland Super League",opticOddsName:"Switzerland - Super League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.BUNDESLIGA_2]={sport:A.SOCCER,id:T.BUNDESLIGA_2,label:"Bundesliga 2",opticOddsName:"Germany - Bundesliga 2",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.LA_LIGA_2]={sport:A.SOCCER,id:T.LA_LIGA_2,label:"La Liga 2",opticOddsName:"Spain - La Liga 2",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SERIE_B]={sport:A.SOCCER,id:T.SERIE_B,label:"Serie B",opticOddsName:"Italy - Serie B",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.INDIA_SUPER_LEAGUE]={sport:A.SOCCER,id:T.INDIA_SUPER_LEAGUE,label:"India Super League",opticOddsName:"India - Super League",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.LIGUE_2]={sport:A.SOCCER,id:T.LIGUE_2,label:"Ligue 2",opticOddsName:"France - Ligue 2",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.AUSTRIA_BUNDESLIGA]={sport:A.SOCCER,id:T.AUSTRIA_BUNDESLIGA,label:"Austria Bundesliga",opticOddsName:"Austria - Bundesliga",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.DENMARK_SUPER_LEAGUE]={sport:A.SOCCER,id:T.DENMARK_SUPER_LEAGUE,label:"Denmark Superliga",opticOddsName:"Denmark - Superliga",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.POLAND_LEAGUE]={sport:A.SOCCER,id:T.POLAND_LEAGUE,label:"Poland Ekstraklasa",opticOddsName:"Poland - Ekstraklasa",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.SWEDEN_LEAGUE]={sport:A.SOCCER,id:T.SWEDEN_LEAGUE,label:"Sweden Allsvenskan",opticOddsName:"Sweden - Allsvenskan",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.COLOMBIA_PRIMERA_A]={sport:A.SOCCER,id:T.COLOMBIA_PRIMERA_A,label:"Colombia Primera A",opticOddsName:"Colombia - Primera A",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.ENGLAND_EFL_CUP]={sport:A.SOCCER,id:T.ENGLAND_EFL_CUP,label:"England EFL Cup",opticOddsName:"England - EFL Cup",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[s.MONEYLINE],betTypesForLiveTestnet:[s.MONEYLINE,_.ASIAN_HANDICAP,p.TOTAL_GOALS]},l[T.ENGLAND_LEGAUE_1]={sport:A.SOCCER,id:T.ENGLAND_LEGAUE_1,label:"England League 1",opticOddsName:"England - League 1",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.URUGUAY_PRIMERA_DIVISION]={sport:A.SOCCER,id:T.URUGUAY_PRIMERA_DIVISION,label:"Uruguay Primera Division",opticOddsName:"Uruguay - Primera Division",provider:O.OPTICODDS,scoringType:N.GOALS,matchResolveType:S.REGULAR,periodType:I.HALF,isDrawAvailable:!0,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.EUROCUP]={sport:A.BASKETBALL,id:T.EUROCUP,label:"Eurocup",opticOddsName:"Eurocup",provider:O.OPTICODDS,scoringType:N.POINTS,matchResolveType:S.OVERTIME,periodType:I.QUARTER,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.GOLF_H2H]={sport:A.GOLF,id:T.GOLF_H2H,label:"Golf head-to-head",provider:O.JSONODDS,scoringType:N.EMPTY,matchResolveType:S.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l[T.GOLF_WINNER]={sport:A.GOLF,id:T.GOLF_WINNER,label:"Golf Tournament Winner",provider:O.JSONODDS,scoringType:N.EMPTY,matchResolveType:S.EMPTY,periodType:I.EMPTY,isDrawAvailable:!1,betTypesForLive:[],betTypesForLiveTestnet:[]},l),y=[T.CSGO,T.DOTA2,T.LOL,T.TENNIS_GS,T.TENNIS_MASTERS,T.SUMMER_OLYMPICS_TENNIS,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_1,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_2,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_3,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_4,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_5,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_6,T.TENNIS_GRAND_SLAM_LIVE_MAPPING_V2_7,T.TENNIS_MASTERS_LIVE_MAPPING_V2_1,T.TENNIS_MASTERS_LIVE_MAPPING_V2_2,T.TENNIS_MASTERS_LIVE_MAPPING_V2_3,T.TENNIS_MASTERS_LIVE_MAPPING_V2_4,T.TENNIS_MASTERS_LIVE_MAPPING_V2_5,T.TENNIS_MASTERS_LIVE_MAPPING_V2_6,T.TENNIS_MASTERS_LIVE_MAPPING_V2_7,T.TENNIS_MASTERS_LIVE_MAPPING_V2_8,T.TENNIS_MASTERS_LIVE_MAPPING_V2_9,T.TENNIS_MASTERS_LIVE_MAPPING_V2_10,T.TENNIS_MASTERS_LIVE_MAPPING_V2_11,T.TENNIS_MASTERS_LIVE_MAPPING_V2_12,T.TENNIS_MASTERS_LIVE_MAPPING_V2_13,T.TENNIS_MASTERS_LIVE_MAPPING_V2_14,T.TENNIS_MASTERS_LIVE_MAPPING_V2_15,T.TENNIS_MASTERS_LIVE_MAPPING_V2_16,T.TENNIS_MASTERS_LIVE_MAPPING_V2_17,T.TENNIS_MASTERS_LIVE_MAPPING_V2_18,T.TENNIS_MASTERS_LIVE_MAPPING_V2_19,T.TENNIS_MASTERS_LIVE_MAPPING_V2_20,T.TENNIS_MASTERS_LIVE_MAPPING_V2_21,T.TENNIS_MASTERS_LIVE_MAPPING_V2_22,T.TENNIS_WTA_LIVE_MAPPING_V2_1,T.TENNIS_WTA_LIVE_MAPPING_V2_2,T.TENNIS_WTA_LIVE_MAPPING_V2_3,T.TENNIS_WTA_LIVE_MAPPING_V2_4,T.TENNIS_WTA_LIVE_MAPPING_V2_5,T.TENNIS_WTA_LIVE_MAPPING_V2_6,T.TENNIS_WTA_LIVE_MAPPING_V2_7],c=[T.SUMMER_OLYMPICS_RUGBY,T.SUMMER_OLYMPICS_RUGBY_WOMEN],v=[T.NCAAF,T.NFL,T.MLB,T.NBA,T.NCAAB,T.NHL,T.WNBA,T.MLS,T.IPL,T.T20_BLAST],C=[701,702,703,704],U={1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21},G={320:18,6:24,33:33,16:42,44:44,45:45,11:47,50:50,12:53,13:54,15:55,57:57,61:61,65:65,66:66,17:73,76:76,14:87,152:152,153:153,156:156,158:158,132:132,134:134,138:138,141:141,209:209,230:230,268:268,288:288,296:296,310:310,319:319,322:322,327:327,380:380,381:381,399:399,406:406,407:407,409:409,445:445,453:453,454:454,497:497,536:536,8881:8881,8893:8893,8894:8894,8910:8910,9196:9196,9578:9578,9588:9588,9698:9698,9699:9699,9806:9806,9821:9821,9977:9977,9983:9983,10071:10071,10072:10072,10502:10502,10138:10138,10199:10199,10216:10216,10595:10595,10611:10611,10613:10613,10615:10615},b={1:"NCAAF",2:"NFL",3:"MLB",6:"NHL",7:"UFC",8:"WNBA",10:"USA - Major League Soccer",11:"England - Premier League",12:"France - Ligue 1",13:"Germany - Bundesliga",14:"Spain - La Liga",15:"Italy - Serie A",16:"UEFA - Champions League",17:"UEFA - Europa League",18:"FIFA - World Cup Qualifiers",19:"Japan - J1 League",45:"CONMEBOL - Copa Libertadores",57:"Netherlands - Eredivisie",61:"Portugal - Primeira Liga",230:"Mexico - Liga MX",268:"Brazil - Serie A",399:"Euroleague",536:"Saudi Arabia - Saudi League",9806:"UEFA - Nations League",9977:"CS2",9983:"Dota 2",10138:"League of Legends",10216:"UEFA - Europa Conference League",20001:"UEFA - Super Cup",20002:"Brazil - Copa do Brasil",20011:"England - Championship",20101:"Scotland - Premiership",20102:"Belgium - Jupiler Pro League",20103:"Czech Republic - FNL",20104:"Chile - Primera Division",20105:"Finland - Veikkausliiga",20106:"Argentina - Primera Division",20107:"Russia - Premier League",20108:"Turkey - Super Lig",20109:"Serbia - Super Liga",20110:"Greece - Super League",20111:"India - Calcutta Premier Division",20112:"China - Super League",20113:"Australia - A-League",20114:"Switzerland - Super League",20115:"Germany - Bundesliga 2",20116:"Spain - La Liga 2",20117:"Italy - Serie B",20118:"India - Super League",20119:"France - Ligue 2",20120:"Austria - Bundesliga",20121:"Denmark - Superliga",20122:"Poland - Ekstraklasa",20123:"Sweden - Allsvenskan",20124:"Colombia - Primera A",20125:"England - EFL Cup",20126:"England - League 1",20127:"Uruguay - Primera Division",20200:"Eurocup"},u=function(e){var r=P[e];return r?r.sport:A.EMPTY},m=function(e){var r=P[e];return r?r.label:""},F=function(e){var r=P[e];return r?r.provider:""},D=function(e){var r=P[e];return!!r&&r.isDrawAvailable},g=function(e){return Object.values(P).filter((function(r){return e?r.betTypesForLiveTestnet.length>0:r.betTypesForLive.length>0})).map((function(e){return e.id}))},h=function(e,r){var E=P[e];return E?r?E.betTypesForLiveTestnet:E.betTypesForLive:[]},V=function(e,r){var E=P[e];return!!E&&(r?E.betTypesForLiveTestnet.length>0:E.betTypesForLive.length>0)},B=function(e){var r=P[e];return r?r.opticOddsName:void 0},Y=function(e){var r=P[e];return r?r.periodType:""},f=function(e,r){var E;return h(e,r).forEach((function(e){Object.values(_).find((function(r){return r==e}))&&(E=e)})),E},w=function(e,r){var E;return h(e,r).forEach((function(e){Object.values(p).find((function(r){return r==e}))&&(E=e)})),E},H=function(e,r,E,i,o,a){var t,L;if(y.includes(e)?(t=i.toLowerCase()==r.toLowerCase()||i.toLowerCase()==E.toLowerCase(),L=o.toLowerCase()==r.toLowerCase()||o.toLowerCase()==E.toLowerCase()):(t=i.toLowerCase()==r.toLowerCase(),L=o.toLowerCase()==E.toLowerCase()),!0!==t){var A=a.get(i.toLowerCase()),T=a.get(r.toLowerCase()),s=a.get(E.toLowerCase());if([A,T].some((function(e){return null==e})))return!1;t=y.includes(e)?A==T||A==s:A==T}if(!0!==L){var _=a.get(o.toLowerCase());if(T=a.get(r.toLowerCase()),[_,s=a.get(E.toLowerCase())].some((function(e){return null==e})))return!1;L=y.includes(e)&&_==T||_==s}return t&&L},W=function(e,r,E,i){var o;if(u(E)==A.TENNIS){var a=r.getTime(),t=e.getTime();o=Math.abs(t-a)<=Number(60*i*1e3)}else o=r.toUTCString()==e.toUTCString();return o},k=0,K="Draw",Q=1e5,X=.2,j=10001,z=10002,Z=100,x={OPEN:0,PAUSED:1,IN_PROGRESS:3,FINISHED:8,RESOLVED:10,CANCELED:255},J=function(e,r,E){if(e.some((function(e){return 0===e})))return e;var i=e.reduce((function(e,r){return e+r}),0);if(i<=1)return Array(e.length).fill(0);if(0===E){if(!(r>100*(i-1)))return e;E=r}var o=1+E/100,a=o/i,t=e.map((function(e){return e*a}));if(t.some((function(e){return e>=1})))return Array(e.length).fill(0);var L=t.reduce((function(e,r){return e+r}),0);if(L<1)return Array(e.length).fill(0);var A=o/L;return t.map((function(e){return e*A}))},q=function(e,r,E,i){var o=e.find((function(e){return Number(e.typeId)===Number(E)&&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}},$=function(e){return e===k?0:ee("decimal","impliedProbability",e)},ee=function(e,r,E){try{return n(e,E).to(r)}catch(e){return 0}},re=function(e,r,E,i,o){var a=new Map;return E.forEach((function(E){var t=0,L=e.filter((function(e){return e&&e.market_name.toLowerCase()===r.toLowerCase()&&e.sports_book_name.toLowerCase()==E.toLowerCase()&&e.selection.toLowerCase()===i.homeTeam.toLowerCase()}));0!==L.length&&(t=L[0].price);var A=0,T=e.filter((function(e){return e&&e.market_name.toLowerCase()===r.toLowerCase()&&e.sports_book_name.toLowerCase()==E.toLowerCase()&&e.selection.toLowerCase()===i.awayTeam.toLowerCase()}));0!==T.length&&(A=T[0].price);var s=0;if(!o){var _=e.filter((function(e){return e&&e.market_name.toLowerCase()===r.toLowerCase()&&e.sports_book_name.toLowerCase()==E.toLowerCase()&&e.selection.toLowerCase()===K.toLowerCase()}));0!==_.length&&(s=_[0].price)}a.set(E.toLowerCase(),{homeOdds:t,awayOdds:A,drawOdds:s})})),a},Ee=function(e,r,E,i,o,a,t){var L={homeTeam:i.home_team,awayTeam:i.away_team},A=re(i.odds,s.MONEYLINE,E,L,e),T=d(A,E,e,t,X);if(T.errorMessage)return{odds:e?[0,0]:[0,0,0],errorMessage:T.errorMessage};var _=(e?[T.homeOdds,T.awayOdds]:[T.homeOdds,T.awayOdds,T.drawOdds]).map((function(e){return $(e)})),p=q(r,o,Q,a);return{odds:_=null!==p?J(_,p.minSpread,p.targetSpread):J(_,a,0)}},ie=function(e,r,E){return e.filter((function(e){return e.market_name.toLowerCase()===r.toLowerCase()&&e.sports_book_name.toLowerCase()==E.toLowerCase()}))},oe=function(e,r,E,i,o,a){var t=[],L=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)}));return ae(L,r).forEach((function(e){var r=e.line,L=e.odds,A=$(L[0])||k,T=$(L[1])||k,s=A===k||T===k;if(!s){var _,p=q(i,E,o,a);null!==p?(_=J([A,T],p.minSpread,p.targetSpread)).some((function(e){return e===k}))?s=!0:(A=_[0],T=_[1]):(_=J([A,T],a,0)).some((function(e){return e===k}))?s=!0:(A=_[0],T=_[1])}var N=process.env.MIN_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,S=process.env.MAX_ODDS_FOR_CHILD_MARKETS_FOR_LIVE;N&&S&&(A>=N||A<=S||T>=N||T<=S)||t.push({leagueId:E,typeId:o,type:"spread",results:[],status:s?x.PAUSED:x.OPEN,line:r,odds:[A,T]})})),t},ae=function(e,r){var E=e.reduce((function(e,E){var i=E.selection_points,o=E.price,a=E.selection===r.homeTeam,t=a?i:-i;return e[t]||(e[t]={home:null,away:null}),a?e[t].home=o:e[t].away=o,e}),{}),i=Object.entries(E).reduce((function(e,r){var E=r[0],i=r[1],o=parseFloat(E);return null!==i.home&&null!==i.away&&e.push({line:o,odds:[i.home,i.away]}),e}),[]);return i},te=function(e,r,E,i,o){var a=[],t=e.filter((function(e){return e&&.5===Math.abs(e.selection_points%1)})),L=Le(t);return Object.entries(L).forEach((function(e){var t=e[0],L=e[1],A=L.over,T=L.under,s=t.split("_"),_=(s[0],s[1]),p=$(A)||k,N=$(T)||k,S=p===k||N===k;if(!S){var I,O=q(E,r,i,o);null!==O?(I=J([p,N],O.minSpread,O.targetSpread)).some((function(e){return e===k}))?S=!0:(p=I[0],N=I[1]):(I=J([p,N],o,0)).some((function(e){return e===k}))?S=!0:(p=I[0],N=I[1])}var l=process.env.MIN_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,n=process.env.MAX_ODDS_FOR_CHILD_MARKETS_FOR_LIVE,R={leagueId:r,typeId:i,type:"total",results:[],status:S?x.PAUSED:x.OPEN,line:parseFloat(_),odds:[p,N]};l&&n&&(p>=l||p<=n||N>=l||N<=n)||a.push(R)})),a},Le=function(e){return e.reduce((function(e,r){if(r){var E="".concat(r.selection,"_").concat(r.selection_points);e[E]||(e[E]={over:null,under:null}),"over"===r.selection_line?e[E].over=r.price:"under"===r.selection_line&&(e[E].under=r.price)}return e}),{})},Ae=function(){return Ae=Object.assign||function(e){for(var r,E=1,i=arguments.length;E<i;E++)for(var o in r=arguments[E])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},Ae.apply(this,arguments)},Te=function(e,r,E,i,o,a,t,L){var A=i.filter((function(r){return r.sportId===String(e.leagueId)})),T=Ee(!o,A,E,r,e.leagueId,a,t);if(T.errorMessage)return e.odds=e.odds.map((function(){return{american:0,decimal:0,normalizedImplied:0}})),e.childMarkets=[],e.errorMessage=T.errorMessage,e;e.odds=T.odds.filter((function(e){return 0!=e})).map((function(e){return{american:n("impliedProbability",e).to("moneyline"),decimal:n("impliedProbability",e).to("decimal"),normalizedImplied:e}})),e.live=!0;var s=se(e.leagueId,A,r,E,a,L).map((function(r){var E=Ae(Ae({},e),r);return E.odds.length>0&&(E.odds=E.odds.map((function(e){return 0==e?{american:0,decimal:0,normalizedImplied:0}:(E.live=!0,{american:n("impliedProbability",e).to("moneyline"),decimal:n("impliedProbability",e).to("decimal"),normalizedImplied:e})}))),E}));return e.childMarkets=s,e},se=function(e,r,E,i,o,a){var t=[];return(t=t.concat(_e(E,e,r,i,o,a))).concat(pe(E,e,r,i,o,a))},_e=function(e,r,E,i,o,a){var t=[],L=f(r,a),A={homeTeam:e.home_team,awayTeam:e.away_team};if(L){var T=ie(e.odds,L,i[0]);if(T.length>0){var s=oe(T,A,r,E,j,o);t.push.apply(t,s)}}else console.warn("Spread type for sport ID ".concat(r," not found."));return t},pe=function(e,r,E,i,o,a){var t=[],L=w(r,a);if(L){var A=ie(e.odds,L,i[0]);A.length>0&&t.push.apply(t,te(A,r,E,z,o))}else console.warn("Configuration (totals) for sport ID ".concat(r," not found."));return t},Ne=function(e,r,E){var i=e.score_home_total,o=e.score_away_total,a=e.clock,t=e.period,L=e.status,T=e.home_team,s=e.away_team,_=parseInt(t),p=u(r);return"completed"==L.toLowerCase()?{allow:!1,message:"Blocking game ".concat(T," - ").concat(s," because it is no longer live.")}:p===A.BASKETBALL?Se(T,s,_,E.get(A.BASKETBALL)):p===A.HOCKEY?Se(T,s,_,E.get(A.HOCKEY)):p===A.BASEBALL?Se(T,s,_,E.get(A.BASEBALL)):p===A.SOCCER?Ie(T,s,a,t,E.get(A.SOCCER)):p===A.TENNIS?Oe(e,T,s,t,i,o,r,p):p===A.VOLLEYBALL?Oe(e,T,s,_,i,o,r,p):{allow:!0,message:"The sport ".concat(r," does not have constraint")}},Se=function(e,r,E,i){return!Number.isNaN(E)&&E>=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to period: ").concat(E,". period")}:{allow:!0,message:""}},Ie=function(e,r,E,i,o){var a=Number(E);return!Number.isNaN(a)&&a>=o||Number.isNaN(a)&&"HALF"!=i?{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to clock: ").concat(E,"min")}:{allow:!0,message:""}},Oe=function(e,r,E,i,o,a,t,L){var s=Number(i),_=le(s,e),p="atp"==e.league.toLowerCase(),N={home:o,away:a};return L==A.VOLLEYBALL?ne(r,E,_,N,Re,5==s?Me:de):t.toString().startsWith(T.TENNIS_GS)&&p?ne(r,E,_,N,Pe,ce):t.toString().startsWith(T.TENNIS_GS)&&!p||t.toString().startsWith(T.TENNIS_MASTERS)||t.toString().startsWith(T.SUMMER_OLYMPICS_TENNIS)||t.toString().startsWith(T.TENNIS_WTA)?ne(r,E,_,N,ye,ce):{allow:!0,message:"The sport ".concat(t," does not have result constraint")}},le=function(e,r){var E=0,i=0;switch(e){case 1:E=Number(r.score_home_period_1),i=Number(r.score_away_period_1);break;case 2:E=Number(r.score_home_period_2),i=Number(r.score_away_period_2);break;case 3:E=Number(r.score_home_period_3),i=Number(r.score_away_period_3);break;case 4:E=Number(r.score_home_period_4),i=Number(r.score_away_period_4);break;case 5:E=Number(r.score_home_period_5),i=Number(r.score_away_period_5)}return{home:E,away:i}},ne=function(e,r,E,i,o,a){return Number(i.home)!=o&&Number(i.away)!=o||!(Number(i.home)==o&&E.home>=a||Number(i.away)==o&&E.away>=a)?{allow:!0,message:"",currentHomeGameScore:E.home,currentAwayGameScore:E.away}:{allow:!1,message:"Blocking game ".concat(e," - ").concat(r," due to current result: ").concat(i.home," - ").concat(i.away," (").concat(E.home," - ").concat(E.away,")")}},Re=2,de=20,Me=10,Pe=2,ye=1,ce=5;return r})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overtime-live-trading-utils",
3
- "version": "0.1.11",
3
+ "version": "0.2.0",
4
4
  "description": "",
5
5
  "main": "main.js",
6
6
  "scripts": {
@@ -0,0 +1,7 @@
1
+ export const ZERO = 0;
2
+ export const DRAW = 'Draw';
3
+ export const LIVE_TYPE_ID_BASE = 100000;
4
+ export const MIN_ODDS_FOR_DIFF_CHECKING = 0.2;
5
+ export const TAG_CHILD_SPREAD = 10001;
6
+ export const TAG_CHILD_TOTALS = 10002;
7
+ export const MULTIPLIER_100 = 100;
@@ -0,0 +1,155 @@
1
+ // export const FIRST_HALF_ASIAN_HANDICAP = '1st Half Asian Handicap';
2
+ // export const FIRST_HALF_ASIAN_HANDICAP_CORNERS = '1st Half Asian Handicap Corners';
3
+ // export const FIRST_HALF_BOTH_TEAMS_TO_SCORE = '1st Half Both Teams To Score';
4
+ // export const FIRST_HALF_CORRECT_SCORE = '1st Half Correct Score';
5
+ // export const FIRST_HALF_MONEYLINE = '1st Half Moneyline';
6
+ // export const FIRST_HALF_TEAM_TOTAL = '1st Half Team Total';
7
+ // export const FIRST_HALF_TEAM_TOTAL_EXACT = '1st Half Team Total Exact';
8
+ // export const FIRST_HALF_TOTAL_CORNERS = '1st Half Total Corners';
9
+ // export const FIRST_HALF_TOTAL_GOALS = '1st Half Total Goals';
10
+ // export const FIRST_HALF_TOTAL_GOALS_ODD_EVEN = '1st Half Total Goals Odd/Even';
11
+ // export const SECOND_HALF_ASIAN_HANDICAP_CORNERS = '2nd Half Asian Handicap Corners';
12
+ // export const SECOND_HALF_BOTH_TEAMS_TO_SCORE = '2nd Half Both Teams To Score';
13
+ // export const SECOND_HALF_MONEYLINE = '2nd Half Moneyline';
14
+ // export const SECOND_HALF_TOTAL_CORNERS = '2nd Half Total Corners';
15
+ // export const SECOND_HALF_TOTAL_GOALS = '2nd Half Total Goals';
16
+ // export const SECOND_HALF_TOTAL_GOALS_ODD_EVEN = '2nd Half Total Goals Odd/Even';
17
+ // export const ANYTIME_GOAL_SCORER = 'Anytime Goal Scorer';
18
+ // export const ASIAN_HANDICAP = 'Asian Handicap';
19
+ // export const ASIAN_HANDICAP_CARDS = 'Asian Handicap Cards';
20
+ // export const ASIAN_HANDICAP_CORNERS = 'Asian Handicap Corners';
21
+ // export const BOTH_TEAMS_TO_SCORE = 'Both Teams To Score';
22
+ // export const CORRECT_SCORE = 'Correct Score';
23
+ // export const DRAW_NO_BET = 'Draw No Bet';
24
+ // export const FIRST_GOAL_SCORER = 'First Goal Scorer';
25
+ // export const FIRST_TEAM_TO_SCORE_3_WAY = 'First Team To Score 3-Way';
26
+ // export const LAST_GOAL_SCORER = 'Last Goal Scorer';
27
+ // export const LAST_TEAM_TO_SCORE_3_WAY = 'Last Team To Score 3-Way';
28
+ // export const MONEYLINE = 'Moneyline';
29
+ // export const PLAYER_GOALS = 'Player Goals';
30
+ // export const TEAM_CLEAN_SHEET = 'Team Clean Sheet';
31
+ // export const TEAM_TOTAL = 'Team Total';
32
+ // export const TEAM_TOTAL_CARD_POINTS = 'Team Total Card Points';
33
+ // export const TEAM_TOTAL_CORNERS = 'Team Total Corners';
34
+ // export const TEAM_TOTAL_ODD_EVEN = 'Team Total Odd/Even';
35
+ // export const TOTAL_CARDS = 'Total Cards';
36
+ // export const TOTAL_CORNERS = 'Total Corners';
37
+ // export const TOTAL_CORNERS_ODD_EVEN = 'Total Corners Odd/Even';
38
+ // export const TOTAL_GOALS = 'Total Goals';
39
+ // export const TOTAL_GOALS_ODD_EVEN = 'Total Goals Odd/Even';
40
+ // export const TO_QUALIFY = 'To Qualify';
41
+ // export const HALFTIME_FULLTIME = 'Halftime / Fulltime';
42
+
43
+ // export const FIRST_3_INNINGS_MONEYLINE = '1st 3 Innings Moneyline';
44
+ // export const FIRST_3_INNINGS_RUN_LINE = '1st 3 Innings Run Line';
45
+ // export const FIRST_3_INNINGS_TEAM_TOTAL = '1st 3 Innings Team Total';
46
+ // export const FIRST_3_INNINGS_TOTAL_RUNS = '1st 3 Innings Total Runs';
47
+ // export const FIRST_7_INNINGS_MONEYLINE = '1st 7 Innings Moneyline';
48
+ // export const FIRST_7_INNINGS_RUN_LINE = '1st 7 Innings Run Line';
49
+ // export const FIRST_7_INNINGS_TEAM_TOTAL = '1st 7 Innings Team Total';
50
+ // export const FIRST_7_INNINGS_TOTAL_RUNS = '1st 7 Innings Total Runs';
51
+ // export const FIRST_HALF_RUN_LINE = '1st Half Run Line';
52
+ // export const FIRST_HALF_TOTAL_RUNS = '1st Half Total Runs';
53
+ // export const FIRST_INNING_MONEYLINE_3_WAY = '1st Inning Moneyline 3-Way';
54
+ // export const FIRST_INNING_RUN_LINE = '1st Inning Run Line';
55
+ // export const FIRST_INNING_TOTAL_RUNS = '1st Inning Total Runs';
56
+ // export const FIRST_INNING_TOTAL_RUNS_ODD_EVEN = '1st Inning Total Runs Odd/Even';
57
+ // export const SECOND_INNING_MONEYLINE_3_WAY = '2nd Inning Moneyline 3-Way';
58
+ // export const SECOND_INNING_RUN_LINE = '2nd Inning Run Line';
59
+ // export const SECOND_INNING_TOTAL_RUNS = '2nd Inning Total Runs';
60
+ // export const THIRD_INNING_MONEYLINE_3_WAY = '3rd Inning Moneyline 3-Way';
61
+ // export const THIRD_INNING_RUN_LINE = '3rd Inning Run Line';
62
+ // export const THIRD_INNING_TOTAL_RUNS = '3rd Inning Total Runs';
63
+ // export const FOURTH_INNING_MONEYLINE_3_WAY = '4th Inning Moneyline 3-Way';
64
+ // export const FOURTH_INNING_RUN_LINE = '4th Inning Run Line';
65
+ // export const FOURTH_INNING_TOTAL_RUNS = '4th Inning Total Runs';
66
+ // export const FIFTH_INNING_MONEYLINE_3_WAY = '5th Inning Moneyline 3-Way';
67
+ // export const FIFTH_INNING_RUN_LINE = '5th Inning Run Line';
68
+ // export const FIFTH_INNING_TOTAL_RUNS = '5th Inning Total Runs';
69
+ // export const SIXTH_INNING_MONEYLINE_3_WAY = '6th Inning Moneyline 3-Way';
70
+ // export const SIXTH_INNING_RUN_LINE = '6th Inning Run Line';
71
+ // export const SIXTH_INNING_TOTAL_RUNS = '6th Inning Total Runs';
72
+ // export const SEVENTH_INNING_MONEYLINE_3_WAY = '7th Inning Moneyline 3-Way';
73
+ // export const SEVENTH_INNING_RUN_LINE = '7th Inning Run Line';
74
+ // export const SEVENTH_INNING_TOTAL_RUNS = '7th Inning Total Runs';
75
+ // export const EIGHTH_INNING_MONEYLINE_3_WAY = '8th Inning Moneyline 3-Way';
76
+ // export const EIGHTH_INNING_RUN_LINE = '8th Inning Run Line';
77
+ // export const EIGHTH_INNING_TOTAL_RUNS = '8th Inning Total Runs';
78
+ // export const NINTH_INNING_MONEYLINE_3_WAY = '9th Inning Moneyline 3-Way';
79
+ // export const NINTH_INNING_RUN_LINE = '9th Inning Run Line';
80
+ // export const NINTH_INNING_TOTAL_RUNS = '9th Inning Total Runs';
81
+ // export const FIRST_TEAM_TO_SCORE = 'First Team To Score';
82
+ // export const NO_RUNS_FIRST_INNING = 'No Runs First Inning';
83
+ // export const PLAYER_BASES = 'Player Bases';
84
+ // export const PLAYER_BATTING_STRIKEOUTS = 'Player Batting Strikeouts';
85
+ // export const PLAYER_BATTING_WALKS = 'Player Batting Walks';
86
+ // export const PLAYER_DOUBLES = 'Player Doubles';
87
+ // export const PLAYER_EARNED_RUNS = 'Player Earned Runs';
88
+ // export const PLAYER_HITS = 'Player Hits';
89
+ // export const PLAYER_HITS_RUNS_RBIS = 'Player Hits + Runs + RBIs';
90
+ // export const PLAYER_HITS_ALLOWED = 'Player Hits Allowed';
91
+ // export const PLAYER_HOME_RUNS = 'Player Home Runs';
92
+ // export const PLAYER_HOME_RUNS_YES_NO = 'Player Home Runs Yes/No';
93
+ // export const PLAYER_OUTS = 'Player Outs';
94
+ // export const PLAYER_RBIS = 'Player RBIs';
95
+ // export const PLAYER_RUNS = 'Player Runs';
96
+ // export const PLAYER_SINGLES = 'Player Singles';
97
+ // export const PLAYER_STOLEN_BASES = 'Player Stolen Bases';
98
+ // export const PLAYER_STRIKEOUTS = 'Player Strikeouts';
99
+ // export const PLAYER_TO_RECORD_WIN = 'Player To Record Win';
100
+ // export const PLAYER_WALKS = 'Player Walks';
101
+ // export const RUN_LINE = 'Run Line';
102
+ // export const TOTAL_RUNS = 'Total Runs';
103
+ // export const WILL_THERE_BE_OVERTIME = 'Will There Be Overtime';
104
+
105
+ // export const FIRST_HALF_DOUBLE_CHANCE = '1st Half Double Chance';
106
+ // export const FIRST_HALF_MONEYLINE_3_WAY = '1st Half Moneyline 3-Way';
107
+ // export const FIRST_HALF_POINT_SPREAD = '1st Half Point Spread';
108
+ // export const FIRST_HALF_RACE_TO_20_POINTS = '1st Half Race To 20 Points';
109
+ // export const FIRST_HALF_RACE_TO_25_POINTS = '1st Half Race To 25 Points';
110
+ // export const FIRST_HALF_RACE_TO_30_POINTS = '1st Half Race To 30 Points';
111
+ // export const FIRST_HALF_RACE_TO_35_POINTS = '1st Half Race To 35 Points';
112
+ // export const FIRST_HALF_RACE_TO_40_POINTS = '1st Half Race To 40 Points';
113
+ // export const FIRST_HALF_RACE_TO_45_POINTS = '1st Half Race To 45 Points';
114
+ // export const FIRST_HALF_RACE_TO_50_POINTS = '1st Half Race To 50 Points';
115
+ // export const FIRST_HALF_RACE_TO_55_POINTS = '1st Half Race To 55 Points';
116
+ // export const FIRST_HALF_RACE_TO_60_POINTS = '1st Half Race To 60 Points';
117
+ // export const FIRST_HALF_TOTAL_POINTS = '1st Half Total Points';
118
+ // export const FIRST_HALF_TOTAL_POINTS_ODD_EVEN = '1st Half Total Points Odd/Even';
119
+ // export const FIRST_QUARTER_DOUBLE_CHANCE = '1st Quarter Double Chance';
120
+ // export const FIRST_QUARTER_MONEYLINE = '1st Quarter Moneyline';
121
+ // export const FIRST_QUARTER_MONEYLINE_3_WAY = '1st Quarter Moneyline 3-Way';
122
+ // export const FIRST_QUARTER_POINT_SPREAD = '1st Quarter Point Spread';
123
+ // export const FIRST_QUARTER_RACE_TO_10_POINTS = '1st Quarter Race To 10 Points';
124
+ // export const FIRST_QUARTER_RACE_TO_15_POINTS = '1st Quarter Race To 15 Points';
125
+ // export const FIRST_QUARTER_RACE_TO_20_POINTS = '1st Quarter Race To 20 Points';
126
+ // export const FIRST_QUARTER_TEAM_TOTAL = '1st Quarter Team Total';
127
+ // export const FIRST_QUARTER_TOTAL_POINTS = '1st Quarter Total Points';
128
+ // export const FIRST_QUARTER_TOTAL_POINTS_ODD_EVEN = '1st Quarter Total Points Odd/Even';
129
+ // export const FIRST_BASKET_INCLUDING_FT = 'First Basket Including FT';
130
+ // export const PLAYER_ASSISTS = 'Player Assists';
131
+ // export const PLAYER_DOUBLE_DOUBLE = 'Player Double Double';
132
+ // export const PLAYER_MADE_THREES = 'Player Made Threes';
133
+ // export const PLAYER_POINTS = 'Player Points';
134
+ // export const PLAYER_POINTS_REBOUNDS_ASSISTS = 'Player Points + Rebounds + Assists';
135
+ // export const PLAYER_REBOUNDS = 'Player Rebounds';
136
+ // export const POINT_SPREAD = 'Point Spread';
137
+ // export const RACE_TO_20_POINTS = 'Race To 20 Points';
138
+ // export const TEAM_TOTAL_POINTS_ODD_EVEN = 'Team Total Points Odd/Even';
139
+ // export const TOTAL_POINTS = 'Total Points';
140
+ // export const TOTAL_POINTS_ODD_EVEN = 'Total Points Odd/Even';
141
+
142
+ // export const GO_THE_DISTANCE = 'Go The Distance';
143
+ // export const METHOD_OF_VICTORY = 'Method of Victory';
144
+ // export const PLAYER_SIGNIFICANT_STRIKES = 'Player Significant Strikes';
145
+ // export const PLAYER_TAKEDOWNS = 'Player Takedowns';
146
+ // export const ROUND_BETTING = 'Round Betting';
147
+ // export const TOTAL_ROUNDS = 'Total Rounds';
148
+ // export const METHOD_OF_ENDING = 'Method Of Ending';
149
+ // export const MONEYLINE_TOTAL_ROUNDS = 'Moneyline + Total Rounds';
150
+ // export const WILL_A_POINT_BE_DEDUCTED = 'Will A Point Be Deducted';
151
+ // export const WILL_FIGHT_END_IN_FIRST_MINUTE = 'Will Fight End In First Minute';
152
+ // export const WINNING_ROUND = 'Winning Round';
153
+
154
+ // export const TOTAL_GAMES = 'Total Games';
155
+ // export const GAME_SPREAD = 'Game Spread';