/*
let i = 0;
const getFirst = once(() => ++i);
getFirst(); // 1
getFirst(); // 1
19130
function once(fn) {
  var called, value;

  if (typeof fn !== 'function') {
    throw new Error('expected a function but got ' + fn);
  }

  return function wrap() {
    if (called) {
      return value;
    }
    called = true;
    value = fn.apply(this, arguments);
    fn = undefined;
    return value;
  };
}
451327
function() {
    var m = 0, n = this.elements.length, k = n, i;
    do { i = k - n;
      if (Math.abs(this.elements[i]) > Math.abs(m)) { m = this.elements[i]; }
    } while (--n);
    return m;
  }
615584
function incrementCounter() {
            for (var i = innerLen-1; i >= innerLen-4; i--) {
                inner[i]++;
                if (inner[i] <= 0xff) return;
                inner[i] = 0;
            }
        }
570552
function() {
            var l = this.coeffs.length;
            for(var i=0; i<l; i++) {
                var e = this.coeffs[i];
                if(!e.equals(0)) return false;
            }
            return true;
        }
719906
function checkCustomProperty(i) {
  const start = i;
  let l;

  if (i >= tokensLength) return 0;

  if (tokens[i].type !== TokenType.HyphenMinus ||
      tokens[i + 1] && tokens[i + 1].type !== TokenType.HyphenMinus) return 0;

  // Skip `--`
  i += 2;

  if (l = checkIdentOrInterpolation(i)) i += l;
  else return 0;

  return i - start;
}
101217
function first() {
    var i,
        args = new Array(arguments.length);
    for (i = 0; i < args.length; i++) {
      args[i] = arguments[i];
    }
    this.select.apply(this, args);
    this._method = 'first';
    this.limit(1);
    return this;
  }
189404
function EE(fn, context, once) {
  this.fn = fn;
  this.context = context;
  this.once = once || false;
}
905517
function checkInterpolation(i) {
  const start = i;
  let l;

  if (i >= tokensLength) return 0;

  if (tokens[i].type !== TokenType.NumberSign ||
      !tokens[i + 1] ||
      tokens[i + 1].type !== TokenType.LeftCurlyBracket) return 0;

  i += 2;

  while (tokens[i].type !== TokenType.RightCurlyBracket) {
    if (l = checkArgument(i)) i += l;
    else return 0;
  }

  return tokens[i].type === TokenType.RightCurlyBracket ? i - start + 1 : 0;
}
331986
function doOnlySecond(what, first, second, func) {
  const kErr = -1;

  for (let data of second) {
    if (first.indexOf(data) === kErr) {
      func.call(what, data);
    }
  }
  return first;
}
449135
function(symbol){

            var self = this,
            firsts = [];

            if(_.isString(symbol)){
                if(_.indexOf(self.terminals,symbol) !== -1){
                    firsts.push(symbol);
                    return firsts;
                }
                if(self.nonterminals[symbol]){
                    return self.nonterminals[symbol].firsts;
                }
            }else if(_.isArray(symbol)){
                var rhs = symbol;

                for(var i=0; symbol=rhs[i]; i++){
                    firsts = _.union(firsts, self._first(symbol));
                    if(self.nonterminals[symbol] && !self.nonterminals[symbol].nullable || _.indexOf(self.terminals,symbol) !== -1){
                        return firsts;
                    }
                }
            }
            return firsts;
        }
231630
function precedence(ast) {
  var p = PRECEDENCE[ast["type"]];
  if ( _.isNumber(p) ) // represents Fixnum? I'm so sorry.
    return p;
  else if ( p && p.constructor === Object ) // p is a {} object
    return p[ast["operator"]];
  else
    return 0;
}
1066246
function checkProperty3(i) {
  const start = i;
  let l;

  if (i >= tokensLength) return 0;

  if (l = checkVariable(i)) i += l;
  else return 0;

  return i - start;
}
786136
function (a, b) {
	var i, len;

	len = a.length;

	for (i = 0; i < len; ++i) {
		if (b === a[i]) {
			return i;
		}
	}

	return -1;
}
505121
function(T, C, n, k) {
        var i;
        for (i = 0; i < k; i++) { C[i] = 0; }
        for (i = 0; i < n; i++) { C[T[i]]++; }
    }
249253
function(a) {
                    for(var i=0; i<a.length; i++)
                        if(!a[i].equals(0)) return i;
                }
1201893
function checkCombinator1(i) {
  if (i < tokensLength && tokens[i++].type === TokenType.GreaterThanSign &&
      i < tokensLength && tokens[i++].type === TokenType.GreaterThanSign &&
      i < tokensLength && tokens[i++].type === TokenType.GreaterThanSign)
    return 3;

  return 0;
}
918183
function step1b$1(token) {
                var r1 = getR1(token);

                if (!r1) {
                    return token;
                }

                if (token.match(/(b|c|d|f|g|h|j|l|m|n|o|p|r|t|v|y|z)s$/)) {
                    return token.slice(0, -1);
                }

                if (token.match(/([^aeiouyæåø]k)s$/)) {
                    return token.slice(0, -1);
                }

                return token;
            }