define("slotParserApi", ["gameProtocolApi", "moneyApi"],
    function(gameProtocolApi, moneyApi) {
        "use strict";

        function $iterator(o) {
            if (o instanceof Array) return function() {
                return {
                    cur: 0,
                    arr: o,
                    hasNext: function() {
                        return this.cur < this.arr.length;
                    },
                    next: function() {
                        return this.arr[this.cur++];
                    }
                };
            };
            return typeof(o.iterator) == 'function' ? $bind(o, o.iterator) : o.iterator;
        };;
        var $fid = 0;

        function $bind(o, m) {
            if (m == null) return null;
            if (m.__id__ == null) m.__id__ = $fid++;
            var f;
            if (o.hx__closures__ == null) o.hx__closures__ = {};
            else f = o.hx__closures__[m.__id__];
            if (f == null) {
                f = function() {
                    return f.method.apply(f.scope, arguments);
                };
                f.scope = o;
                f.method = m;
                o.hx__closures__[m.__id__] = f;
            }
            return f;
        };
        var $_;
        var $estr = function() {
            return _hcmn_.js_Boot.__string_rec(this, '');
        };
        if (typeof haxe == 'undefined') {
            var haxe = {};
        };

        haxe.IMap = function() {}
        haxe.IMap.prototype = {

        };
        if (typeof slotParserApi == 'undefined') {
            var slotParserApi = {};
        };

        slotParserApi.ISlotParser = function() {}
        slotParserApi.ISlotParser.prototype = {

            parseSpinOutcome: function(gameLogicResponse) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            parsePickerChoices: function(gameLogicResponse) {
                return {
                    arguments: ["*"],
                    returns: "*"
                };
            },
            getInitPayload: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getPaytableResponse: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            },
            getCurrencyResponse: function() {
                return {
                    arguments: [],
                    returns: "*"
                };
            }
        };
        slotParserApi.InitPayload = function(riskControlSettings, slotDefinition, consoleSettings, stake, spinOutcome) {
            this.riskControlSettings = riskControlSettings;
            this.slotDefinition = slotDefinition;
            this.consoleSettings = consoleSettings;
            this.stake = stake;
            this.spinOutcome = spinOutcome;
        };
        slotParserApi.InitPayload.__name__ = ["slotParserApi", "InitPayload"];
        slotParserApi.InitPayload.prototype.riskControlSettings = null;
        slotParserApi.InitPayload.prototype.slotDefinition = null;
        slotParserApi.InitPayload.prototype.consoleSettings = null;
        slotParserApi.InitPayload.prototype.stake = null;
        slotParserApi.InitPayload.prototype.spinOutcome = null;
        slotParserApi.InitPayload.prototype.__class__ = slotParserApi.InitPayload;
        slotParserApi.SpinOutcome = function(stage, nextStage, gameStatus, baseGame, freeSpin, pickerBonus, previousFreeSpins, acumulatedFreeSpinPayout, acumulatedPayout, awardCapExceeded) {
            this.stage = stage;
            this.nextStage = nextStage;
            this.gameStatus = gameStatus;
            this.baseGame = baseGame;
            this.freeSpin = freeSpin;
            this.pickerBonus = pickerBonus;
            this.previousFreeSpins = previousFreeSpins;
            this.acumulatedFreeSpinPayout = acumulatedFreeSpinPayout;
            this.acumulatedPayout = acumulatedPayout;
            this.awardCapExceeded = awardCapExceeded;
        };
        slotParserApi.SpinOutcome.__name__ = ["slotParserApi", "SpinOutcome"];
        slotParserApi.SpinOutcome.prototype.stage = null;
        slotParserApi.SpinOutcome.prototype.nextStage = null;
        slotParserApi.SpinOutcome.prototype.gameStatus = null;
        slotParserApi.SpinOutcome.prototype.baseGame = null;
        slotParserApi.SpinOutcome.prototype.freeSpin = null;
        slotParserApi.SpinOutcome.prototype.pickerBonus = null;
        slotParserApi.SpinOutcome.prototype.previousFreeSpins = null;
        slotParserApi.SpinOutcome.prototype.acumulatedFreeSpinPayout = null;
        slotParserApi.SpinOutcome.prototype.acumulatedPayout = null;
        slotParserApi.SpinOutcome.prototype.awardCapExceeded = null;
        slotParserApi.SpinOutcome.prototype.__class__ = slotParserApi.SpinOutcome;
        slotParserApi.AutoSpinInfo = function(current, total) {
            this.current = current;
            this.total = total;
        };
        slotParserApi.AutoSpinInfo.__name__ = ["slotParserApi", "AutoSpinInfo"];
        slotParserApi.AutoSpinInfo.prototype.current = null;
        slotParserApi.AutoSpinInfo.prototype.total = null;
        slotParserApi.AutoSpinInfo.prototype.__class__ = slotParserApi.AutoSpinInfo;
        slotParserApi.AutoSpinsStopReason = function(id, reason) {
            this.id = id;
            this.reason = reason;
        };
        slotParserApi.AutoSpinsStopReason.__name__ = ["slotParserApi", "AutoSpinsStopReason"];
        slotParserApi.AutoSpinsStopReason.prototype.id = null;
        slotParserApi.AutoSpinsStopReason.prototype.reason = null;
        slotParserApi.AutoSpinsStopReason.prototype.__class__ = slotParserApi.AutoSpinsStopReason;
        slotParserApi.AutospinCommandPayload = function(steps, lossLimit, winLimit) {
            this.winLimit = winLimit;
            this.lossLimit = lossLimit;
            this.steps = steps;
        };
        slotParserApi.AutospinCommandPayload.__name__ = ["slotParserApi", "AutospinCommandPayload"];
        slotParserApi.AutospinCommandPayload.prototype.winLimit = null;
        slotParserApi.AutospinCommandPayload.prototype.lossLimit = null;
        slotParserApi.AutospinCommandPayload.prototype.steps = null;
        slotParserApi.AutospinCommandPayload.prototype.__class__ = slotParserApi.AutospinCommandPayload;
        slotParserApi.ConsoleSettings = function() {};
        slotParserApi.ConsoleSettings.__name__ = ["slotParserApi", "ConsoleSettings"];
        slotParserApi.ConsoleSettings.prototype.__class__ = slotParserApi.ConsoleSettings;
        slotParserApi.RiskControlSettings = function(softwareId, currencyFormat, awardCap, denomination, betMultiplierSteps, betPerLineArray, betPerLineMap, lineSteps, sideBetSteps, totalBetsForSelectedLines, totalBetsForSelectedBetPerLine, rgPresentation) {
            if (rgPresentation == null) rgPresentation = false;
            this.softwareId = softwareId;
            this.currencyFormat = currencyFormat;
            this.awardCap = awardCap;
            this.denomination = denomination;
            this.betMultiplierSteps = betMultiplierSteps;
            this.betPerLineArray = betPerLineArray;
            this.betPerLineMap = betPerLineMap;
            this.lineSteps = lineSteps;
            this.sideBetSteps = sideBetSteps;
            this.totalBetsForSelectedLines = totalBetsForSelectedLines;
            this.totalBetsForSelectedBetPerLine = totalBetsForSelectedBetPerLine;
            this.rgPresentation = rgPresentation;
        };
        slotParserApi.RiskControlSettings.__name__ = ["slotParserApi", "RiskControlSettings"];
        slotParserApi.RiskControlSettings.prototype.softwareId = null;
        slotParserApi.RiskControlSettings.prototype.currencyFormat = null;
        slotParserApi.RiskControlSettings.prototype.awardCap = null;
        slotParserApi.RiskControlSettings.prototype.denomination = null;
        slotParserApi.RiskControlSettings.prototype.betMultiplierSteps = null;
        slotParserApi.RiskControlSettings.prototype.betPerLineArray = null;
        slotParserApi.RiskControlSettings.prototype.betPerLineMap = null;
        slotParserApi.RiskControlSettings.prototype.lineSteps = null;
        slotParserApi.RiskControlSettings.prototype.sideBetSteps = null;
        slotParserApi.RiskControlSettings.prototype.totalBetsForSelectedLines = null;
        slotParserApi.RiskControlSettings.prototype.totalBetsForSelectedBetPerLine = null;
        slotParserApi.RiskControlSettings.prototype.rgPresentation = null;
        slotParserApi.RiskControlSettings.prototype.__class__ = slotParserApi.RiskControlSettings;
        slotParserApi.SlotDefinitionSettings = function(rtp, reelPictureSize, reelPictureSizePresentation, reelPictureVisibility, reelPictureVisibilityPresentation, symbols, reels, payLines, startReelPicture, startReelPicturePresentation, startReelPicturePerBet, startFSReelPicture, startFSReelPicturePresentation, startFSReelPicturePerBet, autoSpins, outcomes, stripeLayersMap) {
            this.rtp = rtp;
            this.reelPictureSize = reelPictureSize;
            this.reelPictureSizePresentation = reelPictureSizePresentation;
            this.reelPictureVisibility = reelPictureVisibility;
            this.reelPictureVisibilityPresentation = reelPictureVisibilityPresentation;
            this.symbols = symbols;
            this.reels = reels;
            this.payLines = payLines;
            this.startReelPicture = startReelPicture;
            this.startReelPicturePresentation = startReelPicturePresentation;
            this.startReelPicturePerBet = startReelPicturePerBet;
            this.startFSReelPicture = startFSReelPicture;
            this.startFSReelPicturePresentation = startFSReelPicturePresentation;
            this.startFSReelPicturePerBet = startFSReelPicturePerBet;
            this.autoSpins = autoSpins;
            this.outcomes = outcomes;
            this.stripeLayersMap = stripeLayersMap;
            if (payLines != null) {
                this.lineMap = new _hcmn_.haxe_ds_IntMap();
                var line;
                var _g = 0;
                while (_g < payLines.length) {
                    var line1 = payLines[_g];
                    ++_g;
                    if (line1 != null) this.lineMap.h[line1.id] = line1;
                }
            }
            if (symbols != null) {
                this.symbolMap = new _hcmn_.haxe_ds_StringMap();
                var symbol;
                var _g1 = 0;
                while (_g1 < symbols.length) {
                    var symbol1 = symbols[_g1];
                    ++_g1;
                    if (symbol1 != null) this.symbolMap.set(symbol1.id, symbol1);
                }
            }
        };
        slotParserApi.SlotDefinitionSettings.__name__ = ["slotParserApi", "SlotDefinitionSettings"];
        slotParserApi.SlotDefinitionSettings.prototype.lineMap = null;
        slotParserApi.SlotDefinitionSettings.prototype.symbolMap = null;
        slotParserApi.SlotDefinitionSettings.prototype.rtp = null;
        slotParserApi.SlotDefinitionSettings.prototype.reelPictureSize = null;
        slotParserApi.SlotDefinitionSettings.prototype.reelPictureSizePresentation = null;
        slotParserApi.SlotDefinitionSettings.prototype.reelPictureVisibility = null;
        slotParserApi.SlotDefinitionSettings.prototype.reelPictureVisibilityPresentation = null;
        slotParserApi.SlotDefinitionSettings.prototype.symbols = null;
        slotParserApi.SlotDefinitionSettings.prototype.reels = null;
        slotParserApi.SlotDefinitionSettings.prototype.payLines = null;
        slotParserApi.SlotDefinitionSettings.prototype.startReelPicture = null;
        slotParserApi.SlotDefinitionSettings.prototype.startReelPicturePresentation = null;
        slotParserApi.SlotDefinitionSettings.prototype.startReelPicturePerBet = null;
        slotParserApi.SlotDefinitionSettings.prototype.startFSReelPicture = null;
        slotParserApi.SlotDefinitionSettings.prototype.startFSReelPicturePresentation = null;
        slotParserApi.SlotDefinitionSettings.prototype.startFSReelPicturePerBet = null;
        slotParserApi.SlotDefinitionSettings.prototype.autoSpins = null;
        slotParserApi.SlotDefinitionSettings.prototype.outcomes = null;
        slotParserApi.SlotDefinitionSettings.prototype.stripeLayersMap = null;
        slotParserApi.SlotDefinitionSettings.prototype.getLine = function(id) {
            if (this.lineMap == null) return null;
            if (this.lineMap.h.hasOwnProperty(id)) return this.lineMap.h[id];
            return null;
        };
        slotParserApi.SlotDefinitionSettings.prototype.getSymbol = function(id) {
            if (this.symbolMap == null) return null;
            if (this.symbolMap.exists(id)) return this.symbolMap.get(id);
            return null;
        };
        slotParserApi.SlotDefinitionSettings.prototype.__class__ = slotParserApi.SlotDefinitionSettings;
        slotParserApi.StakeItem = function(lineCount, betPerLine, totalBet, sideBet) {
            if (sideBet == null) sideBet = 0;
            this.numberOfLines = lineCount;
            this.betPerLine = betPerLine;
            this.sideBet = sideBet;
            this.totalBet = totalBet;
        };
        slotParserApi.StakeItem.__name__ = ["slotParserApi", "StakeItem"];
        slotParserApi.StakeItem.prototype.numberOfLines = null;
        slotParserApi.StakeItem.prototype.betPerLine = null;
        slotParserApi.StakeItem.prototype.sideBet = null;
        slotParserApi.StakeItem.prototype.totalBet = null;
        slotParserApi.StakeItem.prototype.__class__ = slotParserApi.StakeItem;
        slotParserApi.AutoSpinDefinition = function(enabled, steps) {
            this.enabled = enabled;
            this.steps = steps;
        };
        slotParserApi.AutoSpinDefinition.__name__ = ["slotParserApi", "AutoSpinDefinition"];
        slotParserApi.AutoSpinDefinition.prototype.enabled = null;
        slotParserApi.AutoSpinDefinition.prototype.steps = null;
        slotParserApi.AutoSpinDefinition.prototype.__class__ = slotParserApi.AutoSpinDefinition;
        slotParserApi.Line = function(id, offsets) {
            this.id = id;
            this.offsets = offsets;
        };
        slotParserApi.Line.__name__ = ["slotParserApi", "Line"];
        slotParserApi.Line.prototype.id = null;
        slotParserApi.Line.prototype.offsets = null;
        slotParserApi.Line.prototype.getLinePath = function(reelPictureSize) {
            if (reelPictureSize == null) return null;
            if (this.offsets == null) return null;
            var linePath = [];
            var reelIndex;
            var _g1 = 0;
            var _g = reelPictureSize.numberOfCollumns;
            while (_g1 < _g) {
                var reelIndex1 = _g1++;
                var pathOnReel = [];
                var reelOffset = this.offsets[reelIndex1];
                var symbolIndex;
                var _g3 = 0;
                var _g2 = reelPictureSize.numberOfRows;
                while (_g3 < _g2) {
                    var symbolIndex1 = _g3++;
                    if (symbolIndex1 == reelOffset) pathOnReel.push(true);
                    else pathOnReel.push(false);
                }
                linePath.push(pathOnReel);
            }
            return linePath;
        };
        slotParserApi.Line.prototype.__class__ = slotParserApi.Line;
        slotParserApi.Reel = function(id, stripes) {
            this.id = id;
            this.stripes = stripes;
        };
        slotParserApi.Reel.__name__ = ["slotParserApi", "Reel"];
        slotParserApi.Reel.prototype.id = null;
        slotParserApi.Reel.prototype.stripes = null;
        slotParserApi.Reel.prototype.__class__ = slotParserApi.Reel;
        slotParserApi.ReelPictureSize = function(columns, rows) {
            this.numberOfCollumns = columns;
            this.numberOfRows = rows;
        };
        slotParserApi.ReelPictureSize.__name__ = ["slotParserApi", "ReelPictureSize"];
        slotParserApi.ReelPictureSize.prototype.numberOfCollumns = null;
        slotParserApi.ReelPictureSize.prototype.numberOfRows = null;
        slotParserApi.ReelPictureSize.prototype.__class__ = slotParserApi.ReelPictureSize;
        slotParserApi.Rtp = function(minRTP, maxRTP, singleRTP, minSingleRTP, maxSingleRTP) {
            this.minRTP = minRTP;
            this.maxRTP = maxRTP;
            this.singleRTP = singleRTP;
            this.minSingleRTP = minSingleRTP;
            this.maxSingleRTP = maxSingleRTP;
        };
        slotParserApi.Rtp.__name__ = ["slotParserApi", "Rtp"];
        slotParserApi.Rtp.prototype.singleRTP = null;
        slotParserApi.Rtp.prototype.minSingleRTP = null;
        slotParserApi.Rtp.prototype.maxSingleRTP = null;
        slotParserApi.Rtp.prototype.minRTP = null;
        slotParserApi.Rtp.prototype.maxRTP = null;
        slotParserApi.Rtp.prototype.__class__ = slotParserApi.Rtp;
        slotParserApi.Stripe = function(stripeLayer, symbols) {
            this.stripeLayer = stripeLayer;
            this.symbols = symbols;
        };
        slotParserApi.Stripe.__name__ = ["slotParserApi", "Stripe"];
        slotParserApi.Stripe.prototype.stripeLayer = null;
        slotParserApi.Stripe.prototype.symbols = null;
        slotParserApi.Stripe.prototype.__class__ = slotParserApi.Stripe;
        slotParserApi.Symbol = function(id, description, isWild, isBonus, isScatter, hasLandingAnimation, isBleed, block, asset) {
            this.id = id;
            this.description = description;
            this.isWild = isWild;
            this.isBonus = isBonus;
            this.isScatter = isScatter;
            this.hasLandingAnimation = hasLandingAnimation;
            this.isBleed = isBleed;
            this.block = block;
            this.asset = asset;
        };
        slotParserApi.Symbol.__name__ = ["slotParserApi", "Symbol"];
        slotParserApi.Symbol.prototype.id = null;
        slotParserApi.Symbol.prototype.description = null;
        slotParserApi.Symbol.prototype.isWild = null;
        slotParserApi.Symbol.prototype.isBonus = null;
        slotParserApi.Symbol.prototype.isScatter = null;
        slotParserApi.Symbol.prototype.hasLandingAnimation = null;
        slotParserApi.Symbol.prototype.isBleed = null;
        slotParserApi.Symbol.prototype.block = null;
        slotParserApi.Symbol.prototype.asset = null;
        slotParserApi.Symbol.prototype.__class__ = slotParserApi.Symbol;
        slotParserApi.ReelPicture = function(reels) {
            this.reels = reels;
        };
        slotParserApi.ReelPicture.__name__ = ["slotParserApi", "ReelPicture"];
        slotParserApi.ReelPicture.prototype.reels = null;
        slotParserApi.ReelPicture.prototype.toString = function() {
            if (this.reels == null) return "";
            var reels = this.reels;
            var firstLastLine = "--------------------------";
            var middleLine = "|----|----|----|----|----|";
            var result = "\n" + firstLastLine + "\n";
            var reelLength = 0;
            if (reels[0] != null) reelLength = reels[0].length;
            var _g = 0;
            while (_g < reelLength) {
                var i = _g++;
                var row = "";
                var _g1 = 0;
                while (_g1 < reels.length) {
                    var reel = reels[_g1];
                    ++_g1;
                    if (reel != null && reel[i] != null) row = row + "| " + _hcmn_.StringTools.lpad(reel[i], " ", 2) + " ";
                    else row = row + "| " + "null" + " ";
                }
                row = row + "|";
                result += row + "\n";
                if (i < reelLength - 1) result += middleLine + "\n";
            }
            result += firstLastLine + "\n";
            return result;
        };
        slotParserApi.ReelPicture.prototype.__class__ = slotParserApi.ReelPicture;
        slotParserApi.ReelPictureInfo = function(reelsInfo) {
            this.reelsInfo = reelsInfo;
        };
        slotParserApi.ReelPictureInfo.__name__ = ["slotParserApi", "ReelPictureInfo"];
        slotParserApi.ReelPictureInfo.prototype.reelsInfo = null;
        slotParserApi.ReelPictureInfo.prototype.toString = function() {
            if (this.reelsInfo == null) return "";
            var firstLastLine = "--------------------------";
            var middleLine = "|----|----|----|----|----|";
            var result = "\n" + firstLastLine + "\n";
            var reelLength = 0;
            if (this.reelsInfo[0] != null) reelLength = this.reelsInfo[0].length;
            var _g = 0;
            while (_g < reelLength) {
                var i = _g++;
                var row = "";
                var _g1 = 0;
                var _g2 = this.reelsInfo;
                while (_g1 < _g2.length) {
                    var reelInfo = _g2[_g1];
                    ++_g1;
                    if (reelInfo != null && reelInfo[i] != null) row = row + "| " + _hcmn_.StringTools.lpad(_hcmn_.Std.string(reelInfo[i]), " ", 2) + " ";
                    else row = row + "| " + "null" + " ";
                }
                row = row + "|";
                result += row + "\n";
                if (i < reelLength - 1) result += middleLine + "\n";
            }
            result += firstLastLine + "\n";
            return result;
        };
        slotParserApi.ReelPictureInfo.prototype.__class__ = slotParserApi.ReelPictureInfo;
        slotParserApi.BaseGameOutcome = function(outcome) {
            this.outcome = outcome;
        };
        slotParserApi.BaseGameOutcome.__name__ = ["slotParserApi", "BaseGameOutcome"];
        slotParserApi.BaseGameOutcome.prototype.outcome = null;
        slotParserApi.BaseGameOutcome.prototype.__class__ = slotParserApi.BaseGameOutcome;
        slotParserApi.FreeSpinOutcome = function(awarded, isMaxAwarded, isIncrementTriggered, total, current, outcome) {
            this.awarded = awarded;
            this.isMaxAwarded = isMaxAwarded;
            this.isIncrementTriggered = isIncrementTriggered;
            this.total = total;
            this.current = current;
            this.outcome = outcome;
        };
        slotParserApi.FreeSpinOutcome.__name__ = ["slotParserApi", "FreeSpinOutcome"];
        slotParserApi.FreeSpinOutcome.prototype.awarded = null;
        slotParserApi.FreeSpinOutcome.prototype.isMaxAwarded = null;
        slotParserApi.FreeSpinOutcome.prototype.isIncrementTriggered = null;
        slotParserApi.FreeSpinOutcome.prototype.total = null;
        slotParserApi.FreeSpinOutcome.prototype.current = null;
        slotParserApi.FreeSpinOutcome.prototype.outcome = null;
        slotParserApi.FreeSpinOutcome.prototype.__class__ = slotParserApi.FreeSpinOutcome;
        slotParserApi.PickerBonusOutcome = function(bonusInfo, outcome) {
            this.bonusInfo = bonusInfo;
            this.outcome = outcome;
        };
        slotParserApi.PickerBonusOutcome.__name__ = ["slotParserApi", "PickerBonusOutcome"];
        slotParserApi.PickerBonusOutcome.prototype.bonusInfo = null;
        slotParserApi.PickerBonusOutcome.prototype.outcome = null;
        slotParserApi.PickerBonusOutcome.prototype.__class__ = slotParserApi.PickerBonusOutcome;
        slotParserApi.BigWin = function(winGroup, winSegments, customGroups) {
            this.winGroup = winGroup;
            this.winSegments = winSegments;
            this.customGroups = customGroups;
        };
        slotParserApi.BigWin.__name__ = ["slotParserApi", "BigWin"];
        slotParserApi.BigWin.prototype.winGroup = null;
        slotParserApi.BigWin.prototype.winSegments = null;
        slotParserApi.BigWin.prototype.customGroups = null;
        slotParserApi.BigWin.prototype.__class__ = slotParserApi.BigWin;
        slotParserApi.BigWinSegment = function(winGroup, totalWin) {
            this.winGroup = winGroup;
            this.totalWin = totalWin;
        };
        slotParserApi.BigWinSegment.__name__ = ["slotParserApi", "BigWinSegment"];
        slotParserApi.BigWinSegment.prototype.winGroup = null;
        slotParserApi.BigWinSegment.prototype.totalWin = null;
        slotParserApi.BigWinSegment.prototype.__class__ = slotParserApi.BigWinSegment;
        slotParserApi.Win = function(type, id, name, lineId, price, multiplier, payout, winPath, winningSymbol, position, symbolCount) {
            this.type = type;
            this.id = id;
            this.name = name;
            this.lineId = lineId;
            this.price = price;
            this.multiplier = multiplier;
            this.payout = payout;
            this.winPath = winPath;
            this.winningSymbol = winningSymbol;
            this.position = position;
            this.symbolCount = symbolCount;
        };
        slotParserApi.Win.__name__ = ["slotParserApi", "Win"];
        slotParserApi.Win.prototype.type = null;
        slotParserApi.Win.prototype.id = null;
        slotParserApi.Win.prototype.name = null;
        slotParserApi.Win.prototype.lineId = null;
        slotParserApi.Win.prototype.price = null;
        slotParserApi.Win.prototype.multiplier = null;
        slotParserApi.Win.prototype.payout = null;
        slotParserApi.Win.prototype.winPath = null;
        slotParserApi.Win.prototype.winningSymbol = null;
        slotParserApi.Win.prototype.position = null;
        slotParserApi.Win.prototype.symbolCount = null;
        slotParserApi.Win.prototype.toString = function() {
            return "type: " + this.type + ", id: " + this.id + ", name: " + this.name + ", lineId: " + this.lineId + ", price: " + this.price + ", multiplier:" + this.multiplier + ",  payout:" + this.payout + ", winPath: " + _hcmn_.Std.string(this.winPath) + ", winningSymbol:" + this.winningSymbol + ", position:" + this.position + ", symbolCount:" + this.symbolCount;
        };
        slotParserApi.Win.prototype.__class__ = slotParserApi.Win;
        slotParserApi.BonusWin = function(type, id, name, lineId, price, multiplier, payout, winPath, winningSymbol, position, symbolCount) {
            slotParserApi.Win.call(this, type, id, name, lineId, price, multiplier, payout, winPath, winningSymbol, position, symbolCount);
        };
        slotParserApi.BonusWin.__name__ = ["slotParserApi", "BonusWin"];
        slotParserApi.BonusWin.__super__ = slotParserApi.Win;
        for (var k in slotParserApi.Win.prototype) slotParserApi.BonusWin.prototype[k] = slotParserApi.Win.prototype[k];
        slotParserApi.BonusWin.prototype.__class__ = slotParserApi.BonusWin;
        slotParserApi.LineWin = function(name, lineId, price, multiplier, payout, winPath, winningSymbol, symbolCount, lineType) {
            var id = slotParserApi.LineWin.WIN_TYPE + "_" + lineId;
            if (lineType != null) slotParserApi.Win.call(this, lineType, id, name, lineId, price, multiplier, payout, winPath, winningSymbol, slotParserApi.LineWin.WIN_POSITION, symbolCount);
            else slotParserApi.Win.call(this, slotParserApi.LineWin.WIN_TYPE, id, name, lineId, price, multiplier, payout, winPath, winningSymbol, slotParserApi.LineWin.WIN_POSITION, symbolCount);
        };
        slotParserApi.LineWin.__name__ = ["slotParserApi", "LineWin"];
        slotParserApi.LineWin.__super__ = slotParserApi.Win;
        for (var k in slotParserApi.Win.prototype) slotParserApi.LineWin.prototype[k] = slotParserApi.Win.prototype[k];
        slotParserApi.LineWin.prototype.__class__ = slotParserApi.LineWin;
        slotParserApi.Outcome = function(reelPicture, reelPicturePresentation, reelPictureAdditional, lineWins, scatterWins, bonusWins, pickerWins, totalPayout, bigWin, customField) {
            this.reelPicture = reelPicture;
            this.reelPicturePresentation = reelPicturePresentation;
            this.reelPictureAdditional = reelPictureAdditional;
            this.lineWins = lineWins;
            this.scatterWins = scatterWins;
            this.bonusWins = bonusWins;
            this.pickerWins = pickerWins;
            this.totalPayout = totalPayout;
            this.bigWin = bigWin;
            this.customField = customField;
        };
        slotParserApi.Outcome.__name__ = ["slotParserApi", "Outcome"];
        slotParserApi.Outcome.prototype.reelPicture = null;
        slotParserApi.Outcome.prototype.reelPicturePresentation = null;
        slotParserApi.Outcome.prototype.reelPictureAdditional = null;
        slotParserApi.Outcome.prototype.lineWins = null;
        slotParserApi.Outcome.prototype.scatterWins = null;
        slotParserApi.Outcome.prototype.bonusWins = null;
        slotParserApi.Outcome.prototype.pickerWins = null;
        slotParserApi.Outcome.prototype.totalPayout = null;
        slotParserApi.Outcome.prototype.bigWin = null;
        slotParserApi.Outcome.prototype.customField = null;
        slotParserApi.Outcome.prototype.__class__ = slotParserApi.Outcome;
        slotParserApi.Pick = function(name, picked, type, value, payout) {
            this.name = name;
            this.picked = picked;
            this.type = type;
            this.value = value;
            this.payout = payout;
        };
        slotParserApi.Pick.__name__ = ["slotParserApi", "Pick"];
        slotParserApi.Pick.prototype.name = null;
        slotParserApi.Pick.prototype.picked = null;
        slotParserApi.Pick.prototype.type = null;
        slotParserApi.Pick.prototype.value = null;
        slotParserApi.Pick.prototype.payout = null;
        slotParserApi.Pick.prototype.__class__ = slotParserApi.Pick;
        slotParserApi.PickerBonusInfo = function(choices, isIncrementTriggered) {
            if (isIncrementTriggered == null) isIncrementTriggered = false;
            this.isIncrementTriggered = isIncrementTriggered;
            this.choices = choices;
        };
        slotParserApi.PickerBonusInfo.__name__ = ["slotParserApi", "PickerBonusInfo"];
        slotParserApi.PickerBonusInfo.prototype.choices = null;
        slotParserApi.PickerBonusInfo.prototype.isIncrementTriggered = null;
        slotParserApi.PickerBonusInfo.prototype.__class__ = slotParserApi.PickerBonusInfo;
        slotParserApi.PickerWin = function(name, id, lineId, price, multiplier, payout, winPath, winningSymbol, position, symbolCount, picks, progressMeter, lastPicked) {
            slotParserApi.Win.call(this, slotParserApi.PickerWin.WIN_TYPE, id, name, lineId, price, multiplier, payout, winPath, winningSymbol, position, symbolCount);
            this.picks = picks;
            this.lastPicked = lastPicked;
            this.progressMeter = progressMeter;
        };
        slotParserApi.PickerWin.__name__ = ["slotParserApi", "PickerWin"];
        slotParserApi.PickerWin.__super__ = slotParserApi.Win;
        for (var k in slotParserApi.Win.prototype) slotParserApi.PickerWin.prototype[k] = slotParserApi.Win.prototype[k];
        slotParserApi.PickerWin.prototype.picks = null;
        slotParserApi.PickerWin.prototype.lastPicked = null;
        slotParserApi.PickerWin.prototype.progressMeter = null;
        slotParserApi.PickerWin.prototype.__class__ = slotParserApi.PickerWin;
        slotParserApi.ReelPictureSymbols = function() {};
        slotParserApi.ReelPictureSymbols.__name__ = ["slotParserApi", "ReelPictureSymbols"];
        slotParserApi.ReelPictureSymbols.prototype.__class__ = slotParserApi.ReelPictureSymbols;
        slotParserApi.ScatterWin = function(name, price, multiplier, payout, winPath, winningSymbol, symbolCount) {
            var id = slotParserApi.ScatterWin.WIN_TYPE + "_" + name;
            slotParserApi.Win.call(this, slotParserApi.ScatterWin.WIN_TYPE, id, name, slotParserApi.ScatterWin.WIN_LINE_ID, price, multiplier, payout, winPath, winningSymbol, slotParserApi.ScatterWin.WIN_POSITION, symbolCount);
        };
        slotParserApi.ScatterWin.__name__ = ["slotParserApi", "ScatterWin"];
        slotParserApi.ScatterWin.__super__ = slotParserApi.Win;
        for (var k in slotParserApi.Win.prototype) slotParserApi.ScatterWin.prototype[k] = slotParserApi.Win.prototype[k];
        slotParserApi.ScatterWin.prototype.__class__ = slotParserApi.ScatterWin;
        slotParserApi.LineWin.WIN_TYPE = "Line";;
        slotParserApi.LineWin.WIN_POSITION = 0;;
        slotParserApi.PickerWin.WIN_TYPE = "Picker";;
        slotParserApi.ReelPictureSymbols.ZERO_SYMBOL = 0;;
        slotParserApi.ReelPictureSymbols.UNIT_SYMBOL = 1;;
        slotParserApi.ReelPictureSymbols.ENABLE_WINNING_SYMBOL = 1;;
        slotParserApi.ReelPictureSymbols.DISABLED_WINNING_SYMBOL = 2;;
        slotParserApi.ScatterWin.WIN_TYPE = "Scatter";;
        slotParserApi.ScatterWin.WIN_POSITION = 0;;
        slotParserApi.ScatterWin.WIN_LINE_ID = 0;;
        return {
            exports: slotParserApi
        };
    });
//# sourceURL=slotParserApi.js